diff --git a/deps/glslang/glslang/CMakeLists.txt b/deps/glslang/glslang/CMakeLists.txt index 7192de5f2c..9a869c2c00 100644 --- a/deps/glslang/glslang/CMakeLists.txt +++ b/deps/glslang/glslang/CMakeLists.txt @@ -27,6 +27,8 @@ option(ENABLE_GLSLANG_BINARIES "Builds glslangValidator and spirv-remap" ON) option(ENABLE_NV_EXTENSIONS "Enables support of Nvidia-specific extensions" ON) +option(ENABLE_HLSL "Enables HLSL input support" ON) + option(ENABLE_OPT "Enables spirv-opt capability if present" ON) if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32) @@ -45,6 +47,10 @@ if(ENABLE_NV_EXTENSIONS) add_definitions(-DNV_EXTENSIONS) endif(ENABLE_NV_EXTENSIONS) +if(ENABLE_HLSL) + add_definitions(-DENABLE_HLSL) +endif(ENABLE_HLSL) + if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") if(MSVC) @@ -98,9 +104,19 @@ if(ENABLE_OPT) message(STATUS "optimizer enabled") add_definitions(-DENABLE_OPT=1) else() + if(ENABLE_HLSL) + message(STATUS "spirv-tools not linked - illegal SPIRV may be generated for HLSL") + endif() add_definitions(-DENABLE_OPT=0) endif() add_subdirectory(glslang) add_subdirectory(OGLCompilersDLL) +if(ENABLE_GLSLANG_BINARIES) + add_subdirectory(StandAlone) +endif() add_subdirectory(SPIRV) +if(ENABLE_HLSL) + add_subdirectory(hlsl) +endif(ENABLE_HLSL) +add_subdirectory(gtests) diff --git a/deps/glslang/glslang/StandAlone/CMakeLists.txt b/deps/glslang/glslang/StandAlone/CMakeLists.txt new file mode 100644 index 0000000000..d500121df5 --- /dev/null +++ b/deps/glslang/glslang/StandAlone/CMakeLists.txt @@ -0,0 +1,52 @@ +add_library(glslang-default-resource-limits + ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp) +set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang) +set_property(TARGET glslang-default-resource-limits PROPERTY POSITION_INDEPENDENT_CODE ON) + +target_include_directories(glslang-default-resource-limits + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${PROJECT_SOURCE_DIR}) + +set(SOURCES StandAlone.cpp DirStackFileIncluder.h) +set(REMAPPER_SOURCES spirv-remap.cpp) + +add_executable(glslangValidator ${SOURCES}) +add_executable(spirv-remap ${REMAPPER_SOURCES}) +set_property(TARGET glslangValidator PROPERTY FOLDER tools) +set_property(TARGET spirv-remap PROPERTY FOLDER tools) +glslang_set_link_args(glslangValidator) +glslang_set_link_args(spirv-remap) + +set(LIBRARIES + glslang + SPIRV + SPVRemapper + glslang-default-resource-limits) + +if(WIN32) + set(LIBRARIES ${LIBRARIES} psapi) +elseif(UNIX) + if(NOT ANDROID) + set(LIBRARIES ${LIBRARIES} pthread) + endif() +endif(WIN32) + +target_link_libraries(glslangValidator ${LIBRARIES}) +target_link_libraries(spirv-remap ${LIBRARIES}) + +if(WIN32) + source_group("Source" FILES ${SOURCES}) +endif(WIN32) + +if(ENABLE_GLSLANG_INSTALL) + install(TARGETS glslangValidator + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + install(TARGETS spirv-remap + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + if(BUILD_SHARED_LIBS) + install(TARGETS glslang-default-resource-limits + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/StandAlone/DirStackFileIncluder.h b/deps/glslang/glslang/StandAlone/DirStackFileIncluder.h new file mode 100644 index 0000000000..18734130e7 --- /dev/null +++ b/deps/glslang/glslang/StandAlone/DirStackFileIncluder.h @@ -0,0 +1,141 @@ +// +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2017 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#pragma once + +#include +#include +#include +#include + +#include "./../glslang/Public/ShaderLang.h" + +// Default include class for normal include convention of search backward +// through the stack of active include paths (for nested includes). +// Can be overridden to customize. +class DirStackFileIncluder : public glslang::TShader::Includer { +public: + DirStackFileIncluder() : externalLocalDirectoryCount(0) { } + + virtual IncludeResult* includeLocal(const char* headerName, + const char* includerName, + size_t inclusionDepth) override + { + return readLocalPath(headerName, includerName, (int)inclusionDepth); + } + + virtual IncludeResult* includeSystem(const char* headerName, + const char* /*includerName*/, + size_t /*inclusionDepth*/) override + { + return readSystemPath(headerName); + } + + // Externally set directories. E.g., from a command-line -I. + // - Most-recently pushed are checked first. + // - All these are checked after the parse-time stack of local directories + // is checked. + // - This only applies to the "local" form of #include. + // - Makes its own copy of the path. + virtual void pushExternalLocalDirectory(const std::string& dir) + { + directoryStack.push_back(dir); + externalLocalDirectoryCount = (int)directoryStack.size(); + } + + virtual void releaseInclude(IncludeResult* result) override + { + if (result != nullptr) { + delete [] static_cast(result->userData); + delete result; + } + } + + virtual ~DirStackFileIncluder() override { } + +protected: + typedef char tUserDataElement; + std::vector directoryStack; + int externalLocalDirectoryCount; + + // Search for a valid "local" path based on combining the stack of include + // directories and the nominal name of the header. + virtual IncludeResult* readLocalPath(const char* headerName, const char* includerName, int depth) + { + // Discard popped include directories, and + // initialize when at parse-time first level. + directoryStack.resize(depth + externalLocalDirectoryCount); + if (depth == 1) + directoryStack.back() = getDirectory(includerName); + + // Find a directory that works, using a reverse search of the include stack. + for (auto it = directoryStack.rbegin(); it != directoryStack.rend(); ++it) { + std::string path = *it + '/' + headerName; + std::replace(path.begin(), path.end(), '\\', '/'); + std::ifstream file(path, std::ios_base::binary | std::ios_base::ate); + if (file) { + directoryStack.push_back(getDirectory(path)); + return newIncludeResult(path, file, (int)file.tellg()); + } + } + + return nullptr; + } + + // Search for a valid path. + // Not implemented yet; returning nullptr signals failure to find. + virtual IncludeResult* readSystemPath(const char* /*headerName*/) const + { + return nullptr; + } + + // Do actual reading of the file, filling in a new include result. + virtual IncludeResult* newIncludeResult(const std::string& path, std::ifstream& file, int length) const + { + char* content = new tUserDataElement [length]; + file.seekg(0, file.beg); + file.read(content, length); + return new IncludeResult(path, content, length, content); + } + + // If no path markers, return current working directory. + // Otherwise, strip file name and return path leading up to it. + virtual std::string getDirectory(const std::string path) const + { + size_t last = path.find_last_of("/\\"); + return last == std::string::npos ? "." : path.substr(0, last); + } +}; diff --git a/deps/glslang/glslang/StandAlone/ResourceLimits.cpp b/deps/glslang/glslang/StandAlone/ResourceLimits.cpp new file mode 100644 index 0000000000..e22ec8015c --- /dev/null +++ b/deps/glslang/glslang/StandAlone/ResourceLimits.cpp @@ -0,0 +1,458 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include +#include +#include +#include + +#include "ResourceLimits.h" + +namespace glslang { + +const TBuiltInResource DefaultTBuiltInResource = { + /* .MaxLights = */ 32, + /* .MaxClipPlanes = */ 6, + /* .MaxTextureUnits = */ 32, + /* .MaxTextureCoords = */ 32, + /* .MaxVertexAttribs = */ 64, + /* .MaxVertexUniformComponents = */ 4096, + /* .MaxVaryingFloats = */ 64, + /* .MaxVertexTextureImageUnits = */ 32, + /* .MaxCombinedTextureImageUnits = */ 80, + /* .MaxTextureImageUnits = */ 32, + /* .MaxFragmentUniformComponents = */ 4096, + /* .MaxDrawBuffers = */ 32, + /* .MaxVertexUniformVectors = */ 128, + /* .MaxVaryingVectors = */ 8, + /* .MaxFragmentUniformVectors = */ 16, + /* .MaxVertexOutputVectors = */ 16, + /* .MaxFragmentInputVectors = */ 15, + /* .MinProgramTexelOffset = */ -8, + /* .MaxProgramTexelOffset = */ 7, + /* .MaxClipDistances = */ 8, + /* .MaxComputeWorkGroupCountX = */ 65535, + /* .MaxComputeWorkGroupCountY = */ 65535, + /* .MaxComputeWorkGroupCountZ = */ 65535, + /* .MaxComputeWorkGroupSizeX = */ 1024, + /* .MaxComputeWorkGroupSizeY = */ 1024, + /* .MaxComputeWorkGroupSizeZ = */ 64, + /* .MaxComputeUniformComponents = */ 1024, + /* .MaxComputeTextureImageUnits = */ 16, + /* .MaxComputeImageUniforms = */ 8, + /* .MaxComputeAtomicCounters = */ 8, + /* .MaxComputeAtomicCounterBuffers = */ 1, + /* .MaxVaryingComponents = */ 60, + /* .MaxVertexOutputComponents = */ 64, + /* .MaxGeometryInputComponents = */ 64, + /* .MaxGeometryOutputComponents = */ 128, + /* .MaxFragmentInputComponents = */ 128, + /* .MaxImageUnits = */ 8, + /* .MaxCombinedImageUnitsAndFragmentOutputs = */ 8, + /* .MaxCombinedShaderOutputResources = */ 8, + /* .MaxImageSamples = */ 0, + /* .MaxVertexImageUniforms = */ 0, + /* .MaxTessControlImageUniforms = */ 0, + /* .MaxTessEvaluationImageUniforms = */ 0, + /* .MaxGeometryImageUniforms = */ 0, + /* .MaxFragmentImageUniforms = */ 8, + /* .MaxCombinedImageUniforms = */ 8, + /* .MaxGeometryTextureImageUnits = */ 16, + /* .MaxGeometryOutputVertices = */ 256, + /* .MaxGeometryTotalOutputComponents = */ 1024, + /* .MaxGeometryUniformComponents = */ 1024, + /* .MaxGeometryVaryingComponents = */ 64, + /* .MaxTessControlInputComponents = */ 128, + /* .MaxTessControlOutputComponents = */ 128, + /* .MaxTessControlTextureImageUnits = */ 16, + /* .MaxTessControlUniformComponents = */ 1024, + /* .MaxTessControlTotalOutputComponents = */ 4096, + /* .MaxTessEvaluationInputComponents = */ 128, + /* .MaxTessEvaluationOutputComponents = */ 128, + /* .MaxTessEvaluationTextureImageUnits = */ 16, + /* .MaxTessEvaluationUniformComponents = */ 1024, + /* .MaxTessPatchComponents = */ 120, + /* .MaxPatchVertices = */ 32, + /* .MaxTessGenLevel = */ 64, + /* .MaxViewports = */ 16, + /* .MaxVertexAtomicCounters = */ 0, + /* .MaxTessControlAtomicCounters = */ 0, + /* .MaxTessEvaluationAtomicCounters = */ 0, + /* .MaxGeometryAtomicCounters = */ 0, + /* .MaxFragmentAtomicCounters = */ 8, + /* .MaxCombinedAtomicCounters = */ 8, + /* .MaxAtomicCounterBindings = */ 1, + /* .MaxVertexAtomicCounterBuffers = */ 0, + /* .MaxTessControlAtomicCounterBuffers = */ 0, + /* .MaxTessEvaluationAtomicCounterBuffers = */ 0, + /* .MaxGeometryAtomicCounterBuffers = */ 0, + /* .MaxFragmentAtomicCounterBuffers = */ 1, + /* .MaxCombinedAtomicCounterBuffers = */ 1, + /* .MaxAtomicCounterBufferSize = */ 16384, + /* .MaxTransformFeedbackBuffers = */ 4, + /* .MaxTransformFeedbackInterleavedComponents = */ 64, + /* .MaxCullDistances = */ 8, + /* .MaxCombinedClipAndCullDistances = */ 8, + /* .MaxSamples = */ 4, + /* .limits = */ { + /* .nonInductiveForLoops = */ 1, + /* .whileLoops = */ 1, + /* .doWhileLoops = */ 1, + /* .generalUniformIndexing = */ 1, + /* .generalAttributeMatrixVectorIndexing = */ 1, + /* .generalVaryingIndexing = */ 1, + /* .generalSamplerIndexing = */ 1, + /* .generalVariableIndexing = */ 1, + /* .generalConstantMatrixVectorIndexing = */ 1, + }}; + +std::string GetDefaultTBuiltInResourceString() +{ + std::ostringstream ostream; + + ostream << "MaxLights " << DefaultTBuiltInResource.maxLights << "\n" + << "MaxClipPlanes " << DefaultTBuiltInResource.maxClipPlanes << "\n" + << "MaxTextureUnits " << DefaultTBuiltInResource.maxTextureUnits << "\n" + << "MaxTextureCoords " << DefaultTBuiltInResource.maxTextureCoords << "\n" + << "MaxVertexAttribs " << DefaultTBuiltInResource.maxVertexAttribs << "\n" + << "MaxVertexUniformComponents " << DefaultTBuiltInResource.maxVertexUniformComponents << "\n" + << "MaxVaryingFloats " << DefaultTBuiltInResource.maxVaryingFloats << "\n" + << "MaxVertexTextureImageUnits " << DefaultTBuiltInResource.maxVertexTextureImageUnits << "\n" + << "MaxCombinedTextureImageUnits " << DefaultTBuiltInResource.maxCombinedTextureImageUnits << "\n" + << "MaxTextureImageUnits " << DefaultTBuiltInResource.maxTextureImageUnits << "\n" + << "MaxFragmentUniformComponents " << DefaultTBuiltInResource.maxFragmentUniformComponents << "\n" + << "MaxDrawBuffers " << DefaultTBuiltInResource.maxDrawBuffers << "\n" + << "MaxVertexUniformVectors " << DefaultTBuiltInResource.maxVertexUniformVectors << "\n" + << "MaxVaryingVectors " << DefaultTBuiltInResource.maxVaryingVectors << "\n" + << "MaxFragmentUniformVectors " << DefaultTBuiltInResource.maxFragmentUniformVectors << "\n" + << "MaxVertexOutputVectors " << DefaultTBuiltInResource.maxVertexOutputVectors << "\n" + << "MaxFragmentInputVectors " << DefaultTBuiltInResource.maxFragmentInputVectors << "\n" + << "MinProgramTexelOffset " << DefaultTBuiltInResource.minProgramTexelOffset << "\n" + << "MaxProgramTexelOffset " << DefaultTBuiltInResource.maxProgramTexelOffset << "\n" + << "MaxClipDistances " << DefaultTBuiltInResource.maxClipDistances << "\n" + << "MaxComputeWorkGroupCountX " << DefaultTBuiltInResource.maxComputeWorkGroupCountX << "\n" + << "MaxComputeWorkGroupCountY " << DefaultTBuiltInResource.maxComputeWorkGroupCountY << "\n" + << "MaxComputeWorkGroupCountZ " << DefaultTBuiltInResource.maxComputeWorkGroupCountZ << "\n" + << "MaxComputeWorkGroupSizeX " << DefaultTBuiltInResource.maxComputeWorkGroupSizeX << "\n" + << "MaxComputeWorkGroupSizeY " << DefaultTBuiltInResource.maxComputeWorkGroupSizeY << "\n" + << "MaxComputeWorkGroupSizeZ " << DefaultTBuiltInResource.maxComputeWorkGroupSizeZ << "\n" + << "MaxComputeUniformComponents " << DefaultTBuiltInResource.maxComputeUniformComponents << "\n" + << "MaxComputeTextureImageUnits " << DefaultTBuiltInResource.maxComputeTextureImageUnits << "\n" + << "MaxComputeImageUniforms " << DefaultTBuiltInResource.maxComputeImageUniforms << "\n" + << "MaxComputeAtomicCounters " << DefaultTBuiltInResource.maxComputeAtomicCounters << "\n" + << "MaxComputeAtomicCounterBuffers " << DefaultTBuiltInResource.maxComputeAtomicCounterBuffers << "\n" + << "MaxVaryingComponents " << DefaultTBuiltInResource.maxVaryingComponents << "\n" + << "MaxVertexOutputComponents " << DefaultTBuiltInResource.maxVertexOutputComponents << "\n" + << "MaxGeometryInputComponents " << DefaultTBuiltInResource.maxGeometryInputComponents << "\n" + << "MaxGeometryOutputComponents " << DefaultTBuiltInResource.maxGeometryOutputComponents << "\n" + << "MaxFragmentInputComponents " << DefaultTBuiltInResource.maxFragmentInputComponents << "\n" + << "MaxImageUnits " << DefaultTBuiltInResource.maxImageUnits << "\n" + << "MaxCombinedImageUnitsAndFragmentOutputs " << DefaultTBuiltInResource.maxCombinedImageUnitsAndFragmentOutputs << "\n" + << "MaxCombinedShaderOutputResources " << DefaultTBuiltInResource.maxCombinedShaderOutputResources << "\n" + << "MaxImageSamples " << DefaultTBuiltInResource.maxImageSamples << "\n" + << "MaxVertexImageUniforms " << DefaultTBuiltInResource.maxVertexImageUniforms << "\n" + << "MaxTessControlImageUniforms " << DefaultTBuiltInResource.maxTessControlImageUniforms << "\n" + << "MaxTessEvaluationImageUniforms " << DefaultTBuiltInResource.maxTessEvaluationImageUniforms << "\n" + << "MaxGeometryImageUniforms " << DefaultTBuiltInResource.maxGeometryImageUniforms << "\n" + << "MaxFragmentImageUniforms " << DefaultTBuiltInResource.maxFragmentImageUniforms << "\n" + << "MaxCombinedImageUniforms " << DefaultTBuiltInResource.maxCombinedImageUniforms << "\n" + << "MaxGeometryTextureImageUnits " << DefaultTBuiltInResource.maxGeometryTextureImageUnits << "\n" + << "MaxGeometryOutputVertices " << DefaultTBuiltInResource.maxGeometryOutputVertices << "\n" + << "MaxGeometryTotalOutputComponents " << DefaultTBuiltInResource.maxGeometryTotalOutputComponents << "\n" + << "MaxGeometryUniformComponents " << DefaultTBuiltInResource.maxGeometryUniformComponents << "\n" + << "MaxGeometryVaryingComponents " << DefaultTBuiltInResource.maxGeometryVaryingComponents << "\n" + << "MaxTessControlInputComponents " << DefaultTBuiltInResource.maxTessControlInputComponents << "\n" + << "MaxTessControlOutputComponents " << DefaultTBuiltInResource.maxTessControlOutputComponents << "\n" + << "MaxTessControlTextureImageUnits " << DefaultTBuiltInResource.maxTessControlTextureImageUnits << "\n" + << "MaxTessControlUniformComponents " << DefaultTBuiltInResource.maxTessControlUniformComponents << "\n" + << "MaxTessControlTotalOutputComponents " << DefaultTBuiltInResource.maxTessControlTotalOutputComponents << "\n" + << "MaxTessEvaluationInputComponents " << DefaultTBuiltInResource.maxTessEvaluationInputComponents << "\n" + << "MaxTessEvaluationOutputComponents " << DefaultTBuiltInResource.maxTessEvaluationOutputComponents << "\n" + << "MaxTessEvaluationTextureImageUnits " << DefaultTBuiltInResource.maxTessEvaluationTextureImageUnits << "\n" + << "MaxTessEvaluationUniformComponents " << DefaultTBuiltInResource.maxTessEvaluationUniformComponents << "\n" + << "MaxTessPatchComponents " << DefaultTBuiltInResource.maxTessPatchComponents << "\n" + << "MaxPatchVertices " << DefaultTBuiltInResource.maxPatchVertices << "\n" + << "MaxTessGenLevel " << DefaultTBuiltInResource.maxTessGenLevel << "\n" + << "MaxViewports " << DefaultTBuiltInResource.maxViewports << "\n" + << "MaxVertexAtomicCounters " << DefaultTBuiltInResource.maxVertexAtomicCounters << "\n" + << "MaxTessControlAtomicCounters " << DefaultTBuiltInResource.maxTessControlAtomicCounters << "\n" + << "MaxTessEvaluationAtomicCounters " << DefaultTBuiltInResource.maxTessEvaluationAtomicCounters << "\n" + << "MaxGeometryAtomicCounters " << DefaultTBuiltInResource.maxGeometryAtomicCounters << "\n" + << "MaxFragmentAtomicCounters " << DefaultTBuiltInResource.maxFragmentAtomicCounters << "\n" + << "MaxCombinedAtomicCounters " << DefaultTBuiltInResource.maxCombinedAtomicCounters << "\n" + << "MaxAtomicCounterBindings " << DefaultTBuiltInResource.maxAtomicCounterBindings << "\n" + << "MaxVertexAtomicCounterBuffers " << DefaultTBuiltInResource.maxVertexAtomicCounterBuffers << "\n" + << "MaxTessControlAtomicCounterBuffers " << DefaultTBuiltInResource.maxTessControlAtomicCounterBuffers << "\n" + << "MaxTessEvaluationAtomicCounterBuffers " << DefaultTBuiltInResource.maxTessEvaluationAtomicCounterBuffers << "\n" + << "MaxGeometryAtomicCounterBuffers " << DefaultTBuiltInResource.maxGeometryAtomicCounterBuffers << "\n" + << "MaxFragmentAtomicCounterBuffers " << DefaultTBuiltInResource.maxFragmentAtomicCounterBuffers << "\n" + << "MaxCombinedAtomicCounterBuffers " << DefaultTBuiltInResource.maxCombinedAtomicCounterBuffers << "\n" + << "MaxAtomicCounterBufferSize " << DefaultTBuiltInResource.maxAtomicCounterBufferSize << "\n" + << "MaxTransformFeedbackBuffers " << DefaultTBuiltInResource.maxTransformFeedbackBuffers << "\n" + << "MaxTransformFeedbackInterleavedComponents " << DefaultTBuiltInResource.maxTransformFeedbackInterleavedComponents << "\n" + << "MaxCullDistances " << DefaultTBuiltInResource.maxCullDistances << "\n" + << "MaxCombinedClipAndCullDistances " << DefaultTBuiltInResource.maxCombinedClipAndCullDistances << "\n" + << "MaxSamples " << DefaultTBuiltInResource.maxSamples << "\n" + + << "nonInductiveForLoops " << DefaultTBuiltInResource.limits.nonInductiveForLoops << "\n" + << "whileLoops " << DefaultTBuiltInResource.limits.whileLoops << "\n" + << "doWhileLoops " << DefaultTBuiltInResource.limits.doWhileLoops << "\n" + << "generalUniformIndexing " << DefaultTBuiltInResource.limits.generalUniformIndexing << "\n" + << "generalAttributeMatrixVectorIndexing " << DefaultTBuiltInResource.limits.generalAttributeMatrixVectorIndexing << "\n" + << "generalVaryingIndexing " << DefaultTBuiltInResource.limits.generalVaryingIndexing << "\n" + << "generalSamplerIndexing " << DefaultTBuiltInResource.limits.generalSamplerIndexing << "\n" + << "generalVariableIndexing " << DefaultTBuiltInResource.limits.generalVariableIndexing << "\n" + << "generalConstantMatrixVectorIndexing " << DefaultTBuiltInResource.limits.generalConstantMatrixVectorIndexing << "\n" + ; + + return ostream.str(); +} + +void DecodeResourceLimits(TBuiltInResource* resources, char* config) +{ + static const char* delims = " \t\n\r"; + + size_t pos = 0; + std::string configStr(config); + + while ((pos = configStr.find_first_not_of(delims, pos)) != std::string::npos) { + const size_t token_s = pos; + const size_t token_e = configStr.find_first_of(delims, token_s); + const size_t value_s = configStr.find_first_not_of(delims, token_e); + const size_t value_e = configStr.find_first_of(delims, value_s); + pos = value_e; + + // Faster to use compare(), but prefering readability. + const std::string tokenStr = configStr.substr(token_s, token_e-token_s); + const std::string valueStr = configStr.substr(value_s, value_e-value_s); + + if (value_s == std::string::npos || ! (valueStr[0] == '-' || isdigit(valueStr[0]))) { + printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", + valueStr.c_str()); + return; + } + + const int value = std::atoi(valueStr.c_str()); + + if (tokenStr == "MaxLights") + resources->maxLights = value; + else if (tokenStr == "MaxClipPlanes") + resources->maxClipPlanes = value; + else if (tokenStr == "MaxTextureUnits") + resources->maxTextureUnits = value; + else if (tokenStr == "MaxTextureCoords") + resources->maxTextureCoords = value; + else if (tokenStr == "MaxVertexAttribs") + resources->maxVertexAttribs = value; + else if (tokenStr == "MaxVertexUniformComponents") + resources->maxVertexUniformComponents = value; + else if (tokenStr == "MaxVaryingFloats") + resources->maxVaryingFloats = value; + else if (tokenStr == "MaxVertexTextureImageUnits") + resources->maxVertexTextureImageUnits = value; + else if (tokenStr == "MaxCombinedTextureImageUnits") + resources->maxCombinedTextureImageUnits = value; + else if (tokenStr == "MaxTextureImageUnits") + resources->maxTextureImageUnits = value; + else if (tokenStr == "MaxFragmentUniformComponents") + resources->maxFragmentUniformComponents = value; + else if (tokenStr == "MaxDrawBuffers") + resources->maxDrawBuffers = value; + else if (tokenStr == "MaxVertexUniformVectors") + resources->maxVertexUniformVectors = value; + else if (tokenStr == "MaxVaryingVectors") + resources->maxVaryingVectors = value; + else if (tokenStr == "MaxFragmentUniformVectors") + resources->maxFragmentUniformVectors = value; + else if (tokenStr == "MaxVertexOutputVectors") + resources->maxVertexOutputVectors = value; + else if (tokenStr == "MaxFragmentInputVectors") + resources->maxFragmentInputVectors = value; + else if (tokenStr == "MinProgramTexelOffset") + resources->minProgramTexelOffset = value; + else if (tokenStr == "MaxProgramTexelOffset") + resources->maxProgramTexelOffset = value; + else if (tokenStr == "MaxClipDistances") + resources->maxClipDistances = value; + else if (tokenStr == "MaxComputeWorkGroupCountX") + resources->maxComputeWorkGroupCountX = value; + else if (tokenStr == "MaxComputeWorkGroupCountY") + resources->maxComputeWorkGroupCountY = value; + else if (tokenStr == "MaxComputeWorkGroupCountZ") + resources->maxComputeWorkGroupCountZ = value; + else if (tokenStr == "MaxComputeWorkGroupSizeX") + resources->maxComputeWorkGroupSizeX = value; + else if (tokenStr == "MaxComputeWorkGroupSizeY") + resources->maxComputeWorkGroupSizeY = value; + else if (tokenStr == "MaxComputeWorkGroupSizeZ") + resources->maxComputeWorkGroupSizeZ = value; + else if (tokenStr == "MaxComputeUniformComponents") + resources->maxComputeUniformComponents = value; + else if (tokenStr == "MaxComputeTextureImageUnits") + resources->maxComputeTextureImageUnits = value; + else if (tokenStr == "MaxComputeImageUniforms") + resources->maxComputeImageUniforms = value; + else if (tokenStr == "MaxComputeAtomicCounters") + resources->maxComputeAtomicCounters = value; + else if (tokenStr == "MaxComputeAtomicCounterBuffers") + resources->maxComputeAtomicCounterBuffers = value; + else if (tokenStr == "MaxVaryingComponents") + resources->maxVaryingComponents = value; + else if (tokenStr == "MaxVertexOutputComponents") + resources->maxVertexOutputComponents = value; + else if (tokenStr == "MaxGeometryInputComponents") + resources->maxGeometryInputComponents = value; + else if (tokenStr == "MaxGeometryOutputComponents") + resources->maxGeometryOutputComponents = value; + else if (tokenStr == "MaxFragmentInputComponents") + resources->maxFragmentInputComponents = value; + else if (tokenStr == "MaxImageUnits") + resources->maxImageUnits = value; + else if (tokenStr == "MaxCombinedImageUnitsAndFragmentOutputs") + resources->maxCombinedImageUnitsAndFragmentOutputs = value; + else if (tokenStr == "MaxCombinedShaderOutputResources") + resources->maxCombinedShaderOutputResources = value; + else if (tokenStr == "MaxImageSamples") + resources->maxImageSamples = value; + else if (tokenStr == "MaxVertexImageUniforms") + resources->maxVertexImageUniforms = value; + else if (tokenStr == "MaxTessControlImageUniforms") + resources->maxTessControlImageUniforms = value; + else if (tokenStr == "MaxTessEvaluationImageUniforms") + resources->maxTessEvaluationImageUniforms = value; + else if (tokenStr == "MaxGeometryImageUniforms") + resources->maxGeometryImageUniforms = value; + else if (tokenStr == "MaxFragmentImageUniforms") + resources->maxFragmentImageUniforms = value; + else if (tokenStr == "MaxCombinedImageUniforms") + resources->maxCombinedImageUniforms = value; + else if (tokenStr == "MaxGeometryTextureImageUnits") + resources->maxGeometryTextureImageUnits = value; + else if (tokenStr == "MaxGeometryOutputVertices") + resources->maxGeometryOutputVertices = value; + else if (tokenStr == "MaxGeometryTotalOutputComponents") + resources->maxGeometryTotalOutputComponents = value; + else if (tokenStr == "MaxGeometryUniformComponents") + resources->maxGeometryUniformComponents = value; + else if (tokenStr == "MaxGeometryVaryingComponents") + resources->maxGeometryVaryingComponents = value; + else if (tokenStr == "MaxTessControlInputComponents") + resources->maxTessControlInputComponents = value; + else if (tokenStr == "MaxTessControlOutputComponents") + resources->maxTessControlOutputComponents = value; + else if (tokenStr == "MaxTessControlTextureImageUnits") + resources->maxTessControlTextureImageUnits = value; + else if (tokenStr == "MaxTessControlUniformComponents") + resources->maxTessControlUniformComponents = value; + else if (tokenStr == "MaxTessControlTotalOutputComponents") + resources->maxTessControlTotalOutputComponents = value; + else if (tokenStr == "MaxTessEvaluationInputComponents") + resources->maxTessEvaluationInputComponents = value; + else if (tokenStr == "MaxTessEvaluationOutputComponents") + resources->maxTessEvaluationOutputComponents = value; + else if (tokenStr == "MaxTessEvaluationTextureImageUnits") + resources->maxTessEvaluationTextureImageUnits = value; + else if (tokenStr == "MaxTessEvaluationUniformComponents") + resources->maxTessEvaluationUniformComponents = value; + else if (tokenStr == "MaxTessPatchComponents") + resources->maxTessPatchComponents = value; + else if (tokenStr == "MaxPatchVertices") + resources->maxPatchVertices = value; + else if (tokenStr == "MaxTessGenLevel") + resources->maxTessGenLevel = value; + else if (tokenStr == "MaxViewports") + resources->maxViewports = value; + else if (tokenStr == "MaxVertexAtomicCounters") + resources->maxVertexAtomicCounters = value; + else if (tokenStr == "MaxTessControlAtomicCounters") + resources->maxTessControlAtomicCounters = value; + else if (tokenStr == "MaxTessEvaluationAtomicCounters") + resources->maxTessEvaluationAtomicCounters = value; + else if (tokenStr == "MaxGeometryAtomicCounters") + resources->maxGeometryAtomicCounters = value; + else if (tokenStr == "MaxFragmentAtomicCounters") + resources->maxFragmentAtomicCounters = value; + else if (tokenStr == "MaxCombinedAtomicCounters") + resources->maxCombinedAtomicCounters = value; + else if (tokenStr == "MaxAtomicCounterBindings") + resources->maxAtomicCounterBindings = value; + else if (tokenStr == "MaxVertexAtomicCounterBuffers") + resources->maxVertexAtomicCounterBuffers = value; + else if (tokenStr == "MaxTessControlAtomicCounterBuffers") + resources->maxTessControlAtomicCounterBuffers = value; + else if (tokenStr == "MaxTessEvaluationAtomicCounterBuffers") + resources->maxTessEvaluationAtomicCounterBuffers = value; + else if (tokenStr == "MaxGeometryAtomicCounterBuffers") + resources->maxGeometryAtomicCounterBuffers = value; + else if (tokenStr == "MaxFragmentAtomicCounterBuffers") + resources->maxFragmentAtomicCounterBuffers = value; + else if (tokenStr == "MaxCombinedAtomicCounterBuffers") + resources->maxCombinedAtomicCounterBuffers = value; + else if (tokenStr == "MaxAtomicCounterBufferSize") + resources->maxAtomicCounterBufferSize = value; + else if (tokenStr == "MaxTransformFeedbackBuffers") + resources->maxTransformFeedbackBuffers = value; + else if (tokenStr == "MaxTransformFeedbackInterleavedComponents") + resources->maxTransformFeedbackInterleavedComponents = value; + else if (tokenStr == "MaxCullDistances") + resources->maxCullDistances = value; + else if (tokenStr == "MaxCombinedClipAndCullDistances") + resources->maxCombinedClipAndCullDistances = value; + else if (tokenStr == "MaxSamples") + resources->maxSamples = value; + else if (tokenStr == "nonInductiveForLoops") + resources->limits.nonInductiveForLoops = (value != 0); + else if (tokenStr == "whileLoops") + resources->limits.whileLoops = (value != 0); + else if (tokenStr == "doWhileLoops") + resources->limits.doWhileLoops = (value != 0); + else if (tokenStr == "generalUniformIndexing") + resources->limits.generalUniformIndexing = (value != 0); + else if (tokenStr == "generalAttributeMatrixVectorIndexing") + resources->limits.generalAttributeMatrixVectorIndexing = (value != 0); + else if (tokenStr == "generalVaryingIndexing") + resources->limits.generalVaryingIndexing = (value != 0); + else if (tokenStr == "generalSamplerIndexing") + resources->limits.generalSamplerIndexing = (value != 0); + else if (tokenStr == "generalVariableIndexing") + resources->limits.generalVariableIndexing = (value != 0); + else if (tokenStr == "generalConstantMatrixVectorIndexing") + resources->limits.generalConstantMatrixVectorIndexing = (value != 0); + else + printf("Warning: unrecognized limit (%s) in configuration file.\n", tokenStr.c_str()); + + } +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/StandAlone/ResourceLimits.h b/deps/glslang/glslang/StandAlone/ResourceLimits.h new file mode 100644 index 0000000000..9c3eb3e9fb --- /dev/null +++ b/deps/glslang/glslang/StandAlone/ResourceLimits.h @@ -0,0 +1,57 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#ifndef _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ +#define _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ + +#include + +#include "glslang/Include/ResourceLimits.h" + +namespace glslang { + +// These are the default resources for TBuiltInResources, used for both +// - parsing this string for the case where the user didn't supply one, +// - dumping out a template for user construction of a config file. +extern const TBuiltInResource DefaultTBuiltInResource; + +// Returns the DefaultTBuiltInResource as a human-readable string. +std::string GetDefaultTBuiltInResourceString(); + +// Decodes the resource limits from |config| to |resources|. +void DecodeResourceLimits(TBuiltInResource* resources, char* config); + +} // end namespace glslang + +#endif // _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ diff --git a/deps/glslang/glslang/StandAlone/StandAlone.cpp b/deps/glslang/glslang/StandAlone/StandAlone.cpp new file mode 100644 index 0000000000..6736dbcbf3 --- /dev/null +++ b/deps/glslang/glslang/StandAlone/StandAlone.cpp @@ -0,0 +1,1501 @@ +// +// Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +// Copyright (C) 2013-2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +// this only applies to the standalone wrapper, not the front end in general +#ifndef _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "ResourceLimits.h" +#include "Worklist.h" +#include "DirStackFileIncluder.h" +#include "./../glslang/Include/ShHandle.h" +#include "./../glslang/Include/revision.h" +#include "./../glslang/Public/ShaderLang.h" +#include "../SPIRV/GlslangToSpv.h" +#include "../SPIRV/GLSL.std.450.h" +#include "../SPIRV/doc.h" +#include "../SPIRV/disassemble.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../glslang/OSDependent/osinclude.h" + +extern "C" { + SH_IMPORT_EXPORT void ShOutputHtml(); +} + +// Command-line options +enum TOptions { + EOptionNone = 0, + EOptionIntermediate = (1 << 0), + EOptionSuppressInfolog = (1 << 1), + EOptionMemoryLeakMode = (1 << 2), + EOptionRelaxedErrors = (1 << 3), + EOptionGiveWarnings = (1 << 4), + EOptionLinkProgram = (1 << 5), + EOptionMultiThreaded = (1 << 6), + EOptionDumpConfig = (1 << 7), + EOptionDumpReflection = (1 << 8), + EOptionSuppressWarnings = (1 << 9), + EOptionDumpVersions = (1 << 10), + EOptionSpv = (1 << 11), + EOptionHumanReadableSpv = (1 << 12), + EOptionVulkanRules = (1 << 13), + EOptionDefaultDesktop = (1 << 14), + EOptionOutputPreprocessed = (1 << 15), + EOptionOutputHexadecimal = (1 << 16), + EOptionReadHlsl = (1 << 17), + EOptionCascadingErrors = (1 << 18), + EOptionAutoMapBindings = (1 << 19), + EOptionFlattenUniformArrays = (1 << 20), + EOptionNoStorageFormat = (1 << 21), + EOptionKeepUncalled = (1 << 22), + EOptionHlslOffsets = (1 << 23), + EOptionHlslIoMapping = (1 << 24), + EOptionAutoMapLocations = (1 << 25), + EOptionDebug = (1 << 26), + EOptionStdin = (1 << 27), + EOptionOptimizeDisable = (1 << 28), + EOptionOptimizeSize = (1 << 29), + EOptionInvertY = (1 << 30), + EOptionDumpBareVersion = (1 << 31), +}; +bool targetHlslFunctionality1 = false; + +// +// Return codes from main/exit(). +// +enum TFailCode { + ESuccess = 0, + EFailUsage, + EFailCompile, + EFailLink, + EFailCompilerCreate, + EFailThreadCreate, + EFailLinkerCreate +}; + +// +// Forward declarations. +// +EShLanguage FindLanguage(const std::string& name, bool parseSuffix=true); +void CompileFile(const char* fileName, ShHandle); +void usage(); +char* ReadFileData(const char* fileName); +void FreeFileData(char* data); +void InfoLogMsg(const char* msg, const char* name, const int num); + +// Globally track if any compile or link failure. +bool CompileFailed = false; +bool LinkFailed = false; + +// array of unique places to leave the shader names and infologs for the asynchronous compiles +std::vector> WorkItems; + +TBuiltInResource Resources; +std::string ConfigFile; + +// +// Parse either a .conf file provided by the user or the default from glslang::DefaultTBuiltInResource +// +void ProcessConfigFile() +{ + if (ConfigFile.size() == 0) + Resources = glslang::DefaultTBuiltInResource; + else { + char* configString = ReadFileData(ConfigFile.c_str()); + glslang::DecodeResourceLimits(&Resources, configString); + FreeFileData(configString); + } +} + +int Options = 0; +const char* ExecutableName = nullptr; +const char* binaryFileName = nullptr; +const char* entryPointName = nullptr; +const char* sourceEntryPointName = nullptr; +const char* shaderStageName = nullptr; +const char* variableName = nullptr; +bool HlslEnable16BitTypes = false; +std::vector IncludeDirectoryList; +int ClientInputSemanticsVersion = 100; // maps to, say, #define VULKAN 100 +glslang::EShTargetClientVersion VulkanClientVersion = + glslang::EShTargetVulkan_1_0; // would map to, say, Vulkan 1.0 +glslang::EShTargetClientVersion OpenGLClientVersion = + glslang::EShTargetOpenGL_450; // doesn't influence anything yet, but maps to OpenGL 4.50 +glslang::EShTargetLanguageVersion TargetVersion = + glslang::EShTargetSpv_1_0; // maps to, say, SPIR-V 1.0 +std::vector Processes; // what should be recorded by OpModuleProcessed, or equivalent + +// Per descriptor-set binding base data +typedef std::map TPerSetBaseBinding; + +std::array, glslang::EResCount> baseBinding; +std::array, glslang::EResCount> baseBindingForSet; +std::array, EShLangCount> baseResourceSetBinding; + +// Add things like "#define ..." to a preamble to use in the beginning of the shader. +class TPreamble { +public: + TPreamble() { } + + bool isSet() const { return text.size() > 0; } + const char* get() const { return text.c_str(); } + + // #define... + void addDef(std::string def) + { + text.append("#define "); + fixLine(def); + + Processes.push_back("D"); + Processes.back().append(def); + + // The first "=" needs to turn into a space + const size_t equal = def.find_first_of("="); + if (equal != def.npos) + def[equal] = ' '; + + text.append(def); + text.append("\n"); + } + + // #undef... + void addUndef(std::string undef) + { + text.append("#undef "); + fixLine(undef); + + Processes.push_back("U"); + Processes.back().append(undef); + + text.append(undef); + text.append("\n"); + } + +protected: + void fixLine(std::string& line) + { + // Can't go past a newline in the line + const size_t end = line.find_first_of("\n"); + if (end != line.npos) + line = line.substr(0, end); + } + + std::string text; // contents of preamble +}; + +TPreamble UserPreamble; + +// +// Create the default name for saving a binary if -o is not provided. +// +const char* GetBinaryName(EShLanguage stage) +{ + const char* name; + if (binaryFileName == nullptr) { + switch (stage) { + case EShLangVertex: name = "vert.spv"; break; + case EShLangTessControl: name = "tesc.spv"; break; + case EShLangTessEvaluation: name = "tese.spv"; break; + case EShLangGeometry: name = "geom.spv"; break; + case EShLangFragment: name = "frag.spv"; break; + case EShLangCompute: name = "comp.spv"; break; + default: name = "unknown"; break; + } + } else + name = binaryFileName; + + return name; +} + +// +// *.conf => this is a config file that can set limits/resources +// +bool SetConfigFile(const std::string& name) +{ + if (name.size() < 5) + return false; + + if (name.compare(name.size() - 5, 5, ".conf") == 0) { + ConfigFile = name; + return true; + } + + return false; +} + +// +// Give error and exit with failure code. +// +void Error(const char* message) +{ + fprintf(stderr, "%s: Error %s (use -h for usage)\n", ExecutableName, message); + exit(EFailUsage); +} + +// +// Process an optional binding base of one the forms: +// --argname [stage] base // base for stage (if given) or all stages (if not) +// --argname [stage] [base set]... // set/base pairs: set the base for given binding set. + +// Where stage is one of the forms accepted by FindLanguage, and base is an integer +// +void ProcessBindingBase(int& argc, char**& argv, glslang::TResourceType res) +{ + if (argc < 2) + usage(); + + EShLanguage lang = EShLangCount; + int singleBase = 0; + TPerSetBaseBinding perSetBase; + int arg = 1; + + // Parse stage, if given + if (!isdigit(argv[arg][0])) { + if (argc < 3) // this form needs one more argument + usage(); + + lang = FindLanguage(argv[arg++], false); + } + + if ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) { + // Parse a per-set binding base + while ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) { + const int baseNum = atoi(argv[arg++]); + const int setNum = atoi(argv[arg++]); + perSetBase[setNum] = baseNum; + } + } else { + // Parse single binding base + singleBase = atoi(argv[arg++]); + } + + argc -= (arg-1); + argv += (arg-1); + + // Set one or all languages + const int langMin = (lang < EShLangCount) ? lang+0 : 0; + const int langMax = (lang < EShLangCount) ? lang+1 : EShLangCount; + + for (int lang = langMin; lang < langMax; ++lang) { + if (!perSetBase.empty()) + baseBindingForSet[res][lang] = perSetBase; + else + baseBinding[res][lang] = singleBase; + } +} + +void ProcessResourceSetBindingBase(int& argc, char**& argv, std::array, EShLangCount>& base) +{ + if (argc < 2) + usage(); + + if (!isdigit(argv[1][0])) { + if (argc < 3) // this form needs one more argument + usage(); + + // Parse form: --argname stage [regname set base...], or: + // --argname stage set + const EShLanguage lang = FindLanguage(argv[1], false); + + argc--; + argv++; + + while (argc > 1 && argv[1] != nullptr && argv[1][0] != '-') { + base[lang].push_back(argv[1]); + + argc--; + argv++; + } + + // Must have one arg, or a multiple of three (for [regname set binding] triples) + if (base[lang].size() != 1 && (base[lang].size() % 3) != 0) + usage(); + + } else { + // Parse form: --argname set + for (int lang=0; lang>& workItems, int argc, char* argv[]) +{ + for (int res = 0; res < glslang::EResCount; ++res) + baseBinding[res].fill(0); + + ExecutableName = argv[0]; + workItems.reserve(argc); + + const auto bumpArg = [&]() { + if (argc > 0) { + argc--; + argv++; + } + }; + + // read a string directly attached to a single-letter option + const auto getStringOperand = [&](const char* desc) { + if (argv[0][2] == 0) { + printf("%s must immediately follow option (no spaces)\n", desc); + exit(EFailUsage); + } + return argv[0] + 2; + }; + + // read a number attached to a single-letter option + const auto getAttachedNumber = [&](const char* desc) { + int num = atoi(argv[0] + 2); + if (num == 0) { + printf("%s: expected attached non-0 number\n", desc); + exit(EFailUsage); + } + return num; + }; + + // minimum needed (without overriding something else) to target Vulkan SPIR-V + const auto setVulkanSpv = []() { + Options |= EOptionSpv; + Options |= EOptionVulkanRules; + Options |= EOptionLinkProgram; + }; + + // minimum needed (without overriding something else) to target OpenGL SPIR-V + const auto setOpenGlSpv = []() { + Options |= EOptionSpv; + Options |= EOptionLinkProgram; + // undo a -H default to Vulkan + Options &= ~EOptionVulkanRules; + }; + + for (bumpArg(); argc >= 1; bumpArg()) { + if (argv[0][0] == '-') { + switch (argv[0][1]) { + case '-': + { + std::string lowerword(argv[0]+2); + std::transform(lowerword.begin(), lowerword.end(), lowerword.begin(), ::tolower); + + // handle --word style options + if (lowerword == "auto-map-bindings" || // synonyms + lowerword == "auto-map-binding" || + lowerword == "amb") { + Options |= EOptionAutoMapBindings; + } else if (lowerword == "auto-map-locations" || // synonyms + lowerword == "aml") { + Options |= EOptionAutoMapLocations; + } else if (lowerword == "client") { + if (argc > 1) { + if (strcmp(argv[1], "vulkan100") == 0) + setVulkanSpv(); + else if (strcmp(argv[1], "opengl100") == 0) + setOpenGlSpv(); + else + Error("--client expects vulkan100 or opengl100"); + } + bumpArg(); + } else if (lowerword == "flatten-uniform-arrays" || // synonyms + lowerword == "flatten-uniform-array" || + lowerword == "fua") { + Options |= EOptionFlattenUniformArrays; + } else if (lowerword == "hlsl-offsets") { + Options |= EOptionHlslOffsets; + } else if (lowerword == "hlsl-iomap" || + lowerword == "hlsl-iomapper" || + lowerword == "hlsl-iomapping") { + Options |= EOptionHlslIoMapping; + } else if (lowerword == "hlsl-enable-16bit-types") { + HlslEnable16BitTypes = true; + } else if (lowerword == "invert-y" || // synonyms + lowerword == "iy") { + Options |= EOptionInvertY; + } else if (lowerword == "keep-uncalled" || // synonyms + lowerword == "ku") { + Options |= EOptionKeepUncalled; + } else if (lowerword == "no-storage-format" || // synonyms + lowerword == "nsf") { + Options |= EOptionNoStorageFormat; + } else if (lowerword == "relaxed-errors") { + Options |= EOptionRelaxedErrors; + } else if (lowerword == "resource-set-bindings" || // synonyms + lowerword == "resource-set-binding" || + lowerword == "rsb") { + ProcessResourceSetBindingBase(argc, argv, baseResourceSetBinding); + } else if (lowerword == "shift-image-bindings" || // synonyms + lowerword == "shift-image-binding" || + lowerword == "sib") { + ProcessBindingBase(argc, argv, glslang::EResImage); + } else if (lowerword == "shift-sampler-bindings" || // synonyms + lowerword == "shift-sampler-binding" || + lowerword == "ssb") { + ProcessBindingBase(argc, argv, glslang::EResSampler); + } else if (lowerword == "shift-uav-bindings" || // synonyms + lowerword == "shift-uav-binding" || + lowerword == "suavb") { + ProcessBindingBase(argc, argv, glslang::EResUav); + } else if (lowerword == "shift-texture-bindings" || // synonyms + lowerword == "shift-texture-binding" || + lowerword == "stb") { + ProcessBindingBase(argc, argv, glslang::EResTexture); + } else if (lowerword == "shift-ubo-bindings" || // synonyms + lowerword == "shift-ubo-binding" || + lowerword == "shift-cbuffer-bindings" || + lowerword == "shift-cbuffer-binding" || + lowerword == "sub" || + lowerword == "scb") { + ProcessBindingBase(argc, argv, glslang::EResUbo); + } else if (lowerword == "shift-ssbo-bindings" || // synonyms + lowerword == "shift-ssbo-binding" || + lowerword == "sbb") { + ProcessBindingBase(argc, argv, glslang::EResSsbo); + } else if (lowerword == "source-entrypoint" || // synonyms + lowerword == "sep") { + if (argc <= 1) + Error("no provided for --source-entrypoint"); + sourceEntryPointName = argv[1]; + bumpArg(); + break; + } else if (lowerword == "stdin") { + Options |= EOptionStdin; + shaderStageName = argv[1]; + } else if (lowerword == "suppress-warnings") { + Options |= EOptionSuppressWarnings; + } else if (lowerword == "target-env") { + if (argc > 1) { + if (strcmp(argv[1], "vulkan1.0") == 0) { + setVulkanSpv(); + VulkanClientVersion = glslang::EShTargetVulkan_1_0; + } else if (strcmp(argv[1], "vulkan1.1") == 0) { + setVulkanSpv(); + TargetVersion = glslang::EShTargetSpv_1_3; + VulkanClientVersion = glslang::EShTargetVulkan_1_1; + } else if (strcmp(argv[1], "opengl") == 0) { + setOpenGlSpv(); + OpenGLClientVersion = glslang::EShTargetOpenGL_450; + } else + Error("--target-env expected vulkan1.0, vulkan1.1, or opengl"); + } + bumpArg(); + } else if (lowerword == "variable-name" || // synonyms + lowerword == "vn") { + Options |= EOptionOutputHexadecimal; + if (argc <= 1) + Error("no provided for --variable-name"); + variableName = argv[1]; + bumpArg(); + break; + } else if (lowerword == "version") { + Options |= EOptionDumpVersions; + } else { + usage(); + } + } + break; + case 'C': + Options |= EOptionCascadingErrors; + break; + case 'D': + if (argv[0][2] == 0) + Options |= EOptionReadHlsl; + else + UserPreamble.addDef(getStringOperand("-D macro name")); + break; + case 'E': + Options |= EOptionOutputPreprocessed; + break; + case 'G': + // OpenGL Client + setOpenGlSpv(); + if (argv[0][2] != 0) + ClientInputSemanticsVersion = getAttachedNumber("-G client input semantics"); + break; + case 'H': + Options |= EOptionHumanReadableSpv; + if ((Options & EOptionSpv) == 0) { + // default to Vulkan + setVulkanSpv(); + } + break; + case 'I': + IncludeDirectoryList.push_back(getStringOperand("-I include path")); + break; + case 'O': + if (argv[0][2] == 'd') + Options |= EOptionOptimizeDisable; + else if (argv[0][2] == 's') +#if ENABLE_OPT + Options |= EOptionOptimizeSize; +#else + Error("-Os not available; optimizer not linked"); +#endif + else + Error("unknown -O option"); + break; + case 'S': + if (argc <= 1) + Error("no specified for -S"); + shaderStageName = argv[1]; + bumpArg(); + break; + case 'U': + UserPreamble.addUndef(getStringOperand("-U: macro name")); + break; + case 'V': + setVulkanSpv(); + if (argv[0][2] != 0) + ClientInputSemanticsVersion = getAttachedNumber("-V client input semantics"); + break; + case 'c': + Options |= EOptionDumpConfig; + break; + case 'd': + if (strncmp(&argv[0][1], "dumpversion", strlen(&argv[0][1]) + 1) == 0 || + strncmp(&argv[0][1], "dumpfullversion", strlen(&argv[0][1]) + 1) == 0) + Options |= EOptionDumpBareVersion; + else + Options |= EOptionDefaultDesktop; + break; + case 'e': + // HLSL todo: entry point handle needs much more sophistication. + // This is okay for one compilation unit with one entry point. + entryPointName = argv[1]; + if (argc <= 1) + Error("no provided for -e"); + bumpArg(); + break; + case 'f': + if (strcmp(&argv[0][2], "hlsl_functionality1") == 0) + targetHlslFunctionality1 = true; + else + Error("-f: expected hlsl_functionality1"); + break; + case 'g': + Options |= EOptionDebug; + break; + case 'h': + usage(); + break; + case 'i': + Options |= EOptionIntermediate; + break; + case 'l': + Options |= EOptionLinkProgram; + break; + case 'm': + Options |= EOptionMemoryLeakMode; + break; + case 'o': + if (argc <= 1) + Error("no provided for -o"); + binaryFileName = argv[1]; + bumpArg(); + break; + case 'q': + Options |= EOptionDumpReflection; + break; + case 'r': + Options |= EOptionRelaxedErrors; + break; + case 's': + Options |= EOptionSuppressInfolog; + break; + case 't': + Options |= EOptionMultiThreaded; + break; + case 'v': + Options |= EOptionDumpVersions; + break; + case 'w': + Options |= EOptionSuppressWarnings; + break; + case 'x': + Options |= EOptionOutputHexadecimal; + break; + default: + usage(); + break; + } + } else { + std::string name(argv[0]); + if (! SetConfigFile(name)) { + workItems.push_back(std::unique_ptr(new glslang::TWorkItem(name))); + } + } + } + + // Make sure that -S is always specified if --stdin is specified + if ((Options & EOptionStdin) && shaderStageName == nullptr) + Error("must provide -S when --stdin is given"); + + // Make sure that -E is not specified alongside linking (which includes SPV generation) + if ((Options & EOptionOutputPreprocessed) && (Options & EOptionLinkProgram)) + Error("can't use -E when linking is selected"); + + // -o or -x makes no sense if there is no target binary + if (binaryFileName && (Options & EOptionSpv) == 0) + Error("no binary generation requested (e.g., -V)"); + + if ((Options & EOptionFlattenUniformArrays) != 0 && + (Options & EOptionReadHlsl) == 0) + Error("uniform array flattening only valid when compiling HLSL source."); +} + +// +// Translate the meaningful subset of command-line options to parser-behavior options. +// +void SetMessageOptions(EShMessages& messages) +{ + if (Options & EOptionRelaxedErrors) + messages = (EShMessages)(messages | EShMsgRelaxedErrors); + if (Options & EOptionIntermediate) + messages = (EShMessages)(messages | EShMsgAST); + if (Options & EOptionSuppressWarnings) + messages = (EShMessages)(messages | EShMsgSuppressWarnings); + if (Options & EOptionSpv) + messages = (EShMessages)(messages | EShMsgSpvRules); + if (Options & EOptionVulkanRules) + messages = (EShMessages)(messages | EShMsgVulkanRules); + if (Options & EOptionOutputPreprocessed) + messages = (EShMessages)(messages | EShMsgOnlyPreprocessor); + if (Options & EOptionReadHlsl) + messages = (EShMessages)(messages | EShMsgReadHlsl); + if (Options & EOptionCascadingErrors) + messages = (EShMessages)(messages | EShMsgCascadingErrors); + if (Options & EOptionKeepUncalled) + messages = (EShMessages)(messages | EShMsgKeepUncalled); + if (Options & EOptionHlslOffsets) + messages = (EShMessages)(messages | EShMsgHlslOffsets); + if (Options & EOptionDebug) + messages = (EShMessages)(messages | EShMsgDebugInfo); + if (HlslEnable16BitTypes) + messages = (EShMessages)(messages | EShMsgHlslEnable16BitTypes); + if ((Options & EOptionOptimizeDisable) || !ENABLE_OPT) + messages = (EShMessages)(messages | EShMsgHlslLegalization); +} + +// +// Thread entry point, for non-linking asynchronous mode. +// +void CompileShaders(glslang::TWorklist& worklist) +{ + if (Options & EOptionDebug) + Error("cannot generate debug information unless linking to generate code"); + + glslang::TWorkItem* workItem; + if (Options & EOptionStdin) { + worklist.remove(workItem); + ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), Options); + if (compiler == 0) + return; + + CompileFile("stdin", compiler); + + if (! (Options & EOptionSuppressInfolog)) + workItem->results = ShGetInfoLog(compiler); + + ShDestruct(compiler); + } else { + while (worklist.remove(workItem)) { + ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options); + if (compiler == 0) + return; + + CompileFile(workItem->name.c_str(), compiler); + + if (! (Options & EOptionSuppressInfolog)) + workItem->results = ShGetInfoLog(compiler); + + ShDestruct(compiler); + } + } +} + +// Outputs the given string, but only if it is non-null and non-empty. +// This prevents erroneous newlines from appearing. +void PutsIfNonEmpty(const char* str) +{ + if (str && str[0]) { + puts(str); + } +} + +// Outputs the given string to stderr, but only if it is non-null and non-empty. +// This prevents erroneous newlines from appearing. +void StderrIfNonEmpty(const char* str) +{ + if (str && str[0]) + fprintf(stderr, "%s\n", str); +} + +// Simple bundling of what makes a compilation unit for ease in passing around, +// and separation of handling file IO versus API (programmatic) compilation. +struct ShaderCompUnit { + EShLanguage stage; + static const int maxCount = 1; + int count; // live number of strings/names + const char* text[maxCount]; // memory owned/managed externally + std::string fileName[maxCount]; // hold's the memory, but... + const char* fileNameList[maxCount]; // downstream interface wants pointers + + ShaderCompUnit(EShLanguage stage) : stage(stage), count(0) { } + + ShaderCompUnit(const ShaderCompUnit& rhs) + { + stage = rhs.stage; + count = rhs.count; + for (int i = 0; i < count; ++i) { + fileName[i] = rhs.fileName[i]; + text[i] = rhs.text[i]; + fileNameList[i] = rhs.fileName[i].c_str(); + } + } + + void addString(std::string& ifileName, const char* itext) + { + assert(count < maxCount); + fileName[count] = ifileName; + text[count] = itext; + fileNameList[count] = fileName[count].c_str(); + ++count; + } +}; + +// +// For linking mode: Will independently parse each compilation unit, but then put them +// in the same program and link them together, making at most one linked module per +// pipeline stage. +// +// Uses the new C++ interface instead of the old handle-based interface. +// + +void CompileAndLinkShaderUnits(std::vector compUnits) +{ + // keep track of what to free + std::list shaders; + + EShMessages messages = EShMsgDefault; + SetMessageOptions(messages); + + // + // Per-shader processing... + // + + glslang::TProgram& program = *new glslang::TProgram; + for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) { + const auto &compUnit = *it; + glslang::TShader* shader = new glslang::TShader(compUnit.stage); + shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count); + if (entryPointName) // HLSL todo: this needs to be tracked per compUnits + shader->setEntryPoint(entryPointName); + if (sourceEntryPointName) { + if (entryPointName == nullptr) + printf("Warning: Changing source entry point name without setting an entry-point name.\n" + "Use '-e '.\n"); + shader->setSourceEntryPoint(sourceEntryPointName); + } + if (UserPreamble.isSet()) + shader->setPreamble(UserPreamble.get()); + shader->addProcesses(Processes); + + // Set IO mapper binding shift values + for (int r = 0; r < glslang::EResCount; ++r) { + const glslang::TResourceType res = glslang::TResourceType(r); + + // Set base bindings + shader->setShiftBinding(res, baseBinding[res][compUnit.stage]); + + // Set bindings for particular resource sets + // TODO: use a range based for loop here, when available in all environments. + for (auto i = baseBindingForSet[res][compUnit.stage].begin(); + i != baseBindingForSet[res][compUnit.stage].end(); ++i) + shader->setShiftBindingForSet(res, i->second, i->first); + } + + shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); + shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); + shader->setResourceSetBinding(baseResourceSetBinding[compUnit.stage]); + + if (Options & EOptionHlslIoMapping) + shader->setHlslIoMapping(true); + + if (Options & EOptionAutoMapBindings) + shader->setAutoMapBindings(true); + + if (Options & EOptionAutoMapLocations) + shader->setAutoMapLocations(true); + + if (Options & EOptionInvertY) + shader->setInvertY(true); + + // Set up the environment, some subsettings take precedence over earlier + // ways of setting things. + if (Options & EOptionSpv) { + if (Options & EOptionVulkanRules) { + shader->setEnvInput((Options & EOptionReadHlsl) ? glslang::EShSourceHlsl + : glslang::EShSourceGlsl, + compUnit.stage, glslang::EShClientVulkan, ClientInputSemanticsVersion); + shader->setEnvClient(glslang::EShClientVulkan, VulkanClientVersion); + } else { + shader->setEnvInput((Options & EOptionReadHlsl) ? glslang::EShSourceHlsl + : glslang::EShSourceGlsl, + compUnit.stage, glslang::EShClientOpenGL, ClientInputSemanticsVersion); + shader->setEnvClient(glslang::EShClientOpenGL, OpenGLClientVersion); + } + shader->setEnvTarget(glslang::EShTargetSpv, TargetVersion); + if (targetHlslFunctionality1) + shader->setEnvTargetHlslFunctionality1(); + } + + shaders.push_back(shader); + + const int defaultVersion = Options & EOptionDefaultDesktop ? 110 : 100; + + DirStackFileIncluder includer; + std::for_each(IncludeDirectoryList.rbegin(), IncludeDirectoryList.rend(), [&includer](const std::string& dir) { + includer.pushExternalLocalDirectory(dir); }); + if (Options & EOptionOutputPreprocessed) { + std::string str; + if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false, + messages, &str, includer)) { + PutsIfNonEmpty(str.c_str()); + } else { + CompileFailed = true; + } + StderrIfNonEmpty(shader->getInfoLog()); + StderrIfNonEmpty(shader->getInfoDebugLog()); + continue; + } + if (! shader->parse(&Resources, defaultVersion, false, messages, includer)) + CompileFailed = true; + + program.addShader(shader); + + if (! (Options & EOptionSuppressInfolog) && + ! (Options & EOptionMemoryLeakMode)) { + PutsIfNonEmpty(compUnit.fileName[0].c_str()); + PutsIfNonEmpty(shader->getInfoLog()); + PutsIfNonEmpty(shader->getInfoDebugLog()); + } + } + + // + // Program-level processing... + // + + // Link + if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages)) + LinkFailed = true; + + // Map IO + if (Options & EOptionSpv) { + if (!program.mapIO()) + LinkFailed = true; + } + + // Report + if (! (Options & EOptionSuppressInfolog) && + ! (Options & EOptionMemoryLeakMode)) { + PutsIfNonEmpty(program.getInfoLog()); + PutsIfNonEmpty(program.getInfoDebugLog()); + } + + // Reflect + if (Options & EOptionDumpReflection) { + program.buildReflection(); + program.dumpReflection(); + } + + // Dump SPIR-V + if (Options & EOptionSpv) { + if (CompileFailed || LinkFailed) + printf("SPIR-V is not generated for failed compile or link\n"); + else { + for (int stage = 0; stage < EShLangCount; ++stage) { + if (program.getIntermediate((EShLanguage)stage)) { + std::vector spirv; + std::string warningsErrors; + spv::SpvBuildLogger logger; + glslang::SpvOptions spvOptions; + if (Options & EOptionDebug) + spvOptions.generateDebugInfo = true; + spvOptions.disableOptimizer = (Options & EOptionOptimizeDisable) != 0; + spvOptions.optimizeSize = (Options & EOptionOptimizeSize) != 0; + glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv, &logger, &spvOptions); + + // Dump the spv to a file or stdout, etc., but only if not doing + // memory/perf testing, as it's not internal to programmatic use. + if (! (Options & EOptionMemoryLeakMode)) { + printf("%s", logger.getAllMessages().c_str()); + if (Options & EOptionOutputHexadecimal) { + glslang::OutputSpvHex(spirv, GetBinaryName((EShLanguage)stage), variableName); + } else { + glslang::OutputSpvBin(spirv, GetBinaryName((EShLanguage)stage)); + } + if (Options & EOptionHumanReadableSpv) { + spv::Disassemble(std::cout, spirv); + } + } + } + } + } + } + + // Free everything up, program has to go before the shaders + // because it might have merged stuff from the shaders, and + // the stuff from the shaders has to have its destructors called + // before the pools holding the memory in the shaders is freed. + delete &program; + while (shaders.size() > 0) { + delete shaders.back(); + shaders.pop_back(); + } +} + +// +// Do file IO part of compile and link, handing off the pure +// API/programmatic mode to CompileAndLinkShaderUnits(), which can +// be put in a loop for testing memory footprint and performance. +// +// This is just for linking mode: meaning all the shaders will be put into the +// the same program linked together. +// +// This means there are a limited number of work items (not multi-threading mode) +// and that the point is testing at the linking level. Hence, to enable +// performance and memory testing, the actual compile/link can be put in +// a loop, independent of processing the work items and file IO. +// +void CompileAndLinkShaderFiles(glslang::TWorklist& Worklist) +{ + std::vector compUnits; + + // If this is using stdin, we can't really detect multiple different file + // units by input type. We need to assume that we're just being given one + // file of a certain type. + if ((Options & EOptionStdin) != 0) { + ShaderCompUnit compUnit(FindLanguage("stdin")); + std::istreambuf_iterator begin(std::cin), end; + std::string tempString(begin, end); + char* fileText = strdup(tempString.c_str()); + std::string fileName = "stdin"; + compUnit.addString(fileName, fileText); + compUnits.push_back(compUnit); + } else { + // Transfer all the work items from to a simple list of + // of compilation units. (We don't care about the thread + // work-item distribution properties in this path, which + // is okay due to the limited number of shaders, know since + // they are all getting linked together.) + glslang::TWorkItem* workItem; + while (Worklist.remove(workItem)) { + ShaderCompUnit compUnit(FindLanguage(workItem->name)); + char* fileText = ReadFileData(workItem->name.c_str()); + if (fileText == nullptr) + usage(); + compUnit.addString(workItem->name, fileText); + compUnits.push_back(compUnit); + } + } + + // Actual call to programmatic processing of compile and link, + // in a loop for testing memory and performance. This part contains + // all the perf/memory that a programmatic consumer will care about. + for (int i = 0; i < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++i) { + for (int j = 0; j < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++j) + CompileAndLinkShaderUnits(compUnits); + + if (Options & EOptionMemoryLeakMode) + glslang::OS_DumpMemoryCounters(); + } + + // free memory from ReadFileData, which got stored in a const char* + // as the first string above + for (auto it = compUnits.begin(); it != compUnits.end(); ++it) + FreeFileData(const_cast(it->text[0])); +} + +int singleMain() +{ + glslang::TWorklist workList; + std::for_each(WorkItems.begin(), WorkItems.end(), [&workList](std::unique_ptr& item) { + assert(item); + workList.add(item.get()); + }); + + if (Options & EOptionDumpConfig) { + printf("%s", glslang::GetDefaultTBuiltInResourceString().c_str()); + if (workList.empty()) + return ESuccess; + } + + if (Options & EOptionDumpBareVersion) { + printf("%d.%d.%d\n", + glslang::GetSpirvGeneratorVersion(), GLSLANG_MINOR_VERSION, GLSLANG_PATCH_LEVEL); + if (workList.empty()) + return ESuccess; + } else if (Options & EOptionDumpVersions) { + printf("Glslang Version: %d.%d.%d\n", + glslang::GetSpirvGeneratorVersion(), GLSLANG_MINOR_VERSION, GLSLANG_PATCH_LEVEL); + printf("ESSL Version: %s\n", glslang::GetEsslVersionString()); + printf("GLSL Version: %s\n", glslang::GetGlslVersionString()); + std::string spirvVersion; + glslang::GetSpirvVersion(spirvVersion); + printf("SPIR-V Version %s\n", spirvVersion.c_str()); + printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision); + printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId()); + printf("SPIR-V Generator Version %d\n", glslang::GetSpirvGeneratorVersion()); + printf("GL_KHR_vulkan_glsl version %d\n", 100); + printf("ARB_GL_gl_spirv version %d\n", 100); + if (workList.empty()) + return ESuccess; + } + + if (workList.empty() && ((Options & EOptionStdin) == 0)) { + usage(); + } + + if (Options & EOptionStdin) { + WorkItems.push_back(std::unique_ptr{new glslang::TWorkItem("stdin")}); + workList.add(WorkItems.back().get()); + } + + ProcessConfigFile(); + + // + // Two modes: + // 1) linking all arguments together, single-threaded, new C++ interface + // 2) independent arguments, can be tackled by multiple asynchronous threads, for testing thread safety, using the old handle interface + // + if (Options & EOptionLinkProgram || + Options & EOptionOutputPreprocessed) { + glslang::InitializeProcess(); + glslang::InitializeProcess(); // also test reference counting of users + glslang::InitializeProcess(); // also test reference counting of users + glslang::FinalizeProcess(); // also test reference counting of users + glslang::FinalizeProcess(); // also test reference counting of users + CompileAndLinkShaderFiles(workList); + glslang::FinalizeProcess(); + } else { + ShInitialize(); + ShInitialize(); // also test reference counting of users + ShFinalize(); // also test reference counting of users + + bool printShaderNames = workList.size() > 1; + + if (Options & EOptionMultiThreaded) { + std::array threads; + for (unsigned int t = 0; t < threads.size(); ++t) { + threads[t] = std::thread(CompileShaders, std::ref(workList)); + if (threads[t].get_id() == std::thread::id()) { + fprintf(stderr, "Failed to create thread\n"); + return EFailThreadCreate; + } + } + + std::for_each(threads.begin(), threads.end(), [](std::thread& t) { t.join(); }); + } else + CompileShaders(workList); + + // Print out all the resulting infologs + for (size_t w = 0; w < WorkItems.size(); ++w) { + if (WorkItems[w]) { + if (printShaderNames || WorkItems[w]->results.size() > 0) + PutsIfNonEmpty(WorkItems[w]->name.c_str()); + PutsIfNonEmpty(WorkItems[w]->results.c_str()); + } + } + + ShFinalize(); + } + + if (CompileFailed) + return EFailCompile; + if (LinkFailed) + return EFailLink; + + return 0; +} + +int C_DECL main(int argc, char* argv[]) +{ + ProcessArguments(WorkItems, argc, argv); + + int ret = 0; + + // Loop over the entire init/finalize cycle to watch memory changes + const int iterations = 1; + if (iterations > 1) + glslang::OS_DumpMemoryCounters(); + for (int i = 0; i < iterations; ++i) { + ret = singleMain(); + if (iterations > 1) + glslang::OS_DumpMemoryCounters(); + } + + return ret; +} + +// +// Deduce the language from the filename. Files must end in one of the +// following extensions: +// +// .vert = vertex +// .tesc = tessellation control +// .tese = tessellation evaluation +// .geom = geometry +// .frag = fragment +// .comp = compute +// +// Additionally, the file names may end in ..glsl and ..hlsl +// where is one of the stages listed above. +// +EShLanguage FindLanguage(const std::string& name, bool parseStageName) +{ + std::string stageName; + if (shaderStageName) + stageName = shaderStageName; + else if (parseStageName) { + // Note: "first" extension means "first from the end", i.e. + // if the file is named foo.vert.glsl, then "glsl" is first, + // "vert" is second. + size_t firstExtStart = name.find_last_of("."); + bool hasFirstExt = firstExtStart != std::string::npos; + size_t secondExtStart = hasFirstExt ? name.find_last_of(".", firstExtStart - 1) : std::string::npos; + bool hasSecondExt = secondExtStart != std::string::npos; + std::string firstExt = name.substr(firstExtStart + 1, std::string::npos); + bool usesUnifiedExt = hasFirstExt && (firstExt == "glsl" || firstExt == "hlsl"); + if (usesUnifiedExt && firstExt == "hlsl") + Options |= EOptionReadHlsl; + if (hasFirstExt && !usesUnifiedExt) + stageName = firstExt; + else if (usesUnifiedExt && hasSecondExt) + stageName = name.substr(secondExtStart + 1, firstExtStart - secondExtStart - 1); + else { + usage(); + return EShLangVertex; + } + } else + stageName = name; + + if (stageName == "vert") + return EShLangVertex; + else if (stageName == "tesc") + return EShLangTessControl; + else if (stageName == "tese") + return EShLangTessEvaluation; + else if (stageName == "geom") + return EShLangGeometry; + else if (stageName == "frag") + return EShLangFragment; + else if (stageName == "comp") + return EShLangCompute; + + usage(); + return EShLangVertex; +} + +// +// Read a file's data into a string, and compile it using the old interface ShCompile, +// for non-linkable results. +// +void CompileFile(const char* fileName, ShHandle compiler) +{ + int ret = 0; + char* shaderString; + if ((Options & EOptionStdin) != 0) { + std::istreambuf_iterator begin(std::cin), end; + std::string tempString(begin, end); + shaderString = strdup(tempString.c_str()); + } else { + shaderString = ReadFileData(fileName); + } + + // move to length-based strings, rather than null-terminated strings + int* lengths = new int[1]; + lengths[0] = (int)strlen(shaderString); + + EShMessages messages = EShMsgDefault; + SetMessageOptions(messages); + + if (UserPreamble.isSet()) + Error("-D and -U options require -l (linking)\n"); + + for (int i = 0; i < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++i) { + for (int j = 0; j < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++j) { + // ret = ShCompile(compiler, shaderStrings, NumShaderStrings, lengths, EShOptNone, &Resources, Options, (Options & EOptionDefaultDesktop) ? 110 : 100, false, messages); + ret = ShCompile(compiler, &shaderString, 1, nullptr, EShOptNone, &Resources, Options, (Options & EOptionDefaultDesktop) ? 110 : 100, false, messages); + // const char* multi[12] = { "# ve", "rsion", " 300 e", "s", "\n#err", + // "or should be l", "ine 1", "string 5\n", "float glo", "bal", + // ";\n#error should be line 2\n void main() {", "global = 2.3;}" }; + // const char* multi[7] = { "/", "/", "\\", "\n", "\n", "#", "version 300 es" }; + // ret = ShCompile(compiler, multi, 7, nullptr, EShOptNone, &Resources, Options, (Options & EOptionDefaultDesktop) ? 110 : 100, false, messages); + } + + if (Options & EOptionMemoryLeakMode) + glslang::OS_DumpMemoryCounters(); + } + + delete [] lengths; + FreeFileData(shaderString); + + if (ret == 0) + CompileFailed = true; +} + +// +// print usage to stdout +// +void usage() +{ + printf("Usage: glslangValidator [option]... [file]...\n" + "\n" + "'file' can end in . for auto-stage classification, where is:\n" + " .conf to provide a config file that replaces the default configuration\n" + " (see -c option below for generating a template)\n" + " .vert for a vertex shader\n" + " .tesc for a tessellation control shader\n" + " .tese for a tessellation evaluation shader\n" + " .geom for a geometry shader\n" + " .frag for a fragment shader\n" + " .comp for a compute shader\n" + " .glsl for .vert.glsl, .tesc.glsl, ..., .comp.glsl compound suffixes\n" + " .hlsl for .vert.hlsl, .tesc.hlsl, ..., .comp.hlsl compound suffixes\n" + "\n" + "Options:\n" + " -C cascading errors; risk crash from accumulation of error recoveries\n" + " -D input is HLSL (default when any suffix is .hlsl)\n" + " -D\n" + " -D define a pre-processor macro\n" + " -E print pre-processed GLSL; cannot be used with -l;\n" + " errors will appear on stderr.\n" + " -G[ver] create SPIR-V binary, under OpenGL semantics; turns on -l;\n" + " default file name is .spv (-o overrides this)\n" + " 'ver', when present, is the version of the input semantics,\n" + " which will appear in #define GL_SPIRV ver\n" + " '--client opengl100' is the same as -G100\n" + " a '--target-env' for OpenGL will also imply '-G'\n" + " -H print human readable form of SPIR-V; turns on -V\n" + " -I add dir to the include search path; includer's directory\n" + " is searched first, followed by left-to-right order of -I\n" + " -Od disables optimization. May cause illegal SPIR-V for HLSL.\n" + " -Os optimizes SPIR-V to minimize size.\n" + " -S uses specified stage rather than parsing the file extension\n" + " choices for are vert, tesc, tese, geom, frag, or comp\n" + " -U undefine a pre-processor macro\n" + " -V[ver] create SPIR-V binary, under Vulkan semantics; turns on -l;\n" + " default file name is .spv (-o overrides this)\n" + " 'ver', when present, is the version of the input semantics,\n" + " which will appear in #define VULKAN ver\n" + " '--client vulkan100' is the same as -V100\n" + " a '--target-env' for Vulkan will also imply '-V'\n" + " -c configuration dump;\n" + " creates the default configuration file (redirect to a .conf file)\n" + " -d default to desktop (#version 110) when there is no shader #version\n" + " (default is ES version 100)\n" + " -e specify as the entry-point name\n" + " -f{hlsl_functionality1}\n" + " 'hlsl_functionality1' enables use of the\n" + " SPV_GOOGLE_hlsl_functionality1 extension\n" + " -g generate debug information\n" + " -h print this usage message\n" + " -i intermediate tree (glslang AST) is printed out\n" + " -l link all input files together to form a single module\n" + " -m memory leak mode\n" + " -o save binary to , requires a binary option (e.g., -V)\n" + " -q dump reflection query database\n" + " -r synonym for --relaxed-errors\n" + " -s silence syntax and semantic error reporting\n" + " -t multi-threaded mode\n" + " -v print version strings\n" + " -w synonym for --suppress-warnings\n" + " -x save binary output as text-based 32-bit hexadecimal numbers\n" + " --auto-map-bindings automatically bind uniform variables\n" + " without explicit bindings.\n" + " --amb synonym for --auto-map-bindings\n" + " --auto-map-locations automatically locate input/output lacking\n" + " 'location' (fragile, not cross stage)\n" + " --aml synonym for --auto-map-locations\n" + " --client {vulkan|opengl} see -V and -G\n" + " -dumpfullversion print bare major.minor.patchlevel\n" + " -dumpversion same as -dumpfullversion\n" + " --flatten-uniform-arrays flatten uniform texture/sampler arrays to\n" + " scalars\n" + " --fua synonym for --flatten-uniform-arrays\n" + " --hlsl-offsets Allow block offsets to follow HLSL rules\n" + " Works independently of source language\n" + " --hlsl-iomap Perform IO mapping in HLSL register space\n" + " --hlsl-enable-16bit-types Allow use of 16-bit types in SPIR-V for HLSL\n" + " --invert-y | --iy invert position.Y output in vertex shader\n" + " --keep-uncalled don't eliminate uncalled functions\n" + " --ku synonym for --keep-uncalled\n" + " --no-storage-format use Unknown image format\n" + " --nsf synonym for --no-storage-format\n" + " --relaxed-errors relaxed GLSL semantic error-checking mode\n" + " --resource-set-binding [stage] name set binding\n" + " Set descriptor set and binding for individual resources\n" + " --resource-set-binding [stage] set\n" + " Set descriptor set for all resources\n" + " --rsb [stage] type set binding synonym for --resource-set-binding\n" + " --shift-image-binding [stage] num base binding number for images (uav)\n" + " --shift-image-binding [stage] [num set]... per-descriptor-set shift values\n" + " --sib [stage] num synonym for --shift-image-binding\n" + " --shift-sampler-binding [stage] num base binding number for samplers\n" + " --shift-sampler-binding [stage] [num set]... per-descriptor-set shift values\n" + " --ssb [stage] num synonym for --shift-sampler-binding\n" + " --shift-ssbo-binding [stage] num base binding number for SSBOs\n" + " --shift-ssbo-binding [stage] [num set]... per-descriptor-set shift values\n" + " --sbb [stage] num synonym for --shift-ssbo-binding\n" + " --shift-texture-binding [stage] num base binding number for textures\n" + " --shift-texture-binding [stage] [num set]... per-descriptor-set shift values\n" + " --stb [stage] num synonym for --shift-texture-binding\n" + " --shift-uav-binding [stage] num base binding number for UAVs\n" + " --shift-uav-binding [stage] [num set]... per-descriptor-set shift values\n" + " --suavb [stage] num synonym for --shift-uav-binding\n" + " --shift-UBO-binding [stage] num base binding number for UBOs\n" + " --shift-UBO-binding [stage] [num set]... per-descriptor-set shift values\n" + " --shift-cbuffer-binding [stage] num synonym for --shift-UBO-binding\n" + " --shift-cbuffer-binding [stage] [num set]... per-descriptor-set shift values\n" + " --sub [stage] num synonym for --shift-UBO-binding\n" + " --source-entrypoint the given shader source function is\n" + " renamed to be the given in -e\n" + " --sep synonym for --source-entrypoint\n" + " --stdin Read from stdin instead of from a file.\n" + " You'll have to provide the shader stage\n" + " using -S.\n" + " --suppress-warnings suppress GLSL warnings\n" + " (except as required by #extension : warn)\n" + " --target-env {vulkan1.0 | vulkan1.1 | opengl} \n" + " set execution environment that emitted code\n" + " will execute in (as opposed to the language\n" + " semantics selected by --client) defaults:\n" + " 'vulkan1.0' under '--client vulkan'\n" + " 'opengl' under '--client opengl'\n" + " --variable-name Creates a C header file that contains a\n" + " uint32_t array named \n" + " initialized with the shader binary code.\n" + " --version synonym for -v\n" + " --vn synonym for --variable-name \n" + ); + + exit(EFailUsage); +} + +#if !defined _MSC_VER && !defined MINGW_HAS_SECURE_API + +#include + +int fopen_s( + FILE** pFile, + const char* filename, + const char* mode +) +{ + if (!pFile || !filename || !mode) { + return EINVAL; + } + + FILE* f = fopen(filename, mode); + if (! f) { + if (errno != 0) { + return errno; + } else { + return ENOENT; + } + } + *pFile = f; + + return 0; +} + +#endif + +// +// Malloc a string of sufficient size and read a string into it. +// +char* ReadFileData(const char* fileName) +{ + FILE *in = nullptr; + int errorCode = fopen_s(&in, fileName, "r"); + if (errorCode || in == nullptr) + Error("unable to open input file"); + + int count = 0; + while (fgetc(in) != EOF) + count++; + + fseek(in, 0, SEEK_SET); + + char* return_data = (char*)malloc(count + 1); // freed in FreeFileData() + if ((int)fread(return_data, 1, count, in) != count) { + free(return_data); + Error("can't read input file"); + } + + return_data[count] = '\0'; + fclose(in); + + return return_data; +} + +void FreeFileData(char* data) +{ + free(data); +} + +void InfoLogMsg(const char* msg, const char* name, const int num) +{ + if (num >= 0 ) + printf("#### %s %s %d INFO LOG ####\n", msg, name, num); + else + printf("#### %s %s INFO LOG ####\n", msg, name); +} diff --git a/deps/glslang/glslang/StandAlone/Worklist.h b/deps/glslang/glslang/StandAlone/Worklist.h new file mode 100644 index 0000000000..91b6f516be --- /dev/null +++ b/deps/glslang/glslang/StandAlone/Worklist.h @@ -0,0 +1,95 @@ +// +// Copyright (C) 2013 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +#ifndef WORKLIST_H_INCLUDED +#define WORKLIST_H_INCLUDED + +#include "../glslang/OSDependent/osinclude.h" +#include +#include +#include + +namespace glslang { + + class TWorkItem { + public: + TWorkItem() { } + explicit TWorkItem(const std::string& s) : + name(s) { } + std::string name; + std::string results; + std::string resultsIndex; + }; + + class TWorklist { + public: + TWorklist() { } + virtual ~TWorklist() { } + + void add(TWorkItem* item) + { + std::lock_guard guard(mutex); + worklist.push_back(item); + } + + bool remove(TWorkItem*& item) + { + std::lock_guard guard(mutex); + + if (worklist.empty()) + return false; + item = worklist.front(); + worklist.pop_front(); + + return true; + } + + int size() + { + return (int)worklist.size(); + } + + bool empty() + { + return worklist.empty(); + } + + protected: + std::mutex mutex; + std::list worklist; + }; + +} // end namespace glslang + +#endif // WORKLIST_H_INCLUDED diff --git a/deps/glslang/glslang/StandAlone/spirv-remap.cpp b/deps/glslang/glslang/StandAlone/spirv-remap.cpp new file mode 100644 index 0000000000..998f7428aa --- /dev/null +++ b/deps/glslang/glslang/StandAlone/spirv-remap.cpp @@ -0,0 +1,343 @@ +// +// Copyright (C) 2015 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#include +#include +#include +#include + +#include "../SPIRV/SPVRemapper.h" + +namespace { + + typedef unsigned int SpvWord; + + // Poor man's basename: given a complete path, return file portion. + // E.g: + // Linux: /foo/bar/test -> test + // Win: c:\foo\bar\test -> test + // It's not very efficient, but that doesn't matter for our minimal-duty use. + // Using boost::filesystem would be better in many ways, but want to avoid that dependency. + + // OS dependent path separator (avoiding boost::filesystem dependency) +#if defined(_WIN32) + char path_sep_char() { return '\\'; } +#else + char path_sep_char() { return '/'; } +#endif + + std::string basename(const std::string filename) + { + const size_t sepLoc = filename.find_last_of(path_sep_char()); + + return (sepLoc == filename.npos) ? filename : filename.substr(sepLoc+1); + } + + void errHandler(const std::string& str) { + std::cout << str << std::endl; + exit(5); + } + + void logHandler(const std::string& str) { + std::cout << str << std::endl; + } + + // Read word stream from disk + void read(std::vector& spv, const std::string& inFilename, int verbosity) + { + std::ifstream fp; + + if (verbosity > 0) + logHandler(std::string(" reading: ") + inFilename); + + spv.clear(); + fp.open(inFilename, std::fstream::in | std::fstream::binary); + + if (fp.fail()) + errHandler("error opening file for read: "); + + // Reserve space (for efficiency, not for correctness) + fp.seekg(0, fp.end); + spv.reserve(size_t(fp.tellg()) / sizeof(SpvWord)); + fp.seekg(0, fp.beg); + + while (!fp.eof()) { + SpvWord inWord; + fp.read((char *)&inWord, sizeof(inWord)); + + if (!fp.eof()) { + spv.push_back(inWord); + if (fp.fail()) + errHandler(std::string("error reading file: ") + inFilename); + } + } + } + + void write(std::vector& spv, const std::string& outFile, int verbosity) + { + if (outFile.empty()) + errHandler("missing output filename."); + + std::ofstream fp; + + if (verbosity > 0) + logHandler(std::string(" writing: ") + outFile); + + fp.open(outFile, std::fstream::out | std::fstream::binary); + + if (fp.fail()) + errHandler(std::string("error opening file for write: ") + outFile); + + for (auto it = spv.cbegin(); it != spv.cend(); ++it) { + SpvWord word = *it; + fp.write((char *)&word, sizeof(word)); + if (fp.fail()) + errHandler(std::string("error writing file: ") + outFile); + } + + // file is closed by destructor + } + + // Print helpful usage message to stdout, and exit + void usage(const char* const name, const char* const msg = 0) + { + if (msg) + std::cout << msg << std::endl << std::endl; + + std::cout << "Usage: " << std::endl; + + std::cout << " " << basename(name) + << " [-v[v[...]] | --verbose [int]]" + << " [--map (all|types|names|funcs)]" + << " [--dce (all|types|funcs)]" + << " [--opt (all|loadstore)]" + << " [--strip-all | --strip all | -s]" + << " [--do-everything]" + << " --input | -i file1 [file2...] --output|-o DESTDIR" + << std::endl; + + std::cout << " " << basename(name) << " [--version | -V]" << std::endl; + std::cout << " " << basename(name) << " [--help | -?]" << std::endl; + + exit(5); + } + + // grind through each SPIR in turn + void execute(const std::vector& inputFile, const std::string& outputDir, + int opts, int verbosity) + { + for (auto it = inputFile.cbegin(); it != inputFile.cend(); ++it) { + const std::string &filename = *it; + std::vector spv; + read(spv, filename, verbosity); + spv::spirvbin_t(verbosity).remap(spv, opts); + + const std::string outfile = outputDir + path_sep_char() + basename(filename); + + write(spv, outfile, verbosity); + } + + if (verbosity > 0) + std::cout << "Done: " << inputFile.size() << " file(s) processed" << std::endl; + } + + // Parse command line options + void parseCmdLine(int argc, char** argv, std::vector& inputFile, + std::string& outputDir, + int& options, + int& verbosity) + { + if (argc < 2) + usage(argv[0]); + + verbosity = 0; + options = spv::spirvbin_t::NONE; + + // Parse command line. + // boost::program_options would be quite a bit nicer, but we don't want to + // introduce a dependency on boost. + for (int a=1; a= argc) + usage(argv[0], "--output requires an argument"); + if (!outputDir.empty()) + usage(argv[0], "--output can be provided only once"); + + outputDir = argv[a++]; + + // Remove trailing directory separator characters + while (!outputDir.empty() && outputDir.back() == path_sep_char()) + outputDir.pop_back(); + + } + else if (arg == "-vv") { verbosity = 2; ++a; } // verbosity shortcuts + else if (arg == "-vvv") { verbosity = 3; ++a; } // ... + else if (arg == "-vvvv") { verbosity = 4; ++a; } // ... + else if (arg == "-vvvvv") { verbosity = 5; ++a; } // ... + + else if (arg == "--verbose" || arg == "-v") { + ++a; + verbosity = 1; + + if (a < argc) { + char* end_ptr = 0; + int verb = ::strtol(argv[a], &end_ptr, 10); + // If we have not read to the end of the string or + // the string contained no elements, then we do not want to + // store the value. + if (*end_ptr == '\0' && end_ptr != argv[a]) { + verbosity = verb; + ++a; + } + } + } + else if (arg == "--version" || arg == "-V") { + std::cout << basename(argv[0]) << " version 0.97 " << __DATE__ << " " << __TIME__ << std::endl; + exit(0); + } else if (arg == "--input" || arg == "-i") { + // Collect input files + for (++a; a < argc && argv[a][0] != '-'; ++a) + inputFile.push_back(argv[a]); + } else if (arg == "--do-everything") { + ++a; + options = options | spv::spirvbin_t::DO_EVERYTHING; + } else if (arg == "--strip-all" || arg == "-s") { + ++a; + options = options | spv::spirvbin_t::STRIP; + } else if (arg == "--strip") { + ++a; + if (strncmp(argv[a], "all", 3) == 0) { + options = options | spv::spirvbin_t::STRIP; + ++a; + } + } else if (arg == "--dce") { + // Parse comma (or colon, etc) separated list of things to dce + ++a; + for (const char* c = argv[a]; *c; ++c) { + if (strncmp(c, "all", 3) == 0) { + options = (options | spv::spirvbin_t::DCE_ALL); + c += 3; + } else if (strncmp(c, "*", 1) == 0) { + options = (options | spv::spirvbin_t::DCE_ALL); + c += 1; + } else if (strncmp(c, "funcs", 5) == 0) { + options = (options | spv::spirvbin_t::DCE_FUNCS); + c += 5; + } else if (strncmp(c, "types", 5) == 0) { + options = (options | spv::spirvbin_t::DCE_TYPES); + c += 5; + } + } + ++a; + } else if (arg == "--map") { + // Parse comma (or colon, etc) separated list of things to map + ++a; + for (const char* c = argv[a]; *c; ++c) { + if (strncmp(c, "all", 3) == 0) { + options = (options | spv::spirvbin_t::MAP_ALL); + c += 3; + } else if (strncmp(c, "*", 1) == 0) { + options = (options | spv::spirvbin_t::MAP_ALL); + c += 1; + } else if (strncmp(c, "types", 5) == 0) { + options = (options | spv::spirvbin_t::MAP_TYPES); + c += 5; + } else if (strncmp(c, "names", 5) == 0) { + options = (options | spv::spirvbin_t::MAP_NAMES); + c += 5; + } else if (strncmp(c, "funcs", 5) == 0) { + options = (options | spv::spirvbin_t::MAP_FUNCS); + c += 5; + } + } + ++a; + } else if (arg == "--opt") { + ++a; + for (const char* c = argv[a]; *c; ++c) { + if (strncmp(c, "all", 3) == 0) { + options = (options | spv::spirvbin_t::OPT_ALL); + c += 3; + } else if (strncmp(c, "*", 1) == 0) { + options = (options | spv::spirvbin_t::OPT_ALL); + c += 1; + } else if (strncmp(c, "loadstore", 9) == 0) { + options = (options | spv::spirvbin_t::OPT_LOADSTORE); + c += 9; + } + } + ++a; + } else if (arg == "--help" || arg == "-?") { + usage(argv[0]); + } else { + usage(argv[0], "Unknown command line option"); + } + } + } + +} // namespace + +int main(int argc, char** argv) +{ + std::vector inputFile; + std::string outputDir; + int opts; + int verbosity; + +#ifdef use_cpp11 + // handle errors by exiting + spv::spirvbin_t::registerErrorHandler(errHandler); + + // Log messages to std::cout + spv::spirvbin_t::registerLogHandler(logHandler); +#endif + + if (argc < 2) + usage(argv[0]); + + parseCmdLine(argc, argv, inputFile, outputDir, opts, verbosity); + + if (outputDir.empty()) + usage(argv[0], "Output directory required"); + + std::string errmsg; + + // Main operations: read, remap, and write. + execute(inputFile, outputDir, opts, verbosity); + + // If we get here, everything went OK! Nothing more to be done. +} diff --git a/deps/glslang/glslang/Test/100.conf b/deps/glslang/glslang/Test/100.conf new file mode 100644 index 0000000000..3899d34366 --- /dev/null +++ b/deps/glslang/glslang/Test/100.conf @@ -0,0 +1,28 @@ +MaxLights 32 +MaxClipPlanes 6 +MaxTextureUnits 32 +MaxTextureCoords 32 +MaxVertexAttribs 8 +MaxVertexUniformComponents 4096 +MaxVaryingFloats 64 +MaxVertexTextureImageUnits 0 +MaxCombinedTextureImageUnits 8 +MaxTextureImageUnits 8 +MaxFragmentUniformComponents 4096 +MaxDrawBuffers 1 +MaxVertexUniformVectors 16 +MaxVaryingVectors 8 +MaxFragmentUniformVectors 16 +MaxVertexOutputVectors 16 +MaxFragmentInputVectors 15 +MinProgramTexelOffset -8 +MaxProgramTexelOffset 7 +nonInductiveForLoops 0 +whileLoops 0 +doWhileLoops 0 +generalUniformIndexing 0 +generalAttributeMatrixVectorIndexing 0 +generalVaryingIndexing 0 +generalSamplerIndexing 0 +generalVariableIndexing 0 +generalConstantMatrixVectorIndexing 0 diff --git a/deps/glslang/glslang/Test/100.frag b/deps/glslang/glslang/Test/100.frag new file mode 100644 index 0000000000..4f0c69b5dd --- /dev/null +++ b/deps/glslang/glslang/Test/100.frag @@ -0,0 +1,227 @@ +// okay +#version 100 +int a[3] = { 2, 3, 4, }; // ERROR (lots) +#version 100 +int uint; + +attribute vec4 v[3]; // ERROR + +float f = 2; // ERROR + +uniform block { // ERROR + int x; +}; + +void foo(float); + +void main() +{ + foo(3); // ERROR + int s = 1 << 4; // ERROR + s = 16 >> 2; // ERROR + if (a == a); // ERROR + int b, c; + b = c & 4; // ERROR + b = c % 4; // ERROR + b = c | 4; // ERROR + b >>= 2; // ERROR + b <<= 2; // ERROR + b %= 3; // ERROR + + struct S { + float f; + float a[10]; + } s1, s2; + + s1 = s2; // ERROR + if (s1 == s2); // ERROR + if (s1 != s2); // ERROR + + switch(b) { // ERROR + } +} + +invariant gl_FragColor; +float fa[]; // ERROR +float f13; +invariant f13; // ERROR +struct S { int a; }; +invariant S; // ERROR, not an input or output +invariant float fi; // ERROR +varying vec4 av; +invariant av; // okay in v100 + +void foo10() +{ + invariant f; // ERROR + invariant float f2; // ERROR + float f3; + invariant f3; // ERROR +} + +uniform vec2 uv2; +invariant uv2; // ERROR +invariant uniform vec3 uv3; // ERROR + +sampler2D glob2D; // ERROR +void f11(sampler2D p2d) +{ + sampler2D v2D; // ERROR +} +varying sampler2D vary2D; // ERROR + +struct sp { + highp float f; + in float g; // ERROR + uniform float h; // ERROR + invariant float i; // ERROR +}; + +uniform sampler3D s3D; // ERROR + +#extension GL_OES_texture_3D : enable + +precision highp sampler3D; +uniform sampler3D s3D2; + +void foo234() +{ + texture3D(s3D2, vec3(0.2), 0.2); + texture3DProj(s3D2, v[1], 0.4); + dFdx(v[0]); // ERROR + dFdy(3.2); // ERROR + fwidth(f13); // ERROR +} + +#extension GL_OES_standard_derivatives : enable + +void foo236() +{ + dFdx(v[0]); + dFdy(3.2); + fwidth(f13); + gl_FragDepth = f13; // ERROR + gl_FragDepthEXT = f13; // ERROR +} + +#extension GL_EXT_frag_depth : enable + +void foo239() +{ + gl_FragDepth = f13; // ERROR + gl_FragDepthEXT = f13; +} + +#extension GL_OES_EGL_image_external : enable + +uniform samplerExternalOES sExt; + +void foo245() +{ + texture2D(sExt, vec2(0.2)); + texture2DProj(sExt, vec3(f13)); + texture2DProj(sExt, v[2]); +} + +precision mediump samplerExternalOES; +uniform samplerExternalOES mediumExt; +uniform highp samplerExternalOES highExt; + +void foo246() +{ + texture2D(mediumExt, vec2(0.2)); + texture2DProj(highExt, v[2]); + texture3D(sExt, vec3(f13)); // ERROR + texture2DProjLod(sExt, vec3(f13), f13); // ERROR + int a; + ~a; // ERROR + a | a; // ERROR + a & a; // ERROR +} + +#extension GL_OES_EGL_image_external : disable +uniform sampler2D s2Dg; + +int foo203940(int a, float b, float a) // ERROR, a redefined +{ + texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); // ERROR, extension not enabled + return a; +} + +float f123 = 4.0f; // ERROR +float f124 = 5e10F; // ERROR + +#extension GL_EXT_shader_texture_lod : enable + +uniform samplerCube sCube; + +void foo323433() +{ + texture2DLodEXT(s2Dg, uv2, f13); + texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); + texture2DGradEXT(s2Dg, uv2, uv2, uv2); + textureCubeGradEXT(sCube, vec3(f13), vec3(f13), vec3(f13)); +} + +int fgfg(float f, mediump int i); +int fgfg(float f, highp int i) { return 2; } // ERROR, precision qualifier difference + +int fffg(float f); +int fffg(float f); // ERROR, can't have multiple prototypes + +int gggf(float f); +int gggf(float f) { return 2; } + +int agggf(float f) { return 2; } +int agggf(float f); +int agggf(float f); // ERROR, second prototype + +varying struct SSS { float f; } s; // ERROR + +int vf(void); +int vf2(); +int vf3(void v); // ERROR +int vf4(int, void); // ERROR +int vf5(int, void v); // ERROR + +void badswizzle() +{ + vec3 a[5]; + a.y; // ERROR, no array swizzle + a.zy; // ERROR, no array swizzle + a.nothing; // ERROR + a.length(); // ERROR, not this version + a.method(); // ERROR +} + +float fooinit(); + +float fooinittest() +{ + return fooinit(); +} + +// Test extra-function initializers +const float fi1 = 3.0; +const float fi2 = 4.0; +const float fi3 = 5.0; + +float fooinit() +{ + return fi1 + fi2 + fi3; // should make a constant of 12.0 +} + +int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer + +#ifdef GL_EXT_shader_non_constant_global_initializers +#extension GL_EXT_shader_non_constant_global_initializers : enable +#endif + +int init2 = gl_FrontFacing ? 1 : 2; + +#pragma STDGL invariant(all) + +#line 3000 +#error line of this error should be 3000 + +uniform samplerExternalOES badExt; // syntax ERROR diff --git a/deps/glslang/glslang/Test/100Limits.vert b/deps/glslang/glslang/Test/100Limits.vert new file mode 100644 index 0000000000..d23b7e8986 --- /dev/null +++ b/deps/glslang/glslang/Test/100Limits.vert @@ -0,0 +1,76 @@ +#version 100 + +int ga, gb; +float f; + +uniform sampler2D fsa[3]; +uniform float fua[10]; +attribute mat3 am3; +attribute vec2 av2; +varying vec4 va[4]; + +const mat2 m2 = mat2(1.0); +const vec3 v3 = vec3(2.0); + +void foo(inout float a) {} + +int bar() +{ + return 1; +} + +void main() +{ + while (ga < gb) { } + + do { } while (false); + + for ( ; ; ); // ERROR + for ( ; ga==gb; ); // ERROR + for ( ; ; f++); // ERROR + for ( ga = 0; ; ); // ERROR + for ( bool a = false; ; ); // ERROR + for (float a = 0.0; a == sin(f); ); // ERROR + for ( int a = 0; a < 10; a *= 2); // ERROR + for ( int a = 0; a <= 20; a++) --a; // ERROR + for ( int a = 0; a <= 20; a++) { if (ga==0) a = 4; } // ERROR + for (float a = 0.0; a <= 20.0; a += 2.0); + for (float a = 0.0; a != 20.0; a -= 2.0) { if (ga==0) ga = 4; } + for (float a = 0.0; a == 20.0; a--) for (float a = 0.0; a == 20.0; a--); // two different 'a's, everything okay + for (float a = 0.0; a <= 20.0; a += 2.0); + for (float a = 0.0; a <= 20.0; a += 2.0); + for (float a = 0.0; a > 2.0 * 20.0; a += v3.y); + for (float a = 0.0; a >= 20.0; a += 2.0) foo(a); // ERROR + + int ia[9]; + + fsa[ga]; // ERROR + fua[ga]; + am3[ga]; // ERROR + av2[ga]; // ERROR + va[2+ga]; // ERROR + m2[ga]; // ERROR + v3[ga/2]; // ERROR + ia[ga]; // ERROR + + for (int a = 3; a >= 0; a--) { + fsa[a]; + fua[a+2]; + am3[3*a]; + av2[3*a]; + va[a-1]; + m2[a/2]; + v3[a]; + ia[a]; + ia[bar()]; // ERROR + } + + fsa[2]; + fua[3]; + am3[2]; + av2[1]; + va[1]; + m2[1]; + v3[1]; + ia[3]; +} diff --git a/deps/glslang/glslang/Test/100samplerExternal.frag b/deps/glslang/glslang/Test/100samplerExternal.frag new file mode 100644 index 0000000000..9f6f397e0d --- /dev/null +++ b/deps/glslang/glslang/Test/100samplerExternal.frag @@ -0,0 +1,41 @@ +#version 100 + +#extension GL_OES_EGL_image_external : enable + +uniform samplerExternalOES sExt; +precision mediump samplerExternalOES; +uniform samplerExternalOES mediumExt; +uniform highp samplerExternalOES highExt; + +void main() +{ + texture2D(sExt, vec2(0.2)); + texture2D(mediumExt, vec2(0.2)); + texture2D(highExt, vec2(0.2)); + texture2DProj(sExt, vec3(0.3)); + texture2DProj(sExt, vec4(0.3)); + + int lod = 0; + highp float bias = 0.01; + textureSize(sExt, lod); // ERROR + texture(sExt, vec2(0.2)); // ERROR + texture(sExt, vec2(0.2), bias); // ERROR + textureProj(sExt, vec3(0.2)); // ERROR + textureProj(sExt, vec3(0.2), bias); // ERROR + textureProj(sExt, vec4(0.2)); // ERROR + textureProj(sExt, vec4(0.2), bias); // ERROR + texelFetch(sExt, ivec2(4), lod); // ERROR + + texture3D(sExt, vec3(0.3)); // ERROR + texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR + texture(sExt, vec3(0.3)); // ERROR + textureProjLod(sExt, vec3(0.3), 0.3); // ERROR +} + +#extension GL_OES_EGL_image_external : disable + +#extension GL_OES_EGL_image_external_essl3 : enable +uniform samplerExternalOES badExt; // ERROR +#extension GL_OES_EGL_image_external_essl3 : disable + +uniform samplerExternalOES badExt; // ERROR diff --git a/deps/glslang/glslang/Test/100scope.vert b/deps/glslang/glslang/Test/100scope.vert new file mode 100644 index 0000000000..b0a72d1f19 --- /dev/null +++ b/deps/glslang/glslang/Test/100scope.vert @@ -0,0 +1,76 @@ +#version 100 + +int f(int a, int b, int c) +{ + int a = b; // ERROR, redefinition + + { + float a = float(a) + 1.0; + } + + return a; +} + +int f(int a, int b, int c); // okay to redeclare + +bool b; +float b(int a); // ERROR: redefinition + +float c(int a); +bool c; // ERROR: redefinition + +float f; // ERROR: redefinition +float tan; // okay, built-in is in an outer scope +float sin(float x); // ERROR: can't redefine built-in functions +float cos(float x) // ERROR: can't redefine built-in functions +{ + return 1.0; +} +bool radians(bool x) // okay, can overload built-in functions +{ + return true; +} + +invariant gl_Position; + +void main() +{ + int g(); // ERROR: no local function declarations + g(); + + float sin; // okay + sin; + sin(0.7); // ERROR, use of hidden function + f(1,2,3); + + float f; // hides f() + f = 3.0; + + gl_Position = vec4(f); + + for (int f = 0; f < 10; ++f) + ++f; + + int x = 1; + { + float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 + int z = z; // ERROR: z not previously defined. + } + { + int x = x; // x is initialized to '1' + } + + struct S + { + int x; + }; + { + S S = S(0); // 'S' is only visible as a struct and constructor + S.x; // 'S' is now visible as a variable + } + + int degrees; + degrees(3.2); // ERROR, use of hidden built-in function +} + +varying struct SSS { float f; } s; // ERROR diff --git a/deps/glslang/glslang/Test/110scope.vert b/deps/glslang/glslang/Test/110scope.vert new file mode 100644 index 0000000000..86c27a584e --- /dev/null +++ b/deps/glslang/glslang/Test/110scope.vert @@ -0,0 +1,87 @@ +#version 110 + +int f(int a, int b, int c) +{ + int a = b; // ERROR, redefinition + + { + float a = float(a) + 1.0; // okay + } + + return a; +} + +int f(int a, int b, int c); // okay to redeclare + +bool b; +float b(int a); // okay, b and b() are different + +float c(int a); +bool c; // okay, and c() are different + +float f; // okay f and f() are different +float tan; // okay, hides built-in function +float sin(float x); // okay, can redefine built-in functions +float cos(float x) // okay, can redefine built-in functions +{ + return 1.0; +} +bool radians(bool x) // okay, can overload built-in functions +{ + return true; +} + +int gi = f(1,2,3); // ERROR, can't call user-defined function from global scope + +void main() +{ + int g(); // okay + g(); + + float sin; // okay + sin; + sin(0.7); // okay + f(1,2,3); + + float f; + f = 3.0; + + gl_Position = vec4(f); + + for (int f = 0; f < 10; ++f) + ++f; + + int x = 1; + { + float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 + int z = z; // ERROR: z not previously defined. + } + { + int x = x; // x is initialized to '1' + } + + struct S + { + int x; + }; + { + S S = S(0); // 'S' is only visible as a struct and constructor + S.x; // 'S' is now visible as a variable + } + + int degrees; + degrees(3.2); + + { + S s; + s.x = 3; + struct S { // okay, hides S + bool b; + }; + S t; + t.b = true; + struct S { // ERROR, redefinition of struct S + float f; + }; + } +} diff --git a/deps/glslang/glslang/Test/120.frag b/deps/glslang/glslang/Test/120.frag new file mode 100644 index 0000000000..ea35b80e42 --- /dev/null +++ b/deps/glslang/glslang/Test/120.frag @@ -0,0 +1,248 @@ +#version 120 + +float lowp; +float mediump; +float highp; + +float precision; + +in vec4 i; +out vec4 o; + +uniform sampler2D s2D; +centroid varying vec2 centTexCoord; + +uniform mat4x2 m; + +struct s { + float f; +}; + +void main() +{ + mat2x3 m23 = mat2x3(m); + + int a; + bool b; + s sv = s(a); + float[2] ia = float[2](3, i.y); + float f1 = 1; + float f = a; + f = a; + ivec3 iv3; + vec3 v3 = iv3; + f = f + a; + f = a - f; + f += a; + f = a - f; + v3 *= iv3; + v3 = iv3 / 2.0f; + v3 = 3.0 * iv3; + v3 = 2 * v3; + v3 = v3 - 2; + if (f < a || + a <= f || + f > a || + f >= a || + a == f || + f != a); + f = b ? a : f; + f = b ? f : a; + f = b ? a : a; + s news = sv; + + i.xy + i.xyz; // ERROR + m * i.xyz; // ERROR + m + i; // ERROR + int aoeu = 1.0; // ERROR + f = b; // ERROR + f = a + b; // ERROR + f = b * a; // ERROR + b = a; // ERROR + b = b + f; // ERROR + f |= b; // ERROR + + gl_FragColor = texture2D(s2D, centTexCoord); + + float flat; + float smooth; + float noperspective; + float uvec2; + float uvec3; + float uvec4; + //packed; // ERROR, reserved word + + { + mat4 m; + vec4 v; + bool b; + gl_FragColor += b ? v : m; // ERROR, types don't match around ":" + } + + gl_FragColor.xr; // ERROR, swizzlers not from same field space + gl_FragColor.xyxyx.xy; // ERROR, cannot make a vec5, even temporarily + centTexCoord.z; // ERROR, swizzler out of range + (a,b) = true; // ERROR, not an l-value +} + +float imageBuffer; +float uimage2DRect; + +int main() {} // ERROR +void main(int a) {} // ERROR + +const int a; // ERROR + +int foo(in float a); +int foo(out float a) // ERROR +{ + return 3.2; // ERROR + foo(a); // ERROR +} + +bool gen(vec3 v) +{ + if (abs(v[0]) < 1e-4F && abs(v[1]) < 1e-4) + return true; +} + +void v1() +{ +} + +void v2() +{ + return v1(); // ERROR, no expression allowed, even though void +} + +void atest() +{ + vec4 v = gl_TexCoord[1]; + v += gl_TexCoord[3]; +} + +varying vec4 gl_TexCoord[6]; // okay, assigning a size +varying vec4 gl_TexCoord[5]; // ERROR, changing size + +mat2x2 m22; +mat2x3 m23; +mat2x4 m24; + +mat3x2 m32; +mat3x3 m33; +mat3x4 m34; + +mat4x2 m42; +mat4x3 m43; +mat4x4 m44; + +void foo123() +{ + mat2 r2 = matrixCompMult(m22, m22); + mat3 r3 = matrixCompMult(m33, m33); + mat4 r4 = matrixCompMult(m44, m44); + + mat2x3 r23 = matrixCompMult(m23, m23); + mat2x4 r24 = matrixCompMult(m24, m24); + mat3x2 r32 = matrixCompMult(m32, m32); + mat3x4 r34 = matrixCompMult(m34, m34); + mat4x2 r42 = matrixCompMult(m42, m42); + mat4x3 r43 = matrixCompMult(m43, m43); + + mat3x2 rfoo1 = matrixCompMult(m23, m32); // ERROR + mat3x4 rfoo2 = matrixCompMult(m34, m44); // ERROR +} + +void matConst() +{ + vec2 v2; + vec3 v3; + mat4 m4b1 = mat4(v2, v3); // ERROR, not enough + mat4 m4b2 = mat4(v2, v3, v3, v3, v3, v2, v2); // ERROR, too much + mat4 m4g = mat4(v2, v3, v3, v3, v3, v3); + mat4 m4 = mat4(v2, v3, v3, v3, v3, v2); + mat3 m3 = mat3(m4); + mat3 m3b1 = mat3(m4, v2); // ERROR, extra arg + mat3 m3b2 = mat3(m4, m4); // ERROR, extra arg + mat3x2 m32 = mat3x2(m4); + mat4 m4c = mat4(m32); + mat3 m3s = mat3(v2.x); + + mat3 m3a1[2] = mat3[2](m3s, m3s); + mat3 m3a2[2] = mat3[2](m3s, m3s, m3s); // ERROR, too many args +} + +uniform sampler3D s3D; +uniform sampler1D s1D; +uniform sampler2DShadow s2DS; + +void foo2323() +{ + vec4 v; + vec2 v2; + float f; + v = texture2DLod(s2D, v2, f); // ERROR + v = texture3DProjLod(s3D, v, f); // ERROR + v = texture1DProjLod(s1D, v, f); // ERROR + v = shadow2DProjLod(s2DS, v, f); // ERROR + + v = texture1DGradARB(s1D, f, f, f); // ERROR + v = texture2DProjGradARB(s2D, v, v2, v2); // ERROR + v = shadow2DProjGradARB(s2DS, v, v2, v2); // ERROR +} + +#extension GL_ARB_shader_texture_lod : require + +void foo2324() +{ + vec4 v; + vec2 v2; + float f; + v = texture2DLod(s2D, v2, f); + v = texture3DProjLod(s3D, v, f); + v = texture1DProjLod(s1D, v, f); + v = shadow2DProjLod(s2DS, v, f); + + v = texture1DGradARB(s1D, f, f, f); + v = texture2DProjGradARB(s2D, v, v2, v2); + v = shadow2DProjGradARB(s2DS, v, v2, v2); + v = shadow2DRectProjGradARB(s2DS, v, v2, v2); // ERROR +} + +uniform sampler2DRect s2DRbad; // ERROR + +void foo121111() +{ + vec2 v2; + vec4 v = texture2DRect(s2DRbad, v2); +} + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect s2DR; +uniform sampler2DRectShadow s2DRS; + +void foo12111() +{ + vec2 v2; + vec3 v3; + vec4 v4; + vec4 v; + v = texture2DRect(s2DR, v2); + v = texture2DRectProj(s2DR, v3); + v = texture2DRectProj(s2DR, v4); + v = shadow2DRect(s2DRS, v3); + v = shadow2DRectProj(s2DRS, v4); + + v = shadow2DRectProjGradARB(s2DRS, v, v2, v2); +} + +void voidTernary() +{ + bool b; + b ? foo121111() : foo12111(); + b ? foo121111() : 4; // ERROR + b ? 3 : foo12111(); // ERROR +} + +float halfFloat1 = 1.0h; // syntax ERROR diff --git a/deps/glslang/glslang/Test/120.vert b/deps/glslang/glslang/Test/120.vert new file mode 100644 index 0000000000..d2765571e5 --- /dev/null +++ b/deps/glslang/glslang/Test/120.vert @@ -0,0 +1,203 @@ +#version 120 + +in vec4 i; // ERROR +out vec4 o; // ERROR + +attribute vec2 attv2; +attribute vec4 attv4; +uniform sampler2D s2D; +invariant varying vec2 centTexCoord; +invariant gl_Position; +centroid gl_Position; // ERROR +centroid centroid foo; // ERROR +invariant gl_Position, gl_PointSize; + +void main() +{ + centTexCoord = attv2; + gl_Position = attv4; + + gl_ClipVertex = attv4; + gl_ClipDistance[1] = 0.2; // ERROR + + vec3[12] a; + vec4[a.length()] b; + gl_Position = b[b.length()-1]; + + float f[]; + int a1 = f.length(); // ERROR + float f[7]; + int aa = f.length(); + int a2 = f.length; // ERROR + int a3 = f.length(a); // ERROR + int a4 = f.flizbit; // ERROR + int a4 = f.flizbit(); // ERROR + float md[2][4]; // ERROR + float[2] md2[4]; // ERROR + float[2][4] md3; // ERROR + float md5, md6[2][3]; // ERROR + float[2] md4, md7[4]; // ERROR + float md9[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR + float md10, md11[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR + + gl_PointSize = 3.8; +} + +uniform float initted = 3.4; // okay + +const float concall = sin(0.3); + +int[2][3] foo( // ERROR + float[2][3] a, // ERROR + float[2] b[3], // ERROR + float c[2][3]); // ERROR + +int overloadA(in float f); +int overloadA(out float f); // ERROR, different qualifiers +float overloadA(float); // ERROR, different return value for same signature +float overloadA(out float f, int); +float overloadA(int i); + +void overloadB(float, const in float) { } + +vec2 overloadC(int, int); +vec2 overloadC(const in int, float); +vec2 overloadC(float, int); +vec2 overloadC(vec2, vec2); + +vec3 overloadD(int, float); +vec3 overloadD(float, in int); + +vec3 overloadE(float[2]); +vec3 overloadE(mat2 m); +vec3 overloadE(vec2 v); + +vec3 overloadF(int); +vec3 overloadF(float); + +void foo() +{ + float f; + int i; + + overloadB(f, f); + overloadB(f, 2); + overloadB(1, i); + + overloadC(1); // ERROR + overloadC(1, i); + overloadC(vec2(1), vec2(2)); + overloadC(f, 3.0); // ERROR, no way + overloadC(ivec2(1), vec2(2)); + + overloadD(i, f); + overloadD(f, i); + overloadD(i, i); // ERROR, ambiguous + + int overloadB; // hiding + overloadB(1, i); // ERROR + + sin(1); + texture2D(s2D, ivec2(0)); + clamp(attv4, 0, 1); + clamp(ivec4(attv4), 0, 1); + + int a[2]; + overloadC(a, 3); // ERROR + overloadE(a); // ERROR + overloadE(3.3); // ERROR + overloadE(vec2(3.3)); + overloadE(mat2(0.5)); + overloadE(ivec4(1)); // ERROR + overloadE(ivec2(1)); + + float b[2]; + overloadE(b); + + overloadF(1, 1); // ERROR + overloadF(1); +} + +varying vec4 gl_TexCoord[35]; // ERROR, size too big + +// tests for output conversions +void outFun(in float, out ivec2, in int, out float); +int outFunRet(in float, out int, const in int, out ivec4); +ivec2 outFunRet(in float, out ivec4, in int, out ivec4); + +void foo2() +{ + vec2 v2; + vec4 v4; + float f; + int i; + + outFun(i, v2, i, f); + outFunRet(i, f, i, v4); + float ret = outFunRet(i, f, i, v4); + vec2 ret2 = outFunRet(i, v4, i, v4); + bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in +} + +void noise() +{ + float f1 = noise1(1.0); + vec2 f2 = noise2(vec2(1.0)); + vec3 f3 = noise3(vec3(1.0)); + vec4 f4 = noise4(vec4(1.0)); +} + +// version 130 features + +uniform int c; + +attribute ivec2 x; +attribute vec2 v2a; +attribute float c1D; +attribute vec2 c2D; +attribute vec3 c3D; + +uniform vec4 v4; + +void foo213() +{ + float f = 3; + switch (c) { // ERRORs... + case 1: + f = sin(f); + break; + case 2: + f = f * f; + default: + f = 3.0; + } + + int i; + i << 3 | 0x8A >> 1 & 0xFF; // ERRORs... + + vec3 modfOut, modfIn; + vec3 v11 = modf(modfIn, modfOut); // ERRORS... + float t = trunc(f); + vec2 v12 = round(v2a); + vec2 v13 = roundEven(v2a); + bvec2 b10 = isnan(v2a); + bvec4 b11 = isinf(v4); + + sinh(c1D) + // ERRORS... + cosh(c1D) * tanh(c2D); + asinh(c4D) + acosh(c4D); + atanh(c3D); + + int id = gl_VertexID; // ERROR + gl_ClipDistance[1] = 0.3; // ERROR +} + +int gl_ModelViewMatrix[] = 0; + +// token pasting (ERRORS...) + +#define mac abc##def +int mac; + +#define macr(A,B) A ## B +int macr(qrs,tuv); diff --git a/deps/glslang/glslang/Test/130.frag b/deps/glslang/glslang/Test/130.frag new file mode 100644 index 0000000000..3e394110b5 --- /dev/null +++ b/deps/glslang/glslang/Test/130.frag @@ -0,0 +1,169 @@ +#version 130 + +lowp vec3 a; +mediump float b; +highp int c; + +precision highp float; + +in vec4 i; +out vec4 o; + +flat in float fflat; +smooth in float fsmooth; +noperspective in float fnop; + +void main() +{ + float clip = gl_ClipDistance[3]; +} + +uniform samplerCube sampC; + +void foo() +{ + vec4 s = textureGather(sampC, vec3(0.2)); +} + +#extension GL_ARB_texture_gather : enable + +void bar() +{ + vec4 s = textureGather(sampC, vec3(0.2)); +} + +flat in vec3 gl_Color; // ERROR, type +in vec4 gl_Color; +flat in vec4 gl_Color; +flat in vec4 gl_Color[2]; // ERROR, array +vec4 gl_Color; // ERROR, storage + +#extension GL_ARB_texture_gather : warn + +void bar2() +{ + vec4 s = textureGather(sampC, vec3(0.2)); + + uvec3 uv3; + bvec3 b3; + b3 = lessThan(uv3, uv3); + b3 = equal(uv3, uv3); + const bvec2 bl1 = greaterThanEqual(uvec2(2, 3), uvec2(3,3)); + const bvec2 bl2 = equal(uvec2(2, 3), uvec2(3,3)); + const bvec2 bl3 = equal(bl1, bl2); // yes, equal + int a1[int(bl3.x)]; + int a2[int(bl3.y)]; + a1[0]; // size 1 + a2[0]; // size 1 + const bvec4 bl4 = notEqual(greaterThan(uvec4(1,2,3,4), uvec4(0,2,0,6)), lessThanEqual(uvec4(7,8,9,10), uvec4(6, 8, 0, 11))); // compare (t,f,t,f) with (f,t,f,t) + int a3[int(bl4.x)+int(bl4.y)+int(bl4.z)+int(bl4.w)]; + a3[3]; // size 4 + b3 != b3; + b3 < b3; // ERROR + uv3 > uv3; // ERROR + uvec2(2, 3) >= uvec2(3,3); // ERROR + int(bl4) <= int(bl4); // true + int(bl4.x) > int(bl4.y); // false +} + +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2D samp2D; +uniform sampler2DShadow samp2DS; +uniform sampler2DRect samp2DR; +uniform sampler2DArray samp2DA; + +void bar23() +{ + vec4 s; + s = textureGatherOffset(sampC, vec3(0.3), ivec2(1)); // ERROR + s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); // ERROR + s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); + s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); + s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); // ERROR + s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); // ERROR +} + +#extension GL_ARB_gpu_shader5 : enable + +void bar234() +{ + vec4 s; + s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); + s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); + s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); + s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); + s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); +} + +#extension GL_ARB_texture_cube_map_array : enable + +uniform samplerCubeArray Sca; +uniform isamplerCubeArray Isca; +uniform usamplerCubeArray Usca; +uniform samplerCubeArrayShadow Scas; + +void bar235() +{ + ivec3 a = textureSize(Sca, 3); + vec4 b = texture(Sca, i); + ivec4 c = texture(Isca, i, 0.7); + uvec4 d = texture(Usca, i); + + b = textureLod(Sca, i, 1.7); + a = textureSize(Scas, a.x); + float f = texture(Scas, i, b.y); + c = textureGrad(Isca, i, vec3(0.1), vec3(0.2)); +} + +int \ + x; // ERROR until 420pack is turned on + +#extension GL_ARB_shading_language_420pack : enable + +const int ai[3] = { 10, 23, 32 }; +layout(binding=0) uniform blockname { int a; } instanceName; // ERROR +uniform layout(binding=0) sampler2D bounds; + +void bar23444() +{ + mat4x3 m43; \ + float a1 = m43[3].y; + vec3 v3; + int a2 = m43.length(); + a2 += m43[1].length(); + a2 += v3.length(); + const float b = 2 * a1; + a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; + bool boolb; + boolb.length(); // ERROR + m43[3][1].length(); // ERROR + v3.length; // ERROR + v3.length(b); // ERROR +} + +in float gl_FogFragCoord; + +#extension GL_ARB_separate_shader_objects : enable + +in float gl_FogFragCoord; +in int gl_FogFragCoord; // ERROR + +layout(early_fragment_tests) in; // ERROR +layout(r32i) uniform iimage2D iimg2Dbad; // ERROR + +#extension GL_ARB_shader_image_load_store : enable + +layout(early_fragment_tests) in; + +layout(r32i) uniform iimage2D iimg2D; + +void qux2() +{ + int i; + imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i); + ivec4 pos = imageLoad(iimg2D, ivec2(i,i)); +} + +layout(early_fragment_tests) out; // ERROR diff --git a/deps/glslang/glslang/Test/130.vert b/deps/glslang/glslang/Test/130.vert new file mode 100644 index 0000000000..d5208cb12d --- /dev/null +++ b/deps/glslang/glslang/Test/130.vert @@ -0,0 +1,78 @@ +#version 130 + +uniform int c; +uniform usampler2D us2D; + +in ivec2 x; +in vec2 v2a; +in float c1D; +in vec2 c2D; +in vec3 c3D; +smooth vec4 c4D; // ?? + +uniform vec4 v4; + +void main() +{ + float f = 3; + switch (c) { // full switch testing in switch.frag + case 1: + f = sin(f); + break; + case 2: + f = f * f; + default: + f = 3.0; + } + + uint i; + i = texture(us2D, x).w; // full uint testing in uint.frag + i << 3u | 0x8Au >> 1u & 0xFFu; + + vec3 modfOut, modfIn; + vec3 v11 = modf(modfIn, modfOut); + float t = trunc(f); + vec2 v12 = round(v2a); + vec2 v13 = roundEven(v2a); + bvec2 b10 = isnan(v2a); + bvec4 b11 = isinf(v4); + + sinh(c1D) + + cosh(c1D) * tanh(c2D); + asinh(c4D) + acosh(c4D); + atanh(c3D); + + int id = gl_VertexID; + gl_ClipDistance[1] = 0.3; +} + +// version 140 features + +//uniform isamplerBuffer sbuf; + +//layout(std140) uniform blockName { +// int anonMem; +//}; + +void foo88() +{ + int id = gl_InstanceID; // ERROR + //id += anonMem; + id += texelFetch(id, 8); + + gl_ClipVertex; // these are all present... + gl_Color; + gl_LightSource[0]; + gl_DepthRange.far; + gl_TexCoord; + gl_FogFragCoord; + gl_FrontColor; +} + +// token pasting + +#define mac abc##def +int mac; + +#define macr(A,B) A##B +int macr(qrs,tuv); diff --git a/deps/glslang/glslang/Test/140.frag b/deps/glslang/glslang/Test/140.frag new file mode 100644 index 0000000000..2bc2f59fe0 --- /dev/null +++ b/deps/glslang/glslang/Test/140.frag @@ -0,0 +1,53 @@ +#version 140 + +varying vec4 v; + +in vec4 i; +out vec4 o; + +in float gl_ClipDistance[5]; + +void main() +{ + float clip = gl_ClipDistance[2]; +} +#ifdef GL_ES +#error GL_ES is set +#else +#error GL_ES is not set +#endif + +in struct S { float f; } s; // ERROR + +float patch = 3.1; + +layout(location=3) in vec4 vl; // ERROR + +layout(location = 3) out vec4 factorBad; // ERROR + +#extension GL_ARB_explicit_attrib_location : enable + +layout(location = 5) out vec4 factor; + +#extension GL_ARB_separate_shader_objects : enable + +layout(location=4) in vec4 vl2; + +float fooi(); + +void foo() +{ + vec2 r1 = modf(v.xy, v.zw); // ERROR, v.zw not l-value + vec2 r2 = modf(o.xy, o.zw); + o.z = fooi(); +} + +// Test extra-function initializers + +float i1 = gl_FrontFacing ? -2.0 : 2.0; +float i2 = 102; + +float fooi() +{ + return i1 + i2; +} diff --git a/deps/glslang/glslang/Test/140.vert b/deps/glslang/glslang/Test/140.vert new file mode 100644 index 0000000000..914e672d8f --- /dev/null +++ b/deps/glslang/glslang/Test/140.vert @@ -0,0 +1,79 @@ +#version 140 + +uniform isamplerBuffer sbuf; + +layout(std140) uniform blockName { + int anonMem; +}; + +void main() +{ + int id = gl_InstanceID; + id += anonMem; + id += texelFetch(sbuf, 8).w; + gl_ClipVertex; // could be ERROR, but compiling under compatibility profile + gl_Color; // could be ERROR, but compiling under compatibility profile + gl_LightSource[0]; // could be ERROR, but compiling under compatibility profile + gl_DepthRange.far; + gl_TexCoord; // could be ERROR, but compiling under compatibility profile + gl_FogFragCoord; // could be ERROR, but compiling under compatibility profile + gl_FrontColor; // could be ERROR, but compiling under compatibility profile +} + +out vec4 gl_Position; // ERROR + +layout(location = 9) in vec4 locBad; // ERROR + +#extension GL_ARB_explicit_attrib_location : enable + +layout(location = 9) in vec4 loc; + +#extension GL_ARB_separate_shader_objects : enable + +out vec4 gl_Position; +in vec4 gl_Position; // ERROR +out vec3 gl_Position; // ERROR + +out float gl_PointSize; +out vec4 gl_ClipVertex; +out float gl_FogFragCoord; + +uniform sampler2DRect s2dr; +uniform sampler2DRectShadow s2drs; +in ivec2 itloc2; +in vec2 tloc2; +in vec3 tloc3; +in vec4 tloc4; + +void foo() +{ + vec4 v = texelFetch(s2dr, itloc2); + v += texelFetch(s2dr, itloc2, 0.2); // ERROR, no lod + v += texture(s2dr, tloc2); + v += texture(s2dr, tloc2, 0.3); // ERROR, no bias + v += texture(s2drs, tloc3); + v += textureProj(s2dr, tloc3); + v += textureProj(s2dr, tloc4); + v += textureProjGradOffset(s2dr, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2)); + v += textureProjGradOffset(s2drs, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2)); +} + +void devi() +{ + gl_DeviceIndex; // ERROR, no extension + gl_ViewIndex; // ERROR, no extension +} + +#ifdef GL_EXT_device_group +#extension GL_EXT_device_group : enable +#endif + +#ifdef GL_EXT_device_group +#extension GL_EXT_multiview : enable +#endif + +void devie() +{ + gl_DeviceIndex; + gl_ViewIndex; +} diff --git a/deps/glslang/glslang/Test/150.frag b/deps/glslang/glslang/Test/150.frag new file mode 100644 index 0000000000..16963afb0b --- /dev/null +++ b/deps/glslang/glslang/Test/150.frag @@ -0,0 +1,50 @@ +#version 150 core + +in vec4 gl_FragCoord; +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR +layout(pixel_center_integer) in vec4 gl_FragCoord; // ERROR +layout(origin_upper_left) in vec4 foo; // ERROR +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; + +void main() +{ + vec4 c = gl_FragCoord; +} + +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use + +in struct S { float f; } s; + +float patch = 3.1; + +uniform sampler2DMS sms; +uniform isampler2DMS isms; +uniform usampler2DMS usms; +uniform sampler2DMSArray smsa; +uniform isampler2DMSArray ismsa; +uniform usampler2DMSArray usmsa; + +flat in ivec2 p2; +flat in ivec3 p3; +flat in int samp; + +void barWxyz() +{ + ivec2 t11 = textureSize( sms); + ivec2 t12 = textureSize(isms); + ivec2 t13 = textureSize(usms); + ivec3 t21 = textureSize( smsa); + ivec3 t22 = textureSize(ismsa); + ivec3 t23 = textureSize(usmsa); + vec4 t31 = texelFetch( sms, p2, samp); + ivec4 t32 = texelFetch(isms, p2, samp); + uvec4 t33 = texelFetch(usms, p2, 3); + vec4 t41 = texelFetch( smsa, p3, samp); + ivec4 t42 = texelFetch(ismsa, ivec3(2), samp); + uvec4 t43 = texelFetch(usmsa, p3, samp); +} + +int primitiveID() +{ + return gl_PrimitiveID; +} diff --git a/deps/glslang/glslang/Test/150.geom b/deps/glslang/glslang/Test/150.geom new file mode 100644 index 0000000000..d5b3c9b3d4 --- /dev/null +++ b/deps/glslang/glslang/Test/150.geom @@ -0,0 +1,139 @@ +#version 150 core + +in fromVertex { + in vec3 color; +} fromV[]; + +out toFragment { + out vec3 color; +} toF; + +out fromVertex { // okay to reuse a block name for another block name + vec3 color; +}; + +out fooB { + vec2 color; +} fromVertex; // ERROR, cannot reuse block name as block instance + +int fromVertex; // ERROR, cannot reuse a block name for something else + +out fooC { + vec2 color; +} fooC; // ERROR, cannot have same name for block and instance name + +void main() +{ + EmitVertex(); + EndPrimitive(); + EmitStreamVertex(1); // ERROR + EndStreamPrimitive(0); // ERROR + + color = fromV[0].color; + gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2]; + gl_Position = gl_in[0].gl_Position; + gl_PointSize = gl_in[3].gl_PointSize; + gl_PrimitiveID = gl_PrimitiveIDIn; + gl_Layer = 2; +} + +out vec4 ov0; // stream should be 0 +layout(stream = 4) out vec4 ov4; +out vec4 o1v0; // stream should be 0 + +layout(stream = 3) uniform; // ERROR +layout(stream = 3) in; // ERROR +layout(stream = 3) uniform int ua; // ERROR +layout(stream = 3) uniform ubb { int ua; } ibb; // ERROR + +layout(line_strip, points, triangle_strip, stream = 3, points, triangle_strip) out; // just means "stream = 3, triangle_strip" +layout(stream = 3, triangle_strip) out; +out vec4 ov3; // stream should be 3 + +layout(stream = 6) out ooutb { vec4 a; } ouuaa6; + +layout(stream = 6) out ooutb2 { + layout(stream = 6) vec4 a; +} ouua6; + +layout(stream = 7) out ooutb3 { + layout(stream = 6) vec4 a; // ERROR +} ouua7; + +out vec4 ov2s3; // stream should be 3 + +layout(max_vertices = 200) out; +layout(max_vertices = 300) out; // ERROR, too big +void foo(layout(max_vertices = 4) int a) // ERROR +{ + ouuaa6.a = vec4(1.0); +} + +layout(line_strip, points, triangle_strip, stream = 3, points) out; // ERROR, changing output primitive +layout(line_strip, points, stream = 3) out; // ERROR, changing output primitive +layout(triangle_strip) in; // ERROR, not an input primitive +layout(triangle_strip) uniform; // ERROR +layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable +layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input +layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0 +out outbn2 { + layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0 + layout(max_vertices = 3) int b; // ERROR, not on a block member + layout(triangle_strip) int c; // ERROR, not on a block member +} outbi; + +layout(lines) out; // ERROR, not on output +layout(lines_adjacency) in; +layout(triangles) in; // ERROR, can't change it +layout(triangles_adjacency) in; // ERROR, can't change it +layout(invocations = 4) in; // ERROR, not until 4.0 + +in inbn { + layout(stream = 2) int a; // ERROR, stream on input +} inbi[]; + +in sameName { + int a15; +} insn[]; + +out sameName { + float f15; +}; + +uniform sameName { + bool b15; +}; + +float summ = gl_MaxVertexAttribs + + gl_MaxVertexUniformComponents + + gl_MaxVaryingFloats + + gl_MaxVaryingComponents + + gl_MaxVertexOutputComponents + + gl_MaxGeometryInputComponents + + gl_MaxGeometryOutputComponents + + gl_MaxFragmentInputComponents + + gl_MaxVertexTextureImageUnits + + gl_MaxCombinedTextureImageUnits + + gl_MaxTextureImageUnits + + gl_MaxFragmentUniformComponents + + gl_MaxDrawBuffers + + gl_MaxClipDistances + + gl_MaxGeometryTextureImageUnits + + gl_MaxGeometryOutputVertices + + gl_MaxGeometryTotalOutputComponents + + gl_MaxGeometryUniformComponents + + gl_MaxGeometryVaryingComponents; + +void fooe1() +{ + gl_ViewportIndex = gl_MaxViewports - 1; +} + +#extension GL_ARB_viewport_array : enable + +void fooe2() +{ + gl_ViewportIndex = gl_MaxViewports - 1; +} + +out int gl_ViewportIndex; diff --git a/deps/glslang/glslang/Test/150.tesc b/deps/glslang/glslang/Test/150.tesc new file mode 100644 index 0000000000..66c0f3ea4a --- /dev/null +++ b/deps/glslang/glslang/Test/150.tesc @@ -0,0 +1,34 @@ +#version 150 + +#extension GL_ARB_tessellation_shader : enable + +layout(vertices = 4) out; +int outa[gl_out.length()]; + +patch out vec4 patchOut; + +void main() +{ + barrier(); + + int a = gl_MaxTessControlInputComponents + + gl_MaxTessControlOutputComponents + + gl_MaxTessControlTextureImageUnits + + gl_MaxTessControlUniformComponents + + gl_MaxTessControlTotalOutputComponents; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[gl_InvocationID].gl_Position = p; + gl_out[gl_InvocationID].gl_PointSize = ps; + gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; + + gl_TessLevelOuter[3] = 3.2; + gl_TessLevelInner[1] = 1.3; +} diff --git a/deps/glslang/glslang/Test/150.tese b/deps/glslang/glslang/Test/150.tese new file mode 100644 index 0000000000..aea65e810e --- /dev/null +++ b/deps/glslang/glslang/Test/150.tese @@ -0,0 +1,35 @@ +#version 150 + +#extension GL_ARB_tessellation_shader : enable + +layout(quads, cw) in; +layout(fractional_odd_spacing) in; +layout(point_mode) in; +patch in vec4 patchIn; + +void main() +{ + barrier(); // ERROR + + int a = gl_MaxTessEvaluationInputComponents + + gl_MaxTessEvaluationOutputComponents + + gl_MaxTessEvaluationTextureImageUnits + + gl_MaxTessEvaluationUniformComponents + + gl_MaxTessPatchComponents + + gl_MaxPatchVertices + + gl_MaxTessGenLevel; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + vec3 tc = gl_TessCoord; + float tlo = gl_TessLevelOuter[3]; + float tli = gl_TessLevelInner[1]; + + gl_Position = p; + gl_PointSize = ps; + gl_ClipDistance[2] = cd; +} diff --git a/deps/glslang/glslang/Test/150.vert b/deps/glslang/glslang/Test/150.vert new file mode 100644 index 0000000000..4dd9e5ca81 --- /dev/null +++ b/deps/glslang/glslang/Test/150.vert @@ -0,0 +1,29 @@ +#version 150 core + +#ifndef GL_core_profile +# error standard macro GL_core_profile not defined +#endif + +in vec4 iv4; + +uniform float ps; + +invariant gl_Position; + +void main() +{ + gl_Position = iv4; + gl_PointSize = ps; + gl_ClipDistance[2] = iv4.x; + gl_ClipVertex = iv4; +} + +out float gl_ClipDistance[4]; + +uniform foob { + int a[]; +}; +int a[5]; // ERROR, resizing user-block member + +#line 3000 +#error line of this error should be 3001 diff --git a/deps/glslang/glslang/Test/300.frag b/deps/glslang/glslang/Test/300.frag new file mode 100644 index 0000000000..ca2e2cb3e5 --- /dev/null +++ b/deps/glslang/glslang/Test/300.frag @@ -0,0 +1,161 @@ +#version 300 es +void nodef1(float f); // ERROR, no default precision +uniform sampler2D s2D; +uniform lowp sampler3D s3D; +uniform samplerCube sCube; +uniform lowp samplerCubeShadow sCubeShadow; +uniform lowp sampler2DShadow s2DShadow; +uniform lowp sampler2DArray s2DArray; +uniform lowp sampler2DArrayShadow s2DArrayShadow; + +uniform lowp isampler2D is2D; +uniform lowp isampler3D is3D; +uniform lowp isamplerCube isCube; +uniform lowp isampler2DArray is2DArray; + +uniform lowp usampler2D us2D; +uniform lowp usampler3D us3D; +uniform lowp usamplerCube usCube; +uniform lowp usampler2DArray us2DArray; +precision lowp float; +in float c1D; +in vec2 c2D; +in vec3 c3D; +smooth vec4 c4D; + +flat in int ic1D; +flat in ivec2 ic2D; +flat in ivec3 ic3D; +flat in ivec4 ic4D; +noperspective in vec4 badv; // ERROR +in sampler2D bads; // ERROR +precision lowp uint; // ERROR + +struct s { + int i; + sampler2D s; +}; + +in s badout; // ERROR, can't contain a sampler + // ERROR, can't have int in struct without flat +struct S2 { + vec3 c; + float f; +}; + +in S2 s2; + +out vec3 sc; +out float sf; + +uniform sampler2D arrayedSampler[5]; + +void main() +{ + float f; + vec4 v; + v = texture(s2D, c2D); + v = textureProj(s3D, c4D); + v = textureLod(s2DArray, c3D, 1.2); + f = textureOffset(s2DShadow, c3D, ic2D, c1D); // ERROR, offset argument not constant + v = texelFetch(s3D, ic3D, ic1D); + v = texelFetchOffset(arrayedSampler[2], ic2D, 4, ic2D); // ERROR, offset argument not constant + f = textureLodOffset(s2DShadow, c3D, c1D, ic2D); + v = textureProjLodOffset(s2D, c3D, c1D, ic2D); + v = textureGrad(sCube, c3D, c3D, c3D); + f = textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ic2D); + v = textureProjGrad(s3D, c4D, c3D, c3D); + v = textureProjGradOffset(s2D, c3D, c2D, c2D, ic2D); + v = texture(arrayedSampler[ic1D], c2D); // ERROR + + ivec4 iv; + iv = texture(is2D, c2D); + iv = textureProjOffset(is2D, c4D, ic2D); + iv = textureProjLod(is2D, c3D, c1D); + iv = textureProjGrad(is2D, c3D, c2D, c2D); + iv = texture(is3D, c3D, 4.2); + iv = textureLod(isCube, c3D, c1D); + iv = texelFetch(is2DArray, ic3D, ic1D); + + iv.xy = textureSize(sCubeShadow, 2); + + float precise; + double boo; // ERROR + dvec2 boo2; // ERROR + dvec3 boo3; // ERROR + dvec4 boo4; // ERROR + + f += gl_FragCoord.y; + gl_FragDepth = f; + + sc = s2.c; + sf = s2.f; + + sinh(c1D) + + cosh(c1D) * tanh(c2D); + asinh(c4D) + acosh(c4D); + atanh(c3D); +} + +uniform multi { + int[2] a[3]; // ERROR + int[2][3] b; // ERROR + int c[2][3]; // ERROR +} multiInst[2][3]; // ERROR + +out vec4 colors[4]; + +void foo() +{ + colors[2] = c4D; + colors[ic1D] = c4D; // ERROR +} + +uniform s st1; +uniform s st2; + +void foo13(s inSt2) +{ + if (st1 == st2); // ERROR + if (st1 != st2); // ERROR + st1.s == st2.s; // ERROR + inSt2 = st1; // ERROR + inSt2 == st1; // ERROR +} + +void foo23() +{ + textureOffset(s2DShadow, c3D, ivec2(-8, 7), c1D); + textureOffset(s2DShadow, c3D, ivec2(-9, 8), c1D); +} + +void foo324(void) +{ + float p = pow(3.2, 4.6); + p += sin(0.4); + p += distance(vec2(10.0, 11.0), vec2(13.0, 15.0)); // 5 + p += dot(vec3(2,3,5), vec3(-2,-1,4)); // 13 + vec3 c3 = cross(vec3(3,-3,1), vec3(4,9,2)); // (-15, -2, 39) + c3 += faceforward(vec3(1,2,3), vec3(2,3,5), vec3(-2,-1,4)); // (-1,-2,-3) + c3 += faceforward(vec3(1,2,3), vec3(-2,-3,-5), vec3(-2,-1,4)); // (1,2,3) + vec2 c2 = reflect(vec2(1,3), vec2(0,1)); // (1,-3) + c2 += refract(vec2(1,3), vec2(0,1), 1.0); // (1,-3) + c2 += refract(vec2(1,3), vec2(0,1), 3.0); + c2 += refract(vec2(1,0.1), vec2(0,1), 5.0); // (0,0) + mat3x2 m32 = outerProduct(vec2(2,3), vec3(5,7,11));// rows: (10, 14, 22), (15, 21, 33) +} + +uniform mediump; // ERROR + +layout(early_fragment_tests) in; // ERROR + +#ifndef GL_FRAGMENT_PRECISION_HIGH +#error missing GL_FRAGMENT_PRECISION_HIGH +#endif + +invariant in; // ERROR +invariant in vec4; // ERROR +invariant in vec4 fooinv; // ERROR + +float imageBuffer; // ERROR, reserved +float uimage2DRect; // ERROR, reserved diff --git a/deps/glslang/glslang/Test/300.vert b/deps/glslang/glslang/Test/300.vert new file mode 100644 index 0000000000..daf98b836f --- /dev/null +++ b/deps/glslang/glslang/Test/300.vert @@ -0,0 +1,204 @@ +#version 300 es + +uniform mat4x3 m43; +uniform mat3x3 m33; +uniform mat4x4 m44; + +in vec3 v3; +varying vec2 v2; // ERROR, varying reserved +in vec4 bad[10]; // ERROR, no arrayed inputs +highp in vec4 badorder; // ERROR, incorrect qualifier order +out invariant vec4 badorder2; // ERROR, incorrect qualifier order +in centroid vec4 badorder4; // ERROR, incorrect qualifier order +out flat vec4 badorder3; // ERROR, incorrect qualifier order +void bar(in const float a); // ERROR, incorrect qualifier order +void bar2(highp in float b); // ERROR, incorrect qualifier order +smooth flat out vec4 rep; // ERROR, replicating interpolation qualification +centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification +in uniform vec4 rep3; // ERROR, replicating storage qualification + +struct S { + vec3 c; + float f; +}; + +out S s; + +void main() +{ + int id = gl_VertexID + gl_InstanceID; + + int c0 = gl_MaxVertexAttribs; + int c1 = gl_MaxVertexUniformVectors; + int c2 = gl_MaxVertexOutputVectors; + int c3 = gl_MaxFragmentInputVectors; + int c4 = gl_MaxVertexTextureImageUnits; + int c5 = gl_MaxCombinedTextureImageUnits; + int c6 = gl_MaxTextureImageUnits; + int c7 = gl_MaxFragmentUniformVectors; + int c8 = gl_MaxDrawBuffers; + int c9 = gl_MinProgramTexelOffset; + int c10 = gl_MaxProgramTexelOffset; + + mat3x4 tm = transpose(m43); + highp float dm = determinant(m44); + mat3x3 im = inverse(m33); + + mat3x2 op = outerProduct(v2, v3); + + gl_Position = m44[2]; + gl_PointSize = v2.y; + + s.c = v3; + s.f = dm; + +#ifdef GL_ES +#error GL_ES is set +#else +#error GL_ES is not set +#endif +} + +float badsize[]; // ERROR +float[] badsize2; // ERROR +uniform ub { + int a[]; // ERROR +} ubInst[]; // ERROR +void foo(int a[]); // ERROR +float okayA[] = float[](3.0f, 4.0F); // Okay + +out vec3 newV; +void newVFun() +{ + newV = v3; +} + +invariant newV; // ERROR, variable already used +in vec4 invIn; +invariant invIn; // ERROR, in v300 +out S s2; +invariant s2; +invariant out S s3; +flat out int; + +uniform ub2 { + float f; +} a; + +uniform ub2 { // ERROR redeclaration of block name (same instance name) + float g; +} a; + +uniform ub2 { // ERROR redeclaration of block name (different instance name) + float f; +} c; + +uniform ub2 { // ERROR redeclaration of block name (no instance name) + float f123; +}; + +uniform ub3 { + bool b23; +}; + +uniform ub3 { // ERROR redeclaration of block name (no instance name in first or declared) + bool b234; +}; + +precision lowp sampler3D; +precision lowp sampler2DShadow; +precision lowp sampler2DArrayShadow; + +uniform sampler2D s2D; +uniform sampler3D s3D; +uniform sampler2DShadow s2DS; +uniform sampler2DArrayShadow s2DAS; +in vec2 c2D; + +void foo23() +{ + ivec2 x1 = textureSize(s2D, 2); + textureSize(s2D); // ERROR, no lod + ivec3 x3 = textureSize(s2DAS, -1); + textureSize(s2DAS); // ERROR, no lod + vec4 x4 = texture(s2D, c2D); + texture(s2D, c2D, 0.2); // ERROR, bias + vec4 x5 = textureProjOffset(s3D, vec4(0.2), ivec3(1)); + textureProjOffset(s3D, vec4(0.2), ivec3(1), .03); // ERROR, bias + float x6 = textureProjGradOffset(s2DS, invIn, vec2(4.2), vec2(5.3), ivec2(1)); +} + +int fgfg(float f, mediump int i); +int fgfg(float f, highp int i); // ERROR, precision qualifier difference + +int fgfgh(float f, const in mediump int i); +int fgfgh(float f, in mediump int i); // ERROR, precision qualifier difference + +void foo2349() +{ + float[] x = float[] (1.0, 2.0, 3.0); + float[] y = x; + float[3] z = x; + float[3] w; + w = y; +} + +int[] foo213234(); // ERROR +int foo234234(float[]); // ERROR +int foo234235(vec2[] v); // ERROR +precision highp float[2]; // ERROR + +int fffg(float f); +int fffg(float f); + +int gggf(float f); +int gggf(float f) { return 2; } +int gggf(float f); + +int agggf(float f) { return 2; } +int agggf(float f); + +out struct Ssss { float f; } ssss; + +uniform Bblock { + int a; +} Binst; +int Bfoo; + +layout(std140) Binst; // ERROR +layout(std140) Bblock; // ERROR +layout(std140) Bfoo; // ERROR + +layout(std430) uniform B430 { int a; } B430i; // ERROR + +struct SNA { + int a[]; // ERROR +}; + +void fooDeeparray() +{ + float[] x = float[] (1.0, 2.0, 3.0), + y = float[] (1.0, 2.0, 3.0, 4.0); + float xp[3], yp[4]; + xp = x; + yp = y; + xp = y; // ERROR, wrong size + yp = x; // ERROR, wrong size +} + +layout(num_views = 2) in; // ERROR, no extension + +void mwErr() +{ + gl_ViewID_OVR; // ERROR, no extension +} + +#extension GL_OVR_multiview : enable + +layout(num_views = 2) uniform float mwUniform; // ERROR, must be global +layout(num_views = 2) in; // OK + +void mwOk() +{ + gl_ViewID_OVR; +} diff --git a/deps/glslang/glslang/Test/300BuiltIns.frag b/deps/glslang/glslang/Test/300BuiltIns.frag new file mode 100644 index 0000000000..89233e2651 --- /dev/null +++ b/deps/glslang/glslang/Test/300BuiltIns.frag @@ -0,0 +1,76 @@ +#version 300 es + +int imax, imin; +uint umax, umin; + +vec3 x, y; // ERROR, needs default precision +bvec3 bv; + +uint uy; +uvec2 uv2c; +uvec2 uv2y; +uvec2 uv2x; +uvec4 uv4y; + +ivec3 iv3a; +ivec3 iv3b; + +ivec4 iv4a; +ivec4 iv4b; + +float f; + +vec2 v2a, v2b; +vec4 v4; + +void main() +{ + // 1.3 int + vec3 v = mix(x, y, bv); + ivec4 iv10 = abs(iv4a); + ivec4 iv11 = sign(iv4a); + ivec4 iv12 = min(iv4a, iv4b); + ivec4 iv13 = min(iv4a, imin); + uvec2 u = min(uv2x, uv2y); + uvec4 uv = min(uv4y, uy); + ivec3 iv14 = max(iv3a, iv3b); + ivec4 iv15 = max(iv4a, imax); + uvec2 u10 = max(uv2x, uv2y); + uvec2 u11 = max(uv2x, uy); + ivec4 iv16 = clamp(iv4a, iv4a, iv4b); + ivec4 iv17 = clamp(iv4a, imin, imax); + uvec2 u12 = clamp(uv2x, uv2y, uv2c); + uvec4 uv10 = clamp(uv4y, umin, umax); + + // 1.3 float + vec3 modfOut; + vec3 v11 = modf(x, modfOut); + + float t = trunc(f); + vec2 v12 = round(v2a); + vec2 v13 = roundEven(v2a); + bvec2 b10 = isnan(v2a); + bvec4 b11 = isinf(v4); + + // 3.3 float + int i = floatBitsToInt(f); + uvec4 uv11 = floatBitsToUint(v4); + vec4 v14 = intBitsToFloat(iv4a); + vec2 v15 = uintBitsToFloat(uv2c); + + // 4.0 pack + uint u19 = packSnorm2x16(v2a); + vec2 v20 = unpackSnorm2x16(uy); + uint u15 = packUnorm2x16(v2a); + vec2 v16 = unpackUnorm2x16(uy); + uint u17 = packHalf2x16(v2b); + vec2 v18 = unpackHalf2x16(uy); + + // not present + noise2(v18); // ERROR, not present + + float t__; // ERROR, no __ until revision 310 + + // ERROR, no __ until revision 310 + #define __D +} diff --git a/deps/glslang/glslang/Test/300block.frag b/deps/glslang/glslang/Test/300block.frag new file mode 100644 index 0000000000..9820e2a945 --- /dev/null +++ b/deps/glslang/glslang/Test/300block.frag @@ -0,0 +1,58 @@ +#version 300 es + +precision mediump float; + +struct S { + vec4 u; + uvec4 v; + lowp isampler3D sampler; + vec3 w; + struct T1 { // ERROR + int a; + } t; +}; + +uniform S s; + +uniform fooBlock { + uvec4 bv; + uniform mat2 bm2; + lowp isampler2D sampler; // ERROR + struct T2 { // ERROR + int a; + } t; + S fbs; // ERROR, contains a sampler +}; + +uniform barBlock { + uvec4 nbv; + int ni; +} inst; + +uniform barBlockArray { + uvec4 nbv; + int ni; +} insts[4]; + +uniform unreferenced { + float f; + uint u; +}; + +void main() +{ + texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z)); + insts[s.v.x]; // ERROR + fooBlock; // ERROR + mat4(s); // ERROR + int insts; + float barBlock; + mat4(barBlock); + mat4(unreferenced); // ERROR, bad type + ++s; // ERROR + inst - 1; // ERROR + ++barBlock; + 2 * barBlockArray; // ERROR +} + +int fooBlock; // ERROR, redef. diff --git a/deps/glslang/glslang/Test/300layout.frag b/deps/glslang/glslang/Test/300layout.frag new file mode 100644 index 0000000000..32a6b02672 --- /dev/null +++ b/deps/glslang/glslang/Test/300layout.frag @@ -0,0 +1,19 @@ +#version 300 es +precision mediump float; +in vec4 pos; +layout (location = 2) in vec4 color; // ERROR + +layout(location = 1) out vec4 c; +layout(location = 3) out vec4 p; +layout(location = 4) out vec4 q[2]; + +void main() +{ + c = color; + p = pos; + q[1] = pos; +} + +layout(location = 40) out float ca[4]; // ERROR, overlap, ERROR too big +layout(location = 41) out float cb[2]; // ERROR, overlap, ERROR too big +layout(location = 39) out float cc[6]; // ERROR, overlap, ERROR too big diff --git a/deps/glslang/glslang/Test/300layout.vert b/deps/glslang/glslang/Test/300layout.vert new file mode 100644 index 0000000000..06d1206dc1 --- /dev/null +++ b/deps/glslang/glslang/Test/300layout.vert @@ -0,0 +1,57 @@ +#version 300 es + +struct s { vec4 v; }; + +layout(location = 7) in vec3 c; +layout(LocatioN = 3) in vec4 p; +layout(LocatioN = 9) in vec4 q[4]; // ERROR, no array +layout(LocatioN = 10) in s r[4]; // ERROR, no struct, ERROR, location overlap +out vec4 pos; +out vec3 color; + +layout(shared, column_major) uniform mat4 badm4; // ERROR +layout(shared, column_major, row_major) uniform; // default is now shared and row_major + +layout(std140) uniform Transform { // layout of this block is std140 + mat4 M1; // row_major + layout(column_major) mat4 M2; // column major + mat3 N1; // row_major + centroid float badf; // ERROR + in float badg; // ERROR + layout(std140) float bad1; + layout(shared) float bad2; + layout(packed) float bad3; +} tblock; + +uniform T2 { // layout of this block is shared + bool b; + mat4 t2m; +}; + +layout(column_major) uniform T3 { // shared and column_major + mat4 M3; // column_major + layout(row_major) mat4 M4; // row major + mat3 N2; // column_major + int b; // ERROR, redefinition (needs to be last member of block for testing, following members are skipped) +}; + +out badout { // ERROR + float f; +}; + +layout (location = 10) out vec4 badoutA; // ERROR + +void main() +{ + pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m); + color = c * tblock.N1; +} + +shared vec4 compute_only; // ERROR + +layout(packed) uniform; + +layout(packed) uniform float aoeuntaoeu; // ERROR, packed on variable + +layout(location = 40) in float cd; +layout(location = 37) in mat4x3 ce; // ERROR, overlap diff --git a/deps/glslang/glslang/Test/300link.frag b/deps/glslang/glslang/Test/300link.frag new file mode 100644 index 0000000000..5d39cc0f9f --- /dev/null +++ b/deps/glslang/glslang/Test/300link.frag @@ -0,0 +1,8 @@ +#version 300 es + +precision highp float; + +out vec4 color1; +out vec4 color2; + +void main() {} diff --git a/deps/glslang/glslang/Test/300link2.frag b/deps/glslang/glslang/Test/300link2.frag new file mode 100644 index 0000000000..7800ac9bcd --- /dev/null +++ b/deps/glslang/glslang/Test/300link2.frag @@ -0,0 +1,11 @@ +#version 300 es +precision mediump float; +in vec4 pos; + +layout(location = 1) out vec4 c; +layout(location = 5) out vec4 p; +layout(location = 9) out vec4 q[2]; + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/300link3.frag b/deps/glslang/glslang/Test/300link3.frag new file mode 100644 index 0000000000..410592c66c --- /dev/null +++ b/deps/glslang/glslang/Test/300link3.frag @@ -0,0 +1,7 @@ +#version 300 es + +precision highp float; + +out vec4 color1; + +void main() {} diff --git a/deps/glslang/glslang/Test/300operations.frag b/deps/glslang/glslang/Test/300operations.frag new file mode 100644 index 0000000000..5992987aa5 --- /dev/null +++ b/deps/glslang/glslang/Test/300operations.frag @@ -0,0 +1,135 @@ +#version 300 es + +uniform block { + mediump float f; +} instanceName; + +struct S { + int i; +} s; + +float a[5]; + +void main() +{ + bool b; + float f; + int i; + uint u; + bvec3 b3; + vec3 v3; + ivec3 iv3; + uvec3 uv3; + vec4 v4; + ivec4 iv4; + uvec4 uv4; + mat2 m2; + mat4 m4; + + // These are all errors: + instanceName + instanceName; + s + s; + i + f; + u + f; + u + i; + iv3 *= iv4; + iv4 / uv4; + i - v3; + iv3 + uv3; + a * a; + b / b; + + f % f; + i % f; + f % u; + instanceName++; + ++s; + a--; + ++b3; + + iv3 < uv3; + m2 > m2; + m2 != m4; + i >= u; + a <= a; + b > b; + + b && b3; + b3 ^^ b3; + b3 || b; + i && i; + u || u; + m2 ^^ m2; + + !u; + !i; + !m2; + !v3; + !a; + + ~f; + ~m4; + ~v3; + ~a; + ~instanceName; + + i << iv3; + u << uv3; + i >> f; + f >> i; + m4 >> i; + a >> u; + iv3 >> iv4; + + i & u; + u &= uv3; + i | uv3; + u & f; + m2 | m2; + s ^ s; + (f = f) = f; + + // These are all okay: + f * v4; + u + u; + uv4 / u; + iv3 -= iv3; + + i %= 3; + uv3 % 4u; + --m2; + iv4++; + + m4 != m4; + m2 == m2; + i <= i; + a == a; + s != s; + + b && b; + b || b; + b ^^ b; + + !b, uv3; + + ~i; + ~u; + ~uv3; + ~iv3; + + uv3 <<= i; + i >> i; + u << u; + iv3 >> iv3; + + i & i; + u | u; + iv3 ^ iv3; + u & uv3; + uv3 | u; + uv3 &= u; + int arr[0x222 & 0xf]; + arr[1]; // size 2 + int arr2[(uvec2(0, 0x2) | 0x1u).y]; + arr2[2]; // size 3 +} diff --git a/deps/glslang/glslang/Test/300samplerExternal.frag b/deps/glslang/glslang/Test/300samplerExternal.frag new file mode 100644 index 0000000000..3724f8e0a1 --- /dev/null +++ b/deps/glslang/glslang/Test/300samplerExternal.frag @@ -0,0 +1,41 @@ +#version 300 es + +#extension GL_OES_EGL_image_external_essl3 : enable + +uniform samplerExternalOES sExt; +precision mediump samplerExternalOES; +uniform samplerExternalOES mediumExt; +uniform highp samplerExternalOES highExt; + +void main() +{ + texture2D(sExt, vec2(0.2)); // ERROR + texture2D(mediumExt, vec2(0.2)); // ERROR + texture2D(highExt, vec2(0.2)); // ERROR + texture2DProj(sExt, vec3(0.3)); // ERROR + texture2DProj(sExt, vec4(0.3)); // ERROR + + int lod = 0; + highp float bias = 0.01; + textureSize(sExt, lod); + texture(sExt, vec2(0.2)); + texture(sExt, vec2(0.2), bias); + textureProj(sExt, vec3(0.2)); + textureProj(sExt, vec3(0.2), bias); + textureProj(sExt, vec4(0.2)); + textureProj(sExt, vec4(0.2), bias); + texelFetch(sExt, ivec2(4), lod); + + texture3D(sExt, vec3(0.3)); // ERROR + texture2DProjLod(sExt, vec3(0.3), 0.3); // ERROR + texture(sExt, vec3(0.3)); // ERROR + textureProjLod(sExt, vec3(0.3), 0.3); // ERROR +} + +#extension GL_OES_EGL_image_external_essl3 : disable + +#extension GL_OES_EGL_image_external : enable +uniform samplerExternalOES badExt; // ERROR +#extension GL_OES_EGL_image_external : disable + +uniform samplerExternalOES badExt; // ERROR diff --git a/deps/glslang/glslang/Test/300scope.vert b/deps/glslang/glslang/Test/300scope.vert new file mode 100644 index 0000000000..162e99822c --- /dev/null +++ b/deps/glslang/glslang/Test/300scope.vert @@ -0,0 +1,74 @@ +#version 300 es + +int f(int a, int b, int c) +{ + int a = b; // ERROR, redefinition + + { + float a = float(a) + 1.0; + } + + return a; +} + +int f(int a, int b, int c); // okay to redeclare + +bool b; +float b(int a); // ERROR: redefinition + +float c(int a); +bool c; // ERROR: redefinition + +float f; // ERROR: redefinition +float tan; // ERROR: redefines built-in function +float sin(float x); // ERROR: can't redefine built-in functions +float cos(float x) // ERROR: can't redefine built-in functions +{ + return 1.0; +} +bool radians(bool x) // ERROR: can't overload built-in functions +{ + return true; +} + +invariant gl_Position; + +void main() +{ + int g(); // ERROR: no local function declarations + g(); + + float sin; // okay + sin; + sin(0.7); // ERROR, use of hidden function + f(1,2,3); + + float f; // hides f() + f = 3.0; + + gl_Position = vec4(f); + + for (int f = 0; f < 10; ++f) + ++f; + + int x = 1; + { + float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 + int z = z; // ERROR: z not previously defined. + } + { + int x = x; // x is initialized to '1' + } + + struct S + { + int x; + }; + { + S S = S(0); // 'S' is only visible as a struct and constructor + S.x; // 'S' is now visible as a variable + } + + int degrees; + degrees(3.2); // ERROR, use of hidden built-in function +} diff --git a/deps/glslang/glslang/Test/310.comp b/deps/glslang/glslang/Test/310.comp new file mode 100644 index 0000000000..9ca8eaaa10 --- /dev/null +++ b/deps/glslang/glslang/Test/310.comp @@ -0,0 +1,256 @@ +#version 310 es + +layout(local_size_x = 2) in; +layout(local_size_x = 16) in; // ERROR, changing +layout(local_size_z = 4096) in; // ERROR, too large +layout(local_size_x = 2) in; +layout(local_size_y = 0) in; // ERROR, 0 not allowed +const int total = gl_MaxComputeWorkGroupCount.y + + gl_MaxComputeUniformComponents + + gl_MaxComputeTextureImageUnits + + gl_MaxComputeImageUniforms + + gl_MaxComputeAtomicCounters + + gl_MaxComputeAtomicCounterBuffers; + +buffer ShaderStorageBlock +{ + int value; + float values[]; +}; + +buffer InvalidShaderStorageBlock +{ + float values[]; // ERROR + int value; +} invalid; + +void main() +{ + barrier(); + memoryBarrier(); + memoryBarrierAtomicCounter(); + memoryBarrierBuffer(); + memoryBarrierShared(); + memoryBarrierImage(); + groupMemoryBarrier(); + value = int(values[gl_LocalInvocationIndex]); +} + +layout(location = 2) in vec3 v3; // ERROR +in float f; // ERROR +out float fo; // ERROR + +shared vec4 s; +layout(location = 2) shared vec4 sl; // ERROR +shared float fs = 4.2; // ERROR + +layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR + +int arrX[gl_WorkGroupSize.x]; +int arrY[gl_WorkGroupSize.y]; +int arrZ[gl_WorkGroupSize.z]; + +readonly buffer roblock +{ + int value; + float values[]; +} ro; + +void foo() +{ + ro.values[2] = 4.7; // ERROR, readonly + ro.values.length(); + ++s; +} + +buffer vec4 v; // ERROR + +uniform usampler2D us2dbad; // ERROR, default precision + +precision highp usampler2D; +precision highp iimage2DArray; +precision highp iimage2D; + +uniform usampler2D us2d; + +uniform iimage2DArray ii2dabad; // ERROR, not writeonly +uniform writeonly iimage2DArray ii2da; + +layout(r32i) uniform iimage2D iimg2D; +layout(rgba32i) uniform readonly iimage2D iimg2Drgba; +layout(rgba32f) uniform readonly image2D img2Drgba; // ERROR, no default +layout(r32ui) uniform uimage2D uimg2D; // ERROR, no default + +void qux() +{ + int i = 4; + imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);// ERROR no longer in 310 + imageAtomicAdd(uimg2D, ivec2(i,i), uint(i)); // ERROR no longer in 310 + imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR no longer in 310 // ERROR iimg2Drgba does not have r32i layout + imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR no longer in 310 // ERROR img2Drgba is not integer image + ivec4 pos = imageLoad(iimg2D, ivec2(i,i)); + imageStore(ii2da, ivec3(i,i,i), ivec4(0)); + imageLoad(img2Drgba, ivec2(i,i)); + imageLoad(ii2da, ivec3(i,i,i)); // ERROR, drops writeonly +} + +volatile float vol; // ERROR, not an image +readonly int vol2; // ERROR, not an image + +void passr(coherent readonly iimage2D image) +{ +} + +layout(r32i) coherent readonly uniform iimage2D qualim1; +layout(r32i) coherent restrict readonly uniform iimage2D qualim2; + +void passrc() +{ + passr(qualim1); + passr(qualim2); // ERROR, drops restrict + passr(iimg2D); +} + +highp layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch +highp layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch +highp layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch +layout(r8_snorm) uniform readonly iimage2D i4bad; // ERROR, type mismatch +layout(rgba32ui) uniform readonly iimage2D i5bad; // ERROR, type mismatch +layout(r8ui) uniform readonly iimage2D i6bad; // ERROR, type mismatch + +layout(binding = 0) uniform atomic_uint counter; + +uint func(atomic_uint c) +{ + return atomicCounterIncrement(c); +} + +uint func2(out atomic_uint c) // ERROR, output +{ + return counter; // ERROR, type mismatch + return atomicCounter(counter); +} + +void mainAC() +{ + atomic_uint non_uniform_counter; // ERROR + uint val = atomicCounter(counter); + atomicCounterDecrement(counter); +} + +layout(binding = 1) uniform mediump atomic_uint counterBad; // ERROR, not highp + +layout(binding = 2, offset = 4) uniform atomic_uint countArr[4]; +uniform int i; + +void opac() +{ + int a[3]; + a[counter]; // ERROR, non-integer + countArr[2]; + countArr[i]; +} + +shared int atomi; +shared uint atomu; + +void atoms() +{ + int origi = atomicAdd(atomi, 3); + uint origu = atomicAnd(atomu, 7u); + origi = atomicExchange(atomi, 4); + origu = atomicCompSwap(atomu, 10u, 8u); +} + +precision highp atomic_uint; +precision lowp atomic_uint; // ERROR + +precise int pfoo; // ERROR, reserved + +dmat2x4 dm; // ERROR +uniform samplerCubeArray sca; // ERROR +uniform iimage2DRect i2dr; // ERROR +highp uniform image2DMS i2dms; // ERROR +uniform uimage2DMSArray u2dmsa; // ERROR + +highp layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1; + layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2; +highp layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3; +highp layout(r32f) coherent volatile restrict uniform image2D okay4; + +highp layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers + layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers +highp layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers + +writeonly buffer woblock +{ + int value; + float values[]; +} wo; + +void foowo() +{ + float g; + g = wo.values[2]; // ERROR, writeonly + float f = wo.values[2]; // ERROR, writeonly + ++wo.values[2]; // ERROR, writeonly + wo.values[2]--; // ERROR, writeonly + f + wo.values[2]; // ERROR, writeonly + wo.values[2] - f; // ERROR, writeonly + bool b; + b ? f : wo.values[2]; // ERROR, writeonly + b ? wo.values[2] : f; // ERROR, writeonly + if (f == wo.values[2]) // ERROR, writeonly + ++f; + if (f >= wo.values[2]) // ERROR, writeonly + ++f; + f = vec3(wo.values[2]).x; // ERROR, writeonly + ~wo.value; // ERROR, writeonly + wo.values[2] = 3.4; +} + +buffer multioblock +{ + readonly int value; + writeonly float values[]; +} multio; + +void foomultio() +{ + float g; + g = wo.values[2]; // ERROR, writeonly + ~wo.value; + wo.values[2] = 3.4; + wo.value = 2; // ERROR, readonly +} + +in inb { // ERROR + int a; +} inbi; + +out outb { // ERROR + int a; +} outbi; + +float t__; // ERROR, no __ until revision 310 + + // ERROR, no __ until revision 310 +#define __D + +shared vec4 arr[2][3][4]; + +void devi() +{ + gl_DeviceIndex; // ERROR, no extension + gl_ViewIndex; // ERROR, never this stage +} + +#ifdef GL_EXT_device_group +#extension GL_EXT_device_group : enable +#endif + +void devie() +{ + gl_DeviceIndex; + gl_ViewIndex; // ERROR, never this stage +} diff --git a/deps/glslang/glslang/Test/310.frag b/deps/glslang/glslang/Test/310.frag new file mode 100644 index 0000000000..6814e6c539 --- /dev/null +++ b/deps/glslang/glslang/Test/310.frag @@ -0,0 +1,451 @@ +#version 310 es +highp float nodef3(float); // ERROR, no default precision +precision mediump float; +precision highp usampler2D; +precision highp sampler2D; +precision highp isampler2DArray; + +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, not supported + +layout(location = 2) in vec3 v3; +layout(location = 2) in mat4 yi; // ERROR, locations conflict with xi + +uniform sampler2D arrayedSampler[5]; +uniform usampler2D usamp2d; +uniform usampler2DRect samp2dr; // ERROR, reserved +uniform isampler2DArray isamp2DA; + +in vec2 c2D; +uniform int i; + +void main() +{ + vec4 v = texture(arrayedSampler[i], c2D); // ERROR + + ivec2 offsets[4]; + const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); + uvec4 uv4 = textureGatherOffsets(samp2dr, c2D, offsets, 2); // ERROR, not supported + vec4 v4 = textureGather(arrayedSampler[0], c2D); + ivec4 iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), i); // ERROR, last argument not const + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 4); // ERROR, last argument out of range + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(0.5)); + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); // ERROR, offset not constant +} + +out vec4 outp; +void foo23() +{ + const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); + + textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), ivec2(c2D)); // ERROR, offset not constant + textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), offsets[1]); + textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), offsets[2]); // ERROR, offset out of range + textureProjGradOffset(usamp2d, outp, vec2(0.0), vec2(0.0), ivec2(-10, 20)); // ERROR, offset out of range + + if (gl_HelperInvocation) + ++outp; + + int sum = gl_MaxVertexImageUniforms + + gl_MaxFragmentImageUniforms + + gl_MaxComputeImageUniforms + + gl_MaxCombinedImageUniforms + + gl_MaxCombinedShaderOutputResources; + + bool b1, b2, b3, b; + + b1 = mix(b2, b3, b); + uvec3 um3 = mix(uvec3(i), uvec3(i), bvec3(b)); + ivec4 im4 = mix(ivec4(i), ivec4(i), bvec4(b)); +} + +layout(binding=3) uniform sampler2D s1; +layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec. +highp layout(binding=2) uniform writeonly image2D i2D; + layout(binding=4) uniform readonly image3D i3D; // ERROR, no default precision + layout(binding=5) uniform imageCube iCube; // ERROR, no default precision + layout(binding=6) uniform image2DArray i2DA; // ERROR, no default precision + layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified; // ERROR, no default precision + +layout(binding = 1) uniform bb { + int foo; + layout(binding = 2) float f; // ERROR +} bbi; + +in centroid vec4 centroidIn; +layout(location = 200000) uniform vec4 bigl; // ERROR, location too big + +layout(early_fragment_tests) in; + +layout(location = 40) out vec4 bigout1; // ERROR, too big +layout(location = 40) out vec4 bigout2; // ERROR, overlap +layout(location = -2) out vec4 neg; // ERROR, negative + +layout(std430) buffer b430 { + int i; +} b430i; + +layout(shared) uniform bshar { + int i; +} bshari; + +in smooth vec4 smoothIn; +in flat int flatIn; + +uniform sampler2DMS s2dms; // ERROR, no default precision qualifier + +void foots() +{ + highp ivec2 v2 = textureSize(s1, 2); + highp ivec3 v3 = textureSize(isamp2DA, 3); + v2 = textureSize(s2dms); + v2 = imageSize(i2D); + v3 = imageSize(i3D); + v2 = imageSize(iCube); + v3 = imageSize(i2DA); + v2 = imageSize(i2Dqualified); +} + +out bool bout; // ERROR +highp out image2D imageOut; // ERROR +out mat2x3 mout; // ERROR + +in bool inb; // ERROR +in sampler2D ino; // ERROR +in float ina[4]; +in float inaa[4][2]; // ERROR +struct S { float f; }; +in S ins; +in S[4] inasa; // ERROR +in S insa[4]; // ERROR +struct SA { float f[4]; }; +in SA inSA; // ERROR +struct SS { float f; S s; }; +in SS inSS; // ERROR + +#ifndef GL_EXT_shader_io_blocks +#error GL_EXT_shader_io_blocks not defined +#endif + +#extension GL_EXT_shader_io_blocks : enable + +out outbname { int a; } outbinst; // ERROR, not out block in fragment shader + +in inbname { + int a; + vec4 v; + struct { int b; } s; // ERROR, nested struct definition +} inbinst; + +in inbname2 { + layout(location = 12) int aAnon; + layout(location = 13) centroid in vec4 vAnon; +}; + +in layout(location = 13) vec4 aliased; // ERROR, aliased + +in inbname2 { // ERROR, reuse of block name + int aAnon; + centroid in vec4 vAnon; +}; + +in badmember { // ERROR, aAnon already in global scope + int aAnon; +}; + +int inbname; // ERROR, redefinition of block name + +vec4 vAnon; // ERROR, anon in global scope; redefinition + +in arrayed { + float f; +} arrayedInst[4]; + +void fooIO() +{ + vec4 v = inbinst.v + vAnon; + v *= arrayedInst[2].f; + v *= arrayedInst[i].f; +} + +in vec4 gl_FragCoord; +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES + +layout(early_fragment_tests) in; +out float gl_FragDepth; +layout(depth_any) out float gl_FragDepth; // ERROR, non-ES + +void foo_IO() +{ + gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared + gl_Layer; // ERROR, not present + gl_PrimitiveID; // ERROR, not present + bool f = gl_FrontFacing; +} + +out float gl_FragDepth; + +#extension GL_OES_geometry_shader : enable + +void foo_GS() +{ + highp int l = gl_Layer; + highp int p = gl_PrimitiveID; +} + +in vec2 inf, ing; +uniform ivec2 offsets[4]; +uniform sampler2D sArray[4]; +uniform int sIndex; +layout(binding = 0) uniform atomic_uint auArray[2]; +uniform ubName { int i; } ubInst[4]; +buffer bbName { int i; } bbInst[4]; +highp uniform writeonly image2D iArray[5]; +const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); + +void pfooBad() +{ + precise vec2 h; // ERROR reserved + h = fma(inf, ing, h); // ERROR, not available + textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant + textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available +} + +#extension GL_OES_gpu_shader5 : enable + +void pfoo() +{ + precise vec2 h; + h = fma(inf, ing, h); + textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); + textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); + textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant +} + +#extension GL_EXT_texture_cube_map_array : enable + +precision highp imageCubeArray ; +precision highp iimageCubeArray ; +precision highp uimageCubeArray ; + +precision highp samplerCubeArray ; +precision highp samplerCubeArrayShadow; +precision highp isamplerCubeArray ; +precision highp usamplerCubeArray ; + +uniform writeonly imageCubeArray CA1; +uniform writeonly iimageCubeArray CA2; +uniform writeonly uimageCubeArray CA3; + +#ifdef GL_EXT_texture_cube_map_array +uniform samplerCubeArray CA4; +uniform samplerCubeArrayShadow CA5; +uniform isamplerCubeArray CA6; +uniform usamplerCubeArray CA7; +#endif + +void CAT() +{ + highp vec4 b4 = texture(CA4, vec4(0.5), 0.24); + highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26); + highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27); +} + +void badSample() +{ + lowp int a1 = gl_SampleID; // ERROR, need extension + mediump vec2 a2 = gl_SamplePosition; // ERROR, need extension + highp int a3 = gl_SampleMaskIn[0]; // ERROR, need extension + gl_SampleMask[0] = a3; // ERROR, need extension + mediump int n = gl_NumSamples; // ERROR, need extension +} + +#ifdef GL_OES_sample_variables +#extension GL_OES_sample_variables : enable +#endif + +void goodSample() +{ + lowp int a1 = gl_SampleID; + mediump vec2 a2 = gl_SamplePosition; + highp int a3 = gl_SampleMaskIn[0]; + gl_SampleMask[0] = a3; + mediump int n1 = gl_MaxSamples; + mediump int n2 = gl_NumSamples; +} + +uniform layout(r32f) highp image2D im2Df; +uniform layout(r32ui) highp uimage2D im2Du; +uniform layout(r32i) highp iimage2D im2Di; +uniform ivec2 P; + +void badImageAtom() +{ + float datf; + int dati; + uint datu; + + imageAtomicAdd( im2Di, P, dati); // ERROR, need extension + imageAtomicAdd( im2Du, P, datu); // ERROR, need extension + imageAtomicMin( im2Di, P, dati); // ERROR, need extension + imageAtomicMin( im2Du, P, datu); // ERROR, need extension + imageAtomicMax( im2Di, P, dati); // ERROR, need extension + imageAtomicMax( im2Du, P, datu); // ERROR, need extension + imageAtomicAnd( im2Di, P, dati); // ERROR, need extension + imageAtomicAnd( im2Du, P, datu); // ERROR, need extension + imageAtomicOr( im2Di, P, dati); // ERROR, need extension + imageAtomicOr( im2Du, P, datu); // ERROR, need extension + imageAtomicXor( im2Di, P, dati); // ERROR, need extension + imageAtomicXor( im2Du, P, datu); // ERROR, need extension + imageAtomicExchange(im2Di, P, dati); // ERROR, need extension + imageAtomicExchange(im2Du, P, datu); // ERROR, need extension + imageAtomicExchange(im2Df, P, datf); // ERROR, need extension + imageAtomicCompSwap(im2Di, P, 3, dati); // ERROR, need extension + imageAtomicCompSwap(im2Du, P, 5u, datu); // ERROR, need extension +} + +#ifdef GL_OES_shader_image_atomic +#extension GL_OES_shader_image_atomic : enable +#endif + +uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly +uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly +uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly + +void goodImageAtom() +{ + float datf; + int dati; + uint datu; + + imageAtomicAdd( im2Di, P, dati); + imageAtomicAdd( im2Du, P, datu); + imageAtomicMin( im2Di, P, dati); + imageAtomicMin( im2Du, P, datu); + imageAtomicMax( im2Di, P, dati); + imageAtomicMax( im2Du, P, datu); + imageAtomicAnd( im2Di, P, dati); + imageAtomicAnd( im2Du, P, datu); + imageAtomicOr( im2Di, P, dati); + imageAtomicOr( im2Du, P, datu); + imageAtomicXor( im2Di, P, dati); + imageAtomicXor( im2Du, P, datu); + imageAtomicExchange(im2Di, P, dati); + imageAtomicExchange(im2Du, P, datu); + imageAtomicExchange(im2Df, P, datf); + imageAtomicCompSwap(im2Di, P, 3, dati); + imageAtomicCompSwap(im2Du, P, 5u, datu); + + imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image + imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image + imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image +} + +sample in vec4 colorSampInBad; // ERROR, reserved +centroid out vec4 colorCentroidBad; // ERROR +flat out vec4 colorBadFlat; // ERROR +smooth out vec4 colorBadSmooth; // ERROR +noperspective out vec4 colorBadNo; // ERROR +flat centroid in vec2 colorfc; +in float scalarIn; + +void badInterp() +{ + interpolateAtCentroid(colorfc); // ERROR, need extension + interpolateAtSample(colorfc, 1); // ERROR, need extension + interpolateAtOffset(colorfc, vec2(0.2)); // ERROR, need extension +} + +#if defined GL_OES_shader_multisample_interpolation +#extension GL_OES_shader_multisample_interpolation : enable +#endif + +sample in vec4 colorSampIn; +sample out vec4 colorSampleBad; // ERROR +flat sample in vec4 colorfsi; +sample in vec3 sampInArray[4]; + +void interp() +{ + float res; + vec2 res2; + vec3 res3; + vec4 res4; + + res2 = interpolateAtCentroid(colorfc); + res4 = interpolateAtCentroid(colorSampIn); + res4 = interpolateAtCentroid(colorfsi); + res = interpolateAtCentroid(scalarIn); + res3 = interpolateAtCentroid(sampInArray); // ERROR + res3 = interpolateAtCentroid(sampInArray[2]); + res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR + + res3 = interpolateAtSample(sampInArray, 1); // ERROR + res3 = interpolateAtSample(sampInArray[i], 0); + res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR + res = interpolateAtSample(scalarIn, 1); + + res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR + res3 = interpolateAtOffset(sampInArray[2], vec2(0.2)); + res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle + res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference + res = interpolateAtOffset(scalarIn, vec2(0.2)); + + float f; + res = interpolateAtCentroid(f); // ERROR, not interpolant + res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant +} + +layout(blend_support_softlight) out; // ERROR, need extension + +#ifdef GL_KHR_blend_equation_advanced +#extension GL_KHR_blend_equation_advanced : enable +#endif + +layout(blend_support_multiply) out; +layout(blend_support_screen) out; +layout(blend_support_overlay) out; +layout(blend_support_darken, blend_support_lighten) out; +layout(blend_support_colordodge) layout(blend_support_colorburn) out; +layout(blend_support_hardlight) out; +layout(blend_support_softlight) out; +layout(blend_support_difference) out; +layout(blend_support_exclusion) out; +layout(blend_support_hsl_hue) out; +layout(blend_support_hsl_saturation) out; +layout(blend_support_hsl_color) out; +layout(blend_support_hsl_luminosity) out; +layout(blend_support_all_equations) out; + +layout(blend_support_hsl_luminosity) out; // okay to repeat + +layout(blend_support_hsl_luminosity) in; // ERROR, only on "out" +layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone +layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone +layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone +layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone +void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone +layout(blend_support_flizbit) out; // ERROR, no flizbit + +out vec4 outAA[2][2]; // ERROR + +void devi() +{ + gl_DeviceIndex; // ERROR, no extension + gl_ViewIndex; // ERROR, no extension +} + +#ifdef GL_EXT_device_group +#extension GL_EXT_device_group : enable +#endif + +#ifdef GL_EXT_device_group +#extension GL_EXT_multiview : enable +#endif + +void devie() +{ + gl_DeviceIndex; + gl_ViewIndex; +} diff --git a/deps/glslang/glslang/Test/310.geom b/deps/glslang/glslang/Test/310.geom new file mode 100644 index 0000000000..bf0b1ae046 --- /dev/null +++ b/deps/glslang/glslang/Test/310.geom @@ -0,0 +1,152 @@ +#version 310 es + +#ifdef GL_EXT_geometry_shader +#extension GL_EXT_geometry_shader : enable +#else +#error no GL_EXT_geometry_shader +#endif + +#ifndef GL_OES_geometry_shader +#error no GL_OES_geometry_shader +#endif + +precision mediump float; + +in fromVertex { + in vec3 color; +} fromV[]; + +in vec4 nonBlockUnsized[]; + +out toFragment { + out vec3 color; +} toF; + +out fromVertex { // okay to reuse a block name for another block name + vec3 color; +}; + +out fooB { // ERROR, cannot reuse block name as block instance + vec2 color; +} fromVertex; + +int fromVertex; // ERROR, cannot reuse a block name for something else + +out fooC { // ERROR, cannot have same name for block and instance name + vec2 color; +} fooC; + +void main() +{ + EmitVertex(); + EndPrimitive(); + EmitStreamVertex(1); // ERROR + EndStreamPrimitive(0); // ERROR + + color = fromV[0].color; + gl_ClipDistance[3] = // ERROR, no ClipDistance + gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance + gl_Position = gl_in[0].gl_Position; + + gl_PrimitiveID = gl_PrimitiveIDIn; + gl_Layer = 2; +} + +layout(stream = 4) out vec4 ov4; // ERROR, no streams + +layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip" + +out ooutb { vec4 a; } ouuaa6; + +layout(max_vertices = 200) out; +layout(max_vertices = 300) out; // ERROR, too big +void foo(layout(max_vertices = 4) int a) // ERROR +{ + ouuaa6.a = vec4(1.0); +} + +layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive +layout(line_strip, points) out; // ERROR, changing output primitive +layout(triangle_strip) in; // ERROR, not an input primitive +layout(triangle_strip) uniform; // ERROR +layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable +layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input +layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0 +out outbn2 { + layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0 + layout(max_vertices = 3) int b; // ERROR, not on a block member + layout(triangle_strip) int c; // ERROR, not on a block member +} outbi; + +layout(lines) out; // ERROR, not on output +layout(lines_adjacency) in; +layout(triangles) in; // ERROR, can't change it +layout(triangles_adjacency) in; // ERROR, can't change it +layout(invocations = 4) in; + +in sameName { + int a15; +} insn[]; + +out sameName { + float f15; +}; + +uniform sameName { + bool b15; +}; + +const int summ = gl_MaxVertexAttribs + + gl_MaxGeometryInputComponents + + gl_MaxGeometryOutputComponents + + gl_MaxGeometryImageUniforms + + gl_MaxGeometryTextureImageUnits + + gl_MaxGeometryOutputVertices + + gl_MaxGeometryTotalOutputComponents + + gl_MaxGeometryUniformComponents + + gl_MaxGeometryAtomicCounters + + gl_MaxGeometryAtomicCounterBuffers + + gl_MaxVertexTextureImageUnits + + gl_MaxCombinedTextureImageUnits + + gl_MaxTextureImageUnits + + gl_MaxDrawBuffers; + +void fooe1() +{ + gl_ViewportIndex; // ERROR, not in ES + gl_MaxViewports; // ERROR, not in ES + insn.length(); // 4: lines_adjacency + int inv = gl_InvocationID; +} + +in vec4 explArray[4]; +in vec4 explArrayBad[5]; // ERROR, wrong size +in vec4 nonArrayed; // ERROR, not an array +flat out vec3 myColor1; +centroid out vec3 myColor2; +centroid in vec3 centr[]; +sample out vec4 perSampleColor; // ERROR without sample extensions + +layout(max_vertices = 200) out; // matching redecl + +layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component + +void notHere() +{ + gl_MaxGeometryVaryingComponents; // ERROR, not in ES + gl_VerticesIn; // ERROR, not in ES +} + +void pointSize1() +{ + highp float ps = gl_in[3].gl_PointSize; // ERROR, need point_size extension + gl_PointSize = ps; // ERROR, need point_size extension +} + +#extension GL_OES_geometry_point_size : enable + +void pointSize2() +{ + highp float ps = gl_in[3].gl_PointSize; + gl_PointSize = ps; +} diff --git a/deps/glslang/glslang/Test/310.tesc b/deps/glslang/glslang/Test/310.tesc new file mode 100644 index 0000000000..29c393239b --- /dev/null +++ b/deps/glslang/glslang/Test/310.tesc @@ -0,0 +1,169 @@ +#version 310 es + +#extension GL_OES_tessellation_shader : enable + +layout(vertices = 4) out; +out int outa[gl_out.length()]; + +layout(quads) in; // ERROR +layout(ccw) out; // ERROR +layout(fractional_even_spacing) in; // ERROR + +patch in vec4 patchIn; // ERROR +patch out vec4 patchOut; + +void main() +{ + barrier(); + + int a = gl_MaxTessControlInputComponents + + gl_MaxTessControlOutputComponents + + gl_MaxTessControlTextureImageUnits + + gl_MaxTessControlUniformComponents + + gl_MaxTessControlTotalOutputComponents; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension + float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[gl_InvocationID].gl_Position = p; + gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension + gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES + + gl_TessLevelOuter[3] = 3.2; + gl_TessLevelInner[1] = 1.3; + + if (a > 10) + barrier(); // ERROR + else + barrier(); // ERROR + + barrier(); + + do { + barrier(); // ERROR + } while (a > 10); + + switch (a) { + default: + barrier(); // ERROR + break; + } + a < 12 ? a : (barrier(), a); // ERROR + { + barrier(); + } + + return; + + barrier(); // ERROR +} + +layout(vertices = 4) in; // ERROR, not on in +layout(vertices = 5) out; // ERROR, changing # + +void foo() +{ + gl_out[4].gl_Position; // ERROR, out of range + + barrier(); // ERROR, not in main +} + +in vec2 ina; // ERROR, not array +in vec2 inb[]; +in vec2 inc[18]; // ERROR, wrong size +in vec2 ind[gl_MaxPatchVertices]; +patch out float implA[]; // ERROR, not sized + +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 3) in vec4 ivla[]; +layout(location = 4) in vec4 ivlb[]; +layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping + +layout(location = 3) out vec4 ovla[]; +layout(location = 4) out vec4 ovlb[]; +layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping + +void foop() +{ + precise float d; // ERROR without gpu_shader5 + d = fma(d, d, d); // ERROR without gpu_shader5 +} + +patch out pinbn { + int a; +} pinbi; + +centroid out vec3 myColor2[]; +centroid in vec3 centr[]; +sample out vec4 perSampleColor[]; // ERROR without sample extensions + +layout(vertices = 4) out float badlay[]; // ERROR, not on a variable +out float misSized[5]; // ERROR, size doesn't match +out float okaySize[4]; + +#extension GL_OES_tessellation_point_size : enable + +void pointSize2() +{ + float ps = gl_in[1].gl_PointSize; + gl_out[gl_InvocationID].gl_PointSize = ps; +} + +#extension GL_OES_gpu_shader5 : enable + +precise vec3 pv3; + +void goodfoop() +{ + precise float d; + + pv3 *= pv3; + pv3 = fma(pv3, pv3, pv3); + d = fma(d, d, d); +} + +void bbBad() +{ + gl_BoundingBoxOES; // ERROR without GL_OES_primitive_bounding_box +} + +#extension GL_OES_primitive_bounding_box : enable + +void bb() +{ + gl_BoundingBoxOES[0] = vec4(0.0); + gl_BoundingBoxOES[1] = vec4(1.0); + gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow +} + +out patch badpatchBName { // ERROR, array size required + float f; +} badpatchIName[]; + +out patch patchBName { + float f; +} patchIName[4]; + +void outputtingOutparam(out int a) +{ + a = 2; +} + +void outputting() +{ + outa[gl_InvocationID] = 2; + outa[1] = 2; // ERROR, not gl_InvocationID + gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID + outa[1]; + gl_out[0]; + outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID + outputtingOutparam(outa[gl_InvocationID]); + patchIName[1].f = 3.14; + outa[(gl_InvocationID)] = 2; +} diff --git a/deps/glslang/glslang/Test/310.tese b/deps/glslang/glslang/Test/310.tese new file mode 100644 index 0000000000..bbeaa87fcf --- /dev/null +++ b/deps/glslang/glslang/Test/310.tese @@ -0,0 +1,128 @@ +#version 310 es + +#extension GL_EXT_tessellation_shader : enable +#extension GL_OES_tessellation_shader : enable +#extension GL_EXT_tessellation_shader : disable + +layout(vertices = 4) out; // ERROR +layout(quads, cw) in; +layout(triangles) in; // ERROR +layout(isolines) in; // ERROR + +layout(ccw) in; // ERROR +layout(cw) in; + +layout(fractional_odd_spacing) in; +layout(equal_spacing) in; // ERROR +layout(fractional_even_spacing) in; // ERROR + +layout(point_mode) in; + +patch in vec4 patchIn; +patch out vec4 patchOut; // ERROR + +void main() +{ + barrier(); // ERROR + + int a = gl_MaxTessEvaluationInputComponents + + gl_MaxTessEvaluationOutputComponents + + gl_MaxTessEvaluationTextureImageUnits + + gl_MaxTessEvaluationUniformComponents + + gl_MaxTessPatchComponents + + gl_MaxPatchVertices + + gl_MaxTessGenLevel; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension + float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + vec3 tc = gl_TessCoord; + float tlo = gl_TessLevelOuter[3]; + float tli = gl_TessLevelInner[1]; + + gl_Position = p; + gl_PointSize = ps; // ERROR, need point_size extension + gl_ClipDistance[2] = cd; // ERROR, not in ES +} + +smooth patch in vec4 badp1; // ERROR +flat patch in vec4 badp2; // ERROR +noperspective patch in vec4 badp3; // ERROR +patch sample in vec3 badp4; // ERROR + +#extension GL_ARB_separate_shader_objects : enable + +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + +in gl_PerVertex // ERROR, second redeclaration of gl_in +{ + vec4 gl_Position; +} gl_in[]; + +layout(quads, cw) out; // ERROR +layout(triangles) out; // ERROR +layout(isolines) out; // ERROR +layout(cw) out; // ERROR +layout(fractional_odd_spacing) out; // ERROR +layout(equal_spacing) out; // ERROR +layout(fractional_even_spacing) out; // ERROR +layout(point_mode) out; // ERROR + +in vec2 ina; // ERROR, not array +in vec2 inb[]; +in vec2 inc[18]; // ERROR, wrong size +in vec2 ind[gl_MaxPatchVertices]; + +in testbla { // ERROR, not array + int f; +} bla; + +in testblb { + int f; +} blb[]; + +in testblc { // ERROR wrong size + int f; +} blc[18]; + +in testbld { + int f; +} bld[gl_MaxPatchVertices]; + +layout(location = 23) in vec4 ivla[]; +layout(location = 24) in vec4 ivlb[]; +layout(location = 24) in vec4 ivlc[]; // ERROR, overlap + +layout(location = 23) out vec4 ovla[2]; +layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap + +in float gl_TessLevelOuter[4]; // ERROR, can't redeclare + +patch in pinbn { + int a; +} pinbi; + +centroid out vec3 myColor2; +centroid in vec3 centr[]; +sample out vec4 perSampleColor; // ERROR without sample extensions + +#extension GL_OES_tessellation_point_size : enable + +void pointSize2() +{ + float ps = gl_in[1].gl_PointSize; // ERROR, not in the redeclaration, but no error on use of gl_PointSize + gl_PointSize = ps; +} + +#extension GL_EXT_primitive_bounding_box : enable + +void bbbad() +{ + gl_BoundingBoxOES; // ERROR, wrong stage +} diff --git a/deps/glslang/glslang/Test/310.vert b/deps/glslang/glslang/Test/310.vert new file mode 100644 index 0000000000..92a50e2ef0 --- /dev/null +++ b/deps/glslang/glslang/Test/310.vert @@ -0,0 +1,403 @@ +#version 310 es + +shared vec4 s; // ERROR +layout(local_size_x = 2) out; // ERROR +buffer vec4 v; // ERROR +in int ini; +layout(location = 2) uniform mat4 x; +layout(location = 3) uniform mat4 y; +layout(location = 2) out mat4 xi; +layout(location = 3) out mat4 yi; // ERROR, locations conflict with xi + +void main() +{ + uvec2 u2; + u2 = uaddCarry(u2, u2, u2); + uint u1; + u1 = usubBorrow(u1, u1, u1); + uvec4 u4; + umulExtended(u4, u4, u4, u4); + ivec4 i4; + imulExtended(i4, i4, i4, i4); + int i1; + i1 = bitfieldExtract(i1, 4, 5); + uvec3 u3; + u3 = bitfieldExtract(u3, 4, 5); + ivec3 i3; + i3 = bitfieldInsert(i3, i3, 4, 5); + u1 = bitfieldInsert(u1, u1, 4, 5); + ivec2 i2; + i2 = bitfieldReverse(i2); + u4 = bitfieldReverse(u4); + i1 = bitCount(i1); + i3 = bitCount(u3); + i2 = findLSB(i2); + i4 = findLSB(u4); + i1 = findMSB(i1); + i2 = findMSB(u2); + + vec3 v3; + v3 = frexp(v3, i3); + vec2 v2; + v2 = ldexp(v2, i2); + + mediump vec4 v4; + u1 = packUnorm4x8(v4); + u1 = packSnorm4x8(v4); + v4 = unpackUnorm4x8(u1); + v4 = unpackSnorm4x8(u1); +} + +precision highp sampler2DMS; +precision highp isampler2DMS; +precision highp usampler2DMS; + +uniform sampler2DMS s2dms; +uniform isampler2DMS is2dms; +uniform usampler2DMS us2dms; +uniform usampler2DMSArray us2dmsa; // ERROR + +void foo() +{ + ivec2 v2; + v2 = textureSize(s2dms); + v2 = textureSize(us2dms); + vec4 v4 = texelFetch(s2dms, v2, 2); + ivec4 iv4 = texelFetch(is2dms, v2, 2); + textureSamples(s2dms); // ERROR + float f; + frexp(f, ini); // ERROR, i not writable +} + +out bool outb; // ERROR +out sampler2D outo; // ERROR +out float outa[4]; +out float outaa[4][2]; // ERROR +struct S { float f; }; +out S outs; +out S[4] outasa; // ERROR +out S outsa[4]; // ERROR +struct SA { float f[4]; }; +out SA outSA; // ERROR +struct SS { float f; S s; }; +out SS outSS; // ERROR + +layout(std430) uniform U430 { int a; } U430i; // ERROR +layout(std430) buffer B430 { int a; } B430i; + +#ifndef GL_OES_shader_io_blocks +#error GL_OES_shader_io_blocks not defined +#endif + +#extension GL_OES_shader_io_blocks : enable + +out outbname { + int a; + out vec4 v; + highp sampler2D s; // ERROR, opaque type +} outbinst; + +out outbname2 { + layout(location = 12) int aAnon; + layout(location = 13) vec4 vAnon; +}; + +layout(location = 12) out highp int aliased; // ERROR, aliasing location + +in inbname { int a; } inbinst; // ERROR, no in block in vertex shader + +out gl_PerVertex { // ERROR, has extra member + highp vec4 gl_Position; + highp vec4 t; +}; + +void foo_IO() +{ + int sum = gl_VertexID + + gl_InstanceID; + gl_Position = vec4(1.0); + gl_PointSize = 2.0; // ERROR, removed by redeclaration +} + +out gl_PerVertex { // ERROR, already used and already redeclared + highp vec4 gl_Position; + highp vec4 t; +}; + +smooth out smo { // ERROR, no smooth on a block + int i; +} smon; + +flat out fmo { // ERROR, no flat on a block + int i; +} fmon; + +centroid out cmo { // ERROR, no centroid on a block + int i; +} cmon; + +invariant out imo { // ERROR, no invariant on a block + int i; +} imon; + +in vec2 inf, ing; +uniform ivec2 offsets[4]; +uniform sampler2D sArray[4]; +uniform int sIndex; +layout(binding = 0) uniform atomic_uint auArray[2]; +uniform ubName { int i; } ubInst[4]; +buffer bbName { int i; } bbInst[4]; +highp uniform writeonly image2D iArray[5]; +const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); + +void pfooBad() +{ + precise vec2 h; // ERROR reserved + h = fma(inf, ing, h); // ERROR, not available + sArray[sIndex + 1]; // ERRRO, not supported + auArray[sIndex + 1]; + ubInst[1]; + bbInst[2]; + ubInst[sIndex + 1]; // ERROR, not supported + bbInst[sIndex]; // ERROR, not supported + iArray[2]; + iArray[sIndex * 2]; // ERROR, not supported + textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant + textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available +} + +#extension GL_OES_gpu_shader5 : enable + +void pfoo() +{ + precise vec2 h; + h = fma(inf, ing, h); + sArray[sIndex + 1]; + ubInst[sIndex + 1]; + bbInst[sIndex - 2]; // ERROR, still not supported + iArray[2]; + iArray[sIndex - 2]; + textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); + textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); + textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant +} + +uniform samplerBuffer badSamp1; // ERROR, reserved +uniform isamplerBuffer badSamp2; // ERROR, reserved +uniform usamplerBuffer badSamp3; // ERROR, reserved +uniform writeonly imageBuffer badSamp4; // ERROR, reserved +uniform writeonly iimageBuffer badSamp5; // ERROR, reserved +uniform writeonly uimageBuffer badSamp6; // ERROR, reserved + +#extension GL_OES_texture_buffer : enable +#extension GL_EXT_texture_buffer : enable + +uniform samplerBuffer noPreSamp1; // ERROR, no default precision +uniform isamplerBuffer noPreSamp2; // ERROR, no default precision +uniform usamplerBuffer noPreSamp3; // ERROR, no default precision +uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision +uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision +uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision + +precision highp samplerBuffer; +precision highp isamplerBuffer; +precision highp usamplerBuffer; +precision highp imageBuffer; +precision highp iimageBuffer; +precision highp uimageBuffer; + +#ifdef GL_OES_texture_buffer +uniform samplerBuffer bufSamp1; +uniform isamplerBuffer bufSamp2; +uniform usamplerBuffer bufSamp3; +#endif +#ifdef GL_EXT_texture_buffer +uniform writeonly imageBuffer bufSamp4; +uniform writeonly iimageBuffer bufSamp5; +uniform writeonly uimageBuffer bufSamp6; +#endif + +void bufferT() +{ + highp int s1 = textureSize(bufSamp1); + highp int s2 = textureSize(bufSamp2); + highp int s3 = textureSize(bufSamp3); + + highp int s4 = imageSize(bufSamp4); + highp int s5 = imageSize(bufSamp5); + highp int s6 = imageSize(bufSamp6); + + highp vec4 f1 = texelFetch(bufSamp1, s1); + highp ivec4 f2 = texelFetch(bufSamp2, s2); + highp uvec4 f3 = texelFetch(bufSamp3, s3); +} + +uniform writeonly imageCubeArray badCA1; // ERROR, reserved +uniform writeonly iimageCubeArray badCA2; // ERROR, reserved +uniform writeonly uimageCubeArray badCA3; // ERROR, reserved + +uniform samplerCubeArray badCA4; // ERROR, reserved +uniform samplerCubeArrayShadow badCA5; // ERROR, reserved +uniform isamplerCubeArray badCA6; // ERROR, reserved +uniform usamplerCubeArray badCA7; // ERROR, reserved + +#extension GL_OES_texture_cube_map_array : enable + +uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision +uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision +uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision + +uniform samplerCubeArray noPreCA4; // ERROR, no default precision +uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision +uniform isamplerCubeArray noPreCA6; // ERROR, no default precision +uniform usamplerCubeArray noPreCA7; // ERROR, no default precision + +precision highp imageCubeArray ; +precision highp iimageCubeArray ; +precision highp uimageCubeArray ; + +precision highp samplerCubeArray ; +precision highp samplerCubeArrayShadow; +precision highp isamplerCubeArray ; +precision highp usamplerCubeArray ; + +uniform writeonly imageCubeArray CA1; +uniform writeonly iimageCubeArray CA2; +uniform writeonly uimageCubeArray CA3; + +layout(rgba16f) uniform readonly imageCubeArray rCA1; +layout(rgba32i) uniform readonly iimageCubeArray rCA2; +layout(r32ui) uniform readonly uimageCubeArray rCA3; + +#ifdef GL_OES_texture_cube_map_array +uniform samplerCubeArray CA4; +uniform samplerCubeArrayShadow CA5; +uniform isamplerCubeArray CA6; +uniform usamplerCubeArray CA7; +#endif + +void CAT() +{ + highp ivec3 s4 = textureSize(CA4, 1); + highp ivec3 s5 = textureSize(CA5, 1); + highp ivec3 s6 = textureSize(CA6, 1); + highp ivec3 s7 = textureSize(CA7, 1); + + highp vec4 t4 = texture(CA4, vec4(0.5)); + highp float t5 = texture(CA5, vec4(0.5), 3.0); + highp ivec4 t6 = texture(CA6, vec4(0.5)); + highp uvec4 t7 = texture(CA7, vec4(0.5)); + + highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24); + highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26); + highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27); + + highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2)); + highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2)); + highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2)); + + highp vec4 gath4 = textureGather(CA4, vec4(0.5)); + highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2); + highp ivec4 gath6 = textureGather(CA6, vec4(0.5)); + highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1); + highp uvec4 gath7 = textureGather(CA7, vec4(0.5)); + highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0); + + highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5); + + highp ivec3 s1 = imageSize(CA1); + highp ivec3 s2 = imageSize(CA2); + highp ivec3 s3 = imageSize(CA3); + + imageStore(CA1, s3, vec4(1)); + imageStore(CA2, s3, ivec4(1)); + imageStore(CA3, s3, uvec4(1)); + + highp vec4 cl1 = imageLoad(rCA1, s3); + highp ivec4 cl2 = imageLoad(rCA2, s3); + highp uvec4 cl3 = imageLoad(rCA3, s3); +} + +uniform sampler2DMSArray bad2DMS; // ERROR, reserved +uniform isampler2DMSArray bad2DMSi; // ERROR, reserved +uniform usampler2DMSArray bad2DMSu; // ERROR, reserved + +#extension GL_OES_texture_storage_multisample_2d_array : enable + +#ifdef GL_OES_texture_storage_multisample_2d_array + +uniform sampler2DMSArray noPrec2DMS; // ERROR, no default +uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default +uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default + +#endif + +precision highp sampler2DMSArray; +precision highp isampler2DMSArray; +precision highp usampler2DMSArray; + +uniform sampler2DMSArray samp2DMSA; +uniform isampler2DMSArray samp2DMSAi; +uniform usampler2DMSArray samp2DMSAu; + +void MSA() +{ + vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2); + ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2); + uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2); + + ivec3 tfs = textureSize(samp2DMSA); + ivec3 tfsi = textureSize(samp2DMSAi); + ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod + ivec3 tfsu = textureSize(samp2DMSAu); +} + +#ifdef GL_OES_shader_image_atomic +#extension GL_OES_shader_image_atomic : enable +#endif + +uniform layout(r32f) highp image2D im2Df; +uniform layout(r32ui) highp uimage2D im2Du; +uniform layout(r32i) highp iimage2D im2Di; +uniform ivec2 P; + +void goodImageAtom() +{ + float datf; + int dati; + uint datu; + + imageAtomicAdd( im2Di, P, dati); + imageAtomicAdd( im2Du, P, datu); + imageAtomicMin( im2Di, P, dati); + imageAtomicMin( im2Du, P, datu); + imageAtomicMax( im2Di, P, dati); + imageAtomicMax( im2Du, P, datu); + imageAtomicAnd( im2Di, P, dati); + imageAtomicAnd( im2Du, P, datu); + imageAtomicOr( im2Di, P, dati); + imageAtomicOr( im2Du, P, datu); + imageAtomicXor( im2Di, P, dati); + imageAtomicXor( im2Du, P, datu); + imageAtomicExchange(im2Di, P, dati); + imageAtomicExchange(im2Du, P, datu); + imageAtomicExchange(im2Df, P, datf); + imageAtomicCompSwap(im2Di, P, 3, dati); + imageAtomicCompSwap(im2Du, P, 5u, datu); +} + +sample out vec4 colorSampInBad; // ERROR, reserved + +#extension GL_OES_shader_multisample_interpolation : enable + +sample out vec4 colorSample; +flat sample out vec4 colorfsi; +sample out vec3 sampInArray[4]; +in vec4 inv4; + +void badInterp() +{ + interpolateAtCentroid(inv4); // ERROR, wrong stage + interpolateAtSample(inv4, 1); // ERROR, need extension + interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension +} diff --git a/deps/glslang/glslang/Test/310AofA.vert b/deps/glslang/glslang/Test/310AofA.vert new file mode 100644 index 0000000000..fba2977257 --- /dev/null +++ b/deps/glslang/glslang/Test/310AofA.vert @@ -0,0 +1,121 @@ +#version 310 es + +// Check name mangling of functions with parameters that are multi-dimensional arrays. + +#define NX 2 +#define NY 3 +#define NZ 4 +void f(bool a, float b, uint[4] c, int[NY][NX] d) { +} + +void main() { + int[NY][NX] d; + f(false, 12.1, uint[NZ](uint(0),uint(1),uint(1),uint(2)), d); +} + +buffer b { + float u[]; // ERROR + vec4 v[]; +} name[3]; + +uniform ub { + float u; + vec4 v[]; // ERROR +} uname[3]; + +buffer b2 { + float u; + vec4 v[][]; // ERROR +} name2[3]; + +buffer b3 { + float u; + vec4 v[][7]; +} name3[3]; + +// General arrays of arrays + +float[4][5][6] many[1][2][3]; + +float gu[][7]; // ERROR, size required +float g4[4][7]; +float g5[5][7]; + +float[4][7] foo(float a[5][7]) +{ + float r[7]; + r = a[2]; + float[](a[0], a[1], r, a[3]); // ERROR, too few dims + float[4][7][4](a[0], a[1], r, a[3]); // ERROR, too many dims + return float[4][7](a[0], a[1], r, a[3]); + return float[][](a[0], a[1], r, a[3]); + return float[][7](a[0], a[1], a[2], a[3]); +} + +void bar(float[5][7]) {} + +void foo2() +{ + { + float gu[3][4][2]; + + gu[2][4][1] = 4.0; // ERROR, overflow + } + vec4 ca4[3][2] = vec4[][](vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0))); + vec4 caim[][2] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0))); + vec4 caim2[][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0))); + vec4 caim3[3][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0))); + + g4 = foo(g5); + g5 = g4; // ERROR, wrong types + gu = g4; // ERROR, not yet sized + + foo(gu); // ERROR, not yet sized + bar(g5); + + if (foo(g5) == g4) + ; + if (foo(g5) == g5) // ERROR, different types + ; + + float u[5][7]; + u[5][2] = 5.0; // ERROR + foo(u); + + vec4 badAss[3]; + name[1].v[-1]; // ERROR + name[1].v[1] = vec4(4.3); + name[1].v = badAss; // ERROR, bad assignemnt + + name3[0].v[1].length(); // 7 + name3[0].v.length(); // run time +} + +struct badS { + int sa[]; // ERROR + int a[][]; // ERROR + int b[][2]; // ERROR + int c[2][]; // ERROR + int d[][4]; // ERROR +}; + +in float inArray[2][3]; // ERROR +out float outArray[2][3]; // ERROR + +uniform ubaa { + int a; +} ubaaname[2][3]; // ERROR + +vec3 func(in mat3[2] x[3]) +{ + mat3 a0 = x[2][1]; + return a0[2]; +} diff --git a/deps/glslang/glslang/Test/310implicitSizeArrayError.vert b/deps/glslang/glslang/Test/310implicitSizeArrayError.vert new file mode 100644 index 0000000000..7aa0ee1b72 --- /dev/null +++ b/deps/glslang/glslang/Test/310implicitSizeArrayError.vert @@ -0,0 +1,8 @@ +#version 310 es +layout (binding=0) uniform Block { + highp int a[]; +} uni; +layout (location=0) out highp int o; +void main() { + o = uni.a[2]; +} diff --git a/deps/glslang/glslang/Test/310runtimeArray.vert b/deps/glslang/glslang/Test/310runtimeArray.vert new file mode 100644 index 0000000000..3d7b018e65 --- /dev/null +++ b/deps/glslang/glslang/Test/310runtimeArray.vert @@ -0,0 +1,18 @@ +#version 310 es + +precision highp float; +layout(location=0) out float o; + +struct S { float f; }; +buffer b1 { S s[]; }; +buffer b2 { S s[]; } b2name; +buffer b3 { S s[]; } b3name[]; +buffer b4 { S s[]; } b4name[4]; + +void main() +{ + o = s[5].f; + o += b2name.s[6].f; + o += b3name[3].s[7].f; + o += b4name[2].s[8].f; +} diff --git a/deps/glslang/glslang/Test/320.comp b/deps/glslang/glslang/Test/320.comp new file mode 100644 index 0000000000..c31b047f5b --- /dev/null +++ b/deps/glslang/glslang/Test/320.comp @@ -0,0 +1,5 @@ +#version 320 es + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/320.frag b/deps/glslang/glslang/Test/320.frag new file mode 100644 index 0000000000..bed3f12039 --- /dev/null +++ b/deps/glslang/glslang/Test/320.frag @@ -0,0 +1,225 @@ +#version 320 es + +out outbname { int a; } outbinst; // ERROR, not out block in fragment shader + +in inbname { + int a; + vec4 v; + struct { int b; } s; // ERROR, nested struct definition +} inbinst; + +in inbname2 { + layout(location = 12) int aAnon; + layout(location = 13) centroid in vec4 vAnon; +}; + +in layout(location = 13) vec4 aliased; // ERROR, aliased + +in inbname2 { // ERROR, reuse of block name + int aAnon; + centroid in vec4 vAnon; +}; + +in badmember { // ERROR, aAnon already in global scope + int aAnon; +}; + +int inbname; // ERROR, redefinition of block name + +vec4 vAnon; // ERROR, anon in global scope; redefinition + +in arrayed { + float f; +} arrayedInst[4]; +uniform int i; +void fooIO() +{ + vec4 v = inbinst.v + vAnon; + v *= arrayedInst[2].f; + v *= arrayedInst[i].f; +} + +in vec4 gl_FragCoord; +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES + +layout(early_fragment_tests) in; +out float gl_FragDepth; +layout(depth_any) out float gl_FragDepth; // ERROR, non-ES + +void main() +{ + gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared + bool f = gl_FrontFacing; +} + +out float gl_FragDepth; + +void foo_GS() +{ + highp int l = gl_Layer; + highp int p = gl_PrimitiveID; +} + +in vec2 inf, ing; +uniform ivec2 offsets[4]; +uniform sampler2D sArray[4]; +uniform int sIndex; +layout(binding = 0) uniform atomic_uint auArray[2]; +uniform ubName { int i; } ubInst[4]; +buffer bbName { int i; } bbInst[4]; +highp uniform writeonly image2D iArray[5]; +const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); + +void pfoo() +{ + precise vec2 h; + h = fma(inf, ing, h); + textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); + textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); + textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant +} + +precision highp imageCubeArray ; +precision highp iimageCubeArray ; +precision highp uimageCubeArray ; + +precision highp samplerCubeArray ; +precision highp samplerCubeArrayShadow; +precision highp isamplerCubeArray ; +precision highp usamplerCubeArray ; + +uniform writeonly imageCubeArray CA1; +uniform writeonly iimageCubeArray CA2; +uniform writeonly uimageCubeArray CA3; + +#ifdef GL_EXT_texture_cube_map_array +uniform samplerCubeArray CA4; +uniform samplerCubeArrayShadow CA5; +uniform isamplerCubeArray CA6; +uniform usamplerCubeArray CA7; +#endif + +void CAT() +{ + highp vec4 b4 = texture(CA4, vec4(0.5), 0.24); + highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26); + highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27); +} + +void goodSample() +{ + lowp int a1 = gl_SampleID; + mediump vec2 a2 = gl_SamplePosition; + highp int a3 = gl_SampleMaskIn[0]; + gl_SampleMask[0] = a3; + mediump int n1 = gl_MaxSamples; + mediump int n2 = gl_NumSamples; +} + +uniform layout(r32f) highp image2D im2Df; +uniform layout(r32ui) highp uimage2D im2Du; +uniform layout(r32i) highp iimage2D im2Di; +uniform ivec2 P; + +uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly +uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly +uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly + +void goodImageAtom() +{ + float datf; + int dati; + uint datu; + + imageAtomicAdd( im2Di, P, dati); + imageAtomicAdd( im2Du, P, datu); + imageAtomicMin( im2Di, P, dati); + imageAtomicMin( im2Du, P, datu); + imageAtomicMax( im2Di, P, dati); + imageAtomicMax( im2Du, P, datu); + imageAtomicAnd( im2Di, P, dati); + imageAtomicAnd( im2Du, P, datu); + imageAtomicOr( im2Di, P, dati); + imageAtomicOr( im2Du, P, datu); + imageAtomicXor( im2Di, P, dati); + imageAtomicXor( im2Du, P, datu); + imageAtomicExchange(im2Di, P, dati); + imageAtomicExchange(im2Du, P, datu); + imageAtomicExchange(im2Df, P, datf); + imageAtomicCompSwap(im2Di, P, 3, dati); + imageAtomicCompSwap(im2Du, P, 5u, datu); + + imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image + imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image + imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image +} + +centroid out vec4 colorCentroidBad; // ERROR +flat out vec4 colorBadFlat; // ERROR +smooth out vec4 colorBadSmooth; // ERROR +noperspective out vec4 colorBadNo; // ERROR +flat centroid in vec2 colorfc; +in float scalarIn; + +sample in vec4 colorSampIn; +sample out vec4 colorSampleBad; // ERROR +flat sample in vec4 colorfsi; +sample in vec3 sampInArray[4]; + +void interp() +{ + float res; + vec2 res2; + vec3 res3; + vec4 res4; + + res2 = interpolateAtCentroid(colorfc); + res4 = interpolateAtCentroid(colorSampIn); + res4 = interpolateAtCentroid(colorfsi); + res = interpolateAtCentroid(scalarIn); + res3 = interpolateAtCentroid(sampInArray); // ERROR + res3 = interpolateAtCentroid(sampInArray[2]); + res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR + + res3 = interpolateAtSample(sampInArray, 1); // ERROR + res3 = interpolateAtSample(sampInArray[i], 0); + res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR + res = interpolateAtSample(scalarIn, 1); + + res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR + res3 = interpolateAtOffset(sampInArray[2], vec2(0.2)); + res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle + res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference + res = interpolateAtOffset(scalarIn, vec2(0.2)); + + float f; + res = interpolateAtCentroid(f); // ERROR, not interpolant + res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant +} + +layout(blend_support_multiply) out; +layout(blend_support_screen) out; +layout(blend_support_overlay) out; +layout(blend_support_darken, blend_support_lighten) out; +layout(blend_support_colordodge) layout(blend_support_colorburn) out; +layout(blend_support_hardlight) out; +layout(blend_support_softlight) out; +layout(blend_support_difference) out; +layout(blend_support_exclusion) out; +layout(blend_support_hsl_hue) out; +layout(blend_support_hsl_saturation) out; +layout(blend_support_hsl_color) out; +layout(blend_support_hsl_luminosity) out; +layout(blend_support_all_equations) out; + +layout(blend_support_hsl_luminosity) out; // okay to repeat + +layout(blend_support_hsl_luminosity) in; // ERROR, only on "out" +layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone +layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone +layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone +layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone +void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone +layout(blend_support_flizbit) out; // ERROR, no flizbit + +out vec4 outAA[2][2]; // ERROR diff --git a/deps/glslang/glslang/Test/320.geom b/deps/glslang/glslang/Test/320.geom new file mode 100644 index 0000000000..38d71c3142 --- /dev/null +++ b/deps/glslang/glslang/Test/320.geom @@ -0,0 +1,134 @@ +#version 320 es + +precision mediump float; + +in fromVertex { + in vec3 color; +} fromV[]; + +in vec4 nonBlockUnsized[]; + +out toFragment { + out vec3 color; +} toF; + +out fromVertex { // okay to reuse a block name for another block name + vec3 color; +}; + +out fooB { // ERROR, cannot reuse block name as block instance + vec2 color; +} fromVertex; + +int fromVertex; // ERROR, cannot reuse a block name for something else + +out fooC { // ERROR, cannot have same name for block and instance name + vec2 color; +} fooC; + +void main() +{ + EmitVertex(); + EndPrimitive(); + EmitStreamVertex(1); // ERROR + EndStreamPrimitive(0); // ERROR + + color = fromV[0].color; + gl_ClipDistance[3] = // ERROR, no ClipDistance + gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance + gl_Position = gl_in[0].gl_Position; + + gl_PrimitiveID = gl_PrimitiveIDIn; + gl_Layer = 2; +} + +layout(stream = 4) out vec4 ov4; // ERROR, no streams + +layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip" + +out ooutb { vec4 a; } ouuaa6; + +layout(max_vertices = 200) out; +layout(max_vertices = 300) out; // ERROR, too big +void foo(layout(max_vertices = 4) int a) // ERROR +{ + ouuaa6.a = vec4(1.0); +} + +layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive +layout(line_strip, points) out; // ERROR, changing output primitive +layout(triangle_strip) in; // ERROR, not an input primitive +layout(triangle_strip) uniform; // ERROR +layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable +layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input +layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0 +out outbn2 { + layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0 + layout(max_vertices = 3) int b; // ERROR, not on a block member + layout(triangle_strip) int c; // ERROR, not on a block member +} outbi; + +layout(lines) out; // ERROR, not on output +layout(lines_adjacency) in; +layout(triangles) in; // ERROR, can't change it +layout(triangles_adjacency) in; // ERROR, can't change it +layout(invocations = 4) in; + +in sameName { + int a15; +} insn[]; + +out sameName { + float f15; +}; + +uniform sameName { + bool b15; +}; + +const int summ = gl_MaxVertexAttribs + + gl_MaxGeometryInputComponents + + gl_MaxGeometryOutputComponents + + gl_MaxGeometryImageUniforms + + gl_MaxGeometryTextureImageUnits + + gl_MaxGeometryOutputVertices + + gl_MaxGeometryTotalOutputComponents + + gl_MaxGeometryUniformComponents + + gl_MaxGeometryAtomicCounters + + gl_MaxGeometryAtomicCounterBuffers + + gl_MaxVertexTextureImageUnits + + gl_MaxCombinedTextureImageUnits + + gl_MaxTextureImageUnits + + gl_MaxDrawBuffers; + +void fooe1() +{ + gl_ViewportIndex; // ERROR, not in ES + gl_MaxViewports; // ERROR, not in ES + insn.length(); // 4: lines_adjacency + int inv = gl_InvocationID; +} + +in vec4 explArray[4]; +in vec4 explArrayBad[5]; // ERROR, wrong size +in vec4 nonArrayed; // ERROR, not an array +flat out vec3 myColor1; +centroid out vec3 myColor2; +centroid in vec3 centr[]; +sample out vec4 perSampleColor; // ERROR without sample extensions + +layout(max_vertices = 200) out; // matching redecl + +layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component + +void notHere() +{ + gl_MaxGeometryVaryingComponents; // ERROR, not in ES + gl_VerticesIn; // ERROR, not in ES +} + +void pointSize2() +{ + highp float ps = gl_in[3].gl_PointSize; // ERROR, need extension + gl_PointSize = ps; // ERROR, need extension +} diff --git a/deps/glslang/glslang/Test/320.tesc b/deps/glslang/glslang/Test/320.tesc new file mode 100644 index 0000000000..4fa20f6384 --- /dev/null +++ b/deps/glslang/glslang/Test/320.tesc @@ -0,0 +1,150 @@ +#version 320 es + +layout(vertices = 4) out; +out int outa[gl_out.length()]; + +layout(quads) in; // ERROR +layout(ccw) out; // ERROR +layout(fractional_even_spacing) in; // ERROR + +patch in vec4 patchIn; // ERROR +patch out vec4 patchOut; + +void main() +{ + barrier(); + + int a = gl_MaxTessControlInputComponents + + gl_MaxTessControlOutputComponents + + gl_MaxTessControlTextureImageUnits + + gl_MaxTessControlUniformComponents + + gl_MaxTessControlTotalOutputComponents; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension + float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[gl_InvocationID].gl_Position = p; + gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension + gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES + + gl_TessLevelOuter[3] = 3.2; + gl_TessLevelInner[1] = 1.3; + + if (a > 10) + barrier(); // ERROR + else + barrier(); // ERROR + + barrier(); + + do { + barrier(); // ERROR + } while (a > 10); + + switch (a) { + default: + barrier(); // ERROR + break; + } + a < 12 ? a : (barrier(), a); // ERROR + { + barrier(); + } + + return; + + barrier(); // ERROR +} + +layout(vertices = 4) in; // ERROR, not on in +layout(vertices = 5) out; // ERROR, changing # + +void foo() +{ + gl_out[4].gl_Position; // ERROR, out of range + + barrier(); // ERROR, not in main +} + +in vec2 ina; // ERROR, not array +in vec2 inb[]; +in vec2 inc[18]; // ERROR, wrong size +in vec2 ind[gl_MaxPatchVertices]; +patch out float implA[]; // ERROR, not sized + +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 3) in vec4 ivla[]; +layout(location = 4) in vec4 ivlb[]; +layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping + +layout(location = 3) out vec4 ovla[]; +layout(location = 4) out vec4 ovlb[]; +layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping + +patch out pinbn { + int a; +} pinbi; + +centroid out vec3 myColor2[]; +centroid in vec3 centr[]; +sample out vec4 perSampleColor[]; + +layout(vertices = 4) out float badlay[]; // ERROR, not on a variable +out float misSized[5]; // ERROR, size doesn't match +out float okaySize[4]; + +void pointSize2() +{ + float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension + gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension +} + +precise vec3 pv3; + +void goodfoop() +{ + precise float d; + + pv3 *= pv3; + pv3 = fma(pv3, pv3, pv3); + d = fma(d, d, d); +} + +void bb() +{ + gl_BoundingBoxOES[0] = vec4(0.0); + gl_BoundingBoxOES[1] = vec4(1.0); + gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow +} + +out patch badpatchBName { // ERROR, array size required + float f; +} badpatchIName[]; + +out patch patchBName { + float f; +} patchIName[4]; + +void outputtingOutparam(out int a) +{ + a = 2; +} + +void outputting() +{ + outa[gl_InvocationID] = 2; + outa[1] = 2; // ERROR, not gl_InvocationID + gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID + outa[1]; + gl_out[0]; + outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID + outputtingOutparam(outa[gl_InvocationID]); + patchIName[1].f = 3.14; + outa[(gl_InvocationID)] = 2; +} diff --git a/deps/glslang/glslang/Test/320.tese b/deps/glslang/glslang/Test/320.tese new file mode 100644 index 0000000000..cce2637cb8 --- /dev/null +++ b/deps/glslang/glslang/Test/320.tese @@ -0,0 +1,114 @@ +#version 320 es + +layout(vertices = 4) out; // ERROR +layout(quads, cw) in; +layout(triangles) in; // ERROR +layout(isolines) in; // ERROR + +layout(ccw) in; // ERROR +layout(cw) in; + +layout(fractional_odd_spacing) in; +layout(equal_spacing) in; // ERROR +layout(fractional_even_spacing) in; // ERROR + +layout(point_mode) in; + +patch in vec4 patchIn; +patch out vec4 patchOut; // ERROR + +void main() +{ + barrier(); // ERROR + + int a = gl_MaxTessEvaluationInputComponents + + gl_MaxTessEvaluationOutputComponents + + gl_MaxTessEvaluationTextureImageUnits + + gl_MaxTessEvaluationUniformComponents + + gl_MaxTessPatchComponents + + gl_MaxPatchVertices + + gl_MaxTessGenLevel; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension + float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + vec3 tc = gl_TessCoord; + float tlo = gl_TessLevelOuter[3]; + float tli = gl_TessLevelInner[1]; + + gl_Position = p; + gl_PointSize = ps; // ERROR, need point_size extension + gl_ClipDistance[2] = cd; // ERROR, not in ES +} + +smooth patch in vec4 badp1; // ERROR +flat patch in vec4 badp2; // ERROR +noperspective patch in vec4 badp3; // ERROR +patch sample in vec3 badp4; // ERROR + +#extension GL_ARB_separate_shader_objects : enable + +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + +in gl_PerVertex // ERROR, second redeclaration of gl_in +{ + vec4 gl_Position; +} gl_in[]; + +layout(quads, cw) out; // ERROR +layout(triangles) out; // ERROR +layout(isolines) out; // ERROR +layout(cw) out; // ERROR +layout(fractional_odd_spacing) out; // ERROR +layout(equal_spacing) out; // ERROR +layout(fractional_even_spacing) out; // ERROR +layout(point_mode) out; // ERROR + +in vec2 ina; // ERROR, not array +in vec2 inb[]; +in vec2 inc[18]; // ERROR, wrong size +in vec2 ind[gl_MaxPatchVertices]; + +in testbla { // ERROR, not array + int f; +} bla; + +in testblb { + int f; +} blb[]; + +in testblc { // ERROR wrong size + int f; +} blc[18]; + +in testbld { + int f; +} bld[gl_MaxPatchVertices]; + +layout(location = 23) in vec4 ivla[]; +layout(location = 24) in vec4 ivlb[]; +layout(location = 24) in vec4 ivlc[]; // ERROR, overlap + +layout(location = 23) out vec4 ovla[2]; +layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap + +in float gl_TessLevelOuter[4]; // ERROR, can't redeclare + +patch in pinbn { + int a; +} pinbi; + +centroid out vec3 myColor2; +centroid in vec3 centr[]; +sample out vec4 perSampleColor; + +void bbbad() +{ + gl_BoundingBoxOES; // ERROR, wrong stage +} diff --git a/deps/glslang/glslang/Test/320.vert b/deps/glslang/glslang/Test/320.vert new file mode 100644 index 0000000000..42f1515ccf --- /dev/null +++ b/deps/glslang/glslang/Test/320.vert @@ -0,0 +1,255 @@ +#version 320 es + +out outbname { + int a; + out vec4 v; + highp sampler2D s; // ERROR, opaque type +} outbinst; + +out outbname2 { + layout(location = 12) int aAnon; + layout(location = 13) vec4 vAnon; +}; + +layout(location = 12) out highp int aliased; // ERROR, aliasing location + +in inbname { int a; } inbinst; // ERROR, no in block in vertex shader + +out gl_PerVertex { // ERROR, has extra member + highp vec4 gl_Position; + highp vec4 t; +}; + +void main() +{ + int sum = gl_VertexID + + gl_InstanceID; + gl_Position = vec4(1.0); + gl_PointSize = 2.0; // ERROR, removed by redeclaration +} + +out gl_PerVertex { // ERROR, already used and already redeclared + highp vec4 gl_Position; + highp vec4 t; +}; + +smooth out smo { // ERROR, no smooth on a block + int i; +} smon; + +flat out fmo { // ERROR, no flat on a block + int i; +} fmon; + +centroid out cmo { // ERROR, no centroid on a block + int i; +} cmon; + +invariant out imo { // ERROR, no invariant on a block + int i; +} imon; + +in vec2 inf, ing; +uniform ivec2 offsets[4]; +uniform sampler2D sArray[4]; +uniform int sIndex; +layout(binding = 0) uniform atomic_uint auArray[2]; +uniform ubName { int i; } ubInst[4]; +buffer bbName { int i; } bbInst[4]; +highp uniform writeonly image2D iArray[5]; +const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); + +void pfoo() +{ + precise vec2 h; + h = fma(inf, ing, h); + sArray[sIndex + 1]; + ubInst[sIndex + 1]; + bbInst[sIndex - 2]; // ERROR, still not supported + iArray[2]; + iArray[sIndex - 2]; + textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); + textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); + textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant +} + +uniform samplerBuffer noPreSamp1; // ERROR, no default precision +uniform isamplerBuffer noPreSamp2; // ERROR, no default precision +uniform usamplerBuffer noPreSamp3; // ERROR, no default precision +uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision +uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision +uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision + +precision highp samplerBuffer; +precision highp isamplerBuffer; +precision highp usamplerBuffer; +precision highp imageBuffer; +precision highp iimageBuffer; +precision highp uimageBuffer; + +#ifdef GL_OES_texture_buffer +uniform samplerBuffer bufSamp1; +uniform isamplerBuffer bufSamp2; +uniform usamplerBuffer bufSamp3; +#endif +#ifdef GL_EXT_texture_buffer +uniform writeonly imageBuffer bufSamp4; +uniform writeonly iimageBuffer bufSamp5; +uniform writeonly uimageBuffer bufSamp6; +#endif + +void bufferT() +{ + highp int s1 = textureSize(bufSamp1); + highp int s2 = textureSize(bufSamp2); + highp int s3 = textureSize(bufSamp3); + + highp int s4 = imageSize(bufSamp4); + highp int s5 = imageSize(bufSamp5); + highp int s6 = imageSize(bufSamp6); + + highp vec4 f1 = texelFetch(bufSamp1, s1); + highp ivec4 f2 = texelFetch(bufSamp2, s2); + highp uvec4 f3 = texelFetch(bufSamp3, s3); +} + +uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision +uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision +uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision + +uniform samplerCubeArray noPreCA4; // ERROR, no default precision +uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision +uniform isamplerCubeArray noPreCA6; // ERROR, no default precision +uniform usamplerCubeArray noPreCA7; // ERROR, no default precision + +precision highp imageCubeArray ; +precision highp iimageCubeArray ; +precision highp uimageCubeArray ; + +precision highp samplerCubeArray ; +precision highp samplerCubeArrayShadow; +precision highp isamplerCubeArray ; +precision highp usamplerCubeArray ; + +uniform writeonly imageCubeArray CA1; +uniform writeonly iimageCubeArray CA2; +uniform writeonly uimageCubeArray CA3; + +layout(rgba16f) uniform readonly imageCubeArray rCA1; +layout(rgba32i) uniform readonly iimageCubeArray rCA2; +layout(r32ui) uniform readonly uimageCubeArray rCA3; + +#ifdef GL_OES_texture_cube_map_array +uniform samplerCubeArray CA4; +uniform samplerCubeArrayShadow CA5; +uniform isamplerCubeArray CA6; +uniform usamplerCubeArray CA7; +#endif + +void CAT() +{ + highp ivec3 s4 = textureSize(CA4, 1); + highp ivec3 s5 = textureSize(CA5, 1); + highp ivec3 s6 = textureSize(CA6, 1); + highp ivec3 s7 = textureSize(CA7, 1); + + highp vec4 t4 = texture(CA4, vec4(0.5)); + highp float t5 = texture(CA5, vec4(0.5), 3.0); + highp ivec4 t6 = texture(CA6, vec4(0.5)); + highp uvec4 t7 = texture(CA7, vec4(0.5)); + + highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24); + highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26); + highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27); + + highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2)); + highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2)); + highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2)); + + highp vec4 gath4 = textureGather(CA4, vec4(0.5)); + highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2); + highp ivec4 gath6 = textureGather(CA6, vec4(0.5)); + highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1); + highp uvec4 gath7 = textureGather(CA7, vec4(0.5)); + highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0); + + highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5); + + highp ivec3 s1 = imageSize(CA1); + highp ivec3 s2 = imageSize(CA2); + highp ivec3 s3 = imageSize(CA3); + + imageStore(CA1, s3, vec4(1)); + imageStore(CA2, s3, ivec4(1)); + imageStore(CA3, s3, uvec4(1)); + + highp vec4 cl1 = imageLoad(rCA1, s3); + highp ivec4 cl2 = imageLoad(rCA2, s3); + highp uvec4 cl3 = imageLoad(rCA3, s3); +} + +uniform sampler2DMSArray noPrec2DMS; // ERROR, no default +uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default +uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default + +precision highp sampler2DMSArray; +precision highp isampler2DMSArray; +precision highp usampler2DMSArray; + +uniform sampler2DMSArray samp2DMSA; +uniform isampler2DMSArray samp2DMSAi; +uniform usampler2DMSArray samp2DMSAu; + +void MSA() +{ + vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2); + ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2); + uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2); + + ivec3 tfs = textureSize(samp2DMSA); + ivec3 tfsi = textureSize(samp2DMSAi); + ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod + ivec3 tfsu = textureSize(samp2DMSAu); +} + +uniform layout(r32f) highp image2D im2Df; +uniform layout(r32ui) highp uimage2D im2Du; +uniform layout(r32i) highp iimage2D im2Di; +uniform ivec2 P; + +void goodImageAtom() +{ + float datf; + int dati; + uint datu; + + imageAtomicAdd( im2Di, P, dati); + imageAtomicAdd( im2Du, P, datu); + imageAtomicMin( im2Di, P, dati); + imageAtomicMin( im2Du, P, datu); + imageAtomicMax( im2Di, P, dati); + imageAtomicMax( im2Du, P, datu); + imageAtomicAnd( im2Di, P, dati); + imageAtomicAnd( im2Du, P, datu); + imageAtomicOr( im2Di, P, dati); + imageAtomicOr( im2Du, P, datu); + imageAtomicXor( im2Di, P, dati); + imageAtomicXor( im2Du, P, datu); + imageAtomicExchange(im2Di, P, dati); + imageAtomicExchange(im2Du, P, datu); + imageAtomicExchange(im2Df, P, datf); + imageAtomicCompSwap(im2Di, P, 3, dati); + imageAtomicCompSwap(im2Du, P, 5u, datu); +} + +sample out vec4 colorSample; +flat sample out vec4 colorfsi; +sample out vec3 sampInArray[4]; +in vec4 inv4; + +void badInterp() +{ + interpolateAtCentroid(inv4); // ERROR, wrong stage + interpolateAtSample(inv4, 1); // ERROR, need extension + interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension +} diff --git a/deps/glslang/glslang/Test/330.frag b/deps/glslang/glslang/Test/330.frag new file mode 100644 index 0000000000..9afa8f8269 --- /dev/null +++ b/deps/glslang/glslang/Test/330.frag @@ -0,0 +1,152 @@ +#version 330 compatibility + +in vec4 inVar; +layout(location=0, index=0) out vec4 outVar; + +varying vec4 varyingVar; + +void main() +{ + gl_FragColor = varyingVar; // link ERROR: user output was used + gl_FragData[1] = inVar; // link ERROR: user output was used + int buffer = 4; +} + +#extension GL_ARB_separate_shader_objects : enable + +in gl_PerFragment { + vec4 gl_Color; +}; + +void foo() +{ + vec4 c = gl_Color; + outVar = inVar; +} + +in gl_block { // ERROR + int gl_i; +} gl_name; + +in myBlock { + int gl_i; // ERROR +} gl_name; // ERROR + +in gl_PerVertex { // ERROR + vec4 gl_FragCoord; +} gl_in[]; + +in gl_PerVertex { // ERROR + vec4 gl_FragCoord; +}; // ERROR + +const int start = 6; +layout(location = -2) in vec4 v1; // ERROR +layout(location = start + 2) in vec4 v2; // ERROR +layout(location = 4.7e10) in vec4 v20; // ERROR +layout(location = +60) in float v21; // ERROR +layout(location = (2)) in float v22; // ERROR + +struct S { + float f1; + layout(location = 3) float f2; // ERROR +}; + +layout(location = 1) in inblock { // ERROR + float f1; + layout(location = 3) float f2; // ERROR +}; + +layout(location = 1) uniform ublock { // ERROR + float f1; + layout(location = 3) float f2; // ERROR +} uinst; + +#extension GL_ARB_enhanced_layouts : enable + +layout(location = start) in vec4 v3; +layout(location = -2) in vec4 v4; // ERROR +layout(location = -start) in vec4 v5; // ERROR +layout(location = start*start - 2 - 4) in vec4 v6; +layout(location = +61) in float v23; +layout(location = (62)) in float v24; + +struct S2 { + float f1; + layout(location = 3) float f2; // ERROR +}; + +layout(location = 28) in inblock2 { + bool b1; + float f1; + layout(location = 25) float f2; + vec4 f3; + layout(location = 21) S2 s2; + vec4 f4; + vec4 f5; +} ininst2; + +layout(location = 13) uniform ublock2 { // ERROR + float f1; + layout(location = 3) float f2; // ERROR +} uinst2; + +in inblock3 { // ERROR, mix of location internal with no location external + float f1; + layout(location = 40) float f2; +} in3; + +in ublock4 { + layout(location = 50) float f1; + layout(location = 51) float f2; +} in4; + +layout(location = 33) in struct SS { + vec3 a; // gets location 33 + mat2 b; // gets locations 34 and 35 + vec4 c[2]; // gets locations 36 and 37 + layout (location = 38) vec2 A; // ERROR, can't use on struct member +} s; + +layout(location = 44) in block { + vec4 d; // gets location 44 + vec4 e; // gets location 45 + layout(location = 47) vec4 f; // gets location 47 + vec4 g; // gets location 48 + layout (location = 41) vec4 h; // gets location 41 + vec4 i; // gets location 42 + vec4 j; // gets location 43 + vec4 k; // ERROR, location 44 already used +}; + +layout(index=0) out vec4 outVar2; // ERROR: missing explicit location +layout(location=0, index=1) out vec4 outVar3; // no error even though location is overlapping +layout(location=0, index=1) out vec4 outVar4; // ERROR overlapping +layout(location=27, index=0) in vec4 indexIn; // ERROR, not on in +layout(location=0, index=0) in; // ERROR, not just on in +layout(location=0, index=0) out; // ERROR, need a variable +layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block + +uniform sampler1D samp1D; +uniform sampler2DShadow samp2Ds; + +void qlod() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); // ERROR, not until 400 + lod = textureQueryLod(samp2Ds, pf2); // ERROR, not until 400 +} + +int precise; // okay, not a keyword yet +struct SKeyMem { int precise; } KeyMem; // okay, not a keyword yet + +void fooKeyMem() +{ + KeyMem.precise; +} + +layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range \ No newline at end of file diff --git a/deps/glslang/glslang/Test/330comp.frag b/deps/glslang/glslang/Test/330comp.frag new file mode 100644 index 0000000000..50b037da66 --- /dev/null +++ b/deps/glslang/glslang/Test/330comp.frag @@ -0,0 +1,12 @@ +#version 330 compatibility + +in vec4 inVar; +out vec4 outVar; + +varying vec4 varyingVar; + +void main() +{ + gl_FragColor = varyingVar; + gl_FragData[1] = inVar * gl_ModelViewMatrix; +} diff --git a/deps/glslang/glslang/Test/400.frag b/deps/glslang/glslang/Test/400.frag new file mode 100644 index 0000000000..039d4809f1 --- /dev/null +++ b/deps/glslang/glslang/Test/400.frag @@ -0,0 +1,201 @@ +#version 400 core + +in vec2 c2D; +flat in int i; +out vec4 outp; +uniform sampler2D arrayedSampler[5]; +uniform usampler2DRect samp2dr; +uniform isampler2DArray isamp2DA; + +void main() +{ + vec4 v; + v = texture(arrayedSampler[i], c2D); + outp.x = gl_ClipDistance[1]; + + ivec2 offsets[4]; + const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); + uvec4 uv4 = textureGatherOffsets(samp2dr, c2D, offsets, 2); // ERROR, offsets not constant + uv4 = textureGatherOffsets(samp2dr, c2D, constOffsets, 2); + vec4 v4 = textureGather(arrayedSampler[0], c2D); + ivec4 iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), i); // ERROR, last argument not const + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 4); // ERROR, last argument out of range + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); + iv4 = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); + + vec4 c = gl_FragCoord; +} + +layout(location = 4) in vec4 vl; // ERROR, not supported + +#ifdef GL_ARB_separate_shader_objects +#extension GL_ARB_separate_shader_objects : enable +#endif + +layout(location = 6) in vec4 vl2; + +layout(location = 3) uniform vec3 uv3; + +layout(location = 5) in vec4 gl_Color; // ERROR, layout +noperspective in float gl_ClipDistance[4]; // ERROR, can't change qualifier + +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use + +uniform sampler2DRectShadow u2drs; + +void foo23() +{ + const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); + + textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), ivec2(c2D)); // ERROR, offset not constant + textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]); + textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[2]); // ERROR, offset out of range + textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), ivec2(-10, 20)); // ERROR, offset out of range +} + +patch in vec4 patchIn; // ERROR +patch out vec4 patchOut; // ERROR + +void foo24() +{ + dvec3 df, di; + df = modf(dvec3(outp.xyz), di); +} + +in float in1; +in vec2 in2; +in vec3 in3; +in vec4 in4; + +void foodc1() +{ + vec2 v2 = dFdxFine(in2); // ERROR + vec3 v3 = dFdyCoarse(in3); // ERROR + vec4 v4 = fwidthCoarse(in4) + fwidthFine(in4); // ERROR +} + +#extension GL_ARB_derivative_control : enable + +void foodc2() +{ + vec2 v2 = dFdxFine(in2); + vec3 v3 = dFdyCoarse(in3); + vec4 v4 = fwidthCoarse(in4) + fwidthFine(in4); + + uint u1; + ivec3 i3; + ivec2 i2; + v2 = frexp(v2, i2); + v3 = ldexp(v3, i3); + + u1 = packUnorm4x8(v4); + u1 = packSnorm4x8(v4); + v4 = unpackUnorm4x8(u1); + v4 = unpackSnorm4x8(u1); + + double d; + uvec2 u2; + d = packDouble2x32(u2); + u2 = unpackDouble2x32(d); +} + +sample in vec4 colorSampIn; +sample out vec4 colorSampleBad; // ERROR +noperspective in vec4 colorfsi; +sample in vec3 sampInArray[4]; +smooth in float scalarIn; +flat centroid in vec2 colorfc; + +struct S { + float x; +}; + +in S s1; +sample S s2; + +void interp() +{ + interpolateAtCentroid(colorfc); + interpolateAtCentroid(colorSampIn); + interpolateAtCentroid(colorfsi); + interpolateAtCentroid(scalarIn); + interpolateAtCentroid(sampInArray); // ERROR + interpolateAtCentroid(sampInArray[2]); + interpolateAtCentroid(sampInArray[2].xy); // ERROR + + interpolateAtSample(sampInArray, 1); // ERROR + interpolateAtSample(sampInArray[i], 0); + interpolateAtSample(s1.x, 2); + interpolateAtSample(scalarIn, 1); + + interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR + interpolateAtOffset(sampInArray[2], vec2(0.2)); + interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle + interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference + interpolateAtOffset(s2.x, vec2(0.2)); // ERROR + + float f; + interpolateAtCentroid(f); // ERROR, not interpolant + interpolateAtSample(outp, 0); // ERROR, not interpolant +} + +uniform sampler1D samp1D; +uniform isampler2D isamp2D; +uniform usampler3D usamp3D; +uniform samplerCube sampCube; +uniform isampler1DArray isamp1DA; +uniform usampler2DArray usamp2DA; +uniform isamplerCubeArray isampCubeA; + +uniform sampler1DShadow samp1Ds; +uniform sampler2DShadow samp2Ds; +uniform samplerCubeShadow sampCubes; +uniform sampler1DArrayShadow samp1DAs; +uniform sampler2DArrayShadow samp2DAs; +uniform samplerCubeArrayShadow sampCubeAs; + +uniform samplerBuffer sampBuf; +uniform sampler2DRect sampRect; + +void qlod() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); + lod = textureQueryLod(isamp2D, pf2); + lod = textureQueryLod(usamp3D, pf3); + lod = textureQueryLod(sampCube, pf3); + lod = textureQueryLod(isamp1DA, pf); + lod = textureQueryLod(usamp2DA, pf2); + lod = textureQueryLod(isampCubeA, pf3); + + lod = textureQueryLod(samp1Ds, pf); + lod = textureQueryLod(samp2Ds, pf2); + lod = textureQueryLod(sampCubes, pf3); + lod = textureQueryLod(samp1DAs, pf); + lod = textureQueryLod(samp2DAs, pf2); + lod = textureQueryLod(sampCubeAs, pf3); + + lod = textureQueryLod(sampBuf, pf); // ERROR + lod = textureQueryLod(sampRect, pf2); // ERROR +} + +uniform uint uu; +out uint iout; + +void bitwiseConv() +{ + iout = uu & i; + iout += uu ^ i; + iout += i | uu; +} + +subroutine(subT1, subT2); +subroutine float subT1() { return 1.0; } +subroutine float subT2() { return 1.0; } + +struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member diff --git a/deps/glslang/glslang/Test/400.geom b/deps/glslang/glslang/Test/400.geom new file mode 100644 index 0000000000..f8e89558c0 --- /dev/null +++ b/deps/glslang/glslang/Test/400.geom @@ -0,0 +1,330 @@ +#version 400 core + +void main() +{ + EmitStreamVertex(1); + EndStreamPrimitive(0); + EmitVertex(); + EndPrimitive(); + int id = gl_InvocationID; +} + +layout(invocations = 4) in outbn { int a; } bn[]; // ERROR, not on a block +layout(max_vertices = 127) out; +layout(invocations = 4) in; + +#extension GL_ARB_separate_shader_objects : enable + +in gl_PerVertex { // testing input arrays with a block redeclaration, see 420.geom for without + vec4 gl_Position; + layout(std140, location = 3) patch float gl_PointSize; // ERRORs... +} gl_in[]; + +void foo() +{ + gl_in.length(); // ERROR + gl_in[1].gl_Position; +} + +in vec4 color[]; +in vec4 color2[]; +in vec4 colorS[3]; +in vec4 colorBad[4]; + +void foo2() +{ + color.length(); // ERROR + colorS.length(); +} + +layout(triangles) in; // give ERROR just for colorBad + +in vec4 color[3]; +in vec4 color2[3]; +in vec4 colorbad2[2]; // ERROR + +void foo3() +{ + gl_in.length(); + color.length(); + color2.length(); + colorS.length(); +} + +layout(location = 4) in vec4 cva[3]; +layout(location = 5) in vec4 cvb[3]; +layout(location = 2) in mat3 cmc[3]; // ERROR, collision + +patch in vec4 patchIn[]; // ERROR +patch out vec4 patchOut; // ERROR + +in float scalar; // ERROR, no array + +layout(max_vertices = 127, invocations = 4) out; // ERROR +layout(invocations = 4, max_vertices = 127) in; // ERROR +layout(max_vertices = 127, invocations = 4) uniform; // 2 ERRORs + +in inblockscalar { + int a; +} inbls; // ERROR, not an array + +in inblocka { + int a; +} inbla[17]; // ERROR, wrong array size + +void bits() +{ + uvec2 u2; + u2 = uaddCarry(u2, u2, u2); + uint u1; + u1 = usubBorrow(u1, u1, u1); + uvec4 u4; + umulExtended(u4, u4, u4, u4); + ivec4 i4; + imulExtended(i4, i4, i4, i4); + int i1; + i1 = bitfieldExtract(i1, 4, 5); + uvec3 u3; + u3 = bitfieldExtract(u3, 4, 5); + ivec3 i3; + i3 = bitfieldInsert(i3, i3, 4, 5); + u1 = bitfieldInsert(u1, u1, 4, 5); + ivec2 i2; + i2 = bitfieldReverse(i2); + u4 = bitfieldReverse(u4); + i1 = bitCount(i1); + i3 = bitCount(u3); + i2 = findLSB(i2); + i4 = findLSB(u4); + i1 = findMSB(i1); + i2 = findMSB(u2); +} + +layout(location = 7, index = 1) out vec4 indexedOut; + +uniform sampler1D samp1D; +uniform sampler2DShadow samp2Ds; + +void qlod() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); // ERROR, only in fragment + lod = textureQueryLod(samp2Ds, pf2); // ERROR, only in fragment +} + +void doubles() +{ + double doublev; + dvec2 dvec2v; + dvec3 dvec3v; + dvec4 dvec4v; + + bool boolv; + bvec2 bvec2v; + bvec3 bvec3v; + bvec4 bvec4v; + + doublev = sqrt(2.9); + dvec2v = sqrt(dvec2(2.7)); + dvec3v = sqrt(dvec3(2.0)); + dvec4v = sqrt(dvec4(2.1)); + + doublev += inversesqrt(doublev); + dvec2v += inversesqrt(dvec2v); + dvec3v += inversesqrt(dvec3v); + dvec4v += inversesqrt(dvec4v); + + doublev += abs(doublev); + dvec2v += abs(dvec2v); + dvec3v += abs(dvec3v); + dvec4v += abs(dvec4v); + + doublev += sign(doublev); + dvec2v += sign(dvec2v); + dvec3v += sign(dvec3v); + dvec4v += sign(dvec4v); + + doublev += floor(doublev); + dvec2v += floor(dvec2v); + dvec3v += floor(dvec3v); + dvec4v += floor(dvec4v); + + doublev += trunc(doublev); + dvec2v += trunc(dvec2v); + dvec3v += trunc(dvec3v); + dvec4v += trunc(dvec4v); + + doublev += round(doublev); + dvec2v += round(dvec2v); + dvec3v += round(dvec3v); + dvec4v += round(dvec4v); + + doublev += roundEven(doublev); + dvec2v += roundEven(dvec2v); + dvec3v += roundEven(dvec3v); + dvec4v += roundEven(dvec4v); + + doublev += ceil(doublev); + dvec2v += ceil(dvec2v); + dvec3v += ceil(dvec3v); + dvec4v += ceil(dvec4v); + + doublev += fract(doublev); + dvec2v += fract(dvec2v); + dvec3v += fract(dvec3v); + dvec4v += fract(dvec4v); + + doublev += mod(doublev, doublev); + dvec2v += mod(dvec2v, doublev); + dvec3v += mod(dvec3v, doublev); + dvec4v += mod(dvec4v, doublev); + dvec2v += mod(dvec2v, dvec2v); + dvec3v += mod(dvec3v, dvec3v); + dvec4v += mod(dvec4v, dvec4v); + + doublev += modf(doublev, doublev); + dvec2v += modf(dvec2v, dvec2v); + dvec3v += modf(dvec3v, dvec3v); + dvec4v += modf(dvec4v, dvec4v); + + doublev += min(doublev, doublev); + dvec2v += min(dvec2v, doublev); + dvec3v += min(dvec3v, doublev); + dvec4v += min(dvec4v, doublev); + dvec2v += min(dvec2v, dvec2v); + dvec3v += min(dvec3v, dvec3v); + dvec4v += min(dvec4v, dvec4v); + + doublev += max(doublev, doublev); + dvec2v += max(dvec2v, doublev); + dvec3v += max(dvec3v, doublev); + dvec4v += max(dvec4v, doublev); + dvec2v += max(dvec2v, dvec2v); + dvec3v += max(dvec3v, dvec3v); + dvec4v += max(dvec4v, dvec4v); + + doublev += clamp(doublev, doublev, doublev); + dvec2v += clamp(dvec2v, doublev, doublev); + dvec3v += clamp(dvec3v, doublev, doublev); + dvec4v += clamp(dvec4v, doublev, doublev); + dvec2v += clamp(dvec2v, dvec2v, dvec2v); + dvec3v += clamp(dvec3v, dvec3v, dvec3v); + dvec4v += clamp(dvec4v, dvec4v, dvec4v); + + doublev += mix(doublev, doublev, doublev); + dvec2v += mix(dvec2v, dvec2v, doublev); + dvec3v += mix(dvec3v, dvec3v, doublev); + dvec4v += mix(dvec4v, dvec4v, doublev); + dvec2v += mix(dvec2v, dvec2v, dvec2v); + dvec3v += mix(dvec3v, dvec3v, dvec3v); + dvec4v += mix(dvec4v, dvec4v, dvec4v); + doublev += mix(doublev, doublev, boolv); + dvec2v += mix(dvec2v, dvec2v, bvec2v); + dvec3v += mix(dvec3v, dvec3v, bvec3v); + dvec4v += mix(dvec4v, dvec4v, bvec4v); + + doublev += step(doublev, doublev); + dvec2v += step(dvec2v, dvec2v); + dvec3v += step(dvec3v, dvec3v); + dvec4v += step(dvec4v, dvec4v); + dvec2v += step(doublev, dvec2v); + dvec3v += step(doublev, dvec3v); + dvec4v += step(doublev, dvec4v); + + doublev += smoothstep(doublev, doublev, doublev); + dvec2v += smoothstep(dvec2v, dvec2v, dvec2v); + dvec3v += smoothstep(dvec3v, dvec3v, dvec3v); + dvec4v += smoothstep(dvec4v, dvec4v, dvec4v); + dvec2v += smoothstep(doublev, doublev, dvec2v); + dvec3v += smoothstep(doublev, doublev, dvec3v); + dvec4v += smoothstep(doublev, doublev, dvec4v); + + boolv = isnan(doublev); + bvec2v = isnan(dvec2v); + bvec3v = isnan(dvec3v); + bvec4v = isnan(dvec4v); + + boolv = boolv ? isinf(doublev) : false; + bvec2v = boolv ? isinf(dvec2v) : bvec2(false); + bvec3v = boolv ? isinf(dvec3v) : bvec3(false); + bvec4v = boolv ? isinf(dvec4v) : bvec4(false); + + doublev += length(doublev); + doublev += length(dvec2v); + doublev += length(dvec3v); + doublev += length(dvec4v); + + doublev += distance(doublev, doublev); + doublev += distance(dvec2v, dvec2v); + doublev += distance(dvec3v, dvec3v); + doublev += distance(dvec4v, dvec4v); + + doublev += dot(doublev, doublev); + doublev += dot(dvec2v, dvec2v); + doublev += dot(dvec3v, dvec3v); + doublev += dot(dvec4v, dvec4v); + + dvec3v += cross(dvec3v, dvec3v); + + doublev += normalize(doublev); + dvec2v += normalize(dvec2v); + dvec3v += normalize(dvec3v); + dvec4v += normalize(dvec4v); + + doublev += faceforward(doublev, doublev, doublev); + dvec2v += faceforward(dvec2v, dvec2v, dvec2v); + dvec3v += faceforward(dvec3v, dvec3v, dvec3v); + dvec4v += faceforward(dvec4v, dvec4v, dvec4v); + + doublev += reflect(doublev, doublev); + dvec2v += reflect(dvec2v, dvec2v); + dvec3v += reflect(dvec3v, dvec3v); + dvec4v += reflect(dvec4v, dvec4v); + + doublev += refract(doublev, doublev, doublev); + dvec2v += refract(dvec2v, dvec2v, doublev); + dvec3v += refract(dvec3v, dvec3v, doublev); + dvec4v += refract(dvec4v, dvec4v, doublev); + + dmat2 dmat2v = outerProduct(dvec2v, dvec2v); + dmat3 dmat3v = outerProduct(dvec3v, dvec3v); + dmat4 dmat4v = outerProduct(dvec4v, dvec4v); + dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v); + dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v); + dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v); + dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v); + dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); + dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); + + dmat2v *= matrixCompMult(dmat2v, dmat2v); + dmat3v *= matrixCompMult(dmat3v, dmat3v); + dmat4v *= matrixCompMult(dmat4v, dmat4v); + dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); + dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); + dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); + dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v); + dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v); + dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v); + + dmat2v *= transpose(dmat2v); + dmat3v *= transpose(dmat3v); + dmat4v *= transpose(dmat4v); + dmat2x3v = transpose(dmat3x2v); + dmat3x2v = transpose(dmat2x3v); + dmat2x4v = transpose(dmat4x2v); + dmat4x2v = transpose(dmat2x4v); + dmat3x4v = transpose(dmat4x3v); + dmat4x3v = transpose(dmat3x4v); + + doublev += determinant(dmat2v); + doublev += determinant(dmat3v); + doublev += determinant(dmat4v); + + dmat2v *= inverse(dmat2v); + dmat3v *= inverse(dmat3v); + dmat4v *= inverse(dmat4v); +} diff --git a/deps/glslang/glslang/Test/400.tesc b/deps/glslang/glslang/Test/400.tesc new file mode 100644 index 0000000000..415d7f7d7b --- /dev/null +++ b/deps/glslang/glslang/Test/400.tesc @@ -0,0 +1,125 @@ +#version 400 core + +layout(vertices = 4) out; +int outa[gl_out.length()]; + +layout(quads) in; // ERROR +layout(ccw) out; // ERROR +layout(fractional_even_spacing) in; // ERROR + +patch in vec4 patchIn; // ERROR +patch out vec4 patchOut; + +void main() +{ + barrier(); + + int a = gl_MaxTessControlInputComponents + + gl_MaxTessControlOutputComponents + + gl_MaxTessControlTextureImageUnits + + gl_MaxTessControlUniformComponents + + gl_MaxTessControlTotalOutputComponents; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[gl_InvocationID].gl_Position = p; + gl_out[gl_InvocationID].gl_PointSize = ps; + gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; + + gl_TessLevelOuter[3] = 3.2; + gl_TessLevelInner[1] = 1.3; + + if (a > 10) + barrier(); // ERROR + else + barrier(); // ERROR + + barrier(); + + do { + barrier(); // ERROR + } while (a > 10); + + switch (a) { + default: + barrier(); // ERROR + break; + } + a < 12 ? a : (barrier(), a); // ERROR + { + barrier(); + } + + return; + + barrier(); // ERROR +} + +layout(vertices = 4) in; // ERROR +layout(vertices = 5) out; // ERROR + +void foo() +{ + gl_out[4].gl_PointSize; // ERROR + + barrier(); // ERROR +} + +in vec2 ina; // ERROR, not array +in vec2 inb[]; +in vec2 inc[18]; // ERROR, wrong size +in vec2 ind[gl_MaxPatchVertices]; + +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 3) in vec4 ivla[]; +layout(location = 4) in vec4 ivlb[]; +layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping + +layout(location = 3) out vec4 ovla[]; +layout(location = 4) out vec4 ovlb[]; +layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping + +precise vec3 pv3; + +void foop() +{ + precise double d; + + pv3 *= pv3; + pv3 = fma(pv3, pv3, pv3); + d = fma(d, d, d); +} + +patch out pinbn { + int a; +} pinbi; + +invariant precise out vec4 badOrder[]; // ERROR, precise must appear first +void badp(out precise float f); // ERROR, precise must appear first + +void devi() +{ + gl_DeviceIndex; // ERROR, no extension + gl_ViewIndex; // ERROR, no extension +} + +#ifdef GL_EXT_device_group +#extension GL_EXT_device_group : enable +#endif + +#ifdef GL_EXT_device_group +#extension GL_EXT_multiview : enable +#endif + +void devie() +{ + gl_DeviceIndex; + gl_ViewIndex; +} diff --git a/deps/glslang/glslang/Test/400.tese b/deps/glslang/glslang/Test/400.tese new file mode 100644 index 0000000000..c110a1c4de --- /dev/null +++ b/deps/glslang/glslang/Test/400.tese @@ -0,0 +1,125 @@ +#version 400 core + +layout(vertices = 4) out; // ERROR +layout(quads, cw) in; +layout(triangles) in; // ERROR +layout(isolines) in; // ERROR + +layout(ccw) in; // ERROR +layout(cw) in; + +layout(fractional_odd_spacing) in; +layout(equal_spacing) in; // ERROR +layout(fractional_even_spacing) in; // ERROR + +layout(point_mode) in; + +patch in vec4 patchIn; +patch out vec4 patchOut; // ERROR + +void main() +{ + barrier(); // ERROR + + int a = gl_MaxTessEvaluationInputComponents + + gl_MaxTessEvaluationOutputComponents + + gl_MaxTessEvaluationTextureImageUnits + + gl_MaxTessEvaluationUniformComponents + + gl_MaxTessPatchComponents + + gl_MaxPatchVertices + + gl_MaxTessGenLevel; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + vec3 tc = gl_TessCoord; + float tlo = gl_TessLevelOuter[3]; + float tli = gl_TessLevelInner[1]; + + gl_Position = p; + gl_PointSize = ps; + gl_ClipDistance[2] = cd; +} + +smooth patch in vec4 badp1; // ERROR +flat patch in vec4 badp2; // ERROR +noperspective patch in vec4 badp3; // ERROR +patch sample in vec3 badp4; // ERROR + +#extension GL_ARB_separate_shader_objects : enable + +in gl_PerVertex +{ + float gl_ClipDistance[1]; +} gl_in[]; + +in gl_PerVertex // ERROR, second redeclaration of gl_in +{ + float gl_ClipDistance[1]; +} gl_in[]; + +layout(quads, cw) out; // ERROR +layout(triangles) out; // ERROR +layout(isolines) out; // ERROR +layout(cw) out; // ERROR +layout(fractional_odd_spacing) out; // ERROR +layout(equal_spacing) out; // ERROR +layout(fractional_even_spacing) out; // ERROR +layout(point_mode) out; // ERROR + +in vec2 ina; // ERROR, not array +in vec2 inb[]; +in vec2 inc[18]; // ERROR, wrong size +in vec2 ind[gl_MaxPatchVertices]; + +in testbla { + int f; +} bla; // ERROR, not array + +in testblb { + int f; +} blb[]; + +in testblc { + int f; +} blc[18]; // ERROR wrong size + +in testbld { + int f; +} bld[gl_MaxPatchVertices]; + +layout(location = 23) in vec4 ivla[]; +layout(location = 24) in vec4 ivlb[]; +layout(location = 24) in vec4 ivlc[]; // ERROR + +layout(location = 23) out vec4 ovla[2]; +layout(location = 24) out vec4 ovlb[2]; // ERROR + +in float gl_TessLevelOuter[4]; // ERROR, can't redeclare + +patch in pinbn { + int a; +} pinbi; + +void devi() +{ + gl_DeviceIndex; // ERROR, no extension + gl_ViewIndex; // ERROR, no extension +} + +#ifdef GL_EXT_device_group +#extension GL_EXT_device_group : enable +#endif + +#ifdef GL_EXT_device_group +#extension GL_EXT_multiview : enable +#endif + +void devie() +{ + gl_DeviceIndex; + gl_ViewIndex; +} diff --git a/deps/glslang/glslang/Test/400.vert b/deps/glslang/glslang/Test/400.vert new file mode 100644 index 0000000000..315c7ea042 --- /dev/null +++ b/deps/glslang/glslang/Test/400.vert @@ -0,0 +1,106 @@ +#version 400 core + +in double d; // ERROR, no doubles +in dvec3 d3; // ERROR, no doubles +in dmat4 dm4; // ERROR, no doubles + +// function selection under type conversion +void foo1(double a, uint b) {} +void foo1(double a, int b) {} +void foo1(double a, float b) {} +void foo1(double a, double b){} + +void foo2(double a, float b) {} +void foo2(double a, double b){} + +void foo3(double a, float b) {} +void foo3(float a, double b) {} + +void ftd( int, float, double) {} +void ftd( uint, float, double) {} +void ftd(float, double, double) {} + +void main() +{ + double d; + uint u; + int i; + float f; + + foo1(d, d); + foo1(d, u); + foo1(d, i); + foo1(d, f); + + foo1(f, d); + foo1(f, u); + foo1(f, i); + foo1(f, f); + + foo1(u, d); + foo1(u, u); + foo1(u, i); + foo1(u, f); + + foo1(i, d); + foo1(i, u); + foo1(i, i); + foo1(i, f); + + foo2(d, d); + foo2(d, u); + foo2(d, i); + foo2(d, f); + + foo2(f, d); + foo2(f, u); + foo2(f, i); + foo2(f, f); + + foo2(u, d); + foo2(u, u); + foo2(u, i); + foo2(u, f); + + foo2(i, d); + foo2(i, u); + foo2(i, i); + foo2(i, f); + + foo3(d, d); // ERROR, no match + foo3(d, u); + foo3(d, i); + foo3(d, f); + + foo3(f, d); + foo3(f, u); // ERROR, ambiguous + foo3(f, i); // ERROR, ambiguous + foo3(f, f); // ERROR, ambiguous + + foo3(u, d); + foo3(u, u); // ERROR, ambiguous + foo3(u, i); // ERROR, ambiguous + foo3(u, f); // ERROR, ambiguous + + foo3(i, d); + foo3(i, u); // ERROR, ambiguous + foo3(i, i); // ERROR, ambiguous + foo3(i, f); // ERROR, ambiguous + + ftd(i, f, f); + ftd(u, f, f); +} + +void itf(int, float, int); +void itf(int, double, int); + +void tf() +{ + double d; + uint u; + int i; + float f; + + itf(i, i, i); + itf(i, u, i); +} diff --git a/deps/glslang/glslang/Test/410.geom b/deps/glslang/glslang/Test/410.geom new file mode 100644 index 0000000000..8775aeb159 --- /dev/null +++ b/deps/glslang/glslang/Test/410.geom @@ -0,0 +1,39 @@ +#version 410 core + +void main() +{ + gl_ViewportIndex = 7; +} + +in gl_PerVertex { + float gl_PointSize; +} myIn[]; // ERROR, can't redeclare a different name + +in gl_PerVertex { + float gl_PointSize; +} gl_myIn[]; // ERROR, can't redeclare a different name + +in gl_PerVertex { + float gl_PointSize; +} gl_in[]; + +in gl_PerVertex { + float gl_PointSize; +} gl_in[]; // ERROR, can't do it again + +out gl_PerVertex { + float gl_PointSize; +}; + +void foo() +{ + float p = gl_in[1].gl_PointSize; // use of redeclared + gl_PointSize = p; // use of redeclared + vec4 v = gl_in[1].gl_Position; // ERROR, not included in the redeclaration + gl_Position = vec4(1.0); // ERROR, not included in the redeclaration +} + +float foo5() +{ + return 4; // implicit conversion of return type +} diff --git a/deps/glslang/glslang/Test/410.tesc b/deps/glslang/glslang/Test/410.tesc new file mode 100644 index 0000000000..d96a27003e --- /dev/null +++ b/deps/glslang/glslang/Test/410.tesc @@ -0,0 +1,11 @@ +#version 400 core + +// no layout(vertices = ...) out; +int outa[gl_out.length()]; // ERROR + +patch out vec4 patchOut; + +void main() +{ + +} diff --git a/deps/glslang/glslang/Test/410.vert b/deps/glslang/glslang/Test/410.vert new file mode 100644 index 0000000000..0ecf4768ae --- /dev/null +++ b/deps/glslang/glslang/Test/410.vert @@ -0,0 +1,9 @@ +#version 410 core + +in double d; +in dvec3 d3; +in dmat4 dm4; + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/420.comp b/deps/glslang/glslang/Test/420.comp new file mode 100644 index 0000000000..d92e6f0d0e --- /dev/null +++ b/deps/glslang/glslang/Test/420.comp @@ -0,0 +1,30 @@ +#version 420 + +layout(local_size_x = 2) in; // ERROR, no compute + +#extension GL_ARB_compute_shader : enable + +layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in; + +shared vec3 sfoo; + +void main() +{ + sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z); + sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID; + sfoo *= gl_LocalInvocationIndex; + sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize; + sfoo *= gl_MaxComputeUniformComponents + + gl_MaxComputeTextureImageUnits + + gl_MaxComputeImageUniforms + + gl_MaxComputeAtomicCounters + + gl_MaxComputeAtomicCounterBuffers; + + barrier(); + memoryBarrier(); + memoryBarrierAtomicCounter(); + memoryBarrierBuffer(); + memoryBarrierImage(); + memoryBarrierShared(); + groupMemoryBarrier(); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/420.frag b/deps/glslang/glslang/Test/420.frag new file mode 100644 index 0000000000..1444758eaa --- /dev/null +++ b/deps/glslang/glslang/Test/420.frag @@ -0,0 +1,14 @@ +#version 420 core + +layout(depth_any) out float gl_FragDepth; +layout(depth_greater) out float gl_FragDepth; // ERROR: redeclaration with different qualifier + +void main() +{ + gl_FragDepth = 0.3; +} + +layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth +layout(depth_any) out float gl_FragDepth; // ERROR, done after use + +layout(binding=0) uniform atomic_uint a[]; diff --git a/deps/glslang/glslang/Test/420.geom b/deps/glslang/glslang/Test/420.geom new file mode 100644 index 0000000000..43903bc707 --- /dev/null +++ b/deps/glslang/glslang/Test/420.geom @@ -0,0 +1,55 @@ +#version 420 core + +// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with + +int i; + +void foo() +{ + gl_in.length(); // ERROR + gl_in[1].gl_Position; + gl_in[i].gl_Position; // ERROR +} + +layout(triangles) in; + +in vec4 color3[3]; + +void foo3() +{ + gl_in.length(); + gl_in[i].gl_Position; + color3.length(); +} + +uniform sampler2D s2D; +in vec2 coord[]; +uniform vec4 v4; + +void foo4() +{ + const ivec2 offsets[5] = + { + ivec2(0,1), + ivec2(1,-2), + ivec2(0,3), + ivec2(-3,0), + ivec2(2,1) + }; + + vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy); + + offsets[i].xy = ivec2(3); // ERROR + v4.x = 3.2; // ERROR + v4.xy; // should have non-uniform type +} + +out gl_PerVertex { + float gl_PointSize[1]; // ERROR, adding array + float gl_ClipDistance; // ERROR, removing array +}; + +float foo5() +{ + return i; // implicit conversion of return type +} diff --git a/deps/glslang/glslang/Test/420.tesc b/deps/glslang/glslang/Test/420.tesc new file mode 100644 index 0000000000..b9fd21c2fd --- /dev/null +++ b/deps/glslang/glslang/Test/420.tesc @@ -0,0 +1,43 @@ +#version 420 core + +#extension GL_ARB_separate_shader_objects : enable + +layout(vertices = 4) out; + +out gl_PerVertex { + vec4 gl_Position; +} gl_out[3]; // ERROR, wrong size + +out int a[gl_out.length()]; +out int outb[5]; // ERROR, wrong size +out int outc[]; + +void main() +{ + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[gl_InvocationID].gl_Position = p; + gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR +} + +out float outf; // ERROR, no array + +layout (location = 0) in dmat2x4 vs_tcs_first[]; +layout (location = 12) in dmat2x4 vs_tcs_last[]; + +void foo() +{ + if ((dmat2x4(dvec4(-0.625, -0.5, -0.375lf, -0.25), dvec4(-0.375, -0.25, -0.125, 0)) != vs_tcs_first[0]) || + (dmat2x4(dvec4(0.375, 0.5, 0.625, 0.75), dvec4(0.625, 0.75, 0.875, -0.625)) != vs_tcs_last[0])) + { + ; + } +} + +layout(vertices = 0) out; // ERROR, can't be 0 diff --git a/deps/glslang/glslang/Test/420.tese b/deps/glslang/glslang/Test/420.tese new file mode 100644 index 0000000000..4c3693a833 --- /dev/null +++ b/deps/glslang/glslang/Test/420.tese @@ -0,0 +1,90 @@ +#version 420 core + +const mat2x2 a = mat2( vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) ); +mat2x2 b = { vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) }; +const mat2x2 c = { { 1.0, 0.0, }, { 0.0, 1.0 } }; + +float a2[2] = { 3.4, 4.2, 5.0 }; // illegal +vec2 b2 = { 1.0, 2.0, 3.0 }; // illegal +mat3x3 c2 = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal +mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting + +struct { + float a; + int b; +} e = { 1.2, 2, }; + +struct { + float a; + int b; +} e2 = { 1, 3 }; // legal, first initializer is converted + +struct { + float a; + int b; +} e3 = { 1.2, 2, 3 }; // illegal + +int a3 = true; // illegal +vec4 b3[2] = { vec4(0.0), 1.0 }; // illegal +vec4 b4[2] = vec4[2](vec4(0.0), mat2x2(1.0)); // illegal +mat4x2 c3 = { vec3(0.0), vec3(1.0) }; // illegal + +struct S1 { + vec4 a; + vec4 b; +}; + +struct { + float s; + float t; +} d2[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal + +float b5[] = { 3.4, 4.2, 5.0, 5.2, 1.1 }; + +struct S3 { + float f; + mat2x3 m23; +}; + +struct S4 { + uvec2 uv2; + S3 s[2]; +}; + +struct Single1 { int f; }; +Single1 single1 = { 10 }; + +struct Single2 { uvec2 v; }; +Single2 single2 = { { 1, 2 } }; + +struct Single3 { Single1 s1; }; +Single3 single3 = { { 3 } }; + +struct Single4 { Single2 s1; }; +Single4 single4 = { { { 4u, 5u } } }; + +const S4 constructed = S4(uvec2(1, 2), + S3[2](S3(3.0, mat2x3(4.0)), + S3(5.0, mat2x3(6.0)))); + +const S4 curlybad1 = { {1, 2}, + { {3, {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } }, // ERROR, the mat2x3 isn't isolated + {5.0, {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } }; + +const S4 curlyInit = { {1, 2}, + { {3, { {4.0, 0, 0.0}, {0.0, 4.0, 0.0 } } }, + {5.0, { {6, 0.0, 0.0}, {0.0, 6.0, 0.0 } } } } }; + +float vc1, vc2, vc3; +vec3 av3 = vec3(vc1, vc2, vc3); +vec3 bv3 = { vc1, vc2, vc3 }; + +void main() +{ + memoryBarrier(); + + if (constructed == curlybad1) + ; + if (constructed == curlyInit) + ; +} diff --git a/deps/glslang/glslang/Test/420.vert b/deps/glslang/glslang/Test/420.vert new file mode 100644 index 0000000000..ab28140e58 --- /dev/null +++ b/deps/glslang/glslang/Test/420.vert @@ -0,0 +1,161 @@ +#version 420 core +#version 420 core +varying vec2 v2; // ERROR, varying reserved +in vec4 bad[10]; +highp in vec4 badorder; +out invariant vec4 badorder2; +in centroid vec4 badorder4; // ERROR, no centroid input to vertex stage +out flat vec4 badorder3; +void bar(in const float a); +void bar2(highp in float b); +smooth flat out vec4 rep; // ERROR, replicating interpolation qualification +centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification +in uniform vec4 rep3; // ERROR, replicating storage qualification + +int anonconst; +const int aconst = 5; +const int a = aconst; +const int b = anonconst; // ERROR at global scope + +const int foo() // ERROR, no const functions +{ + const int a = aconst; + const int b = anonconst; + const int c = a; // still compile-time const + const int d = b; // not a compile-time const + float x[c]; // okay + float y[d]; // ERROR + + return b; +} + +void main() +{ + int i; + if (i == 3) + int j = i; + else + int k = j; // ERROR, j is undeclared + int m = k; // ERROR, k is undeclared + int n = j; // ERROR, j is undeclared + + while (true) + int jj; + int kk = jj; // ERROR, jj is undeclared +} + +const float cx = 4.20; +const float dx = 4.20; + +void bar(in highp volatile vec4 v) +{ + int s; + s.x; // okay + s.y; // ERROR + if (bad[0].x == cx.x) + ; + if (cx.x == dx.x) + badorder3 = bad[0]; + + float f; + vec3 smeared = f.xxx; + f.xxxxx; // ERROR + f.xxy; // ERROR +} + +layout(binding = 3) uniform; // ERROR +layout(binding = 3) uniform boundblock { int aoeu; } boundInst; +layout(binding = 7) uniform anonblock { int aoeu; } ; +layout(location = 1) in; // ERROR +layout(binding = 1) in inblock { int aoeua; }; // ERROR +layout(binding = 100000) uniform anonblock2 { int aooeu; } ; +layout(binding = 4) uniform sampler2D sampb1; +layout(binding = 5) uniform sampler2D sampb2[10]; +layout(binding = 80) uniform sampler2D sampb3; // ERROR, binding too big +layout(binding = 31) uniform sampler2D sampb4; +layout(binding = 79) uniform sampler2D sampb5[2]; // ERROR, binding too big + +int fgfg(float f, mediump int i); +int fgfg(float f, highp int i); + +out gl_PerVertex { + float gl_ClipDistance[4]; +}; + +patch in vec4 patchIn; // ERROR +patch out vec4 patchOut; // ERROR + +void bar23444() +{ + mat4x3 m43; \ + float a1 = m43[3].y; + vec3 v3; + int a2 = m43.length(); + a2 += m43[1].length(); + a2 += v3.length(); + const float b = 2 * a1; + int a = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; +} + +const int comma0 = (2, 3); // ERROR +int comma1[(2, 3)]; // ERROR + +layout(r32i) uniform iimage2D iimg2D; +layout(rgba32i) uniform iimage2D iimg2Drgba; +layout(rgba32f) uniform image2D img2Drgba; +layout(r32ui) uniform uimage2D uimg2D; +uniform image2DMS img2DMS; // ERROR image variables not declared writeonly must have format layout qualifier +uniform writeonly image2DMS img2DMSWO; +void qux() +{ + int i = aoeu; + imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i); + imageAtomicAdd(uimg2D, ivec2(i,i), uint(i)); + imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR iimg2Drgba does not have r32i layout + imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR img2Drgba is not integer image + ivec4 pos = imageLoad(iimg2D, ivec2(i,i)); + vec4 col = imageLoad(img2DMS, ivec2(i,i), i); + imageStore(img2DMSWO, ivec2(i,i), i, vec4(0)); + imageLoad(img2DMSWO, ivec2(i,i), i); // ERROR, drops writeonly +} + +volatile float vol; // ERROR, not an image +readonly int vol2; // ERROR, not an image + +void passr(coherent readonly iimage2D image) +{ +} + +layout(r32i) coherent readonly uniform iimage2D qualim1; +layout(r32i) coherent volatile readonly uniform iimage2D qualim2; + +void passrc() +{ + passr(qualim1); + passr(qualim2); // ERROR, drops volatile + passr(iimg2D); +} + +layout(rg8i) uniform uimage2D i1bad; // ERROR, type mismatch +layout(rgba32i) uniform image2D i2bad; // ERROR, type mismatch +layout(rgba32f) uniform uimage2D i3bad; // ERROR, type mismatch +layout(r8_snorm) uniform iimage2D i4bad; // ERROR, type mismatch +layout(rgba32ui) uniform iimage2D i5bad; // ERROR, type mismatch +layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch + +uniform offcheck { + layout(offset = 16) int foo; // ERROR +} offcheckI; + +uniform sampler1D samp1D; +uniform sampler1DShadow samp1Ds; + +void qlod() +{ + int levels; + + levels = textureQueryLevels(samp1D); // ERROR, not until 430 + levels = textureQueryLevels(samp1Ds); // ERROR, not until 430 +} + +layout(binding=0) writeonly uniform image1D badArray[]; diff --git a/deps/glslang/glslang/Test/420_size_gl_in.geom b/deps/glslang/glslang/Test/420_size_gl_in.geom new file mode 100644 index 0000000000..b709d5aa38 --- /dev/null +++ b/deps/glslang/glslang/Test/420_size_gl_in.geom @@ -0,0 +1,21 @@ +#version 420 core + +// testing input arrays without a gl_in[] block redeclaration, see 400.geom for with + +int i; + +layout(triangles) in; +in vec4 colorun[]; +in vec4 color3[3]; + +void foo() +{ + gl_in.length(); + gl_in[1].gl_Position; + gl_in.length(); + gl_in[i].gl_Position; // should be sized to 3 by 'triangles' +} + +in gl_PerVertex { // ERROR, already used + vec4 gl_Position; +} gl_in[]; diff --git a/deps/glslang/glslang/Test/430.comp b/deps/glslang/glslang/Test/430.comp new file mode 100644 index 0000000000..0929432ba9 --- /dev/null +++ b/deps/glslang/glslang/Test/430.comp @@ -0,0 +1,87 @@ +#version 430 core + +layout(local_size_x = 2) in; +layout(local_size_x = 16) in; // ERROR, changing +layout(local_size_z = 4096) in; // ERROR, too large +layout(local_size_x = 2) in; + +const int total = gl_MaxComputeWorkGroupCount.y + + gl_MaxComputeUniformComponents + + gl_MaxComputeTextureImageUnits + + gl_MaxComputeImageUniforms + + gl_MaxComputeAtomicCounters + + gl_MaxComputeAtomicCounterBuffers; + +buffer ShaderStorageBlock +{ + int value; + float values[]; +}; + +buffer InvalidShaderStorageBlock +{ + float values[]; + int value; +} invalid; + +void main() +{ + barrier(); + memoryBarrier(); + memoryBarrierAtomicCounter(); + memoryBarrierBuffer(); + memoryBarrierShared(); + memoryBarrierImage(); + groupMemoryBarrier(); + value = int(values[gl_LocalInvocationIndex]); + + int a; + if (a > 10) + barrier(); +} + +layout(location = 2) in vec3 v3; // ERROR +in float f; // ERROR +out float fo; // ERROR + +shared vec4 s; +layout(location = 2) shared vec4 sl; // ERROR +shared float fs = 4.2; // ERROR + +layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR + +int arrX[gl_WorkGroupSize.x]; +int arrY[gl_WorkGroupSize.y]; +int arrZ[gl_WorkGroupSize.z]; + +readonly buffer roblock +{ + int value; + float values[]; +} ro; + +void foo() +{ + ro.values[2] = 4.7; // ERROR, readonly + ro.values.length(); + barrier(); +} + +uniform double roll; +uniform writeonly image2D destTex; +void fooaoeu() { + ivec2 storePos = ivec2(gl_GlobalInvocationID.xy); + double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0); + dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4); + double globalCoef = 1.0; + int i = globalCoef; // ERROR, can't convert from double to int + double di = i; +} + +in inb { // ERROR + int a; +} inbi; + +out outb { // ERROR + int a; +} outbi; diff --git a/deps/glslang/glslang/Test/430.vert b/deps/glslang/glslang/Test/430.vert new file mode 100644 index 0000000000..84c322083b --- /dev/null +++ b/deps/glslang/glslang/Test/430.vert @@ -0,0 +1,223 @@ +#version 430 core + +layout(location = 3) vec4 v4; // ERROR + +layout(location = 4) uniform vec4 uv4; + +layout(location = 2) in inb1 { vec4 v; } b1; // ERROR +layout(location = 2) out outb1 { vec4 v; } b2; // ERROR + +out gl_PerVertex { + float gl_ClipDistance[]; +}; + +void foo() +{ + gl_ClipDistance[2] = 3.7; +} + +struct sp { + highp float f; + in float g; // ERROR + uniform float h; // ERROR + invariant float i; // ERROR + volatile float j; // ERROR + layout(row_major) mat3 m3; // ERROR +}; + +void foo3(invariant vec4 v4, // ERROR + volatile vec3 v3, + layout(location = 3) vec2 v2, // ERROR + centroid vec3 cv3) // ERROR +{ +} + +struct S { + mat3x2 m[7]; // needs 7*3 locations + float f; // needs 1 location +}; // needs 22 locations + +layout(location = 10) out S cs[2]; // 10 through 10 + 2 * 22 - 1 = 53 +layout(location = 54) out float cf; +layout(location = 53) out float cg; // ERROR, collision at 31 + +layout(location = 10) in vec4 alias1; +layout(location = 10) in vec4 alias2; // okay for vertex input on desktop + +out float gl_ClipDistance[17]; // ERROR, size too big + +// enhanced_layouts (most tests are in 440.*) + +layout(location = start*start - 2 - 4) in vec4 v6e; // ERROR + +layout(location = 28) in inblock2e { + layout(location = 25) float f2; // ERROR +} ininst2e; + +in ublock4e { + layout(location = 50) float f1; // ERROR + layout(location = 51) float f2; // ERROR +} in4e; + +layout(align=16, std140) uniform ubl4e { int a; } inst4e;// ERROR + +layout(align=32) uniform ubl9e { // ERROR + layout(offset=12, align=4) float f; // ERROR + layout(offset=20) float g; // ERROR +} inst9e; + +layout(std140) uniform blocke { + vec4 a; + layout(offset = 32) vec3 b; // ERROR +} spinste; + +int aconste[gl_MaxTransformFeedbackBuffers]; // ERROR +int bconste[gl_MaxTransformFeedbackInterleavedComponents]; // ERROR + +out bblck2 { + layout(xfb_offset=64) vec4 bbv; // ERROR +} bbinst2; + +layout(xfb_buffer = 3, xfb_stride = 64) out; // ERROR + +layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bge; // ERROR +layout( xfb_offset=32, xfb_stride=64) out vec4 bhe; // ERROR + +layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4e { // ERROR + vec4 bbv1; + vec4 bbv2; +} bbinst4e; + +out bblck5e { + layout(xfb_offset=0) vec4 bbv1; // ERROR + layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2; // ERROR +} bbinst5e; + +#extension GL_ARB_enhanced_layouts : enable + +layout(align=16, std140) uniform ubl4 { int a; } inst4; +layout(std430) uniform; + +layout(align=32) uniform ubl9 { + layout(offset=12, align=4) float f; + layout(offset=20) float g; +} inst9; + +layout(std140) uniform block { + vec4 a; // a takes offsets 0-15 + layout(offset = 32) vec3 b; // b takes offsets 32-43 +} spinst; + +int aconst[gl_MaxTransformFeedbackBuffers]; +int bconst[gl_MaxTransformFeedbackInterleavedComponents]; + +const int start2 = 5; +layout(location = start2 * start2 - 2 - 4) in vec4 v6; + +layout(location = 28) in inblock2 { // ERROR, input block in vertex shader, other errors are valid checks still... + bool b1; + float f1; + layout(location = 25) float f2; +} ininst2; + +in ublock4 { // ERROR, input block in vertex shader, other errors are valid checks still... + layout(location = 50) float f1; + layout(location = 51) float f2; +} in4; + +out bblck2g { + layout(xfb_offset=64) vec4 bbv; +} bbinst2g; + +layout(xfb_buffer = 1, xfb_stride = 80) out; // default buffer is 3 + +layout(xfb_buffer=1, xfb_offset=48, xfb_stride=80) out vec4 bg; +layout( xfb_offset=32, xfb_stride=80) out vec4 bh; + +layout(xfb_stride=80, xfb_buffer=1, xfb_offset=16) out bblck4 { + vec4 bbv1; +} bbinst4; + +out bblck5 { + layout(xfb_offset=0) vec4 bbv1; + layout(xfb_stride=80, xfb_buffer=1, xfb_offset=64) vec4 bbv2; +} bbinst5; + +shared vec4 sharedv; // ERROR + +void fooBarrier() +{ + barrier(); // ERROR + memoryBarrier(); + memoryBarrierAtomicCounter(); + memoryBarrierBuffer(); + memoryBarrierShared(); // ERROR + memoryBarrierImage(); + groupMemoryBarrier(); // ERROR +} + +buffer vec4 v; // ERROR + +uniform sampler2DMS s2dms; +uniform usampler2DMSArray us2dmsa; +layout(rgba32i) uniform iimage2DMS ii2dms; +layout(rgba32f) uniform image2DMSArray i2dmsa; + +void fooq() +{ + int s = textureSamples(s2dms); // ERROR + s += textureSamples(us2dmsa); // ERROR + s += imageSamples(ii2dms); // ERROR + s += imageSamples(i2dmsa); // ERROR +} + +#extension GL_ARB_shader_texture_image_samples : enable + +void fooq2() +{ + int s = textureSamples(s2dms); + s += textureSamples(us2dmsa); + s += imageSamples(ii2dms); + s += imageSamples(i2dmsa); +} + +uniform sampler1D samp1D; +uniform usampler2D usamp2D; +uniform isampler3D isamp3D; +uniform isamplerCube isampCube; +uniform isampler1DArray isamp1DA; +uniform sampler2DArray samp2DA; +uniform usamplerCubeArray usampCubeA; + +uniform sampler1DShadow samp1Ds; +uniform sampler2DShadow samp2Ds; +uniform samplerCubeShadow sampCubes; +uniform sampler1DArrayShadow samp1DAs; +uniform sampler2DArrayShadow samp2DAs; +uniform samplerCubeArrayShadow sampCubeAs; + +uniform samplerBuffer sampBuf; +uniform sampler2DRect sampRect; + +void qlod() +{ + int levels; + + levels = textureQueryLevels(samp1D); + levels = textureQueryLevels(usamp2D); + levels = textureQueryLevels(isamp3D); + levels = textureQueryLevels(isampCube); + levels = textureQueryLevels(isamp1DA); + levels = textureQueryLevels(samp2DA); + levels = textureQueryLevels(usampCubeA); + + levels = textureQueryLevels(samp1Ds); + levels = textureQueryLevels(samp2Ds); + levels = textureQueryLevels(sampCubes); + levels = textureQueryLevels(samp1DAs); + levels = textureQueryLevels(samp2DAs); + levels = textureQueryLevels(sampCubeAs); + + levels = textureQueryLevels(sampBuf); // ERROR + levels = textureQueryLevels(sampRect); // ERROR +} diff --git a/deps/glslang/glslang/Test/430AofA.frag b/deps/glslang/glslang/Test/430AofA.frag new file mode 100644 index 0000000000..54d0923089 --- /dev/null +++ b/deps/glslang/glslang/Test/430AofA.frag @@ -0,0 +1,108 @@ +#version 430 + +float[4][5][6] many[1][2][3]; + +float gu[][7]; +float gimp[][]; // ERROR, implicit inner +float g4[4][7]; +float g5[5][7]; + +float[4][7] foo(float a[5][7]) +{ + float r[7]; + r = a[2]; + float[](a[0], a[1], r, a[3]); // ERROR, too few dims + float[4][7][4](a[0], a[1], r, a[3]); // ERROR, too many dims + return float[4][7](a[0], a[1], r, a[3]); + return float[][](a[0], a[1], r, a[3]); + return float[][7](a[0], a[1], a[2], a[3]); +} + +void bar(float[5][7]) {} + +void main() +{ + { + float gu[3][4][2]; + + gu[2][4][1] = 4.0; // ERROR, overflow + } + vec4 ca4[3][2] = vec4[][](vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0))); + vec4 caim[][2] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0))); + vec4 caim2[][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0))); + vec4 caim3[3][] = vec4[][](vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0))); + + vec4 a4[3][2] = {vec4[](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0)) }; + vec4 aim[][2] = {vec4[2](vec4(4.0), vec4(2.0)), + vec4[](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)) }; + vec4 aim2[][] = {vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[](vec4(4.0), vec4(2.0)) }; + vec4 aim3[3][] = {vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)) }; + + vec4 bad2[3][] = {vec4[2](vec4(4.0), vec4(2.0)), // ERROR + vec4[3](vec4(4.0), vec4(2.0), vec4(5.0)), + vec4[2](vec4(4.0), vec4(2.0)) }; + + vec4 bad3[3][] = {vec4[3](vec4(4.0), vec4(2.0), vec4(5.0)), // ERROR + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)) }; + + vec4 bad4[4][] = {vec4[2](vec4(4.0), vec4(2.0)), // ERROR + vec4[2](vec4(4.0), vec4(2.0)), + vec4[2](vec4(4.0), vec4(2.0)) }; + + + g4 = foo(g5); + g5 = g4; // ERROR, wrong types + gu = g4; // ERROR, not yet sized + + foo(gu); // ERROR, not yet sized + bar(g5); + + if (foo(g5) == g4) + ; + if (foo(g5) == g5) // ERROR, different types + ; + + float u[][7]; + u[2][2] = 3.0; + float u[5][7]; + u[5][2] = 5.0; // ERROR + foo(u); +} + +void foo3() +{ + float resize1[][5][7]; + resize1.length(); // ERROR + resize1[1][4][5] = 2.0; + resize1.length(); // ERROR + float resize1[3][5][7]; + resize1.length(); // 3 in AST + resize1[1].length(); // 5 in AST + resize1[1][1].length(); // 7 in AST + resize1[1][1][1].length(); // ERROR + + float resize2[][5][7]; + float resize2[3][4][7]; // ERROR, inner dim change + + float resize3[][5][7]; + float resize3[3][5][9]; // ERROR, inner dim changed + + float resize4[][5][7]; + int resize4[3][5][7]; // ERROR, element type +} diff --git a/deps/glslang/glslang/Test/430scope.vert b/deps/glslang/glslang/Test/430scope.vert new file mode 100644 index 0000000000..7efa1623d6 --- /dev/null +++ b/deps/glslang/glslang/Test/430scope.vert @@ -0,0 +1,74 @@ +#version 430 core + +int f(int a, int b, int c) +{ + int a = b; // ERROR, redefinition + + { + float a = float(a) + 1.0; // okay + } + + return a; +} + +int f(int a, int b, int c); // okay to redeclare + +bool b; +float b(int a); // ERROR: redefinition + +float c(int a); +bool c; // ERROR: redefinition + +float f; // ERROR: redefinition +float tan; // okay, hides built-in function +float sin(float x); // okay, can redefine built-in functions +float cos(float x) // okay, can redefine built-in functions +{ + return 1.0; +} +bool radians(bool x) // okay, can overload built-in functions +{ + return true; +} + +invariant gl_Position; + +void main() +{ + int g(); // okay + g(); + + float sin; // okay + sin; + sin(0.7); // ERROR, use of hidden function + f(1,2,3); + + float f; // hides f() + f = 3.0; + + gl_Position = vec4(f); + + for (int f = 0; f < 10; ++f) + ++f; + + int x = 1; + { + float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 + int z = z; // ERROR: z not previously defined. + } + { + int x = x; // x is initialized to '1' + } + + struct S + { + int x; + }; + { + S S = S(0); // 'S' is only visible as a struct and constructor + S.x; // 'S' is now visible as a variable + } + + int degrees; + degrees(3.2); // ERROR, use of hidden built-in function +} diff --git a/deps/glslang/glslang/Test/435.vert b/deps/glslang/glslang/Test/435.vert new file mode 100644 index 0000000000..bf27ce9673 --- /dev/null +++ b/deps/glslang/glslang/Test/435.vert @@ -0,0 +1,2 @@ +#version 435 +void main() {} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/440.frag b/deps/glslang/glslang/Test/440.frag new file mode 100644 index 0000000000..4eb1a3ffd2 --- /dev/null +++ b/deps/glslang/glslang/Test/440.frag @@ -0,0 +1,153 @@ +#version 440 + +// Note 'location'-only tests for enhanced layouts are in 330.frag +// Generic 'component' tests are in 440.vert + +// a consumes components 2 and 3 of location 4 +layout(location = 4, component = 2) in vec2 a; + +// b consumes component 1 of location 4 +layout(location = 4, component = 1) in float b; +layout(location = 4, component = 2) in vec2 h; // ERROR, component overlap not okay for fragment in + +layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3 + +// e consumes beginning (components 0, 1 and 2) of each of 6 slots +layout(location = 20, component = 0) in vec3 e[6]; + +// f consumes last component of the same 6 slots +layout(location = 20, component = 3) in float f[6]; + +layout(location = 30, component = 3) out int be; +layout(location = 30, component = 0) out vec3 bf; // ERROR, not the same basic type + +writeonly uniform; // ERROR +readonly in; // ERROR +flat out; // ERROR +mediump uniform; + +layout(offset=12) uniform; // ERROR +layout(offset=12) in; // ERROR +layout(offset=12) out; // ERROR + +layout(align=16) uniform; // ERROR +layout(align=16) in; // ERROR +layout(align=16) out; // ERROR + +layout(offset=12) uniform ubl1 { int a; } inst1; // ERROR +layout(offset=12) in inbl2 { int a; } inst2; // ERROR +layout(offset=12) out inbl3 { int a; } inst3; // ERROR + +layout(align=16, std140) uniform ubl4 { int a; } inst4; +layout(align=16) uniform ubl8 { int a; } inst8; // ERROR, no packing +layout(align=16) in inbl5 { int a; } inst5; // ERROR +layout(align=16) out inbl6 { int a; } inst6; // ERROR + +layout(offset=12) uniform vec4 v1; // ERROR +layout(offset=12) in vec4 v2; // ERROR +layout(offset=12) out vec4 v3; // ERROR + +layout(align=16) uniform vec4 v4; // ERROR +layout(align=16) in vec4 v5; // ERROR +layout(align=16) out vec4 v6; // ERROR + +layout(std140) in; // ERROR +layout(std140) uniform vec4 v7; // ERROR + +layout(align=48) uniform ubl7 { // ERROR, not power of 2 + layout(offset=12, align=4) float f; // ERROR, no packing +} inst7; + +in ibl10 { + layout(offset=12) float f; // ERROR + layout(align=4) float g; // ERROR +} inst10; + +layout(std430) uniform; + +layout(align=32) uniform ubl9 { + float e; + layout(offset=12, align=4) float f; + layout(offset=20) float g; + float h; +} inst9; + +uniform ubl11 { + layout(offset=12, align=4) float f; + float g; +} inst11; + +layout(std140) uniform block { + vec4 a; // a takes offsets 0-15 + layout(offset = 32) vec3 b; // b takes offsets 32-43 + layout(offset = 40) vec2 c; // ERROR, lies within previous member + layout(align = 6) double g; // ERROR, 6 is not a power of 2 + layout(offset=68) double h; // ERROR, offset not aligned +} specExampleErrors; + +layout(std140) uniform block2 { + vec4 a; // a takes offsets 0-15 + layout(offset = 32) vec3 b; // b takes offsets 32-43 + layout(offset = 48) vec2 d; // d takes offsets 48-55 + layout(align = 16) float e; // e takes offsets 64-67 + layout(align = 2) double f; // f takes offsets 72-79 + layout(offset = 80) float h; // h takes offsets 80-83 + layout(align = 64) dvec3 i; // i takes offsets 128-151 + layout(offset = 164, align = 8) float j; // j takes offsets 168-171 +} specExample; + +layout(std430) buffer block430 { + vec4 a; // a takes offsets 0-15 + layout(offset = 32) vec3 b; // b takes offsets 32-43 + layout(offset = 40) vec2 c; // ERROR, lies within previous member + layout(align = 6) double g; // ERROR, 6 is not a power of 2 + layout(offset=68) double h; // ERROR, offset not aligned + layout(align = 0) double i; // ERROR, 0 not a power of 2 +} specExampleErrors430; + +layout(std430) buffer block2430 { + vec4 a; // a takes offsets 0-15 + layout(offset = 32) vec3 b; // b takes offsets 32-43 + layout(offset = 48) vec2 d; // d takes offsets 48-55 + layout(align = 16) float e; // e takes offsets 64-67 + layout(align = 2) double f; // f takes offsets 72-79 + layout(offset = 80) float h; // h takes offsets 80-83 + layout(align = 64) dvec3 i; // i takes offsets 128-151 + layout(offset = 164, align = 8) float j; // j takes offsets 168-171 +} specExample430; + +layout(std430, align = 128) buffer block24300 { + vec4 a; + vec3 b; + vec2 d; + float e; + double f; + float h; + dvec3 i; +} specExample4300; + +layout(std430, align = 128) buffer block24301 { + vec4 a; + vec3 b; + vec2 d; + layout(offset=388) float e; + layout(align=8) double f; + float h; + dvec3 i; +} specExample4301; + +int aconst[gl_MaxTransformFeedbackBuffers]; +int bconst[gl_MaxTransformFeedbackInterleavedComponents]; + +sample in vec3 sampInArray[4]; + +void interp() +{ + interpolateAtCentroid(sampInArray[2].xy); + interpolateAtSample(sampInArray[2].x.x, 2); +} + +int layer() +{ + return gl_Layer; +} diff --git a/deps/glslang/glslang/Test/440.vert b/deps/glslang/glslang/Test/440.vert new file mode 100644 index 0000000000..4ab6f2ee21 --- /dev/null +++ b/deps/glslang/glslang/Test/440.vert @@ -0,0 +1,197 @@ +#version 440 + +// Note 'location' tests for enhanced layouts are in 330.frag + +layout(location = 2, component = 2) in vec2 a; +layout(location = 2, component = 1) in float b; + +layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3 + +layout(location = 0, component = 3) in float d[4]; + +layout(location = 4, component = 0) in vec3 e[5]; +layout(location = 4, component = 3) in float f[5]; + +layout(location = 9, component = 4) in float g[6]; // ERROR, component too big + +layout(location = 4, component = 2) in vec2 h; // component overlap okay for vertex in + +layout(location = 3, component = 2) out vec2 i; +layout(location = 3, component = 0) out vec2 j; + +layout(location = 4, component = 2) out vec2 k; +layout(location = 4, component = 2) out vec2 m; // ERROR, component overlap + +layout(location = 2, component = 2) out vec2 n; +layout(location = 2, component = 0) out vec3 p; // ERROR, component overlap + +layout(location = 10, component = 3) out float q[6]; +layout(location = 10, component = 0) out vec3 r[6]; + +layout(location = 15, component = 3) out float s; // ERROR, overlap +layout(location = 10, component = 1) out float t; // ERROR, overlap + +layout(location = 20, component = 2) out float u; +layout(location = 20, component = 0) out float v; +layout(location = 20, component = 3) out float w; +layout(location = 20, component = 1) out vec2 x; // ERROR, overlap + +layout(location = 30, component = 3) out vec2 y; // ERROR, goes to component 4 +layout(location = 31, component = 1) out vec4 z; // ERROR, goes to component 4 + +layout(location = 32, component = 1) out mat4 ba; // ERROR +layout(location = 33, component = 1) out struct S {int a;} Ss; // ERROR +layout(location = 34, component = 1) out bn { int a;} bb; // ERROR + +layout(component = 1) out float bc; // ERROR, no location + +out blockname { + layout(location = 40, component = 2) out float u; + layout(location = 40, component = 0) out float v; + layout(location = 40, component = 3) out float w; + layout(location = 40, component = 1) out vec2 x; // ERROR, overlap + + layout(location = 41, component = 3) out vec2 y; // ERROR, goes to component 4 + layout(location = 42, component = 1) out vec4 z; // ERROR, goes to component 4 + + layout(location = 42, component = 1) out mat4 ba; // ERROR + layout(location = 43, component = 1) out S Ss; // ERROR +} bd; + +layout(location = 1, component = 1) out; // ERROR, no global setting + +layout(location = 50, component = 3) out int be; +layout(location = 50, component = 0) out vec3 bf; + +layout(location = 51, component = 1) out double dfo; // ERROR, odd component +layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow +layout(location = 53) out double dfo2; +layout(location = 53, component = 2) out vec2 ffv2; // okay, fits +layout(location = 54) out dvec4 dvec4out; // uses up location 55 too +layout(location = 55) out float overf; // ERROR, collides with previous dvec4 +layout(location = 56, component = 1) out vec2 df2o; +layout(location = 56, component = 3) out float sf2o; +layout(location = 57, component = 2) out vec2 dv3o; +layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component +layout(location=58) out flat dvec3 dv3o2; // uses part of location 59 +layout(location=59, component=2) out flat double dfo3; // okay, fits +layout(location=59, component=0) out flat double dfo4; // ERROR, overlaps the dvec3 in starting in 58 + +out bblck1 { + vec4 bbv; +} bbinst1; + +out bblck2 { + layout(xfb_offset=64) vec4 bbv; +} bbinst2; + +layout(xfb_buffer = 3, xfb_stride = 64) out; // default buffer is 3 + +out bblck3 { + layout(xfb_offset=16) vec4 bbv; // in xfb_buffer 3 +} bbinst3; + +uniform ubblck3 { + layout(xfb_offset=16) vec4 bbv; // ERROR, not in a uniform +} ubbinst3; + +layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bg; +layout( xfb_offset=32, xfb_stride=64) out vec4 bh; + +layout(xfb_offset=48) out; // ERROR + +layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4 { + vec4 bbv1; + vec4 bbv2; +} bbinst4; + +out bblck5 { + layout(xfb_offset=0) vec4 bbv1; + layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2; + layout(xfb_buffer=2) vec4 bbv3; // ERROR, wrong buffer +} bbinst5; + +out layout(xfb_buffer=2) bblck6 { + layout(xfb_offset=0) vec4 bbv1; + layout(xfb_stride=64, xfb_buffer=3, xfb_offset=32) vec4 bbv2; // ERROR, overlap 32 from bh, and buffer contradiction + layout(xfb_buffer=2, xfb_offset=0) vec4 bbv3; // ERROR, overlap 0 from bbinst5 + layout(xfb_buffer=2) vec4 bbv5; + layout(xfb_offset=24) float bbf6; // ERROR, overlap 24 from bbv1 in bbinst4 +} bbinst6; + +layout(xfb_stride=48) out; // ERROR, stride of buffer 3 + +layout(xfb_buffer=1) out; // default buffer is 1 +layout(xfb_offset=4) out float bj; +layout(xfb_offset=0) out ivec2 bk; // ERROR, overlap 4 + +layout(xfb_buffer=3, xfb_stride=48) out; // ERROR, stride of buffer 3 (default is now 3) +layout(xfb_stride=48) out float bl; // ERROR, stride of buffer 3 + +layout(xfb_stride=48) out bblck7 { // ERROR, stride of buffer 3 + layout(xfb_stride=64) vec4 bbv1; + layout(xfb_stride=32) vec4 bbv2; // ERROR, stride of buffer 3 +} bbinst7; + +struct S5 { + int i; // 4 bytes plus 4 byte hole + double d; // 8 bytes + float f; // 4 bytes +}; // total size = 20 + +struct T { + bool b; // 4 plus 4 byte hole + S5 s; // 20 + vec2 v2; // 8 +}; // total size = 36 + +out layout(xfb_buffer=0, xfb_offset=0, xfb_stride=92) bblck8 { // ERROR, stride not multiple of 8 + bool b; // offset 0 + T t; // offset 8, size 40 + int i; // offset 40 + 4 = 48 + mat3x3 m3; // offset 52 + float f; // offset 52 + 9*4 = 88 + float g; // ERROR, overflow stride +} bbinst8; + +out layout(xfb_buffer=4) bblck9 { + layout(xfb_offset=1) bool b; // ERROR + layout(xfb_offset=12) T t; // ERROR + layout(xfb_offset=52) mat3x3 m3; // non-multiple of 8 okay + layout(xfb_offset=90) int i; // ERROR + layout(xfb_offset=98) double d; // ERROR + layout(xfb_offset=108) S s; // non-multiple of 8 okay +} bbinst9; + +layout(xfb_buffer=5, xfb_stride=6) out; // link ERROR, stride not multiple of 4 +layout(xfb_offset=0) out float bm; + +layout(xfb_buffer=6, xfb_stride=2000) out; // ERROR, stride too big + +out layout(xfb_buffer=7, xfb_offset=0) bblck10 { // link ERROR, implicit stride too big + dmat4x4 m1; + dmat4x4 m2; + float f; +} bbinst10; + +layout(xfb_buffer = 3) out; +layout(xfb_offset = 32) out gl_PerVertex { + layout(xfb_buffer = 2) float gl_PointSize; // ERROR, change in xfb_buffer + vec4 gl_Position; +}; + +int drawParamsBad() +{ + return gl_BaseVertexARB + gl_BaseInstanceARB + gl_DrawIDARB; // ERROR, extension not requested +} + +#extension GL_ARB_shader_draw_parameters: enable + +int drawParams() +{ + return gl_BaseVertexARB + gl_BaseInstanceARB + gl_DrawIDARB; + gl_BaseVertexARB = 3; // ERROR, can't write to shader 'in' + gl_BaseInstanceARB = 3; // ERROR, can't write to shader 'in' + gl_DrawIDARB = 3; // ERROR, can't write to shader 'in' + glBaseInstanceARB; // ERROR, not defined +} diff --git a/deps/glslang/glslang/Test/450.comp b/deps/glslang/glslang/Test/450.comp new file mode 100644 index 0000000000..fb2b56a771 --- /dev/null +++ b/deps/glslang/glslang/Test/450.comp @@ -0,0 +1,6 @@ +#version 450 core +layout(local_size_x = 0) in; // ERROR, 0 not allowed +void main() +{ + shared float f; // ERROR shared must be global +} diff --git a/deps/glslang/glslang/Test/450.frag b/deps/glslang/glslang/Test/450.frag new file mode 100644 index 0000000000..076d0b3a96 --- /dev/null +++ b/deps/glslang/glslang/Test/450.frag @@ -0,0 +1,68 @@ +#version 450 core + +in float in1; +in vec2 in2; +in vec3 in3; +in vec4 in4; + +void main() +{ + vec2 v2 = dFdxFine(in2); + vec3 v3 = dFdyCoarse(in3); + vec4 v4 = fwidth(in4); + v4 = dFdyFine(in4); + v3 = dFdyFine(in3); + float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1); + v4 = fwidthCoarse(in4) + fwidthFine(in4); + + float cull = gl_CullDistance[2]; + float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances + gl_MaxSamples; + + if (gl_HelperInvocation) + ++v4; + + int sum = gl_MaxVertexImageUniforms + + gl_MaxFragmentImageUniforms + + gl_MaxComputeImageUniforms + + gl_MaxCombinedImageUniforms + + gl_MaxCombinedShaderOutputResources; + + bool b1, b3, b; + uint uin; + bvec2 b2 = mix(bvec2(b1), bvec2(b3), bvec2(b)); + uint um = mix(uin, uin, b); + ivec3 im3 = mix(ivec3(uin), ivec3(uin), bvec3(b)); +} + +uniform sampler2DMS s2dms; +uniform usampler2DMSArray us2dmsa; +layout(rgba32i) uniform iimage2DMS ii2dms; +layout(rgba32f) uniform image2DMSArray i2dmsa; + +void foo() +{ + int s = textureSamples(s2dms); + s += textureSamples(us2dmsa); + s += imageSamples(ii2dms); + s += imageSamples(i2dmsa); + float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5); +} + +in float gl_CullDistance[6]; + +float cull(int i) +{ + return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i]; +} + +layout(location = 6) in bName1 { + float f; + layout(location = 7) float g; + mat4 m; +} bInst1; +layout(location = 12) in bName2 { + float f; + layout(location = 13) float g; // ERROR, location on array +} bInst2[3]; + +layout(early_fragment_tests) in float f; // ERROR, must be standalone diff --git a/deps/glslang/glslang/Test/450.geom b/deps/glslang/glslang/Test/450.geom new file mode 100644 index 0000000000..45cbecba56 --- /dev/null +++ b/deps/glslang/glslang/Test/450.geom @@ -0,0 +1,19 @@ +#version 450 core + +in gl_PerVertex { + float gl_CullDistance[3]; +} gl_in[]; + +out gl_PerVertex { + float gl_CullDistance[3]; +}; + +layout(triangles) in; + +void main() +{ + gl_in[3].gl_Position; // ERROR, out of range + gl_CullDistance[2] = gl_in[1].gl_CullDistance[2]; +} + +layout(points) in float f[3]; // ERROR, must be standalone diff --git a/deps/glslang/glslang/Test/450.tesc b/deps/glslang/glslang/Test/450.tesc new file mode 100644 index 0000000000..bf5c08373b --- /dev/null +++ b/deps/glslang/glslang/Test/450.tesc @@ -0,0 +1,23 @@ +#version 450 core + +in gl_PerVertex { + float gl_CullDistance[3]; +} gl_in[gl_MaxPatchVertices]; + +out gl_PerVertex { + float gl_CullDistance[3]; +} gl_out[4]; + +void main() +{ + gl_out[gl_InvocationID].gl_CullDistance[2] = gl_in[1].gl_CullDistance[2]; +} + +layout(location = 4) out bName1 { + float f; + layout(location = 5) float g; +} bInst1[2]; +layout(location = 6) out bName2 { + float f; + layout(location = 7) float g; // ERROR, location on array +} bInst2[2][3]; diff --git a/deps/glslang/glslang/Test/450.tese b/deps/glslang/glslang/Test/450.tese new file mode 100644 index 0000000000..8cdeb20722 --- /dev/null +++ b/deps/glslang/glslang/Test/450.tese @@ -0,0 +1,21 @@ +#version 450 core + +in gl_PerVertex { + float gl_CullDistance[3]; +} gl_in[gl_MaxPatchVertices]; + +out gl_PerVertex { + float gl_CullDistance[3]; +}; + +void main() +{ + gl_CullDistance[2] = gl_in[1].gl_CullDistance[2]; +} + +layout(equal_spacing) in float f1[]; // ERROR, must be standalone +layout(fractional_even_spacing) in float f2[]; // ERROR, must be standalone +layout(fractional_odd_spacing) in float f3[]; // ERROR, must be standalone +layout(cw) in float f4[]; // ERROR, must be standalone +layout(ccw) in float f5[]; // ERROR, must be standalone +layout(point_mode) in float f6[]; // ERROR, must be standalone diff --git a/deps/glslang/glslang/Test/450.vert b/deps/glslang/glslang/Test/450.vert new file mode 100644 index 0000000000..e99a133c13 --- /dev/null +++ b/deps/glslang/glslang/Test/450.vert @@ -0,0 +1,56 @@ +#version 450 core + +out gl_PerVertex { + float gl_CullDistance[3]; +}; + +void main() +{ + gl_CullDistance[2] = 4.5; +} + +out bool outb; // ERROR +out sampler2D outo; // ERROR +out float outa[4]; +out float outaa[4][2]; +struct S { float f; }; +out S outs; +out S[4] outasa; +out S outsa[4]; +struct SA { float f[4]; }; +out SA outSA; +struct SS { float f; S s; }; +out SS outSS; + +layout(binding = 0) uniform atomic_uint aui; +uint ui; + +void foo() +{ + SS::f; + atomicCounterAdd(aui, ui); // ERROR, need 4.6 + atomicCounterSubtract(aui, ui); // ERROR, need 4.6 + atomicCounterMin(aui, ui); // ERROR, need 4.6 + atomicCounterMax(aui, ui); // ERROR, need 4.6 + atomicCounterAnd(aui, ui); // ERROR, need 4.6 + atomicCounterOr(aui, ui); // ERROR, need 4.6 + atomicCounterXor(aui, ui); // ERROR, need 4.6 + atomicCounterExchange(aui, ui); // ERROR, need 4.6 + atomicCounterCompSwap(aui, ui, ui); // ERROR, need 4.6 + + int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6 + + bool b1; + anyInvocation(b1); // ERROR, need 4.6 + allInvocations(b1); // ERROR, need 4.6 + allInvocationsEqual(b1); // ERROR, need 4.6 +} +; // ERROR: no extraneous semicolons + +layout(location = 0) uniform locBlock { // ERROR, no location uniform block + int a; +}; + +layout(location = 0) buffer locBuffBlock { // ERROR, no location on buffer block + int b; +}; diff --git a/deps/glslang/glslang/Test/460.frag b/deps/glslang/glslang/Test/460.frag new file mode 100644 index 0000000000..23f8eea652 --- /dev/null +++ b/deps/glslang/glslang/Test/460.frag @@ -0,0 +1,32 @@ +#version 460 core + +struct S { + float f; + vec4 v; +}; + +in S s; + +void main() +{ + interpolateAtCentroid(s.v); + bool b1; + b1 = anyInvocation(b1); + b1 = allInvocations(b1); + b1 = allInvocationsEqual(b1); +} + +void attExtBad() +{ + // ERRORs, not enabled + [[dependency_length(1+3)]] for (int i = 0; i < 8; ++i) { } + [[flatten]] if (true) { } else { } +} + +#extension GL_EXT_control_flow_attributes : enable + +void attExt() +{ + [[dependency_length(-3)]] do { } while(true); // ERROR, not positive + [[dependency_length(0)]] do { } while(true); // ERROR, not positive +} diff --git a/deps/glslang/glslang/Test/460.vert b/deps/glslang/glslang/Test/460.vert new file mode 100644 index 0000000000..fd87d8b117 --- /dev/null +++ b/deps/glslang/glslang/Test/460.vert @@ -0,0 +1,15 @@ +#version 460 core + +int i; +; // extraneous semicolon okay +float f;;; + +void main() +{ + bool b1; + b1 = anyInvocation(b1); + b1 = allInvocations(b1); + b1 = allInvocationsEqual(b1); +} +; +; diff --git a/deps/glslang/glslang/Test/Operations.frag b/deps/glslang/glslang/Test/Operations.frag new file mode 100644 index 0000000000..ca06a752e8 --- /dev/null +++ b/deps/glslang/glslang/Test/Operations.frag @@ -0,0 +1,166 @@ +#version 130 + +uniform ivec4 uiv4; +uniform vec4 uv4; +uniform bool ub; +uniform bvec4 ub41, ub42; +uniform float uf; +uniform int ui; + + +uniform uvec4 uuv4; +uniform uint uui; + + +void main() +{ + vec4 v; + float f; + bool b; + bvec4 bv4; + int i; + + uint u; + + + // floating point + v = radians(uv4); + v += degrees(v); + v += (i = ui*ui, sin(v)); + v += cos(v); + v += tan(v); + v += asin(v); + v += acos(v); + + v += atan(v); + v += sinh(v); + v += cosh(v); + v += tanh(v); + v += asinh(v); + v += acosh(v); + v += atanh(v); + + v += pow(v, v); + v += exp(v); + v += log(v); + v += exp2(v); + v += log2(v); + v += sqrt(v); + v += inversesqrt(v); + v += abs(v); + v += sign(v); + v += floor(v); + + + v += trunc(v); + v += round(v); + v += roundEven(v); + + + v += ceil(v); + v += fract(v); + v += mod(v, v); + v += mod(v, v.x); + + + v += modf(v, v); + + + v += min(v, uv4); + v += max(v, uv4); + v += clamp(v, uv4, uv4); + v += mix(v,v,v); + + + v += mix(v,v,bv4); + v += intBitsToFloat(ivec4(i)); + v += uintBitsToFloat(uv4); + v += fma(v,v,v); + v += frexp(v); + v += ldexp(v); + v += unpackUnorm2x16(v); + v += unpackUnorm4x8(v); + v += unpackSnorm4x8(v); + + + v += step(v,v); + v += smoothstep(v,v,v); + v += step(uf,v); + v += smoothstep(uf,uf,v); + v += normalize(v); + v += faceforward(v, v, v); + v += reflect(v, v); + v += refract(v, v, uf); + v += dFdx(v); + v += dFdy(v); + v += fwidth(v); + //noise*(v); + + + // signed integer + i += abs(ui); + i += sign(i); + i += min(i, ui); + i += max(i, ui); + i += clamp(i, ui, ui); + + floatsBitsToInt(v); + packUnorm2x16(v); + packUnorm4x8(v); + packSnorm4x8(v); + + // unsigned integer + u = abs(uui); + u += sign(u); + u += min(u, uui); + u += max(u, uui); + u += clamp(u, uui, uui); + u += floatsBitToInt(v); + u += packUnorm2x16(v); + u += packUnorm4x8(v); + i += uui & i; // ERRORs, no int/uint conversions before 400 + i += uui ^ i; + i += i | uui; + + // bool + + b = isnan(uf); + b = isinf(v.y); + + b = any(lessThan(v, uv4)); + b = (b && any(lessThanEqual(v, uv4))); + b = (b && any(greaterThan(v, uv4))); + b = (b && any(greaterThanEqual(v, uv4))); + b = (b && any(equal(ub41, ub42))); + b = (b && any(notEqual(ub41, ub42))); + b = (b && any(ub41)); + b = (b && all(ub41)); + b = (b && any(not(ub41))); + + i = ((i + ui) * i - ui) / i; + i = i % ui; + if (i == ui || i != ui && i == ui ^^ i != 2) + ++i; + + f = ((uf + uf) * uf - uf) / uf; + + f += length(v); + f += distance(v, v); + f += dot(v, v); + f += dot(f, uf); + f += cross(v.xyz, v.xyz).x; + + if (f == uf || f != uf && f != 2.0) + ++f; + + i &= ui; + i |= 0x42; + i ^= ui; + i %= 17; + i >>= 2; + i <<= ui; + i = ~i; + b = !b; + + gl_FragColor = b ? vec4(i) + vec4(f) + v : v; +} diff --git a/deps/glslang/glslang/Test/aggOps.frag b/deps/glslang/glslang/Test/aggOps.frag new file mode 100644 index 0000000000..a0450dca9c --- /dev/null +++ b/deps/glslang/glslang/Test/aggOps.frag @@ -0,0 +1,51 @@ +#version 130 + +uniform sampler2D sampler; +varying mediump vec2 coord; + +varying vec4 u, w; + +struct s1 { + int i; + float f; +}; + +struct s2 { + int i; + float f; + s1 s1_1; +}; + +uniform s1 foo1; +uniform s2 foo2a; +uniform s2 foo2b; + +void main() +{ + vec4 v; + s1 a[3], b[3]; + a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0)); + b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w)); + + if (foo2a == foo2b) + v = texture2D(sampler, coord); + else + v = texture2D(sampler, 2.0*coord); + + if (u == v) + v *= 3.0; + + if (u != v) + v *= 4.0; + + if (coord == v.yw) + v *= 5.0; + + if (a == b) + v *= 6.0; + + if (a != b) + v *= 7.0; + + gl_FragColor = v; +} diff --git a/deps/glslang/glslang/Test/always-discard.frag b/deps/glslang/glslang/Test/always-discard.frag new file mode 100644 index 0000000000..cea4ceec63 --- /dev/null +++ b/deps/glslang/glslang/Test/always-discard.frag @@ -0,0 +1,36 @@ +#version 110 +varying vec2 tex_coord; + +void main (void) +{ + vec4 white = vec4(1.0); + vec4 black = vec4(0.2); + vec4 color = white; + + // First, cut out our circle + float x = tex_coord.x*2.0 - 1.0; + float y = tex_coord.y*2.0 - 1.0; + + float radius = sqrt(x*x + y*y); + if (radius > 1.0) { + if (radius > 1.1) { + ++color; + } + + gl_FragColor = color; + + if (radius > 1.2) { + ++color; + } + + } + + discard; + + // If we're near an edge, darken us a tiny bit + if (radius >= 0.75) + color -= abs(pow(radius, 16.0)/2.0); + + gl_FragColor = color; + +} diff --git a/deps/glslang/glslang/Test/always-discard2.frag b/deps/glslang/glslang/Test/always-discard2.frag new file mode 100644 index 0000000000..a619369d60 --- /dev/null +++ b/deps/glslang/glslang/Test/always-discard2.frag @@ -0,0 +1,19 @@ +#version 110 +varying vec2 tex_coord; + +void main (void) +{ + vec4 white = vec4(1.0); + vec4 black = vec4(0.2); + vec4 color = white; + + // First, cut out our circle + float x = tex_coord.x*2.0 - 1.0; + float y = tex_coord.y*2.0 - 1.0; + + discard; + + + gl_FragColor = color; + +} diff --git a/deps/glslang/glslang/Test/array.frag b/deps/glslang/glslang/Test/array.frag new file mode 100644 index 0000000000..a7b96a4419 --- /dev/null +++ b/deps/glslang/glslang/Test/array.frag @@ -0,0 +1,113 @@ +#version 130 + +float gu[]; +float g4[4]; +float g5[5]; + +uniform int a; + +float[4] foo(float a[5]) +{ + return float[](a[0], a[1], a[2], a[3]); +} + +void bar(float[5]) {} + +void main() +{ + { + float gu[2]; // okay, new scope + + gu[2] = 4.0; // ERROR, overflow + } + + gu[2] = 4.0; // okay + + gu[3] = 3.0; + gu[a] = 5.0; // ERROR + + g4 = foo(g5); + g5 = g4; // ERROR + gu = g4; // ERROR + + foo(gu); // ERROR + bar(g5); + + if (float[4](1.0, 2.0, 3.0, 4.0) == g4) + gu[0] = 2.0; + + float u[]; + u[2] = 3.0; // okay + float u[5]; + u[5] = 5.0; // ERROR + foo(u); // okay + + gl_FragData[1000] = vec4(1.0); // ERROR + gl_FragData[-1] = vec4(1.0); // ERROR + gl_FragData[3] = vec4(1.0); + + const int ca[] = int[](3, 2); + int sum = ca[0]; + sum += ca[1]; + sum += ca[2]; // ERROR + + const int ca3[3] = int[](3, 2); // ERROR + int ica[] = int[](3, 2); + int ica3[3] = int[](3, 2); // ERROR + ica[3.1] = 3; // ERROR + ica[u[1]] = 4; // ERROR +} + +int[] foo213234(); // ERROR +int foo234234(float[]); // ERROR +int foo234235(vec2[] v); // ERROR + +vec3 guns[]; +float f = guns[7]; + +void foo() +{ + int uns[]; + uns[3] = 40; + uns[1] = 30; + guns[2] = vec3(2.4); + + float unsf[]; + bar(unsf); // ERROR +} + +float[] foo2() // ERROR +{ + float f[]; + return f; + float g[9]; + return g; // ERROR +} + +float gUnusedUnsized[]; + +void foo3() +{ + float resize1[]; + resize1[2] = 4.0; + resize1.length(); // ERROR + float resize1[3]; + resize1.length(); + + float resize2[]; + resize2[5] = 4.0; + float resize2[5]; // should be ERROR, but is not + resize2.length(); + resize2[5] = 4.0; // ERROR +} + +int[] i = int[](); // ERROR, need constructor arguments +float emptyA[]; +float b = vec4(emptyA); // ERROR, array can't be a constructor argument +uniform sampler2D s2d[]; + +void foo4() +{ + s2d[a]; // ERROR, can't variably index unsized array + float local[] = gUnusedUnsized; // ERROR, can initialize with runtime-sized array +} diff --git a/deps/glslang/glslang/Test/array100.frag b/deps/glslang/glslang/Test/array100.frag new file mode 100644 index 0000000000..b77aedf6e5 --- /dev/null +++ b/deps/glslang/glslang/Test/array100.frag @@ -0,0 +1,70 @@ +#version 100 + +float gu[]; // ERROR +float g4[4]; +float g5[5]; + +uniform int a; + +float[4] foo(float[5] a) // ERROR // ERROR +{ + return float[](a[0], a[1], a[2], a[3]); // ERROR +} + +void bar(float[5]) {} + +void main() +{ + { + float gu[2]; // okay, new scope + + gu[2] = 4.0; // ERROR, overflow + } + + g4 = foo(g5); // ERROR + g5 = g4; // ERROR + gu = g4; // ERROR + + foo(gu); // ERROR + bar(g5); + + if (float[4](1.0, 2.0, 3.0, 4.0) == g4) // ERROR + gu[0] = 2.0; + + float u[5]; + u[5] = 5.0; // ERROR + foo(u); // okay + + gl_FragData[1000] = vec4(1.0); // ERROR + gl_FragData[-1] = vec4(1.0); // ERROR + gl_FragData[3] = vec4(1.0); +} + +struct SA { + vec3 v3; + vec2 v2[4]; +}; + +struct SB { + vec4 v4; + SA sa; +}; + +SB bar9() +{ + SB s; + return s; // ERROR +} + +void bar10(SB s) // okay +{ +} + +void bar11() +{ + SB s1, s2; + s1 = s2; // ERROR + bar10(s1); + s2 = bar9(); // ERROR + SB initSb = s1; // ERROR +} diff --git a/deps/glslang/glslang/Test/atomic_uint.frag b/deps/glslang/glslang/Test/atomic_uint.frag new file mode 100644 index 0000000000..9a95a48ada --- /dev/null +++ b/deps/glslang/glslang/Test/atomic_uint.frag @@ -0,0 +1,48 @@ +#version 420 core + +layout(binding = 0) uniform atomic_uint counter; + +uint func(atomic_uint c) +{ + return atomicCounterIncrement(c); +} + +uint func2(out atomic_uint c) // ERROR +{ + return counter; // ERROR, type mismatch + return atomicCounter(counter); +} + +void main() +{ + atomic_uint non_uniform_counter; // ERROR + uint val = atomicCounter(counter); + atomicCounterDecrement(counter); +} + +layout(binding = 1, offset = 3) uniform atomic_uint countArr[4]; +uniform int i; + +void opac() +{ + counter + counter; // ERROR + -counter; // ERROR + int a[3]; + a[counter]; // ERROR + countArr[2]; + countArr[i]; + counter = 4; // ERROR +} + +in atomic_uint acin; // ERROR +atomic_uint acg; // ERROR +uniform atomic_uint; +uniform atomic_uint aNoBind; // ERROR, no binding +layout(binding=0, offset=32) uniform atomic_uint aOffset; +layout(binding=0, offset=4) uniform atomic_uint; +layout(binding=0) uniform atomic_uint bar3; // offset is 4 +layout(binding=0) uniform atomic_uint ac[3]; // offset = 8 +layout(binding=0) uniform atomic_uint ad; // offset = 20 +layout(offset=8) uniform atomic_uint bar4; // ERROR, no binding +layout(binding = 0, offset = 12) uniform atomic_uint overlap; // ERROR, overlapping offsets +layout(binding = 20) uniform atomic_uint bigBind; // ERROR, binding too big diff --git a/deps/glslang/glslang/Test/badChars.frag b/deps/glslang/glslang/Test/badChars.frag new file mode 100644 index 0000000000..3e9700d934 --- /dev/null +++ b/deps/glslang/glslang/Test/badChars.frag @@ -0,0 +1,7 @@ +#ifþ +#endif +#error AÿB +#if +#endif +int aÿ +#define A "ÿ \ No newline at end of file diff --git a/deps/glslang/glslang/Test/badMacroArgs.frag b/deps/glslang/glslang/Test/badMacroArgs.frag new file mode 100644 index 0000000000..7d7de87031 --- /dev/null +++ b/deps/glslang/glslang/Test/badMacroArgs.frag @@ -0,0 +1,4 @@ +#version 400 + +#define m(a) a +m() \ No newline at end of file diff --git a/deps/glslang/glslang/Test/bar.h b/deps/glslang/glslang/Test/bar.h new file mode 100644 index 0000000000..c206a325da --- /dev/null +++ b/deps/glslang/glslang/Test/bar.h @@ -0,0 +1 @@ +float4 i1; diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out new file mode 100644 index 0000000000..e65ee7ba7d --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out @@ -0,0 +1,46 @@ +hlsl.aliasOpaque.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 87 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 62 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 47 "gss" + Name 51 "gtex" + Name 62 "@entryPointOutput" + Decorate 47(gss) DescriptorSet 0 + Decorate 51(gtex) DescriptorSet 0 + Decorate 62(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7: TypeFloat 32 + 8: TypeImage 7(float) 2D sampled format:Unknown + 11: TypeVector 7(float) 4 + 32: TypeSampledImage 8 + 34: TypeVector 7(float) 2 + 35: 7(float) Constant 1045220557 + 36: 7(float) Constant 1050253722 + 37: 34(fvec2) ConstantComposite 35 36 + 43: TypePointer UniformConstant 6 + 47(gss): 43(ptr) Variable UniformConstant + 50: TypePointer UniformConstant 8 + 51(gtex): 50(ptr) Variable UniformConstant + 54: 7(float) Constant 1077936128 + 61: TypePointer Output 11(fvec4) +62(@entryPointOutput): 61(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 70: 6 Load 47(gss) + 72: 8 Load 51(gtex) + 84: 32 SampledImage 72 70 + 85: 11(fvec4) ImageSampleImplicitLod 84 37 + 86: 11(fvec4) VectorTimesScalar 85 54 + Store 62(@entryPointOutput) 86 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out new file mode 100644 index 0000000000..cf3fbabc11 --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out @@ -0,0 +1,65 @@ +hlsl.flattenOpaque.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 185 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 120 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 38 "tex" + Name 82 "s.s2D" + Name 97 "s2.s2D" + Name 100 "s2.tex" + Name 120 "@entryPointOutput" + Decorate 38(tex) DescriptorSet 0 + Decorate 82(s.s2D) DescriptorSet 0 + Decorate 97(s2.s2D) DescriptorSet 0 + Decorate 100(s2.tex) DescriptorSet 0 + Decorate 120(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 15: TypeVector 9(float) 2 + 22: TypeImage 9(float) 2D sampled format:Unknown + 37: TypePointer UniformConstant 22 + 38(tex): 37(ptr) Variable UniformConstant + 45: TypeSampledImage 22 + 47: 9(float) Constant 1045220557 + 48: 9(float) Constant 1050253722 + 49: 15(fvec2) ConstantComposite 47 48 + 81: TypePointer UniformConstant 6 + 82(s.s2D): 81(ptr) Variable UniformConstant + 97(s2.s2D): 81(ptr) Variable UniformConstant + 100(s2.tex): 37(ptr) Variable UniformConstant + 119: TypePointer Output 10(fvec4) +120(@entryPointOutput): 119(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 134: 6 Load 82(s.s2D) + 158: 22 Load 38(tex) + 161: 45 SampledImage 158 134 + 162: 10(fvec4) ImageSampleImplicitLod 161 49 + 138: 6 Load 82(s.s2D) + 164: 22 Load 38(tex) + 167: 45 SampledImage 164 138 + 169: 10(fvec4) ImageSampleImplicitLod 167 49 + 142: 10(fvec4) FAdd 162 169 + 143: 6 Load 97(s2.s2D) + 145: 22 Load 100(s2.tex) + 175: 45 SampledImage 145 143 + 176: 10(fvec4) ImageSampleImplicitLod 175 49 + 149: 10(fvec4) FAdd 142 176 + 150: 6 Load 97(s2.s2D) + 152: 22 Load 100(s2.tex) + 182: 45 SampledImage 152 150 + 184: 10(fvec4) ImageSampleImplicitLod 182 49 + 156: 10(fvec4) FAdd 149 184 + Store 120(@entryPointOutput) 156 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out new file mode 100644 index 0000000000..bec5aa2254 --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out @@ -0,0 +1,52 @@ +hlsl.flattenOpaqueInit.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 134 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 80 + Source HLSL 500 + Name 4 "main" + Name 43 "g_tInputTexture_sampler" + Name 47 "g_tInputTexture" + Name 80 "@entryPointOutput" + Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 + Decorate 47(g_tInputTexture) DescriptorSet 0 + Decorate 80(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7: TypeFloat 32 + 8: TypeImage 7(float) 2D sampled format:Unknown + 11: TypeVector 7(float) 4 + 31: TypeSampledImage 8 + 33: TypeVector 7(float) 2 + 34: 7(float) Constant 1050253722 + 35: 7(float) Constant 1053609165 + 36: 33(fvec2) ConstantComposite 34 35 + 37: 7(float) Constant 0 + 42: TypePointer UniformConstant 6 +43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant + 46: TypePointer UniformConstant 8 +47(g_tInputTexture): 46(ptr) Variable UniformConstant + 79: TypePointer Output 11(fvec4) +80(@entryPointOutput): 79(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 90: 6 Load 43(g_tInputTexture_sampler) + 91: 8 Load 47(g_tInputTexture) + 111: 31 SampledImage 91 90 + 112: 11(fvec4) ImageSampleExplicitLod 111 36 Lod 37 + 115: 6 Load 43(g_tInputTexture_sampler) + 117: 8 Load 47(g_tInputTexture) + 125: 31 SampledImage 117 115 + 126: 11(fvec4) ImageSampleExplicitLod 125 36 Lod 37 + 99: 11(fvec4) FAdd 112 126 + 132: 31 SampledImage 91 90 + 133: 11(fvec4) ImageSampleExplicitLod 132 36 Lod 37 + 104: 11(fvec4) FAdd 99 133 + Store 80(@entryPointOutput) 104 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out new file mode 100644 index 0000000000..14d0cd3f4a --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out @@ -0,0 +1,43 @@ +hlsl.flattenOpaqueInitMix.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 97 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 57 + Source HLSL 500 + Name 4 "main" + Name 44 "g_tInputTexture_sampler" + Name 47 "g_tInputTexture" + Name 57 "@entryPointOutput" + Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 + Decorate 47(g_tInputTexture) DescriptorSet 0 + Decorate 57(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7: TypeFloat 32 + 8: TypeImage 7(float) 2D sampled format:Unknown + 11: TypeVector 7(float) 4 + 28: TypeSampledImage 8 + 36: TypeVector 7(float) 2 + 38: 7(float) Constant 0 + 43: TypePointer UniformConstant 6 +44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant + 46: TypePointer UniformConstant 8 +47(g_tInputTexture): 46(ptr) Variable UniformConstant + 49: 7(float) Constant 1056964608 + 56: TypePointer Output 11(fvec4) +57(@entryPointOutput): 56(ptr) Variable Output + 96: 36(fvec2) ConstantComposite 49 49 + 4(main): 2 Function None 3 + 5: Label + 63: 6 Load 44(g_tInputTexture_sampler) + 64: 8 Load 47(g_tInputTexture) + 73: 28 SampledImage 64 63 + 79: 11(fvec4) ImageSampleExplicitLod 73 96 Lod 38 + Store 57(@entryPointOutput) 79 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out new file mode 100644 index 0000000000..143c96c5ea --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out @@ -0,0 +1,47 @@ +hlsl.flattenSubset.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 66 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 47 50 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 21 "samp" + Name 33 "tex" + Name 47 "vpos" + Name 50 "@entryPointOutput" + Decorate 21(samp) DescriptorSet 0 + Decorate 33(tex) DescriptorSet 0 + Decorate 47(vpos) Location 0 + Decorate 50(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 13: TypeSampler + 20: TypePointer UniformConstant 13 + 21(samp): 20(ptr) Variable UniformConstant + 31: TypeImage 6(float) 2D sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(tex): 32(ptr) Variable UniformConstant + 37: TypeSampledImage 31 + 39: TypeVector 6(float) 2 + 40: 6(float) Constant 1056964608 + 41: 39(fvec2) ConstantComposite 40 40 + 46: TypePointer Input 7(fvec4) + 47(vpos): 46(ptr) Variable Input + 49: TypePointer Output 7(fvec4) +50(@entryPointOutput): 49(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 57: 13 Load 21(samp) + 61: 31 Load 33(tex) + 64: 37 SampledImage 61 57 + 65: 7(fvec4) ImageSampleImplicitLod 64 41 + Store 50(@entryPointOutput) 65 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out new file mode 100644 index 0000000000..0d7ab5603f --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out @@ -0,0 +1,31 @@ +hlsl.flattenSubset2.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 53 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 49 52 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 49 "vpos" + Name 52 "@entryPointOutput" + Decorate 49(vpos) Location 0 + Decorate 52(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 43: 6(float) Constant 0 + 44: 7(fvec4) ConstantComposite 43 43 43 43 + 48: TypePointer Input 7(fvec4) + 49(vpos): 48(ptr) Variable Input + 51: TypePointer Output 7(fvec4) +52(@entryPointOutput): 51(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Store 52(@entryPointOutput) 44 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out new file mode 100644 index 0000000000..27482b34d8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out @@ -0,0 +1,81 @@ +hlsl.partialFlattenLocal.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 158 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 83 86 + Source HLSL 500 + Name 4 "main" + Name 83 "pos" + Name 86 "@entryPointOutput" + Decorate 83(pos) Location 0 + Decorate 86(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 14: TypeVector 6(float) 3 + 15: TypeInt 32 0 + 16: 15(int) Constant 3 + 17: TypeArray 14(fvec3) 16 + 18: TypeVector 6(float) 2 + 19: 15(int) Constant 2 + 20: TypeArray 18(fvec2) 19 + 21: TypeInt 32 1 + 25: 21(int) Constant 0 + 31: 21(int) Constant 1 + 32: 6(float) Constant 0 + 33: 14(fvec3) ConstantComposite 32 32 32 + 34: TypePointer Function 14(fvec3) + 37: 6(float) Constant 1065353216 + 38: 18(fvec2) ConstantComposite 32 37 + 39: TypePointer Function 18(fvec2) + 54: TypeBool + 82: TypePointer Input 7(fvec4) + 83(pos): 82(ptr) Variable Input + 85: TypePointer Output 7(fvec4) +86(@entryPointOutput): 85(ptr) Variable Output + 130: TypePointer Function 17 + 132: TypePointer Function 20 + 4(main): 2 Function None 3 + 5: Label + 133: 132(ptr) Variable Function + 131: 130(ptr) Variable Function + 84: 7(fvec4) Load 83(pos) + 136: 34(ptr) AccessChain 131 25 + Store 136 33 + 137: 39(ptr) AccessChain 133 25 + Store 137 38 + Branch 100 + 100: Label + 157: 21(int) Phi 25 5 119 106 + 105: 54(bool) SLessThan 157 31 + LoopMerge 101 106 None + BranchConditional 105 106 101 + 106: Label + 138: 39(ptr) AccessChain 133 157 + 110: 18(fvec2) Load 138 + 139: 34(ptr) AccessChain 131 157 + 112: 14(fvec3) Load 139 + 113: 18(fvec2) VectorShuffle 112 112 0 1 + 114: 18(fvec2) FAdd 113 110 + 140: 34(ptr) AccessChain 131 157 + 116: 14(fvec3) Load 140 + 117: 14(fvec3) VectorShuffle 116 114 3 4 2 + Store 140 117 + 119: 21(int) IAdd 157 31 + Branch 100 + 101: Label + 142: 17 Load 131 + 156: 14(fvec3) CompositeExtract 142 0 + 124: 6(float) CompositeExtract 156 0 + 125: 6(float) CompositeExtract 156 1 + 126: 6(float) CompositeExtract 156 2 + 127: 7(fvec4) CompositeConstruct 124 125 126 32 + 128: 7(fvec4) FAdd 84 127 + Store 86(@entryPointOutput) 128 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out new file mode 100644 index 0000000000..e54fb7efa3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out @@ -0,0 +1,29 @@ +hlsl.partialFlattenMixed.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 36 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 32 35 + Source HLSL 500 + Name 4 "main" + Name 32 "pos" + Name 35 "@entryPointOutput" + Decorate 32(pos) Location 0 + Decorate 35(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 31: TypePointer Input 7(fvec4) + 32(pos): 31(ptr) Variable Input + 34: TypePointer Output 7(fvec4) +35(@entryPointOutput): 34(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 33: 7(fvec4) Load 32(pos) + Store 35(@entryPointOutput) 33 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/100.frag.out b/deps/glslang/glslang/Test/baseResults/100.frag.out new file mode 100644 index 0000000000..5e702e87ca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/100.frag.out @@ -0,0 +1,576 @@ +100.frag +ERROR: 0:3: '{ } style initializers' : not supported with this profile: es +ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions +ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions +ERROR: 0:4: '#version' : must occur first in shader +ERROR: 0:7: 'attribute' : not supported in this stage: fragment +ERROR: 0:7: 'float' : type requires declaration of default precision qualifier +ERROR: 0:9: '=' : cannot convert from ' const int' to ' global mediump float' +ERROR: 0:11: 'uniform block' : not supported for this version or the enabled extensions +ERROR: 0:19: 'foo' : no matching overloaded function found +ERROR: 0:20: 'bit shift left' : not supported for this version or the enabled extensions +ERROR: 0:21: 'bit shift right' : not supported for this version or the enabled extensions +ERROR: 0:22: 'array comparison' : not supported for this version or the enabled extensions +ERROR: 0:24: 'bitwise and' : not supported for this version or the enabled extensions +ERROR: 0:25: '%' : not supported for this version or the enabled extensions +ERROR: 0:26: 'bitwise inclusive or' : not supported for this version or the enabled extensions +ERROR: 0:27: 'bit-shift right assign' : not supported for this version or the enabled extensions +ERROR: 0:28: 'bit-shift left assign' : not supported for this version or the enabled extensions +ERROR: 0:29: '%=' : not supported for this version or the enabled extensions +ERROR: 0:36: 'array assignment' : not supported for this version or the enabled extensions +ERROR: 0:37: 'array comparison' : not supported for this version or the enabled extensions +ERROR: 0:38: 'array comparison' : not supported for this version or the enabled extensions +ERROR: 0:40: 'switch' : Reserved word. +ERROR: 0:40: 'switch statements' : not supported for this version or the enabled extensions +ERROR: 0:45: '' : array size required +ERROR: 0:47: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:49: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:50: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:56: 'invariant' : not allowed in nested scope +ERROR: 0:56: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:57: 'invariant' : not allowed in nested scope +ERROR: 0:57: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:59: 'invariant' : not allowed in nested scope +ERROR: 0:59: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:63: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:64: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:66: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: glob2D +ERROR: 0:69: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: v2D +ERROR: 0:71: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: vary2D +ERROR: 0:75: 'in for stage inputs' : not supported for this version or the enabled extensions +ERROR: 0:77: 'invariant' : can only apply to an output, or to an input in a non-vertex stage + +ERROR: 0:75: 'g' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:76: 'h' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:77: 'i' : cannot use invariant qualifier on structure members +ERROR: 0:80: 'sampler3D' : Reserved word. +ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:91: 'dFdx' : required extension not requested: GL_OES_standard_derivatives +ERROR: 0:92: 'dFdy' : required extension not requested: GL_OES_standard_derivatives +ERROR: 0:93: 'fwidth' : required extension not requested: GL_OES_standard_derivatives +ERROR: 0:103: 'gl_FragDepth' : undeclared identifier +ERROR: 0:104: 'gl_FragDepthEXT' : required extension not requested: GL_EXT_frag_depth +ERROR: 0:111: 'gl_FragDepth' : undeclared identifier +ERROR: 0:134: 'texture3D' : no matching overloaded function found +ERROR: 0:135: 'texture2DProjLod' : no matching overloaded function found +ERROR: 0:137: 'bitwise not' : not supported for this version or the enabled extensions +ERROR: 0:138: 'bitwise inclusive or' : not supported for this version or the enabled extensions +ERROR: 0:139: 'bitwise and' : not supported for this version or the enabled extensions +ERROR: 0:145: 'a' : redefinition +ERROR: 0:147: 'texture2DProjGradEXT' : required extension not requested: GL_EXT_shader_texture_lod +ERROR: 0:151: 'floating-point suffix' : not supported for this version or the enabled extensions +ERROR: 0:152: 'floating-point suffix' : not supported for this version or the enabled extensions +ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2 +ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions +ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions +ERROR: 0:179: 'fragment-shader struct input' : not supported for this version or the enabled extensions +ERROR: 0:183: 'v' : illegal use of type 'void' +ERROR: 0:184: 'void' : cannot be an argument type except for '(void)' +ERROR: 0:185: 'v' : illegal use of type 'void' +ERROR: 0:185: 'void' : cannot be an argument type except for '(void)' +ERROR: 0:190: '.' : cannot apply to an array: y +ERROR: 0:191: '.' : cannot apply to an array: zy +ERROR: 0:192: '.' : cannot apply to an array: nothing +ERROR: 0:193: '.length' : not supported for this version or the enabled extensions +ERROR: 0:194: '.' : cannot apply to an array: method +ERROR: 0:194: 'a' : can't use function syntax on variable +ERROR: 0:214: 'non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)' : not supported for this version or the enabled extensions +ERROR: 0:3000: '#error' : line of this error should be 3000 +ERROR: 0:3002: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON +ERROR: 77 compilation errors. No code generated. + + +Shader version: 100 +Requested GL_EXT_frag_depth +Requested GL_EXT_shader_non_constant_global_initializers +Requested GL_EXT_shader_texture_lod +Requested GL_OES_EGL_image_external +Requested GL_OES_standard_derivatives +Requested GL_OES_texture_3D +ERROR: node is still EOpNull! +0:3 Sequence +0:3 move second child to first child ( temp 3-element array of mediump int) +0:3 'a' ( global 3-element array of mediump int) +0:3 Constant: +0:3 2 (const int) +0:3 3 (const int) +0:3 4 (const int) +0:17 Function Definition: main( ( global void) +0:17 Function Parameters: +0:19 Sequence +0:19 Constant: +0:19 0.000000 +0:20 Sequence +0:20 move second child to first child ( temp mediump int) +0:20 's' ( temp mediump int) +0:20 Constant: +0:20 16 (const int) +0:21 move second child to first child ( temp mediump int) +0:21 's' ( temp mediump int) +0:21 Constant: +0:21 4 (const int) +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Compare Equal ( temp bool) +0:22 'a' ( global 3-element array of mediump int) +0:22 'a' ( global 3-element array of mediump int) +0:22 true case is null +0:24 move second child to first child ( temp mediump int) +0:24 'b' ( temp mediump int) +0:24 bitwise and ( temp mediump int) +0:24 'c' ( temp mediump int) +0:24 Constant: +0:24 4 (const int) +0:25 move second child to first child ( temp mediump int) +0:25 'b' ( temp mediump int) +0:25 mod ( temp mediump int) +0:25 'c' ( temp mediump int) +0:25 Constant: +0:25 4 (const int) +0:26 move second child to first child ( temp mediump int) +0:26 'b' ( temp mediump int) +0:26 inclusive-or ( temp mediump int) +0:26 'c' ( temp mediump int) +0:26 Constant: +0:26 4 (const int) +0:27 right shift second child into first child ( temp mediump int) +0:27 'b' ( temp mediump int) +0:27 Constant: +0:27 2 (const int) +0:28 left shift second child into first child ( temp mediump int) +0:28 'b' ( temp mediump int) +0:28 Constant: +0:28 2 (const int) +0:29 mod second child into first child ( temp mediump int) +0:29 'b' ( temp mediump int) +0:29 Constant: +0:29 3 (const int) +0:36 move second child to first child ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:36 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:36 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:37 Test condition and select ( temp void) +0:37 Condition +0:37 Compare Equal ( temp bool) +0:37 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:37 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:37 true case is null +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Not Equal ( temp bool) +0:38 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:38 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:38 true case is null +0:40 'b' ( temp mediump int) +0:54 Function Definition: foo10( ( global void) +0:54 Function Parameters: +0:67 Function Definition: f11(s21; ( global void) +0:67 Function Parameters: +0:67 'p2d' ( in lowp sampler2D) +0:87 Function Definition: foo234( ( global void) +0:87 Function Parameters: +0:89 Sequence +0:89 texture ( global highp 4-component vector of float) +0:89 's3D2' ( uniform highp sampler3D) +0:89 Constant: +0:89 0.200000 +0:89 0.200000 +0:89 0.200000 +0:89 Constant: +0:89 0.200000 +0:90 textureProj ( global highp 4-component vector of float) +0:90 's3D2' ( uniform highp sampler3D) +0:90 direct index ( smooth temp mediump 4-component vector of float) +0:90 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:90 Constant: +0:90 1 (const int) +0:90 Constant: +0:90 0.400000 +0:91 dPdx ( global mediump 4-component vector of float) +0:91 direct index ( smooth temp mediump 4-component vector of float) +0:91 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:91 Constant: +0:91 0 (const int) +0:92 Constant: +0:92 0.000000 +0:93 fwidth ( global mediump float) +0:93 'f13' ( invariant global mediump float) +0:98 Function Definition: foo236( ( global void) +0:98 Function Parameters: +0:100 Sequence +0:100 dPdx ( global mediump 4-component vector of float) +0:100 direct index ( smooth temp mediump 4-component vector of float) +0:100 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:100 Constant: +0:100 0 (const int) +0:101 Constant: +0:101 0.000000 +0:102 fwidth ( global mediump float) +0:102 'f13' ( invariant global mediump float) +0:103 move second child to first child ( temp mediump float) +0:103 'gl_FragDepth' ( temp mediump float) +0:103 'f13' ( invariant global mediump float) +0:104 move second child to first child ( temp highp float) +0:104 'gl_FragDepthEXT' ( gl_FragDepth highp float FragDepth) +0:104 'f13' ( invariant global mediump float) +0:109 Function Definition: foo239( ( global void) +0:109 Function Parameters: +0:111 Sequence +0:111 move second child to first child ( temp mediump float) +0:111 'gl_FragDepth' ( temp mediump float) +0:111 'f13' ( invariant global mediump float) +0:112 move second child to first child ( temp highp float) +0:112 'gl_FragDepthEXT' ( gl_FragDepth highp float FragDepth) +0:112 'f13' ( invariant global mediump float) +0:119 Function Definition: foo245( ( global void) +0:119 Function Parameters: +0:121 Sequence +0:121 texture ( global lowp 4-component vector of float) +0:121 'sExt' ( uniform lowp samplerExternalOES) +0:121 Constant: +0:121 0.200000 +0:121 0.200000 +0:122 textureProj ( global lowp 4-component vector of float) +0:122 'sExt' ( uniform lowp samplerExternalOES) +0:122 Construct vec3 ( temp lowp 3-component vector of float) +0:122 'f13' ( invariant global mediump float) +0:123 textureProj ( global lowp 4-component vector of float, operation at mediump) +0:123 'sExt' ( uniform lowp samplerExternalOES) +0:123 direct index ( smooth temp mediump 4-component vector of float) +0:123 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:123 Constant: +0:123 2 (const int) +0:130 Function Definition: foo246( ( global void) +0:130 Function Parameters: +0:132 Sequence +0:132 texture ( global mediump 4-component vector of float) +0:132 'mediumExt' ( uniform mediump samplerExternalOES) +0:132 Constant: +0:132 0.200000 +0:132 0.200000 +0:133 textureProj ( global highp 4-component vector of float) +0:133 'highExt' ( uniform highp samplerExternalOES) +0:133 direct index ( smooth temp mediump 4-component vector of float) +0:133 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:133 Constant: +0:133 2 (const int) +0:134 Constant: +0:134 0.000000 +0:135 Constant: +0:135 0.000000 +0:137 Bitwise not ( temp mediump int) +0:137 'a' ( temp mediump int) +0:138 inclusive-or ( temp mediump int) +0:138 'a' ( temp mediump int) +0:138 'a' ( temp mediump int) +0:139 bitwise and ( temp mediump int) +0:139 'a' ( temp mediump int) +0:139 'a' ( temp mediump int) +0:145 Function Definition: foo203940(i1;f1;f1; ( global mediump int) +0:145 Function Parameters: +0:145 'a' ( in mediump int) +0:145 'b' ( in mediump float) +0:147 Sequence +0:147 textureProjGrad ( global lowp 4-component vector of float, operation at mediump) +0:147 's2Dg' ( uniform lowp sampler2D) +0:147 Construct vec3 ( temp mediump 3-component vector of float) +0:147 'f13' ( invariant global mediump float) +0:147 'uv2' ( invariant uniform mediump 2-component vector of float) +0:147 'uv2' ( invariant uniform mediump 2-component vector of float) +0:148 Branch: Return with expression +0:148 'a' ( in mediump int) +0:151 Sequence +0:151 move second child to first child ( temp mediump float) +0:151 'f123' ( global mediump float) +0:151 Constant: +0:151 4.000000 +0:152 Sequence +0:152 move second child to first child ( temp mediump float) +0:152 'f124' ( global mediump float) +0:152 Constant: +0:152 50000000000.000000 +0:158 Function Definition: foo323433( ( global void) +0:158 Function Parameters: +0:160 Sequence +0:160 textureLod ( global lowp 4-component vector of float, operation at mediump) +0:160 's2Dg' ( uniform lowp sampler2D) +0:160 'uv2' ( invariant uniform mediump 2-component vector of float) +0:160 'f13' ( invariant global mediump float) +0:161 textureProjGrad ( global lowp 4-component vector of float, operation at mediump) +0:161 's2Dg' ( uniform lowp sampler2D) +0:161 Construct vec3 ( temp mediump 3-component vector of float) +0:161 'f13' ( invariant global mediump float) +0:161 'uv2' ( invariant uniform mediump 2-component vector of float) +0:161 'uv2' ( invariant uniform mediump 2-component vector of float) +0:162 textureGrad ( global lowp 4-component vector of float, operation at mediump) +0:162 's2Dg' ( uniform lowp sampler2D) +0:162 'uv2' ( invariant uniform mediump 2-component vector of float) +0:162 'uv2' ( invariant uniform mediump 2-component vector of float) +0:162 'uv2' ( invariant uniform mediump 2-component vector of float) +0:163 textureGrad ( global lowp 4-component vector of float) +0:163 'sCube' ( uniform lowp samplerCube) +0:163 Construct vec3 ( temp lowp 3-component vector of float) +0:163 'f13' ( invariant global mediump float) +0:163 Construct vec3 ( temp lowp 3-component vector of float) +0:163 'f13' ( invariant global mediump float) +0:163 Construct vec3 ( temp lowp 3-component vector of float) +0:163 'f13' ( invariant global mediump float) +0:167 Function Definition: fgfg(f1;i1; ( global mediump int) +0:167 Function Parameters: +0:167 'f' ( in mediump float) +0:167 'i' ( in highp int) +0:167 Sequence +0:167 Branch: Return with expression +0:167 Constant: +0:167 2 (const int) +0:173 Function Definition: gggf(f1; ( global mediump int) +0:173 Function Parameters: +0:173 'f' ( in mediump float) +0:173 Sequence +0:173 Branch: Return with expression +0:173 Constant: +0:173 2 (const int) +0:175 Function Definition: agggf(f1; ( global mediump int) +0:175 Function Parameters: +0:175 'f' ( in mediump float) +0:175 Sequence +0:175 Branch: Return with expression +0:175 Constant: +0:175 2 (const int) +0:187 Function Definition: badswizzle( ( global void) +0:187 Function Parameters: +0:? Sequence +0:190 'a' ( temp 5-element array of mediump 3-component vector of float) +0:191 'a' ( temp 5-element array of mediump 3-component vector of float) +0:192 'a' ( temp 5-element array of mediump 3-component vector of float) +0:193 Constant: +0:193 5 (const int) +0:194 Constant: +0:194 0.000000 +0:199 Function Definition: fooinittest( ( global mediump float) +0:199 Function Parameters: +0:201 Sequence +0:201 Branch: Return with expression +0:201 Function Call: fooinit( ( global mediump float) +0:209 Function Definition: fooinit( ( global mediump float) +0:209 Function Parameters: +0:211 Sequence +0:211 Branch: Return with expression +0:211 Constant: +0:211 12.000000 +0:214 Sequence +0:214 move second child to first child ( temp mediump int) +0:214 'init1' ( global mediump int) +0:214 Test condition and select ( temp mediump int) +0:214 Condition +0:214 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:214 true case +0:214 Constant: +0:214 1 (const int) +0:214 false case +0:214 Constant: +0:214 2 (const int) +0:220 Sequence +0:220 move second child to first child ( temp mediump int) +0:220 'init2' ( global mediump int) +0:220 Test condition and select ( temp mediump int) +0:220 Condition +0:220 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:220 true case +0:220 Constant: +0:220 1 (const int) +0:220 false case +0:220 Constant: +0:220 2 (const int) +0:? Linker Objects +0:? 'a' ( global 3-element array of mediump int) +0:? 'uint' ( global mediump int) +0:? 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:? 'f' ( invariant global mediump float) +0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int x}) +0:? 'fa' ( global unsized 1-element array of mediump float) +0:? 'f13' ( invariant global mediump float) +0:? 'fi' ( invariant temp mediump float) +0:? 'av' ( invariant smooth in mediump 4-component vector of float) +0:? 'uv2' ( invariant uniform mediump 2-component vector of float) +0:? 'uv3' ( invariant uniform mediump 3-component vector of float) +0:? 'glob2D' ( global lowp sampler2D) +0:? 'vary2D' ( smooth in lowp sampler2D) +0:? 's3D' ( uniform mediump sampler3D) +0:? 's3D2' ( uniform highp sampler3D) +0:? 'sExt' ( uniform lowp samplerExternalOES) +0:? 'mediumExt' ( uniform mediump samplerExternalOES) +0:? 'highExt' ( uniform highp samplerExternalOES) +0:? 's2Dg' ( uniform lowp sampler2D) +0:? 'f123' ( global mediump float) +0:? 'f124' ( global mediump float) +0:? 'sCube' ( uniform lowp samplerCube) +0:? 's' ( smooth in structure{ global mediump float f}) +0:? 'fi1' ( const mediump float) +0:? 3.000000 +0:? 'fi2' ( const mediump float) +0:? 4.000000 +0:? 'fi3' ( const mediump float) +0:? 5.000000 +0:? 'init1' ( global mediump int) +0:? 'init2' ( global mediump int) + + +Linked fragment stage: + + +Shader version: 100 +Requested GL_EXT_frag_depth +Requested GL_EXT_shader_non_constant_global_initializers +Requested GL_EXT_shader_texture_lod +Requested GL_OES_EGL_image_external +Requested GL_OES_standard_derivatives +Requested GL_OES_texture_3D +ERROR: node is still EOpNull! +0:3 Sequence +0:3 move second child to first child ( temp 3-element array of mediump int) +0:3 'a' ( global 3-element array of mediump int) +0:3 Constant: +0:3 2 (const int) +0:3 3 (const int) +0:3 4 (const int) +0:17 Function Definition: main( ( global void) +0:17 Function Parameters: +0:19 Sequence +0:19 Constant: +0:19 0.000000 +0:20 Sequence +0:20 move second child to first child ( temp mediump int) +0:20 's' ( temp mediump int) +0:20 Constant: +0:20 16 (const int) +0:21 move second child to first child ( temp mediump int) +0:21 's' ( temp mediump int) +0:21 Constant: +0:21 4 (const int) +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Compare Equal ( temp bool) +0:22 'a' ( global 3-element array of mediump int) +0:22 'a' ( global 3-element array of mediump int) +0:22 true case is null +0:24 move second child to first child ( temp mediump int) +0:24 'b' ( temp mediump int) +0:24 bitwise and ( temp mediump int) +0:24 'c' ( temp mediump int) +0:24 Constant: +0:24 4 (const int) +0:25 move second child to first child ( temp mediump int) +0:25 'b' ( temp mediump int) +0:25 mod ( temp mediump int) +0:25 'c' ( temp mediump int) +0:25 Constant: +0:25 4 (const int) +0:26 move second child to first child ( temp mediump int) +0:26 'b' ( temp mediump int) +0:26 inclusive-or ( temp mediump int) +0:26 'c' ( temp mediump int) +0:26 Constant: +0:26 4 (const int) +0:27 right shift second child into first child ( temp mediump int) +0:27 'b' ( temp mediump int) +0:27 Constant: +0:27 2 (const int) +0:28 left shift second child into first child ( temp mediump int) +0:28 'b' ( temp mediump int) +0:28 Constant: +0:28 2 (const int) +0:29 mod second child into first child ( temp mediump int) +0:29 'b' ( temp mediump int) +0:29 Constant: +0:29 3 (const int) +0:36 move second child to first child ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:36 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:36 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:37 Test condition and select ( temp void) +0:37 Condition +0:37 Compare Equal ( temp bool) +0:37 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:37 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:37 true case is null +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Not Equal ( temp bool) +0:38 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:38 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) +0:38 true case is null +0:40 'b' ( temp mediump int) +0:151 Sequence +0:151 move second child to first child ( temp mediump float) +0:151 'f123' ( global mediump float) +0:151 Constant: +0:151 4.000000 +0:152 Sequence +0:152 move second child to first child ( temp mediump float) +0:152 'f124' ( global mediump float) +0:152 Constant: +0:152 50000000000.000000 +0:214 Sequence +0:214 move second child to first child ( temp mediump int) +0:214 'init1' ( global mediump int) +0:214 Test condition and select ( temp mediump int) +0:214 Condition +0:214 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:214 true case +0:214 Constant: +0:214 1 (const int) +0:214 false case +0:214 Constant: +0:214 2 (const int) +0:220 Sequence +0:220 move second child to first child ( temp mediump int) +0:220 'init2' ( global mediump int) +0:220 Test condition and select ( temp mediump int) +0:220 Condition +0:220 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:220 true case +0:220 Constant: +0:220 1 (const int) +0:220 false case +0:220 Constant: +0:220 2 (const int) +0:? Linker Objects +0:? 'a' ( global 3-element array of mediump int) +0:? 'uint' ( global mediump int) +0:? 'v' ( smooth in 3-element array of mediump 4-component vector of float) +0:? 'f' ( invariant global mediump float) +0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int x}) +0:? 'fa' ( global 1-element array of mediump float) +0:? 'f13' ( invariant global mediump float) +0:? 'fi' ( invariant temp mediump float) +0:? 'av' ( invariant smooth in mediump 4-component vector of float) +0:? 'uv2' ( invariant uniform mediump 2-component vector of float) +0:? 'uv3' ( invariant uniform mediump 3-component vector of float) +0:? 'glob2D' ( global lowp sampler2D) +0:? 'vary2D' ( smooth in lowp sampler2D) +0:? 's3D' ( uniform mediump sampler3D) +0:? 's3D2' ( uniform highp sampler3D) +0:? 'sExt' ( uniform lowp samplerExternalOES) +0:? 'mediumExt' ( uniform mediump samplerExternalOES) +0:? 'highExt' ( uniform highp samplerExternalOES) +0:? 's2Dg' ( uniform lowp sampler2D) +0:? 'f123' ( global mediump float) +0:? 'f124' ( global mediump float) +0:? 'sCube' ( uniform lowp samplerCube) +0:? 's' ( smooth in structure{ global mediump float f}) +0:? 'fi1' ( const mediump float) +0:? 3.000000 +0:? 'fi2' ( const mediump float) +0:? 4.000000 +0:? 'fi3' ( const mediump float) +0:? 5.000000 +0:? 'init1' ( global mediump int) +0:? 'init2' ( global mediump int) + diff --git a/deps/glslang/glslang/Test/baseResults/100Limits.vert.out b/deps/glslang/glslang/Test/baseResults/100Limits.vert.out new file mode 100644 index 0000000000..ab0ff1ee73 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/100Limits.vert.out @@ -0,0 +1,889 @@ +100Limits.vert +Shader version: 100 +0:? Sequence +0:15 Function Definition: foo(f1; ( global void) +0:15 Function Parameters: +0:15 'a' ( inout highp float) +0:17 Function Definition: bar( ( global highp int) +0:17 Function Parameters: +0:19 Sequence +0:19 Branch: Return with expression +0:19 Constant: +0:19 1 (const int) +0:22 Function Definition: main( ( global void) +0:22 Function Parameters: +0:24 Sequence +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Less Than ( temp bool) +0:24 'ga' ( global highp int) +0:24 'gb' ( global highp int) +0:24 No loop body +0:26 Loop with condition not tested first +0:26 Loop Condition +0:26 Constant: +0:26 false (const bool) +0:26 No loop body +0:28 Sequence +0:28 Loop with condition tested first +0:28 No loop condition +0:28 No loop body +0:29 Sequence +0:29 Loop with condition tested first +0:29 Loop Condition +0:29 Compare Equal ( temp bool) +0:29 'ga' ( global highp int) +0:29 'gb' ( global highp int) +0:29 No loop body +0:30 Sequence +0:30 Loop with condition tested first +0:30 No loop condition +0:30 No loop body +0:30 Loop Terminal Expression +0:30 Post-Increment ( temp highp float) +0:30 'f' ( global highp float) +0:31 Sequence +0:31 move second child to first child ( temp highp int) +0:31 'ga' ( global highp int) +0:31 Constant: +0:31 0 (const int) +0:31 Loop with condition tested first +0:31 No loop condition +0:31 No loop body +0:32 Sequence +0:32 Sequence +0:32 move second child to first child ( temp bool) +0:32 'a' ( temp bool) +0:32 Constant: +0:32 false (const bool) +0:32 Loop with condition tested first +0:32 No loop condition +0:32 No loop body +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp highp float) +0:33 'a' ( temp highp float) +0:33 Constant: +0:33 0.000000 +0:33 Loop with condition tested first +0:33 Loop Condition +0:33 Compare Equal ( temp bool) +0:33 'a' ( temp highp float) +0:33 sine ( global highp float) +0:33 'f' ( global highp float) +0:33 No loop body +0:34 Sequence +0:34 Sequence +0:34 move second child to first child ( temp highp int) +0:34 'a' ( temp highp int) +0:34 Constant: +0:34 0 (const int) +0:34 Loop with condition tested first +0:34 Loop Condition +0:34 Compare Less Than ( temp bool) +0:34 'a' ( temp highp int) +0:34 Constant: +0:34 10 (const int) +0:34 No loop body +0:34 Loop Terminal Expression +0:34 multiply second child into first child ( temp highp int) +0:34 'a' ( temp highp int) +0:34 Constant: +0:34 2 (const int) +0:35 Sequence +0:35 Sequence +0:35 move second child to first child ( temp highp int) +0:35 'a' ( temp highp int) +0:35 Constant: +0:35 0 (const int) +0:35 Loop with condition tested first +0:35 Loop Condition +0:35 Compare Less Than or Equal ( temp bool) +0:35 'a' ( temp highp int) +0:35 Constant: +0:35 20 (const int) +0:35 Loop Body +0:35 Pre-Decrement ( temp highp int) +0:35 'a' ( temp highp int) +0:35 Loop Terminal Expression +0:35 Post-Increment ( temp highp int) +0:35 'a' ( temp highp int) +0:36 Sequence +0:36 Sequence +0:36 move second child to first child ( temp highp int) +0:36 'a' ( temp highp int) +0:36 Constant: +0:36 0 (const int) +0:36 Loop with condition tested first +0:36 Loop Condition +0:36 Compare Less Than or Equal ( temp bool) +0:36 'a' ( temp highp int) +0:36 Constant: +0:36 20 (const int) +0:36 Loop Body +0:36 Sequence +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 Compare Equal ( temp bool) +0:36 'ga' ( global highp int) +0:36 Constant: +0:36 0 (const int) +0:36 true case +0:36 move second child to first child ( temp highp int) +0:36 'a' ( temp highp int) +0:36 Constant: +0:36 4 (const int) +0:36 Loop Terminal Expression +0:36 Post-Increment ( temp highp int) +0:36 'a' ( temp highp int) +0:37 Sequence +0:37 Sequence +0:37 move second child to first child ( temp highp float) +0:37 'a' ( temp highp float) +0:37 Constant: +0:37 0.000000 +0:37 Loop with condition tested first +0:37 Loop Condition +0:37 Compare Less Than or Equal ( temp bool) +0:37 'a' ( temp highp float) +0:37 Constant: +0:37 20.000000 +0:37 No loop body +0:37 Loop Terminal Expression +0:37 add second child into first child ( temp highp float) +0:37 'a' ( temp highp float) +0:37 Constant: +0:37 2.000000 +0:38 Sequence +0:38 Sequence +0:38 move second child to first child ( temp highp float) +0:38 'a' ( temp highp float) +0:38 Constant: +0:38 0.000000 +0:38 Loop with condition tested first +0:38 Loop Condition +0:38 Compare Not Equal ( temp bool) +0:38 'a' ( temp highp float) +0:38 Constant: +0:38 20.000000 +0:38 Loop Body +0:38 Sequence +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Equal ( temp bool) +0:38 'ga' ( global highp int) +0:38 Constant: +0:38 0 (const int) +0:38 true case +0:38 move second child to first child ( temp highp int) +0:38 'ga' ( global highp int) +0:38 Constant: +0:38 4 (const int) +0:38 Loop Terminal Expression +0:38 subtract second child into first child ( temp highp float) +0:38 'a' ( temp highp float) +0:38 Constant: +0:38 2.000000 +0:39 Sequence +0:39 Sequence +0:39 move second child to first child ( temp highp float) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 0.000000 +0:39 Loop with condition tested first +0:39 Loop Condition +0:39 Compare Equal ( temp bool) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 20.000000 +0:39 Loop Body +0:39 Sequence +0:39 Sequence +0:39 move second child to first child ( temp highp float) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 0.000000 +0:39 Loop with condition tested first +0:39 Loop Condition +0:39 Compare Equal ( temp bool) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 20.000000 +0:39 No loop body +0:39 Loop Terminal Expression +0:39 Post-Decrement ( temp highp float) +0:39 'a' ( temp highp float) +0:39 Loop Terminal Expression +0:39 Post-Decrement ( temp highp float) +0:39 'a' ( temp highp float) +0:40 Sequence +0:40 Sequence +0:40 move second child to first child ( temp highp float) +0:40 'a' ( temp highp float) +0:40 Constant: +0:40 0.000000 +0:40 Loop with condition tested first +0:40 Loop Condition +0:40 Compare Less Than or Equal ( temp bool) +0:40 'a' ( temp highp float) +0:40 Constant: +0:40 20.000000 +0:40 No loop body +0:40 Loop Terminal Expression +0:40 add second child into first child ( temp highp float) +0:40 'a' ( temp highp float) +0:40 Constant: +0:40 2.000000 +0:41 Sequence +0:41 Sequence +0:41 move second child to first child ( temp highp float) +0:41 'a' ( temp highp float) +0:41 Constant: +0:41 0.000000 +0:41 Loop with condition tested first +0:41 Loop Condition +0:41 Compare Less Than or Equal ( temp bool) +0:41 'a' ( temp highp float) +0:41 Constant: +0:41 20.000000 +0:41 No loop body +0:41 Loop Terminal Expression +0:41 add second child into first child ( temp highp float) +0:41 'a' ( temp highp float) +0:41 Constant: +0:41 2.000000 +0:42 Sequence +0:42 Sequence +0:42 move second child to first child ( temp highp float) +0:42 'a' ( temp highp float) +0:42 Constant: +0:42 0.000000 +0:42 Loop with condition tested first +0:42 Loop Condition +0:42 Compare Greater Than ( temp bool) +0:42 'a' ( temp highp float) +0:42 Constant: +0:42 40.000000 +0:42 No loop body +0:42 Loop Terminal Expression +0:42 add second child into first child ( temp highp float) +0:42 'a' ( temp highp float) +0:42 Constant: +0:42 2.000000 +0:43 Sequence +0:43 Sequence +0:43 move second child to first child ( temp highp float) +0:43 'a' ( temp highp float) +0:43 Constant: +0:43 0.000000 +0:43 Loop with condition tested first +0:43 Loop Condition +0:43 Compare Greater Than or Equal ( temp bool) +0:43 'a' ( temp highp float) +0:43 Constant: +0:43 20.000000 +0:43 Loop Body +0:43 Function Call: foo(f1; ( global void) +0:43 'a' ( temp highp float) +0:43 Loop Terminal Expression +0:43 add second child into first child ( temp highp float) +0:43 'a' ( temp highp float) +0:43 Constant: +0:43 2.000000 +0:47 indirect index ( temp lowp sampler2D) +0:47 'fsa' ( uniform 3-element array of lowp sampler2D) +0:47 'ga' ( global highp int) +0:48 indirect index ( temp highp float) +0:48 'fua' ( uniform 10-element array of highp float) +0:48 'ga' ( global highp int) +0:49 indirect index ( temp highp 3-component vector of float) +0:49 'am3' ( in highp 3X3 matrix of float) +0:49 'ga' ( global highp int) +0:50 indirect index ( temp highp float) +0:50 'av2' ( in highp 2-component vector of float) +0:50 'ga' ( global highp int) +0:51 indirect index ( smooth temp highp 4-component vector of float) +0:51 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:51 add ( temp highp int) +0:51 Constant: +0:51 2 (const int) +0:51 'ga' ( global highp int) +0:52 indirect index ( temp highp 2-component vector of float) +0:52 Constant: +0:52 1.000000 +0:52 0.000000 +0:52 0.000000 +0:52 1.000000 +0:52 'ga' ( global highp int) +0:53 indirect index ( temp highp float) +0:53 Constant: +0:53 2.000000 +0:53 2.000000 +0:53 2.000000 +0:53 divide ( temp highp int) +0:53 'ga' ( global highp int) +0:53 Constant: +0:53 2 (const int) +0:54 indirect index ( temp highp int) +0:54 'ia' ( temp 9-element array of highp int) +0:54 'ga' ( global highp int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp highp int) +0:56 'a' ( temp highp int) +0:56 Constant: +0:56 3 (const int) +0:56 Loop with condition tested first +0:56 Loop Condition +0:56 Compare Greater Than or Equal ( temp bool) +0:56 'a' ( temp highp int) +0:56 Constant: +0:56 0 (const int) +0:56 Loop Body +0:57 Sequence +0:57 indirect index ( temp lowp sampler2D) +0:57 'fsa' ( uniform 3-element array of lowp sampler2D) +0:57 'a' ( temp highp int) +0:58 indirect index ( temp highp float) +0:58 'fua' ( uniform 10-element array of highp float) +0:58 add ( temp highp int) +0:58 'a' ( temp highp int) +0:58 Constant: +0:58 2 (const int) +0:59 indirect index ( temp highp 3-component vector of float) +0:59 'am3' ( in highp 3X3 matrix of float) +0:59 component-wise multiply ( temp highp int) +0:59 Constant: +0:59 3 (const int) +0:59 'a' ( temp highp int) +0:60 indirect index ( temp highp float) +0:60 'av2' ( in highp 2-component vector of float) +0:60 component-wise multiply ( temp highp int) +0:60 Constant: +0:60 3 (const int) +0:60 'a' ( temp highp int) +0:61 indirect index ( smooth temp highp 4-component vector of float) +0:61 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:61 subtract ( temp highp int) +0:61 'a' ( temp highp int) +0:61 Constant: +0:61 1 (const int) +0:62 indirect index ( temp highp 2-component vector of float) +0:62 Constant: +0:62 1.000000 +0:62 0.000000 +0:62 0.000000 +0:62 1.000000 +0:62 divide ( temp highp int) +0:62 'a' ( temp highp int) +0:62 Constant: +0:62 2 (const int) +0:63 indirect index ( temp highp float) +0:63 Constant: +0:63 2.000000 +0:63 2.000000 +0:63 2.000000 +0:63 'a' ( temp highp int) +0:64 indirect index ( temp highp int) +0:64 'ia' ( temp 9-element array of highp int) +0:64 'a' ( temp highp int) +0:65 indirect index ( temp highp int) +0:65 'ia' ( temp 9-element array of highp int) +0:65 Function Call: bar( ( global highp int) +0:56 Loop Terminal Expression +0:56 Post-Decrement ( temp highp int) +0:56 'a' ( temp highp int) +0:68 direct index ( temp lowp sampler2D) +0:68 'fsa' ( uniform 3-element array of lowp sampler2D) +0:68 Constant: +0:68 2 (const int) +0:69 direct index ( temp highp float) +0:69 'fua' ( uniform 10-element array of highp float) +0:69 Constant: +0:69 3 (const int) +0:70 direct index ( temp highp 3-component vector of float) +0:70 'am3' ( in highp 3X3 matrix of float) +0:70 Constant: +0:70 2 (const int) +0:71 direct index ( temp highp float) +0:71 'av2' ( in highp 2-component vector of float) +0:71 Constant: +0:71 1 (const int) +0:72 direct index ( smooth temp highp 4-component vector of float) +0:72 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:72 Constant: +0:72 1 (const int) +0:73 Constant: +0:73 0.000000 +0:73 1.000000 +0:74 Constant: +0:74 2.000000 +0:75 direct index ( temp highp int) +0:75 'ia' ( temp 9-element array of highp int) +0:75 Constant: +0:75 3 (const int) +0:? Linker Objects +0:? 'ga' ( global highp int) +0:? 'gb' ( global highp int) +0:? 'f' ( global highp float) +0:? 'fsa' ( uniform 3-element array of lowp sampler2D) +0:? 'fua' ( uniform 10-element array of highp float) +0:? 'am3' ( in highp 3X3 matrix of float) +0:? 'av2' ( in highp 2-component vector of float) +0:? 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:? 'm2' ( const highp 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'v3' ( const highp 3-component vector of float) +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 + + +Linked vertex stage: + + +Shader version: 100 +0:? Sequence +0:15 Function Definition: foo(f1; ( global void) +0:15 Function Parameters: +0:15 'a' ( inout highp float) +0:17 Function Definition: bar( ( global highp int) +0:17 Function Parameters: +0:19 Sequence +0:19 Branch: Return with expression +0:19 Constant: +0:19 1 (const int) +0:22 Function Definition: main( ( global void) +0:22 Function Parameters: +0:24 Sequence +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Less Than ( temp bool) +0:24 'ga' ( global highp int) +0:24 'gb' ( global highp int) +0:24 No loop body +0:26 Loop with condition not tested first +0:26 Loop Condition +0:26 Constant: +0:26 false (const bool) +0:26 No loop body +0:28 Sequence +0:28 Loop with condition tested first +0:28 No loop condition +0:28 No loop body +0:29 Sequence +0:29 Loop with condition tested first +0:29 Loop Condition +0:29 Compare Equal ( temp bool) +0:29 'ga' ( global highp int) +0:29 'gb' ( global highp int) +0:29 No loop body +0:30 Sequence +0:30 Loop with condition tested first +0:30 No loop condition +0:30 No loop body +0:30 Loop Terminal Expression +0:30 Post-Increment ( temp highp float) +0:30 'f' ( global highp float) +0:31 Sequence +0:31 move second child to first child ( temp highp int) +0:31 'ga' ( global highp int) +0:31 Constant: +0:31 0 (const int) +0:31 Loop with condition tested first +0:31 No loop condition +0:31 No loop body +0:32 Sequence +0:32 Sequence +0:32 move second child to first child ( temp bool) +0:32 'a' ( temp bool) +0:32 Constant: +0:32 false (const bool) +0:32 Loop with condition tested first +0:32 No loop condition +0:32 No loop body +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp highp float) +0:33 'a' ( temp highp float) +0:33 Constant: +0:33 0.000000 +0:33 Loop with condition tested first +0:33 Loop Condition +0:33 Compare Equal ( temp bool) +0:33 'a' ( temp highp float) +0:33 sine ( global highp float) +0:33 'f' ( global highp float) +0:33 No loop body +0:34 Sequence +0:34 Sequence +0:34 move second child to first child ( temp highp int) +0:34 'a' ( temp highp int) +0:34 Constant: +0:34 0 (const int) +0:34 Loop with condition tested first +0:34 Loop Condition +0:34 Compare Less Than ( temp bool) +0:34 'a' ( temp highp int) +0:34 Constant: +0:34 10 (const int) +0:34 No loop body +0:34 Loop Terminal Expression +0:34 multiply second child into first child ( temp highp int) +0:34 'a' ( temp highp int) +0:34 Constant: +0:34 2 (const int) +0:35 Sequence +0:35 Sequence +0:35 move second child to first child ( temp highp int) +0:35 'a' ( temp highp int) +0:35 Constant: +0:35 0 (const int) +0:35 Loop with condition tested first +0:35 Loop Condition +0:35 Compare Less Than or Equal ( temp bool) +0:35 'a' ( temp highp int) +0:35 Constant: +0:35 20 (const int) +0:35 Loop Body +0:35 Pre-Decrement ( temp highp int) +0:35 'a' ( temp highp int) +0:35 Loop Terminal Expression +0:35 Post-Increment ( temp highp int) +0:35 'a' ( temp highp int) +0:36 Sequence +0:36 Sequence +0:36 move second child to first child ( temp highp int) +0:36 'a' ( temp highp int) +0:36 Constant: +0:36 0 (const int) +0:36 Loop with condition tested first +0:36 Loop Condition +0:36 Compare Less Than or Equal ( temp bool) +0:36 'a' ( temp highp int) +0:36 Constant: +0:36 20 (const int) +0:36 Loop Body +0:36 Sequence +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 Compare Equal ( temp bool) +0:36 'ga' ( global highp int) +0:36 Constant: +0:36 0 (const int) +0:36 true case +0:36 move second child to first child ( temp highp int) +0:36 'a' ( temp highp int) +0:36 Constant: +0:36 4 (const int) +0:36 Loop Terminal Expression +0:36 Post-Increment ( temp highp int) +0:36 'a' ( temp highp int) +0:37 Sequence +0:37 Sequence +0:37 move second child to first child ( temp highp float) +0:37 'a' ( temp highp float) +0:37 Constant: +0:37 0.000000 +0:37 Loop with condition tested first +0:37 Loop Condition +0:37 Compare Less Than or Equal ( temp bool) +0:37 'a' ( temp highp float) +0:37 Constant: +0:37 20.000000 +0:37 No loop body +0:37 Loop Terminal Expression +0:37 add second child into first child ( temp highp float) +0:37 'a' ( temp highp float) +0:37 Constant: +0:37 2.000000 +0:38 Sequence +0:38 Sequence +0:38 move second child to first child ( temp highp float) +0:38 'a' ( temp highp float) +0:38 Constant: +0:38 0.000000 +0:38 Loop with condition tested first +0:38 Loop Condition +0:38 Compare Not Equal ( temp bool) +0:38 'a' ( temp highp float) +0:38 Constant: +0:38 20.000000 +0:38 Loop Body +0:38 Sequence +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Equal ( temp bool) +0:38 'ga' ( global highp int) +0:38 Constant: +0:38 0 (const int) +0:38 true case +0:38 move second child to first child ( temp highp int) +0:38 'ga' ( global highp int) +0:38 Constant: +0:38 4 (const int) +0:38 Loop Terminal Expression +0:38 subtract second child into first child ( temp highp float) +0:38 'a' ( temp highp float) +0:38 Constant: +0:38 2.000000 +0:39 Sequence +0:39 Sequence +0:39 move second child to first child ( temp highp float) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 0.000000 +0:39 Loop with condition tested first +0:39 Loop Condition +0:39 Compare Equal ( temp bool) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 20.000000 +0:39 Loop Body +0:39 Sequence +0:39 Sequence +0:39 move second child to first child ( temp highp float) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 0.000000 +0:39 Loop with condition tested first +0:39 Loop Condition +0:39 Compare Equal ( temp bool) +0:39 'a' ( temp highp float) +0:39 Constant: +0:39 20.000000 +0:39 No loop body +0:39 Loop Terminal Expression +0:39 Post-Decrement ( temp highp float) +0:39 'a' ( temp highp float) +0:39 Loop Terminal Expression +0:39 Post-Decrement ( temp highp float) +0:39 'a' ( temp highp float) +0:40 Sequence +0:40 Sequence +0:40 move second child to first child ( temp highp float) +0:40 'a' ( temp highp float) +0:40 Constant: +0:40 0.000000 +0:40 Loop with condition tested first +0:40 Loop Condition +0:40 Compare Less Than or Equal ( temp bool) +0:40 'a' ( temp highp float) +0:40 Constant: +0:40 20.000000 +0:40 No loop body +0:40 Loop Terminal Expression +0:40 add second child into first child ( temp highp float) +0:40 'a' ( temp highp float) +0:40 Constant: +0:40 2.000000 +0:41 Sequence +0:41 Sequence +0:41 move second child to first child ( temp highp float) +0:41 'a' ( temp highp float) +0:41 Constant: +0:41 0.000000 +0:41 Loop with condition tested first +0:41 Loop Condition +0:41 Compare Less Than or Equal ( temp bool) +0:41 'a' ( temp highp float) +0:41 Constant: +0:41 20.000000 +0:41 No loop body +0:41 Loop Terminal Expression +0:41 add second child into first child ( temp highp float) +0:41 'a' ( temp highp float) +0:41 Constant: +0:41 2.000000 +0:42 Sequence +0:42 Sequence +0:42 move second child to first child ( temp highp float) +0:42 'a' ( temp highp float) +0:42 Constant: +0:42 0.000000 +0:42 Loop with condition tested first +0:42 Loop Condition +0:42 Compare Greater Than ( temp bool) +0:42 'a' ( temp highp float) +0:42 Constant: +0:42 40.000000 +0:42 No loop body +0:42 Loop Terminal Expression +0:42 add second child into first child ( temp highp float) +0:42 'a' ( temp highp float) +0:42 Constant: +0:42 2.000000 +0:43 Sequence +0:43 Sequence +0:43 move second child to first child ( temp highp float) +0:43 'a' ( temp highp float) +0:43 Constant: +0:43 0.000000 +0:43 Loop with condition tested first +0:43 Loop Condition +0:43 Compare Greater Than or Equal ( temp bool) +0:43 'a' ( temp highp float) +0:43 Constant: +0:43 20.000000 +0:43 Loop Body +0:43 Function Call: foo(f1; ( global void) +0:43 'a' ( temp highp float) +0:43 Loop Terminal Expression +0:43 add second child into first child ( temp highp float) +0:43 'a' ( temp highp float) +0:43 Constant: +0:43 2.000000 +0:47 indirect index ( temp lowp sampler2D) +0:47 'fsa' ( uniform 3-element array of lowp sampler2D) +0:47 'ga' ( global highp int) +0:48 indirect index ( temp highp float) +0:48 'fua' ( uniform 10-element array of highp float) +0:48 'ga' ( global highp int) +0:49 indirect index ( temp highp 3-component vector of float) +0:49 'am3' ( in highp 3X3 matrix of float) +0:49 'ga' ( global highp int) +0:50 indirect index ( temp highp float) +0:50 'av2' ( in highp 2-component vector of float) +0:50 'ga' ( global highp int) +0:51 indirect index ( smooth temp highp 4-component vector of float) +0:51 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:51 add ( temp highp int) +0:51 Constant: +0:51 2 (const int) +0:51 'ga' ( global highp int) +0:52 indirect index ( temp highp 2-component vector of float) +0:52 Constant: +0:52 1.000000 +0:52 0.000000 +0:52 0.000000 +0:52 1.000000 +0:52 'ga' ( global highp int) +0:53 indirect index ( temp highp float) +0:53 Constant: +0:53 2.000000 +0:53 2.000000 +0:53 2.000000 +0:53 divide ( temp highp int) +0:53 'ga' ( global highp int) +0:53 Constant: +0:53 2 (const int) +0:54 indirect index ( temp highp int) +0:54 'ia' ( temp 9-element array of highp int) +0:54 'ga' ( global highp int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp highp int) +0:56 'a' ( temp highp int) +0:56 Constant: +0:56 3 (const int) +0:56 Loop with condition tested first +0:56 Loop Condition +0:56 Compare Greater Than or Equal ( temp bool) +0:56 'a' ( temp highp int) +0:56 Constant: +0:56 0 (const int) +0:56 Loop Body +0:57 Sequence +0:57 indirect index ( temp lowp sampler2D) +0:57 'fsa' ( uniform 3-element array of lowp sampler2D) +0:57 'a' ( temp highp int) +0:58 indirect index ( temp highp float) +0:58 'fua' ( uniform 10-element array of highp float) +0:58 add ( temp highp int) +0:58 'a' ( temp highp int) +0:58 Constant: +0:58 2 (const int) +0:59 indirect index ( temp highp 3-component vector of float) +0:59 'am3' ( in highp 3X3 matrix of float) +0:59 component-wise multiply ( temp highp int) +0:59 Constant: +0:59 3 (const int) +0:59 'a' ( temp highp int) +0:60 indirect index ( temp highp float) +0:60 'av2' ( in highp 2-component vector of float) +0:60 component-wise multiply ( temp highp int) +0:60 Constant: +0:60 3 (const int) +0:60 'a' ( temp highp int) +0:61 indirect index ( smooth temp highp 4-component vector of float) +0:61 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:61 subtract ( temp highp int) +0:61 'a' ( temp highp int) +0:61 Constant: +0:61 1 (const int) +0:62 indirect index ( temp highp 2-component vector of float) +0:62 Constant: +0:62 1.000000 +0:62 0.000000 +0:62 0.000000 +0:62 1.000000 +0:62 divide ( temp highp int) +0:62 'a' ( temp highp int) +0:62 Constant: +0:62 2 (const int) +0:63 indirect index ( temp highp float) +0:63 Constant: +0:63 2.000000 +0:63 2.000000 +0:63 2.000000 +0:63 'a' ( temp highp int) +0:64 indirect index ( temp highp int) +0:64 'ia' ( temp 9-element array of highp int) +0:64 'a' ( temp highp int) +0:65 indirect index ( temp highp int) +0:65 'ia' ( temp 9-element array of highp int) +0:65 Function Call: bar( ( global highp int) +0:56 Loop Terminal Expression +0:56 Post-Decrement ( temp highp int) +0:56 'a' ( temp highp int) +0:68 direct index ( temp lowp sampler2D) +0:68 'fsa' ( uniform 3-element array of lowp sampler2D) +0:68 Constant: +0:68 2 (const int) +0:69 direct index ( temp highp float) +0:69 'fua' ( uniform 10-element array of highp float) +0:69 Constant: +0:69 3 (const int) +0:70 direct index ( temp highp 3-component vector of float) +0:70 'am3' ( in highp 3X3 matrix of float) +0:70 Constant: +0:70 2 (const int) +0:71 direct index ( temp highp float) +0:71 'av2' ( in highp 2-component vector of float) +0:71 Constant: +0:71 1 (const int) +0:72 direct index ( smooth temp highp 4-component vector of float) +0:72 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:72 Constant: +0:72 1 (const int) +0:73 Constant: +0:73 0.000000 +0:73 1.000000 +0:74 Constant: +0:74 2.000000 +0:75 direct index ( temp highp int) +0:75 'ia' ( temp 9-element array of highp int) +0:75 Constant: +0:75 3 (const int) +0:? Linker Objects +0:? 'ga' ( global highp int) +0:? 'gb' ( global highp int) +0:? 'f' ( global highp float) +0:? 'fsa' ( uniform 3-element array of lowp sampler2D) +0:? 'fua' ( uniform 10-element array of highp float) +0:? 'am3' ( in highp 3X3 matrix of float) +0:? 'av2' ( in highp 2-component vector of float) +0:? 'va' ( smooth out 4-element array of highp 4-component vector of float) +0:? 'm2' ( const highp 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'v3' ( const highp 3-component vector of float) +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 + diff --git a/deps/glslang/glslang/Test/baseResults/100LimitsConf.vert.out b/deps/glslang/glslang/Test/baseResults/100LimitsConf.vert.out new file mode 100644 index 0000000000..46cb845393 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/100LimitsConf.vert.out @@ -0,0 +1,24 @@ +100Limits.vert +ERROR: 0:24: 'limitation' : while loops not available +ERROR: 0:26: 'limitation' : do-while loops not available +ERROR: 0:28: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" +ERROR: 0:29: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" +ERROR: 0:30: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" +ERROR: 0:31: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression" +ERROR: 0:32: 'limitations' : inductive loop requires a scalar 'int' or 'float' loop index +ERROR: 0:33: 'limitations' : inductive-loop condition requires the form "loop-index constant-expression" +ERROR: 0:34: 'limitations' : inductive-loop termination requires the form "loop-index++, loop-index--, loop-index += constant-expression, or loop-index -= constant-expression" +ERROR: 0:35: 'limitations' : inductive loop index modified +ERROR: 0:36: 'limitations' : inductive loop index modified +ERROR: 0:43: 'limitations' : inductive loop index modified +ERROR: 0:47: 'limitations' : Non-constant-index-expression +ERROR: 0:49: 'limitations' : Non-constant-index-expression +ERROR: 0:50: 'limitations' : Non-constant-index-expression +ERROR: 0:51: 'limitations' : Non-constant-index-expression +ERROR: 0:52: 'limitations' : Non-constant-index-expression +ERROR: 0:53: 'limitations' : Non-constant-index-expression +ERROR: 0:54: 'limitations' : Non-constant-index-expression +ERROR: 0:65: 'limitations' : Non-constant-index-expression +ERROR: 20 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/100samplerExternal.frag.out b/deps/glslang/glslang/Test/baseResults/100samplerExternal.frag.out new file mode 100644 index 0000000000..8b689c7619 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/100samplerExternal.frag.out @@ -0,0 +1,172 @@ +100samplerExternal.frag +ERROR: 0:20: 'textureSize' : no matching overloaded function found +ERROR: 0:21: 'texture' : no matching overloaded function found +ERROR: 0:22: 'texture' : no matching overloaded function found +ERROR: 0:23: 'textureProj' : no matching overloaded function found +ERROR: 0:24: 'textureProj' : no matching overloaded function found +ERROR: 0:25: 'textureProj' : no matching overloaded function found +ERROR: 0:26: 'textureProj' : no matching overloaded function found +ERROR: 0:27: 'texelFetch' : no matching overloaded function found +ERROR: 0:29: 'texture3D' : no matching overloaded function found +ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found +ERROR: 0:31: 'texture' : no matching overloaded function found +ERROR: 0:32: 'textureProjLod' : no matching overloaded function found +ERROR: 0:38: 'samplerExternalOES' : required extension not requested: GL_OES_EGL_image_external +ERROR: 0:41: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON +ERROR: 14 compilation errors. No code generated. + + +Shader version: 100 +Requested GL_OES_EGL_image_external +Requested GL_OES_EGL_image_external_essl3 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 texture ( global lowp 4-component vector of float) +0:12 'sExt' ( uniform lowp samplerExternalOES) +0:12 Constant: +0:12 0.200000 +0:12 0.200000 +0:13 texture ( global mediump 4-component vector of float) +0:13 'mediumExt' ( uniform mediump samplerExternalOES) +0:13 Constant: +0:13 0.200000 +0:13 0.200000 +0:14 texture ( global highp 4-component vector of float) +0:14 'highExt' ( uniform highp samplerExternalOES) +0:14 Constant: +0:14 0.200000 +0:14 0.200000 +0:15 textureProj ( global lowp 4-component vector of float) +0:15 'sExt' ( uniform lowp samplerExternalOES) +0:15 Constant: +0:15 0.300000 +0:15 0.300000 +0:15 0.300000 +0:16 textureProj ( global lowp 4-component vector of float) +0:16 'sExt' ( uniform lowp samplerExternalOES) +0:16 Constant: +0:16 0.300000 +0:16 0.300000 +0:16 0.300000 +0:16 0.300000 +0:18 Sequence +0:18 move second child to first child ( temp mediump int) +0:18 'lod' ( temp mediump int) +0:18 Constant: +0:18 0 (const int) +0:19 Sequence +0:19 move second child to first child ( temp highp float) +0:19 'bias' ( temp highp float) +0:19 Constant: +0:19 0.010000 +0:20 Constant: +0:20 0.000000 +0:21 Constant: +0:21 0.000000 +0:22 Constant: +0:22 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:? Linker Objects +0:? 'sExt' ( uniform lowp samplerExternalOES) +0:? 'mediumExt' ( uniform mediump samplerExternalOES) +0:? 'highExt' ( uniform highp samplerExternalOES) +0:? 'badExt' ( uniform mediump samplerExternalOES) + + +Linked fragment stage: + + +Shader version: 100 +Requested GL_OES_EGL_image_external +Requested GL_OES_EGL_image_external_essl3 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 texture ( global lowp 4-component vector of float) +0:12 'sExt' ( uniform lowp samplerExternalOES) +0:12 Constant: +0:12 0.200000 +0:12 0.200000 +0:13 texture ( global mediump 4-component vector of float) +0:13 'mediumExt' ( uniform mediump samplerExternalOES) +0:13 Constant: +0:13 0.200000 +0:13 0.200000 +0:14 texture ( global highp 4-component vector of float) +0:14 'highExt' ( uniform highp samplerExternalOES) +0:14 Constant: +0:14 0.200000 +0:14 0.200000 +0:15 textureProj ( global lowp 4-component vector of float) +0:15 'sExt' ( uniform lowp samplerExternalOES) +0:15 Constant: +0:15 0.300000 +0:15 0.300000 +0:15 0.300000 +0:16 textureProj ( global lowp 4-component vector of float) +0:16 'sExt' ( uniform lowp samplerExternalOES) +0:16 Constant: +0:16 0.300000 +0:16 0.300000 +0:16 0.300000 +0:16 0.300000 +0:18 Sequence +0:18 move second child to first child ( temp mediump int) +0:18 'lod' ( temp mediump int) +0:18 Constant: +0:18 0 (const int) +0:19 Sequence +0:19 move second child to first child ( temp highp float) +0:19 'bias' ( temp highp float) +0:19 Constant: +0:19 0.010000 +0:20 Constant: +0:20 0.000000 +0:21 Constant: +0:21 0.000000 +0:22 Constant: +0:22 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:? Linker Objects +0:? 'sExt' ( uniform lowp samplerExternalOES) +0:? 'mediumExt' ( uniform mediump samplerExternalOES) +0:? 'highExt' ( uniform highp samplerExternalOES) +0:? 'badExt' ( uniform mediump samplerExternalOES) + diff --git a/deps/glslang/glslang/Test/baseResults/100scope.vert.out b/deps/glslang/glslang/Test/baseResults/100scope.vert.out new file mode 100644 index 0000000000..c59c8fd7d3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/100scope.vert.out @@ -0,0 +1,228 @@ +100scope.vert +ERROR: 0:5: 'a' : redefinition +ERROR: 0:17: 'b' : function name is redeclaration of existing name +ERROR: 0:20: 'c' : redefinition +ERROR: 0:22: 'f' : redefinition +ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1 +ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1 +ERROR: 0:38: 'local function declaration' : not supported with this profile: es +ERROR: 0:43: 'sin' : can't use function syntax on variable +ERROR: 0:57: 'z' : undeclared identifier +ERROR: 0:57: 'z' : redefinition +ERROR: 0:73: 'degrees' : can't use function syntax on variable +ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions +ERROR: 14 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global highp int) +0:3 Function Parameters: +0:3 'a' ( in highp int) +0:3 'b' ( in highp int) +0:3 'c' ( in highp int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp highp float) +0:8 'a' ( temp highp float) +0:8 add ( temp highp float) +0:8 Convert int to float ( temp highp float) +0:8 'a' ( in highp int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in highp int) +0:25 Function Definition: cos(f1; ( global highp float) +0:25 Function Parameters: +0:25 'x' ( in highp float) +0:27 Sequence +0:27 Branch: Return with expression +0:27 Constant: +0:27 1.000000 +0:29 Function Definition: radians(b1; ( global bool) +0:29 Function Parameters: +0:29 'x' ( in bool) +0:31 Sequence +0:31 Branch: Return with expression +0:31 Constant: +0:31 true (const bool) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp highp int) +0:42 'sin' ( temp highp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; ( global highp int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp highp float) +0:47 'f' ( temp highp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 'gl_Position' ( invariant gl_Position highp 4-component vector of float Position) +0:49 Construct vec4 ( temp highp 4-component vector of float) +0:49 'f' ( temp highp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp highp int) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp highp int) +0:52 'f' ( temp highp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp highp int) +0:51 'f' ( temp highp int) +0:54 Sequence +0:54 move second child to first child ( temp highp int) +0:54 'x' ( temp highp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp highp float) +0:56 'x' ( temp highp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp highp float) +0:56 'y' ( temp highp float) +0:56 'x' ( temp highp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp highp int) +0:60 'x' ( temp highp int) +0:60 'x' ( temp highp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp highp int x}) +0:68 'S' ( temp structure{ temp highp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp highp int) +0:69 'S' ( temp structure{ temp highp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 0.000000 +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'tan' ( global highp float) +0:? 's' ( smooth out structure{ global highp float f}) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + g( + +Shader version: 100 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global highp int) +0:3 Function Parameters: +0:3 'a' ( in highp int) +0:3 'b' ( in highp int) +0:3 'c' ( in highp int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp highp float) +0:8 'a' ( temp highp float) +0:8 add ( temp highp float) +0:8 Convert int to float ( temp highp float) +0:8 'a' ( in highp int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in highp int) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp highp int) +0:42 'sin' ( temp highp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; ( global highp int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp highp float) +0:47 'f' ( temp highp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 'gl_Position' ( invariant gl_Position highp 4-component vector of float Position) +0:49 Construct vec4 ( temp highp 4-component vector of float) +0:49 'f' ( temp highp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp highp int) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp highp int) +0:52 'f' ( temp highp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp highp int) +0:51 'f' ( temp highp int) +0:54 Sequence +0:54 move second child to first child ( temp highp int) +0:54 'x' ( temp highp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp highp float) +0:56 'x' ( temp highp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp highp float) +0:56 'y' ( temp highp float) +0:56 'x' ( temp highp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp highp int) +0:60 'x' ( temp highp int) +0:60 'x' ( temp highp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp highp int x}) +0:68 'S' ( temp structure{ temp highp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp highp int) +0:69 'S' ( temp structure{ temp highp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 0.000000 +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'tan' ( global highp float) +0:? 's' ( smooth out structure{ global highp float f}) + diff --git a/deps/glslang/glslang/Test/baseResults/110scope.vert.out b/deps/glslang/glslang/Test/baseResults/110scope.vert.out new file mode 100644 index 0000000000..e23d3c0f46 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/110scope.vert.out @@ -0,0 +1,276 @@ +110scope.vert +ERROR: 0:5: 'a' : redefinition +ERROR: 0:57: 'z' : undeclared identifier +ERROR: 0:57: 'z' : redefinition +ERROR: 0:83: 'S' : redefinition struct +ERROR: 4 compilation errors. No code generated. + + +Shader version: 110 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global int) +0:3 Function Parameters: +0:3 'a' ( in int) +0:3 'b' ( in int) +0:3 'c' ( in int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'a' ( temp float) +0:8 add ( temp float) +0:8 Convert int to float ( temp float) +0:8 'a' ( in int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in int) +0:25 Function Definition: cos(f1; ( global float) +0:25 Function Parameters: +0:25 'x' ( in float) +0:27 Sequence +0:27 Branch: Return with expression +0:27 Constant: +0:27 1.000000 +0:29 Function Definition: radians(b1; ( global bool) +0:29 Function Parameters: +0:29 'x' ( in bool) +0:31 Sequence +0:31 Branch: Return with expression +0:31 Constant: +0:31 true (const bool) +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'gi' ( global int) +0:34 Function Call: f(i1;i1;i1; ( global int) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 3 (const int) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp int) +0:42 'sin' ( temp float) +0:43 Function Call: sin(f1; ( global float) +0:43 Constant: +0:43 0.700000 +0:44 Function Call: f(i1;i1;i1; ( global int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp float) +0:47 'f' ( temp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'gl_Position' ( gl_Position 4-component vector of float Position) +0:49 Construct vec4 ( temp 4-component vector of float) +0:49 'f' ( temp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp int) +0:51 'f' ( temp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp int) +0:52 'f' ( temp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp int) +0:51 'f' ( temp int) +0:54 Sequence +0:54 move second child to first child ( temp int) +0:54 'x' ( temp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'x' ( temp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp float) +0:56 'y' ( temp float) +0:56 'x' ( temp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp int) +0:60 'x' ( temp int) +0:60 'x' ( temp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp int x}) +0:68 'S' ( temp structure{ temp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp int) +0:69 'S' ( temp structure{ temp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 183.346494 +0:? Sequence +0:77 move second child to first child ( temp int) +0:77 x: direct index for structure ( temp int) +0:77 's' ( temp structure{ temp int x}) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 3 (const int) +0:82 move second child to first child ( temp bool) +0:82 b: direct index for structure ( temp bool) +0:82 't' ( temp structure{ temp bool b}) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 true (const bool) +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'c' ( global bool) +0:? 'f' ( global float) +0:? 'tan' ( global float) +0:? 'gi' ( global int) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + sin(f1; +ERROR: Linking vertex stage: No function definition (body) found: + g( + +Shader version: 110 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global int) +0:3 Function Parameters: +0:3 'a' ( in int) +0:3 'b' ( in int) +0:3 'c' ( in int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'a' ( temp float) +0:8 add ( temp float) +0:8 Convert int to float ( temp float) +0:8 'a' ( in int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in int) +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'gi' ( global int) +0:34 Function Call: f(i1;i1;i1; ( global int) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 3 (const int) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp int) +0:42 'sin' ( temp float) +0:43 Function Call: sin(f1; ( global float) +0:43 Constant: +0:43 0.700000 +0:44 Function Call: f(i1;i1;i1; ( global int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp float) +0:47 'f' ( temp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'gl_Position' ( gl_Position 4-component vector of float Position) +0:49 Construct vec4 ( temp 4-component vector of float) +0:49 'f' ( temp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp int) +0:51 'f' ( temp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp int) +0:52 'f' ( temp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp int) +0:51 'f' ( temp int) +0:54 Sequence +0:54 move second child to first child ( temp int) +0:54 'x' ( temp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'x' ( temp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp float) +0:56 'y' ( temp float) +0:56 'x' ( temp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp int) +0:60 'x' ( temp int) +0:60 'x' ( temp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp int x}) +0:68 'S' ( temp structure{ temp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp int) +0:69 'S' ( temp structure{ temp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 183.346494 +0:? Sequence +0:77 move second child to first child ( temp int) +0:77 x: direct index for structure ( temp int) +0:77 's' ( temp structure{ temp int x}) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 3 (const int) +0:82 move second child to first child ( temp bool) +0:82 b: direct index for structure ( temp bool) +0:82 't' ( temp structure{ temp bool b}) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 true (const bool) +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'c' ( global bool) +0:? 'f' ( global float) +0:? 'tan' ( global float) +0:? 'gi' ( global int) + diff --git a/deps/glslang/glslang/Test/baseResults/120.frag.out b/deps/glslang/glslang/Test/baseResults/120.frag.out new file mode 100644 index 0000000000..e63c001002 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/120.frag.out @@ -0,0 +1,699 @@ +120.frag +ERROR: 0:9: 'in for stage inputs' : not supported for this version or the enabled extensions +ERROR: 0:10: 'out for stage outputs' : not supported for this version or the enabled extensions +ERROR: 0:54: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp 2-component vector of float' and a right operand of type ' temp 3-component vector of float' (or there is no acceptable conversion) +ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' uniform 4X2 matrix of float' and a right operand of type ' temp 3-component vector of float' (or there is no acceptable conversion) +ERROR: 0:56: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' uniform 4X2 matrix of float' and a right operand of type ' smooth in 4-component vector of float' (or there is no acceptable conversion) +ERROR: 0:57: '=' : cannot convert from ' const float' to ' temp int' +ERROR: 0:58: 'assign' : cannot convert from ' temp bool' to ' temp float' +ERROR: 0:59: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp int' and a right operand of type ' temp bool' (or there is no acceptable conversion) +ERROR: 0:60: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp int' (or there is no acceptable conversion) +ERROR: 0:60: 'assign' : cannot convert from ' temp bool' to ' temp float' +ERROR: 0:61: 'assign' : cannot convert from ' temp int' to ' temp bool' +ERROR: 0:62: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp float' (or there is no acceptable conversion) +ERROR: 0:63: 'bitwise-or assign' : not supported for this version or the enabled extensions +ERROR: 0:63: 'assign' : cannot convert from ' temp bool' to ' temp float' +ERROR: 0:79: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' temp 4-component vector of float' and a right operand of type ' temp 4X4 matrix of float' (or there is no acceptable conversion) +ERROR: 0:79: 'assign' : cannot convert from ' temp 4X4 matrix of float' to ' fragColor 4-component vector of float FragColor' +ERROR: 0:82: 'xr' : vector swizzle selectors not from the same set +ERROR: 0:83: 'xyxyx' : vector swizzle too long +ERROR: 0:84: 'z' : vector swizzle selection out of range +ERROR: 0:85: 'assign' : l-value required +ERROR: 0:91: 'main' : overloaded functions must have the same return type +ERROR: 0:91: 'main' : function already has a body +ERROR: 0:91: 'int' : entry point cannot return a value +ERROR: 0:92: 'main' : function cannot take any parameter(s) +ERROR: 0:94: 'a' : variables with qualifier 'const' must be initialized +ERROR: 0:97: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1 +ERROR: 0:99: 'return' : type does not match, or is not convertible to, the function's return type +ERROR: 0:115: 'return' : void function cannot return a value +ERROR: 0:125: 'gl_TexCoord' : redeclaration of array with size +ERROR: 0:152: 'matrixCompMult' : no matching overloaded function found +ERROR: 0:152: '=' : cannot convert from ' const float' to ' temp 3X2 matrix of float' +ERROR: 0:153: 'matrixCompMult' : no matching overloaded function found +ERROR: 0:153: '=' : cannot convert from ' const float' to ' temp 3X4 matrix of float' +ERROR: 0:160: 'constructor' : not enough data provided for construction +ERROR: 0:160: '=' : cannot convert from ' const float' to ' temp 4X4 matrix of float' +ERROR: 0:161: 'constructor' : too many arguments +ERROR: 0:161: '=' : cannot convert from ' const float' to ' temp 4X4 matrix of float' +ERROR: 0:165: 'constructor' : matrix constructed from matrix can only have one argument +ERROR: 0:166: 'constructor' : matrix constructed from matrix can only have one argument +ERROR: 0:172: 'constructor' : array constructor needs one argument per array element +ERROR: 0:172: '=' : cannot convert from ' const float' to ' temp 2-element array of 3X3 matrix of float' +ERROR: 0:184: 'texture2DLod' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:185: 'texture3DProjLod' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:186: 'texture1DProjLod' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:187: 'shadow2DProjLod' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:189: 'texture1DGradARB' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:190: 'texture2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:191: 'shadow2DProjGradARB' : required extension not requested: GL_ARB_shader_texture_lod +ERROR: 0:209: 'shadow2DRectProjGradARB' : no matching overloaded function found +ERROR: 0:209: 'assign' : cannot convert from ' const float' to ' temp 4-component vector of float' +ERROR: 0:212: 'sampler2DRect' : Reserved word. +ERROR: 0:244: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' global void' and a right operand of type ' const int' (or there is no acceptable conversion) +ERROR: 0:245: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' const int' and a right operand of type ' global void' (or there is no acceptable conversion) +ERROR: 0:248: 'explicit types' : required extension not requested: Possible extensions include: +GL_AMD_gpu_shader_half_float +GL_KHX_shader_explicit_arithmetic_types +GL_KHX_shader_explicit_arithmetic_types_float16 +ERROR: 0:248: 'half floating-point suffix' : not supported with this profile: none +ERROR: 0:248: '' : syntax error, unexpected IDENTIFIER, expecting COMMA or SEMICOLON +ERROR: 56 compilation errors. No code generated. + + +Shader version: 120 +Requested GL_ARB_shader_texture_lod +Requested GL_ARB_texture_rectangle +ERROR: node is still EOpNull! +0:21 Function Definition: main( ( global void) +0:21 Function Parameters: +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp 2X3 matrix of float) +0:23 'm23' ( temp 2X3 matrix of float) +0:23 Construct mat2x3 ( temp 2X3 matrix of float) +0:23 'm' ( uniform 4X2 matrix of float) +0:27 Sequence +0:27 move second child to first child ( temp structure{ global float f}) +0:27 'sv' ( temp structure{ global float f}) +0:27 Construct structure ( temp structure{ global float f}) +0:27 Convert int to float ( temp float) +0:27 'a' ( temp int) +0:28 Sequence +0:28 move second child to first child ( temp 2-element array of float) +0:28 'ia' ( temp 2-element array of float) +0:28 Construct float ( temp 2-element array of float) +0:28 Constant: +0:28 3.000000 +0:28 direct index ( temp float) +0:28 'i' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'f1' ( temp float) +0:29 Constant: +0:29 1.000000 +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'f' ( temp float) +0:30 Convert int to float ( temp float) +0:30 'a' ( temp int) +0:31 move second child to first child ( temp float) +0:31 'f' ( temp float) +0:31 Convert int to float ( temp float) +0:31 'a' ( temp int) +0:33 Sequence +0:33 move second child to first child ( temp 3-component vector of float) +0:33 'v3' ( temp 3-component vector of float) +0:33 Convert int to float ( temp 3-component vector of float) +0:33 'iv3' ( temp 3-component vector of int) +0:34 move second child to first child ( temp float) +0:34 'f' ( temp float) +0:34 add ( temp float) +0:34 'f' ( temp float) +0:34 Convert int to float ( temp float) +0:34 'a' ( temp int) +0:35 move second child to first child ( temp float) +0:35 'f' ( temp float) +0:35 subtract ( temp float) +0:35 Convert int to float ( temp float) +0:35 'a' ( temp int) +0:35 'f' ( temp float) +0:36 add second child into first child ( temp float) +0:36 'f' ( temp float) +0:36 Convert int to float ( temp float) +0:36 'a' ( temp int) +0:37 move second child to first child ( temp float) +0:37 'f' ( temp float) +0:37 subtract ( temp float) +0:37 Convert int to float ( temp float) +0:37 'a' ( temp int) +0:37 'f' ( temp float) +0:38 multiply second child into first child ( temp 3-component vector of float) +0:38 'v3' ( temp 3-component vector of float) +0:38 Convert int to float ( temp 3-component vector of float) +0:38 'iv3' ( temp 3-component vector of int) +0:39 move second child to first child ( temp 3-component vector of float) +0:39 'v3' ( temp 3-component vector of float) +0:39 divide ( temp 3-component vector of float) +0:39 Convert int to float ( temp 3-component vector of float) +0:39 'iv3' ( temp 3-component vector of int) +0:39 Constant: +0:39 2.000000 +0:40 move second child to first child ( temp 3-component vector of float) +0:40 'v3' ( temp 3-component vector of float) +0:40 vector-scale ( temp 3-component vector of float) +0:40 Constant: +0:40 3.000000 +0:40 Convert int to float ( temp 3-component vector of float) +0:40 'iv3' ( temp 3-component vector of int) +0:41 move second child to first child ( temp 3-component vector of float) +0:41 'v3' ( temp 3-component vector of float) +0:41 vector-scale ( temp 3-component vector of float) +0:41 Constant: +0:41 2.000000 +0:41 'v3' ( temp 3-component vector of float) +0:42 move second child to first child ( temp 3-component vector of float) +0:42 'v3' ( temp 3-component vector of float) +0:42 subtract ( temp 3-component vector of float) +0:42 'v3' ( temp 3-component vector of float) +0:42 Constant: +0:42 2.000000 +0:43 Test condition and select ( temp void) +0:43 Condition +0:47 logical-or ( temp bool) +0:46 logical-or ( temp bool) +0:45 logical-or ( temp bool) +0:44 logical-or ( temp bool) +0:43 logical-or ( temp bool) +0:43 Compare Less Than ( temp bool) +0:43 'f' ( temp float) +0:43 Convert int to float ( temp float) +0:43 'a' ( temp int) +0:44 Compare Less Than or Equal ( temp bool) +0:44 Convert int to float ( temp float) +0:44 'a' ( temp int) +0:44 'f' ( temp float) +0:45 Compare Greater Than ( temp bool) +0:45 'f' ( temp float) +0:45 Convert int to float ( temp float) +0:45 'a' ( temp int) +0:46 Compare Greater Than or Equal ( temp bool) +0:46 'f' ( temp float) +0:46 Convert int to float ( temp float) +0:46 'a' ( temp int) +0:47 Compare Equal ( temp bool) +0:47 Convert int to float ( temp float) +0:47 'a' ( temp int) +0:47 'f' ( temp float) +0:48 Compare Not Equal ( temp bool) +0:48 'f' ( temp float) +0:48 Convert int to float ( temp float) +0:48 'a' ( temp int) +0:43 true case is null +0:49 move second child to first child ( temp float) +0:49 'f' ( temp float) +0:49 Test condition and select ( temp float) +0:49 Condition +0:49 'b' ( temp bool) +0:49 true case +0:49 Convert int to float ( temp float) +0:49 'a' ( temp int) +0:49 false case +0:49 'f' ( temp float) +0:50 move second child to first child ( temp float) +0:50 'f' ( temp float) +0:50 Test condition and select ( temp float) +0:50 Condition +0:50 'b' ( temp bool) +0:50 true case +0:50 'f' ( temp float) +0:50 false case +0:50 Convert int to float ( temp float) +0:50 'a' ( temp int) +0:51 move second child to first child ( temp float) +0:51 'f' ( temp float) +0:51 Convert int to float ( temp float) +0:51 Test condition and select ( temp int) +0:51 Condition +0:51 'b' ( temp bool) +0:51 true case +0:51 'a' ( temp int) +0:51 false case +0:51 'a' ( temp int) +0:52 Sequence +0:52 move second child to first child ( temp structure{ global float f}) +0:52 'news' ( temp structure{ global float f}) +0:52 'sv' ( temp structure{ global float f}) +0:54 vector swizzle ( temp 2-component vector of float) +0:54 'i' ( smooth in 4-component vector of float) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:55 'm' ( uniform 4X2 matrix of float) +0:56 'm' ( uniform 4X2 matrix of float) +0:58 'f' ( temp float) +0:59 move second child to first child ( temp float) +0:59 'f' ( temp float) +0:59 Convert int to float ( temp float) +0:59 'a' ( temp int) +0:60 'f' ( temp float) +0:61 'b' ( temp bool) +0:62 move second child to first child ( temp bool) +0:62 'b' ( temp bool) +0:62 'b' ( temp bool) +0:63 'f' ( temp float) +0:65 move second child to first child ( temp 4-component vector of float) +0:65 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:65 texture ( global 4-component vector of float) +0:65 's2D' ( uniform sampler2D) +0:65 'centTexCoord' ( centroid smooth in 2-component vector of float) +0:? Sequence +0:79 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:82 direct index ( temp float) +0:82 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:82 Constant: +0:82 0 (const int) +0:83 vector swizzle ( temp 2-component vector of float) +0:83 vector swizzle ( temp 4-component vector of float) +0:83 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:83 Sequence +0:83 Constant: +0:83 0 (const int) +0:83 Constant: +0:83 1 (const int) +0:83 Constant: +0:83 0 (const int) +0:83 Constant: +0:83 1 (const int) +0:83 Sequence +0:83 Constant: +0:83 0 (const int) +0:83 Constant: +0:83 1 (const int) +0:84 direct index ( temp float) +0:84 'centTexCoord' ( centroid smooth in 2-component vector of float) +0:84 Constant: +0:84 0 (const int) +0:85 move second child to first child ( temp bool) +0:85 Comma ( temp bool) +0:85 'a' ( temp int) +0:85 'b' ( temp bool) +0:85 Constant: +0:85 true (const bool) +0:91 Function Definition: main( ( global int) +0:91 Function Parameters: +0:92 Function Definition: main(i1; ( global void) +0:92 Function Parameters: +0:92 'a' ( in int) +0:97 Function Definition: foo(f1; ( global int) +0:97 Function Parameters: +0:97 'a' ( out float) +0:99 Sequence +0:99 Branch: Return with expression +0:99 Constant: +0:99 3.200000 +0:100 Function Call: foo(f1; ( global int) +0:100 'a' ( out float) +0:103 Function Definition: gen(vf3; ( global bool) +0:103 Function Parameters: +0:103 'v' ( in 3-component vector of float) +0:105 Sequence +0:105 Test condition and select ( temp void) +0:105 Condition +0:105 logical-and ( temp bool) +0:105 Compare Less Than ( temp bool) +0:105 Absolute value ( global float) +0:105 direct index ( temp float) +0:105 'v' ( in 3-component vector of float) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0.000100 +0:105 Compare Less Than ( temp bool) +0:105 Absolute value ( global float) +0:105 direct index ( temp float) +0:105 'v' ( in 3-component vector of float) +0:105 Constant: +0:105 1 (const int) +0:105 Constant: +0:105 0.000100 +0:105 true case +0:106 Branch: Return with expression +0:106 Constant: +0:106 true (const bool) +0:109 Function Definition: v1( ( global void) +0:109 Function Parameters: +0:113 Function Definition: v2( ( global void) +0:113 Function Parameters: +0:115 Sequence +0:115 Branch: Return +0:118 Function Definition: atest( ( global void) +0:118 Function Parameters: +0:120 Sequence +0:120 Sequence +0:120 move second child to first child ( temp 4-component vector of float) +0:120 'v' ( temp 4-component vector of float) +0:120 direct index ( smooth temp 4-component vector of float TexCoord) +0:120 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:120 Constant: +0:120 1 (const int) +0:121 add second child into first child ( temp 4-component vector of float) +0:121 'v' ( temp 4-component vector of float) +0:121 direct index ( smooth temp 4-component vector of float TexCoord) +0:121 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:121 Constant: +0:121 3 (const int) +0:139 Function Definition: foo123( ( global void) +0:139 Function Parameters: +0:141 Sequence +0:141 Sequence +0:141 move second child to first child ( temp 2X2 matrix of float) +0:141 'r2' ( temp 2X2 matrix of float) +0:141 component-wise multiply ( global 2X2 matrix of float) +0:141 'm22' ( global 2X2 matrix of float) +0:141 'm22' ( global 2X2 matrix of float) +0:142 Sequence +0:142 move second child to first child ( temp 3X3 matrix of float) +0:142 'r3' ( temp 3X3 matrix of float) +0:142 component-wise multiply ( global 3X3 matrix of float) +0:142 'm33' ( global 3X3 matrix of float) +0:142 'm33' ( global 3X3 matrix of float) +0:143 Sequence +0:143 move second child to first child ( temp 4X4 matrix of float) +0:143 'r4' ( temp 4X4 matrix of float) +0:143 component-wise multiply ( global 4X4 matrix of float) +0:143 'm44' ( global 4X4 matrix of float) +0:143 'm44' ( global 4X4 matrix of float) +0:145 Sequence +0:145 move second child to first child ( temp 2X3 matrix of float) +0:145 'r23' ( temp 2X3 matrix of float) +0:145 component-wise multiply ( global 2X3 matrix of float) +0:145 'm23' ( global 2X3 matrix of float) +0:145 'm23' ( global 2X3 matrix of float) +0:146 Sequence +0:146 move second child to first child ( temp 2X4 matrix of float) +0:146 'r24' ( temp 2X4 matrix of float) +0:146 component-wise multiply ( global 2X4 matrix of float) +0:146 'm24' ( global 2X4 matrix of float) +0:146 'm24' ( global 2X4 matrix of float) +0:147 Sequence +0:147 move second child to first child ( temp 3X2 matrix of float) +0:147 'r32' ( temp 3X2 matrix of float) +0:147 component-wise multiply ( global 3X2 matrix of float) +0:147 'm32' ( global 3X2 matrix of float) +0:147 'm32' ( global 3X2 matrix of float) +0:148 Sequence +0:148 move second child to first child ( temp 3X4 matrix of float) +0:148 'r34' ( temp 3X4 matrix of float) +0:148 component-wise multiply ( global 3X4 matrix of float) +0:148 'm34' ( global 3X4 matrix of float) +0:148 'm34' ( global 3X4 matrix of float) +0:149 Sequence +0:149 move second child to first child ( temp 4X2 matrix of float) +0:149 'r42' ( temp 4X2 matrix of float) +0:149 component-wise multiply ( global 4X2 matrix of float) +0:149 'm42' ( global 4X2 matrix of float) +0:149 'm42' ( global 4X2 matrix of float) +0:150 Sequence +0:150 move second child to first child ( temp 4X3 matrix of float) +0:150 'r43' ( temp 4X3 matrix of float) +0:150 component-wise multiply ( global 4X3 matrix of float) +0:150 'm43' ( global 4X3 matrix of float) +0:150 'm43' ( global 4X3 matrix of float) +0:156 Function Definition: matConst( ( global void) +0:156 Function Parameters: +0:? Sequence +0:162 Sequence +0:162 move second child to first child ( temp 4X4 matrix of float) +0:162 'm4g' ( temp 4X4 matrix of float) +0:162 Construct mat4 ( temp 4X4 matrix of float) +0:162 'v2' ( temp 2-component vector of float) +0:162 'v3' ( temp 3-component vector of float) +0:162 'v3' ( temp 3-component vector of float) +0:162 'v3' ( temp 3-component vector of float) +0:162 'v3' ( temp 3-component vector of float) +0:162 'v3' ( temp 3-component vector of float) +0:163 Sequence +0:163 move second child to first child ( temp 4X4 matrix of float) +0:163 'm4' ( temp 4X4 matrix of float) +0:163 Construct mat4 ( temp 4X4 matrix of float) +0:163 'v2' ( temp 2-component vector of float) +0:163 'v3' ( temp 3-component vector of float) +0:163 'v3' ( temp 3-component vector of float) +0:163 'v3' ( temp 3-component vector of float) +0:163 'v3' ( temp 3-component vector of float) +0:163 'v2' ( temp 2-component vector of float) +0:164 Sequence +0:164 move second child to first child ( temp 3X3 matrix of float) +0:164 'm3' ( temp 3X3 matrix of float) +0:164 Construct mat3 ( temp 3X3 matrix of float) +0:164 'm4' ( temp 4X4 matrix of float) +0:165 Sequence +0:165 move second child to first child ( temp 3X3 matrix of float) +0:165 'm3b1' ( temp 3X3 matrix of float) +0:165 Construct mat3 ( temp 3X3 matrix of float) +0:165 'm4' ( temp 4X4 matrix of float) +0:165 'v2' ( temp 2-component vector of float) +0:166 Sequence +0:166 move second child to first child ( temp 3X3 matrix of float) +0:166 'm3b2' ( temp 3X3 matrix of float) +0:166 Construct mat3 ( temp 3X3 matrix of float) +0:166 'm4' ( temp 4X4 matrix of float) +0:166 'm4' ( temp 4X4 matrix of float) +0:167 Sequence +0:167 move second child to first child ( temp 3X2 matrix of float) +0:167 'm32' ( temp 3X2 matrix of float) +0:167 Construct mat3x2 ( temp 3X2 matrix of float) +0:167 'm4' ( temp 4X4 matrix of float) +0:168 Sequence +0:168 move second child to first child ( temp 4X4 matrix of float) +0:168 'm4c' ( temp 4X4 matrix of float) +0:168 Construct mat4 ( temp 4X4 matrix of float) +0:168 'm32' ( temp 3X2 matrix of float) +0:169 Sequence +0:169 move second child to first child ( temp 3X3 matrix of float) +0:169 'm3s' ( temp 3X3 matrix of float) +0:169 Construct mat3 ( temp 3X3 matrix of float) +0:169 direct index ( temp float) +0:169 'v2' ( temp 2-component vector of float) +0:169 Constant: +0:169 0 (const int) +0:171 Sequence +0:171 move second child to first child ( temp 2-element array of 3X3 matrix of float) +0:171 'm3a1' ( temp 2-element array of 3X3 matrix of float) +0:171 Construct mat3 ( temp 2-element array of 3X3 matrix of float) +0:171 'm3s' ( temp 3X3 matrix of float) +0:171 'm3s' ( temp 3X3 matrix of float) +0:179 Function Definition: foo2323( ( global void) +0:179 Function Parameters: +0:? Sequence +0:184 move second child to first child ( temp 4-component vector of float) +0:184 'v' ( temp 4-component vector of float) +0:184 textureLod ( global 4-component vector of float) +0:184 's2D' ( uniform sampler2D) +0:184 'v2' ( temp 2-component vector of float) +0:184 'f' ( temp float) +0:185 move second child to first child ( temp 4-component vector of float) +0:185 'v' ( temp 4-component vector of float) +0:185 textureProjLod ( global 4-component vector of float) +0:185 's3D' ( uniform sampler3D) +0:185 'v' ( temp 4-component vector of float) +0:185 'f' ( temp float) +0:186 move second child to first child ( temp 4-component vector of float) +0:186 'v' ( temp 4-component vector of float) +0:186 textureProjLod ( global 4-component vector of float) +0:186 's1D' ( uniform sampler1D) +0:186 'v' ( temp 4-component vector of float) +0:186 'f' ( temp float) +0:187 move second child to first child ( temp 4-component vector of float) +0:187 'v' ( temp 4-component vector of float) +0:187 textureProjLod ( global 4-component vector of float) +0:187 's2DS' ( uniform sampler2DShadow) +0:187 'v' ( temp 4-component vector of float) +0:187 'f' ( temp float) +0:189 move second child to first child ( temp 4-component vector of float) +0:189 'v' ( temp 4-component vector of float) +0:189 textureGrad ( global 4-component vector of float) +0:189 's1D' ( uniform sampler1D) +0:189 'f' ( temp float) +0:189 'f' ( temp float) +0:189 'f' ( temp float) +0:190 move second child to first child ( temp 4-component vector of float) +0:190 'v' ( temp 4-component vector of float) +0:190 textureProjGrad ( global 4-component vector of float) +0:190 's2D' ( uniform sampler2D) +0:190 'v' ( temp 4-component vector of float) +0:190 'v2' ( temp 2-component vector of float) +0:190 'v2' ( temp 2-component vector of float) +0:191 move second child to first child ( temp 4-component vector of float) +0:191 'v' ( temp 4-component vector of float) +0:191 textureProjGrad ( global 4-component vector of float) +0:191 's2DS' ( uniform sampler2DShadow) +0:191 'v' ( temp 4-component vector of float) +0:191 'v2' ( temp 2-component vector of float) +0:191 'v2' ( temp 2-component vector of float) +0:196 Function Definition: foo2324( ( global void) +0:196 Function Parameters: +0:? Sequence +0:201 move second child to first child ( temp 4-component vector of float) +0:201 'v' ( temp 4-component vector of float) +0:201 textureLod ( global 4-component vector of float) +0:201 's2D' ( uniform sampler2D) +0:201 'v2' ( temp 2-component vector of float) +0:201 'f' ( temp float) +0:202 move second child to first child ( temp 4-component vector of float) +0:202 'v' ( temp 4-component vector of float) +0:202 textureProjLod ( global 4-component vector of float) +0:202 's3D' ( uniform sampler3D) +0:202 'v' ( temp 4-component vector of float) +0:202 'f' ( temp float) +0:203 move second child to first child ( temp 4-component vector of float) +0:203 'v' ( temp 4-component vector of float) +0:203 textureProjLod ( global 4-component vector of float) +0:203 's1D' ( uniform sampler1D) +0:203 'v' ( temp 4-component vector of float) +0:203 'f' ( temp float) +0:204 move second child to first child ( temp 4-component vector of float) +0:204 'v' ( temp 4-component vector of float) +0:204 textureProjLod ( global 4-component vector of float) +0:204 's2DS' ( uniform sampler2DShadow) +0:204 'v' ( temp 4-component vector of float) +0:204 'f' ( temp float) +0:206 move second child to first child ( temp 4-component vector of float) +0:206 'v' ( temp 4-component vector of float) +0:206 textureGrad ( global 4-component vector of float) +0:206 's1D' ( uniform sampler1D) +0:206 'f' ( temp float) +0:206 'f' ( temp float) +0:206 'f' ( temp float) +0:207 move second child to first child ( temp 4-component vector of float) +0:207 'v' ( temp 4-component vector of float) +0:207 textureProjGrad ( global 4-component vector of float) +0:207 's2D' ( uniform sampler2D) +0:207 'v' ( temp 4-component vector of float) +0:207 'v2' ( temp 2-component vector of float) +0:207 'v2' ( temp 2-component vector of float) +0:208 move second child to first child ( temp 4-component vector of float) +0:208 'v' ( temp 4-component vector of float) +0:208 textureProjGrad ( global 4-component vector of float) +0:208 's2DS' ( uniform sampler2DShadow) +0:208 'v' ( temp 4-component vector of float) +0:208 'v2' ( temp 2-component vector of float) +0:208 'v2' ( temp 2-component vector of float) +0:209 'v' ( temp 4-component vector of float) +0:214 Function Definition: foo121111( ( global void) +0:214 Function Parameters: +0:? Sequence +0:217 Sequence +0:217 move second child to first child ( temp 4-component vector of float) +0:217 'v' ( temp 4-component vector of float) +0:217 texture ( global 4-component vector of float) +0:217 's2DRbad' ( uniform sampler2DRect) +0:217 'v2' ( temp 2-component vector of float) +0:225 Function Definition: foo12111( ( global void) +0:225 Function Parameters: +0:? Sequence +0:231 move second child to first child ( temp 4-component vector of float) +0:231 'v' ( temp 4-component vector of float) +0:231 texture ( global 4-component vector of float) +0:231 's2DR' ( uniform sampler2DRect) +0:231 'v2' ( temp 2-component vector of float) +0:232 move second child to first child ( temp 4-component vector of float) +0:232 'v' ( temp 4-component vector of float) +0:232 textureProj ( global 4-component vector of float) +0:232 's2DR' ( uniform sampler2DRect) +0:232 'v3' ( temp 3-component vector of float) +0:233 move second child to first child ( temp 4-component vector of float) +0:233 'v' ( temp 4-component vector of float) +0:233 textureProj ( global 4-component vector of float) +0:233 's2DR' ( uniform sampler2DRect) +0:233 'v4' ( temp 4-component vector of float) +0:234 move second child to first child ( temp 4-component vector of float) +0:234 'v' ( temp 4-component vector of float) +0:234 texture ( global 4-component vector of float) +0:234 's2DRS' ( uniform sampler2DRectShadow) +0:234 'v3' ( temp 3-component vector of float) +0:235 move second child to first child ( temp 4-component vector of float) +0:235 'v' ( temp 4-component vector of float) +0:235 textureProj ( global 4-component vector of float) +0:235 's2DRS' ( uniform sampler2DRectShadow) +0:235 'v4' ( temp 4-component vector of float) +0:237 move second child to first child ( temp 4-component vector of float) +0:237 'v' ( temp 4-component vector of float) +0:237 textureProjGrad ( global 4-component vector of float) +0:237 's2DRS' ( uniform sampler2DRectShadow) +0:237 'v' ( temp 4-component vector of float) +0:237 'v2' ( temp 2-component vector of float) +0:237 'v2' ( temp 2-component vector of float) +0:240 Function Definition: voidTernary( ( global void) +0:240 Function Parameters: +0:? Sequence +0:243 Test condition and select ( temp void) +0:243 Condition +0:243 'b' ( temp bool) +0:243 true case +0:243 Function Call: foo121111( ( global void) +0:243 false case +0:243 Function Call: foo12111( ( global void) +0:244 Constant: +0:244 4 (const int) +0:245 Function Call: foo12111( ( global void) +0:? Linker Objects +0:? 'lowp' ( global float) +0:? 'mediump' ( global float) +0:? 'highp' ( global float) +0:? 'precision' ( global float) +0:? 'i' ( smooth in 4-component vector of float) +0:? 'o' ( out 4-component vector of float) +0:? 's2D' ( uniform sampler2D) +0:? 'centTexCoord' ( centroid smooth in 2-component vector of float) +0:? 'm' ( uniform 4X2 matrix of float) +0:? 'imageBuffer' ( global float) +0:? 'uimage2DRect' ( global float) +0:? 'a' ( temp int) +0:? 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:? 'm22' ( global 2X2 matrix of float) +0:? 'm23' ( global 2X3 matrix of float) +0:? 'm24' ( global 2X4 matrix of float) +0:? 'm32' ( global 3X2 matrix of float) +0:? 'm33' ( global 3X3 matrix of float) +0:? 'm34' ( global 3X4 matrix of float) +0:? 'm42' ( global 4X2 matrix of float) +0:? 'm43' ( global 4X3 matrix of float) +0:? 'm44' ( global 4X4 matrix of float) +0:? 's3D' ( uniform sampler3D) +0:? 's1D' ( uniform sampler1D) +0:? 's2DS' ( uniform sampler2DShadow) +0:? 's2DRbad' ( uniform sampler2DRect) +0:? 's2DR' ( uniform sampler2DRect) +0:? 's2DRS' ( uniform sampler2DRectShadow) +0:? 'halfFloat1' ( global float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Recursion detected: + foo(f1; calling foo(f1; + +Shader version: 120 +Requested GL_ARB_shader_texture_lod +Requested GL_ARB_texture_rectangle +ERROR: node is still EOpNull! +0:92 Function Definition: main(i1; ( global void) +0:92 Function Parameters: +0:92 'a' ( in int) +0:? Linker Objects +0:? 'lowp' ( global float) +0:? 'mediump' ( global float) +0:? 'highp' ( global float) +0:? 'precision' ( global float) +0:? 'i' ( smooth in 4-component vector of float) +0:? 'o' ( out 4-component vector of float) +0:? 's2D' ( uniform sampler2D) +0:? 'centTexCoord' ( centroid smooth in 2-component vector of float) +0:? 'm' ( uniform 4X2 matrix of float) +0:? 'imageBuffer' ( global float) +0:? 'uimage2DRect' ( global float) +0:? 'a' ( temp int) +0:? 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:? 'm22' ( global 2X2 matrix of float) +0:? 'm23' ( global 2X3 matrix of float) +0:? 'm24' ( global 2X4 matrix of float) +0:? 'm32' ( global 3X2 matrix of float) +0:? 'm33' ( global 3X3 matrix of float) +0:? 'm34' ( global 3X4 matrix of float) +0:? 'm42' ( global 4X2 matrix of float) +0:? 'm43' ( global 4X3 matrix of float) +0:? 'm44' ( global 4X4 matrix of float) +0:? 's3D' ( uniform sampler3D) +0:? 's1D' ( uniform sampler1D) +0:? 's2DS' ( uniform sampler2DShadow) +0:? 's2DRbad' ( uniform sampler2DRect) +0:? 's2DR' ( uniform sampler2DRect) +0:? 's2DRS' ( uniform sampler2DRectShadow) +0:? 'halfFloat1' ( global float) + diff --git a/deps/glslang/glslang/Test/baseResults/120.vert.out b/deps/glslang/glslang/Test/baseResults/120.vert.out new file mode 100644 index 0000000000..5a91ed664e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/120.vert.out @@ -0,0 +1,505 @@ +120.vert +ERROR: 0:3: 'in for stage inputs' : not supported for this version or the enabled extensions +ERROR: 0:4: 'out for stage outputs' : not supported for this version or the enabled extensions +ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable +ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:12: '' : replicated qualifiers +ERROR: 0:12: 'foo' : identifier not previously declared +ERROR: 0:21: 'gl_ClipDistance' : undeclared identifier +ERROR: 0:21: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector +ERROR: 0:21: 'assign' : l-value required (can't modify a const) +ERROR: 0:28: 'length' : array must be declared with a size before using this method +ERROR: 0:31: 'length' : incomplete method syntax +ERROR: 0:32: 'length' : method does not accept any arguments +ERROR: 0:33: '.' : cannot apply to an array: flizbit +ERROR: 0:33: '=' : cannot convert from ' temp 7-element array of float' to ' temp int' +ERROR: 0:34: '.' : cannot apply to an array: flizbit +ERROR: 0:34: 'f' : can't use function syntax on variable +ERROR: 0:34: 'a4' : redefinition +ERROR: 0:35: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:36: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:39: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:40: 'constructor' : array constructor needs one argument per array element +ERROR: 0:40: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:40: '=' : cannot convert from ' const float' to ' temp 2-element array of 3-element array of float' +ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:41: 'constructor' : array constructor needs one argument per array element +ERROR: 0:41: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:41: '=' : cannot convert from ' const float' to ' temp 2-element array of 3-element array of float' +ERROR: 0:50: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:51: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:52: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:53: 'arrays of arrays' : not supported with this profile: none +ERROR: 0:56: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1 +ERROR: 0:57: 'overloadA' : overloaded functions must have the same return type +ERROR: 0:87: 'overloadC' : no matching overloaded function found +ERROR: 0:90: 'overloadC' : no matching overloaded function found +ERROR: 0:95: 'overloadD' : ambiguous function signature match: multiple signatures match under implicit type conversion +ERROR: 0:98: 'overloadB' : can't use function syntax on variable +ERROR: 0:106: 'overloadC' : no matching overloaded function found +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 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 +ERROR: 0:176: 'bit shift left' : not supported for this version or the enabled extensions +ERROR: 0:176: 'bit shift right' : not supported for this version or the enabled extensions +ERROR: 0:176: 'bitwise and' : not supported for this version or the enabled extensions +ERROR: 0:176: 'bitwise inclusive or' : not supported for this version or the enabled extensions +ERROR: 0:179: 'modf' : no matching overloaded function found +ERROR: 0:179: '=' : cannot convert from ' const float' to ' temp 3-component vector of float' +ERROR: 0:180: 'trunc' : no matching overloaded function found +ERROR: 0:181: 'round' : no matching overloaded function found +ERROR: 0:181: '=' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:182: 'roundEven' : no matching overloaded function found +ERROR: 0:182: '=' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:183: 'isnan' : no matching overloaded function found +ERROR: 0:183: '=' : cannot convert from ' const float' to ' temp 2-component vector of bool' +ERROR: 0:184: 'isinf' : no matching overloaded function found +ERROR: 0:184: '=' : cannot convert from ' const float' to ' temp 4-component vector of bool' +ERROR: 0:186: 'sinh' : no matching overloaded function found +ERROR: 0:187: 'cosh' : no matching overloaded function found +ERROR: 0:187: 'tanh' : no matching overloaded function found +ERROR: 0:188: 'c4D' : undeclared identifier +ERROR: 0:188: 'asinh' : no matching overloaded function found +ERROR: 0:188: 'acosh' : no matching overloaded function found +ERROR: 0:189: 'atanh' : no matching overloaded function found +ERROR: 0:191: 'gl_VertexID' : undeclared identifier +ERROR: 0:191: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:192: 'gl_ClipDistance' : undeclared identifier +ERROR: 0:192: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector +ERROR: 0:192: 'assign' : l-value required (can't modify a const) +ERROR: 0:195: 'gl_ModelViewMatrix' : identifiers starting with "gl_" are reserved +ERROR: 0:200: 'token pasting (##)' : not supported for this version or the enabled extensions +ERROR: 0:203: 'token pasting (##)' : not supported for this version or the enabled extensions +ERROR: 80 compilation errors. No code generated. + + +Shader version: 120 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 move second child to first child ( temp 2-component vector of float) +0:17 'centTexCoord' ( invariant smooth out 2-component vector of float) +0:17 'attv2' ( in 2-component vector of float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_Position' ( invariant gl_Position 4-component vector of float Position) +0:18 'attv4' ( in 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:20 'attv4' ( in 4-component vector of float) +0:21 move second child to first child ( temp float) +0:21 Constant: +0:21 0.000000 +0:21 Constant: +0:21 0.200000 +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'gl_Position' ( invariant gl_Position 4-component vector of float Position) +0:25 direct index ( temp 4-component vector of float) +0:25 'b' ( temp 12-element array of 4-component vector of float) +0:25 Constant: +0:25 11 (const int) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'a1' ( temp int) +0:28 Constant: +0:28 1 (const int) +0:30 Sequence +0:30 move second child to first child ( temp int) +0:30 'aa' ( temp int) +0:30 Constant: +0:30 7 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'a2' ( temp int) +0:32 Sequence +0:32 move second child to first child ( temp int) +0:32 'a3' ( temp int) +0:32 Constant: +0:32 1 (const int) +0:43 move second child to first child ( temp float) +0:43 'gl_PointSize' ( invariant gl_PointSize float PointSize) +0:43 Constant: +0:43 3.800000 +0:61 Function Definition: overloadB(f1;f1; ( global void) +0:61 Function Parameters: +0:61 '' ( in float) +0:61 '' ( const (read only) float) +0:78 Function Definition: foo( ( global void) +0:78 Function Parameters: +0:? Sequence +0:83 Function Call: overloadB(f1;f1; ( global void) +0:83 'f' ( temp float) +0:83 'f' ( temp float) +0:84 Function Call: overloadB(f1;f1; ( global void) +0:84 'f' ( temp float) +0:84 Constant: +0:84 2.000000 +0:85 Function Call: overloadB(f1;f1; ( global void) +0:85 Constant: +0:85 1.000000 +0:85 Convert int to float ( temp float) +0:85 'i' ( temp int) +0:87 Constant: +0:87 0.000000 +0:88 Function Call: overloadC(i1;i1; ( global 2-component vector of float) +0:88 Constant: +0:88 1 (const int) +0:88 'i' ( temp int) +0:89 Function Call: overloadC(vf2;vf2; ( global 2-component vector of float) +0:89 Constant: +0:89 1.000000 +0:89 1.000000 +0:89 Constant: +0:89 2.000000 +0:89 2.000000 +0:90 Constant: +0:90 0.000000 +0:91 Function Call: overloadC(vf2;vf2; ( global 2-component vector of float) +0:91 Constant: +0:91 1.000000 +0:91 1.000000 +0:91 Constant: +0:91 2.000000 +0:91 2.000000 +0:93 Function Call: overloadD(i1;f1; ( global 3-component vector of float) +0:93 'i' ( temp int) +0:93 'f' ( temp float) +0:94 Function Call: overloadD(f1;i1; ( global 3-component vector of float) +0:94 'f' ( temp float) +0:94 'i' ( temp int) +0:95 Function Call: overloadD(f1;i1; ( global 3-component vector of float) +0:95 Convert int to float ( temp float) +0:95 'i' ( temp int) +0:95 'i' ( temp int) +0:98 Constant: +0:98 0.000000 +0:100 Constant: +0:100 0.841471 +0:101 texture ( global 4-component vector of float) +0:101 's2D' ( uniform sampler2D) +0:101 Constant: +0:101 0.000000 +0:101 0.000000 +0:102 clamp ( global 4-component vector of float) +0:102 'attv4' ( in 4-component vector of float) +0:102 Constant: +0:102 0.000000 +0:102 Constant: +0:102 1.000000 +0:103 clamp ( global 4-component vector of float) +0:103 Convert int to float ( temp 4-component vector of float) +0:103 Convert float to int ( temp 4-component vector of int) +0:103 'attv4' ( in 4-component vector of float) +0:103 Constant: +0:103 0.000000 +0:103 Constant: +0:103 1.000000 +0:106 Constant: +0:106 0.000000 +0:107 Constant: +0:107 0.000000 +0:108 Constant: +0:108 0.000000 +0:109 Function Call: overloadE(vf2; ( global 3-component vector of float) +0:109 Constant: +0:109 3.300000 +0:109 3.300000 +0:110 Function Call: overloadE(mf22; ( global 3-component vector of float) +0:110 Constant: +0:110 0.500000 +0:110 0.000000 +0:110 0.000000 +0:110 0.500000 +0:111 Constant: +0:111 0.000000 +0:112 Function Call: overloadE(vf2; ( global 3-component vector of float) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:115 Function Call: overloadE(f1[2]; ( global 3-component vector of float) +0:115 'b' ( temp 2-element array of float) +0:117 Constant: +0:117 0.000000 +0:118 Function Call: overloadF(i1; ( global 3-component vector of float) +0:118 Constant: +0:118 1 (const int) +0:128 Function Definition: foo2( ( global void) +0:128 Function Parameters: +0:? Sequence +0:135 Comma ( global void) +0:135 Function Call: outFun(f1;vi2;i1;f1; ( global void) +0:135 Convert int to float ( temp float) +0:135 'i' ( temp int) +0:135 'tempArg' ( temp 2-component vector of int) +0:135 'i' ( temp int) +0:135 'f' ( temp float) +0:135 move second child to first child ( temp 2-component vector of float) +0:135 'v2' ( temp 2-component vector of float) +0:135 Convert int to float ( temp 2-component vector of float) +0:135 'tempArg' ( temp 2-component vector of int) +0:136 Comma ( global int) +0:136 move second child to first child ( temp int) +0:136 'tempReturn' ( global int) +0:136 Function Call: outFunRet(f1;i1;i1;vi4; ( global int) +0:136 Convert int to float ( temp float) +0:136 'i' ( temp int) +0:136 'tempArg' ( temp int) +0:136 'i' ( temp int) +0:136 'tempArg' ( temp 4-component vector of int) +0:136 move second child to first child ( temp float) +0:136 'f' ( temp float) +0:136 Convert int to float ( temp float) +0:136 'tempArg' ( temp int) +0:136 move second child to first child ( temp 4-component vector of float) +0:136 'v4' ( temp 4-component vector of float) +0:136 Convert int to float ( temp 4-component vector of float) +0:136 'tempArg' ( temp 4-component vector of int) +0:136 'tempReturn' ( global int) +0:137 Sequence +0:137 move second child to first child ( temp float) +0:137 'ret' ( temp float) +0:137 Convert int to float ( temp float) +0:137 Comma ( global int) +0:137 move second child to first child ( temp int) +0:137 'tempReturn' ( global int) +0:137 Function Call: outFunRet(f1;i1;i1;vi4; ( global int) +0:137 Convert int to float ( temp float) +0:137 'i' ( temp int) +0:137 'tempArg' ( temp int) +0:137 'i' ( temp int) +0:137 'tempArg' ( temp 4-component vector of int) +0:137 move second child to first child ( temp float) +0:137 'f' ( temp float) +0:137 Convert int to float ( temp float) +0:137 'tempArg' ( temp int) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 'v4' ( temp 4-component vector of float) +0:137 Convert int to float ( temp 4-component vector of float) +0:137 'tempArg' ( temp 4-component vector of int) +0:137 'tempReturn' ( global int) +0:138 Sequence +0:138 move second child to first child ( temp 2-component vector of float) +0:138 'ret2' ( temp 2-component vector of float) +0:138 Convert int to float ( temp 2-component vector of float) +0:138 Comma ( global 2-component vector of int) +0:138 move second child to first child ( temp 2-component vector of int) +0:138 'tempReturn' ( global 2-component vector of int) +0:138 Function Call: outFunRet(f1;vi4;i1;vi4; ( global 2-component vector of int) +0:138 Convert int to float ( temp float) +0:138 'i' ( temp int) +0:138 'tempArg' ( temp 4-component vector of int) +0:138 'i' ( temp int) +0:138 'tempArg' ( temp 4-component vector of int) +0:138 move second child to first child ( temp 4-component vector of float) +0:138 'v4' ( temp 4-component vector of float) +0:138 Convert int to float ( temp 4-component vector of float) +0:138 'tempArg' ( temp 4-component vector of int) +0:138 move second child to first child ( temp 4-component vector of float) +0:138 'v4' ( temp 4-component vector of float) +0:138 Convert int to float ( temp 4-component vector of float) +0:138 'tempArg' ( temp 4-component vector of int) +0:138 'tempReturn' ( global 2-component vector of int) +0:139 Sequence +0:139 move second child to first child ( temp bool) +0:139 'b' ( temp bool) +0:139 any ( global bool) +0:139 Compare Less Than ( global 4-component vector of bool) +0:139 'v4' ( temp 4-component vector of float) +0:139 'attv4' ( in 4-component vector of float) +0:142 Function Definition: noise( ( global void) +0:142 Function Parameters: +0:144 Sequence +0:144 Sequence +0:144 move second child to first child ( temp float) +0:144 'f1' ( temp float) +0:144 noise ( global float) +0:144 Constant: +0:144 1.000000 +0:145 Sequence +0:145 move second child to first child ( temp 2-component vector of float) +0:145 'f2' ( temp 2-component vector of float) +0:145 noise ( global 2-component vector of float) +0:145 Constant: +0:145 1.000000 +0:145 1.000000 +0:146 Sequence +0:146 move second child to first child ( temp 3-component vector of float) +0:146 'f3' ( temp 3-component vector of float) +0:146 noise ( global 3-component vector of float) +0:146 Constant: +0:146 1.000000 +0:146 1.000000 +0:146 1.000000 +0:147 Sequence +0:147 move second child to first child ( temp 4-component vector of float) +0:147 'f4' ( temp 4-component vector of float) +0:147 noise ( global 4-component vector of float) +0:147 Constant: +0:147 1.000000 +0:147 1.000000 +0:147 1.000000 +0:147 1.000000 +0:162 Function Definition: foo213( ( global void) +0:162 Function Parameters: +0:164 Sequence +0:164 Sequence +0:164 move second child to first child ( temp float) +0:164 'f' ( temp float) +0:164 Constant: +0:164 3.000000 +0:165 switch +0:165 condition +0:165 'c' ( uniform int) +0:165 body +0:165 Sequence +0:166 case: with expression +0:166 Constant: +0:166 1 (const int) +0:? Sequence +0:167 move second child to first child ( temp float) +0:167 'f' ( temp float) +0:167 sine ( global float) +0:167 'f' ( temp float) +0:168 Branch: Break +0:169 case: with expression +0:169 Constant: +0:169 2 (const int) +0:? Sequence +0:170 move second child to first child ( temp float) +0:170 'f' ( temp float) +0:170 component-wise multiply ( temp float) +0:170 'f' ( temp float) +0:170 'f' ( temp float) +0:171 default: +0:? Sequence +0:172 move second child to first child ( temp float) +0:172 'f' ( temp float) +0:172 Constant: +0:172 3.000000 +0:176 inclusive-or ( temp int) +0:176 left-shift ( temp int) +0:176 'i' ( temp int) +0:176 Constant: +0:176 3 (const int) +0:176 Constant: +0:176 69 (const int) +0:180 Sequence +0:180 move second child to first child ( temp float) +0:180 't' ( temp float) +0:180 Constant: +0:180 0.000000 +0:186 Constant: +0:186 0.000000 +0:188 Constant: +0:188 0.000000 +0:189 Constant: +0:189 0.000000 +0:192 move second child to first child ( temp float) +0:192 Constant: +0:192 0.000000 +0:192 Constant: +0:192 0.300000 +0:? Linker Objects +0:? 'i' ( in 4-component vector of float) +0:? 'o' ( smooth out 4-component vector of float) +0:? 'attv2' ( in 2-component vector of float) +0:? 'attv4' ( in 4-component vector of float) +0:? 's2D' ( uniform sampler2D) +0:? 'centTexCoord' ( invariant smooth out 2-component vector of float) +0:? 'initted' ( uniform float) +0:? 3.400000 +0:? 'concall' ( const float) +0:? 0.295520 +0:? 'gl_TexCoord' ( smooth out 35-element array of 4-component vector of float TexCoord) +0:? 'c' ( uniform int) +0:? 'x' ( in 2-component vector of int) +0:? 'v2a' ( in 2-component vector of float) +0:? 'c1D' ( in float) +0:? 'c2D' ( in 2-component vector of float) +0:? 'c3D' ( in 3-component vector of float) +0:? 'v4' ( uniform 4-component vector of float) +0:? 'abcdef' ( global int) +0:? 'qrstuv' ( global int) + + +Linked vertex stage: + + +Shader version: 120 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 move second child to first child ( temp 2-component vector of float) +0:17 'centTexCoord' ( invariant smooth out 2-component vector of float) +0:17 'attv2' ( in 2-component vector of float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_Position' ( invariant gl_Position 4-component vector of float Position) +0:18 'attv4' ( in 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:20 'attv4' ( in 4-component vector of float) +0:21 move second child to first child ( temp float) +0:21 Constant: +0:21 0.000000 +0:21 Constant: +0:21 0.200000 +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'gl_Position' ( invariant gl_Position 4-component vector of float Position) +0:25 direct index ( temp 4-component vector of float) +0:25 'b' ( temp 12-element array of 4-component vector of float) +0:25 Constant: +0:25 11 (const int) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'a1' ( temp int) +0:28 Constant: +0:28 1 (const int) +0:30 Sequence +0:30 move second child to first child ( temp int) +0:30 'aa' ( temp int) +0:30 Constant: +0:30 7 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'a2' ( temp int) +0:32 Sequence +0:32 move second child to first child ( temp int) +0:32 'a3' ( temp int) +0:32 Constant: +0:32 1 (const int) +0:43 move second child to first child ( temp float) +0:43 'gl_PointSize' ( invariant gl_PointSize float PointSize) +0:43 Constant: +0:43 3.800000 +0:? Linker Objects +0:? 'i' ( in 4-component vector of float) +0:? 'o' ( smooth out 4-component vector of float) +0:? 'attv2' ( in 2-component vector of float) +0:? 'attv4' ( in 4-component vector of float) +0:? 's2D' ( uniform sampler2D) +0:? 'centTexCoord' ( invariant smooth out 2-component vector of float) +0:? 'initted' ( uniform float) +0:? 3.400000 +0:? 'concall' ( const float) +0:? 0.295520 +0:? 'gl_TexCoord' ( smooth out 35-element array of 4-component vector of float TexCoord) +0:? 'c' ( uniform int) +0:? 'x' ( in 2-component vector of int) +0:? 'v2a' ( in 2-component vector of float) +0:? 'c1D' ( in float) +0:? 'c2D' ( in 2-component vector of float) +0:? 'c3D' ( in 3-component vector of float) +0:? 'v4' ( uniform 4-component vector of float) +0:? 'abcdef' ( global int) +0:? 'qrstuv' ( global int) + diff --git a/deps/glslang/glslang/Test/baseResults/130.frag.out b/deps/glslang/glslang/Test/baseResults/130.frag.out new file mode 100644 index 0000000000..81d055befe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/130.frag.out @@ -0,0 +1,460 @@ +130.frag +ERROR: 0:25: 'textureGather(...)' : not supported for this version or the enabled extensions +ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Color +ERROR: 0:38: 'gl_Color' : redeclaring non-array as array +ERROR: 0:39: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Color +WARNING: 0:45: extension GL_ARB_texture_gather is being used for textureGather(...) +ERROR: 0:62: '<' : wrong operand types: no operation '<' exists that takes a left-hand operand of type ' temp 3-component vector of bool' and a right operand of type ' temp 3-component vector of bool' (or there is no acceptable conversion) +ERROR: 0:63: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' temp 3-component vector of uint' and a right operand of type ' temp 3-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:64: '>=' : wrong operand types: no operation '>=' exists that takes a left-hand operand of type ' const 2-component vector of uint' and a right operand of type ' const 2-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:80: 'textureGatherOffset' : no matching overloaded function found +ERROR: 0:80: 'assign' : cannot convert from ' const float' to ' temp 4-component vector of float' +ERROR: 0:81: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions +ERROR: 0:84: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions +ERROR: 0:85: 'textureGatherOffset(...)' : not supported for this version or the enabled extensions +WARNING: 0:88: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 +ERROR: 0:120: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:126: 'uniform block' : not supported for this version or the enabled extensions +ERROR: 0:140: 'length' : does not operate on this type: temp bool +ERROR: 0:140: 'boolb' : can't use function syntax on variable +ERROR: 0:141: 'length' : does not operate on this type: temp float +ERROR: 0:141: '' : function call, method, or subroutine call expected +ERROR: 0:141: '' : no matching overloaded function found +ERROR: 0:142: 'length' : incomplete method syntax +ERROR: 0:143: 'length' : method does not accept any arguments +ERROR: 0:146: 'gl_FogFragCoord' : identifiers starting with "gl_" are reserved +ERROR: 0:151: 'int' : must be qualified as flat in +ERROR: 0:151: 'redeclaration' : cannot change the type of gl_FogFragCoord +ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the enabled extensions +ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions +ERROR: 0:154: 'iimage2D' : Reserved word. +ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in' +ERROR: 28 compilation errors. No code generated. + + +Shader version: 130 +Requested GL_ARB_gpu_shader5 +Requested GL_ARB_separate_shader_objects +Requested GL_ARB_shader_image_load_store +Requested GL_ARB_shading_language_420pack +Requested GL_ARB_texture_cube_map_array +Requested GL_ARB_texture_gather +Requested GL_ARB_texture_rectangle +using early_fragment_tests +ERROR: node is still EOpNull! +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'clip' ( temp float) +0:18 direct index ( smooth temp float ClipDistance) +0:18 'gl_ClipDistance' ( smooth in unsized 4-element array of float ClipDistance) +0:18 Constant: +0:18 3 (const int) +0:23 Function Definition: foo( ( global void) +0:23 Function Parameters: +0:25 Sequence +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 's' ( temp 4-component vector of float) +0:25 textureGather ( global 4-component vector of float) +0:25 'sampC' ( uniform samplerCube) +0:25 Constant: +0:25 0.200000 +0:25 0.200000 +0:25 0.200000 +0:30 Function Definition: bar( ( global void) +0:30 Function Parameters: +0:32 Sequence +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 's' ( temp 4-component vector of float) +0:32 textureGather ( global 4-component vector of float) +0:32 'sampC' ( uniform samplerCube) +0:32 Constant: +0:32 0.200000 +0:32 0.200000 +0:32 0.200000 +0:43 Function Definition: bar2( ( global void) +0:43 Function Parameters: +0:45 Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 's' ( temp 4-component vector of float) +0:45 textureGather ( global 4-component vector of float) +0:45 'sampC' ( uniform samplerCube) +0:45 Constant: +0:45 0.200000 +0:45 0.200000 +0:45 0.200000 +0:49 move second child to first child ( temp 3-component vector of bool) +0:49 'b3' ( temp 3-component vector of bool) +0:49 Compare Less Than ( global 3-component vector of bool) +0:49 'uv3' ( temp 3-component vector of uint) +0:49 'uv3' ( temp 3-component vector of uint) +0:50 move second child to first child ( temp 3-component vector of bool) +0:50 'b3' ( temp 3-component vector of bool) +0:50 Equal ( global 3-component vector of bool) +0:50 'uv3' ( temp 3-component vector of uint) +0:50 'uv3' ( temp 3-component vector of uint) +0:56 direct index ( temp int) +0:56 'a1' ( temp 1-element array of int) +0:56 Constant: +0:56 0 (const int) +0:57 direct index ( temp int) +0:57 'a2' ( temp 1-element array of int) +0:57 Constant: +0:57 0 (const int) +0:60 direct index ( temp int) +0:60 'a3' ( temp 4-element array of int) +0:60 Constant: +0:60 3 (const int) +0:61 Compare Not Equal ( temp bool) +0:61 'b3' ( temp 3-component vector of bool) +0:61 'b3' ( temp 3-component vector of bool) +0:62 Constant: +0:62 false (const bool) +0:63 Constant: +0:63 false (const bool) +0:64 Constant: +0:64 false (const bool) +0:65 Constant: +0:65 true (const bool) +0:66 Constant: +0:66 false (const bool) +0:77 Function Definition: bar23( ( global void) +0:77 Function Parameters: +0:? Sequence +0:80 's' ( temp 4-component vector of float) +0:81 move second child to first child ( temp 4-component vector of float) +0:81 's' ( temp 4-component vector of float) +0:81 textureGatherOffset ( global 4-component vector of float) +0:81 'samp2DR' ( uniform sampler2DRect) +0:81 Constant: +0:81 0.300000 +0:81 0.300000 +0:81 Constant: +0:81 1 (const int) +0:81 1 (const int) +0:82 move second child to first child ( temp 4-component vector of float) +0:82 's' ( temp 4-component vector of float) +0:82 textureGatherOffset ( global 4-component vector of float) +0:82 'samp2D' ( uniform sampler2D) +0:82 Constant: +0:82 0.300000 +0:82 0.300000 +0:82 Constant: +0:82 1 (const int) +0:82 1 (const int) +0:83 move second child to first child ( temp 4-component vector of float) +0:83 's' ( temp 4-component vector of float) +0:83 textureGatherOffset ( global 4-component vector of float) +0:83 'samp2DA' ( uniform sampler2DArray) +0:83 Constant: +0:83 0.300000 +0:83 0.300000 +0:83 0.300000 +0:83 Constant: +0:83 1 (const int) +0:83 1 (const int) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 's' ( temp 4-component vector of float) +0:84 textureGatherOffset ( global 4-component vector of float) +0:84 'samp2DS' ( uniform sampler2DShadow) +0:84 Constant: +0:84 0.300000 +0:84 0.300000 +0:84 Constant: +0:84 1.300000 +0:84 Constant: +0:84 1 (const int) +0:84 1 (const int) +0:85 move second child to first child ( temp 4-component vector of float) +0:85 's' ( temp 4-component vector of float) +0:85 textureGatherOffset ( global 4-component vector of float) +0:85 'samp2D' ( uniform sampler2D) +0:85 Constant: +0:85 0.300000 +0:85 0.300000 +0:85 Constant: +0:85 1 (const int) +0:85 1 (const int) +0:85 Constant: +0:85 2 (const int) +0:90 Function Definition: bar234( ( global void) +0:90 Function Parameters: +0:? Sequence +0:93 move second child to first child ( temp 4-component vector of float) +0:93 's' ( temp 4-component vector of float) +0:93 textureGatherOffset ( global 4-component vector of float) +0:93 'samp2D' ( uniform sampler2D) +0:93 Constant: +0:93 0.300000 +0:93 0.300000 +0:93 Constant: +0:93 1 (const int) +0:93 1 (const int) +0:94 move second child to first child ( temp 4-component vector of float) +0:94 's' ( temp 4-component vector of float) +0:94 textureGatherOffset ( global 4-component vector of float) +0:94 'samp2DA' ( uniform sampler2DArray) +0:94 Constant: +0:94 0.300000 +0:94 0.300000 +0:94 0.300000 +0:94 Constant: +0:94 1 (const int) +0:94 1 (const int) +0:95 move second child to first child ( temp 4-component vector of float) +0:95 's' ( temp 4-component vector of float) +0:95 textureGatherOffset ( global 4-component vector of float) +0:95 'samp2DR' ( uniform sampler2DRect) +0:95 Constant: +0:95 0.300000 +0:95 0.300000 +0:95 Constant: +0:95 1 (const int) +0:95 1 (const int) +0:96 move second child to first child ( temp 4-component vector of float) +0:96 's' ( temp 4-component vector of float) +0:96 textureGatherOffset ( global 4-component vector of float) +0:96 'samp2DS' ( uniform sampler2DShadow) +0:96 Constant: +0:96 0.300000 +0:96 0.300000 +0:96 Constant: +0:96 1.300000 +0:96 Constant: +0:96 1 (const int) +0:96 1 (const int) +0:97 move second child to first child ( temp 4-component vector of float) +0:97 's' ( temp 4-component vector of float) +0:97 textureGatherOffset ( global 4-component vector of float) +0:97 'samp2D' ( uniform sampler2D) +0:97 Constant: +0:97 0.300000 +0:97 0.300000 +0:97 Constant: +0:97 1 (const int) +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:107 Function Definition: bar235( ( global void) +0:107 Function Parameters: +0:109 Sequence +0:109 Sequence +0:109 move second child to first child ( temp 3-component vector of int) +0:109 'a' ( temp 3-component vector of int) +0:109 textureSize ( global 3-component vector of int) +0:109 'Sca' ( uniform samplerCubeArray) +0:109 Constant: +0:109 3 (const int) +0:110 Sequence +0:110 move second child to first child ( temp 4-component vector of float) +0:110 'b' ( temp 4-component vector of float) +0:110 texture ( global 4-component vector of float) +0:110 'Sca' ( uniform samplerCubeArray) +0:110 'i' ( smooth in 4-component vector of float) +0:111 Sequence +0:111 move second child to first child ( temp 4-component vector of int) +0:111 'c' ( temp 4-component vector of int) +0:111 texture ( global 4-component vector of int) +0:111 'Isca' ( uniform isamplerCubeArray) +0:111 'i' ( smooth in 4-component vector of float) +0:111 Constant: +0:111 0.700000 +0:112 Sequence +0:112 move second child to first child ( temp 4-component vector of uint) +0:112 'd' ( temp 4-component vector of uint) +0:112 texture ( global 4-component vector of uint) +0:112 'Usca' ( uniform usamplerCubeArray) +0:112 'i' ( smooth in 4-component vector of float) +0:114 move second child to first child ( temp 4-component vector of float) +0:114 'b' ( temp 4-component vector of float) +0:114 textureLod ( global 4-component vector of float) +0:114 'Sca' ( uniform samplerCubeArray) +0:114 'i' ( smooth in 4-component vector of float) +0:114 Constant: +0:114 1.700000 +0:115 move second child to first child ( temp 3-component vector of int) +0:115 'a' ( temp 3-component vector of int) +0:115 textureSize ( global 3-component vector of int) +0:115 'Scas' ( uniform samplerCubeArrayShadow) +0:115 direct index ( temp int) +0:115 'a' ( temp 3-component vector of int) +0:115 Constant: +0:115 0 (const int) +0:116 Sequence +0:116 move second child to first child ( temp float) +0:116 'f' ( temp float) +0:116 texture ( global float) +0:116 'Scas' ( uniform samplerCubeArrayShadow) +0:116 'i' ( smooth in 4-component vector of float) +0:116 direct index ( temp float) +0:116 'b' ( temp 4-component vector of float) +0:116 Constant: +0:116 1 (const int) +0:117 move second child to first child ( temp 4-component vector of int) +0:117 'c' ( temp 4-component vector of int) +0:117 textureGrad ( global 4-component vector of int) +0:117 'Isca' ( uniform isamplerCubeArray) +0:117 'i' ( smooth in 4-component vector of float) +0:117 Constant: +0:117 0.100000 +0:117 0.100000 +0:117 0.100000 +0:117 Constant: +0:117 0.200000 +0:117 0.200000 +0:117 0.200000 +0:129 Function Definition: bar23444( ( global void) +0:129 Function Parameters: +0:? Sequence +0:132 Sequence +0:132 move second child to first child ( temp float) +0:132 'a1' ( temp float) +0:132 direct index ( temp float) +0:132 direct index ( temp 3-component vector of float) +0:132 'm43' ( temp 4X3 matrix of float) +0:132 Constant: +0:132 3 (const int) +0:132 Constant: +0:132 1 (const int) +0:134 Sequence +0:134 move second child to first child ( temp int) +0:134 'a2' ( temp int) +0:134 Constant: +0:134 4 (const int) +0:135 add second child into first child ( temp int) +0:135 'a2' ( temp int) +0:135 Constant: +0:135 3 (const int) +0:136 add second child into first child ( temp int) +0:136 'a2' ( temp int) +0:136 Constant: +0:136 3 (const int) +0:137 Sequence +0:137 move second child to first child ( temp float) +0:137 'b' ( const (read only) float) +0:137 component-wise multiply ( temp float) +0:137 Constant: +0:137 2.000000 +0:137 'a1' ( temp float) +0:138 move second child to first child ( temp float) +0:138 direct index ( temp float) +0:138 'a' ( global 3-component vector of float) +0:138 Constant: +0:138 0 (const int) +0:138 Constant: +0:138 -1.000000 +0:140 Constant: +0:140 0.000000 +0:141 Constant: +0:141 0.000000 +0:143 Constant: +0:143 1 (const int) +0:162 Function Definition: qux2( ( global void) +0:162 Function Parameters: +0:? Sequence +0:165 imageAtomicCompSwap ( global int) +0:165 'iimg2D' (layout( r32i) uniform iimage2D) +0:165 Construct ivec2 ( temp 2-component vector of int) +0:165 'i' ( temp int) +0:165 'i' ( temp int) +0:165 'i' ( temp int) +0:165 'i' ( temp int) +0:166 Sequence +0:166 move second child to first child ( temp 4-component vector of int) +0:166 'pos' ( temp 4-component vector of int) +0:166 imageLoad ( global 4-component vector of int) +0:166 'iimg2D' (layout( r32i) uniform iimage2D) +0:166 Construct ivec2 ( temp 2-component vector of int) +0:166 'i' ( temp int) +0:166 'i' ( temp int) +0:? Linker Objects +0:? 'a' ( global 3-component vector of float) +0:? 'b' ( global float) +0:? 'c' ( global int) +0:? 'i' ( smooth in 4-component vector of float) +0:? 'o' ( out 4-component vector of float) +0:? 'fflat' ( flat in float) +0:? 'fsmooth' ( smooth in float) +0:? 'fnop' ( noperspective in float) +0:? 'gl_ClipDistance' ( smooth in unsized 4-element array of float ClipDistance) +0:? 'sampC' ( uniform samplerCube) +0:? 'gl_Color' ( in 4-component vector of float Color) +0:? 'samp2D' ( uniform sampler2D) +0:? 'samp2DS' ( uniform sampler2DShadow) +0:? 'samp2DR' ( uniform sampler2DRect) +0:? 'samp2DA' ( uniform sampler2DArray) +0:? 'Sca' ( uniform samplerCubeArray) +0:? 'Isca' ( uniform isamplerCubeArray) +0:? 'Usca' ( uniform usamplerCubeArray) +0:? 'Scas' ( uniform samplerCubeArrayShadow) +0:? 'x' ( global int) +0:? 'ai' ( const 3-element array of int) +0:? 10 (const int) +0:? 23 (const int) +0:? 32 (const int) +0:? 'instanceName' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform int a}) +0:? 'bounds' (layout( binding=0) uniform sampler2D) +0:? 'gl_FogFragCoord' ( smooth in float) +0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D) +0:? 'iimg2D' (layout( r32i) uniform iimage2D) + + +Linked fragment stage: + + +Shader version: 130 +Requested GL_ARB_gpu_shader5 +Requested GL_ARB_separate_shader_objects +Requested GL_ARB_shader_image_load_store +Requested GL_ARB_shading_language_420pack +Requested GL_ARB_texture_cube_map_array +Requested GL_ARB_texture_gather +Requested GL_ARB_texture_rectangle +using early_fragment_tests +ERROR: node is still EOpNull! +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'clip' ( temp float) +0:18 direct index ( smooth temp float ClipDistance) +0:18 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) +0:18 Constant: +0:18 3 (const int) +0:? Linker Objects +0:? 'a' ( global 3-component vector of float) +0:? 'b' ( global float) +0:? 'c' ( global int) +0:? 'i' ( smooth in 4-component vector of float) +0:? 'o' ( out 4-component vector of float) +0:? 'fflat' ( flat in float) +0:? 'fsmooth' ( smooth in float) +0:? 'fnop' ( noperspective in float) +0:? 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) +0:? 'sampC' ( uniform samplerCube) +0:? 'gl_Color' ( in 4-component vector of float Color) +0:? 'samp2D' ( uniform sampler2D) +0:? 'samp2DS' ( uniform sampler2DShadow) +0:? 'samp2DR' ( uniform sampler2DRect) +0:? 'samp2DA' ( uniform sampler2DArray) +0:? 'Sca' ( uniform samplerCubeArray) +0:? 'Isca' ( uniform isamplerCubeArray) +0:? 'Usca' ( uniform usamplerCubeArray) +0:? 'Scas' ( uniform samplerCubeArrayShadow) +0:? 'x' ( global int) +0:? 'ai' ( const 3-element array of int) +0:? 10 (const int) +0:? 23 (const int) +0:? 32 (const int) +0:? 'instanceName' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform int a}) +0:? 'bounds' (layout( binding=0) uniform sampler2D) +0:? 'gl_FogFragCoord' ( smooth in float) +0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D) +0:? 'iimg2D' (layout( r32i) uniform iimage2D) + diff --git a/deps/glslang/glslang/Test/baseResults/130.vert.out b/deps/glslang/glslang/Test/baseResults/130.vert.out new file mode 100644 index 0000000000..e38043c60b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/130.vert.out @@ -0,0 +1,286 @@ +130.vert +ERROR: 0:59: 'gl_InstanceID' : undeclared identifier +ERROR: 0:59: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:61: 'texelFetch' : no matching overloaded function found +ERROR: 0:61: 'assign' : cannot convert from ' const float' to ' temp int' +ERROR: 4 compilation errors. No code generated. + + +Shader version: 130 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'f' ( temp float) +0:17 Constant: +0:17 3.000000 +0:18 switch +0:18 condition +0:18 'c' ( uniform int) +0:18 body +0:18 Sequence +0:19 case: with expression +0:19 Constant: +0:19 1 (const int) +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 'f' ( temp float) +0:20 sine ( global float) +0:20 'f' ( temp float) +0:21 Branch: Break +0:22 case: with expression +0:22 Constant: +0:22 2 (const int) +0:? Sequence +0:23 move second child to first child ( temp float) +0:23 'f' ( temp float) +0:23 component-wise multiply ( temp float) +0:23 'f' ( temp float) +0:23 'f' ( temp float) +0:24 default: +0:? Sequence +0:25 move second child to first child ( temp float) +0:25 'f' ( temp float) +0:25 Constant: +0:25 3.000000 +0:29 move second child to first child ( temp uint) +0:29 'i' ( temp uint) +0:29 direct index ( temp uint) +0:29 texture ( global 4-component vector of uint) +0:29 'us2D' ( uniform usampler2D) +0:29 Convert int to float ( temp 2-component vector of float) +0:29 'x' ( in 2-component vector of int) +0:29 Constant: +0:29 3 (const int) +0:30 inclusive-or ( temp uint) +0:30 left-shift ( temp uint) +0:30 'i' ( temp uint) +0:30 Constant: +0:30 3 (const uint) +0:30 Constant: +0:30 69 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 3-component vector of float) +0:33 'v11' ( temp 3-component vector of float) +0:33 modf ( global 3-component vector of float) +0:33 'modfIn' ( temp 3-component vector of float) +0:33 'modfOut' ( temp 3-component vector of float) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 't' ( temp float) +0:34 trunc ( global float) +0:34 'f' ( temp float) +0:35 Sequence +0:35 move second child to first child ( temp 2-component vector of float) +0:35 'v12' ( temp 2-component vector of float) +0:35 round ( global 2-component vector of float) +0:35 'v2a' ( in 2-component vector of float) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of float) +0:36 'v13' ( temp 2-component vector of float) +0:36 roundEven ( global 2-component vector of float) +0:36 'v2a' ( in 2-component vector of float) +0:37 Sequence +0:37 move second child to first child ( temp 2-component vector of bool) +0:37 'b10' ( temp 2-component vector of bool) +0:37 isnan ( global 2-component vector of bool) +0:37 'v2a' ( in 2-component vector of float) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of bool) +0:38 'b11' ( temp 4-component vector of bool) +0:38 isinf ( global 4-component vector of bool) +0:38 'v4' ( uniform 4-component vector of float) +0:40 add ( temp 2-component vector of float) +0:40 hyp. sine ( global float) +0:40 'c1D' ( in float) +0:41 vector-scale ( temp 2-component vector of float) +0:41 hyp. cosine ( global float) +0:41 'c1D' ( in float) +0:41 hyp. tangent ( global 2-component vector of float) +0:41 'c2D' ( in 2-component vector of float) +0:42 add ( temp 4-component vector of float) +0:42 arc hyp. sine ( global 4-component vector of float) +0:42 'c4D' ( smooth temp 4-component vector of float) +0:42 arc hyp. cosine ( global 4-component vector of float) +0:42 'c4D' ( smooth temp 4-component vector of float) +0:43 arc hyp. tangent ( global 3-component vector of float) +0:43 'c3D' ( in 3-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp int) +0:45 'id' ( temp int) +0:45 'gl_VertexID' ( gl_VertexId int VertexId) +0:46 move second child to first child ( temp float) +0:46 direct index ( smooth temp float ClipDistance) +0:46 'gl_ClipDistance' ( smooth out unsized 2-element array of float ClipDistance) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 0.300000 +0:57 Function Definition: foo88( ( global void) +0:57 Function Parameters: +0:? Sequence +0:61 'id' ( temp int) +0:63 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:64 'gl_Color' ( in 4-component vector of float Color) +0:65 direct index ( temp structure{ global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) +0:65 'gl_LightSource' ( uniform 32-element array of structure{ global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) +0:65 Constant: +0:65 0 (const int) +0:66 far: direct index for structure ( global float) +0:66 'gl_DepthRange' ( uniform structure{ global float near, global float far, global float diff}) +0:66 Constant: +0:66 1 (const int) +0:67 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord) +0:68 'gl_FogFragCoord' ( smooth out float FogFragCoord) +0:69 'gl_FrontColor' ( smooth out 4-component vector of float FrontColor) +0:? Linker Objects +0:? 'c' ( uniform int) +0:? 'us2D' ( uniform usampler2D) +0:? 'x' ( in 2-component vector of int) +0:? 'v2a' ( in 2-component vector of float) +0:? 'c1D' ( in float) +0:? 'c2D' ( in 2-component vector of float) +0:? 'c3D' ( in 3-component vector of float) +0:? 'c4D' ( smooth temp 4-component vector of float) +0:? 'v4' ( uniform 4-component vector of float) +0:? 'gl_ClipDistance' ( smooth out unsized 2-element array of float ClipDistance) +0:? 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord) +0:? 'abcdef' ( global int) +0:? 'qrstuv' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred) + +Shader version: 130 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'f' ( temp float) +0:17 Constant: +0:17 3.000000 +0:18 switch +0:18 condition +0:18 'c' ( uniform int) +0:18 body +0:18 Sequence +0:19 case: with expression +0:19 Constant: +0:19 1 (const int) +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 'f' ( temp float) +0:20 sine ( global float) +0:20 'f' ( temp float) +0:21 Branch: Break +0:22 case: with expression +0:22 Constant: +0:22 2 (const int) +0:? Sequence +0:23 move second child to first child ( temp float) +0:23 'f' ( temp float) +0:23 component-wise multiply ( temp float) +0:23 'f' ( temp float) +0:23 'f' ( temp float) +0:24 default: +0:? Sequence +0:25 move second child to first child ( temp float) +0:25 'f' ( temp float) +0:25 Constant: +0:25 3.000000 +0:29 move second child to first child ( temp uint) +0:29 'i' ( temp uint) +0:29 direct index ( temp uint) +0:29 texture ( global 4-component vector of uint) +0:29 'us2D' ( uniform usampler2D) +0:29 Convert int to float ( temp 2-component vector of float) +0:29 'x' ( in 2-component vector of int) +0:29 Constant: +0:29 3 (const int) +0:30 inclusive-or ( temp uint) +0:30 left-shift ( temp uint) +0:30 'i' ( temp uint) +0:30 Constant: +0:30 3 (const uint) +0:30 Constant: +0:30 69 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 3-component vector of float) +0:33 'v11' ( temp 3-component vector of float) +0:33 modf ( global 3-component vector of float) +0:33 'modfIn' ( temp 3-component vector of float) +0:33 'modfOut' ( temp 3-component vector of float) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 't' ( temp float) +0:34 trunc ( global float) +0:34 'f' ( temp float) +0:35 Sequence +0:35 move second child to first child ( temp 2-component vector of float) +0:35 'v12' ( temp 2-component vector of float) +0:35 round ( global 2-component vector of float) +0:35 'v2a' ( in 2-component vector of float) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of float) +0:36 'v13' ( temp 2-component vector of float) +0:36 roundEven ( global 2-component vector of float) +0:36 'v2a' ( in 2-component vector of float) +0:37 Sequence +0:37 move second child to first child ( temp 2-component vector of bool) +0:37 'b10' ( temp 2-component vector of bool) +0:37 isnan ( global 2-component vector of bool) +0:37 'v2a' ( in 2-component vector of float) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of bool) +0:38 'b11' ( temp 4-component vector of bool) +0:38 isinf ( global 4-component vector of bool) +0:38 'v4' ( uniform 4-component vector of float) +0:40 add ( temp 2-component vector of float) +0:40 hyp. sine ( global float) +0:40 'c1D' ( in float) +0:41 vector-scale ( temp 2-component vector of float) +0:41 hyp. cosine ( global float) +0:41 'c1D' ( in float) +0:41 hyp. tangent ( global 2-component vector of float) +0:41 'c2D' ( in 2-component vector of float) +0:42 add ( temp 4-component vector of float) +0:42 arc hyp. sine ( global 4-component vector of float) +0:42 'c4D' ( smooth temp 4-component vector of float) +0:42 arc hyp. cosine ( global 4-component vector of float) +0:42 'c4D' ( smooth temp 4-component vector of float) +0:43 arc hyp. tangent ( global 3-component vector of float) +0:43 'c3D' ( in 3-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp int) +0:45 'id' ( temp int) +0:45 'gl_VertexID' ( gl_VertexId int VertexId) +0:46 move second child to first child ( temp float) +0:46 direct index ( smooth temp float ClipDistance) +0:46 'gl_ClipDistance' ( smooth out 2-element array of float ClipDistance) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 0.300000 +0:? Linker Objects +0:? 'c' ( uniform int) +0:? 'us2D' ( uniform usampler2D) +0:? 'x' ( in 2-component vector of int) +0:? 'v2a' ( in 2-component vector of float) +0:? 'c1D' ( in float) +0:? 'c2D' ( in 2-component vector of float) +0:? 'c3D' ( in 3-component vector of float) +0:? 'c4D' ( smooth temp 4-component vector of float) +0:? 'v4' ( uniform 4-component vector of float) +0:? 'gl_ClipDistance' ( smooth out 2-element array of float ClipDistance) +0:? 'gl_TexCoord' ( smooth out 1-element array of 4-component vector of float TexCoord) +0:? 'abcdef' ( global int) +0:? 'qrstuv' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) + diff --git a/deps/glslang/glslang/Test/baseResults/140.frag.out b/deps/glslang/glslang/Test/baseResults/140.frag.out new file mode 100644 index 0000000000..7ce2170362 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/140.frag.out @@ -0,0 +1,169 @@ +140.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release +ERROR: 0:17: '#error' : GL_ES is not set +ERROR: 0:20: 'fragment-shader struct input' : not supported for this version or the enabled extensions +ERROR: 0:24: 'location' : not supported for this version or the enabled extensions +ERROR: 0:24: 'location qualifier on input' : not supported for this version or the enabled extensions +ERROR: 0:26: 'location' : not supported for this version or the enabled extensions +ERROR: 0:26: 'location qualifier on output' : not supported for this version or the enabled extensions +ERROR: 0:40: 'assign' : l-value required "v" (can't modify shader input) +ERROR: 0:40: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. +ERROR: 8 compilation errors. No code generated. + + +Shader version: 140 +Requested GL_ARB_explicit_attrib_location +Requested GL_ARB_separate_shader_objects +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'clip' ( temp float) +0:12 direct index ( smooth temp float ClipDistance) +0:12 'gl_ClipDistance' ( smooth in 5-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'patch' ( global float) +0:22 Constant: +0:22 3.100000 +0:38 Function Definition: foo( ( global void) +0:38 Function Parameters: +0:40 Sequence +0:40 Sequence +0:40 move second child to first child ( temp 2-component vector of float) +0:40 'r1' ( temp 2-component vector of float) +0:40 modf ( global 2-component vector of float) +0:40 vector swizzle ( temp 2-component vector of float) +0:40 'v' ( smooth in 4-component vector of float) +0:40 Sequence +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 vector swizzle ( temp 2-component vector of float) +0:40 'v' ( smooth in 4-component vector of float) +0:40 Sequence +0:40 Constant: +0:40 2 (const int) +0:40 Constant: +0:40 3 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of float) +0:41 'r2' ( temp 2-component vector of float) +0:41 modf ( global 2-component vector of float) +0:41 vector swizzle ( temp 2-component vector of float) +0:41 'o' ( out 4-component vector of float) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 vector swizzle ( temp 2-component vector of float) +0:41 'o' ( out 4-component vector of float) +0:41 Sequence +0:41 Constant: +0:41 2 (const int) +0:41 Constant: +0:41 3 (const int) +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 'o' ( out 4-component vector of float) +0:42 Constant: +0:42 2 (const int) +0:42 Function Call: fooi( ( global float) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'i1' ( global float) +0:47 Test condition and select ( temp float) +0:47 Condition +0:47 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:47 true case +0:47 Constant: +0:47 -2.000000 +0:47 false case +0:47 Constant: +0:47 2.000000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'i2' ( global float) +0:48 Constant: +0:48 102.000000 +0:50 Function Definition: fooi( ( global float) +0:50 Function Parameters: +0:52 Sequence +0:52 Branch: Return with expression +0:52 add ( temp float) +0:52 'i1' ( global float) +0:52 'i2' ( global float) +0:? Linker Objects +0:? 'v' ( smooth in 4-component vector of float) +0:? 'i' ( smooth in 4-component vector of float) +0:? 'o' ( out 4-component vector of float) +0:? 'gl_ClipDistance' ( smooth in 5-element array of float ClipDistance) +0:? 's' ( smooth in structure{ global float f}) +0:? 'patch' ( global float) +0:? 'vl' (layout( location=3) smooth in 4-component vector of float) +0:? 'factorBad' (layout( location=3) out 4-component vector of float) +0:? 'factor' (layout( location=5) out 4-component vector of float) +0:? 'vl2' (layout( location=4) smooth in 4-component vector of float) +0:? 'i1' ( global float) +0:? 'i2' ( global float) + + +Linked fragment stage: + + +Shader version: 140 +Requested GL_ARB_explicit_attrib_location +Requested GL_ARB_separate_shader_objects +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'clip' ( temp float) +0:12 direct index ( smooth temp float ClipDistance) +0:12 'gl_ClipDistance' ( smooth in 5-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'patch' ( global float) +0:22 Constant: +0:22 3.100000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'i1' ( global float) +0:47 Test condition and select ( temp float) +0:47 Condition +0:47 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:47 true case +0:47 Constant: +0:47 -2.000000 +0:47 false case +0:47 Constant: +0:47 2.000000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'i2' ( global float) +0:48 Constant: +0:48 102.000000 +0:? Linker Objects +0:? 'v' ( smooth in 4-component vector of float) +0:? 'i' ( smooth in 4-component vector of float) +0:? 'o' ( out 4-component vector of float) +0:? 'gl_ClipDistance' ( smooth in 5-element array of float ClipDistance) +0:? 's' ( smooth in structure{ global float f}) +0:? 'patch' ( global float) +0:? 'vl' (layout( location=3) smooth in 4-component vector of float) +0:? 'factorBad' (layout( location=3) out 4-component vector of float) +0:? 'factor' (layout( location=5) out 4-component vector of float) +0:? 'vl2' (layout( location=4) smooth in 4-component vector of float) +0:? 'i1' ( global float) +0:? 'i2' ( global float) + diff --git a/deps/glslang/glslang/Test/baseResults/140.vert.out b/deps/glslang/glslang/Test/baseResults/140.vert.out new file mode 100644 index 0000000000..020afd08e6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/140.vert.out @@ -0,0 +1,215 @@ +140.vert +ERROR: 0:23: 'gl_Position' : identifiers starting with "gl_" are reserved +ERROR: 0:25: 'location' : not supported for this version or the enabled extensions +ERROR: 0:25: 'location qualifier on input' : not supported for this version or the enabled extensions +ERROR: 0:34: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Position +ERROR: 0:34: 'redeclaration' : cannot change interpolation qualification of gl_Position +ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Position +ERROR: 0:38: 'gl_ClipVertex' : cannot redeclare after use +ERROR: 0:39: 'gl_FogFragCoord' : cannot redeclare after use +ERROR: 0:51: 'texelFetch' : no matching overloaded function found +ERROR: 0:53: 'texture' : no matching overloaded function found +ERROR: 0:63: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:64: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview +ERROR: 12 compilation errors. No code generated. + + +Shader version: 140 +Requested GL_ARB_explicit_attrib_location +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +ERROR: node is still EOpNull! +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'id' ( temp int) +0:11 'gl_InstanceID' ( gl_InstanceId int InstanceId) +0:12 add second child into first child ( temp int) +0:12 'id' ( temp int) +0:12 anonMem: direct index for structure (layout( column_major std140 offset=0) uniform int) +0:12 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform int anonMem}) +0:12 Constant: +0:12 0 (const uint) +0:13 add second child into first child ( temp int) +0:13 'id' ( temp int) +0:13 direct index ( temp int) +0:13 textureFetch ( global 4-component vector of int) +0:13 'sbuf' ( uniform isamplerBuffer) +0:13 Constant: +0:13 8 (const int) +0:13 Constant: +0:13 3 (const int) +0:14 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:15 'gl_Color' ( in 4-component vector of float Color) +0:16 direct index ( temp structure{ global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) +0:16 'gl_LightSource' ( uniform 32-element array of structure{ global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) +0:16 Constant: +0:16 0 (const int) +0:17 far: direct index for structure ( global float) +0:17 'gl_DepthRange' ( uniform structure{ global float near, global float far, global float diff}) +0:17 Constant: +0:17 1 (const int) +0:18 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord) +0:19 'gl_FogFragCoord' ( smooth out float FogFragCoord) +0:20 'gl_FrontColor' ( smooth out 4-component vector of float FrontColor) +0:48 Function Definition: foo( ( global void) +0:48 Function Parameters: +0:50 Sequence +0:50 Sequence +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:50 textureFetch ( global 4-component vector of float) +0:50 's2dr' ( uniform sampler2DRect) +0:50 'itloc2' ( in 2-component vector of int) +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'v' ( temp 4-component vector of float) +0:51 Constant: +0:51 0.000000 +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'v' ( temp 4-component vector of float) +0:52 texture ( global 4-component vector of float) +0:52 's2dr' ( uniform sampler2DRect) +0:52 'tloc2' ( in 2-component vector of float) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'v' ( temp 4-component vector of float) +0:53 Constant: +0:53 0.000000 +0:54 add second child into first child ( temp 4-component vector of float) +0:54 'v' ( temp 4-component vector of float) +0:54 texture ( global float) +0:54 's2drs' ( uniform sampler2DRectShadow) +0:54 'tloc3' ( in 3-component vector of float) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:55 textureProj ( global 4-component vector of float) +0:55 's2dr' ( uniform sampler2DRect) +0:55 'tloc3' ( in 3-component vector of float) +0:56 add second child into first child ( temp 4-component vector of float) +0:56 'v' ( temp 4-component vector of float) +0:56 textureProj ( global 4-component vector of float) +0:56 's2dr' ( uniform sampler2DRect) +0:56 'tloc4' ( in 4-component vector of float) +0:57 add second child into first child ( temp 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:57 textureProjGradOffset ( global 4-component vector of float) +0:57 's2dr' ( uniform sampler2DRect) +0:57 'tloc4' ( in 4-component vector of float) +0:57 Constant: +0:57 0.000000 +0:57 0.000000 +0:57 Constant: +0:57 0.000000 +0:57 0.000000 +0:57 Constant: +0:57 1 (const int) +0:57 2 (const int) +0:58 add second child into first child ( temp 4-component vector of float) +0:58 'v' ( temp 4-component vector of float) +0:58 textureProjGradOffset ( global float) +0:58 's2drs' ( uniform sampler2DRectShadow) +0:58 'tloc4' ( in 4-component vector of float) +0:58 Constant: +0:58 0.000000 +0:58 0.000000 +0:58 Constant: +0:58 0.000000 +0:58 0.000000 +0:58 Constant: +0:58 1 (const int) +0:58 2 (const int) +0:61 Function Definition: devi( ( global void) +0:61 Function Parameters: +0:63 Sequence +0:63 'gl_DeviceIndex' ( in int DeviceIndex) +0:64 'gl_ViewIndex' ( in int ViewIndex) +0:75 Function Definition: devie( ( global void) +0:75 Function Parameters: +0:77 Sequence +0:77 'gl_DeviceIndex' ( in int DeviceIndex) +0:78 'gl_ViewIndex' ( in int ViewIndex) +0:? Linker Objects +0:? 'sbuf' ( uniform isamplerBuffer) +0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform int anonMem}) +0:? 'gl_TexCoord' ( smooth out unsized 1-element array of 4-component vector of float TexCoord) +0:? 'gl_Position' ( smooth out 4-component vector of float) +0:? 'locBad' (layout( location=9) in 4-component vector of float) +0:? 'loc' (layout( location=9) in 4-component vector of float) +0:? 'gl_PointSize' ( gl_PointSize float PointSize) +0:? 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:? 'gl_FogFragCoord' ( smooth out float FogFragCoord) +0:? 's2dr' ( uniform sampler2DRect) +0:? 's2drs' ( uniform sampler2DRectShadow) +0:? 'itloc2' ( in 2-component vector of int) +0:? 'tloc2' ( in 2-component vector of float) +0:? 'tloc3' ( in 3-component vector of float) +0:? 'tloc4' ( in 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 140 +Requested GL_ARB_explicit_attrib_location +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +ERROR: node is still EOpNull! +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'id' ( temp int) +0:11 'gl_InstanceID' ( gl_InstanceId int InstanceId) +0:12 add second child into first child ( temp int) +0:12 'id' ( temp int) +0:12 anonMem: direct index for structure (layout( column_major std140 offset=0) uniform int) +0:12 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform int anonMem}) +0:12 Constant: +0:12 0 (const uint) +0:13 add second child into first child ( temp int) +0:13 'id' ( temp int) +0:13 direct index ( temp int) +0:13 textureFetch ( global 4-component vector of int) +0:13 'sbuf' ( uniform isamplerBuffer) +0:13 Constant: +0:13 8 (const int) +0:13 Constant: +0:13 3 (const int) +0:14 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:15 'gl_Color' ( in 4-component vector of float Color) +0:16 direct index ( temp structure{ global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) +0:16 'gl_LightSource' ( uniform 32-element array of structure{ global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) +0:16 Constant: +0:16 0 (const int) +0:17 far: direct index for structure ( global float) +0:17 'gl_DepthRange' ( uniform structure{ global float near, global float far, global float diff}) +0:17 Constant: +0:17 1 (const int) +0:18 'gl_TexCoord' ( smooth out 1-element array of 4-component vector of float TexCoord) +0:19 'gl_FogFragCoord' ( smooth out float FogFragCoord) +0:20 'gl_FrontColor' ( smooth out 4-component vector of float FrontColor) +0:? Linker Objects +0:? 'sbuf' ( uniform isamplerBuffer) +0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform int anonMem}) +0:? 'gl_TexCoord' ( smooth out 1-element array of 4-component vector of float TexCoord) +0:? 'gl_Position' ( smooth out 4-component vector of float) +0:? 'locBad' (layout( location=9) in 4-component vector of float) +0:? 'loc' (layout( location=9) in 4-component vector of float) +0:? 'gl_PointSize' ( gl_PointSize float PointSize) +0:? 'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex) +0:? 'gl_FogFragCoord' ( smooth out float FogFragCoord) +0:? 's2dr' ( uniform sampler2DRect) +0:? 's2drs' ( uniform sampler2DRectShadow) +0:? 'itloc2' ( in 2-component vector of int) +0:? 'tloc2' ( in 2-component vector of float) +0:? 'tloc3' ( in 3-component vector of float) +0:? 'tloc4' ( in 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/150.frag.out b/deps/glslang/glslang/Test/baseResults/150.frag.out new file mode 100644 index 0000000000..1454b55837 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/150.frag.out @@ -0,0 +1,158 @@ +150.frag +ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord +ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord +ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord +ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use +ERROR: 4 compilation errors. No code generated. + + +Shader version: 150 +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 'c' ( temp 4-component vector of float) +0:11 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'patch' ( global float) +0:18 Constant: +0:18 3.100000 +0:31 Function Definition: barWxyz( ( global void) +0:31 Function Parameters: +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp 2-component vector of int) +0:33 't11' ( temp 2-component vector of int) +0:33 textureSize ( global 2-component vector of int) +0:33 'sms' ( uniform sampler2DMS) +0:34 Sequence +0:34 move second child to first child ( temp 2-component vector of int) +0:34 't12' ( temp 2-component vector of int) +0:34 textureSize ( global 2-component vector of int) +0:34 'isms' ( uniform isampler2DMS) +0:35 Sequence +0:35 move second child to first child ( temp 2-component vector of int) +0:35 't13' ( temp 2-component vector of int) +0:35 textureSize ( global 2-component vector of int) +0:35 'usms' ( uniform usampler2DMS) +0:36 Sequence +0:36 move second child to first child ( temp 3-component vector of int) +0:36 't21' ( temp 3-component vector of int) +0:36 textureSize ( global 3-component vector of int) +0:36 'smsa' ( uniform sampler2DMSArray) +0:37 Sequence +0:37 move second child to first child ( temp 3-component vector of int) +0:37 't22' ( temp 3-component vector of int) +0:37 textureSize ( global 3-component vector of int) +0:37 'ismsa' ( uniform isampler2DMSArray) +0:38 Sequence +0:38 move second child to first child ( temp 3-component vector of int) +0:38 't23' ( temp 3-component vector of int) +0:38 textureSize ( global 3-component vector of int) +0:38 'usmsa' ( uniform usampler2DMSArray) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 't31' ( temp 4-component vector of float) +0:39 textureFetch ( global 4-component vector of float) +0:39 'sms' ( uniform sampler2DMS) +0:39 'p2' ( flat in 2-component vector of int) +0:39 'samp' ( flat in int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 't32' ( temp 4-component vector of int) +0:40 textureFetch ( global 4-component vector of int) +0:40 'isms' ( uniform isampler2DMS) +0:40 'p2' ( flat in 2-component vector of int) +0:40 'samp' ( flat in int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 't33' ( temp 4-component vector of uint) +0:41 textureFetch ( global 4-component vector of uint) +0:41 'usms' ( uniform usampler2DMS) +0:41 'p2' ( flat in 2-component vector of int) +0:41 Constant: +0:41 3 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 't41' ( temp 4-component vector of float) +0:42 textureFetch ( global 4-component vector of float) +0:42 'smsa' ( uniform sampler2DMSArray) +0:42 'p3' ( flat in 3-component vector of int) +0:42 'samp' ( flat in int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 't42' ( temp 4-component vector of int) +0:43 textureFetch ( global 4-component vector of int) +0:43 'ismsa' ( uniform isampler2DMSArray) +0:43 Constant: +0:43 2 (const int) +0:43 2 (const int) +0:43 2 (const int) +0:43 'samp' ( flat in int) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of uint) +0:44 't43' ( temp 4-component vector of uint) +0:44 textureFetch ( global 4-component vector of uint) +0:44 'usmsa' ( uniform usampler2DMSArray) +0:44 'p3' ( flat in 3-component vector of int) +0:44 'samp' ( flat in int) +0:47 Function Definition: primitiveID( ( global int) +0:47 Function Parameters: +0:49 Sequence +0:49 Branch: Return with expression +0:49 'gl_PrimitiveID' ( flat in int PrimitiveID) +0:? Linker Objects +0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? 'foo' ( smooth in 4-component vector of float) +0:? 's' ( smooth in structure{ global float f}) +0:? 'patch' ( global float) +0:? 'sms' ( uniform sampler2DMS) +0:? 'isms' ( uniform isampler2DMS) +0:? 'usms' ( uniform usampler2DMS) +0:? 'smsa' ( uniform sampler2DMSArray) +0:? 'ismsa' ( uniform isampler2DMSArray) +0:? 'usmsa' ( uniform usampler2DMSArray) +0:? 'p2' ( flat in 2-component vector of int) +0:? 'p3' ( flat in 3-component vector of int) +0:? 'samp' ( flat in int) + + +Linked fragment stage: + + +Shader version: 150 +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 'c' ( temp 4-component vector of float) +0:11 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'patch' ( global float) +0:18 Constant: +0:18 3.100000 +0:? Linker Objects +0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? 'foo' ( smooth in 4-component vector of float) +0:? 's' ( smooth in structure{ global float f}) +0:? 'patch' ( global float) +0:? 'sms' ( uniform sampler2DMS) +0:? 'isms' ( uniform isampler2DMS) +0:? 'usms' ( uniform usampler2DMS) +0:? 'smsa' ( uniform sampler2DMSArray) +0:? 'ismsa' ( uniform isampler2DMSArray) +0:? 'usmsa' ( uniform usampler2DMSArray) +0:? 'p2' ( flat in 2-component vector of int) +0:? 'p3' ( flat in 3-component vector of int) +0:? 'samp' ( flat in int) + diff --git a/deps/glslang/glslang/Test/baseResults/150.geom.out b/deps/glslang/glslang/Test/baseResults/150.geom.out new file mode 100644 index 0000000000..92b8e1aa50 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/150.geom.out @@ -0,0 +1,289 @@ +150.geom +ERROR: 0:15: 'fromVertex' : block instance name redefinition +ERROR: 0:19: 'fromVertex' : redefinition +ERROR: 0:21: 'fooC' : block instance name redefinition +ERROR: 0:29: 'EmitStreamVertex' : no matching overloaded function found +ERROR: 0:30: 'EndStreamPrimitive' : no matching overloaded function found +ERROR: 0:44: 'stream' : can only be used on an output +ERROR: 0:45: 'stream' : can only be used on an output +ERROR: 0:46: 'stream' : can only be used on an output +ERROR: 0:47: 'stream' : can only be used on an output +ERROR: 0:47: 'stream' : can only be used on an output +ERROR: 0:60: 'stream' : member cannot contradict block +ERROR: 0:66: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices +ERROR: 0:66: 'max_vertices' : cannot change previously set layout value +ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier +ERROR: 0:72: 'points' : cannot change previously set output primitive +ERROR: 0:73: 'points' : cannot change previously set output primitive +ERROR: 0:74: 'triangle_strip' : cannot apply to input +ERROR: 0:75: 'triangle_strip' : cannot apply to: uniform +ERROR: 0:76: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:77: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:78: 'invocations' : not supported for this version or the enabled extensions +ERROR: 0:78: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:80: 'invocations' : not supported for this version or the enabled extensions +ERROR: 0:80: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:81: 'max_vertices' : can only apply to a standalone qualifier +ERROR: 0:82: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:85: 'lines' : cannot apply to 'out' +ERROR: 0:87: 'triangles' : cannot change previously set input primitive +ERROR: 0:88: 'triangles_adjacency' : cannot change previously set input primitive +ERROR: 0:89: 'invocations' : not supported for this version or the enabled extensions +ERROR: 0:92: 'stream' : member cannot contradict block +ERROR: 0:92: 'stream' : can only be used on an output +ERROR: 0:129: 'gl_ViewportIndex' : required extension not requested: GL_ARB_viewport_array +ERROR: 0:129: 'gl_MaxViewports' : required extension not requested: GL_ARB_viewport_array +ERROR: 0:139: 'gl_ViewportIndex' : identifiers starting with "gl_" are reserved +ERROR: 35 compilation errors. No code generated. + + +Shader version: 150 +Requested GL_ARB_viewport_array +invocations = 4 +max_vertices = 200 +input primitive = lines_adjacency +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 EmitVertex ( global void) +0:28 EndPrimitive ( global void) +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:32 move second child to first child ( temp 3-component vector of float) +0:32 color: direct index for structure (layout( stream=0) out 3-component vector of float) +0:32 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) +0:32 Constant: +0:32 0 (const uint) +0:32 color: direct index for structure ( in 3-component vector of float) +0:32 direct index ( temp block{ in 3-component vector of float color}) +0:32 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 move second child to first child ( temp float) +0:33 direct index (layout( stream=0) temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure (layout( stream=0) out unsized 4-element array of float ClipDistance) +0:33 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 2 (const uint) +0:33 Constant: +0:33 3 (const int) +0:33 direct index ( temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 2 (const int) +0:34 move second child to first child ( temp 4-component vector of float) +0:34 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) +0:34 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 0 (const uint) +0:34 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp float) +0:35 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize) +0:35 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) +0:35 Constant: +0:35 1 (const uint) +0:35 gl_PointSize: direct index for structure ( in float PointSize) +0:35 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:35 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 1 (const int) +0:36 move second child to first child ( temp int) +0:36 'gl_PrimitiveID' (layout( stream=0) out int PrimitiveID) +0:36 'gl_PrimitiveIDIn' ( in int PrimitiveID) +0:37 move second child to first child ( temp int) +0:37 'gl_Layer' (layout( stream=0) out int Layer) +0:37 Constant: +0:37 2 (const int) +0:67 Function Definition: foo(i1; ( global void) +0:67 Function Parameters: +0:67 'a' ( in int) +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 a: direct index for structure (layout( stream=6) out 4-component vector of float) +0:69 'ouuaa6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 1.000000 +0:69 1.000000 +0:69 1.000000 +0:69 1.000000 +0:107 Sequence +0:107 move second child to first child ( temp float) +0:107 'summ' ( global float) +0:107 Constant: +0:107 11332.000000 +0:127 Function Definition: fooe1( ( global void) +0:127 Function Parameters: +0:129 Sequence +0:129 move second child to first child ( temp int) +0:129 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) +0:129 Constant: +0:129 15 (const int) +0:134 Function Definition: fooe2( ( global void) +0:134 Function Parameters: +0:136 Sequence +0:136 move second child to first child ( temp int) +0:136 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) +0:136 Constant: +0:136 15 (const int) +0:? Linker Objects +0:? 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) +0:? 'toF' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) +0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) +0:? 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:? 'ov0' (layout( stream=0) out 4-component vector of float) +0:? 'ov4' (layout( stream=4) out 4-component vector of float) +0:? 'o1v0' (layout( stream=0) out 4-component vector of float) +0:? 'ua' (layout( stream=3) uniform int) +0:? 'ibb' (layout( stream=3 column_major shared) uniform block{layout( stream=3 column_major shared) uniform int ua}) +0:? 'ov3' (layout( stream=3) out 4-component vector of float) +0:? 'ouuaa6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) +0:? 'ouua6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) +0:? 'ouua7' (layout( stream=7) out block{layout( stream=6) out 4-component vector of float a}) +0:? 'ov2s3' (layout( stream=3) out 4-component vector of float) +0:? 'badv4' (layout( stream=3) out 4-component vector of float) +0:? 'bad2v4' ( in 4-element array of 4-component vector of float) +0:? 'anon@2' (layout( stream=3) out block{layout( stream=3) out int a}) +0:? 'outbi' (layout( stream=3) out block{layout( stream=3) out int a, layout( stream=3) out int b, layout( stream=3) out int c}) +0:? 'inbi' ( in 4-element array of block{layout( stream=2) in int a}) +0:? 'insn' ( in 4-element array of block{ in int a15}) +0:? 'anon@3' (layout( stream=3) out block{layout( stream=3) out float f15}) +0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) +0:? 'summ' ( global float) +0:? 'gl_ViewportIndex' (layout( stream=3) out int) + + +Linked geometry stage: + + +Shader version: 150 +Requested GL_ARB_viewport_array +invocations = 4 +max_vertices = 200 +input primitive = lines_adjacency +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 EmitVertex ( global void) +0:28 EndPrimitive ( global void) +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:32 move second child to first child ( temp 3-component vector of float) +0:32 color: direct index for structure (layout( stream=0) out 3-component vector of float) +0:32 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) +0:32 Constant: +0:32 0 (const uint) +0:32 color: direct index for structure ( in 3-component vector of float) +0:32 direct index ( temp block{ in 3-component vector of float color}) +0:32 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 move second child to first child ( temp float) +0:33 direct index (layout( stream=0) temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure (layout( stream=0) out 4-element array of float ClipDistance) +0:33 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 2 (const uint) +0:33 Constant: +0:33 3 (const int) +0:33 direct index ( temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 2 (const int) +0:34 move second child to first child ( temp 4-component vector of float) +0:34 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) +0:34 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 0 (const uint) +0:34 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:34 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp float) +0:35 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize) +0:35 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) +0:35 Constant: +0:35 1 (const uint) +0:35 gl_PointSize: direct index for structure ( in float PointSize) +0:35 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:35 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 1 (const int) +0:36 move second child to first child ( temp int) +0:36 'gl_PrimitiveID' (layout( stream=0) out int PrimitiveID) +0:36 'gl_PrimitiveIDIn' ( in int PrimitiveID) +0:37 move second child to first child ( temp int) +0:37 'gl_Layer' (layout( stream=0) out int Layer) +0:37 Constant: +0:37 2 (const int) +0:107 Sequence +0:107 move second child to first child ( temp float) +0:107 'summ' ( global float) +0:107 Constant: +0:107 11332.000000 +0:? Linker Objects +0:? 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) +0:? 'toF' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) +0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) +0:? 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:? 'ov0' (layout( stream=0) out 4-component vector of float) +0:? 'ov4' (layout( stream=4) out 4-component vector of float) +0:? 'o1v0' (layout( stream=0) out 4-component vector of float) +0:? 'ua' (layout( stream=3) uniform int) +0:? 'ibb' (layout( stream=3 column_major shared) uniform block{layout( stream=3 column_major shared) uniform int ua}) +0:? 'ov3' (layout( stream=3) out 4-component vector of float) +0:? 'ouuaa6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) +0:? 'ouua6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) +0:? 'ouua7' (layout( stream=7) out block{layout( stream=6) out 4-component vector of float a}) +0:? 'ov2s3' (layout( stream=3) out 4-component vector of float) +0:? 'badv4' (layout( stream=3) out 4-component vector of float) +0:? 'bad2v4' ( in 4-element array of 4-component vector of float) +0:? 'anon@2' (layout( stream=3) out block{layout( stream=3) out int a}) +0:? 'outbi' (layout( stream=3) out block{layout( stream=3) out int a, layout( stream=3) out int b, layout( stream=3) out int c}) +0:? 'inbi' ( in 4-element array of block{layout( stream=2) in int a}) +0:? 'insn' ( in 4-element array of block{ in int a15}) +0:? 'anon@3' (layout( stream=3) out block{layout( stream=3) out float f15}) +0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) +0:? 'summ' ( global float) +0:? 'gl_ViewportIndex' (layout( stream=3) out int) + diff --git a/deps/glslang/glslang/Test/baseResults/150.tesc.out b/deps/glslang/glslang/Test/baseResults/150.tesc.out new file mode 100644 index 0000000000..89220264fa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/150.tesc.out @@ -0,0 +1,1676 @@ +150.tesc +Shader version: 150 +Requested GL_ARB_tessellation_shader +vertices = 4 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Barrier ( global void) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a' ( temp int) +0:14 Constant: +0:14 5392 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'p' ( temp 4-component vector of float) +0:20 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:20 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:20 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'ps' ( temp float) +0:21 gl_PointSize: direct index for structure ( in float PointSize) +0:21 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:21 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'cd' ( temp float) +0:22 direct index ( temp float ClipDistance) +0:22 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'pvi' ( temp int) +0:24 'gl_PatchVerticesIn' ( in int PatchVertices) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'pid' ( temp int) +0:25 'gl_PrimitiveID' ( in int PrimitiveID) +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'iid' ( temp int) +0:26 'gl_InvocationID' ( in int InvocationID) +0:28 move second child to first child ( temp 4-component vector of float) +0:28 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:28 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:28 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:28 'gl_InvocationID' ( in int InvocationID) +0:28 Constant: +0:28 0 (const int) +0:28 'p' ( temp 4-component vector of float) +0:29 move second child to first child ( temp float) +0:29 gl_PointSize: direct index for structure ( out float PointSize) +0:29 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:29 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:29 'gl_InvocationID' ( in int InvocationID) +0:29 Constant: +0:29 1 (const int) +0:29 'ps' ( temp float) +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float ClipDistance) +0:30 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance) +0:30 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:30 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:30 'gl_InvocationID' ( in int InvocationID) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 'cd' ( temp float) +0:32 move second child to first child ( temp float) +0:32 direct index ( patch temp float TessLevelOuter) +0:32 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) +0:32 Constant: +0:32 3 (const int) +0:32 Constant: +0:32 3.200000 +0:33 move second child to first child ( temp float) +0:33 direct index ( patch temp float TessLevelInner) +0:33 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.300000 +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 4-element array of int) +0:? 'patchOut' ( patch out 4-component vector of float) + +150.tese +ERROR: 0:12: 'barrier' : no matching overloaded function found +ERROR: 1 compilation errors. No code generated. + + +Shader version: 150 +Requested GL_ARB_tessellation_shader +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Constant: +0:12 0.000000 +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a' ( temp int) +0:14 Constant: +0:14 1512 (const int) +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'p' ( temp 4-component vector of float) +0:22 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 0 (const int) +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'ps' ( temp float) +0:23 gl_PointSize: direct index for structure ( in float PointSize) +0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 1 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'cd' ( temp float) +0:24 direct index ( temp float ClipDistance) +0:24 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 2 (const int) +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'pvi' ( temp int) +0:26 'gl_PatchVerticesIn' ( in int PatchVertices) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'pid' ( temp int) +0:27 'gl_PrimitiveID' ( in int PrimitiveID) +0:28 Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 'tc' ( temp 3-component vector of float) +0:28 'gl_TessCoord' ( in 3-component vector of float TessCoord) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'tlo' ( temp float) +0:29 direct index ( patch temp float TessLevelOuter) +0:29 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) +0:29 Constant: +0:29 3 (const int) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'tli' ( temp float) +0:30 direct index ( patch temp float TessLevelInner) +0:30 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) +0:30 Constant: +0:30 1 (const int) +0:32 move second child to first child ( temp 4-component vector of float) +0:32 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:32 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:32 Constant: +0:32 0 (const uint) +0:32 'p' ( temp 4-component vector of float) +0:33 move second child to first child ( temp float) +0:33 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:33 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const uint) +0:33 'ps' ( temp float) +0:34 move second child to first child ( temp float) +0:34 direct index ( temp float ClipDistance) +0:34 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance) +0:34 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 2 (const int) +0:34 'cd' ( temp float) +0:? Linker Objects +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) + +400.tesc +ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader +ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() +ERROR: 0:64: 'vertices' : can only apply to 'out' +ERROR: 0:65: 'vertices' : cannot change previously set layout value +ERROR: 0:69: '[' : array index out of range '4' +ERROR: 0:71: '' : tessellation control barrier() must be in main() +ERROR: 0:74: 'in' : type must be an array: ina +ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:83: 'location' : overlapping use of location 4 +ERROR: 0:87: 'location' : overlapping use of location 4 +ERROR: 0:104: '' : precise qualifier must appear first +ERROR: 0:105: '' : precise qualifier must appear first +ERROR: 0:105: '' : precise qualifier must appear first +ERROR: 0:109: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:110: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview +ERROR: 23 compilation errors. No code generated. + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +vertices = 4 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier ( global void) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'a' ( temp int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'p' ( temp 4-component vector of float) +0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'ps' ( temp float) +0:24 gl_PointSize: direct index for structure ( in float PointSize) +0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'cd' ( temp float) +0:25 direct index ( temp float ClipDistance) +0:25 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'pvi' ( temp int) +0:27 'gl_PatchVerticesIn' ( in int PatchVertices) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'pid' ( temp int) +0:28 'gl_PrimitiveID' ( in int PrimitiveID) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'iid' ( temp int) +0:29 'gl_InvocationID' ( in int InvocationID) +0:31 move second child to first child ( temp 4-component vector of float) +0:31 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_InvocationID' ( in int InvocationID) +0:31 Constant: +0:31 0 (const int) +0:31 'p' ( temp 4-component vector of float) +0:32 move second child to first child ( temp float) +0:32 gl_PointSize: direct index for structure ( out float PointSize) +0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_InvocationID' ( in int InvocationID) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' ( temp float) +0:33 move second child to first child ( temp float) +0:33 direct index ( temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance) +0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_InvocationID' ( in int InvocationID) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 'cd' ( temp float) +0:35 move second child to first child ( temp float) +0:35 direct index ( patch temp float TessLevelOuter) +0:35 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child ( temp float) +0:36 direct index ( patch temp float TessLevelInner) +0:36 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Greater Than ( temp bool) +0:38 'a' ( temp int) +0:38 Constant: +0:38 10 (const int) +0:38 true case +0:39 Barrier ( global void) +0:38 false case +0:41 Barrier ( global void) +0:43 Barrier ( global void) +0:47 Loop with condition not tested first +0:47 Loop Condition +0:47 Compare Greater Than ( temp bool) +0:47 'a' ( temp int) +0:47 Constant: +0:47 10 (const int) +0:47 Loop Body +0:46 Sequence +0:46 Barrier ( global void) +0:49 switch +0:49 condition +0:49 'a' ( temp int) +0:49 body +0:49 Sequence +0:50 default: +0:? Sequence +0:51 Barrier ( global void) +0:52 Branch: Break +0:54 Test condition and select ( temp int) +0:54 Condition +0:54 Compare Less Than ( temp bool) +0:54 'a' ( temp int) +0:54 Constant: +0:54 12 (const int) +0:54 true case +0:54 'a' ( temp int) +0:54 false case +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) +0:56 Sequence +0:56 Barrier ( global void) +0:59 Branch: Return +0:61 Barrier ( global void) +0:67 Function Definition: foo( ( global void) +0:67 Function Parameters: +0:69 Sequence +0:69 gl_PointSize: direct index for structure ( out float PointSize) +0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:69 Constant: +0:69 4 (const int) +0:69 Constant: +0:69 1 (const int) +0:71 Barrier ( global void) +0:91 Function Definition: foop( ( global void) +0:91 Function Parameters: +0:? Sequence +0:95 multiply second child into first child ( temp 3-component vector of float) +0:95 'pv3' ( noContraction temp 3-component vector of float) +0:95 'pv3' ( noContraction temp 3-component vector of float) +0:96 move second child to first child ( temp 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:96 fma ( global 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:97 move second child to first child ( temp double) +0:97 'd' ( noContraction temp double) +0:97 fma ( global double) +0:97 'd' ( noContraction temp double) +0:97 'd' ( noContraction temp double) +0:97 'd' ( noContraction temp double) +0:107 Function Definition: devi( ( global void) +0:107 Function Parameters: +0:109 Sequence +0:109 'gl_DeviceIndex' ( in int DeviceIndex) +0:110 'gl_ViewIndex' ( in int ViewIndex) +0:121 Function Definition: devie( ( global void) +0:121 Function Parameters: +0:123 Sequence +0:123 'gl_DeviceIndex' ( in int DeviceIndex) +0:124 'gl_ViewIndex' ( in int ViewIndex) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 4-element array of int) +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'ivla' (layout( location=3) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'pv3' ( noContraction temp 3-component vector of float) +0:? 'pinbi' ( patch out block{ out int a}) +0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float) + +400.tese +ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:5: 'triangles' : cannot change previously set input primitive +ERROR: 0:6: 'isolines' : cannot change previously set input primitive +ERROR: 0:8: 'ccw' : cannot change previously set vertex order +ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing +ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing +ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader +ERROR: 0:22: 'barrier' : no matching overloaded function found +ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:64: 'quads' : cannot apply to 'out' +ERROR: 0:64: 'cw' : can only apply to 'in' +ERROR: 0:65: 'triangles' : cannot apply to 'out' +ERROR: 0:66: 'isolines' : cannot apply to 'out' +ERROR: 0:67: 'cw' : can only apply to 'in' +ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' +ERROR: 0:69: 'equal_spacing' : can only apply to 'in' +ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' +ERROR: 0:71: 'point_mode' : can only apply to 'in' +ERROR: 0:73: 'in' : type must be an array: ina +ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:78: 'in' : type must be an array: bla +ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:96: 'location' : overlapping use of location 24 +ERROR: 0:99: 'location' : overlapping use of location 24 +ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved +ERROR: 0:109: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:110: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview +ERROR: 31 compilation errors. No code generated. + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'a' ( temp int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'p' ( temp 4-component vector of float) +0:32 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'ps' ( temp float) +0:33 gl_PointSize: direct index for structure ( in float PointSize) +0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'cd' ( temp float) +0:34 direct index ( temp float ClipDistance) +0:34 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 2 (const int) +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'pvi' ( temp int) +0:36 'gl_PatchVerticesIn' ( in int PatchVertices) +0:37 Sequence +0:37 move second child to first child ( temp int) +0:37 'pid' ( temp int) +0:37 'gl_PrimitiveID' ( in int PrimitiveID) +0:38 Sequence +0:38 move second child to first child ( temp 3-component vector of float) +0:38 'tc' ( temp 3-component vector of float) +0:38 'gl_TessCoord' ( in 3-component vector of float TessCoord) +0:39 Sequence +0:39 move second child to first child ( temp float) +0:39 'tlo' ( temp float) +0:39 direct index ( patch temp float TessLevelOuter) +0:39 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'tli' ( temp float) +0:40 direct index ( patch temp float TessLevelInner) +0:40 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' ( temp 4-component vector of float) +0:43 move second child to first child ( temp float) +0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' ( temp float) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float ClipDistance) +0:44 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance) +0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 'cd' ( temp float) +0:107 Function Definition: devi( ( global void) +0:107 Function Parameters: +0:109 Sequence +0:109 'gl_DeviceIndex' ( in int DeviceIndex) +0:110 'gl_ViewIndex' ( in int ViewIndex) +0:121 Function Definition: devie( ( global void) +0:121 Function Parameters: +0:123 Sequence +0:123 'gl_DeviceIndex' ( in int DeviceIndex) +0:124 'gl_ViewIndex' ( in int ViewIndex) +0:? Linker Objects +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:? 'badp1' ( smooth patch in 4-component vector of float) +0:? 'badp2' ( flat patch in 4-component vector of float) +0:? 'badp3' ( noperspective patch in 4-component vector of float) +0:? 'badp4' ( patch sample in 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'bla' ( in block{ in int f}) +0:? 'blb' ( in 32-element array of block{ in int f}) +0:? 'blc' ( in 32-element array of block{ in int f}) +0:? 'bld' ( in 32-element array of block{ in int f}) +0:? 'ivla' (layout( location=23) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of 4-component vector of float) +0:? 'pinbi' ( patch in block{ in int a}) + +410.tesc +ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier +ERROR: 1 compilation errors. No code generated. + + +Shader version: 400 +vertices = -1 +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:? Linker Objects +0:? 'gl_out' ( out unsized 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 1-element array of int) +0:? 'patchOut' ( patch out 4-component vector of float) + +420.tesc +ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out +ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a +ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb +ERROR: 0:26: 'gl_PointSize' : no such field in structure +ERROR: 0:26: 'assign' : cannot convert from ' temp float' to ' temp block{ out 4-component vector of float Position gl_Position}' +ERROR: 0:29: 'out' : type must be an array: outf +ERROR: 0:43: 'vertices' : must be greater than 0 +ERROR: 7 compilation errors. No code generated. + + +Shader version: 420 +Requested GL_ARB_separate_shader_objects +vertices = 4 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'p' ( temp 4-component vector of float) +0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'ps' ( temp float) +0:18 gl_PointSize: direct index for structure ( in float PointSize) +0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'cd' ( temp float) +0:19 direct index ( temp float ClipDistance) +0:19 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'pvi' ( temp int) +0:21 'gl_PatchVerticesIn' ( in int PatchVertices) +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'pid' ( temp int) +0:22 'gl_PrimitiveID' ( in int PrimitiveID) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'iid' ( temp int) +0:23 'gl_InvocationID' ( in int InvocationID) +0:25 move second child to first child ( temp 4-component vector of float) +0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_InvocationID' ( in int InvocationID) +0:25 Constant: +0:25 0 (const int) +0:25 'p' ( temp 4-component vector of float) +0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_InvocationID' ( in int InvocationID) +0:34 Function Definition: foo( ( global void) +0:34 Function Parameters: +0:36 Sequence +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 logical-or ( temp bool) +0:36 Compare Not Equal ( temp bool) +0:36 Constant: +0:36 -0.625000 +0:36 -0.500000 +0:36 -0.375000 +0:36 -0.250000 +0:36 -0.375000 +0:36 -0.250000 +0:36 -0.125000 +0:36 0.000000 +0:36 direct index (layout( location=0) temp 2X4 matrix of double) +0:36 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) +0:36 Constant: +0:36 0 (const int) +0:37 Compare Not Equal ( temp bool) +0:37 Constant: +0:37 0.375000 +0:37 0.500000 +0:37 0.625000 +0:37 0.750000 +0:37 0.625000 +0:37 0.750000 +0:37 0.875000 +0:37 -0.625000 +0:37 direct index (layout( location=12) temp 2X4 matrix of double) +0:37 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) +0:37 Constant: +0:37 0 (const int) +0:36 true case is null +0:? Linker Objects +0:? 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:? 'a' ( out 3-element array of int) +0:? 'outb' ( out 5-element array of int) +0:? 'outc' ( out 4-element array of int) +0:? 'outf' ( out float) +0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) +0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) + +420.tese +ERROR: 0:7: '=' : cannot convert from ' const 3-element array of float' to ' global 2-element array of float' +ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float +ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float +ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float +ERROR: 0:25: 'initializer list' : wrong number of structure members +ERROR: 0:27: '=' : cannot convert from ' const bool' to ' global int' +ERROR: 0:28: 'constructor' : cannot convert parameter 2 from ' const float' to ' temp 4-component vector of float' +ERROR: 0:29: 'constructor' : cannot convert parameter 2 from ' const 2X2 matrix of float' to ' const 4-component vector of float' +ERROR: 0:29: ' const 2-element array of 4-component vector of float' : cannot construct with these arguments +ERROR: 0:29: '=' : cannot convert from ' const float' to ' global 2-element array of 4-component vector of float' +ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float +ERROR: 0:40: 'constructor' : cannot convert parameter 1 from ' const structure{ global 4-component vector of float a, global 4-component vector of float b}' to ' temp structure{ global float s, global float t}' +ERROR: 0:70: 'initializer list' : wrong number of structure members +ERROR: 13 compilation errors. No code generated. + + +Shader version: 420 +input primitive = none +vertex spacing = none +triangle order = none +ERROR: node is still EOpNull! +0:4 Sequence +0:4 move second child to first child ( temp 2X2 matrix of float) +0:4 'b' ( global 2X2 matrix of float) +0:4 Constant: +0:4 1.000000 +0:4 0.000000 +0:4 0.000000 +0:4 1.000000 +0:15 Sequence +0:15 move second child to first child ( temp structure{ global float a, global int b}) +0:15 'e' ( global structure{ global float a, global int b}) +0:15 Constant: +0:15 1.200000 +0:15 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp structure{ global float a, global int b}) +0:20 'e2' ( global structure{ global float a, global int b}) +0:20 Constant: +0:20 1.000000 +0:20 3 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 5-element array of float) +0:42 'b5' ( global 5-element array of float) +0:42 Constant: +0:42 3.400000 +0:42 4.200000 +0:42 5.000000 +0:42 5.200000 +0:42 1.100000 +0:55 Sequence +0:55 move second child to first child ( temp structure{ global int f}) +0:55 'single1' ( global structure{ global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child ( temp structure{ global 2-component vector of uint v}) +0:58 'single2' ( global structure{ global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp structure{ global structure{ global int f} s1}) +0:61 'single3' ( global structure{ global structure{ global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child ( temp structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child ( temp 3-component vector of float) +0:79 'av3' ( global 3-component vector of float) +0:79 Construct vec3 ( global 3-component vector of float) +0:79 'vc1' ( global float) +0:79 'vc2' ( global float) +0:79 'vc3' ( global float) +0:80 Sequence +0:80 move second child to first child ( temp 3-component vector of float) +0:80 'bv3' ( global 3-component vector of float) +0:80 Construct vec3 ( temp 3-component vector of float) +0:80 'vc1' ( global float) +0:80 'vc2' ( global float) +0:80 'vc3' ( global float) +0:82 Function Definition: main( ( global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) +0:86 Condition +0:86 Compare Equal ( temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select ( temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null +0:? Linker Objects +0:? 'a' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'b' ( global 2X2 matrix of float) +0:? 'c' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'a2' ( global 2-element array of float) +0:? 'b2' ( global 2-component vector of float) +0:? 'c2' ( global 3X3 matrix of float) +0:? 'd' ( global 2X2 matrix of float) +0:? 'e' ( global structure{ global float a, global int b}) +0:? 'e2' ( global structure{ global float a, global int b}) +0:? 'e3' ( global structure{ global float a, global int b}) +0:? 'a3' ( global int) +0:? 'b3' ( global 2-element array of 4-component vector of float) +0:? 'b4' ( global 2-element array of 4-component vector of float) +0:? 'c3' ( global 4X2 matrix of float) +0:? 'd2' ( global unsized 1-element array of structure{ global float s, global float t}) +0:? 'b5' ( global 5-element array of float) +0:? 'single1' ( global structure{ global int f}) +0:? 'single2' ( global structure{ global 2-component vector of uint v}) +0:? 'single3' ( global structure{ global structure{ global int f} s1}) +0:? 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:? 'constructed' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 'curlyInit' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'vc1' ( global float) +0:? 'vc2' ( global float) +0:? 'vc3' ( global float) +0:? 'av3' ( global 3-component vector of float) +0:? 'bv3' ( global 3-component vector of float) + + +Linked tessellation control stage: + +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage +ERROR: Linking tessellation control stage: Contradictory layout vertices values +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: Types must match: + outa: " global 4-element array of int" versus " global 1-element array of int" +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + foo( +ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation control stage: Types must match: + gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}" versus " out 3-element array of block{ out 4-component vector of float Position gl_Position}" + +Linked tessellation evaluation stage: + +ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage +ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage +ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives +ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing +ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering +ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( + +Shader version: 420 +Requested GL_ARB_separate_shader_objects +Requested GL_ARB_tessellation_shader +Requested GL_EXT_device_group +Requested GL_EXT_multiview +vertices = 4 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Barrier ( global void) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a' ( temp int) +0:14 Constant: +0:14 5392 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'p' ( temp 4-component vector of float) +0:20 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:20 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:20 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'ps' ( temp float) +0:21 gl_PointSize: direct index for structure ( in float PointSize) +0:21 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:21 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'cd' ( temp float) +0:22 direct index ( temp float ClipDistance) +0:22 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'pvi' ( temp int) +0:24 'gl_PatchVerticesIn' ( in int PatchVertices) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'pid' ( temp int) +0:25 'gl_PrimitiveID' ( in int PrimitiveID) +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'iid' ( temp int) +0:26 'gl_InvocationID' ( in int InvocationID) +0:28 move second child to first child ( temp 4-component vector of float) +0:28 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:28 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:28 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:28 'gl_InvocationID' ( in int InvocationID) +0:28 Constant: +0:28 0 (const int) +0:28 'p' ( temp 4-component vector of float) +0:29 move second child to first child ( temp float) +0:29 gl_PointSize: direct index for structure ( out float PointSize) +0:29 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:29 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:29 'gl_InvocationID' ( in int InvocationID) +0:29 Constant: +0:29 1 (const int) +0:29 'ps' ( temp float) +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float ClipDistance) +0:30 gl_ClipDistance: direct index for structure ( out 2-element array of float ClipDistance) +0:30 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:30 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:30 'gl_InvocationID' ( in int InvocationID) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 'cd' ( temp float) +0:32 move second child to first child ( temp float) +0:32 direct index ( patch temp float TessLevelOuter) +0:32 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) +0:32 Constant: +0:32 3 (const int) +0:32 Constant: +0:32 3.200000 +0:33 move second child to first child ( temp float) +0:33 direct index ( patch temp float TessLevelInner) +0:33 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.300000 +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier ( global void) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'a' ( temp int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'p' ( temp 4-component vector of float) +0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'ps' ( temp float) +0:24 gl_PointSize: direct index for structure ( in float PointSize) +0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'cd' ( temp float) +0:25 direct index ( temp float ClipDistance) +0:25 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'pvi' ( temp int) +0:27 'gl_PatchVerticesIn' ( in int PatchVertices) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'pid' ( temp int) +0:28 'gl_PrimitiveID' ( in int PrimitiveID) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'iid' ( temp int) +0:29 'gl_InvocationID' ( in int InvocationID) +0:31 move second child to first child ( temp 4-component vector of float) +0:31 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_InvocationID' ( in int InvocationID) +0:31 Constant: +0:31 0 (const int) +0:31 'p' ( temp 4-component vector of float) +0:32 move second child to first child ( temp float) +0:32 gl_PointSize: direct index for structure ( out float PointSize) +0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_InvocationID' ( in int InvocationID) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' ( temp float) +0:33 move second child to first child ( temp float) +0:33 direct index ( temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure ( out 2-element array of float ClipDistance) +0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_InvocationID' ( in int InvocationID) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 'cd' ( temp float) +0:35 move second child to first child ( temp float) +0:35 direct index ( patch temp float TessLevelOuter) +0:35 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child ( temp float) +0:36 direct index ( patch temp float TessLevelInner) +0:36 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Greater Than ( temp bool) +0:38 'a' ( temp int) +0:38 Constant: +0:38 10 (const int) +0:38 true case +0:39 Barrier ( global void) +0:38 false case +0:41 Barrier ( global void) +0:43 Barrier ( global void) +0:47 Loop with condition not tested first +0:47 Loop Condition +0:47 Compare Greater Than ( temp bool) +0:47 'a' ( temp int) +0:47 Constant: +0:47 10 (const int) +0:47 Loop Body +0:46 Sequence +0:46 Barrier ( global void) +0:49 switch +0:49 condition +0:49 'a' ( temp int) +0:49 body +0:49 Sequence +0:50 default: +0:? Sequence +0:51 Barrier ( global void) +0:52 Branch: Break +0:54 Test condition and select ( temp int) +0:54 Condition +0:54 Compare Less Than ( temp bool) +0:54 'a' ( temp int) +0:54 Constant: +0:54 12 (const int) +0:54 true case +0:54 'a' ( temp int) +0:54 false case +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) +0:56 Sequence +0:56 Barrier ( global void) +0:59 Branch: Return +0:61 Barrier ( global void) +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'p' ( temp 4-component vector of float) +0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'ps' ( temp float) +0:18 gl_PointSize: direct index for structure ( in float PointSize) +0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'cd' ( temp float) +0:19 direct index ( temp float ClipDistance) +0:19 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'pvi' ( temp int) +0:21 'gl_PatchVerticesIn' ( in int PatchVertices) +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'pid' ( temp int) +0:22 'gl_PrimitiveID' ( in int PrimitiveID) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'iid' ( temp int) +0:23 'gl_InvocationID' ( in int InvocationID) +0:25 move second child to first child ( temp 4-component vector of float) +0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_InvocationID' ( in int InvocationID) +0:25 Constant: +0:25 0 (const int) +0:25 'p' ( temp 4-component vector of float) +0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_InvocationID' ( in int InvocationID) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 4-element array of int) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'ivla' (layout( location=3) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'pv3' ( noContraction temp 3-component vector of float) +0:? 'pinbi' ( patch out block{ out int a}) +0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float) +0:? 'a' ( out 3-element array of int) +0:? 'outb' ( out 5-element array of int) +0:? 'outc' ( out 4-element array of int) +0:? 'outf' ( out float) +0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) +0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) +Shader version: 420 +Requested GL_ARB_separate_shader_objects +Requested GL_ARB_tessellation_shader +Requested GL_EXT_device_group +Requested GL_EXT_multiview +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Constant: +0:12 0.000000 +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a' ( temp int) +0:14 Constant: +0:14 1512 (const int) +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'p' ( temp 4-component vector of float) +0:22 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 0 (const int) +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'ps' ( temp float) +0:23 gl_PointSize: direct index for structure ( in float PointSize) +0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 1 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'cd' ( temp float) +0:24 direct index ( temp float ClipDistance) +0:24 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 2 (const int) +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'pvi' ( temp int) +0:26 'gl_PatchVerticesIn' ( in int PatchVertices) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'pid' ( temp int) +0:27 'gl_PrimitiveID' ( in int PrimitiveID) +0:28 Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 'tc' ( temp 3-component vector of float) +0:28 'gl_TessCoord' ( in 3-component vector of float TessCoord) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'tlo' ( temp float) +0:29 direct index ( patch temp float TessLevelOuter) +0:29 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) +0:29 Constant: +0:29 3 (const int) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'tli' ( temp float) +0:30 direct index ( patch temp float TessLevelInner) +0:30 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) +0:30 Constant: +0:30 1 (const int) +0:32 move second child to first child ( temp 4-component vector of float) +0:32 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:32 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:32 Constant: +0:32 0 (const uint) +0:32 'p' ( temp 4-component vector of float) +0:33 move second child to first child ( temp float) +0:33 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:33 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const uint) +0:33 'ps' ( temp float) +0:34 move second child to first child ( temp float) +0:34 direct index ( temp float ClipDistance) +0:34 gl_ClipDistance: direct index for structure ( out 3-element array of float ClipDistance) +0:34 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 2 (const int) +0:34 'cd' ( temp float) +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'a' ( temp int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'p' ( temp 4-component vector of float) +0:32 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'ps' ( temp float) +0:33 gl_PointSize: direct index for structure ( in float PointSize) +0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'cd' ( temp float) +0:34 direct index ( temp float ClipDistance) +0:34 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 2 (const int) +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'pvi' ( temp int) +0:36 'gl_PatchVerticesIn' ( in int PatchVertices) +0:37 Sequence +0:37 move second child to first child ( temp int) +0:37 'pid' ( temp int) +0:37 'gl_PrimitiveID' ( in int PrimitiveID) +0:38 Sequence +0:38 move second child to first child ( temp 3-component vector of float) +0:38 'tc' ( temp 3-component vector of float) +0:38 'gl_TessCoord' ( in 3-component vector of float TessCoord) +0:39 Sequence +0:39 move second child to first child ( temp float) +0:39 'tlo' ( temp float) +0:39 direct index ( patch temp float TessLevelOuter) +0:39 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'tli' ( temp float) +0:40 direct index ( patch temp float TessLevelInner) +0:40 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' ( temp 4-component vector of float) +0:43 move second child to first child ( temp float) +0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' ( temp float) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float ClipDistance) +0:44 gl_ClipDistance: direct index for structure ( out 3-element array of float ClipDistance) +0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 'cd' ( temp float) +0:4 Sequence +0:4 move second child to first child ( temp 2X2 matrix of float) +0:4 'b' ( global 2X2 matrix of float) +0:4 Constant: +0:4 1.000000 +0:4 0.000000 +0:4 0.000000 +0:4 1.000000 +0:15 Sequence +0:15 move second child to first child ( temp structure{ global float a, global int b}) +0:15 'e' ( global structure{ global float a, global int b}) +0:15 Constant: +0:15 1.200000 +0:15 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp structure{ global float a, global int b}) +0:20 'e2' ( global structure{ global float a, global int b}) +0:20 Constant: +0:20 1.000000 +0:20 3 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 5-element array of float) +0:42 'b5' ( global 5-element array of float) +0:42 Constant: +0:42 3.400000 +0:42 4.200000 +0:42 5.000000 +0:42 5.200000 +0:42 1.100000 +0:55 Sequence +0:55 move second child to first child ( temp structure{ global int f}) +0:55 'single1' ( global structure{ global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child ( temp structure{ global 2-component vector of uint v}) +0:58 'single2' ( global structure{ global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp structure{ global structure{ global int f} s1}) +0:61 'single3' ( global structure{ global structure{ global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child ( temp structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child ( temp 3-component vector of float) +0:79 'av3' ( global 3-component vector of float) +0:79 Construct vec3 ( global 3-component vector of float) +0:79 'vc1' ( global float) +0:79 'vc2' ( global float) +0:79 'vc3' ( global float) +0:80 Sequence +0:80 move second child to first child ( temp 3-component vector of float) +0:80 'bv3' ( global 3-component vector of float) +0:80 Construct vec3 ( temp 3-component vector of float) +0:80 'vc1' ( global float) +0:80 'vc2' ( global float) +0:80 'vc3' ( global float) +0:82 Function Definition: main( ( global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) +0:86 Condition +0:86 Compare Equal ( temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select ( temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null +0:? Linker Objects +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'badp1' ( smooth patch in 4-component vector of float) +0:? 'badp2' ( flat patch in 4-component vector of float) +0:? 'badp3' ( noperspective patch in 4-component vector of float) +0:? 'badp4' ( patch sample in 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'bla' ( in block{ in int f}) +0:? 'blb' ( in 32-element array of block{ in int f}) +0:? 'blc' ( in 32-element array of block{ in int f}) +0:? 'bld' ( in 32-element array of block{ in int f}) +0:? 'ivla' (layout( location=23) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of 4-component vector of float) +0:? 'pinbi' ( patch in block{ in int a}) +0:? 'a' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'b' ( global 2X2 matrix of float) +0:? 'c' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'a2' ( global 2-element array of float) +0:? 'b2' ( global 2-component vector of float) +0:? 'c2' ( global 3X3 matrix of float) +0:? 'd' ( global 2X2 matrix of float) +0:? 'e' ( global structure{ global float a, global int b}) +0:? 'e2' ( global structure{ global float a, global int b}) +0:? 'e3' ( global structure{ global float a, global int b}) +0:? 'a3' ( global int) +0:? 'b3' ( global 2-element array of 4-component vector of float) +0:? 'b4' ( global 2-element array of 4-component vector of float) +0:? 'c3' ( global 4X2 matrix of float) +0:? 'd2' ( global 1-element array of structure{ global float s, global float t}) +0:? 'b5' ( global 5-element array of float) +0:? 'single1' ( global structure{ global int f}) +0:? 'single2' ( global structure{ global 2-component vector of uint v}) +0:? 'single3' ( global structure{ global structure{ global int f} s1}) +0:? 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:? 'constructed' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 'curlyInit' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'vc1' ( global float) +0:? 'vc2' ( global float) +0:? 'vc3' ( global float) +0:? 'av3' ( global 3-component vector of float) +0:? 'bv3' ( global 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/150.vert.out b/deps/glslang/glslang/Test/baseResults/150.vert.out new file mode 100644 index 0000000000..504160d578 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/150.vert.out @@ -0,0 +1,95 @@ +150.vert +ERROR: 0:26: 'a' : cannot redeclare a user-block member array +ERROR: 0:3001: '#error' : line of this error should be 3001 +ERROR: 2 compilation errors. No code generated. + + +Shader version: 150 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position) +0:15 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:15 Constant: +0:15 0 (const uint) +0:15 'iv4' ( in 4-component vector of float) +0:16 move second child to first child ( temp float) +0:16 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:16 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:16 Constant: +0:16 1 (const uint) +0:16 'ps' ( uniform float) +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float ClipDistance) +0:17 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) +0:17 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:17 Constant: +0:17 2 (const uint) +0:17 Constant: +0:17 2 (const int) +0:17 direct index ( temp float) +0:17 'iv4' ( in 4-component vector of float) +0:17 Constant: +0:17 0 (const int) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 gl_ClipVertex: direct index for structure ( gl_ClipVertex 4-component vector of float ClipVertex) +0:18 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:18 Constant: +0:18 3 (const uint) +0:18 'iv4' ( in 4-component vector of float) +0:? Linker Objects +0:? 'iv4' ( in 4-component vector of float) +0:? 'ps' ( uniform float) +0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform unsized 1-element array of int a}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred) + +Shader version: 150 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position) +0:15 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:15 Constant: +0:15 0 (const uint) +0:15 'iv4' ( in 4-component vector of float) +0:16 move second child to first child ( temp float) +0:16 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:16 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:16 Constant: +0:16 1 (const uint) +0:16 'ps' ( uniform float) +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float ClipDistance) +0:17 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) +0:17 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:17 Constant: +0:17 2 (const uint) +0:17 Constant: +0:17 2 (const int) +0:17 direct index ( temp float) +0:17 'iv4' ( in 4-component vector of float) +0:17 Constant: +0:17 0 (const int) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 gl_ClipVertex: direct index for structure ( gl_ClipVertex 4-component vector of float ClipVertex) +0:18 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:18 Constant: +0:18 3 (const uint) +0:18 'iv4' ( in 4-component vector of float) +0:? Linker Objects +0:? 'iv4' ( in 4-component vector of float) +0:? 'ps' ( uniform float) +0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform 1-element array of int a}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/300.frag.out b/deps/glslang/glslang/Test/baseResults/300.frag.out new file mode 100644 index 0000000000..ee1b8a55a9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300.frag.out @@ -0,0 +1,632 @@ +300.frag +ERROR: 0:2: 'float' : type requires declaration of default precision qualifier +ERROR: 0:30: 'noperspective' : Reserved word. +ERROR: 0:30: 'noperspective' : not supported for this version or the enabled extensions +ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads +ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:39: 'structure' : must be qualified as flat in +ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout +ERROR: 0:60: 'texel offset' : argument must be compile-time constant +ERROR: 0:62: 'texel offset' : argument must be compile-time constant +ERROR: 0:63: 'texel offset' : argument must be compile-time constant +ERROR: 0:64: 'texel offset' : argument must be compile-time constant +ERROR: 0:66: 'texel offset' : argument must be compile-time constant +ERROR: 0:68: 'texel offset' : argument must be compile-time constant +ERROR: 0:69: 'variable indexing sampler array' : not supported for this version or the enabled extensions +ERROR: 0:73: 'texel offset' : argument must be compile-time constant +ERROR: 0:83: 'double' : Reserved word. +ERROR: 0:83: 'double' : not supported with this profile: es +ERROR: 0:84: 'dvec2' : Reserved word. +ERROR: 0:84: 'double vector' : not supported with this profile: es +ERROR: 0:85: 'dvec3' : Reserved word. +ERROR: 0:85: 'double vector' : not supported with this profile: es +ERROR: 0:86: 'dvec4' : Reserved word. +ERROR: 0:86: 'double vector' : not supported with this profile: es +ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled extensions +ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions +ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions +ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions +ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions +ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions +ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es +ERROR: 0:111: 'variable indexing fragment shader output array' : not supported with this profile: es +ERROR: 0:119: '==' : can't use with samplers or structs containing samplers +ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers +ERROR: 0:121: '==' : can't use with samplers or structs containing samplers +ERROR: 0:121: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global lowp sampler2D' and a right operand of type ' global lowp sampler2D' (or there is no acceptable conversion) +ERROR: 0:122: '=' : can't use with samplers or structs containing samplers +ERROR: 0:123: '==' : can't use with samplers or structs containing samplers +ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:148: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) +ERROR: 0:150: 'early_fragment_tests' : not supported for this version or the enabled extensions +ERROR: 0:156: 'invariant' : can only apply to an output +ERROR: 0:157: 'invariant' : can only apply to an output +ERROR: 0:158: 'invariant' : can only apply to an output +ERROR: 0:160: 'imageBuffer' : Reserved word. +ERROR: 0:160: '' : syntax error, unexpected IMAGEBUFFER, expecting COMMA or SEMICOLON +ERROR: 46 compilation errors. No code generated. + + +Shader version: 300 +using early_fragment_tests +ERROR: node is still EOpNull! +0:53 Function Definition: main( ( global void) +0:53 Function Parameters: +0:? Sequence +0:57 move second child to first child ( temp lowp 4-component vector of float) +0:57 'v' ( temp lowp 4-component vector of float) +0:57 texture ( global lowp 4-component vector of float) +0:57 's2D' ( uniform lowp sampler2D) +0:57 'c2D' ( smooth in lowp 2-component vector of float) +0:58 move second child to first child ( temp lowp 4-component vector of float) +0:58 'v' ( temp lowp 4-component vector of float) +0:58 textureProj ( global lowp 4-component vector of float) +0:58 's3D' ( uniform lowp sampler3D) +0:58 'c4D' ( smooth temp lowp 4-component vector of float) +0:59 move second child to first child ( temp lowp 4-component vector of float) +0:59 'v' ( temp lowp 4-component vector of float) +0:59 textureLod ( global lowp 4-component vector of float) +0:59 's2DArray' ( uniform lowp sampler2DArray) +0:59 'c3D' ( smooth in lowp 3-component vector of float) +0:59 Constant: +0:59 1.200000 +0:60 move second child to first child ( temp lowp float) +0:60 'f' ( temp lowp float) +0:60 textureOffset ( global lowp float, operation at mediump) +0:60 's2DShadow' ( uniform lowp sampler2DShadow) +0:60 'c3D' ( smooth in lowp 3-component vector of float) +0:60 'ic2D' ( flat in mediump 2-component vector of int) +0:60 'c1D' ( smooth in lowp float) +0:61 move second child to first child ( temp lowp 4-component vector of float) +0:61 'v' ( temp lowp 4-component vector of float) +0:61 textureFetch ( global lowp 4-component vector of float, operation at mediump) +0:61 's3D' ( uniform lowp sampler3D) +0:61 'ic3D' ( flat in mediump 3-component vector of int) +0:61 'ic1D' ( flat in mediump int) +0:62 move second child to first child ( temp lowp 4-component vector of float) +0:62 'v' ( temp lowp 4-component vector of float) +0:62 textureFetchOffset ( global lowp 4-component vector of float, operation at mediump) +0:62 direct index ( temp lowp sampler2D) +0:62 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) +0:62 Constant: +0:62 2 (const int) +0:62 'ic2D' ( flat in mediump 2-component vector of int) +0:62 Constant: +0:62 4 (const int) +0:62 'ic2D' ( flat in mediump 2-component vector of int) +0:63 move second child to first child ( temp lowp float) +0:63 'f' ( temp lowp float) +0:63 textureLodOffset ( global lowp float, operation at mediump) +0:63 's2DShadow' ( uniform lowp sampler2DShadow) +0:63 'c3D' ( smooth in lowp 3-component vector of float) +0:63 'c1D' ( smooth in lowp float) +0:63 'ic2D' ( flat in mediump 2-component vector of int) +0:64 move second child to first child ( temp lowp 4-component vector of float) +0:64 'v' ( temp lowp 4-component vector of float) +0:64 textureProjLodOffset ( global lowp 4-component vector of float, operation at mediump) +0:64 's2D' ( uniform lowp sampler2D) +0:64 'c3D' ( smooth in lowp 3-component vector of float) +0:64 'c1D' ( smooth in lowp float) +0:64 'ic2D' ( flat in mediump 2-component vector of int) +0:65 move second child to first child ( temp lowp 4-component vector of float) +0:65 'v' ( temp lowp 4-component vector of float) +0:65 textureGrad ( global lowp 4-component vector of float) +0:65 'sCube' ( uniform lowp samplerCube) +0:65 'c3D' ( smooth in lowp 3-component vector of float) +0:65 'c3D' ( smooth in lowp 3-component vector of float) +0:65 'c3D' ( smooth in lowp 3-component vector of float) +0:66 move second child to first child ( temp lowp float) +0:66 'f' ( temp lowp float) +0:66 textureGradOffset ( global lowp float, operation at mediump) +0:66 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) +0:66 'c4D' ( smooth temp lowp 4-component vector of float) +0:66 'c2D' ( smooth in lowp 2-component vector of float) +0:66 'c2D' ( smooth in lowp 2-component vector of float) +0:66 'ic2D' ( flat in mediump 2-component vector of int) +0:67 move second child to first child ( temp lowp 4-component vector of float) +0:67 'v' ( temp lowp 4-component vector of float) +0:67 textureProjGrad ( global lowp 4-component vector of float) +0:67 's3D' ( uniform lowp sampler3D) +0:67 'c4D' ( smooth temp lowp 4-component vector of float) +0:67 'c3D' ( smooth in lowp 3-component vector of float) +0:67 'c3D' ( smooth in lowp 3-component vector of float) +0:68 move second child to first child ( temp lowp 4-component vector of float) +0:68 'v' ( temp lowp 4-component vector of float) +0:68 textureProjGradOffset ( global lowp 4-component vector of float, operation at mediump) +0:68 's2D' ( uniform lowp sampler2D) +0:68 'c3D' ( smooth in lowp 3-component vector of float) +0:68 'c2D' ( smooth in lowp 2-component vector of float) +0:68 'c2D' ( smooth in lowp 2-component vector of float) +0:68 'ic2D' ( flat in mediump 2-component vector of int) +0:69 move second child to first child ( temp lowp 4-component vector of float) +0:69 'v' ( temp lowp 4-component vector of float) +0:69 texture ( global lowp 4-component vector of float) +0:69 indirect index ( temp lowp sampler2D) +0:69 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) +0:69 'ic1D' ( flat in mediump int) +0:69 'c2D' ( smooth in lowp 2-component vector of float) +0:72 move second child to first child ( temp mediump 4-component vector of int) +0:72 'iv' ( temp mediump 4-component vector of int) +0:72 texture ( global lowp 4-component vector of int) +0:72 'is2D' ( uniform lowp isampler2D) +0:72 'c2D' ( smooth in lowp 2-component vector of float) +0:73 move second child to first child ( temp mediump 4-component vector of int) +0:73 'iv' ( temp mediump 4-component vector of int) +0:73 textureProjOffset ( global lowp 4-component vector of int, operation at mediump) +0:73 'is2D' ( uniform lowp isampler2D) +0:73 'c4D' ( smooth temp lowp 4-component vector of float) +0:73 'ic2D' ( flat in mediump 2-component vector of int) +0:74 move second child to first child ( temp mediump 4-component vector of int) +0:74 'iv' ( temp mediump 4-component vector of int) +0:74 textureProjLod ( global lowp 4-component vector of int) +0:74 'is2D' ( uniform lowp isampler2D) +0:74 'c3D' ( smooth in lowp 3-component vector of float) +0:74 'c1D' ( smooth in lowp float) +0:75 move second child to first child ( temp mediump 4-component vector of int) +0:75 'iv' ( temp mediump 4-component vector of int) +0:75 textureProjGrad ( global lowp 4-component vector of int) +0:75 'is2D' ( uniform lowp isampler2D) +0:75 'c3D' ( smooth in lowp 3-component vector of float) +0:75 'c2D' ( smooth in lowp 2-component vector of float) +0:75 'c2D' ( smooth in lowp 2-component vector of float) +0:76 move second child to first child ( temp mediump 4-component vector of int) +0:76 'iv' ( temp mediump 4-component vector of int) +0:76 texture ( global lowp 4-component vector of int) +0:76 'is3D' ( uniform lowp isampler3D) +0:76 'c3D' ( smooth in lowp 3-component vector of float) +0:76 Constant: +0:76 4.200000 +0:77 move second child to first child ( temp mediump 4-component vector of int) +0:77 'iv' ( temp mediump 4-component vector of int) +0:77 textureLod ( global lowp 4-component vector of int) +0:77 'isCube' ( uniform lowp isamplerCube) +0:77 'c3D' ( smooth in lowp 3-component vector of float) +0:77 'c1D' ( smooth in lowp float) +0:78 move second child to first child ( temp mediump 4-component vector of int) +0:78 'iv' ( temp mediump 4-component vector of int) +0:78 textureFetch ( global lowp 4-component vector of int, operation at mediump) +0:78 'is2DArray' ( uniform lowp isampler2DArray) +0:78 'ic3D' ( flat in mediump 3-component vector of int) +0:78 'ic1D' ( flat in mediump int) +0:80 move second child to first child ( temp highp 2-component vector of int) +0:80 vector swizzle ( temp mediump 2-component vector of int) +0:80 'iv' ( temp mediump 4-component vector of int) +0:80 Sequence +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 textureSize ( global highp 2-component vector of int, operation at lowp) +0:80 'sCubeShadow' ( uniform lowp samplerCubeShadow) +0:80 Constant: +0:80 2 (const int) +0:88 add second child into first child ( temp highp float) +0:88 'f' ( temp lowp float) +0:88 direct index ( temp highp float) +0:88 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) +0:88 Constant: +0:88 1 (const int) +0:89 move second child to first child ( temp highp float) +0:89 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:89 'f' ( temp lowp float) +0:91 move second child to first child ( temp lowp 3-component vector of float) +0:91 'sc' ( out lowp 3-component vector of float) +0:91 c: direct index for structure ( global lowp 3-component vector of float) +0:91 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) +0:91 Constant: +0:91 0 (const int) +0:92 move second child to first child ( temp lowp float) +0:92 'sf' ( out lowp float) +0:92 f: direct index for structure ( global lowp float) +0:92 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) +0:92 Constant: +0:92 1 (const int) +0:94 add ( temp lowp 2-component vector of float) +0:94 hyp. sine ( global lowp float) +0:94 'c1D' ( smooth in lowp float) +0:95 vector-scale ( temp lowp 2-component vector of float) +0:95 hyp. cosine ( global lowp float) +0:95 'c1D' ( smooth in lowp float) +0:95 hyp. tangent ( global lowp 2-component vector of float) +0:95 'c2D' ( smooth in lowp 2-component vector of float) +0:96 add ( temp lowp 4-component vector of float) +0:96 arc hyp. sine ( global lowp 4-component vector of float) +0:96 'c4D' ( smooth temp lowp 4-component vector of float) +0:96 arc hyp. cosine ( global lowp 4-component vector of float) +0:96 'c4D' ( smooth temp lowp 4-component vector of float) +0:97 arc hyp. tangent ( global lowp 3-component vector of float) +0:97 'c3D' ( smooth in lowp 3-component vector of float) +0:108 Function Definition: foo( ( global void) +0:108 Function Parameters: +0:110 Sequence +0:110 move second child to first child ( temp lowp 4-component vector of float) +0:110 direct index ( temp lowp 4-component vector of float) +0:110 'colors' ( out 4-element array of lowp 4-component vector of float) +0:110 Constant: +0:110 2 (const int) +0:110 'c4D' ( smooth temp lowp 4-component vector of float) +0:111 move second child to first child ( temp lowp 4-component vector of float) +0:111 indirect index ( temp lowp 4-component vector of float) +0:111 'colors' ( out 4-element array of lowp 4-component vector of float) +0:111 'ic1D' ( flat in mediump int) +0:111 'c4D' ( smooth temp lowp 4-component vector of float) +0:117 Function Definition: foo13(struct-s-i1-s211; ( global void) +0:117 Function Parameters: +0:117 'inSt2' ( in structure{ global mediump int i, global lowp sampler2D s}) +0:119 Sequence +0:119 Test condition and select ( temp void) +0:119 Condition +0:119 Compare Equal ( temp bool) +0:119 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:119 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:119 true case is null +0:120 Test condition and select ( temp void) +0:120 Condition +0:120 Compare Not Equal ( temp bool) +0:120 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:120 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:120 true case is null +0:121 Constant: +0:121 false (const bool) +0:122 move second child to first child ( temp structure{ global mediump int i, global lowp sampler2D s}) +0:122 'inSt2' ( in structure{ global mediump int i, global lowp sampler2D s}) +0:122 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:123 Compare Equal ( temp bool) +0:123 'inSt2' ( in structure{ global mediump int i, global lowp sampler2D s}) +0:123 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:126 Function Definition: foo23( ( global void) +0:126 Function Parameters: +0:128 Sequence +0:128 textureOffset ( global lowp float) +0:128 's2DShadow' ( uniform lowp sampler2DShadow) +0:128 'c3D' ( smooth in lowp 3-component vector of float) +0:128 Constant: +0:128 -8 (const int) +0:128 7 (const int) +0:128 'c1D' ( smooth in lowp float) +0:129 textureOffset ( global lowp float) +0:129 's2DShadow' ( uniform lowp sampler2DShadow) +0:129 'c3D' ( smooth in lowp 3-component vector of float) +0:129 Constant: +0:129 -9 (const int) +0:129 8 (const int) +0:129 'c1D' ( smooth in lowp float) +0:132 Function Definition: foo324( ( global void) +0:132 Function Parameters: +0:134 Sequence +0:134 Sequence +0:134 move second child to first child ( temp lowp float) +0:134 'p' ( temp lowp float) +0:134 Constant: +0:134 210.712306 +0:135 add second child into first child ( temp lowp float) +0:135 'p' ( temp lowp float) +0:135 Constant: +0:135 0.389418 +0:136 add second child into first child ( temp lowp float) +0:136 'p' ( temp lowp float) +0:136 Constant: +0:136 5.000000 +0:137 add second child into first child ( temp lowp float) +0:137 'p' ( temp lowp float) +0:137 Constant: +0:137 13.000000 +0:138 Sequence +0:138 move second child to first child ( temp lowp 3-component vector of float) +0:138 'c3' ( temp lowp 3-component vector of float) +0:138 Constant: +0:138 -15.000000 +0:138 -2.000000 +0:138 39.000000 +0:139 add second child into first child ( temp lowp 3-component vector of float) +0:139 'c3' ( temp lowp 3-component vector of float) +0:139 Constant: +0:139 -1.000000 +0:139 -2.000000 +0:139 -3.000000 +0:140 add second child into first child ( temp lowp 3-component vector of float) +0:140 'c3' ( temp lowp 3-component vector of float) +0:140 Constant: +0:140 1.000000 +0:140 2.000000 +0:140 3.000000 +0:141 Sequence +0:141 move second child to first child ( temp lowp 2-component vector of float) +0:141 'c2' ( temp lowp 2-component vector of float) +0:141 Constant: +0:141 1.000000 +0:141 -3.000000 +0:142 add second child into first child ( temp lowp 2-component vector of float) +0:142 'c2' ( temp lowp 2-component vector of float) +0:142 Constant: +0:142 1.000000 +0:142 -3.000000 +0:143 add second child into first child ( temp lowp 2-component vector of float) +0:143 'c2' ( temp lowp 2-component vector of float) +0:143 Constant: +0:143 3.000000 +0:143 -8.544004 +0:144 add second child into first child ( temp lowp 2-component vector of float) +0:144 'c2' ( temp lowp 2-component vector of float) +0:144 Constant: +0:144 0.000000 +0:144 0.000000 +0:145 Sequence +0:145 move second child to first child ( temp lowp 3X2 matrix of float) +0:145 'm32' ( temp lowp 3X2 matrix of float) +0:145 Constant: +0:145 10.000000 +0:145 15.000000 +0:145 14.000000 +0:145 21.000000 +0:145 22.000000 +0:145 33.000000 +0:? Linker Objects +0:? 's2D' ( uniform lowp sampler2D) +0:? 's3D' ( uniform lowp sampler3D) +0:? 'sCube' ( uniform lowp samplerCube) +0:? 'sCubeShadow' ( uniform lowp samplerCubeShadow) +0:? 's2DShadow' ( uniform lowp sampler2DShadow) +0:? 's2DArray' ( uniform lowp sampler2DArray) +0:? 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) +0:? 'is2D' ( uniform lowp isampler2D) +0:? 'is3D' ( uniform lowp isampler3D) +0:? 'isCube' ( uniform lowp isamplerCube) +0:? 'is2DArray' ( uniform lowp isampler2DArray) +0:? 'us2D' ( uniform lowp usampler2D) +0:? 'us3D' ( uniform lowp usampler3D) +0:? 'usCube' ( uniform lowp usamplerCube) +0:? 'us2DArray' ( uniform lowp usampler2DArray) +0:? 'c1D' ( smooth in lowp float) +0:? 'c2D' ( smooth in lowp 2-component vector of float) +0:? 'c3D' ( smooth in lowp 3-component vector of float) +0:? 'c4D' ( smooth temp lowp 4-component vector of float) +0:? 'ic1D' ( flat in mediump int) +0:? 'ic2D' ( flat in mediump 2-component vector of int) +0:? 'ic3D' ( flat in mediump 3-component vector of int) +0:? 'ic4D' ( flat in mediump 4-component vector of int) +0:? 'badv' ( noperspective in lowp 4-component vector of float) +0:? 'bads' ( smooth in lowp sampler2D) +0:? 'badout' ( smooth in structure{ global mediump int i, global lowp sampler2D s}) +0:? 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) +0:? 'sc' ( out lowp 3-component vector of float) +0:? 'sf' ( out lowp float) +0:? 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) +0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 3-element array of 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c}) +0:? 'colors' ( out 4-element array of lowp 4-component vector of float) +0:? 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:? 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:? 'fooinv' ( invariant smooth in lowp 4-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers + +Shader version: 300 +using early_fragment_tests +ERROR: node is still EOpNull! +0:53 Function Definition: main( ( global void) +0:53 Function Parameters: +0:? Sequence +0:57 move second child to first child ( temp lowp 4-component vector of float) +0:57 'v' ( temp lowp 4-component vector of float) +0:57 texture ( global lowp 4-component vector of float) +0:57 's2D' ( uniform lowp sampler2D) +0:57 'c2D' ( smooth in lowp 2-component vector of float) +0:58 move second child to first child ( temp lowp 4-component vector of float) +0:58 'v' ( temp lowp 4-component vector of float) +0:58 textureProj ( global lowp 4-component vector of float) +0:58 's3D' ( uniform lowp sampler3D) +0:58 'c4D' ( smooth temp lowp 4-component vector of float) +0:59 move second child to first child ( temp lowp 4-component vector of float) +0:59 'v' ( temp lowp 4-component vector of float) +0:59 textureLod ( global lowp 4-component vector of float) +0:59 's2DArray' ( uniform lowp sampler2DArray) +0:59 'c3D' ( smooth in lowp 3-component vector of float) +0:59 Constant: +0:59 1.200000 +0:60 move second child to first child ( temp lowp float) +0:60 'f' ( temp lowp float) +0:60 textureOffset ( global lowp float, operation at mediump) +0:60 's2DShadow' ( uniform lowp sampler2DShadow) +0:60 'c3D' ( smooth in lowp 3-component vector of float) +0:60 'ic2D' ( flat in mediump 2-component vector of int) +0:60 'c1D' ( smooth in lowp float) +0:61 move second child to first child ( temp lowp 4-component vector of float) +0:61 'v' ( temp lowp 4-component vector of float) +0:61 textureFetch ( global lowp 4-component vector of float, operation at mediump) +0:61 's3D' ( uniform lowp sampler3D) +0:61 'ic3D' ( flat in mediump 3-component vector of int) +0:61 'ic1D' ( flat in mediump int) +0:62 move second child to first child ( temp lowp 4-component vector of float) +0:62 'v' ( temp lowp 4-component vector of float) +0:62 textureFetchOffset ( global lowp 4-component vector of float, operation at mediump) +0:62 direct index ( temp lowp sampler2D) +0:62 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) +0:62 Constant: +0:62 2 (const int) +0:62 'ic2D' ( flat in mediump 2-component vector of int) +0:62 Constant: +0:62 4 (const int) +0:62 'ic2D' ( flat in mediump 2-component vector of int) +0:63 move second child to first child ( temp lowp float) +0:63 'f' ( temp lowp float) +0:63 textureLodOffset ( global lowp float, operation at mediump) +0:63 's2DShadow' ( uniform lowp sampler2DShadow) +0:63 'c3D' ( smooth in lowp 3-component vector of float) +0:63 'c1D' ( smooth in lowp float) +0:63 'ic2D' ( flat in mediump 2-component vector of int) +0:64 move second child to first child ( temp lowp 4-component vector of float) +0:64 'v' ( temp lowp 4-component vector of float) +0:64 textureProjLodOffset ( global lowp 4-component vector of float, operation at mediump) +0:64 's2D' ( uniform lowp sampler2D) +0:64 'c3D' ( smooth in lowp 3-component vector of float) +0:64 'c1D' ( smooth in lowp float) +0:64 'ic2D' ( flat in mediump 2-component vector of int) +0:65 move second child to first child ( temp lowp 4-component vector of float) +0:65 'v' ( temp lowp 4-component vector of float) +0:65 textureGrad ( global lowp 4-component vector of float) +0:65 'sCube' ( uniform lowp samplerCube) +0:65 'c3D' ( smooth in lowp 3-component vector of float) +0:65 'c3D' ( smooth in lowp 3-component vector of float) +0:65 'c3D' ( smooth in lowp 3-component vector of float) +0:66 move second child to first child ( temp lowp float) +0:66 'f' ( temp lowp float) +0:66 textureGradOffset ( global lowp float, operation at mediump) +0:66 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) +0:66 'c4D' ( smooth temp lowp 4-component vector of float) +0:66 'c2D' ( smooth in lowp 2-component vector of float) +0:66 'c2D' ( smooth in lowp 2-component vector of float) +0:66 'ic2D' ( flat in mediump 2-component vector of int) +0:67 move second child to first child ( temp lowp 4-component vector of float) +0:67 'v' ( temp lowp 4-component vector of float) +0:67 textureProjGrad ( global lowp 4-component vector of float) +0:67 's3D' ( uniform lowp sampler3D) +0:67 'c4D' ( smooth temp lowp 4-component vector of float) +0:67 'c3D' ( smooth in lowp 3-component vector of float) +0:67 'c3D' ( smooth in lowp 3-component vector of float) +0:68 move second child to first child ( temp lowp 4-component vector of float) +0:68 'v' ( temp lowp 4-component vector of float) +0:68 textureProjGradOffset ( global lowp 4-component vector of float, operation at mediump) +0:68 's2D' ( uniform lowp sampler2D) +0:68 'c3D' ( smooth in lowp 3-component vector of float) +0:68 'c2D' ( smooth in lowp 2-component vector of float) +0:68 'c2D' ( smooth in lowp 2-component vector of float) +0:68 'ic2D' ( flat in mediump 2-component vector of int) +0:69 move second child to first child ( temp lowp 4-component vector of float) +0:69 'v' ( temp lowp 4-component vector of float) +0:69 texture ( global lowp 4-component vector of float) +0:69 indirect index ( temp lowp sampler2D) +0:69 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) +0:69 'ic1D' ( flat in mediump int) +0:69 'c2D' ( smooth in lowp 2-component vector of float) +0:72 move second child to first child ( temp mediump 4-component vector of int) +0:72 'iv' ( temp mediump 4-component vector of int) +0:72 texture ( global lowp 4-component vector of int) +0:72 'is2D' ( uniform lowp isampler2D) +0:72 'c2D' ( smooth in lowp 2-component vector of float) +0:73 move second child to first child ( temp mediump 4-component vector of int) +0:73 'iv' ( temp mediump 4-component vector of int) +0:73 textureProjOffset ( global lowp 4-component vector of int, operation at mediump) +0:73 'is2D' ( uniform lowp isampler2D) +0:73 'c4D' ( smooth temp lowp 4-component vector of float) +0:73 'ic2D' ( flat in mediump 2-component vector of int) +0:74 move second child to first child ( temp mediump 4-component vector of int) +0:74 'iv' ( temp mediump 4-component vector of int) +0:74 textureProjLod ( global lowp 4-component vector of int) +0:74 'is2D' ( uniform lowp isampler2D) +0:74 'c3D' ( smooth in lowp 3-component vector of float) +0:74 'c1D' ( smooth in lowp float) +0:75 move second child to first child ( temp mediump 4-component vector of int) +0:75 'iv' ( temp mediump 4-component vector of int) +0:75 textureProjGrad ( global lowp 4-component vector of int) +0:75 'is2D' ( uniform lowp isampler2D) +0:75 'c3D' ( smooth in lowp 3-component vector of float) +0:75 'c2D' ( smooth in lowp 2-component vector of float) +0:75 'c2D' ( smooth in lowp 2-component vector of float) +0:76 move second child to first child ( temp mediump 4-component vector of int) +0:76 'iv' ( temp mediump 4-component vector of int) +0:76 texture ( global lowp 4-component vector of int) +0:76 'is3D' ( uniform lowp isampler3D) +0:76 'c3D' ( smooth in lowp 3-component vector of float) +0:76 Constant: +0:76 4.200000 +0:77 move second child to first child ( temp mediump 4-component vector of int) +0:77 'iv' ( temp mediump 4-component vector of int) +0:77 textureLod ( global lowp 4-component vector of int) +0:77 'isCube' ( uniform lowp isamplerCube) +0:77 'c3D' ( smooth in lowp 3-component vector of float) +0:77 'c1D' ( smooth in lowp float) +0:78 move second child to first child ( temp mediump 4-component vector of int) +0:78 'iv' ( temp mediump 4-component vector of int) +0:78 textureFetch ( global lowp 4-component vector of int, operation at mediump) +0:78 'is2DArray' ( uniform lowp isampler2DArray) +0:78 'ic3D' ( flat in mediump 3-component vector of int) +0:78 'ic1D' ( flat in mediump int) +0:80 move second child to first child ( temp highp 2-component vector of int) +0:80 vector swizzle ( temp mediump 2-component vector of int) +0:80 'iv' ( temp mediump 4-component vector of int) +0:80 Sequence +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 textureSize ( global highp 2-component vector of int, operation at lowp) +0:80 'sCubeShadow' ( uniform lowp samplerCubeShadow) +0:80 Constant: +0:80 2 (const int) +0:88 add second child into first child ( temp highp float) +0:88 'f' ( temp lowp float) +0:88 direct index ( temp highp float) +0:88 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) +0:88 Constant: +0:88 1 (const int) +0:89 move second child to first child ( temp highp float) +0:89 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:89 'f' ( temp lowp float) +0:91 move second child to first child ( temp lowp 3-component vector of float) +0:91 'sc' ( out lowp 3-component vector of float) +0:91 c: direct index for structure ( global lowp 3-component vector of float) +0:91 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) +0:91 Constant: +0:91 0 (const int) +0:92 move second child to first child ( temp lowp float) +0:92 'sf' ( out lowp float) +0:92 f: direct index for structure ( global lowp float) +0:92 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) +0:92 Constant: +0:92 1 (const int) +0:94 add ( temp lowp 2-component vector of float) +0:94 hyp. sine ( global lowp float) +0:94 'c1D' ( smooth in lowp float) +0:95 vector-scale ( temp lowp 2-component vector of float) +0:95 hyp. cosine ( global lowp float) +0:95 'c1D' ( smooth in lowp float) +0:95 hyp. tangent ( global lowp 2-component vector of float) +0:95 'c2D' ( smooth in lowp 2-component vector of float) +0:96 add ( temp lowp 4-component vector of float) +0:96 arc hyp. sine ( global lowp 4-component vector of float) +0:96 'c4D' ( smooth temp lowp 4-component vector of float) +0:96 arc hyp. cosine ( global lowp 4-component vector of float) +0:96 'c4D' ( smooth temp lowp 4-component vector of float) +0:97 arc hyp. tangent ( global lowp 3-component vector of float) +0:97 'c3D' ( smooth in lowp 3-component vector of float) +0:? Linker Objects +0:? 's2D' ( uniform lowp sampler2D) +0:? 's3D' ( uniform lowp sampler3D) +0:? 'sCube' ( uniform lowp samplerCube) +0:? 'sCubeShadow' ( uniform lowp samplerCubeShadow) +0:? 's2DShadow' ( uniform lowp sampler2DShadow) +0:? 's2DArray' ( uniform lowp sampler2DArray) +0:? 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) +0:? 'is2D' ( uniform lowp isampler2D) +0:? 'is3D' ( uniform lowp isampler3D) +0:? 'isCube' ( uniform lowp isamplerCube) +0:? 'is2DArray' ( uniform lowp isampler2DArray) +0:? 'us2D' ( uniform lowp usampler2D) +0:? 'us3D' ( uniform lowp usampler3D) +0:? 'usCube' ( uniform lowp usamplerCube) +0:? 'us2DArray' ( uniform lowp usampler2DArray) +0:? 'c1D' ( smooth in lowp float) +0:? 'c2D' ( smooth in lowp 2-component vector of float) +0:? 'c3D' ( smooth in lowp 3-component vector of float) +0:? 'c4D' ( smooth temp lowp 4-component vector of float) +0:? 'ic1D' ( flat in mediump int) +0:? 'ic2D' ( flat in mediump 2-component vector of int) +0:? 'ic3D' ( flat in mediump 3-component vector of int) +0:? 'ic4D' ( flat in mediump 4-component vector of int) +0:? 'badv' ( noperspective in lowp 4-component vector of float) +0:? 'bads' ( smooth in lowp sampler2D) +0:? 'badout' ( smooth in structure{ global mediump int i, global lowp sampler2D s}) +0:? 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) +0:? 'sc' ( out lowp 3-component vector of float) +0:? 'sf' ( out lowp float) +0:? 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) +0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 3-element array of 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c}) +0:? 'colors' ( out 4-element array of lowp 4-component vector of float) +0:? 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:? 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) +0:? 'fooinv' ( invariant smooth in lowp 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/300.vert.out b/deps/glslang/glslang/Test/baseResults/300.vert.out new file mode 100644 index 0000000000..95ebb92e3c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300.vert.out @@ -0,0 +1,505 @@ +300.vert +ERROR: 0:8: 'varying' : Reserved word. +ERROR: 0:8: 'varying' : no longer supported in es profile; removed in version 300 +ERROR: 0:9: 'vertex input arrays' : not supported with this profile: es +ERROR: 0:10: '' : precision qualifier must appear as last qualifier +ERROR: 0:11: '' : invariant qualifier must appear before interpolation, storage, and precision qualifiers +ERROR: 0:12: '' : Auxiliary qualifiers (centroid, patch, and sample) must appear before storage and precision qualifiers +ERROR: 0:12: '' : vertex input cannot be further qualified +ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers +ERROR: 0:14: '' : in/out must appear before const +ERROR: 0:15: '' : precision qualifier must appear as last qualifier +ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD) +ERROR: 0:17: 'sample' : Reserved word. +ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:18: 'uniform' : too many storage qualifiers +ERROR: 0:56: '#error' : GL_ES is set +ERROR: 0:62: '' : array size required +ERROR: 0:63: '' : array size required +ERROR: 0:64: '' : array size required +ERROR: 0:65: '' : array size required +ERROR: 0:67: '' : array size required +ERROR: 0:76: 'invariant' : cannot change qualification after use +ERROR: 0:78: 'invariant' : can only apply to an output +ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform +ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform +ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform +ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform +ERROR: 0:121: 'textureSize' : no matching overloaded function found +ERROR: 0:123: 'textureSize' : no matching overloaded function found +ERROR: 0:125: 'texture' : no matching overloaded function found +ERROR: 0:127: 'textureProjOffset' : no matching overloaded function found +ERROR: 0:132: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2 +ERROR: 0:135: 'in' : overloaded functions must have the same parameter storage qualifiers for argument 2 +ERROR: 0:146: '' : array size required +ERROR: 0:147: '' : array size required +ERROR: 0:148: '' : array size required +ERROR: 0:149: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:168: 'Binst' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable +ERROR: 0:169: 'Bblock' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable +ERROR: 0:170: 'Bfoo' : cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable +ERROR: 0:172: 'std430' : not supported for this version or the enabled extensions +ERROR: 0:172: 'std430' : requires the 'buffer' storage qualifier +ERROR: 0:175: '' : array size required +ERROR: 0:185: 'assign' : cannot convert from ' temp 4-element array of highp float' to ' temp 3-element array of highp float' +ERROR: 0:186: 'assign' : cannot convert from ' temp 3-element array of highp float' to ' temp 4-element array of highp float' +ERROR: 0:189: 'num_views' : required extension not requested: Possible extensions include: +GL_OVR_multiview +GL_OVR_multiview2 +ERROR: 0:193: 'gl_ViewID_OVR' : required extension not requested: Possible extensions include: +GL_OVR_multiview +GL_OVR_multiview2 +ERROR: 0:198: 'num_views' : can only apply to a standalone qualifier +ERROR: 47 compilation errors. No code generated. + + +Shader version: 300 +Requested GL_OVR_multiview +ERROR: node is still EOpNull! +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:29 Sequence +0:29 Sequence +0:29 move second child to first child ( temp highp int) +0:29 'id' ( temp highp int) +0:29 add ( temp highp int) +0:29 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:29 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) +0:31 Sequence +0:31 move second child to first child ( temp highp int) +0:31 'c0' ( temp highp int) +0:31 Constant: +0:31 64 (const int) +0:32 Sequence +0:32 move second child to first child ( temp highp int) +0:32 'c1' ( temp highp int) +0:32 Constant: +0:32 128 (const int) +0:33 Sequence +0:33 move second child to first child ( temp highp int) +0:33 'c2' ( temp highp int) +0:33 Constant: +0:33 16 (const int) +0:34 Sequence +0:34 move second child to first child ( temp highp int) +0:34 'c3' ( temp highp int) +0:34 Constant: +0:34 15 (const int) +0:35 Sequence +0:35 move second child to first child ( temp highp int) +0:35 'c4' ( temp highp int) +0:35 Constant: +0:35 32 (const int) +0:36 Sequence +0:36 move second child to first child ( temp highp int) +0:36 'c5' ( temp highp int) +0:36 Constant: +0:36 80 (const int) +0:37 Sequence +0:37 move second child to first child ( temp highp int) +0:37 'c6' ( temp highp int) +0:37 Constant: +0:37 32 (const int) +0:38 Sequence +0:38 move second child to first child ( temp highp int) +0:38 'c7' ( temp highp int) +0:38 Constant: +0:38 16 (const int) +0:39 Sequence +0:39 move second child to first child ( temp highp int) +0:39 'c8' ( temp highp int) +0:39 Constant: +0:39 32 (const int) +0:40 Sequence +0:40 move second child to first child ( temp highp int) +0:40 'c9' ( temp highp int) +0:40 Constant: +0:40 -8 (const int) +0:41 Sequence +0:41 move second child to first child ( temp highp int) +0:41 'c10' ( temp highp int) +0:41 Constant: +0:41 7 (const int) +0:43 Sequence +0:43 move second child to first child ( temp highp 3X4 matrix of float) +0:43 'tm' ( temp highp 3X4 matrix of float) +0:43 transpose ( global highp 3X4 matrix of float) +0:43 'm43' ( uniform highp 4X3 matrix of float) +0:44 Sequence +0:44 move second child to first child ( temp highp float) +0:44 'dm' ( temp highp float) +0:44 determinant ( global highp float) +0:44 'm44' ( uniform highp 4X4 matrix of float) +0:45 Sequence +0:45 move second child to first child ( temp highp 3X3 matrix of float) +0:45 'im' ( temp highp 3X3 matrix of float) +0:45 inverse ( global highp 3X3 matrix of float) +0:45 'm33' ( uniform highp 3X3 matrix of float) +0:47 Sequence +0:47 move second child to first child ( temp highp 3X2 matrix of float) +0:47 'op' ( temp highp 3X2 matrix of float) +0:47 outer product ( global highp 3X2 matrix of float) +0:47 'v2' ( smooth out highp 2-component vector of float) +0:47 'v3' ( in highp 3-component vector of float) +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:49 direct index ( temp highp 4-component vector of float) +0:49 'm44' ( uniform highp 4X4 matrix of float) +0:49 Constant: +0:49 2 (const int) +0:50 move second child to first child ( temp highp float) +0:50 'gl_PointSize' ( gl_PointSize highp float PointSize) +0:50 direct index ( temp highp float) +0:50 'v2' ( smooth out highp 2-component vector of float) +0:50 Constant: +0:50 1 (const int) +0:52 move second child to first child ( temp highp 3-component vector of float) +0:52 c: direct index for structure ( global highp 3-component vector of float) +0:52 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:52 Constant: +0:52 0 (const int) +0:52 'v3' ( in highp 3-component vector of float) +0:53 move second child to first child ( temp highp float) +0:53 f: direct index for structure ( global highp float) +0:53 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:53 Constant: +0:53 1 (const int) +0:53 'dm' ( temp highp float) +0:68 Sequence +0:68 move second child to first child ( temp 2-element array of highp float) +0:68 'okayA' ( global 2-element array of highp float) +0:68 Constant: +0:68 3.000000 +0:68 4.000000 +0:71 Function Definition: newVFun( ( global void) +0:71 Function Parameters: +0:73 Sequence +0:73 move second child to first child ( temp highp 3-component vector of float) +0:73 'newV' ( smooth out highp 3-component vector of float) +0:73 'v3' ( in highp 3-component vector of float) +0:118 Function Definition: foo23( ( global void) +0:118 Function Parameters: +0:120 Sequence +0:120 Sequence +0:120 move second child to first child ( temp highp 2-component vector of int) +0:120 'x1' ( temp highp 2-component vector of int) +0:120 textureSize ( global highp 2-component vector of int, operation at lowp) +0:120 's2D' ( uniform lowp sampler2D) +0:120 Constant: +0:120 2 (const int) +0:121 Constant: +0:121 0.000000 +0:122 Sequence +0:122 move second child to first child ( temp highp 3-component vector of int) +0:122 'x3' ( temp highp 3-component vector of int) +0:122 textureSize ( global highp 3-component vector of int, operation at lowp) +0:122 's2DAS' ( uniform lowp sampler2DArrayShadow) +0:122 Constant: +0:122 -1 (const int) +0:123 Constant: +0:123 0.000000 +0:124 Sequence +0:124 move second child to first child ( temp highp 4-component vector of float) +0:124 'x4' ( temp highp 4-component vector of float) +0:124 texture ( global lowp 4-component vector of float, operation at highp) +0:124 's2D' ( uniform lowp sampler2D) +0:124 'c2D' ( in highp 2-component vector of float) +0:125 Constant: +0:125 0.000000 +0:126 Sequence +0:126 move second child to first child ( temp highp 4-component vector of float) +0:126 'x5' ( temp highp 4-component vector of float) +0:126 textureProjOffset ( global lowp 4-component vector of float) +0:126 's3D' ( uniform lowp sampler3D) +0:126 Constant: +0:126 0.200000 +0:126 0.200000 +0:126 0.200000 +0:126 0.200000 +0:126 Constant: +0:126 1 (const int) +0:126 1 (const int) +0:126 1 (const int) +0:127 Constant: +0:127 0.000000 +0:128 Sequence +0:128 move second child to first child ( temp highp float) +0:128 'x6' ( temp highp float) +0:128 textureProjGradOffset ( global lowp float, operation at highp) +0:128 's2DS' ( uniform lowp sampler2DShadow) +0:128 'invIn' ( invariant in highp 4-component vector of float) +0:128 Constant: +0:128 4.200000 +0:128 4.200000 +0:128 Constant: +0:128 5.300000 +0:128 5.300000 +0:128 Constant: +0:128 1 (const int) +0:128 1 (const int) +0:137 Function Definition: foo2349( ( global void) +0:137 Function Parameters: +0:139 Sequence +0:139 Sequence +0:139 move second child to first child ( temp 3-element array of highp float) +0:139 'x' ( temp 3-element array of highp float) +0:139 Constant: +0:139 1.000000 +0:139 2.000000 +0:139 3.000000 +0:140 Sequence +0:140 move second child to first child ( temp 3-element array of highp float) +0:140 'y' ( temp 3-element array of highp float) +0:140 'x' ( temp 3-element array of highp float) +0:141 Sequence +0:141 move second child to first child ( temp 3-element array of highp float) +0:141 'z' ( temp 3-element array of highp float) +0:141 'x' ( temp 3-element array of highp float) +0:143 move second child to first child ( temp 3-element array of highp float) +0:143 'w' ( temp 3-element array of highp float) +0:143 'y' ( temp 3-element array of highp float) +0:155 Function Definition: gggf(f1; ( global highp int) +0:155 Function Parameters: +0:155 'f' ( in highp float) +0:155 Sequence +0:155 Branch: Return with expression +0:155 Constant: +0:155 2 (const int) +0:158 Function Definition: agggf(f1; ( global highp int) +0:158 Function Parameters: +0:158 'f' ( in highp float) +0:158 Sequence +0:158 Branch: Return with expression +0:158 Constant: +0:158 2 (const int) +0:178 Function Definition: fooDeeparray( ( global void) +0:178 Function Parameters: +0:181 Sequence +0:181 Sequence +0:180 move second child to first child ( temp 3-element array of highp float) +0:180 'x' ( temp 3-element array of highp float) +0:180 Constant: +0:180 1.000000 +0:180 2.000000 +0:180 3.000000 +0:181 move second child to first child ( temp 4-element array of highp float) +0:181 'y' ( temp 4-element array of highp float) +0:181 Constant: +0:181 1.000000 +0:181 2.000000 +0:181 3.000000 +0:181 4.000000 +0:183 move second child to first child ( temp 3-element array of highp float) +0:183 'xp' ( temp 3-element array of highp float) +0:183 'x' ( temp 3-element array of highp float) +0:184 move second child to first child ( temp 4-element array of highp float) +0:184 'yp' ( temp 4-element array of highp float) +0:184 'y' ( temp 4-element array of highp float) +0:185 'xp' ( temp 3-element array of highp float) +0:186 'yp' ( temp 4-element array of highp float) +0:191 Function Definition: mwErr( ( global void) +0:191 Function Parameters: +0:193 Sequence +0:193 'gl_ViewID_OVR' ( in highp uint ViewIndex) +0:201 Function Definition: mwOk( ( global void) +0:201 Function Parameters: +0:203 Sequence +0:203 'gl_ViewID_OVR' ( in highp uint ViewIndex) +0:? Linker Objects +0:? 'm43' ( uniform highp 4X3 matrix of float) +0:? 'm33' ( uniform highp 3X3 matrix of float) +0:? 'm44' ( uniform highp 4X4 matrix of float) +0:? 'v3' ( in highp 3-component vector of float) +0:? 'v2' ( smooth out highp 2-component vector of float) +0:? 'bad' ( in 10-element array of highp 4-component vector of float) +0:? 'badorder' ( in highp 4-component vector of float) +0:? 'badorder2' ( invariant smooth out highp 4-component vector of float) +0:? 'badorder4' ( centroid in highp 4-component vector of float) +0:? 'badorder3' ( flat out highp 4-component vector of float) +0:? 'rep' ( smooth flat out highp 4-component vector of float) +0:? 'rep2' ( centroid smooth sample out highp 4-component vector of float) +0:? 'rep3' ( in highp 4-component vector of float) +0:? 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:? 'badsize' ( global unsized 1-element array of highp float) +0:? 'badsize2' ( global unsized 1-element array of highp float) +0:? 'ubInst' (layout( column_major shared) uniform unsized 1-element array of block{layout( column_major shared) uniform unsized 1-element array of highp int a}) +0:? 'okayA' ( global 2-element array of highp float) +0:? 'newV' ( invariant smooth out highp 3-component vector of float) +0:? 'invIn' ( invariant in highp 4-component vector of float) +0:? 's2' ( invariant smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:? 's3' ( invariant smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:? 'a' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp float f}) +0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b23}) +0:? 's2D' ( uniform lowp sampler2D) +0:? 's3D' ( uniform lowp sampler3D) +0:? 's2DS' ( uniform lowp sampler2DShadow) +0:? 's2DAS' ( uniform lowp sampler2DArrayShadow) +0:? 'c2D' ( in highp 2-component vector of float) +0:? 'ssss' ( smooth out structure{ global highp float f}) +0:? 'Binst' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp int a}) +0:? 'Bfoo' ( global highp int) +0:? 'B430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a}) +0:? 'mwUniform' ( uniform highp float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 300 +Requested GL_OVR_multiview +ERROR: node is still EOpNull! +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:29 Sequence +0:29 Sequence +0:29 move second child to first child ( temp highp int) +0:29 'id' ( temp highp int) +0:29 add ( temp highp int) +0:29 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:29 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) +0:31 Sequence +0:31 move second child to first child ( temp highp int) +0:31 'c0' ( temp highp int) +0:31 Constant: +0:31 64 (const int) +0:32 Sequence +0:32 move second child to first child ( temp highp int) +0:32 'c1' ( temp highp int) +0:32 Constant: +0:32 128 (const int) +0:33 Sequence +0:33 move second child to first child ( temp highp int) +0:33 'c2' ( temp highp int) +0:33 Constant: +0:33 16 (const int) +0:34 Sequence +0:34 move second child to first child ( temp highp int) +0:34 'c3' ( temp highp int) +0:34 Constant: +0:34 15 (const int) +0:35 Sequence +0:35 move second child to first child ( temp highp int) +0:35 'c4' ( temp highp int) +0:35 Constant: +0:35 32 (const int) +0:36 Sequence +0:36 move second child to first child ( temp highp int) +0:36 'c5' ( temp highp int) +0:36 Constant: +0:36 80 (const int) +0:37 Sequence +0:37 move second child to first child ( temp highp int) +0:37 'c6' ( temp highp int) +0:37 Constant: +0:37 32 (const int) +0:38 Sequence +0:38 move second child to first child ( temp highp int) +0:38 'c7' ( temp highp int) +0:38 Constant: +0:38 16 (const int) +0:39 Sequence +0:39 move second child to first child ( temp highp int) +0:39 'c8' ( temp highp int) +0:39 Constant: +0:39 32 (const int) +0:40 Sequence +0:40 move second child to first child ( temp highp int) +0:40 'c9' ( temp highp int) +0:40 Constant: +0:40 -8 (const int) +0:41 Sequence +0:41 move second child to first child ( temp highp int) +0:41 'c10' ( temp highp int) +0:41 Constant: +0:41 7 (const int) +0:43 Sequence +0:43 move second child to first child ( temp highp 3X4 matrix of float) +0:43 'tm' ( temp highp 3X4 matrix of float) +0:43 transpose ( global highp 3X4 matrix of float) +0:43 'm43' ( uniform highp 4X3 matrix of float) +0:44 Sequence +0:44 move second child to first child ( temp highp float) +0:44 'dm' ( temp highp float) +0:44 determinant ( global highp float) +0:44 'm44' ( uniform highp 4X4 matrix of float) +0:45 Sequence +0:45 move second child to first child ( temp highp 3X3 matrix of float) +0:45 'im' ( temp highp 3X3 matrix of float) +0:45 inverse ( global highp 3X3 matrix of float) +0:45 'm33' ( uniform highp 3X3 matrix of float) +0:47 Sequence +0:47 move second child to first child ( temp highp 3X2 matrix of float) +0:47 'op' ( temp highp 3X2 matrix of float) +0:47 outer product ( global highp 3X2 matrix of float) +0:47 'v2' ( smooth out highp 2-component vector of float) +0:47 'v3' ( in highp 3-component vector of float) +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:49 direct index ( temp highp 4-component vector of float) +0:49 'm44' ( uniform highp 4X4 matrix of float) +0:49 Constant: +0:49 2 (const int) +0:50 move second child to first child ( temp highp float) +0:50 'gl_PointSize' ( gl_PointSize highp float PointSize) +0:50 direct index ( temp highp float) +0:50 'v2' ( smooth out highp 2-component vector of float) +0:50 Constant: +0:50 1 (const int) +0:52 move second child to first child ( temp highp 3-component vector of float) +0:52 c: direct index for structure ( global highp 3-component vector of float) +0:52 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:52 Constant: +0:52 0 (const int) +0:52 'v3' ( in highp 3-component vector of float) +0:53 move second child to first child ( temp highp float) +0:53 f: direct index for structure ( global highp float) +0:53 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:53 Constant: +0:53 1 (const int) +0:53 'dm' ( temp highp float) +0:68 Sequence +0:68 move second child to first child ( temp 2-element array of highp float) +0:68 'okayA' ( global 2-element array of highp float) +0:68 Constant: +0:68 3.000000 +0:68 4.000000 +0:? Linker Objects +0:? 'm43' ( uniform highp 4X3 matrix of float) +0:? 'm33' ( uniform highp 3X3 matrix of float) +0:? 'm44' ( uniform highp 4X4 matrix of float) +0:? 'v3' ( in highp 3-component vector of float) +0:? 'v2' ( smooth out highp 2-component vector of float) +0:? 'bad' ( in 10-element array of highp 4-component vector of float) +0:? 'badorder' ( in highp 4-component vector of float) +0:? 'badorder2' ( invariant smooth out highp 4-component vector of float) +0:? 'badorder4' ( centroid in highp 4-component vector of float) +0:? 'badorder3' ( flat out highp 4-component vector of float) +0:? 'rep' ( smooth flat out highp 4-component vector of float) +0:? 'rep2' ( centroid smooth sample out highp 4-component vector of float) +0:? 'rep3' ( in highp 4-component vector of float) +0:? 's' ( smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:? 'badsize' ( global 1-element array of highp float) +0:? 'badsize2' ( global 1-element array of highp float) +0:? 'ubInst' (layout( column_major shared) uniform 1-element array of block{layout( column_major shared) uniform 1-element array of highp int a}) +0:? 'okayA' ( global 2-element array of highp float) +0:? 'newV' ( invariant smooth out highp 3-component vector of float) +0:? 'invIn' ( invariant in highp 4-component vector of float) +0:? 's2' ( invariant smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:? 's3' ( invariant smooth out structure{ global highp 3-component vector of float c, global highp float f}) +0:? 'a' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp float f}) +0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b23}) +0:? 's2D' ( uniform lowp sampler2D) +0:? 's3D' ( uniform lowp sampler3D) +0:? 's2DS' ( uniform lowp sampler2DShadow) +0:? 's2DAS' ( uniform lowp sampler2DArrayShadow) +0:? 'c2D' ( in highp 2-component vector of float) +0:? 'ssss' ( smooth out structure{ global highp float f}) +0:? 'Binst' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp int a}) +0:? 'Bfoo' ( global highp int) +0:? 'B430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a}) +0:? 'mwUniform' ( uniform highp float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/300BuiltIns.frag.out b/deps/glslang/glslang/Test/baseResults/300BuiltIns.frag.out new file mode 100644 index 0000000000..84d4d0860c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300BuiltIns.frag.out @@ -0,0 +1,418 @@ +300BuiltIns.frag +ERROR: 0:6: 'float' : type requires declaration of default precision qualifier +ERROR: 0:70: 'noise2' : no matching overloaded function found +ERROR: 0:72: 't__' : identifiers containing consecutive underscores ("__") are reserved, and an error if version <= 300 +ERROR: 0:75: '#define' : names containing consecutive underscores are reserved, and an error if version <= 300: __D +ERROR: 4 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:26 Function Definition: main( ( global void) +0:26 Function Parameters: +0:29 Sequence +0:29 Sequence +0:29 move second child to first child ( temp mediump 3-component vector of float) +0:29 'v' ( temp mediump 3-component vector of float) +0:29 mix ( global mediump 3-component vector of float) +0:29 'x' ( global mediump 3-component vector of float) +0:29 'y' ( global mediump 3-component vector of float) +0:29 'bv' ( global 3-component vector of bool) +0:30 Sequence +0:30 move second child to first child ( temp mediump 4-component vector of int) +0:30 'iv10' ( temp mediump 4-component vector of int) +0:30 Absolute value ( global mediump 4-component vector of int) +0:30 'iv4a' ( global mediump 4-component vector of int) +0:31 Sequence +0:31 move second child to first child ( temp mediump 4-component vector of int) +0:31 'iv11' ( temp mediump 4-component vector of int) +0:31 Sign ( global mediump 4-component vector of int) +0:31 'iv4a' ( global mediump 4-component vector of int) +0:32 Sequence +0:32 move second child to first child ( temp mediump 4-component vector of int) +0:32 'iv12' ( temp mediump 4-component vector of int) +0:32 min ( global mediump 4-component vector of int) +0:32 'iv4a' ( global mediump 4-component vector of int) +0:32 'iv4b' ( global mediump 4-component vector of int) +0:33 Sequence +0:33 move second child to first child ( temp mediump 4-component vector of int) +0:33 'iv13' ( temp mediump 4-component vector of int) +0:33 min ( global mediump 4-component vector of int) +0:33 'iv4a' ( global mediump 4-component vector of int) +0:33 'imin' ( global mediump int) +0:34 Sequence +0:34 move second child to first child ( temp mediump 2-component vector of uint) +0:34 'u' ( temp mediump 2-component vector of uint) +0:34 min ( global mediump 2-component vector of uint) +0:34 'uv2x' ( global mediump 2-component vector of uint) +0:34 'uv2y' ( global mediump 2-component vector of uint) +0:35 Sequence +0:35 move second child to first child ( temp mediump 4-component vector of uint) +0:35 'uv' ( temp mediump 4-component vector of uint) +0:35 min ( global mediump 4-component vector of uint) +0:35 'uv4y' ( global mediump 4-component vector of uint) +0:35 'uy' ( global mediump uint) +0:36 Sequence +0:36 move second child to first child ( temp mediump 3-component vector of int) +0:36 'iv14' ( temp mediump 3-component vector of int) +0:36 max ( global mediump 3-component vector of int) +0:36 'iv3a' ( global mediump 3-component vector of int) +0:36 'iv3b' ( global mediump 3-component vector of int) +0:37 Sequence +0:37 move second child to first child ( temp mediump 4-component vector of int) +0:37 'iv15' ( temp mediump 4-component vector of int) +0:37 max ( global mediump 4-component vector of int) +0:37 'iv4a' ( global mediump 4-component vector of int) +0:37 'imax' ( global mediump int) +0:38 Sequence +0:38 move second child to first child ( temp mediump 2-component vector of uint) +0:38 'u10' ( temp mediump 2-component vector of uint) +0:38 max ( global mediump 2-component vector of uint) +0:38 'uv2x' ( global mediump 2-component vector of uint) +0:38 'uv2y' ( global mediump 2-component vector of uint) +0:39 Sequence +0:39 move second child to first child ( temp mediump 2-component vector of uint) +0:39 'u11' ( temp mediump 2-component vector of uint) +0:39 max ( global mediump 2-component vector of uint) +0:39 'uv2x' ( global mediump 2-component vector of uint) +0:39 'uy' ( global mediump uint) +0:40 Sequence +0:40 move second child to first child ( temp mediump 4-component vector of int) +0:40 'iv16' ( temp mediump 4-component vector of int) +0:40 clamp ( global mediump 4-component vector of int) +0:40 'iv4a' ( global mediump 4-component vector of int) +0:40 'iv4a' ( global mediump 4-component vector of int) +0:40 'iv4b' ( global mediump 4-component vector of int) +0:41 Sequence +0:41 move second child to first child ( temp mediump 4-component vector of int) +0:41 'iv17' ( temp mediump 4-component vector of int) +0:41 clamp ( global mediump 4-component vector of int) +0:41 'iv4a' ( global mediump 4-component vector of int) +0:41 'imin' ( global mediump int) +0:41 'imax' ( global mediump int) +0:42 Sequence +0:42 move second child to first child ( temp mediump 2-component vector of uint) +0:42 'u12' ( temp mediump 2-component vector of uint) +0:42 clamp ( global mediump 2-component vector of uint) +0:42 'uv2x' ( global mediump 2-component vector of uint) +0:42 'uv2y' ( global mediump 2-component vector of uint) +0:42 'uv2c' ( global mediump 2-component vector of uint) +0:43 Sequence +0:43 move second child to first child ( temp mediump 4-component vector of uint) +0:43 'uv10' ( temp mediump 4-component vector of uint) +0:43 clamp ( global mediump 4-component vector of uint) +0:43 'uv4y' ( global mediump 4-component vector of uint) +0:43 'umin' ( global mediump uint) +0:43 'umax' ( global mediump uint) +0:47 Sequence +0:47 move second child to first child ( temp mediump 3-component vector of float) +0:47 'v11' ( temp mediump 3-component vector of float) +0:47 modf ( global mediump 3-component vector of float) +0:47 'x' ( global mediump 3-component vector of float) +0:47 'modfOut' ( temp mediump 3-component vector of float) +0:49 Sequence +0:49 move second child to first child ( temp mediump float) +0:49 't' ( temp mediump float) +0:49 trunc ( global mediump float) +0:49 'f' ( global mediump float) +0:50 Sequence +0:50 move second child to first child ( temp mediump 2-component vector of float) +0:50 'v12' ( temp mediump 2-component vector of float) +0:50 round ( global mediump 2-component vector of float) +0:50 'v2a' ( global mediump 2-component vector of float) +0:51 Sequence +0:51 move second child to first child ( temp mediump 2-component vector of float) +0:51 'v13' ( temp mediump 2-component vector of float) +0:51 roundEven ( global mediump 2-component vector of float) +0:51 'v2a' ( global mediump 2-component vector of float) +0:52 Sequence +0:52 move second child to first child ( temp 2-component vector of bool) +0:52 'b10' ( temp 2-component vector of bool) +0:52 isnan ( global 2-component vector of bool, operation at mediump) +0:52 'v2a' ( global mediump 2-component vector of float) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of bool) +0:53 'b11' ( temp 4-component vector of bool) +0:53 isinf ( global 4-component vector of bool, operation at mediump) +0:53 'v4' ( global mediump 4-component vector of float) +0:56 Sequence +0:56 move second child to first child ( temp highp int) +0:56 'i' ( temp mediump int) +0:56 floatBitsToInt ( global highp int) +0:56 'f' ( global mediump float) +0:57 Sequence +0:57 move second child to first child ( temp highp 4-component vector of uint) +0:57 'uv11' ( temp mediump 4-component vector of uint) +0:57 floatBitsToUint ( global highp 4-component vector of uint) +0:57 'v4' ( global mediump 4-component vector of float) +0:58 Sequence +0:58 move second child to first child ( temp highp 4-component vector of float) +0:58 'v14' ( temp mediump 4-component vector of float) +0:58 intBitsToFloat ( global highp 4-component vector of float) +0:58 'iv4a' ( global mediump 4-component vector of int) +0:59 Sequence +0:59 move second child to first child ( temp highp 2-component vector of float) +0:59 'v15' ( temp mediump 2-component vector of float) +0:59 uintBitsToFloat ( global highp 2-component vector of float) +0:59 'uv2c' ( global mediump 2-component vector of uint) +0:62 Sequence +0:62 move second child to first child ( temp highp uint) +0:62 'u19' ( temp mediump uint) +0:62 packSnorm2x16 ( global highp uint, operation at mediump) +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 'v20' ( temp mediump 2-component vector of float) +0:63 unpackSnorm2x16 ( global highp 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) +0:64 'u15' ( temp mediump uint) +0:64 packUnorm2x16 ( global highp uint, operation at mediump) +0:64 'v2a' ( global mediump 2-component vector of float) +0:65 Sequence +0:65 move second child to first child ( temp highp 2-component vector of float) +0:65 'v16' ( temp mediump 2-component vector of float) +0:65 unpackUnorm2x16 ( global highp 2-component vector of float) +0:65 'uy' ( global mediump uint) +0:66 Sequence +0:66 move second child to first child ( temp highp uint) +0:66 'u17' ( temp mediump uint) +0:66 packHalf2x16 ( global highp uint, operation at mediump) +0:66 'v2b' ( global mediump 2-component vector of float) +0:67 Sequence +0:67 move second child to first child ( temp mediump 2-component vector of float) +0:67 'v18' ( temp mediump 2-component vector of float) +0:67 unpackHalf2x16 ( global mediump 2-component vector of float, operation at highp) +0:67 'uy' ( global mediump uint) +0:70 Constant: +0:70 0.000000 +0:? Linker Objects +0:? 'imax' ( global mediump int) +0:? 'imin' ( global mediump int) +0:? 'umax' ( global mediump uint) +0:? 'umin' ( global mediump uint) +0:? 'x' ( global mediump 3-component vector of float) +0:? 'y' ( global mediump 3-component vector of float) +0:? 'bv' ( global 3-component vector of bool) +0:? 'uy' ( global mediump uint) +0:? 'uv2c' ( global mediump 2-component vector of uint) +0:? 'uv2y' ( global mediump 2-component vector of uint) +0:? 'uv2x' ( global mediump 2-component vector of uint) +0:? 'uv4y' ( global mediump 4-component vector of uint) +0:? 'iv3a' ( global mediump 3-component vector of int) +0:? 'iv3b' ( global mediump 3-component vector of int) +0:? 'iv4a' ( global mediump 4-component vector of int) +0:? 'iv4b' ( global mediump 4-component vector of int) +0:? 'f' ( global mediump float) +0:? 'v2a' ( global mediump 2-component vector of float) +0:? 'v2b' ( global mediump 2-component vector of float) +0:? 'v4' ( global mediump 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:26 Function Definition: main( ( global void) +0:26 Function Parameters: +0:29 Sequence +0:29 Sequence +0:29 move second child to first child ( temp mediump 3-component vector of float) +0:29 'v' ( temp mediump 3-component vector of float) +0:29 mix ( global mediump 3-component vector of float) +0:29 'x' ( global mediump 3-component vector of float) +0:29 'y' ( global mediump 3-component vector of float) +0:29 'bv' ( global 3-component vector of bool) +0:30 Sequence +0:30 move second child to first child ( temp mediump 4-component vector of int) +0:30 'iv10' ( temp mediump 4-component vector of int) +0:30 Absolute value ( global mediump 4-component vector of int) +0:30 'iv4a' ( global mediump 4-component vector of int) +0:31 Sequence +0:31 move second child to first child ( temp mediump 4-component vector of int) +0:31 'iv11' ( temp mediump 4-component vector of int) +0:31 Sign ( global mediump 4-component vector of int) +0:31 'iv4a' ( global mediump 4-component vector of int) +0:32 Sequence +0:32 move second child to first child ( temp mediump 4-component vector of int) +0:32 'iv12' ( temp mediump 4-component vector of int) +0:32 min ( global mediump 4-component vector of int) +0:32 'iv4a' ( global mediump 4-component vector of int) +0:32 'iv4b' ( global mediump 4-component vector of int) +0:33 Sequence +0:33 move second child to first child ( temp mediump 4-component vector of int) +0:33 'iv13' ( temp mediump 4-component vector of int) +0:33 min ( global mediump 4-component vector of int) +0:33 'iv4a' ( global mediump 4-component vector of int) +0:33 'imin' ( global mediump int) +0:34 Sequence +0:34 move second child to first child ( temp mediump 2-component vector of uint) +0:34 'u' ( temp mediump 2-component vector of uint) +0:34 min ( global mediump 2-component vector of uint) +0:34 'uv2x' ( global mediump 2-component vector of uint) +0:34 'uv2y' ( global mediump 2-component vector of uint) +0:35 Sequence +0:35 move second child to first child ( temp mediump 4-component vector of uint) +0:35 'uv' ( temp mediump 4-component vector of uint) +0:35 min ( global mediump 4-component vector of uint) +0:35 'uv4y' ( global mediump 4-component vector of uint) +0:35 'uy' ( global mediump uint) +0:36 Sequence +0:36 move second child to first child ( temp mediump 3-component vector of int) +0:36 'iv14' ( temp mediump 3-component vector of int) +0:36 max ( global mediump 3-component vector of int) +0:36 'iv3a' ( global mediump 3-component vector of int) +0:36 'iv3b' ( global mediump 3-component vector of int) +0:37 Sequence +0:37 move second child to first child ( temp mediump 4-component vector of int) +0:37 'iv15' ( temp mediump 4-component vector of int) +0:37 max ( global mediump 4-component vector of int) +0:37 'iv4a' ( global mediump 4-component vector of int) +0:37 'imax' ( global mediump int) +0:38 Sequence +0:38 move second child to first child ( temp mediump 2-component vector of uint) +0:38 'u10' ( temp mediump 2-component vector of uint) +0:38 max ( global mediump 2-component vector of uint) +0:38 'uv2x' ( global mediump 2-component vector of uint) +0:38 'uv2y' ( global mediump 2-component vector of uint) +0:39 Sequence +0:39 move second child to first child ( temp mediump 2-component vector of uint) +0:39 'u11' ( temp mediump 2-component vector of uint) +0:39 max ( global mediump 2-component vector of uint) +0:39 'uv2x' ( global mediump 2-component vector of uint) +0:39 'uy' ( global mediump uint) +0:40 Sequence +0:40 move second child to first child ( temp mediump 4-component vector of int) +0:40 'iv16' ( temp mediump 4-component vector of int) +0:40 clamp ( global mediump 4-component vector of int) +0:40 'iv4a' ( global mediump 4-component vector of int) +0:40 'iv4a' ( global mediump 4-component vector of int) +0:40 'iv4b' ( global mediump 4-component vector of int) +0:41 Sequence +0:41 move second child to first child ( temp mediump 4-component vector of int) +0:41 'iv17' ( temp mediump 4-component vector of int) +0:41 clamp ( global mediump 4-component vector of int) +0:41 'iv4a' ( global mediump 4-component vector of int) +0:41 'imin' ( global mediump int) +0:41 'imax' ( global mediump int) +0:42 Sequence +0:42 move second child to first child ( temp mediump 2-component vector of uint) +0:42 'u12' ( temp mediump 2-component vector of uint) +0:42 clamp ( global mediump 2-component vector of uint) +0:42 'uv2x' ( global mediump 2-component vector of uint) +0:42 'uv2y' ( global mediump 2-component vector of uint) +0:42 'uv2c' ( global mediump 2-component vector of uint) +0:43 Sequence +0:43 move second child to first child ( temp mediump 4-component vector of uint) +0:43 'uv10' ( temp mediump 4-component vector of uint) +0:43 clamp ( global mediump 4-component vector of uint) +0:43 'uv4y' ( global mediump 4-component vector of uint) +0:43 'umin' ( global mediump uint) +0:43 'umax' ( global mediump uint) +0:47 Sequence +0:47 move second child to first child ( temp mediump 3-component vector of float) +0:47 'v11' ( temp mediump 3-component vector of float) +0:47 modf ( global mediump 3-component vector of float) +0:47 'x' ( global mediump 3-component vector of float) +0:47 'modfOut' ( temp mediump 3-component vector of float) +0:49 Sequence +0:49 move second child to first child ( temp mediump float) +0:49 't' ( temp mediump float) +0:49 trunc ( global mediump float) +0:49 'f' ( global mediump float) +0:50 Sequence +0:50 move second child to first child ( temp mediump 2-component vector of float) +0:50 'v12' ( temp mediump 2-component vector of float) +0:50 round ( global mediump 2-component vector of float) +0:50 'v2a' ( global mediump 2-component vector of float) +0:51 Sequence +0:51 move second child to first child ( temp mediump 2-component vector of float) +0:51 'v13' ( temp mediump 2-component vector of float) +0:51 roundEven ( global mediump 2-component vector of float) +0:51 'v2a' ( global mediump 2-component vector of float) +0:52 Sequence +0:52 move second child to first child ( temp 2-component vector of bool) +0:52 'b10' ( temp 2-component vector of bool) +0:52 isnan ( global 2-component vector of bool, operation at mediump) +0:52 'v2a' ( global mediump 2-component vector of float) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of bool) +0:53 'b11' ( temp 4-component vector of bool) +0:53 isinf ( global 4-component vector of bool, operation at mediump) +0:53 'v4' ( global mediump 4-component vector of float) +0:56 Sequence +0:56 move second child to first child ( temp highp int) +0:56 'i' ( temp mediump int) +0:56 floatBitsToInt ( global highp int) +0:56 'f' ( global mediump float) +0:57 Sequence +0:57 move second child to first child ( temp highp 4-component vector of uint) +0:57 'uv11' ( temp mediump 4-component vector of uint) +0:57 floatBitsToUint ( global highp 4-component vector of uint) +0:57 'v4' ( global mediump 4-component vector of float) +0:58 Sequence +0:58 move second child to first child ( temp highp 4-component vector of float) +0:58 'v14' ( temp mediump 4-component vector of float) +0:58 intBitsToFloat ( global highp 4-component vector of float) +0:58 'iv4a' ( global mediump 4-component vector of int) +0:59 Sequence +0:59 move second child to first child ( temp highp 2-component vector of float) +0:59 'v15' ( temp mediump 2-component vector of float) +0:59 uintBitsToFloat ( global highp 2-component vector of float) +0:59 'uv2c' ( global mediump 2-component vector of uint) +0:62 Sequence +0:62 move second child to first child ( temp highp uint) +0:62 'u19' ( temp mediump uint) +0:62 packSnorm2x16 ( global highp uint, operation at mediump) +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 'v20' ( temp mediump 2-component vector of float) +0:63 unpackSnorm2x16 ( global highp 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) +0:64 'u15' ( temp mediump uint) +0:64 packUnorm2x16 ( global highp uint, operation at mediump) +0:64 'v2a' ( global mediump 2-component vector of float) +0:65 Sequence +0:65 move second child to first child ( temp highp 2-component vector of float) +0:65 'v16' ( temp mediump 2-component vector of float) +0:65 unpackUnorm2x16 ( global highp 2-component vector of float) +0:65 'uy' ( global mediump uint) +0:66 Sequence +0:66 move second child to first child ( temp highp uint) +0:66 'u17' ( temp mediump uint) +0:66 packHalf2x16 ( global highp uint, operation at mediump) +0:66 'v2b' ( global mediump 2-component vector of float) +0:67 Sequence +0:67 move second child to first child ( temp mediump 2-component vector of float) +0:67 'v18' ( temp mediump 2-component vector of float) +0:67 unpackHalf2x16 ( global mediump 2-component vector of float, operation at highp) +0:67 'uy' ( global mediump uint) +0:70 Constant: +0:70 0.000000 +0:? Linker Objects +0:? 'imax' ( global mediump int) +0:? 'imin' ( global mediump int) +0:? 'umax' ( global mediump uint) +0:? 'umin' ( global mediump uint) +0:? 'x' ( global mediump 3-component vector of float) +0:? 'y' ( global mediump 3-component vector of float) +0:? 'bv' ( global 3-component vector of bool) +0:? 'uy' ( global mediump uint) +0:? 'uv2c' ( global mediump 2-component vector of uint) +0:? 'uv2y' ( global mediump 2-component vector of uint) +0:? 'uv2x' ( global mediump 2-component vector of uint) +0:? 'uv4y' ( global mediump 4-component vector of uint) +0:? 'iv3a' ( global mediump 3-component vector of int) +0:? 'iv3b' ( global mediump 3-component vector of int) +0:? 'iv4a' ( global mediump 4-component vector of int) +0:? 'iv4b' ( global mediump 4-component vector of int) +0:? 'f' ( global mediump float) +0:? 'v2a' ( global mediump 2-component vector of float) +0:? 'v2b' ( global mediump 2-component vector of float) +0:? 'v4' ( global mediump 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/300block.frag.out b/deps/glslang/glslang/Test/baseResults/300block.frag.out new file mode 100644 index 0000000000..6f7de91b0a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300block.frag.out @@ -0,0 +1,153 @@ +300block.frag +ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block +ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block +ERROR: 0:20: 'sampler' : member of block cannot be or contain a sampler, image, or atomic_uint type +ERROR: 0:24: 'fbs' : member of block cannot be or contain a sampler, image, or atomic_uint type +ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions +ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed) +ERROR: 0:46: 'fooBlock' : undeclared identifier +ERROR: 0:47: 'constructor' : not enough data provided for construction +ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed) +ERROR: 0:51: 'unreferenced' : undeclared identifier +ERROR: 0:52: '++' : l-value required "s" (can't modify a uniform) +ERROR: 0:52: '++' : wrong operand type no operation '++' exists that takes an operand of type uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} (or there is no acceptable conversion) +ERROR: 0:53: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}' and a right operand of type ' const int' (or there is no acceptable conversion) +ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed) +ERROR: 0:55: 'barBlockArray' : undeclared identifier +ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' const int' and a right operand of type ' temp float' (or there is no acceptable conversion) +ERROR: 0:58: 'fooBlock' : redefinition +ERROR: 17 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:42 Function Definition: main( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 texture ( global lowp 4-component vector of int) +0:44 sampler: direct index for structure ( global lowp isampler3D) +0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:44 Constant: +0:44 2 (const int) +0:44 Construct vec3 ( temp lowp 3-component vector of float) +0:44 Convert int to float ( temp lowp float) +0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int) +0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:44 Constant: +0:44 1 (const int) +0:44 Convert uint to float ( temp lowp float) +0:44 direct index ( temp mediump uint) +0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) +0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) +0:44 Constant: +0:44 0 (const uint) +0:44 Constant: +0:44 1 (const int) +0:44 Convert uint to float ( temp lowp float) +0:44 direct index ( temp mediump uint) +0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) +0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:44 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:45 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:45 direct index ( temp mediump uint) +0:45 v: direct index for structure ( global mediump 4-component vector of uint) +0:45 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:45 Constant: +0:45 1 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 'fooBlock' ( temp float) +0:47 Constant: +0:47 0.000000 +0:50 Construct mat4 ( temp 4X4 matrix of float) +0:50 'barBlock' ( temp mediump float) +0:51 Construct mat4 ( temp 4X4 matrix of float) +0:51 'unreferenced' ( temp float) +0:52 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:53 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:54 Pre-Increment ( temp mediump float) +0:54 'barBlock' ( temp mediump float) +0:55 Constant: +0:55 2 (const int) +0:? Linker Objects +0:? 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) +0:? 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:? 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f, layout( column_major shared) uniform mediump uint u}) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:42 Function Definition: main( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 texture ( global lowp 4-component vector of int) +0:44 sampler: direct index for structure ( global lowp isampler3D) +0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:44 Constant: +0:44 2 (const int) +0:44 Construct vec3 ( temp lowp 3-component vector of float) +0:44 Convert int to float ( temp lowp float) +0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int) +0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:44 Constant: +0:44 1 (const int) +0:44 Convert uint to float ( temp lowp float) +0:44 direct index ( temp mediump uint) +0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) +0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) +0:44 Constant: +0:44 0 (const uint) +0:44 Constant: +0:44 1 (const int) +0:44 Convert uint to float ( temp lowp float) +0:44 direct index ( temp mediump uint) +0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) +0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:44 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:45 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:45 direct index ( temp mediump uint) +0:45 v: direct index for structure ( global mediump 4-component vector of uint) +0:45 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:45 Constant: +0:45 1 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 'fooBlock' ( temp float) +0:47 Constant: +0:47 0.000000 +0:50 Construct mat4 ( temp 4X4 matrix of float) +0:50 'barBlock' ( temp mediump float) +0:51 Construct mat4 ( temp 4X4 matrix of float) +0:51 'unreferenced' ( temp float) +0:52 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:53 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:54 Pre-Increment ( temp mediump float) +0:54 'barBlock' ( temp mediump float) +0:55 Constant: +0:55 2 (const int) +0:? Linker Objects +0:? 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) +0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) +0:? 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:? 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) +0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f, layout( column_major shared) uniform mediump uint u}) + diff --git a/deps/glslang/glslang/Test/baseResults/300layout.frag.out b/deps/glslang/glslang/Test/baseResults/300layout.frag.out new file mode 100644 index 0000000000..3266d9b71d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300layout.frag.out @@ -0,0 +1,69 @@ +300layout.frag +ERROR: 0:4: 'location qualifier on input' : not supported in this stage: fragment +ERROR: 0:4: 'location qualifier on input' : not supported for this version or the enabled extensions +ERROR: 0:17: 'location' : too large for fragment output +ERROR: 0:18: 'location' : too large for fragment output +ERROR: 0:18: 'location' : overlapping use of location 41 +ERROR: 0:19: 'location' : too large for fragment output +ERROR: 0:19: 'location' : overlapping use of location 40 +ERROR: 7 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 move second child to first child ( temp mediump 4-component vector of float) +0:12 'c' (layout( location=1) out mediump 4-component vector of float) +0:12 'color' (layout( location=2) smooth in mediump 4-component vector of float) +0:13 move second child to first child ( temp mediump 4-component vector of float) +0:13 'p' (layout( location=3) out mediump 4-component vector of float) +0:13 'pos' ( smooth in mediump 4-component vector of float) +0:14 move second child to first child ( temp mediump 4-component vector of float) +0:14 direct index (layout( location=4) temp mediump 4-component vector of float) +0:14 'q' (layout( location=4) out 2-element array of mediump 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 'pos' ( smooth in mediump 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( smooth in mediump 4-component vector of float) +0:? 'color' (layout( location=2) smooth in mediump 4-component vector of float) +0:? 'c' (layout( location=1) out mediump 4-component vector of float) +0:? 'p' (layout( location=3) out mediump 4-component vector of float) +0:? 'q' (layout( location=4) out 2-element array of mediump 4-component vector of float) +0:? 'ca' (layout( location=40) out 4-element array of mediump float) +0:? 'cb' (layout( location=41) out 2-element array of mediump float) +0:? 'cc' (layout( location=39) out 6-element array of mediump float) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 move second child to first child ( temp mediump 4-component vector of float) +0:12 'c' (layout( location=1) out mediump 4-component vector of float) +0:12 'color' (layout( location=2) smooth in mediump 4-component vector of float) +0:13 move second child to first child ( temp mediump 4-component vector of float) +0:13 'p' (layout( location=3) out mediump 4-component vector of float) +0:13 'pos' ( smooth in mediump 4-component vector of float) +0:14 move second child to first child ( temp mediump 4-component vector of float) +0:14 direct index (layout( location=4) temp mediump 4-component vector of float) +0:14 'q' (layout( location=4) out 2-element array of mediump 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 'pos' ( smooth in mediump 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( smooth in mediump 4-component vector of float) +0:? 'color' (layout( location=2) smooth in mediump 4-component vector of float) +0:? 'c' (layout( location=1) out mediump 4-component vector of float) +0:? 'p' (layout( location=3) out mediump 4-component vector of float) +0:? 'q' (layout( location=4) out 2-element array of mediump 4-component vector of float) +0:? 'ca' (layout( location=40) out 4-element array of mediump float) +0:? 'cb' (layout( location=41) out 2-element array of mediump float) +0:? 'cc' (layout( location=39) out 6-element array of mediump float) + diff --git a/deps/glslang/glslang/Test/baseResults/300layout.vert.out b/deps/glslang/glslang/Test/baseResults/300layout.vert.out new file mode 100644 index 0000000000..e245cbcf97 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300layout.vert.out @@ -0,0 +1,147 @@ +300layout.vert +ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es +ERROR: 0:8: 'in' : cannot be a structure or array +ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es +ERROR: 0:8: 'location' : overlapping use of location 10 +ERROR: 0:12: 'layout' : cannot specify matrix layout on a variable declaration +ERROR: 0:12: 'layout' : cannot specify packing on a variable declaration +ERROR: 0:19: 'badf' : member of uniform or buffer block cannot have an auxiliary or interpolation qualifier +ERROR: 0:20: 'badg' : member storage qualifier cannot contradict block storage qualifier +ERROR: 0:21: 'bad1' : member of block cannot have a packing layout qualifier +ERROR: 0:22: 'bad2' : member of block cannot have a packing layout qualifier +ERROR: 0:23: 'bad3' : member of block cannot have a packing layout qualifier +ERROR: 0:31: 'T3' : nameless block contains a member that already has a name at global scope +ERROR: 0:38: 'vertex output block' : not supported for this version or the enabled extensions +ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex +ERROR: 0:42: 'location qualifier on output' : not supported for this version or the enabled extensions +ERROR: 0:50: 'shared' : not supported for this version or the enabled extensions +ERROR: 0:50: 'shared' : not supported in this stage: vertex +ERROR: 0:54: 'layout' : cannot specify packing on a variable declaration +ERROR: 0:57: 'location' : overlapping use of location 40 +ERROR: 19 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:44 Function Definition: main( ( global void) +0:44 Function Parameters: +0:46 Sequence +0:46 move second child to first child ( temp highp 4-component vector of float) +0:46 'pos' ( smooth out highp 4-component vector of float) +0:46 vector-times-matrix ( temp highp 4-component vector of float) +0:46 'p' (layout( location=3) in highp 4-component vector of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 M1: direct index for structure (layout( row_major std140 offset=0) uniform highp 4X4 matrix of float) +0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:46 Constant: +0:46 0 (const int) +0:46 M2: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) +0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:46 Constant: +0:46 1 (const int) +0:46 M4: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) +0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) +0:46 Constant: +0:46 1 (const uint) +0:46 M3: direct index for structure (layout( column_major shared) uniform highp 4X4 matrix of float) +0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) +0:46 Constant: +0:46 0 (const uint) +0:46 t2m: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) +0:46 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) +0:46 Constant: +0:46 1 (const uint) +0:47 move second child to first child ( temp highp 3-component vector of float) +0:47 'color' ( smooth out highp 3-component vector of float) +0:47 vector-times-matrix ( temp highp 3-component vector of float) +0:47 'c' (layout( location=7) in highp 3-component vector of float) +0:47 N1: direct index for structure (layout( row_major std140 offset=128) uniform highp 3X3 matrix of float) +0:47 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:47 Constant: +0:47 2 (const int) +0:? Linker Objects +0:? 'c' (layout( location=7) in highp 3-component vector of float) +0:? 'p' (layout( location=3) in highp 4-component vector of float) +0:? 'q' (layout( location=9) in 4-element array of highp 4-component vector of float) +0:? 'r' (layout( location=10) in 4-element array of structure{ global highp 4-component vector of float v}) +0:? 'pos' ( smooth out highp 4-component vector of float) +0:? 'color' ( smooth out highp 3-component vector of float) +0:? 'badm4' (layout( column_major shared) uniform highp 4X4 matrix of float) +0:? 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:? 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) +0:? 'anon@2' ( out block{ out highp float f}) +0:? 'badoutA' (layout( location=10) smooth out highp 4-component vector of float) +0:? 'compute_only' ( shared highp 4-component vector of float) +0:? 'aoeuntaoeu' (layout( packed) uniform highp float) +0:? 'cd' (layout( location=40) in highp float) +0:? 'ce' (layout( location=37) in highp 4X3 matrix of float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:44 Function Definition: main( ( global void) +0:44 Function Parameters: +0:46 Sequence +0:46 move second child to first child ( temp highp 4-component vector of float) +0:46 'pos' ( smooth out highp 4-component vector of float) +0:46 vector-times-matrix ( temp highp 4-component vector of float) +0:46 'p' (layout( location=3) in highp 4-component vector of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 add ( temp highp 4X4 matrix of float) +0:46 M1: direct index for structure (layout( row_major std140 offset=0) uniform highp 4X4 matrix of float) +0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:46 Constant: +0:46 0 (const int) +0:46 M2: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) +0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:46 Constant: +0:46 1 (const int) +0:46 M4: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) +0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) +0:46 Constant: +0:46 1 (const uint) +0:46 M3: direct index for structure (layout( column_major shared) uniform highp 4X4 matrix of float) +0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) +0:46 Constant: +0:46 0 (const uint) +0:46 t2m: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) +0:46 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) +0:46 Constant: +0:46 1 (const uint) +0:47 move second child to first child ( temp highp 3-component vector of float) +0:47 'color' ( smooth out highp 3-component vector of float) +0:47 vector-times-matrix ( temp highp 3-component vector of float) +0:47 'c' (layout( location=7) in highp 3-component vector of float) +0:47 N1: direct index for structure (layout( row_major std140 offset=128) uniform highp 3X3 matrix of float) +0:47 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:47 Constant: +0:47 2 (const int) +0:? Linker Objects +0:? 'c' (layout( location=7) in highp 3-component vector of float) +0:? 'p' (layout( location=3) in highp 4-component vector of float) +0:? 'q' (layout( location=9) in 4-element array of highp 4-component vector of float) +0:? 'r' (layout( location=10) in 4-element array of structure{ global highp 4-component vector of float v}) +0:? 'pos' ( smooth out highp 4-component vector of float) +0:? 'color' ( smooth out highp 3-component vector of float) +0:? 'badm4' (layout( column_major shared) uniform highp 4X4 matrix of float) +0:? 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) +0:? 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) +0:? 'anon@2' ( out block{ out highp float f}) +0:? 'badoutA' (layout( location=10) smooth out highp 4-component vector of float) +0:? 'compute_only' ( shared highp 4-component vector of float) +0:? 'aoeuntaoeu' (layout( packed) uniform highp float) +0:? 'cd' (layout( location=40) in highp float) +0:? 'ce' (layout( location=37) in highp 4X3 matrix of float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/300link.frag.out b/deps/glslang/glslang/Test/baseResults/300link.frag.out new file mode 100644 index 0000000000..dc54e76506 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300link.frag.out @@ -0,0 +1,22 @@ +300link.frag +Shader version: 300 +0:? Sequence +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:? Linker Objects +0:? 'color1' ( out highp 4-component vector of float) +0:? 'color2' ( out highp 4-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers + +Shader version: 300 +0:? Sequence +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:? Linker Objects +0:? 'color1' ( out highp 4-component vector of float) +0:? 'color2' ( out highp 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/300link2.frag.out b/deps/glslang/glslang/Test/baseResults/300link2.frag.out new file mode 100644 index 0000000000..6bbb287e97 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300link2.frag.out @@ -0,0 +1,25 @@ +300link2.frag +Shader version: 300 +0:? Sequence +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:? Linker Objects +0:? 'pos' ( smooth in mediump 4-component vector of float) +0:? 'c' (layout( location=1) out mediump 4-component vector of float) +0:? 'p' (layout( location=5) out mediump 4-component vector of float) +0:? 'q' (layout( location=9) out 2-element array of mediump 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 300 +0:? Sequence +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:? Linker Objects +0:? 'pos' ( smooth in mediump 4-component vector of float) +0:? 'c' (layout( location=1) out mediump 4-component vector of float) +0:? 'p' (layout( location=5) out mediump 4-component vector of float) +0:? 'q' (layout( location=9) out 2-element array of mediump 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/300link3.frag.out b/deps/glslang/glslang/Test/baseResults/300link3.frag.out new file mode 100644 index 0000000000..e6114c5fab --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300link3.frag.out @@ -0,0 +1,19 @@ +300link3.frag +Shader version: 300 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'color1' ( out highp 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 300 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'color1' ( out highp 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/300operations.frag.out b/deps/glslang/glslang/Test/baseResults/300operations.frag.out new file mode 100644 index 0000000000..27772cb2bb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300operations.frag.out @@ -0,0 +1,420 @@ +300operations.frag +ERROR: 0:11: 'float' : type requires declaration of default precision qualifier +ERROR: 0:30: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}' and a right operand of type 'layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}' (or there is no acceptable conversion) +ERROR: 0:31: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' global structure{ global mediump int i}' and a right operand of type ' global structure{ global mediump int i}' (or there is no acceptable conversion) +ERROR: 0:32: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump float' (or there is no acceptable conversion) +ERROR: 0:33: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' temp mediump float' (or there is no acceptable conversion) +ERROR: 0:34: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' temp mediump int' (or there is no acceptable conversion) +ERROR: 0:35: 'assign' : cannot convert from ' temp mediump 4-component vector of int' to ' temp mediump 3-component vector of int' +ERROR: 0:36: '/' : wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp mediump 4-component vector of int' and a right operand of type ' temp mediump 4-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:37: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion) +ERROR: 0:38: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp mediump 3-component vector of int' and a right operand of type ' temp mediump 3-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:39: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' global 5-element array of mediump float' and a right operand of type ' global 5-element array of mediump float' (or there is no acceptable conversion) +ERROR: 0:40: '/' : wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion) +ERROR: 0:42: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump float' (or there is no acceptable conversion) +ERROR: 0:43: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump float' (or there is no acceptable conversion) +ERROR: 0:44: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump uint' (or there is no acceptable conversion) +ERROR: 0:45: '++' : l-value required "instanceName" (can't modify a uniform) +ERROR: 0:45: '++' : wrong operand type no operation '++' exists that takes an operand of type layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f} (or there is no acceptable conversion) +ERROR: 0:46: '++' : wrong operand type no operation '++' exists that takes an operand of type global structure{ global mediump int i} (or there is no acceptable conversion) +ERROR: 0:47: '--' : wrong operand type no operation '--' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion) +ERROR: 0:48: '++' : wrong operand type no operation '++' exists that takes an operand of type temp 3-component vector of bool (or there is no acceptable conversion) +ERROR: 0:50: '<' : wrong operand types: no operation '<' exists that takes a left-hand operand of type ' temp mediump 3-component vector of int' and a right operand of type ' temp mediump 3-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:51: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' temp mediump 2X2 matrix of float' and a right operand of type ' temp mediump 2X2 matrix of float' (or there is no acceptable conversion) +ERROR: 0:52: '!=' : wrong operand types: no operation '!=' exists that takes a left-hand operand of type ' temp mediump 2X2 matrix of float' and a right operand of type ' temp mediump 4X4 matrix of float' (or there is no acceptable conversion) +ERROR: 0:53: '>=' : wrong operand types: no operation '>=' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump uint' (or there is no acceptable conversion) +ERROR: 0:54: '<=' : wrong operand types: no operation '<=' exists that takes a left-hand operand of type ' global 5-element array of mediump float' and a right operand of type ' global 5-element array of mediump float' (or there is no acceptable conversion) +ERROR: 0:55: '>' : wrong operand types: no operation '>' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp bool' (or there is no acceptable conversion) +ERROR: 0:57: '&&' : wrong operand types: no operation '&&' exists that takes a left-hand operand of type ' temp bool' and a right operand of type ' temp 3-component vector of bool' (or there is no acceptable conversion) +ERROR: 0:58: '^^' : wrong operand types: no operation '^^' exists that takes a left-hand operand of type ' temp 3-component vector of bool' and a right operand of type ' temp 3-component vector of bool' (or there is no acceptable conversion) +ERROR: 0:59: '||' : wrong operand types: no operation '||' exists that takes a left-hand operand of type ' temp 3-component vector of bool' and a right operand of type ' temp bool' (or there is no acceptable conversion) +ERROR: 0:60: '&&' : wrong operand types: no operation '&&' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump int' (or there is no acceptable conversion) +ERROR: 0:61: '||' : wrong operand types: no operation '||' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' temp mediump uint' (or there is no acceptable conversion) +ERROR: 0:62: '^^' : wrong operand types: no operation '^^' exists that takes a left-hand operand of type ' temp mediump 2X2 matrix of float' and a right operand of type ' temp mediump 2X2 matrix of float' (or there is no acceptable conversion) +ERROR: 0:64: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump uint (or there is no acceptable conversion) +ERROR: 0:65: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump int (or there is no acceptable conversion) +ERROR: 0:66: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump 2X2 matrix of float (or there is no acceptable conversion) +ERROR: 0:67: '!' : wrong operand type no operation '!' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion) +ERROR: 0:68: '!' : wrong operand type no operation '!' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion) +ERROR: 0:70: '~' : wrong operand type no operation '~' exists that takes an operand of type temp mediump float (or there is no acceptable conversion) +ERROR: 0:71: '~' : wrong operand type no operation '~' exists that takes an operand of type temp mediump 4X4 matrix of float (or there is no acceptable conversion) +ERROR: 0:72: '~' : wrong operand type no operation '~' exists that takes an operand of type temp mediump 3-component vector of float (or there is no acceptable conversion) +ERROR: 0:73: '~' : wrong operand type no operation '~' exists that takes an operand of type global 5-element array of mediump float (or there is no acceptable conversion) +ERROR: 0:74: '~' : wrong operand type no operation '~' exists that takes an operand of type layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f} (or there is no acceptable conversion) +ERROR: 0:76: '<<' : wrong operand types: no operation '<<' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump 3-component vector of int' (or there is no acceptable conversion) +ERROR: 0:77: '<<' : wrong operand types: no operation '<<' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' temp mediump 3-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:78: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump float' (or there is no acceptable conversion) +ERROR: 0:79: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type ' temp mediump float' and a right operand of type ' temp mediump int' (or there is no acceptable conversion) +ERROR: 0:80: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type ' temp mediump 4X4 matrix of float' and a right operand of type ' temp mediump int' (or there is no acceptable conversion) +ERROR: 0:81: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type ' global 5-element array of mediump float' and a right operand of type ' temp mediump uint' (or there is no acceptable conversion) +ERROR: 0:82: '>>' : wrong operand types: no operation '>>' exists that takes a left-hand operand of type ' temp mediump 3-component vector of int' and a right operand of type ' temp mediump 4-component vector of int' (or there is no acceptable conversion) +ERROR: 0:84: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump uint' (or there is no acceptable conversion) +ERROR: 0:85: 'assign' : cannot convert from ' temp mediump 3-component vector of uint' to ' temp mediump uint' +ERROR: 0:86: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp mediump int' and a right operand of type ' temp mediump 3-component vector of uint' (or there is no acceptable conversion) +ERROR: 0:87: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' temp mediump float' (or there is no acceptable conversion) +ERROR: 0:88: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp mediump 2X2 matrix of float' and a right operand of type ' temp mediump 2X2 matrix of float' (or there is no acceptable conversion) +ERROR: 0:89: '^' : wrong operand types: no operation '^' exists that takes a left-hand operand of type ' global structure{ global mediump int i}' and a right operand of type ' global structure{ global mediump int i}' (or there is no acceptable conversion) +ERROR: 0:90: 'assign' : l-value required +ERROR: 56 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:? Sequence +0:30 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:31 's' ( global structure{ global mediump int i}) +0:32 'i' ( temp mediump int) +0:33 'u' ( temp mediump uint) +0:34 'u' ( temp mediump uint) +0:35 'iv3' ( temp mediump 3-component vector of int) +0:36 'iv4' ( temp mediump 4-component vector of int) +0:37 'i' ( temp mediump int) +0:38 'iv3' ( temp mediump 3-component vector of int) +0:39 'a' ( global 5-element array of mediump float) +0:40 'b' ( temp bool) +0:42 'f' ( temp mediump float) +0:43 'i' ( temp mediump int) +0:44 'f' ( temp mediump float) +0:45 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:46 's' ( global structure{ global mediump int i}) +0:47 'a' ( global 5-element array of mediump float) +0:48 'b3' ( temp 3-component vector of bool) +0:50 Constant: +0:50 false (const bool) +0:51 Constant: +0:51 false (const bool) +0:52 Constant: +0:52 false (const bool) +0:53 Constant: +0:53 false (const bool) +0:54 Constant: +0:54 false (const bool) +0:55 Constant: +0:55 false (const bool) +0:57 Constant: +0:57 false (const bool) +0:58 Constant: +0:58 false (const bool) +0:59 Constant: +0:59 false (const bool) +0:60 Constant: +0:60 false (const bool) +0:61 Constant: +0:61 false (const bool) +0:62 Constant: +0:62 false (const bool) +0:64 'u' ( temp mediump uint) +0:65 'i' ( temp mediump int) +0:66 'm2' ( temp mediump 2X2 matrix of float) +0:67 'v3' ( temp mediump 3-component vector of float) +0:68 'a' ( global 5-element array of mediump float) +0:70 'f' ( temp mediump float) +0:71 'm4' ( temp mediump 4X4 matrix of float) +0:72 'v3' ( temp mediump 3-component vector of float) +0:73 'a' ( global 5-element array of mediump float) +0:74 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:76 'i' ( temp mediump int) +0:77 'u' ( temp mediump uint) +0:78 'i' ( temp mediump int) +0:79 'f' ( temp mediump float) +0:80 'm4' ( temp mediump 4X4 matrix of float) +0:81 'a' ( global 5-element array of mediump float) +0:82 'iv3' ( temp mediump 3-component vector of int) +0:84 'i' ( temp mediump int) +0:85 'u' ( temp mediump uint) +0:86 'i' ( temp mediump int) +0:87 'u' ( temp mediump uint) +0:88 'm2' ( temp mediump 2X2 matrix of float) +0:89 's' ( global structure{ global mediump int i}) +0:90 move second child to first child ( temp mediump float) +0:90 move second child to first child ( temp mediump float) +0:90 'f' ( temp mediump float) +0:90 'f' ( temp mediump float) +0:90 'f' ( temp mediump float) +0:93 vector-scale ( temp mediump 4-component vector of float) +0:93 'f' ( temp mediump float) +0:93 'v4' ( temp mediump 4-component vector of float) +0:94 add ( temp mediump uint) +0:94 'u' ( temp mediump uint) +0:94 'u' ( temp mediump uint) +0:95 divide ( temp mediump 4-component vector of uint) +0:95 'uv4' ( temp mediump 4-component vector of uint) +0:95 'u' ( temp mediump uint) +0:96 subtract second child into first child ( temp mediump 3-component vector of int) +0:96 'iv3' ( temp mediump 3-component vector of int) +0:96 'iv3' ( temp mediump 3-component vector of int) +0:98 mod second child into first child ( temp mediump int) +0:98 'i' ( temp mediump int) +0:98 Constant: +0:98 3 (const int) +0:99 mod ( temp mediump 3-component vector of uint) +0:99 'uv3' ( temp mediump 3-component vector of uint) +0:99 Constant: +0:99 4 (const uint) +0:100 Pre-Decrement ( temp mediump 2X2 matrix of float) +0:100 'm2' ( temp mediump 2X2 matrix of float) +0:101 Post-Increment ( temp mediump 4-component vector of int) +0:101 'iv4' ( temp mediump 4-component vector of int) +0:103 Compare Not Equal ( temp bool) +0:103 'm4' ( temp mediump 4X4 matrix of float) +0:103 'm4' ( temp mediump 4X4 matrix of float) +0:104 Compare Equal ( temp bool) +0:104 'm2' ( temp mediump 2X2 matrix of float) +0:104 'm2' ( temp mediump 2X2 matrix of float) +0:105 Compare Less Than or Equal ( temp bool) +0:105 'i' ( temp mediump int) +0:105 'i' ( temp mediump int) +0:106 Compare Equal ( temp bool) +0:106 'a' ( global 5-element array of mediump float) +0:106 'a' ( global 5-element array of mediump float) +0:107 Compare Not Equal ( temp bool) +0:107 's' ( global structure{ global mediump int i}) +0:107 's' ( global structure{ global mediump int i}) +0:109 logical-and ( temp bool) +0:109 'b' ( temp bool) +0:109 'b' ( temp bool) +0:110 logical-or ( temp bool) +0:110 'b' ( temp bool) +0:110 'b' ( temp bool) +0:111 logical-xor ( temp bool) +0:111 'b' ( temp bool) +0:111 'b' ( temp bool) +0:113 Comma ( temp mediump 3-component vector of uint) +0:113 Negate conditional ( temp bool) +0:113 'b' ( temp bool) +0:113 'uv3' ( temp mediump 3-component vector of uint) +0:115 Bitwise not ( temp mediump int) +0:115 'i' ( temp mediump int) +0:116 Bitwise not ( temp mediump uint) +0:116 'u' ( temp mediump uint) +0:117 Bitwise not ( temp mediump 3-component vector of uint) +0:117 'uv3' ( temp mediump 3-component vector of uint) +0:118 Bitwise not ( temp mediump 3-component vector of int) +0:118 'iv3' ( temp mediump 3-component vector of int) +0:120 left shift second child into first child ( temp mediump 3-component vector of uint) +0:120 'uv3' ( temp mediump 3-component vector of uint) +0:120 'i' ( temp mediump int) +0:121 right-shift ( temp mediump int) +0:121 'i' ( temp mediump int) +0:121 'i' ( temp mediump int) +0:122 left-shift ( temp mediump uint) +0:122 'u' ( temp mediump uint) +0:122 'u' ( temp mediump uint) +0:123 right-shift ( temp mediump 3-component vector of int) +0:123 'iv3' ( temp mediump 3-component vector of int) +0:123 'iv3' ( temp mediump 3-component vector of int) +0:125 bitwise and ( temp mediump int) +0:125 'i' ( temp mediump int) +0:125 'i' ( temp mediump int) +0:126 inclusive-or ( temp mediump uint) +0:126 'u' ( temp mediump uint) +0:126 'u' ( temp mediump uint) +0:127 exclusive-or ( temp mediump 3-component vector of int) +0:127 'iv3' ( temp mediump 3-component vector of int) +0:127 'iv3' ( temp mediump 3-component vector of int) +0:128 bitwise and ( temp mediump 3-component vector of uint) +0:128 'u' ( temp mediump uint) +0:128 'uv3' ( temp mediump 3-component vector of uint) +0:129 inclusive-or ( temp mediump 3-component vector of uint) +0:129 'uv3' ( temp mediump 3-component vector of uint) +0:129 'u' ( temp mediump uint) +0:130 and second child into first child ( temp mediump 3-component vector of uint) +0:130 'uv3' ( temp mediump 3-component vector of uint) +0:130 'u' ( temp mediump uint) +0:132 direct index ( temp mediump int) +0:132 'arr' ( temp 2-element array of mediump int) +0:132 Constant: +0:132 1 (const int) +0:134 direct index ( temp mediump int) +0:134 'arr2' ( temp 3-element array of mediump int) +0:134 Constant: +0:134 2 (const int) +0:? Linker Objects +0:? 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:? 's' ( global structure{ global mediump int i}) +0:? 'a' ( global 5-element array of mediump float) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:? Sequence +0:30 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:31 's' ( global structure{ global mediump int i}) +0:32 'i' ( temp mediump int) +0:33 'u' ( temp mediump uint) +0:34 'u' ( temp mediump uint) +0:35 'iv3' ( temp mediump 3-component vector of int) +0:36 'iv4' ( temp mediump 4-component vector of int) +0:37 'i' ( temp mediump int) +0:38 'iv3' ( temp mediump 3-component vector of int) +0:39 'a' ( global 5-element array of mediump float) +0:40 'b' ( temp bool) +0:42 'f' ( temp mediump float) +0:43 'i' ( temp mediump int) +0:44 'f' ( temp mediump float) +0:45 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:46 's' ( global structure{ global mediump int i}) +0:47 'a' ( global 5-element array of mediump float) +0:48 'b3' ( temp 3-component vector of bool) +0:50 Constant: +0:50 false (const bool) +0:51 Constant: +0:51 false (const bool) +0:52 Constant: +0:52 false (const bool) +0:53 Constant: +0:53 false (const bool) +0:54 Constant: +0:54 false (const bool) +0:55 Constant: +0:55 false (const bool) +0:57 Constant: +0:57 false (const bool) +0:58 Constant: +0:58 false (const bool) +0:59 Constant: +0:59 false (const bool) +0:60 Constant: +0:60 false (const bool) +0:61 Constant: +0:61 false (const bool) +0:62 Constant: +0:62 false (const bool) +0:64 'u' ( temp mediump uint) +0:65 'i' ( temp mediump int) +0:66 'm2' ( temp mediump 2X2 matrix of float) +0:67 'v3' ( temp mediump 3-component vector of float) +0:68 'a' ( global 5-element array of mediump float) +0:70 'f' ( temp mediump float) +0:71 'm4' ( temp mediump 4X4 matrix of float) +0:72 'v3' ( temp mediump 3-component vector of float) +0:73 'a' ( global 5-element array of mediump float) +0:74 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:76 'i' ( temp mediump int) +0:77 'u' ( temp mediump uint) +0:78 'i' ( temp mediump int) +0:79 'f' ( temp mediump float) +0:80 'm4' ( temp mediump 4X4 matrix of float) +0:81 'a' ( global 5-element array of mediump float) +0:82 'iv3' ( temp mediump 3-component vector of int) +0:84 'i' ( temp mediump int) +0:85 'u' ( temp mediump uint) +0:86 'i' ( temp mediump int) +0:87 'u' ( temp mediump uint) +0:88 'm2' ( temp mediump 2X2 matrix of float) +0:89 's' ( global structure{ global mediump int i}) +0:90 move second child to first child ( temp mediump float) +0:90 move second child to first child ( temp mediump float) +0:90 'f' ( temp mediump float) +0:90 'f' ( temp mediump float) +0:90 'f' ( temp mediump float) +0:93 vector-scale ( temp mediump 4-component vector of float) +0:93 'f' ( temp mediump float) +0:93 'v4' ( temp mediump 4-component vector of float) +0:94 add ( temp mediump uint) +0:94 'u' ( temp mediump uint) +0:94 'u' ( temp mediump uint) +0:95 divide ( temp mediump 4-component vector of uint) +0:95 'uv4' ( temp mediump 4-component vector of uint) +0:95 'u' ( temp mediump uint) +0:96 subtract second child into first child ( temp mediump 3-component vector of int) +0:96 'iv3' ( temp mediump 3-component vector of int) +0:96 'iv3' ( temp mediump 3-component vector of int) +0:98 mod second child into first child ( temp mediump int) +0:98 'i' ( temp mediump int) +0:98 Constant: +0:98 3 (const int) +0:99 mod ( temp mediump 3-component vector of uint) +0:99 'uv3' ( temp mediump 3-component vector of uint) +0:99 Constant: +0:99 4 (const uint) +0:100 Pre-Decrement ( temp mediump 2X2 matrix of float) +0:100 'm2' ( temp mediump 2X2 matrix of float) +0:101 Post-Increment ( temp mediump 4-component vector of int) +0:101 'iv4' ( temp mediump 4-component vector of int) +0:103 Compare Not Equal ( temp bool) +0:103 'm4' ( temp mediump 4X4 matrix of float) +0:103 'm4' ( temp mediump 4X4 matrix of float) +0:104 Compare Equal ( temp bool) +0:104 'm2' ( temp mediump 2X2 matrix of float) +0:104 'm2' ( temp mediump 2X2 matrix of float) +0:105 Compare Less Than or Equal ( temp bool) +0:105 'i' ( temp mediump int) +0:105 'i' ( temp mediump int) +0:106 Compare Equal ( temp bool) +0:106 'a' ( global 5-element array of mediump float) +0:106 'a' ( global 5-element array of mediump float) +0:107 Compare Not Equal ( temp bool) +0:107 's' ( global structure{ global mediump int i}) +0:107 's' ( global structure{ global mediump int i}) +0:109 logical-and ( temp bool) +0:109 'b' ( temp bool) +0:109 'b' ( temp bool) +0:110 logical-or ( temp bool) +0:110 'b' ( temp bool) +0:110 'b' ( temp bool) +0:111 logical-xor ( temp bool) +0:111 'b' ( temp bool) +0:111 'b' ( temp bool) +0:113 Comma ( temp mediump 3-component vector of uint) +0:113 Negate conditional ( temp bool) +0:113 'b' ( temp bool) +0:113 'uv3' ( temp mediump 3-component vector of uint) +0:115 Bitwise not ( temp mediump int) +0:115 'i' ( temp mediump int) +0:116 Bitwise not ( temp mediump uint) +0:116 'u' ( temp mediump uint) +0:117 Bitwise not ( temp mediump 3-component vector of uint) +0:117 'uv3' ( temp mediump 3-component vector of uint) +0:118 Bitwise not ( temp mediump 3-component vector of int) +0:118 'iv3' ( temp mediump 3-component vector of int) +0:120 left shift second child into first child ( temp mediump 3-component vector of uint) +0:120 'uv3' ( temp mediump 3-component vector of uint) +0:120 'i' ( temp mediump int) +0:121 right-shift ( temp mediump int) +0:121 'i' ( temp mediump int) +0:121 'i' ( temp mediump int) +0:122 left-shift ( temp mediump uint) +0:122 'u' ( temp mediump uint) +0:122 'u' ( temp mediump uint) +0:123 right-shift ( temp mediump 3-component vector of int) +0:123 'iv3' ( temp mediump 3-component vector of int) +0:123 'iv3' ( temp mediump 3-component vector of int) +0:125 bitwise and ( temp mediump int) +0:125 'i' ( temp mediump int) +0:125 'i' ( temp mediump int) +0:126 inclusive-or ( temp mediump uint) +0:126 'u' ( temp mediump uint) +0:126 'u' ( temp mediump uint) +0:127 exclusive-or ( temp mediump 3-component vector of int) +0:127 'iv3' ( temp mediump 3-component vector of int) +0:127 'iv3' ( temp mediump 3-component vector of int) +0:128 bitwise and ( temp mediump 3-component vector of uint) +0:128 'u' ( temp mediump uint) +0:128 'uv3' ( temp mediump 3-component vector of uint) +0:129 inclusive-or ( temp mediump 3-component vector of uint) +0:129 'uv3' ( temp mediump 3-component vector of uint) +0:129 'u' ( temp mediump uint) +0:130 and second child into first child ( temp mediump 3-component vector of uint) +0:130 'uv3' ( temp mediump 3-component vector of uint) +0:130 'u' ( temp mediump uint) +0:132 direct index ( temp mediump int) +0:132 'arr' ( temp 2-element array of mediump int) +0:132 Constant: +0:132 1 (const int) +0:134 direct index ( temp mediump int) +0:134 'arr2' ( temp 3-element array of mediump int) +0:134 Constant: +0:134 2 (const int) +0:? Linker Objects +0:? 'instanceName' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f}) +0:? 's' ( global structure{ global mediump int i}) +0:? 'a' ( global 5-element array of mediump float) + diff --git a/deps/glslang/glslang/Test/baseResults/300samplerExternal.frag.out b/deps/glslang/glslang/Test/baseResults/300samplerExternal.frag.out new file mode 100644 index 0000000000..9074552e89 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300samplerExternal.frag.out @@ -0,0 +1,197 @@ +300samplerExternal.frag +ERROR: 0:12: 'texture2D' : no matching overloaded function found +ERROR: 0:13: 'texture2D' : no matching overloaded function found +ERROR: 0:14: 'texture2D' : no matching overloaded function found +ERROR: 0:15: 'texture2DProj' : no matching overloaded function found +ERROR: 0:16: 'texture2DProj' : no matching overloaded function found +ERROR: 0:29: 'texture3D' : no matching overloaded function found +ERROR: 0:30: 'texture2DProjLod' : no matching overloaded function found +ERROR: 0:31: 'texture' : no matching overloaded function found +ERROR: 0:32: 'textureProjLod' : no matching overloaded function found +ERROR: 0:38: 'samplerExternalOES' : required extension not requested: GL_OES_EGL_image_external_essl3 +ERROR: 0:41: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON +ERROR: 11 compilation errors. No code generated. + + +Shader version: 300 +Requested GL_OES_EGL_image_external +Requested GL_OES_EGL_image_external_essl3 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Constant: +0:12 0.000000 +0:13 Constant: +0:13 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Constant: +0:16 0.000000 +0:18 Sequence +0:18 move second child to first child ( temp mediump int) +0:18 'lod' ( temp mediump int) +0:18 Constant: +0:18 0 (const int) +0:19 Sequence +0:19 move second child to first child ( temp highp float) +0:19 'bias' ( temp highp float) +0:19 Constant: +0:19 0.010000 +0:20 textureSize ( global highp 2-component vector of int, operation at mediump) +0:20 'sExt' ( uniform lowp samplerExternalOES) +0:20 'lod' ( temp mediump int) +0:21 texture ( global lowp 4-component vector of float) +0:21 'sExt' ( uniform lowp samplerExternalOES) +0:21 Constant: +0:21 0.200000 +0:21 0.200000 +0:22 texture ( global lowp 4-component vector of float, operation at highp) +0:22 'sExt' ( uniform lowp samplerExternalOES) +0:22 Constant: +0:22 0.200000 +0:22 0.200000 +0:22 'bias' ( temp highp float) +0:23 textureProj ( global lowp 4-component vector of float) +0:23 'sExt' ( uniform lowp samplerExternalOES) +0:23 Constant: +0:23 0.200000 +0:23 0.200000 +0:23 0.200000 +0:24 textureProj ( global lowp 4-component vector of float, operation at highp) +0:24 'sExt' ( uniform lowp samplerExternalOES) +0:24 Constant: +0:24 0.200000 +0:24 0.200000 +0:24 0.200000 +0:24 'bias' ( temp highp float) +0:25 textureProj ( global lowp 4-component vector of float) +0:25 'sExt' ( uniform lowp samplerExternalOES) +0:25 Constant: +0:25 0.200000 +0:25 0.200000 +0:25 0.200000 +0:25 0.200000 +0:26 textureProj ( global lowp 4-component vector of float, operation at highp) +0:26 'sExt' ( uniform lowp samplerExternalOES) +0:26 Constant: +0:26 0.200000 +0:26 0.200000 +0:26 0.200000 +0:26 0.200000 +0:26 'bias' ( temp highp float) +0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump) +0:27 'sExt' ( uniform lowp samplerExternalOES) +0:27 Constant: +0:27 4 (const int) +0:27 4 (const int) +0:27 'lod' ( temp mediump int) +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:? Linker Objects +0:? 'sExt' ( uniform lowp samplerExternalOES) +0:? 'mediumExt' ( uniform mediump samplerExternalOES) +0:? 'highExt' ( uniform highp samplerExternalOES) +0:? 'badExt' ( uniform mediump samplerExternalOES) + + +Linked fragment stage: + + +Shader version: 300 +Requested GL_OES_EGL_image_external +Requested GL_OES_EGL_image_external_essl3 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Constant: +0:12 0.000000 +0:13 Constant: +0:13 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Constant: +0:16 0.000000 +0:18 Sequence +0:18 move second child to first child ( temp mediump int) +0:18 'lod' ( temp mediump int) +0:18 Constant: +0:18 0 (const int) +0:19 Sequence +0:19 move second child to first child ( temp highp float) +0:19 'bias' ( temp highp float) +0:19 Constant: +0:19 0.010000 +0:20 textureSize ( global highp 2-component vector of int, operation at mediump) +0:20 'sExt' ( uniform lowp samplerExternalOES) +0:20 'lod' ( temp mediump int) +0:21 texture ( global lowp 4-component vector of float) +0:21 'sExt' ( uniform lowp samplerExternalOES) +0:21 Constant: +0:21 0.200000 +0:21 0.200000 +0:22 texture ( global lowp 4-component vector of float, operation at highp) +0:22 'sExt' ( uniform lowp samplerExternalOES) +0:22 Constant: +0:22 0.200000 +0:22 0.200000 +0:22 'bias' ( temp highp float) +0:23 textureProj ( global lowp 4-component vector of float) +0:23 'sExt' ( uniform lowp samplerExternalOES) +0:23 Constant: +0:23 0.200000 +0:23 0.200000 +0:23 0.200000 +0:24 textureProj ( global lowp 4-component vector of float, operation at highp) +0:24 'sExt' ( uniform lowp samplerExternalOES) +0:24 Constant: +0:24 0.200000 +0:24 0.200000 +0:24 0.200000 +0:24 'bias' ( temp highp float) +0:25 textureProj ( global lowp 4-component vector of float) +0:25 'sExt' ( uniform lowp samplerExternalOES) +0:25 Constant: +0:25 0.200000 +0:25 0.200000 +0:25 0.200000 +0:25 0.200000 +0:26 textureProj ( global lowp 4-component vector of float, operation at highp) +0:26 'sExt' ( uniform lowp samplerExternalOES) +0:26 Constant: +0:26 0.200000 +0:26 0.200000 +0:26 0.200000 +0:26 0.200000 +0:26 'bias' ( temp highp float) +0:27 textureFetch ( global lowp 4-component vector of float, operation at mediump) +0:27 'sExt' ( uniform lowp samplerExternalOES) +0:27 Constant: +0:27 4 (const int) +0:27 4 (const int) +0:27 'lod' ( temp mediump int) +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:? Linker Objects +0:? 'sExt' ( uniform lowp samplerExternalOES) +0:? 'mediumExt' ( uniform mediump samplerExternalOES) +0:? 'highExt' ( uniform highp samplerExternalOES) +0:? 'badExt' ( uniform mediump samplerExternalOES) + diff --git a/deps/glslang/glslang/Test/baseResults/300scope.vert.out b/deps/glslang/glslang/Test/baseResults/300scope.vert.out new file mode 100644 index 0000000000..5a12020ef4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/300scope.vert.out @@ -0,0 +1,231 @@ +300scope.vert +ERROR: 0:5: 'a' : redefinition +ERROR: 0:17: 'b' : function name is redeclaration of existing name +ERROR: 0:20: 'c' : redefinition +ERROR: 0:22: 'f' : redefinition +ERROR: 0:23: 'tan' : redefinition +ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1 +ERROR: 0:24: 'sin' : function name is redeclaration of existing name +ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1 +ERROR: 0:25: 'cos' : function name is redeclaration of existing name +ERROR: 0:25: 'cos' : function already has a body +ERROR: 0:27: 'return' : void function cannot return a value +ERROR: 0:29: 'radians' : function name is redeclaration of existing name +ERROR: 0:29: 'radians' : can't find function +ERROR: 0:31: 'return' : void function cannot return a value +ERROR: 0:38: 'local function declaration' : not supported with this profile: es +ERROR: 0:43: 'sin' : can't use function syntax on variable +ERROR: 0:57: 'z' : undeclared identifier +ERROR: 0:57: 'z' : redefinition +ERROR: 0:73: 'degrees' : can't use function syntax on variable +ERROR: 21 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global highp int) +0:3 Function Parameters: +0:3 'a' ( in highp int) +0:3 'b' ( in highp int) +0:3 'c' ( in highp int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp highp float) +0:8 'a' ( temp highp float) +0:8 add ( temp highp float) +0:8 Convert int to float ( temp highp float) +0:8 'a' ( in highp int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in highp int) +0:25 Function Definition: cos(f1; ( global highp float) +0:25 Function Parameters: +0:25 'x' ( in highp float) +0:27 Sequence +0:27 Branch: Return +0:29 Function Definition: radians(b1; ( global bool) +0:29 Function Parameters: +0:29 'x' ( in bool) +0:31 Sequence +0:31 Branch: Return +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp highp int) +0:42 'sin' ( temp highp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; ( global highp int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp highp float) +0:47 'f' ( temp highp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 'gl_Position' ( invariant gl_Position highp 4-component vector of float Position) +0:49 Construct vec4 ( temp highp 4-component vector of float) +0:49 'f' ( temp highp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp highp int) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp highp int) +0:52 'f' ( temp highp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp highp int) +0:51 'f' ( temp highp int) +0:54 Sequence +0:54 move second child to first child ( temp highp int) +0:54 'x' ( temp highp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp highp float) +0:56 'x' ( temp highp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp highp float) +0:56 'y' ( temp highp float) +0:56 'x' ( temp highp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp highp int) +0:60 'x' ( temp highp int) +0:60 'x' ( temp highp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp highp int x}) +0:68 'S' ( temp structure{ temp highp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp highp int) +0:69 'S' ( temp structure{ temp highp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 0.000000 +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + g( + +Shader version: 300 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global highp int) +0:3 Function Parameters: +0:3 'a' ( in highp int) +0:3 'b' ( in highp int) +0:3 'c' ( in highp int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp highp float) +0:8 'a' ( temp highp float) +0:8 add ( temp highp float) +0:8 Convert int to float ( temp highp float) +0:8 'a' ( in highp int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in highp int) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp highp int) +0:42 'sin' ( temp highp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; ( global highp int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp highp float) +0:47 'f' ( temp highp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 'gl_Position' ( invariant gl_Position highp 4-component vector of float Position) +0:49 Construct vec4 ( temp highp 4-component vector of float) +0:49 'f' ( temp highp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp highp int) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp highp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp highp int) +0:52 'f' ( temp highp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp highp int) +0:51 'f' ( temp highp int) +0:54 Sequence +0:54 move second child to first child ( temp highp int) +0:54 'x' ( temp highp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp highp float) +0:56 'x' ( temp highp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp highp float) +0:56 'y' ( temp highp float) +0:56 'x' ( temp highp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp highp int) +0:60 'x' ( temp highp int) +0:60 'x' ( temp highp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp highp int x}) +0:68 'S' ( temp structure{ temp highp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp highp int) +0:69 'S' ( temp structure{ temp highp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 0.000000 +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/310.comp.out b/deps/glslang/glslang/Test/baseResults/310.comp.out new file mode 100644 index 0000000000..5a926f67fe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310.comp.out @@ -0,0 +1,616 @@ +310.comp +ERROR: 0:4: 'local_size' : cannot change previously set size +ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize +ERROR: 0:7: 'local_size_y' : must be at least 1 +ERROR: 0:23: '' : array size required +ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader +ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute +ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader +ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader +ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable +ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers +ERROR: 0:45: 'shared' : cannot initialize this type of qualifier +ERROR: 0:47: 'local_size' : can only apply to 'in' +ERROR: 0:47: 'local_size' : can only apply to 'in' +ERROR: 0:47: 'local_size' : can only apply to 'in' +ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer) +ERROR: 0:66: 'buffer' : buffers can be declared only as blocks +ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:76: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:89: 'readonly' : argument cannot drop memory qualifier when passed to formal parameter +ERROR: 0:89: 'imageAtomicMin' : only supported on image with format r32i or r32ui +ERROR: 0:90: 'imageAtomicMax' : no matching overloaded function found +ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter +ERROR: 0:97: '' : memory qualifiers cannot be used on this type +ERROR: 0:98: '' : memory qualifiers cannot be used on this type +ERROR: 0:114: 'image load-store format' : not supported with this profile: es +ERROR: 0:114: 'rg8i' : does not apply to unsigned integer images +ERROR: 0:115: 'rgba32i' : does not apply to floating point images +ERROR: 0:116: 'rgba32f' : does not apply to unsigned integer images +ERROR: 0:117: 'image load-store format' : not supported with this profile: es +ERROR: 0:117: 'r8_snorm' : does not apply to signed integer images +ERROR: 0:118: 'rgba32ui' : does not apply to signed integer images +ERROR: 0:119: 'image load-store format' : not supported with this profile: es +ERROR: 0:119: 'r8ui' : does not apply to signed integer images +ERROR: 0:128: 'atomic_uint' : samplers and atomic_uints cannot be output parameters +ERROR: 0:130: 'return' : type does not match, or is not convertible to, the function's return type +ERROR: 0:136: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter +ERROR: 0:141: 'atomic_uint' : atomic counters can only be highp +ERROR: 0:141: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:143: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:149: '[]' : scalar integer expression required +ERROR: 0:166: 'precision' : can only apply highp to atomic_uint +ERROR: 0:168: 'precise' : Reserved word. +ERROR: 0:168: 'precise' : not supported for this version or the enabled extensions +ERROR: 0:170: 'dmat2x4' : Reserved word. +ERROR: 0:170: 'double matrix' : not supported with this profile: es +ERROR: 0:171: 'samplerCubeArray' : Reserved word. +ERROR: 0:171: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:172: 'iimage2DRect' : Reserved word. +ERROR: 0:172: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:172: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:173: 'image2DMS' : Reserved word. +ERROR: 0:173: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:174: 'uimage2DMSArray' : Reserved word. +ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:174: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier +ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier +ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier +ERROR: 0:194: 'assign' : can't read from writeonly object: wo +ERROR: 0:195: 'initializer' : can't read from writeonly object: wo +ERROR: 0:196: '++' : can't read from writeonly object: wo +ERROR: 0:197: '--' : can't read from writeonly object: wo +ERROR: 0:198: '+' : can't read from writeonly object: wo +ERROR: 0:199: '-' : can't read from writeonly object: wo +ERROR: 0:201: ':' : can't read from writeonly object: wo +ERROR: 0:202: ':' : can't read from writeonly object: wo +ERROR: 0:203: '==' : can't read from writeonly object: wo +ERROR: 0:205: '>=' : can't read from writeonly object: wo +ERROR: 0:207: 'constructor' : can't read from writeonly object: wo +ERROR: 0:208: '~' : can't read from writeonly object: wo +ERROR: 0:221: 'assign' : can't read from writeonly object: wo +ERROR: 0:222: '~' : can't read from writeonly object: wo +ERROR: 0:227: 'input block' : not supported in this stage: compute +ERROR: 0:231: 'output block' : not supported in this stage: compute +WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D +ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier +ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier +ERROR: 82 compilation errors. No code generated. + + +Shader version: 310 +Requested GL_EXT_device_group +local_size = (2, 1, 4096) +ERROR: node is still EOpNull! +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:29 Sequence +0:29 Barrier ( global void) +0:30 MemoryBarrier ( global void) +0:31 MemoryBarrierAtomicCounter ( global void) +0:32 MemoryBarrierBuffer ( global void) +0:33 MemoryBarrierShared ( global void) +0:34 MemoryBarrierImage ( global void) +0:35 GroupMemoryBarrier ( global void) +0:36 move second child to first child ( temp highp int) +0:36 value: direct index for structure (layout( column_major shared) buffer highp int) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values}) +0:36 Constant: +0:36 0 (const uint) +0:36 Convert float to int ( temp highp int) +0:36 indirect index (layout( column_major shared) temp highp float) +0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp float) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values}) +0:36 Constant: +0:36 1 (const uint) +0:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex) +0:59 Function Definition: foo( ( global void) +0:59 Function Parameters: +0:61 Sequence +0:61 move second child to first child ( temp highp float) +0:61 direct index (layout( column_major shared) temp highp float) +0:61 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:61 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const int) +0:61 Constant: +0:61 4.700000 +0:62 array length ( temp int) +0:62 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:62 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:62 Constant: +0:62 1 (const int) +0:63 Pre-Increment ( temp highp 4-component vector of float) +0:63 's' ( shared highp 4-component vector of float) +0:84 Function Definition: qux( ( global void) +0:84 Function Parameters: +0:86 Sequence +0:86 Sequence +0:86 move second child to first child ( temp highp int) +0:86 'i' ( temp highp int) +0:86 Constant: +0:86 4 (const int) +0:87 imageAtomicCompSwap ( global highp int) +0:87 'iimg2D' (layout( r32i) uniform highp iimage2D) +0:87 Construct ivec2 ( temp highp 2-component vector of int) +0:87 'i' ( temp highp int) +0:87 'i' ( temp highp int) +0:87 'i' ( temp highp int) +0:87 'i' ( temp highp int) +0:88 imageAtomicAdd ( global highp uint) +0:88 'uimg2D' (layout( r32ui) uniform mediump uimage2D) +0:88 Construct ivec2 ( temp highp 2-component vector of int) +0:88 'i' ( temp highp int) +0:88 'i' ( temp highp int) +0:88 Convert int to uint ( temp highp uint) +0:88 'i' ( temp highp int) +0:89 imageAtomicMin ( global highp int) +0:89 'iimg2Drgba' (layout( rgba32i) readonly uniform highp iimage2D) +0:89 Construct ivec2 ( temp highp 2-component vector of int) +0:89 'i' ( temp highp int) +0:89 'i' ( temp highp int) +0:89 'i' ( temp highp int) +0:90 Constant: +0:90 0.000000 +0:91 Sequence +0:91 move second child to first child ( temp highp 4-component vector of int) +0:91 'pos' ( temp highp 4-component vector of int) +0:91 imageLoad ( global highp 4-component vector of int) +0:91 'iimg2D' (layout( r32i) uniform highp iimage2D) +0:91 Construct ivec2 ( temp highp 2-component vector of int) +0:91 'i' ( temp highp int) +0:91 'i' ( temp highp int) +0:92 imageStore ( global highp void) +0:92 'ii2da' ( writeonly uniform highp iimage2DArray) +0:92 Construct ivec3 ( temp 3-component vector of int) +0:92 'i' ( temp highp int) +0:92 'i' ( temp highp int) +0:92 'i' ( temp highp int) +0:92 Constant: +0:92 0 (const int) +0:92 0 (const int) +0:92 0 (const int) +0:92 0 (const int) +0:93 imageLoad ( global mediump 4-component vector of float) +0:93 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D) +0:93 Construct ivec2 ( temp mediump 2-component vector of int) +0:93 'i' ( temp highp int) +0:93 'i' ( temp highp int) +0:94 imageLoad ( global highp 4-component vector of int) +0:94 'ii2da' ( writeonly uniform highp iimage2DArray) +0:94 Construct ivec3 ( temp highp 3-component vector of int) +0:94 'i' ( temp highp int) +0:94 'i' ( temp highp int) +0:94 'i' ( temp highp int) +0:100 Function Definition: passr(iI21; ( global void) +0:100 Function Parameters: +0:100 'image' ( coherent readonly in highp iimage2D) +0:107 Function Definition: passrc( ( global void) +0:107 Function Parameters: +0:109 Sequence +0:109 Function Call: passr(iI21; ( global void) +0:109 'qualim1' (layout( r32i) coherent readonly uniform highp iimage2D) +0:110 Function Call: passr(iI21; ( global void) +0:110 'qualim2' (layout( r32i) coherent restrict readonly uniform highp iimage2D) +0:111 Function Call: passr(iI21; ( global void) +0:111 'iimg2D' (layout( r32i) uniform highp iimage2D) +0:123 Function Definition: func(au1; ( global highp uint) +0:123 Function Parameters: +0:123 'c' ( in highp atomic_uint) +0:125 Sequence +0:125 Branch: Return with expression +0:125 AtomicCounterIncrement ( global highp uint) +0:125 'c' ( in highp atomic_uint) +0:128 Function Definition: func2(au1; ( global highp uint) +0:128 Function Parameters: +0:128 'c' ( out highp atomic_uint) +0:130 Sequence +0:130 Branch: Return with expression +0:130 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:131 Branch: Return with expression +0:131 AtomicCounter ( global highp uint) +0:131 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:134 Function Definition: mainAC( ( global void) +0:134 Function Parameters: +0:? Sequence +0:137 Sequence +0:137 move second child to first child ( temp highp uint) +0:137 'val' ( temp highp uint) +0:137 AtomicCounter ( global highp uint) +0:137 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:138 AtomicCounterDecrement ( global highp uint) +0:138 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:146 Function Definition: opac( ( global void) +0:146 Function Parameters: +0:? Sequence +0:149 indirect index ( temp highp int) +0:149 'a' ( temp 3-element array of highp int) +0:149 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:150 direct index (layout( binding=2 offset=4) temp highp atomic_uint) +0:150 'countArr' (layout( binding=2 offset=4) uniform 4-element array of highp atomic_uint) +0:150 Constant: +0:150 2 (const int) +0:151 indirect index (layout( binding=2 offset=4) temp highp atomic_uint) +0:151 'countArr' (layout( binding=2 offset=4) uniform 4-element array of highp atomic_uint) +0:151 'i' ( uniform highp int) +0:157 Function Definition: atoms( ( global void) +0:157 Function Parameters: +0:159 Sequence +0:159 Sequence +0:159 move second child to first child ( temp highp int) +0:159 'origi' ( temp highp int) +0:159 AtomicAdd ( global highp int) +0:159 'atomi' ( shared highp int) +0:159 Constant: +0:159 3 (const int) +0:160 Sequence +0:160 move second child to first child ( temp highp uint) +0:160 'origu' ( temp highp uint) +0:160 AtomicAnd ( global highp uint) +0:160 'atomu' ( shared highp uint) +0:160 Constant: +0:160 7 (const uint) +0:161 move second child to first child ( temp highp int) +0:161 'origi' ( temp highp int) +0:161 AtomicExchange ( global highp int) +0:161 'atomi' ( shared highp int) +0:161 Constant: +0:161 4 (const int) +0:162 move second child to first child ( temp highp uint) +0:162 'origu' ( temp highp uint) +0:162 AtomicCompSwap ( global highp uint) +0:162 'atomu' ( shared highp uint) +0:162 Constant: +0:162 10 (const uint) +0:162 Constant: +0:162 8 (const uint) +0:191 Function Definition: foowo( ( global void) +0:191 Function Parameters: +0:? Sequence +0:194 move second child to first child ( temp highp float) +0:194 'g' ( temp highp float) +0:194 direct index (layout( column_major shared) temp highp float) +0:194 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:194 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:194 Constant: +0:194 1 (const int) +0:194 Constant: +0:194 2 (const int) +0:195 Sequence +0:195 move second child to first child ( temp highp float) +0:195 'f' ( temp highp float) +0:195 direct index (layout( column_major shared) temp highp float) +0:195 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:195 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:195 Constant: +0:195 1 (const int) +0:195 Constant: +0:195 2 (const int) +0:196 Pre-Increment ( temp highp float) +0:196 direct index (layout( column_major shared) temp highp float) +0:196 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:196 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:196 Constant: +0:196 1 (const int) +0:196 Constant: +0:196 2 (const int) +0:197 Post-Decrement ( temp highp float) +0:197 direct index (layout( column_major shared) temp highp float) +0:197 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:197 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:197 Constant: +0:197 1 (const int) +0:197 Constant: +0:197 2 (const int) +0:198 add ( temp highp float) +0:198 'f' ( temp highp float) +0:198 direct index (layout( column_major shared) temp highp float) +0:198 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:198 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:198 Constant: +0:198 1 (const int) +0:198 Constant: +0:198 2 (const int) +0:199 subtract ( temp highp float) +0:199 direct index (layout( column_major shared) temp highp float) +0:199 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:199 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:199 Constant: +0:199 1 (const int) +0:199 Constant: +0:199 2 (const int) +0:199 'f' ( temp highp float) +0:201 Test condition and select ( temp highp float) +0:201 Condition +0:201 'b' ( temp bool) +0:201 true case +0:201 'f' ( temp highp float) +0:201 false case +0:201 direct index (layout( column_major shared) temp highp float) +0:201 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:201 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:201 Constant: +0:201 1 (const int) +0:201 Constant: +0:201 2 (const int) +0:202 Test condition and select ( temp highp float) +0:202 Condition +0:202 'b' ( temp bool) +0:202 true case +0:202 direct index (layout( column_major shared) temp highp float) +0:202 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:202 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:202 Constant: +0:202 1 (const int) +0:202 Constant: +0:202 2 (const int) +0:202 false case +0:202 'f' ( temp highp float) +0:203 Test condition and select ( temp void) +0:203 Condition +0:203 Compare Equal ( temp bool) +0:203 'f' ( temp highp float) +0:203 direct index (layout( column_major shared) temp highp float) +0:203 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:203 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:203 Constant: +0:203 1 (const int) +0:203 Constant: +0:203 2 (const int) +0:203 true case +0:204 Pre-Increment ( temp highp float) +0:204 'f' ( temp highp float) +0:205 Test condition and select ( temp void) +0:205 Condition +0:205 Compare Greater Than or Equal ( temp bool) +0:205 'f' ( temp highp float) +0:205 direct index (layout( column_major shared) temp highp float) +0:205 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:205 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:205 Constant: +0:205 1 (const int) +0:205 Constant: +0:205 2 (const int) +0:205 true case +0:206 Pre-Increment ( temp highp float) +0:206 'f' ( temp highp float) +0:207 move second child to first child ( temp highp float) +0:207 'f' ( temp highp float) +0:207 direct index ( temp highp float) +0:207 Construct vec3 ( temp highp 3-component vector of float) +0:207 direct index (layout( column_major shared) temp highp float) +0:207 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:207 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:207 Constant: +0:207 1 (const int) +0:207 Constant: +0:207 2 (const int) +0:207 Constant: +0:207 0 (const int) +0:208 Bitwise not ( temp highp int) +0:208 value: direct index for structure (layout( column_major shared) buffer highp int) +0:208 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:208 Constant: +0:208 0 (const int) +0:209 move second child to first child ( temp highp float) +0:209 direct index (layout( column_major shared) temp highp float) +0:209 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:209 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:209 Constant: +0:209 1 (const int) +0:209 Constant: +0:209 2 (const int) +0:209 Constant: +0:209 3.400000 +0:218 Function Definition: foomultio( ( global void) +0:218 Function Parameters: +0:? Sequence +0:221 move second child to first child ( temp highp float) +0:221 'g' ( temp highp float) +0:221 direct index (layout( column_major shared) temp highp float) +0:221 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:221 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:221 Constant: +0:221 1 (const int) +0:221 Constant: +0:221 2 (const int) +0:222 Bitwise not ( temp highp int) +0:222 value: direct index for structure (layout( column_major shared) buffer highp int) +0:222 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:222 Constant: +0:222 0 (const int) +0:223 move second child to first child ( temp highp float) +0:223 direct index (layout( column_major shared) temp highp float) +0:223 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of highp float) +0:223 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:223 Constant: +0:223 1 (const int) +0:223 Constant: +0:223 2 (const int) +0:223 Constant: +0:223 3.400000 +0:224 move second child to first child ( temp highp int) +0:224 value: direct index for structure (layout( column_major shared) buffer highp int) +0:224 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:224 Constant: +0:224 0 (const int) +0:224 Constant: +0:224 2 (const int) +0:242 Function Definition: devi( ( global void) +0:242 Function Parameters: +0:244 Sequence +0:244 'gl_DeviceIndex' ( in highp int DeviceIndex) +0:245 'gl_ViewIndex' ( temp float) +0:252 Function Definition: devie( ( global void) +0:252 Function Parameters: +0:254 Sequence +0:254 'gl_DeviceIndex' ( in highp int DeviceIndex) +0:255 'gl_ViewIndex' ( temp float) +0:? Linker Objects +0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 1 (const uint) +0:? 4096 (const uint) +0:? 'total' ( const highp int) +0:? 66592 (const int) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values}) +0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 1-element array of highp float values, layout( column_major shared) buffer highp int value}) +0:? 'v3' (layout( location=2) in highp 3-component vector of float) +0:? 'f' ( in highp float) +0:? 'fo' ( out highp float) +0:? 's' ( shared highp 4-component vector of float) +0:? 'sl' (layout( location=2) shared highp 4-component vector of float) +0:? 'fs' ( shared highp float) +0:? 'arrX' ( global 2-element array of highp int) +0:? 'arrY' ( global 1-element array of highp int) +0:? 'arrZ' ( global 4096-element array of highp int) +0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:? 'v' ( buffer highp 4-component vector of float) +0:? 'us2dbad' ( uniform mediump usampler2D) +0:? 'us2d' ( uniform highp usampler2D) +0:? 'ii2dabad' ( uniform highp iimage2DArray) +0:? 'ii2da' ( writeonly uniform highp iimage2DArray) +0:? 'iimg2D' (layout( r32i) uniform highp iimage2D) +0:? 'iimg2Drgba' (layout( rgba32i) readonly uniform highp iimage2D) +0:? 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D) +0:? 'uimg2D' (layout( r32ui) uniform mediump uimage2D) +0:? 'vol' ( volatile temp highp float) +0:? 'vol2' ( readonly temp highp int) +0:? 'qualim1' (layout( r32i) coherent readonly uniform highp iimage2D) +0:? 'qualim2' (layout( r32i) coherent restrict readonly uniform highp iimage2D) +0:? 'i1bad' (layout( rg8i) readonly uniform highp uimage2D) +0:? 'i2bad' (layout( rgba32i) readonly uniform highp image2D) +0:? 'i3bad' (layout( rgba32f) readonly uniform highp uimage2D) +0:? 'i4bad' (layout( r8_snorm) readonly uniform highp iimage2D) +0:? 'i5bad' (layout( rgba32ui) readonly uniform highp iimage2D) +0:? 'i6bad' (layout( r8ui) readonly uniform highp iimage2D) +0:? 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:? 'counterBad' (layout( binding=1) uniform mediump atomic_uint) +0:? 'countArr' (layout( binding=2 offset=4) uniform 4-element array of highp atomic_uint) +0:? 'i' ( uniform highp int) +0:? 'atomi' ( shared highp int) +0:? 'atomu' ( shared highp uint) +0:? 'pfoo' ( noContraction temp highp int) +0:? 'dm' ( global 2X4 matrix of double) +0:? 'sca' ( uniform mediump samplerCubeArray) +0:? 'i2dr' ( uniform mediump iimage2DRect) +0:? 'i2dms' ( uniform highp image2DMS) +0:? 'u2dmsa' ( uniform mediump uimage2DMSArray) +0:? 'okay1' (layout( r32f) coherent volatile restrict readonly writeonly uniform highp image2D) +0:? 'okay2' (layout( r32i) coherent volatile restrict readonly uniform highp iimage2D) +0:? 'okay3' (layout( r32ui) coherent volatile restrict writeonly uniform highp uimage2D) +0:? 'okay4' (layout( r32f) coherent volatile restrict uniform highp image2D) +0:? 'badQ1' (layout( rgba32f) coherent volatile restrict uniform highp image2D) +0:? 'badQ2' (layout( rgba8i) coherent volatile restrict uniform highp iimage2D) +0:? 'badQ3' (layout( rgba16ui) coherent volatile restrict uniform highp uimage2D) +0:? 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:? 'multio' (layout( column_major shared) buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) writeonly buffer unsized 1-element array of highp float values}) +0:? 'inbi' ( in block{ in highp int a}) +0:? 'outbi' ( out block{ out highp int a}) +0:? 't__' ( global highp float) +0:? 'arr' ( shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float) + + +Linked compute stage: + + +Shader version: 310 +Requested GL_EXT_device_group +local_size = (2, 1, 4096) +ERROR: node is still EOpNull! +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:29 Sequence +0:29 Barrier ( global void) +0:30 MemoryBarrier ( global void) +0:31 MemoryBarrierAtomicCounter ( global void) +0:32 MemoryBarrierBuffer ( global void) +0:33 MemoryBarrierShared ( global void) +0:34 MemoryBarrierImage ( global void) +0:35 GroupMemoryBarrier ( global void) +0:36 move second child to first child ( temp highp int) +0:36 value: direct index for structure (layout( column_major shared) buffer highp int) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values}) +0:36 Constant: +0:36 0 (const uint) +0:36 Convert float to int ( temp highp int) +0:36 indirect index (layout( column_major shared) temp highp float) +0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of highp float) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values}) +0:36 Constant: +0:36 1 (const uint) +0:36 'gl_LocalInvocationIndex' ( in highp uint LocalInvocationIndex) +0:? Linker Objects +0:? 'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 1 (const uint) +0:? 4096 (const uint) +0:? 'total' ( const highp int) +0:? 66592 (const int) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer runtime-sized array of highp float values}) +0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer 1-element array of highp float values, layout( column_major shared) buffer highp int value}) +0:? 'v3' (layout( location=2) in highp 3-component vector of float) +0:? 'f' ( in highp float) +0:? 'fo' ( out highp float) +0:? 's' ( shared highp 4-component vector of float) +0:? 'sl' (layout( location=2) shared highp 4-component vector of float) +0:? 'fs' ( shared highp float) +0:? 'arrX' ( global 2-element array of highp int) +0:? 'arrY' ( global 1-element array of highp int) +0:? 'arrZ' ( global 4096-element array of highp int) +0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:? 'v' ( buffer highp 4-component vector of float) +0:? 'us2dbad' ( uniform mediump usampler2D) +0:? 'us2d' ( uniform highp usampler2D) +0:? 'ii2dabad' ( uniform highp iimage2DArray) +0:? 'ii2da' ( writeonly uniform highp iimage2DArray) +0:? 'iimg2D' (layout( r32i) uniform highp iimage2D) +0:? 'iimg2Drgba' (layout( rgba32i) readonly uniform highp iimage2D) +0:? 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D) +0:? 'uimg2D' (layout( r32ui) uniform mediump uimage2D) +0:? 'vol' ( volatile temp highp float) +0:? 'vol2' ( readonly temp highp int) +0:? 'qualim1' (layout( r32i) coherent readonly uniform highp iimage2D) +0:? 'qualim2' (layout( r32i) coherent restrict readonly uniform highp iimage2D) +0:? 'i1bad' (layout( rg8i) readonly uniform highp uimage2D) +0:? 'i2bad' (layout( rgba32i) readonly uniform highp image2D) +0:? 'i3bad' (layout( rgba32f) readonly uniform highp uimage2D) +0:? 'i4bad' (layout( r8_snorm) readonly uniform highp iimage2D) +0:? 'i5bad' (layout( rgba32ui) readonly uniform highp iimage2D) +0:? 'i6bad' (layout( r8ui) readonly uniform highp iimage2D) +0:? 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) +0:? 'counterBad' (layout( binding=1) uniform mediump atomic_uint) +0:? 'countArr' (layout( binding=2 offset=4) uniform 4-element array of highp atomic_uint) +0:? 'i' ( uniform highp int) +0:? 'atomi' ( shared highp int) +0:? 'atomu' ( shared highp uint) +0:? 'pfoo' ( noContraction temp highp int) +0:? 'dm' ( global 2X4 matrix of double) +0:? 'sca' ( uniform mediump samplerCubeArray) +0:? 'i2dr' ( uniform mediump iimage2DRect) +0:? 'i2dms' ( uniform highp image2DMS) +0:? 'u2dmsa' ( uniform mediump uimage2DMSArray) +0:? 'okay1' (layout( r32f) coherent volatile restrict readonly writeonly uniform highp image2D) +0:? 'okay2' (layout( r32i) coherent volatile restrict readonly uniform highp iimage2D) +0:? 'okay3' (layout( r32ui) coherent volatile restrict writeonly uniform highp uimage2D) +0:? 'okay4' (layout( r32f) coherent volatile restrict uniform highp image2D) +0:? 'badQ1' (layout( rgba32f) coherent volatile restrict uniform highp image2D) +0:? 'badQ2' (layout( rgba8i) coherent volatile restrict uniform highp iimage2D) +0:? 'badQ3' (layout( rgba16ui) coherent volatile restrict uniform highp uimage2D) +0:? 'wo' (layout( column_major shared) writeonly buffer block{layout( column_major shared) buffer highp int value, layout( column_major shared) buffer unsized 3-element array of highp float values}) +0:? 'multio' (layout( column_major shared) buffer block{layout( column_major shared) readonly buffer highp int value, layout( column_major shared) writeonly buffer unsized 1-element array of highp float values}) +0:? 'inbi' ( in block{ in highp int a}) +0:? 'outbi' ( out block{ out highp int a}) +0:? 't__' ( global highp float) +0:? 'arr' ( shared 2-element array of 3-element array of 4-element array of highp 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/310.frag.out b/deps/glslang/glslang/Test/baseResults/310.frag.out new file mode 100644 index 0000000000..6763c0a1e7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310.frag.out @@ -0,0 +1,1237 @@ +310.frag +ERROR: 0:2: 'float' : type requires declaration of default precision qualifier +ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es +ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es +ERROR: 0:8: 'gl_FragCoord' : identifiers starting with "gl_" are reserved +ERROR: 0:11: 'location' : overlapping use of location 2 +ERROR: 0:15: 'usampler2DRect' : Reserved word. +ERROR: 0:15: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:23: 'variable indexing sampler array' : not supported for this version or the enabled extensions +ERROR: 0:27: 'textureGatherOffsets' : no matching overloaded function found +ERROR: 0:27: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint' +ERROR: 0:30: 'textureGatherOffset(...)' : must be a compile-time constant: component argument +ERROR: 0:31: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument +ERROR: 0:34: 'non-constant offset argument' : not supported for this version or the enabled extensions +ERROR: 0:42: 'texel offset' : argument must be compile-time constant +ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:66: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:67: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:68: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:69: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type +ERROR: 0:77: 'location' : location is too large +ERROR: 0:81: 'location' : too large for fragment output +ERROR: 0:82: 'location' : too large for fragment output +ERROR: 0:82: 'location' : overlapping use of location 40 +ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es +ERROR: 0:83: 'layout-id value' : cannot be negative +ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:110: 'out' : cannot be bool +ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut +ERROR: 0:111: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es +ERROR: 0:112: 'out' : cannot be a matrix +ERROR: 0:114: 'in' : cannot be bool +ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino +ERROR: 0:117: 'fragment-shader array-of-array input' : not supported with this profile: es +ERROR: 0:120: 'fragment-shader array-of-struct input' : not supported with this profile: es +ERROR: 0:121: 'fragment-shader array-of-struct input' : not supported with this profile: es +ERROR: 0:123: 'fragment-shader struct input containing an array' : not supported with this profile: es +ERROR: 0:125: 'fragment-shader struct input containing structure' : not supported with this profile: es +ERROR: 0:133: 'output block' : not supported in this stage: fragment +ERROR: 0:138: '' : cannot nest a structure definition inside a structure or block +ERROR: 0:146: 'location' : overlapping use of location 13 +ERROR: 0:148: 'inbname2' : Cannot reuse block name within the same interface: in +ERROR: 0:153: 'badmember' : nameless block contains a member that already has a name at global scope +ERROR: 0:157: 'inbname' : redefinition +ERROR: 0:159: 'vAnon' : redefinition +ERROR: 0:173: 'origin_upper_left' : not supported with this profile: es +ERROR: 0:173: 'pixel_center_integer' : not supported with this profile: es +ERROR: 0:173: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord +ERROR: 0:177: 'depth layout qualifier' : not supported with this profile: es +ERROR: 0:181: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests) +ERROR: 0:182: 'gl_Layer' : required extension not requested: Possible extensions include: +GL_EXT_geometry_shader +GL_OES_geometry_shader +ERROR: 0:183: 'gl_PrimitiveID' : required extension not requested: Possible extensions include: +GL_EXT_geometry_shader +GL_OES_geometry_shader +ERROR: 0:209: 'precise' : Reserved word. +ERROR: 0:209: 'precise' : not supported for this version or the enabled extensions +ERROR: 0:210: 'fma' : required extension not requested: Possible extensions include: +GL_EXT_gpu_shader5 +GL_OES_gpu_shader5 +ERROR: 0:211: 'non-constant offset argument' : not supported for this version or the enabled extensions +ERROR: 0:212: 'textureGatherOffsets' : required extension not requested: Possible extensions include: +GL_EXT_gpu_shader5 +GL_OES_gpu_shader5 +ERROR: 0:223: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument +ERROR: 0:257: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables +ERROR: 0:258: 'gl_SamplePosition' : required extension not requested: GL_OES_sample_variables +ERROR: 0:259: 'gl_SampleMaskIn' : required extension not requested: GL_OES_sample_variables +ERROR: 0:260: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables +ERROR: 0:261: 'gl_NumSamples' : required extension not requested: GL_OES_sample_variables +ERROR: 0:289: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:290: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:291: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:292: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:293: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:294: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:295: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:296: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:297: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:298: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:299: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:300: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:301: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:302: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:303: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:304: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:305: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic +ERROR: 0:312: 'rgba32f' : format requires readonly or writeonly memory qualifier +ERROR: 0:313: 'rgba8ui' : format requires readonly or writeonly memory qualifier +ERROR: 0:314: 'rgba16i' : format requires readonly or writeonly memory qualifier +ERROR: 0:340: 'imageAtomicMax' : only supported on image with format r32i or r32ui +ERROR: 0:341: 'imageAtomicMax' : only supported on image with format r32i or r32ui +ERROR: 0:342: 'imageAtomicExchange' : only supported on image with format r32f +ERROR: 0:345: 'sample' : Reserved word. +ERROR: 0:346: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output +ERROR: 0:347: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output +ERROR: 0:348: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output +ERROR: 0:349: 'noperspective' : Reserved word. +ERROR: 0:349: 'noperspective' : not supported for this version or the enabled extensions +ERROR: 0:349: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output +ERROR: 0:355: 'interpolateAtCentroid' : required extension not requested: GL_OES_shader_multisample_interpolation +ERROR: 0:356: 'interpolateAtSample' : required extension not requested: GL_OES_shader_multisample_interpolation +ERROR: 0:357: 'interpolateAtOffset' : required extension not requested: GL_OES_shader_multisample_interpolation +ERROR: 0:365: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output +ERROR: 0:380: 'interpolateAtCentroid' : no matching overloaded function found +ERROR: 0:380: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' +ERROR: 0:382: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:384: 'interpolateAtSample' : no matching overloaded function found +ERROR: 0:384: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' +ERROR: 0:386: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:389: 'interpolateAtOffset' : no matching overloaded function found +ERROR: 0:389: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' +ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:400: 'blend equation' : not supported for this version or the enabled extensions +ERROR: 0:423: 'blend equation' : can only apply to 'out' +ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:426: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:429: 'blend_support' : unknown blend equation +ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es +ERROR: 0:435: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:436: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview +ERROR: 127 compilation errors. No code generated. + + +Shader version: 310 +Requested GL_EXT_device_group +Requested GL_EXT_multiview +Requested GL_EXT_shader_io_blocks +Requested GL_EXT_texture_cube_map_array +Requested GL_KHR_blend_equation_advanced +Requested GL_OES_geometry_shader +Requested GL_OES_gpu_shader5 +Requested GL_OES_sample_variables +Requested GL_OES_shader_image_atomic +Requested GL_OES_shader_io_blocks +Requested GL_OES_shader_multisample_interpolation +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +using early_fragment_tests +using depth_any +using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations +ERROR: node is still EOpNull! +0:21 Function Definition: main( ( global void) +0:21 Function Parameters: +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp highp 4-component vector of float) +0:23 'v' ( temp mediump 4-component vector of float) +0:23 texture ( global highp 4-component vector of float) +0:23 indirect index ( temp highp sampler2D) +0:23 'arrayedSampler' ( uniform 5-element array of highp sampler2D) +0:23 'i' ( uniform mediump int) +0:23 'c2D' ( smooth in mediump 2-component vector of float) +0:28 Sequence +0:28 move second child to first child ( temp highp 4-component vector of float) +0:28 'v4' ( temp mediump 4-component vector of float) +0:28 textureGather ( global highp 4-component vector of float) +0:28 direct index ( temp highp sampler2D) +0:28 'arrayedSampler' ( uniform 5-element array of highp sampler2D) +0:28 Constant: +0:28 0 (const int) +0:28 'c2D' ( smooth in mediump 2-component vector of float) +0:29 Sequence +0:29 move second child to first child ( temp highp 4-component vector of int) +0:29 'iv4' ( temp mediump 4-component vector of int) +0:29 textureGatherOffset ( global highp 4-component vector of int) +0:29 'isamp2DA' ( uniform highp isampler2DArray) +0:29 Constant: +0:29 0.100000 +0:29 0.100000 +0:29 0.100000 +0:29 Constant: +0:29 1 (const int) +0:29 1 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp highp 4-component vector of int) +0:30 'iv4' ( temp mediump 4-component vector of int) +0:30 textureGatherOffset ( global highp 4-component vector of int) +0:30 'isamp2DA' ( uniform highp isampler2DArray) +0:30 Constant: +0:30 0.100000 +0:30 0.100000 +0:30 0.100000 +0:30 Constant: +0:30 1 (const int) +0:30 1 (const int) +0:30 'i' ( uniform mediump int) +0:31 move second child to first child ( temp highp 4-component vector of int) +0:31 'iv4' ( temp mediump 4-component vector of int) +0:31 textureGatherOffset ( global highp 4-component vector of int) +0:31 'isamp2DA' ( uniform highp isampler2DArray) +0:31 Constant: +0:31 0.100000 +0:31 0.100000 +0:31 0.100000 +0:31 Constant: +0:31 1 (const int) +0:31 1 (const int) +0:31 Constant: +0:31 4 (const int) +0:32 move second child to first child ( temp highp 4-component vector of int) +0:32 'iv4' ( temp mediump 4-component vector of int) +0:32 textureGatherOffset ( global highp 4-component vector of int) +0:32 'isamp2DA' ( uniform highp isampler2DArray) +0:32 Constant: +0:32 0.100000 +0:32 0.100000 +0:32 0.100000 +0:32 Constant: +0:32 1 (const int) +0:32 1 (const int) +0:32 Constant: +0:32 3 (const int) +0:33 move second child to first child ( temp highp 4-component vector of int) +0:33 'iv4' ( temp mediump 4-component vector of int) +0:33 textureGatherOffset ( global highp 4-component vector of int) +0:33 'isamp2DA' ( uniform highp isampler2DArray) +0:33 Constant: +0:33 0.100000 +0:33 0.100000 +0:33 0.100000 +0:33 Constant: +0:33 0 (const int) +0:33 0 (const int) +0:34 move second child to first child ( temp highp 4-component vector of int) +0:34 'iv4' ( temp mediump 4-component vector of int) +0:34 textureGatherOffset ( global highp 4-component vector of int) +0:34 'isamp2DA' ( uniform highp isampler2DArray) +0:34 Constant: +0:34 0.100000 +0:34 0.100000 +0:34 0.100000 +0:34 Construct ivec2 ( temp highp 2-component vector of int) +0:34 'i' ( uniform mediump int) +0:38 Function Definition: foo23( ( global void) +0:38 Function Parameters: +0:? Sequence +0:42 textureProjGradOffset ( global highp 4-component vector of uint) +0:42 'usamp2d' ( uniform highp usampler2D) +0:42 'outp' ( out mediump 4-component vector of float) +0:42 Constant: +0:42 0.000000 +0:42 0.000000 +0:42 Constant: +0:42 0.000000 +0:42 0.000000 +0:42 Convert float to int ( temp highp 2-component vector of int) +0:42 'c2D' ( smooth in mediump 2-component vector of float) +0:43 textureProjGradOffset ( global highp 4-component vector of uint) +0:43 'usamp2d' ( uniform highp usampler2D) +0:43 'outp' ( out mediump 4-component vector of float) +0:43 Constant: +0:43 0.000000 +0:43 0.000000 +0:43 Constant: +0:43 0.000000 +0:43 0.000000 +0:43 Constant: +0:43 3 (const int) +0:43 4 (const int) +0:44 textureProjGradOffset ( global highp 4-component vector of uint) +0:44 'usamp2d' ( uniform highp usampler2D) +0:44 'outp' ( out mediump 4-component vector of float) +0:44 Constant: +0:44 0.000000 +0:44 0.000000 +0:44 Constant: +0:44 0.000000 +0:44 0.000000 +0:44 Constant: +0:44 15 (const int) +0:44 16 (const int) +0:45 textureProjGradOffset ( global highp 4-component vector of uint) +0:45 'usamp2d' ( uniform highp usampler2D) +0:45 'outp' ( out mediump 4-component vector of float) +0:45 Constant: +0:45 0.000000 +0:45 0.000000 +0:45 Constant: +0:45 0.000000 +0:45 0.000000 +0:45 Constant: +0:45 -10 (const int) +0:45 20 (const int) +0:47 Test condition and select ( temp void) +0:47 Condition +0:47 'gl_HelperInvocation' ( in bool HelperInvocation) +0:47 true case +0:48 Pre-Increment ( temp mediump 4-component vector of float) +0:48 'outp' ( out mediump 4-component vector of float) +0:50 Sequence +0:50 move second child to first child ( temp mediump int) +0:50 'sum' ( temp mediump int) +0:50 Constant: +0:50 32 (const int) +0:58 move second child to first child ( temp bool) +0:58 'b1' ( temp bool) +0:58 mix ( global bool) +0:58 'b2' ( temp bool) +0:58 'b3' ( temp bool) +0:58 'b' ( temp bool) +0:59 Sequence +0:59 move second child to first child ( temp mediump 3-component vector of uint) +0:59 'um3' ( temp mediump 3-component vector of uint) +0:59 mix ( global mediump 3-component vector of uint) +0:59 Construct uvec3 ( temp mediump 3-component vector of uint) +0:59 Convert int to uint ( temp mediump uint) +0:59 'i' ( uniform mediump int) +0:59 Construct uvec3 ( temp mediump 3-component vector of uint) +0:59 Convert int to uint ( temp mediump uint) +0:59 'i' ( uniform mediump int) +0:59 Construct bvec3 ( temp 3-component vector of bool) +0:59 'b' ( temp bool) +0:60 Sequence +0:60 move second child to first child ( temp mediump 4-component vector of int) +0:60 'im4' ( temp mediump 4-component vector of int) +0:60 mix ( global mediump 4-component vector of int) +0:60 Construct ivec4 ( temp mediump 4-component vector of int) +0:60 'i' ( uniform mediump int) +0:60 Construct ivec4 ( temp mediump 4-component vector of int) +0:60 'i' ( uniform mediump int) +0:60 Construct bvec4 ( temp 4-component vector of bool) +0:60 'b' ( temp bool) +0:98 Function Definition: foots( ( global void) +0:98 Function Parameters: +0:100 Sequence +0:100 Sequence +0:100 move second child to first child ( temp highp 2-component vector of int) +0:100 'v2' ( temp highp 2-component vector of int) +0:100 textureSize ( global highp 2-component vector of int) +0:100 's1' (layout( binding=3) uniform highp sampler2D) +0:100 Constant: +0:100 2 (const int) +0:101 Sequence +0:101 move second child to first child ( temp highp 3-component vector of int) +0:101 'v3' ( temp highp 3-component vector of int) +0:101 textureSize ( global highp 3-component vector of int) +0:101 'isamp2DA' ( uniform highp isampler2DArray) +0:101 Constant: +0:101 3 (const int) +0:102 move second child to first child ( temp highp 2-component vector of int) +0:102 'v2' ( temp highp 2-component vector of int) +0:102 textureSize ( global highp 2-component vector of int, operation at mediump) +0:102 's2dms' ( uniform mediump sampler2DMS) +0:103 move second child to first child ( temp highp 2-component vector of int) +0:103 'v2' ( temp highp 2-component vector of int) +0:103 imageQuerySize ( global highp 2-component vector of int) +0:103 'i2D' (layout( binding=2) writeonly uniform highp image2D) +0:104 move second child to first child ( temp highp 3-component vector of int) +0:104 'v3' ( temp highp 3-component vector of int) +0:104 imageQuerySize ( global highp 3-component vector of int, operation at mediump) +0:104 'i3D' (layout( binding=4) readonly uniform mediump image3D) +0:105 move second child to first child ( temp highp 2-component vector of int) +0:105 'v2' ( temp highp 2-component vector of int) +0:105 imageQuerySize ( global highp 2-component vector of int, operation at mediump) +0:105 'iCube' (layout( binding=5) uniform mediump imageCube) +0:106 move second child to first child ( temp highp 3-component vector of int) +0:106 'v3' ( temp highp 3-component vector of int) +0:106 imageQuerySize ( global highp 3-component vector of int, operation at mediump) +0:106 'i2DA' (layout( binding=6) uniform mediump image2DArray) +0:107 move second child to first child ( temp highp 2-component vector of int) +0:107 'v2' ( temp highp 2-component vector of int) +0:107 imageQuerySize ( global highp 2-component vector of int, operation at mediump) +0:107 'i2Dqualified' (layout( binding=6) coherent volatile restrict uniform mediump image2D) +0:165 Function Definition: fooIO( ( global void) +0:165 Function Parameters: +0:167 Sequence +0:167 Sequence +0:167 move second child to first child ( temp mediump 4-component vector of float) +0:167 'v' ( temp mediump 4-component vector of float) +0:167 add ( temp mediump 4-component vector of float) +0:167 v: direct index for structure ( in mediump 4-component vector of float) +0:167 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) +0:167 Constant: +0:167 1 (const int) +0:167 vAnon: direct index for structure (layout( location=13) centroid in mediump 4-component vector of float) +0:167 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) +0:167 Constant: +0:167 1 (const uint) +0:168 vector scale second child into first child ( temp mediump 4-component vector of float) +0:168 'v' ( temp mediump 4-component vector of float) +0:168 f: direct index for structure ( in mediump float) +0:168 direct index ( temp block{ in mediump float f}) +0:168 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:168 Constant: +0:168 2 (const int) +0:168 Constant: +0:168 0 (const int) +0:169 vector scale second child into first child ( temp mediump 4-component vector of float) +0:169 'v' ( temp mediump 4-component vector of float) +0:169 f: direct index for structure ( in mediump float) +0:169 indirect index ( temp block{ in mediump float f}) +0:169 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:169 'i' ( uniform mediump int) +0:169 Constant: +0:169 0 (const int) +0:179 Function Definition: foo_IO( ( global void) +0:179 Function Parameters: +0:181 Sequence +0:181 move second child to first child ( temp highp float) +0:181 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:181 Constant: +0:181 0.200000 +0:182 'gl_Layer' ( flat in highp int Layer) +0:183 'gl_PrimitiveID' ( flat in highp int PrimitiveID) +0:184 Sequence +0:184 move second child to first child ( temp bool) +0:184 'f' ( temp bool) +0:184 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:191 Function Definition: foo_GS( ( global void) +0:191 Function Parameters: +0:193 Sequence +0:193 Sequence +0:193 move second child to first child ( temp highp int) +0:193 'l' ( temp highp int) +0:193 'gl_Layer' ( flat in highp int Layer) +0:194 Sequence +0:194 move second child to first child ( temp highp int) +0:194 'p' ( temp highp int) +0:194 'gl_PrimitiveID' ( flat in highp int PrimitiveID) +0:207 Function Definition: pfooBad( ( global void) +0:207 Function Parameters: +0:? Sequence +0:210 move second child to first child ( temp mediump 2-component vector of float) +0:210 'h' ( noContraction temp mediump 2-component vector of float) +0:210 fma ( global mediump 2-component vector of float) +0:210 'inf' ( smooth in mediump 2-component vector of float) +0:210 'ing' ( smooth in mediump 2-component vector of float) +0:210 'h' ( noContraction temp mediump 2-component vector of float) +0:211 textureGatherOffset ( global highp 4-component vector of float) +0:211 direct index ( temp highp sampler2D) +0:211 'sArray' ( uniform 4-element array of highp sampler2D) +0:211 Constant: +0:211 0 (const int) +0:211 Constant: +0:211 0.100000 +0:211 0.100000 +0:211 Convert float to int ( temp highp 2-component vector of int) +0:211 'inf' ( smooth in mediump 2-component vector of float) +0:212 textureGatherOffsets ( global highp 4-component vector of float) +0:212 direct index ( temp highp sampler2D) +0:212 'sArray' ( uniform 4-element array of highp sampler2D) +0:212 Constant: +0:212 0 (const int) +0:212 Constant: +0:212 0.100000 +0:212 0.100000 +0:212 Constant: +0:212 0 (const int) +0:212 0 (const int) +0:212 0 (const int) +0:212 0 (const int) +0:212 0 (const int) +0:212 0 (const int) +0:212 0 (const int) +0:212 0 (const int) +0:217 Function Definition: pfoo( ( global void) +0:217 Function Parameters: +0:? Sequence +0:220 move second child to first child ( temp mediump 2-component vector of float) +0:220 'h' ( noContraction temp mediump 2-component vector of float) +0:220 fma ( global mediump 2-component vector of float) +0:220 'inf' ( smooth in mediump 2-component vector of float) +0:220 'ing' ( smooth in mediump 2-component vector of float) +0:220 'h' ( noContraction temp mediump 2-component vector of float) +0:221 textureGatherOffset ( global highp 4-component vector of float) +0:221 direct index ( temp highp sampler2D) +0:221 'sArray' ( uniform 4-element array of highp sampler2D) +0:221 Constant: +0:221 0 (const int) +0:221 Constant: +0:221 0.100000 +0:221 0.100000 +0:221 Convert float to int ( temp highp 2-component vector of int) +0:221 'inf' ( smooth in mediump 2-component vector of float) +0:222 textureGatherOffsets ( global highp 4-component vector of float) +0:222 direct index ( temp highp sampler2D) +0:222 'sArray' ( uniform 4-element array of highp sampler2D) +0:222 Constant: +0:222 0 (const int) +0:222 Constant: +0:222 0.100000 +0:222 0.100000 +0:222 Constant: +0:222 0 (const int) +0:222 0 (const int) +0:222 0 (const int) +0:222 0 (const int) +0:222 0 (const int) +0:222 0 (const int) +0:222 0 (const int) +0:222 0 (const int) +0:223 textureGatherOffsets ( global highp 4-component vector of float) +0:223 direct index ( temp highp sampler2D) +0:223 'sArray' ( uniform 4-element array of highp sampler2D) +0:223 Constant: +0:223 0 (const int) +0:223 Constant: +0:223 0.100000 +0:223 0.100000 +0:223 'offsets' ( uniform 4-element array of mediump 2-component vector of int) +0:248 Function Definition: CAT( ( global void) +0:248 Function Parameters: +0:250 Sequence +0:250 Sequence +0:250 move second child to first child ( temp highp 4-component vector of float) +0:250 'b4' ( temp highp 4-component vector of float) +0:250 texture ( global highp 4-component vector of float) +0:250 'CA4' ( uniform highp samplerCubeArray) +0:250 Constant: +0:250 0.500000 +0:250 0.500000 +0:250 0.500000 +0:250 0.500000 +0:250 Constant: +0:250 0.240000 +0:251 Sequence +0:251 move second child to first child ( temp highp 4-component vector of int) +0:251 'b6' ( temp highp 4-component vector of int) +0:251 texture ( global highp 4-component vector of int) +0:251 'CA6' ( uniform highp isamplerCubeArray) +0:251 Constant: +0:251 0.500000 +0:251 0.500000 +0:251 0.500000 +0:251 0.500000 +0:251 Constant: +0:251 0.260000 +0:252 Sequence +0:252 move second child to first child ( temp highp 4-component vector of uint) +0:252 'b7' ( temp highp 4-component vector of uint) +0:252 texture ( global highp 4-component vector of uint) +0:252 'CA7' ( uniform highp usamplerCubeArray) +0:252 Constant: +0:252 0.500000 +0:252 0.500000 +0:252 0.500000 +0:252 0.500000 +0:252 Constant: +0:252 0.270000 +0:255 Function Definition: badSample( ( global void) +0:255 Function Parameters: +0:257 Sequence +0:257 Sequence +0:257 move second child to first child ( temp lowp int) +0:257 'a1' ( temp lowp int) +0:257 'gl_SampleID' ( flat in lowp int SampleId) +0:258 Sequence +0:258 move second child to first child ( temp mediump 2-component vector of float) +0:258 'a2' ( temp mediump 2-component vector of float) +0:258 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) +0:259 Sequence +0:259 move second child to first child ( temp highp int) +0:259 'a3' ( temp highp int) +0:259 direct index ( flat temp highp int SampleMaskIn) +0:259 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) +0:259 Constant: +0:259 0 (const int) +0:260 move second child to first child ( temp highp int) +0:260 direct index ( temp highp int SampleMaskIn) +0:260 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) +0:260 Constant: +0:260 0 (const int) +0:260 'a3' ( temp highp int) +0:261 Sequence +0:261 move second child to first child ( temp mediump int) +0:261 'n' ( temp mediump int) +0:261 'gl_NumSamples' ( uniform lowp int) +0:268 Function Definition: goodSample( ( global void) +0:268 Function Parameters: +0:270 Sequence +0:270 Sequence +0:270 move second child to first child ( temp lowp int) +0:270 'a1' ( temp lowp int) +0:270 'gl_SampleID' ( flat in lowp int SampleId) +0:271 Sequence +0:271 move second child to first child ( temp mediump 2-component vector of float) +0:271 'a2' ( temp mediump 2-component vector of float) +0:271 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) +0:272 Sequence +0:272 move second child to first child ( temp highp int) +0:272 'a3' ( temp highp int) +0:272 direct index ( flat temp highp int SampleMaskIn) +0:272 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) +0:272 Constant: +0:272 0 (const int) +0:273 move second child to first child ( temp highp int) +0:273 direct index ( temp highp int SampleMaskIn) +0:273 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) +0:273 Constant: +0:273 0 (const int) +0:273 'a3' ( temp highp int) +0:274 Sequence +0:274 move second child to first child ( temp mediump int) +0:274 'n1' ( temp mediump int) +0:274 Constant: +0:274 4 (const int) +0:275 Sequence +0:275 move second child to first child ( temp mediump int) +0:275 'n2' ( temp mediump int) +0:275 'gl_NumSamples' ( uniform lowp int) +0:283 Function Definition: badImageAtom( ( global void) +0:283 Function Parameters: +0:? Sequence +0:289 imageAtomicAdd ( global highp int) +0:289 'im2Di' (layout( r32i) uniform highp iimage2D) +0:289 'P' ( uniform mediump 2-component vector of int) +0:289 'dati' ( temp mediump int) +0:290 imageAtomicAdd ( global highp uint) +0:290 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:290 'P' ( uniform mediump 2-component vector of int) +0:290 'datu' ( temp mediump uint) +0:291 imageAtomicMin ( global highp int) +0:291 'im2Di' (layout( r32i) uniform highp iimage2D) +0:291 'P' ( uniform mediump 2-component vector of int) +0:291 'dati' ( temp mediump int) +0:292 imageAtomicMin ( global highp uint) +0:292 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:292 'P' ( uniform mediump 2-component vector of int) +0:292 'datu' ( temp mediump uint) +0:293 imageAtomicMax ( global highp int) +0:293 'im2Di' (layout( r32i) uniform highp iimage2D) +0:293 'P' ( uniform mediump 2-component vector of int) +0:293 'dati' ( temp mediump int) +0:294 imageAtomicMax ( global highp uint) +0:294 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:294 'P' ( uniform mediump 2-component vector of int) +0:294 'datu' ( temp mediump uint) +0:295 imageAtomicAnd ( global highp int) +0:295 'im2Di' (layout( r32i) uniform highp iimage2D) +0:295 'P' ( uniform mediump 2-component vector of int) +0:295 'dati' ( temp mediump int) +0:296 imageAtomicAnd ( global highp uint) +0:296 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:296 'P' ( uniform mediump 2-component vector of int) +0:296 'datu' ( temp mediump uint) +0:297 imageAtomicOr ( global highp int) +0:297 'im2Di' (layout( r32i) uniform highp iimage2D) +0:297 'P' ( uniform mediump 2-component vector of int) +0:297 'dati' ( temp mediump int) +0:298 imageAtomicOr ( global highp uint) +0:298 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:298 'P' ( uniform mediump 2-component vector of int) +0:298 'datu' ( temp mediump uint) +0:299 imageAtomicXor ( global highp int) +0:299 'im2Di' (layout( r32i) uniform highp iimage2D) +0:299 'P' ( uniform mediump 2-component vector of int) +0:299 'dati' ( temp mediump int) +0:300 imageAtomicXor ( global highp uint) +0:300 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:300 'P' ( uniform mediump 2-component vector of int) +0:300 'datu' ( temp mediump uint) +0:301 imageAtomicExchange ( global highp int) +0:301 'im2Di' (layout( r32i) uniform highp iimage2D) +0:301 'P' ( uniform mediump 2-component vector of int) +0:301 'dati' ( temp mediump int) +0:302 imageAtomicExchange ( global highp uint) +0:302 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:302 'P' ( uniform mediump 2-component vector of int) +0:302 'datu' ( temp mediump uint) +0:303 imageAtomicExchange ( global highp float) +0:303 'im2Df' (layout( r32f) uniform highp image2D) +0:303 'P' ( uniform mediump 2-component vector of int) +0:303 'datf' ( temp mediump float) +0:304 imageAtomicCompSwap ( global highp int) +0:304 'im2Di' (layout( r32i) uniform highp iimage2D) +0:304 'P' ( uniform mediump 2-component vector of int) +0:304 Constant: +0:304 3 (const int) +0:304 'dati' ( temp mediump int) +0:305 imageAtomicCompSwap ( global highp uint) +0:305 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:305 'P' ( uniform mediump 2-component vector of int) +0:305 Constant: +0:305 5 (const uint) +0:305 'datu' ( temp mediump uint) +0:316 Function Definition: goodImageAtom( ( global void) +0:316 Function Parameters: +0:? Sequence +0:322 imageAtomicAdd ( global highp int) +0:322 'im2Di' (layout( r32i) uniform highp iimage2D) +0:322 'P' ( uniform mediump 2-component vector of int) +0:322 'dati' ( temp mediump int) +0:323 imageAtomicAdd ( global highp uint) +0:323 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:323 'P' ( uniform mediump 2-component vector of int) +0:323 'datu' ( temp mediump uint) +0:324 imageAtomicMin ( global highp int) +0:324 'im2Di' (layout( r32i) uniform highp iimage2D) +0:324 'P' ( uniform mediump 2-component vector of int) +0:324 'dati' ( temp mediump int) +0:325 imageAtomicMin ( global highp uint) +0:325 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:325 'P' ( uniform mediump 2-component vector of int) +0:325 'datu' ( temp mediump uint) +0:326 imageAtomicMax ( global highp int) +0:326 'im2Di' (layout( r32i) uniform highp iimage2D) +0:326 'P' ( uniform mediump 2-component vector of int) +0:326 'dati' ( temp mediump int) +0:327 imageAtomicMax ( global highp uint) +0:327 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:327 'P' ( uniform mediump 2-component vector of int) +0:327 'datu' ( temp mediump uint) +0:328 imageAtomicAnd ( global highp int) +0:328 'im2Di' (layout( r32i) uniform highp iimage2D) +0:328 'P' ( uniform mediump 2-component vector of int) +0:328 'dati' ( temp mediump int) +0:329 imageAtomicAnd ( global highp uint) +0:329 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:329 'P' ( uniform mediump 2-component vector of int) +0:329 'datu' ( temp mediump uint) +0:330 imageAtomicOr ( global highp int) +0:330 'im2Di' (layout( r32i) uniform highp iimage2D) +0:330 'P' ( uniform mediump 2-component vector of int) +0:330 'dati' ( temp mediump int) +0:331 imageAtomicOr ( global highp uint) +0:331 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:331 'P' ( uniform mediump 2-component vector of int) +0:331 'datu' ( temp mediump uint) +0:332 imageAtomicXor ( global highp int) +0:332 'im2Di' (layout( r32i) uniform highp iimage2D) +0:332 'P' ( uniform mediump 2-component vector of int) +0:332 'dati' ( temp mediump int) +0:333 imageAtomicXor ( global highp uint) +0:333 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:333 'P' ( uniform mediump 2-component vector of int) +0:333 'datu' ( temp mediump uint) +0:334 imageAtomicExchange ( global highp int) +0:334 'im2Di' (layout( r32i) uniform highp iimage2D) +0:334 'P' ( uniform mediump 2-component vector of int) +0:334 'dati' ( temp mediump int) +0:335 imageAtomicExchange ( global highp uint) +0:335 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:335 'P' ( uniform mediump 2-component vector of int) +0:335 'datu' ( temp mediump uint) +0:336 imageAtomicExchange ( global highp float) +0:336 'im2Df' (layout( r32f) uniform highp image2D) +0:336 'P' ( uniform mediump 2-component vector of int) +0:336 'datf' ( temp mediump float) +0:337 imageAtomicCompSwap ( global highp int) +0:337 'im2Di' (layout( r32i) uniform highp iimage2D) +0:337 'P' ( uniform mediump 2-component vector of int) +0:337 Constant: +0:337 3 (const int) +0:337 'dati' ( temp mediump int) +0:338 imageAtomicCompSwap ( global highp uint) +0:338 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:338 'P' ( uniform mediump 2-component vector of int) +0:338 Constant: +0:338 5 (const uint) +0:338 'datu' ( temp mediump uint) +0:340 imageAtomicMax ( global highp int) +0:340 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) +0:340 'P' ( uniform mediump 2-component vector of int) +0:340 'dati' ( temp mediump int) +0:341 imageAtomicMax ( global highp uint) +0:341 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) +0:341 'P' ( uniform mediump 2-component vector of int) +0:341 'datu' ( temp mediump uint) +0:342 imageAtomicExchange ( global highp float) +0:342 'badIm2Df' (layout( rgba32f) uniform highp image2D) +0:342 'P' ( uniform mediump 2-component vector of int) +0:342 'datf' ( temp mediump float) +0:353 Function Definition: badInterp( ( global void) +0:353 Function Parameters: +0:355 Sequence +0:355 interpolateAtCentroid ( global mediump 2-component vector of float) +0:355 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:356 interpolateAtSample ( global mediump 2-component vector of float) +0:356 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:356 Constant: +0:356 1 (const int) +0:357 interpolateAtOffset ( global mediump 2-component vector of float) +0:357 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:357 Constant: +0:357 0.200000 +0:357 0.200000 +0:369 Function Definition: interp( ( global void) +0:369 Function Parameters: +0:? Sequence +0:376 move second child to first child ( temp mediump 2-component vector of float) +0:376 'res2' ( temp mediump 2-component vector of float) +0:376 interpolateAtCentroid ( global mediump 2-component vector of float) +0:376 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:377 move second child to first child ( temp mediump 4-component vector of float) +0:377 'res4' ( temp mediump 4-component vector of float) +0:377 interpolateAtCentroid ( global mediump 4-component vector of float) +0:377 'colorSampIn' ( smooth sample in mediump 4-component vector of float) +0:378 move second child to first child ( temp mediump 4-component vector of float) +0:378 'res4' ( temp mediump 4-component vector of float) +0:378 interpolateAtCentroid ( global mediump 4-component vector of float) +0:378 'colorfsi' ( flat sample in mediump 4-component vector of float) +0:379 move second child to first child ( temp mediump float) +0:379 'res' ( temp mediump float) +0:379 interpolateAtCentroid ( global mediump float) +0:379 'scalarIn' ( smooth in mediump float) +0:380 'res3' ( temp mediump 3-component vector of float) +0:381 move second child to first child ( temp mediump 3-component vector of float) +0:381 'res3' ( temp mediump 3-component vector of float) +0:381 interpolateAtCentroid ( global mediump 3-component vector of float) +0:381 direct index ( smooth sample temp mediump 3-component vector of float) +0:381 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:381 Constant: +0:381 2 (const int) +0:382 move second child to first child ( temp mediump 2-component vector of float) +0:382 'res2' ( temp mediump 2-component vector of float) +0:382 interpolateAtCentroid ( global mediump 2-component vector of float) +0:382 vector swizzle ( temp mediump 2-component vector of float) +0:382 direct index ( smooth sample temp mediump 3-component vector of float) +0:382 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:382 Constant: +0:382 2 (const int) +0:382 Sequence +0:382 Constant: +0:382 0 (const int) +0:382 Constant: +0:382 1 (const int) +0:384 'res3' ( temp mediump 3-component vector of float) +0:385 move second child to first child ( temp mediump 3-component vector of float) +0:385 'res3' ( temp mediump 3-component vector of float) +0:385 interpolateAtSample ( global mediump 3-component vector of float) +0:385 indirect index ( smooth sample temp mediump 3-component vector of float) +0:385 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:385 'i' ( uniform mediump int) +0:385 Constant: +0:385 0 (const int) +0:386 move second child to first child ( temp mediump 2-component vector of float) +0:386 'res2' ( temp mediump 2-component vector of float) +0:386 interpolateAtSample ( global mediump 2-component vector of float) +0:386 vector swizzle ( temp mediump 2-component vector of float) +0:386 direct index ( smooth sample temp mediump 3-component vector of float) +0:386 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:386 Constant: +0:386 2 (const int) +0:386 Sequence +0:386 Constant: +0:386 0 (const int) +0:386 Constant: +0:386 1 (const int) +0:386 Constant: +0:386 2 (const int) +0:387 move second child to first child ( temp mediump float) +0:387 'res' ( temp mediump float) +0:387 interpolateAtSample ( global mediump float) +0:387 'scalarIn' ( smooth in mediump float) +0:387 Constant: +0:387 1 (const int) +0:389 'res3' ( temp mediump 3-component vector of float) +0:390 move second child to first child ( temp mediump 3-component vector of float) +0:390 'res3' ( temp mediump 3-component vector of float) +0:390 interpolateAtOffset ( global mediump 3-component vector of float) +0:390 direct index ( smooth sample temp mediump 3-component vector of float) +0:390 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:390 Constant: +0:390 2 (const int) +0:390 Constant: +0:390 0.200000 +0:390 0.200000 +0:391 move second child to first child ( temp mediump 2-component vector of float) +0:391 'res2' ( temp mediump 2-component vector of float) +0:391 interpolateAtOffset ( global mediump 2-component vector of float) +0:391 vector swizzle ( temp mediump 2-component vector of float) +0:391 direct index ( smooth sample temp mediump 3-component vector of float) +0:391 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:391 Constant: +0:391 2 (const int) +0:391 Sequence +0:391 Constant: +0:391 0 (const int) +0:391 Constant: +0:391 1 (const int) +0:391 Constant: +0:391 0.200000 +0:391 0.200000 +0:392 move second child to first child ( temp mediump float) +0:392 'res' ( temp mediump float) +0:392 interpolateAtOffset ( global mediump float) +0:392 add ( temp mediump float) +0:392 'scalarIn' ( smooth in mediump float) +0:392 'scalarIn' ( smooth in mediump float) +0:392 Constant: +0:392 0.200000 +0:392 0.200000 +0:393 move second child to first child ( temp mediump float) +0:393 'res' ( temp mediump float) +0:393 interpolateAtOffset ( global mediump float) +0:393 'scalarIn' ( smooth in mediump float) +0:393 Constant: +0:393 0.200000 +0:393 0.200000 +0:396 move second child to first child ( temp mediump float) +0:396 'res' ( temp mediump float) +0:396 interpolateAtCentroid ( global mediump float) +0:396 'f' ( temp mediump float) +0:397 move second child to first child ( temp mediump 4-component vector of float) +0:397 'res4' ( temp mediump 4-component vector of float) +0:397 interpolateAtSample ( global mediump 4-component vector of float) +0:397 'outp' ( out mediump 4-component vector of float) +0:397 Constant: +0:397 0 (const int) +0:427 Function Definition: blendFoo( ( temp void) +0:427 Function Parameters: +0:428 Function Definition: blendFoo(vf3; ( global void) +0:428 Function Parameters: +0:428 'v' ( in mediump 3-component vector of float) +0:433 Function Definition: devi( ( global void) +0:433 Function Parameters: +0:435 Sequence +0:435 'gl_DeviceIndex' ( flat in highp int DeviceIndex) +0:436 'gl_ViewIndex' ( flat in highp int ViewIndex) +0:447 Function Definition: devie( ( global void) +0:447 Function Parameters: +0:449 Sequence +0:449 'gl_DeviceIndex' ( flat in highp int DeviceIndex) +0:450 'gl_ViewIndex' ( flat in highp int ViewIndex) +0:? Linker Objects +0:? 'gl_FragCoord' ( smooth in mediump 4-component vector of float) +0:? 'v3' (layout( location=2) smooth in mediump 3-component vector of float) +0:? 'yi' (layout( location=2) smooth in mediump 4X4 matrix of float) +0:? 'arrayedSampler' ( uniform 5-element array of highp sampler2D) +0:? 'usamp2d' ( uniform highp usampler2D) +0:? 'samp2dr' ( uniform mediump usampler2DRect) +0:? 'isamp2DA' ( uniform highp isampler2DArray) +0:? 'c2D' ( smooth in mediump 2-component vector of float) +0:? 'i' ( uniform mediump int) +0:? 'outp' ( out mediump 4-component vector of float) +0:? 's1' (layout( binding=3) uniform highp sampler2D) +0:? 's2' (layout( binding=3) uniform highp sampler2D) +0:? 'i2D' (layout( binding=2) writeonly uniform highp image2D) +0:? 'i3D' (layout( binding=4) readonly uniform mediump image3D) +0:? 'iCube' (layout( binding=5) uniform mediump imageCube) +0:? 'i2DA' (layout( binding=6) uniform mediump image2DArray) +0:? 'i2Dqualified' (layout( binding=6) coherent volatile restrict uniform mediump image2D) +0:? 'bbi' (layout( binding=1 column_major shared) uniform block{layout( column_major shared) uniform mediump int foo, layout( binding=2 column_major shared) uniform mediump float f}) +0:? 'centroidIn' ( centroid smooth in mediump 4-component vector of float) +0:? 'bigl' ( uniform mediump 4-component vector of float) +0:? 'bigout1' (layout( location=40) out mediump 4-component vector of float) +0:? 'bigout2' (layout( location=40) out mediump 4-component vector of float) +0:? 'neg' ( out mediump 4-component vector of float) +0:? 'b430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer mediump int i}) +0:? 'bshari' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int i}) +0:? 'smoothIn' ( smooth in mediump 4-component vector of float) +0:? 'flatIn' ( flat in mediump int) +0:? 's2dms' ( uniform mediump sampler2DMS) +0:? 'bout' ( out bool) +0:? 'imageOut' ( out highp image2D) +0:? 'mout' ( out mediump 2X3 matrix of float) +0:? 'inb' ( smooth in bool) +0:? 'ino' ( smooth in highp sampler2D) +0:? 'ina' ( smooth in 4-element array of mediump float) +0:? 'inaa' ( smooth in 4-element array of 2-element array of mediump float) +0:? 'ins' ( smooth in structure{ global mediump float f}) +0:? 'inasa' ( smooth in 4-element array of structure{ global mediump float f}) +0:? 'insa' ( smooth in 4-element array of structure{ global mediump float f}) +0:? 'inSA' ( smooth in structure{ global 4-element array of mediump float f}) +0:? 'inSS' ( smooth in structure{ global mediump float f, global structure{ global mediump float f} s}) +0:? 'outbinst' ( out block{ out mediump int a}) +0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) +0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) +0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:? 'inf' ( smooth in mediump 2-component vector of float) +0:? 'ing' ( smooth in mediump 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of highp sampler2D) +0:? 'sIndex' ( uniform mediump int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) +0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform mediump 2-component vector of int) +0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) +0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) +0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) +0:? 'colorSampInBad' ( smooth sample in mediump 4-component vector of float) +0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) +0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) +0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) +0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) +0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:? 'scalarIn' ( smooth in mediump float) +0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) +0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) +0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) +0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:? 'badout' ( out mediump 4-component vector of float) +0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers + +Shader version: 310 +Requested GL_EXT_device_group +Requested GL_EXT_multiview +Requested GL_EXT_shader_io_blocks +Requested GL_EXT_texture_cube_map_array +Requested GL_KHR_blend_equation_advanced +Requested GL_OES_geometry_shader +Requested GL_OES_gpu_shader5 +Requested GL_OES_sample_variables +Requested GL_OES_shader_image_atomic +Requested GL_OES_shader_io_blocks +Requested GL_OES_shader_multisample_interpolation +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +using early_fragment_tests +using depth_any +using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations +ERROR: node is still EOpNull! +0:21 Function Definition: main( ( global void) +0:21 Function Parameters: +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp highp 4-component vector of float) +0:23 'v' ( temp mediump 4-component vector of float) +0:23 texture ( global highp 4-component vector of float) +0:23 indirect index ( temp highp sampler2D) +0:23 'arrayedSampler' ( uniform 5-element array of highp sampler2D) +0:23 'i' ( uniform mediump int) +0:23 'c2D' ( smooth in mediump 2-component vector of float) +0:28 Sequence +0:28 move second child to first child ( temp highp 4-component vector of float) +0:28 'v4' ( temp mediump 4-component vector of float) +0:28 textureGather ( global highp 4-component vector of float) +0:28 direct index ( temp highp sampler2D) +0:28 'arrayedSampler' ( uniform 5-element array of highp sampler2D) +0:28 Constant: +0:28 0 (const int) +0:28 'c2D' ( smooth in mediump 2-component vector of float) +0:29 Sequence +0:29 move second child to first child ( temp highp 4-component vector of int) +0:29 'iv4' ( temp mediump 4-component vector of int) +0:29 textureGatherOffset ( global highp 4-component vector of int) +0:29 'isamp2DA' ( uniform highp isampler2DArray) +0:29 Constant: +0:29 0.100000 +0:29 0.100000 +0:29 0.100000 +0:29 Constant: +0:29 1 (const int) +0:29 1 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp highp 4-component vector of int) +0:30 'iv4' ( temp mediump 4-component vector of int) +0:30 textureGatherOffset ( global highp 4-component vector of int) +0:30 'isamp2DA' ( uniform highp isampler2DArray) +0:30 Constant: +0:30 0.100000 +0:30 0.100000 +0:30 0.100000 +0:30 Constant: +0:30 1 (const int) +0:30 1 (const int) +0:30 'i' ( uniform mediump int) +0:31 move second child to first child ( temp highp 4-component vector of int) +0:31 'iv4' ( temp mediump 4-component vector of int) +0:31 textureGatherOffset ( global highp 4-component vector of int) +0:31 'isamp2DA' ( uniform highp isampler2DArray) +0:31 Constant: +0:31 0.100000 +0:31 0.100000 +0:31 0.100000 +0:31 Constant: +0:31 1 (const int) +0:31 1 (const int) +0:31 Constant: +0:31 4 (const int) +0:32 move second child to first child ( temp highp 4-component vector of int) +0:32 'iv4' ( temp mediump 4-component vector of int) +0:32 textureGatherOffset ( global highp 4-component vector of int) +0:32 'isamp2DA' ( uniform highp isampler2DArray) +0:32 Constant: +0:32 0.100000 +0:32 0.100000 +0:32 0.100000 +0:32 Constant: +0:32 1 (const int) +0:32 1 (const int) +0:32 Constant: +0:32 3 (const int) +0:33 move second child to first child ( temp highp 4-component vector of int) +0:33 'iv4' ( temp mediump 4-component vector of int) +0:33 textureGatherOffset ( global highp 4-component vector of int) +0:33 'isamp2DA' ( uniform highp isampler2DArray) +0:33 Constant: +0:33 0.100000 +0:33 0.100000 +0:33 0.100000 +0:33 Constant: +0:33 0 (const int) +0:33 0 (const int) +0:34 move second child to first child ( temp highp 4-component vector of int) +0:34 'iv4' ( temp mediump 4-component vector of int) +0:34 textureGatherOffset ( global highp 4-component vector of int) +0:34 'isamp2DA' ( uniform highp isampler2DArray) +0:34 Constant: +0:34 0.100000 +0:34 0.100000 +0:34 0.100000 +0:34 Construct ivec2 ( temp highp 2-component vector of int) +0:34 'i' ( uniform mediump int) +0:? Linker Objects +0:? 'gl_FragCoord' ( smooth in mediump 4-component vector of float) +0:? 'v3' (layout( location=2) smooth in mediump 3-component vector of float) +0:? 'yi' (layout( location=2) smooth in mediump 4X4 matrix of float) +0:? 'arrayedSampler' ( uniform 5-element array of highp sampler2D) +0:? 'usamp2d' ( uniform highp usampler2D) +0:? 'samp2dr' ( uniform mediump usampler2DRect) +0:? 'isamp2DA' ( uniform highp isampler2DArray) +0:? 'c2D' ( smooth in mediump 2-component vector of float) +0:? 'i' ( uniform mediump int) +0:? 'outp' ( out mediump 4-component vector of float) +0:? 's1' (layout( binding=3) uniform highp sampler2D) +0:? 's2' (layout( binding=3) uniform highp sampler2D) +0:? 'i2D' (layout( binding=2) writeonly uniform highp image2D) +0:? 'i3D' (layout( binding=4) readonly uniform mediump image3D) +0:? 'iCube' (layout( binding=5) uniform mediump imageCube) +0:? 'i2DA' (layout( binding=6) uniform mediump image2DArray) +0:? 'i2Dqualified' (layout( binding=6) coherent volatile restrict uniform mediump image2D) +0:? 'bbi' (layout( binding=1 column_major shared) uniform block{layout( column_major shared) uniform mediump int foo, layout( binding=2 column_major shared) uniform mediump float f}) +0:? 'centroidIn' ( centroid smooth in mediump 4-component vector of float) +0:? 'bigl' ( uniform mediump 4-component vector of float) +0:? 'bigout1' (layout( location=40) out mediump 4-component vector of float) +0:? 'bigout2' (layout( location=40) out mediump 4-component vector of float) +0:? 'neg' ( out mediump 4-component vector of float) +0:? 'b430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer mediump int i}) +0:? 'bshari' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int i}) +0:? 'smoothIn' ( smooth in mediump 4-component vector of float) +0:? 'flatIn' ( flat in mediump int) +0:? 's2dms' ( uniform mediump sampler2DMS) +0:? 'bout' ( out bool) +0:? 'imageOut' ( out highp image2D) +0:? 'mout' ( out mediump 2X3 matrix of float) +0:? 'inb' ( smooth in bool) +0:? 'ino' ( smooth in highp sampler2D) +0:? 'ina' ( smooth in 4-element array of mediump float) +0:? 'inaa' ( smooth in 4-element array of 2-element array of mediump float) +0:? 'ins' ( smooth in structure{ global mediump float f}) +0:? 'inasa' ( smooth in 4-element array of structure{ global mediump float f}) +0:? 'insa' ( smooth in 4-element array of structure{ global mediump float f}) +0:? 'inSA' ( smooth in structure{ global 4-element array of mediump float f}) +0:? 'inSS' ( smooth in structure{ global mediump float f, global structure{ global mediump float f} s}) +0:? 'outbinst' ( out block{ out mediump int a}) +0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) +0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) +0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:? 'inf' ( smooth in mediump 2-component vector of float) +0:? 'ing' ( smooth in mediump 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of highp sampler2D) +0:? 'sIndex' ( uniform mediump int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn) +0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform mediump 2-component vector of int) +0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) +0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) +0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) +0:? 'colorSampInBad' ( smooth sample in mediump 4-component vector of float) +0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) +0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) +0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) +0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) +0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:? 'scalarIn' ( smooth in mediump float) +0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) +0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) +0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) +0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:? 'badout' ( out mediump 4-component vector of float) +0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/310.geom.out b/deps/glslang/glslang/Test/baseResults/310.geom.out new file mode 100644 index 0000000000..b0dabc3b20 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310.geom.out @@ -0,0 +1,277 @@ +310.geom +ERROR: 0:29: 'fromVertex' : block instance name redefinition +ERROR: 0:33: 'fromVertex' : redefinition +ERROR: 0:35: 'fooC' : block instance name redefinition +ERROR: 0:43: 'EmitStreamVertex' : no matching overloaded function found +ERROR: 0:44: 'EndStreamPrimitive' : no matching overloaded function found +ERROR: 0:47: 'gl_ClipDistance' : undeclared identifier +ERROR: 0:47: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector +ERROR: 0:48: 'gl_ClipDistance' : no such field in structure +ERROR: 0:48: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:47: 'assign' : l-value required (can't modify a const) +ERROR: 0:55: 'selecting output stream' : not supported with this profile: es +ERROR: 0:62: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices +ERROR: 0:62: 'max_vertices' : cannot change previously set layout value +ERROR: 0:63: 'max_vertices' : can only apply to a standalone qualifier +ERROR: 0:68: 'points' : cannot change previously set output primitive +ERROR: 0:69: 'points' : cannot change previously set output primitive +ERROR: 0:70: 'triangle_strip' : cannot apply to input +ERROR: 0:71: 'triangle_strip' : cannot apply to: uniform +ERROR: 0:72: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:73: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:74: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:76: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:77: 'max_vertices' : can only apply to a standalone qualifier +ERROR: 0:78: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:81: 'lines' : cannot apply to 'out' +ERROR: 0:83: 'triangles' : cannot change previously set input primitive +ERROR: 0:84: 'triangles_adjacency' : cannot change previously set input primitive +ERROR: 0:116: 'gl_ViewportIndex' : undeclared identifier +ERROR: 0:117: 'gl_MaxViewports' : undeclared identifier +ERROR: 0:123: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad +ERROR: 0:124: 'in' : type must be an array: nonArrayed +ERROR: 0:128: 'sample' : Reserved word. +ERROR: 0:132: 'component' : not supported with this profile: es +ERROR: 0:136: 'gl_MaxGeometryVaryingComponents' : undeclared identifier +ERROR: 0:137: 'gl_VerticesIn' : undeclared identifier +ERROR: 0:142: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_geometry_point_size +GL_OES_geometry_point_size +ERROR: 0:143: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_geometry_point_size +GL_OES_geometry_point_size +ERROR: 37 compilation errors. No code generated. + + +Shader version: 310 +Requested GL_EXT_geometry_shader +Requested GL_EXT_shader_io_blocks +Requested GL_OES_geometry_point_size +invocations = 4 +max_vertices = 200 +input primitive = lines_adjacency +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:39 Function Definition: main( ( global void) +0:39 Function Parameters: +0:41 Sequence +0:41 EmitVertex ( global void) +0:42 EndPrimitive ( global void) +0:43 Constant: +0:43 0.000000 +0:44 Constant: +0:44 0.000000 +0:46 move second child to first child ( temp mediump 3-component vector of float) +0:46 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) +0:46 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:46 Constant: +0:46 0 (const uint) +0:46 color: direct index for structure ( in mediump 3-component vector of float) +0:46 direct index ( temp block{ in mediump 3-component vector of float color}) +0:46 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 0 (const int) +0:47 move second child to first child ( temp float) +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) +0:49 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:49 Constant: +0:49 0 (const uint) +0:49 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:49 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:49 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 0 (const int) +0:51 move second child to first child ( temp highp int) +0:51 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) +0:51 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) +0:52 move second child to first child ( temp highp int) +0:52 'gl_Layer' (layout( stream=0) out highp int Layer) +0:52 Constant: +0:52 2 (const int) +0:63 Function Definition: foo(i1; ( global void) +0:63 Function Parameters: +0:63 'a' ( in highp int) +0:65 Sequence +0:65 move second child to first child ( temp mediump 4-component vector of float) +0:65 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float) +0:65 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:114 Function Definition: fooe1( ( global void) +0:114 Function Parameters: +0:116 Sequence +0:116 'gl_ViewportIndex' ( temp float) +0:117 'gl_MaxViewports' ( temp float) +0:118 Constant: +0:118 4 (const int) +0:119 Sequence +0:119 move second child to first child ( temp highp int) +0:119 'inv' ( temp highp int) +0:119 'gl_InvocationID' ( in highp int InvocationID) +0:134 Function Definition: notHere( ( global void) +0:134 Function Parameters: +0:136 Sequence +0:136 'gl_MaxGeometryVaryingComponents' ( temp float) +0:137 'gl_VerticesIn' ( temp float) +0:140 Function Definition: pointSize1( ( global void) +0:140 Function Parameters: +0:142 Sequence +0:142 Sequence +0:142 move second child to first child ( temp highp float) +0:142 'ps' ( temp highp float) +0:142 gl_PointSize: direct index for structure ( in highp float PointSize) +0:142 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:142 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:142 Constant: +0:142 3 (const int) +0:142 Constant: +0:142 1 (const int) +0:143 move second child to first child ( temp highp float) +0:143 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) +0:143 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:143 Constant: +0:143 1 (const uint) +0:143 'ps' ( temp highp float) +0:148 Function Definition: pointSize2( ( global void) +0:148 Function Parameters: +0:150 Sequence +0:150 Sequence +0:150 move second child to first child ( temp highp float) +0:150 'ps' ( temp highp float) +0:150 gl_PointSize: direct index for structure ( in highp float PointSize) +0:150 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:150 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:150 Constant: +0:150 3 (const int) +0:150 Constant: +0:150 1 (const int) +0:151 move second child to first child ( temp highp float) +0:151 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) +0:151 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:151 Constant: +0:151 1 (const uint) +0:151 'ps' ( temp highp float) +0:? Linker Objects +0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) +0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) +0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) +0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) +0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) +0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) +0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) +0:? 'insn' ( in 4-element array of block{ in highp int a15}) +0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) +0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) +0:? 'summ' ( const highp int) +0:? 2752 (const int) +0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) +0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) +0:? 'nonArrayed' ( in mediump 4-component vector of float) +0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) +0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) +0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) +0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) +0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) + + +Linked geometry stage: + + +Shader version: 310 +Requested GL_EXT_geometry_shader +Requested GL_EXT_shader_io_blocks +Requested GL_OES_geometry_point_size +invocations = 4 +max_vertices = 200 +input primitive = lines_adjacency +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:39 Function Definition: main( ( global void) +0:39 Function Parameters: +0:41 Sequence +0:41 EmitVertex ( global void) +0:42 EndPrimitive ( global void) +0:43 Constant: +0:43 0.000000 +0:44 Constant: +0:44 0.000000 +0:46 move second child to first child ( temp mediump 3-component vector of float) +0:46 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) +0:46 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:46 Constant: +0:46 0 (const uint) +0:46 color: direct index for structure ( in mediump 3-component vector of float) +0:46 direct index ( temp block{ in mediump 3-component vector of float color}) +0:46 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 0 (const int) +0:47 move second child to first child ( temp float) +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 move second child to first child ( temp highp 4-component vector of float) +0:49 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) +0:49 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:49 Constant: +0:49 0 (const uint) +0:49 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:49 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:49 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 0 (const int) +0:51 move second child to first child ( temp highp int) +0:51 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) +0:51 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) +0:52 move second child to first child ( temp highp int) +0:52 'gl_Layer' (layout( stream=0) out highp int Layer) +0:52 Constant: +0:52 2 (const int) +0:? Linker Objects +0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) +0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) +0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) +0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) +0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) +0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) +0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) +0:? 'insn' ( in 4-element array of block{ in highp int a15}) +0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) +0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) +0:? 'summ' ( const highp int) +0:? 2752 (const int) +0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) +0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) +0:? 'nonArrayed' ( in mediump 4-component vector of float) +0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) +0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) +0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) +0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) +0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) + diff --git a/deps/glslang/glslang/Test/baseResults/310.tesc.out b/deps/glslang/glslang/Test/baseResults/310.tesc.out new file mode 100644 index 0000000000..433a7dc15d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310.tesc.out @@ -0,0 +1,542 @@ +310.tesc +ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:12: 'patch' : can only use on output in tessellation-control shader +ERROR: 0:26: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:27: 'gl_ClipDistance' : no such field in structure +ERROR: 0:27: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:34: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:35: 'gl_ClipDistance' : no such field in structure +ERROR: 0:35: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:35: 'assign' : l-value required (can't modify a const) +ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:43: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:48: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:53: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:56: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:63: '' : tessellation control barrier() cannot be placed after a return from main() +ERROR: 0:66: 'vertices' : can only apply to 'out' +ERROR: 0:67: 'vertices' : cannot change previously set layout value +ERROR: 0:71: '[' : array index out of range '4' +ERROR: 0:73: '' : tessellation control barrier() must be in main() +ERROR: 0:76: 'in' : type must be an array: ina +ERROR: 0:78: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:80: '' : array size required +ERROR: 0:86: 'location' : overlapping use of location 4 +ERROR: 0:90: 'location' : overlapping use of location 4 +ERROR: 0:94: 'precise' : Reserved word. +ERROR: 0:94: 'precise' : not supported for this version or the enabled extensions +ERROR: 0:95: 'fma' : required extension not requested: Possible extensions include: +GL_EXT_gpu_shader5 +GL_OES_gpu_shader5 +ERROR: 0:104: 'sample' : Reserved word. +ERROR: 0:106: 'vertices' : can only apply to a standalone qualifier +ERROR: 0:107: 'vertices' : inconsistent output number of vertices for array size of misSized +ERROR: 0:133: 'gl_BoundingBoxOES' : required extension not requested: Possible extensions include: +GL_EXT_primitive_bounding_box +GL_OES_primitive_bounding_box +ERROR: 0:142: '[' : array index out of range '2' +ERROR: 0:145: '' : array size required +ERROR: 0:161: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:162: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:165: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 38 compilation errors. No code generated. + + +Shader version: 310 +Requested GL_ARB_separate_shader_objects +Requested GL_OES_gpu_shader5 +Requested GL_OES_primitive_bounding_box +Requested GL_OES_shader_io_blocks +Requested GL_OES_tessellation_point_size +Requested GL_OES_tessellation_shader +vertices = 4 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Barrier ( global void) +0:19 Sequence +0:19 move second child to first child ( temp highp int) +0:19 'a' ( temp highp int) +0:19 Constant: +0:19 5392 (const int) +0:25 Sequence +0:25 move second child to first child ( temp highp 4-component vector of float) +0:25 'p' ( temp highp 4-component vector of float) +0:25 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:25 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:25 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 0 (const int) +0:26 Sequence +0:26 move second child to first child ( temp highp float) +0:26 'ps' ( temp highp float) +0:26 gl_PointSize: direct index for structure ( in highp float PointSize) +0:26 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:26 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 1 (const int) +0:27 Sequence +0:27 move second child to first child ( temp highp float) +0:27 'cd' ( temp highp float) +0:27 Constant: +0:27 0.000000 +0:29 Sequence +0:29 move second child to first child ( temp highp int) +0:29 'pvi' ( temp highp int) +0:29 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:30 Sequence +0:30 move second child to first child ( temp highp int) +0:30 'pid' ( temp highp int) +0:30 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:31 Sequence +0:31 move second child to first child ( temp highp int) +0:31 'iid' ( temp highp int) +0:31 'gl_InvocationID' ( in highp int InvocationID) +0:33 move second child to first child ( temp highp 4-component vector of float) +0:33 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:33 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:33 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:33 'gl_InvocationID' ( in highp int InvocationID) +0:33 Constant: +0:33 0 (const int) +0:33 'p' ( temp highp 4-component vector of float) +0:34 move second child to first child ( temp highp float) +0:34 gl_PointSize: direct index for structure ( out highp float PointSize) +0:34 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:34 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:34 'gl_InvocationID' ( in highp int InvocationID) +0:34 Constant: +0:34 1 (const int) +0:34 'ps' ( temp highp float) +0:35 move second child to first child ( temp highp float) +0:35 Constant: +0:35 0.000000 +0:35 'cd' ( temp highp float) +0:37 move second child to first child ( temp highp float) +0:37 direct index ( patch temp highp float TessLevelOuter) +0:37 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter) +0:37 Constant: +0:37 3 (const int) +0:37 Constant: +0:37 3.200000 +0:38 move second child to first child ( temp highp float) +0:38 direct index ( patch temp highp float TessLevelInner) +0:38 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner) +0:38 Constant: +0:38 1 (const int) +0:38 Constant: +0:38 1.300000 +0:40 Test condition and select ( temp void) +0:40 Condition +0:40 Compare Greater Than ( temp bool) +0:40 'a' ( temp highp int) +0:40 Constant: +0:40 10 (const int) +0:40 true case +0:41 Barrier ( global void) +0:40 false case +0:43 Barrier ( global void) +0:45 Barrier ( global void) +0:49 Loop with condition not tested first +0:49 Loop Condition +0:49 Compare Greater Than ( temp bool) +0:49 'a' ( temp highp int) +0:49 Constant: +0:49 10 (const int) +0:49 Loop Body +0:48 Sequence +0:48 Barrier ( global void) +0:51 switch +0:51 condition +0:51 'a' ( temp highp int) +0:51 body +0:51 Sequence +0:52 default: +0:? Sequence +0:53 Barrier ( global void) +0:54 Branch: Break +0:56 Test condition and select ( temp highp int) +0:56 Condition +0:56 Compare Less Than ( temp bool) +0:56 'a' ( temp highp int) +0:56 Constant: +0:56 12 (const int) +0:56 true case +0:56 'a' ( temp highp int) +0:56 false case +0:56 Comma ( temp highp int) +0:56 Barrier ( global void) +0:56 'a' ( temp highp int) +0:58 Sequence +0:58 Barrier ( global void) +0:61 Branch: Return +0:63 Barrier ( global void) +0:69 Function Definition: foo( ( global void) +0:69 Function Parameters: +0:71 Sequence +0:71 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:71 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:71 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:71 Constant: +0:71 4 (const int) +0:71 Constant: +0:71 0 (const int) +0:73 Barrier ( global void) +0:92 Function Definition: foop( ( global void) +0:92 Function Parameters: +0:? Sequence +0:95 move second child to first child ( temp highp float) +0:95 'd' ( noContraction temp highp float) +0:95 fma ( global highp float) +0:95 'd' ( noContraction temp highp float) +0:95 'd' ( noContraction temp highp float) +0:95 'd' ( noContraction temp highp float) +0:112 Function Definition: pointSize2( ( global void) +0:112 Function Parameters: +0:114 Sequence +0:114 Sequence +0:114 move second child to first child ( temp highp float) +0:114 'ps' ( temp highp float) +0:114 gl_PointSize: direct index for structure ( in highp float PointSize) +0:114 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:114 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:114 Constant: +0:114 1 (const int) +0:114 Constant: +0:114 1 (const int) +0:115 move second child to first child ( temp highp float) +0:115 gl_PointSize: direct index for structure ( out highp float PointSize) +0:115 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:115 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:115 'gl_InvocationID' ( in highp int InvocationID) +0:115 Constant: +0:115 1 (const int) +0:115 'ps' ( temp highp float) +0:122 Function Definition: goodfoop( ( global void) +0:122 Function Parameters: +0:? Sequence +0:126 multiply second child into first child ( temp highp 3-component vector of float) +0:126 'pv3' ( noContraction temp highp 3-component vector of float) +0:126 'pv3' ( noContraction temp highp 3-component vector of float) +0:127 move second child to first child ( temp highp 3-component vector of float) +0:127 'pv3' ( noContraction temp highp 3-component vector of float) +0:127 fma ( global highp 3-component vector of float) +0:127 'pv3' ( noContraction temp highp 3-component vector of float) +0:127 'pv3' ( noContraction temp highp 3-component vector of float) +0:127 'pv3' ( noContraction temp highp 3-component vector of float) +0:128 move second child to first child ( temp highp float) +0:128 'd' ( noContraction temp highp float) +0:128 fma ( global highp float) +0:128 'd' ( noContraction temp highp float) +0:128 'd' ( noContraction temp highp float) +0:128 'd' ( noContraction temp highp float) +0:131 Function Definition: bbBad( ( global void) +0:131 Function Parameters: +0:133 Sequence +0:133 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:138 Function Definition: bb( ( global void) +0:138 Function Parameters: +0:140 Sequence +0:140 move second child to first child ( temp highp 4-component vector of float) +0:140 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:140 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:140 Constant: +0:140 0 (const int) +0:140 Constant: +0:140 0.000000 +0:140 0.000000 +0:140 0.000000 +0:140 0.000000 +0:141 move second child to first child ( temp highp 4-component vector of float) +0:141 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:141 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:141 Constant: +0:141 1 (const int) +0:141 Constant: +0:141 1.000000 +0:141 1.000000 +0:141 1.000000 +0:141 1.000000 +0:142 move second child to first child ( temp highp 4-component vector of float) +0:142 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:142 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:142 Constant: +0:142 2 (const int) +0:142 Constant: +0:142 2.000000 +0:142 2.000000 +0:142 2.000000 +0:142 2.000000 +0:153 Function Definition: outputtingOutparam(i1; ( global void) +0:153 Function Parameters: +0:153 'a' ( out highp int) +0:155 Sequence +0:155 move second child to first child ( temp highp int) +0:155 'a' ( out highp int) +0:155 Constant: +0:155 2 (const int) +0:158 Function Definition: outputting( ( global void) +0:158 Function Parameters: +0:160 Sequence +0:160 move second child to first child ( temp highp int) +0:160 indirect index ( temp highp int) +0:160 'outa' ( out 4-element array of highp int) +0:160 'gl_InvocationID' ( in highp int InvocationID) +0:160 Constant: +0:160 2 (const int) +0:161 move second child to first child ( temp highp int) +0:161 direct index ( temp highp int) +0:161 'outa' ( out 4-element array of highp int) +0:161 Constant: +0:161 1 (const int) +0:161 Constant: +0:161 2 (const int) +0:162 move second child to first child ( temp highp 4-component vector of float) +0:162 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:162 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:162 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 1.000000 +0:162 1.000000 +0:162 1.000000 +0:162 1.000000 +0:163 direct index ( temp highp int) +0:163 'outa' ( out 4-element array of highp int) +0:163 Constant: +0:163 1 (const int) +0:164 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:164 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:164 Constant: +0:164 0 (const int) +0:165 Function Call: outputtingOutparam(i1; ( global void) +0:165 direct index ( temp highp int) +0:165 'outa' ( out 4-element array of highp int) +0:165 Constant: +0:165 0 (const int) +0:166 Function Call: outputtingOutparam(i1; ( global void) +0:166 indirect index ( temp highp int) +0:166 'outa' ( out 4-element array of highp int) +0:166 'gl_InvocationID' ( in highp int InvocationID) +0:167 move second child to first child ( temp highp float) +0:167 f: direct index for structure ( out highp float) +0:167 direct index ( patch temp block{ out highp float f}) +0:167 'patchIName' ( patch out 4-element array of block{ out highp float f}) +0:167 Constant: +0:167 1 (const int) +0:167 Constant: +0:167 0 (const int) +0:167 Constant: +0:167 3.140000 +0:168 move second child to first child ( temp highp int) +0:168 indirect index ( temp highp int) +0:168 'outa' ( out 4-element array of highp int) +0:168 'gl_InvocationID' ( in highp int InvocationID) +0:168 Constant: +0:168 2 (const int) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:? 'outa' ( out 4-element array of highp int) +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'implA' ( patch out unsized 1-element array of highp float) +0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch out block{ out highp int a}) +0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float) +0:? 'badlay' ( out 4-element array of highp float) +0:? 'misSized' ( out 5-element array of highp float) +0:? 'okaySize' ( out 4-element array of highp float) +0:? 'pv3' ( noContraction temp highp 3-component vector of float) +0:? 'badpatchIName' ( patch out unsized 1-element array of block{ out highp float f}) +0:? 'patchIName' ( patch out 4-element array of block{ out highp float f}) + + +Linked tessellation control stage: + + +Shader version: 310 +Requested GL_ARB_separate_shader_objects +Requested GL_OES_gpu_shader5 +Requested GL_OES_primitive_bounding_box +Requested GL_OES_shader_io_blocks +Requested GL_OES_tessellation_point_size +Requested GL_OES_tessellation_shader +vertices = 4 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Barrier ( global void) +0:19 Sequence +0:19 move second child to first child ( temp highp int) +0:19 'a' ( temp highp int) +0:19 Constant: +0:19 5392 (const int) +0:25 Sequence +0:25 move second child to first child ( temp highp 4-component vector of float) +0:25 'p' ( temp highp 4-component vector of float) +0:25 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:25 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:25 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 0 (const int) +0:26 Sequence +0:26 move second child to first child ( temp highp float) +0:26 'ps' ( temp highp float) +0:26 gl_PointSize: direct index for structure ( in highp float PointSize) +0:26 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:26 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 1 (const int) +0:27 Sequence +0:27 move second child to first child ( temp highp float) +0:27 'cd' ( temp highp float) +0:27 Constant: +0:27 0.000000 +0:29 Sequence +0:29 move second child to first child ( temp highp int) +0:29 'pvi' ( temp highp int) +0:29 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:30 Sequence +0:30 move second child to first child ( temp highp int) +0:30 'pid' ( temp highp int) +0:30 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:31 Sequence +0:31 move second child to first child ( temp highp int) +0:31 'iid' ( temp highp int) +0:31 'gl_InvocationID' ( in highp int InvocationID) +0:33 move second child to first child ( temp highp 4-component vector of float) +0:33 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:33 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:33 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:33 'gl_InvocationID' ( in highp int InvocationID) +0:33 Constant: +0:33 0 (const int) +0:33 'p' ( temp highp 4-component vector of float) +0:34 move second child to first child ( temp highp float) +0:34 gl_PointSize: direct index for structure ( out highp float PointSize) +0:34 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:34 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:34 'gl_InvocationID' ( in highp int InvocationID) +0:34 Constant: +0:34 1 (const int) +0:34 'ps' ( temp highp float) +0:35 move second child to first child ( temp highp float) +0:35 Constant: +0:35 0.000000 +0:35 'cd' ( temp highp float) +0:37 move second child to first child ( temp highp float) +0:37 direct index ( patch temp highp float TessLevelOuter) +0:37 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter) +0:37 Constant: +0:37 3 (const int) +0:37 Constant: +0:37 3.200000 +0:38 move second child to first child ( temp highp float) +0:38 direct index ( patch temp highp float TessLevelInner) +0:38 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner) +0:38 Constant: +0:38 1 (const int) +0:38 Constant: +0:38 1.300000 +0:40 Test condition and select ( temp void) +0:40 Condition +0:40 Compare Greater Than ( temp bool) +0:40 'a' ( temp highp int) +0:40 Constant: +0:40 10 (const int) +0:40 true case +0:41 Barrier ( global void) +0:40 false case +0:43 Barrier ( global void) +0:45 Barrier ( global void) +0:49 Loop with condition not tested first +0:49 Loop Condition +0:49 Compare Greater Than ( temp bool) +0:49 'a' ( temp highp int) +0:49 Constant: +0:49 10 (const int) +0:49 Loop Body +0:48 Sequence +0:48 Barrier ( global void) +0:51 switch +0:51 condition +0:51 'a' ( temp highp int) +0:51 body +0:51 Sequence +0:52 default: +0:? Sequence +0:53 Barrier ( global void) +0:54 Branch: Break +0:56 Test condition and select ( temp highp int) +0:56 Condition +0:56 Compare Less Than ( temp bool) +0:56 'a' ( temp highp int) +0:56 Constant: +0:56 12 (const int) +0:56 true case +0:56 'a' ( temp highp int) +0:56 false case +0:56 Comma ( temp highp int) +0:56 Barrier ( global void) +0:56 'a' ( temp highp int) +0:58 Sequence +0:58 Barrier ( global void) +0:61 Branch: Return +0:63 Barrier ( global void) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:? 'outa' ( out 4-element array of highp int) +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'implA' ( patch out 1-element array of highp float) +0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch out block{ out highp int a}) +0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float) +0:? 'badlay' ( out 4-element array of highp float) +0:? 'misSized' ( out 5-element array of highp float) +0:? 'okaySize' ( out 4-element array of highp float) +0:? 'pv3' ( noContraction temp highp 3-component vector of float) +0:? 'badpatchIName' ( patch out 1-element array of block{ out highp float f}) +0:? 'patchIName' ( patch out 4-element array of block{ out highp float f}) + diff --git a/deps/glslang/glslang/Test/baseResults/310.tese.out b/deps/glslang/glslang/Test/baseResults/310.tese.out new file mode 100644 index 0000000000..9c7c679daf --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310.tese.out @@ -0,0 +1,300 @@ +310.tese +ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:9: 'triangles' : cannot change previously set input primitive +ERROR: 0:10: 'isolines' : cannot change previously set input primitive +ERROR: 0:12: 'ccw' : cannot change previously set vertex order +ERROR: 0:16: 'equal_spacing' : cannot change previously set vertex spacing +ERROR: 0:17: 'fractional_even_spacing' : cannot change previously set vertex spacing +ERROR: 0:22: 'patch' : can only use on input in tessellation-evaluation shader +ERROR: 0:26: 'barrier' : no matching overloaded function found +ERROR: 0:37: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:38: 'gl_ClipDistance' : no such field in structure +ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:47: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:48: 'gl_ClipDistance' : undeclared identifier +ERROR: 0:48: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector +ERROR: 0:48: 'assign' : l-value required (can't modify a const) +ERROR: 0:51: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:52: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:53: 'noperspective' : Reserved word. +ERROR: 0:53: 'noperspective' : not supported for this version or the enabled extensions +ERROR: 0:53: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:54: 'sample' : Reserved word. +ERROR: 0:54: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:63: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:68: 'quads' : cannot apply to 'out' +ERROR: 0:68: 'cw' : can only apply to 'in' +ERROR: 0:69: 'triangles' : cannot apply to 'out' +ERROR: 0:70: 'isolines' : cannot apply to 'out' +ERROR: 0:71: 'cw' : can only apply to 'in' +ERROR: 0:72: 'fractional_odd_spacing' : can only apply to 'in' +ERROR: 0:73: 'equal_spacing' : can only apply to 'in' +ERROR: 0:74: 'fractional_even_spacing' : can only apply to 'in' +ERROR: 0:75: 'point_mode' : can only apply to 'in' +ERROR: 0:77: 'in' : type must be an array: ina +ERROR: 0:79: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:82: 'in' : type must be an array: bla +ERROR: 0:90: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:100: 'location' : overlapping use of location 24 +ERROR: 0:103: 'location' : overlapping use of location 24 +ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved +ERROR: 0:113: 'sample' : Reserved word. +ERROR: 0:119: 'gl_PointSize' : no such field in structure +ERROR: 0:119: '=' : cannot convert from ' temp block{ in highp 4-component vector of float Position gl_Position}' to ' temp highp float' +ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier +ERROR: 43 compilation errors. No code generated. + + +Shader version: 310 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_primitive_bounding_box +Requested GL_EXT_shader_io_blocks +Requested GL_EXT_tessellation_shader +Requested GL_OES_shader_io_blocks +Requested GL_OES_tessellation_point_size +Requested GL_OES_tessellation_shader +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:24 Function Definition: main( ( global void) +0:24 Function Parameters: +0:26 Sequence +0:26 Constant: +0:26 0.000000 +0:28 Sequence +0:28 move second child to first child ( temp highp int) +0:28 'a' ( temp highp int) +0:28 Constant: +0:28 1512 (const int) +0:36 Sequence +0:36 move second child to first child ( temp highp 4-component vector of float) +0:36 'p' ( temp highp 4-component vector of float) +0:36 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:36 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:36 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp highp float) +0:37 'ps' ( temp highp float) +0:37 gl_PointSize: direct index for structure ( in highp float PointSize) +0:37 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:37 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child ( temp highp float) +0:38 'cd' ( temp highp float) +0:38 Constant: +0:38 0.000000 +0:40 Sequence +0:40 move second child to first child ( temp highp int) +0:40 'pvi' ( temp highp int) +0:40 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:41 Sequence +0:41 move second child to first child ( temp highp int) +0:41 'pid' ( temp highp int) +0:41 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:42 Sequence +0:42 move second child to first child ( temp highp 3-component vector of float) +0:42 'tc' ( temp highp 3-component vector of float) +0:42 'gl_TessCoord' ( in highp 3-component vector of float TessCoord) +0:43 Sequence +0:43 move second child to first child ( temp highp float) +0:43 'tlo' ( temp highp float) +0:43 direct index ( patch temp highp float TessLevelOuter) +0:43 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter) +0:43 Constant: +0:43 3 (const int) +0:44 Sequence +0:44 move second child to first child ( temp highp float) +0:44 'tli' ( temp highp float) +0:44 direct index ( patch temp highp float TessLevelInner) +0:44 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner) +0:44 Constant: +0:44 1 (const int) +0:46 move second child to first child ( temp highp 4-component vector of float) +0:46 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:46 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:46 Constant: +0:46 0 (const uint) +0:46 'p' ( temp highp 4-component vector of float) +0:47 move second child to first child ( temp highp float) +0:47 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) +0:47 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:47 Constant: +0:47 1 (const uint) +0:47 'ps' ( temp highp float) +0:48 move second child to first child ( temp highp float) +0:48 Constant: +0:48 0.000000 +0:48 'cd' ( temp highp float) +0:117 Function Definition: pointSize2( ( global void) +0:117 Function Parameters: +0:? Sequence +0:120 move second child to first child ( temp highp float) +0:120 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) +0:120 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:120 Constant: +0:120 1 (const uint) +0:120 'ps' ( temp highp float) +0:125 Function Definition: bbbad( ( global void) +0:125 Function Parameters: +0:127 Sequence +0:127 'gl_BoundingBoxOES' ( temp float) +0:? Linker Objects +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'badp1' ( smooth patch in highp 4-component vector of float) +0:? 'badp2' ( flat patch in highp 4-component vector of float) +0:? 'badp3' ( noperspective patch in highp 4-component vector of float) +0:? 'badp4' ( patch sample in highp 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position}) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'bla' ( in block{ in highp int f}) +0:? 'blb' ( in 32-element array of block{ in highp int f}) +0:? 'blc' ( in 32-element array of block{ in highp int f}) +0:? 'bld' ( in 32-element array of block{ in highp int f}) +0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch in block{ in highp int a}) +0:? 'myColor2' ( centroid out highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out highp 4-component vector of float) + + +Linked tessellation evaluation stage: + + +Shader version: 310 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_primitive_bounding_box +Requested GL_EXT_shader_io_blocks +Requested GL_EXT_tessellation_shader +Requested GL_OES_shader_io_blocks +Requested GL_OES_tessellation_point_size +Requested GL_OES_tessellation_shader +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:24 Function Definition: main( ( global void) +0:24 Function Parameters: +0:26 Sequence +0:26 Constant: +0:26 0.000000 +0:28 Sequence +0:28 move second child to first child ( temp highp int) +0:28 'a' ( temp highp int) +0:28 Constant: +0:28 1512 (const int) +0:36 Sequence +0:36 move second child to first child ( temp highp 4-component vector of float) +0:36 'p' ( temp highp 4-component vector of float) +0:36 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:36 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:36 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp highp float) +0:37 'ps' ( temp highp float) +0:37 gl_PointSize: direct index for structure ( in highp float PointSize) +0:37 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:37 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child ( temp highp float) +0:38 'cd' ( temp highp float) +0:38 Constant: +0:38 0.000000 +0:40 Sequence +0:40 move second child to first child ( temp highp int) +0:40 'pvi' ( temp highp int) +0:40 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:41 Sequence +0:41 move second child to first child ( temp highp int) +0:41 'pid' ( temp highp int) +0:41 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:42 Sequence +0:42 move second child to first child ( temp highp 3-component vector of float) +0:42 'tc' ( temp highp 3-component vector of float) +0:42 'gl_TessCoord' ( in highp 3-component vector of float TessCoord) +0:43 Sequence +0:43 move second child to first child ( temp highp float) +0:43 'tlo' ( temp highp float) +0:43 direct index ( patch temp highp float TessLevelOuter) +0:43 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter) +0:43 Constant: +0:43 3 (const int) +0:44 Sequence +0:44 move second child to first child ( temp highp float) +0:44 'tli' ( temp highp float) +0:44 direct index ( patch temp highp float TessLevelInner) +0:44 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner) +0:44 Constant: +0:44 1 (const int) +0:46 move second child to first child ( temp highp 4-component vector of float) +0:46 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:46 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:46 Constant: +0:46 0 (const uint) +0:46 'p' ( temp highp 4-component vector of float) +0:47 move second child to first child ( temp highp float) +0:47 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) +0:47 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:47 Constant: +0:47 1 (const uint) +0:47 'ps' ( temp highp float) +0:48 move second child to first child ( temp highp float) +0:48 Constant: +0:48 0.000000 +0:48 'cd' ( temp highp float) +0:? Linker Objects +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'badp1' ( smooth patch in highp 4-component vector of float) +0:? 'badp2' ( flat patch in highp 4-component vector of float) +0:? 'badp3' ( noperspective patch in highp 4-component vector of float) +0:? 'badp4' ( patch sample in highp 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position}) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'bla' ( in block{ in highp int f}) +0:? 'blb' ( in 32-element array of block{ in highp int f}) +0:? 'blc' ( in 32-element array of block{ in highp int f}) +0:? 'bld' ( in 32-element array of block{ in highp int f}) +0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch in block{ in highp int a}) +0:? 'myColor2' ( centroid out highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out highp 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/310.vert.out b/deps/glslang/glslang/Test/baseResults/310.vert.out new file mode 100644 index 0000000000..21fa27b90f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310.vert.out @@ -0,0 +1,1272 @@ +310.vert +ERROR: 0:3: 'shared' : not supported in this stage: vertex +ERROR: 0:4: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:5: 'buffer' : buffers can be declared only as blocks +ERROR: 0:10: 'location' : overlapping use of location 3 +ERROR: 0:58: 'usampler2DMSArray' : Reserved word. +ERROR: 0:58: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:67: 'textureSamples' : no matching overloaded function found +ERROR: 0:69: 'assign' : l-value required "ini" (can't modify shader input) +ERROR: 0:69: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. +ERROR: 0:72: 'out' : cannot be bool +ERROR: 0:73: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo +ERROR: 0:75: 'vertex-shader array-of-array output' : not supported with this profile: es +ERROR: 0:78: 'vertex-shader array-of-struct output' : not supported with this profile: es +ERROR: 0:79: 'vertex-shader array-of-struct output' : not supported with this profile: es +ERROR: 0:81: 'vertex-shader struct output containing an array' : not supported with this profile: es +ERROR: 0:83: 'vertex-shader struct output containing structure' : not supported with this profile: es +ERROR: 0:85: 'std430' : requires the 'buffer' storage qualifier +ERROR: 0:97: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type +ERROR: 0:105: 'location' : overlapping use of location 12 +ERROR: 0:107: 'input block' : not supported in this stage: vertex +ERROR: 0:109: 'gl_PerVertex' : block redeclaration has extra members +ERROR: 0:119: 'gl_PointSize' : member of nameless block was not redeclared +ERROR: 0:119: 'assign' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize' +ERROR: 0:122: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:127: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block +ERROR: 0:131: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block +ERROR: 0:135: 'centroid' : cannot use centroid qualifier on an interface block +ERROR: 0:139: 'invariant' : cannot use invariant qualifier on an interface block +ERROR: 0:155: 'precise' : Reserved word. +ERROR: 0:155: 'precise' : not supported for this version or the enabled extensions +ERROR: 0:156: 'fma' : required extension not requested: Possible extensions include: +GL_EXT_gpu_shader5 +GL_OES_gpu_shader5 +ERROR: 0:157: 'variable indexing sampler array' : not supported for this version or the enabled extensions +ERROR: 0:161: 'variable indexing uniform block array' : not supported for this version or the enabled extensions +ERROR: 0:162: 'variable indexing buffer block array' : not supported with this profile: es +ERROR: 0:164: 'variable indexing sampler array' : not supported for this version or the enabled extensions +ERROR: 0:165: 'non-constant offset argument' : not supported for this version or the enabled extensions +ERROR: 0:166: 'textureGatherOffsets' : required extension not requested: Possible extensions include: +GL_EXT_gpu_shader5 +GL_OES_gpu_shader5 +ERROR: 0:177: 'variable indexing buffer block array' : not supported with this profile: es +ERROR: 0:182: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument +ERROR: 0:185: 'samplerBuffer' : Reserved word. +ERROR: 0:185: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:186: 'isamplerBuffer' : Reserved word. +ERROR: 0:186: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:187: 'usamplerBuffer' : Reserved word. +ERROR: 0:187: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:188: 'imageBuffer' : Reserved word. +ERROR: 0:188: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:189: 'iimageBuffer' : Reserved word. +ERROR: 0:189: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:190: 'uimageBuffer' : Reserved word. +ERROR: 0:190: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:195: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:196: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:197: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:198: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:199: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:200: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:235: 'imageCubeArray' : Reserved word. +ERROR: 0:235: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:236: 'iimageCubeArray' : Reserved word. +ERROR: 0:236: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:237: 'uimageCubeArray' : Reserved word. +ERROR: 0:237: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:239: 'samplerCubeArray' : Reserved word. +ERROR: 0:239: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:240: 'samplerCubeArrayShadow' : Reserved word. +ERROR: 0:240: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:241: 'isamplerCubeArray' : Reserved word. +ERROR: 0:241: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:242: 'usamplerCubeArray' : Reserved word. +ERROR: 0:242: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:246: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:247: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:248: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:250: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:251: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:252: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:253: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:321: 'sampler2DMSArray' : Reserved word. +ERROR: 0:321: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:322: 'isampler2DMSArray' : Reserved word. +ERROR: 0:322: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:323: 'usampler2DMSArray' : Reserved word. +ERROR: 0:323: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:329: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:330: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:331: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:351: 'textureSize' : no matching overloaded function found +ERROR: 0:351: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int' +ERROR: 0:389: 'sample' : Reserved word. +ERROR: 0:400: 'interpolateAtCentroid' : no matching overloaded function found +ERROR: 0:401: 'interpolateAtSample' : no matching overloaded function found +ERROR: 0:402: 'interpolateAtOffset' : no matching overloaded function found +ERROR: 93 compilation errors. No code generated. + + +Shader version: 310 +Requested GL_EXT_texture_buffer +Requested GL_OES_gpu_shader5 +Requested GL_OES_shader_image_atomic +Requested GL_OES_shader_io_blocks +Requested GL_OES_shader_multisample_interpolation +Requested GL_OES_texture_buffer +Requested GL_OES_texture_cube_map_array +Requested GL_OES_texture_storage_multisample_2d_array +ERROR: node is still EOpNull! +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:15 addCarry ( global highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:17 move second child to first child ( temp highp uint) +0:17 'u1' ( temp highp uint) +0:17 subBorrow ( global highp uint) +0:17 'u1' ( temp highp uint) +0:17 'u1' ( temp highp uint) +0:17 'u1' ( temp highp uint) +0:19 uMulExtended ( global highp void) +0:19 'u4' ( temp highp 4-component vector of uint) +0:19 'u4' ( temp highp 4-component vector of uint) +0:19 'u4' ( temp highp 4-component vector of uint) +0:19 'u4' ( temp highp 4-component vector of uint) +0:21 iMulExtended ( global highp void) +0:21 'i4' ( temp highp 4-component vector of int) +0:21 'i4' ( temp highp 4-component vector of int) +0:21 'i4' ( temp highp 4-component vector of int) +0:21 'i4' ( temp highp 4-component vector of int) +0:23 move second child to first child ( temp highp int) +0:23 'i1' ( temp highp int) +0:23 bitfieldExtract ( global highp int) +0:23 'i1' ( temp highp int) +0:23 Constant: +0:23 4 (const int) +0:23 Constant: +0:23 5 (const int) +0:25 move second child to first child ( temp highp 3-component vector of uint) +0:25 'u3' ( temp highp 3-component vector of uint) +0:25 bitfieldExtract ( global highp 3-component vector of uint) +0:25 'u3' ( temp highp 3-component vector of uint) +0:25 Constant: +0:25 4 (const int) +0:25 Constant: +0:25 5 (const int) +0:27 move second child to first child ( temp highp 3-component vector of int) +0:27 'i3' ( temp highp 3-component vector of int) +0:27 bitfieldInsert ( global highp 3-component vector of int) +0:27 'i3' ( temp highp 3-component vector of int) +0:27 'i3' ( temp highp 3-component vector of int) +0:27 Constant: +0:27 4 (const int) +0:27 Constant: +0:27 5 (const int) +0:28 move second child to first child ( temp highp uint) +0:28 'u1' ( temp highp uint) +0:28 bitfieldInsert ( global highp uint) +0:28 'u1' ( temp highp uint) +0:28 'u1' ( temp highp uint) +0:28 Constant: +0:28 4 (const int) +0:28 Constant: +0:28 5 (const int) +0:30 move second child to first child ( temp highp 2-component vector of int) +0:30 'i2' ( temp highp 2-component vector of int) +0:30 bitFieldReverse ( global highp 2-component vector of int) +0:30 'i2' ( temp highp 2-component vector of int) +0:31 move second child to first child ( temp highp 4-component vector of uint) +0:31 'u4' ( temp highp 4-component vector of uint) +0:31 bitFieldReverse ( global highp 4-component vector of uint) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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) +0:40 frexp ( global highp 3-component vector of float) +0:40 'v3' ( temp highp 3-component vector of float) +0:40 'i3' ( temp highp 3-component vector of int) +0:42 move second child to first child ( temp highp 2-component vector of float) +0:42 'v2' ( temp highp 2-component vector of float) +0:42 ldexp ( global highp 2-component vector of float) +0:42 'v2' ( temp highp 2-component vector of float) +0:42 'i2' ( temp highp 2-component vector of int) +0:45 move second child to first child ( temp highp uint) +0:45 'u1' ( temp highp uint) +0:45 PackUnorm4x8 ( global highp uint, operation at mediump) +0:45 'v4' ( temp mediump 4-component vector of float) +0:46 move second child to first child ( temp highp uint) +0:46 'u1' ( temp highp uint) +0:46 PackSnorm4x8 ( global highp uint, operation at mediump) +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 'v4' ( temp mediump 4-component vector of float) +0:47 UnpackUnorm4x8 ( global mediump 4-component vector of float, operation at highp) +0:47 'u1' ( temp highp uint) +0:48 move second child to first child ( temp mediump 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, operation at highp) +0:48 'u1' ( temp highp uint) +0:60 Function Definition: foo( ( global void) +0:60 Function Parameters: +0:? Sequence +0:63 move second child to first child ( temp highp 2-component vector of int) +0:63 'v2' ( temp highp 2-component vector of int) +0:63 textureSize ( global highp 2-component vector of int) +0:63 's2dms' ( uniform highp sampler2DMS) +0:64 move second child to first child ( temp highp 2-component vector of int) +0:64 'v2' ( temp highp 2-component vector of int) +0:64 textureSize ( global highp 2-component vector of int) +0:64 'us2dms' ( uniform highp usampler2DMS) +0:65 Sequence +0:65 move second child to first child ( temp highp 4-component vector of float) +0:65 'v4' ( temp highp 4-component vector of float) +0:65 textureFetch ( global highp 4-component vector of float) +0:65 's2dms' ( uniform highp sampler2DMS) +0:65 'v2' ( temp highp 2-component vector of int) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child ( temp highp 4-component vector of int) +0:66 'iv4' ( temp highp 4-component vector of int) +0:66 textureFetch ( global highp 4-component vector of int) +0:66 'is2dms' ( uniform highp isampler2DMS) +0:66 'v2' ( temp highp 2-component vector of int) +0:66 Constant: +0:66 2 (const int) +0:67 Constant: +0:67 0.000000 +0:69 frexp ( global highp float) +0:69 'f' ( temp highp float) +0:69 'ini' ( in highp int) +0:114 Function Definition: foo_IO( ( global void) +0:114 Function Parameters: +0:116 Sequence +0:116 Sequence +0:116 move second child to first child ( temp highp int) +0:116 'sum' ( temp highp int) +0:116 add ( temp highp int) +0:116 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:117 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) +0:118 move second child to first child ( temp highp 4-component vector of float) +0:118 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:118 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:118 Constant: +0:118 0 (const uint) +0:118 Constant: +0:118 1.000000 +0:118 1.000000 +0:118 1.000000 +0:118 1.000000 +0:119 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) +0:119 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:119 Constant: +0:119 1 (const uint) +0:153 Function Definition: pfooBad( ( global void) +0:153 Function Parameters: +0:? Sequence +0:156 move second child to first child ( temp highp 2-component vector of float) +0:156 'h' ( noContraction temp highp 2-component vector of float) +0:156 fma ( global highp 2-component vector of float) +0:156 'inf' ( in highp 2-component vector of float) +0:156 'ing' ( in highp 2-component vector of float) +0:156 'h' ( noContraction temp highp 2-component vector of float) +0:157 indirect index ( temp lowp sampler2D) +0:157 'sArray' ( uniform 4-element array of lowp sampler2D) +0:157 add ( temp highp int) +0:157 'sIndex' ( uniform highp int) +0:157 Constant: +0:157 1 (const int) +0:158 indirect index (layout( binding=0 offset=0) temp highp atomic_uint) +0:158 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:158 add ( temp highp int) +0:158 'sIndex' ( uniform highp int) +0:158 Constant: +0:158 1 (const int) +0:159 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) +0:159 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:159 Constant: +0:159 1 (const int) +0:160 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) +0:160 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:160 Constant: +0:160 2 (const int) +0:161 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) +0:161 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:161 add ( temp highp int) +0:161 'sIndex' ( uniform highp int) +0:161 Constant: +0:161 1 (const int) +0:162 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) +0:162 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:162 'sIndex' ( uniform highp int) +0:163 direct index ( writeonly temp highp image2D) +0:163 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:163 Constant: +0:163 2 (const int) +0:164 indirect index ( writeonly temp highp image2D) +0:164 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:164 component-wise multiply ( temp highp int) +0:164 'sIndex' ( uniform highp int) +0:164 Constant: +0:164 2 (const int) +0:165 textureGatherOffset ( global lowp 4-component vector of float) +0:165 direct index ( temp lowp sampler2D) +0:165 'sArray' ( uniform 4-element array of lowp sampler2D) +0:165 Constant: +0:165 0 (const int) +0:165 Constant: +0:165 0.100000 +0:165 0.100000 +0:165 Convert float to int ( temp lowp 2-component vector of int) +0:165 'inf' ( in highp 2-component vector of float) +0:166 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) +0:166 direct index ( temp lowp sampler2D) +0:166 'sArray' ( uniform 4-element array of lowp sampler2D) +0:166 Constant: +0:166 0 (const int) +0:166 Constant: +0:166 0.100000 +0:166 0.100000 +0:166 Constant: +0:166 0 (const int) +0:166 0 (const int) +0:166 0 (const int) +0:166 0 (const int) +0:166 0 (const int) +0:166 0 (const int) +0:166 0 (const int) +0:166 0 (const int) +0:171 Function Definition: pfoo( ( global void) +0:171 Function Parameters: +0:? Sequence +0:174 move second child to first child ( temp highp 2-component vector of float) +0:174 'h' ( noContraction temp highp 2-component vector of float) +0:174 fma ( global highp 2-component vector of float) +0:174 'inf' ( in highp 2-component vector of float) +0:174 'ing' ( in highp 2-component vector of float) +0:174 'h' ( noContraction temp highp 2-component vector of float) +0:175 indirect index ( temp lowp sampler2D) +0:175 'sArray' ( uniform 4-element array of lowp sampler2D) +0:175 add ( temp highp int) +0:175 'sIndex' ( uniform highp int) +0:175 Constant: +0:175 1 (const int) +0:176 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) +0:176 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:176 add ( temp highp int) +0:176 'sIndex' ( uniform highp int) +0:176 Constant: +0:176 1 (const int) +0:177 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) +0:177 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:177 subtract ( temp highp int) +0:177 'sIndex' ( uniform highp int) +0:177 Constant: +0:177 2 (const int) +0:178 direct index ( writeonly temp highp image2D) +0:178 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:178 Constant: +0:178 2 (const int) +0:179 indirect index ( writeonly temp highp image2D) +0:179 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:179 subtract ( temp highp int) +0:179 'sIndex' ( uniform highp int) +0:179 Constant: +0:179 2 (const int) +0:180 textureGatherOffset ( global lowp 4-component vector of float) +0:180 direct index ( temp lowp sampler2D) +0:180 'sArray' ( uniform 4-element array of lowp sampler2D) +0:180 Constant: +0:180 0 (const int) +0:180 Constant: +0:180 0.100000 +0:180 0.100000 +0:180 Convert float to int ( temp lowp 2-component vector of int) +0:180 'inf' ( in highp 2-component vector of float) +0:181 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) +0:181 direct index ( temp lowp sampler2D) +0:181 'sArray' ( uniform 4-element array of lowp sampler2D) +0:181 Constant: +0:181 0 (const int) +0:181 Constant: +0:181 0.100000 +0:181 0.100000 +0:181 Constant: +0:181 0 (const int) +0:181 0 (const int) +0:181 0 (const int) +0:181 0 (const int) +0:181 0 (const int) +0:181 0 (const int) +0:181 0 (const int) +0:181 0 (const int) +0:182 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) +0:182 direct index ( temp lowp sampler2D) +0:182 'sArray' ( uniform 4-element array of lowp sampler2D) +0:182 Constant: +0:182 0 (const int) +0:182 Constant: +0:182 0.100000 +0:182 0.100000 +0:182 'offsets' ( uniform 4-element array of highp 2-component vector of int) +0:220 Function Definition: bufferT( ( global void) +0:220 Function Parameters: +0:222 Sequence +0:222 Sequence +0:222 move second child to first child ( temp highp int) +0:222 's1' ( temp highp int) +0:222 textureSize ( global highp int) +0:222 'bufSamp1' ( uniform highp samplerBuffer) +0:223 Sequence +0:223 move second child to first child ( temp highp int) +0:223 's2' ( temp highp int) +0:223 textureSize ( global highp int) +0:223 'bufSamp2' ( uniform highp isamplerBuffer) +0:224 Sequence +0:224 move second child to first child ( temp highp int) +0:224 's3' ( temp highp int) +0:224 textureSize ( global highp int) +0:224 'bufSamp3' ( uniform highp usamplerBuffer) +0:226 Sequence +0:226 move second child to first child ( temp highp int) +0:226 's4' ( temp highp int) +0:226 imageQuerySize ( global highp int) +0:226 'bufSamp4' ( writeonly uniform highp imageBuffer) +0:227 Sequence +0:227 move second child to first child ( temp highp int) +0:227 's5' ( temp highp int) +0:227 imageQuerySize ( global highp int) +0:227 'bufSamp5' ( writeonly uniform highp iimageBuffer) +0:228 Sequence +0:228 move second child to first child ( temp highp int) +0:228 's6' ( temp highp int) +0:228 imageQuerySize ( global highp int) +0:228 'bufSamp6' ( writeonly uniform highp uimageBuffer) +0:230 Sequence +0:230 move second child to first child ( temp highp 4-component vector of float) +0:230 'f1' ( temp highp 4-component vector of float) +0:230 textureFetch ( global highp 4-component vector of float) +0:230 'bufSamp1' ( uniform highp samplerBuffer) +0:230 's1' ( temp highp int) +0:231 Sequence +0:231 move second child to first child ( temp highp 4-component vector of int) +0:231 'f2' ( temp highp 4-component vector of int) +0:231 textureFetch ( global highp 4-component vector of int) +0:231 'bufSamp2' ( uniform highp isamplerBuffer) +0:231 's2' ( temp highp int) +0:232 Sequence +0:232 move second child to first child ( temp highp 4-component vector of uint) +0:232 'f3' ( temp highp 4-component vector of uint) +0:232 textureFetch ( global highp 4-component vector of uint) +0:232 'bufSamp3' ( uniform highp usamplerBuffer) +0:232 's3' ( temp highp int) +0:279 Function Definition: CAT( ( global void) +0:279 Function Parameters: +0:281 Sequence +0:281 Sequence +0:281 move second child to first child ( temp highp 3-component vector of int) +0:281 's4' ( temp highp 3-component vector of int) +0:281 textureSize ( global highp 3-component vector of int) +0:281 'CA4' ( uniform highp samplerCubeArray) +0:281 Constant: +0:281 1 (const int) +0:282 Sequence +0:282 move second child to first child ( temp highp 3-component vector of int) +0:282 's5' ( temp highp 3-component vector of int) +0:282 textureSize ( global highp 3-component vector of int) +0:282 'CA5' ( uniform highp samplerCubeArrayShadow) +0:282 Constant: +0:282 1 (const int) +0:283 Sequence +0:283 move second child to first child ( temp highp 3-component vector of int) +0:283 's6' ( temp highp 3-component vector of int) +0:283 textureSize ( global highp 3-component vector of int) +0:283 'CA6' ( uniform highp isamplerCubeArray) +0:283 Constant: +0:283 1 (const int) +0:284 Sequence +0:284 move second child to first child ( temp highp 3-component vector of int) +0:284 's7' ( temp highp 3-component vector of int) +0:284 textureSize ( global highp 3-component vector of int) +0:284 'CA7' ( uniform highp usamplerCubeArray) +0:284 Constant: +0:284 1 (const int) +0:286 Sequence +0:286 move second child to first child ( temp highp 4-component vector of float) +0:286 't4' ( temp highp 4-component vector of float) +0:286 texture ( global highp 4-component vector of float) +0:286 'CA4' ( uniform highp samplerCubeArray) +0:286 Constant: +0:286 0.500000 +0:286 0.500000 +0:286 0.500000 +0:286 0.500000 +0:287 Sequence +0:287 move second child to first child ( temp highp float) +0:287 't5' ( temp highp float) +0:287 texture ( global highp float) +0:287 'CA5' ( uniform highp samplerCubeArrayShadow) +0:287 Constant: +0:287 0.500000 +0:287 0.500000 +0:287 0.500000 +0:287 0.500000 +0:287 Constant: +0:287 3.000000 +0:288 Sequence +0:288 move second child to first child ( temp highp 4-component vector of int) +0:288 't6' ( temp highp 4-component vector of int) +0:288 texture ( global highp 4-component vector of int) +0:288 'CA6' ( uniform highp isamplerCubeArray) +0:288 Constant: +0:288 0.500000 +0:288 0.500000 +0:288 0.500000 +0:288 0.500000 +0:289 Sequence +0:289 move second child to first child ( temp highp 4-component vector of uint) +0:289 't7' ( temp highp 4-component vector of uint) +0:289 texture ( global highp 4-component vector of uint) +0:289 'CA7' ( uniform highp usamplerCubeArray) +0:289 Constant: +0:289 0.500000 +0:289 0.500000 +0:289 0.500000 +0:289 0.500000 +0:291 Sequence +0:291 move second child to first child ( temp highp 4-component vector of float) +0:291 'L4' ( temp highp 4-component vector of float) +0:291 textureLod ( global highp 4-component vector of float) +0:291 'CA4' ( uniform highp samplerCubeArray) +0:291 Constant: +0:291 0.500000 +0:291 0.500000 +0:291 0.500000 +0:291 0.500000 +0:291 Constant: +0:291 0.240000 +0:292 Sequence +0:292 move second child to first child ( temp highp 4-component vector of int) +0:292 'L6' ( temp highp 4-component vector of int) +0:292 textureLod ( global highp 4-component vector of int) +0:292 'CA6' ( uniform highp isamplerCubeArray) +0:292 Constant: +0:292 0.500000 +0:292 0.500000 +0:292 0.500000 +0:292 0.500000 +0:292 Constant: +0:292 0.260000 +0:293 Sequence +0:293 move second child to first child ( temp highp 4-component vector of uint) +0:293 'L7' ( temp highp 4-component vector of uint) +0:293 textureLod ( global highp 4-component vector of uint) +0:293 'CA7' ( uniform highp usamplerCubeArray) +0:293 Constant: +0:293 0.500000 +0:293 0.500000 +0:293 0.500000 +0:293 0.500000 +0:293 Constant: +0:293 0.270000 +0:295 Sequence +0:295 move second child to first child ( temp highp 4-component vector of float) +0:295 'g4' ( temp highp 4-component vector of float) +0:295 textureGrad ( global highp 4-component vector of float) +0:295 'CA4' ( uniform highp samplerCubeArray) +0:295 Constant: +0:295 0.500000 +0:295 0.500000 +0:295 0.500000 +0:295 0.500000 +0:295 Constant: +0:295 0.100000 +0:295 0.100000 +0:295 0.100000 +0:295 Constant: +0:295 0.200000 +0:295 0.200000 +0:295 0.200000 +0:296 Sequence +0:296 move second child to first child ( temp highp 4-component vector of int) +0:296 'g6' ( temp highp 4-component vector of int) +0:296 textureGrad ( global highp 4-component vector of int) +0:296 'CA6' ( uniform highp isamplerCubeArray) +0:296 Constant: +0:296 0.500000 +0:296 0.500000 +0:296 0.500000 +0:296 0.500000 +0:296 Constant: +0:296 0.100000 +0:296 0.100000 +0:296 0.100000 +0:296 Constant: +0:296 0.200000 +0:296 0.200000 +0:296 0.200000 +0:297 Sequence +0:297 move second child to first child ( temp highp 4-component vector of uint) +0:297 'g7' ( temp highp 4-component vector of uint) +0:297 textureGrad ( global highp 4-component vector of uint) +0:297 'CA7' ( uniform highp usamplerCubeArray) +0:297 Constant: +0:297 0.500000 +0:297 0.500000 +0:297 0.500000 +0:297 0.500000 +0:297 Constant: +0:297 0.100000 +0:297 0.100000 +0:297 0.100000 +0:297 Constant: +0:297 0.200000 +0:297 0.200000 +0:297 0.200000 +0:299 Sequence +0:299 move second child to first child ( temp highp 4-component vector of float) +0:299 'gath4' ( temp highp 4-component vector of float) +0:299 textureGather ( global highp 4-component vector of float) +0:299 'CA4' ( uniform highp samplerCubeArray) +0:299 Constant: +0:299 0.500000 +0:299 0.500000 +0:299 0.500000 +0:299 0.500000 +0:300 Sequence +0:300 move second child to first child ( temp highp 4-component vector of float) +0:300 'gathC4' ( temp highp 4-component vector of float) +0:300 textureGather ( global highp 4-component vector of float) +0:300 'CA4' ( uniform highp samplerCubeArray) +0:300 Constant: +0:300 0.500000 +0:300 0.500000 +0:300 0.500000 +0:300 0.500000 +0:300 Constant: +0:300 2 (const int) +0:301 Sequence +0:301 move second child to first child ( temp highp 4-component vector of int) +0:301 'gath6' ( temp highp 4-component vector of int) +0:301 textureGather ( global highp 4-component vector of int) +0:301 'CA6' ( uniform highp isamplerCubeArray) +0:301 Constant: +0:301 0.500000 +0:301 0.500000 +0:301 0.500000 +0:301 0.500000 +0:302 Sequence +0:302 move second child to first child ( temp highp 4-component vector of int) +0:302 'gathC6' ( temp highp 4-component vector of int) +0:302 textureGather ( global highp 4-component vector of int) +0:302 'CA6' ( uniform highp isamplerCubeArray) +0:302 Constant: +0:302 0.500000 +0:302 0.500000 +0:302 0.500000 +0:302 0.500000 +0:302 Constant: +0:302 1 (const int) +0:303 Sequence +0:303 move second child to first child ( temp highp 4-component vector of uint) +0:303 'gath7' ( temp highp 4-component vector of uint) +0:303 textureGather ( global highp 4-component vector of uint) +0:303 'CA7' ( uniform highp usamplerCubeArray) +0:303 Constant: +0:303 0.500000 +0:303 0.500000 +0:303 0.500000 +0:303 0.500000 +0:304 Sequence +0:304 move second child to first child ( temp highp 4-component vector of uint) +0:304 'gathC7' ( temp highp 4-component vector of uint) +0:304 textureGather ( global highp 4-component vector of uint) +0:304 'CA7' ( uniform highp usamplerCubeArray) +0:304 Constant: +0:304 0.500000 +0:304 0.500000 +0:304 0.500000 +0:304 0.500000 +0:304 Constant: +0:304 0 (const int) +0:306 Sequence +0:306 move second child to first child ( temp highp 4-component vector of float) +0:306 'gath5' ( temp highp 4-component vector of float) +0:306 textureGather ( global highp 4-component vector of float) +0:306 'CA5' ( uniform highp samplerCubeArrayShadow) +0:306 Constant: +0:306 0.500000 +0:306 0.500000 +0:306 0.500000 +0:306 0.500000 +0:306 Constant: +0:306 2.500000 +0:308 Sequence +0:308 move second child to first child ( temp highp 3-component vector of int) +0:308 's1' ( temp highp 3-component vector of int) +0:308 imageQuerySize ( global highp 3-component vector of int) +0:308 'CA1' ( writeonly uniform highp imageCubeArray) +0:309 Sequence +0:309 move second child to first child ( temp highp 3-component vector of int) +0:309 's2' ( temp highp 3-component vector of int) +0:309 imageQuerySize ( global highp 3-component vector of int) +0:309 'CA2' ( writeonly uniform highp iimageCubeArray) +0:310 Sequence +0:310 move second child to first child ( temp highp 3-component vector of int) +0:310 's3' ( temp highp 3-component vector of int) +0:310 imageQuerySize ( global highp 3-component vector of int) +0:310 'CA3' ( writeonly uniform highp uimageCubeArray) +0:312 imageStore ( global highp void) +0:312 'CA1' ( writeonly uniform highp imageCubeArray) +0:312 's3' ( temp highp 3-component vector of int) +0:312 Constant: +0:312 1.000000 +0:312 1.000000 +0:312 1.000000 +0:312 1.000000 +0:313 imageStore ( global highp void) +0:313 'CA2' ( writeonly uniform highp iimageCubeArray) +0:313 's3' ( temp highp 3-component vector of int) +0:313 Constant: +0:313 1 (const int) +0:313 1 (const int) +0:313 1 (const int) +0:313 1 (const int) +0:314 imageStore ( global highp void) +0:314 'CA3' ( writeonly uniform highp uimageCubeArray) +0:314 's3' ( temp highp 3-component vector of int) +0:314 Constant: +0:314 1 (const uint) +0:314 1 (const uint) +0:314 1 (const uint) +0:314 1 (const uint) +0:316 Sequence +0:316 move second child to first child ( temp highp 4-component vector of float) +0:316 'cl1' ( temp highp 4-component vector of float) +0:316 imageLoad ( global highp 4-component vector of float) +0:316 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) +0:316 's3' ( temp highp 3-component vector of int) +0:317 Sequence +0:317 move second child to first child ( temp highp 4-component vector of int) +0:317 'cl2' ( temp highp 4-component vector of int) +0:317 imageLoad ( global highp 4-component vector of int) +0:317 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) +0:317 's3' ( temp highp 3-component vector of int) +0:318 Sequence +0:318 move second child to first child ( temp highp 4-component vector of uint) +0:318 'cl3' ( temp highp 4-component vector of uint) +0:318 imageLoad ( global highp 4-component vector of uint) +0:318 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) +0:318 's3' ( temp highp 3-component vector of int) +0:343 Function Definition: MSA( ( global void) +0:343 Function Parameters: +0:345 Sequence +0:345 Sequence +0:345 move second child to first child ( temp highp 4-component vector of float) +0:345 'tf' ( temp highp 4-component vector of float) +0:345 textureFetch ( global highp 4-component vector of float) +0:345 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:345 Constant: +0:345 5 (const int) +0:345 5 (const int) +0:345 5 (const int) +0:345 Constant: +0:345 2 (const int) +0:346 Sequence +0:346 move second child to first child ( temp highp 4-component vector of int) +0:346 'tfi' ( temp highp 4-component vector of int) +0:346 textureFetch ( global highp 4-component vector of int) +0:346 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:346 Constant: +0:346 5 (const int) +0:346 5 (const int) +0:346 5 (const int) +0:346 Constant: +0:346 2 (const int) +0:347 Sequence +0:347 move second child to first child ( temp highp 4-component vector of uint) +0:347 'tfu' ( temp highp 4-component vector of uint) +0:347 textureFetch ( global highp 4-component vector of uint) +0:347 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:347 Constant: +0:347 5 (const int) +0:347 5 (const int) +0:347 5 (const int) +0:347 Constant: +0:347 2 (const int) +0:349 Sequence +0:349 move second child to first child ( temp highp 3-component vector of int) +0:349 'tfs' ( temp highp 3-component vector of int) +0:349 textureSize ( global highp 3-component vector of int) +0:349 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:350 Sequence +0:350 move second child to first child ( temp highp 3-component vector of int) +0:350 'tfsi' ( temp highp 3-component vector of int) +0:350 textureSize ( global highp 3-component vector of int) +0:350 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:352 Sequence +0:352 move second child to first child ( temp highp 3-component vector of int) +0:352 'tfsu' ( temp highp 3-component vector of int) +0:352 textureSize ( global highp 3-component vector of int) +0:352 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:364 Function Definition: goodImageAtom( ( global void) +0:364 Function Parameters: +0:? Sequence +0:370 imageAtomicAdd ( global highp int) +0:370 'im2Di' (layout( r32i) uniform highp iimage2D) +0:370 'P' ( uniform highp 2-component vector of int) +0:370 'dati' ( temp highp int) +0:371 imageAtomicAdd ( global highp uint) +0:371 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:371 'P' ( uniform highp 2-component vector of int) +0:371 'datu' ( temp highp uint) +0:372 imageAtomicMin ( global highp int) +0:372 'im2Di' (layout( r32i) uniform highp iimage2D) +0:372 'P' ( uniform highp 2-component vector of int) +0:372 'dati' ( temp highp int) +0:373 imageAtomicMin ( global highp uint) +0:373 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:373 'P' ( uniform highp 2-component vector of int) +0:373 'datu' ( temp highp uint) +0:374 imageAtomicMax ( global highp int) +0:374 'im2Di' (layout( r32i) uniform highp iimage2D) +0:374 'P' ( uniform highp 2-component vector of int) +0:374 'dati' ( temp highp int) +0:375 imageAtomicMax ( global highp uint) +0:375 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:375 'P' ( uniform highp 2-component vector of int) +0:375 'datu' ( temp highp uint) +0:376 imageAtomicAnd ( global highp int) +0:376 'im2Di' (layout( r32i) uniform highp iimage2D) +0:376 'P' ( uniform highp 2-component vector of int) +0:376 'dati' ( temp highp int) +0:377 imageAtomicAnd ( global highp uint) +0:377 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:377 'P' ( uniform highp 2-component vector of int) +0:377 'datu' ( temp highp uint) +0:378 imageAtomicOr ( global highp int) +0:378 'im2Di' (layout( r32i) uniform highp iimage2D) +0:378 'P' ( uniform highp 2-component vector of int) +0:378 'dati' ( temp highp int) +0:379 imageAtomicOr ( global highp uint) +0:379 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:379 'P' ( uniform highp 2-component vector of int) +0:379 'datu' ( temp highp uint) +0:380 imageAtomicXor ( global highp int) +0:380 'im2Di' (layout( r32i) uniform highp iimage2D) +0:380 'P' ( uniform highp 2-component vector of int) +0:380 'dati' ( temp highp int) +0:381 imageAtomicXor ( global highp uint) +0:381 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:381 'P' ( uniform highp 2-component vector of int) +0:381 'datu' ( temp highp uint) +0:382 imageAtomicExchange ( global highp int) +0:382 'im2Di' (layout( r32i) uniform highp iimage2D) +0:382 'P' ( uniform highp 2-component vector of int) +0:382 'dati' ( temp highp int) +0:383 imageAtomicExchange ( global highp uint) +0:383 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:383 'P' ( uniform highp 2-component vector of int) +0:383 'datu' ( temp highp uint) +0:384 imageAtomicExchange ( global highp float) +0:384 'im2Df' (layout( r32f) uniform highp image2D) +0:384 'P' ( uniform highp 2-component vector of int) +0:384 'datf' ( temp highp float) +0:385 imageAtomicCompSwap ( global highp int) +0:385 'im2Di' (layout( r32i) uniform highp iimage2D) +0:385 'P' ( uniform highp 2-component vector of int) +0:385 Constant: +0:385 3 (const int) +0:385 'dati' ( temp highp int) +0:386 imageAtomicCompSwap ( global highp uint) +0:386 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:386 'P' ( uniform highp 2-component vector of int) +0:386 Constant: +0:386 5 (const uint) +0:386 'datu' ( temp highp uint) +0:398 Function Definition: badInterp( ( global void) +0:398 Function Parameters: +0:400 Sequence +0:400 Constant: +0:400 0.000000 +0:401 Constant: +0:401 0.000000 +0:402 Constant: +0:402 0.000000 +0:? Linker Objects +0:? 's' ( shared highp 4-component vector of float) +0:? 'v' ( buffer highp 4-component vector of float) +0:? 'ini' ( in highp int) +0:? 'x' (layout( location=2) uniform highp 4X4 matrix of float) +0:? 'y' (layout( location=3) uniform highp 4X4 matrix of float) +0:? 'xi' (layout( location=2) smooth out highp 4X4 matrix of float) +0:? 'yi' (layout( location=3) smooth out highp 4X4 matrix of float) +0:? 's2dms' ( uniform highp sampler2DMS) +0:? 'is2dms' ( uniform highp isampler2DMS) +0:? 'us2dms' ( uniform highp usampler2DMS) +0:? 'us2dmsa' ( uniform mediump usampler2DMSArray) +0:? 'outb' ( smooth out bool) +0:? 'outo' ( smooth out lowp sampler2D) +0:? 'outa' ( smooth out 4-element array of highp float) +0:? 'outaa' ( smooth out 4-element array of 2-element array of highp float) +0:? 'outs' ( smooth out structure{ global highp float f}) +0:? 'outasa' ( smooth out 4-element array of structure{ global highp float f}) +0:? 'outsa' ( smooth out 4-element array of structure{ global highp float f}) +0:? 'outSA' ( smooth out structure{ global 4-element array of highp float f}) +0:? 'outSS' ( smooth out structure{ global highp float f, global structure{ global highp float f} s}) +0:? 'U430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a}) +0:? 'B430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp int a}) +0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) +0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=12) smooth out highp int) +0:? 'inbinst' ( in block{ in highp int a}) +0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:? 'smon' ( smooth out block{ out highp int i}) +0:? 'fmon' ( flat out block{ out highp int i}) +0:? 'cmon' ( centroid out block{ out highp int i}) +0:? 'imon' ( invariant out block{ out highp int i}) +0:? 'inf' ( in highp 2-component vector of float) +0:? 'ing' ( in highp 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of lowp sampler2D) +0:? 'sIndex' ( uniform highp int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'badSamp1' ( uniform mediump samplerBuffer) +0:? 'badSamp2' ( uniform mediump isamplerBuffer) +0:? 'badSamp3' ( uniform mediump usamplerBuffer) +0:? 'badSamp4' ( writeonly uniform mediump imageBuffer) +0:? 'badSamp5' ( writeonly uniform mediump iimageBuffer) +0:? 'badSamp6' ( writeonly uniform mediump uimageBuffer) +0:? 'noPreSamp1' ( uniform mediump samplerBuffer) +0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) +0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) +0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) +0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) +0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) +0:? 'bufSamp1' ( uniform highp samplerBuffer) +0:? 'bufSamp2' ( uniform highp isamplerBuffer) +0:? 'bufSamp3' ( uniform highp usamplerBuffer) +0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) +0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) +0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) +0:? 'badCA1' ( writeonly uniform mediump imageCubeArray) +0:? 'badCA2' ( writeonly uniform mediump iimageCubeArray) +0:? 'badCA3' ( writeonly uniform mediump uimageCubeArray) +0:? 'badCA4' ( uniform mediump samplerCubeArray) +0:? 'badCA5' ( uniform mediump samplerCubeArrayShadow) +0:? 'badCA6' ( uniform mediump isamplerCubeArray) +0:? 'badCA7' ( uniform mediump usamplerCubeArray) +0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) +0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) +0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) +0:? 'noPreCA4' ( uniform mediump samplerCubeArray) +0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) +0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) +0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) +0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) +0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'bad2DMS' ( uniform mediump sampler2DMSArray) +0:? 'bad2DMSi' ( uniform mediump isampler2DMSArray) +0:? 'bad2DMSu' ( uniform mediump usampler2DMSArray) +0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) +0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) +0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) +0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform highp 2-component vector of int) +0:? 'colorSampInBad' ( smooth sample out highp 4-component vector of float) +0:? 'colorSample' ( smooth sample out highp 4-component vector of float) +0:? 'colorfsi' ( flat sample out highp 4-component vector of float) +0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) +0:? 'inv4' ( in highp 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 310 +Requested GL_EXT_texture_buffer +Requested GL_OES_gpu_shader5 +Requested GL_OES_shader_image_atomic +Requested GL_OES_shader_io_blocks +Requested GL_OES_shader_multisample_interpolation +Requested GL_OES_texture_buffer +Requested GL_OES_texture_cube_map_array +Requested GL_OES_texture_storage_multisample_2d_array +ERROR: node is still EOpNull! +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:15 addCarry ( global highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:15 'u2' ( temp highp 2-component vector of uint) +0:17 move second child to first child ( temp highp uint) +0:17 'u1' ( temp highp uint) +0:17 subBorrow ( global highp uint) +0:17 'u1' ( temp highp uint) +0:17 'u1' ( temp highp uint) +0:17 'u1' ( temp highp uint) +0:19 uMulExtended ( global highp void) +0:19 'u4' ( temp highp 4-component vector of uint) +0:19 'u4' ( temp highp 4-component vector of uint) +0:19 'u4' ( temp highp 4-component vector of uint) +0:19 'u4' ( temp highp 4-component vector of uint) +0:21 iMulExtended ( global highp void) +0:21 'i4' ( temp highp 4-component vector of int) +0:21 'i4' ( temp highp 4-component vector of int) +0:21 'i4' ( temp highp 4-component vector of int) +0:21 'i4' ( temp highp 4-component vector of int) +0:23 move second child to first child ( temp highp int) +0:23 'i1' ( temp highp int) +0:23 bitfieldExtract ( global highp int) +0:23 'i1' ( temp highp int) +0:23 Constant: +0:23 4 (const int) +0:23 Constant: +0:23 5 (const int) +0:25 move second child to first child ( temp highp 3-component vector of uint) +0:25 'u3' ( temp highp 3-component vector of uint) +0:25 bitfieldExtract ( global highp 3-component vector of uint) +0:25 'u3' ( temp highp 3-component vector of uint) +0:25 Constant: +0:25 4 (const int) +0:25 Constant: +0:25 5 (const int) +0:27 move second child to first child ( temp highp 3-component vector of int) +0:27 'i3' ( temp highp 3-component vector of int) +0:27 bitfieldInsert ( global highp 3-component vector of int) +0:27 'i3' ( temp highp 3-component vector of int) +0:27 'i3' ( temp highp 3-component vector of int) +0:27 Constant: +0:27 4 (const int) +0:27 Constant: +0:27 5 (const int) +0:28 move second child to first child ( temp highp uint) +0:28 'u1' ( temp highp uint) +0:28 bitfieldInsert ( global highp uint) +0:28 'u1' ( temp highp uint) +0:28 'u1' ( temp highp uint) +0:28 Constant: +0:28 4 (const int) +0:28 Constant: +0:28 5 (const int) +0:30 move second child to first child ( temp highp 2-component vector of int) +0:30 'i2' ( temp highp 2-component vector of int) +0:30 bitFieldReverse ( global highp 2-component vector of int) +0:30 'i2' ( temp highp 2-component vector of int) +0:31 move second child to first child ( temp highp 4-component vector of uint) +0:31 'u4' ( temp highp 4-component vector of uint) +0:31 bitFieldReverse ( global highp 4-component vector of uint) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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, operation at highp) +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) +0:40 frexp ( global highp 3-component vector of float) +0:40 'v3' ( temp highp 3-component vector of float) +0:40 'i3' ( temp highp 3-component vector of int) +0:42 move second child to first child ( temp highp 2-component vector of float) +0:42 'v2' ( temp highp 2-component vector of float) +0:42 ldexp ( global highp 2-component vector of float) +0:42 'v2' ( temp highp 2-component vector of float) +0:42 'i2' ( temp highp 2-component vector of int) +0:45 move second child to first child ( temp highp uint) +0:45 'u1' ( temp highp uint) +0:45 PackUnorm4x8 ( global highp uint, operation at mediump) +0:45 'v4' ( temp mediump 4-component vector of float) +0:46 move second child to first child ( temp highp uint) +0:46 'u1' ( temp highp uint) +0:46 PackSnorm4x8 ( global highp uint, operation at mediump) +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 'v4' ( temp mediump 4-component vector of float) +0:47 UnpackUnorm4x8 ( global mediump 4-component vector of float, operation at highp) +0:47 'u1' ( temp highp uint) +0:48 move second child to first child ( temp mediump 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, operation at highp) +0:48 'u1' ( temp highp uint) +0:? Linker Objects +0:? 's' ( shared highp 4-component vector of float) +0:? 'v' ( buffer highp 4-component vector of float) +0:? 'ini' ( in highp int) +0:? 'x' (layout( location=2) uniform highp 4X4 matrix of float) +0:? 'y' (layout( location=3) uniform highp 4X4 matrix of float) +0:? 'xi' (layout( location=2) smooth out highp 4X4 matrix of float) +0:? 'yi' (layout( location=3) smooth out highp 4X4 matrix of float) +0:? 's2dms' ( uniform highp sampler2DMS) +0:? 'is2dms' ( uniform highp isampler2DMS) +0:? 'us2dms' ( uniform highp usampler2DMS) +0:? 'us2dmsa' ( uniform mediump usampler2DMSArray) +0:? 'outb' ( smooth out bool) +0:? 'outo' ( smooth out lowp sampler2D) +0:? 'outa' ( smooth out 4-element array of highp float) +0:? 'outaa' ( smooth out 4-element array of 2-element array of highp float) +0:? 'outs' ( smooth out structure{ global highp float f}) +0:? 'outasa' ( smooth out 4-element array of structure{ global highp float f}) +0:? 'outsa' ( smooth out 4-element array of structure{ global highp float f}) +0:? 'outSA' ( smooth out structure{ global 4-element array of highp float f}) +0:? 'outSS' ( smooth out structure{ global highp float f, global structure{ global highp float f} s}) +0:? 'U430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a}) +0:? 'B430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp int a}) +0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) +0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=12) smooth out highp int) +0:? 'inbinst' ( in block{ in highp int a}) +0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:? 'smon' ( smooth out block{ out highp int i}) +0:? 'fmon' ( flat out block{ out highp int i}) +0:? 'cmon' ( centroid out block{ out highp int i}) +0:? 'imon' ( invariant out block{ out highp int i}) +0:? 'inf' ( in highp 2-component vector of float) +0:? 'ing' ( in highp 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of lowp sampler2D) +0:? 'sIndex' ( uniform highp int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'badSamp1' ( uniform mediump samplerBuffer) +0:? 'badSamp2' ( uniform mediump isamplerBuffer) +0:? 'badSamp3' ( uniform mediump usamplerBuffer) +0:? 'badSamp4' ( writeonly uniform mediump imageBuffer) +0:? 'badSamp5' ( writeonly uniform mediump iimageBuffer) +0:? 'badSamp6' ( writeonly uniform mediump uimageBuffer) +0:? 'noPreSamp1' ( uniform mediump samplerBuffer) +0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) +0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) +0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) +0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) +0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) +0:? 'bufSamp1' ( uniform highp samplerBuffer) +0:? 'bufSamp2' ( uniform highp isamplerBuffer) +0:? 'bufSamp3' ( uniform highp usamplerBuffer) +0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) +0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) +0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) +0:? 'badCA1' ( writeonly uniform mediump imageCubeArray) +0:? 'badCA2' ( writeonly uniform mediump iimageCubeArray) +0:? 'badCA3' ( writeonly uniform mediump uimageCubeArray) +0:? 'badCA4' ( uniform mediump samplerCubeArray) +0:? 'badCA5' ( uniform mediump samplerCubeArrayShadow) +0:? 'badCA6' ( uniform mediump isamplerCubeArray) +0:? 'badCA7' ( uniform mediump usamplerCubeArray) +0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) +0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) +0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) +0:? 'noPreCA4' ( uniform mediump samplerCubeArray) +0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) +0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) +0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) +0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) +0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'bad2DMS' ( uniform mediump sampler2DMSArray) +0:? 'bad2DMSi' ( uniform mediump isampler2DMSArray) +0:? 'bad2DMSu' ( uniform mediump usampler2DMSArray) +0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) +0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) +0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) +0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform highp 2-component vector of int) +0:? 'colorSampInBad' ( smooth sample out highp 4-component vector of float) +0:? 'colorSample' ( smooth sample out highp 4-component vector of float) +0:? 'colorfsi' ( flat sample out highp 4-component vector of float) +0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) +0:? 'inv4' ( in highp 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/310AofA.vert.out b/deps/glslang/glslang/Test/baseResults/310AofA.vert.out new file mode 100644 index 0000000000..451cc0b458 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310AofA.vert.out @@ -0,0 +1,394 @@ +310AofA.vert +ERROR: 0:17: '' : array size required +ERROR: 0:23: '' : array size required +ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized +ERROR: 0:40: '' : array size required +ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument +ERROR: 0:49: 'constructor' : array constructor argument not correct type to construct array element +ERROR: 0:62: '[' : array index out of range '4' +ERROR: 0:78: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global 5-element array of 7-element array of highp float' +ERROR: 0:79: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global unsized 1-element array of 7-element array of highp float' +ERROR: 0:81: 'foo' : no matching overloaded function found +ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 4-element array of 7-element array of highp float' and a right operand of type ' global 5-element array of 7-element array of highp float' (or there is no acceptable conversion) +ERROR: 0:90: '[' : array index out of range '5' +ERROR: 0:94: '[' : index out of range '-1' +ERROR: 0:96: 'assign' : cannot convert from ' temp 3-element array of highp 4-component vector of float' to 'layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float' +ERROR: 0:103: '' : array size required +ERROR: 0:104: '' : array size required +ERROR: 0:105: '' : array size required +ERROR: 0:106: '' : array size required +ERROR: 0:107: '' : array size required +ERROR: 0:110: 'vertex input arrays' : not supported with this profile: es +ERROR: 0:111: 'vertex-shader array-of-array output' : not supported with this profile: es +ERROR: 0:113: 'array-of-array of block' : not supported with this profile: es +ERROR: 22 compilation errors. No code generated. + + +Shader version: 310 +ERROR: node is still EOpNull! +0:8 Function Definition: f(b1;f1;u1[4];i1[3][2]; ( global void) +0:8 Function Parameters: +0:8 'a' ( in bool) +0:8 'b' ( in highp float) +0:8 'c' ( in 4-element array of highp uint) +0:8 'd' ( in 3-element array of 2-element array of highp int) +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:? Sequence +0:13 Function Call: f(b1;f1;u1[4];i1[3][2]; ( global void) +0:13 Constant: +0:13 false (const bool) +0:13 Constant: +0:13 12.100000 +0:13 Constant: +0:13 0 (const uint) +0:13 1 (const uint) +0:13 1 (const uint) +0:13 2 (const uint) +0:13 'd' ( temp 3-element array of 2-element array of highp int) +0:44 Function Definition: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) +0:44 Function Parameters: +0:44 'a' ( in 5-element array of 7-element array of highp float) +0:? Sequence +0:47 move second child to first child ( temp 7-element array of highp float) +0:47 'r' ( temp 7-element array of highp float) +0:47 direct index ( temp 7-element array of highp float) +0:47 'a' ( in 5-element array of 7-element array of highp float) +0:47 Constant: +0:47 2 (const int) +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:50 Branch: Return with expression +0:50 Construct float ( temp 4-element array of 7-element array of float) +0:50 direct index ( temp 7-element array of highp float) +0:50 'a' ( in 5-element array of 7-element array of highp float) +0:50 Constant: +0:50 0 (const int) +0:50 direct index ( temp 7-element array of highp float) +0:50 'a' ( in 5-element array of 7-element array of highp float) +0:50 Constant: +0:50 1 (const int) +0:50 'r' ( temp 7-element array of highp float) +0:50 direct index ( temp 7-element array of highp float) +0:50 'a' ( in 5-element array of 7-element array of highp float) +0:50 Constant: +0:50 3 (const int) +0:51 Branch: Return with expression +0:51 Construct float ( temp 4-element array of 7-element array of float) +0:51 direct index ( temp 7-element array of highp float) +0:51 'a' ( in 5-element array of 7-element array of highp float) +0:51 Constant: +0:51 0 (const int) +0:51 direct index ( temp 7-element array of highp float) +0:51 'a' ( in 5-element array of 7-element array of highp float) +0:51 Constant: +0:51 1 (const int) +0:51 'r' ( temp 7-element array of highp float) +0:51 direct index ( temp 7-element array of highp float) +0:51 'a' ( in 5-element array of 7-element array of highp float) +0:51 Constant: +0:51 3 (const int) +0:52 Branch: Return with expression +0:52 Construct float ( temp 4-element array of 7-element array of float) +0:52 direct index ( temp 7-element array of highp float) +0:52 'a' ( in 5-element array of 7-element array of highp float) +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp 7-element array of highp float) +0:52 'a' ( in 5-element array of 7-element array of highp float) +0:52 Constant: +0:52 1 (const int) +0:52 direct index ( temp 7-element array of highp float) +0:52 'a' ( in 5-element array of 7-element array of highp float) +0:52 Constant: +0:52 2 (const int) +0:52 direct index ( temp 7-element array of highp float) +0:52 'a' ( in 5-element array of 7-element array of highp float) +0:52 Constant: +0:52 3 (const int) +0:55 Function Definition: bar(f1[5][7]; ( global void) +0:55 Function Parameters: +0:55 '' ( in 5-element array of 7-element array of highp float) +0:57 Function Definition: foo2( ( global void) +0:57 Function Parameters: +0:? Sequence +0:? Sequence +0:62 move second child to first child ( temp highp float) +0:62 direct index ( temp highp float) +0:62 direct index ( temp 2-element array of highp float) +0:62 direct index ( temp 4-element array of 2-element array of highp float) +0:62 'gu' ( temp 3-element array of 4-element array of 2-element array of highp float) +0:62 Constant: +0:62 2 (const int) +0:62 Constant: +0:62 4 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 4.000000 +0:64 Sequence +0:64 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:64 'ca4' ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:66 Constant: +0:66 0.000000 +0:66 0.000000 +0:66 0.000000 +0:66 0.000000 +0:66 1.000000 +0:66 1.000000 +0:66 1.000000 +0:66 1.000000 +0:66 0.000000 +0:66 0.000000 +0:66 0.000000 +0:66 0.000000 +0:66 1.000000 +0:66 1.000000 +0:66 1.000000 +0:66 1.000000 +0:66 0.000000 +0:66 0.000000 +0:66 0.000000 +0:66 0.000000 +0:66 1.000000 +0:66 1.000000 +0:66 1.000000 +0:66 1.000000 +0:67 Sequence +0:67 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:67 'caim' ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:69 Constant: +0:69 4.000000 +0:69 4.000000 +0:69 4.000000 +0:69 4.000000 +0:69 2.000000 +0:69 2.000000 +0:69 2.000000 +0:69 2.000000 +0:69 4.000000 +0:69 4.000000 +0:69 4.000000 +0:69 4.000000 +0:69 2.000000 +0:69 2.000000 +0:69 2.000000 +0:69 2.000000 +0:69 4.000000 +0:69 4.000000 +0:69 4.000000 +0:69 4.000000 +0:69 2.000000 +0:69 2.000000 +0:69 2.000000 +0:69 2.000000 +0:70 Sequence +0:70 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:70 'caim2' ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:72 Constant: +0:72 4.000000 +0:72 4.000000 +0:72 4.000000 +0:72 4.000000 +0:72 2.000000 +0:72 2.000000 +0:72 2.000000 +0:72 2.000000 +0:72 4.000000 +0:72 4.000000 +0:72 4.000000 +0:72 4.000000 +0:72 2.000000 +0:72 2.000000 +0:72 2.000000 +0:72 2.000000 +0:72 4.000000 +0:72 4.000000 +0:72 4.000000 +0:72 4.000000 +0:72 2.000000 +0:72 2.000000 +0:72 2.000000 +0:72 2.000000 +0:73 Sequence +0:73 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:73 'caim3' ( temp 3-element array of 2-element array of highp 4-component vector of float) +0:75 Constant: +0:75 4.000000 +0:75 4.000000 +0:75 4.000000 +0:75 4.000000 +0:75 2.000000 +0:75 2.000000 +0:75 2.000000 +0:75 2.000000 +0:75 4.000000 +0:75 4.000000 +0:75 4.000000 +0:75 4.000000 +0:75 2.000000 +0:75 2.000000 +0:75 2.000000 +0:75 2.000000 +0:75 4.000000 +0:75 4.000000 +0:75 4.000000 +0:75 4.000000 +0:75 2.000000 +0:75 2.000000 +0:75 2.000000 +0:75 2.000000 +0:77 move second child to first child ( temp 4-element array of 7-element array of highp float) +0:77 'g4' ( global 4-element array of 7-element array of highp float) +0:77 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) +0:77 'g5' ( global 5-element array of 7-element array of highp float) +0:78 'g5' ( global 5-element array of 7-element array of highp float) +0:79 'gu' ( global unsized 1-element array of 7-element array of highp float) +0:81 Constant: +0:81 0.000000 +0:82 Function Call: bar(f1[5][7]; ( global void) +0:82 'g5' ( global 5-element array of 7-element array of highp float) +0:84 Test condition and select ( temp void) +0:84 Condition +0:84 Compare Equal ( temp bool) +0:84 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) +0:84 'g5' ( global 5-element array of 7-element array of highp float) +0:84 'g4' ( global 4-element array of 7-element array of highp float) +0:84 true case is null +0:86 Test condition and select ( temp void) +0:86 Condition +0:86 Constant: +0:86 false (const bool) +0:86 true case is null +0:90 move second child to first child ( temp highp float) +0:90 direct index ( temp highp float) +0:90 direct index ( temp 7-element array of highp float) +0:90 'u' ( temp 5-element array of 7-element array of highp float) +0:90 Constant: +0:90 5 (const int) +0:90 Constant: +0:90 2 (const int) +0:90 Constant: +0:90 5.000000 +0:91 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) +0:91 'u' ( temp 5-element array of 7-element array of highp float) +0:94 direct index (layout( column_major shared) temp highp 4-component vector of float) +0:94 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float) +0:94 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:94 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:94 Constant: +0:94 1 (const int) +0:94 Constant: +0:94 1 (const int) +0:94 Constant: +0:94 -1 (const int) +0:95 move second child to first child ( temp highp 4-component vector of float) +0:95 direct index (layout( column_major shared) temp highp 4-component vector of float) +0:95 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float) +0:95 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:95 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:95 Constant: +0:95 1 (const int) +0:95 Constant: +0:95 1 (const int) +0:95 Constant: +0:95 1 (const int) +0:95 Constant: +0:95 4.300000 +0:95 4.300000 +0:95 4.300000 +0:95 4.300000 +0:96 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float) +0:96 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:96 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:96 Constant: +0:96 1 (const int) +0:96 Constant: +0:96 1 (const int) +0:98 Constant: +0:98 7 (const int) +0:99 array length ( temp int) +0:99 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float) +0:99 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) +0:99 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:117 Function Definition: func(mf33[3][2]; ( global highp 3-component vector of float) +0:117 Function Parameters: +0:117 'x' ( in 3-element array of 2-element array of highp 3X3 matrix of float) +0:119 Sequence +0:119 Sequence +0:119 move second child to first child ( temp highp 3X3 matrix of float) +0:119 'a0' ( temp highp 3X3 matrix of float) +0:119 direct index ( temp highp 3X3 matrix of float) +0:119 direct index ( temp 2-element array of highp 3X3 matrix of float) +0:119 'x' ( in 3-element array of 2-element array of highp 3X3 matrix of float) +0:119 Constant: +0:119 2 (const int) +0:119 Constant: +0:119 1 (const int) +0:120 Branch: Return with expression +0:120 direct index ( temp highp 3-component vector of float) +0:120 'a0' ( temp highp 3X3 matrix of float) +0:120 Constant: +0:120 2 (const int) +0:? Linker Objects +0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform unsized 1-element array of highp 4-component vector of float v}) +0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 1-element array of 1-element array of highp 4-component vector of float v}) +0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) +0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float) +0:? 'gu' ( global unsized 1-element array of 7-element array of highp float) +0:? 'g4' ( global 4-element array of 7-element array of highp float) +0:? 'g5' ( global 5-element array of 7-element array of highp float) +0:? 'inArray' ( in 2-element array of 3-element array of highp float) +0:? 'outArray' ( smooth out 2-element array of 3-element array of highp float) +0:? 'ubaaname' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform highp int a}) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 310 +ERROR: node is still EOpNull! +0:8 Function Definition: f(b1;f1;u1[4];i1[3][2]; ( global void) +0:8 Function Parameters: +0:8 'a' ( in bool) +0:8 'b' ( in highp float) +0:8 'c' ( in 4-element array of highp uint) +0:8 'd' ( in 3-element array of 2-element array of highp int) +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:? Sequence +0:13 Function Call: f(b1;f1;u1[4];i1[3][2]; ( global void) +0:13 Constant: +0:13 false (const bool) +0:13 Constant: +0:13 12.100000 +0:13 Constant: +0:13 0 (const uint) +0:13 1 (const uint) +0:13 1 (const uint) +0:13 2 (const uint) +0:13 'd' ( temp 3-element array of 2-element array of highp int) +0:? Linker Objects +0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) +0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform 1-element array of highp 4-component vector of float v}) +0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 1-element array of 1-element array of highp 4-component vector of float v}) +0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) +0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float) +0:? 'gu' ( global 1-element array of 7-element array of highp float) +0:? 'g4' ( global 4-element array of 7-element array of highp float) +0:? 'g5' ( global 5-element array of 7-element array of highp float) +0:? 'inArray' ( in 2-element array of 3-element array of highp float) +0:? 'outArray' ( smooth out 2-element array of 3-element array of highp float) +0:? 'ubaaname' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform highp int a}) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/310implicitSizeArrayError.vert.out b/deps/glslang/glslang/Test/baseResults/310implicitSizeArrayError.vert.out new file mode 100644 index 0000000000..6975cde230 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310implicitSizeArrayError.vert.out @@ -0,0 +1,49 @@ +310implicitSizeArrayError.vert +ERROR: 0:3: '' : array size required +ERROR: 1 compilation errors. No code generated. + + +Shader version: 310 +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:7 Sequence +0:7 move second child to first child ( temp highp int) +0:7 'o' (layout( location=0) smooth out highp int) +0:7 direct index (layout( column_major shared) temp highp int) +0:7 a: direct index for structure (layout( column_major shared) uniform unsized 3-element array of highp int) +0:7 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform unsized 3-element array of highp int a}) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 2 (const int) +0:? Linker Objects +0:? 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform unsized 3-element array of highp int a}) +0:? 'o' (layout( location=0) smooth out highp int) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 310 +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:7 Sequence +0:7 move second child to first child ( temp highp int) +0:7 'o' (layout( location=0) smooth out highp int) +0:7 direct index (layout( column_major shared) temp highp int) +0:7 a: direct index for structure (layout( column_major shared) uniform 3-element array of highp int) +0:7 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform 3-element array of highp int a}) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 2 (const int) +0:? Linker Objects +0:? 'uni' (layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform 3-element array of highp int a}) +0:? 'o' (layout( location=0) smooth out highp int) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/310runtimeArray.vert.out b/deps/glslang/glslang/Test/baseResults/310runtimeArray.vert.out new file mode 100644 index 0000000000..84c731edbc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/310runtimeArray.vert.out @@ -0,0 +1,145 @@ +310runtimeArray.vert +ERROR: 0:9: '' : array size required +ERROR: 1 compilation errors. No code generated. + + +Shader version: 310 +ERROR: node is still EOpNull! +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 move second child to first child ( temp highp float) +0:14 'o' (layout( location=0) smooth out highp float) +0:14 f: direct index for structure ( global highp float) +0:14 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:14 s: direct index for structure (layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f}) +0:14 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 5 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 add second child into first child ( temp highp float) +0:15 'o' (layout( location=0) smooth out highp float) +0:15 f: direct index for structure ( global highp float) +0:15 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:15 s: direct index for structure (layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f}) +0:15 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 6 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 add second child into first child ( temp highp float) +0:16 'o' (layout( location=0) smooth out highp float) +0:16 f: direct index for structure ( global highp float) +0:16 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:16 s: direct index for structure (layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f}) +0:16 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) +0:16 'b3name' (layout( column_major shared) buffer unsized 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) +0:16 Constant: +0:16 3 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 7 (const int) +0:16 Constant: +0:16 0 (const int) +0:17 add second child into first child ( temp highp float) +0:17 'o' (layout( location=0) smooth out highp float) +0:17 f: direct index for structure ( global highp float) +0:17 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:17 s: direct index for structure (layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f}) +0:17 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) +0:17 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 8 (const int) +0:17 Constant: +0:17 0 (const int) +0:? Linker Objects +0:? 'o' (layout( location=0) smooth out highp float) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) +0:? 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) +0:? 'b3name' (layout( column_major shared) buffer unsized 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) +0:? 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 310 +ERROR: node is still EOpNull! +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 move second child to first child ( temp highp float) +0:14 'o' (layout( location=0) smooth out highp float) +0:14 f: direct index for structure ( global highp float) +0:14 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:14 s: direct index for structure (layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f}) +0:14 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 5 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 add second child into first child ( temp highp float) +0:15 'o' (layout( location=0) smooth out highp float) +0:15 f: direct index for structure ( global highp float) +0:15 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:15 s: direct index for structure (layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f}) +0:15 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 6 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 add second child into first child ( temp highp float) +0:16 'o' (layout( location=0) smooth out highp float) +0:16 f: direct index for structure ( global highp float) +0:16 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:16 s: direct index for structure (layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f}) +0:16 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) +0:16 'b3name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) +0:16 Constant: +0:16 3 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 7 (const int) +0:16 Constant: +0:16 0 (const int) +0:17 add second child into first child ( temp highp float) +0:17 'o' (layout( location=0) smooth out highp float) +0:17 f: direct index for structure ( global highp float) +0:17 direct index (layout( column_major shared) temp structure{ global highp float f}) +0:17 s: direct index for structure (layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f}) +0:17 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) +0:17 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 8 (const int) +0:17 Constant: +0:17 0 (const int) +0:? Linker Objects +0:? 'o' (layout( location=0) smooth out highp float) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 6-element array of structure{ global highp float f} s}) +0:? 'b2name' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 7-element array of structure{ global highp float f} s}) +0:? 'b3name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 8-element array of structure{ global highp float f} s}) +0:? 'b4name' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer unsized 9-element array of structure{ global highp float f} s}) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/320.comp.out b/deps/glslang/glslang/Test/baseResults/320.comp.out new file mode 100644 index 0000000000..09cedd0a00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/320.comp.out @@ -0,0 +1,19 @@ +320.comp +Shader version: 320 +local_size = (1, 1, 1) +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + + +Linked compute stage: + + +Shader version: 320 +local_size = (1, 1, 1) +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/320.frag.out b/deps/glslang/glslang/Test/baseResults/320.frag.out new file mode 100644 index 0000000000..002aa7f67b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/320.frag.out @@ -0,0 +1,576 @@ +320.frag +ERROR: 0:3: 'output block' : not supported in this stage: fragment +ERROR: 0:7: 'float' : type requires declaration of default precision qualifier +ERROR: 0:8: '' : cannot nest a structure definition inside a structure or block +ERROR: 0:16: 'location' : overlapping use of location 13 +ERROR: 0:18: 'inbname2' : Cannot reuse block name within the same interface: in +ERROR: 0:23: 'badmember' : nameless block contains a member that already has a name at global scope +ERROR: 0:27: 'inbname' : redefinition +ERROR: 0:29: 'vAnon' : redefinition +ERROR: 0:43: 'origin_upper_left' : not supported with this profile: es +ERROR: 0:43: 'pixel_center_integer' : not supported with this profile: es +ERROR: 0:43: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord +ERROR: 0:47: 'depth layout qualifier' : not supported with this profile: es +ERROR: 0:51: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests) +ERROR: 0:79: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument +ERROR: 0:124: 'rgba32f' : format requires readonly or writeonly memory qualifier +ERROR: 0:125: 'rgba8ui' : format requires readonly or writeonly memory qualifier +ERROR: 0:126: 'rgba16i' : format requires readonly or writeonly memory qualifier +ERROR: 0:152: 'imageAtomicMax' : only supported on image with format r32i or r32ui +ERROR: 0:153: 'imageAtomicMax' : only supported on image with format r32i or r32ui +ERROR: 0:154: 'imageAtomicExchange' : only supported on image with format r32f +ERROR: 0:157: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output +ERROR: 0:158: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output +ERROR: 0:159: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output +ERROR: 0:160: 'noperspective' : Reserved word. +ERROR: 0:160: 'noperspective' : not supported for this version or the enabled extensions +ERROR: 0:160: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output +ERROR: 0:165: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output +ERROR: 0:180: 'interpolateAtCentroid' : no matching overloaded function found +ERROR: 0:180: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' +ERROR: 0:182: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:184: 'interpolateAtSample' : no matching overloaded function found +ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' +ERROR: 0:186: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:189: 'interpolateAtOffset' : no matching overloaded function found +ERROR: 0:189: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' +ERROR: 0:191: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:192: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:196: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:197: 'outp' : undeclared identifier +ERROR: 0:197: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:197: 'assign' : cannot convert from ' global float' to ' temp mediump 4-component vector of float' +ERROR: 0:217: 'blend equation' : can only apply to 'out' +ERROR: 0:218: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:219: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:220: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:221: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:222: 'blend equation' : can only apply to a standalone qualifier +ERROR: 0:223: 'blend_support' : unknown blend equation +ERROR: 0:225: 'fragment-shader array-of-array output' : not supported with this profile: es +ERROR: 49 compilation errors. No code generated. + + +Shader version: 320 +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +using early_fragment_tests +using depth_any +using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations +ERROR: node is still EOpNull! +0:35 Function Definition: fooIO( ( global void) +0:35 Function Parameters: +0:37 Sequence +0:37 Sequence +0:37 move second child to first child ( temp mediump 4-component vector of float) +0:37 'v' ( temp mediump 4-component vector of float) +0:37 add ( temp mediump 4-component vector of float) +0:37 v: direct index for structure ( in mediump 4-component vector of float) +0:37 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) +0:37 Constant: +0:37 1 (const int) +0:37 vAnon: direct index for structure (layout( location=13) centroid in mediump 4-component vector of float) +0:37 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) +0:37 Constant: +0:37 1 (const uint) +0:38 vector scale second child into first child ( temp mediump 4-component vector of float) +0:38 'v' ( temp mediump 4-component vector of float) +0:38 f: direct index for structure ( in mediump float) +0:38 direct index ( temp block{ in mediump float f}) +0:38 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:38 Constant: +0:38 2 (const int) +0:38 Constant: +0:38 0 (const int) +0:39 vector scale second child into first child ( temp mediump 4-component vector of float) +0:39 'v' ( temp mediump 4-component vector of float) +0:39 f: direct index for structure ( in mediump float) +0:39 indirect index ( temp block{ in mediump float f}) +0:39 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:39 'i' ( uniform mediump int) +0:39 Constant: +0:39 0 (const int) +0:49 Function Definition: main( ( global void) +0:49 Function Parameters: +0:51 Sequence +0:51 move second child to first child ( temp highp float) +0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:51 Constant: +0:51 0.200000 +0:52 Sequence +0:52 move second child to first child ( temp bool) +0:52 'f' ( temp bool) +0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:57 Function Definition: foo_GS( ( global void) +0:57 Function Parameters: +0:59 Sequence +0:59 Sequence +0:59 move second child to first child ( temp highp int) +0:59 'l' ( temp highp int) +0:59 'gl_Layer' ( flat in highp int Layer) +0:60 Sequence +0:60 move second child to first child ( temp highp int) +0:60 'p' ( temp highp int) +0:60 'gl_PrimitiveID' ( flat in highp int PrimitiveID) +0:73 Function Definition: pfoo( ( global void) +0:73 Function Parameters: +0:? Sequence +0:76 move second child to first child ( temp mediump 2-component vector of float) +0:76 'h' ( noContraction temp mediump 2-component vector of float) +0:76 fma ( global mediump 2-component vector of float) +0:76 'inf' ( smooth in mediump 2-component vector of float) +0:76 'ing' ( smooth in mediump 2-component vector of float) +0:76 'h' ( noContraction temp mediump 2-component vector of float) +0:77 textureGatherOffset ( global lowp 4-component vector of float) +0:77 direct index ( temp lowp sampler2D) +0:77 'sArray' ( uniform 4-element array of lowp sampler2D) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0.100000 +0:77 0.100000 +0:77 Convert float to int ( temp lowp 2-component vector of int) +0:77 'inf' ( smooth in mediump 2-component vector of float) +0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) +0:78 direct index ( temp lowp sampler2D) +0:78 'sArray' ( uniform 4-element array of lowp sampler2D) +0:78 Constant: +0:78 0 (const int) +0:78 Constant: +0:78 0.100000 +0:78 0.100000 +0:78 Constant: +0:78 0 (const int) +0:78 0 (const int) +0:78 0 (const int) +0:78 0 (const int) +0:78 0 (const int) +0:78 0 (const int) +0:78 0 (const int) +0:78 0 (const int) +0:79 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) +0:79 direct index ( temp lowp sampler2D) +0:79 'sArray' ( uniform 4-element array of lowp sampler2D) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 0.100000 +0:79 0.100000 +0:79 'offsets' ( uniform 4-element array of mediump 2-component vector of int) +0:102 Function Definition: CAT( ( global void) +0:102 Function Parameters: +0:104 Sequence +0:104 Sequence +0:104 move second child to first child ( temp highp 4-component vector of float) +0:104 'b4' ( temp highp 4-component vector of float) +0:104 texture ( global highp 4-component vector of float) +0:104 'CA4' ( uniform highp samplerCubeArray) +0:104 Constant: +0:104 0.500000 +0:104 0.500000 +0:104 0.500000 +0:104 0.500000 +0:104 Constant: +0:104 0.240000 +0:105 Sequence +0:105 move second child to first child ( temp highp 4-component vector of int) +0:105 'b6' ( temp highp 4-component vector of int) +0:105 texture ( global highp 4-component vector of int) +0:105 'CA6' ( uniform highp isamplerCubeArray) +0:105 Constant: +0:105 0.500000 +0:105 0.500000 +0:105 0.500000 +0:105 0.500000 +0:105 Constant: +0:105 0.260000 +0:106 Sequence +0:106 move second child to first child ( temp highp 4-component vector of uint) +0:106 'b7' ( temp highp 4-component vector of uint) +0:106 texture ( global highp 4-component vector of uint) +0:106 'CA7' ( uniform highp usamplerCubeArray) +0:106 Constant: +0:106 0.500000 +0:106 0.500000 +0:106 0.500000 +0:106 0.500000 +0:106 Constant: +0:106 0.270000 +0:109 Function Definition: goodSample( ( global void) +0:109 Function Parameters: +0:111 Sequence +0:111 Sequence +0:111 move second child to first child ( temp lowp int) +0:111 'a1' ( temp lowp int) +0:111 'gl_SampleID' ( flat in lowp int SampleId) +0:112 Sequence +0:112 move second child to first child ( temp mediump 2-component vector of float) +0:112 'a2' ( temp mediump 2-component vector of float) +0:112 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) +0:113 Sequence +0:113 move second child to first child ( temp highp int) +0:113 'a3' ( temp highp int) +0:113 direct index ( flat temp highp int SampleMaskIn) +0:113 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) +0:113 Constant: +0:113 0 (const int) +0:114 move second child to first child ( temp highp int) +0:114 direct index ( temp highp int SampleMaskIn) +0:114 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) +0:114 Constant: +0:114 0 (const int) +0:114 'a3' ( temp highp int) +0:115 Sequence +0:115 move second child to first child ( temp mediump int) +0:115 'n1' ( temp mediump int) +0:115 Constant: +0:115 4 (const int) +0:116 Sequence +0:116 move second child to first child ( temp mediump int) +0:116 'n2' ( temp mediump int) +0:116 'gl_NumSamples' ( uniform lowp int) +0:128 Function Definition: goodImageAtom( ( global void) +0:128 Function Parameters: +0:? Sequence +0:134 imageAtomicAdd ( global highp int) +0:134 'im2Di' (layout( r32i) uniform highp iimage2D) +0:134 'P' ( uniform mediump 2-component vector of int) +0:134 'dati' ( temp mediump int) +0:135 imageAtomicAdd ( global highp uint) +0:135 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:135 'P' ( uniform mediump 2-component vector of int) +0:135 'datu' ( temp mediump uint) +0:136 imageAtomicMin ( global highp int) +0:136 'im2Di' (layout( r32i) uniform highp iimage2D) +0:136 'P' ( uniform mediump 2-component vector of int) +0:136 'dati' ( temp mediump int) +0:137 imageAtomicMin ( global highp uint) +0:137 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:137 'P' ( uniform mediump 2-component vector of int) +0:137 'datu' ( temp mediump uint) +0:138 imageAtomicMax ( global highp int) +0:138 'im2Di' (layout( r32i) uniform highp iimage2D) +0:138 'P' ( uniform mediump 2-component vector of int) +0:138 'dati' ( temp mediump int) +0:139 imageAtomicMax ( global highp uint) +0:139 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:139 'P' ( uniform mediump 2-component vector of int) +0:139 'datu' ( temp mediump uint) +0:140 imageAtomicAnd ( global highp int) +0:140 'im2Di' (layout( r32i) uniform highp iimage2D) +0:140 'P' ( uniform mediump 2-component vector of int) +0:140 'dati' ( temp mediump int) +0:141 imageAtomicAnd ( global highp uint) +0:141 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:141 'P' ( uniform mediump 2-component vector of int) +0:141 'datu' ( temp mediump uint) +0:142 imageAtomicOr ( global highp int) +0:142 'im2Di' (layout( r32i) uniform highp iimage2D) +0:142 'P' ( uniform mediump 2-component vector of int) +0:142 'dati' ( temp mediump int) +0:143 imageAtomicOr ( global highp uint) +0:143 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:143 'P' ( uniform mediump 2-component vector of int) +0:143 'datu' ( temp mediump uint) +0:144 imageAtomicXor ( global highp int) +0:144 'im2Di' (layout( r32i) uniform highp iimage2D) +0:144 'P' ( uniform mediump 2-component vector of int) +0:144 'dati' ( temp mediump int) +0:145 imageAtomicXor ( global highp uint) +0:145 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:145 'P' ( uniform mediump 2-component vector of int) +0:145 'datu' ( temp mediump uint) +0:146 imageAtomicExchange ( global highp int) +0:146 'im2Di' (layout( r32i) uniform highp iimage2D) +0:146 'P' ( uniform mediump 2-component vector of int) +0:146 'dati' ( temp mediump int) +0:147 imageAtomicExchange ( global highp uint) +0:147 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:147 'P' ( uniform mediump 2-component vector of int) +0:147 'datu' ( temp mediump uint) +0:148 imageAtomicExchange ( global highp float) +0:148 'im2Df' (layout( r32f) uniform highp image2D) +0:148 'P' ( uniform mediump 2-component vector of int) +0:148 'datf' ( temp mediump float) +0:149 imageAtomicCompSwap ( global highp int) +0:149 'im2Di' (layout( r32i) uniform highp iimage2D) +0:149 'P' ( uniform mediump 2-component vector of int) +0:149 Constant: +0:149 3 (const int) +0:149 'dati' ( temp mediump int) +0:150 imageAtomicCompSwap ( global highp uint) +0:150 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:150 'P' ( uniform mediump 2-component vector of int) +0:150 Constant: +0:150 5 (const uint) +0:150 'datu' ( temp mediump uint) +0:152 imageAtomicMax ( global highp int) +0:152 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) +0:152 'P' ( uniform mediump 2-component vector of int) +0:152 'dati' ( temp mediump int) +0:153 imageAtomicMax ( global highp uint) +0:153 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) +0:153 'P' ( uniform mediump 2-component vector of int) +0:153 'datu' ( temp mediump uint) +0:154 imageAtomicExchange ( global highp float) +0:154 'badIm2Df' (layout( rgba32f) uniform highp image2D) +0:154 'P' ( uniform mediump 2-component vector of int) +0:154 'datf' ( temp mediump float) +0:169 Function Definition: interp( ( global void) +0:169 Function Parameters: +0:? Sequence +0:176 move second child to first child ( temp mediump 2-component vector of float) +0:176 'res2' ( temp mediump 2-component vector of float) +0:176 interpolateAtCentroid ( global mediump 2-component vector of float) +0:176 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:177 move second child to first child ( temp mediump 4-component vector of float) +0:177 'res4' ( temp mediump 4-component vector of float) +0:177 interpolateAtCentroid ( global mediump 4-component vector of float) +0:177 'colorSampIn' ( smooth sample in mediump 4-component vector of float) +0:178 move second child to first child ( temp mediump 4-component vector of float) +0:178 'res4' ( temp mediump 4-component vector of float) +0:178 interpolateAtCentroid ( global mediump 4-component vector of float) +0:178 'colorfsi' ( flat sample in mediump 4-component vector of float) +0:179 move second child to first child ( temp mediump float) +0:179 'res' ( temp mediump float) +0:179 interpolateAtCentroid ( global mediump float) +0:179 'scalarIn' ( smooth in mediump float) +0:180 'res3' ( temp mediump 3-component vector of float) +0:181 move second child to first child ( temp mediump 3-component vector of float) +0:181 'res3' ( temp mediump 3-component vector of float) +0:181 interpolateAtCentroid ( global mediump 3-component vector of float) +0:181 direct index ( smooth sample temp mediump 3-component vector of float) +0:181 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:181 Constant: +0:181 2 (const int) +0:182 move second child to first child ( temp mediump 2-component vector of float) +0:182 'res2' ( temp mediump 2-component vector of float) +0:182 interpolateAtCentroid ( global mediump 2-component vector of float) +0:182 vector swizzle ( temp mediump 2-component vector of float) +0:182 direct index ( smooth sample temp mediump 3-component vector of float) +0:182 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:182 Constant: +0:182 2 (const int) +0:182 Sequence +0:182 Constant: +0:182 0 (const int) +0:182 Constant: +0:182 1 (const int) +0:184 'res3' ( temp mediump 3-component vector of float) +0:185 move second child to first child ( temp mediump 3-component vector of float) +0:185 'res3' ( temp mediump 3-component vector of float) +0:185 interpolateAtSample ( global mediump 3-component vector of float) +0:185 indirect index ( smooth sample temp mediump 3-component vector of float) +0:185 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:185 'i' ( uniform mediump int) +0:185 Constant: +0:185 0 (const int) +0:186 move second child to first child ( temp mediump 2-component vector of float) +0:186 'res2' ( temp mediump 2-component vector of float) +0:186 interpolateAtSample ( global mediump 2-component vector of float) +0:186 vector swizzle ( temp mediump 2-component vector of float) +0:186 direct index ( smooth sample temp mediump 3-component vector of float) +0:186 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:186 Constant: +0:186 2 (const int) +0:186 Sequence +0:186 Constant: +0:186 0 (const int) +0:186 Constant: +0:186 1 (const int) +0:186 Constant: +0:186 2 (const int) +0:187 move second child to first child ( temp mediump float) +0:187 'res' ( temp mediump float) +0:187 interpolateAtSample ( global mediump float) +0:187 'scalarIn' ( smooth in mediump float) +0:187 Constant: +0:187 1 (const int) +0:189 'res3' ( temp mediump 3-component vector of float) +0:190 move second child to first child ( temp mediump 3-component vector of float) +0:190 'res3' ( temp mediump 3-component vector of float) +0:190 interpolateAtOffset ( global mediump 3-component vector of float) +0:190 direct index ( smooth sample temp mediump 3-component vector of float) +0:190 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:190 Constant: +0:190 2 (const int) +0:190 Constant: +0:190 0.200000 +0:190 0.200000 +0:191 move second child to first child ( temp mediump 2-component vector of float) +0:191 'res2' ( temp mediump 2-component vector of float) +0:191 interpolateAtOffset ( global mediump 2-component vector of float) +0:191 vector swizzle ( temp mediump 2-component vector of float) +0:191 direct index ( smooth sample temp mediump 3-component vector of float) +0:191 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:191 Constant: +0:191 2 (const int) +0:191 Sequence +0:191 Constant: +0:191 0 (const int) +0:191 Constant: +0:191 1 (const int) +0:191 Constant: +0:191 0.200000 +0:191 0.200000 +0:192 move second child to first child ( temp mediump float) +0:192 'res' ( temp mediump float) +0:192 interpolateAtOffset ( global mediump float) +0:192 add ( temp mediump float) +0:192 'scalarIn' ( smooth in mediump float) +0:192 'scalarIn' ( smooth in mediump float) +0:192 Constant: +0:192 0.200000 +0:192 0.200000 +0:193 move second child to first child ( temp mediump float) +0:193 'res' ( temp mediump float) +0:193 interpolateAtOffset ( global mediump float) +0:193 'scalarIn' ( smooth in mediump float) +0:193 Constant: +0:193 0.200000 +0:193 0.200000 +0:196 move second child to first child ( temp mediump float) +0:196 'res' ( temp mediump float) +0:196 interpolateAtCentroid ( global mediump float) +0:196 'f' ( temp mediump float) +0:197 'res4' ( temp mediump 4-component vector of float) +0:221 Function Definition: blendFoo( ( temp void) +0:221 Function Parameters: +0:222 Function Definition: blendFoo(vf3; ( global void) +0:222 Function Parameters: +0:222 'v' ( in mediump 3-component vector of float) +0:? Linker Objects +0:? 'outbinst' ( out block{ out mediump int a}) +0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) +0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) +0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:? 'i' ( uniform mediump int) +0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) +0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:? 'inf' ( smooth in mediump 2-component vector of float) +0:? 'ing' ( smooth in mediump 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of lowp sampler2D) +0:? 'sIndex' ( uniform mediump int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) +0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform mediump 2-component vector of int) +0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) +0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) +0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) +0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) +0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) +0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) +0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) +0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:? 'scalarIn' ( smooth in mediump float) +0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) +0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) +0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) +0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:? 'badout' ( out mediump 4-component vector of float) +0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers + +Shader version: 320 +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +using early_fragment_tests +using depth_any +using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations +ERROR: node is still EOpNull! +0:49 Function Definition: main( ( global void) +0:49 Function Parameters: +0:51 Sequence +0:51 move second child to first child ( temp highp float) +0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:51 Constant: +0:51 0.200000 +0:52 Sequence +0:52 move second child to first child ( temp bool) +0:52 'f' ( temp bool) +0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face) +0:? Linker Objects +0:? 'outbinst' ( out block{ out mediump int a}) +0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) +0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) +0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) +0:? 'i' ( uniform mediump int) +0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) +0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) +0:? 'inf' ( smooth in mediump 2-component vector of float) +0:? 'ing' ( smooth in mediump 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of lowp sampler2D) +0:? 'sIndex' ( uniform mediump int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn) +0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform mediump 2-component vector of int) +0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) +0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) +0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) +0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) +0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) +0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) +0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) +0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) +0:? 'scalarIn' ( smooth in mediump float) +0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) +0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) +0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) +0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) +0:? 'badout' ( out mediump 4-component vector of float) +0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/320.geom.out b/deps/glslang/glslang/Test/baseResults/320.geom.out new file mode 100644 index 0000000000..f3337660b5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/320.geom.out @@ -0,0 +1,251 @@ +320.geom +ERROR: 0:19: 'fromVertex' : block instance name redefinition +ERROR: 0:23: 'fromVertex' : redefinition +ERROR: 0:25: 'fooC' : block instance name redefinition +ERROR: 0:33: 'EmitStreamVertex' : no matching overloaded function found +ERROR: 0:34: 'EndStreamPrimitive' : no matching overloaded function found +ERROR: 0:37: 'gl_ClipDistance' : undeclared identifier +ERROR: 0:37: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector +ERROR: 0:38: 'gl_ClipDistance' : no such field in structure +ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:37: 'assign' : l-value required (can't modify a const) +ERROR: 0:45: 'selecting output stream' : not supported with this profile: es +ERROR: 0:52: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices +ERROR: 0:52: 'max_vertices' : cannot change previously set layout value +ERROR: 0:53: 'max_vertices' : can only apply to a standalone qualifier +ERROR: 0:58: 'points' : cannot change previously set output primitive +ERROR: 0:59: 'points' : cannot change previously set output primitive +ERROR: 0:60: 'triangle_strip' : cannot apply to input +ERROR: 0:61: 'triangle_strip' : cannot apply to: uniform +ERROR: 0:62: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:63: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:64: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:66: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier +ERROR: 0:68: 'triangle_strip' : can only apply to a standalone qualifier +ERROR: 0:71: 'lines' : cannot apply to 'out' +ERROR: 0:73: 'triangles' : cannot change previously set input primitive +ERROR: 0:74: 'triangles_adjacency' : cannot change previously set input primitive +ERROR: 0:106: 'gl_ViewportIndex' : undeclared identifier +ERROR: 0:107: 'gl_MaxViewports' : undeclared identifier +ERROR: 0:113: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad +ERROR: 0:114: 'in' : type must be an array: nonArrayed +ERROR: 0:122: 'component' : not supported with this profile: es +ERROR: 0:126: 'gl_MaxGeometryVaryingComponents' : undeclared identifier +ERROR: 0:127: 'gl_VerticesIn' : undeclared identifier +ERROR: 0:132: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_geometry_point_size +GL_OES_geometry_point_size +ERROR: 0:133: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_geometry_point_size +GL_OES_geometry_point_size +ERROR: 36 compilation errors. No code generated. + + +Shader version: 320 +invocations = 4 +max_vertices = 200 +input primitive = lines_adjacency +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:29 Function Definition: main( ( global void) +0:29 Function Parameters: +0:31 Sequence +0:31 EmitVertex ( global void) +0:32 EndPrimitive ( global void) +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 +0:36 move second child to first child ( temp mediump 3-component vector of float) +0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) +0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:36 Constant: +0:36 0 (const uint) +0:36 color: direct index for structure ( in mediump 3-component vector of float) +0:36 direct index ( temp block{ in mediump 3-component vector of float color}) +0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:37 move second child to first child ( temp float) +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 move second child to first child ( temp highp 4-component vector of float) +0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) +0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:39 Constant: +0:39 0 (const uint) +0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:41 move second child to first child ( temp highp int) +0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) +0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) +0:42 move second child to first child ( temp highp int) +0:42 'gl_Layer' (layout( stream=0) out highp int Layer) +0:42 Constant: +0:42 2 (const int) +0:53 Function Definition: foo(i1; ( global void) +0:53 Function Parameters: +0:53 'a' ( in highp int) +0:55 Sequence +0:55 move second child to first child ( temp mediump 4-component vector of float) +0:55 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float) +0:55 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 1.000000 +0:55 1.000000 +0:55 1.000000 +0:55 1.000000 +0:104 Function Definition: fooe1( ( global void) +0:104 Function Parameters: +0:106 Sequence +0:106 'gl_ViewportIndex' ( temp float) +0:107 'gl_MaxViewports' ( temp float) +0:108 Constant: +0:108 4 (const int) +0:109 Sequence +0:109 move second child to first child ( temp highp int) +0:109 'inv' ( temp highp int) +0:109 'gl_InvocationID' ( in highp int InvocationID) +0:124 Function Definition: notHere( ( global void) +0:124 Function Parameters: +0:126 Sequence +0:126 'gl_MaxGeometryVaryingComponents' ( temp float) +0:127 'gl_VerticesIn' ( temp float) +0:130 Function Definition: pointSize2( ( global void) +0:130 Function Parameters: +0:132 Sequence +0:132 Sequence +0:132 move second child to first child ( temp highp float) +0:132 'ps' ( temp highp float) +0:132 gl_PointSize: direct index for structure ( in highp float PointSize) +0:132 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:132 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:132 Constant: +0:132 3 (const int) +0:132 Constant: +0:132 1 (const int) +0:133 move second child to first child ( temp highp float) +0:133 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) +0:133 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:133 Constant: +0:133 1 (const uint) +0:133 'ps' ( temp highp float) +0:? Linker Objects +0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) +0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) +0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) +0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) +0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) +0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) +0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) +0:? 'insn' ( in 4-element array of block{ in highp int a15}) +0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) +0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) +0:? 'summ' ( const highp int) +0:? 2752 (const int) +0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) +0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) +0:? 'nonArrayed' ( in mediump 4-component vector of float) +0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) +0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) +0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) +0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) +0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) + + +Linked geometry stage: + + +Shader version: 320 +invocations = 4 +max_vertices = 200 +input primitive = lines_adjacency +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:29 Function Definition: main( ( global void) +0:29 Function Parameters: +0:31 Sequence +0:31 EmitVertex ( global void) +0:32 EndPrimitive ( global void) +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 +0:36 move second child to first child ( temp mediump 3-component vector of float) +0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) +0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:36 Constant: +0:36 0 (const uint) +0:36 color: direct index for structure ( in mediump 3-component vector of float) +0:36 direct index ( temp block{ in mediump 3-component vector of float color}) +0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:37 move second child to first child ( temp float) +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 move second child to first child ( temp highp 4-component vector of float) +0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) +0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) +0:39 Constant: +0:39 0 (const uint) +0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:41 move second child to first child ( temp highp int) +0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) +0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) +0:42 move second child to first child ( temp highp int) +0:42 'gl_Layer' (layout( stream=0) out highp int Layer) +0:42 Constant: +0:42 2 (const int) +0:? Linker Objects +0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) +0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) +0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) +0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) +0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) +0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) +0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) +0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) +0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) +0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) +0:? 'insn' ( in 4-element array of block{ in highp int a15}) +0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) +0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) +0:? 'summ' ( const highp int) +0:? 2752 (const int) +0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) +0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) +0:? 'nonArrayed' ( in mediump 4-component vector of float) +0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) +0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) +0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) +0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) +0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) + diff --git a/deps/glslang/glslang/Test/baseResults/320.tesc.out b/deps/glslang/glslang/Test/baseResults/320.tesc.out new file mode 100644 index 0000000000..41ee29c330 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/320.tesc.out @@ -0,0 +1,516 @@ +320.tesc +ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader +ERROR: 0:24: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:25: 'gl_ClipDistance' : no such field in structure +ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:32: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:33: 'gl_ClipDistance' : no such field in structure +ERROR: 0:33: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:33: 'assign' : l-value required (can't modify a const) +ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() +ERROR: 0:64: 'vertices' : can only apply to 'out' +ERROR: 0:65: 'vertices' : cannot change previously set layout value +ERROR: 0:69: '[' : array index out of range '4' +ERROR: 0:71: '' : tessellation control barrier() must be in main() +ERROR: 0:74: 'in' : type must be an array: ina +ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:78: '' : array size required +ERROR: 0:84: 'location' : overlapping use of location 4 +ERROR: 0:88: 'location' : overlapping use of location 4 +ERROR: 0:98: 'vertices' : can only apply to a standalone qualifier +ERROR: 0:99: 'vertices' : inconsistent output number of vertices for array size of misSized +ERROR: 0:104: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:105: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:123: '[' : array index out of range '2' +ERROR: 0:126: '' : array size required +ERROR: 0:142: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:143: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 0:146: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID +ERROR: 35 compilation errors. No code generated. + + +Shader version: 320 +Requested GL_ARB_separate_shader_objects +vertices = 4 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier ( global void) +0:17 Sequence +0:17 move second child to first child ( temp highp int) +0:17 'a' ( temp highp int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child ( temp highp 4-component vector of float) +0:23 'p' ( temp highp 4-component vector of float) +0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp highp float) +0:24 'ps' ( temp highp float) +0:24 gl_PointSize: direct index for structure ( in highp float PointSize) +0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp highp float) +0:25 'cd' ( temp highp float) +0:25 Constant: +0:25 0.000000 +0:27 Sequence +0:27 move second child to first child ( temp highp int) +0:27 'pvi' ( temp highp int) +0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:28 Sequence +0:28 move second child to first child ( temp highp int) +0:28 'pid' ( temp highp int) +0:28 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:29 Sequence +0:29 move second child to first child ( temp highp int) +0:29 'iid' ( temp highp int) +0:29 'gl_InvocationID' ( in highp int InvocationID) +0:31 move second child to first child ( temp highp 4-component vector of float) +0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:31 'gl_InvocationID' ( in highp int InvocationID) +0:31 Constant: +0:31 0 (const int) +0:31 'p' ( temp highp 4-component vector of float) +0:32 move second child to first child ( temp highp float) +0:32 gl_PointSize: direct index for structure ( out highp float PointSize) +0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:32 'gl_InvocationID' ( in highp int InvocationID) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' ( temp highp float) +0:33 move second child to first child ( temp highp float) +0:33 Constant: +0:33 0.000000 +0:33 'cd' ( temp highp float) +0:35 move second child to first child ( temp highp float) +0:35 direct index ( patch temp highp float TessLevelOuter) +0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child ( temp highp float) +0:36 direct index ( patch temp highp float TessLevelInner) +0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Greater Than ( temp bool) +0:38 'a' ( temp highp int) +0:38 Constant: +0:38 10 (const int) +0:38 true case +0:39 Barrier ( global void) +0:38 false case +0:41 Barrier ( global void) +0:43 Barrier ( global void) +0:47 Loop with condition not tested first +0:47 Loop Condition +0:47 Compare Greater Than ( temp bool) +0:47 'a' ( temp highp int) +0:47 Constant: +0:47 10 (const int) +0:47 Loop Body +0:46 Sequence +0:46 Barrier ( global void) +0:49 switch +0:49 condition +0:49 'a' ( temp highp int) +0:49 body +0:49 Sequence +0:50 default: +0:? Sequence +0:51 Barrier ( global void) +0:52 Branch: Break +0:54 Test condition and select ( temp highp int) +0:54 Condition +0:54 Compare Less Than ( temp bool) +0:54 'a' ( temp highp int) +0:54 Constant: +0:54 12 (const int) +0:54 true case +0:54 'a' ( temp highp int) +0:54 false case +0:54 Comma ( temp highp int) +0:54 Barrier ( global void) +0:54 'a' ( temp highp int) +0:56 Sequence +0:56 Barrier ( global void) +0:59 Branch: Return +0:61 Barrier ( global void) +0:67 Function Definition: foo( ( global void) +0:67 Function Parameters: +0:69 Sequence +0:69 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:69 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:69 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:69 Constant: +0:69 4 (const int) +0:69 Constant: +0:69 0 (const int) +0:71 Barrier ( global void) +0:102 Function Definition: pointSize2( ( global void) +0:102 Function Parameters: +0:104 Sequence +0:104 Sequence +0:104 move second child to first child ( temp highp float) +0:104 'ps' ( temp highp float) +0:104 gl_PointSize: direct index for structure ( in highp float PointSize) +0:104 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:104 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:104 Constant: +0:104 1 (const int) +0:104 Constant: +0:104 1 (const int) +0:105 move second child to first child ( temp highp float) +0:105 gl_PointSize: direct index for structure ( out highp float PointSize) +0:105 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:105 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:105 'gl_InvocationID' ( in highp int InvocationID) +0:105 Constant: +0:105 1 (const int) +0:105 'ps' ( temp highp float) +0:110 Function Definition: goodfoop( ( global void) +0:110 Function Parameters: +0:? Sequence +0:114 multiply second child into first child ( temp highp 3-component vector of float) +0:114 'pv3' ( noContraction temp highp 3-component vector of float) +0:114 'pv3' ( noContraction temp highp 3-component vector of float) +0:115 move second child to first child ( temp highp 3-component vector of float) +0:115 'pv3' ( noContraction temp highp 3-component vector of float) +0:115 fma ( global highp 3-component vector of float) +0:115 'pv3' ( noContraction temp highp 3-component vector of float) +0:115 'pv3' ( noContraction temp highp 3-component vector of float) +0:115 'pv3' ( noContraction temp highp 3-component vector of float) +0:116 move second child to first child ( temp highp float) +0:116 'd' ( noContraction temp highp float) +0:116 fma ( global highp float) +0:116 'd' ( noContraction temp highp float) +0:116 'd' ( noContraction temp highp float) +0:116 'd' ( noContraction temp highp float) +0:119 Function Definition: bb( ( global void) +0:119 Function Parameters: +0:121 Sequence +0:121 move second child to first child ( temp highp 4-component vector of float) +0:121 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:121 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 0.000000 +0:121 0.000000 +0:121 0.000000 +0:121 0.000000 +0:122 move second child to first child ( temp highp 4-component vector of float) +0:122 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:122 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 1.000000 +0:122 1.000000 +0:122 1.000000 +0:122 1.000000 +0:123 move second child to first child ( temp highp 4-component vector of float) +0:123 direct index ( patch temp highp 4-component vector of float BoundingBox) +0:123 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox) +0:123 Constant: +0:123 2 (const int) +0:123 Constant: +0:123 2.000000 +0:123 2.000000 +0:123 2.000000 +0:123 2.000000 +0:134 Function Definition: outputtingOutparam(i1; ( global void) +0:134 Function Parameters: +0:134 'a' ( out highp int) +0:136 Sequence +0:136 move second child to first child ( temp highp int) +0:136 'a' ( out highp int) +0:136 Constant: +0:136 2 (const int) +0:139 Function Definition: outputting( ( global void) +0:139 Function Parameters: +0:141 Sequence +0:141 move second child to first child ( temp highp int) +0:141 indirect index ( temp highp int) +0:141 'outa' ( out 4-element array of highp int) +0:141 'gl_InvocationID' ( in highp int InvocationID) +0:141 Constant: +0:141 2 (const int) +0:142 move second child to first child ( temp highp int) +0:142 direct index ( temp highp int) +0:142 'outa' ( out 4-element array of highp int) +0:142 Constant: +0:142 1 (const int) +0:142 Constant: +0:142 2 (const int) +0:143 move second child to first child ( temp highp 4-component vector of float) +0:143 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:143 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:143 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:143 Constant: +0:143 0 (const int) +0:143 Constant: +0:143 0 (const int) +0:143 Constant: +0:143 1.000000 +0:143 1.000000 +0:143 1.000000 +0:143 1.000000 +0:144 direct index ( temp highp int) +0:144 'outa' ( out 4-element array of highp int) +0:144 Constant: +0:144 1 (const int) +0:145 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:145 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:145 Constant: +0:145 0 (const int) +0:146 Function Call: outputtingOutparam(i1; ( global void) +0:146 direct index ( temp highp int) +0:146 'outa' ( out 4-element array of highp int) +0:146 Constant: +0:146 0 (const int) +0:147 Function Call: outputtingOutparam(i1; ( global void) +0:147 indirect index ( temp highp int) +0:147 'outa' ( out 4-element array of highp int) +0:147 'gl_InvocationID' ( in highp int InvocationID) +0:148 move second child to first child ( temp highp float) +0:148 f: direct index for structure ( out highp float) +0:148 direct index ( patch temp block{ out highp float f}) +0:148 'patchIName' ( patch out 4-element array of block{ out highp float f}) +0:148 Constant: +0:148 1 (const int) +0:148 Constant: +0:148 0 (const int) +0:148 Constant: +0:148 3.140000 +0:149 move second child to first child ( temp highp int) +0:149 indirect index ( temp highp int) +0:149 'outa' ( out 4-element array of highp int) +0:149 'gl_InvocationID' ( in highp int InvocationID) +0:149 Constant: +0:149 2 (const int) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:? 'outa' ( out 4-element array of highp int) +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'implA' ( patch out unsized 1-element array of highp float) +0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch out block{ out highp int a}) +0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float) +0:? 'badlay' ( out 4-element array of highp float) +0:? 'misSized' ( out 5-element array of highp float) +0:? 'okaySize' ( out 4-element array of highp float) +0:? 'pv3' ( noContraction temp highp 3-component vector of float) +0:? 'badpatchIName' ( patch out unsized 1-element array of block{ out highp float f}) +0:? 'patchIName' ( patch out 4-element array of block{ out highp float f}) + + +Linked tessellation control stage: + + +Shader version: 320 +Requested GL_ARB_separate_shader_objects +vertices = 4 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier ( global void) +0:17 Sequence +0:17 move second child to first child ( temp highp int) +0:17 'a' ( temp highp int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child ( temp highp 4-component vector of float) +0:23 'p' ( temp highp 4-component vector of float) +0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp highp float) +0:24 'ps' ( temp highp float) +0:24 gl_PointSize: direct index for structure ( in highp float PointSize) +0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp highp float) +0:25 'cd' ( temp highp float) +0:25 Constant: +0:25 0.000000 +0:27 Sequence +0:27 move second child to first child ( temp highp int) +0:27 'pvi' ( temp highp int) +0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:28 Sequence +0:28 move second child to first child ( temp highp int) +0:28 'pid' ( temp highp int) +0:28 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:29 Sequence +0:29 move second child to first child ( temp highp int) +0:29 'iid' ( temp highp int) +0:29 'gl_InvocationID' ( in highp int InvocationID) +0:31 move second child to first child ( temp highp 4-component vector of float) +0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position) +0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:31 'gl_InvocationID' ( in highp int InvocationID) +0:31 Constant: +0:31 0 (const int) +0:31 'p' ( temp highp 4-component vector of float) +0:32 move second child to first child ( temp highp float) +0:32 gl_PointSize: direct index for structure ( out highp float PointSize) +0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:32 'gl_InvocationID' ( in highp int InvocationID) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' ( temp highp float) +0:33 move second child to first child ( temp highp float) +0:33 Constant: +0:33 0.000000 +0:33 'cd' ( temp highp float) +0:35 move second child to first child ( temp highp float) +0:35 direct index ( patch temp highp float TessLevelOuter) +0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child ( temp highp float) +0:36 direct index ( patch temp highp float TessLevelInner) +0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Greater Than ( temp bool) +0:38 'a' ( temp highp int) +0:38 Constant: +0:38 10 (const int) +0:38 true case +0:39 Barrier ( global void) +0:38 false case +0:41 Barrier ( global void) +0:43 Barrier ( global void) +0:47 Loop with condition not tested first +0:47 Loop Condition +0:47 Compare Greater Than ( temp bool) +0:47 'a' ( temp highp int) +0:47 Constant: +0:47 10 (const int) +0:47 Loop Body +0:46 Sequence +0:46 Barrier ( global void) +0:49 switch +0:49 condition +0:49 'a' ( temp highp int) +0:49 body +0:49 Sequence +0:50 default: +0:? Sequence +0:51 Barrier ( global void) +0:52 Branch: Break +0:54 Test condition and select ( temp highp int) +0:54 Condition +0:54 Compare Less Than ( temp bool) +0:54 'a' ( temp highp int) +0:54 Constant: +0:54 12 (const int) +0:54 true case +0:54 'a' ( temp highp int) +0:54 false case +0:54 Comma ( temp highp int) +0:54 Barrier ( global void) +0:54 'a' ( temp highp int) +0:56 Sequence +0:56 Barrier ( global void) +0:59 Branch: Return +0:61 Barrier ( global void) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) +0:? 'outa' ( out 4-element array of highp int) +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'implA' ( patch out 1-element array of highp float) +0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch out block{ out highp int a}) +0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float) +0:? 'badlay' ( out 4-element array of highp float) +0:? 'misSized' ( out 5-element array of highp float) +0:? 'okaySize' ( out 4-element array of highp float) +0:? 'pv3' ( noContraction temp highp 3-component vector of float) +0:? 'badpatchIName' ( patch out 1-element array of block{ out highp float f}) +0:? 'patchIName' ( patch out 4-element array of block{ out highp float f}) + diff --git a/deps/glslang/glslang/Test/baseResults/320.tese.out b/deps/glslang/glslang/Test/baseResults/320.tese.out new file mode 100644 index 0000000000..93165ae10b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/320.tese.out @@ -0,0 +1,275 @@ +320.tese +ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:5: 'triangles' : cannot change previously set input primitive +ERROR: 0:6: 'isolines' : cannot change previously set input primitive +ERROR: 0:8: 'ccw' : cannot change previously set vertex order +ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing +ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing +ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader +ERROR: 0:22: 'barrier' : no matching overloaded function found +ERROR: 0:33: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:34: 'gl_ClipDistance' : no such field in structure +ERROR: 0:34: 'expression' : left of '[' is not of type array, matrix, or vector +ERROR: 0:43: 'gl_PointSize' : required extension not requested: Possible extensions include: +GL_EXT_tessellation_point_size +GL_OES_tessellation_point_size +ERROR: 0:44: 'gl_ClipDistance' : undeclared identifier +ERROR: 0:44: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector +ERROR: 0:44: 'assign' : l-value required (can't modify a const) +ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:49: 'noperspective' : Reserved word. +ERROR: 0:49: 'noperspective' : not supported for this version or the enabled extensions +ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:64: 'quads' : cannot apply to 'out' +ERROR: 0:64: 'cw' : can only apply to 'in' +ERROR: 0:65: 'triangles' : cannot apply to 'out' +ERROR: 0:66: 'isolines' : cannot apply to 'out' +ERROR: 0:67: 'cw' : can only apply to 'in' +ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' +ERROR: 0:69: 'equal_spacing' : can only apply to 'in' +ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' +ERROR: 0:71: 'point_mode' : can only apply to 'in' +ERROR: 0:73: 'in' : type must be an array: ina +ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:78: 'in' : type must be an array: bla +ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:96: 'location' : overlapping use of location 24 +ERROR: 0:99: 'location' : overlapping use of location 24 +ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved +ERROR: 0:113: 'gl_BoundingBoxOES' : undeclared identifier +ERROR: 39 compilation errors. No code generated. + + +Shader version: 320 +Requested GL_ARB_separate_shader_objects +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child ( temp highp int) +0:24 'a' ( temp highp int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child ( temp highp 4-component vector of float) +0:32 'p' ( temp highp 4-component vector of float) +0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp highp float) +0:33 'ps' ( temp highp float) +0:33 gl_PointSize: direct index for structure ( in highp float PointSize) +0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in unsized 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp highp float) +0:34 'cd' ( temp highp float) +0:34 Constant: +0:34 0.000000 +0:36 Sequence +0:36 move second child to first child ( temp highp int) +0:36 'pvi' ( temp highp int) +0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:37 Sequence +0:37 move second child to first child ( temp highp int) +0:37 'pid' ( temp highp int) +0:37 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:38 Sequence +0:38 move second child to first child ( temp highp 3-component vector of float) +0:38 'tc' ( temp highp 3-component vector of float) +0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord) +0:39 Sequence +0:39 move second child to first child ( temp highp float) +0:39 'tlo' ( temp highp float) +0:39 direct index ( patch temp highp float TessLevelOuter) +0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp highp float) +0:40 'tli' ( temp highp float) +0:40 direct index ( patch temp highp float TessLevelInner) +0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp highp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' ( temp highp 4-component vector of float) +0:43 move second child to first child ( temp highp float) +0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) +0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' ( temp highp float) +0:44 move second child to first child ( temp highp float) +0:44 Constant: +0:44 0.000000 +0:44 'cd' ( temp highp float) +0:111 Function Definition: bbbad( ( global void) +0:111 Function Parameters: +0:113 Sequence +0:113 'gl_BoundingBoxOES' ( temp float) +0:? Linker Objects +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'badp1' ( smooth patch in highp 4-component vector of float) +0:? 'badp2' ( flat patch in highp 4-component vector of float) +0:? 'badp3' ( noperspective patch in highp 4-component vector of float) +0:? 'badp4' ( patch sample in highp 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position}) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'bla' ( in block{ in highp int f}) +0:? 'blb' ( in 32-element array of block{ in highp int f}) +0:? 'blc' ( in 32-element array of block{ in highp int f}) +0:? 'bld' ( in 32-element array of block{ in highp int f}) +0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch in block{ in highp int a}) +0:? 'myColor2' ( centroid out highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out highp 4-component vector of float) + + +Linked tessellation evaluation stage: + + +Shader version: 320 +Requested GL_ARB_separate_shader_objects +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child ( temp highp int) +0:24 'a' ( temp highp int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child ( temp highp 4-component vector of float) +0:32 'p' ( temp highp 4-component vector of float) +0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position) +0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp highp float) +0:33 'ps' ( temp highp float) +0:33 gl_PointSize: direct index for structure ( in highp float PointSize) +0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp highp float) +0:34 'cd' ( temp highp float) +0:34 Constant: +0:34 0.000000 +0:36 Sequence +0:36 move second child to first child ( temp highp int) +0:36 'pvi' ( temp highp int) +0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices) +0:37 Sequence +0:37 move second child to first child ( temp highp int) +0:37 'pid' ( temp highp int) +0:37 'gl_PrimitiveID' ( in highp int PrimitiveID) +0:38 Sequence +0:38 move second child to first child ( temp highp 3-component vector of float) +0:38 'tc' ( temp highp 3-component vector of float) +0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord) +0:39 Sequence +0:39 move second child to first child ( temp highp float) +0:39 'tlo' ( temp highp float) +0:39 direct index ( patch temp highp float TessLevelOuter) +0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp highp float) +0:40 'tli' ( temp highp float) +0:40 direct index ( patch temp highp float TessLevelInner) +0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp highp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' ( temp highp 4-component vector of float) +0:43 move second child to first child ( temp highp float) +0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize) +0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' ( temp highp float) +0:44 move second child to first child ( temp highp float) +0:44 Constant: +0:44 0.000000 +0:44 'cd' ( temp highp float) +0:? Linker Objects +0:? 'patchIn' ( patch in highp 4-component vector of float) +0:? 'patchOut' ( patch out highp 4-component vector of float) +0:? 'badp1' ( smooth patch in highp 4-component vector of float) +0:? 'badp2' ( flat patch in highp 4-component vector of float) +0:? 'badp3' ( noperspective patch in highp 4-component vector of float) +0:? 'badp4' ( patch sample in highp 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position}) +0:? 'ina' ( in highp 2-component vector of float) +0:? 'inb' ( in 32-element array of highp 2-component vector of float) +0:? 'inc' ( in 32-element array of highp 2-component vector of float) +0:? 'ind' ( in 32-element array of highp 2-component vector of float) +0:? 'bla' ( in block{ in highp int f}) +0:? 'blb' ( in 32-element array of block{ in highp int f}) +0:? 'blc' ( in 32-element array of block{ in highp int f}) +0:? 'bld' ( in 32-element array of block{ in highp int f}) +0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float) +0:? 'pinbi' ( patch in block{ in highp int a}) +0:? 'myColor2' ( centroid out highp 3-component vector of float) +0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float) +0:? 'perSampleColor' ( sample out highp 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/320.vert.out b/deps/glslang/glslang/Test/baseResults/320.vert.out new file mode 100644 index 0000000000..2838ab89d4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/320.vert.out @@ -0,0 +1,797 @@ +320.vert +ERROR: 0:6: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type +ERROR: 0:14: 'location' : overlapping use of location 12 +ERROR: 0:16: 'input block' : not supported in this stage: vertex +ERROR: 0:18: 'gl_PerVertex' : block redeclaration has extra members +ERROR: 0:28: 'gl_PointSize' : member of nameless block was not redeclared +ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize' +ERROR: 0:31: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:36: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block +ERROR: 0:40: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block +ERROR: 0:44: 'centroid' : cannot use centroid qualifier on an interface block +ERROR: 0:48: 'invariant' : cannot use invariant qualifier on an interface block +ERROR: 0:68: 'variable indexing buffer block array' : not supported with this profile: es +ERROR: 0:73: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument +ERROR: 0:76: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:77: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:78: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:79: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:116: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:117: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:118: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:120: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:121: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:122: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:123: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:191: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:192: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:193: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:211: 'textureSize' : no matching overloaded function found +ERROR: 0:211: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int' +ERROR: 0:252: 'interpolateAtCentroid' : no matching overloaded function found +ERROR: 0:253: 'interpolateAtSample' : no matching overloaded function found +ERROR: 0:254: 'interpolateAtOffset' : no matching overloaded function found +ERROR: 34 compilation errors. No code generated. + + +Shader version: 320 +ERROR: node is still EOpNull! +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:25 Sequence +0:25 Sequence +0:25 move second child to first child ( temp highp int) +0:25 'sum' ( temp highp int) +0:25 add ( temp highp int) +0:25 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) +0:27 move second child to first child ( temp highp 4-component vector of float) +0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:27 Constant: +0:27 0 (const uint) +0:27 Constant: +0:27 1.000000 +0:27 1.000000 +0:27 1.000000 +0:27 1.000000 +0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) +0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:28 Constant: +0:28 1 (const uint) +0:62 Function Definition: pfoo( ( global void) +0:62 Function Parameters: +0:? Sequence +0:65 move second child to first child ( temp highp 2-component vector of float) +0:65 'h' ( noContraction temp highp 2-component vector of float) +0:65 fma ( global highp 2-component vector of float) +0:65 'inf' ( in highp 2-component vector of float) +0:65 'ing' ( in highp 2-component vector of float) +0:65 'h' ( noContraction temp highp 2-component vector of float) +0:66 indirect index ( temp lowp sampler2D) +0:66 'sArray' ( uniform 4-element array of lowp sampler2D) +0:66 add ( temp highp int) +0:66 'sIndex' ( uniform highp int) +0:66 Constant: +0:66 1 (const int) +0:67 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) +0:67 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:67 add ( temp highp int) +0:67 'sIndex' ( uniform highp int) +0:67 Constant: +0:67 1 (const int) +0:68 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) +0:68 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:68 subtract ( temp highp int) +0:68 'sIndex' ( uniform highp int) +0:68 Constant: +0:68 2 (const int) +0:69 direct index ( writeonly temp highp image2D) +0:69 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:69 Constant: +0:69 2 (const int) +0:70 indirect index ( writeonly temp highp image2D) +0:70 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:70 subtract ( temp highp int) +0:70 'sIndex' ( uniform highp int) +0:70 Constant: +0:70 2 (const int) +0:71 textureGatherOffset ( global lowp 4-component vector of float) +0:71 direct index ( temp lowp sampler2D) +0:71 'sArray' ( uniform 4-element array of lowp sampler2D) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 0.100000 +0:71 0.100000 +0:71 Convert float to int ( temp lowp 2-component vector of int) +0:71 'inf' ( in highp 2-component vector of float) +0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) +0:72 direct index ( temp lowp sampler2D) +0:72 'sArray' ( uniform 4-element array of lowp sampler2D) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 0.100000 +0:72 0.100000 +0:72 Constant: +0:72 0 (const int) +0:72 0 (const int) +0:72 0 (const int) +0:72 0 (const int) +0:72 0 (const int) +0:72 0 (const int) +0:72 0 (const int) +0:72 0 (const int) +0:73 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) +0:73 direct index ( temp lowp sampler2D) +0:73 'sArray' ( uniform 4-element array of lowp sampler2D) +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 0.100000 +0:73 0.100000 +0:73 'offsets' ( uniform 4-element array of highp 2-component vector of int) +0:101 Function Definition: bufferT( ( global void) +0:101 Function Parameters: +0:103 Sequence +0:103 Sequence +0:103 move second child to first child ( temp highp int) +0:103 's1' ( temp highp int) +0:103 textureSize ( global highp int) +0:103 'bufSamp1' ( uniform highp samplerBuffer) +0:104 Sequence +0:104 move second child to first child ( temp highp int) +0:104 's2' ( temp highp int) +0:104 textureSize ( global highp int) +0:104 'bufSamp2' ( uniform highp isamplerBuffer) +0:105 Sequence +0:105 move second child to first child ( temp highp int) +0:105 's3' ( temp highp int) +0:105 textureSize ( global highp int) +0:105 'bufSamp3' ( uniform highp usamplerBuffer) +0:107 Sequence +0:107 move second child to first child ( temp highp int) +0:107 's4' ( temp highp int) +0:107 imageQuerySize ( global highp int) +0:107 'bufSamp4' ( writeonly uniform highp imageBuffer) +0:108 Sequence +0:108 move second child to first child ( temp highp int) +0:108 's5' ( temp highp int) +0:108 imageQuerySize ( global highp int) +0:108 'bufSamp5' ( writeonly uniform highp iimageBuffer) +0:109 Sequence +0:109 move second child to first child ( temp highp int) +0:109 's6' ( temp highp int) +0:109 imageQuerySize ( global highp int) +0:109 'bufSamp6' ( writeonly uniform highp uimageBuffer) +0:111 Sequence +0:111 move second child to first child ( temp highp 4-component vector of float) +0:111 'f1' ( temp highp 4-component vector of float) +0:111 textureFetch ( global highp 4-component vector of float) +0:111 'bufSamp1' ( uniform highp samplerBuffer) +0:111 's1' ( temp highp int) +0:112 Sequence +0:112 move second child to first child ( temp highp 4-component vector of int) +0:112 'f2' ( temp highp 4-component vector of int) +0:112 textureFetch ( global highp 4-component vector of int) +0:112 'bufSamp2' ( uniform highp isamplerBuffer) +0:112 's2' ( temp highp int) +0:113 Sequence +0:113 move second child to first child ( temp highp 4-component vector of uint) +0:113 'f3' ( temp highp 4-component vector of uint) +0:113 textureFetch ( global highp 4-component vector of uint) +0:113 'bufSamp3' ( uniform highp usamplerBuffer) +0:113 's3' ( temp highp int) +0:149 Function Definition: CAT( ( global void) +0:149 Function Parameters: +0:151 Sequence +0:151 Sequence +0:151 move second child to first child ( temp highp 3-component vector of int) +0:151 's4' ( temp highp 3-component vector of int) +0:151 textureSize ( global highp 3-component vector of int) +0:151 'CA4' ( uniform highp samplerCubeArray) +0:151 Constant: +0:151 1 (const int) +0:152 Sequence +0:152 move second child to first child ( temp highp 3-component vector of int) +0:152 's5' ( temp highp 3-component vector of int) +0:152 textureSize ( global highp 3-component vector of int) +0:152 'CA5' ( uniform highp samplerCubeArrayShadow) +0:152 Constant: +0:152 1 (const int) +0:153 Sequence +0:153 move second child to first child ( temp highp 3-component vector of int) +0:153 's6' ( temp highp 3-component vector of int) +0:153 textureSize ( global highp 3-component vector of int) +0:153 'CA6' ( uniform highp isamplerCubeArray) +0:153 Constant: +0:153 1 (const int) +0:154 Sequence +0:154 move second child to first child ( temp highp 3-component vector of int) +0:154 's7' ( temp highp 3-component vector of int) +0:154 textureSize ( global highp 3-component vector of int) +0:154 'CA7' ( uniform highp usamplerCubeArray) +0:154 Constant: +0:154 1 (const int) +0:156 Sequence +0:156 move second child to first child ( temp highp 4-component vector of float) +0:156 't4' ( temp highp 4-component vector of float) +0:156 texture ( global highp 4-component vector of float) +0:156 'CA4' ( uniform highp samplerCubeArray) +0:156 Constant: +0:156 0.500000 +0:156 0.500000 +0:156 0.500000 +0:156 0.500000 +0:157 Sequence +0:157 move second child to first child ( temp highp float) +0:157 't5' ( temp highp float) +0:157 texture ( global highp float) +0:157 'CA5' ( uniform highp samplerCubeArrayShadow) +0:157 Constant: +0:157 0.500000 +0:157 0.500000 +0:157 0.500000 +0:157 0.500000 +0:157 Constant: +0:157 3.000000 +0:158 Sequence +0:158 move second child to first child ( temp highp 4-component vector of int) +0:158 't6' ( temp highp 4-component vector of int) +0:158 texture ( global highp 4-component vector of int) +0:158 'CA6' ( uniform highp isamplerCubeArray) +0:158 Constant: +0:158 0.500000 +0:158 0.500000 +0:158 0.500000 +0:158 0.500000 +0:159 Sequence +0:159 move second child to first child ( temp highp 4-component vector of uint) +0:159 't7' ( temp highp 4-component vector of uint) +0:159 texture ( global highp 4-component vector of uint) +0:159 'CA7' ( uniform highp usamplerCubeArray) +0:159 Constant: +0:159 0.500000 +0:159 0.500000 +0:159 0.500000 +0:159 0.500000 +0:161 Sequence +0:161 move second child to first child ( temp highp 4-component vector of float) +0:161 'L4' ( temp highp 4-component vector of float) +0:161 textureLod ( global highp 4-component vector of float) +0:161 'CA4' ( uniform highp samplerCubeArray) +0:161 Constant: +0:161 0.500000 +0:161 0.500000 +0:161 0.500000 +0:161 0.500000 +0:161 Constant: +0:161 0.240000 +0:162 Sequence +0:162 move second child to first child ( temp highp 4-component vector of int) +0:162 'L6' ( temp highp 4-component vector of int) +0:162 textureLod ( global highp 4-component vector of int) +0:162 'CA6' ( uniform highp isamplerCubeArray) +0:162 Constant: +0:162 0.500000 +0:162 0.500000 +0:162 0.500000 +0:162 0.500000 +0:162 Constant: +0:162 0.260000 +0:163 Sequence +0:163 move second child to first child ( temp highp 4-component vector of uint) +0:163 'L7' ( temp highp 4-component vector of uint) +0:163 textureLod ( global highp 4-component vector of uint) +0:163 'CA7' ( uniform highp usamplerCubeArray) +0:163 Constant: +0:163 0.500000 +0:163 0.500000 +0:163 0.500000 +0:163 0.500000 +0:163 Constant: +0:163 0.270000 +0:165 Sequence +0:165 move second child to first child ( temp highp 4-component vector of float) +0:165 'g4' ( temp highp 4-component vector of float) +0:165 textureGrad ( global highp 4-component vector of float) +0:165 'CA4' ( uniform highp samplerCubeArray) +0:165 Constant: +0:165 0.500000 +0:165 0.500000 +0:165 0.500000 +0:165 0.500000 +0:165 Constant: +0:165 0.100000 +0:165 0.100000 +0:165 0.100000 +0:165 Constant: +0:165 0.200000 +0:165 0.200000 +0:165 0.200000 +0:166 Sequence +0:166 move second child to first child ( temp highp 4-component vector of int) +0:166 'g6' ( temp highp 4-component vector of int) +0:166 textureGrad ( global highp 4-component vector of int) +0:166 'CA6' ( uniform highp isamplerCubeArray) +0:166 Constant: +0:166 0.500000 +0:166 0.500000 +0:166 0.500000 +0:166 0.500000 +0:166 Constant: +0:166 0.100000 +0:166 0.100000 +0:166 0.100000 +0:166 Constant: +0:166 0.200000 +0:166 0.200000 +0:166 0.200000 +0:167 Sequence +0:167 move second child to first child ( temp highp 4-component vector of uint) +0:167 'g7' ( temp highp 4-component vector of uint) +0:167 textureGrad ( global highp 4-component vector of uint) +0:167 'CA7' ( uniform highp usamplerCubeArray) +0:167 Constant: +0:167 0.500000 +0:167 0.500000 +0:167 0.500000 +0:167 0.500000 +0:167 Constant: +0:167 0.100000 +0:167 0.100000 +0:167 0.100000 +0:167 Constant: +0:167 0.200000 +0:167 0.200000 +0:167 0.200000 +0:169 Sequence +0:169 move second child to first child ( temp highp 4-component vector of float) +0:169 'gath4' ( temp highp 4-component vector of float) +0:169 textureGather ( global highp 4-component vector of float) +0:169 'CA4' ( uniform highp samplerCubeArray) +0:169 Constant: +0:169 0.500000 +0:169 0.500000 +0:169 0.500000 +0:169 0.500000 +0:170 Sequence +0:170 move second child to first child ( temp highp 4-component vector of float) +0:170 'gathC4' ( temp highp 4-component vector of float) +0:170 textureGather ( global highp 4-component vector of float) +0:170 'CA4' ( uniform highp samplerCubeArray) +0:170 Constant: +0:170 0.500000 +0:170 0.500000 +0:170 0.500000 +0:170 0.500000 +0:170 Constant: +0:170 2 (const int) +0:171 Sequence +0:171 move second child to first child ( temp highp 4-component vector of int) +0:171 'gath6' ( temp highp 4-component vector of int) +0:171 textureGather ( global highp 4-component vector of int) +0:171 'CA6' ( uniform highp isamplerCubeArray) +0:171 Constant: +0:171 0.500000 +0:171 0.500000 +0:171 0.500000 +0:171 0.500000 +0:172 Sequence +0:172 move second child to first child ( temp highp 4-component vector of int) +0:172 'gathC6' ( temp highp 4-component vector of int) +0:172 textureGather ( global highp 4-component vector of int) +0:172 'CA6' ( uniform highp isamplerCubeArray) +0:172 Constant: +0:172 0.500000 +0:172 0.500000 +0:172 0.500000 +0:172 0.500000 +0:172 Constant: +0:172 1 (const int) +0:173 Sequence +0:173 move second child to first child ( temp highp 4-component vector of uint) +0:173 'gath7' ( temp highp 4-component vector of uint) +0:173 textureGather ( global highp 4-component vector of uint) +0:173 'CA7' ( uniform highp usamplerCubeArray) +0:173 Constant: +0:173 0.500000 +0:173 0.500000 +0:173 0.500000 +0:173 0.500000 +0:174 Sequence +0:174 move second child to first child ( temp highp 4-component vector of uint) +0:174 'gathC7' ( temp highp 4-component vector of uint) +0:174 textureGather ( global highp 4-component vector of uint) +0:174 'CA7' ( uniform highp usamplerCubeArray) +0:174 Constant: +0:174 0.500000 +0:174 0.500000 +0:174 0.500000 +0:174 0.500000 +0:174 Constant: +0:174 0 (const int) +0:176 Sequence +0:176 move second child to first child ( temp highp 4-component vector of float) +0:176 'gath5' ( temp highp 4-component vector of float) +0:176 textureGather ( global highp 4-component vector of float) +0:176 'CA5' ( uniform highp samplerCubeArrayShadow) +0:176 Constant: +0:176 0.500000 +0:176 0.500000 +0:176 0.500000 +0:176 0.500000 +0:176 Constant: +0:176 2.500000 +0:178 Sequence +0:178 move second child to first child ( temp highp 3-component vector of int) +0:178 's1' ( temp highp 3-component vector of int) +0:178 imageQuerySize ( global highp 3-component vector of int) +0:178 'CA1' ( writeonly uniform highp imageCubeArray) +0:179 Sequence +0:179 move second child to first child ( temp highp 3-component vector of int) +0:179 's2' ( temp highp 3-component vector of int) +0:179 imageQuerySize ( global highp 3-component vector of int) +0:179 'CA2' ( writeonly uniform highp iimageCubeArray) +0:180 Sequence +0:180 move second child to first child ( temp highp 3-component vector of int) +0:180 's3' ( temp highp 3-component vector of int) +0:180 imageQuerySize ( global highp 3-component vector of int) +0:180 'CA3' ( writeonly uniform highp uimageCubeArray) +0:182 imageStore ( global highp void) +0:182 'CA1' ( writeonly uniform highp imageCubeArray) +0:182 's3' ( temp highp 3-component vector of int) +0:182 Constant: +0:182 1.000000 +0:182 1.000000 +0:182 1.000000 +0:182 1.000000 +0:183 imageStore ( global highp void) +0:183 'CA2' ( writeonly uniform highp iimageCubeArray) +0:183 's3' ( temp highp 3-component vector of int) +0:183 Constant: +0:183 1 (const int) +0:183 1 (const int) +0:183 1 (const int) +0:183 1 (const int) +0:184 imageStore ( global highp void) +0:184 'CA3' ( writeonly uniform highp uimageCubeArray) +0:184 's3' ( temp highp 3-component vector of int) +0:184 Constant: +0:184 1 (const uint) +0:184 1 (const uint) +0:184 1 (const uint) +0:184 1 (const uint) +0:186 Sequence +0:186 move second child to first child ( temp highp 4-component vector of float) +0:186 'cl1' ( temp highp 4-component vector of float) +0:186 imageLoad ( global highp 4-component vector of float) +0:186 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) +0:186 's3' ( temp highp 3-component vector of int) +0:187 Sequence +0:187 move second child to first child ( temp highp 4-component vector of int) +0:187 'cl2' ( temp highp 4-component vector of int) +0:187 imageLoad ( global highp 4-component vector of int) +0:187 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) +0:187 's3' ( temp highp 3-component vector of int) +0:188 Sequence +0:188 move second child to first child ( temp highp 4-component vector of uint) +0:188 'cl3' ( temp highp 4-component vector of uint) +0:188 imageLoad ( global highp 4-component vector of uint) +0:188 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) +0:188 's3' ( temp highp 3-component vector of int) +0:203 Function Definition: MSA( ( global void) +0:203 Function Parameters: +0:205 Sequence +0:205 Sequence +0:205 move second child to first child ( temp highp 4-component vector of float) +0:205 'tf' ( temp highp 4-component vector of float) +0:205 textureFetch ( global highp 4-component vector of float) +0:205 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:205 Constant: +0:205 5 (const int) +0:205 5 (const int) +0:205 5 (const int) +0:205 Constant: +0:205 2 (const int) +0:206 Sequence +0:206 move second child to first child ( temp highp 4-component vector of int) +0:206 'tfi' ( temp highp 4-component vector of int) +0:206 textureFetch ( global highp 4-component vector of int) +0:206 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:206 Constant: +0:206 5 (const int) +0:206 5 (const int) +0:206 5 (const int) +0:206 Constant: +0:206 2 (const int) +0:207 Sequence +0:207 move second child to first child ( temp highp 4-component vector of uint) +0:207 'tfu' ( temp highp 4-component vector of uint) +0:207 textureFetch ( global highp 4-component vector of uint) +0:207 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:207 Constant: +0:207 5 (const int) +0:207 5 (const int) +0:207 5 (const int) +0:207 Constant: +0:207 2 (const int) +0:209 Sequence +0:209 move second child to first child ( temp highp 3-component vector of int) +0:209 'tfs' ( temp highp 3-component vector of int) +0:209 textureSize ( global highp 3-component vector of int) +0:209 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:210 Sequence +0:210 move second child to first child ( temp highp 3-component vector of int) +0:210 'tfsi' ( temp highp 3-component vector of int) +0:210 textureSize ( global highp 3-component vector of int) +0:210 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:212 Sequence +0:212 move second child to first child ( temp highp 3-component vector of int) +0:212 'tfsu' ( temp highp 3-component vector of int) +0:212 textureSize ( global highp 3-component vector of int) +0:212 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:220 Function Definition: goodImageAtom( ( global void) +0:220 Function Parameters: +0:? Sequence +0:226 imageAtomicAdd ( global highp int) +0:226 'im2Di' (layout( r32i) uniform highp iimage2D) +0:226 'P' ( uniform highp 2-component vector of int) +0:226 'dati' ( temp highp int) +0:227 imageAtomicAdd ( global highp uint) +0:227 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:227 'P' ( uniform highp 2-component vector of int) +0:227 'datu' ( temp highp uint) +0:228 imageAtomicMin ( global highp int) +0:228 'im2Di' (layout( r32i) uniform highp iimage2D) +0:228 'P' ( uniform highp 2-component vector of int) +0:228 'dati' ( temp highp int) +0:229 imageAtomicMin ( global highp uint) +0:229 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:229 'P' ( uniform highp 2-component vector of int) +0:229 'datu' ( temp highp uint) +0:230 imageAtomicMax ( global highp int) +0:230 'im2Di' (layout( r32i) uniform highp iimage2D) +0:230 'P' ( uniform highp 2-component vector of int) +0:230 'dati' ( temp highp int) +0:231 imageAtomicMax ( global highp uint) +0:231 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:231 'P' ( uniform highp 2-component vector of int) +0:231 'datu' ( temp highp uint) +0:232 imageAtomicAnd ( global highp int) +0:232 'im2Di' (layout( r32i) uniform highp iimage2D) +0:232 'P' ( uniform highp 2-component vector of int) +0:232 'dati' ( temp highp int) +0:233 imageAtomicAnd ( global highp uint) +0:233 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:233 'P' ( uniform highp 2-component vector of int) +0:233 'datu' ( temp highp uint) +0:234 imageAtomicOr ( global highp int) +0:234 'im2Di' (layout( r32i) uniform highp iimage2D) +0:234 'P' ( uniform highp 2-component vector of int) +0:234 'dati' ( temp highp int) +0:235 imageAtomicOr ( global highp uint) +0:235 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:235 'P' ( uniform highp 2-component vector of int) +0:235 'datu' ( temp highp uint) +0:236 imageAtomicXor ( global highp int) +0:236 'im2Di' (layout( r32i) uniform highp iimage2D) +0:236 'P' ( uniform highp 2-component vector of int) +0:236 'dati' ( temp highp int) +0:237 imageAtomicXor ( global highp uint) +0:237 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:237 'P' ( uniform highp 2-component vector of int) +0:237 'datu' ( temp highp uint) +0:238 imageAtomicExchange ( global highp int) +0:238 'im2Di' (layout( r32i) uniform highp iimage2D) +0:238 'P' ( uniform highp 2-component vector of int) +0:238 'dati' ( temp highp int) +0:239 imageAtomicExchange ( global highp uint) +0:239 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:239 'P' ( uniform highp 2-component vector of int) +0:239 'datu' ( temp highp uint) +0:240 imageAtomicExchange ( global highp float) +0:240 'im2Df' (layout( r32f) uniform highp image2D) +0:240 'P' ( uniform highp 2-component vector of int) +0:240 'datf' ( temp highp float) +0:241 imageAtomicCompSwap ( global highp int) +0:241 'im2Di' (layout( r32i) uniform highp iimage2D) +0:241 'P' ( uniform highp 2-component vector of int) +0:241 Constant: +0:241 3 (const int) +0:241 'dati' ( temp highp int) +0:242 imageAtomicCompSwap ( global highp uint) +0:242 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:242 'P' ( uniform highp 2-component vector of int) +0:242 Constant: +0:242 5 (const uint) +0:242 'datu' ( temp highp uint) +0:250 Function Definition: badInterp( ( global void) +0:250 Function Parameters: +0:252 Sequence +0:252 Constant: +0:252 0.000000 +0:253 Constant: +0:253 0.000000 +0:254 Constant: +0:254 0.000000 +0:? Linker Objects +0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) +0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=12) smooth out highp int) +0:? 'inbinst' ( in block{ in highp int a}) +0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:? 'smon' ( smooth out block{ out highp int i}) +0:? 'fmon' ( flat out block{ out highp int i}) +0:? 'cmon' ( centroid out block{ out highp int i}) +0:? 'imon' ( invariant out block{ out highp int i}) +0:? 'inf' ( in highp 2-component vector of float) +0:? 'ing' ( in highp 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of lowp sampler2D) +0:? 'sIndex' ( uniform highp int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'noPreSamp1' ( uniform mediump samplerBuffer) +0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) +0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) +0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) +0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) +0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) +0:? 'bufSamp1' ( uniform highp samplerBuffer) +0:? 'bufSamp2' ( uniform highp isamplerBuffer) +0:? 'bufSamp3' ( uniform highp usamplerBuffer) +0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) +0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) +0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) +0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) +0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) +0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) +0:? 'noPreCA4' ( uniform mediump samplerCubeArray) +0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) +0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) +0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) +0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) +0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) +0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) +0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) +0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform highp 2-component vector of int) +0:? 'colorSample' ( smooth sample out highp 4-component vector of float) +0:? 'colorfsi' ( flat sample out highp 4-component vector of float) +0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) +0:? 'inv4' ( in highp 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 320 +ERROR: node is still EOpNull! +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:25 Sequence +0:25 Sequence +0:25 move second child to first child ( temp highp int) +0:25 'sum' ( temp highp int) +0:25 add ( temp highp int) +0:25 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) +0:27 move second child to first child ( temp highp 4-component vector of float) +0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) +0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:27 Constant: +0:27 0 (const uint) +0:27 Constant: +0:27 1.000000 +0:27 1.000000 +0:27 1.000000 +0:27 1.000000 +0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) +0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:28 Constant: +0:28 1 (const uint) +0:? Linker Objects +0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) +0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) +0:? 'aliased' (layout( location=12) smooth out highp int) +0:? 'inbinst' ( in block{ in highp int a}) +0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, }) +0:? 'smon' ( smooth out block{ out highp int i}) +0:? 'fmon' ( flat out block{ out highp int i}) +0:? 'cmon' ( centroid out block{ out highp int i}) +0:? 'imon' ( invariant out block{ out highp int i}) +0:? 'inf' ( in highp 2-component vector of float) +0:? 'ing' ( in highp 2-component vector of float) +0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) +0:? 'sArray' ( uniform 4-element array of lowp sampler2D) +0:? 'sIndex' ( uniform highp int) +0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) +0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) +0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) +0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) +0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 'noPreSamp1' ( uniform mediump samplerBuffer) +0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) +0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) +0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) +0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) +0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) +0:? 'bufSamp1' ( uniform highp samplerBuffer) +0:? 'bufSamp2' ( uniform highp isamplerBuffer) +0:? 'bufSamp3' ( uniform highp usamplerBuffer) +0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) +0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) +0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) +0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) +0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) +0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) +0:? 'noPreCA4' ( uniform mediump samplerCubeArray) +0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) +0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) +0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) +0:? 'CA1' ( writeonly uniform highp imageCubeArray) +0:? 'CA2' ( writeonly uniform highp iimageCubeArray) +0:? 'CA3' ( writeonly uniform highp uimageCubeArray) +0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) +0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) +0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) +0:? 'CA4' ( uniform highp samplerCubeArray) +0:? 'CA5' ( uniform highp samplerCubeArrayShadow) +0:? 'CA6' ( uniform highp isamplerCubeArray) +0:? 'CA7' ( uniform highp usamplerCubeArray) +0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) +0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) +0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) +0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) +0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) +0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) +0:? 'im2Df' (layout( r32f) uniform highp image2D) +0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) +0:? 'im2Di' (layout( r32i) uniform highp iimage2D) +0:? 'P' ( uniform highp 2-component vector of int) +0:? 'colorSample' ( smooth sample out highp 4-component vector of float) +0:? 'colorfsi' ( flat sample out highp 4-component vector of float) +0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) +0:? 'inv4' ( in highp 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/330.frag.out b/deps/glslang/glslang/Test/baseResults/330.frag.out new file mode 100644 index 0000000000..774563125c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/330.frag.out @@ -0,0 +1,194 @@ +330.frag +ERROR: 0:27: 'block declaration' : cannot redeclare block: gl_block +ERROR: 0:31: 'gl_name' : identifiers starting with "gl_" are reserved +ERROR: 0:32: 'gl_i' : identifiers starting with "gl_" are reserved +ERROR: 0:35: 'gl_in' : no declaration found for redeclaration +ERROR: 0:39: 'gl_FragCoord' : cannot redeclare a non block as a block +ERROR: 0:44: 'non-literal layout-id value' : not supported for this version or the enabled extensions +ERROR: 0:44: 'layout-id value' : cannot be negative +ERROR: 0:45: 'non-literal layout-id value' : not supported for this version or the enabled extensions +ERROR: 0:46: 'layout-id value' : scalar integer expression required +ERROR: 0:46: 'location' : location is too large +ERROR: 0:47: 'non-literal layout-id value' : not supported for this version or the enabled extensions +ERROR: 0:48: 'non-literal layout-id value' : not supported for this version or the enabled extensions +ERROR: 0:52: 'f2' : cannot use layout qualifiers on structure members +ERROR: 0:57: 'location on block member' : not supported for this version or the enabled extensions +ERROR: 0:62: 'location on block member' : can only use in an in/out block +ERROR: 0:62: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions +ERROR: 0:60: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions +ERROR: 0:60: 'location' : cannot apply to uniform or buffer block +ERROR: 0:68: 'layout-id value' : cannot be negative +ERROR: 0:69: 'layout-id value' : cannot be negative +ERROR: 0:76: 'f2' : cannot use layout qualifiers on structure members +ERROR: 0:91: 'location on block member' : can only use in an in/out block +ERROR: 0:91: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions +ERROR: 0:91: 'location' : overlapping use of location 3 +ERROR: 0:89: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions +ERROR: 0:89: 'location' : cannot apply to uniform or buffer block +ERROR: 0:94: 'location' : either the block needs a location, or all members need a location, or no members have a location +ERROR: 0:108: 'A' : cannot use layout qualifiers on structure members +ERROR: 0:119: 'location' : overlapping use of location 44 +ERROR: 0:122: 'index' : can only be used with an explicit location +ERROR: 0:124: 'location' : overlapping use of location 0 +ERROR: 0:125: 'index' : can only be used on an output +ERROR: 0:126: 'index' : can only be used on an output +ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration +ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration +ERROR: 0:128: 'output block' : not supported in this stage: fragment +ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:140: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:141: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:152: 'index' : value must be 0 or 1 +ERROR: 41 compilation errors. No code generated. + + +Shader version: 330 +Requested GL_ARB_enhanced_layouts +Requested GL_ARB_separate_shader_objects +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:10 'varyingVar' ( smooth in 4-component vector of float) +0:11 move second child to first child ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float FragData) +0:11 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:11 Constant: +0:11 1 (const int) +0:11 'inVar' ( smooth in 4-component vector of float) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'buffer' ( temp int) +0:12 Constant: +0:12 4 (const int) +0:21 Function Definition: foo( ( global void) +0:21 Function Parameters: +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'c' ( temp 4-component vector of float) +0:23 gl_Color: direct index for structure ( in 4-component vector of float Color) +0:23 'anon@0' ( in block{ in 4-component vector of float Color gl_Color, }) +0:23 Constant: +0:23 2 (const uint) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 'outVar' (layout( location=0 index=0) out 4-component vector of float) +0:24 'inVar' ( smooth in 4-component vector of float) +0:133 Function Definition: qlod( ( global void) +0:133 Function Parameters: +0:? Sequence +0:140 'lod' ( temp 2-component vector of float) +0:141 'lod' ( temp 2-component vector of float) +0:147 Function Definition: fooKeyMem( ( global void) +0:147 Function Parameters: +0:149 Sequence +0:149 precise: direct index for structure ( global int) +0:149 'KeyMem' ( global structure{ global int precise}) +0:149 Constant: +0:149 0 (const int) +0:? Linker Objects +0:? 'inVar' ( smooth in 4-component vector of float) +0:? 'outVar' (layout( location=0 index=0) out 4-component vector of float) +0:? 'varyingVar' ( smooth in 4-component vector of float) +0:? 'anon@0' ( in block{ in 4-component vector of float Color gl_Color, }) +0:? 'gl_name' ( in block{ in int gl_i}) +0:? 'start' ( const int) +0:? 6 (const int) +0:? 'v1' ( smooth in 4-component vector of float) +0:? 'v2' (layout( location=8) smooth in 4-component vector of float) +0:? 'v20' ( smooth in 4-component vector of float) +0:? 'v21' (layout( location=60) smooth in float) +0:? 'v22' (layout( location=2) smooth in float) +0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2}) +0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2}) +0:? 'v3' (layout( location=6) smooth in 4-component vector of float) +0:? 'v4' ( smooth in 4-component vector of float) +0:? 'v5' ( smooth in 4-component vector of float) +0:? 'v6' (layout( location=30) smooth in 4-component vector of float) +0:? 'v23' (layout( location=61) smooth in float) +0:? 'v24' (layout( location=62) smooth in float) +0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5}) +0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2}) +0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2}) +0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) +0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A}) +0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k}) +0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float) +0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float) +0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float) +0:? 'indexIn' (layout( location=27 index=0) smooth in 4-component vector of float) +0:? 'indexBlockI' (layout( location=26 index=0) out block{ out int a}) +0:? 'samp1D' ( uniform sampler1D) +0:? 'samp2Ds' ( uniform sampler2DShadow) +0:? 'precise' ( global int) +0:? 'KeyMem' ( global structure{ global int precise}) +0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Cannot use gl_FragColor or gl_FragData when using user-defined outputs +ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData + +Shader version: 330 +Requested GL_ARB_enhanced_layouts +Requested GL_ARB_separate_shader_objects +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:10 'varyingVar' ( smooth in 4-component vector of float) +0:11 move second child to first child ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float FragData) +0:11 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:11 Constant: +0:11 1 (const int) +0:11 'inVar' ( smooth in 4-component vector of float) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'buffer' ( temp int) +0:12 Constant: +0:12 4 (const int) +0:? Linker Objects +0:? 'inVar' ( smooth in 4-component vector of float) +0:? 'outVar' (layout( location=0 index=0) out 4-component vector of float) +0:? 'varyingVar' ( smooth in 4-component vector of float) +0:? 'anon@0' ( in block{ in 4-component vector of float Color gl_Color, }) +0:? 'gl_name' ( in block{ in int gl_i}) +0:? 'start' ( const int) +0:? 6 (const int) +0:? 'v1' ( smooth in 4-component vector of float) +0:? 'v2' (layout( location=8) smooth in 4-component vector of float) +0:? 'v20' ( smooth in 4-component vector of float) +0:? 'v21' (layout( location=60) smooth in float) +0:? 'v22' (layout( location=2) smooth in float) +0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2}) +0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2}) +0:? 'v3' (layout( location=6) smooth in 4-component vector of float) +0:? 'v4' ( smooth in 4-component vector of float) +0:? 'v5' ( smooth in 4-component vector of float) +0:? 'v6' (layout( location=30) smooth in 4-component vector of float) +0:? 'v23' (layout( location=61) smooth in float) +0:? 'v24' (layout( location=62) smooth in float) +0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5}) +0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2}) +0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2}) +0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) +0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A}) +0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k}) +0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float) +0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float) +0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float) +0:? 'indexIn' (layout( location=27 index=0) smooth in 4-component vector of float) +0:? 'indexBlockI' (layout( location=26 index=0) out block{ out int a}) +0:? 'samp1D' ( uniform sampler1D) +0:? 'samp2Ds' ( uniform sampler2DShadow) +0:? 'precise' ( global int) +0:? 'KeyMem' ( global structure{ global int precise}) +0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/330comp.frag.out b/deps/glslang/glslang/Test/baseResults/330comp.frag.out new file mode 100644 index 0000000000..1b8ded125e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/330comp.frag.out @@ -0,0 +1,48 @@ +330comp.frag +Shader version: 330 +0:? Sequence +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:10 'varyingVar' ( smooth in 4-component vector of float) +0:11 move second child to first child ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float FragData) +0:11 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:11 Constant: +0:11 1 (const int) +0:11 vector-times-matrix ( temp 4-component vector of float) +0:11 'inVar' ( smooth in 4-component vector of float) +0:11 'gl_ModelViewMatrix' ( uniform 4X4 matrix of float) +0:? Linker Objects +0:? 'inVar' ( smooth in 4-component vector of float) +0:? 'outVar' ( out 4-component vector of float) +0:? 'varyingVar' ( smooth in 4-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData + +Shader version: 330 +0:? Sequence +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:10 'varyingVar' ( smooth in 4-component vector of float) +0:11 move second child to first child ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float FragData) +0:11 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:11 Constant: +0:11 1 (const int) +0:11 vector-times-matrix ( temp 4-component vector of float) +0:11 'inVar' ( smooth in 4-component vector of float) +0:11 'gl_ModelViewMatrix' ( uniform 4X4 matrix of float) +0:? Linker Objects +0:? 'inVar' ( smooth in 4-component vector of float) +0:? 'outVar' ( out 4-component vector of float) +0:? 'varyingVar' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/400.frag.out b/deps/glslang/glslang/Test/baseResults/400.frag.out new file mode 100644 index 0000000000..90f73dc723 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/400.frag.out @@ -0,0 +1,728 @@ +400.frag +ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument +ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument +ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument +ERROR: 0:30: 'location qualifier on input' : not supported for this version or the enabled extensions +ERROR: 0:38: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions +ERROR: 0:40: 'redeclaration' : cannot apply layout qualifier to gl_Color +ERROR: 0:41: 'redeclaration' : cannot change qualification of gl_ClipDistance +ERROR: 0:43: 'gl_FragCoord' : cannot redeclare after use +ERROR: 0:51: 'texel offset' : argument must be compile-time constant +ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] +ERROR: 0:57: 'patch' : not supported in this stage: fragment +ERROR: 0:58: 'patch' : not supported in this stage: fragment +ERROR: 0:58: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output +ERROR: 0:73: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control +ERROR: 0:74: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control +ERROR: 0:75: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control +ERROR: 0:75: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control +ERROR: 0:104: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output +ERROR: 0:123: 'interpolateAtCentroid' : no matching overloaded function found +ERROR: 0:125: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:127: 'interpolateAtSample' : no matching overloaded function found +ERROR: 0:132: 'interpolateAtOffset' : no matching overloaded function found +ERROR: 0:134: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element +ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:183: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:197: 'subroutine' : feature not yet implemented +ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification +ERROR: 0:198: 'subroutine' : feature not yet implemented +ERROR: 0:199: 'subroutine' : feature not yet implemented +ERROR: 0:201: '' : syntax error, unexpected PRECISE, expecting IDENTIFIER +ERROR: 39 compilation errors. No code generated. + + +Shader version: 400 +Requested GL_ARB_derivative_control +Requested GL_ARB_separate_shader_objects +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'v' ( temp 4-component vector of float) +0:13 texture ( global 4-component vector of float) +0:13 indirect index ( temp sampler2D) +0:13 'arrayedSampler' ( uniform 5-element array of sampler2D) +0:13 'i' ( flat in int) +0:13 'c2D' ( smooth in 2-component vector of float) +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 'outp' ( out 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( smooth temp float ClipDistance) +0:14 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) +0:14 Constant: +0:14 1 (const int) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of uint) +0:18 'uv4' ( temp 4-component vector of uint) +0:18 textureGatherOffsets ( global 4-component vector of uint) +0:18 'samp2dr' ( uniform usampler2DRect) +0:18 'c2D' ( smooth in 2-component vector of float) +0:18 'offsets' ( temp 4-element array of 2-component vector of int) +0:18 Constant: +0:18 2 (const int) +0:19 move second child to first child ( temp 4-component vector of uint) +0:19 'uv4' ( temp 4-component vector of uint) +0:19 textureGatherOffsets ( global 4-component vector of uint) +0:19 'samp2dr' ( uniform usampler2DRect) +0:19 'c2D' ( smooth in 2-component vector of float) +0:19 Constant: +0:19 1 (const int) +0:19 2 (const int) +0:19 3 (const int) +0:19 4 (const int) +0:19 15 (const int) +0:19 16 (const int) +0:19 -2 (const int) +0:19 0 (const int) +0:19 Constant: +0:19 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'v4' ( temp 4-component vector of float) +0:20 textureGather ( global 4-component vector of float) +0:20 direct index ( temp sampler2D) +0:20 'arrayedSampler' ( uniform 5-element array of sampler2D) +0:20 Constant: +0:20 0 (const int) +0:20 'c2D' ( smooth in 2-component vector of float) +0:21 Sequence +0:21 move second child to first child ( temp 4-component vector of int) +0:21 'iv4' ( temp 4-component vector of int) +0:21 textureGatherOffset ( global 4-component vector of int) +0:21 'isamp2DA' ( uniform isampler2DArray) +0:21 Constant: +0:21 0.100000 +0:21 0.100000 +0:21 0.100000 +0:21 Constant: +0:21 1 (const int) +0:21 1 (const int) +0:21 Constant: +0:21 3 (const int) +0:22 move second child to first child ( temp 4-component vector of int) +0:22 'iv4' ( temp 4-component vector of int) +0:22 textureGatherOffset ( global 4-component vector of int) +0:22 'isamp2DA' ( uniform isampler2DArray) +0:22 Constant: +0:22 0.100000 +0:22 0.100000 +0:22 0.100000 +0:22 Constant: +0:22 1 (const int) +0:22 1 (const int) +0:22 'i' ( flat in int) +0:23 move second child to first child ( temp 4-component vector of int) +0:23 'iv4' ( temp 4-component vector of int) +0:23 textureGatherOffset ( global 4-component vector of int) +0:23 'isamp2DA' ( uniform isampler2DArray) +0:23 Constant: +0:23 0.100000 +0:23 0.100000 +0:23 0.100000 +0:23 Constant: +0:23 1 (const int) +0:23 1 (const int) +0:23 Constant: +0:23 4 (const int) +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'iv4' ( temp 4-component vector of int) +0:24 textureGatherOffset ( global 4-component vector of int) +0:24 'isamp2DA' ( uniform isampler2DArray) +0:24 Constant: +0:24 0.100000 +0:24 0.100000 +0:24 0.100000 +0:24 Constant: +0:24 1 (const int) +0:24 1 (const int) +0:24 Constant: +0:24 3 (const int) +0:25 move second child to first child ( temp 4-component vector of int) +0:25 'iv4' ( temp 4-component vector of int) +0:25 textureGatherOffset ( global 4-component vector of int) +0:25 'isamp2DA' ( uniform isampler2DArray) +0:25 Constant: +0:25 0.100000 +0:25 0.100000 +0:25 0.100000 +0:25 Construct ivec2 ( temp 2-component vector of int) +0:25 'i' ( flat in int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'c' ( temp 4-component vector of float) +0:27 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:47 Function Definition: foo23( ( global void) +0:47 Function Parameters: +0:? Sequence +0:51 textureProjGradOffset ( global float) +0:51 'u2drs' ( uniform sampler2DRectShadow) +0:51 'outp' ( out 4-component vector of float) +0:51 Constant: +0:51 0.000000 +0:51 0.000000 +0:51 Constant: +0:51 0.000000 +0:51 0.000000 +0:51 Convert float to int ( temp 2-component vector of int) +0:51 'c2D' ( smooth in 2-component vector of float) +0:52 textureProjGradOffset ( global float) +0:52 'u2drs' ( uniform sampler2DRectShadow) +0:52 'outp' ( out 4-component vector of float) +0:52 Constant: +0:52 0.000000 +0:52 0.000000 +0:52 Constant: +0:52 0.000000 +0:52 0.000000 +0:52 Constant: +0:52 3 (const int) +0:52 4 (const int) +0:53 textureProjGradOffset ( global float) +0:53 'u2drs' ( uniform sampler2DRectShadow) +0:53 'outp' ( out 4-component vector of float) +0:53 Constant: +0:53 0.000000 +0:53 0.000000 +0:53 Constant: +0:53 0.000000 +0:53 0.000000 +0:53 Constant: +0:53 15 (const int) +0:53 16 (const int) +0:54 textureProjGradOffset ( global float) +0:54 'u2drs' ( uniform sampler2DRectShadow) +0:54 'outp' ( out 4-component vector of float) +0:54 Constant: +0:54 0.000000 +0:54 0.000000 +0:54 Constant: +0:54 0.000000 +0:54 0.000000 +0:54 Constant: +0:54 -10 (const int) +0:54 20 (const int) +0:60 Function Definition: foo24( ( global void) +0:60 Function Parameters: +0:? Sequence +0:63 move second child to first child ( temp 3-component vector of double) +0:63 'df' ( temp 3-component vector of double) +0:63 modf ( global 3-component vector of double) +0:63 Convert float to double ( temp 3-component vector of double) +0:63 vector swizzle ( temp 3-component vector of float) +0:63 'outp' ( out 4-component vector of float) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 'di' ( temp 3-component vector of double) +0:71 Function Definition: foodc1( ( global void) +0:71 Function Parameters: +0:73 Sequence +0:73 Sequence +0:73 move second child to first child ( temp 2-component vector of float) +0:73 'v2' ( temp 2-component vector of float) +0:73 dPdxFine ( global 2-component vector of float) +0:73 'in2' ( smooth in 2-component vector of float) +0:74 Sequence +0:74 move second child to first child ( temp 3-component vector of float) +0:74 'v3' ( temp 3-component vector of float) +0:74 dPdyCoarse ( global 3-component vector of float) +0:74 'in3' ( smooth in 3-component vector of float) +0:75 Sequence +0:75 move second child to first child ( temp 4-component vector of float) +0:75 'v4' ( temp 4-component vector of float) +0:75 add ( temp 4-component vector of float) +0:75 fwidthCoarse ( global 4-component vector of float) +0:75 'in4' ( smooth in 4-component vector of float) +0:75 fwidthFine ( global 4-component vector of float) +0:75 'in4' ( smooth in 4-component vector of float) +0:80 Function Definition: foodc2( ( global void) +0:80 Function Parameters: +0:82 Sequence +0:82 Sequence +0:82 move second child to first child ( temp 2-component vector of float) +0:82 'v2' ( temp 2-component vector of float) +0:82 dPdxFine ( global 2-component vector of float) +0:82 'in2' ( smooth in 2-component vector of float) +0:83 Sequence +0:83 move second child to first child ( temp 3-component vector of float) +0:83 'v3' ( temp 3-component vector of float) +0:83 dPdyCoarse ( global 3-component vector of float) +0:83 'in3' ( smooth in 3-component vector of float) +0:84 Sequence +0:84 move second child to first child ( temp 4-component vector of float) +0:84 'v4' ( temp 4-component vector of float) +0:84 add ( temp 4-component vector of float) +0:84 fwidthCoarse ( global 4-component vector of float) +0:84 'in4' ( smooth in 4-component vector of float) +0:84 fwidthFine ( global 4-component vector of float) +0:84 'in4' ( smooth in 4-component vector of float) +0:89 move second child to first child ( temp 2-component vector of float) +0:89 'v2' ( temp 2-component vector of float) +0:89 frexp ( global 2-component vector of float) +0:89 'v2' ( temp 2-component vector of float) +0:89 'i2' ( temp 2-component vector of int) +0:90 move second child to first child ( temp 3-component vector of float) +0:90 'v3' ( temp 3-component vector of float) +0:90 ldexp ( global 3-component vector of float) +0:90 'v3' ( temp 3-component vector of float) +0:90 'i3' ( temp 3-component vector of int) +0:92 move second child to first child ( temp uint) +0:92 'u1' ( temp uint) +0:92 PackUnorm4x8 ( global uint) +0:92 'v4' ( temp 4-component vector of float) +0:93 move second child to first child ( temp uint) +0:93 'u1' ( temp uint) +0:93 PackSnorm4x8 ( global uint) +0:93 'v4' ( temp 4-component vector of float) +0:94 move second child to first child ( temp 4-component vector of float) +0:94 'v4' ( temp 4-component vector of float) +0:94 UnpackUnorm4x8 ( global 4-component vector of float) +0:94 'u1' ( temp uint) +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'v4' ( temp 4-component vector of float) +0:95 UnpackSnorm4x8 ( global 4-component vector of float) +0:95 'u1' ( temp uint) +0:99 move second child to first child ( temp double) +0:99 'd' ( temp double) +0:99 PackDouble2x32 ( global double) +0:99 'u2' ( temp 2-component vector of uint) +0:100 move second child to first child ( temp 2-component vector of uint) +0:100 'u2' ( temp 2-component vector of uint) +0:100 UnpackDouble2x32 ( global 2-component vector of uint) +0:100 'd' ( temp double) +0:117 Function Definition: interp( ( global void) +0:117 Function Parameters: +0:119 Sequence +0:119 interpolateAtCentroid ( global 2-component vector of float) +0:119 'colorfc' ( centroid flat in 2-component vector of float) +0:120 interpolateAtCentroid ( global 4-component vector of float) +0:120 'colorSampIn' ( smooth sample in 4-component vector of float) +0:121 interpolateAtCentroid ( global 4-component vector of float) +0:121 'colorfsi' ( noperspective in 4-component vector of float) +0:122 interpolateAtCentroid ( global float) +0:122 'scalarIn' ( smooth in float) +0:123 Constant: +0:123 0.000000 +0:124 interpolateAtCentroid ( global 3-component vector of float) +0:124 direct index ( smooth sample temp 3-component vector of float) +0:124 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:124 Constant: +0:124 2 (const int) +0:125 interpolateAtCentroid ( global 2-component vector of float) +0:125 vector swizzle ( temp 2-component vector of float) +0:125 direct index ( smooth sample temp 3-component vector of float) +0:125 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:125 Constant: +0:125 2 (const int) +0:125 Sequence +0:125 Constant: +0:125 0 (const int) +0:125 Constant: +0:125 1 (const int) +0:127 Constant: +0:127 0.000000 +0:128 interpolateAtSample ( global 3-component vector of float) +0:128 indirect index ( smooth sample temp 3-component vector of float) +0:128 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:128 'i' ( flat in int) +0:128 Constant: +0:128 0 (const int) +0:129 interpolateAtSample ( global float) +0:129 x: direct index for structure ( global float) +0:129 's1' ( smooth in structure{ global float x}) +0:129 Constant: +0:129 0 (const int) +0:129 Constant: +0:129 2 (const int) +0:130 interpolateAtSample ( global float) +0:130 'scalarIn' ( smooth in float) +0:130 Constant: +0:130 1 (const int) +0:132 Constant: +0:132 0.000000 +0:133 interpolateAtOffset ( global 3-component vector of float) +0:133 direct index ( smooth sample temp 3-component vector of float) +0:133 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:133 Constant: +0:133 2 (const int) +0:133 Constant: +0:133 0.200000 +0:133 0.200000 +0:134 interpolateAtOffset ( global 2-component vector of float) +0:134 vector swizzle ( temp 2-component vector of float) +0:134 direct index ( smooth sample temp 3-component vector of float) +0:134 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:134 Constant: +0:134 2 (const int) +0:134 Sequence +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 1 (const int) +0:134 Constant: +0:134 0.200000 +0:134 0.200000 +0:135 interpolateAtOffset ( global float) +0:135 add ( temp float) +0:135 'scalarIn' ( smooth in float) +0:135 'scalarIn' ( smooth in float) +0:135 Constant: +0:135 0.200000 +0:135 0.200000 +0:136 interpolateAtOffset ( global float) +0:136 x: direct index for structure ( global float) +0:136 's2' ( sample temp structure{ global float x}) +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 0.200000 +0:136 0.200000 +0:139 interpolateAtCentroid ( global float) +0:139 'f' ( temp float) +0:140 interpolateAtSample ( global 4-component vector of float) +0:140 'outp' ( out 4-component vector of float) +0:140 Constant: +0:140 0 (const int) +0:161 Function Definition: qlod( ( global void) +0:161 Function Parameters: +0:? Sequence +0:168 move second child to first child ( temp 2-component vector of float) +0:168 'lod' ( temp 2-component vector of float) +0:168 textureQueryLod ( global 2-component vector of float) +0:168 'samp1D' ( uniform sampler1D) +0:168 'pf' ( temp float) +0:169 move second child to first child ( temp 2-component vector of float) +0:169 'lod' ( temp 2-component vector of float) +0:169 textureQueryLod ( global 2-component vector of float) +0:169 'isamp2D' ( uniform isampler2D) +0:169 'pf2' ( temp 2-component vector of float) +0:170 move second child to first child ( temp 2-component vector of float) +0:170 'lod' ( temp 2-component vector of float) +0:170 textureQueryLod ( global 2-component vector of float) +0:170 'usamp3D' ( uniform usampler3D) +0:170 'pf3' ( temp 3-component vector of float) +0:171 move second child to first child ( temp 2-component vector of float) +0:171 'lod' ( temp 2-component vector of float) +0:171 textureQueryLod ( global 2-component vector of float) +0:171 'sampCube' ( uniform samplerCube) +0:171 'pf3' ( temp 3-component vector of float) +0:172 move second child to first child ( temp 2-component vector of float) +0:172 'lod' ( temp 2-component vector of float) +0:172 textureQueryLod ( global 2-component vector of float) +0:172 'isamp1DA' ( uniform isampler1DArray) +0:172 'pf' ( temp float) +0:173 move second child to first child ( temp 2-component vector of float) +0:173 'lod' ( temp 2-component vector of float) +0:173 textureQueryLod ( global 2-component vector of float) +0:173 'usamp2DA' ( uniform usampler2DArray) +0:173 'pf2' ( temp 2-component vector of float) +0:174 move second child to first child ( temp 2-component vector of float) +0:174 'lod' ( temp 2-component vector of float) +0:174 textureQueryLod ( global 2-component vector of float) +0:174 'isampCubeA' ( uniform isamplerCubeArray) +0:174 'pf3' ( temp 3-component vector of float) +0:176 move second child to first child ( temp 2-component vector of float) +0:176 'lod' ( temp 2-component vector of float) +0:176 textureQueryLod ( global 2-component vector of float) +0:176 'samp1Ds' ( uniform sampler1DShadow) +0:176 'pf' ( temp float) +0:177 move second child to first child ( temp 2-component vector of float) +0:177 'lod' ( temp 2-component vector of float) +0:177 textureQueryLod ( global 2-component vector of float) +0:177 'samp2Ds' ( uniform sampler2DShadow) +0:177 'pf2' ( temp 2-component vector of float) +0:178 move second child to first child ( temp 2-component vector of float) +0:178 'lod' ( temp 2-component vector of float) +0:178 textureQueryLod ( global 2-component vector of float) +0:178 'sampCubes' ( uniform samplerCubeShadow) +0:178 'pf3' ( temp 3-component vector of float) +0:179 move second child to first child ( temp 2-component vector of float) +0:179 'lod' ( temp 2-component vector of float) +0:179 textureQueryLod ( global 2-component vector of float) +0:179 'samp1DAs' ( uniform sampler1DArrayShadow) +0:179 'pf' ( temp float) +0:180 move second child to first child ( temp 2-component vector of float) +0:180 'lod' ( temp 2-component vector of float) +0:180 textureQueryLod ( global 2-component vector of float) +0:180 'samp2DAs' ( uniform sampler2DArrayShadow) +0:180 'pf2' ( temp 2-component vector of float) +0:181 move second child to first child ( temp 2-component vector of float) +0:181 'lod' ( temp 2-component vector of float) +0:181 textureQueryLod ( global 2-component vector of float) +0:181 'sampCubeAs' ( uniform samplerCubeArrayShadow) +0:181 'pf3' ( temp 3-component vector of float) +0:183 'lod' ( temp 2-component vector of float) +0:184 'lod' ( temp 2-component vector of float) +0:190 Function Definition: bitwiseConv( ( global void) +0:190 Function Parameters: +0:192 Sequence +0:192 move second child to first child ( temp uint) +0:192 'iout' ( out uint) +0:192 bitwise and ( temp uint) +0:192 'uu' ( uniform uint) +0:192 Convert int to uint ( temp uint) +0:192 'i' ( flat in int) +0:193 add second child into first child ( temp uint) +0:193 'iout' ( out uint) +0:193 exclusive-or ( temp uint) +0:193 'uu' ( uniform uint) +0:193 Convert int to uint ( temp uint) +0:193 'i' ( flat in int) +0:194 add second child into first child ( temp uint) +0:194 'iout' ( out uint) +0:194 inclusive-or ( temp uint) +0:194 Convert int to uint ( temp uint) +0:194 'i' ( flat in int) +0:194 'uu' ( uniform uint) +0:198 Function Definition: subT1( ( temp float) +0:198 Function Parameters: +0:198 Sequence +0:198 Branch: Return with expression +0:198 Constant: +0:198 1.000000 +0:199 Function Definition: subT2( ( temp float) +0:199 Function Parameters: +0:199 Sequence +0:199 Branch: Return with expression +0:199 Constant: +0:199 1.000000 +0:? Linker Objects +0:? 'c2D' ( smooth in 2-component vector of float) +0:? 'i' ( flat in int) +0:? 'outp' ( out 4-component vector of float) +0:? 'arrayedSampler' ( uniform 5-element array of sampler2D) +0:? 'samp2dr' ( uniform usampler2DRect) +0:? 'isamp2DA' ( uniform isampler2DArray) +0:? 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) +0:? 'vl' (layout( location=4) smooth in 4-component vector of float) +0:? 'vl2' (layout( location=6) smooth in 4-component vector of float) +0:? 'uv3' (layout( location=3) uniform 3-component vector of float) +0:? 'anon@0' ( in block{ in float FogFragCoord gl_FogFragCoord, in unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) +0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? 'u2drs' ( uniform sampler2DRectShadow) +0:? 'patchIn' ( smooth patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'in1' ( smooth in float) +0:? 'in2' ( smooth in 2-component vector of float) +0:? 'in3' ( smooth in 3-component vector of float) +0:? 'in4' ( smooth in 4-component vector of float) +0:? 'colorSampIn' ( smooth sample in 4-component vector of float) +0:? 'colorSampleBad' ( sample out 4-component vector of float) +0:? 'colorfsi' ( noperspective in 4-component vector of float) +0:? 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:? 'scalarIn' ( smooth in float) +0:? 'colorfc' ( centroid flat in 2-component vector of float) +0:? 's1' ( smooth in structure{ global float x}) +0:? 's2' ( sample temp structure{ global float x}) +0:? 'samp1D' ( uniform sampler1D) +0:? 'isamp2D' ( uniform isampler2D) +0:? 'usamp3D' ( uniform usampler3D) +0:? 'sampCube' ( uniform samplerCube) +0:? 'isamp1DA' ( uniform isampler1DArray) +0:? 'usamp2DA' ( uniform usampler2DArray) +0:? 'isampCubeA' ( uniform isamplerCubeArray) +0:? 'samp1Ds' ( uniform sampler1DShadow) +0:? 'samp2Ds' ( uniform sampler2DShadow) +0:? 'sampCubes' ( uniform samplerCubeShadow) +0:? 'samp1DAs' ( uniform sampler1DArrayShadow) +0:? 'samp2DAs' ( uniform sampler2DArrayShadow) +0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow) +0:? 'sampBuf' ( uniform samplerBuffer) +0:? 'sampRect' ( uniform sampler2DRect) +0:? 'uu' ( uniform uint) +0:? 'iout' ( out uint) + + +Linked fragment stage: + + +Shader version: 400 +Requested GL_ARB_derivative_control +Requested GL_ARB_separate_shader_objects +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'v' ( temp 4-component vector of float) +0:13 texture ( global 4-component vector of float) +0:13 indirect index ( temp sampler2D) +0:13 'arrayedSampler' ( uniform 5-element array of sampler2D) +0:13 'i' ( flat in int) +0:13 'c2D' ( smooth in 2-component vector of float) +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 'outp' ( out 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( smooth temp float ClipDistance) +0:14 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) +0:14 Constant: +0:14 1 (const int) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of uint) +0:18 'uv4' ( temp 4-component vector of uint) +0:18 textureGatherOffsets ( global 4-component vector of uint) +0:18 'samp2dr' ( uniform usampler2DRect) +0:18 'c2D' ( smooth in 2-component vector of float) +0:18 'offsets' ( temp 4-element array of 2-component vector of int) +0:18 Constant: +0:18 2 (const int) +0:19 move second child to first child ( temp 4-component vector of uint) +0:19 'uv4' ( temp 4-component vector of uint) +0:19 textureGatherOffsets ( global 4-component vector of uint) +0:19 'samp2dr' ( uniform usampler2DRect) +0:19 'c2D' ( smooth in 2-component vector of float) +0:19 Constant: +0:19 1 (const int) +0:19 2 (const int) +0:19 3 (const int) +0:19 4 (const int) +0:19 15 (const int) +0:19 16 (const int) +0:19 -2 (const int) +0:19 0 (const int) +0:19 Constant: +0:19 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'v4' ( temp 4-component vector of float) +0:20 textureGather ( global 4-component vector of float) +0:20 direct index ( temp sampler2D) +0:20 'arrayedSampler' ( uniform 5-element array of sampler2D) +0:20 Constant: +0:20 0 (const int) +0:20 'c2D' ( smooth in 2-component vector of float) +0:21 Sequence +0:21 move second child to first child ( temp 4-component vector of int) +0:21 'iv4' ( temp 4-component vector of int) +0:21 textureGatherOffset ( global 4-component vector of int) +0:21 'isamp2DA' ( uniform isampler2DArray) +0:21 Constant: +0:21 0.100000 +0:21 0.100000 +0:21 0.100000 +0:21 Constant: +0:21 1 (const int) +0:21 1 (const int) +0:21 Constant: +0:21 3 (const int) +0:22 move second child to first child ( temp 4-component vector of int) +0:22 'iv4' ( temp 4-component vector of int) +0:22 textureGatherOffset ( global 4-component vector of int) +0:22 'isamp2DA' ( uniform isampler2DArray) +0:22 Constant: +0:22 0.100000 +0:22 0.100000 +0:22 0.100000 +0:22 Constant: +0:22 1 (const int) +0:22 1 (const int) +0:22 'i' ( flat in int) +0:23 move second child to first child ( temp 4-component vector of int) +0:23 'iv4' ( temp 4-component vector of int) +0:23 textureGatherOffset ( global 4-component vector of int) +0:23 'isamp2DA' ( uniform isampler2DArray) +0:23 Constant: +0:23 0.100000 +0:23 0.100000 +0:23 0.100000 +0:23 Constant: +0:23 1 (const int) +0:23 1 (const int) +0:23 Constant: +0:23 4 (const int) +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'iv4' ( temp 4-component vector of int) +0:24 textureGatherOffset ( global 4-component vector of int) +0:24 'isamp2DA' ( uniform isampler2DArray) +0:24 Constant: +0:24 0.100000 +0:24 0.100000 +0:24 0.100000 +0:24 Constant: +0:24 1 (const int) +0:24 1 (const int) +0:24 Constant: +0:24 3 (const int) +0:25 move second child to first child ( temp 4-component vector of int) +0:25 'iv4' ( temp 4-component vector of int) +0:25 textureGatherOffset ( global 4-component vector of int) +0:25 'isamp2DA' ( uniform isampler2DArray) +0:25 Constant: +0:25 0.100000 +0:25 0.100000 +0:25 0.100000 +0:25 Construct ivec2 ( temp 2-component vector of int) +0:25 'i' ( flat in int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'c' ( temp 4-component vector of float) +0:27 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? Linker Objects +0:? 'c2D' ( smooth in 2-component vector of float) +0:? 'i' ( flat in int) +0:? 'outp' ( out 4-component vector of float) +0:? 'arrayedSampler' ( uniform 5-element array of sampler2D) +0:? 'samp2dr' ( uniform usampler2DRect) +0:? 'isamp2DA' ( uniform isampler2DArray) +0:? 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) +0:? 'vl' (layout( location=4) smooth in 4-component vector of float) +0:? 'vl2' (layout( location=6) smooth in 4-component vector of float) +0:? 'uv3' (layout( location=3) uniform 3-component vector of float) +0:? 'anon@0' ( in block{ in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) +0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? 'u2drs' ( uniform sampler2DRectShadow) +0:? 'patchIn' ( smooth patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'in1' ( smooth in float) +0:? 'in2' ( smooth in 2-component vector of float) +0:? 'in3' ( smooth in 3-component vector of float) +0:? 'in4' ( smooth in 4-component vector of float) +0:? 'colorSampIn' ( smooth sample in 4-component vector of float) +0:? 'colorSampleBad' ( sample out 4-component vector of float) +0:? 'colorfsi' ( noperspective in 4-component vector of float) +0:? 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:? 'scalarIn' ( smooth in float) +0:? 'colorfc' ( centroid flat in 2-component vector of float) +0:? 's1' ( smooth in structure{ global float x}) +0:? 's2' ( sample temp structure{ global float x}) +0:? 'samp1D' ( uniform sampler1D) +0:? 'isamp2D' ( uniform isampler2D) +0:? 'usamp3D' ( uniform usampler3D) +0:? 'sampCube' ( uniform samplerCube) +0:? 'isamp1DA' ( uniform isampler1DArray) +0:? 'usamp2DA' ( uniform usampler2DArray) +0:? 'isampCubeA' ( uniform isamplerCubeArray) +0:? 'samp1Ds' ( uniform sampler1DShadow) +0:? 'samp2Ds' ( uniform sampler2DShadow) +0:? 'sampCubes' ( uniform samplerCubeShadow) +0:? 'samp1DAs' ( uniform sampler1DArrayShadow) +0:? 'samp2DAs' ( uniform sampler2DArrayShadow) +0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow) +0:? 'sampBuf' ( uniform samplerBuffer) +0:? 'sampRect' ( uniform sampler2DRect) +0:? 'uu' ( uniform uint) +0:? 'iout' ( out uint) + diff --git a/deps/glslang/glslang/Test/baseResults/400.geom.out b/deps/glslang/glslang/Test/baseResults/400.geom.out new file mode 100644 index 0000000000..52ebebcedb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/400.geom.out @@ -0,0 +1,1091 @@ +400.geom +ERROR: 0:12: 'invocations' : can only apply to a standalone qualifier +ERROR: 0:20: 'patch' : not supported in this stage: geometry +ERROR: 0:20: 'gl_PointSize' : cannot add non-XFB layout to redeclared block member +ERROR: 0:20: 'gl_PointSize' : cannot add patch to redeclared block member +ERROR: 0:25: 'length' : array must first be sized by a redeclaration or layout qualifier +ERROR: 0:36: 'length' : array must first be sized by a redeclaration or layout qualifier +ERROR: 0:40: 'triangles' : inconsistent input primitive for array size of colorBad +ERROR: 0:44: 'triangles' : inconsistent input primitive for array size of colorbad2 +ERROR: 0:56: 'location' : overlapping use of location 4 +ERROR: 0:58: 'patch' : not supported in this stage: geometry +ERROR: 0:59: 'patch' : not supported in this stage: geometry +ERROR: 0:61: 'in' : type must be an array: scalar +ERROR: 0:63: 'invocations' : can only apply to 'in' +ERROR: 0:64: 'max_vertices' : can only apply to 'out' +ERROR: 0:65: 'max_vertices' : can only apply to 'out' +ERROR: 0:65: 'invocations' : can only apply to 'in' +ERROR: 0:67: 'in' : type must be an array: inbls +ERROR: 0:71: 'triangles' : inconsistent input primitive for array size of inbla +ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:115: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:115: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 0:116: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:116: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' +ERROR: 23 compilation errors. No code generated. + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +invocations = 4 +max_vertices = 127 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 EmitStreamVertex ( global void) +0:5 Constant: +0:5 1 (const int) +0:6 EndStreamPrimitive ( global void) +0:6 Constant: +0:6 0 (const int) +0:7 EmitVertex ( global void) +0:8 EndPrimitive ( global void) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'id' ( temp int) +0:9 'gl_InvocationID' ( in int InvocationID) +0:23 Function Definition: foo( ( global void) +0:23 Function Parameters: +0:25 Sequence +0:25 Constant: +0:25 1 (const int) +0:26 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:26 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) +0:26 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const int) +0:34 Function Definition: foo2( ( global void) +0:34 Function Parameters: +0:36 Sequence +0:36 Constant: +0:36 1 (const int) +0:37 Constant: +0:37 3 (const int) +0:46 Function Definition: foo3( ( global void) +0:46 Function Parameters: +0:48 Sequence +0:48 Constant: +0:48 3 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 Constant: +0:50 3 (const int) +0:51 Constant: +0:51 3 (const int) +0:75 Function Definition: bits( ( global void) +0:75 Function Parameters: +0:? Sequence +0:78 move second child to first child ( temp 2-component vector of uint) +0:78 'u2' ( temp 2-component vector of uint) +0:78 addCarry ( global 2-component vector of uint) +0:78 'u2' ( temp 2-component vector of uint) +0:78 'u2' ( temp 2-component vector of uint) +0:78 'u2' ( temp 2-component vector of uint) +0:80 move second child to first child ( temp uint) +0:80 'u1' ( temp uint) +0:80 subBorrow ( global uint) +0:80 'u1' ( temp uint) +0:80 'u1' ( temp uint) +0:80 'u1' ( temp uint) +0:82 uMulExtended ( global void) +0:82 'u4' ( temp 4-component vector of uint) +0:82 'u4' ( temp 4-component vector of uint) +0:82 'u4' ( temp 4-component vector of uint) +0:82 'u4' ( temp 4-component vector of uint) +0:84 iMulExtended ( global void) +0:84 'i4' ( temp 4-component vector of int) +0:84 'i4' ( temp 4-component vector of int) +0:84 'i4' ( temp 4-component vector of int) +0:84 'i4' ( temp 4-component vector of int) +0:86 move second child to first child ( temp int) +0:86 'i1' ( temp int) +0:86 bitfieldExtract ( global int) +0:86 'i1' ( temp int) +0:86 Constant: +0:86 4 (const int) +0:86 Constant: +0:86 5 (const int) +0:88 move second child to first child ( temp 3-component vector of uint) +0:88 'u3' ( temp 3-component vector of uint) +0:88 bitfieldExtract ( global 3-component vector of uint) +0:88 'u3' ( temp 3-component vector of uint) +0:88 Constant: +0:88 4 (const int) +0:88 Constant: +0:88 5 (const int) +0:90 move second child to first child ( temp 3-component vector of int) +0:90 'i3' ( temp 3-component vector of int) +0:90 bitfieldInsert ( global 3-component vector of int) +0:90 'i3' ( temp 3-component vector of int) +0:90 'i3' ( temp 3-component vector of int) +0:90 Constant: +0:90 4 (const int) +0:90 Constant: +0:90 5 (const int) +0:91 move second child to first child ( temp uint) +0:91 'u1' ( temp uint) +0:91 bitfieldInsert ( global uint) +0:91 'u1' ( temp uint) +0:91 'u1' ( temp uint) +0:91 Constant: +0:91 4 (const int) +0:91 Constant: +0:91 5 (const int) +0:93 move second child to first child ( temp 2-component vector of int) +0:93 'i2' ( temp 2-component vector of int) +0:93 bitFieldReverse ( global 2-component vector of int) +0:93 'i2' ( temp 2-component vector of int) +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 'u4' ( temp 4-component vector of uint) +0:94 bitFieldReverse ( global 4-component vector of uint) +0:94 'u4' ( temp 4-component vector of uint) +0:95 move second child to first child ( temp int) +0:95 'i1' ( temp int) +0:95 bitCount ( global int) +0:95 'i1' ( temp int) +0:96 move second child to first child ( temp 3-component vector of int) +0:96 'i3' ( temp 3-component vector of int) +0:96 bitCount ( global 3-component vector of int) +0:96 'u3' ( temp 3-component vector of uint) +0:97 move second child to first child ( temp 2-component vector of int) +0:97 'i2' ( temp 2-component vector of int) +0:97 findLSB ( global 2-component vector of int) +0:97 'i2' ( temp 2-component vector of int) +0:98 move second child to first child ( temp 4-component vector of int) +0:98 'i4' ( temp 4-component vector of int) +0:98 findLSB ( global 4-component vector of int) +0:98 'u4' ( temp 4-component vector of uint) +0:99 move second child to first child ( temp int) +0:99 'i1' ( temp int) +0:99 findMSB ( global int) +0:99 'i1' ( temp int) +0:100 move second child to first child ( temp 2-component vector of int) +0:100 'i2' ( temp 2-component vector of int) +0:100 findMSB ( global 2-component vector of int) +0:100 'u2' ( temp 2-component vector of uint) +0:108 Function Definition: qlod( ( global void) +0:108 Function Parameters: +0:? Sequence +0:115 'lod' ( temp 2-component vector of float) +0:116 'lod' ( temp 2-component vector of float) +0:119 Function Definition: doubles( ( global void) +0:119 Function Parameters: +0:? Sequence +0:131 move second child to first child ( temp double) +0:131 'doublev' ( temp double) +0:131 Constant: +0:131 1.702939 +0:132 move second child to first child ( temp 2-component vector of double) +0:132 'dvec2v' ( temp 2-component vector of double) +0:132 Constant: +0:132 1.643168 +0:132 1.643168 +0:133 move second child to first child ( temp 3-component vector of double) +0:133 'dvec3v' ( temp 3-component vector of double) +0:133 Constant: +0:133 1.414214 +0:133 1.414214 +0:133 1.414214 +0:134 move second child to first child ( temp 4-component vector of double) +0:134 'dvec4v' ( temp 4-component vector of double) +0:134 Constant: +0:134 1.449138 +0:134 1.449138 +0:134 1.449138 +0:134 1.449138 +0:136 add second child into first child ( temp double) +0:136 'doublev' ( temp double) +0:136 inverse sqrt ( global double) +0:136 'doublev' ( temp double) +0:137 add second child into first child ( temp 2-component vector of double) +0:137 'dvec2v' ( temp 2-component vector of double) +0:137 inverse sqrt ( global 2-component vector of double) +0:137 'dvec2v' ( temp 2-component vector of double) +0:138 add second child into first child ( temp 3-component vector of double) +0:138 'dvec3v' ( temp 3-component vector of double) +0:138 inverse sqrt ( global 3-component vector of double) +0:138 'dvec3v' ( temp 3-component vector of double) +0:139 add second child into first child ( temp 4-component vector of double) +0:139 'dvec4v' ( temp 4-component vector of double) +0:139 inverse sqrt ( global 4-component vector of double) +0:139 'dvec4v' ( temp 4-component vector of double) +0:141 add second child into first child ( temp double) +0:141 'doublev' ( temp double) +0:141 Absolute value ( global double) +0:141 'doublev' ( temp double) +0:142 add second child into first child ( temp 2-component vector of double) +0:142 'dvec2v' ( temp 2-component vector of double) +0:142 Absolute value ( global 2-component vector of double) +0:142 'dvec2v' ( temp 2-component vector of double) +0:143 add second child into first child ( temp 3-component vector of double) +0:143 'dvec3v' ( temp 3-component vector of double) +0:143 Absolute value ( global 3-component vector of double) +0:143 'dvec3v' ( temp 3-component vector of double) +0:144 add second child into first child ( temp 4-component vector of double) +0:144 'dvec4v' ( temp 4-component vector of double) +0:144 Absolute value ( global 4-component vector of double) +0:144 'dvec4v' ( temp 4-component vector of double) +0:146 add second child into first child ( temp double) +0:146 'doublev' ( temp double) +0:146 Sign ( global double) +0:146 'doublev' ( temp double) +0:147 add second child into first child ( temp 2-component vector of double) +0:147 'dvec2v' ( temp 2-component vector of double) +0:147 Sign ( global 2-component vector of double) +0:147 'dvec2v' ( temp 2-component vector of double) +0:148 add second child into first child ( temp 3-component vector of double) +0:148 'dvec3v' ( temp 3-component vector of double) +0:148 Sign ( global 3-component vector of double) +0:148 'dvec3v' ( temp 3-component vector of double) +0:149 add second child into first child ( temp 4-component vector of double) +0:149 'dvec4v' ( temp 4-component vector of double) +0:149 Sign ( global 4-component vector of double) +0:149 'dvec4v' ( temp 4-component vector of double) +0:151 add second child into first child ( temp double) +0:151 'doublev' ( temp double) +0:151 Floor ( global double) +0:151 'doublev' ( temp double) +0:152 add second child into first child ( temp 2-component vector of double) +0:152 'dvec2v' ( temp 2-component vector of double) +0:152 Floor ( global 2-component vector of double) +0:152 'dvec2v' ( temp 2-component vector of double) +0:153 add second child into first child ( temp 3-component vector of double) +0:153 'dvec3v' ( temp 3-component vector of double) +0:153 Floor ( global 3-component vector of double) +0:153 'dvec3v' ( temp 3-component vector of double) +0:154 add second child into first child ( temp 4-component vector of double) +0:154 'dvec4v' ( temp 4-component vector of double) +0:154 Floor ( global 4-component vector of double) +0:154 'dvec4v' ( temp 4-component vector of double) +0:156 add second child into first child ( temp double) +0:156 'doublev' ( temp double) +0:156 trunc ( global double) +0:156 'doublev' ( temp double) +0:157 add second child into first child ( temp 2-component vector of double) +0:157 'dvec2v' ( temp 2-component vector of double) +0:157 trunc ( global 2-component vector of double) +0:157 'dvec2v' ( temp 2-component vector of double) +0:158 add second child into first child ( temp 3-component vector of double) +0:158 'dvec3v' ( temp 3-component vector of double) +0:158 trunc ( global 3-component vector of double) +0:158 'dvec3v' ( temp 3-component vector of double) +0:159 add second child into first child ( temp 4-component vector of double) +0:159 'dvec4v' ( temp 4-component vector of double) +0:159 trunc ( global 4-component vector of double) +0:159 'dvec4v' ( temp 4-component vector of double) +0:161 add second child into first child ( temp double) +0:161 'doublev' ( temp double) +0:161 round ( global double) +0:161 'doublev' ( temp double) +0:162 add second child into first child ( temp 2-component vector of double) +0:162 'dvec2v' ( temp 2-component vector of double) +0:162 round ( global 2-component vector of double) +0:162 'dvec2v' ( temp 2-component vector of double) +0:163 add second child into first child ( temp 3-component vector of double) +0:163 'dvec3v' ( temp 3-component vector of double) +0:163 round ( global 3-component vector of double) +0:163 'dvec3v' ( temp 3-component vector of double) +0:164 add second child into first child ( temp 4-component vector of double) +0:164 'dvec4v' ( temp 4-component vector of double) +0:164 round ( global 4-component vector of double) +0:164 'dvec4v' ( temp 4-component vector of double) +0:166 add second child into first child ( temp double) +0:166 'doublev' ( temp double) +0:166 roundEven ( global double) +0:166 'doublev' ( temp double) +0:167 add second child into first child ( temp 2-component vector of double) +0:167 'dvec2v' ( temp 2-component vector of double) +0:167 roundEven ( global 2-component vector of double) +0:167 'dvec2v' ( temp 2-component vector of double) +0:168 add second child into first child ( temp 3-component vector of double) +0:168 'dvec3v' ( temp 3-component vector of double) +0:168 roundEven ( global 3-component vector of double) +0:168 'dvec3v' ( temp 3-component vector of double) +0:169 add second child into first child ( temp 4-component vector of double) +0:169 'dvec4v' ( temp 4-component vector of double) +0:169 roundEven ( global 4-component vector of double) +0:169 'dvec4v' ( temp 4-component vector of double) +0:171 add second child into first child ( temp double) +0:171 'doublev' ( temp double) +0:171 Ceiling ( global double) +0:171 'doublev' ( temp double) +0:172 add second child into first child ( temp 2-component vector of double) +0:172 'dvec2v' ( temp 2-component vector of double) +0:172 Ceiling ( global 2-component vector of double) +0:172 'dvec2v' ( temp 2-component vector of double) +0:173 add second child into first child ( temp 3-component vector of double) +0:173 'dvec3v' ( temp 3-component vector of double) +0:173 Ceiling ( global 3-component vector of double) +0:173 'dvec3v' ( temp 3-component vector of double) +0:174 add second child into first child ( temp 4-component vector of double) +0:174 'dvec4v' ( temp 4-component vector of double) +0:174 Ceiling ( global 4-component vector of double) +0:174 'dvec4v' ( temp 4-component vector of double) +0:176 add second child into first child ( temp double) +0:176 'doublev' ( temp double) +0:176 Fraction ( global double) +0:176 'doublev' ( temp double) +0:177 add second child into first child ( temp 2-component vector of double) +0:177 'dvec2v' ( temp 2-component vector of double) +0:177 Fraction ( global 2-component vector of double) +0:177 'dvec2v' ( temp 2-component vector of double) +0:178 add second child into first child ( temp 3-component vector of double) +0:178 'dvec3v' ( temp 3-component vector of double) +0:178 Fraction ( global 3-component vector of double) +0:178 'dvec3v' ( temp 3-component vector of double) +0:179 add second child into first child ( temp 4-component vector of double) +0:179 'dvec4v' ( temp 4-component vector of double) +0:179 Fraction ( global 4-component vector of double) +0:179 'dvec4v' ( temp 4-component vector of double) +0:181 add second child into first child ( temp double) +0:181 'doublev' ( temp double) +0:181 mod ( global double) +0:181 'doublev' ( temp double) +0:181 'doublev' ( temp double) +0:182 add second child into first child ( temp 2-component vector of double) +0:182 'dvec2v' ( temp 2-component vector of double) +0:182 mod ( global 2-component vector of double) +0:182 'dvec2v' ( temp 2-component vector of double) +0:182 'doublev' ( temp double) +0:183 add second child into first child ( temp 3-component vector of double) +0:183 'dvec3v' ( temp 3-component vector of double) +0:183 mod ( global 3-component vector of double) +0:183 'dvec3v' ( temp 3-component vector of double) +0:183 'doublev' ( temp double) +0:184 add second child into first child ( temp 4-component vector of double) +0:184 'dvec4v' ( temp 4-component vector of double) +0:184 mod ( global 4-component vector of double) +0:184 'dvec4v' ( temp 4-component vector of double) +0:184 'doublev' ( temp double) +0:185 add second child into first child ( temp 2-component vector of double) +0:185 'dvec2v' ( temp 2-component vector of double) +0:185 mod ( global 2-component vector of double) +0:185 'dvec2v' ( temp 2-component vector of double) +0:185 'dvec2v' ( temp 2-component vector of double) +0:186 add second child into first child ( temp 3-component vector of double) +0:186 'dvec3v' ( temp 3-component vector of double) +0:186 mod ( global 3-component vector of double) +0:186 'dvec3v' ( temp 3-component vector of double) +0:186 'dvec3v' ( temp 3-component vector of double) +0:187 add second child into first child ( temp 4-component vector of double) +0:187 'dvec4v' ( temp 4-component vector of double) +0:187 mod ( global 4-component vector of double) +0:187 'dvec4v' ( temp 4-component vector of double) +0:187 'dvec4v' ( temp 4-component vector of double) +0:189 add second child into first child ( temp double) +0:189 'doublev' ( temp double) +0:189 modf ( global double) +0:189 'doublev' ( temp double) +0:189 'doublev' ( temp double) +0:190 add second child into first child ( temp 2-component vector of double) +0:190 'dvec2v' ( temp 2-component vector of double) +0:190 modf ( global 2-component vector of double) +0:190 'dvec2v' ( temp 2-component vector of double) +0:190 'dvec2v' ( temp 2-component vector of double) +0:191 add second child into first child ( temp 3-component vector of double) +0:191 'dvec3v' ( temp 3-component vector of double) +0:191 modf ( global 3-component vector of double) +0:191 'dvec3v' ( temp 3-component vector of double) +0:191 'dvec3v' ( temp 3-component vector of double) +0:192 add second child into first child ( temp 4-component vector of double) +0:192 'dvec4v' ( temp 4-component vector of double) +0:192 modf ( global 4-component vector of double) +0:192 'dvec4v' ( temp 4-component vector of double) +0:192 'dvec4v' ( temp 4-component vector of double) +0:194 add second child into first child ( temp double) +0:194 'doublev' ( temp double) +0:194 min ( global double) +0:194 'doublev' ( temp double) +0:194 'doublev' ( temp double) +0:195 add second child into first child ( temp 2-component vector of double) +0:195 'dvec2v' ( temp 2-component vector of double) +0:195 min ( global 2-component vector of double) +0:195 'dvec2v' ( temp 2-component vector of double) +0:195 'doublev' ( temp double) +0:196 add second child into first child ( temp 3-component vector of double) +0:196 'dvec3v' ( temp 3-component vector of double) +0:196 min ( global 3-component vector of double) +0:196 'dvec3v' ( temp 3-component vector of double) +0:196 'doublev' ( temp double) +0:197 add second child into first child ( temp 4-component vector of double) +0:197 'dvec4v' ( temp 4-component vector of double) +0:197 min ( global 4-component vector of double) +0:197 'dvec4v' ( temp 4-component vector of double) +0:197 'doublev' ( temp double) +0:198 add second child into first child ( temp 2-component vector of double) +0:198 'dvec2v' ( temp 2-component vector of double) +0:198 min ( global 2-component vector of double) +0:198 'dvec2v' ( temp 2-component vector of double) +0:198 'dvec2v' ( temp 2-component vector of double) +0:199 add second child into first child ( temp 3-component vector of double) +0:199 'dvec3v' ( temp 3-component vector of double) +0:199 min ( global 3-component vector of double) +0:199 'dvec3v' ( temp 3-component vector of double) +0:199 'dvec3v' ( temp 3-component vector of double) +0:200 add second child into first child ( temp 4-component vector of double) +0:200 'dvec4v' ( temp 4-component vector of double) +0:200 min ( global 4-component vector of double) +0:200 'dvec4v' ( temp 4-component vector of double) +0:200 'dvec4v' ( temp 4-component vector of double) +0:202 add second child into first child ( temp double) +0:202 'doublev' ( temp double) +0:202 max ( global double) +0:202 'doublev' ( temp double) +0:202 'doublev' ( temp double) +0:203 add second child into first child ( temp 2-component vector of double) +0:203 'dvec2v' ( temp 2-component vector of double) +0:203 max ( global 2-component vector of double) +0:203 'dvec2v' ( temp 2-component vector of double) +0:203 'doublev' ( temp double) +0:204 add second child into first child ( temp 3-component vector of double) +0:204 'dvec3v' ( temp 3-component vector of double) +0:204 max ( global 3-component vector of double) +0:204 'dvec3v' ( temp 3-component vector of double) +0:204 'doublev' ( temp double) +0:205 add second child into first child ( temp 4-component vector of double) +0:205 'dvec4v' ( temp 4-component vector of double) +0:205 max ( global 4-component vector of double) +0:205 'dvec4v' ( temp 4-component vector of double) +0:205 'doublev' ( temp double) +0:206 add second child into first child ( temp 2-component vector of double) +0:206 'dvec2v' ( temp 2-component vector of double) +0:206 max ( global 2-component vector of double) +0:206 'dvec2v' ( temp 2-component vector of double) +0:206 'dvec2v' ( temp 2-component vector of double) +0:207 add second child into first child ( temp 3-component vector of double) +0:207 'dvec3v' ( temp 3-component vector of double) +0:207 max ( global 3-component vector of double) +0:207 'dvec3v' ( temp 3-component vector of double) +0:207 'dvec3v' ( temp 3-component vector of double) +0:208 add second child into first child ( temp 4-component vector of double) +0:208 'dvec4v' ( temp 4-component vector of double) +0:208 max ( global 4-component vector of double) +0:208 'dvec4v' ( temp 4-component vector of double) +0:208 'dvec4v' ( temp 4-component vector of double) +0:210 add second child into first child ( temp double) +0:210 'doublev' ( temp double) +0:210 clamp ( global double) +0:210 'doublev' ( temp double) +0:210 'doublev' ( temp double) +0:210 'doublev' ( temp double) +0:211 add second child into first child ( temp 2-component vector of double) +0:211 'dvec2v' ( temp 2-component vector of double) +0:211 clamp ( global 2-component vector of double) +0:211 'dvec2v' ( temp 2-component vector of double) +0:211 'doublev' ( temp double) +0:211 'doublev' ( temp double) +0:212 add second child into first child ( temp 3-component vector of double) +0:212 'dvec3v' ( temp 3-component vector of double) +0:212 clamp ( global 3-component vector of double) +0:212 'dvec3v' ( temp 3-component vector of double) +0:212 'doublev' ( temp double) +0:212 'doublev' ( temp double) +0:213 add second child into first child ( temp 4-component vector of double) +0:213 'dvec4v' ( temp 4-component vector of double) +0:213 clamp ( global 4-component vector of double) +0:213 'dvec4v' ( temp 4-component vector of double) +0:213 'doublev' ( temp double) +0:213 'doublev' ( temp double) +0:214 add second child into first child ( temp 2-component vector of double) +0:214 'dvec2v' ( temp 2-component vector of double) +0:214 clamp ( global 2-component vector of double) +0:214 'dvec2v' ( temp 2-component vector of double) +0:214 'dvec2v' ( temp 2-component vector of double) +0:214 'dvec2v' ( temp 2-component vector of double) +0:215 add second child into first child ( temp 3-component vector of double) +0:215 'dvec3v' ( temp 3-component vector of double) +0:215 clamp ( global 3-component vector of double) +0:215 'dvec3v' ( temp 3-component vector of double) +0:215 'dvec3v' ( temp 3-component vector of double) +0:215 'dvec3v' ( temp 3-component vector of double) +0:216 add second child into first child ( temp 4-component vector of double) +0:216 'dvec4v' ( temp 4-component vector of double) +0:216 clamp ( global 4-component vector of double) +0:216 'dvec4v' ( temp 4-component vector of double) +0:216 'dvec4v' ( temp 4-component vector of double) +0:216 'dvec4v' ( temp 4-component vector of double) +0:218 add second child into first child ( temp double) +0:218 'doublev' ( temp double) +0:218 mix ( global double) +0:218 'doublev' ( temp double) +0:218 'doublev' ( temp double) +0:218 'doublev' ( temp double) +0:219 add second child into first child ( temp 2-component vector of double) +0:219 'dvec2v' ( temp 2-component vector of double) +0:219 mix ( global 2-component vector of double) +0:219 'dvec2v' ( temp 2-component vector of double) +0:219 'dvec2v' ( temp 2-component vector of double) +0:219 'doublev' ( temp double) +0:220 add second child into first child ( temp 3-component vector of double) +0:220 'dvec3v' ( temp 3-component vector of double) +0:220 mix ( global 3-component vector of double) +0:220 'dvec3v' ( temp 3-component vector of double) +0:220 'dvec3v' ( temp 3-component vector of double) +0:220 'doublev' ( temp double) +0:221 add second child into first child ( temp 4-component vector of double) +0:221 'dvec4v' ( temp 4-component vector of double) +0:221 mix ( global 4-component vector of double) +0:221 'dvec4v' ( temp 4-component vector of double) +0:221 'dvec4v' ( temp 4-component vector of double) +0:221 'doublev' ( temp double) +0:222 add second child into first child ( temp 2-component vector of double) +0:222 'dvec2v' ( temp 2-component vector of double) +0:222 mix ( global 2-component vector of double) +0:222 'dvec2v' ( temp 2-component vector of double) +0:222 'dvec2v' ( temp 2-component vector of double) +0:222 'dvec2v' ( temp 2-component vector of double) +0:223 add second child into first child ( temp 3-component vector of double) +0:223 'dvec3v' ( temp 3-component vector of double) +0:223 mix ( global 3-component vector of double) +0:223 'dvec3v' ( temp 3-component vector of double) +0:223 'dvec3v' ( temp 3-component vector of double) +0:223 'dvec3v' ( temp 3-component vector of double) +0:224 add second child into first child ( temp 4-component vector of double) +0:224 'dvec4v' ( temp 4-component vector of double) +0:224 mix ( global 4-component vector of double) +0:224 'dvec4v' ( temp 4-component vector of double) +0:224 'dvec4v' ( temp 4-component vector of double) +0:224 'dvec4v' ( temp 4-component vector of double) +0:225 add second child into first child ( temp double) +0:225 'doublev' ( temp double) +0:225 mix ( global double) +0:225 'doublev' ( temp double) +0:225 'doublev' ( temp double) +0:225 'boolv' ( temp bool) +0:226 add second child into first child ( temp 2-component vector of double) +0:226 'dvec2v' ( temp 2-component vector of double) +0:226 mix ( global 2-component vector of double) +0:226 'dvec2v' ( temp 2-component vector of double) +0:226 'dvec2v' ( temp 2-component vector of double) +0:226 'bvec2v' ( temp 2-component vector of bool) +0:227 add second child into first child ( temp 3-component vector of double) +0:227 'dvec3v' ( temp 3-component vector of double) +0:227 mix ( global 3-component vector of double) +0:227 'dvec3v' ( temp 3-component vector of double) +0:227 'dvec3v' ( temp 3-component vector of double) +0:227 'bvec3v' ( temp 3-component vector of bool) +0:228 add second child into first child ( temp 4-component vector of double) +0:228 'dvec4v' ( temp 4-component vector of double) +0:228 mix ( global 4-component vector of double) +0:228 'dvec4v' ( temp 4-component vector of double) +0:228 'dvec4v' ( temp 4-component vector of double) +0:228 'bvec4v' ( temp 4-component vector of bool) +0:230 add second child into first child ( temp double) +0:230 'doublev' ( temp double) +0:230 step ( global double) +0:230 'doublev' ( temp double) +0:230 'doublev' ( temp double) +0:231 add second child into first child ( temp 2-component vector of double) +0:231 'dvec2v' ( temp 2-component vector of double) +0:231 step ( global 2-component vector of double) +0:231 'dvec2v' ( temp 2-component vector of double) +0:231 'dvec2v' ( temp 2-component vector of double) +0:232 add second child into first child ( temp 3-component vector of double) +0:232 'dvec3v' ( temp 3-component vector of double) +0:232 step ( global 3-component vector of double) +0:232 'dvec3v' ( temp 3-component vector of double) +0:232 'dvec3v' ( temp 3-component vector of double) +0:233 add second child into first child ( temp 4-component vector of double) +0:233 'dvec4v' ( temp 4-component vector of double) +0:233 step ( global 4-component vector of double) +0:233 'dvec4v' ( temp 4-component vector of double) +0:233 'dvec4v' ( temp 4-component vector of double) +0:234 add second child into first child ( temp 2-component vector of double) +0:234 'dvec2v' ( temp 2-component vector of double) +0:234 step ( global 2-component vector of double) +0:234 'doublev' ( temp double) +0:234 'dvec2v' ( temp 2-component vector of double) +0:235 add second child into first child ( temp 3-component vector of double) +0:235 'dvec3v' ( temp 3-component vector of double) +0:235 step ( global 3-component vector of double) +0:235 'doublev' ( temp double) +0:235 'dvec3v' ( temp 3-component vector of double) +0:236 add second child into first child ( temp 4-component vector of double) +0:236 'dvec4v' ( temp 4-component vector of double) +0:236 step ( global 4-component vector of double) +0:236 'doublev' ( temp double) +0:236 'dvec4v' ( temp 4-component vector of double) +0:238 add second child into first child ( temp double) +0:238 'doublev' ( temp double) +0:238 smoothstep ( global double) +0:238 'doublev' ( temp double) +0:238 'doublev' ( temp double) +0:238 'doublev' ( temp double) +0:239 add second child into first child ( temp 2-component vector of double) +0:239 'dvec2v' ( temp 2-component vector of double) +0:239 smoothstep ( global 2-component vector of double) +0:239 'dvec2v' ( temp 2-component vector of double) +0:239 'dvec2v' ( temp 2-component vector of double) +0:239 'dvec2v' ( temp 2-component vector of double) +0:240 add second child into first child ( temp 3-component vector of double) +0:240 'dvec3v' ( temp 3-component vector of double) +0:240 smoothstep ( global 3-component vector of double) +0:240 'dvec3v' ( temp 3-component vector of double) +0:240 'dvec3v' ( temp 3-component vector of double) +0:240 'dvec3v' ( temp 3-component vector of double) +0:241 add second child into first child ( temp 4-component vector of double) +0:241 'dvec4v' ( temp 4-component vector of double) +0:241 smoothstep ( global 4-component vector of double) +0:241 'dvec4v' ( temp 4-component vector of double) +0:241 'dvec4v' ( temp 4-component vector of double) +0:241 'dvec4v' ( temp 4-component vector of double) +0:242 add second child into first child ( temp 2-component vector of double) +0:242 'dvec2v' ( temp 2-component vector of double) +0:242 smoothstep ( global 2-component vector of double) +0:242 'doublev' ( temp double) +0:242 'doublev' ( temp double) +0:242 'dvec2v' ( temp 2-component vector of double) +0:243 add second child into first child ( temp 3-component vector of double) +0:243 'dvec3v' ( temp 3-component vector of double) +0:243 smoothstep ( global 3-component vector of double) +0:243 'doublev' ( temp double) +0:243 'doublev' ( temp double) +0:243 'dvec3v' ( temp 3-component vector of double) +0:244 add second child into first child ( temp 4-component vector of double) +0:244 'dvec4v' ( temp 4-component vector of double) +0:244 smoothstep ( global 4-component vector of double) +0:244 'doublev' ( temp double) +0:244 'doublev' ( temp double) +0:244 'dvec4v' ( temp 4-component vector of double) +0:246 move second child to first child ( temp bool) +0:246 'boolv' ( temp bool) +0:246 isnan ( global bool) +0:246 'doublev' ( temp double) +0:247 move second child to first child ( temp 2-component vector of bool) +0:247 'bvec2v' ( temp 2-component vector of bool) +0:247 isnan ( global 2-component vector of bool) +0:247 'dvec2v' ( temp 2-component vector of double) +0:248 move second child to first child ( temp 3-component vector of bool) +0:248 'bvec3v' ( temp 3-component vector of bool) +0:248 isnan ( global 3-component vector of bool) +0:248 'dvec3v' ( temp 3-component vector of double) +0:249 move second child to first child ( temp 4-component vector of bool) +0:249 'bvec4v' ( temp 4-component vector of bool) +0:249 isnan ( global 4-component vector of bool) +0:249 'dvec4v' ( temp 4-component vector of double) +0:251 move second child to first child ( temp bool) +0:251 'boolv' ( temp bool) +0:251 Test condition and select ( temp bool) +0:251 Condition +0:251 'boolv' ( temp bool) +0:251 true case +0:251 isinf ( global bool) +0:251 'doublev' ( temp double) +0:251 false case +0:251 Constant: +0:251 false (const bool) +0:252 move second child to first child ( temp 2-component vector of bool) +0:252 'bvec2v' ( temp 2-component vector of bool) +0:252 Test condition and select ( temp 2-component vector of bool) +0:252 Condition +0:252 'boolv' ( temp bool) +0:252 true case +0:252 isinf ( global 2-component vector of bool) +0:252 'dvec2v' ( temp 2-component vector of double) +0:252 false case +0:252 Constant: +0:252 false (const bool) +0:252 false (const bool) +0:253 move second child to first child ( temp 3-component vector of bool) +0:253 'bvec3v' ( temp 3-component vector of bool) +0:253 Test condition and select ( temp 3-component vector of bool) +0:253 Condition +0:253 'boolv' ( temp bool) +0:253 true case +0:253 isinf ( global 3-component vector of bool) +0:253 'dvec3v' ( temp 3-component vector of double) +0:253 false case +0:253 Constant: +0:253 false (const bool) +0:253 false (const bool) +0:253 false (const bool) +0:254 move second child to first child ( temp 4-component vector of bool) +0:254 'bvec4v' ( temp 4-component vector of bool) +0:254 Test condition and select ( temp 4-component vector of bool) +0:254 Condition +0:254 'boolv' ( temp bool) +0:254 true case +0:254 isinf ( global 4-component vector of bool) +0:254 'dvec4v' ( temp 4-component vector of double) +0:254 false case +0:254 Constant: +0:254 false (const bool) +0:254 false (const bool) +0:254 false (const bool) +0:254 false (const bool) +0:256 add second child into first child ( temp double) +0:256 'doublev' ( temp double) +0:256 length ( global double) +0:256 'doublev' ( temp double) +0:257 add second child into first child ( temp double) +0:257 'doublev' ( temp double) +0:257 length ( global double) +0:257 'dvec2v' ( temp 2-component vector of double) +0:258 add second child into first child ( temp double) +0:258 'doublev' ( temp double) +0:258 length ( global double) +0:258 'dvec3v' ( temp 3-component vector of double) +0:259 add second child into first child ( temp double) +0:259 'doublev' ( temp double) +0:259 length ( global double) +0:259 'dvec4v' ( temp 4-component vector of double) +0:261 add second child into first child ( temp double) +0:261 'doublev' ( temp double) +0:261 distance ( global double) +0:261 'doublev' ( temp double) +0:261 'doublev' ( temp double) +0:262 add second child into first child ( temp double) +0:262 'doublev' ( temp double) +0:262 distance ( global double) +0:262 'dvec2v' ( temp 2-component vector of double) +0:262 'dvec2v' ( temp 2-component vector of double) +0:263 add second child into first child ( temp double) +0:263 'doublev' ( temp double) +0:263 distance ( global double) +0:263 'dvec3v' ( temp 3-component vector of double) +0:263 'dvec3v' ( temp 3-component vector of double) +0:264 add second child into first child ( temp double) +0:264 'doublev' ( temp double) +0:264 distance ( global double) +0:264 'dvec4v' ( temp 4-component vector of double) +0:264 'dvec4v' ( temp 4-component vector of double) +0:266 add second child into first child ( temp double) +0:266 'doublev' ( temp double) +0:266 dot-product ( global double) +0:266 'doublev' ( temp double) +0:266 'doublev' ( temp double) +0:267 add second child into first child ( temp double) +0:267 'doublev' ( temp double) +0:267 dot-product ( global double) +0:267 'dvec2v' ( temp 2-component vector of double) +0:267 'dvec2v' ( temp 2-component vector of double) +0:268 add second child into first child ( temp double) +0:268 'doublev' ( temp double) +0:268 dot-product ( global double) +0:268 'dvec3v' ( temp 3-component vector of double) +0:268 'dvec3v' ( temp 3-component vector of double) +0:269 add second child into first child ( temp double) +0:269 'doublev' ( temp double) +0:269 dot-product ( global double) +0:269 'dvec4v' ( temp 4-component vector of double) +0:269 'dvec4v' ( temp 4-component vector of double) +0:271 add second child into first child ( temp 3-component vector of double) +0:271 'dvec3v' ( temp 3-component vector of double) +0:271 cross-product ( global 3-component vector of double) +0:271 'dvec3v' ( temp 3-component vector of double) +0:271 'dvec3v' ( temp 3-component vector of double) +0:273 add second child into first child ( temp double) +0:273 'doublev' ( temp double) +0:273 normalize ( global double) +0:273 'doublev' ( temp double) +0:274 add second child into first child ( temp 2-component vector of double) +0:274 'dvec2v' ( temp 2-component vector of double) +0:274 normalize ( global 2-component vector of double) +0:274 'dvec2v' ( temp 2-component vector of double) +0:275 add second child into first child ( temp 3-component vector of double) +0:275 'dvec3v' ( temp 3-component vector of double) +0:275 normalize ( global 3-component vector of double) +0:275 'dvec3v' ( temp 3-component vector of double) +0:276 add second child into first child ( temp 4-component vector of double) +0:276 'dvec4v' ( temp 4-component vector of double) +0:276 normalize ( global 4-component vector of double) +0:276 'dvec4v' ( temp 4-component vector of double) +0:278 add second child into first child ( temp double) +0:278 'doublev' ( temp double) +0:278 face-forward ( global double) +0:278 'doublev' ( temp double) +0:278 'doublev' ( temp double) +0:278 'doublev' ( temp double) +0:279 add second child into first child ( temp 2-component vector of double) +0:279 'dvec2v' ( temp 2-component vector of double) +0:279 face-forward ( global 2-component vector of double) +0:279 'dvec2v' ( temp 2-component vector of double) +0:279 'dvec2v' ( temp 2-component vector of double) +0:279 'dvec2v' ( temp 2-component vector of double) +0:280 add second child into first child ( temp 3-component vector of double) +0:280 'dvec3v' ( temp 3-component vector of double) +0:280 face-forward ( global 3-component vector of double) +0:280 'dvec3v' ( temp 3-component vector of double) +0:280 'dvec3v' ( temp 3-component vector of double) +0:280 'dvec3v' ( temp 3-component vector of double) +0:281 add second child into first child ( temp 4-component vector of double) +0:281 'dvec4v' ( temp 4-component vector of double) +0:281 face-forward ( global 4-component vector of double) +0:281 'dvec4v' ( temp 4-component vector of double) +0:281 'dvec4v' ( temp 4-component vector of double) +0:281 'dvec4v' ( temp 4-component vector of double) +0:283 add second child into first child ( temp double) +0:283 'doublev' ( temp double) +0:283 reflect ( global double) +0:283 'doublev' ( temp double) +0:283 'doublev' ( temp double) +0:284 add second child into first child ( temp 2-component vector of double) +0:284 'dvec2v' ( temp 2-component vector of double) +0:284 reflect ( global 2-component vector of double) +0:284 'dvec2v' ( temp 2-component vector of double) +0:284 'dvec2v' ( temp 2-component vector of double) +0:285 add second child into first child ( temp 3-component vector of double) +0:285 'dvec3v' ( temp 3-component vector of double) +0:285 reflect ( global 3-component vector of double) +0:285 'dvec3v' ( temp 3-component vector of double) +0:285 'dvec3v' ( temp 3-component vector of double) +0:286 add second child into first child ( temp 4-component vector of double) +0:286 'dvec4v' ( temp 4-component vector of double) +0:286 reflect ( global 4-component vector of double) +0:286 'dvec4v' ( temp 4-component vector of double) +0:286 'dvec4v' ( temp 4-component vector of double) +0:288 add second child into first child ( temp double) +0:288 'doublev' ( temp double) +0:288 refract ( global double) +0:288 'doublev' ( temp double) +0:288 'doublev' ( temp double) +0:288 'doublev' ( temp double) +0:289 add second child into first child ( temp 2-component vector of double) +0:289 'dvec2v' ( temp 2-component vector of double) +0:289 refract ( global 2-component vector of double) +0:289 'dvec2v' ( temp 2-component vector of double) +0:289 'dvec2v' ( temp 2-component vector of double) +0:289 'doublev' ( temp double) +0:290 add second child into first child ( temp 3-component vector of double) +0:290 'dvec3v' ( temp 3-component vector of double) +0:290 refract ( global 3-component vector of double) +0:290 'dvec3v' ( temp 3-component vector of double) +0:290 'dvec3v' ( temp 3-component vector of double) +0:290 'doublev' ( temp double) +0:291 add second child into first child ( temp 4-component vector of double) +0:291 'dvec4v' ( temp 4-component vector of double) +0:291 refract ( global 4-component vector of double) +0:291 'dvec4v' ( temp 4-component vector of double) +0:291 'dvec4v' ( temp 4-component vector of double) +0:291 'doublev' ( temp double) +0:293 Sequence +0:293 move second child to first child ( temp 2X2 matrix of double) +0:293 'dmat2v' ( temp 2X2 matrix of double) +0:293 outer product ( global 2X2 matrix of double) +0:293 'dvec2v' ( temp 2-component vector of double) +0:293 'dvec2v' ( temp 2-component vector of double) +0:294 Sequence +0:294 move second child to first child ( temp 3X3 matrix of double) +0:294 'dmat3v' ( temp 3X3 matrix of double) +0:294 outer product ( global 3X3 matrix of double) +0:294 'dvec3v' ( temp 3-component vector of double) +0:294 'dvec3v' ( temp 3-component vector of double) +0:295 Sequence +0:295 move second child to first child ( temp 4X4 matrix of double) +0:295 'dmat4v' ( temp 4X4 matrix of double) +0:295 outer product ( global 4X4 matrix of double) +0:295 'dvec4v' ( temp 4-component vector of double) +0:295 'dvec4v' ( temp 4-component vector of double) +0:296 Sequence +0:296 move second child to first child ( temp 2X3 matrix of double) +0:296 'dmat2x3v' ( temp 2X3 matrix of double) +0:296 outer product ( global 2X3 matrix of double) +0:296 'dvec3v' ( temp 3-component vector of double) +0:296 'dvec2v' ( temp 2-component vector of double) +0:297 Sequence +0:297 move second child to first child ( temp 3X2 matrix of double) +0:297 'dmat3x2v' ( temp 3X2 matrix of double) +0:297 outer product ( global 3X2 matrix of double) +0:297 'dvec2v' ( temp 2-component vector of double) +0:297 'dvec3v' ( temp 3-component vector of double) +0:298 Sequence +0:298 move second child to first child ( temp 2X4 matrix of double) +0:298 'dmat2x4v' ( temp 2X4 matrix of double) +0:298 outer product ( global 2X4 matrix of double) +0:298 'dvec4v' ( temp 4-component vector of double) +0:298 'dvec2v' ( temp 2-component vector of double) +0:299 Sequence +0:299 move second child to first child ( temp 4X2 matrix of double) +0:299 'dmat4x2v' ( temp 4X2 matrix of double) +0:299 outer product ( global 4X2 matrix of double) +0:299 'dvec2v' ( temp 2-component vector of double) +0:299 'dvec4v' ( temp 4-component vector of double) +0:300 Sequence +0:300 move second child to first child ( temp 3X4 matrix of double) +0:300 'dmat3x4v' ( temp 3X4 matrix of double) +0:300 outer product ( global 3X4 matrix of double) +0:300 'dvec4v' ( temp 4-component vector of double) +0:300 'dvec3v' ( temp 3-component vector of double) +0:301 Sequence +0:301 move second child to first child ( temp 4X3 matrix of double) +0:301 'dmat4x3v' ( temp 4X3 matrix of double) +0:301 outer product ( global 4X3 matrix of double) +0:301 'dvec3v' ( temp 3-component vector of double) +0:301 'dvec4v' ( temp 4-component vector of double) +0:303 matrix mult second child into first child ( temp 2X2 matrix of double) +0:303 'dmat2v' ( temp 2X2 matrix of double) +0:303 component-wise multiply ( global 2X2 matrix of double) +0:303 'dmat2v' ( temp 2X2 matrix of double) +0:303 'dmat2v' ( temp 2X2 matrix of double) +0:304 matrix mult second child into first child ( temp 3X3 matrix of double) +0:304 'dmat3v' ( temp 3X3 matrix of double) +0:304 component-wise multiply ( global 3X3 matrix of double) +0:304 'dmat3v' ( temp 3X3 matrix of double) +0:304 'dmat3v' ( temp 3X3 matrix of double) +0:305 matrix mult second child into first child ( temp 4X4 matrix of double) +0:305 'dmat4v' ( temp 4X4 matrix of double) +0:305 component-wise multiply ( global 4X4 matrix of double) +0:305 'dmat4v' ( temp 4X4 matrix of double) +0:305 'dmat4v' ( temp 4X4 matrix of double) +0:306 move second child to first child ( temp 2X3 matrix of double) +0:306 'dmat2x3v' ( temp 2X3 matrix of double) +0:306 component-wise multiply ( global 2X3 matrix of double) +0:306 'dmat2x3v' ( temp 2X3 matrix of double) +0:306 'dmat2x3v' ( temp 2X3 matrix of double) +0:307 move second child to first child ( temp 2X4 matrix of double) +0:307 'dmat2x4v' ( temp 2X4 matrix of double) +0:307 component-wise multiply ( global 2X4 matrix of double) +0:307 'dmat2x4v' ( temp 2X4 matrix of double) +0:307 'dmat2x4v' ( temp 2X4 matrix of double) +0:308 move second child to first child ( temp 3X2 matrix of double) +0:308 'dmat3x2v' ( temp 3X2 matrix of double) +0:308 component-wise multiply ( global 3X2 matrix of double) +0:308 'dmat3x2v' ( temp 3X2 matrix of double) +0:308 'dmat3x2v' ( temp 3X2 matrix of double) +0:309 move second child to first child ( temp 3X4 matrix of double) +0:309 'dmat3x4v' ( temp 3X4 matrix of double) +0:309 component-wise multiply ( global 3X4 matrix of double) +0:309 'dmat3x4v' ( temp 3X4 matrix of double) +0:309 'dmat3x4v' ( temp 3X4 matrix of double) +0:310 move second child to first child ( temp 4X2 matrix of double) +0:310 'dmat4x2v' ( temp 4X2 matrix of double) +0:310 component-wise multiply ( global 4X2 matrix of double) +0:310 'dmat4x2v' ( temp 4X2 matrix of double) +0:310 'dmat4x2v' ( temp 4X2 matrix of double) +0:311 move second child to first child ( temp 4X3 matrix of double) +0:311 'dmat4x3v' ( temp 4X3 matrix of double) +0:311 component-wise multiply ( global 4X3 matrix of double) +0:311 'dmat4x3v' ( temp 4X3 matrix of double) +0:311 'dmat4x3v' ( temp 4X3 matrix of double) +0:313 matrix mult second child into first child ( temp 2X2 matrix of double) +0:313 'dmat2v' ( temp 2X2 matrix of double) +0:313 transpose ( global 2X2 matrix of double) +0:313 'dmat2v' ( temp 2X2 matrix of double) +0:314 matrix mult second child into first child ( temp 3X3 matrix of double) +0:314 'dmat3v' ( temp 3X3 matrix of double) +0:314 transpose ( global 3X3 matrix of double) +0:314 'dmat3v' ( temp 3X3 matrix of double) +0:315 matrix mult second child into first child ( temp 4X4 matrix of double) +0:315 'dmat4v' ( temp 4X4 matrix of double) +0:315 transpose ( global 4X4 matrix of double) +0:315 'dmat4v' ( temp 4X4 matrix of double) +0:316 move second child to first child ( temp 2X3 matrix of double) +0:316 'dmat2x3v' ( temp 2X3 matrix of double) +0:316 transpose ( global 2X3 matrix of double) +0:316 'dmat3x2v' ( temp 3X2 matrix of double) +0:317 move second child to first child ( temp 3X2 matrix of double) +0:317 'dmat3x2v' ( temp 3X2 matrix of double) +0:317 transpose ( global 3X2 matrix of double) +0:317 'dmat2x3v' ( temp 2X3 matrix of double) +0:318 move second child to first child ( temp 2X4 matrix of double) +0:318 'dmat2x4v' ( temp 2X4 matrix of double) +0:318 transpose ( global 2X4 matrix of double) +0:318 'dmat4x2v' ( temp 4X2 matrix of double) +0:319 move second child to first child ( temp 4X2 matrix of double) +0:319 'dmat4x2v' ( temp 4X2 matrix of double) +0:319 transpose ( global 4X2 matrix of double) +0:319 'dmat2x4v' ( temp 2X4 matrix of double) +0:320 move second child to first child ( temp 3X4 matrix of double) +0:320 'dmat3x4v' ( temp 3X4 matrix of double) +0:320 transpose ( global 3X4 matrix of double) +0:320 'dmat4x3v' ( temp 4X3 matrix of double) +0:321 move second child to first child ( temp 4X3 matrix of double) +0:321 'dmat4x3v' ( temp 4X3 matrix of double) +0:321 transpose ( global 4X3 matrix of double) +0:321 'dmat3x4v' ( temp 3X4 matrix of double) +0:323 add second child into first child ( temp double) +0:323 'doublev' ( temp double) +0:323 determinant ( global double) +0:323 'dmat2v' ( temp 2X2 matrix of double) +0:324 add second child into first child ( temp double) +0:324 'doublev' ( temp double) +0:324 determinant ( global double) +0:324 'dmat3v' ( temp 3X3 matrix of double) +0:325 add second child into first child ( temp double) +0:325 'doublev' ( temp double) +0:325 determinant ( global double) +0:325 'dmat4v' ( temp 4X4 matrix of double) +0:327 matrix mult second child into first child ( temp 2X2 matrix of double) +0:327 'dmat2v' ( temp 2X2 matrix of double) +0:327 inverse ( global 2X2 matrix of double) +0:327 'dmat2v' ( temp 2X2 matrix of double) +0:328 matrix mult second child into first child ( temp 3X3 matrix of double) +0:328 'dmat3v' ( temp 3X3 matrix of double) +0:328 inverse ( global 3X3 matrix of double) +0:328 'dmat3v' ( temp 3X3 matrix of double) +0:329 matrix mult second child into first child ( temp 4X4 matrix of double) +0:329 'dmat4v' ( temp 4X4 matrix of double) +0:329 inverse ( global 4X4 matrix of double) +0:329 'dmat4v' ( temp 4X4 matrix of double) +0:? Linker Objects +0:? 'bn' ( in 3-element array of block{ in int a}) +0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) +0:? 'color' ( in 3-element array of 4-component vector of float) +0:? 'color2' ( in 3-element array of 4-component vector of float) +0:? 'colorS' ( in 3-element array of 4-component vector of float) +0:? 'colorBad' ( in 4-element array of 4-component vector of float) +0:? 'colorbad2' ( in 2-element array of 4-component vector of float) +0:? 'cva' (layout( location=4) in 3-element array of 4-component vector of float) +0:? 'cvb' (layout( location=5) in 3-element array of 4-component vector of float) +0:? 'cmc' (layout( location=2) in 3-element array of 3X3 matrix of float) +0:? 'patchIn' ( patch in 3-element array of 4-component vector of float) +0:? 'patchOut' (layout( stream=0) patch out 4-component vector of float) +0:? 'scalar' ( in float) +0:? 'inbls' ( in block{ in int a}) +0:? 'inbla' ( in 17-element array of block{ in int a}) +0:? 'indexedOut' (layout( location=7 stream=0) out 4-component vector of float) +0:? 'samp1D' ( uniform sampler1D) +0:? 'samp2Ds' ( uniform sampler2DShadow) + + +Linked geometry stage: + +ERROR: Linking geometry stage: At least one shader must specify an output layout primitive + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +invocations = 4 +max_vertices = 127 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 EmitStreamVertex ( global void) +0:5 Constant: +0:5 1 (const int) +0:6 EndStreamPrimitive ( global void) +0:6 Constant: +0:6 0 (const int) +0:7 EmitVertex ( global void) +0:8 EndPrimitive ( global void) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'id' ( temp int) +0:9 'gl_InvocationID' ( in int InvocationID) +0:? Linker Objects +0:? 'bn' ( in 3-element array of block{ in int a}) +0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) +0:? 'color' ( in 3-element array of 4-component vector of float) +0:? 'color2' ( in 3-element array of 4-component vector of float) +0:? 'colorS' ( in 3-element array of 4-component vector of float) +0:? 'colorBad' ( in 4-element array of 4-component vector of float) +0:? 'colorbad2' ( in 2-element array of 4-component vector of float) +0:? 'cva' (layout( location=4) in 3-element array of 4-component vector of float) +0:? 'cvb' (layout( location=5) in 3-element array of 4-component vector of float) +0:? 'cmc' (layout( location=2) in 3-element array of 3X3 matrix of float) +0:? 'patchIn' ( patch in 3-element array of 4-component vector of float) +0:? 'patchOut' (layout( stream=0) patch out 4-component vector of float) +0:? 'scalar' ( in float) +0:? 'inbls' ( in block{ in int a}) +0:? 'inbla' ( in 17-element array of block{ in int a}) +0:? 'indexedOut' (layout( location=7 stream=0) out 4-component vector of float) +0:? 'samp1D' ( uniform sampler1D) +0:? 'samp2Ds' ( uniform sampler2DShadow) + diff --git a/deps/glslang/glslang/Test/baseResults/400.tesc.out b/deps/glslang/glslang/Test/baseResults/400.tesc.out new file mode 100644 index 0000000000..0475741ffd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/400.tesc.out @@ -0,0 +1,400 @@ +400.tesc +ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader +ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control +ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() +ERROR: 0:64: 'vertices' : can only apply to 'out' +ERROR: 0:65: 'vertices' : cannot change previously set layout value +ERROR: 0:69: '[' : array index out of range '4' +ERROR: 0:71: '' : tessellation control barrier() must be in main() +ERROR: 0:74: 'in' : type must be an array: ina +ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:83: 'location' : overlapping use of location 4 +ERROR: 0:87: 'location' : overlapping use of location 4 +ERROR: 0:104: '' : precise qualifier must appear first +ERROR: 0:105: '' : precise qualifier must appear first +ERROR: 0:105: '' : precise qualifier must appear first +ERROR: 0:109: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:110: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview +ERROR: 23 compilation errors. No code generated. + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +vertices = 4 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier ( global void) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'a' ( temp int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'p' ( temp 4-component vector of float) +0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'ps' ( temp float) +0:24 gl_PointSize: direct index for structure ( in float PointSize) +0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'cd' ( temp float) +0:25 direct index ( temp float ClipDistance) +0:25 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'pvi' ( temp int) +0:27 'gl_PatchVerticesIn' ( in int PatchVertices) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'pid' ( temp int) +0:28 'gl_PrimitiveID' ( in int PrimitiveID) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'iid' ( temp int) +0:29 'gl_InvocationID' ( in int InvocationID) +0:31 move second child to first child ( temp 4-component vector of float) +0:31 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_InvocationID' ( in int InvocationID) +0:31 Constant: +0:31 0 (const int) +0:31 'p' ( temp 4-component vector of float) +0:32 move second child to first child ( temp float) +0:32 gl_PointSize: direct index for structure ( out float PointSize) +0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_InvocationID' ( in int InvocationID) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' ( temp float) +0:33 move second child to first child ( temp float) +0:33 direct index ( temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance) +0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_InvocationID' ( in int InvocationID) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 'cd' ( temp float) +0:35 move second child to first child ( temp float) +0:35 direct index ( patch temp float TessLevelOuter) +0:35 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child ( temp float) +0:36 direct index ( patch temp float TessLevelInner) +0:36 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Greater Than ( temp bool) +0:38 'a' ( temp int) +0:38 Constant: +0:38 10 (const int) +0:38 true case +0:39 Barrier ( global void) +0:38 false case +0:41 Barrier ( global void) +0:43 Barrier ( global void) +0:47 Loop with condition not tested first +0:47 Loop Condition +0:47 Compare Greater Than ( temp bool) +0:47 'a' ( temp int) +0:47 Constant: +0:47 10 (const int) +0:47 Loop Body +0:46 Sequence +0:46 Barrier ( global void) +0:49 switch +0:49 condition +0:49 'a' ( temp int) +0:49 body +0:49 Sequence +0:50 default: +0:? Sequence +0:51 Barrier ( global void) +0:52 Branch: Break +0:54 Test condition and select ( temp int) +0:54 Condition +0:54 Compare Less Than ( temp bool) +0:54 'a' ( temp int) +0:54 Constant: +0:54 12 (const int) +0:54 true case +0:54 'a' ( temp int) +0:54 false case +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) +0:56 Sequence +0:56 Barrier ( global void) +0:59 Branch: Return +0:61 Barrier ( global void) +0:67 Function Definition: foo( ( global void) +0:67 Function Parameters: +0:69 Sequence +0:69 gl_PointSize: direct index for structure ( out float PointSize) +0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:69 Constant: +0:69 4 (const int) +0:69 Constant: +0:69 1 (const int) +0:71 Barrier ( global void) +0:91 Function Definition: foop( ( global void) +0:91 Function Parameters: +0:? Sequence +0:95 multiply second child into first child ( temp 3-component vector of float) +0:95 'pv3' ( noContraction temp 3-component vector of float) +0:95 'pv3' ( noContraction temp 3-component vector of float) +0:96 move second child to first child ( temp 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:96 fma ( global 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:96 'pv3' ( noContraction temp 3-component vector of float) +0:97 move second child to first child ( temp double) +0:97 'd' ( noContraction temp double) +0:97 fma ( global double) +0:97 'd' ( noContraction temp double) +0:97 'd' ( noContraction temp double) +0:97 'd' ( noContraction temp double) +0:107 Function Definition: devi( ( global void) +0:107 Function Parameters: +0:109 Sequence +0:109 'gl_DeviceIndex' ( in int DeviceIndex) +0:110 'gl_ViewIndex' ( in int ViewIndex) +0:121 Function Definition: devie( ( global void) +0:121 Function Parameters: +0:123 Sequence +0:123 'gl_DeviceIndex' ( in int DeviceIndex) +0:124 'gl_ViewIndex' ( in int ViewIndex) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 4-element array of int) +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'ivla' (layout( location=3) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'pv3' ( noContraction temp 3-component vector of float) +0:? 'pinbi' ( patch out block{ out int a}) +0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float) + + +Linked tessellation control stage: + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +vertices = 4 +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier ( global void) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'a' ( temp int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'p' ( temp 4-component vector of float) +0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'ps' ( temp float) +0:24 gl_PointSize: direct index for structure ( in float PointSize) +0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'cd' ( temp float) +0:25 direct index ( temp float ClipDistance) +0:25 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'pvi' ( temp int) +0:27 'gl_PatchVerticesIn' ( in int PatchVertices) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'pid' ( temp int) +0:28 'gl_PrimitiveID' ( in int PrimitiveID) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'iid' ( temp int) +0:29 'gl_InvocationID' ( in int InvocationID) +0:31 move second child to first child ( temp 4-component vector of float) +0:31 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:31 'gl_InvocationID' ( in int InvocationID) +0:31 Constant: +0:31 0 (const int) +0:31 'p' ( temp 4-component vector of float) +0:32 move second child to first child ( temp float) +0:32 gl_PointSize: direct index for structure ( out float PointSize) +0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_InvocationID' ( in int InvocationID) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' ( temp float) +0:33 move second child to first child ( temp float) +0:33 direct index ( temp float ClipDistance) +0:33 gl_ClipDistance: direct index for structure ( out 2-element array of float ClipDistance) +0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_InvocationID' ( in int InvocationID) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 'cd' ( temp float) +0:35 move second child to first child ( temp float) +0:35 direct index ( patch temp float TessLevelOuter) +0:35 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child ( temp float) +0:36 direct index ( patch temp float TessLevelInner) +0:36 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Greater Than ( temp bool) +0:38 'a' ( temp int) +0:38 Constant: +0:38 10 (const int) +0:38 true case +0:39 Barrier ( global void) +0:38 false case +0:41 Barrier ( global void) +0:43 Barrier ( global void) +0:47 Loop with condition not tested first +0:47 Loop Condition +0:47 Compare Greater Than ( temp bool) +0:47 'a' ( temp int) +0:47 Constant: +0:47 10 (const int) +0:47 Loop Body +0:46 Sequence +0:46 Barrier ( global void) +0:49 switch +0:49 condition +0:49 'a' ( temp int) +0:49 body +0:49 Sequence +0:50 default: +0:? Sequence +0:51 Barrier ( global void) +0:52 Branch: Break +0:54 Test condition and select ( temp int) +0:54 Condition +0:54 Compare Less Than ( temp bool) +0:54 'a' ( temp int) +0:54 Constant: +0:54 12 (const int) +0:54 true case +0:54 'a' ( temp int) +0:54 false case +0:54 Comma ( temp int) +0:54 Barrier ( global void) +0:54 'a' ( temp int) +0:56 Sequence +0:56 Barrier ( global void) +0:59 Branch: Return +0:61 Barrier ( global void) +0:? Linker Objects +0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 4-element array of int) +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'ivla' (layout( location=3) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=4) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=3) out 4-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'ovlc' (layout( location=4) out 4-element array of 4-component vector of float) +0:? 'pv3' ( noContraction temp 3-component vector of float) +0:? 'pinbi' ( patch out block{ out int a}) +0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/400.tese.out b/deps/glslang/glslang/Test/baseResults/400.tese.out new file mode 100644 index 0000000000..9580e857ca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/400.tese.out @@ -0,0 +1,295 @@ +400.tese +ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:5: 'triangles' : cannot change previously set input primitive +ERROR: 0:6: 'isolines' : cannot change previously set input primitive +ERROR: 0:8: 'ccw' : cannot change previously set vertex order +ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing +ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing +ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader +ERROR: 0:22: 'barrier' : no matching overloaded function found +ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:64: 'quads' : cannot apply to 'out' +ERROR: 0:64: 'cw' : can only apply to 'in' +ERROR: 0:65: 'triangles' : cannot apply to 'out' +ERROR: 0:66: 'isolines' : cannot apply to 'out' +ERROR: 0:67: 'cw' : can only apply to 'in' +ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' +ERROR: 0:69: 'equal_spacing' : can only apply to 'in' +ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' +ERROR: 0:71: 'point_mode' : can only apply to 'in' +ERROR: 0:73: 'in' : type must be an array: ina +ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:78: 'in' : type must be an array: bla +ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized +ERROR: 0:96: 'location' : overlapping use of location 24 +ERROR: 0:99: 'location' : overlapping use of location 24 +ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved +ERROR: 0:109: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group +ERROR: 0:110: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview +ERROR: 31 compilation errors. No code generated. + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'a' ( temp int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'p' ( temp 4-component vector of float) +0:32 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'ps' ( temp float) +0:33 gl_PointSize: direct index for structure ( in float PointSize) +0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'cd' ( temp float) +0:34 direct index ( temp float ClipDistance) +0:34 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 2 (const int) +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'pvi' ( temp int) +0:36 'gl_PatchVerticesIn' ( in int PatchVertices) +0:37 Sequence +0:37 move second child to first child ( temp int) +0:37 'pid' ( temp int) +0:37 'gl_PrimitiveID' ( in int PrimitiveID) +0:38 Sequence +0:38 move second child to first child ( temp 3-component vector of float) +0:38 'tc' ( temp 3-component vector of float) +0:38 'gl_TessCoord' ( in 3-component vector of float TessCoord) +0:39 Sequence +0:39 move second child to first child ( temp float) +0:39 'tlo' ( temp float) +0:39 direct index ( patch temp float TessLevelOuter) +0:39 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'tli' ( temp float) +0:40 direct index ( patch temp float TessLevelInner) +0:40 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' ( temp 4-component vector of float) +0:43 move second child to first child ( temp float) +0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' ( temp float) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float ClipDistance) +0:44 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance) +0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 'cd' ( temp float) +0:107 Function Definition: devi( ( global void) +0:107 Function Parameters: +0:109 Sequence +0:109 'gl_DeviceIndex' ( in int DeviceIndex) +0:110 'gl_ViewIndex' ( in int ViewIndex) +0:121 Function Definition: devie( ( global void) +0:121 Function Parameters: +0:123 Sequence +0:123 'gl_DeviceIndex' ( in int DeviceIndex) +0:124 'gl_ViewIndex' ( in int ViewIndex) +0:? Linker Objects +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:? 'badp1' ( smooth patch in 4-component vector of float) +0:? 'badp2' ( flat patch in 4-component vector of float) +0:? 'badp3' ( noperspective patch in 4-component vector of float) +0:? 'badp4' ( patch sample in 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'bla' ( in block{ in int f}) +0:? 'blb' ( in 32-element array of block{ in int f}) +0:? 'blc' ( in 32-element array of block{ in int f}) +0:? 'bld' ( in 32-element array of block{ in int f}) +0:? 'ivla' (layout( location=23) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of 4-component vector of float) +0:? 'pinbi' ( patch in block{ in int a}) + + +Linked tessellation evaluation stage: + + +Shader version: 400 +Requested GL_ARB_separate_shader_objects +Requested GL_EXT_device_group +Requested GL_EXT_multiview +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'a' ( temp int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'p' ( temp 4-component vector of float) +0:32 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'ps' ( temp float) +0:33 gl_PointSize: direct index for structure ( in float PointSize) +0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'cd' ( temp float) +0:34 direct index ( temp float ClipDistance) +0:34 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 2 (const int) +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'pvi' ( temp int) +0:36 'gl_PatchVerticesIn' ( in int PatchVertices) +0:37 Sequence +0:37 move second child to first child ( temp int) +0:37 'pid' ( temp int) +0:37 'gl_PrimitiveID' ( in int PrimitiveID) +0:38 Sequence +0:38 move second child to first child ( temp 3-component vector of float) +0:38 'tc' ( temp 3-component vector of float) +0:38 'gl_TessCoord' ( in 3-component vector of float TessCoord) +0:39 Sequence +0:39 move second child to first child ( temp float) +0:39 'tlo' ( temp float) +0:39 direct index ( patch temp float TessLevelOuter) +0:39 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'tli' ( temp float) +0:40 direct index ( patch temp float TessLevelInner) +0:40 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' ( temp 4-component vector of float) +0:43 move second child to first child ( temp float) +0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) +0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' ( temp float) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float ClipDistance) +0:44 gl_ClipDistance: direct index for structure ( out 3-element array of float ClipDistance) +0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 'cd' ( temp float) +0:? Linker Objects +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( patch out 4-component vector of float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) +0:? 'badp1' ( smooth patch in 4-component vector of float) +0:? 'badp2' ( flat patch in 4-component vector of float) +0:? 'badp3' ( noperspective patch in 4-component vector of float) +0:? 'badp4' ( patch sample in 3-component vector of float) +0:? 'gl_in' ( in 32-element array of block{ in 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'ina' ( in 2-component vector of float) +0:? 'inb' ( in 32-element array of 2-component vector of float) +0:? 'inc' ( in 32-element array of 2-component vector of float) +0:? 'ind' ( in 32-element array of 2-component vector of float) +0:? 'bla' ( in block{ in int f}) +0:? 'blb' ( in 32-element array of block{ in int f}) +0:? 'blc' ( in 32-element array of block{ in int f}) +0:? 'bld' ( in 32-element array of block{ in int f}) +0:? 'ivla' (layout( location=23) in 32-element array of 4-component vector of float) +0:? 'ivlb' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ivlc' (layout( location=24) in 32-element array of 4-component vector of float) +0:? 'ovla' (layout( location=23) out 2-element array of 4-component vector of float) +0:? 'ovlb' (layout( location=24) out 2-element array of 4-component vector of float) +0:? 'pinbi' ( patch in block{ in int a}) + diff --git a/deps/glslang/glslang/Test/baseResults/400.vert.out b/deps/glslang/glslang/Test/baseResults/400.vert.out new file mode 100644 index 0000000000..05f58e2d84 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/400.vert.out @@ -0,0 +1,555 @@ +400.vert +ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:70: 'foo3' : no matching overloaded function found +ERROR: 0:76: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:77: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:78: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:81: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:82: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:83: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:86: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:87: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:88: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 13 compilation errors. No code generated. + + +Shader version: 400 +ERROR: node is still EOpNull! +0:8 Function Definition: foo1(d1;u1; ( global void) +0:8 Function Parameters: +0:8 'a' ( in double) +0:8 'b' ( in uint) +0:9 Function Definition: foo1(d1;i1; ( global void) +0:9 Function Parameters: +0:9 'a' ( in double) +0:9 'b' ( in int) +0:10 Function Definition: foo1(d1;f1; ( global void) +0:10 Function Parameters: +0:10 'a' ( in double) +0:10 'b' ( in float) +0:11 Function Definition: foo1(d1;d1; ( global void) +0:11 Function Parameters: +0:11 'a' ( in double) +0:11 'b' ( in double) +0:13 Function Definition: foo2(d1;f1; ( global void) +0:13 Function Parameters: +0:13 'a' ( in double) +0:13 'b' ( in float) +0:14 Function Definition: foo2(d1;d1; ( global void) +0:14 Function Parameters: +0:14 'a' ( in double) +0:14 'b' ( in double) +0:16 Function Definition: foo3(d1;f1; ( global void) +0:16 Function Parameters: +0:16 'a' ( in double) +0:16 'b' ( in float) +0:17 Function Definition: foo3(f1;d1; ( global void) +0:17 Function Parameters: +0:17 'a' ( in float) +0:17 'b' ( in double) +0:19 Function Definition: ftd(i1;f1;d1; ( global void) +0:19 Function Parameters: +0:19 '' ( in int) +0:19 '' ( in float) +0:19 '' ( in double) +0:20 Function Definition: ftd(u1;f1;d1; ( global void) +0:20 Function Parameters: +0:20 '' ( in uint) +0:20 '' ( in float) +0:20 '' ( in double) +0:21 Function Definition: ftd(f1;d1;d1; ( global void) +0:21 Function Parameters: +0:21 '' ( in float) +0:21 '' ( in double) +0:21 '' ( in double) +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:? Sequence +0:30 Function Call: foo1(d1;d1; ( global void) +0:30 'd' ( temp double) +0:30 'd' ( temp double) +0:31 Function Call: foo1(d1;u1; ( global void) +0:31 'd' ( temp double) +0:31 'u' ( temp uint) +0:32 Function Call: foo1(d1;i1; ( global void) +0:32 'd' ( temp double) +0:32 'i' ( temp int) +0:33 Function Call: foo1(d1;f1; ( global void) +0:33 'd' ( temp double) +0:33 'f' ( temp float) +0:35 Function Call: foo1(d1;d1; ( global void) +0:35 Convert float to double ( temp double) +0:35 'f' ( temp float) +0:35 'd' ( temp double) +0:36 Function Call: foo1(d1;u1; ( global void) +0:36 Convert float to double ( temp double) +0:36 'f' ( temp float) +0:36 'u' ( temp uint) +0:37 Function Call: foo1(d1;i1; ( global void) +0:37 Convert float to double ( temp double) +0:37 'f' ( temp float) +0:37 'i' ( temp int) +0:38 Function Call: foo1(d1;f1; ( global void) +0:38 Convert float to double ( temp double) +0:38 'f' ( temp float) +0:38 'f' ( temp float) +0:40 Function Call: foo1(d1;d1; ( global void) +0:40 Convert uint to double ( temp double) +0:40 'u' ( temp uint) +0:40 'd' ( temp double) +0:41 Function Call: foo1(d1;u1; ( global void) +0:41 Convert uint to double ( temp double) +0:41 'u' ( temp uint) +0:41 'u' ( temp uint) +0:42 Function Call: foo1(d1;i1; ( global void) +0:42 Convert uint to double ( temp double) +0:42 'u' ( temp uint) +0:42 'i' ( temp int) +0:43 Function Call: foo1(d1;f1; ( global void) +0:43 Convert uint to double ( temp double) +0:43 'u' ( temp uint) +0:43 'f' ( temp float) +0:45 Function Call: foo1(d1;d1; ( global void) +0:45 Convert int to double ( temp double) +0:45 'i' ( temp int) +0:45 'd' ( temp double) +0:46 Function Call: foo1(d1;u1; ( global void) +0:46 Convert int to double ( temp double) +0:46 'i' ( temp int) +0:46 'u' ( temp uint) +0:47 Function Call: foo1(d1;i1; ( global void) +0:47 Convert int to double ( temp double) +0:47 'i' ( temp int) +0:47 'i' ( temp int) +0:48 Function Call: foo1(d1;f1; ( global void) +0:48 Convert int to double ( temp double) +0:48 'i' ( temp int) +0:48 'f' ( temp float) +0:50 Function Call: foo2(d1;d1; ( global void) +0:50 'd' ( temp double) +0:50 'd' ( temp double) +0:51 Function Call: foo2(d1;f1; ( global void) +0:51 'd' ( temp double) +0:51 Convert uint to float ( temp float) +0:51 'u' ( temp uint) +0:52 Function Call: foo2(d1;f1; ( global void) +0:52 'd' ( temp double) +0:52 Convert int to float ( temp float) +0:52 'i' ( temp int) +0:53 Function Call: foo2(d1;f1; ( global void) +0:53 'd' ( temp double) +0:53 'f' ( temp float) +0:55 Function Call: foo2(d1;d1; ( global void) +0:55 Convert float to double ( temp double) +0:55 'f' ( temp float) +0:55 'd' ( temp double) +0:56 Function Call: foo2(d1;f1; ( global void) +0:56 Convert float to double ( temp double) +0:56 'f' ( temp float) +0:56 Convert uint to float ( temp float) +0:56 'u' ( temp uint) +0:57 Function Call: foo2(d1;f1; ( global void) +0:57 Convert float to double ( temp double) +0:57 'f' ( temp float) +0:57 Convert int to float ( temp float) +0:57 'i' ( temp int) +0:58 Function Call: foo2(d1;f1; ( global void) +0:58 Convert float to double ( temp double) +0:58 'f' ( temp float) +0:58 'f' ( temp float) +0:60 Function Call: foo2(d1;d1; ( global void) +0:60 Convert uint to double ( temp double) +0:60 'u' ( temp uint) +0:60 'd' ( temp double) +0:61 Function Call: foo2(d1;f1; ( global void) +0:61 Convert uint to double ( temp double) +0:61 'u' ( temp uint) +0:61 Convert uint to float ( temp float) +0:61 'u' ( temp uint) +0:62 Function Call: foo2(d1;f1; ( global void) +0:62 Convert uint to double ( temp double) +0:62 'u' ( temp uint) +0:62 Convert int to float ( temp float) +0:62 'i' ( temp int) +0:63 Function Call: foo2(d1;f1; ( global void) +0:63 Convert uint to double ( temp double) +0:63 'u' ( temp uint) +0:63 'f' ( temp float) +0:65 Function Call: foo2(d1;d1; ( global void) +0:65 Convert int to double ( temp double) +0:65 'i' ( temp int) +0:65 'd' ( temp double) +0:66 Function Call: foo2(d1;f1; ( global void) +0:66 Convert int to double ( temp double) +0:66 'i' ( temp int) +0:66 Convert uint to float ( temp float) +0:66 'u' ( temp uint) +0:67 Function Call: foo2(d1;f1; ( global void) +0:67 Convert int to double ( temp double) +0:67 'i' ( temp int) +0:67 Convert int to float ( temp float) +0:67 'i' ( temp int) +0:68 Function Call: foo2(d1;f1; ( global void) +0:68 Convert int to double ( temp double) +0:68 'i' ( temp int) +0:68 'f' ( temp float) +0:70 Constant: +0:70 0.000000 +0:71 Function Call: foo3(d1;f1; ( global void) +0:71 'd' ( temp double) +0:71 Convert uint to float ( temp float) +0:71 'u' ( temp uint) +0:72 Function Call: foo3(d1;f1; ( global void) +0:72 'd' ( temp double) +0:72 Convert int to float ( temp float) +0:72 'i' ( temp int) +0:73 Function Call: foo3(d1;f1; ( global void) +0:73 'd' ( temp double) +0:73 'f' ( temp float) +0:75 Function Call: foo3(f1;d1; ( global void) +0:75 'f' ( temp float) +0:75 'd' ( temp double) +0:76 Function Call: foo3(d1;f1; ( global void) +0:76 Convert float to double ( temp double) +0:76 'f' ( temp float) +0:76 Convert uint to float ( temp float) +0:76 'u' ( temp uint) +0:77 Function Call: foo3(d1;f1; ( global void) +0:77 Convert float to double ( temp double) +0:77 'f' ( temp float) +0:77 Convert int to float ( temp float) +0:77 'i' ( temp int) +0:78 Function Call: foo3(d1;f1; ( global void) +0:78 Convert float to double ( temp double) +0:78 'f' ( temp float) +0:78 'f' ( temp float) +0:80 Function Call: foo3(f1;d1; ( global void) +0:80 Convert uint to float ( temp float) +0:80 'u' ( temp uint) +0:80 'd' ( temp double) +0:81 Function Call: foo3(d1;f1; ( global void) +0:81 Convert uint to double ( temp double) +0:81 'u' ( temp uint) +0:81 Convert uint to float ( temp float) +0:81 'u' ( temp uint) +0:82 Function Call: foo3(d1;f1; ( global void) +0:82 Convert uint to double ( temp double) +0:82 'u' ( temp uint) +0:82 Convert int to float ( temp float) +0:82 'i' ( temp int) +0:83 Function Call: foo3(d1;f1; ( global void) +0:83 Convert uint to double ( temp double) +0:83 'u' ( temp uint) +0:83 'f' ( temp float) +0:85 Function Call: foo3(f1;d1; ( global void) +0:85 Convert int to float ( temp float) +0:85 'i' ( temp int) +0:85 'd' ( temp double) +0:86 Function Call: foo3(d1;f1; ( global void) +0:86 Convert int to double ( temp double) +0:86 'i' ( temp int) +0:86 Convert uint to float ( temp float) +0:86 'u' ( temp uint) +0:87 Function Call: foo3(d1;f1; ( global void) +0:87 Convert int to double ( temp double) +0:87 'i' ( temp int) +0:87 Convert int to float ( temp float) +0:87 'i' ( temp int) +0:88 Function Call: foo3(d1;f1; ( global void) +0:88 Convert int to double ( temp double) +0:88 'i' ( temp int) +0:88 'f' ( temp float) +0:90 Function Call: ftd(i1;f1;d1; ( global void) +0:90 'i' ( temp int) +0:90 'f' ( temp float) +0:90 Convert float to double ( temp double) +0:90 'f' ( temp float) +0:91 Function Call: ftd(u1;f1;d1; ( global void) +0:91 'u' ( temp uint) +0:91 'f' ( temp float) +0:91 Convert float to double ( temp double) +0:91 'f' ( temp float) +0:97 Function Definition: tf( ( global void) +0:97 Function Parameters: +0:? Sequence +0:104 Function Call: itf(i1;f1;i1; ( global void) +0:104 'i' ( temp int) +0:104 Convert int to float ( temp float) +0:104 'i' ( temp int) +0:104 'i' ( temp int) +0:105 Function Call: itf(i1;f1;i1; ( global void) +0:105 'i' ( temp int) +0:105 Convert uint to float ( temp float) +0:105 'u' ( temp uint) +0:105 'i' ( temp int) +0:? Linker Objects +0:? 'd' ( in double) +0:? 'd3' ( in 3-component vector of double) +0:? 'dm4' ( in 4X4 matrix of double) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 400 +ERROR: node is still EOpNull! +0:8 Function Definition: foo1(d1;u1; ( global void) +0:8 Function Parameters: +0:8 'a' ( in double) +0:8 'b' ( in uint) +0:9 Function Definition: foo1(d1;i1; ( global void) +0:9 Function Parameters: +0:9 'a' ( in double) +0:9 'b' ( in int) +0:10 Function Definition: foo1(d1;f1; ( global void) +0:10 Function Parameters: +0:10 'a' ( in double) +0:10 'b' ( in float) +0:11 Function Definition: foo1(d1;d1; ( global void) +0:11 Function Parameters: +0:11 'a' ( in double) +0:11 'b' ( in double) +0:13 Function Definition: foo2(d1;f1; ( global void) +0:13 Function Parameters: +0:13 'a' ( in double) +0:13 'b' ( in float) +0:14 Function Definition: foo2(d1;d1; ( global void) +0:14 Function Parameters: +0:14 'a' ( in double) +0:14 'b' ( in double) +0:16 Function Definition: foo3(d1;f1; ( global void) +0:16 Function Parameters: +0:16 'a' ( in double) +0:16 'b' ( in float) +0:17 Function Definition: foo3(f1;d1; ( global void) +0:17 Function Parameters: +0:17 'a' ( in float) +0:17 'b' ( in double) +0:19 Function Definition: ftd(i1;f1;d1; ( global void) +0:19 Function Parameters: +0:19 '' ( in int) +0:19 '' ( in float) +0:19 '' ( in double) +0:20 Function Definition: ftd(u1;f1;d1; ( global void) +0:20 Function Parameters: +0:20 '' ( in uint) +0:20 '' ( in float) +0:20 '' ( in double) +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:? Sequence +0:30 Function Call: foo1(d1;d1; ( global void) +0:30 'd' ( temp double) +0:30 'd' ( temp double) +0:31 Function Call: foo1(d1;u1; ( global void) +0:31 'd' ( temp double) +0:31 'u' ( temp uint) +0:32 Function Call: foo1(d1;i1; ( global void) +0:32 'd' ( temp double) +0:32 'i' ( temp int) +0:33 Function Call: foo1(d1;f1; ( global void) +0:33 'd' ( temp double) +0:33 'f' ( temp float) +0:35 Function Call: foo1(d1;d1; ( global void) +0:35 Convert float to double ( temp double) +0:35 'f' ( temp float) +0:35 'd' ( temp double) +0:36 Function Call: foo1(d1;u1; ( global void) +0:36 Convert float to double ( temp double) +0:36 'f' ( temp float) +0:36 'u' ( temp uint) +0:37 Function Call: foo1(d1;i1; ( global void) +0:37 Convert float to double ( temp double) +0:37 'f' ( temp float) +0:37 'i' ( temp int) +0:38 Function Call: foo1(d1;f1; ( global void) +0:38 Convert float to double ( temp double) +0:38 'f' ( temp float) +0:38 'f' ( temp float) +0:40 Function Call: foo1(d1;d1; ( global void) +0:40 Convert uint to double ( temp double) +0:40 'u' ( temp uint) +0:40 'd' ( temp double) +0:41 Function Call: foo1(d1;u1; ( global void) +0:41 Convert uint to double ( temp double) +0:41 'u' ( temp uint) +0:41 'u' ( temp uint) +0:42 Function Call: foo1(d1;i1; ( global void) +0:42 Convert uint to double ( temp double) +0:42 'u' ( temp uint) +0:42 'i' ( temp int) +0:43 Function Call: foo1(d1;f1; ( global void) +0:43 Convert uint to double ( temp double) +0:43 'u' ( temp uint) +0:43 'f' ( temp float) +0:45 Function Call: foo1(d1;d1; ( global void) +0:45 Convert int to double ( temp double) +0:45 'i' ( temp int) +0:45 'd' ( temp double) +0:46 Function Call: foo1(d1;u1; ( global void) +0:46 Convert int to double ( temp double) +0:46 'i' ( temp int) +0:46 'u' ( temp uint) +0:47 Function Call: foo1(d1;i1; ( global void) +0:47 Convert int to double ( temp double) +0:47 'i' ( temp int) +0:47 'i' ( temp int) +0:48 Function Call: foo1(d1;f1; ( global void) +0:48 Convert int to double ( temp double) +0:48 'i' ( temp int) +0:48 'f' ( temp float) +0:50 Function Call: foo2(d1;d1; ( global void) +0:50 'd' ( temp double) +0:50 'd' ( temp double) +0:51 Function Call: foo2(d1;f1; ( global void) +0:51 'd' ( temp double) +0:51 Convert uint to float ( temp float) +0:51 'u' ( temp uint) +0:52 Function Call: foo2(d1;f1; ( global void) +0:52 'd' ( temp double) +0:52 Convert int to float ( temp float) +0:52 'i' ( temp int) +0:53 Function Call: foo2(d1;f1; ( global void) +0:53 'd' ( temp double) +0:53 'f' ( temp float) +0:55 Function Call: foo2(d1;d1; ( global void) +0:55 Convert float to double ( temp double) +0:55 'f' ( temp float) +0:55 'd' ( temp double) +0:56 Function Call: foo2(d1;f1; ( global void) +0:56 Convert float to double ( temp double) +0:56 'f' ( temp float) +0:56 Convert uint to float ( temp float) +0:56 'u' ( temp uint) +0:57 Function Call: foo2(d1;f1; ( global void) +0:57 Convert float to double ( temp double) +0:57 'f' ( temp float) +0:57 Convert int to float ( temp float) +0:57 'i' ( temp int) +0:58 Function Call: foo2(d1;f1; ( global void) +0:58 Convert float to double ( temp double) +0:58 'f' ( temp float) +0:58 'f' ( temp float) +0:60 Function Call: foo2(d1;d1; ( global void) +0:60 Convert uint to double ( temp double) +0:60 'u' ( temp uint) +0:60 'd' ( temp double) +0:61 Function Call: foo2(d1;f1; ( global void) +0:61 Convert uint to double ( temp double) +0:61 'u' ( temp uint) +0:61 Convert uint to float ( temp float) +0:61 'u' ( temp uint) +0:62 Function Call: foo2(d1;f1; ( global void) +0:62 Convert uint to double ( temp double) +0:62 'u' ( temp uint) +0:62 Convert int to float ( temp float) +0:62 'i' ( temp int) +0:63 Function Call: foo2(d1;f1; ( global void) +0:63 Convert uint to double ( temp double) +0:63 'u' ( temp uint) +0:63 'f' ( temp float) +0:65 Function Call: foo2(d1;d1; ( global void) +0:65 Convert int to double ( temp double) +0:65 'i' ( temp int) +0:65 'd' ( temp double) +0:66 Function Call: foo2(d1;f1; ( global void) +0:66 Convert int to double ( temp double) +0:66 'i' ( temp int) +0:66 Convert uint to float ( temp float) +0:66 'u' ( temp uint) +0:67 Function Call: foo2(d1;f1; ( global void) +0:67 Convert int to double ( temp double) +0:67 'i' ( temp int) +0:67 Convert int to float ( temp float) +0:67 'i' ( temp int) +0:68 Function Call: foo2(d1;f1; ( global void) +0:68 Convert int to double ( temp double) +0:68 'i' ( temp int) +0:68 'f' ( temp float) +0:70 Constant: +0:70 0.000000 +0:71 Function Call: foo3(d1;f1; ( global void) +0:71 'd' ( temp double) +0:71 Convert uint to float ( temp float) +0:71 'u' ( temp uint) +0:72 Function Call: foo3(d1;f1; ( global void) +0:72 'd' ( temp double) +0:72 Convert int to float ( temp float) +0:72 'i' ( temp int) +0:73 Function Call: foo3(d1;f1; ( global void) +0:73 'd' ( temp double) +0:73 'f' ( temp float) +0:75 Function Call: foo3(f1;d1; ( global void) +0:75 'f' ( temp float) +0:75 'd' ( temp double) +0:76 Function Call: foo3(d1;f1; ( global void) +0:76 Convert float to double ( temp double) +0:76 'f' ( temp float) +0:76 Convert uint to float ( temp float) +0:76 'u' ( temp uint) +0:77 Function Call: foo3(d1;f1; ( global void) +0:77 Convert float to double ( temp double) +0:77 'f' ( temp float) +0:77 Convert int to float ( temp float) +0:77 'i' ( temp int) +0:78 Function Call: foo3(d1;f1; ( global void) +0:78 Convert float to double ( temp double) +0:78 'f' ( temp float) +0:78 'f' ( temp float) +0:80 Function Call: foo3(f1;d1; ( global void) +0:80 Convert uint to float ( temp float) +0:80 'u' ( temp uint) +0:80 'd' ( temp double) +0:81 Function Call: foo3(d1;f1; ( global void) +0:81 Convert uint to double ( temp double) +0:81 'u' ( temp uint) +0:81 Convert uint to float ( temp float) +0:81 'u' ( temp uint) +0:82 Function Call: foo3(d1;f1; ( global void) +0:82 Convert uint to double ( temp double) +0:82 'u' ( temp uint) +0:82 Convert int to float ( temp float) +0:82 'i' ( temp int) +0:83 Function Call: foo3(d1;f1; ( global void) +0:83 Convert uint to double ( temp double) +0:83 'u' ( temp uint) +0:83 'f' ( temp float) +0:85 Function Call: foo3(f1;d1; ( global void) +0:85 Convert int to float ( temp float) +0:85 'i' ( temp int) +0:85 'd' ( temp double) +0:86 Function Call: foo3(d1;f1; ( global void) +0:86 Convert int to double ( temp double) +0:86 'i' ( temp int) +0:86 Convert uint to float ( temp float) +0:86 'u' ( temp uint) +0:87 Function Call: foo3(d1;f1; ( global void) +0:87 Convert int to double ( temp double) +0:87 'i' ( temp int) +0:87 Convert int to float ( temp float) +0:87 'i' ( temp int) +0:88 Function Call: foo3(d1;f1; ( global void) +0:88 Convert int to double ( temp double) +0:88 'i' ( temp int) +0:88 'f' ( temp float) +0:90 Function Call: ftd(i1;f1;d1; ( global void) +0:90 'i' ( temp int) +0:90 'f' ( temp float) +0:90 Convert float to double ( temp double) +0:90 'f' ( temp float) +0:91 Function Call: ftd(u1;f1;d1; ( global void) +0:91 'u' ( temp uint) +0:91 'f' ( temp float) +0:91 Convert float to double ( temp double) +0:91 'f' ( temp float) +0:? Linker Objects +0:? 'd' ( in double) +0:? 'd3' ( in 3-component vector of double) +0:? 'dm4' ( in 4X4 matrix of double) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/410.geom.out b/deps/glslang/glslang/Test/baseResults/410.geom.out new file mode 100644 index 0000000000..ab5ad47285 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/410.geom.out @@ -0,0 +1,82 @@ +410.geom +ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name +ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration +ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:32: 'gl_Position' : no such field in structure +ERROR: 0:32: '=' : cannot convert from ' temp block{ in float PointSize gl_PointSize}' to ' temp 4-component vector of float' +ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared +ERROR: 0:33: 'assign' : cannot convert from ' const 4-component vector of float' to 'layout( stream=0) gl_Position void Position' +WARNING: 0:38: 'return' : type conversion on return values was not explicitly allowed until version 420 +ERROR: 7 compilation errors. No code generated. + + +Shader version: 410 +invocations = -1 +max_vertices = -1 +input primitive = none +output primitive = none +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) +0:5 Constant: +0:5 7 (const int) +0:28 Function Definition: foo( ( global void) +0:28 Function Parameters: +0:30 Sequence +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'p' ( temp float) +0:30 gl_PointSize: direct index for structure ( in float PointSize) +0:30 direct index ( temp block{ in float PointSize gl_PointSize}) +0:30 'gl_in' ( in unsized 2-element array of block{ in float PointSize gl_PointSize}) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp float) +0:31 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize) +0:31 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, }) +0:31 Constant: +0:31 1 (const uint) +0:31 'p' ( temp float) +0:33 gl_Position: direct index for structure (layout( stream=0) gl_Position void Position) +0:33 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, }) +0:33 Constant: +0:33 0 (const uint) +0:36 Function Definition: foo5( ( global float) +0:36 Function Parameters: +0:38 Sequence +0:38 Branch: Return with expression +0:38 Constant: +0:38 4.000000 +0:? Linker Objects +0:? 'gl_in' ( in unsized 2-element array of block{ in float PointSize gl_PointSize}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, }) + + +Linked geometry stage: + +ERROR: Linking geometry stage: At least one shader must specify an input layout primitive +ERROR: Linking geometry stage: At least one shader must specify an output layout primitive +ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) + +Shader version: 410 +invocations = 1 +max_vertices = -1 +input primitive = none +output primitive = none +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) +0:5 Constant: +0:5 7 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 2-element array of block{ in float PointSize gl_PointSize}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, }) + diff --git a/deps/glslang/glslang/Test/baseResults/410.tesc.out b/deps/glslang/glslang/Test/baseResults/410.tesc.out new file mode 100644 index 0000000000..0a397fdd4b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/410.tesc.out @@ -0,0 +1,30 @@ +410.tesc +ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier +ERROR: 1 compilation errors. No code generated. + + +Shader version: 400 +vertices = -1 +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:? Linker Objects +0:? 'gl_out' ( out unsized 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 1-element array of int) +0:? 'patchOut' ( patch out 4-component vector of float) + + +Linked tessellation control stage: + +ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...) + +Shader version: 400 +vertices = -1 +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:? Linker Objects +0:? 'gl_out' ( out 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'outa' ( global 1-element array of int) +0:? 'patchOut' ( patch out 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/410.vert.out b/deps/glslang/glslang/Test/baseResults/410.vert.out new file mode 100644 index 0000000000..aacdf36c0f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/410.vert.out @@ -0,0 +1,27 @@ +410.vert +Shader version: 410 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' ( in double) +0:? 'd3' ( in 3-component vector of double) +0:? 'dm4' ( in 4X4 matrix of double) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 410 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' ( in double) +0:? 'd3' ( in 3-component vector of double) +0:? 'dm4' ( in 4X4 matrix of double) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/420.comp.out b/deps/glslang/glslang/Test/baseResults/420.comp.out new file mode 100644 index 0000000000..4e091acff3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420.comp.out @@ -0,0 +1,121 @@ +420.comp +ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions +ERROR: 1 compilation errors. No code generated. + + +Shader version: 420 +Requested GL_ARB_compute_shader +local_size = (2, 4, 6) +ERROR: node is still EOpNull! +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child ( temp 3-component vector of float) +0:13 'sfoo' ( shared 3-component vector of float) +0:13 Constant: +0:13 2.000000 +0:13 4.000000 +0:13 6.000000 +0:14 add second child into first child ( temp 3-component vector of float) +0:14 'sfoo' ( shared 3-component vector of float) +0:14 Convert uint to float ( temp 3-component vector of float) +0:14 add ( temp 3-component vector of uint) +0:14 add ( temp 3-component vector of uint) +0:14 add ( temp 3-component vector of uint) +0:14 add ( temp 3-component vector of uint) +0:14 Constant: +0:14 2 (const uint) +0:14 4 (const uint) +0:14 6 (const uint) +0:14 'gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups) +0:14 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID) +0:14 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) +0:14 'gl_GlobalInvocationID' ( in 3-component vector of uint GlobalInvocationID) +0:15 vector scale second child into first child ( temp 3-component vector of float) +0:15 'sfoo' ( shared 3-component vector of float) +0:15 Convert uint to float ( temp float) +0:15 'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex) +0:16 add second child into first child ( temp 3-component vector of float) +0:16 'sfoo' ( shared 3-component vector of float) +0:16 Constant: +0:16 66559.000000 +0:16 66559.000000 +0:16 65599.000000 +0:17 vector scale second child into first child ( temp 3-component vector of float) +0:17 'sfoo' ( shared 3-component vector of float) +0:17 Constant: +0:17 1057.000000 +0:23 Barrier ( global void) +0:24 MemoryBarrier ( global void) +0:25 MemoryBarrierAtomicCounter ( global void) +0:26 MemoryBarrierBuffer ( global void) +0:27 MemoryBarrierImage ( global void) +0:28 MemoryBarrierShared ( global void) +0:29 GroupMemoryBarrier ( global void) +0:? Linker Objects +0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 4 (const uint) +0:? 6 (const uint) +0:? 'sfoo' ( shared 3-component vector of float) + + +Linked compute stage: + + +Shader version: 420 +Requested GL_ARB_compute_shader +local_size = (2, 4, 6) +ERROR: node is still EOpNull! +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child ( temp 3-component vector of float) +0:13 'sfoo' ( shared 3-component vector of float) +0:13 Constant: +0:13 2.000000 +0:13 4.000000 +0:13 6.000000 +0:14 add second child into first child ( temp 3-component vector of float) +0:14 'sfoo' ( shared 3-component vector of float) +0:14 Convert uint to float ( temp 3-component vector of float) +0:14 add ( temp 3-component vector of uint) +0:14 add ( temp 3-component vector of uint) +0:14 add ( temp 3-component vector of uint) +0:14 add ( temp 3-component vector of uint) +0:14 Constant: +0:14 2 (const uint) +0:14 4 (const uint) +0:14 6 (const uint) +0:14 'gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups) +0:14 'gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID) +0:14 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) +0:14 'gl_GlobalInvocationID' ( in 3-component vector of uint GlobalInvocationID) +0:15 vector scale second child into first child ( temp 3-component vector of float) +0:15 'sfoo' ( shared 3-component vector of float) +0:15 Convert uint to float ( temp float) +0:15 'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex) +0:16 add second child into first child ( temp 3-component vector of float) +0:16 'sfoo' ( shared 3-component vector of float) +0:16 Constant: +0:16 66559.000000 +0:16 66559.000000 +0:16 65599.000000 +0:17 vector scale second child into first child ( temp 3-component vector of float) +0:17 'sfoo' ( shared 3-component vector of float) +0:17 Constant: +0:17 1057.000000 +0:23 Barrier ( global void) +0:24 MemoryBarrier ( global void) +0:25 MemoryBarrierAtomicCounter ( global void) +0:26 MemoryBarrierBuffer ( global void) +0:27 MemoryBarrierImage ( global void) +0:28 MemoryBarrierShared ( global void) +0:29 GroupMemoryBarrier ( global void) +0:? Linker Objects +0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 4 (const uint) +0:? 6 (const uint) +0:? 'sfoo' ( shared 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/420.frag.out b/deps/glslang/glslang/Test/baseResults/420.frag.out new file mode 100644 index 0000000000..ffb8f6d283 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420.frag.out @@ -0,0 +1,42 @@ +420.frag +ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth +ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth +ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use +ERROR: 0:14: 'atomic_uint' : array must be explicitly sized +ERROR: 4 compilation errors. No code generated. + + +Shader version: 420 +using depth_any +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:8 Constant: +0:8 0.300000 +0:? Linker Objects +0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:? 'depth' ( smooth in float) +0:? 'a' (layout( binding=0 offset=0) uniform unsized 1-element array of atomic_uint) + + +Linked fragment stage: + + +Shader version: 420 +using depth_any +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:8 Constant: +0:8 0.300000 +0:? Linker Objects +0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:? 'depth' ( smooth in float) +0:? 'a' (layout( binding=0 offset=0) uniform 1-element array of atomic_uint) + diff --git a/deps/glslang/glslang/Test/baseResults/420.geom.out b/deps/glslang/glslang/Test/baseResults/420.geom.out new file mode 100644 index 0000000000..6bf6eb3792 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420.geom.out @@ -0,0 +1,152 @@ +420.geom +ERROR: 0:9: 'length' : array must first be sized by a redeclaration or layout qualifier +ERROR: 0:11: '[' : array must be sized by a redeclaration or layout qualifier before being indexed with a variable +ERROR: 0:42: 'assign' : l-value required (can't modify a const) +ERROR: 0:43: 'assign' : l-value required "v4" (can't modify a uniform) +ERROR: 0:48: 'gl_PointSize' : cannot change arrayness of redeclared block member +ERROR: 0:49: 'gl_ClipDistance' : cannot change arrayness of redeclared block member +ERROR: 6 compilation errors. No code generated. + + +Shader version: 420 +invocations = -1 +max_vertices = -1 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:7 Function Definition: foo( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Constant: +0:9 1 (const int) +0:10 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:10 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:10 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:11 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:11 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:11 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:11 'i' ( global int) +0:11 Constant: +0:11 0 (const int) +0:18 Function Definition: foo3( ( global void) +0:18 Function Parameters: +0:20 Sequence +0:20 Constant: +0:20 3 (const int) +0:21 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:21 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:21 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:21 'i' ( global int) +0:21 Constant: +0:21 0 (const int) +0:22 Constant: +0:22 3 (const int) +0:29 Function Definition: foo4( ( global void) +0:29 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:40 textureGatherOffset ( global 4-component vector of float) +0:40 's2D' ( uniform sampler2D) +0:40 direct index ( temp 2-component vector of float) +0:40 'coord' ( in 3-element array of 2-component vector of float) +0:40 Constant: +0:40 0 (const int) +0:40 vector swizzle ( temp 2-component vector of int) +0:40 indirect index ( temp 2-component vector of int) +0:40 Constant: +0:40 0 (const int) +0:40 1 (const int) +0:40 1 (const int) +0:40 -2 (const int) +0:40 0 (const int) +0:40 3 (const int) +0:40 -3 (const int) +0:40 0 (const int) +0:40 2 (const int) +0:40 1 (const int) +0:40 'i' ( global int) +0:40 Sequence +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child ( temp 2-component vector of int) +0:42 vector swizzle ( temp 2-component vector of int) +0:42 indirect index ( temp 2-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:42 1 (const int) +0:42 1 (const int) +0:42 -2 (const int) +0:42 0 (const int) +0:42 3 (const int) +0:42 -3 (const int) +0:42 0 (const int) +0:42 2 (const int) +0:42 1 (const int) +0:42 'i' ( global int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 3 (const int) +0:42 3 (const int) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 'v4' ( uniform 4-component vector of float) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 3.200000 +0:44 vector swizzle ( temp 2-component vector of float) +0:44 'v4' ( uniform 4-component vector of float) +0:44 Sequence +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 1 (const int) +0:52 Function Definition: foo5( ( global float) +0:52 Function Parameters: +0:54 Sequence +0:54 Branch: Return with expression +0:54 Convert int to float ( temp float) +0:54 'i' ( global int) +0:? Linker Objects +0:? 'i' ( global int) +0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'color3' ( in 3-element array of 4-component vector of float) +0:? 's2D' ( uniform sampler2D) +0:? 'coord' ( in 3-element array of 2-component vector of float) +0:? 'v4' ( uniform 4-component vector of float) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 1-element array of float ClipDistance gl_ClipDistance}) + + +Linked geometry stage: + +ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point +ERROR: Linking geometry stage: At least one shader must specify an output layout primitive +ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) + +Shader version: 420 +invocations = 1 +max_vertices = -1 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'i' ( global int) +0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) +0:? 'color3' ( in 3-element array of 4-component vector of float) +0:? 's2D' ( uniform sampler2D) +0:? 'coord' ( in 3-element array of 2-component vector of float) +0:? 'v4' ( uniform 4-component vector of float) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance}) + diff --git a/deps/glslang/glslang/Test/baseResults/420.tesc.out b/deps/glslang/glslang/Test/baseResults/420.tesc.out new file mode 100644 index 0000000000..a1f881cb19 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420.tesc.out @@ -0,0 +1,194 @@ +420.tesc +ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out +ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a +ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb +ERROR: 0:26: 'gl_PointSize' : no such field in structure +ERROR: 0:26: 'assign' : cannot convert from ' temp float' to ' temp block{ out 4-component vector of float Position gl_Position}' +ERROR: 0:29: 'out' : type must be an array: outf +ERROR: 0:43: 'vertices' : must be greater than 0 +ERROR: 7 compilation errors. No code generated. + + +Shader version: 420 +Requested GL_ARB_separate_shader_objects +vertices = 4 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'p' ( temp 4-component vector of float) +0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'ps' ( temp float) +0:18 gl_PointSize: direct index for structure ( in float PointSize) +0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'cd' ( temp float) +0:19 direct index ( temp float ClipDistance) +0:19 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) +0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'pvi' ( temp int) +0:21 'gl_PatchVerticesIn' ( in int PatchVertices) +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'pid' ( temp int) +0:22 'gl_PrimitiveID' ( in int PrimitiveID) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'iid' ( temp int) +0:23 'gl_InvocationID' ( in int InvocationID) +0:25 move second child to first child ( temp 4-component vector of float) +0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_InvocationID' ( in int InvocationID) +0:25 Constant: +0:25 0 (const int) +0:25 'p' ( temp 4-component vector of float) +0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_InvocationID' ( in int InvocationID) +0:34 Function Definition: foo( ( global void) +0:34 Function Parameters: +0:36 Sequence +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 logical-or ( temp bool) +0:36 Compare Not Equal ( temp bool) +0:36 Constant: +0:36 -0.625000 +0:36 -0.500000 +0:36 -0.375000 +0:36 -0.250000 +0:36 -0.375000 +0:36 -0.250000 +0:36 -0.125000 +0:36 0.000000 +0:36 direct index (layout( location=0) temp 2X4 matrix of double) +0:36 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) +0:36 Constant: +0:36 0 (const int) +0:37 Compare Not Equal ( temp bool) +0:37 Constant: +0:37 0.375000 +0:37 0.500000 +0:37 0.625000 +0:37 0.750000 +0:37 0.625000 +0:37 0.750000 +0:37 0.875000 +0:37 -0.625000 +0:37 direct index (layout( location=12) temp 2X4 matrix of double) +0:37 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) +0:37 Constant: +0:37 0 (const int) +0:36 true case is null +0:? Linker Objects +0:? 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:? 'a' ( out 3-element array of int) +0:? 'outb' ( out 5-element array of int) +0:? 'outc' ( out 4-element array of int) +0:? 'outf' ( out float) +0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) +0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) + + +Linked tessellation control stage: + + +Shader version: 420 +Requested GL_ARB_separate_shader_objects +vertices = 4 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'p' ( temp 4-component vector of float) +0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'ps' ( temp float) +0:18 gl_PointSize: direct index for structure ( in float PointSize) +0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'cd' ( temp float) +0:19 direct index ( temp float ClipDistance) +0:19 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) +0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'pvi' ( temp int) +0:21 'gl_PatchVerticesIn' ( in int PatchVertices) +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'pid' ( temp int) +0:22 'gl_PrimitiveID' ( in int PrimitiveID) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'iid' ( temp int) +0:23 'gl_InvocationID' ( in int InvocationID) +0:25 move second child to first child ( temp 4-component vector of float) +0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) +0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:25 'gl_InvocationID' ( in int InvocationID) +0:25 Constant: +0:25 0 (const int) +0:25 'p' ( temp 4-component vector of float) +0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:26 'gl_InvocationID' ( in int InvocationID) +0:? Linker Objects +0:? 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) +0:? 'a' ( out 3-element array of int) +0:? 'outb' ( out 5-element array of int) +0:? 'outc' ( out 4-element array of int) +0:? 'outf' ( out float) +0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) +0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) + diff --git a/deps/glslang/glslang/Test/baseResults/420.tese.out b/deps/glslang/glslang/Test/baseResults/420.tese.out new file mode 100644 index 0000000000..71fca85e7c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420.tese.out @@ -0,0 +1,364 @@ +420.tese +ERROR: 0:7: '=' : cannot convert from ' const 3-element array of float' to ' global 2-element array of float' +ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float +ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float +ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float +ERROR: 0:25: 'initializer list' : wrong number of structure members +ERROR: 0:27: '=' : cannot convert from ' const bool' to ' global int' +ERROR: 0:28: 'constructor' : cannot convert parameter 2 from ' const float' to ' temp 4-component vector of float' +ERROR: 0:29: 'constructor' : cannot convert parameter 2 from ' const 2X2 matrix of float' to ' const 4-component vector of float' +ERROR: 0:29: ' const 2-element array of 4-component vector of float' : cannot construct with these arguments +ERROR: 0:29: '=' : cannot convert from ' const float' to ' global 2-element array of 4-component vector of float' +ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float +ERROR: 0:40: 'constructor' : cannot convert parameter 1 from ' const structure{ global 4-component vector of float a, global 4-component vector of float b}' to ' temp structure{ global float s, global float t}' +ERROR: 0:70: 'initializer list' : wrong number of structure members +ERROR: 13 compilation errors. No code generated. + + +Shader version: 420 +input primitive = none +vertex spacing = none +triangle order = none +ERROR: node is still EOpNull! +0:4 Sequence +0:4 move second child to first child ( temp 2X2 matrix of float) +0:4 'b' ( global 2X2 matrix of float) +0:4 Constant: +0:4 1.000000 +0:4 0.000000 +0:4 0.000000 +0:4 1.000000 +0:15 Sequence +0:15 move second child to first child ( temp structure{ global float a, global int b}) +0:15 'e' ( global structure{ global float a, global int b}) +0:15 Constant: +0:15 1.200000 +0:15 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp structure{ global float a, global int b}) +0:20 'e2' ( global structure{ global float a, global int b}) +0:20 Constant: +0:20 1.000000 +0:20 3 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 5-element array of float) +0:42 'b5' ( global 5-element array of float) +0:42 Constant: +0:42 3.400000 +0:42 4.200000 +0:42 5.000000 +0:42 5.200000 +0:42 1.100000 +0:55 Sequence +0:55 move second child to first child ( temp structure{ global int f}) +0:55 'single1' ( global structure{ global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child ( temp structure{ global 2-component vector of uint v}) +0:58 'single2' ( global structure{ global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp structure{ global structure{ global int f} s1}) +0:61 'single3' ( global structure{ global structure{ global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child ( temp structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child ( temp 3-component vector of float) +0:79 'av3' ( global 3-component vector of float) +0:79 Construct vec3 ( global 3-component vector of float) +0:79 'vc1' ( global float) +0:79 'vc2' ( global float) +0:79 'vc3' ( global float) +0:80 Sequence +0:80 move second child to first child ( temp 3-component vector of float) +0:80 'bv3' ( global 3-component vector of float) +0:80 Construct vec3 ( temp 3-component vector of float) +0:80 'vc1' ( global float) +0:80 'vc2' ( global float) +0:80 'vc3' ( global float) +0:82 Function Definition: main( ( global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) +0:86 Condition +0:86 Compare Equal ( temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select ( temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null +0:? Linker Objects +0:? 'a' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'b' ( global 2X2 matrix of float) +0:? 'c' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'a2' ( global 2-element array of float) +0:? 'b2' ( global 2-component vector of float) +0:? 'c2' ( global 3X3 matrix of float) +0:? 'd' ( global 2X2 matrix of float) +0:? 'e' ( global structure{ global float a, global int b}) +0:? 'e2' ( global structure{ global float a, global int b}) +0:? 'e3' ( global structure{ global float a, global int b}) +0:? 'a3' ( global int) +0:? 'b3' ( global 2-element array of 4-component vector of float) +0:? 'b4' ( global 2-element array of 4-component vector of float) +0:? 'c3' ( global 4X2 matrix of float) +0:? 'd2' ( global unsized 1-element array of structure{ global float s, global float t}) +0:? 'b5' ( global 5-element array of float) +0:? 'single1' ( global structure{ global int f}) +0:? 'single2' ( global structure{ global 2-component vector of uint v}) +0:? 'single3' ( global structure{ global structure{ global int f} s1}) +0:? 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:? 'constructed' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 'curlyInit' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'vc1' ( global float) +0:? 'vc2' ( global float) +0:? 'vc3' ( global float) +0:? 'av3' ( global 3-component vector of float) +0:? 'bv3' ( global 3-component vector of float) + + +Linked tessellation evaluation stage: + +ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive + +Shader version: 420 +input primitive = none +vertex spacing = equal_spacing +triangle order = ccw +ERROR: node is still EOpNull! +0:4 Sequence +0:4 move second child to first child ( temp 2X2 matrix of float) +0:4 'b' ( global 2X2 matrix of float) +0:4 Constant: +0:4 1.000000 +0:4 0.000000 +0:4 0.000000 +0:4 1.000000 +0:15 Sequence +0:15 move second child to first child ( temp structure{ global float a, global int b}) +0:15 'e' ( global structure{ global float a, global int b}) +0:15 Constant: +0:15 1.200000 +0:15 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp structure{ global float a, global int b}) +0:20 'e2' ( global structure{ global float a, global int b}) +0:20 Constant: +0:20 1.000000 +0:20 3 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 5-element array of float) +0:42 'b5' ( global 5-element array of float) +0:42 Constant: +0:42 3.400000 +0:42 4.200000 +0:42 5.000000 +0:42 5.200000 +0:42 1.100000 +0:55 Sequence +0:55 move second child to first child ( temp structure{ global int f}) +0:55 'single1' ( global structure{ global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child ( temp structure{ global 2-component vector of uint v}) +0:58 'single2' ( global structure{ global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp structure{ global structure{ global int f} s1}) +0:61 'single3' ( global structure{ global structure{ global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child ( temp structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child ( temp 3-component vector of float) +0:79 'av3' ( global 3-component vector of float) +0:79 Construct vec3 ( global 3-component vector of float) +0:79 'vc1' ( global float) +0:79 'vc2' ( global float) +0:79 'vc3' ( global float) +0:80 Sequence +0:80 move second child to first child ( temp 3-component vector of float) +0:80 'bv3' ( global 3-component vector of float) +0:80 Construct vec3 ( temp 3-component vector of float) +0:80 'vc1' ( global float) +0:80 'vc2' ( global float) +0:80 'vc3' ( global float) +0:82 Function Definition: main( ( global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier ( global void) +0:86 Test condition and select ( temp void) +0:86 Condition +0:86 Compare Equal ( temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select ( temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null +0:? Linker Objects +0:? 'a' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'b' ( global 2X2 matrix of float) +0:? 'c' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'a2' ( global 2-element array of float) +0:? 'b2' ( global 2-component vector of float) +0:? 'c2' ( global 3X3 matrix of float) +0:? 'd' ( global 2X2 matrix of float) +0:? 'e' ( global structure{ global float a, global int b}) +0:? 'e2' ( global structure{ global float a, global int b}) +0:? 'e3' ( global structure{ global float a, global int b}) +0:? 'a3' ( global int) +0:? 'b3' ( global 2-element array of 4-component vector of float) +0:? 'b4' ( global 2-element array of 4-component vector of float) +0:? 'c3' ( global 4X2 matrix of float) +0:? 'd2' ( global 1-element array of structure{ global float s, global float t}) +0:? 'b5' ( global 5-element array of float) +0:? 'single1' ( global structure{ global int f}) +0:? 'single2' ( global structure{ global 2-component vector of uint v}) +0:? 'single3' ( global structure{ global structure{ global int f} s1}) +0:? 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) +0:? 'constructed' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 'curlyInit' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'vc1' ( global float) +0:? 'vc2' ( global float) +0:? 'vc3' ( global float) +0:? 'av3' ( global 3-component vector of float) +0:? 'bv3' ( global 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/420.vert.out b/deps/glslang/glslang/Test/baseResults/420.vert.out new file mode 100644 index 0000000000..25bce16cc3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420.vert.out @@ -0,0 +1,390 @@ +420.vert +ERROR: 0:2: '#version' : must occur first in shader +WARNING: 0:3: varying deprecated in version 130; may be removed in future release +ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420 +ERROR: 0:7: '' : vertex input cannot be further qualified +ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD) +ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:13: 'uniform' : too many storage qualifiers +ERROR: 0:18: '=' : global const initializers must be constant ' const int' +ERROR: 0:20: 'const' : no qualifiers allowed for function return +ERROR: 0:27: '' : array size must be a constant integer expression +ERROR: 0:38: 'j' : undeclared identifier +ERROR: 0:38: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:39: 'k' : undeclared identifier +ERROR: 0:39: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:40: 'j' : undeclared identifier +ERROR: 0:40: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:44: 'jj' : undeclared identifier +ERROR: 0:44: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:54: 'y' : vector swizzle selection out of range +ERROR: 0:62: 'xxxxx' : vector swizzle too long +ERROR: 0:63: 'xxy' : vector swizzle selection out of range +ERROR: 0:66: 'binding' : cannot declare a default, include a type or full declaration +ERROR: 0:69: 'location/component/index' : cannot declare a default, use a full declaration +ERROR: 0:70: 'input block' : not supported in this stage: vertex +ERROR: 0:70: 'binding' : requires uniform or buffer storage qualifier +ERROR: 0:71: 'binding' : binding is too large +ERROR: 0:74: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits +ERROR: 0:76: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits (using array) +ERROR: 0:85: 'patch' : not supported in this stage: vertex +ERROR: 0:85: '' : vertex input cannot be further qualified +ERROR: 0:86: 'patch' : not supported in this stage: vertex +ERROR: 0:100: '=' : global const initializers must be constant ' const int' +ERROR: 0:101: '' : array size must be a constant integer expression +ERROR: 0:107: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported for this version or the enabled extensions +ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui +ERROR: 0:115: 'imageAtomicMax' : no matching overloaded function found +ERROR: 0:119: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter +ERROR: 0:122: '' : memory qualifiers cannot be used on this type +ERROR: 0:123: '' : memory qualifiers cannot be used on this type +ERROR: 0:135: 'volatile' : argument cannot drop memory qualifier when passed to formal parameter +ERROR: 0:139: 'rg8i' : does not apply to unsigned integer images +ERROR: 0:140: 'rgba32i' : does not apply to floating point images +ERROR: 0:141: 'rgba32f' : does not apply to unsigned integer images +ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images +ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images +ERROR: 0:144: 'r8ui' : does not apply to signed integer images +ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions +ERROR: 0:147: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:157: 'assign' : cannot convert from ' const float' to ' temp int' +ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:158: 'assign' : cannot convert from ' const float' to ' temp int' +WARNING: 0:161: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +ERROR: 51 compilation errors. No code generated. + + +Shader version: 420 +ERROR: node is still EOpNull! +0:20 Function Definition: foo( ( const int) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'b' ( const (read only) int) +0:23 'anonconst' ( global int) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'd' ( const (read only) int) +0:25 'b' ( const (read only) int) +0:29 Branch: Return with expression +0:29 'b' ( const (read only) int) +0:32 Function Definition: main( ( global void) +0:32 Function Parameters: +0:? Sequence +0:35 Test condition and select ( temp void) +0:35 Condition +0:35 Compare Equal ( temp bool) +0:35 'i' ( temp int) +0:35 Constant: +0:35 3 (const int) +0:35 true case +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'j' ( temp int) +0:36 'i' ( temp int) +0:42 Loop with condition tested first +0:42 Loop Condition +0:42 Constant: +0:42 true (const bool) +0:42 No loop body +0:50 Function Definition: bar(vf4; ( global void) +0:50 Function Parameters: +0:50 'v' ( volatile in 4-component vector of float) +0:? Sequence +0:53 's' ( temp int) +0:54 's' ( temp int) +0:55 Test condition and select ( temp void) +0:55 Condition +0:55 Compare Equal ( temp bool) +0:55 direct index ( temp float) +0:55 direct index ( temp 4-component vector of float) +0:55 'bad' ( in 10-element array of 4-component vector of float) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 4.200000 +0:55 true case is null +0:57 Test condition and select ( temp void) +0:57 Condition +0:57 Constant: +0:57 true (const bool) +0:57 true case +0:58 move second child to first child ( temp 4-component vector of float) +0:58 'badorder3' ( flat out 4-component vector of float) +0:58 direct index ( temp 4-component vector of float) +0:58 'bad' ( in 10-element array of 4-component vector of float) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 3-component vector of float) +0:61 'smeared' ( temp 3-component vector of float) +0:61 Construct vec3 ( temp 3-component vector of float) +0:61 'f' ( temp float) +0:62 Construct vec4 ( temp 4-component vector of float) +0:62 'f' ( temp float) +0:63 Construct vec2 ( temp 2-component vector of float) +0:63 'f' ( temp float) +0:88 Function Definition: bar23444( ( global void) +0:88 Function Parameters: +0:? Sequence +0:91 Sequence +0:91 move second child to first child ( temp float) +0:91 'a1' ( temp float) +0:91 direct index ( temp float) +0:91 direct index ( temp 3-component vector of float) +0:91 'm43' ( temp 4X3 matrix of float) +0:91 Constant: +0:91 3 (const int) +0:91 Constant: +0:91 1 (const int) +0:93 Sequence +0:93 move second child to first child ( temp int) +0:93 'a2' ( temp int) +0:93 Constant: +0:93 4 (const int) +0:94 add second child into first child ( temp int) +0:94 'a2' ( temp int) +0:94 Constant: +0:94 3 (const int) +0:95 add second child into first child ( temp int) +0:95 'a2' ( temp int) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child ( temp float) +0:96 'b' ( const (read only) float) +0:96 component-wise multiply ( temp float) +0:96 Constant: +0:96 2.000000 +0:96 'a1' ( temp float) +0:97 Sequence +0:97 move second child to first child ( temp int) +0:97 'a' ( temp int) +0:97 Constant: +0:97 -1 (const int) +0:109 Function Definition: qux( ( global void) +0:109 Function Parameters: +0:111 Sequence +0:111 Sequence +0:111 move second child to first child ( temp int) +0:111 'i' ( temp int) +0:111 aoeu: direct index for structure (layout( column_major shared) uniform int) +0:111 'anon@0' (layout( binding=7 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) +0:111 Constant: +0:111 0 (const uint) +0:112 imageAtomicCompSwap ( global int) +0:112 'iimg2D' (layout( r32i) uniform iimage2D) +0:112 Construct ivec2 ( temp 2-component vector of int) +0:112 'i' ( temp int) +0:112 'i' ( temp int) +0:112 'i' ( temp int) +0:112 'i' ( temp int) +0:113 imageAtomicAdd ( global uint) +0:113 'uimg2D' (layout( r32ui) uniform uimage2D) +0:113 Construct ivec2 ( temp 2-component vector of int) +0:113 'i' ( temp int) +0:113 'i' ( temp int) +0:113 Convert int to uint ( temp uint) +0:113 'i' ( temp int) +0:114 imageAtomicMin ( global int) +0:114 'iimg2Drgba' (layout( rgba32i) uniform iimage2D) +0:114 Construct ivec2 ( temp 2-component vector of int) +0:114 'i' ( temp int) +0:114 'i' ( temp int) +0:114 'i' ( temp int) +0:115 Constant: +0:115 0.000000 +0:116 Sequence +0:116 move second child to first child ( temp 4-component vector of int) +0:116 'pos' ( temp 4-component vector of int) +0:116 imageLoad ( global 4-component vector of int) +0:116 'iimg2D' (layout( r32i) uniform iimage2D) +0:116 Construct ivec2 ( temp 2-component vector of int) +0:116 'i' ( temp int) +0:116 'i' ( temp int) +0:117 Sequence +0:117 move second child to first child ( temp 4-component vector of float) +0:117 'col' ( temp 4-component vector of float) +0:117 imageLoad ( global 4-component vector of float) +0:117 'img2DMS' ( uniform image2DMS) +0:117 Construct ivec2 ( temp 2-component vector of int) +0:117 'i' ( temp int) +0:117 'i' ( temp int) +0:117 'i' ( temp int) +0:118 imageStore ( global void) +0:118 'img2DMSWO' ( writeonly uniform image2DMS) +0:118 Construct ivec2 ( temp 2-component vector of int) +0:118 'i' ( temp int) +0:118 'i' ( temp int) +0:118 'i' ( temp int) +0:118 Constant: +0:118 0.000000 +0:118 0.000000 +0:118 0.000000 +0:118 0.000000 +0:119 imageLoad ( global 4-component vector of float) +0:119 'img2DMSWO' ( writeonly uniform image2DMS) +0:119 Construct ivec2 ( temp 2-component vector of int) +0:119 'i' ( temp int) +0:119 'i' ( temp int) +0:119 'i' ( temp int) +0:125 Function Definition: passr(iI21; ( global void) +0:125 Function Parameters: +0:125 'image' ( coherent readonly in iimage2D) +0:132 Function Definition: passrc( ( global void) +0:132 Function Parameters: +0:134 Sequence +0:134 Function Call: passr(iI21; ( global void) +0:134 'qualim1' (layout( r32i) coherent readonly uniform iimage2D) +0:135 Function Call: passr(iI21; ( global void) +0:135 'qualim2' (layout( r32i) coherent volatile readonly uniform iimage2D) +0:136 Function Call: passr(iI21; ( global void) +0:136 'iimg2D' (layout( r32i) uniform iimage2D) +0:153 Function Definition: qlod( ( global void) +0:153 Function Parameters: +0:? Sequence +0:157 'levels' ( temp int) +0:158 'levels' ( temp int) +0:? Linker Objects +0:? 'v2' ( smooth out 2-component vector of float) +0:? 'bad' ( in 10-element array of 4-component vector of float) +0:? 'badorder' ( in 4-component vector of float) +0:? 'badorder2' ( invariant smooth out 4-component vector of float) +0:? 'badorder4' ( centroid in 4-component vector of float) +0:? 'badorder3' ( flat out 4-component vector of float) +0:? 'rep' ( smooth flat out 4-component vector of float) +0:? 'rep2' ( centroid smooth sample out 4-component vector of float) +0:? 'rep3' ( in 4-component vector of float) +0:? 'anonconst' ( global int) +0:? 'aconst' ( const int) +0:? 5 (const int) +0:? 'a' ( const int) +0:? 5 (const int) +0:? 'b' ( temp int) +0:? 'cx' ( const float) +0:? 4.200000 +0:? 'dx' ( const float) +0:? 4.200000 +0:? 'boundInst' (layout( binding=3 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) +0:? 'anon@0' (layout( binding=7 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) +0:? 'anon@1' (layout( binding=1) in block{ in int aoeua}) +0:? 'anon@2' (layout( column_major shared) uniform block{layout( column_major shared) uniform int aooeu}) +0:? 'sampb1' (layout( binding=4) uniform sampler2D) +0:? 'sampb2' (layout( binding=5) uniform 10-element array of sampler2D) +0:? 'sampb3' (layout( binding=80) uniform sampler2D) +0:? 'sampb4' (layout( binding=31) uniform sampler2D) +0:? 'sampb5' (layout( binding=79) uniform 2-element array of sampler2D) +0:? 'anon@3' ( out block{ out 4-element array of float ClipDistance gl_ClipDistance, }) +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( smooth patch out 4-component vector of float) +0:? 'comma0' ( temp int) +0:? 'comma1' ( global 1-element array of int) +0:? 'iimg2D' (layout( r32i) uniform iimage2D) +0:? 'iimg2Drgba' (layout( rgba32i) uniform iimage2D) +0:? 'img2Drgba' (layout( rgba32f) uniform image2D) +0:? 'uimg2D' (layout( r32ui) uniform uimage2D) +0:? 'img2DMS' ( uniform image2DMS) +0:? 'img2DMSWO' ( writeonly uniform image2DMS) +0:? 'vol' ( volatile temp float) +0:? 'vol2' ( readonly temp int) +0:? 'qualim1' (layout( r32i) coherent readonly uniform iimage2D) +0:? 'qualim2' (layout( r32i) coherent volatile readonly uniform iimage2D) +0:? 'i1bad' (layout( rg8i) uniform uimage2D) +0:? 'i2bad' (layout( rgba32i) uniform image2D) +0:? 'i3bad' (layout( rgba32f) uniform uimage2D) +0:? 'i4bad' (layout( r8_snorm) uniform iimage2D) +0:? 'i5bad' (layout( rgba32ui) uniform iimage2D) +0:? 'i6bad' (layout( r8ui) uniform iimage2D) +0:? 'offcheckI' (layout( column_major shared) uniform block{layout( column_major shared offset=16) uniform int foo}) +0:? 'samp1D' ( uniform sampler1D) +0:? 'samp1Ds' ( uniform sampler1DShadow) +0:? 'badArray' (layout( binding=0) writeonly uniform unsized 1-element array of image1D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 420 +ERROR: node is still EOpNull! +0:32 Function Definition: main( ( global void) +0:32 Function Parameters: +0:? Sequence +0:35 Test condition and select ( temp void) +0:35 Condition +0:35 Compare Equal ( temp bool) +0:35 'i' ( temp int) +0:35 Constant: +0:35 3 (const int) +0:35 true case +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'j' ( temp int) +0:36 'i' ( temp int) +0:42 Loop with condition tested first +0:42 Loop Condition +0:42 Constant: +0:42 true (const bool) +0:42 No loop body +0:? Linker Objects +0:? 'v2' ( smooth out 2-component vector of float) +0:? 'bad' ( in 10-element array of 4-component vector of float) +0:? 'badorder' ( in 4-component vector of float) +0:? 'badorder2' ( invariant smooth out 4-component vector of float) +0:? 'badorder4' ( centroid in 4-component vector of float) +0:? 'badorder3' ( flat out 4-component vector of float) +0:? 'rep' ( smooth flat out 4-component vector of float) +0:? 'rep2' ( centroid smooth sample out 4-component vector of float) +0:? 'rep3' ( in 4-component vector of float) +0:? 'anonconst' ( global int) +0:? 'aconst' ( const int) +0:? 5 (const int) +0:? 'a' ( const int) +0:? 5 (const int) +0:? 'b' ( temp int) +0:? 'cx' ( const float) +0:? 4.200000 +0:? 'dx' ( const float) +0:? 4.200000 +0:? 'boundInst' (layout( binding=3 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) +0:? 'anon@0' (layout( binding=7 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) +0:? 'anon@1' (layout( binding=1) in block{ in int aoeua}) +0:? 'anon@2' (layout( column_major shared) uniform block{layout( column_major shared) uniform int aooeu}) +0:? 'sampb1' (layout( binding=4) uniform sampler2D) +0:? 'sampb2' (layout( binding=5) uniform 10-element array of sampler2D) +0:? 'sampb3' (layout( binding=80) uniform sampler2D) +0:? 'sampb4' (layout( binding=31) uniform sampler2D) +0:? 'sampb5' (layout( binding=79) uniform 2-element array of sampler2D) +0:? 'anon@3' ( out block{ out 4-element array of float ClipDistance gl_ClipDistance, }) +0:? 'patchIn' ( patch in 4-component vector of float) +0:? 'patchOut' ( smooth patch out 4-component vector of float) +0:? 'comma0' ( temp int) +0:? 'comma1' ( global 1-element array of int) +0:? 'iimg2D' (layout( r32i) uniform iimage2D) +0:? 'iimg2Drgba' (layout( rgba32i) uniform iimage2D) +0:? 'img2Drgba' (layout( rgba32f) uniform image2D) +0:? 'uimg2D' (layout( r32ui) uniform uimage2D) +0:? 'img2DMS' ( uniform image2DMS) +0:? 'img2DMSWO' ( writeonly uniform image2DMS) +0:? 'vol' ( volatile temp float) +0:? 'vol2' ( readonly temp int) +0:? 'qualim1' (layout( r32i) coherent readonly uniform iimage2D) +0:? 'qualim2' (layout( r32i) coherent volatile readonly uniform iimage2D) +0:? 'i1bad' (layout( rg8i) uniform uimage2D) +0:? 'i2bad' (layout( rgba32i) uniform image2D) +0:? 'i3bad' (layout( rgba32f) uniform uimage2D) +0:? 'i4bad' (layout( r8_snorm) uniform iimage2D) +0:? 'i5bad' (layout( rgba32ui) uniform iimage2D) +0:? 'i6bad' (layout( r8ui) uniform iimage2D) +0:? 'offcheckI' (layout( column_major shared) uniform block{layout( column_major shared offset=16) uniform int foo}) +0:? 'samp1D' ( uniform sampler1D) +0:? 'samp1Ds' ( uniform sampler1DShadow) +0:? 'badArray' (layout( binding=0) writeonly uniform 1-element array of image1D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/420_size_gl_in.geom.out b/deps/glslang/glslang/Test/baseResults/420_size_gl_in.geom.out new file mode 100644 index 0000000000..9d95495b47 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/420_size_gl_in.geom.out @@ -0,0 +1,56 @@ +420_size_gl_in.geom +ERROR: 0:19: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 1 compilation errors. No code generated. + + +Shader version: 420 +invocations = -1 +max_vertices = -1 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:11 Function Definition: foo( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 Constant: +0:13 3 (const int) +0:14 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:14 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:14 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 Constant: +0:15 3 (const int) +0:16 gl_Position: direct index for structure ( in 4-component vector of float Position) +0:16 indirect index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:16 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) +0:16 'i' ( global int) +0:16 Constant: +0:16 0 (const int) +0:? Linker Objects +0:? 'i' ( global int) +0:? 'colorun' ( in 3-element array of 4-component vector of float) +0:? 'color3' ( in 3-element array of 4-component vector of float) +0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 1-element array of float ClipDistance gl_ClipDistance}) + + +Linked geometry stage: + +ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point +ERROR: Linking geometry stage: At least one shader must specify an output layout primitive +ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) + +Shader version: 420 +invocations = 1 +max_vertices = -1 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'i' ( global int) +0:? 'colorun' ( in 3-element array of 4-component vector of float) +0:? 'color3' ( in 3-element array of 4-component vector of float) +0:? 'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) + diff --git a/deps/glslang/glslang/Test/baseResults/430.comp.out b/deps/glslang/glslang/Test/baseResults/430.comp.out new file mode 100644 index 0000000000..599cd8e3e0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/430.comp.out @@ -0,0 +1,209 @@ +430.comp +ERROR: 0:4: 'local_size' : cannot change previously set size +ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize +ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader +ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute +ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader +ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader +ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable +ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers +ERROR: 0:49: 'shared' : cannot initialize this type of qualifier +ERROR: 0:51: 'local_size' : can only apply to 'in' +ERROR: 0:51: 'local_size' : can only apply to 'in' +ERROR: 0:51: 'local_size' : can only apply to 'in' +ERROR: 0:65: 'assign' : l-value required "ro" (can't modify a readonly buffer) +ERROR: 0:77: '=' : cannot convert from ' temp double' to ' temp int' +ERROR: 0:81: 'input block' : not supported in this stage: compute +ERROR: 0:85: 'output block' : not supported in this stage: compute +ERROR: 16 compilation errors. No code generated. + + +Shader version: 430 +local_size = (2, 1, 4096) +ERROR: node is still EOpNull! +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:29 Sequence +0:29 Barrier ( global void) +0:30 MemoryBarrier ( global void) +0:31 MemoryBarrierAtomicCounter ( global void) +0:32 MemoryBarrierBuffer ( global void) +0:33 MemoryBarrierShared ( global void) +0:34 MemoryBarrierImage ( global void) +0:35 GroupMemoryBarrier ( global void) +0:36 move second child to first child ( temp int) +0:36 value: direct index for structure (layout( column_major shared) buffer int) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values}) +0:36 Constant: +0:36 0 (const uint) +0:36 Convert float to int ( temp int) +0:36 indirect index (layout( column_major shared) temp float) +0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values}) +0:36 Constant: +0:36 1 (const uint) +0:36 'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex) +0:39 Test condition and select ( temp void) +0:39 Condition +0:39 Compare Greater Than ( temp bool) +0:39 'a' ( temp int) +0:39 Constant: +0:39 10 (const int) +0:39 true case +0:40 Barrier ( global void) +0:63 Function Definition: foo( ( global void) +0:63 Function Parameters: +0:65 Sequence +0:65 move second child to first child ( temp float) +0:65 direct index (layout( column_major shared) temp float) +0:65 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of float) +0:65 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values}) +0:65 Constant: +0:65 1 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 4.700000 +0:66 array length ( temp int) +0:66 values: direct index for structure (layout( column_major shared) buffer unsized 3-element array of float) +0:66 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values}) +0:66 Constant: +0:66 1 (const int) +0:67 Barrier ( global void) +0:72 Function Definition: fooaoeu( ( global void) +0:72 Function Parameters: +0:73 Sequence +0:73 Sequence +0:73 move second child to first child ( temp 2-component vector of int) +0:73 'storePos' ( temp 2-component vector of int) +0:73 Convert uint to int ( temp 2-component vector of int) +0:73 vector swizzle ( temp 2-component vector of uint) +0:73 'gl_GlobalInvocationID' ( in 3-component vector of uint GlobalInvocationID) +0:73 Sequence +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child ( temp double) +0:74 'localCoef' ( temp double) +0:74 Convert float to double ( temp double) +0:74 length ( global float) +0:74 divide ( temp 2-component vector of float) +0:74 Convert int to float ( temp 2-component vector of float) +0:74 subtract ( temp 2-component vector of int) +0:74 Convert uint to int ( temp 2-component vector of int) +0:74 vector swizzle ( temp 2-component vector of uint) +0:74 'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID) +0:74 Sequence +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 8 (const int) +0:74 Constant: +0:74 8.000000 +0:75 Sequence +0:75 move second child to first child ( temp 4-component vector of double) +0:75 'aa' ( temp 4-component vector of double) +0:75 Constant: +0:75 0.400000 +0:75 0.200000 +0:75 0.300000 +0:75 0.400000 +0:76 Sequence +0:76 move second child to first child ( temp double) +0:76 'globalCoef' ( temp double) +0:76 Constant: +0:76 1.000000 +0:78 Sequence +0:78 move second child to first child ( temp double) +0:78 'di' ( temp double) +0:78 Convert int to double ( temp double) +0:78 'i' ( temp int) +0:? Linker Objects +0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 1 (const uint) +0:? 4096 (const uint) +0:? 'total' ( const int) +0:? 66592 (const int) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values}) +0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer unsized 1-element array of float values, layout( column_major shared) buffer int value}) +0:? 'v3' (layout( location=2) in 3-component vector of float) +0:? 'f' ( in float) +0:? 'fo' ( out float) +0:? 's' ( shared 4-component vector of float) +0:? 'sl' (layout( location=2) shared 4-component vector of float) +0:? 'fs' ( shared float) +0:? 'arrX' ( global 2-element array of int) +0:? 'arrY' ( global 1-element array of int) +0:? 'arrZ' ( global 4096-element array of int) +0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values}) +0:? 'roll' ( uniform double) +0:? 'destTex' ( writeonly uniform image2D) +0:? 'inbi' ( in block{ in int a}) +0:? 'outbi' ( out block{ out int a}) + + +Linked compute stage: + + +Shader version: 430 +local_size = (2, 1, 4096) +ERROR: node is still EOpNull! +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:29 Sequence +0:29 Barrier ( global void) +0:30 MemoryBarrier ( global void) +0:31 MemoryBarrierAtomicCounter ( global void) +0:32 MemoryBarrierBuffer ( global void) +0:33 MemoryBarrierShared ( global void) +0:34 MemoryBarrierImage ( global void) +0:35 GroupMemoryBarrier ( global void) +0:36 move second child to first child ( temp int) +0:36 value: direct index for structure (layout( column_major shared) buffer int) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values}) +0:36 Constant: +0:36 0 (const uint) +0:36 Convert float to int ( temp int) +0:36 indirect index (layout( column_major shared) temp float) +0:36 values: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:36 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values}) +0:36 Constant: +0:36 1 (const uint) +0:36 'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex) +0:39 Test condition and select ( temp void) +0:39 Condition +0:39 Compare Greater Than ( temp bool) +0:39 'a' ( temp int) +0:39 Constant: +0:39 10 (const int) +0:39 true case +0:40 Barrier ( global void) +0:? Linker Objects +0:? 'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 1 (const uint) +0:? 4096 (const uint) +0:? 'total' ( const int) +0:? 66592 (const int) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer runtime-sized array of float values}) +0:? 'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer 1-element array of float values, layout( column_major shared) buffer int value}) +0:? 'v3' (layout( location=2) in 3-component vector of float) +0:? 'f' ( in float) +0:? 'fo' ( out float) +0:? 's' ( shared 4-component vector of float) +0:? 'sl' (layout( location=2) shared 4-component vector of float) +0:? 'fs' ( shared float) +0:? 'arrX' ( global 2-element array of int) +0:? 'arrY' ( global 1-element array of int) +0:? 'arrZ' ( global 4096-element array of int) +0:? 'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer unsized 3-element array of float values}) +0:? 'roll' ( uniform double) +0:? 'destTex' ( writeonly uniform image2D) +0:? 'inbi' ( in block{ in int a}) +0:? 'outbi' ( out block{ out int a}) + diff --git a/deps/glslang/glslang/Test/baseResults/430.vert.out b/deps/glslang/glslang/Test/baseResults/430.vert.out new file mode 100644 index 0000000000..29ffb01aa8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/430.vert.out @@ -0,0 +1,340 @@ +430.vert +ERROR: 0:3: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers +ERROR: 0:7: 'input block' : not supported in this stage: vertex +ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions +ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions +ERROR: 0:23: 'invariant' : can only apply to an output +ERROR: 0:21: 'g' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:22: 'h' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:23: 'i' : cannot use invariant qualifier on structure members +ERROR: 0:24: 'j' : cannot use memory qualifiers on structure members +ERROR: 0:25: 'm3' : cannot use layout qualifiers on structure members +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 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 +ERROR: 0:53: 'input block' : not supported in this stage: vertex +ERROR: 0:54: 'location on block member' : not supported for this version or the enabled extensions +ERROR: 0:57: 'input block' : not supported in this stage: vertex +ERROR: 0:58: 'location on block member' : not supported for this version or the enabled extensions +ERROR: 0:59: 'location on block member' : not supported for this version or the enabled extensions +ERROR: 0:62: 'uniform buffer-member align' : not supported for this version or the enabled extensions +ERROR: 0:64: 'uniform buffer-member align' : not supported for this version or the enabled extensions +ERROR: 0:65: 'uniform buffer-member align' : not supported for this version or the enabled extensions +ERROR: 0:65: 'offset on block member' : not supported for this version or the enabled extensions +ERROR: 0:66: 'offset on block member' : not supported for this version or the enabled extensions +ERROR: 0:64: 'align' : can only be used with std140 or std430 layout packing +ERROR: 0:65: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:66: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:71: 'offset on block member' : not supported for this version or the enabled extensions +ERROR: 0:74: 'gl_MaxTransformFeedbackBuffers' : required extension not requested: GL_ARB_enhanced_layouts +ERROR: 0:75: 'gl_MaxTransformFeedbackInterleavedComponents' : required extension not requested: GL_ARB_enhanced_layouts +ERROR: 0:78: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:81: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:83: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:84: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:86: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:92: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions +ERROR: 0:117: 'input block' : not supported in this stage: vertex +ERROR: 0:123: 'input block' : not supported in this stage: vertex +ERROR: 0:146: 'shared' : not supported in this stage: vertex +ERROR: 0:150: 'barrier' : no matching overloaded function found +ERROR: 0:154: 'memoryBarrierShared' : no matching overloaded function found +ERROR: 0:156: 'groupMemoryBarrier' : no matching overloaded function found +ERROR: 0:159: 'buffer' : buffers can be declared only as blocks +ERROR: 0:168: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions +ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions +ERROR: 0:170: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions +ERROR: 0:171: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions +ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:221: 'assign' : cannot convert from ' const float' to ' temp int' +ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:222: 'assign' : cannot convert from ' const float' to ' temp int' +ERROR: 64 compilation errors. No code generated. + + +Shader version: 430 +Requested GL_ARB_enhanced_layouts +Requested GL_ARB_shader_texture_image_samples +in xfb mode +ERROR: node is still EOpNull! +0:14 Function Definition: foo( ( global void) +0:14 Function Parameters: +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float ClipDistance) +0:16 gl_ClipDistance: direct index for structure ( out 17-element array of float ClipDistance) +0:16 'anon@0' ( out block{ out 17-element array of float ClipDistance gl_ClipDistance, }) +0:16 Constant: +0:16 2 (const uint) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 3.700000 +0:31 Function Definition: foo3(vf4;vf3;vf2;vf3; ( global void) +0:31 Function Parameters: +0:31 'v4' ( in 4-component vector of float) +0:31 'v3' ( volatile in 3-component vector of float) +0:31 'v2' ( in 2-component vector of float) +0:31 'cv3' ( in 3-component vector of float) +0:148 Function Definition: fooBarrier( ( global void) +0:148 Function Parameters: +0:150 Sequence +0:150 Constant: +0:150 0.000000 +0:151 MemoryBarrier ( global void) +0:152 MemoryBarrierAtomicCounter ( global void) +0:153 MemoryBarrierBuffer ( global void) +0:154 Constant: +0:154 0.000000 +0:155 MemoryBarrierImage ( global void) +0:156 Constant: +0:156 0.000000 +0:166 Function Definition: fooq( ( global void) +0:166 Function Parameters: +0:168 Sequence +0:168 Sequence +0:168 move second child to first child ( temp int) +0:168 's' ( temp int) +0:168 textureSamples ( global int) +0:168 's2dms' ( uniform sampler2DMS) +0:169 add second child into first child ( temp int) +0:169 's' ( temp int) +0:169 textureSamples ( global int) +0:169 'us2dmsa' ( uniform usampler2DMSArray) +0:170 add second child into first child ( temp int) +0:170 's' ( temp int) +0:170 imageQuerySamples ( global int) +0:170 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:171 add second child into first child ( temp int) +0:171 's' ( temp int) +0:171 imageQuerySamples ( global int) +0:171 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:176 Function Definition: fooq2( ( global void) +0:176 Function Parameters: +0:178 Sequence +0:178 Sequence +0:178 move second child to first child ( temp int) +0:178 's' ( temp int) +0:178 textureSamples ( global int) +0:178 's2dms' ( uniform sampler2DMS) +0:179 add second child into first child ( temp int) +0:179 's' ( temp int) +0:179 textureSamples ( global int) +0:179 'us2dmsa' ( uniform usampler2DMSArray) +0:180 add second child into first child ( temp int) +0:180 's' ( temp int) +0:180 imageQuerySamples ( global int) +0:180 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:181 add second child into first child ( temp int) +0:181 's' ( temp int) +0:181 imageQuerySamples ( global int) +0:181 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:202 Function Definition: qlod( ( global void) +0:202 Function Parameters: +0:? Sequence +0:206 move second child to first child ( temp int) +0:206 'levels' ( temp int) +0:206 textureQueryLevels ( global int) +0:206 'samp1D' ( uniform sampler1D) +0:207 move second child to first child ( temp int) +0:207 'levels' ( temp int) +0:207 textureQueryLevels ( global int) +0:207 'usamp2D' ( uniform usampler2D) +0:208 move second child to first child ( temp int) +0:208 'levels' ( temp int) +0:208 textureQueryLevels ( global int) +0:208 'isamp3D' ( uniform isampler3D) +0:209 move second child to first child ( temp int) +0:209 'levels' ( temp int) +0:209 textureQueryLevels ( global int) +0:209 'isampCube' ( uniform isamplerCube) +0:210 move second child to first child ( temp int) +0:210 'levels' ( temp int) +0:210 textureQueryLevels ( global int) +0:210 'isamp1DA' ( uniform isampler1DArray) +0:211 move second child to first child ( temp int) +0:211 'levels' ( temp int) +0:211 textureQueryLevels ( global int) +0:211 'samp2DA' ( uniform sampler2DArray) +0:212 move second child to first child ( temp int) +0:212 'levels' ( temp int) +0:212 textureQueryLevels ( global int) +0:212 'usampCubeA' ( uniform usamplerCubeArray) +0:214 move second child to first child ( temp int) +0:214 'levels' ( temp int) +0:214 textureQueryLevels ( global int) +0:214 'samp1Ds' ( uniform sampler1DShadow) +0:215 move second child to first child ( temp int) +0:215 'levels' ( temp int) +0:215 textureQueryLevels ( global int) +0:215 'samp2Ds' ( uniform sampler2DShadow) +0:216 move second child to first child ( temp int) +0:216 'levels' ( temp int) +0:216 textureQueryLevels ( global int) +0:216 'sampCubes' ( uniform samplerCubeShadow) +0:217 move second child to first child ( temp int) +0:217 'levels' ( temp int) +0:217 textureQueryLevels ( global int) +0:217 'samp1DAs' ( uniform sampler1DArrayShadow) +0:218 move second child to first child ( temp int) +0:218 'levels' ( temp int) +0:218 textureQueryLevels ( global int) +0:218 'samp2DAs' ( uniform sampler2DArrayShadow) +0:219 move second child to first child ( temp int) +0:219 'levels' ( temp int) +0:219 textureQueryLevels ( global int) +0:219 'sampCubeAs' ( uniform samplerCubeArrayShadow) +0:221 'levels' ( temp int) +0:222 'levels' ( temp int) +0:? Linker Objects +0:? 'v4' (layout( location=3) temp 4-component vector of float) +0:? 'uv4' (layout( location=4) uniform 4-component vector of float) +0:? 'b1' (layout( location=2) in block{ in 4-component vector of float v}) +0:? 'b2' (layout( location=2) out block{ out 4-component vector of float v}) +0:? 'anon@0' ( out block{ out 17-element array of float ClipDistance gl_ClipDistance, }) +0:? 'cs' (layout( location=10) smooth out 2-element array of structure{ global 7-element array of 3X2 matrix of float m, global float f}) +0:? 'cf' (layout( location=54) smooth out float) +0:? 'cg' (layout( location=53) smooth out float) +0:? 'alias1' (layout( location=10) in 4-component vector of float) +0:? 'alias2' (layout( location=10) in 4-component vector of float) +0:? 'v6e' (layout( location=0) in 4-component vector of float) +0:? 'ininst2e' ( in block{layout( location=25) in float f2}) +0:? 'in4e' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) +0:? 'inst4e' (layout( column_major std140 align=16) uniform block{layout( column_major std140 offset=0 align=16) uniform int a}) +0:? 'inst9e' (layout( column_major shared align=32) uniform block{layout( column_major shared offset=12 align=4) uniform float f, layout( column_major shared offset=20) uniform float g}) +0:? 'spinste' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b}) +0:? 'aconste' ( global 4-element array of int) +0:? 'bconste' ( global 64-element array of int) +0:? 'bbinst2' ( out block{layout( xfb_buffer=0 xfb_offset=64) out 4-component vector of float bbv}) +0:? 'bge' (layout( xfb_buffer=2 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bhe' (layout( xfb_buffer=3 xfb_offset=32 xfb_stride=64) smooth out 4-component vector of float) +0:? 'bbinst4e' (layout( xfb_stride=80) out block{layout( xfb_buffer=2 xfb_offset=16) out 4-component vector of float bbv1, layout( xfb_buffer=2 xfb_offset=32) out 4-component vector of float bbv2}) +0:? 'bbinst5e' ( out block{layout( xfb_buffer=3 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=3 xfb_offset=48 xfb_stride=64) out 4-component vector of float bbv2}) +0:? 'inst4' (layout( column_major std140 align=16) uniform block{layout( column_major std140 offset=0 align=16) uniform int a}) +0:? 'inst9' (layout( column_major std430 align=32) uniform block{layout( column_major std430 offset=12 align=4) uniform float f, layout( column_major std430 offset=20 align=32) uniform float g}) +0:? 'spinst' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b}) +0:? 'aconst' ( global 4-element array of int) +0:? 'bconst' ( global 64-element array of int) +0:? 'start2' ( const int) +0:? 5 (const int) +0:? 'v6' (layout( location=19) in 4-component vector of float) +0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2}) +0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) +0:? 'bbinst2g' ( out block{layout( xfb_buffer=3 xfb_offset=64) out 4-component vector of float bbv}) +0:? 'bg' (layout( xfb_buffer=1 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bh' (layout( xfb_buffer=1 xfb_offset=32 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bbinst4' (layout( xfb_stride=80) out block{layout( xfb_buffer=1 xfb_offset=16) out 4-component vector of float bbv1}) +0:? 'bbinst5' ( out block{layout( xfb_buffer=1 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=1 xfb_offset=64 xfb_stride=80) out 4-component vector of float bbv2}) +0:? 'sharedv' ( shared 4-component vector of float) +0:? 'v' ( buffer 4-component vector of float) +0:? 's2dms' ( uniform sampler2DMS) +0:? 'us2dmsa' ( uniform usampler2DMSArray) +0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:? 'samp1D' ( uniform sampler1D) +0:? 'usamp2D' ( uniform usampler2D) +0:? 'isamp3D' ( uniform isampler3D) +0:? 'isampCube' ( uniform isamplerCube) +0:? 'isamp1DA' ( uniform isampler1DArray) +0:? 'samp2DA' ( uniform sampler2DArray) +0:? 'usampCubeA' ( uniform usamplerCubeArray) +0:? 'samp1Ds' ( uniform sampler1DShadow) +0:? 'samp2Ds' ( uniform sampler2DShadow) +0:? 'sampCubes' ( uniform samplerCubeShadow) +0:? 'samp1DAs' ( uniform sampler1DArrayShadow) +0:? 'samp2DAs' ( uniform sampler2DArrayShadow) +0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow) +0:? 'sampBuf' ( uniform samplerBuffer) +0:? 'sampRect' ( uniform sampler2DRect) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point +ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries: +ERROR: xfb_buffer 3, xfb_stride 64, minimum stride needed: 80 + +Shader version: 430 +Requested GL_ARB_enhanced_layouts +Requested GL_ARB_shader_texture_image_samples +in xfb mode +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'v4' (layout( location=3) temp 4-component vector of float) +0:? 'uv4' (layout( location=4) uniform 4-component vector of float) +0:? 'b1' (layout( location=2) in block{ in 4-component vector of float v}) +0:? 'b2' (layout( location=2) out block{ out 4-component vector of float v}) +0:? 'anon@0' ( out block{ out 17-element array of float ClipDistance gl_ClipDistance, }) +0:? 'cs' (layout( location=10) smooth out 2-element array of structure{ global 7-element array of 3X2 matrix of float m, global float f}) +0:? 'cf' (layout( location=54) smooth out float) +0:? 'cg' (layout( location=53) smooth out float) +0:? 'alias1' (layout( location=10) in 4-component vector of float) +0:? 'alias2' (layout( location=10) in 4-component vector of float) +0:? 'v6e' (layout( location=0) in 4-component vector of float) +0:? 'ininst2e' ( in block{layout( location=25) in float f2}) +0:? 'in4e' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) +0:? 'inst4e' (layout( column_major std140 align=16) uniform block{layout( column_major std140 offset=0 align=16) uniform int a}) +0:? 'inst9e' (layout( column_major shared align=32) uniform block{layout( column_major shared offset=12 align=4) uniform float f, layout( column_major shared offset=20) uniform float g}) +0:? 'spinste' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b}) +0:? 'aconste' ( global 4-element array of int) +0:? 'bconste' ( global 64-element array of int) +0:? 'bbinst2' ( out block{layout( xfb_buffer=0 xfb_offset=64) out 4-component vector of float bbv}) +0:? 'bge' (layout( xfb_buffer=2 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bhe' (layout( xfb_buffer=3 xfb_offset=32 xfb_stride=64) smooth out 4-component vector of float) +0:? 'bbinst4e' (layout( xfb_stride=80) out block{layout( xfb_buffer=2 xfb_offset=16) out 4-component vector of float bbv1, layout( xfb_buffer=2 xfb_offset=32) out 4-component vector of float bbv2}) +0:? 'bbinst5e' ( out block{layout( xfb_buffer=3 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=3 xfb_offset=48 xfb_stride=64) out 4-component vector of float bbv2}) +0:? 'inst4' (layout( column_major std140 align=16) uniform block{layout( column_major std140 offset=0 align=16) uniform int a}) +0:? 'inst9' (layout( column_major std430 align=32) uniform block{layout( column_major std430 offset=12 align=4) uniform float f, layout( column_major std430 offset=20 align=32) uniform float g}) +0:? 'spinst' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b}) +0:? 'aconst' ( global 4-element array of int) +0:? 'bconst' ( global 64-element array of int) +0:? 'start2' ( const int) +0:? 5 (const int) +0:? 'v6' (layout( location=19) in 4-component vector of float) +0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2}) +0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) +0:? 'bbinst2g' ( out block{layout( xfb_buffer=3 xfb_offset=64) out 4-component vector of float bbv}) +0:? 'bg' (layout( xfb_buffer=1 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bh' (layout( xfb_buffer=1 xfb_offset=32 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bbinst4' (layout( xfb_stride=80) out block{layout( xfb_buffer=1 xfb_offset=16) out 4-component vector of float bbv1}) +0:? 'bbinst5' ( out block{layout( xfb_buffer=1 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=1 xfb_offset=64 xfb_stride=80) out 4-component vector of float bbv2}) +0:? 'sharedv' ( shared 4-component vector of float) +0:? 'v' ( buffer 4-component vector of float) +0:? 's2dms' ( uniform sampler2DMS) +0:? 'us2dmsa' ( uniform usampler2DMSArray) +0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:? 'samp1D' ( uniform sampler1D) +0:? 'usamp2D' ( uniform usampler2D) +0:? 'isamp3D' ( uniform isampler3D) +0:? 'isampCube' ( uniform isamplerCube) +0:? 'isamp1DA' ( uniform isampler1DArray) +0:? 'samp2DA' ( uniform sampler2DArray) +0:? 'usampCubeA' ( uniform usamplerCubeArray) +0:? 'samp1Ds' ( uniform sampler1DShadow) +0:? 'samp2Ds' ( uniform sampler2DShadow) +0:? 'sampCubes' ( uniform samplerCubeShadow) +0:? 'samp1DAs' ( uniform sampler1DArrayShadow) +0:? 'samp2DAs' ( uniform sampler2DArrayShadow) +0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow) +0:? 'sampBuf' ( uniform samplerBuffer) +0:? 'sampRect' ( uniform sampler2DRect) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/430AofA.frag.out b/deps/glslang/glslang/Test/baseResults/430AofA.frag.out new file mode 100644 index 0000000000..ac23dacb19 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/430AofA.frag.out @@ -0,0 +1,774 @@ +430AofA.frag +ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized +ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument +ERROR: 0:15: 'constructor' : array constructor argument not correct type to construct array element +ERROR: 0:28: '[' : array index out of range '4' +ERROR: 0:56: 'constructor' : cannot convert parameter 2 from ' const 3-element array of 4-component vector of float' to ' temp 2-element array of 4-component vector of float' +ERROR: 0:60: 'constructor' : cannot convert parameter 2 from ' const 2-element array of 4-component vector of float' to ' temp 3-element array of 4-component vector of float' +ERROR: 0:64: '=' : cannot convert from ' const 3-element array of 2-element array of 4-component vector of float' to ' temp 4-element array of 2-element array of 4-component vector of float' +ERROR: 0:70: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global 5-element array of 7-element array of float' +ERROR: 0:71: 'assign' : cannot convert from ' global 4-element array of 7-element array of float' to ' global unsized 1-element array of 7-element array of float' +ERROR: 0:73: 'foo' : no matching overloaded function found +ERROR: 0:78: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 4-element array of 7-element array of float' and a right operand of type ' global 5-element array of 7-element array of float' (or there is no acceptable conversion) +ERROR: 0:84: '[' : array index out of range '5' +ERROR: 0:91: 'length' : array must be declared with a size before using this method +ERROR: 0:93: 'length' : array must be declared with a size before using this method +ERROR: 0:98: 'length' : does not operate on this type: temp float +ERROR: 0:98: '' : function call, method, or subroutine call expected +ERROR: 0:98: '' : no matching overloaded function found +ERROR: 0:101: 'resize2' : redeclaration of array with a different array dimensions or sizes +ERROR: 0:104: 'resize3' : redeclaration of array with a different array dimensions or sizes +ERROR: 0:107: 'resize4' : redeclaration of array with a different element type +ERROR: 20 compilation errors. No code generated. + + +Shader version: 430 +ERROR: node is still EOpNull! +0:10 Function Definition: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:10 Function Parameters: +0:10 'a' ( in 5-element array of 7-element array of float) +0:? Sequence +0:13 move second child to first child ( temp 7-element array of float) +0:13 'r' ( temp 7-element array of float) +0:13 direct index ( temp 7-element array of float) +0:13 'a' ( in 5-element array of 7-element array of float) +0:13 Constant: +0:13 2 (const int) +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Branch: Return with expression +0:16 Construct float ( temp 4-element array of 7-element array of float) +0:16 direct index ( temp 7-element array of float) +0:16 'a' ( in 5-element array of 7-element array of float) +0:16 Constant: +0:16 0 (const int) +0:16 direct index ( temp 7-element array of float) +0:16 'a' ( in 5-element array of 7-element array of float) +0:16 Constant: +0:16 1 (const int) +0:16 'r' ( temp 7-element array of float) +0:16 direct index ( temp 7-element array of float) +0:16 'a' ( in 5-element array of 7-element array of float) +0:16 Constant: +0:16 3 (const int) +0:17 Branch: Return with expression +0:17 Construct float ( temp 4-element array of 7-element array of float) +0:17 direct index ( temp 7-element array of float) +0:17 'a' ( in 5-element array of 7-element array of float) +0:17 Constant: +0:17 0 (const int) +0:17 direct index ( temp 7-element array of float) +0:17 'a' ( in 5-element array of 7-element array of float) +0:17 Constant: +0:17 1 (const int) +0:17 'r' ( temp 7-element array of float) +0:17 direct index ( temp 7-element array of float) +0:17 'a' ( in 5-element array of 7-element array of float) +0:17 Constant: +0:17 3 (const int) +0:18 Branch: Return with expression +0:18 Construct float ( temp 4-element array of 7-element array of float) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 3 (const int) +0:21 Function Definition: bar(f1[5][7]; ( global void) +0:21 Function Parameters: +0:21 '' ( in 5-element array of 7-element array of float) +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:? Sequence +0:? Sequence +0:28 move second child to first child ( temp float) +0:28 direct index ( temp float) +0:28 direct index ( temp 2-element array of float) +0:28 direct index ( temp 4-element array of 2-element array of float) +0:28 'gu' ( temp 3-element array of 4-element array of 2-element array of float) +0:28 Constant: +0:28 2 (const int) +0:28 Constant: +0:28 4 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 4.000000 +0:30 Sequence +0:30 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:30 'ca4' ( temp 3-element array of 2-element array of 4-component vector of float) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:33 Sequence +0:33 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:33 'caim' ( temp 3-element array of 2-element array of 4-component vector of float) +0:35 Constant: +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:36 Sequence +0:36 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:36 'caim2' ( temp 3-element array of 2-element array of 4-component vector of float) +0:38 Constant: +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:39 Sequence +0:39 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:39 'caim3' ( temp 3-element array of 2-element array of 4-component vector of float) +0:41 Constant: +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:43 Sequence +0:43 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:43 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) +0:43 Constant: +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:46 Sequence +0:46 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:46 'aim' ( temp 3-element array of 2-element array of 4-component vector of float) +0:46 Constant: +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:49 Sequence +0:49 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:49 'aim2' ( temp 3-element array of 2-element array of 4-component vector of float) +0:49 Constant: +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:52 Sequence +0:52 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:52 'aim3' ( temp 3-element array of 2-element array of 4-component vector of float) +0:52 Constant: +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:69 move second child to first child ( temp 4-element array of 7-element array of float) +0:69 'g4' ( global 4-element array of 7-element array of float) +0:69 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:69 'g5' ( global 5-element array of 7-element array of float) +0:70 'g5' ( global 5-element array of 7-element array of float) +0:71 'gu' ( global unsized 1-element array of 7-element array of float) +0:73 Constant: +0:73 0.000000 +0:74 Function Call: bar(f1[5][7]; ( global void) +0:74 'g5' ( global 5-element array of 7-element array of float) +0:76 Test condition and select ( temp void) +0:76 Condition +0:76 Compare Equal ( temp bool) +0:76 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:76 'g5' ( global 5-element array of 7-element array of float) +0:76 'g4' ( global 4-element array of 7-element array of float) +0:76 true case is null +0:78 Test condition and select ( temp void) +0:78 Condition +0:78 Constant: +0:78 false (const bool) +0:78 true case is null +0:82 move second child to first child ( temp float) +0:82 direct index ( temp float) +0:82 direct index ( temp 7-element array of float) +0:82 'u' ( temp 5-element array of 7-element array of float) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 3.000000 +0:84 move second child to first child ( temp float) +0:84 direct index ( temp float) +0:84 direct index ( temp 7-element array of float) +0:84 'u' ( temp 5-element array of 7-element array of float) +0:84 Constant: +0:84 5 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 Constant: +0:84 5.000000 +0:85 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:85 'u' ( temp 5-element array of 7-element array of float) +0:88 Function Definition: foo3( ( global void) +0:88 Function Parameters: +0:? Sequence +0:91 Constant: +0:91 1 (const int) +0:92 move second child to first child ( temp float) +0:92 direct index ( temp float) +0:92 direct index ( temp 7-element array of float) +0:92 direct index ( temp 5-element array of 7-element array of float) +0:92 'resize1' ( temp 3-element array of 5-element array of 7-element array of float) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 4 (const int) +0:92 Constant: +0:92 5 (const int) +0:92 Constant: +0:92 2.000000 +0:93 Constant: +0:93 1 (const int) +0:95 Constant: +0:95 3 (const int) +0:96 Constant: +0:96 5 (const int) +0:97 Constant: +0:97 7 (const int) +0:98 Constant: +0:98 0.000000 +0:? Linker Objects +0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float) +0:? 'gu' ( global unsized 1-element array of 7-element array of float) +0:? 'gimp' ( global unsized 1-element array of 1-element array of float) +0:? 'g4' ( global 4-element array of 7-element array of float) +0:? 'g5' ( global 5-element array of 7-element array of float) + + +Linked fragment stage: + + +Shader version: 430 +ERROR: node is still EOpNull! +0:10 Function Definition: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:10 Function Parameters: +0:10 'a' ( in 5-element array of 7-element array of float) +0:? Sequence +0:13 move second child to first child ( temp 7-element array of float) +0:13 'r' ( temp 7-element array of float) +0:13 direct index ( temp 7-element array of float) +0:13 'a' ( in 5-element array of 7-element array of float) +0:13 Constant: +0:13 2 (const int) +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Branch: Return with expression +0:16 Construct float ( temp 4-element array of 7-element array of float) +0:16 direct index ( temp 7-element array of float) +0:16 'a' ( in 5-element array of 7-element array of float) +0:16 Constant: +0:16 0 (const int) +0:16 direct index ( temp 7-element array of float) +0:16 'a' ( in 5-element array of 7-element array of float) +0:16 Constant: +0:16 1 (const int) +0:16 'r' ( temp 7-element array of float) +0:16 direct index ( temp 7-element array of float) +0:16 'a' ( in 5-element array of 7-element array of float) +0:16 Constant: +0:16 3 (const int) +0:17 Branch: Return with expression +0:17 Construct float ( temp 4-element array of 7-element array of float) +0:17 direct index ( temp 7-element array of float) +0:17 'a' ( in 5-element array of 7-element array of float) +0:17 Constant: +0:17 0 (const int) +0:17 direct index ( temp 7-element array of float) +0:17 'a' ( in 5-element array of 7-element array of float) +0:17 Constant: +0:17 1 (const int) +0:17 'r' ( temp 7-element array of float) +0:17 direct index ( temp 7-element array of float) +0:17 'a' ( in 5-element array of 7-element array of float) +0:17 Constant: +0:17 3 (const int) +0:18 Branch: Return with expression +0:18 Construct float ( temp 4-element array of 7-element array of float) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp 7-element array of float) +0:18 'a' ( in 5-element array of 7-element array of float) +0:18 Constant: +0:18 3 (const int) +0:21 Function Definition: bar(f1[5][7]; ( global void) +0:21 Function Parameters: +0:21 '' ( in 5-element array of 7-element array of float) +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:? Sequence +0:? Sequence +0:28 move second child to first child ( temp float) +0:28 direct index ( temp float) +0:28 direct index ( temp 2-element array of float) +0:28 direct index ( temp 4-element array of 2-element array of float) +0:28 'gu' ( temp 3-element array of 4-element array of 2-element array of float) +0:28 Constant: +0:28 2 (const int) +0:28 Constant: +0:28 4 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 4.000000 +0:30 Sequence +0:30 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:30 'ca4' ( temp 3-element array of 2-element array of 4-component vector of float) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:33 Sequence +0:33 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:33 'caim' ( temp 3-element array of 2-element array of 4-component vector of float) +0:35 Constant: +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 4.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:35 2.000000 +0:36 Sequence +0:36 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:36 'caim2' ( temp 3-element array of 2-element array of 4-component vector of float) +0:38 Constant: +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 4.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:38 2.000000 +0:39 Sequence +0:39 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:39 'caim3' ( temp 3-element array of 2-element array of 4-component vector of float) +0:41 Constant: +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 4.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:41 2.000000 +0:43 Sequence +0:43 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:43 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) +0:43 Constant: +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:43 1.000000 +0:46 Sequence +0:46 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:46 'aim' ( temp 3-element array of 2-element array of 4-component vector of float) +0:46 Constant: +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 4.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:46 2.000000 +0:49 Sequence +0:49 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:49 'aim2' ( temp 3-element array of 2-element array of 4-component vector of float) +0:49 Constant: +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 4.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:49 2.000000 +0:52 Sequence +0:52 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:52 'aim3' ( temp 3-element array of 2-element array of 4-component vector of float) +0:52 Constant: +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 4.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:52 2.000000 +0:69 move second child to first child ( temp 4-element array of 7-element array of float) +0:69 'g4' ( global 4-element array of 7-element array of float) +0:69 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:69 'g5' ( global 5-element array of 7-element array of float) +0:70 'g5' ( global 5-element array of 7-element array of float) +0:71 'gu' ( global 1-element array of 7-element array of float) +0:73 Constant: +0:73 0.000000 +0:74 Function Call: bar(f1[5][7]; ( global void) +0:74 'g5' ( global 5-element array of 7-element array of float) +0:76 Test condition and select ( temp void) +0:76 Condition +0:76 Compare Equal ( temp bool) +0:76 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:76 'g5' ( global 5-element array of 7-element array of float) +0:76 'g4' ( global 4-element array of 7-element array of float) +0:76 true case is null +0:78 Test condition and select ( temp void) +0:78 Condition +0:78 Constant: +0:78 false (const bool) +0:78 true case is null +0:82 move second child to first child ( temp float) +0:82 direct index ( temp float) +0:82 direct index ( temp 7-element array of float) +0:82 'u' ( temp 5-element array of 7-element array of float) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 3.000000 +0:84 move second child to first child ( temp float) +0:84 direct index ( temp float) +0:84 direct index ( temp 7-element array of float) +0:84 'u' ( temp 5-element array of 7-element array of float) +0:84 Constant: +0:84 5 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 Constant: +0:84 5.000000 +0:85 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of float) +0:85 'u' ( temp 5-element array of 7-element array of float) +0:? Linker Objects +0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float) +0:? 'gu' ( global 1-element array of 7-element array of float) +0:? 'gimp' ( global 1-element array of 1-element array of float) +0:? 'g4' ( global 4-element array of 7-element array of float) +0:? 'g5' ( global 5-element array of 7-element array of float) + diff --git a/deps/glslang/glslang/Test/baseResults/430scope.vert.out b/deps/glslang/glslang/Test/baseResults/430scope.vert.out new file mode 100644 index 0000000000..973c21aa14 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/430scope.vert.out @@ -0,0 +1,230 @@ +430scope.vert +ERROR: 0:5: 'a' : redefinition +ERROR: 0:17: 'b' : function name is redeclaration of existing name +ERROR: 0:20: 'c' : redefinition +ERROR: 0:22: 'f' : redefinition +ERROR: 0:43: 'sin' : can't use function syntax on variable +ERROR: 0:57: 'z' : undeclared identifier +ERROR: 0:57: 'z' : redefinition +ERROR: 0:73: 'degrees' : can't use function syntax on variable +ERROR: 8 compilation errors. No code generated. + + +Shader version: 430 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global int) +0:3 Function Parameters: +0:3 'a' ( in int) +0:3 'b' ( in int) +0:3 'c' ( in int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'a' ( temp float) +0:8 add ( temp float) +0:8 Convert int to float ( temp float) +0:8 'a' ( in int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in int) +0:25 Function Definition: cos(f1; ( global float) +0:25 Function Parameters: +0:25 'x' ( in float) +0:27 Sequence +0:27 Branch: Return with expression +0:27 Constant: +0:27 1.000000 +0:29 Function Definition: radians(b1; ( global bool) +0:29 Function Parameters: +0:29 'x' ( in bool) +0:31 Sequence +0:31 Branch: Return with expression +0:31 Constant: +0:31 true (const bool) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp int) +0:42 'sin' ( temp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; ( global int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp float) +0:47 'f' ( temp float) +0:47 Constant: +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 unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:49 Constant: +0:49 0 (const uint) +0:49 Construct vec4 ( temp 4-component vector of float) +0:49 'f' ( temp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp int) +0:51 'f' ( temp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp int) +0:52 'f' ( temp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp int) +0:51 'f' ( temp int) +0:54 Sequence +0:54 move second child to first child ( temp int) +0:54 'x' ( temp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'x' ( temp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp float) +0:56 'y' ( temp float) +0:56 'x' ( temp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp int) +0:60 'x' ( temp int) +0:60 'x' ( temp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp int x}) +0:68 'S' ( temp structure{ temp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp int) +0:69 'S' ( temp structure{ temp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 0.000000 +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'tan' ( global float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + g( + +Shader version: 430 +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; ( global int) +0:3 Function Parameters: +0:3 'a' ( in int) +0:3 'b' ( in int) +0:3 'c' ( in int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'a' ( temp float) +0:8 add ( temp float) +0:8 Convert int to float ( temp float) +0:8 'a' ( in int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' ( in int) +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:? Sequence +0:39 Function Call: g( ( temp int) +0:42 'sin' ( temp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; ( global int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 3 (const int) +0:47 move second child to first child ( temp float) +0:47 'f' ( temp float) +0:47 Constant: +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 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:49 Constant: +0:49 0 (const uint) +0:49 Construct vec4 ( temp 4-component vector of float) +0:49 'f' ( temp float) +0:51 Sequence +0:51 Sequence +0:51 move second child to first child ( temp int) +0:51 'f' ( temp int) +0:51 Constant: +0:51 0 (const int) +0:51 Loop with condition tested first +0:51 Loop Condition +0:51 Compare Less Than ( temp bool) +0:51 'f' ( temp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment ( temp int) +0:52 'f' ( temp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment ( temp int) +0:51 'f' ( temp int) +0:54 Sequence +0:54 move second child to first child ( temp int) +0:54 'x' ( temp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'x' ( temp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child ( temp float) +0:56 'y' ( temp float) +0:56 'x' ( temp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child ( temp int) +0:60 'x' ( temp int) +0:60 'x' ( temp int) +0:68 Sequence +0:68 Sequence +0:68 move second child to first child ( temp structure{ temp int x}) +0:68 'S' ( temp structure{ temp int x}) +0:68 Constant: +0:68 0 (const int) +0:69 x: direct index for structure ( temp int) +0:69 'S' ( temp structure{ temp int x}) +0:69 Constant: +0:69 0 (const int) +0:73 Constant: +0:73 0.000000 +0:? Linker Objects +0:? 'b' ( global bool) +0:? 'tan' ( global float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/435.vert.out b/deps/glslang/glslang/Test/baseResults/435.vert.out new file mode 100644 index 0000000000..188a0a43c3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/435.vert.out @@ -0,0 +1,25 @@ +435.vert +ERROR: version not supported +ERROR: 1 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:2 Function Definition: main( ( global void) +0:2 Function Parameters: +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 450 +ERROR: node is still EOpNull! +0:2 Function Definition: main( ( global void) +0:2 Function Parameters: +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/440.frag.out b/deps/glslang/glslang/Test/baseResults/440.frag.out new file mode 100644 index 0000000000..18e014f921 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/440.frag.out @@ -0,0 +1,165 @@ +440.frag +ERROR: 0:11: 'location' : overlapping use of location 4 +ERROR: 0:13: 'component' : type overflows the available 4 components +ERROR: 0:22: 'location' : fragment outputs sharing the same location must be the same basic type 30 +ERROR: 0:24: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) +ERROR: 0:25: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) +ERROR: 0:26: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) +ERROR: 0:29: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) +ERROR: 0:30: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) +ERROR: 0:30: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:31: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) +ERROR: 0:31: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:33: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) +ERROR: 0:34: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) +ERROR: 0:34: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:35: 'layout qualifier' : cannot use offset or align qualifiers in a default qualifier declaration (declaration with no type) +ERROR: 0:35: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:37: 'offset' : only applies to block members, not blocks +ERROR: 0:38: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:38: 'offset' : only applies to block members, not blocks +ERROR: 0:39: 'output block' : not supported in this stage: fragment +ERROR: 0:39: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:39: 'offset' : only applies to block members, not blocks +ERROR: 0:42: 'align' : can only be used with std140 or std430 layout packing +ERROR: 0:43: 'align' : can only be used with std140 or std430 layout packing +ERROR: 0:43: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:44: 'output block' : not supported in this stage: fragment +ERROR: 0:44: 'align' : can only be used with std140 or std430 layout packing +ERROR: 0:44: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:46: 'offset' : cannot specify on a variable declaration +ERROR: 0:47: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:48: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:50: 'align' : cannot specify on a variable declaration +ERROR: 0:51: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:52: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:54: 'layout' : matrix or packing qualifiers can only be used on a uniform or buffer +ERROR: 0:55: 'layout' : cannot specify packing on a variable declaration +ERROR: 0:57: 'align' : must be a power of 2 +ERROR: 0:58: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:62: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:63: 'offset/align' : can only be used with std140 or std430 layout packing +ERROR: 0:62: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:63: 'layout' : offset/align can only be used on a uniform or buffer +ERROR: 0:84: 'align' : must be a power of 2 +ERROR: 0:83: 'offset' : cannot lie in previous members +ERROR: 0:85: 'offset' : must be a multiple of the member's alignment +ERROR: 0:103: 'align' : must be a power of 2 +ERROR: 0:105: 'align' : must be a power of 2 +ERROR: 0:102: 'offset' : cannot lie in previous members +ERROR: 0:104: 'offset' : must be a multiple of the member's alignment +ERROR: 49 compilation errors. No code generated. + + +Shader version: 440 +ERROR: node is still EOpNull! +0:144 Function Definition: interp( ( global void) +0:144 Function Parameters: +0:146 Sequence +0:146 interpolateAtCentroid ( global 2-component vector of float) +0:146 vector swizzle ( temp 2-component vector of float) +0:146 direct index ( smooth sample temp 3-component vector of float) +0:146 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:146 Constant: +0:146 2 (const int) +0:146 Sequence +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 1 (const int) +0:147 interpolateAtSample ( global float) +0:147 direct index ( temp float) +0:147 direct index ( smooth sample temp 3-component vector of float) +0:147 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) +0:147 Constant: +0:147 2 (const int) +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 2 (const int) +0:150 Function Definition: layer( ( global int) +0:150 Function Parameters: +0:152 Sequence +0:152 Branch: Return with expression +0:152 'gl_Layer' ( flat in int Layer) +0:? Linker Objects +0:? 'a' (layout( location=4 component=2) smooth in 2-component vector of float) +0:? 'b' (layout( location=4 component=1) smooth in float) +0:? 'h' (layout( location=4 component=2) smooth in 2-component vector of float) +0:? 'c' (layout( location=3 component=2) smooth in 3-component vector of float) +0:? 'e' (layout( location=20 component=0) smooth in 6-element array of 3-component vector of float) +0:? 'f' (layout( location=20 component=3) smooth in 6-element array of float) +0:? 'be' (layout( location=30 component=3) out int) +0:? 'bf' (layout( location=30 component=0) out 3-component vector of float) +0:? 'inst1' (layout( column_major shared offset=12) uniform block{layout( column_major shared) uniform int a}) +0:? 'inst2' (layout( offset=12) in block{ in int a}) +0:? 'inst3' (layout( offset=12) out block{ out int a}) +0:? 'inst4' (layout( column_major std140 align=16) uniform block{layout( column_major std140 offset=0 align=16) uniform int a}) +0:? 'inst8' (layout( column_major shared align=16) uniform block{layout( column_major shared) uniform int a}) +0:? 'inst5' (layout( align=16) in block{ in int a}) +0:? 'inst6' (layout( align=16) out block{ out int a}) +0:? 'v1' (layout( offset=12) uniform 4-component vector of float) +0:? 'v2' (layout( offset=12) smooth in 4-component vector of float) +0:? 'v3' (layout( offset=12) out 4-component vector of float) +0:? 'v4' (layout( align=16) uniform 4-component vector of float) +0:? 'v5' (layout( align=16) smooth in 4-component vector of float) +0:? 'v6' (layout( align=16) out 4-component vector of float) +0:? 'v7' (layout( std140) uniform 4-component vector of float) +0:? 'inst7' (layout( column_major shared) uniform block{layout( column_major shared offset=12 align=4) uniform float f}) +0:? 'inst10' ( in block{layout( offset=12) in float f, layout( align=4) in float g}) +0:? 'inst9' (layout( column_major std430 align=32) uniform block{layout( column_major std430 align=32) uniform float e, layout( column_major std430 offset=12 align=4) uniform float f, layout( column_major std430 offset=20 align=32) uniform float g, layout( column_major std430 align=32) uniform float h}) +0:? 'inst11' (layout( column_major std430) uniform block{layout( column_major std430 offset=12 align=4) uniform float f, layout( column_major std430) uniform float g}) +0:? 'specExampleErrors' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b, layout( column_major std140 offset=48) uniform 2-component vector of float c, layout( column_major std140 offset=56) uniform double g, layout( column_major std140 offset=72) uniform double h}) +0:? 'specExample' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b, layout( column_major std140 offset=48) uniform 2-component vector of float d, layout( column_major std140 offset=64 align=16) uniform float e, layout( column_major std140 offset=72 align=2) uniform double f, layout( column_major std140 offset=80) uniform float h, layout( column_major std140 offset=128 align=64) uniform 3-component vector of double i, layout( column_major std140 offset=168 align=8) uniform float j}) +0:? 'specExampleErrors430' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float a, layout( column_major std430 offset=32) buffer 3-component vector of float b, layout( column_major std430 offset=48) buffer 2-component vector of float c, layout( column_major std430 offset=56) buffer double g, layout( column_major std430 offset=72) buffer double h, layout( column_major std430 offset=80) buffer double i}) +0:? 'specExample430' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float a, layout( column_major std430 offset=32) buffer 3-component vector of float b, layout( column_major std430 offset=48) buffer 2-component vector of float d, layout( column_major std430 offset=64 align=16) buffer float e, layout( column_major std430 offset=72 align=2) buffer double f, layout( column_major std430 offset=80) buffer float h, layout( column_major std430 offset=128 align=64) buffer 3-component vector of double i, layout( column_major std430 offset=168 align=8) buffer float j}) +0:? 'specExample4300' (layout( column_major std430 align=128) buffer block{layout( column_major std430 offset=0 align=128) buffer 4-component vector of float a, layout( column_major std430 offset=128 align=128) buffer 3-component vector of float b, layout( column_major std430 offset=256 align=128) buffer 2-component vector of float d, layout( column_major std430 offset=384 align=128) buffer float e, layout( column_major std430 offset=512 align=128) buffer double f, layout( column_major std430 offset=640 align=128) buffer float h, layout( column_major std430 offset=768 align=128) buffer 3-component vector of double i}) +0:? 'specExample4301' (layout( column_major std430 align=128) buffer block{layout( column_major std430 offset=0 align=128) buffer 4-component vector of float a, layout( column_major std430 offset=128 align=128) buffer 3-component vector of float b, layout( column_major std430 offset=256 align=128) buffer 2-component vector of float d, layout( column_major std430 offset=512 align=128) buffer float e, layout( column_major std430 offset=520 align=8) buffer double f, layout( column_major std430 offset=640 align=128) buffer float h, layout( column_major std430 offset=768 align=128) buffer 3-component vector of double i}) +0:? 'aconst' ( global 4-element array of int) +0:? 'bconst' ( global 64-element array of int) +0:? 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 440 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'a' (layout( location=4 component=2) smooth in 2-component vector of float) +0:? 'b' (layout( location=4 component=1) smooth in float) +0:? 'h' (layout( location=4 component=2) smooth in 2-component vector of float) +0:? 'c' (layout( location=3 component=2) smooth in 3-component vector of float) +0:? 'e' (layout( location=20 component=0) smooth in 6-element array of 3-component vector of float) +0:? 'f' (layout( location=20 component=3) smooth in 6-element array of float) +0:? 'be' (layout( location=30 component=3) out int) +0:? 'bf' (layout( location=30 component=0) out 3-component vector of float) +0:? 'inst1' (layout( column_major shared offset=12) uniform block{layout( column_major shared) uniform int a}) +0:? 'inst2' (layout( offset=12) in block{ in int a}) +0:? 'inst3' (layout( offset=12) out block{ out int a}) +0:? 'inst4' (layout( column_major std140 align=16) uniform block{layout( column_major std140 offset=0 align=16) uniform int a}) +0:? 'inst8' (layout( column_major shared align=16) uniform block{layout( column_major shared) uniform int a}) +0:? 'inst5' (layout( align=16) in block{ in int a}) +0:? 'inst6' (layout( align=16) out block{ out int a}) +0:? 'v1' (layout( offset=12) uniform 4-component vector of float) +0:? 'v2' (layout( offset=12) smooth in 4-component vector of float) +0:? 'v3' (layout( offset=12) out 4-component vector of float) +0:? 'v4' (layout( align=16) uniform 4-component vector of float) +0:? 'v5' (layout( align=16) smooth in 4-component vector of float) +0:? 'v6' (layout( align=16) out 4-component vector of float) +0:? 'v7' (layout( std140) uniform 4-component vector of float) +0:? 'inst7' (layout( column_major shared) uniform block{layout( column_major shared offset=12 align=4) uniform float f}) +0:? 'inst10' ( in block{layout( offset=12) in float f, layout( align=4) in float g}) +0:? 'inst9' (layout( column_major std430 align=32) uniform block{layout( column_major std430 align=32) uniform float e, layout( column_major std430 offset=12 align=4) uniform float f, layout( column_major std430 offset=20 align=32) uniform float g, layout( column_major std430 align=32) uniform float h}) +0:? 'inst11' (layout( column_major std430) uniform block{layout( column_major std430 offset=12 align=4) uniform float f, layout( column_major std430) uniform float g}) +0:? 'specExampleErrors' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b, layout( column_major std140 offset=48) uniform 2-component vector of float c, layout( column_major std140 offset=56) uniform double g, layout( column_major std140 offset=72) uniform double h}) +0:? 'specExample' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float a, layout( column_major std140 offset=32) uniform 3-component vector of float b, layout( column_major std140 offset=48) uniform 2-component vector of float d, layout( column_major std140 offset=64 align=16) uniform float e, layout( column_major std140 offset=72 align=2) uniform double f, layout( column_major std140 offset=80) uniform float h, layout( column_major std140 offset=128 align=64) uniform 3-component vector of double i, layout( column_major std140 offset=168 align=8) uniform float j}) +0:? 'specExampleErrors430' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float a, layout( column_major std430 offset=32) buffer 3-component vector of float b, layout( column_major std430 offset=48) buffer 2-component vector of float c, layout( column_major std430 offset=56) buffer double g, layout( column_major std430 offset=72) buffer double h, layout( column_major std430 offset=80) buffer double i}) +0:? 'specExample430' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float a, layout( column_major std430 offset=32) buffer 3-component vector of float b, layout( column_major std430 offset=48) buffer 2-component vector of float d, layout( column_major std430 offset=64 align=16) buffer float e, layout( column_major std430 offset=72 align=2) buffer double f, layout( column_major std430 offset=80) buffer float h, layout( column_major std430 offset=128 align=64) buffer 3-component vector of double i, layout( column_major std430 offset=168 align=8) buffer float j}) +0:? 'specExample4300' (layout( column_major std430 align=128) buffer block{layout( column_major std430 offset=0 align=128) buffer 4-component vector of float a, layout( column_major std430 offset=128 align=128) buffer 3-component vector of float b, layout( column_major std430 offset=256 align=128) buffer 2-component vector of float d, layout( column_major std430 offset=384 align=128) buffer float e, layout( column_major std430 offset=512 align=128) buffer double f, layout( column_major std430 offset=640 align=128) buffer float h, layout( column_major std430 offset=768 align=128) buffer 3-component vector of double i}) +0:? 'specExample4301' (layout( column_major std430 align=128) buffer block{layout( column_major std430 offset=0 align=128) buffer 4-component vector of float a, layout( column_major std430 offset=128 align=128) buffer 3-component vector of float b, layout( column_major std430 offset=256 align=128) buffer 2-component vector of float d, layout( column_major std430 offset=512 align=128) buffer float e, layout( column_major std430 offset=520 align=8) buffer double f, layout( column_major std430 offset=640 align=128) buffer float h, layout( column_major std430 offset=768 align=128) buffer 3-component vector of double i}) +0:? 'aconst' ( global 4-element array of int) +0:? 'bconst' ( global 64-element array of int) +0:? 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/440.vert.out b/deps/glslang/glslang/Test/baseResults/440.vert.out new file mode 100644 index 0000000000..41796cb52a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/440.vert.out @@ -0,0 +1,245 @@ +440.vert +ERROR: 0:8: 'component' : type overflows the available 4 components +ERROR: 0:15: 'component' : component is too large +ERROR: 0:23: 'location' : overlapping use of location 4 +ERROR: 0:26: 'location' : overlapping use of location 2 +ERROR: 0:31: 'location' : overlapping use of location 15 +ERROR: 0:32: 'location' : overlapping use of location 10 +ERROR: 0:37: 'location' : overlapping use of location 20 +ERROR: 0:39: 'component' : type overflows the available 4 components +ERROR: 0:40: 'component' : type overflows the available 4 components +ERROR: 0:42: 'component' : cannot apply to a matrix, structure, or block +ERROR: 0:43: 'component' : cannot apply to a matrix, structure, or block +ERROR: 0:44: 'component' : cannot apply to a matrix, structure, or block +ERROR: 0:46: 'component' : must specify 'location' to use 'component' +ERROR: 0:52: 'location' : overlapping use of location 40 +ERROR: 0:54: 'component' : type overflows the available 4 components +ERROR: 0:55: 'component' : type overflows the available 4 components +ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block +ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block +ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration +ERROR: 0:66: 'component' : doubles cannot start on an odd-numbered component +ERROR: 0:67: 'component' : type overflows the available 4 components +ERROR: 0:71: 'location' : overlapping use of location 55 +ERROR: 0:75: 'location' : overlapping use of location 57 +ERROR: 0:78: 'location' : overlapping use of location 59 +ERROR: 0:95: 'xfb layout qualifier' : can only be used on an output +ERROR: 0:101: 'xfb_offset' : cannot declare a default, use a full declaration +ERROR: 0:111: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:116: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:116: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3 +ERROR: 0:117: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2 +ERROR: 0:119: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2 +ERROR: 0:122: 'xfb_stride' : all stride settings must match for xfb buffer 15 +ERROR: 0:126: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1 +ERROR: 0:128: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:129: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:133: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:131: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:152: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0 +ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:158: 'xfb_offset' : must be a multiple of size of first component +ERROR: 0:159: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 +ERROR: 0:161: 'xfb_offset' : must be a multiple of size of first component +ERROR: 0:162: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 +ERROR: 0:166: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:169: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:169: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64 +ERROR: 0:171: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:178: 'xfb_offset' : overlapping offsets at offset 36 in buffer 3 +ERROR: 0:179: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:178: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3 +ERROR: 0:185: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:185: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:185: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:193: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) +ERROR: 0:194: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) +ERROR: 0:195: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) +ERROR: 0:196: 'glBaseInstanceARB' : undeclared identifier +ERROR: 57 compilation errors. No code generated. + + +Shader version: 440 +Requested GL_ARB_shader_draw_parameters +in xfb mode +ERROR: node is still EOpNull! +0:183 Function Definition: drawParamsBad( ( global int) +0:183 Function Parameters: +0:185 Sequence +0:185 Branch: Return with expression +0:185 add ( temp int) +0:185 add ( temp int) +0:185 'gl_BaseVertexARB' ( in int BaseVertex) +0:185 'gl_BaseInstanceARB' ( in int BaseInstance) +0:185 'gl_DrawIDARB' ( in int DrawId) +0:190 Function Definition: drawParams( ( global int) +0:190 Function Parameters: +0:192 Sequence +0:192 Branch: Return with expression +0:192 add ( temp int) +0:192 add ( temp int) +0:192 'gl_BaseVertexARB' ( in int BaseVertex) +0:192 'gl_BaseInstanceARB' ( in int BaseInstance) +0:192 'gl_DrawIDARB' ( in int DrawId) +0:193 move second child to first child ( temp int) +0:193 'gl_BaseVertexARB' ( in int BaseVertex) +0:193 Constant: +0:193 3 (const int) +0:194 move second child to first child ( temp int) +0:194 'gl_BaseInstanceARB' ( in int BaseInstance) +0:194 Constant: +0:194 3 (const int) +0:195 move second child to first child ( temp int) +0:195 'gl_DrawIDARB' ( in int DrawId) +0:195 Constant: +0:195 3 (const int) +0:196 'glBaseInstanceARB' ( temp float) +0:? Linker Objects +0:? 'a' (layout( location=2 component=2) in 2-component vector of float) +0:? 'b' (layout( location=2 component=1) in float) +0:? 'c' (layout( location=3 component=2) in 3-component vector of float) +0:? 'd' (layout( location=0 component=3) in 4-element array of float) +0:? 'e' (layout( location=4 component=0) in 5-element array of 3-component vector of float) +0:? 'f' (layout( location=4 component=3) in 5-element array of float) +0:? 'g' (layout( location=9) in 6-element array of float) +0:? 'h' (layout( location=4 component=2) in 2-component vector of float) +0:? 'i' (layout( location=3 component=2) smooth out 2-component vector of float) +0:? 'j' (layout( location=3 component=0) smooth out 2-component vector of float) +0:? 'k' (layout( location=4 component=2) smooth out 2-component vector of float) +0:? 'm' (layout( location=4 component=2) smooth out 2-component vector of float) +0:? 'n' (layout( location=2 component=2) smooth out 2-component vector of float) +0:? 'p' (layout( location=2 component=0) smooth out 3-component vector of float) +0:? 'q' (layout( location=10 component=3) smooth out 6-element array of float) +0:? 'r' (layout( location=10 component=0) smooth out 6-element array of 3-component vector of float) +0:? 's' (layout( location=15 component=3) smooth out float) +0:? 't' (layout( location=10 component=1) smooth out float) +0:? 'u' (layout( location=20 component=2) smooth out float) +0:? 'v' (layout( location=20 component=0) smooth out float) +0:? 'w' (layout( location=20 component=3) smooth out float) +0:? 'x' (layout( location=20 component=1) smooth out 2-component vector of float) +0:? 'y' (layout( location=30 component=3) smooth out 2-component vector of float) +0:? 'z' (layout( location=31 component=1) smooth out 4-component vector of float) +0:? 'ba' (layout( location=32 component=1) smooth out 4X4 matrix of float) +0:? 'Ss' (layout( location=33 component=1) smooth out structure{ global int a}) +0:? 'bb' (layout( location=34 component=1) out block{ out int a}) +0:? 'bc' (layout( location=4095 component=1) smooth out float) +0:? 'bd' ( out block{layout( location=40 component=2) out float u, layout( location=40 component=0) out float v, layout( location=40 component=3) out float w, layout( location=40 component=1) out 2-component vector of float x, layout( location=41 component=3) out 2-component vector of float y, layout( location=42 component=1) out 4-component vector of float z, layout( location=42 component=1) out 4X4 matrix of float ba, layout( location=43 component=1) out structure{ global int a} Ss}) +0:? 'be' (layout( location=50 component=3) smooth out int) +0:? 'bf' (layout( location=50 component=0) smooth out 3-component vector of float) +0:? 'dfo' (layout( location=51 component=1) smooth out double) +0:? 'dvo' (layout( location=52 component=2) smooth out 2-component vector of double) +0:? 'dfo2' (layout( location=53) smooth out double) +0:? 'ffv2' (layout( location=53 component=2) smooth out 2-component vector of float) +0:? 'dvec4out' (layout( location=54) smooth out 4-component vector of double) +0:? 'overf' (layout( location=55) smooth out float) +0:? 'df2o' (layout( location=56 component=1) smooth out 2-component vector of float) +0:? 'sf2o' (layout( location=56 component=3) smooth out float) +0:? 'dv3o' (layout( location=57 component=2) smooth out 2-component vector of float) +0:? 'sf4o' (layout( location=57 component=3) smooth out float) +0:? 'dv3o2' (layout( location=58) flat out 3-component vector of double) +0:? 'dfo3' (layout( location=59 component=2) flat out double) +0:? 'dfo4' (layout( location=59 component=0) flat out double) +0:? 'bbinst1' ( out block{ out 4-component vector of float bbv}) +0:? 'bbinst2' ( out block{layout( xfb_buffer=0 xfb_offset=64) out 4-component vector of float bbv}) +0:? 'bbinst3' ( out block{layout( xfb_buffer=3 xfb_offset=16) out 4-component vector of float bbv}) +0:? 'ubbinst3' (layout( column_major shared) uniform block{layout( column_major shared xfb_offset=16) uniform 4-component vector of float bbv}) +0:? 'bg' (layout( xfb_buffer=2 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bh' (layout( xfb_buffer=3 xfb_offset=32 xfb_stride=64) smooth out 4-component vector of float) +0:? 'bbinst4' (layout( xfb_stride=80) out block{layout( xfb_buffer=2 xfb_offset=16) out 4-component vector of float bbv1, layout( xfb_buffer=2 xfb_offset=32) out 4-component vector of float bbv2}) +0:? 'bbinst5' ( out block{layout( xfb_buffer=3 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=3 xfb_offset=48 xfb_stride=64) out 4-component vector of float bbv2, out 4-component vector of float bbv3}) +0:? 'bbinst6' ( out block{layout( xfb_buffer=2 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=3 xfb_offset=32 xfb_stride=64) out 4-component vector of float bbv2, layout( xfb_buffer=2 xfb_offset=0) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout( xfb_buffer=2 xfb_offset=24) out float bbf6}) +0:? 'bj' (layout( xfb_buffer=1 xfb_offset=4) smooth out float) +0:? 'bk' (layout( xfb_buffer=1 xfb_offset=0) smooth out 2-component vector of int) +0:? 'bl' (layout( xfb_stride=48) smooth out float) +0:? 'bbinst7' (layout( xfb_stride=48) out block{layout( xfb_stride=64) out 4-component vector of float bbv1, layout( xfb_stride=32) out 4-component vector of float bbv2}) +0:? 'bbinst8' (layout( xfb_stride=92) out block{layout( xfb_buffer=0 xfb_offset=0) out bool b, layout( xfb_buffer=0 xfb_offset=8) out structure{ global bool b, global structure{ global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout( xfb_buffer=0 xfb_offset=48) out int i, layout( xfb_buffer=0 xfb_offset=52) out 3X3 matrix of float m3, layout( xfb_buffer=0 xfb_offset=88) out float f, layout( xfb_buffer=0 xfb_offset=92) out float g}) +0:? 'bbinst9' ( out block{layout( xfb_buffer=4 xfb_offset=1) out bool b, layout( xfb_buffer=4 xfb_offset=12) out structure{ global bool b, global structure{ global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout( xfb_buffer=4 xfb_offset=52) out 3X3 matrix of float m3, layout( xfb_buffer=4 xfb_offset=90) out int i, layout( xfb_buffer=4 xfb_offset=98) out double d, layout( xfb_buffer=4 xfb_offset=108) out structure{ global int a} s}) +0:? 'bm' (layout( xfb_buffer=5 xfb_offset=0) smooth out float) +0:? 'bbinst10' ( out block{layout( xfb_buffer=7 xfb_offset=0) out 4X4 matrix of double m1, layout( xfb_buffer=7 xfb_offset=128) out 4X4 matrix of double m2, layout( xfb_buffer=7 xfb_offset=256) out float f}) +0:? 'anon@0' ( out block{layout( xfb_buffer=3 xfb_offset=36) gl_Position 4-component vector of float Position gl_Position, layout( xfb_buffer=3 xfb_offset=32) gl_PointSize float PointSize gl_PointSize, }) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point +ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries: +ERROR: xfb_buffer 0, xfb_stride 92, minimum stride needed: 96 +ERROR: Linking vertex stage: xfb_stride must be multiple of 8 for buffer holding a double: +ERROR: xfb_buffer 0, xfb_stride 92 +ERROR: Linking vertex stage: xfb_stride must be multiple of 4: +ERROR: xfb_buffer 5, xfb_stride 6 +ERROR: Linking vertex stage: xfb_stride is too large: +ERROR: xfb_buffer 7, components (1/4 stride) needed are 66, gl_MaxTransformFeedbackInterleavedComponents is 64 + +Shader version: 440 +Requested GL_ARB_shader_draw_parameters +in xfb mode +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'a' (layout( location=2 component=2) in 2-component vector of float) +0:? 'b' (layout( location=2 component=1) in float) +0:? 'c' (layout( location=3 component=2) in 3-component vector of float) +0:? 'd' (layout( location=0 component=3) in 4-element array of float) +0:? 'e' (layout( location=4 component=0) in 5-element array of 3-component vector of float) +0:? 'f' (layout( location=4 component=3) in 5-element array of float) +0:? 'g' (layout( location=9) in 6-element array of float) +0:? 'h' (layout( location=4 component=2) in 2-component vector of float) +0:? 'i' (layout( location=3 component=2) smooth out 2-component vector of float) +0:? 'j' (layout( location=3 component=0) smooth out 2-component vector of float) +0:? 'k' (layout( location=4 component=2) smooth out 2-component vector of float) +0:? 'm' (layout( location=4 component=2) smooth out 2-component vector of float) +0:? 'n' (layout( location=2 component=2) smooth out 2-component vector of float) +0:? 'p' (layout( location=2 component=0) smooth out 3-component vector of float) +0:? 'q' (layout( location=10 component=3) smooth out 6-element array of float) +0:? 'r' (layout( location=10 component=0) smooth out 6-element array of 3-component vector of float) +0:? 's' (layout( location=15 component=3) smooth out float) +0:? 't' (layout( location=10 component=1) smooth out float) +0:? 'u' (layout( location=20 component=2) smooth out float) +0:? 'v' (layout( location=20 component=0) smooth out float) +0:? 'w' (layout( location=20 component=3) smooth out float) +0:? 'x' (layout( location=20 component=1) smooth out 2-component vector of float) +0:? 'y' (layout( location=30 component=3) smooth out 2-component vector of float) +0:? 'z' (layout( location=31 component=1) smooth out 4-component vector of float) +0:? 'ba' (layout( location=32 component=1) smooth out 4X4 matrix of float) +0:? 'Ss' (layout( location=33 component=1) smooth out structure{ global int a}) +0:? 'bb' (layout( location=34 component=1) out block{ out int a}) +0:? 'bc' (layout( location=4095 component=1) smooth out float) +0:? 'bd' ( out block{layout( location=40 component=2) out float u, layout( location=40 component=0) out float v, layout( location=40 component=3) out float w, layout( location=40 component=1) out 2-component vector of float x, layout( location=41 component=3) out 2-component vector of float y, layout( location=42 component=1) out 4-component vector of float z, layout( location=42 component=1) out 4X4 matrix of float ba, layout( location=43 component=1) out structure{ global int a} Ss}) +0:? 'be' (layout( location=50 component=3) smooth out int) +0:? 'bf' (layout( location=50 component=0) smooth out 3-component vector of float) +0:? 'dfo' (layout( location=51 component=1) smooth out double) +0:? 'dvo' (layout( location=52 component=2) smooth out 2-component vector of double) +0:? 'dfo2' (layout( location=53) smooth out double) +0:? 'ffv2' (layout( location=53 component=2) smooth out 2-component vector of float) +0:? 'dvec4out' (layout( location=54) smooth out 4-component vector of double) +0:? 'overf' (layout( location=55) smooth out float) +0:? 'df2o' (layout( location=56 component=1) smooth out 2-component vector of float) +0:? 'sf2o' (layout( location=56 component=3) smooth out float) +0:? 'dv3o' (layout( location=57 component=2) smooth out 2-component vector of float) +0:? 'sf4o' (layout( location=57 component=3) smooth out float) +0:? 'dv3o2' (layout( location=58) flat out 3-component vector of double) +0:? 'dfo3' (layout( location=59 component=2) flat out double) +0:? 'dfo4' (layout( location=59 component=0) flat out double) +0:? 'bbinst1' ( out block{ out 4-component vector of float bbv}) +0:? 'bbinst2' ( out block{layout( xfb_buffer=0 xfb_offset=64) out 4-component vector of float bbv}) +0:? 'bbinst3' ( out block{layout( xfb_buffer=3 xfb_offset=16) out 4-component vector of float bbv}) +0:? 'ubbinst3' (layout( column_major shared) uniform block{layout( column_major shared xfb_offset=16) uniform 4-component vector of float bbv}) +0:? 'bg' (layout( xfb_buffer=2 xfb_offset=48 xfb_stride=80) smooth out 4-component vector of float) +0:? 'bh' (layout( xfb_buffer=3 xfb_offset=32 xfb_stride=64) smooth out 4-component vector of float) +0:? 'bbinst4' (layout( xfb_stride=80) out block{layout( xfb_buffer=2 xfb_offset=16) out 4-component vector of float bbv1, layout( xfb_buffer=2 xfb_offset=32) out 4-component vector of float bbv2}) +0:? 'bbinst5' ( out block{layout( xfb_buffer=3 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=3 xfb_offset=48 xfb_stride=64) out 4-component vector of float bbv2, out 4-component vector of float bbv3}) +0:? 'bbinst6' ( out block{layout( xfb_buffer=2 xfb_offset=0) out 4-component vector of float bbv1, layout( xfb_buffer=3 xfb_offset=32 xfb_stride=64) out 4-component vector of float bbv2, layout( xfb_buffer=2 xfb_offset=0) out 4-component vector of float bbv3, out 4-component vector of float bbv5, layout( xfb_buffer=2 xfb_offset=24) out float bbf6}) +0:? 'bj' (layout( xfb_buffer=1 xfb_offset=4) smooth out float) +0:? 'bk' (layout( xfb_buffer=1 xfb_offset=0) smooth out 2-component vector of int) +0:? 'bl' (layout( xfb_stride=48) smooth out float) +0:? 'bbinst7' (layout( xfb_stride=48) out block{layout( xfb_stride=64) out 4-component vector of float bbv1, layout( xfb_stride=32) out 4-component vector of float bbv2}) +0:? 'bbinst8' (layout( xfb_stride=92) out block{layout( xfb_buffer=0 xfb_offset=0) out bool b, layout( xfb_buffer=0 xfb_offset=8) out structure{ global bool b, global structure{ global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout( xfb_buffer=0 xfb_offset=48) out int i, layout( xfb_buffer=0 xfb_offset=52) out 3X3 matrix of float m3, layout( xfb_buffer=0 xfb_offset=88) out float f, layout( xfb_buffer=0 xfb_offset=92) out float g}) +0:? 'bbinst9' ( out block{layout( xfb_buffer=4 xfb_offset=1) out bool b, layout( xfb_buffer=4 xfb_offset=12) out structure{ global bool b, global structure{ global int i, global double d, global float f} s, global 2-component vector of float v2} t, layout( xfb_buffer=4 xfb_offset=52) out 3X3 matrix of float m3, layout( xfb_buffer=4 xfb_offset=90) out int i, layout( xfb_buffer=4 xfb_offset=98) out double d, layout( xfb_buffer=4 xfb_offset=108) out structure{ global int a} s}) +0:? 'bm' (layout( xfb_buffer=5 xfb_offset=0) smooth out float) +0:? 'bbinst10' ( out block{layout( xfb_buffer=7 xfb_offset=0) out 4X4 matrix of double m1, layout( xfb_buffer=7 xfb_offset=128) out 4X4 matrix of double m2, layout( xfb_buffer=7 xfb_offset=256) out float f}) +0:? 'anon@0' ( out block{layout( xfb_buffer=3 xfb_offset=36) gl_Position 4-component vector of float Position gl_Position, layout( xfb_buffer=3 xfb_offset=32) gl_PointSize float PointSize gl_PointSize, }) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/450.comp.out b/deps/glslang/glslang/Test/baseResults/450.comp.out new file mode 100644 index 0000000000..4ae77ccaa0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/450.comp.out @@ -0,0 +1,24 @@ +450.comp +ERROR: 0:2: 'local_size_x' : must be at least 1 +ERROR: 0:5: 'shared' : not allowed in nested scope +ERROR: 2 compilation errors. No code generated. + + +Shader version: 450 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/450.frag.out b/deps/glslang/glslang/Test/baseResults/450.frag.out new file mode 100644 index 0000000000..9cbb4cbd08 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/450.frag.out @@ -0,0 +1,285 @@ +450.frag +ERROR: 0:63: 'location' : cannot use in a block array where new locations are needed for each block element +ERROR: 0:68: 'early_fragment_tests' : can only apply to a standalone qualifier +ERROR: 2 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 Sequence +0:10 move second child to first child ( temp 2-component vector of float) +0:10 'v2' ( temp 2-component vector of float) +0:10 dPdxFine ( global 2-component vector of float) +0:10 'in2' ( smooth in 2-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp 3-component vector of float) +0:11 'v3' ( temp 3-component vector of float) +0:11 dPdyCoarse ( global 3-component vector of float) +0:11 'in3' ( smooth in 3-component vector of float) +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'v4' ( temp 4-component vector of float) +0:12 fwidth ( global 4-component vector of float) +0:12 'in4' ( smooth in 4-component vector of float) +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'v4' ( temp 4-component vector of float) +0:13 dPdyFine ( global 4-component vector of float) +0:13 'in4' ( smooth in 4-component vector of float) +0:14 move second child to first child ( temp 3-component vector of float) +0:14 'v3' ( temp 3-component vector of float) +0:14 dPdyFine ( global 3-component vector of float) +0:14 'in3' ( smooth in 3-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'f' ( temp float) +0:15 add ( temp float) +0:15 add ( temp float) +0:15 dPdx ( global float) +0:15 'in1' ( smooth in float) +0:15 dPdxFine ( global float) +0:15 'in1' ( smooth in float) +0:15 dPdxCoarse ( global float) +0:15 'in1' ( smooth in float) +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'v4' ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 fwidthCoarse ( global 4-component vector of float) +0:16 'in4' ( smooth in 4-component vector of float) +0:16 fwidthFine ( global 4-component vector of float) +0:16 'in4' ( smooth in 4-component vector of float) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'cull' ( temp float) +0:18 direct index ( smooth temp float CullDistance) +0:18 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'consts' ( temp float) +0:19 Constant: +0:19 20.000000 +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 'gl_HelperInvocation' ( in bool HelperInvocation) +0:21 true case +0:22 Pre-Increment ( temp 4-component vector of float) +0:22 'v4' ( temp 4-component vector of float) +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'sum' ( temp int) +0:24 Constant: +0:24 32 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 2-component vector of bool) +0:32 'b2' ( temp 2-component vector of bool) +0:32 mix ( global 2-component vector of bool) +0:32 Construct bvec2 ( temp 2-component vector of bool) +0:32 'b1' ( temp bool) +0:32 Construct bvec2 ( temp 2-component vector of bool) +0:32 'b3' ( temp bool) +0:32 Construct bvec2 ( temp 2-component vector of bool) +0:32 'b' ( temp bool) +0:33 Sequence +0:33 move second child to first child ( temp uint) +0:33 'um' ( temp uint) +0:33 mix ( global uint) +0:33 'uin' ( temp uint) +0:33 'uin' ( temp uint) +0:33 'b' ( temp bool) +0:34 Sequence +0:34 move second child to first child ( temp 3-component vector of int) +0:34 'im3' ( temp 3-component vector of int) +0:34 mix ( global 3-component vector of int) +0:34 Construct ivec3 ( temp 3-component vector of int) +0:34 Convert uint to int ( temp int) +0:34 'uin' ( temp uint) +0:34 Construct ivec3 ( temp 3-component vector of int) +0:34 Convert uint to int ( temp int) +0:34 'uin' ( temp uint) +0:34 Construct bvec3 ( temp 3-component vector of bool) +0:34 'b' ( temp bool) +0:42 Function Definition: foo( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 Sequence +0:44 move second child to first child ( temp int) +0:44 's' ( temp int) +0:44 textureSamples ( global int) +0:44 's2dms' ( uniform sampler2DMS) +0:45 add second child into first child ( temp int) +0:45 's' ( temp int) +0:45 textureSamples ( global int) +0:45 'us2dmsa' ( uniform usampler2DMSArray) +0:46 add second child into first child ( temp int) +0:46 's' ( temp int) +0:46 imageQuerySamples ( global int) +0:46 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:47 add second child into first child ( temp int) +0:47 's' ( temp int) +0:47 imageQuerySamples ( global int) +0:47 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'f' ( temp float) +0:48 imageAtomicExchange ( global float) +0:48 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:48 Convert float to int ( temp 3-component vector of int) +0:48 'in3' ( smooth in 3-component vector of float) +0:48 Constant: +0:48 2 (const int) +0:48 Constant: +0:48 4.500000 +0:53 Function Definition: cull(i1; ( global float) +0:53 Function Parameters: +0:53 'i' ( in int) +0:55 Sequence +0:55 Branch: Return with expression +0:55 Test condition and select ( temp float) +0:55 Condition +0:55 Compare Greater Than or Equal ( temp bool) +0:55 'i' ( in int) +0:55 Constant: +0:55 6 (const int) +0:55 true case +0:55 direct index ( smooth temp float CullDistance) +0:55 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) +0:55 Constant: +0:55 5 (const int) +0:55 false case +0:55 indirect index ( smooth temp float CullDistance) +0:55 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) +0:55 'i' ( in int) +0:? Linker Objects +0:? 'in1' ( smooth in float) +0:? 'in2' ( smooth in 2-component vector of float) +0:? 'in3' ( smooth in 3-component vector of float) +0:? 'in4' ( smooth in 4-component vector of float) +0:? 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) +0:? 's2dms' ( uniform sampler2DMS) +0:? 'us2dmsa' ( uniform usampler2DMSArray) +0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:? 'bInst1' ( in block{layout( location=6) in float f, layout( location=7) in float g, layout( location=8) in 4X4 matrix of float m}) +0:? 'bInst2' ( in 3-element array of block{layout( location=12) in float f, layout( location=13) in float g}) +0:? 'f' ( smooth in float) + + +Linked fragment stage: + + +Shader version: 450 +ERROR: node is still EOpNull! +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 Sequence +0:10 move second child to first child ( temp 2-component vector of float) +0:10 'v2' ( temp 2-component vector of float) +0:10 dPdxFine ( global 2-component vector of float) +0:10 'in2' ( smooth in 2-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp 3-component vector of float) +0:11 'v3' ( temp 3-component vector of float) +0:11 dPdyCoarse ( global 3-component vector of float) +0:11 'in3' ( smooth in 3-component vector of float) +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'v4' ( temp 4-component vector of float) +0:12 fwidth ( global 4-component vector of float) +0:12 'in4' ( smooth in 4-component vector of float) +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'v4' ( temp 4-component vector of float) +0:13 dPdyFine ( global 4-component vector of float) +0:13 'in4' ( smooth in 4-component vector of float) +0:14 move second child to first child ( temp 3-component vector of float) +0:14 'v3' ( temp 3-component vector of float) +0:14 dPdyFine ( global 3-component vector of float) +0:14 'in3' ( smooth in 3-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'f' ( temp float) +0:15 add ( temp float) +0:15 add ( temp float) +0:15 dPdx ( global float) +0:15 'in1' ( smooth in float) +0:15 dPdxFine ( global float) +0:15 'in1' ( smooth in float) +0:15 dPdxCoarse ( global float) +0:15 'in1' ( smooth in float) +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'v4' ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 fwidthCoarse ( global 4-component vector of float) +0:16 'in4' ( smooth in 4-component vector of float) +0:16 fwidthFine ( global 4-component vector of float) +0:16 'in4' ( smooth in 4-component vector of float) +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'cull' ( temp float) +0:18 direct index ( smooth temp float CullDistance) +0:18 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'consts' ( temp float) +0:19 Constant: +0:19 20.000000 +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 'gl_HelperInvocation' ( in bool HelperInvocation) +0:21 true case +0:22 Pre-Increment ( temp 4-component vector of float) +0:22 'v4' ( temp 4-component vector of float) +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'sum' ( temp int) +0:24 Constant: +0:24 32 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 2-component vector of bool) +0:32 'b2' ( temp 2-component vector of bool) +0:32 mix ( global 2-component vector of bool) +0:32 Construct bvec2 ( temp 2-component vector of bool) +0:32 'b1' ( temp bool) +0:32 Construct bvec2 ( temp 2-component vector of bool) +0:32 'b3' ( temp bool) +0:32 Construct bvec2 ( temp 2-component vector of bool) +0:32 'b' ( temp bool) +0:33 Sequence +0:33 move second child to first child ( temp uint) +0:33 'um' ( temp uint) +0:33 mix ( global uint) +0:33 'uin' ( temp uint) +0:33 'uin' ( temp uint) +0:33 'b' ( temp bool) +0:34 Sequence +0:34 move second child to first child ( temp 3-component vector of int) +0:34 'im3' ( temp 3-component vector of int) +0:34 mix ( global 3-component vector of int) +0:34 Construct ivec3 ( temp 3-component vector of int) +0:34 Convert uint to int ( temp int) +0:34 'uin' ( temp uint) +0:34 Construct ivec3 ( temp 3-component vector of int) +0:34 Convert uint to int ( temp int) +0:34 'uin' ( temp uint) +0:34 Construct bvec3 ( temp 3-component vector of bool) +0:34 'b' ( temp bool) +0:? Linker Objects +0:? 'in1' ( smooth in float) +0:? 'in2' ( smooth in 2-component vector of float) +0:? 'in3' ( smooth in 3-component vector of float) +0:? 'in4' ( smooth in 4-component vector of float) +0:? 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) +0:? 's2dms' ( uniform sampler2DMS) +0:? 'us2dmsa' ( uniform usampler2DMSArray) +0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS) +0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) +0:? 'bInst1' ( in block{layout( location=6) in float f, layout( location=7) in float g, layout( location=8) in 4X4 matrix of float m}) +0:? 'bInst2' ( in 3-element array of block{layout( location=12) in float f, layout( location=13) in float g}) +0:? 'f' ( smooth in float) + diff --git a/deps/glslang/glslang/Test/baseResults/450.geom.out b/deps/glslang/glslang/Test/baseResults/450.geom.out new file mode 100644 index 0000000000..e75bf939ad --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/450.geom.out @@ -0,0 +1,85 @@ +450.geom +ERROR: 0:15: '[' : array index out of range '3' +ERROR: 0:15: 'gl_Position' : no such field in structure +ERROR: 0:19: 'points' : can only apply to a standalone qualifier +ERROR: 3 compilation errors. No code generated. + + +Shader version: 450 +invocations = -1 +max_vertices = -1 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:15 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:15 Constant: +0:15 3 (const int) +0:16 move second child to first child ( temp float) +0:16 direct index (layout( stream=0) temp float CullDistance) +0:16 gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance) +0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) +0:16 Constant: +0:16 3 (const uint) +0:16 Constant: +0:16 2 (const int) +0:16 direct index ( temp float CullDistance) +0:16 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) +0:16 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:16 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 2 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) +0:? 'f' ( in 3-element array of float) + + +Linked geometry stage: + +ERROR: Linking geometry stage: At least one shader must specify an output layout primitive +ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) + +Shader version: 450 +invocations = 1 +max_vertices = -1 +input primitive = triangles +output primitive = none +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:15 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:15 Constant: +0:15 3 (const int) +0:16 move second child to first child ( temp float) +0:16 direct index (layout( stream=0) temp float CullDistance) +0:16 gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance) +0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) +0:16 Constant: +0:16 3 (const uint) +0:16 Constant: +0:16 2 (const int) +0:16 direct index ( temp float CullDistance) +0:16 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) +0:16 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:16 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 2 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) +0:? 'f' ( in 3-element array of float) + diff --git a/deps/glslang/glslang/Test/baseResults/450.tesc.out b/deps/glslang/glslang/Test/baseResults/450.tesc.out new file mode 100644 index 0000000000..b3f4e252d4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/450.tesc.out @@ -0,0 +1,74 @@ +450.tesc +ERROR: 0:20: 'location' : cannot use in a block array where new locations are needed for each block element +ERROR: 1 compilation errors. No code generated. + + +Shader version: 450 +vertices = -1 +ERROR: node is still EOpNull! +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) +0:13 indirect index ( temp block{ out 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_out' ( out 4-element array of block{ out 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_InvocationID' ( in int InvocationID) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) +0:13 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:? 'gl_out' ( out 4-element array of block{ out 3-element array of float CullDistance gl_CullDistance}) +0:? 'bInst1' ( out 2-element array of block{layout( location=4) out float f, layout( location=5) out float g}) +0:? 'bInst2' ( out 2-element array of 3-element array of block{layout( location=6) out float f, layout( location=7) out float g}) + + +Linked tessellation control stage: + +ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...) + +Shader version: 450 +vertices = -1 +ERROR: node is still EOpNull! +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) +0:13 indirect index ( temp block{ out 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_out' ( out 4-element array of block{ out 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_InvocationID' ( in int InvocationID) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) +0:13 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:? 'gl_out' ( out 4-element array of block{ out 3-element array of float CullDistance gl_CullDistance}) +0:? 'bInst1' ( out 2-element array of block{layout( location=4) out float f, layout( location=5) out float g}) +0:? 'bInst2' ( out 2-element array of 3-element array of block{layout( location=6) out float f, layout( location=7) out float g}) + diff --git a/deps/glslang/glslang/Test/baseResults/450.tese.out b/deps/glslang/glslang/Test/baseResults/450.tese.out new file mode 100644 index 0000000000..796d6f1604 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/450.tese.out @@ -0,0 +1,87 @@ +450.tese +ERROR: 0:16: 'equal_spacing' : can only apply to a standalone qualifier +ERROR: 0:17: 'fractional_even_spacing' : can only apply to a standalone qualifier +ERROR: 0:18: 'fractional_odd_spacing' : can only apply to a standalone qualifier +ERROR: 0:19: 'cw' : can only apply to a standalone qualifier +ERROR: 0:20: 'ccw' : can only apply to a standalone qualifier +ERROR: 0:21: 'point_mode' : can only apply to a standalone qualifier +ERROR: 6 compilation errors. No code generated. + + +Shader version: 450 +input primitive = none +vertex spacing = none +triangle order = none +ERROR: node is still EOpNull! +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) +0:13 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:13 Constant: +0:13 3 (const uint) +0:13 Constant: +0:13 2 (const int) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) +0:13 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:? 'f1' ( in 32-element array of float) +0:? 'f2' ( in 32-element array of float) +0:? 'f3' ( in 32-element array of float) +0:? 'f4' ( in 32-element array of float) +0:? 'f5' ( in 32-element array of float) +0:? 'f6' ( in 32-element array of float) + + +Linked tessellation evaluation stage: + +ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive + +Shader version: 450 +input primitive = none +vertex spacing = equal_spacing +triangle order = ccw +ERROR: node is still EOpNull! +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) +0:13 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:13 Constant: +0:13 3 (const uint) +0:13 Constant: +0:13 2 (const int) +0:13 direct index ( temp float CullDistance) +0:13 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) +0:13 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:? Linker Objects +0:? 'gl_in' ( in 32-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) +0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:? 'f1' ( in 32-element array of float) +0:? 'f2' ( in 32-element array of float) +0:? 'f3' ( in 32-element array of float) +0:? 'f4' ( in 32-element array of float) +0:? 'f5' ( in 32-element array of float) +0:? 'f6' ( in 32-element array of float) + diff --git a/deps/glslang/glslang/Test/baseResults/450.vert.out b/deps/glslang/glslang/Test/baseResults/450.vert.out new file mode 100644 index 0000000000..0f5f23136e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/450.vert.out @@ -0,0 +1,123 @@ +450.vert +ERROR: 0:12: 'out' : cannot be bool +ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo +ERROR: 0:30: '::' : not supported +ERROR: 0:31: 'atomicCounterAdd' : no matching overloaded function found +ERROR: 0:32: 'atomicCounterSubtract' : no matching overloaded function found +ERROR: 0:33: 'atomicCounterMin' : no matching overloaded function found +ERROR: 0:34: 'atomicCounterMax' : no matching overloaded function found +ERROR: 0:35: 'atomicCounterAnd' : no matching overloaded function found +ERROR: 0:36: 'atomicCounterOr' : no matching overloaded function found +ERROR: 0:37: 'atomicCounterXor' : no matching overloaded function found +ERROR: 0:38: 'atomicCounterExchange' : no matching overloaded function found +ERROR: 0:39: 'atomicCounterCompSwap' : no matching overloaded function found +ERROR: 0:41: 'gl_BaseVertex' : undeclared identifier +ERROR: 0:41: 'gl_BaseInstance' : undeclared identifier +ERROR: 0:41: 'gl_DrawID' : undeclared identifier +ERROR: 0:41: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:44: 'anyInvocation' : no matching overloaded function found +ERROR: 0:45: 'allInvocations' : no matching overloaded function found +ERROR: 0:46: 'allInvocationsEqual' : no matching overloaded function found +ERROR: 0:48: 'extraneous semicolon' : not supported for this version or the enabled extensions +ERROR: 0:50: 'location' : cannot apply to uniform or buffer block +ERROR: 0:54: 'location' : cannot apply to uniform or buffer block +ERROR: 22 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float CullDistance) +0:9 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) +0:9 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:9 Constant: +0:9 10 (const uint) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 4.500000 +0:28 Function Definition: foo( ( global void) +0:28 Function Parameters: +0:? Sequence +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 +0:35 Constant: +0:35 0.000000 +0:36 Constant: +0:36 0.000000 +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 Constant: +0:39 0.000000 +0:44 Constant: +0:44 0.000000 +0:45 Constant: +0:45 0.000000 +0:46 Constant: +0:46 0.000000 +0:? Linker Objects +0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:? 'outb' ( smooth out bool) +0:? 'outo' ( smooth out sampler2D) +0:? 'outa' ( smooth out 4-element array of float) +0:? 'outaa' ( smooth out 4-element array of 2-element array of float) +0:? 'outs' ( smooth out structure{ global float f}) +0:? 'outasa' ( smooth out 4-element array of structure{ global float f}) +0:? 'outsa' ( smooth out 4-element array of structure{ global float f}) +0:? 'outSA' ( smooth out structure{ global 4-element array of float f}) +0:? 'outSS' ( smooth out structure{ global float f, global structure{ global float f} s}) +0:? 'aui' (layout( binding=0 offset=0) uniform atomic_uint) +0:? 'ui' ( global uint) +0:? 'anon@1' (layout( location=0 column_major shared) uniform block{layout( column_major shared) uniform int a}) +0:? 'anon@2' (layout( location=0 column_major shared) buffer block{layout( column_major shared) buffer int b}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 450 +ERROR: node is still EOpNull! +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float CullDistance) +0:9 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) +0:9 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:9 Constant: +0:9 10 (const uint) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 4.500000 +0:? Linker Objects +0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) +0:? 'outb' ( smooth out bool) +0:? 'outo' ( smooth out sampler2D) +0:? 'outa' ( smooth out 4-element array of float) +0:? 'outaa' ( smooth out 4-element array of 2-element array of float) +0:? 'outs' ( smooth out structure{ global float f}) +0:? 'outasa' ( smooth out 4-element array of structure{ global float f}) +0:? 'outsa' ( smooth out 4-element array of structure{ global float f}) +0:? 'outSA' ( smooth out structure{ global 4-element array of float f}) +0:? 'outSS' ( smooth out structure{ global float f, global structure{ global float f} s}) +0:? 'aui' (layout( binding=0 offset=0) uniform atomic_uint) +0:? 'ui' ( global uint) +0:? 'anon@1' (layout( location=0 column_major shared) uniform block{layout( column_major shared) uniform int a}) +0:? 'anon@2' (layout( location=0 column_major shared) buffer block{layout( column_major shared) buffer int b}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/460.frag.out b/deps/glslang/glslang/Test/baseResults/460.frag.out new file mode 100644 index 0000000000..90c4837e2a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/460.frag.out @@ -0,0 +1,101 @@ +460.frag +ERROR: 0:22: 'attribute' : required extension not requested: GL_EXT_control_flow_attributes +ERROR: 0:23: 'attribute' : required extension not requested: GL_EXT_control_flow_attributes +ERROR: 0:30: 'dependency_length' : must be positive +ERROR: 0:31: 'dependency_length' : must be positive +ERROR: 4 compilation errors. No code generated. + + +Shader version: 460 +Requested GL_EXT_control_flow_attributes +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 interpolateAtCentroid ( global 4-component vector of float) +0:12 v: direct index for structure ( global 4-component vector of float) +0:12 's' ( smooth in structure{ global float f, global 4-component vector of float v}) +0:12 Constant: +0:12 1 (const int) +0:14 move second child to first child ( temp bool) +0:14 'b1' ( temp bool) +0:14 anyInvocation ( global bool) +0:14 'b1' ( temp bool) +0:15 move second child to first child ( temp bool) +0:15 'b1' ( temp bool) +0:15 allInvocations ( global bool) +0:15 'b1' ( temp bool) +0:16 move second child to first child ( temp bool) +0:16 'b1' ( temp bool) +0:16 allInvocationsEqual ( global bool) +0:16 'b1' ( temp bool) +0:19 Function Definition: attExtBad( ( global void) +0:19 Function Parameters: +0:22 Sequence +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'i' ( temp int) +0:22 Constant: +0:22 0 (const int) +0:22 Loop with condition tested first: Dependency 4 +0:22 Loop Condition +0:22 Compare Less Than ( temp bool) +0:22 'i' ( temp int) +0:22 Constant: +0:22 8 (const int) +0:22 No loop body +0:22 Loop Terminal Expression +0:22 Pre-Increment ( temp int) +0:22 'i' ( temp int) +0:23 Test condition and select ( temp void): Flatten +0:23 Condition +0:23 Constant: +0:23 true (const bool) +0:23 true case is null +0:28 Function Definition: attExt( ( global void) +0:28 Function Parameters: +0:30 Sequence +0:30 Loop with condition not tested first: Dependency -3 +0:30 Loop Condition +0:30 Constant: +0:30 true (const bool) +0:30 No loop body +0:31 Loop with condition not tested first +0:31 Loop Condition +0:31 Constant: +0:31 true (const bool) +0:31 No loop body +0:? Linker Objects +0:? 's' ( smooth in structure{ global float f, global 4-component vector of float v}) + + +Linked fragment stage: + + +Shader version: 460 +Requested GL_EXT_control_flow_attributes +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 interpolateAtCentroid ( global 4-component vector of float) +0:12 v: direct index for structure ( global 4-component vector of float) +0:12 's' ( smooth in structure{ global float f, global 4-component vector of float v}) +0:12 Constant: +0:12 1 (const int) +0:14 move second child to first child ( temp bool) +0:14 'b1' ( temp bool) +0:14 anyInvocation ( global bool) +0:14 'b1' ( temp bool) +0:15 move second child to first child ( temp bool) +0:15 'b1' ( temp bool) +0:15 allInvocations ( global bool) +0:15 'b1' ( temp bool) +0:16 move second child to first child ( temp bool) +0:16 'b1' ( temp bool) +0:16 allInvocationsEqual ( global bool) +0:16 'b1' ( temp bool) +0:? Linker Objects +0:? 's' ( smooth in structure{ global float f, global 4-component vector of float v}) + diff --git a/deps/glslang/glslang/Test/baseResults/460.vert.out b/deps/glslang/glslang/Test/baseResults/460.vert.out new file mode 100644 index 0000000000..8fa659b307 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/460.vert.out @@ -0,0 +1,51 @@ +460.vert +Shader version: 460 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp bool) +0:10 'b1' ( temp bool) +0:10 anyInvocation ( global bool) +0:10 'b1' ( temp bool) +0:11 move second child to first child ( temp bool) +0:11 'b1' ( temp bool) +0:11 allInvocations ( global bool) +0:11 'b1' ( temp bool) +0:12 move second child to first child ( temp bool) +0:12 'b1' ( temp bool) +0:12 allInvocationsEqual ( global bool) +0:12 'b1' ( temp bool) +0:? Linker Objects +0:? 'i' ( global int) +0:? 'f' ( global float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 460 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp bool) +0:10 'b1' ( temp bool) +0:10 anyInvocation ( global bool) +0:10 'b1' ( temp bool) +0:11 move second child to first child ( temp bool) +0:11 'b1' ( temp bool) +0:11 allInvocations ( global bool) +0:11 'b1' ( temp bool) +0:12 move second child to first child ( temp bool) +0:12 'b1' ( temp bool) +0:12 allInvocationsEqual ( global bool) +0:12 'b1' ( temp bool) +0:? Linker Objects +0:? 'i' ( global int) +0:? 'f' ( global float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/Operations.frag.out b/deps/glslang/glslang/Test/baseResults/Operations.frag.out new file mode 100644 index 0000000000..680eb26559 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/Operations.frag.out @@ -0,0 +1,1151 @@ +Operations.frag +ERROR: 0:76: 'intBitsToFloat' : no matching overloaded function found +ERROR: 0:77: 'uintBitsToFloat' : no matching overloaded function found +ERROR: 0:78: 'fma' : no matching overloaded function found +ERROR: 0:79: 'frexp' : no matching overloaded function found +ERROR: 0:80: 'ldexp' : no matching overloaded function found +ERROR: 0:81: 'unpackUnorm2x16' : no matching overloaded function found +ERROR: 0:82: 'unpackUnorm4x8' : no matching overloaded function found +ERROR: 0:83: 'unpackSnorm4x8' : no matching overloaded function found +ERROR: 0:107: 'floatsBitsToInt' : no matching overloaded function found +ERROR: 0:108: 'packUnorm2x16' : no matching overloaded function found +ERROR: 0:109: 'packUnorm4x8' : no matching overloaded function found +ERROR: 0:110: 'packSnorm4x8' : no matching overloaded function found +ERROR: 0:113: 'assign' : cannot convert from ' global float' to ' temp uint' +ERROR: 0:114: 'assign' : cannot convert from ' global float' to ' temp uint' +ERROR: 0:118: 'floatsBitToInt' : no matching overloaded function found +ERROR: 0:118: 'assign' : cannot convert from ' const float' to ' temp uint' +ERROR: 0:119: 'packUnorm2x16' : no matching overloaded function found +ERROR: 0:119: 'assign' : cannot convert from ' const float' to ' temp uint' +ERROR: 0:120: 'packUnorm4x8' : no matching overloaded function found +ERROR: 0:120: 'assign' : cannot convert from ' const float' to ' temp uint' +ERROR: 0:121: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type ' uniform uint' and a right operand of type ' temp int' (or there is no acceptable conversion) +ERROR: 0:121: 'assign' : cannot convert from ' uniform uint' to ' temp int' +ERROR: 0:122: '^' : wrong operand types: no operation '^' exists that takes a left-hand operand of type ' uniform uint' and a right operand of type ' temp int' (or there is no acceptable conversion) +ERROR: 0:122: 'assign' : cannot convert from ' uniform uint' to ' temp int' +ERROR: 0:123: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type ' temp int' and a right operand of type ' uniform uint' (or there is no acceptable conversion) +ERROR: 25 compilation errors. No code generated. + + +Shader version: 130 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'v' ( temp 4-component vector of float) +0:27 radians ( global 4-component vector of float) +0:27 'uv4' ( uniform 4-component vector of float) +0:28 add second child into first child ( temp 4-component vector of float) +0:28 'v' ( temp 4-component vector of float) +0:28 degrees ( global 4-component vector of float) +0:28 'v' ( temp 4-component vector of float) +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'v' ( temp 4-component vector of float) +0:29 Comma ( temp 4-component vector of float) +0:29 move second child to first child ( temp int) +0:29 'i' ( temp int) +0:29 component-wise multiply ( temp int) +0:29 'ui' ( uniform int) +0:29 'ui' ( uniform int) +0:29 sine ( global 4-component vector of float) +0:29 'v' ( temp 4-component vector of float) +0:30 add second child into first child ( temp 4-component vector of float) +0:30 'v' ( temp 4-component vector of float) +0:30 cosine ( global 4-component vector of float) +0:30 'v' ( temp 4-component vector of float) +0:31 add second child into first child ( temp 4-component vector of float) +0:31 'v' ( temp 4-component vector of float) +0:31 tangent ( global 4-component vector of float) +0:31 'v' ( temp 4-component vector of float) +0:32 add second child into first child ( temp 4-component vector of float) +0:32 'v' ( temp 4-component vector of float) +0:32 arc sine ( global 4-component vector of float) +0:32 'v' ( temp 4-component vector of float) +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:33 arc cosine ( global 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:35 add second child into first child ( temp 4-component vector of float) +0:35 'v' ( temp 4-component vector of float) +0:35 arc tangent ( global 4-component vector of float) +0:35 'v' ( temp 4-component vector of float) +0:36 add second child into first child ( temp 4-component vector of float) +0:36 'v' ( temp 4-component vector of float) +0:36 hyp. sine ( global 4-component vector of float) +0:36 'v' ( temp 4-component vector of float) +0:37 add second child into first child ( temp 4-component vector of float) +0:37 'v' ( temp 4-component vector of float) +0:37 hyp. cosine ( global 4-component vector of float) +0:37 'v' ( temp 4-component vector of float) +0:38 add second child into first child ( temp 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:38 hyp. tangent ( global 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:39 add second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 arc hyp. sine ( global 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:40 add second child into first child ( temp 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:40 arc hyp. cosine ( global 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:41 add second child into first child ( temp 4-component vector of float) +0:41 'v' ( temp 4-component vector of float) +0:41 arc hyp. tangent ( global 4-component vector of float) +0:41 'v' ( temp 4-component vector of float) +0:43 add second child into first child ( temp 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:43 pow ( global 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:44 add second child into first child ( temp 4-component vector of float) +0:44 'v' ( temp 4-component vector of float) +0:44 exp ( global 4-component vector of float) +0:44 'v' ( temp 4-component vector of float) +0:45 add second child into first child ( temp 4-component vector of float) +0:45 'v' ( temp 4-component vector of float) +0:45 log ( global 4-component vector of float) +0:45 'v' ( temp 4-component vector of float) +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:46 exp2 ( global 4-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:47 add second child into first child ( temp 4-component vector of float) +0:47 'v' ( temp 4-component vector of float) +0:47 log2 ( global 4-component vector of float) +0:47 'v' ( temp 4-component vector of float) +0:48 add second child into first child ( temp 4-component vector of float) +0:48 'v' ( temp 4-component vector of float) +0:48 sqrt ( global 4-component vector of float) +0:48 'v' ( temp 4-component vector of float) +0:49 add second child into first child ( temp 4-component vector of float) +0:49 'v' ( temp 4-component vector of float) +0:49 inverse sqrt ( global 4-component vector of float) +0:49 'v' ( temp 4-component vector of float) +0:50 add second child into first child ( temp 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:50 Absolute value ( global 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'v' ( temp 4-component vector of float) +0:51 Sign ( global 4-component vector of float) +0:51 'v' ( temp 4-component vector of float) +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'v' ( temp 4-component vector of float) +0:52 Floor ( global 4-component vector of float) +0:52 'v' ( temp 4-component vector of float) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:55 trunc ( global 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:56 add second child into first child ( temp 4-component vector of float) +0:56 'v' ( temp 4-component vector of float) +0:56 round ( global 4-component vector of float) +0:56 'v' ( temp 4-component vector of float) +0:57 add second child into first child ( temp 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:57 roundEven ( global 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:60 add second child into first child ( temp 4-component vector of float) +0:60 'v' ( temp 4-component vector of float) +0:60 Ceiling ( global 4-component vector of float) +0:60 'v' ( temp 4-component vector of float) +0:61 add second child into first child ( temp 4-component vector of float) +0:61 'v' ( temp 4-component vector of float) +0:61 Fraction ( global 4-component vector of float) +0:61 'v' ( temp 4-component vector of float) +0:62 add second child into first child ( temp 4-component vector of float) +0:62 'v' ( temp 4-component vector of float) +0:62 mod ( global 4-component vector of float) +0:62 'v' ( temp 4-component vector of float) +0:62 'v' ( temp 4-component vector of float) +0:63 add second child into first child ( temp 4-component vector of float) +0:63 'v' ( temp 4-component vector of float) +0:63 mod ( global 4-component vector of float) +0:63 'v' ( temp 4-component vector of float) +0:63 direct index ( temp float) +0:63 'v' ( temp 4-component vector of float) +0:63 Constant: +0:63 0 (const int) +0:66 add second child into first child ( temp 4-component vector of float) +0:66 'v' ( temp 4-component vector of float) +0:66 modf ( global 4-component vector of float) +0:66 'v' ( temp 4-component vector of float) +0:66 'v' ( temp 4-component vector of float) +0:69 add second child into first child ( temp 4-component vector of float) +0:69 'v' ( temp 4-component vector of float) +0:69 min ( global 4-component vector of float) +0:69 'v' ( temp 4-component vector of float) +0:69 'uv4' ( uniform 4-component vector of float) +0:70 add second child into first child ( temp 4-component vector of float) +0:70 'v' ( temp 4-component vector of float) +0:70 max ( global 4-component vector of float) +0:70 'v' ( temp 4-component vector of float) +0:70 'uv4' ( uniform 4-component vector of float) +0:71 add second child into first child ( temp 4-component vector of float) +0:71 'v' ( temp 4-component vector of float) +0:71 clamp ( global 4-component vector of float) +0:71 'v' ( temp 4-component vector of float) +0:71 'uv4' ( uniform 4-component vector of float) +0:71 'uv4' ( uniform 4-component vector of float) +0:72 add second child into first child ( temp 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:72 mix ( global 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:75 add second child into first child ( temp 4-component vector of float) +0:75 'v' ( temp 4-component vector of float) +0:75 mix ( global 4-component vector of float) +0:75 'v' ( temp 4-component vector of float) +0:75 'v' ( temp 4-component vector of float) +0:75 'bv4' ( temp 4-component vector of bool) +0:76 add second child into first child ( temp 4-component vector of float) +0:76 'v' ( temp 4-component vector of float) +0:76 Constant: +0:76 0.000000 +0:77 add second child into first child ( temp 4-component vector of float) +0:77 'v' ( temp 4-component vector of float) +0:77 Constant: +0:77 0.000000 +0:78 add second child into first child ( temp 4-component vector of float) +0:78 'v' ( temp 4-component vector of float) +0:78 Constant: +0:78 0.000000 +0:79 add second child into first child ( temp 4-component vector of float) +0:79 'v' ( temp 4-component vector of float) +0:79 Constant: +0:79 0.000000 +0:80 add second child into first child ( temp 4-component vector of float) +0:80 'v' ( temp 4-component vector of float) +0:80 Constant: +0:80 0.000000 +0:81 add second child into first child ( temp 4-component vector of float) +0:81 'v' ( temp 4-component vector of float) +0:81 Constant: +0:81 0.000000 +0:82 add second child into first child ( temp 4-component vector of float) +0:82 'v' ( temp 4-component vector of float) +0:82 Constant: +0:82 0.000000 +0:83 add second child into first child ( temp 4-component vector of float) +0:83 'v' ( temp 4-component vector of float) +0:83 Constant: +0:83 0.000000 +0:86 add second child into first child ( temp 4-component vector of float) +0:86 'v' ( temp 4-component vector of float) +0:86 step ( global 4-component vector of float) +0:86 'v' ( temp 4-component vector of float) +0:86 'v' ( temp 4-component vector of float) +0:87 add second child into first child ( temp 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:87 smoothstep ( global 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:88 add second child into first child ( temp 4-component vector of float) +0:88 'v' ( temp 4-component vector of float) +0:88 step ( global 4-component vector of float) +0:88 'uf' ( uniform float) +0:88 'v' ( temp 4-component vector of float) +0:89 add second child into first child ( temp 4-component vector of float) +0:89 'v' ( temp 4-component vector of float) +0:89 smoothstep ( global 4-component vector of float) +0:89 'uf' ( uniform float) +0:89 'uf' ( uniform float) +0:89 'v' ( temp 4-component vector of float) +0:90 add second child into first child ( temp 4-component vector of float) +0:90 'v' ( temp 4-component vector of float) +0:90 normalize ( global 4-component vector of float) +0:90 'v' ( temp 4-component vector of float) +0:91 add second child into first child ( temp 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:91 face-forward ( global 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:92 add second child into first child ( temp 4-component vector of float) +0:92 'v' ( temp 4-component vector of float) +0:92 reflect ( global 4-component vector of float) +0:92 'v' ( temp 4-component vector of float) +0:92 'v' ( temp 4-component vector of float) +0:93 add second child into first child ( temp 4-component vector of float) +0:93 'v' ( temp 4-component vector of float) +0:93 refract ( global 4-component vector of float) +0:93 'v' ( temp 4-component vector of float) +0:93 'v' ( temp 4-component vector of float) +0:93 'uf' ( uniform float) +0:94 add second child into first child ( temp 4-component vector of float) +0:94 'v' ( temp 4-component vector of float) +0:94 dPdx ( global 4-component vector of float) +0:94 'v' ( temp 4-component vector of float) +0:95 add second child into first child ( temp 4-component vector of float) +0:95 'v' ( temp 4-component vector of float) +0:95 dPdy ( global 4-component vector of float) +0:95 'v' ( temp 4-component vector of float) +0:96 add second child into first child ( temp 4-component vector of float) +0:96 'v' ( temp 4-component vector of float) +0:96 fwidth ( global 4-component vector of float) +0:96 'v' ( temp 4-component vector of float) +0:101 add second child into first child ( temp int) +0:101 'i' ( temp int) +0:101 Absolute value ( global int) +0:101 'ui' ( uniform int) +0:102 add second child into first child ( temp int) +0:102 'i' ( temp int) +0:102 Sign ( global int) +0:102 'i' ( temp int) +0:103 add second child into first child ( temp int) +0:103 'i' ( temp int) +0:103 min ( global int) +0:103 'i' ( temp int) +0:103 'ui' ( uniform int) +0:104 add second child into first child ( temp int) +0:104 'i' ( temp int) +0:104 max ( global int) +0:104 'i' ( temp int) +0:104 'ui' ( uniform int) +0:105 add second child into first child ( temp int) +0:105 'i' ( temp int) +0:105 clamp ( global int) +0:105 'i' ( temp int) +0:105 'ui' ( uniform int) +0:105 'ui' ( uniform int) +0:107 Constant: +0:107 0.000000 +0:108 Constant: +0:108 0.000000 +0:109 Constant: +0:109 0.000000 +0:110 Constant: +0:110 0.000000 +0:113 'u' ( temp uint) +0:114 'u' ( temp uint) +0:115 add second child into first child ( temp uint) +0:115 'u' ( temp uint) +0:115 min ( global uint) +0:115 'u' ( temp uint) +0:115 'uui' ( uniform uint) +0:116 add second child into first child ( temp uint) +0:116 'u' ( temp uint) +0:116 max ( global uint) +0:116 'u' ( temp uint) +0:116 'uui' ( uniform uint) +0:117 add second child into first child ( temp uint) +0:117 'u' ( temp uint) +0:117 clamp ( global uint) +0:117 'u' ( temp uint) +0:117 'uui' ( uniform uint) +0:117 'uui' ( uniform uint) +0:118 'u' ( temp uint) +0:119 'u' ( temp uint) +0:120 'u' ( temp uint) +0:121 'i' ( temp int) +0:122 'i' ( temp int) +0:123 add second child into first child ( temp int) +0:123 'i' ( temp int) +0:123 'i' ( temp int) +0:127 move second child to first child ( temp bool) +0:127 'b' ( temp bool) +0:127 isnan ( global bool) +0:127 'uf' ( uniform float) +0:128 move second child to first child ( temp bool) +0:128 'b' ( temp bool) +0:128 isinf ( global bool) +0:128 direct index ( temp float) +0:128 'v' ( temp 4-component vector of float) +0:128 Constant: +0:128 1 (const int) +0:130 move second child to first child ( temp bool) +0:130 'b' ( temp bool) +0:130 any ( global bool) +0:130 Compare Less Than ( global 4-component vector of bool) +0:130 'v' ( temp 4-component vector of float) +0:130 'uv4' ( uniform 4-component vector of float) +0:131 move second child to first child ( temp bool) +0:131 'b' ( temp bool) +0:131 logical-and ( temp bool) +0:131 'b' ( temp bool) +0:131 any ( global bool) +0:131 Compare Less Than or Equal ( global 4-component vector of bool) +0:131 'v' ( temp 4-component vector of float) +0:131 'uv4' ( uniform 4-component vector of float) +0:132 move second child to first child ( temp bool) +0:132 'b' ( temp bool) +0:132 logical-and ( temp bool) +0:132 'b' ( temp bool) +0:132 any ( global bool) +0:132 Compare Greater Than ( global 4-component vector of bool) +0:132 'v' ( temp 4-component vector of float) +0:132 'uv4' ( uniform 4-component vector of float) +0:133 move second child to first child ( temp bool) +0:133 'b' ( temp bool) +0:133 logical-and ( temp bool) +0:133 'b' ( temp bool) +0:133 any ( global bool) +0:133 Compare Greater Than or Equal ( global 4-component vector of bool) +0:133 'v' ( temp 4-component vector of float) +0:133 'uv4' ( uniform 4-component vector of float) +0:134 move second child to first child ( temp bool) +0:134 'b' ( temp bool) +0:134 logical-and ( temp bool) +0:134 'b' ( temp bool) +0:134 any ( global bool) +0:134 Equal ( global 4-component vector of bool) +0:134 'ub41' ( uniform 4-component vector of bool) +0:134 'ub42' ( uniform 4-component vector of bool) +0:135 move second child to first child ( temp bool) +0:135 'b' ( temp bool) +0:135 logical-and ( temp bool) +0:135 'b' ( temp bool) +0:135 any ( global bool) +0:135 NotEqual ( global 4-component vector of bool) +0:135 'ub41' ( uniform 4-component vector of bool) +0:135 'ub42' ( uniform 4-component vector of bool) +0:136 move second child to first child ( temp bool) +0:136 'b' ( temp bool) +0:136 logical-and ( temp bool) +0:136 'b' ( temp bool) +0:136 any ( global bool) +0:136 'ub41' ( uniform 4-component vector of bool) +0:137 move second child to first child ( temp bool) +0:137 'b' ( temp bool) +0:137 logical-and ( temp bool) +0:137 'b' ( temp bool) +0:137 all ( global bool) +0:137 'ub41' ( uniform 4-component vector of bool) +0:138 move second child to first child ( temp bool) +0:138 'b' ( temp bool) +0:138 logical-and ( temp bool) +0:138 'b' ( temp bool) +0:138 any ( global bool) +0:138 Negate conditional ( global 4-component vector of bool) +0:138 'ub41' ( uniform 4-component vector of bool) +0:140 move second child to first child ( temp int) +0:140 'i' ( temp int) +0:140 divide ( temp int) +0:140 subtract ( temp int) +0:140 component-wise multiply ( temp int) +0:140 add ( temp int) +0:140 'i' ( temp int) +0:140 'ui' ( uniform int) +0:140 'i' ( temp int) +0:140 'ui' ( uniform int) +0:140 'i' ( temp int) +0:141 move second child to first child ( temp int) +0:141 'i' ( temp int) +0:141 mod ( temp int) +0:141 'i' ( temp int) +0:141 'ui' ( uniform int) +0:142 Test condition and select ( temp void) +0:142 Condition +0:142 logical-or ( temp bool) +0:142 Compare Equal ( temp bool) +0:142 'i' ( temp int) +0:142 'ui' ( uniform int) +0:142 logical-xor ( temp bool) +0:142 logical-and ( temp bool) +0:142 Compare Not Equal ( temp bool) +0:142 'i' ( temp int) +0:142 'ui' ( uniform int) +0:142 Compare Equal ( temp bool) +0:142 'i' ( temp int) +0:142 'ui' ( uniform int) +0:142 Compare Not Equal ( temp bool) +0:142 'i' ( temp int) +0:142 Constant: +0:142 2 (const int) +0:142 true case +0:143 Pre-Increment ( temp int) +0:143 'i' ( temp int) +0:145 move second child to first child ( temp float) +0:145 'f' ( temp float) +0:145 divide ( temp float) +0:145 subtract ( temp float) +0:145 component-wise multiply ( temp float) +0:145 add ( temp float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:147 add second child into first child ( temp float) +0:147 'f' ( temp float) +0:147 length ( global float) +0:147 'v' ( temp 4-component vector of float) +0:148 add second child into first child ( temp float) +0:148 'f' ( temp float) +0:148 distance ( global float) +0:148 'v' ( temp 4-component vector of float) +0:148 'v' ( temp 4-component vector of float) +0:149 add second child into first child ( temp float) +0:149 'f' ( temp float) +0:149 dot-product ( global float) +0:149 'v' ( temp 4-component vector of float) +0:149 'v' ( temp 4-component vector of float) +0:150 add second child into first child ( temp float) +0:150 'f' ( temp float) +0:150 dot-product ( global float) +0:150 'f' ( temp float) +0:150 'uf' ( uniform float) +0:151 add second child into first child ( temp float) +0:151 'f' ( temp float) +0:151 direct index ( temp float) +0:151 cross-product ( global 3-component vector of float) +0:151 vector swizzle ( temp 3-component vector of float) +0:151 'v' ( temp 4-component vector of float) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:151 Constant: +0:151 2 (const int) +0:151 vector swizzle ( temp 3-component vector of float) +0:151 'v' ( temp 4-component vector of float) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:151 Constant: +0:151 2 (const int) +0:151 Constant: +0:151 0 (const int) +0:153 Test condition and select ( temp void) +0:153 Condition +0:153 logical-or ( temp bool) +0:153 Compare Equal ( temp bool) +0:153 'f' ( temp float) +0:153 'uf' ( uniform float) +0:153 logical-and ( temp bool) +0:153 Compare Not Equal ( temp bool) +0:153 'f' ( temp float) +0:153 'uf' ( uniform float) +0:153 Compare Not Equal ( temp bool) +0:153 'f' ( temp float) +0:153 Constant: +0:153 2.000000 +0:153 true case +0:154 Pre-Increment ( temp float) +0:154 'f' ( temp float) +0:156 and second child into first child ( temp int) +0:156 'i' ( temp int) +0:156 'ui' ( uniform int) +0:157 or second child into first child ( temp int) +0:157 'i' ( temp int) +0:157 Constant: +0:157 66 (const int) +0:158 exclusive or second child into first child ( temp int) +0:158 'i' ( temp int) +0:158 'ui' ( uniform int) +0:159 mod second child into first child ( temp int) +0:159 'i' ( temp int) +0:159 Constant: +0:159 17 (const int) +0:160 right shift second child into first child ( temp int) +0:160 'i' ( temp int) +0:160 Constant: +0:160 2 (const int) +0:161 left shift second child into first child ( temp int) +0:161 'i' ( temp int) +0:161 'ui' ( uniform int) +0:162 move second child to first child ( temp int) +0:162 'i' ( temp int) +0:162 Bitwise not ( temp int) +0:162 'i' ( temp int) +0:163 move second child to first child ( temp bool) +0:163 'b' ( temp bool) +0:163 Negate conditional ( temp bool) +0:163 'b' ( temp bool) +0:165 move second child to first child ( temp 4-component vector of float) +0:165 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:165 Test condition and select ( temp 4-component vector of float) +0:165 Condition +0:165 'b' ( temp bool) +0:165 true case +0:165 add ( temp 4-component vector of float) +0:165 add ( temp 4-component vector of float) +0:165 Construct vec4 ( temp 4-component vector of float) +0:165 Convert int to float ( temp float) +0:165 'i' ( temp int) +0:165 Construct vec4 ( temp 4-component vector of float) +0:165 'f' ( temp float) +0:165 'v' ( temp 4-component vector of float) +0:165 false case +0:165 'v' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'uiv4' ( uniform 4-component vector of int) +0:? 'uv4' ( uniform 4-component vector of float) +0:? 'ub' ( uniform bool) +0:? 'ub41' ( uniform 4-component vector of bool) +0:? 'ub42' ( uniform 4-component vector of bool) +0:? 'uf' ( uniform float) +0:? 'ui' ( uniform int) +0:? 'uuv4' ( uniform 4-component vector of uint) +0:? 'uui' ( uniform uint) + + +Linked fragment stage: + + +Shader version: 130 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'v' ( temp 4-component vector of float) +0:27 radians ( global 4-component vector of float) +0:27 'uv4' ( uniform 4-component vector of float) +0:28 add second child into first child ( temp 4-component vector of float) +0:28 'v' ( temp 4-component vector of float) +0:28 degrees ( global 4-component vector of float) +0:28 'v' ( temp 4-component vector of float) +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'v' ( temp 4-component vector of float) +0:29 Comma ( temp 4-component vector of float) +0:29 move second child to first child ( temp int) +0:29 'i' ( temp int) +0:29 component-wise multiply ( temp int) +0:29 'ui' ( uniform int) +0:29 'ui' ( uniform int) +0:29 sine ( global 4-component vector of float) +0:29 'v' ( temp 4-component vector of float) +0:30 add second child into first child ( temp 4-component vector of float) +0:30 'v' ( temp 4-component vector of float) +0:30 cosine ( global 4-component vector of float) +0:30 'v' ( temp 4-component vector of float) +0:31 add second child into first child ( temp 4-component vector of float) +0:31 'v' ( temp 4-component vector of float) +0:31 tangent ( global 4-component vector of float) +0:31 'v' ( temp 4-component vector of float) +0:32 add second child into first child ( temp 4-component vector of float) +0:32 'v' ( temp 4-component vector of float) +0:32 arc sine ( global 4-component vector of float) +0:32 'v' ( temp 4-component vector of float) +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:33 arc cosine ( global 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:35 add second child into first child ( temp 4-component vector of float) +0:35 'v' ( temp 4-component vector of float) +0:35 arc tangent ( global 4-component vector of float) +0:35 'v' ( temp 4-component vector of float) +0:36 add second child into first child ( temp 4-component vector of float) +0:36 'v' ( temp 4-component vector of float) +0:36 hyp. sine ( global 4-component vector of float) +0:36 'v' ( temp 4-component vector of float) +0:37 add second child into first child ( temp 4-component vector of float) +0:37 'v' ( temp 4-component vector of float) +0:37 hyp. cosine ( global 4-component vector of float) +0:37 'v' ( temp 4-component vector of float) +0:38 add second child into first child ( temp 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:38 hyp. tangent ( global 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:39 add second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 arc hyp. sine ( global 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:40 add second child into first child ( temp 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:40 arc hyp. cosine ( global 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:41 add second child into first child ( temp 4-component vector of float) +0:41 'v' ( temp 4-component vector of float) +0:41 arc hyp. tangent ( global 4-component vector of float) +0:41 'v' ( temp 4-component vector of float) +0:43 add second child into first child ( temp 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:43 pow ( global 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:44 add second child into first child ( temp 4-component vector of float) +0:44 'v' ( temp 4-component vector of float) +0:44 exp ( global 4-component vector of float) +0:44 'v' ( temp 4-component vector of float) +0:45 add second child into first child ( temp 4-component vector of float) +0:45 'v' ( temp 4-component vector of float) +0:45 log ( global 4-component vector of float) +0:45 'v' ( temp 4-component vector of float) +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:46 exp2 ( global 4-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:47 add second child into first child ( temp 4-component vector of float) +0:47 'v' ( temp 4-component vector of float) +0:47 log2 ( global 4-component vector of float) +0:47 'v' ( temp 4-component vector of float) +0:48 add second child into first child ( temp 4-component vector of float) +0:48 'v' ( temp 4-component vector of float) +0:48 sqrt ( global 4-component vector of float) +0:48 'v' ( temp 4-component vector of float) +0:49 add second child into first child ( temp 4-component vector of float) +0:49 'v' ( temp 4-component vector of float) +0:49 inverse sqrt ( global 4-component vector of float) +0:49 'v' ( temp 4-component vector of float) +0:50 add second child into first child ( temp 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:50 Absolute value ( global 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'v' ( temp 4-component vector of float) +0:51 Sign ( global 4-component vector of float) +0:51 'v' ( temp 4-component vector of float) +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'v' ( temp 4-component vector of float) +0:52 Floor ( global 4-component vector of float) +0:52 'v' ( temp 4-component vector of float) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:55 trunc ( global 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:56 add second child into first child ( temp 4-component vector of float) +0:56 'v' ( temp 4-component vector of float) +0:56 round ( global 4-component vector of float) +0:56 'v' ( temp 4-component vector of float) +0:57 add second child into first child ( temp 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:57 roundEven ( global 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:60 add second child into first child ( temp 4-component vector of float) +0:60 'v' ( temp 4-component vector of float) +0:60 Ceiling ( global 4-component vector of float) +0:60 'v' ( temp 4-component vector of float) +0:61 add second child into first child ( temp 4-component vector of float) +0:61 'v' ( temp 4-component vector of float) +0:61 Fraction ( global 4-component vector of float) +0:61 'v' ( temp 4-component vector of float) +0:62 add second child into first child ( temp 4-component vector of float) +0:62 'v' ( temp 4-component vector of float) +0:62 mod ( global 4-component vector of float) +0:62 'v' ( temp 4-component vector of float) +0:62 'v' ( temp 4-component vector of float) +0:63 add second child into first child ( temp 4-component vector of float) +0:63 'v' ( temp 4-component vector of float) +0:63 mod ( global 4-component vector of float) +0:63 'v' ( temp 4-component vector of float) +0:63 direct index ( temp float) +0:63 'v' ( temp 4-component vector of float) +0:63 Constant: +0:63 0 (const int) +0:66 add second child into first child ( temp 4-component vector of float) +0:66 'v' ( temp 4-component vector of float) +0:66 modf ( global 4-component vector of float) +0:66 'v' ( temp 4-component vector of float) +0:66 'v' ( temp 4-component vector of float) +0:69 add second child into first child ( temp 4-component vector of float) +0:69 'v' ( temp 4-component vector of float) +0:69 min ( global 4-component vector of float) +0:69 'v' ( temp 4-component vector of float) +0:69 'uv4' ( uniform 4-component vector of float) +0:70 add second child into first child ( temp 4-component vector of float) +0:70 'v' ( temp 4-component vector of float) +0:70 max ( global 4-component vector of float) +0:70 'v' ( temp 4-component vector of float) +0:70 'uv4' ( uniform 4-component vector of float) +0:71 add second child into first child ( temp 4-component vector of float) +0:71 'v' ( temp 4-component vector of float) +0:71 clamp ( global 4-component vector of float) +0:71 'v' ( temp 4-component vector of float) +0:71 'uv4' ( uniform 4-component vector of float) +0:71 'uv4' ( uniform 4-component vector of float) +0:72 add second child into first child ( temp 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:72 mix ( global 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:72 'v' ( temp 4-component vector of float) +0:75 add second child into first child ( temp 4-component vector of float) +0:75 'v' ( temp 4-component vector of float) +0:75 mix ( global 4-component vector of float) +0:75 'v' ( temp 4-component vector of float) +0:75 'v' ( temp 4-component vector of float) +0:75 'bv4' ( temp 4-component vector of bool) +0:76 add second child into first child ( temp 4-component vector of float) +0:76 'v' ( temp 4-component vector of float) +0:76 Constant: +0:76 0.000000 +0:77 add second child into first child ( temp 4-component vector of float) +0:77 'v' ( temp 4-component vector of float) +0:77 Constant: +0:77 0.000000 +0:78 add second child into first child ( temp 4-component vector of float) +0:78 'v' ( temp 4-component vector of float) +0:78 Constant: +0:78 0.000000 +0:79 add second child into first child ( temp 4-component vector of float) +0:79 'v' ( temp 4-component vector of float) +0:79 Constant: +0:79 0.000000 +0:80 add second child into first child ( temp 4-component vector of float) +0:80 'v' ( temp 4-component vector of float) +0:80 Constant: +0:80 0.000000 +0:81 add second child into first child ( temp 4-component vector of float) +0:81 'v' ( temp 4-component vector of float) +0:81 Constant: +0:81 0.000000 +0:82 add second child into first child ( temp 4-component vector of float) +0:82 'v' ( temp 4-component vector of float) +0:82 Constant: +0:82 0.000000 +0:83 add second child into first child ( temp 4-component vector of float) +0:83 'v' ( temp 4-component vector of float) +0:83 Constant: +0:83 0.000000 +0:86 add second child into first child ( temp 4-component vector of float) +0:86 'v' ( temp 4-component vector of float) +0:86 step ( global 4-component vector of float) +0:86 'v' ( temp 4-component vector of float) +0:86 'v' ( temp 4-component vector of float) +0:87 add second child into first child ( temp 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:87 smoothstep ( global 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:87 'v' ( temp 4-component vector of float) +0:88 add second child into first child ( temp 4-component vector of float) +0:88 'v' ( temp 4-component vector of float) +0:88 step ( global 4-component vector of float) +0:88 'uf' ( uniform float) +0:88 'v' ( temp 4-component vector of float) +0:89 add second child into first child ( temp 4-component vector of float) +0:89 'v' ( temp 4-component vector of float) +0:89 smoothstep ( global 4-component vector of float) +0:89 'uf' ( uniform float) +0:89 'uf' ( uniform float) +0:89 'v' ( temp 4-component vector of float) +0:90 add second child into first child ( temp 4-component vector of float) +0:90 'v' ( temp 4-component vector of float) +0:90 normalize ( global 4-component vector of float) +0:90 'v' ( temp 4-component vector of float) +0:91 add second child into first child ( temp 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:91 face-forward ( global 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:91 'v' ( temp 4-component vector of float) +0:92 add second child into first child ( temp 4-component vector of float) +0:92 'v' ( temp 4-component vector of float) +0:92 reflect ( global 4-component vector of float) +0:92 'v' ( temp 4-component vector of float) +0:92 'v' ( temp 4-component vector of float) +0:93 add second child into first child ( temp 4-component vector of float) +0:93 'v' ( temp 4-component vector of float) +0:93 refract ( global 4-component vector of float) +0:93 'v' ( temp 4-component vector of float) +0:93 'v' ( temp 4-component vector of float) +0:93 'uf' ( uniform float) +0:94 add second child into first child ( temp 4-component vector of float) +0:94 'v' ( temp 4-component vector of float) +0:94 dPdx ( global 4-component vector of float) +0:94 'v' ( temp 4-component vector of float) +0:95 add second child into first child ( temp 4-component vector of float) +0:95 'v' ( temp 4-component vector of float) +0:95 dPdy ( global 4-component vector of float) +0:95 'v' ( temp 4-component vector of float) +0:96 add second child into first child ( temp 4-component vector of float) +0:96 'v' ( temp 4-component vector of float) +0:96 fwidth ( global 4-component vector of float) +0:96 'v' ( temp 4-component vector of float) +0:101 add second child into first child ( temp int) +0:101 'i' ( temp int) +0:101 Absolute value ( global int) +0:101 'ui' ( uniform int) +0:102 add second child into first child ( temp int) +0:102 'i' ( temp int) +0:102 Sign ( global int) +0:102 'i' ( temp int) +0:103 add second child into first child ( temp int) +0:103 'i' ( temp int) +0:103 min ( global int) +0:103 'i' ( temp int) +0:103 'ui' ( uniform int) +0:104 add second child into first child ( temp int) +0:104 'i' ( temp int) +0:104 max ( global int) +0:104 'i' ( temp int) +0:104 'ui' ( uniform int) +0:105 add second child into first child ( temp int) +0:105 'i' ( temp int) +0:105 clamp ( global int) +0:105 'i' ( temp int) +0:105 'ui' ( uniform int) +0:105 'ui' ( uniform int) +0:107 Constant: +0:107 0.000000 +0:108 Constant: +0:108 0.000000 +0:109 Constant: +0:109 0.000000 +0:110 Constant: +0:110 0.000000 +0:113 'u' ( temp uint) +0:114 'u' ( temp uint) +0:115 add second child into first child ( temp uint) +0:115 'u' ( temp uint) +0:115 min ( global uint) +0:115 'u' ( temp uint) +0:115 'uui' ( uniform uint) +0:116 add second child into first child ( temp uint) +0:116 'u' ( temp uint) +0:116 max ( global uint) +0:116 'u' ( temp uint) +0:116 'uui' ( uniform uint) +0:117 add second child into first child ( temp uint) +0:117 'u' ( temp uint) +0:117 clamp ( global uint) +0:117 'u' ( temp uint) +0:117 'uui' ( uniform uint) +0:117 'uui' ( uniform uint) +0:118 'u' ( temp uint) +0:119 'u' ( temp uint) +0:120 'u' ( temp uint) +0:121 'i' ( temp int) +0:122 'i' ( temp int) +0:123 add second child into first child ( temp int) +0:123 'i' ( temp int) +0:123 'i' ( temp int) +0:127 move second child to first child ( temp bool) +0:127 'b' ( temp bool) +0:127 isnan ( global bool) +0:127 'uf' ( uniform float) +0:128 move second child to first child ( temp bool) +0:128 'b' ( temp bool) +0:128 isinf ( global bool) +0:128 direct index ( temp float) +0:128 'v' ( temp 4-component vector of float) +0:128 Constant: +0:128 1 (const int) +0:130 move second child to first child ( temp bool) +0:130 'b' ( temp bool) +0:130 any ( global bool) +0:130 Compare Less Than ( global 4-component vector of bool) +0:130 'v' ( temp 4-component vector of float) +0:130 'uv4' ( uniform 4-component vector of float) +0:131 move second child to first child ( temp bool) +0:131 'b' ( temp bool) +0:131 logical-and ( temp bool) +0:131 'b' ( temp bool) +0:131 any ( global bool) +0:131 Compare Less Than or Equal ( global 4-component vector of bool) +0:131 'v' ( temp 4-component vector of float) +0:131 'uv4' ( uniform 4-component vector of float) +0:132 move second child to first child ( temp bool) +0:132 'b' ( temp bool) +0:132 logical-and ( temp bool) +0:132 'b' ( temp bool) +0:132 any ( global bool) +0:132 Compare Greater Than ( global 4-component vector of bool) +0:132 'v' ( temp 4-component vector of float) +0:132 'uv4' ( uniform 4-component vector of float) +0:133 move second child to first child ( temp bool) +0:133 'b' ( temp bool) +0:133 logical-and ( temp bool) +0:133 'b' ( temp bool) +0:133 any ( global bool) +0:133 Compare Greater Than or Equal ( global 4-component vector of bool) +0:133 'v' ( temp 4-component vector of float) +0:133 'uv4' ( uniform 4-component vector of float) +0:134 move second child to first child ( temp bool) +0:134 'b' ( temp bool) +0:134 logical-and ( temp bool) +0:134 'b' ( temp bool) +0:134 any ( global bool) +0:134 Equal ( global 4-component vector of bool) +0:134 'ub41' ( uniform 4-component vector of bool) +0:134 'ub42' ( uniform 4-component vector of bool) +0:135 move second child to first child ( temp bool) +0:135 'b' ( temp bool) +0:135 logical-and ( temp bool) +0:135 'b' ( temp bool) +0:135 any ( global bool) +0:135 NotEqual ( global 4-component vector of bool) +0:135 'ub41' ( uniform 4-component vector of bool) +0:135 'ub42' ( uniform 4-component vector of bool) +0:136 move second child to first child ( temp bool) +0:136 'b' ( temp bool) +0:136 logical-and ( temp bool) +0:136 'b' ( temp bool) +0:136 any ( global bool) +0:136 'ub41' ( uniform 4-component vector of bool) +0:137 move second child to first child ( temp bool) +0:137 'b' ( temp bool) +0:137 logical-and ( temp bool) +0:137 'b' ( temp bool) +0:137 all ( global bool) +0:137 'ub41' ( uniform 4-component vector of bool) +0:138 move second child to first child ( temp bool) +0:138 'b' ( temp bool) +0:138 logical-and ( temp bool) +0:138 'b' ( temp bool) +0:138 any ( global bool) +0:138 Negate conditional ( global 4-component vector of bool) +0:138 'ub41' ( uniform 4-component vector of bool) +0:140 move second child to first child ( temp int) +0:140 'i' ( temp int) +0:140 divide ( temp int) +0:140 subtract ( temp int) +0:140 component-wise multiply ( temp int) +0:140 add ( temp int) +0:140 'i' ( temp int) +0:140 'ui' ( uniform int) +0:140 'i' ( temp int) +0:140 'ui' ( uniform int) +0:140 'i' ( temp int) +0:141 move second child to first child ( temp int) +0:141 'i' ( temp int) +0:141 mod ( temp int) +0:141 'i' ( temp int) +0:141 'ui' ( uniform int) +0:142 Test condition and select ( temp void) +0:142 Condition +0:142 logical-or ( temp bool) +0:142 Compare Equal ( temp bool) +0:142 'i' ( temp int) +0:142 'ui' ( uniform int) +0:142 logical-xor ( temp bool) +0:142 logical-and ( temp bool) +0:142 Compare Not Equal ( temp bool) +0:142 'i' ( temp int) +0:142 'ui' ( uniform int) +0:142 Compare Equal ( temp bool) +0:142 'i' ( temp int) +0:142 'ui' ( uniform int) +0:142 Compare Not Equal ( temp bool) +0:142 'i' ( temp int) +0:142 Constant: +0:142 2 (const int) +0:142 true case +0:143 Pre-Increment ( temp int) +0:143 'i' ( temp int) +0:145 move second child to first child ( temp float) +0:145 'f' ( temp float) +0:145 divide ( temp float) +0:145 subtract ( temp float) +0:145 component-wise multiply ( temp float) +0:145 add ( temp float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:145 'uf' ( uniform float) +0:147 add second child into first child ( temp float) +0:147 'f' ( temp float) +0:147 length ( global float) +0:147 'v' ( temp 4-component vector of float) +0:148 add second child into first child ( temp float) +0:148 'f' ( temp float) +0:148 distance ( global float) +0:148 'v' ( temp 4-component vector of float) +0:148 'v' ( temp 4-component vector of float) +0:149 add second child into first child ( temp float) +0:149 'f' ( temp float) +0:149 dot-product ( global float) +0:149 'v' ( temp 4-component vector of float) +0:149 'v' ( temp 4-component vector of float) +0:150 add second child into first child ( temp float) +0:150 'f' ( temp float) +0:150 dot-product ( global float) +0:150 'f' ( temp float) +0:150 'uf' ( uniform float) +0:151 add second child into first child ( temp float) +0:151 'f' ( temp float) +0:151 direct index ( temp float) +0:151 cross-product ( global 3-component vector of float) +0:151 vector swizzle ( temp 3-component vector of float) +0:151 'v' ( temp 4-component vector of float) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:151 Constant: +0:151 2 (const int) +0:151 vector swizzle ( temp 3-component vector of float) +0:151 'v' ( temp 4-component vector of float) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:151 Constant: +0:151 2 (const int) +0:151 Constant: +0:151 0 (const int) +0:153 Test condition and select ( temp void) +0:153 Condition +0:153 logical-or ( temp bool) +0:153 Compare Equal ( temp bool) +0:153 'f' ( temp float) +0:153 'uf' ( uniform float) +0:153 logical-and ( temp bool) +0:153 Compare Not Equal ( temp bool) +0:153 'f' ( temp float) +0:153 'uf' ( uniform float) +0:153 Compare Not Equal ( temp bool) +0:153 'f' ( temp float) +0:153 Constant: +0:153 2.000000 +0:153 true case +0:154 Pre-Increment ( temp float) +0:154 'f' ( temp float) +0:156 and second child into first child ( temp int) +0:156 'i' ( temp int) +0:156 'ui' ( uniform int) +0:157 or second child into first child ( temp int) +0:157 'i' ( temp int) +0:157 Constant: +0:157 66 (const int) +0:158 exclusive or second child into first child ( temp int) +0:158 'i' ( temp int) +0:158 'ui' ( uniform int) +0:159 mod second child into first child ( temp int) +0:159 'i' ( temp int) +0:159 Constant: +0:159 17 (const int) +0:160 right shift second child into first child ( temp int) +0:160 'i' ( temp int) +0:160 Constant: +0:160 2 (const int) +0:161 left shift second child into first child ( temp int) +0:161 'i' ( temp int) +0:161 'ui' ( uniform int) +0:162 move second child to first child ( temp int) +0:162 'i' ( temp int) +0:162 Bitwise not ( temp int) +0:162 'i' ( temp int) +0:163 move second child to first child ( temp bool) +0:163 'b' ( temp bool) +0:163 Negate conditional ( temp bool) +0:163 'b' ( temp bool) +0:165 move second child to first child ( temp 4-component vector of float) +0:165 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:165 Test condition and select ( temp 4-component vector of float) +0:165 Condition +0:165 'b' ( temp bool) +0:165 true case +0:165 add ( temp 4-component vector of float) +0:165 add ( temp 4-component vector of float) +0:165 Construct vec4 ( temp 4-component vector of float) +0:165 Convert int to float ( temp float) +0:165 'i' ( temp int) +0:165 Construct vec4 ( temp 4-component vector of float) +0:165 'f' ( temp float) +0:165 'v' ( temp 4-component vector of float) +0:165 false case +0:165 'v' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'uiv4' ( uniform 4-component vector of int) +0:? 'uv4' ( uniform 4-component vector of float) +0:? 'ub' ( uniform bool) +0:? 'ub41' ( uniform 4-component vector of bool) +0:? 'ub42' ( uniform 4-component vector of bool) +0:? 'uf' ( uniform float) +0:? 'ui' ( uniform int) +0:? 'uuv4' ( uniform 4-component vector of uint) +0:? 'uui' ( uniform uint) + diff --git a/deps/glslang/glslang/Test/baseResults/aggOps.frag.out b/deps/glslang/glslang/Test/baseResults/aggOps.frag.out new file mode 100644 index 0000000000..eba1bf78cf --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/aggOps.frag.out @@ -0,0 +1,298 @@ +aggOps.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:6: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 3-element array of structure{ global int i, global float f}) +0:27 'a' ( temp 3-element array of structure{ global int i, global float f}) +0:27 Construct structure ( temp 3-element array of structure{ global int i, global float f}) +0:27 Construct structure ( temp structure{ global int i, global float f}) +0:27 Convert float to int ( temp int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 1 (const int) +0:27 Construct structure ( temp structure{ global int i, global float f}) +0:27 Convert float to int ( temp int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 2 (const int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 3 (const int) +0:27 Constant: +0:27 14 (const int) +0:27 14.000000 +0:28 move second child to first child ( temp 3-element array of structure{ global int i, global float f}) +0:28 'b' ( temp 3-element array of structure{ global int i, global float f}) +0:28 Construct structure ( temp 3-element array of structure{ global int i, global float f}) +0:28 Constant: +0:28 17 (const int) +0:28 17.000000 +0:28 Construct structure ( temp structure{ global int i, global float f}) +0:28 Convert float to int ( temp int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 0 (const int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:28 Construct structure ( temp structure{ global int i, global float f}) +0:28 Convert float to int ( temp int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 2 (const int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 3 (const int) +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Compare Equal ( temp bool) +0:30 'foo2a' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:30 'foo2b' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:30 true case +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'v' ( temp 4-component vector of float) +0:31 texture ( global 4-component vector of float) +0:31 'sampler' ( uniform sampler2D) +0:31 'coord' ( smooth in 2-component vector of float) +0:30 false case +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:33 texture ( global 4-component vector of float) +0:33 'sampler' ( uniform sampler2D) +0:33 vector-scale ( temp 2-component vector of float) +0:33 Constant: +0:33 2.000000 +0:33 'coord' ( smooth in 2-component vector of float) +0:35 Test condition and select ( temp void) +0:35 Condition +0:35 Compare Equal ( temp bool) +0:35 'u' ( smooth in 4-component vector of float) +0:35 'v' ( temp 4-component vector of float) +0:35 true case +0:36 vector scale second child into first child ( temp 4-component vector of float) +0:36 'v' ( temp 4-component vector of float) +0:36 Constant: +0:36 3.000000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Not Equal ( temp bool) +0:38 'u' ( smooth in 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:38 true case +0:39 vector scale second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 Constant: +0:39 4.000000 +0:41 Test condition and select ( temp void) +0:41 Condition +0:41 Compare Equal ( temp bool) +0:41 'coord' ( smooth in 2-component vector of float) +0:41 vector swizzle ( temp 2-component vector of float) +0:41 'v' ( temp 4-component vector of float) +0:41 Sequence +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 3 (const int) +0:41 true case +0:42 vector scale second child into first child ( temp 4-component vector of float) +0:42 'v' ( temp 4-component vector of float) +0:42 Constant: +0:42 5.000000 +0:44 Test condition and select ( temp void) +0:44 Condition +0:44 Compare Equal ( temp bool) +0:44 'a' ( temp 3-element array of structure{ global int i, global float f}) +0:44 'b' ( temp 3-element array of structure{ global int i, global float f}) +0:44 true case +0:45 vector scale second child into first child ( temp 4-component vector of float) +0:45 'v' ( temp 4-component vector of float) +0:45 Constant: +0:45 6.000000 +0:47 Test condition and select ( temp void) +0:47 Condition +0:47 Compare Not Equal ( temp bool) +0:47 'a' ( temp 3-element array of structure{ global int i, global float f}) +0:47 'b' ( temp 3-element array of structure{ global int i, global float f}) +0:47 true case +0:48 vector scale second child into first child ( temp 4-component vector of float) +0:48 'v' ( temp 4-component vector of float) +0:48 Constant: +0:48 7.000000 +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:50 'v' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'u' ( smooth in 4-component vector of float) +0:? 'w' ( smooth in 4-component vector of float) +0:? 'foo1' ( uniform structure{ global int i, global float f}) +0:? 'foo2a' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'foo2b' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:23 Function Definition: main( ( global void) +0:23 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 3-element array of structure{ global int i, global float f}) +0:27 'a' ( temp 3-element array of structure{ global int i, global float f}) +0:27 Construct structure ( temp 3-element array of structure{ global int i, global float f}) +0:27 Construct structure ( temp structure{ global int i, global float f}) +0:27 Convert float to int ( temp int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 1 (const int) +0:27 Construct structure ( temp structure{ global int i, global float f}) +0:27 Convert float to int ( temp int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 2 (const int) +0:27 direct index ( temp float) +0:27 'u' ( smooth in 4-component vector of float) +0:27 Constant: +0:27 3 (const int) +0:27 Constant: +0:27 14 (const int) +0:27 14.000000 +0:28 move second child to first child ( temp 3-element array of structure{ global int i, global float f}) +0:28 'b' ( temp 3-element array of structure{ global int i, global float f}) +0:28 Construct structure ( temp 3-element array of structure{ global int i, global float f}) +0:28 Constant: +0:28 17 (const int) +0:28 17.000000 +0:28 Construct structure ( temp structure{ global int i, global float f}) +0:28 Convert float to int ( temp int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 0 (const int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:28 Construct structure ( temp structure{ global int i, global float f}) +0:28 Convert float to int ( temp int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 2 (const int) +0:28 direct index ( temp float) +0:28 'w' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 3 (const int) +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Compare Equal ( temp bool) +0:30 'foo2a' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:30 'foo2b' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:30 true case +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'v' ( temp 4-component vector of float) +0:31 texture ( global 4-component vector of float) +0:31 'sampler' ( uniform sampler2D) +0:31 'coord' ( smooth in 2-component vector of float) +0:30 false case +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:33 texture ( global 4-component vector of float) +0:33 'sampler' ( uniform sampler2D) +0:33 vector-scale ( temp 2-component vector of float) +0:33 Constant: +0:33 2.000000 +0:33 'coord' ( smooth in 2-component vector of float) +0:35 Test condition and select ( temp void) +0:35 Condition +0:35 Compare Equal ( temp bool) +0:35 'u' ( smooth in 4-component vector of float) +0:35 'v' ( temp 4-component vector of float) +0:35 true case +0:36 vector scale second child into first child ( temp 4-component vector of float) +0:36 'v' ( temp 4-component vector of float) +0:36 Constant: +0:36 3.000000 +0:38 Test condition and select ( temp void) +0:38 Condition +0:38 Compare Not Equal ( temp bool) +0:38 'u' ( smooth in 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:38 true case +0:39 vector scale second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 Constant: +0:39 4.000000 +0:41 Test condition and select ( temp void) +0:41 Condition +0:41 Compare Equal ( temp bool) +0:41 'coord' ( smooth in 2-component vector of float) +0:41 vector swizzle ( temp 2-component vector of float) +0:41 'v' ( temp 4-component vector of float) +0:41 Sequence +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 3 (const int) +0:41 true case +0:42 vector scale second child into first child ( temp 4-component vector of float) +0:42 'v' ( temp 4-component vector of float) +0:42 Constant: +0:42 5.000000 +0:44 Test condition and select ( temp void) +0:44 Condition +0:44 Compare Equal ( temp bool) +0:44 'a' ( temp 3-element array of structure{ global int i, global float f}) +0:44 'b' ( temp 3-element array of structure{ global int i, global float f}) +0:44 true case +0:45 vector scale second child into first child ( temp 4-component vector of float) +0:45 'v' ( temp 4-component vector of float) +0:45 Constant: +0:45 6.000000 +0:47 Test condition and select ( temp void) +0:47 Condition +0:47 Compare Not Equal ( temp bool) +0:47 'a' ( temp 3-element array of structure{ global int i, global float f}) +0:47 'b' ( temp 3-element array of structure{ global int i, global float f}) +0:47 true case +0:48 vector scale second child into first child ( temp 4-component vector of float) +0:48 'v' ( temp 4-component vector of float) +0:48 Constant: +0:48 7.000000 +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:50 'v' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'u' ( smooth in 4-component vector of float) +0:? 'w' ( smooth in 4-component vector of float) +0:? 'foo1' ( uniform structure{ global int i, global float f}) +0:? 'foo2a' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'foo2b' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) + diff --git a/deps/glslang/glslang/Test/baseResults/always-discard.frag.out b/deps/glslang/glslang/Test/baseResults/always-discard.frag.out new file mode 100644 index 0000000000..17cd443ec8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/always-discard.frag.out @@ -0,0 +1,239 @@ +always-discard.frag +Shader version: 110 +0:? Sequence +0:4 Function Definition: main( ( global void) +0:4 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'white' ( 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 4-component vector of float) +0:7 'black' ( temp 4-component vector of float) +0:7 Constant: +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'color' ( temp 4-component vector of float) +0:8 'white' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'x' ( temp float) +0:11 subtract ( temp float) +0:11 component-wise multiply ( temp float) +0:11 direct index ( temp float) +0:11 'tex_coord' ( smooth in 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2.000000 +0:11 Constant: +0:11 1.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'y' ( temp float) +0:12 subtract ( temp float) +0:12 component-wise multiply ( temp float) +0:12 direct index ( temp float) +0:12 'tex_coord' ( smooth in 2-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2.000000 +0:12 Constant: +0:12 1.000000 +0:14 Sequence +0:14 move second child to first child ( temp float) +0:14 'radius' ( temp float) +0:14 sqrt ( global float) +0:14 add ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'x' ( temp float) +0:14 'x' ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'y' ( temp float) +0:14 'y' ( temp float) +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Compare Greater Than ( temp bool) +0:15 'radius' ( temp float) +0:15 Constant: +0:15 1.000000 +0:15 true case +0:16 Sequence +0:16 Test condition and select ( temp void) +0:16 Condition +0:16 Compare Greater Than ( temp bool) +0:16 'radius' ( temp float) +0:16 Constant: +0:16 1.100000 +0:16 true case +0:17 Sequence +0:17 Pre-Increment ( temp 4-component vector of float) +0:17 'color' ( temp 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:20 'color' ( temp 4-component vector of float) +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Compare Greater Than ( temp bool) +0:22 'radius' ( temp float) +0:22 Constant: +0:22 1.200000 +0:22 true case +0:23 Sequence +0:23 Pre-Increment ( temp 4-component vector of float) +0:23 'color' ( temp 4-component vector of float) +0:28 Branch: Kill +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Greater Than or Equal ( temp bool) +0:31 'radius' ( temp float) +0:31 Constant: +0:31 0.750000 +0:31 true case +0:32 subtract second child into first child ( temp 4-component vector of float) +0:32 'color' ( temp 4-component vector of float) +0:32 Absolute value ( global float) +0:32 divide ( temp float) +0:32 pow ( global float) +0:32 'radius' ( temp float) +0:32 Constant: +0:32 16.000000 +0:32 Constant: +0:32 2.000000 +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:34 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex_coord' ( smooth in 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:4 Function Definition: main( ( global void) +0:4 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'white' ( 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 4-component vector of float) +0:7 'black' ( temp 4-component vector of float) +0:7 Constant: +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'color' ( temp 4-component vector of float) +0:8 'white' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'x' ( temp float) +0:11 subtract ( temp float) +0:11 component-wise multiply ( temp float) +0:11 direct index ( temp float) +0:11 'tex_coord' ( smooth in 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2.000000 +0:11 Constant: +0:11 1.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'y' ( temp float) +0:12 subtract ( temp float) +0:12 component-wise multiply ( temp float) +0:12 direct index ( temp float) +0:12 'tex_coord' ( smooth in 2-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2.000000 +0:12 Constant: +0:12 1.000000 +0:14 Sequence +0:14 move second child to first child ( temp float) +0:14 'radius' ( temp float) +0:14 sqrt ( global float) +0:14 add ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'x' ( temp float) +0:14 'x' ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'y' ( temp float) +0:14 'y' ( temp float) +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Compare Greater Than ( temp bool) +0:15 'radius' ( temp float) +0:15 Constant: +0:15 1.000000 +0:15 true case +0:16 Sequence +0:16 Test condition and select ( temp void) +0:16 Condition +0:16 Compare Greater Than ( temp bool) +0:16 'radius' ( temp float) +0:16 Constant: +0:16 1.100000 +0:16 true case +0:17 Sequence +0:17 Pre-Increment ( temp 4-component vector of float) +0:17 'color' ( temp 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:20 'color' ( temp 4-component vector of float) +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Compare Greater Than ( temp bool) +0:22 'radius' ( temp float) +0:22 Constant: +0:22 1.200000 +0:22 true case +0:23 Sequence +0:23 Pre-Increment ( temp 4-component vector of float) +0:23 'color' ( temp 4-component vector of float) +0:28 Branch: Kill +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Greater Than or Equal ( temp bool) +0:31 'radius' ( temp float) +0:31 Constant: +0:31 0.750000 +0:31 true case +0:32 subtract second child into first child ( temp 4-component vector of float) +0:32 'color' ( temp 4-component vector of float) +0:32 Absolute value ( global float) +0:32 divide ( temp float) +0:32 pow ( global float) +0:32 'radius' ( temp float) +0:32 Constant: +0:32 16.000000 +0:32 Constant: +0:32 2.000000 +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:34 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex_coord' ( smooth in 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/always-discard2.frag.out b/deps/glslang/glslang/Test/baseResults/always-discard2.frag.out new file mode 100644 index 0000000000..3c7c06f374 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/always-discard2.frag.out @@ -0,0 +1,121 @@ +always-discard2.frag +Shader version: 110 +0:? Sequence +0:4 Function Definition: main( ( global void) +0:4 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'white' ( 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 4-component vector of float) +0:7 'black' ( temp 4-component vector of float) +0:7 Constant: +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'color' ( temp 4-component vector of float) +0:8 'white' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'x' ( temp float) +0:11 subtract ( temp float) +0:11 component-wise multiply ( temp float) +0:11 direct index ( temp float) +0:11 'tex_coord' ( smooth in 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2.000000 +0:11 Constant: +0:11 1.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'y' ( temp float) +0:12 subtract ( temp float) +0:12 component-wise multiply ( temp float) +0:12 direct index ( temp float) +0:12 'tex_coord' ( smooth in 2-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2.000000 +0:12 Constant: +0:12 1.000000 +0:14 Branch: Kill +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:17 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex_coord' ( smooth in 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:4 Function Definition: main( ( global void) +0:4 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'white' ( 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 4-component vector of float) +0:7 'black' ( temp 4-component vector of float) +0:7 Constant: +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'color' ( temp 4-component vector of float) +0:8 'white' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'x' ( temp float) +0:11 subtract ( temp float) +0:11 component-wise multiply ( temp float) +0:11 direct index ( temp float) +0:11 'tex_coord' ( smooth in 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2.000000 +0:11 Constant: +0:11 1.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'y' ( temp float) +0:12 subtract ( temp float) +0:12 component-wise multiply ( temp float) +0:12 direct index ( temp float) +0:12 'tex_coord' ( smooth in 2-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2.000000 +0:12 Constant: +0:12 1.000000 +0:14 Branch: Kill +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:17 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex_coord' ( smooth in 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/array.frag.out b/deps/glslang/glslang/Test/baseResults/array.frag.out new file mode 100644 index 0000000000..2af9f27f71 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/array.frag.out @@ -0,0 +1,480 @@ +array.frag +ERROR: 0:21: '[' : array index out of range '2' +ERROR: 0:27: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:30: 'assign' : cannot convert from ' global 4-element array of float' to ' global 5-element array of float' +ERROR: 0:31: 'assign' : cannot convert from ' global 4-element array of float' to ' global runtime-sized array of float' +ERROR: 0:33: 'foo' : no matching overloaded function found +ERROR: 0:42: '[' : array index out of range '5' +ERROR: 0:45: '[' : array index out of range '1000' +ERROR: 0:46: '[' : index out of range '-1' +ERROR: 0:52: '[' : array index out of range '2' +ERROR: 0:54: 'const' : non-matching or non-convertible constant type for const initializer +ERROR: 0:56: '=' : cannot convert from ' const 2-element array of int' to ' temp 3-element array of int' +ERROR: 0:57: '[]' : scalar integer expression required +ERROR: 0:57: '[' : index out of range '-858993459' +ERROR: 0:58: '[]' : scalar integer expression required +ERROR: 0:61: '' : array size required +ERROR: 0:62: '' : array size required +ERROR: 0:63: '' : array size required +ERROR: 0:66: '=' : cannot convert from ' temp 3-component vector of float' to ' global float' +ERROR: 0:76: 'bar' : no matching overloaded function found +ERROR: 0:79: '' : array size required +ERROR: 0:84: 'return' : type does not match, or is not convertible to, the function's return type +ERROR: 0:93: 'length' : array must be declared with a size before using this method +ERROR: 0:101: '[' : array index out of range '5' +ERROR: 0:104: 'constructor' : array constructor must have at least one argument +ERROR: 0:104: '=' : cannot convert from ' const float' to ' global unsized 1-element array of int' +ERROR: 0:106: 'constructor' : array argument must be sized +ERROR: 0:111: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:111: 'variable indexing sampler array' : not supported with this profile: none +ERROR: 0:112: '[]' : array initializer must be sized +ERROR: 29 compilation errors. No code generated. + + +Shader version: 130 +ERROR: node is still EOpNull! +0:9 Function Definition: foo(f1[5]; ( global 4-element array of float) +0:9 Function Parameters: +0:9 'a' ( in 5-element array of float) +0:11 Sequence +0:11 Branch: Return with expression +0:11 Construct float ( temp 4-element array of float) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 3 (const int) +0:14 Function Definition: bar(f1[5]; ( global void) +0:14 Function Parameters: +0:14 '' ( in 5-element array of float) +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:? Sequence +0:? Sequence +0:21 move second child to first child ( temp float) +0:21 direct index ( temp float) +0:21 'gu' ( temp 2-element array of float) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 4.000000 +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 'gu' ( global runtime-sized array of float) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 4.000000 +0:26 move second child to first child ( temp float) +0:26 direct index ( temp float) +0:26 'gu' ( global runtime-sized array of float) +0:26 Constant: +0:26 3 (const int) +0:26 Constant: +0:26 3.000000 +0:27 move second child to first child ( temp float) +0:27 indirect index ( temp float) +0:27 'gu' ( global runtime-sized array of float) +0:27 'a' ( uniform int) +0:27 Constant: +0:27 5.000000 +0:29 move second child to first child ( temp 4-element array of float) +0:29 'g4' ( global 4-element array of float) +0:29 Function Call: foo(f1[5]; ( global 4-element array of float) +0:29 'g5' ( global 5-element array of float) +0:30 'g5' ( global 5-element array of float) +0:31 'gu' ( global runtime-sized array of float) +0:33 Constant: +0:33 0.000000 +0:34 Function Call: bar(f1[5]; ( global void) +0:34 'g5' ( global 5-element array of float) +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 Compare Equal ( temp bool) +0:36 Constant: +0:36 1.000000 +0:36 2.000000 +0:36 3.000000 +0:36 4.000000 +0:36 'g4' ( global 4-element array of float) +0:36 true case +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 'gu' ( global runtime-sized array of float) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 2.000000 +0:40 move second child to first child ( temp float) +0:40 direct index ( temp float) +0:40 'u' ( temp 5-element array of float) +0:40 Constant: +0:40 2 (const int) +0:40 Constant: +0:40 3.000000 +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 'u' ( temp 5-element array of float) +0:42 Constant: +0:42 5 (const int) +0:42 Constant: +0:42 5.000000 +0:43 Function Call: foo(f1[5]; ( global 4-element array of float) +0:43 'u' ( temp 5-element array of float) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 direct index ( temp 4-component vector of float FragData) +0:45 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:45 Constant: +0:45 1000 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp 4-component vector of float) +0:46 direct index ( temp 4-component vector of float FragData) +0:46 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:46 Constant: +0:46 -1 (const int) +0:46 Constant: +0:46 1.000000 +0:46 1.000000 +0:46 1.000000 +0:46 1.000000 +0:47 move second child to first child ( temp 4-component vector of float) +0:47 direct index ( temp 4-component vector of float FragData) +0:47 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:47 Constant: +0:47 3 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:50 Sequence +0:50 move second child to first child ( temp int) +0:50 'sum' ( temp int) +0:50 Constant: +0:50 3 (const int) +0:51 add second child into first child ( temp int) +0:51 'sum' ( temp int) +0:51 Constant: +0:51 2 (const int) +0:52 add second child into first child ( temp int) +0:52 'sum' ( temp int) +0:52 Constant: +0:52 2 (const int) +0:55 Sequence +0:55 move second child to first child ( temp 2-element array of int) +0:55 'ica' ( temp 2-element array of int) +0:55 Constant: +0:55 3 (const int) +0:55 2 (const int) +0:57 move second child to first child ( temp int) +0:57 direct index ( temp int) +0:57 'ica' ( temp 2-element array of int) +0:57 Constant: +0:57 3.100000 +0:57 Constant: +0:57 3 (const int) +0:58 move second child to first child ( temp int) +0:58 indirect index ( temp int) +0:58 'ica' ( temp 2-element array of int) +0:58 direct index ( temp float) +0:58 'u' ( temp 5-element array of float) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 4 (const int) +0:68 Function Definition: foo( ( global void) +0:68 Function Parameters: +0:? Sequence +0:71 move second child to first child ( temp int) +0:71 direct index ( temp int) +0:71 'uns' ( temp unsized 4-element array of int) +0:71 Constant: +0:71 3 (const int) +0:71 Constant: +0:71 40 (const int) +0:72 move second child to first child ( temp int) +0:72 direct index ( temp int) +0:72 'uns' ( temp unsized 4-element array of int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 30 (const int) +0:73 move second child to first child ( temp 3-component vector of float) +0:73 direct index ( temp 3-component vector of float) +0:73 'guns' ( global unsized 8-element array of 3-component vector of float) +0:73 Constant: +0:73 2 (const int) +0:73 Constant: +0:73 2.400000 +0:73 2.400000 +0:73 2.400000 +0:76 Constant: +0:76 0.000000 +0:79 Function Definition: foo2( ( global unsized 1-element array of float) +0:79 Function Parameters: +0:? Sequence +0:82 Branch: Return with expression +0:82 'f' ( temp unsized 1-element array of float) +0:84 Branch: Return with expression +0:84 'g' ( temp 9-element array of float) +0:89 Function Definition: foo3( ( global void) +0:89 Function Parameters: +0:? Sequence +0:92 move second child to first child ( temp float) +0:92 direct index ( temp float) +0:92 'resize1' ( temp 3-element array of float) +0:92 Constant: +0:92 2 (const int) +0:92 Constant: +0:92 4.000000 +0:93 Constant: +0:93 1 (const int) +0:95 Constant: +0:95 3 (const int) +0:98 move second child to first child ( temp float) +0:98 direct index ( temp float) +0:98 'resize2' ( temp 5-element array of float) +0:98 Constant: +0:98 5 (const int) +0:98 Constant: +0:98 4.000000 +0:100 Constant: +0:100 5 (const int) +0:101 move second child to first child ( temp float) +0:101 direct index ( temp float) +0:101 'resize2' ( temp 5-element array of float) +0:101 Constant: +0:101 5 (const int) +0:101 Constant: +0:101 4.000000 +0:106 Sequence +0:106 move second child to first child ( temp float) +0:106 'b' ( global float) +0:106 Constant: +0:106 0.000000 +0:109 Function Definition: foo4( ( global void) +0:109 Function Parameters: +0:111 Sequence +0:111 indirect index ( temp sampler2D) +0:111 's2d' ( uniform runtime-sized array of sampler2D) +0:111 'a' ( uniform int) +0:112 Sequence +0:112 move second child to first child ( temp unsized 1-element array of float) +0:112 'local' ( temp unsized 1-element array of float) +0:112 'gUnusedUnsized' ( global unsized 1-element array of float) +0:? Linker Objects +0:? 'gu' ( global runtime-sized array of float) +0:? 'g4' ( global 4-element array of float) +0:? 'g5' ( global 5-element array of float) +0:? 'a' ( uniform int) +0:? 'guns' ( global unsized 8-element array of 3-component vector of float) +0:? 'f' ( global float) +0:? 'gUnusedUnsized' ( global unsized 1-element array of float) +0:? 'i' ( global unsized 1-element array of int) +0:? 'emptyA' ( global unsized 1-element array of float) +0:? 'b' ( global float) +0:? 's2d' ( uniform runtime-sized array of sampler2D) + + +Linked fragment stage: + + +Shader version: 130 +ERROR: node is still EOpNull! +0:9 Function Definition: foo(f1[5]; ( global 4-element array of float) +0:9 Function Parameters: +0:9 'a' ( in 5-element array of float) +0:11 Sequence +0:11 Branch: Return with expression +0:11 Construct float ( temp 4-element array of float) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp float) +0:11 'a' ( in 5-element array of float) +0:11 Constant: +0:11 3 (const int) +0:14 Function Definition: bar(f1[5]; ( global void) +0:14 Function Parameters: +0:14 '' ( in 5-element array of float) +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:? Sequence +0:? Sequence +0:21 move second child to first child ( temp float) +0:21 direct index ( temp float) +0:21 'gu' ( temp 2-element array of float) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 4.000000 +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 'gu' ( global runtime-sized array of float) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 4.000000 +0:26 move second child to first child ( temp float) +0:26 direct index ( temp float) +0:26 'gu' ( global runtime-sized array of float) +0:26 Constant: +0:26 3 (const int) +0:26 Constant: +0:26 3.000000 +0:27 move second child to first child ( temp float) +0:27 indirect index ( temp float) +0:27 'gu' ( global runtime-sized array of float) +0:27 'a' ( uniform int) +0:27 Constant: +0:27 5.000000 +0:29 move second child to first child ( temp 4-element array of float) +0:29 'g4' ( global 4-element array of float) +0:29 Function Call: foo(f1[5]; ( global 4-element array of float) +0:29 'g5' ( global 5-element array of float) +0:30 'g5' ( global 5-element array of float) +0:31 'gu' ( global runtime-sized array of float) +0:33 Constant: +0:33 0.000000 +0:34 Function Call: bar(f1[5]; ( global void) +0:34 'g5' ( global 5-element array of float) +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 Compare Equal ( temp bool) +0:36 Constant: +0:36 1.000000 +0:36 2.000000 +0:36 3.000000 +0:36 4.000000 +0:36 'g4' ( global 4-element array of float) +0:36 true case +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 'gu' ( global runtime-sized array of float) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 2.000000 +0:40 move second child to first child ( temp float) +0:40 direct index ( temp float) +0:40 'u' ( temp 5-element array of float) +0:40 Constant: +0:40 2 (const int) +0:40 Constant: +0:40 3.000000 +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 'u' ( temp 5-element array of float) +0:42 Constant: +0:42 5 (const int) +0:42 Constant: +0:42 5.000000 +0:43 Function Call: foo(f1[5]; ( global 4-element array of float) +0:43 'u' ( temp 5-element array of float) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 direct index ( temp 4-component vector of float FragData) +0:45 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:45 Constant: +0:45 1000 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp 4-component vector of float) +0:46 direct index ( temp 4-component vector of float FragData) +0:46 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:46 Constant: +0:46 -1 (const int) +0:46 Constant: +0:46 1.000000 +0:46 1.000000 +0:46 1.000000 +0:46 1.000000 +0:47 move second child to first child ( temp 4-component vector of float) +0:47 direct index ( temp 4-component vector of float FragData) +0:47 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:47 Constant: +0:47 3 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:50 Sequence +0:50 move second child to first child ( temp int) +0:50 'sum' ( temp int) +0:50 Constant: +0:50 3 (const int) +0:51 add second child into first child ( temp int) +0:51 'sum' ( temp int) +0:51 Constant: +0:51 2 (const int) +0:52 add second child into first child ( temp int) +0:52 'sum' ( temp int) +0:52 Constant: +0:52 2 (const int) +0:55 Sequence +0:55 move second child to first child ( temp 2-element array of int) +0:55 'ica' ( temp 2-element array of int) +0:55 Constant: +0:55 3 (const int) +0:55 2 (const int) +0:57 move second child to first child ( temp int) +0:57 direct index ( temp int) +0:57 'ica' ( temp 2-element array of int) +0:57 Constant: +0:57 3.100000 +0:57 Constant: +0:57 3 (const int) +0:58 move second child to first child ( temp int) +0:58 indirect index ( temp int) +0:58 'ica' ( temp 2-element array of int) +0:58 direct index ( temp float) +0:58 'u' ( temp 5-element array of float) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 4 (const int) +0:106 Sequence +0:106 move second child to first child ( temp float) +0:106 'b' ( global float) +0:106 Constant: +0:106 0.000000 +0:? Linker Objects +0:? 'gu' ( global runtime-sized array of float) +0:? 'g4' ( global 4-element array of float) +0:? 'g5' ( global 5-element array of float) +0:? 'a' ( uniform int) +0:? 'guns' ( global 8-element array of 3-component vector of float) +0:? 'f' ( global float) +0:? 'gUnusedUnsized' ( global 1-element array of float) +0:? 'i' ( global 1-element array of int) +0:? 'emptyA' ( global 1-element array of float) +0:? 'b' ( global float) +0:? 's2d' ( uniform runtime-sized array of sampler2D) + diff --git a/deps/glslang/glslang/Test/baseResults/array100.frag.out b/deps/glslang/glslang/Test/baseResults/array100.frag.out new file mode 100644 index 0000000000..e6f9f8dc19 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/array100.frag.out @@ -0,0 +1,273 @@ +array100.frag +ERROR: 0:3: 'float' : type requires declaration of default precision qualifier +ERROR: 0:3: '' : array size required +ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions +ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions +ERROR: 0:9: 'array in function return type' : not supported for this version or the enabled extensions +ERROR: 0:11: 'arrayed constructor' : not supported for this version or the enabled extensions +ERROR: 0:21: '[' : array index out of range '2' +ERROR: 0:24: 'array assignment' : not supported for this version or the enabled extensions +ERROR: 0:25: 'array assignment' : not supported for this version or the enabled extensions +ERROR: 0:25: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global 5-element array of mediump float' +ERROR: 0:26: 'array assignment' : not supported for this version or the enabled extensions +ERROR: 0:26: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global unsized 1-element array of mediump float' +ERROR: 0:28: 'foo' : no matching overloaded function found +ERROR: 0:31: 'arrayed constructor' : not supported for this version or the enabled extensions +ERROR: 0:31: 'array comparison' : not supported for this version or the enabled extensions +ERROR: 0:35: '[' : array index out of range '5' +ERROR: 0:38: '[' : array index out of range '1000' +ERROR: 0:39: '[' : index out of range '-1' +ERROR: 0:53: 'array in function return type' : not supported for this version or the enabled extensions +ERROR: 0:66: 'array assignment' : not supported for this version or the enabled extensions +ERROR: 0:68: 'array assignment' : not supported for this version or the enabled extensions +ERROR: 0:69: 'array initializer' : not supported for this version or the enabled extensions +ERROR: 22 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:9 Function Definition: foo(f1[5]; ( global 4-element array of mediump float) +0:9 Function Parameters: +0:9 'a' ( in 5-element array of mediump float) +0:11 Sequence +0:11 Branch: Return with expression +0:11 Construct float ( temp 4-element array of float) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 3 (const int) +0:14 Function Definition: bar(f1[5]; ( global void) +0:14 Function Parameters: +0:14 '' ( in 5-element array of mediump float) +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:? Sequence +0:? Sequence +0:21 move second child to first child ( temp mediump float) +0:21 direct index ( temp mediump float) +0:21 'gu' ( temp 2-element array of mediump float) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 4.000000 +0:24 move second child to first child ( temp 4-element array of mediump float) +0:24 'g4' ( global 4-element array of mediump float) +0:24 Function Call: foo(f1[5]; ( global 4-element array of mediump float) +0:24 'g5' ( global 5-element array of mediump float) +0:25 'g5' ( global 5-element array of mediump float) +0:26 'gu' ( global unsized 1-element array of mediump float) +0:28 Constant: +0:28 0.000000 +0:29 Function Call: bar(f1[5]; ( global void) +0:29 'g5' ( global 5-element array of mediump float) +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Equal ( temp bool) +0:31 Constant: +0:31 1.000000 +0:31 2.000000 +0:31 3.000000 +0:31 4.000000 +0:31 'g4' ( global 4-element array of mediump float) +0:31 true case +0:32 move second child to first child ( temp mediump float) +0:32 direct index ( temp mediump float) +0:32 'gu' ( global unsized 1-element array of mediump float) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 2.000000 +0:35 move second child to first child ( temp mediump float) +0:35 direct index ( temp mediump float) +0:35 'u' ( temp 5-element array of mediump float) +0:35 Constant: +0:35 5 (const int) +0:35 Constant: +0:35 5.000000 +0:36 Function Call: foo(f1[5]; ( global 4-element array of mediump float) +0:36 'u' ( temp 5-element array of mediump float) +0:38 move second child to first child ( temp mediump 4-component vector of float) +0:38 direct index ( temp mediump 4-component vector of float FragData) +0:38 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) +0:38 Constant: +0:38 1000 (const int) +0:38 Constant: +0:38 1.000000 +0:38 1.000000 +0:38 1.000000 +0:38 1.000000 +0:39 move second child to first child ( temp mediump 4-component vector of float) +0:39 direct index ( temp mediump 4-component vector of float FragData) +0:39 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) +0:39 Constant: +0:39 -1 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp mediump 4-component vector of float) +0:40 direct index ( temp mediump 4-component vector of float FragData) +0:40 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) +0:40 Constant: +0:40 3 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:53 Function Definition: bar9( ( global structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:53 Function Parameters: +0:? Sequence +0:56 Branch: Return with expression +0:56 's' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:59 Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; ( global void) +0:59 Function Parameters: +0:59 's' ( in structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:63 Function Definition: bar11( ( global void) +0:63 Function Parameters: +0:? Sequence +0:66 move second child to first child ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:66 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:66 's2' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:67 Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; ( global void) +0:67 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:68 move second child to first child ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:68 's2' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:68 Function Call: bar9( ( global structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:69 Sequence +0:69 move second child to first child ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:69 'initSb' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:69 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) +0:? Linker Objects +0:? 'gu' ( global unsized 1-element array of mediump float) +0:? 'g4' ( global 4-element array of mediump float) +0:? 'g5' ( global 5-element array of mediump float) +0:? 'a' ( uniform mediump int) + + +Linked fragment stage: + + +Shader version: 100 +ERROR: node is still EOpNull! +0:9 Function Definition: foo(f1[5]; ( global 4-element array of mediump float) +0:9 Function Parameters: +0:9 'a' ( in 5-element array of mediump float) +0:11 Sequence +0:11 Branch: Return with expression +0:11 Construct float ( temp 4-element array of float) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp mediump float) +0:11 'a' ( in 5-element array of mediump float) +0:11 Constant: +0:11 3 (const int) +0:14 Function Definition: bar(f1[5]; ( global void) +0:14 Function Parameters: +0:14 '' ( in 5-element array of mediump float) +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:? Sequence +0:? Sequence +0:21 move second child to first child ( temp mediump float) +0:21 direct index ( temp mediump float) +0:21 'gu' ( temp 2-element array of mediump float) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 4.000000 +0:24 move second child to first child ( temp 4-element array of mediump float) +0:24 'g4' ( global 4-element array of mediump float) +0:24 Function Call: foo(f1[5]; ( global 4-element array of mediump float) +0:24 'g5' ( global 5-element array of mediump float) +0:25 'g5' ( global 5-element array of mediump float) +0:26 'gu' ( global 1-element array of mediump float) +0:28 Constant: +0:28 0.000000 +0:29 Function Call: bar(f1[5]; ( global void) +0:29 'g5' ( global 5-element array of mediump float) +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Equal ( temp bool) +0:31 Constant: +0:31 1.000000 +0:31 2.000000 +0:31 3.000000 +0:31 4.000000 +0:31 'g4' ( global 4-element array of mediump float) +0:31 true case +0:32 move second child to first child ( temp mediump float) +0:32 direct index ( temp mediump float) +0:32 'gu' ( global 1-element array of mediump float) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 2.000000 +0:35 move second child to first child ( temp mediump float) +0:35 direct index ( temp mediump float) +0:35 'u' ( temp 5-element array of mediump float) +0:35 Constant: +0:35 5 (const int) +0:35 Constant: +0:35 5.000000 +0:36 Function Call: foo(f1[5]; ( global 4-element array of mediump float) +0:36 'u' ( temp 5-element array of mediump float) +0:38 move second child to first child ( temp mediump 4-component vector of float) +0:38 direct index ( temp mediump 4-component vector of float FragData) +0:38 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) +0:38 Constant: +0:38 1000 (const int) +0:38 Constant: +0:38 1.000000 +0:38 1.000000 +0:38 1.000000 +0:38 1.000000 +0:39 move second child to first child ( temp mediump 4-component vector of float) +0:39 direct index ( temp mediump 4-component vector of float FragData) +0:39 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) +0:39 Constant: +0:39 -1 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp mediump 4-component vector of float) +0:40 direct index ( temp mediump 4-component vector of float FragData) +0:40 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) +0:40 Constant: +0:40 3 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:? Linker Objects +0:? 'gu' ( global 1-element array of mediump float) +0:? 'g4' ( global 4-element array of mediump float) +0:? 'g5' ( global 5-element array of mediump float) +0:? 'a' ( uniform mediump int) + diff --git a/deps/glslang/glslang/Test/baseResults/atomic_uint.frag.out b/deps/glslang/glslang/Test/baseResults/atomic_uint.frag.out new file mode 100644 index 0000000000..c705a063e8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/atomic_uint.frag.out @@ -0,0 +1,107 @@ +atomic_uint.frag +ERROR: 0:10: 'atomic_uint' : samplers and atomic_uints cannot be output parameters +ERROR: 0:12: 'return' : type does not match, or is not convertible to, the function's return type +ERROR: 0:18: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter +ERROR: 0:23: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:28: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout( binding=0 offset=0) uniform atomic_uint' and a right operand of type 'layout( binding=0 offset=0) uniform atomic_uint' (or there is no acceptable conversion) +ERROR: 0:29: '-' : wrong operand type no operation '-' exists that takes an operand of type layout( binding=0 offset=0) uniform atomic_uint (or there is no acceptable conversion) +ERROR: 0:31: '[]' : scalar integer expression required +ERROR: 0:34: 'assign' : l-value required "counter" (can't modify a uniform) +ERROR: 0:34: 'assign' : cannot convert from ' const int' to 'layout( binding=0 offset=0) uniform atomic_uint' +ERROR: 0:37: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acin +ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg +ERROR: 0:47: 'offset' : atomic counters sharing the same offset: 12 +ERROR: 0:48: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 13 compilation errors. No code generated. + + +Shader version: 420 +ERROR: node is still EOpNull! +0:5 Function Definition: func(au1; ( global uint) +0:5 Function Parameters: +0:5 'c' ( in atomic_uint) +0:7 Sequence +0:7 Branch: Return with expression +0:7 AtomicCounterIncrement ( global uint) +0:7 'c' ( in atomic_uint) +0:10 Function Definition: func2(au1; ( global uint) +0:10 Function Parameters: +0:10 'c' ( out atomic_uint) +0:12 Sequence +0:12 Branch: Return with expression +0:12 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:13 Branch: Return with expression +0:13 AtomicCounter ( global uint) +0:13 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp uint) +0:19 'val' ( temp uint) +0:19 AtomicCounter ( global uint) +0:19 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:20 AtomicCounterDecrement ( global uint) +0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:26 Function Definition: opac( ( global void) +0:26 Function Parameters: +0:28 Sequence +0:28 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:29 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:31 indirect index ( temp int) +0:31 'a' ( temp 3-element array of int) +0:31 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:32 direct index (layout( binding=1 offset=3) temp atomic_uint) +0:32 'countArr' (layout( binding=1 offset=3) uniform 4-element array of atomic_uint) +0:32 Constant: +0:32 2 (const int) +0:33 indirect index (layout( binding=1 offset=3) temp atomic_uint) +0:33 'countArr' (layout( binding=1 offset=3) uniform 4-element array of atomic_uint) +0:33 'i' ( uniform int) +0:34 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:? Linker Objects +0:? 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:? 'countArr' (layout( binding=1 offset=3) uniform 4-element array of atomic_uint) +0:? 'i' ( uniform int) +0:? 'acin' ( smooth in atomic_uint) +0:? 'acg' ( global atomic_uint) +0:? 'aNoBind' ( uniform atomic_uint) +0:? 'aOffset' (layout( binding=0 offset=32) uniform atomic_uint) +0:? 'bar3' (layout( binding=0 offset=4) uniform atomic_uint) +0:? 'ac' (layout( binding=0 offset=8) uniform 3-element array of atomic_uint) +0:? 'ad' (layout( binding=0 offset=20) uniform atomic_uint) +0:? 'bar4' (layout( offset=8) uniform atomic_uint) +0:? 'overlap' (layout( binding=0 offset=12) uniform atomic_uint) +0:? 'bigBind' (layout( binding=20) uniform atomic_uint) + + +Linked fragment stage: + + +Shader version: 420 +ERROR: node is still EOpNull! +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp uint) +0:19 'val' ( temp uint) +0:19 AtomicCounter ( global uint) +0:19 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:20 AtomicCounterDecrement ( global uint) +0:20 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:? Linker Objects +0:? 'counter' (layout( binding=0 offset=0) uniform atomic_uint) +0:? 'countArr' (layout( binding=1 offset=3) uniform 4-element array of atomic_uint) +0:? 'i' ( uniform int) +0:? 'acin' ( smooth in atomic_uint) +0:? 'acg' ( global atomic_uint) +0:? 'aNoBind' ( uniform atomic_uint) +0:? 'aOffset' (layout( binding=0 offset=32) uniform atomic_uint) +0:? 'bar3' (layout( binding=0 offset=4) uniform atomic_uint) +0:? 'ac' (layout( binding=0 offset=8) uniform 3-element array of atomic_uint) +0:? 'ad' (layout( binding=0 offset=20) uniform atomic_uint) +0:? 'bar4' (layout( offset=8) uniform atomic_uint) +0:? 'overlap' (layout( binding=0 offset=12) uniform atomic_uint) +0:? 'bigBind' (layout( binding=20) uniform atomic_uint) + diff --git a/deps/glslang/glslang/Test/baseResults/badChars.frag.out b/deps/glslang/glslang/Test/baseResults/badChars.frag.out new file mode 100644 index 0000000000..e3fec617a9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/badChars.frag.out @@ -0,0 +1,27 @@ +badChars.frag +ERROR: 0:1: 'preprocessor evaluation' : bad expression +ERROR: 0:1: '#if' : unexpected tokens following directive +ERROR: 0:3: '#error' : A B +ERROR: 0:4: 'preprocessor evaluation' : bad expression +ERROR: 0:4: '#if' : unexpected tokens following directive +ERROR: 0:6: '€' : unexpected token +ERROR: 0:7: 'string' : End of line in string +ERROR: 0:7: '' : syntax error, unexpected INT, expecting COMMA or SEMICOLON +ERROR: 8 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'a' ( global mediump int) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'a' ( global mediump int) + diff --git a/deps/glslang/glslang/Test/baseResults/badMacroArgs.frag.out b/deps/glslang/glslang/Test/baseResults/badMacroArgs.frag.out new file mode 100644 index 0000000000..5e6233f8d2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/badMacroArgs.frag.out @@ -0,0 +1,6 @@ +badMacroArgs.frag +ERROR: 0:4: 'macro expansion' : Too few args in Macro m +ERROR: 0:4: '' : compilation terminated +ERROR: 2 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/comment.frag.out b/deps/glslang/glslang/Test/baseResults/comment.frag.out new file mode 100644 index 0000000000..b1a00ff517 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/comment.frag.out @@ -0,0 +1,22 @@ +comment.frag +WARNING: 0:10: 'line continuation' : used at end of comment; the following line is still part of the comment +WARNING: 0:12: 'line continuation' : used at end of comment; the following line is still part of the comment + +Shader version: 430 +0:? Sequence +0:17 Function Definition: main( ( global void) +0:17 Function Parameters: +0:? Linker Objects +0:? 'v' ( smooth in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 430 +0:? Sequence +0:17 Function Definition: main( ( global void) +0:17 Function Parameters: +0:? Linker Objects +0:? 'v' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/compoundsuffix.frag.hlsl b/deps/glslang/glslang/Test/baseResults/compoundsuffix.frag.hlsl new file mode 100644 index 0000000000..f47c97dc8e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/compoundsuffix.frag.hlsl @@ -0,0 +1,45 @@ +compoundsuffix.frag.hlsl +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "fragColor" + Name 15 "fragColor" + Name 16 "param" + Name 20 "fragColor" + Decorate 20(fragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 13: 6(float) Constant 1065353216 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 19: TypePointer Output 7(fvec4) + 20(fragColor): 19(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 15(fragColor): 8(ptr) Variable Function + 16(param): 8(ptr) Variable Function + 17: 2 FunctionCall 11(@main(vf4;) 16(param) + 18: 7(fvec4) Load 16(param) + Store 15(fragColor) 18 + 21: 7(fvec4) Load 15(fragColor) + Store 20(fragColor) 21 + Return + FunctionEnd + 11(@main(vf4;): 2 Function None 9 + 10(fragColor): 8(ptr) FunctionParameter + 12: Label + Store 10(fragColor) 14 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/compoundsuffix.vert.glsl b/deps/glslang/glslang/Test/baseResults/compoundsuffix.vert.glsl new file mode 100644 index 0000000000..58354a409d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/compoundsuffix.vert.glsl @@ -0,0 +1,15 @@ +compoundsuffix.vert.glsl +Shader version: 100 +0:? Sequence +0:1 Function Definition: main( ( global void) +0:1 Function Parameters: +0:3 Sequence +0:3 move second child to first child ( temp highp 4-component vector of float) +0:3 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:3 Constant: +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out new file mode 100644 index 0000000000..255d9c4dea --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/conditionalDiscard.frag.out @@ -0,0 +1,63 @@ +conditionalDiscard.frag +Shader version: 110 +0:? Sequence +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'v' ( temp 4-component vector of float) +0:8 texture ( global 4-component vector of float) +0:8 'tex' ( uniform sampler2D) +0:8 'coord' ( smooth in 2-component vector of float) +0:10 Test condition and select ( temp void) +0:10 Condition +0:10 Compare Equal ( temp bool) +0:10 'v' ( temp 4-component vector of float) +0:10 Constant: +0:10 0.100000 +0:10 0.200000 +0:10 0.300000 +0:10 0.400000 +0:10 true case +0:11 Branch: Kill +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:13 'v' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:8 Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'v' ( temp 4-component vector of float) +0:8 texture ( global 4-component vector of float) +0:8 'tex' ( uniform sampler2D) +0:8 'coord' ( smooth in 2-component vector of float) +0:10 Test condition and select ( temp void) +0:10 Condition +0:10 Compare Equal ( temp bool) +0:10 'v' ( temp 4-component vector of float) +0:10 Constant: +0:10 0.100000 +0:10 0.200000 +0:10 0.300000 +0:10 0.400000 +0:10 true case +0:11 Branch: Kill +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:13 'v' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/constErrors.frag.out b/deps/glslang/glslang/Test/baseResults/constErrors.frag.out new file mode 100644 index 0000000000..0b2dc62f8a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/constErrors.frag.out @@ -0,0 +1,54 @@ +constErrors.frag +ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions +ERROR: 0:17: '' : array size must be a constant integer expression +ERROR: 0:18: '' : array size must be a constant integer expression +ERROR: 0:19: '' : array size must be a constant integer expression +ERROR: 0:27: '=' : global const initializers must be constant ' const structure{ global 3-component vector of float v3, global 2-component vector of int iv2}' +ERROR: 0:33: '=' : global const initializers must be constant ' const structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}' +ERROR: 6 compilation errors. No code generated. + + +Shader version: 330 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a3' ( const (read only) int) +0:14 'uniformInt' ( uniform int) +0:? Linker Objects +0:? 'inVar' ( smooth in 4-component vector of float) +0:? 'outVar' ( out 4-component vector of float) +0:? 'constInt' ( const int) +0:? 3 (const int) +0:? 'uniformInt' ( uniform int) +0:? 's' ( temp structure{ global 3-component vector of float v3, global 2-component vector of int iv2}) +0:? 's2' ( temp structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}) +0:? 'f' ( const float) +0:? 3.000000 + + +Linked fragment stage: + + +Shader version: 330 +ERROR: node is still EOpNull! +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a3' ( const (read only) int) +0:14 'uniformInt' ( uniform int) +0:? Linker Objects +0:? 'inVar' ( smooth in 4-component vector of float) +0:? 'outVar' ( out 4-component vector of float) +0:? 'constInt' ( const int) +0:? 3 (const int) +0:? 'uniformInt' ( uniform int) +0:? 's' ( temp structure{ global 3-component vector of float v3, global 2-component vector of int iv2}) +0:? 's2' ( temp structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}) +0:? 'f' ( const float) +0:? 3.000000 + diff --git a/deps/glslang/glslang/Test/baseResults/constFold.frag.out b/deps/glslang/glslang/Test/baseResults/constFold.frag.out new file mode 100644 index 0000000000..33cfcbafed --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/constFold.frag.out @@ -0,0 +1,656 @@ +constFold.frag +ERROR: 0:109: '[' : index out of range '-1' +ERROR: 0:110: '[' : vector index out of range '4' +ERROR: 0:111: '[' : index out of range '-2' +ERROR: 0:112: '[' : index out of range '-1' +ERROR: 0:113: '[' : vector index out of range '3' +ERROR: 0:114: '[' : matrix index out of range '3' +ERROR: 6 compilation errors. No code generated. + + +Shader version: 430 +ERROR: node is still EOpNull! +0:28 Function Definition: main( ( global void) +0:28 Function Parameters: +0:30 Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:30 'dx' ( temp 4-component vector of float) +0:30 dPdx ( global 4-component vector of float) +0:30 'inv' ( smooth in 4-component vector of float) +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'FragColor' ( out 4-component vector of float) +0:37 Constant: +0:37 2.000000 +0:37 6.000000 +0:37 3.000000 +0:37 171.887339 +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'FragColor' ( out 4-component vector of float) +0:42 Constant: +0:42 3.000000 +0:42 2.000000 +0:42 0.001593 +0:42 -0.999999 +0:43 move second child to first child ( temp 2-component vector of float) +0:43 'out2' ( out 2-component vector of float) +0:43 Constant: +0:43 5.600000 +0:43 5.800000 +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'out3' ( out 4-component vector of float) +0:44 Constant: +0:44 20.085537 +0:44 2.302585 +0:44 16.000000 +0:44 8.000000 +0:45 move second child to first child ( temp 4-component vector of float) +0:45 'out4' ( out 4-component vector of float) +0:45 Constant: +0:45 10.000000 +0:45 0.100000 +0:45 4.700000 +0:45 10.900000 +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'out5' ( out 4-component vector of int) +0:46 Constant: +0:46 8 (const int) +0:46 17 (const int) +0:46 -1 (const int) +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 'out6' ( out 3-component vector of float) +0:47 Constant: +0:47 -1.000000 +0:47 1.000000 +0:47 0.000000 +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'out7' ( out 4-component vector of float) +0:48 Constant: +0:48 4.000000 +0:48 -4.000000 +0:48 5.000000 +0:48 -5.000000 +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'out8' ( out 4-component vector of float) +0:49 Constant: +0:49 4.000000 +0:49 5.000000 +0:49 4.000000 +0:49 -6.000000 +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'out9' ( out 4-component vector of float) +0:50 Constant: +0:50 8.000000 +0:50 -4.000000 +0:50 0.345000 +0:50 0.400000 +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'out10' ( out 4-component vector of float) +0:51 Constant: +0:51 1.000000 +0:51 1.000000 +0:51 0.000000 +0:51 0.000000 +0:52 move second child to first child ( temp 4-component vector of float) +0:52 'out11' ( out 4-component vector of float) +0:52 Constant: +0:52 0.000000 +0:52 0.000000 +0:52 1.000000 +0:52 0.000000 +0:53 move second child to first child ( temp 4-component vector of float) +0:53 'out11' ( out 4-component vector of float) +0:53 Constant: +0:53 1.029639 +0:53 0.799690 +0:53 0.674741 +0:53 1.570696 +0:54 move second child to first child ( temp 4-component vector of float) +0:54 'out11' ( out 4-component vector of float) +0:54 Constant: +0:54 0.000000 +0:54 0.523599 +0:54 1.570796 +0:54 1.047198 +0:58 move second child to first child ( temp 4-component vector of float) +0:58 'out11' ( out 4-component vector of float) +0:58 Constant: +0:58 1.373401 +0:58 0.000000 +0:58 0.896055 +0:58 -0.380506 +0:62 move second child to first child ( temp 2-component vector of int) +0:62 'out12' ( out 2-component vector of int) +0:62 Constant: +0:62 15 (const int) +0:62 16 (const int) +0:63 move second child to first child ( temp 2-component vector of int) +0:63 'out12' ( out 2-component vector of int) +0:63 Constant: +0:63 17 (const int) +0:63 17 (const int) +0:64 move second child to first child ( temp 2-component vector of float) +0:64 'out2' ( out 2-component vector of float) +0:64 Constant: +0:64 871.421253 +0:64 4913.000000 +0:65 move second child to first child ( temp 3-component vector of uint) +0:65 'out13' ( out 3-component vector of uint) +0:65 Constant: +0:65 10 (const uint) +0:65 20 (const uint) +0:65 30 (const uint) +0:66 move second child to first child ( temp 2-component vector of float) +0:66 'out2' ( out 2-component vector of float) +0:66 Constant: +0:66 3.000000 +0:66 6.000000 +0:67 move second child to first child ( temp 2-component vector of float) +0:67 'out2' ( out 2-component vector of float) +0:67 Constant: +0:67 3.500000 +0:67 4.500000 +0:68 move second child to first child ( temp 2-component vector of float) +0:68 'out2' ( out 2-component vector of float) +0:68 Constant: +0:68 0.000000 +0:68 1.000000 +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'out11' ( out 4-component vector of float) +0:69 Constant: +0:69 0.000000 +0:69 0.028000 +0:69 0.500000 +0:69 1.000000 +0:78 Function Definition: foo( ( global void) +0:78 Function Parameters: +0:? Sequence +0:81 move second child to first child ( temp float) +0:81 direct index ( temp float) +0:81 'a' ( temp 3-element array of float) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 7.000000 +0:82 Constant: +0:82 2 (const int) +0:83 Constant: +0:83 2147483647 (const int) +0:84 Constant: +0:84 +1.#INF +0:88 Constant: +0:88 2 (const uint) +0:88 3 (const uint) +0:89 Constant: +0:89 0 (const uint) +0:90 Constant: +0:90 6 (const uint) +0:90 7 (const uint) +0:103 Function Definition: foo2( ( global void) +0:103 Function Parameters: +0:105 Sequence +0:105 direct index ( temp float) +0:105 'a1' ( global 1-element array of float) +0:105 Constant: +0:105 0 (const int) +0:106 direct index ( temp float) +0:106 'a2' ( global 2-element array of float) +0:106 Constant: +0:106 0 (const int) +0:107 direct index ( temp float) +0:107 'a3' ( global 4-element array of float) +0:107 Constant: +0:107 0 (const int) +0:108 direct index ( temp float) +0:108 'a4' ( global 2-element array of float) +0:108 Constant: +0:108 0 (const int) +0:109 Constant: +0:109 1.000000 +0:110 Constant: +0:110 5.000000 +0:111 Constant: +0:111 2.000000 +0:112 Constant: +0:112 3.000000 +0:113 Constant: +0:113 0.000000 +0:114 Constant: +0:114 0.000000 +0:116 move second child to first child ( temp int) +0:116 'p' ( temp int) +0:116 Constant: +0:116 2147483647 (const int) +0:117 move second child to first child ( temp int) +0:117 'p' ( temp int) +0:117 Constant: +0:117 -2147483648 (const int) +0:118 move second child to first child ( temp int) +0:118 'p' ( temp int) +0:118 Constant: +0:118 -2147483647 (const int) +0:119 Sequence +0:119 move second child to first child ( temp float) +0:119 'f' ( temp float) +0:119 Constant: +0:119 1.444000 +0:120 move second child to first child ( temp float) +0:120 'f' ( temp float) +0:120 direct index ( temp float) +0:120 Construct vec4 ( temp 4-component vector of float) +0:120 Test condition and select ( temp float) +0:120 Condition +0:120 Compare Less Than ( temp bool) +0:120 direct index ( temp float) +0:120 'inv' ( smooth in 4-component vector of float) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 2.400000 +0:120 true case +0:120 Constant: +0:120 -1.000000 +0:120 false case +0:120 Constant: +0:120 1.000000 +0:120 Constant: +0:120 3 (const int) +0:126 Function Definition: foo3( ( global void) +0:126 Function Parameters: +0:128 Sequence +0:128 Sequence +0:128 move second child to first child ( temp 3X2 matrix of float) +0:128 'r32' ( temp 3X2 matrix of float) +0:128 Constant: +0:128 43.000000 +0:128 64.000000 +0:128 51.000000 +0:128 76.000000 +0:128 59.000000 +0:128 88.000000 +0:138 Function Definition: foo4( ( global void) +0:138 Function Parameters: +0:140 Sequence +0:140 Sequence +0:140 move second child to first child ( temp int) +0:140 'a' ( temp int) +0:140 Constant: +0:140 9 (const int) +0:? Linker Objects +0:? 'a' ( const int) +0:? 1 (const int) +0:? 'b' ( const int) +0:? 2 (const int) +0:? 'c' ( const int) +0:? 3 (const int) +0:? 'd' ( const int) +0:? 2 (const int) +0:? 'e' ( const float) +0:? 2.000000 +0:? 'f' ( const float) +0:? 6.000000 +0:? 'g' ( const float) +0:? 3.000000 +0:? 'pytho' ( const 2-component vector of float) +0:? 3.000000 +0:? 4.000000 +0:? 'inv' ( smooth in 4-component vector of float) +0:? 'FragColor' ( out 4-component vector of float) +0:? 'out2' ( out 2-component vector of float) +0:? 'out3' ( out 4-component vector of float) +0:? 'out4' ( out 4-component vector of float) +0:? 'out5' ( out 4-component vector of int) +0:? 'out6' ( out 3-component vector of float) +0:? 'out7' ( out 4-component vector of float) +0:? 'out8' ( out 4-component vector of float) +0:? 'out9' ( out 4-component vector of float) +0:? 'out10' ( out 4-component vector of float) +0:? 'out11' ( out 4-component vector of float) +0:? 'out12' ( out 2-component vector of int) +0:? 'out13' ( out 3-component vector of uint) +0:? 's' ( const structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}) +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3 (const int) +0:? 3 (const int) +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:? 'm2' ( const 2X2 matrix of float) +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 'm3' ( const 3X3 matrix of float) +0:? 2.000000 +0:? 3.000000 +0:? 0.000000 +0:? 4.000000 +0:? 5.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'mc' ( const int) +0:? 1 (const int) +0:? 'a1' ( global 1-element array of float) +0:? 'a2' ( global 2-element array of float) +0:? 'a3' ( global 4-element array of float) +0:? 'v2' ( const 2-component vector of float) +0:? 1.000000 +0:? 2.000000 +0:? 'v3' ( const 3-component vector of float) +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 'a4' ( global 2-element array of float) +0:? 'mm2' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 'mm32' ( const 3X2 matrix of float) +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:? 13.000000 +0:? 14.000000 +0:? 15.000000 +0:? 'a0' ( const 3-element array of structure{ global int i, global float f, global bool b}) +0:? 3 (const int) +0:? 2.000000 +0:? true (const bool) +0:? 1 (const int) +0:? 5.000000 +0:? true (const bool) +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: + + +Shader version: 430 +ERROR: node is still EOpNull! +0:28 Function Definition: main( ( global void) +0:28 Function Parameters: +0:30 Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:30 'dx' ( temp 4-component vector of float) +0:30 dPdx ( global 4-component vector of float) +0:30 'inv' ( smooth in 4-component vector of float) +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'FragColor' ( out 4-component vector of float) +0:37 Constant: +0:37 2.000000 +0:37 6.000000 +0:37 3.000000 +0:37 171.887339 +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'FragColor' ( out 4-component vector of float) +0:42 Constant: +0:42 3.000000 +0:42 2.000000 +0:42 0.001593 +0:42 -0.999999 +0:43 move second child to first child ( temp 2-component vector of float) +0:43 'out2' ( out 2-component vector of float) +0:43 Constant: +0:43 5.600000 +0:43 5.800000 +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'out3' ( out 4-component vector of float) +0:44 Constant: +0:44 20.085537 +0:44 2.302585 +0:44 16.000000 +0:44 8.000000 +0:45 move second child to first child ( temp 4-component vector of float) +0:45 'out4' ( out 4-component vector of float) +0:45 Constant: +0:45 10.000000 +0:45 0.100000 +0:45 4.700000 +0:45 10.900000 +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'out5' ( out 4-component vector of int) +0:46 Constant: +0:46 8 (const int) +0:46 17 (const int) +0:46 -1 (const int) +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 'out6' ( out 3-component vector of float) +0:47 Constant: +0:47 -1.000000 +0:47 1.000000 +0:47 0.000000 +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'out7' ( out 4-component vector of float) +0:48 Constant: +0:48 4.000000 +0:48 -4.000000 +0:48 5.000000 +0:48 -5.000000 +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'out8' ( out 4-component vector of float) +0:49 Constant: +0:49 4.000000 +0:49 5.000000 +0:49 4.000000 +0:49 -6.000000 +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'out9' ( out 4-component vector of float) +0:50 Constant: +0:50 8.000000 +0:50 -4.000000 +0:50 0.345000 +0:50 0.400000 +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'out10' ( out 4-component vector of float) +0:51 Constant: +0:51 1.000000 +0:51 1.000000 +0:51 0.000000 +0:51 0.000000 +0:52 move second child to first child ( temp 4-component vector of float) +0:52 'out11' ( out 4-component vector of float) +0:52 Constant: +0:52 0.000000 +0:52 0.000000 +0:52 1.000000 +0:52 0.000000 +0:53 move second child to first child ( temp 4-component vector of float) +0:53 'out11' ( out 4-component vector of float) +0:53 Constant: +0:53 1.029639 +0:53 0.799690 +0:53 0.674741 +0:53 1.570696 +0:54 move second child to first child ( temp 4-component vector of float) +0:54 'out11' ( out 4-component vector of float) +0:54 Constant: +0:54 0.000000 +0:54 0.523599 +0:54 1.570796 +0:54 1.047198 +0:58 move second child to first child ( temp 4-component vector of float) +0:58 'out11' ( out 4-component vector of float) +0:58 Constant: +0:58 1.373401 +0:58 0.000000 +0:58 0.896055 +0:58 -0.380506 +0:62 move second child to first child ( temp 2-component vector of int) +0:62 'out12' ( out 2-component vector of int) +0:62 Constant: +0:62 15 (const int) +0:62 16 (const int) +0:63 move second child to first child ( temp 2-component vector of int) +0:63 'out12' ( out 2-component vector of int) +0:63 Constant: +0:63 17 (const int) +0:63 17 (const int) +0:64 move second child to first child ( temp 2-component vector of float) +0:64 'out2' ( out 2-component vector of float) +0:64 Constant: +0:64 871.421253 +0:64 4913.000000 +0:65 move second child to first child ( temp 3-component vector of uint) +0:65 'out13' ( out 3-component vector of uint) +0:65 Constant: +0:65 10 (const uint) +0:65 20 (const uint) +0:65 30 (const uint) +0:66 move second child to first child ( temp 2-component vector of float) +0:66 'out2' ( out 2-component vector of float) +0:66 Constant: +0:66 3.000000 +0:66 6.000000 +0:67 move second child to first child ( temp 2-component vector of float) +0:67 'out2' ( out 2-component vector of float) +0:67 Constant: +0:67 3.500000 +0:67 4.500000 +0:68 move second child to first child ( temp 2-component vector of float) +0:68 'out2' ( out 2-component vector of float) +0:68 Constant: +0:68 0.000000 +0:68 1.000000 +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'out11' ( out 4-component vector of float) +0:69 Constant: +0:69 0.000000 +0:69 0.028000 +0:69 0.500000 +0:69 1.000000 +0:? Linker Objects +0:? 'a' ( const int) +0:? 1 (const int) +0:? 'b' ( const int) +0:? 2 (const int) +0:? 'c' ( const int) +0:? 3 (const int) +0:? 'd' ( const int) +0:? 2 (const int) +0:? 'e' ( const float) +0:? 2.000000 +0:? 'f' ( const float) +0:? 6.000000 +0:? 'g' ( const float) +0:? 3.000000 +0:? 'pytho' ( const 2-component vector of float) +0:? 3.000000 +0:? 4.000000 +0:? 'inv' ( smooth in 4-component vector of float) +0:? 'FragColor' ( out 4-component vector of float) +0:? 'out2' ( out 2-component vector of float) +0:? 'out3' ( out 4-component vector of float) +0:? 'out4' ( out 4-component vector of float) +0:? 'out5' ( out 4-component vector of int) +0:? 'out6' ( out 3-component vector of float) +0:? 'out7' ( out 4-component vector of float) +0:? 'out8' ( out 4-component vector of float) +0:? 'out9' ( out 4-component vector of float) +0:? 'out10' ( out 4-component vector of float) +0:? 'out11' ( out 4-component vector of float) +0:? 'out12' ( out 2-component vector of int) +0:? 'out13' ( out 3-component vector of uint) +0:? 's' ( const structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}) +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3 (const int) +0:? 3 (const int) +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:? 'm2' ( const 2X2 matrix of float) +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 'm3' ( const 3X3 matrix of float) +0:? 2.000000 +0:? 3.000000 +0:? 0.000000 +0:? 4.000000 +0:? 5.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'mc' ( const int) +0:? 1 (const int) +0:? 'a1' ( global 1-element array of float) +0:? 'a2' ( global 2-element array of float) +0:? 'a3' ( global 4-element array of float) +0:? 'v2' ( const 2-component vector of float) +0:? 1.000000 +0:? 2.000000 +0:? 'v3' ( const 3-component vector of float) +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 'a4' ( global 2-element array of float) +0:? 'mm2' ( const 2X2 matrix of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 'mm32' ( const 3X2 matrix of float) +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:? 13.000000 +0:? 14.000000 +0:? 15.000000 +0:? 'a0' ( const 3-element array of structure{ global int i, global float f, global bool b}) +0:? 3 (const int) +0:? 2.000000 +0:? true (const bool) +0:? 1 (const int) +0:? 5.000000 +0:? true (const bool) +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/deps/glslang/glslang/Test/baseResults/constFoldIntMin.frag.out b/deps/glslang/glslang/Test/baseResults/constFoldIntMin.frag.out new file mode 100644 index 0000000000..2c45ca8018 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/constFoldIntMin.frag.out @@ -0,0 +1,51 @@ +constFoldIntMin.frag +Shader version: 460 +Requested GL_AMD_gpu_shader_int16 +Requested GL_ARB_gpu_shader_int64 +0:? Sequence +0:5 Function Definition: a( ( global void) +0:5 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp int16_t) +0:6 'u' ( temp int16_t) +0:6 Constant: +0:6 -32768 (const int16_t) +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'v' ( temp int) +0:7 Constant: +0:7 -2147483648 (const int) +0:8 Sequence +0:8 move second child to first child ( temp int64_t) +0:8 'w' ( temp int64_t) +0:8 Constant: +0:8 -9223372036854775808 (const int64_t) +0:9 Sequence +0:9 move second child to first child ( temp int16_t) +0:9 'x' ( temp int16_t) +0:9 Constant: +0:9 0 (const int8_t) +0:10 Sequence +0:10 move second child to first child ( temp int) +0:10 'y' ( temp int) +0:10 Constant: +0:10 0 (const int) +0:11 Sequence +0:11 move second child to first child ( temp int64_t) +0:11 'z' ( temp int64_t) +0:11 Constant: +0:11 0 (const int64_t) +0:? Linker Objects + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 460 +Requested GL_AMD_gpu_shader_int16 +Requested GL_ARB_gpu_shader_int64 +0:? Sequence +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/conversion.frag.out b/deps/glslang/glslang/Test/baseResults/conversion.frag.out new file mode 100644 index 0000000000..73875d1962 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/conversion.frag.out @@ -0,0 +1,955 @@ +conversion.frag +Shader version: 130 +0:? Sequence +0:33 Function Definition: main( ( global void) +0:33 Function Parameters: +0:35 Sequence +0:35 Sequence +0:35 move second child to first child ( temp bool) +0:35 'b' ( temp bool) +0:35 logical-xor ( temp bool) +0:35 Convert int to bool ( temp bool) +0:35 'u_i' ( uniform int) +0:35 Convert float to bool ( temp bool) +0:35 'u_f' ( uniform float) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of bool) +0:36 'b2' ( temp 2-component vector of bool) +0:36 Construct bvec2 ( temp 2-component vector of bool) +0:36 Convert int to bool ( temp bool) +0:36 'u_i' ( uniform int) +0:36 Convert float to bool ( temp bool) +0:36 'u_f' ( uniform float) +0:37 Sequence +0:37 move second child to first child ( temp 3-component vector of bool) +0:37 'b3' ( temp 3-component vector of bool) +0:37 Construct bvec3 ( temp 3-component vector of bool) +0:37 Convert int to bool ( temp bool) +0:37 'u_i' ( uniform int) +0:37 Convert float to bool ( temp bool) +0:37 'u_f' ( uniform float) +0:37 Convert int to bool ( temp bool) +0:37 'i_i' ( flat in int) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of bool) +0:38 'b4' ( temp 4-component vector of bool) +0:38 Construct bvec4 ( temp 4-component vector of bool) +0:38 Convert int to bool ( temp bool) +0:38 'u_i' ( uniform int) +0:38 Convert float to bool ( temp bool) +0:38 'u_f' ( uniform float) +0:38 Convert int to bool ( temp bool) +0:38 'i_i' ( flat in int) +0:38 Convert float to bool ( temp bool) +0:38 'i_f' ( smooth in float) +0:40 Sequence +0:40 move second child to first child ( temp int) +0:40 'i' ( temp int) +0:40 add ( temp int) +0:40 Convert float to int ( temp int) +0:40 'u_f' ( uniform float) +0:40 Convert bool to int ( temp int) +0:40 'b' ( temp bool) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of int) +0:41 'i2' ( temp 2-component vector of int) +0:41 add ( temp 2-component vector of int) +0:41 Convert float to int ( temp 2-component vector of int) +0:41 'u_f2' ( uniform 2-component vector of float) +0:41 Convert bool to int ( temp 2-component vector of int) +0:41 'b2' ( temp 2-component vector of bool) +0:42 Sequence +0:42 move second child to first child ( temp 3-component vector of int) +0:42 'i3' ( temp 3-component vector of int) +0:42 add ( temp 3-component vector of int) +0:42 Convert float to int ( temp 3-component vector of int) +0:42 'u_f3' ( uniform 3-component vector of float) +0:42 Convert bool to int ( temp 3-component vector of int) +0:42 'b3' ( temp 3-component vector of bool) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'i4' ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:43 Convert float to int ( temp 4-component vector of int) +0:43 'u_f4' ( uniform 4-component vector of float) +0:43 Convert bool to int ( temp 4-component vector of int) +0:43 'b4' ( temp 4-component vector of bool) +0:45 Sequence +0:45 move second child to first child ( temp float) +0:45 'f' ( temp float) +0:45 Convert int to float ( temp float) +0:45 'i' ( temp int) +0:46 Sequence +0:46 move second child to first child ( temp 2-component vector of float) +0:46 'f2' ( temp 2-component vector of float) +0:46 Convert int to float ( temp 2-component vector of float) +0:46 'i2' ( temp 2-component vector of int) +0:47 Sequence +0:47 move second child to first child ( temp 3-component vector of float) +0:47 'f3' ( temp 3-component vector of float) +0:47 Convert int to float ( temp 3-component vector of float) +0:47 'i3' ( temp 3-component vector of int) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'f4' ( temp 4-component vector of float) +0:48 Convert int to float ( temp 4-component vector of float) +0:48 'i4' ( temp 4-component vector of int) +0:50 add second child into first child ( temp float) +0:50 'f' ( temp float) +0:50 add ( temp float) +0:50 Convert int to float ( temp float) +0:50 'i' ( temp int) +0:50 Convert bool to float ( temp float) +0:50 'b' ( temp bool) +0:51 subtract second child into first child ( temp 2-component vector of float) +0:51 'f2' ( temp 2-component vector of float) +0:51 add ( temp 2-component vector of float) +0:51 Convert int to float ( temp 2-component vector of float) +0:51 'i2' ( temp 2-component vector of int) +0:51 Convert bool to float ( temp 2-component vector of float) +0:51 'b2' ( temp 2-component vector of bool) +0:52 divide second child into first child ( temp 3-component vector of float) +0:52 'f3' ( temp 3-component vector of float) +0:52 add ( temp 3-component vector of float) +0:52 Convert int to float ( temp 3-component vector of float) +0:52 'i3' ( temp 3-component vector of int) +0:52 Convert bool to float ( temp 3-component vector of float) +0:52 'b3' ( temp 3-component vector of bool) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'f4' ( temp 4-component vector of float) +0:53 add ( temp 4-component vector of float) +0:53 Convert int to float ( temp 4-component vector of float) +0:53 'i4' ( temp 4-component vector of int) +0:53 Convert bool to float ( temp 4-component vector of float) +0:53 'b4' ( temp 4-component vector of bool) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'f4' ( temp 4-component vector of float) +0:55 Convert bool to float ( temp 4-component vector of float) +0:55 Convert int to bool ( temp 4-component vector of bool) +0:55 'i_i4' ( flat in 4-component vector of int) +0:56 add second child into first child ( temp 4-component vector of float) +0:56 'f4' ( temp 4-component vector of float) +0:56 Convert bool to float ( temp 4-component vector of float) +0:56 Convert float to bool ( temp 4-component vector of bool) +0:56 'u_f4' ( uniform 4-component vector of float) +0:58 add second child into first child ( temp float) +0:58 'f' ( temp float) +0:58 subtract ( temp float) +0:58 'f' ( temp float) +0:58 Convert int to float ( temp float) +0:58 'i' ( temp int) +0:59 add second child into first child ( temp 2-component vector of float) +0:59 'f2' ( temp 2-component vector of float) +0:59 add ( temp 2-component vector of float) +0:59 Construct vec2 ( temp 2-component vector of float) +0:59 'f' ( temp float) +0:59 Convert int to float ( temp float) +0:59 'i' ( temp int) +0:59 Convert int to float ( temp 2-component vector of float) +0:59 'i2' ( temp 2-component vector of int) +0:60 add second child into first child ( temp 3-component vector of float) +0:60 'f3' ( temp 3-component vector of float) +0:60 add ( temp 3-component vector of float) +0:60 Convert int to float ( temp 3-component vector of float) +0:60 'i3' ( temp 3-component vector of int) +0:60 Construct vec3 ( temp 3-component vector of float) +0:60 'f' ( temp float) +0:60 Convert int to float ( temp float) +0:60 'i' ( temp int) +0:60 'f' ( temp float) +0:61 add second child into first child ( temp 4-component vector of float) +0:61 'f4' ( temp 4-component vector of float) +0:61 add ( temp 4-component vector of float) +0:61 Construct vec4 ( temp 4-component vector of float) +0:61 Convert bool to float ( temp float) +0:61 'b' ( temp bool) +0:61 Convert int to float ( temp float) +0:61 'i' ( temp int) +0:61 'f' ( temp float) +0:61 Convert int to float ( temp float) +0:61 'i' ( temp int) +0:61 Convert int to float ( temp 4-component vector of float) +0:61 'i4' ( temp 4-component vector of int) +0:63 add second child into first child ( temp 2-component vector of float) +0:63 'f2' ( temp 2-component vector of float) +0:63 vector-scale ( temp 2-component vector of float) +0:63 Construct vec2 ( temp 2-component vector of float) +0:63 'f' ( temp float) +0:63 Convert int to float ( temp float) +0:63 'i' ( temp int) +0:63 Convert int to float ( temp float) +0:63 'i' ( temp int) +0:64 add second child into first child ( temp 3-component vector of float) +0:64 'f3' ( temp 3-component vector of float) +0:64 add ( temp 3-component vector of float) +0:64 Construct vec3 ( temp 3-component vector of float) +0:64 'f' ( temp float) +0:64 Convert int to float ( temp float) +0:64 'i' ( temp int) +0:64 'f' ( temp float) +0:64 Convert int to float ( temp float) +0:64 'i' ( temp int) +0:65 add second child into first child ( temp 4-component vector of float) +0:65 'f4' ( temp 4-component vector of float) +0:65 subtract ( temp 4-component vector of float) +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:65 Construct vec4 ( temp 4-component vector of float) +0:65 Convert bool to float ( temp float) +0:65 'b' ( temp bool) +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:65 'f' ( temp float) +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:67 add second child into first child ( temp 2-component vector of int) +0:67 'i2' ( temp 2-component vector of int) +0:67 Construct ivec2 ( temp 2-component vector of int) +0:67 Convert float to int ( temp int) +0:67 'f' ( temp float) +0:67 'i' ( temp int) +0:68 add second child into first child ( temp 3-component vector of int) +0:68 'i3' ( temp 3-component vector of int) +0:68 Construct ivec3 ( temp 3-component vector of int) +0:68 Convert float to int ( temp int) +0:68 'f' ( temp float) +0:68 'i' ( temp int) +0:68 Convert float to int ( temp int) +0:68 'f' ( temp float) +0:69 add second child into first child ( temp 4-component vector of int) +0:69 'i4' ( temp 4-component vector of int) +0:69 Construct ivec4 ( temp 4-component vector of int) +0:69 Convert bool to int ( temp int) +0:69 'b' ( temp bool) +0:69 'i' ( temp int) +0:69 Convert float to int ( temp int) +0:69 'f' ( temp float) +0:69 'i' ( temp int) +0:71 Test condition and select ( temp void) +0:71 Condition +0:72 logical-or ( temp bool) +0:71 logical-or ( temp bool) +0:71 logical-or ( temp bool) +0:71 Compare Less Than ( temp bool) +0:71 'f' ( temp float) +0:71 Convert int to float ( temp float) +0:71 'i' ( temp int) +0:71 Compare Less Than ( temp bool) +0:71 Convert int to float ( temp float) +0:71 'i' ( temp int) +0:71 'f' ( temp float) +0:72 Compare Equal ( temp bool) +0:72 'f2' ( temp 2-component vector of float) +0:72 Convert int to float ( temp 2-component vector of float) +0:72 'i2' ( temp 2-component vector of int) +0:73 Compare Not Equal ( temp bool) +0:73 Convert int to float ( temp 3-component vector of float) +0:73 'i3' ( temp 3-component vector of int) +0:73 'f3' ( temp 3-component vector of float) +0:71 true case +0:74 move second child to first child ( temp float) +0:74 'f' ( temp float) +0:74 add ( temp float) +0:74 Test condition and select ( temp float) +0:74 Condition +0:74 'b' ( temp bool) +0:74 true case +0:74 Convert int to float ( temp float) +0:74 'i' ( temp int) +0:74 false case +0:74 direct index ( temp float) +0:74 'f2' ( temp 2-component vector of float) +0:74 Constant: +0:74 0 (const int) +0:74 Test condition and select ( temp float) +0:74 Condition +0:74 direct index ( temp bool) +0:74 'b2' ( temp 2-component vector of bool) +0:74 Constant: +0:74 0 (const int) +0:74 true case +0:74 direct index ( temp float) +0:74 'f3' ( temp 3-component vector of float) +0:74 Constant: +0:74 0 (const int) +0:74 false case +0:74 Convert int to float ( temp float) +0:74 direct index ( temp int) +0:74 'i2' ( temp 2-component vector of int) +0:74 Constant: +0:74 1 (const int) +0:76 move second child to first child ( temp 4-component vector of float) +0:76 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:86 Test condition and select ( temp 4-component vector of float) +0:86 Condition +0:85 logical-or ( temp bool) +0:84 logical-or ( temp bool) +0:83 logical-or ( temp bool) +0:82 logical-or ( temp bool) +0:81 logical-or ( temp bool) +0:80 logical-or ( temp bool) +0:79 logical-or ( temp bool) +0:78 logical-or ( temp bool) +0:77 logical-or ( temp bool) +0:77 'b' ( temp bool) +0:78 direct index ( temp bool) +0:78 'b2' ( temp 2-component vector of bool) +0:78 Constant: +0:78 0 (const int) +0:79 direct index ( temp bool) +0:79 'b2' ( temp 2-component vector of bool) +0:79 Constant: +0:79 1 (const int) +0:80 direct index ( temp bool) +0:80 'b3' ( temp 3-component vector of bool) +0:80 Constant: +0:80 0 (const int) +0:81 direct index ( temp bool) +0:81 'b3' ( temp 3-component vector of bool) +0:81 Constant: +0:81 1 (const int) +0:82 direct index ( temp bool) +0:82 'b3' ( temp 3-component vector of bool) +0:82 Constant: +0:82 2 (const int) +0:83 direct index ( temp bool) +0:83 'b4' ( temp 4-component vector of bool) +0:83 Constant: +0:83 0 (const int) +0:84 direct index ( temp bool) +0:84 'b4' ( temp 4-component vector of bool) +0:84 Constant: +0:84 1 (const int) +0:85 direct index ( temp bool) +0:85 'b4' ( temp 4-component vector of bool) +0:85 Constant: +0:85 2 (const int) +0:86 direct index ( temp bool) +0:86 'b4' ( temp 4-component vector of bool) +0:86 Constant: +0:86 3 (const int) +0:86 true case +0:105 Construct vec4 ( temp 4-component vector of float) +0:105 add ( temp float) +0:104 add ( temp float) +0:103 add ( temp float) +0:102 add ( temp float) +0:101 add ( temp float) +0:100 add ( temp float) +0:99 add ( temp float) +0:98 add ( temp float) +0:97 add ( temp float) +0:96 add ( temp float) +0:95 Convert int to float ( temp float) +0:95 add ( temp int) +0:94 add ( temp int) +0:93 add ( temp int) +0:92 add ( temp int) +0:91 add ( temp int) +0:90 add ( temp int) +0:89 add ( temp int) +0:88 add ( temp int) +0:87 add ( temp int) +0:87 'i' ( temp int) +0:88 direct index ( temp int) +0:88 'i2' ( temp 2-component vector of int) +0:88 Constant: +0:88 0 (const int) +0:89 direct index ( temp int) +0:89 'i2' ( temp 2-component vector of int) +0:89 Constant: +0:89 1 (const int) +0:90 direct index ( temp int) +0:90 'i3' ( temp 3-component vector of int) +0:90 Constant: +0:90 0 (const int) +0:91 direct index ( temp int) +0:91 'i3' ( temp 3-component vector of int) +0:91 Constant: +0:91 1 (const int) +0:92 direct index ( temp int) +0:92 'i3' ( temp 3-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:93 direct index ( temp int) +0:93 'i4' ( temp 4-component vector of int) +0:93 Constant: +0:93 0 (const int) +0:94 direct index ( temp int) +0:94 'i4' ( temp 4-component vector of int) +0:94 Constant: +0:94 1 (const int) +0:95 direct index ( temp int) +0:95 'i4' ( temp 4-component vector of int) +0:95 Constant: +0:95 2 (const int) +0:96 direct index ( temp int) +0:96 'i4' ( temp 4-component vector of int) +0:96 Constant: +0:96 3 (const int) +0:97 'f' ( temp float) +0:98 direct index ( temp float) +0:98 'f2' ( temp 2-component vector of float) +0:98 Constant: +0:98 0 (const int) +0:99 direct index ( temp float) +0:99 'f2' ( temp 2-component vector of float) +0:99 Constant: +0:99 1 (const int) +0:100 direct index ( temp float) +0:100 'f3' ( temp 3-component vector of float) +0:100 Constant: +0:100 0 (const int) +0:101 direct index ( temp float) +0:101 'f3' ( temp 3-component vector of float) +0:101 Constant: +0:101 1 (const int) +0:102 direct index ( temp float) +0:102 'f3' ( temp 3-component vector of float) +0:102 Constant: +0:102 2 (const int) +0:103 direct index ( temp float) +0:103 'f4' ( temp 4-component vector of float) +0:103 Constant: +0:103 0 (const int) +0:104 direct index ( temp float) +0:104 'f4' ( temp 4-component vector of float) +0:104 Constant: +0:104 1 (const int) +0:105 direct index ( temp float) +0:105 'f4' ( temp 4-component vector of float) +0:105 Constant: +0:105 2 (const int) +0:106 direct index ( temp float) +0:106 'f4' ( temp 4-component vector of float) +0:106 Constant: +0:106 3 (const int) +0:86 false case +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:109 Sequence +0:109 move second child to first child ( temp 4-component vector of int) +0:109 'cv2' ( temp 4-component vector of int) +0:109 Constant: +0:109 1 (const int) +0:109 1 (const int) +0:109 1 (const int) +0:109 1 (const int) +0:110 Sequence +0:110 move second child to first child ( temp 4-component vector of bool) +0:110 'cv5' ( temp 4-component vector of bool) +0:110 Convert int to bool ( temp 4-component vector of bool) +0:110 'cv2' ( temp 4-component vector of int) +0:111 add second child into first child ( temp 4-component vector of float) +0:111 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:111 Construct float ( temp float) +0:111 Convert bool to float ( temp 4-component vector of float) +0:111 'cv5' ( temp 4-component vector of bool) +0:? Linker Objects +0:? 'u_b' ( uniform bool) +0:? 'u_b2' ( uniform 2-component vector of bool) +0:? 'u_b3' ( uniform 3-component vector of bool) +0:? 'u_b4' ( uniform 4-component vector of bool) +0:? 'u_i' ( uniform int) +0:? 'u_i2' ( uniform 2-component vector of int) +0:? 'u_i3' ( uniform 3-component vector of int) +0:? 'u_i4' ( uniform 4-component vector of int) +0:? 'u_f' ( uniform float) +0:? 'u_f2' ( uniform 2-component vector of float) +0:? 'u_f3' ( uniform 3-component vector of float) +0:? 'u_f4' ( uniform 4-component vector of float) +0:? 'i_b' ( uniform bool) +0:? 'i_b2' ( uniform 2-component vector of bool) +0:? 'i_b3' ( uniform 3-component vector of bool) +0:? 'i_b4' ( uniform 4-component vector of bool) +0:? 'i_i' ( flat in int) +0:? 'i_i2' ( flat in 2-component vector of int) +0:? 'i_i3' ( flat in 3-component vector of int) +0:? 'i_i4' ( flat in 4-component vector of int) +0:? 'i_f' ( smooth in float) +0:? 'i_f2' ( smooth in 2-component vector of float) +0:? 'i_f3' ( smooth in 3-component vector of float) +0:? 'i_f4' ( smooth in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:33 Function Definition: main( ( global void) +0:33 Function Parameters: +0:35 Sequence +0:35 Sequence +0:35 move second child to first child ( temp bool) +0:35 'b' ( temp bool) +0:35 logical-xor ( temp bool) +0:35 Convert int to bool ( temp bool) +0:35 'u_i' ( uniform int) +0:35 Convert float to bool ( temp bool) +0:35 'u_f' ( uniform float) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of bool) +0:36 'b2' ( temp 2-component vector of bool) +0:36 Construct bvec2 ( temp 2-component vector of bool) +0:36 Convert int to bool ( temp bool) +0:36 'u_i' ( uniform int) +0:36 Convert float to bool ( temp bool) +0:36 'u_f' ( uniform float) +0:37 Sequence +0:37 move second child to first child ( temp 3-component vector of bool) +0:37 'b3' ( temp 3-component vector of bool) +0:37 Construct bvec3 ( temp 3-component vector of bool) +0:37 Convert int to bool ( temp bool) +0:37 'u_i' ( uniform int) +0:37 Convert float to bool ( temp bool) +0:37 'u_f' ( uniform float) +0:37 Convert int to bool ( temp bool) +0:37 'i_i' ( flat in int) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of bool) +0:38 'b4' ( temp 4-component vector of bool) +0:38 Construct bvec4 ( temp 4-component vector of bool) +0:38 Convert int to bool ( temp bool) +0:38 'u_i' ( uniform int) +0:38 Convert float to bool ( temp bool) +0:38 'u_f' ( uniform float) +0:38 Convert int to bool ( temp bool) +0:38 'i_i' ( flat in int) +0:38 Convert float to bool ( temp bool) +0:38 'i_f' ( smooth in float) +0:40 Sequence +0:40 move second child to first child ( temp int) +0:40 'i' ( temp int) +0:40 add ( temp int) +0:40 Convert float to int ( temp int) +0:40 'u_f' ( uniform float) +0:40 Convert bool to int ( temp int) +0:40 'b' ( temp bool) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of int) +0:41 'i2' ( temp 2-component vector of int) +0:41 add ( temp 2-component vector of int) +0:41 Convert float to int ( temp 2-component vector of int) +0:41 'u_f2' ( uniform 2-component vector of float) +0:41 Convert bool to int ( temp 2-component vector of int) +0:41 'b2' ( temp 2-component vector of bool) +0:42 Sequence +0:42 move second child to first child ( temp 3-component vector of int) +0:42 'i3' ( temp 3-component vector of int) +0:42 add ( temp 3-component vector of int) +0:42 Convert float to int ( temp 3-component vector of int) +0:42 'u_f3' ( uniform 3-component vector of float) +0:42 Convert bool to int ( temp 3-component vector of int) +0:42 'b3' ( temp 3-component vector of bool) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'i4' ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:43 Convert float to int ( temp 4-component vector of int) +0:43 'u_f4' ( uniform 4-component vector of float) +0:43 Convert bool to int ( temp 4-component vector of int) +0:43 'b4' ( temp 4-component vector of bool) +0:45 Sequence +0:45 move second child to first child ( temp float) +0:45 'f' ( temp float) +0:45 Convert int to float ( temp float) +0:45 'i' ( temp int) +0:46 Sequence +0:46 move second child to first child ( temp 2-component vector of float) +0:46 'f2' ( temp 2-component vector of float) +0:46 Convert int to float ( temp 2-component vector of float) +0:46 'i2' ( temp 2-component vector of int) +0:47 Sequence +0:47 move second child to first child ( temp 3-component vector of float) +0:47 'f3' ( temp 3-component vector of float) +0:47 Convert int to float ( temp 3-component vector of float) +0:47 'i3' ( temp 3-component vector of int) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'f4' ( temp 4-component vector of float) +0:48 Convert int to float ( temp 4-component vector of float) +0:48 'i4' ( temp 4-component vector of int) +0:50 add second child into first child ( temp float) +0:50 'f' ( temp float) +0:50 add ( temp float) +0:50 Convert int to float ( temp float) +0:50 'i' ( temp int) +0:50 Convert bool to float ( temp float) +0:50 'b' ( temp bool) +0:51 subtract second child into first child ( temp 2-component vector of float) +0:51 'f2' ( temp 2-component vector of float) +0:51 add ( temp 2-component vector of float) +0:51 Convert int to float ( temp 2-component vector of float) +0:51 'i2' ( temp 2-component vector of int) +0:51 Convert bool to float ( temp 2-component vector of float) +0:51 'b2' ( temp 2-component vector of bool) +0:52 divide second child into first child ( temp 3-component vector of float) +0:52 'f3' ( temp 3-component vector of float) +0:52 add ( temp 3-component vector of float) +0:52 Convert int to float ( temp 3-component vector of float) +0:52 'i3' ( temp 3-component vector of int) +0:52 Convert bool to float ( temp 3-component vector of float) +0:52 'b3' ( temp 3-component vector of bool) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'f4' ( temp 4-component vector of float) +0:53 add ( temp 4-component vector of float) +0:53 Convert int to float ( temp 4-component vector of float) +0:53 'i4' ( temp 4-component vector of int) +0:53 Convert bool to float ( temp 4-component vector of float) +0:53 'b4' ( temp 4-component vector of bool) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'f4' ( temp 4-component vector of float) +0:55 Convert bool to float ( temp 4-component vector of float) +0:55 Convert int to bool ( temp 4-component vector of bool) +0:55 'i_i4' ( flat in 4-component vector of int) +0:56 add second child into first child ( temp 4-component vector of float) +0:56 'f4' ( temp 4-component vector of float) +0:56 Convert bool to float ( temp 4-component vector of float) +0:56 Convert float to bool ( temp 4-component vector of bool) +0:56 'u_f4' ( uniform 4-component vector of float) +0:58 add second child into first child ( temp float) +0:58 'f' ( temp float) +0:58 subtract ( temp float) +0:58 'f' ( temp float) +0:58 Convert int to float ( temp float) +0:58 'i' ( temp int) +0:59 add second child into first child ( temp 2-component vector of float) +0:59 'f2' ( temp 2-component vector of float) +0:59 add ( temp 2-component vector of float) +0:59 Construct vec2 ( temp 2-component vector of float) +0:59 'f' ( temp float) +0:59 Convert int to float ( temp float) +0:59 'i' ( temp int) +0:59 Convert int to float ( temp 2-component vector of float) +0:59 'i2' ( temp 2-component vector of int) +0:60 add second child into first child ( temp 3-component vector of float) +0:60 'f3' ( temp 3-component vector of float) +0:60 add ( temp 3-component vector of float) +0:60 Convert int to float ( temp 3-component vector of float) +0:60 'i3' ( temp 3-component vector of int) +0:60 Construct vec3 ( temp 3-component vector of float) +0:60 'f' ( temp float) +0:60 Convert int to float ( temp float) +0:60 'i' ( temp int) +0:60 'f' ( temp float) +0:61 add second child into first child ( temp 4-component vector of float) +0:61 'f4' ( temp 4-component vector of float) +0:61 add ( temp 4-component vector of float) +0:61 Construct vec4 ( temp 4-component vector of float) +0:61 Convert bool to float ( temp float) +0:61 'b' ( temp bool) +0:61 Convert int to float ( temp float) +0:61 'i' ( temp int) +0:61 'f' ( temp float) +0:61 Convert int to float ( temp float) +0:61 'i' ( temp int) +0:61 Convert int to float ( temp 4-component vector of float) +0:61 'i4' ( temp 4-component vector of int) +0:63 add second child into first child ( temp 2-component vector of float) +0:63 'f2' ( temp 2-component vector of float) +0:63 vector-scale ( temp 2-component vector of float) +0:63 Construct vec2 ( temp 2-component vector of float) +0:63 'f' ( temp float) +0:63 Convert int to float ( temp float) +0:63 'i' ( temp int) +0:63 Convert int to float ( temp float) +0:63 'i' ( temp int) +0:64 add second child into first child ( temp 3-component vector of float) +0:64 'f3' ( temp 3-component vector of float) +0:64 add ( temp 3-component vector of float) +0:64 Construct vec3 ( temp 3-component vector of float) +0:64 'f' ( temp float) +0:64 Convert int to float ( temp float) +0:64 'i' ( temp int) +0:64 'f' ( temp float) +0:64 Convert int to float ( temp float) +0:64 'i' ( temp int) +0:65 add second child into first child ( temp 4-component vector of float) +0:65 'f4' ( temp 4-component vector of float) +0:65 subtract ( temp 4-component vector of float) +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:65 Construct vec4 ( temp 4-component vector of float) +0:65 Convert bool to float ( temp float) +0:65 'b' ( temp bool) +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:65 'f' ( temp float) +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:67 add second child into first child ( temp 2-component vector of int) +0:67 'i2' ( temp 2-component vector of int) +0:67 Construct ivec2 ( temp 2-component vector of int) +0:67 Convert float to int ( temp int) +0:67 'f' ( temp float) +0:67 'i' ( temp int) +0:68 add second child into first child ( temp 3-component vector of int) +0:68 'i3' ( temp 3-component vector of int) +0:68 Construct ivec3 ( temp 3-component vector of int) +0:68 Convert float to int ( temp int) +0:68 'f' ( temp float) +0:68 'i' ( temp int) +0:68 Convert float to int ( temp int) +0:68 'f' ( temp float) +0:69 add second child into first child ( temp 4-component vector of int) +0:69 'i4' ( temp 4-component vector of int) +0:69 Construct ivec4 ( temp 4-component vector of int) +0:69 Convert bool to int ( temp int) +0:69 'b' ( temp bool) +0:69 'i' ( temp int) +0:69 Convert float to int ( temp int) +0:69 'f' ( temp float) +0:69 'i' ( temp int) +0:71 Test condition and select ( temp void) +0:71 Condition +0:72 logical-or ( temp bool) +0:71 logical-or ( temp bool) +0:71 logical-or ( temp bool) +0:71 Compare Less Than ( temp bool) +0:71 'f' ( temp float) +0:71 Convert int to float ( temp float) +0:71 'i' ( temp int) +0:71 Compare Less Than ( temp bool) +0:71 Convert int to float ( temp float) +0:71 'i' ( temp int) +0:71 'f' ( temp float) +0:72 Compare Equal ( temp bool) +0:72 'f2' ( temp 2-component vector of float) +0:72 Convert int to float ( temp 2-component vector of float) +0:72 'i2' ( temp 2-component vector of int) +0:73 Compare Not Equal ( temp bool) +0:73 Convert int to float ( temp 3-component vector of float) +0:73 'i3' ( temp 3-component vector of int) +0:73 'f3' ( temp 3-component vector of float) +0:71 true case +0:74 move second child to first child ( temp float) +0:74 'f' ( temp float) +0:74 add ( temp float) +0:74 Test condition and select ( temp float) +0:74 Condition +0:74 'b' ( temp bool) +0:74 true case +0:74 Convert int to float ( temp float) +0:74 'i' ( temp int) +0:74 false case +0:74 direct index ( temp float) +0:74 'f2' ( temp 2-component vector of float) +0:74 Constant: +0:74 0 (const int) +0:74 Test condition and select ( temp float) +0:74 Condition +0:74 direct index ( temp bool) +0:74 'b2' ( temp 2-component vector of bool) +0:74 Constant: +0:74 0 (const int) +0:74 true case +0:74 direct index ( temp float) +0:74 'f3' ( temp 3-component vector of float) +0:74 Constant: +0:74 0 (const int) +0:74 false case +0:74 Convert int to float ( temp float) +0:74 direct index ( temp int) +0:74 'i2' ( temp 2-component vector of int) +0:74 Constant: +0:74 1 (const int) +0:76 move second child to first child ( temp 4-component vector of float) +0:76 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:86 Test condition and select ( temp 4-component vector of float) +0:86 Condition +0:85 logical-or ( temp bool) +0:84 logical-or ( temp bool) +0:83 logical-or ( temp bool) +0:82 logical-or ( temp bool) +0:81 logical-or ( temp bool) +0:80 logical-or ( temp bool) +0:79 logical-or ( temp bool) +0:78 logical-or ( temp bool) +0:77 logical-or ( temp bool) +0:77 'b' ( temp bool) +0:78 direct index ( temp bool) +0:78 'b2' ( temp 2-component vector of bool) +0:78 Constant: +0:78 0 (const int) +0:79 direct index ( temp bool) +0:79 'b2' ( temp 2-component vector of bool) +0:79 Constant: +0:79 1 (const int) +0:80 direct index ( temp bool) +0:80 'b3' ( temp 3-component vector of bool) +0:80 Constant: +0:80 0 (const int) +0:81 direct index ( temp bool) +0:81 'b3' ( temp 3-component vector of bool) +0:81 Constant: +0:81 1 (const int) +0:82 direct index ( temp bool) +0:82 'b3' ( temp 3-component vector of bool) +0:82 Constant: +0:82 2 (const int) +0:83 direct index ( temp bool) +0:83 'b4' ( temp 4-component vector of bool) +0:83 Constant: +0:83 0 (const int) +0:84 direct index ( temp bool) +0:84 'b4' ( temp 4-component vector of bool) +0:84 Constant: +0:84 1 (const int) +0:85 direct index ( temp bool) +0:85 'b4' ( temp 4-component vector of bool) +0:85 Constant: +0:85 2 (const int) +0:86 direct index ( temp bool) +0:86 'b4' ( temp 4-component vector of bool) +0:86 Constant: +0:86 3 (const int) +0:86 true case +0:105 Construct vec4 ( temp 4-component vector of float) +0:105 add ( temp float) +0:104 add ( temp float) +0:103 add ( temp float) +0:102 add ( temp float) +0:101 add ( temp float) +0:100 add ( temp float) +0:99 add ( temp float) +0:98 add ( temp float) +0:97 add ( temp float) +0:96 add ( temp float) +0:95 Convert int to float ( temp float) +0:95 add ( temp int) +0:94 add ( temp int) +0:93 add ( temp int) +0:92 add ( temp int) +0:91 add ( temp int) +0:90 add ( temp int) +0:89 add ( temp int) +0:88 add ( temp int) +0:87 add ( temp int) +0:87 'i' ( temp int) +0:88 direct index ( temp int) +0:88 'i2' ( temp 2-component vector of int) +0:88 Constant: +0:88 0 (const int) +0:89 direct index ( temp int) +0:89 'i2' ( temp 2-component vector of int) +0:89 Constant: +0:89 1 (const int) +0:90 direct index ( temp int) +0:90 'i3' ( temp 3-component vector of int) +0:90 Constant: +0:90 0 (const int) +0:91 direct index ( temp int) +0:91 'i3' ( temp 3-component vector of int) +0:91 Constant: +0:91 1 (const int) +0:92 direct index ( temp int) +0:92 'i3' ( temp 3-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:93 direct index ( temp int) +0:93 'i4' ( temp 4-component vector of int) +0:93 Constant: +0:93 0 (const int) +0:94 direct index ( temp int) +0:94 'i4' ( temp 4-component vector of int) +0:94 Constant: +0:94 1 (const int) +0:95 direct index ( temp int) +0:95 'i4' ( temp 4-component vector of int) +0:95 Constant: +0:95 2 (const int) +0:96 direct index ( temp int) +0:96 'i4' ( temp 4-component vector of int) +0:96 Constant: +0:96 3 (const int) +0:97 'f' ( temp float) +0:98 direct index ( temp float) +0:98 'f2' ( temp 2-component vector of float) +0:98 Constant: +0:98 0 (const int) +0:99 direct index ( temp float) +0:99 'f2' ( temp 2-component vector of float) +0:99 Constant: +0:99 1 (const int) +0:100 direct index ( temp float) +0:100 'f3' ( temp 3-component vector of float) +0:100 Constant: +0:100 0 (const int) +0:101 direct index ( temp float) +0:101 'f3' ( temp 3-component vector of float) +0:101 Constant: +0:101 1 (const int) +0:102 direct index ( temp float) +0:102 'f3' ( temp 3-component vector of float) +0:102 Constant: +0:102 2 (const int) +0:103 direct index ( temp float) +0:103 'f4' ( temp 4-component vector of float) +0:103 Constant: +0:103 0 (const int) +0:104 direct index ( temp float) +0:104 'f4' ( temp 4-component vector of float) +0:104 Constant: +0:104 1 (const int) +0:105 direct index ( temp float) +0:105 'f4' ( temp 4-component vector of float) +0:105 Constant: +0:105 2 (const int) +0:106 direct index ( temp float) +0:106 'f4' ( temp 4-component vector of float) +0:106 Constant: +0:106 3 (const int) +0:86 false case +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:109 Sequence +0:109 move second child to first child ( temp 4-component vector of int) +0:109 'cv2' ( temp 4-component vector of int) +0:109 Constant: +0:109 1 (const int) +0:109 1 (const int) +0:109 1 (const int) +0:109 1 (const int) +0:110 Sequence +0:110 move second child to first child ( temp 4-component vector of bool) +0:110 'cv5' ( temp 4-component vector of bool) +0:110 Convert int to bool ( temp 4-component vector of bool) +0:110 'cv2' ( temp 4-component vector of int) +0:111 add second child into first child ( temp 4-component vector of float) +0:111 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:111 Construct float ( temp float) +0:111 Convert bool to float ( temp 4-component vector of float) +0:111 'cv5' ( temp 4-component vector of bool) +0:? Linker Objects +0:? 'u_b' ( uniform bool) +0:? 'u_b2' ( uniform 2-component vector of bool) +0:? 'u_b3' ( uniform 3-component vector of bool) +0:? 'u_b4' ( uniform 4-component vector of bool) +0:? 'u_i' ( uniform int) +0:? 'u_i2' ( uniform 2-component vector of int) +0:? 'u_i3' ( uniform 3-component vector of int) +0:? 'u_i4' ( uniform 4-component vector of int) +0:? 'u_f' ( uniform float) +0:? 'u_f2' ( uniform 2-component vector of float) +0:? 'u_f3' ( uniform 3-component vector of float) +0:? 'u_f4' ( uniform 4-component vector of float) +0:? 'i_b' ( uniform bool) +0:? 'i_b2' ( uniform 2-component vector of bool) +0:? 'i_b3' ( uniform 3-component vector of bool) +0:? 'i_b4' ( uniform 4-component vector of bool) +0:? 'i_i' ( flat in int) +0:? 'i_i2' ( flat in 2-component vector of int) +0:? 'i_i3' ( flat in 3-component vector of int) +0:? 'i_i4' ( flat in 4-component vector of int) +0:? 'i_f' ( smooth in float) +0:? 'i_f2' ( smooth in 2-component vector of float) +0:? 'i_f3' ( smooth in 3-component vector of float) +0:? 'i_f4' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/cppBad.vert.out b/deps/glslang/glslang/Test/baseResults/cppBad.vert.out new file mode 100644 index 0000000000..1a2286aa91 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppBad.vert.out @@ -0,0 +1,22 @@ +cppBad.vert +ERROR: 0:2: 'preprocessor evaluation' : bad expression +ERROR: 0:2: '#if' : unexpected tokens following directive +ERROR: 0:5: 'string' : End of line in string +ERROR: 0:5: '""' : string literals not supported +ERROR: 0:5: '' : syntax error, unexpected INT, expecting COMMA or SEMICOLON +ERROR: 5 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/cppBad2.vert.out b/deps/glslang/glslang/Test/baseResults/cppBad2.vert.out new file mode 100644 index 0000000000..0398e5e484 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppBad2.vert.out @@ -0,0 +1,19 @@ +cppBad2.vert +ERROR: 0:3: 'macro expansion' : End of input in macro b +ERROR: 0:3: '' : compilation terminated +ERROR: 2 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out b/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out new file mode 100644 index 0000000000..6bfcd9cca3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppComplexExpr.vert.out @@ -0,0 +1,181 @@ +cppComplexExpr.vert +ERROR: 0:46: 'xyxwx' : vector swizzle too long +ERROR: 0:46: 'xyxwx' : vector swizzle too long +ERROR: 0:46: 'return' : cannot convert return value to function return type +WARNING: 0:46: 'return' : type conversion on return values was not explicitly allowed until version 420 +ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG +ERROR: 0:81: 'preprocessor evaluation' : bad expression +ERROR: 0:81: '#if' : unexpected tokens following directive +ERROR: 0:82: '#error' : good macro +ERROR: 0:87: 'macro expansion' : End of line in macro substitution: foobar +ERROR: 0:88: 'preprocessor evaluation' : can't evaluate expression +ERROR: 0:88: 'preprocessor evaluation' : bad expression +ERROR: 0:88: '#if' : unexpected tokens following directive +ERROR: 0:92: 'macro expansion' : End of line in macro substitution: foobar +ERROR: 0:93: 'preprocessor evaluation' : can't evaluate expression +ERROR: 0:93: 'preprocessor evaluation' : bad expression +ERROR: 0:93: '#if' : unexpected tokens following directive +ERROR: 0:99: 'macro expansion' : End of line in macro substitution: foobar +ERROR: 0:100: 'preprocessor evaluation' : can't evaluate expression +ERROR: 0:100: 'preprocessor evaluation' : bad expression +ERROR: 0:100: '#if' : unexpected tokens following directive +ERROR: 0:101: 'macro expansion' : End of line in macro substitution: foobar +ERROR: 0:102: 'preprocessor evaluation' : can't evaluate expression +ERROR: 0:102: 'preprocessor evaluation' : bad expression +ERROR: 0:102: '#if' : unexpected tokens following directive +ERROR: 0:108: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF +ERROR: 0:111: '#error' : good 0 +ERROR: 0:115: '#error' : good 1 +ERROR: 0:120: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF +ERROR: 0:123: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF +ERROR: 0:129: '#error' : good 1 +ERROR: 0:133: '#error' : good 3 +ERROR: 0:139: '#error' : good 4 +ERROR: 0:144: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF +ERROR: 0:153: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF +ERROR: 0:156: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2 +ERROR: 0:159: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile UNDEF2 +ERROR: 0:3000: '#error' : line of this error should be 3000 +ERROR: 0:3002: '#define' : predefined names can't be (un)defined: __LINE__ +ERROR: 0:3003: '#define' : predefined names can't be (un)defined: __FILE__ +ERROR: 0:3004: '#define' : predefined names can't be (un)defined: __VERSION__ +ERROR: 0:3005: '#define' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION +ERROR: 0:3006: '#undef' : predefined names can't be (un)defined: __LINE__ +ERROR: 0:3007: '#undef' : predefined names can't be (un)defined: __FILE__ +ERROR: 0:3008: '#undef' : predefined names can't be (un)defined: __VERSION__ +ERROR: 0:3009: '#undef' : names beginning with "GL_" can't be (un)defined: GL_SOME_EXTENSION +ERROR: 0:4000: 'preprocessor evaluation' : division by 0 +ERROR: 0:0: 'preprocessor evaluation' : division by 0 +ERROR: 0:3: 'preprocessor evaluation' : bad expression +ERROR: 0:3: 'preprocessor evaluation' : division by 0 +ERROR: 0:10001: '' : missing #endif +ERROR: 49 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:4 Sequence +0:4 move second child to first child ( temp highp float) +0:4 'sum' ( global highp float) +0:4 Constant: +0:4 0.000000 +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:10 Sequence +0:10 add second child into first child ( temp highp float) +0:10 'sum' ( global highp float) +0:10 Constant: +0:10 1.000000 +0:15 add second child into first child ( temp highp float) +0:15 'sum' ( global highp float) +0:15 Constant: +0:15 20.000000 +0:30 add second child into first child ( temp highp float) +0:30 'sum' ( global highp float) +0:30 Constant: +0:30 300.000000 +0:39 move second child to first child ( temp highp 4-component vector of float) +0:39 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:39 Construct vec4 ( temp highp 4-component vector of float) +0:39 'sum' ( global highp float) +0:44 Function Definition: foo( ( global highp float) +0:44 Function Parameters: +0:46 Sequence +0:46 Branch: Return with expression +0:46 add ( temp highp 4-component vector of float) +0:46 add ( temp highp 4-component vector of float) +0:46 vector swizzle ( temp highp 4-component vector of float) +0:46 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 3 (const int) +0:46 Constant: +0:46 3.000000 +0:46 add ( temp highp 4-component vector of float) +0:46 vector swizzle ( temp highp 4-component vector of float) +0:46 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 3 (const int) +0:46 Constant: +0:46 3.000000 +0:47 Branch: Return with expression +0:47 add ( temp highp float) +0:47 add ( temp highp float) +0:47 direct index ( temp highp float) +0:47 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 3.000000 +0:47 add ( temp highp float) +0:47 direct index ( temp highp float) +0:47 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 3.000000 +0:97 Sequence +0:97 move second child to first child ( temp highp float) +0:97 'c' ( global highp float) +0:98 Constant: +0:98 3.300000 +0:? Linker Objects +0:? 'sum' ( global highp float) +0:? 'c' ( global highp float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:4 Sequence +0:4 move second child to first child ( temp highp float) +0:4 'sum' ( global highp float) +0:4 Constant: +0:4 0.000000 +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:10 Sequence +0:10 add second child into first child ( temp highp float) +0:10 'sum' ( global highp float) +0:10 Constant: +0:10 1.000000 +0:15 add second child into first child ( temp highp float) +0:15 'sum' ( global highp float) +0:15 Constant: +0:15 20.000000 +0:30 add second child into first child ( temp highp float) +0:30 'sum' ( global highp float) +0:30 Constant: +0:30 300.000000 +0:39 move second child to first child ( temp highp 4-component vector of float) +0:39 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:39 Construct vec4 ( temp highp 4-component vector of float) +0:39 'sum' ( global highp float) +0:97 Sequence +0:97 move second child to first child ( temp highp float) +0:97 'c' ( global highp float) +0:98 Constant: +0:98 3.300000 +0:? Linker Objects +0:? 'sum' ( global highp float) +0:? 'c' ( global highp float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/cppDeepNest.frag.out b/deps/glslang/glslang/Test/baseResults/cppDeepNest.frag.out new file mode 100644 index 0000000000..969a256dd5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppDeepNest.frag.out @@ -0,0 +1,20 @@ +cppDeepNest.frag +ERROR: 0:66: '#if/#ifdef/#ifndef' : maximum nesting depth exceeded +ERROR: 0:66: '' : missing #endif +ERROR: 0:66: '' : syntax error, unexpected $end +ERROR: 3 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out b/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out new file mode 100644 index 0000000000..05eb244de0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppIndent.vert.out @@ -0,0 +1,84 @@ +cppIndent.vert +ERROR: 0:61: 'macro expansion' : Too few args in Macro FUNC +ERROR: 0:61: '' : syntax error, unexpected COMMA +ERROR: 2 compilation errors. No code generated. + + +Shader version: 110 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'sum' ( global float) +0:5 Constant: +0:5 0.000000 +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:12 Sequence +0:12 add second child into first child ( temp float) +0:12 'sum' ( global float) +0:12 Constant: +0:12 1.000000 +0:22 add second child into first child ( temp float) +0:22 'sum' ( global float) +0:22 Constant: +0:22 300.000000 +0:37 add second child into first child ( temp float) +0:37 'sum' ( global float) +0:37 Constant: +0:37 600000.000000 +0:47 add second child into first child ( temp float) +0:47 'sum' ( global float) +0:47 Constant: +0:47 80000000.000000 +0:52 add second child into first child ( temp float) +0:52 'sum' ( global float) +0:52 Constant: +0:52 900000000.000000 +0:56 move second child to first child ( temp 4-component vector of float) +0:56 'gl_Position' ( gl_Position 4-component vector of float Position) +0:56 Construct vec4 ( temp 4-component vector of float) +0:56 'sum' ( global float) +0:? Linker Objects +0:? 'sum' ( global float) + + +Linked vertex stage: + + +Shader version: 110 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'sum' ( global float) +0:5 Constant: +0:5 0.000000 +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:12 Sequence +0:12 add second child into first child ( temp float) +0:12 'sum' ( global float) +0:12 Constant: +0:12 1.000000 +0:22 add second child into first child ( temp float) +0:22 'sum' ( global float) +0:22 Constant: +0:22 300.000000 +0:37 add second child into first child ( temp float) +0:37 'sum' ( global float) +0:37 Constant: +0:37 600000.000000 +0:47 add second child into first child ( temp float) +0:47 'sum' ( global float) +0:47 Constant: +0:47 80000000.000000 +0:52 add second child into first child ( temp float) +0:52 'sum' ( global float) +0:52 Constant: +0:52 900000000.000000 +0:56 move second child to first child ( temp 4-component vector of float) +0:56 'gl_Position' ( gl_Position 4-component vector of float Position) +0:56 Construct vec4 ( temp 4-component vector of float) +0:56 'sum' ( global float) +0:? Linker Objects +0:? 'sum' ( global float) + diff --git a/deps/glslang/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out b/deps/glslang/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out new file mode 100644 index 0000000000..5dce7c3ebe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppIntMinOverNegativeOne.frag.out @@ -0,0 +1,14 @@ +cppIntMinOverNegativeOne.frag +Shader version: 100 +0:? Sequence +0:? Linker Objects + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 100 +0:? Sequence +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/cppNest.vert.out b/deps/glslang/glslang/Test/baseResults/cppNest.vert.out new file mode 100644 index 0000000000..afd0370d07 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppNest.vert.out @@ -0,0 +1,143 @@ +cppNest.vert +ERROR: 0:144: '#elif' : #elif after #else +ERROR: 0:152: '#else' : #else after #else +ERROR: 0:161: '#elif' : #elif after #else +ERROR: 0:169: '#else' : #else after #else +ERROR: 0:177: 'macro expansion' : End of input in macro FUNC +ERROR: 0:178: '' : compilation terminated +ERROR: 6 compilation errors. No code generated. + + +Shader version: 110 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'sum' ( global float) +0:5 Constant: +0:5 0.000000 +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:12 Sequence +0:12 add second child into first child ( temp float) +0:12 'sum' ( global float) +0:12 Constant: +0:12 1.000000 +0:21 add second child into first child ( temp float) +0:21 'sum' ( global float) +0:21 Constant: +0:21 300.000000 +0:61 add second child into first child ( temp float) +0:61 'sum' ( global float) +0:61 Constant: +0:61 600000.000000 +0:65 add second child into first child ( temp float) +0:65 'sum' ( global float) +0:65 Constant: +0:65 80000000.000000 +0:69 add second child into first child ( temp float) +0:69 'sum' ( global float) +0:69 Constant: +0:69 900000000.000000 +0:76 add second child into first child ( temp float) +0:76 'sum' ( global float) +0:76 Constant: +0:76 7000000.000000 +0:86 move second child to first child ( temp 4-component vector of float) +0:86 'gl_Position' ( gl_Position 4-component vector of float Position) +0:86 Construct vec4 ( temp 4-component vector of float) +0:86 'sum' ( global float) +0:103 Sequence +0:103 move second child to first child ( temp int) +0:103 'selected4' ( global int) +0:103 Constant: +0:103 4 (const int) +0:115 Sequence +0:115 move second child to first child ( temp int) +0:115 'selected2' ( global int) +0:115 Constant: +0:115 2 (const int) +0:133 Sequence +0:133 move second child to first child ( temp int) +0:133 'selected3' ( global int) +0:133 Constant: +0:133 3 (const int) +0:175 Function Definition: foo985( ( global void) +0:175 Function Parameters: +0:175 Sequence +0:175 add ( temp int) +0:175 Constant: +0:175 2 (const int) +0:175 Comma ( temp int) +0:175 Constant: +0:175 3 (const int) +0:175 Constant: +0:175 4 (const int) +0:? Linker Objects +0:? 'sum' ( global float) +0:? 'selected4' ( global int) +0:? 'selected2' ( global int) +0:? 'selected3' ( global int) + + +Linked vertex stage: + + +Shader version: 110 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'sum' ( global float) +0:5 Constant: +0:5 0.000000 +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:12 Sequence +0:12 add second child into first child ( temp float) +0:12 'sum' ( global float) +0:12 Constant: +0:12 1.000000 +0:21 add second child into first child ( temp float) +0:21 'sum' ( global float) +0:21 Constant: +0:21 300.000000 +0:61 add second child into first child ( temp float) +0:61 'sum' ( global float) +0:61 Constant: +0:61 600000.000000 +0:65 add second child into first child ( temp float) +0:65 'sum' ( global float) +0:65 Constant: +0:65 80000000.000000 +0:69 add second child into first child ( temp float) +0:69 'sum' ( global float) +0:69 Constant: +0:69 900000000.000000 +0:76 add second child into first child ( temp float) +0:76 'sum' ( global float) +0:76 Constant: +0:76 7000000.000000 +0:86 move second child to first child ( temp 4-component vector of float) +0:86 'gl_Position' ( gl_Position 4-component vector of float Position) +0:86 Construct vec4 ( temp 4-component vector of float) +0:86 'sum' ( global float) +0:103 Sequence +0:103 move second child to first child ( temp int) +0:103 'selected4' ( global int) +0:103 Constant: +0:103 4 (const int) +0:115 Sequence +0:115 move second child to first child ( temp int) +0:115 'selected2' ( global int) +0:115 Constant: +0:115 2 (const int) +0:133 Sequence +0:133 move second child to first child ( temp int) +0:133 'selected3' ( global int) +0:133 Constant: +0:133 3 (const int) +0:? Linker Objects +0:? 'sum' ( global float) +0:? 'selected4' ( global int) +0:? 'selected2' ( global int) +0:? 'selected3' ( global int) + diff --git a/deps/glslang/glslang/Test/baseResults/cppPassMacroName.frag.out b/deps/glslang/glslang/Test/baseResults/cppPassMacroName.frag.out new file mode 100644 index 0000000000..e09b00d7e2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppPassMacroName.frag.out @@ -0,0 +1,77 @@ +cppPassMacroName.frag +Shader version: 100 +0:? Sequence +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp mediump int) +0:11 'f1' ( temp mediump int) +0:11 Constant: +0:11 4 (const int) +0:12 Sequence +0:12 move second child to first child ( temp mediump int) +0:12 'f2' ( temp mediump int) +0:12 'f1' ( temp mediump int) +0:13 Sequence +0:13 move second child to first child ( temp mediump int) +0:13 'f3' ( temp mediump int) +0:13 Constant: +0:13 9 (const int) +0:14 Sequence +0:14 move second child to first child ( temp mediump int) +0:14 'f4' ( temp mediump int) +0:14 Constant: +0:14 1 (const int) +0:15 Sequence +0:15 move second child to first child ( temp mediump int) +0:15 'f5' ( temp mediump int) +0:15 Constant: +0:15 5 (const int) +0:17 Sequence +0:17 move second child to first child ( temp highp float) +0:17 'fl_f5' ( temp highp float) +0:17 Constant: +0:17 0.460000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 100 +0:? Sequence +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp mediump int) +0:11 'f1' ( temp mediump int) +0:11 Constant: +0:11 4 (const int) +0:12 Sequence +0:12 move second child to first child ( temp mediump int) +0:12 'f2' ( temp mediump int) +0:12 'f1' ( temp mediump int) +0:13 Sequence +0:13 move second child to first child ( temp mediump int) +0:13 'f3' ( temp mediump int) +0:13 Constant: +0:13 9 (const int) +0:14 Sequence +0:14 move second child to first child ( temp mediump int) +0:14 'f4' ( temp mediump int) +0:14 Constant: +0:14 1 (const int) +0:15 Sequence +0:15 move second child to first child ( temp mediump int) +0:15 'f5' ( temp mediump int) +0:15 Constant: +0:15 5 (const int) +0:17 Sequence +0:17 move second child to first child ( temp highp float) +0:17 'fl_f5' ( temp highp float) +0:17 Constant: +0:17 0.460000 +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out b/deps/glslang/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out new file mode 100644 index 0000000000..e9b4b1b7a7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppRelaxSkipTokensErrors.vert.out @@ -0,0 +1,14 @@ +cppRelaxSkipTokensErrors.vert +Shader version: 110 +0:? Sequence +0:? Linker Objects + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +Shader version: 110 +0:? Sequence +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out b/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out new file mode 100644 index 0000000000..8da3ae67ad --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/cppSimple.vert.out @@ -0,0 +1,303 @@ +cppSimple.vert +ERROR: 0:77: '#error' : good1 +ERROR: 0:81: '#error' : good2 +ERROR: 0:85: '#error' : good3 +ERROR: 0:89: '#error' : good4 +ERROR: 0:93: '#error' : good5 +ERROR: 0:97: '#error' : good6 +ERROR: 0:100: 'preprocessor evaluation' : expected ')' +ERROR: 0:101: '#error' : bad1 +ERROR: 0:104: '#if' : unexpected tokens following directive +ERROR: 0:105: '#error' : bad2 +ERROR: 0:108: 'preprocessor evaluation' : expected ')' +ERROR: 0:109: '#error' : bad3 +ERROR: 0:112: '#if' : unexpected tokens following directive +ERROR: 0:113: '#error' : bad4 +ERROR: 0:116: 'preprocessor evaluation' : expected ')' +ERROR: 0:117: '#error' : bad5 +ERROR: 0:120: '#if' : unexpected tokens following directive +ERROR: 0:121: '#error' : bad6 +ERROR: 0:122: '#endif' : unexpected tokens following directive +ERROR: 0:135: '""' : string literals not supported +ERROR: 0:136: '""' : string literals not supported +ERROR: 0:136: 'length' : no matching overloaded function found +ERROR: 0:136: '=' : cannot convert from ' const float' to ' global int' +ERROR: 0:138: ''' : character literals not supported +ERROR: 0:138: ''' : character literals not supported +ERROR: 0:141: '#define' : names beginning with "GL_" can't be (un)defined: GL_ +ERROR: 0:142: '#define' : names beginning with "GL_" can't be (un)defined: GL_Macro +WARNING: 0:143: '#define' : names containing consecutive underscores are reserved: __M +WARNING: 0:144: '#define' : names containing consecutive underscores are reserved: M__ +WARNING: 0:145: '#define' : names containing consecutive underscores are reserved: ABC__DE +ERROR: 0:148: '#else' : unexpected tokens following directive +ERROR: 0:149: '#elif' : #elif after #else +ERROR: 0:155: '#else' : unexpected tokens following directive +ERROR: 0:158: '#else' : #else after #else +ERROR: 0:160: '#endif' : unexpected tokens following directive +ERROR: 0:164: '#define' : duplicate macro parameter +ERROR: 0:173: '#define' : Macro redefined; different number of arguments: m4 +ERROR: 0:178: '#define' : Macro redefined; different number of arguments: m5 +ERROR: 0:182: '#define' : Macro redefined; different number of arguments: m6 +ERROR: 0:185: '#define' : Macro redefined; different substitutions: m7 +ERROR: 0:192: '#define' : Macro redefined; different substitutions: m8 +ERROR: 0:196: '#define' : Macro redefined; different argument names: m9 +WARNING: 0:204: '#undef' : names containing consecutive underscores are reserved: __VERSION__ +ERROR: 0:205: '#undef' : names beginning with "GL_" can't be (un)defined: GL_ARB_texture_rectangle +ERROR: 0:210: '#' : invalid directive +ERROR: 0:211: '#' : invalid directive +ERROR: 0:212: '#' : invalid directive +ERROR: 0:213: '#' : invalid directive +ERROR: 0:214: '#' : invalid directive +ERROR: 0:215: '#' : invalid directive +ERROR: 0:224: '#pragma' : optimize pragma syntax is incorrect +ERROR: 0:225: '#pragma' : optimize pragma syntax is incorrect +ERROR: 0:226: '#pragma' : debug pragma syntax is incorrect +ERROR: 0:227: '#pragma' : debug pragma syntax is incorrect +ERROR: 0:229: '#pragma' : optimize pragma syntax is incorrect +ERROR: 0:230: '#pragma' : debug pragma syntax is incorrect +ERROR: 0:233: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:235: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:236: '#error' : good continuation +ERROR: 0:238: '#' : invalid directive: flizbit +ERROR: 0:242: '#' : invalid directive: directive +ERROR: 0:12000: '#error' : line should be 12000 +ERROR: 7:13000: '#error' : line should be 13000 , string 7 +ERROR: 7:14013: '#error' : line should be 14013 , string 7 +ERROR: 12:14013: '#error' : line should be 14013 , string 12 +ERROR: 12:14025: '#error' : line should be 14025 , string 12 +ERROR: 12:1233: '#line' : unexpected tokens following directive +ERROR: 12:1236: '#line' : unexpected tokens following directive +ERROR: 12:20000: '#error' : line should be 20000 +ERROR: 12:20010: '#error' : line should be 20010 +ERROR: 12:20020: '#error' : line should be 20020 +ERROR: 12:20045: '#define' : Macro redefined; different substitutions: SPACE_IN_MIDDLE +ERROR: 12:20051: '#error' : good evaluation 1 +ERROR: 12:20055: '#error' : good evaluation 2 +ERROR: 12:9000: 'preprocessor evaluation' : expected ')' +ERROR: 12:9002: '#if' : unexpected tokens following directive +ERROR: 12:9014: 'FOOOM' : undeclared identifier +ERROR: 12:9014: '=' : cannot convert from ' temp float' to ' global int' +ERROR: 12:9016: 'preprocessor evaluation' : can't evaluate expression +ERROR: 12:9016: 'preprocessor evaluation' : bad expression +ERROR: 12:9500: 'preprocessor evaluation' : bad expression +ERROR: 12:9500: '#if' : unexpected tokens following directive +ERROR: 12:9502: 'preprocessor evaluation' : bad expression +ERROR: 12:9502: '#if' : unexpected tokens following directive +ERROR: 12:9504: 'preprocessor evaluation' : bad expression +ERROR: 12:9504: '#if' : unexpected tokens following directive +ERROR: 12:9506: '#error' : \ 377 +ERROR: 12:9507: '#error' : \ 376 +ERROR: 12:9508: '#error' : \ 377 +ERROR: 12:9602: 'defined' : cannot use in preprocessor expression when expanded from macros +ERROR: 12:9603: '#error' : DEF_DEFINED then +ERROR: 12:10002: '' : missing #endif +ERROR: 88 compilation errors. No code generated. + + +Shader version: 400 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'sum' ( global float) +0:5 Constant: +0:5 0.000000 +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:12 Sequence +0:12 add second child into first child ( temp float) +0:12 'sum' ( global float) +0:12 Constant: +0:12 1.000000 +0:22 add second child into first child ( temp float) +0:22 'sum' ( global float) +0:22 Constant: +0:22 300.000000 +0:37 add second child into first child ( temp float) +0:37 'sum' ( global float) +0:37 Constant: +0:37 600000.000000 +0:48 add second child into first child ( temp float) +0:48 'sum' ( global float) +0:48 Constant: +0:48 7000000.000000 +0:53 add second child into first child ( temp float) +0:53 'sum' ( global float) +0:53 Constant: +0:53 80000000.000000 +0:58 add second child into first child ( temp float) +0:58 'sum' ( global float) +0:58 Constant: +0:58 900000000.000000 +0:65 add second child into first child ( temp float) +0:65 'sum' ( global float) +0:65 Constant: +0:65 0.050000 +0:69 move second child to first child ( temp 4-component vector of float) +0:69 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:69 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:69 Constant: +0:69 0 (const uint) +0:69 Construct vec4 ( temp 4-component vector of float) +0:69 'sum' ( global float) +0:124 Sequence +0:124 move second child to first child ( temp int) +0:124 'linenumber' ( global int) +0:124 Constant: +0:124 124 (const int) +0:125 Sequence +0:125 move second child to first child ( temp int) +0:125 'filenumber' ( global int) +0:125 Constant: +0:125 0 (const int) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'version' ( global int) +0:126 Constant: +0:126 400 (const int) +0:130 Sequence +0:130 move second child to first child ( temp float) +0:130 'twoPi' ( global float) +0:130 Constant: +0:130 6.280000 +0:199 Sequence +0:199 move second child to first child ( temp int) +0:199 'n' ( global int) +0:199 Constant: +0:199 15 (const int) +0:202 Sequence +0:202 move second child to first child ( temp double) +0:202 'f' ( global double) +0:202 Constant: +0:202 0.000800 +12:20031 Function Definition: foo234( ( global void) +12:20031 Function Parameters: +12:20033 Sequence +12:20033 move second child to first child ( temp 4-component vector of float) +12:20033 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +12:20033 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +12:20033 Constant: +12:20033 0 (const uint) +12:20033 Constant: +12:20033 6.000000 +12:20033 6.000000 +12:20033 6.000000 +12:20033 6.000000 +12:9011 Sequence +12:9011 move second child to first child ( temp int) +12:9011 'R1' ( global int) +12:9011 'RECURSE' ( global int) +0:? Linker Objects +0:? 'sum' ( global float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'linenumber' ( global int) +0:? 'filenumber' ( global int) +0:? 'version' ( global int) +0:? 'twoPi' ( global float) +0:? 'a' ( global int) +0:? 'n' ( global int) +0:? 'f' ( global double) +0:? 'RECURSE' ( global int) +0:? 'R1' ( global int) +0:? 'aoeua' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 400 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'sum' ( global float) +0:5 Constant: +0:5 0.000000 +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:12 Sequence +0:12 add second child into first child ( temp float) +0:12 'sum' ( global float) +0:12 Constant: +0:12 1.000000 +0:22 add second child into first child ( temp float) +0:22 'sum' ( global float) +0:22 Constant: +0:22 300.000000 +0:37 add second child into first child ( temp float) +0:37 'sum' ( global float) +0:37 Constant: +0:37 600000.000000 +0:48 add second child into first child ( temp float) +0:48 'sum' ( global float) +0:48 Constant: +0:48 7000000.000000 +0:53 add second child into first child ( temp float) +0:53 'sum' ( global float) +0:53 Constant: +0:53 80000000.000000 +0:58 add second child into first child ( temp float) +0:58 'sum' ( global float) +0:58 Constant: +0:58 900000000.000000 +0:65 add second child into first child ( temp float) +0:65 'sum' ( global float) +0:65 Constant: +0:65 0.050000 +0:69 move second child to first child ( temp 4-component vector of float) +0:69 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:69 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:69 Constant: +0:69 0 (const uint) +0:69 Construct vec4 ( temp 4-component vector of float) +0:69 'sum' ( global float) +0:124 Sequence +0:124 move second child to first child ( temp int) +0:124 'linenumber' ( global int) +0:124 Constant: +0:124 124 (const int) +0:125 Sequence +0:125 move second child to first child ( temp int) +0:125 'filenumber' ( global int) +0:125 Constant: +0:125 0 (const int) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'version' ( global int) +0:126 Constant: +0:126 400 (const int) +0:130 Sequence +0:130 move second child to first child ( temp float) +0:130 'twoPi' ( global float) +0:130 Constant: +0:130 6.280000 +0:199 Sequence +0:199 move second child to first child ( temp int) +0:199 'n' ( global int) +0:199 Constant: +0:199 15 (const int) +0:202 Sequence +0:202 move second child to first child ( temp double) +0:202 'f' ( global double) +0:202 Constant: +0:202 0.000800 +12:9011 Sequence +12:9011 move second child to first child ( temp int) +12:9011 'R1' ( global int) +12:9011 'RECURSE' ( global int) +0:? Linker Objects +0:? 'sum' ( global float) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'linenumber' ( global int) +0:? 'filenumber' ( global int) +0:? 'version' ( global int) +0:? 'twoPi' ( global float) +0:? 'a' ( global int) +0:? 'n' ( global int) +0:? 'f' ( global double) +0:? 'RECURSE' ( global int) +0:? 'R1' ( global int) +0:? 'aoeua' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/dataOut.frag.out b/deps/glslang/glslang/Test/baseResults/dataOut.frag.out new file mode 100644 index 0000000000..789761692f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/dataOut.frag.out @@ -0,0 +1,35 @@ +dataOut.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 direct index ( temp 4-component vector of float FragData) +0:7 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:7 Constant: +0:7 1 (const int) +0:7 'Color' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'Color' ( smooth in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 direct index ( temp 4-component vector of float FragData) +0:7 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:7 Constant: +0:7 1 (const int) +0:7 'Color' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'Color' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/dataOutIndirect.frag.out b/deps/glslang/glslang/Test/baseResults/dataOutIndirect.frag.out new file mode 100644 index 0000000000..dbadb03ed7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/dataOutIndirect.frag.out @@ -0,0 +1,35 @@ +dataOutIndirect.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 indirect index ( temp 4-component vector of float FragData) +0:9 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:9 'i' ( uniform int) +0:9 'Color' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'Color' ( smooth in 4-component vector of float) +0:? 'i' ( uniform int) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 indirect index ( temp 4-component vector of float FragData) +0:9 'gl_FragData' ( fragColor 32-element array of 4-component vector of float FragData) +0:9 'i' ( uniform int) +0:9 'Color' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'Color' ( smooth in 4-component vector of float) +0:? 'i' ( uniform int) + diff --git a/deps/glslang/glslang/Test/baseResults/dce.frag.out b/deps/glslang/glslang/Test/baseResults/dce.frag.out new file mode 100644 index 0000000000..6b02eb1c21 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/dce.frag.out @@ -0,0 +1,152 @@ +dce.frag +Shader version: 400 +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'c' ( global int) +0:5 Constant: +0:5 0 (const int) +0:7 Function Definition: bar( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Constant: +0:9 false (const bool) +0:9 true case +0:10 Pre-Increment ( temp int) +0:10 'c' ( global int) +0:9 false case +0:12 Pre-Increment ( temp int) +0:12 'c' ( global int) +0:14 Test condition and select ( temp int) +0:14 Condition +0:14 Constant: +0:14 false (const bool) +0:14 true case +0:14 Pre-Increment ( temp int) +0:14 'c' ( global int) +0:14 false case +0:14 Pre-Increment ( temp int) +0:14 'c' ( global int) +0:16 switch +0:16 condition +0:16 'c' ( global int) +0:16 body +0:16 Sequence +0:17 case: with expression +0:17 Constant: +0:17 1 (const int) +0:? Sequence +0:18 Pre-Increment ( temp int) +0:18 'c' ( global int) +0:19 Branch: Break +0:20 Pre-Increment ( temp int) +0:20 'c' ( global int) +0:21 case: with expression +0:21 Constant: +0:21 2 (const int) +0:? Sequence +0:22 Branch: Break +0:23 Pre-Increment ( temp int) +0:23 'c' ( global int) +0:24 default: +0:? Sequence +0:25 Branch: Break +0:28 Sequence +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'i' ( temp int) +0:28 Constant: +0:28 0 (const int) +0:28 Loop with condition tested first +0:28 Loop Condition +0:28 Compare Less Than ( temp bool) +0:28 'i' ( temp int) +0:28 Constant: +0:28 0 (const int) +0:28 Loop Body +0:29 Pre-Increment ( temp int) +0:29 'c' ( global int) +0:28 Loop Terminal Expression +0:28 Pre-Increment ( temp int) +0:28 'i' ( temp int) +0:31 Sequence +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'i' ( temp int) +0:31 Constant: +0:31 0 (const int) +0:31 Loop with condition tested first +0:31 Loop Condition +0:31 Compare Less Than ( temp bool) +0:31 'i' ( temp int) +0:31 Constant: +0:31 10 (const int) +0:31 Loop Body +0:32 Sequence +0:32 Test condition and select ( temp void) +0:32 Condition +0:32 Compare Less Than ( temp bool) +0:32 'c' ( global int) +0:32 Constant: +0:32 3 (const int) +0:32 true case +0:33 Sequence +0:33 Branch: Break +0:34 Pre-Increment ( temp int) +0:34 'c' ( global int) +0:32 false case +0:36 Sequence +0:36 Branch: Continue +0:37 Pre-Increment ( temp int) +0:37 'c' ( global int) +0:31 Loop Terminal Expression +0:31 Pre-Increment ( temp int) +0:31 'i' ( temp int) +0:41 Branch: Return +0:43 Pre-Increment ( temp int) +0:43 'c' ( global int) +0:46 Function Definition: foo( ( global int) +0:46 Function Parameters: +0:48 Sequence +0:48 Test condition and select ( temp void) +0:48 Condition +0:48 Compare Greater Than ( temp bool) +0:48 'c' ( global int) +0:48 Constant: +0:48 4 (const int) +0:48 true case +0:49 Sequence +0:49 Branch: Return with expression +0:49 Constant: +0:49 4 (const int) +0:50 Pre-Increment ( temp int) +0:50 'c' ( global int) +0:53 Branch: Return with expression +0:53 Constant: +0:53 5 (const int) +0:55 Pre-Increment ( temp int) +0:55 'c' ( global int) +0:? Linker Objects +0:? 'flag' ( const bool) +0:? false (const bool) +0:? 'c' ( global int) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 400 +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'c' ( global int) +0:5 Constant: +0:5 0 (const int) +0:? Linker Objects +0:? 'flag' ( const bool) +0:? false (const bool) +0:? 'c' ( global int) + diff --git a/deps/glslang/glslang/Test/baseResults/decls.frag.out b/deps/glslang/glslang/Test/baseResults/decls.frag.out new file mode 100644 index 0000000000..72ad11c4f7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/decls.frag.out @@ -0,0 +1,515 @@ +decls.frag +ERROR: 0:19: 'vi4' : illegal use of type 'void' +ERROR: 0:20: 'vj' : illegal use of type 'void' +ERROR: 0:20: 'vk5' : illegal use of type 'void' +ERROR: 0:21: 'vm2' : illegal use of type 'void' +ERROR: 0:21: 'vm3' : illegal use of type 'void' +ERROR: 0:22: 'vn8' : illegal use of type 'void' +ERROR: 0:22: 'vp' : illegal use of type 'void' +ERROR: 0:25: 'cij' : variables with qualifier 'const' must be initialized +ERROR: 0:27: 'cip' : variables with qualifier 'const' must be initialized +ERROR: 0:34: 'gl_vi4' : identifiers starting with "gl_" are reserved +ERROR: 0:35: 'gl_vj' : identifiers starting with "gl_" are reserved +ERROR: 0:35: 'gl_vk5' : identifiers starting with "gl_" are reserved +ERROR: 0:36: 'gl_vm2' : identifiers starting with "gl_" are reserved +ERROR: 0:36: 'gl_vm3' : identifiers starting with "gl_" are reserved +ERROR: 0:37: 'gl_vn8' : identifiers starting with "gl_" are reserved +ERROR: 0:37: 'gl_vp' : identifiers starting with "gl_" are reserved +ERROR: 0:42: '' : boolean expression expected +ERROR: 0:43: 'gl_cond' : identifiers starting with "gl_" are reserved +WARNING: 0:46: 'foob__vi4' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:47: 'foob__vj' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:47: 'foob__vk5' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:48: '__foobvm2' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:48: '__foobvm3' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:49: 'foob__vn8' : identifiers containing consecutive underscores ("__") are reserved +WARNING: 0:49: 'foob__vp' : identifiers containing consecutive underscores ("__") are reserved +ERROR: 18 compilation errors. No code generated. + + +Shader version: 120 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'd1' ( global int) +0:5 Constant: +0:5 1 (const int) +0:6 Sequence +0:6 move second child to first child ( temp int) +0:6 'e2' ( global int) +0:6 Constant: +0:6 2 (const int) +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'h3' ( global int) +0:7 Constant: +0:7 3 (const int) +0:14 Sequence +0:14 move second child to first child ( temp 4-element array of int) +0:14 'ii4' ( global 4-element array of int) +0:14 Constant: +0:14 1 (const int) +0:14 2 (const int) +0:14 3 (const int) +0:14 4 (const int) +0:15 Sequence +0:15 move second child to first child ( temp 5-element array of int) +0:15 'ik5' ( global 5-element array of int) +0:15 Constant: +0:15 5 (const int) +0:15 6 (const int) +0:15 7 (const int) +0:15 8 (const int) +0:15 9 (const int) +0:16 Sequence +0:16 move second child to first child ( temp 2-element array of int) +0:16 'im2' ( global 2-element array of int) +0:16 Constant: +0:16 10 (const int) +0:16 11 (const int) +0:16 move second child to first child ( temp 3-element array of int) +0:16 'im3' ( global 3-element array of int) +0:16 Constant: +0:16 12 (const int) +0:16 13 (const int) +0:16 14 (const int) +0:17 Sequence +0:17 move second child to first child ( temp 4-element array of int) +0:17 'in8' ( global 4-element array of int) +0:17 Constant: +0:17 21 (const int) +0:17 22 (const int) +0:17 23 (const int) +0:17 24 (const int) +0:34 Sequence +0:34 move second child to first child ( temp 4-element array of int) +0:34 'gl_vi4' ( global 4-element array of int) +0:34 Constant: +0:34 1 (const int) +0:34 2 (const int) +0:34 3 (const int) +0:34 4 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 5-element array of int) +0:35 'gl_vk5' ( global 5-element array of int) +0:35 Constant: +0:35 5 (const int) +0:35 6 (const int) +0:35 7 (const int) +0:35 8 (const int) +0:35 9 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 2-element array of int) +0:36 'gl_vm2' ( global 2-element array of int) +0:36 Constant: +0:36 10 (const int) +0:36 11 (const int) +0:36 move second child to first child ( temp 3-element array of int) +0:36 'gl_vm3' ( global 3-element array of int) +0:36 Constant: +0:36 12 (const int) +0:36 13 (const int) +0:36 14 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-element array of int) +0:37 'gl_vn8' ( global 4-element array of int) +0:37 Constant: +0:37 21 (const int) +0:37 22 (const int) +0:37 23 (const int) +0:37 24 (const int) +0:39 Function Definition: main( ( global void) +0:39 Function Parameters: +0:41 Sequence +0:41 Loop with condition tested first +0:41 Loop Condition +0:41 move second child to first child ( temp bool) +0:41 'cond' ( temp bool) +0:41 Compare Less Than ( temp bool) +0:41 'b' ( global int) +0:41 'c' ( global int) +0:41 No loop body +0:42 Loop with condition tested first +0:42 Loop Condition +0:42 move second child to first child ( temp int) +0:42 'icond' ( temp int) +0:42 'b' ( global int) +0:42 No loop body +0:43 Loop with condition tested first +0:43 Loop Condition +0:43 move second child to first child ( temp bool) +0:43 'gl_cond' ( temp bool) +0:43 Compare Less Than ( temp bool) +0:43 'b' ( global int) +0:43 'c' ( global int) +0:43 No loop body +0:46 Sequence +0:46 move second child to first child ( temp 4-element array of int) +0:46 'foob__vi4' ( global 4-element array of int) +0:46 Constant: +0:46 1 (const int) +0:46 2 (const int) +0:46 3 (const int) +0:46 4 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 5-element array of int) +0:47 'foob__vk5' ( global 5-element array of int) +0:47 Constant: +0:47 5 (const int) +0:47 6 (const int) +0:47 7 (const int) +0:47 8 (const int) +0:47 9 (const int) +0:48 Sequence +0:48 move second child to first child ( temp 2-element array of int) +0:48 '__foobvm2' ( global 2-element array of int) +0:48 Constant: +0:48 10 (const int) +0:48 11 (const int) +0:48 move second child to first child ( temp 3-element array of int) +0:48 '__foobvm3' ( global 3-element array of int) +0:48 Constant: +0:48 12 (const int) +0:48 13 (const int) +0:48 14 (const int) +0:49 Sequence +0:49 move second child to first child ( temp 4-element array of int) +0:49 'foob__vn8' ( global 4-element array of int) +0:49 Constant: +0:49 21 (const int) +0:49 22 (const int) +0:49 23 (const int) +0:49 24 (const int) +0:? Linker Objects +0:? 'a' ( global int) +0:? 'b' ( global int) +0:? 'c' ( global int) +0:? 'd1' ( global int) +0:? 'e2' ( global int) +0:? 'f' ( global int) +0:? 'g' ( global int) +0:? 'h3' ( global int) +0:? 'i4' ( global 4-element array of int) +0:? 'j' ( global int) +0:? 'k5' ( global 5-element array of int) +0:? 'm6' ( global 6-element array of int) +0:? 'm7' ( global 7-element array of int) +0:? 'n8' ( global 8-element array of int) +0:? 'p' ( global int) +0:? 'ii4' ( global 4-element array of int) +0:? 'ij' ( global int) +0:? 'ik5' ( global 5-element array of int) +0:? 'im2' ( global 2-element array of int) +0:? 'im3' ( global 3-element array of int) +0:? 'in8' ( global 4-element array of int) +0:? 'ip' ( global int) +0:? 'cii4' ( const 4-element array of int) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:? 'cij' ( temp int) +0:? 'cik5' ( const 5-element array of int) +0:? 5 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:? 9 (const int) +0:? 'cim2' ( const 2-element array of int) +0:? 10 (const int) +0:? 11 (const int) +0:? 'cim3' ( const 3-element array of int) +0:? 12 (const int) +0:? 13 (const int) +0:? 14 (const int) +0:? 'cin8' ( const 4-element array of int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:? 24 (const int) +0:? 'cip' ( temp int) +0:? 'uii4' ( uniform 4-element array of int) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:? 'uij' ( uniform int) +0:? 'uik5' ( uniform 5-element array of int) +0:? 5 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:? 9 (const int) +0:? 'uim2' ( uniform 2-element array of int) +0:? 10 (const int) +0:? 11 (const int) +0:? 'uim3' ( uniform 3-element array of int) +0:? 12 (const int) +0:? 13 (const int) +0:? 14 (const int) +0:? 'uin8' ( uniform 4-element array of int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:? 24 (const int) +0:? 'uip' ( uniform int) +0:? 'gl_vi4' ( global 4-element array of int) +0:? 'gl_vj' ( global int) +0:? 'gl_vk5' ( global 5-element array of int) +0:? 'gl_vm2' ( global 2-element array of int) +0:? 'gl_vm3' ( global 3-element array of int) +0:? 'gl_vn8' ( global 4-element array of int) +0:? 'gl_vp' ( global int) +0:? 'foob__vi4' ( global 4-element array of int) +0:? 'foob__vj' ( global int) +0:? 'foob__vk5' ( global 5-element array of int) +0:? '__foobvm2' ( global 2-element array of int) +0:? '__foobvm3' ( global 3-element array of int) +0:? 'foob__vn8' ( global 4-element array of int) +0:? 'foob__vp' ( global int) + + +Linked fragment stage: + + +Shader version: 120 +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'd1' ( global int) +0:5 Constant: +0:5 1 (const int) +0:6 Sequence +0:6 move second child to first child ( temp int) +0:6 'e2' ( global int) +0:6 Constant: +0:6 2 (const int) +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'h3' ( global int) +0:7 Constant: +0:7 3 (const int) +0:14 Sequence +0:14 move second child to first child ( temp 4-element array of int) +0:14 'ii4' ( global 4-element array of int) +0:14 Constant: +0:14 1 (const int) +0:14 2 (const int) +0:14 3 (const int) +0:14 4 (const int) +0:15 Sequence +0:15 move second child to first child ( temp 5-element array of int) +0:15 'ik5' ( global 5-element array of int) +0:15 Constant: +0:15 5 (const int) +0:15 6 (const int) +0:15 7 (const int) +0:15 8 (const int) +0:15 9 (const int) +0:16 Sequence +0:16 move second child to first child ( temp 2-element array of int) +0:16 'im2' ( global 2-element array of int) +0:16 Constant: +0:16 10 (const int) +0:16 11 (const int) +0:16 move second child to first child ( temp 3-element array of int) +0:16 'im3' ( global 3-element array of int) +0:16 Constant: +0:16 12 (const int) +0:16 13 (const int) +0:16 14 (const int) +0:17 Sequence +0:17 move second child to first child ( temp 4-element array of int) +0:17 'in8' ( global 4-element array of int) +0:17 Constant: +0:17 21 (const int) +0:17 22 (const int) +0:17 23 (const int) +0:17 24 (const int) +0:34 Sequence +0:34 move second child to first child ( temp 4-element array of int) +0:34 'gl_vi4' ( global 4-element array of int) +0:34 Constant: +0:34 1 (const int) +0:34 2 (const int) +0:34 3 (const int) +0:34 4 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 5-element array of int) +0:35 'gl_vk5' ( global 5-element array of int) +0:35 Constant: +0:35 5 (const int) +0:35 6 (const int) +0:35 7 (const int) +0:35 8 (const int) +0:35 9 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 2-element array of int) +0:36 'gl_vm2' ( global 2-element array of int) +0:36 Constant: +0:36 10 (const int) +0:36 11 (const int) +0:36 move second child to first child ( temp 3-element array of int) +0:36 'gl_vm3' ( global 3-element array of int) +0:36 Constant: +0:36 12 (const int) +0:36 13 (const int) +0:36 14 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-element array of int) +0:37 'gl_vn8' ( global 4-element array of int) +0:37 Constant: +0:37 21 (const int) +0:37 22 (const int) +0:37 23 (const int) +0:37 24 (const int) +0:39 Function Definition: main( ( global void) +0:39 Function Parameters: +0:41 Sequence +0:41 Loop with condition tested first +0:41 Loop Condition +0:41 move second child to first child ( temp bool) +0:41 'cond' ( temp bool) +0:41 Compare Less Than ( temp bool) +0:41 'b' ( global int) +0:41 'c' ( global int) +0:41 No loop body +0:42 Loop with condition tested first +0:42 Loop Condition +0:42 move second child to first child ( temp int) +0:42 'icond' ( temp int) +0:42 'b' ( global int) +0:42 No loop body +0:43 Loop with condition tested first +0:43 Loop Condition +0:43 move second child to first child ( temp bool) +0:43 'gl_cond' ( temp bool) +0:43 Compare Less Than ( temp bool) +0:43 'b' ( global int) +0:43 'c' ( global int) +0:43 No loop body +0:46 Sequence +0:46 move second child to first child ( temp 4-element array of int) +0:46 'foob__vi4' ( global 4-element array of int) +0:46 Constant: +0:46 1 (const int) +0:46 2 (const int) +0:46 3 (const int) +0:46 4 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 5-element array of int) +0:47 'foob__vk5' ( global 5-element array of int) +0:47 Constant: +0:47 5 (const int) +0:47 6 (const int) +0:47 7 (const int) +0:47 8 (const int) +0:47 9 (const int) +0:48 Sequence +0:48 move second child to first child ( temp 2-element array of int) +0:48 '__foobvm2' ( global 2-element array of int) +0:48 Constant: +0:48 10 (const int) +0:48 11 (const int) +0:48 move second child to first child ( temp 3-element array of int) +0:48 '__foobvm3' ( global 3-element array of int) +0:48 Constant: +0:48 12 (const int) +0:48 13 (const int) +0:48 14 (const int) +0:49 Sequence +0:49 move second child to first child ( temp 4-element array of int) +0:49 'foob__vn8' ( global 4-element array of int) +0:49 Constant: +0:49 21 (const int) +0:49 22 (const int) +0:49 23 (const int) +0:49 24 (const int) +0:? Linker Objects +0:? 'a' ( global int) +0:? 'b' ( global int) +0:? 'c' ( global int) +0:? 'd1' ( global int) +0:? 'e2' ( global int) +0:? 'f' ( global int) +0:? 'g' ( global int) +0:? 'h3' ( global int) +0:? 'i4' ( global 4-element array of int) +0:? 'j' ( global int) +0:? 'k5' ( global 5-element array of int) +0:? 'm6' ( global 6-element array of int) +0:? 'm7' ( global 7-element array of int) +0:? 'n8' ( global 8-element array of int) +0:? 'p' ( global int) +0:? 'ii4' ( global 4-element array of int) +0:? 'ij' ( global int) +0:? 'ik5' ( global 5-element array of int) +0:? 'im2' ( global 2-element array of int) +0:? 'im3' ( global 3-element array of int) +0:? 'in8' ( global 4-element array of int) +0:? 'ip' ( global int) +0:? 'cii4' ( const 4-element array of int) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:? 'cij' ( temp int) +0:? 'cik5' ( const 5-element array of int) +0:? 5 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:? 9 (const int) +0:? 'cim2' ( const 2-element array of int) +0:? 10 (const int) +0:? 11 (const int) +0:? 'cim3' ( const 3-element array of int) +0:? 12 (const int) +0:? 13 (const int) +0:? 14 (const int) +0:? 'cin8' ( const 4-element array of int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:? 24 (const int) +0:? 'cip' ( temp int) +0:? 'uii4' ( uniform 4-element array of int) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:? 'uij' ( uniform int) +0:? 'uik5' ( uniform 5-element array of int) +0:? 5 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:? 9 (const int) +0:? 'uim2' ( uniform 2-element array of int) +0:? 10 (const int) +0:? 11 (const int) +0:? 'uim3' ( uniform 3-element array of int) +0:? 12 (const int) +0:? 13 (const int) +0:? 14 (const int) +0:? 'uin8' ( uniform 4-element array of int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:? 24 (const int) +0:? 'uip' ( uniform int) +0:? 'gl_vi4' ( global 4-element array of int) +0:? 'gl_vj' ( global int) +0:? 'gl_vk5' ( global 5-element array of int) +0:? 'gl_vm2' ( global 2-element array of int) +0:? 'gl_vm3' ( global 3-element array of int) +0:? 'gl_vn8' ( global 4-element array of int) +0:? 'gl_vp' ( global int) +0:? 'foob__vi4' ( global 4-element array of int) +0:? 'foob__vj' ( global int) +0:? 'foob__vk5' ( global 5-element array of int) +0:? '__foobvm2' ( global 2-element array of int) +0:? '__foobvm3' ( global 3-element array of int) +0:? 'foob__vn8' ( global 4-element array of int) +0:? 'foob__vp' ( global int) + diff --git a/deps/glslang/glslang/Test/baseResults/deepRvalue.frag.out b/deps/glslang/glslang/Test/baseResults/deepRvalue.frag.out new file mode 100644 index 0000000000..a4fdf5a8ee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/deepRvalue.frag.out @@ -0,0 +1,285 @@ +deepRvalue.frag +Shader version: 120 +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'v1' ( global 4-component vector of float) +0:5 Constant: +0:5 2.000000 +0:5 3.000000 +0:5 5.000000 +0:5 7.000000 +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'v2' ( global 4-component vector of float) +0:6 Constant: +0:6 11.000000 +0:6 13.000000 +0:6 17.000000 +0:6 19.000000 +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 'v3' ( global 4-component vector of float) +0:7 Constant: +0:7 23.000000 +0:7 29.000000 +0:7 31.000000 +0:7 37.000000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'v4' ( global 4-component vector of float) +0:8 Constant: +0:8 41.000000 +0:8 43.000000 +0:8 47.000000 +0:8 53.000000 +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 Sequence +0:18 move second child to first child ( temp 4X4 matrix of float) +0:18 'm' ( temp 4X4 matrix of float) +0:18 Construct mat4 ( temp 4X4 matrix of float) +0:18 'v1' ( global 4-component vector of float) +0:18 'v2' ( global 4-component vector of float) +0:18 'v3' ( global 4-component vector of float) +0:18 'v4' ( global 4-component vector of float) +0:20 Sequence +0:20 move second child to first child ( temp 4X4 matrix of float) +0:20 'mm' ( temp 4X4 matrix of float) +0:20 component-wise multiply ( global 4X4 matrix of float) +0:20 'm' ( temp 4X4 matrix of float) +0:20 'm' ( temp 4X4 matrix of float) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'f' ( temp float) +0:21 direct index ( temp float) +0:21 direct index ( temp 4-component vector of float) +0:21 'mm' ( temp 4X4 matrix of float) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 3 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'g' ( temp float) +0:24 direct index ( temp float) +0:24 direct index ( temp 4-component vector of float) +0:24 component-wise multiply ( global 4X4 matrix of float) +0:24 'm' ( temp 4X4 matrix of float) +0:24 'm' ( temp 4X4 matrix of float) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 1 (const int) +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'h' ( temp float) +0:26 Constant: +0:26 5.000000 +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'i' ( temp float) +0:28 direct index ( temp float) +0:28 texture ( global 4-component vector of float) +0:28 'sampler' ( uniform sampler2D) +0:28 Constant: +0:28 0.500000 +0:28 0.500000 +0:28 Constant: +0:28 1 (const int) +0:30 add second child into first child ( temp float) +0:30 'i' ( temp float) +0:30 direct index ( temp float) +0:30 Test condition and select ( temp 4-component vector of float) +0:30 Condition +0:30 Compare Greater Than ( temp bool) +0:30 'i' ( temp float) +0:30 Constant: +0:30 0.100000 +0:30 true case +0:30 'v1' ( global 4-component vector of float) +0:30 false case +0:30 'v2' ( global 4-component vector of float) +0:30 Constant: +0:30 3 (const int) +0:33 add second child into first child ( temp float) +0:33 'i' ( temp float) +0:33 direct index ( temp float) +0:33 direct index ( temp 2-component vector of float) +0:33 b: direct index for structure ( global 3-element array of 2-component vector of float) +0:33 move second child to first child ( temp structure{ global int a, global 3-element array of 2-component vector of float b, global bool c}) +0:33 't' ( temp structure{ global int a, global 3-element array of 2-component vector of float b, global bool c}) +0:33 Constant: +0:33 1 (const int) +0:33 2.000000 +0:33 3.000000 +0:33 4.000000 +0:33 5.000000 +0:33 6.000000 +0:33 7.000000 +0:33 true (const bool) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:35 Construct vec4 ( temp 4-component vector of float) +0:35 'f' ( temp float) +0:35 'g' ( temp float) +0:35 'h' ( temp float) +0:35 'i' ( temp float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'v1' ( global 4-component vector of float) +0:? 'v2' ( global 4-component vector of float) +0:? 'v3' ( global 4-component vector of float) +0:? 'v4' ( global 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 120 +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'v1' ( global 4-component vector of float) +0:5 Constant: +0:5 2.000000 +0:5 3.000000 +0:5 5.000000 +0:5 7.000000 +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'v2' ( global 4-component vector of float) +0:6 Constant: +0:6 11.000000 +0:6 13.000000 +0:6 17.000000 +0:6 19.000000 +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 'v3' ( global 4-component vector of float) +0:7 Constant: +0:7 23.000000 +0:7 29.000000 +0:7 31.000000 +0:7 37.000000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'v4' ( global 4-component vector of float) +0:8 Constant: +0:8 41.000000 +0:8 43.000000 +0:8 47.000000 +0:8 53.000000 +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 Sequence +0:18 move second child to first child ( temp 4X4 matrix of float) +0:18 'm' ( temp 4X4 matrix of float) +0:18 Construct mat4 ( temp 4X4 matrix of float) +0:18 'v1' ( global 4-component vector of float) +0:18 'v2' ( global 4-component vector of float) +0:18 'v3' ( global 4-component vector of float) +0:18 'v4' ( global 4-component vector of float) +0:20 Sequence +0:20 move second child to first child ( temp 4X4 matrix of float) +0:20 'mm' ( temp 4X4 matrix of float) +0:20 component-wise multiply ( global 4X4 matrix of float) +0:20 'm' ( temp 4X4 matrix of float) +0:20 'm' ( temp 4X4 matrix of float) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'f' ( temp float) +0:21 direct index ( temp float) +0:21 direct index ( temp 4-component vector of float) +0:21 'mm' ( temp 4X4 matrix of float) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 3 (const int) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'g' ( temp float) +0:24 direct index ( temp float) +0:24 direct index ( temp 4-component vector of float) +0:24 component-wise multiply ( global 4X4 matrix of float) +0:24 'm' ( temp 4X4 matrix of float) +0:24 'm' ( temp 4X4 matrix of float) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 1 (const int) +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'h' ( temp float) +0:26 Constant: +0:26 5.000000 +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'i' ( temp float) +0:28 direct index ( temp float) +0:28 texture ( global 4-component vector of float) +0:28 'sampler' ( uniform sampler2D) +0:28 Constant: +0:28 0.500000 +0:28 0.500000 +0:28 Constant: +0:28 1 (const int) +0:30 add second child into first child ( temp float) +0:30 'i' ( temp float) +0:30 direct index ( temp float) +0:30 Test condition and select ( temp 4-component vector of float) +0:30 Condition +0:30 Compare Greater Than ( temp bool) +0:30 'i' ( temp float) +0:30 Constant: +0:30 0.100000 +0:30 true case +0:30 'v1' ( global 4-component vector of float) +0:30 false case +0:30 'v2' ( global 4-component vector of float) +0:30 Constant: +0:30 3 (const int) +0:33 add second child into first child ( temp float) +0:33 'i' ( temp float) +0:33 direct index ( temp float) +0:33 direct index ( temp 2-component vector of float) +0:33 b: direct index for structure ( global 3-element array of 2-component vector of float) +0:33 move second child to first child ( temp structure{ global int a, global 3-element array of 2-component vector of float b, global bool c}) +0:33 't' ( temp structure{ global int a, global 3-element array of 2-component vector of float b, global bool c}) +0:33 Constant: +0:33 1 (const int) +0:33 2.000000 +0:33 3.000000 +0:33 4.000000 +0:33 5.000000 +0:33 6.000000 +0:33 7.000000 +0:33 true (const bool) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:35 Construct vec4 ( temp 4-component vector of float) +0:35 'f' ( temp float) +0:35 'g' ( temp float) +0:35 'h' ( temp float) +0:35 'i' ( temp float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'v1' ( global 4-component vector of float) +0:? 'v2' ( global 4-component vector of float) +0:? 'v3' ( global 4-component vector of float) +0:? 'v4' ( global 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/depthOut.frag.out b/deps/glslang/glslang/Test/baseResults/depthOut.frag.out new file mode 100644 index 0000000000..91c1fc2075 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/depthOut.frag.out @@ -0,0 +1,38 @@ +depthOut.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release +WARNING: 0:4: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:8 'Depth' ( smooth in float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:9 'Color' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'Color' ( smooth in 4-component vector of float) +0:? 'Depth' ( smooth in float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:8 'Depth' ( smooth in float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:9 'Color' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'Color' ( smooth in 4-component vector of float) +0:? 'Depth' ( smooth in float) + diff --git a/deps/glslang/glslang/Test/baseResults/discard-dce.frag.out b/deps/glslang/glslang/Test/baseResults/discard-dce.frag.out new file mode 100644 index 0000000000..5f5e889455 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/discard-dce.frag.out @@ -0,0 +1,239 @@ +discard-dce.frag +Shader version: 110 +0:? Sequence +0:4 Function Definition: main( ( global void) +0:4 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'white' ( 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 4-component vector of float) +0:7 'black' ( temp 4-component vector of float) +0:7 Constant: +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'color' ( temp 4-component vector of float) +0:8 'white' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'x' ( temp float) +0:11 subtract ( temp float) +0:11 component-wise multiply ( temp float) +0:11 direct index ( temp float) +0:11 'tex_coord' ( smooth in 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2.000000 +0:11 Constant: +0:11 1.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'y' ( temp float) +0:12 subtract ( temp float) +0:12 component-wise multiply ( temp float) +0:12 direct index ( temp float) +0:12 'tex_coord' ( smooth in 2-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2.000000 +0:12 Constant: +0:12 1.000000 +0:14 Sequence +0:14 move second child to first child ( temp float) +0:14 'radius' ( temp float) +0:14 sqrt ( global float) +0:14 add ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'x' ( temp float) +0:14 'x' ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'y' ( temp float) +0:14 'y' ( temp float) +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Compare Greater Than ( temp bool) +0:15 'radius' ( temp float) +0:15 Constant: +0:15 1.000000 +0:15 true case +0:16 Sequence +0:16 Test condition and select ( temp void) +0:16 Condition +0:16 Compare Greater Than ( temp bool) +0:16 'radius' ( temp float) +0:16 Constant: +0:16 1.100000 +0:16 true case +0:17 Sequence +0:17 Pre-Increment ( temp 4-component vector of float) +0:17 'color' ( temp 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:20 'color' ( temp 4-component vector of float) +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Compare Greater Than ( temp bool) +0:22 'radius' ( temp float) +0:22 Constant: +0:22 1.200000 +0:22 true case +0:23 Sequence +0:23 Pre-Increment ( temp 4-component vector of float) +0:23 'color' ( temp 4-component vector of float) +0:26 Branch: Kill +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Compare Greater Than or Equal ( temp bool) +0:30 'radius' ( temp float) +0:30 Constant: +0:30 0.750000 +0:30 true case +0:31 subtract second child into first child ( temp 4-component vector of float) +0:31 'color' ( temp 4-component vector of float) +0:31 Absolute value ( global float) +0:31 divide ( temp float) +0:31 pow ( global float) +0:31 'radius' ( temp float) +0:31 Constant: +0:31 16.000000 +0:31 Constant: +0:31 2.000000 +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:33 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex_coord' ( smooth in 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:4 Function Definition: main( ( global void) +0:4 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'white' ( 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 4-component vector of float) +0:7 'black' ( temp 4-component vector of float) +0:7 Constant: +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:7 0.200000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'color' ( temp 4-component vector of float) +0:8 'white' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'x' ( temp float) +0:11 subtract ( temp float) +0:11 component-wise multiply ( temp float) +0:11 direct index ( temp float) +0:11 'tex_coord' ( smooth in 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2.000000 +0:11 Constant: +0:11 1.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'y' ( temp float) +0:12 subtract ( temp float) +0:12 component-wise multiply ( temp float) +0:12 direct index ( temp float) +0:12 'tex_coord' ( smooth in 2-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2.000000 +0:12 Constant: +0:12 1.000000 +0:14 Sequence +0:14 move second child to first child ( temp float) +0:14 'radius' ( temp float) +0:14 sqrt ( global float) +0:14 add ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'x' ( temp float) +0:14 'x' ( temp float) +0:14 component-wise multiply ( temp float) +0:14 'y' ( temp float) +0:14 'y' ( temp float) +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Compare Greater Than ( temp bool) +0:15 'radius' ( temp float) +0:15 Constant: +0:15 1.000000 +0:15 true case +0:16 Sequence +0:16 Test condition and select ( temp void) +0:16 Condition +0:16 Compare Greater Than ( temp bool) +0:16 'radius' ( temp float) +0:16 Constant: +0:16 1.100000 +0:16 true case +0:17 Sequence +0:17 Pre-Increment ( temp 4-component vector of float) +0:17 'color' ( temp 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:20 'color' ( temp 4-component vector of float) +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Compare Greater Than ( temp bool) +0:22 'radius' ( temp float) +0:22 Constant: +0:22 1.200000 +0:22 true case +0:23 Sequence +0:23 Pre-Increment ( temp 4-component vector of float) +0:23 'color' ( temp 4-component vector of float) +0:26 Branch: Kill +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Compare Greater Than or Equal ( temp bool) +0:30 'radius' ( temp float) +0:30 Constant: +0:30 0.750000 +0:30 true case +0:31 subtract second child into first child ( temp 4-component vector of float) +0:31 'color' ( temp 4-component vector of float) +0:31 Absolute value ( global float) +0:31 divide ( temp float) +0:31 pow ( global float) +0:31 'radius' ( temp float) +0:31 Constant: +0:31 16.000000 +0:31 Constant: +0:31 2.000000 +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:33 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex_coord' ( smooth in 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/doWhileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/doWhileLoop.frag.out new file mode 100644 index 0000000000..5302cb98b4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/doWhileLoop.frag.out @@ -0,0 +1,65 @@ +doWhileLoop.frag +Shader version: 110 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'color' ( temp 4-component vector of float) +0:9 'BaseColor' ( smooth in 4-component vector of float) +0:13 Loop with condition not tested first +0:13 Loop Condition +0:13 Compare Less Than ( temp bool) +0:13 direct index ( temp float) +0:13 'color' ( temp 4-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 'd' ( uniform float) +0:13 Loop Body +0:12 Sequence +0:12 add second child into first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'bigColor' ( uniform 4-component vector of float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:15 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'color' ( temp 4-component vector of float) +0:9 'BaseColor' ( smooth in 4-component vector of float) +0:13 Loop with condition not tested first +0:13 Loop Condition +0:13 Compare Less Than ( temp bool) +0:13 direct index ( temp float) +0:13 'color' ( temp 4-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 'd' ( uniform float) +0:13 Loop Body +0:12 Sequence +0:12 add second child into first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'bigColor' ( uniform 4-component vector of float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:15 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + diff --git a/deps/glslang/glslang/Test/baseResults/earlyReturnDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/earlyReturnDiscard.frag.out new file mode 100644 index 0000000000..8c9e4d9715 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/earlyReturnDiscard.frag.out @@ -0,0 +1,257 @@ +earlyReturnDiscard.frag +Shader version: 110 +0:? Sequence +0:19 Function Definition: main( ( global void) +0:19 Function Parameters: +0:21 Sequence +0:21 Sequence +0:21 move second child to first child ( temp 4-component vector of float) +0:21 'color' ( temp 4-component vector of float) +0:21 'BaseColor' ( smooth in 4-component vector of float) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 'color2' ( temp 4-component vector of float) +0:24 'otherColor' ( uniform 4-component vector of float) +0:26 Test condition and select ( temp void) +0:26 Condition +0:26 Compare Greater Than ( temp bool) +0:26 'c' ( smooth in float) +0:26 'd' ( uniform float) +0:26 true case +0:27 add second child into first child ( temp 4-component vector of float) +0:27 'color' ( temp 4-component vector of float) +0:27 'bigColor' ( uniform 4-component vector of float) +0:26 false case +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'color' ( temp 4-component vector of float) +0:29 'smallColor' ( uniform 4-component vector of float) +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Less Than ( temp bool) +0:31 direct index ( temp float) +0:31 'color' ( temp 4-component vector of float) +0:31 Constant: +0:31 2 (const int) +0:31 'minimum' ( uniform float) +0:31 true case +0:32 Branch: Return +0:34 Post-Increment ( temp float) +0:34 direct index ( temp float) +0:34 'color' ( temp 4-component vector of float) +0:34 Constant: +0:34 2 (const int) +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 Compare Greater Than ( temp bool) +0:36 direct index ( temp float) +0:36 'color' ( temp 4-component vector of float) +0:36 Constant: +0:36 2 (const int) +0:36 'threshhold' ( uniform float) +0:36 true case +0:37 Branch: Kill +0:39 Post-Increment ( temp 4-component vector of float) +0:39 'color' ( temp 4-component vector of float) +0:42 Test condition and select ( temp void) +0:42 Condition +0:42 Compare Greater Than ( temp bool) +0:42 direct index ( temp float) +0:42 'color' ( temp 4-component vector of float) +0:42 Constant: +0:42 3 (const int) +0:42 'threshhold2' ( uniform float) +0:42 true case +0:43 Sequence +0:43 Test condition and select ( temp void) +0:43 Condition +0:43 Compare Greater Than ( temp bool) +0:43 direct index ( temp float) +0:43 'color' ( temp 4-component vector of float) +0:43 Constant: +0:43 2 (const int) +0:43 'threshhold2' ( uniform float) +0:43 true case +0:44 Branch: Return +0:43 false case +0:45 Test condition and select ( temp void) +0:45 Condition +0:45 'b' ( uniform bool) +0:45 true case +0:46 Post-Increment ( temp float) +0:46 direct index ( temp float) +0:46 'color' ( temp 4-component vector of float) +0:46 Constant: +0:46 2 (const int) +0:45 false case +0:48 Sequence +0:48 Test condition and select ( temp void) +0:48 Condition +0:48 Compare Less Than ( temp bool) +0:48 direct index ( temp float) +0:48 'color' ( temp 4-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 'minimum' ( uniform float) +0:48 true case +0:49 Sequence +0:49 Branch: Kill +0:48 false case +0:51 Sequence +0:51 Post-Increment ( temp 4-component vector of float) +0:51 'color' ( temp 4-component vector of float) +0:42 false case +0:55 Sequence +0:55 Test condition and select ( temp void) +0:55 Condition +0:55 'b' ( uniform bool) +0:55 true case +0:56 Branch: Kill +0:55 false case +0:58 Branch: Return +0:101 move second child to first child ( temp 4-component vector of float) +0:101 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:101 component-wise multiply ( temp 4-component vector of float) +0:101 'color' ( temp 4-component vector of float) +0:101 'color2' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'd' ( uniform float) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'smallColor' ( uniform 4-component vector of float) +0:? 'otherColor' ( uniform 4-component vector of float) +0:? 'c' ( smooth in float) +0:? 'threshhold' ( uniform float) +0:? 'threshhold2' ( uniform float) +0:? 'threshhold3' ( uniform float) +0:? 'minimum' ( uniform float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'b' ( uniform bool) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:19 Function Definition: main( ( global void) +0:19 Function Parameters: +0:21 Sequence +0:21 Sequence +0:21 move second child to first child ( temp 4-component vector of float) +0:21 'color' ( temp 4-component vector of float) +0:21 'BaseColor' ( smooth in 4-component vector of float) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 'color2' ( temp 4-component vector of float) +0:24 'otherColor' ( uniform 4-component vector of float) +0:26 Test condition and select ( temp void) +0:26 Condition +0:26 Compare Greater Than ( temp bool) +0:26 'c' ( smooth in float) +0:26 'd' ( uniform float) +0:26 true case +0:27 add second child into first child ( temp 4-component vector of float) +0:27 'color' ( temp 4-component vector of float) +0:27 'bigColor' ( uniform 4-component vector of float) +0:26 false case +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'color' ( temp 4-component vector of float) +0:29 'smallColor' ( uniform 4-component vector of float) +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Less Than ( temp bool) +0:31 direct index ( temp float) +0:31 'color' ( temp 4-component vector of float) +0:31 Constant: +0:31 2 (const int) +0:31 'minimum' ( uniform float) +0:31 true case +0:32 Branch: Return +0:34 Post-Increment ( temp float) +0:34 direct index ( temp float) +0:34 'color' ( temp 4-component vector of float) +0:34 Constant: +0:34 2 (const int) +0:36 Test condition and select ( temp void) +0:36 Condition +0:36 Compare Greater Than ( temp bool) +0:36 direct index ( temp float) +0:36 'color' ( temp 4-component vector of float) +0:36 Constant: +0:36 2 (const int) +0:36 'threshhold' ( uniform float) +0:36 true case +0:37 Branch: Kill +0:39 Post-Increment ( temp 4-component vector of float) +0:39 'color' ( temp 4-component vector of float) +0:42 Test condition and select ( temp void) +0:42 Condition +0:42 Compare Greater Than ( temp bool) +0:42 direct index ( temp float) +0:42 'color' ( temp 4-component vector of float) +0:42 Constant: +0:42 3 (const int) +0:42 'threshhold2' ( uniform float) +0:42 true case +0:43 Sequence +0:43 Test condition and select ( temp void) +0:43 Condition +0:43 Compare Greater Than ( temp bool) +0:43 direct index ( temp float) +0:43 'color' ( temp 4-component vector of float) +0:43 Constant: +0:43 2 (const int) +0:43 'threshhold2' ( uniform float) +0:43 true case +0:44 Branch: Return +0:43 false case +0:45 Test condition and select ( temp void) +0:45 Condition +0:45 'b' ( uniform bool) +0:45 true case +0:46 Post-Increment ( temp float) +0:46 direct index ( temp float) +0:46 'color' ( temp 4-component vector of float) +0:46 Constant: +0:46 2 (const int) +0:45 false case +0:48 Sequence +0:48 Test condition and select ( temp void) +0:48 Condition +0:48 Compare Less Than ( temp bool) +0:48 direct index ( temp float) +0:48 'color' ( temp 4-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 'minimum' ( uniform float) +0:48 true case +0:49 Sequence +0:49 Branch: Kill +0:48 false case +0:51 Sequence +0:51 Post-Increment ( temp 4-component vector of float) +0:51 'color' ( temp 4-component vector of float) +0:42 false case +0:55 Sequence +0:55 Test condition and select ( temp void) +0:55 Condition +0:55 'b' ( uniform bool) +0:55 true case +0:56 Branch: Kill +0:55 false case +0:58 Branch: Return +0:101 move second child to first child ( temp 4-component vector of float) +0:101 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:101 component-wise multiply ( temp 4-component vector of float) +0:101 'color' ( temp 4-component vector of float) +0:101 'color2' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'd' ( uniform float) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'smallColor' ( uniform 4-component vector of float) +0:? 'otherColor' ( uniform 4-component vector of float) +0:? 'c' ( smooth in float) +0:? 'threshhold' ( uniform float) +0:? 'threshhold2' ( uniform float) +0:? 'threshhold3' ( uniform float) +0:? 'minimum' ( uniform float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'b' ( uniform bool) + diff --git a/deps/glslang/glslang/Test/baseResults/empty.frag.out b/deps/glslang/glslang/Test/baseResults/empty.frag.out new file mode 100644 index 0000000000..be186bb9f8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/empty.frag.out @@ -0,0 +1,17 @@ +empty.frag +Shader version: 100 +0:? Sequence +0:? Linker Objects + +empty2.frag +Shader version: 100 +0:? Sequence +0:? Linker Objects + +empty3.frag +Shader version: 110 +0:? Sequence +0:? Linker Objects + +ERROR: Cannot mix ES profile with non-ES profile shaders + diff --git a/deps/glslang/glslang/Test/baseResults/errors.frag.out b/deps/glslang/glslang/Test/baseResults/errors.frag.out new file mode 100644 index 0000000000..7271107e02 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/errors.frag.out @@ -0,0 +1,32 @@ +errors.frag +ERROR: 0:1: 'main' : function cannot take any parameter(s) +ERROR: 0:1: 'int' : entry point cannot return a value +ERROR: 2 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:1 Function Definition: main(i1; ( global mediump int) +0:1 Function Parameters: +0:1 'foo' ( in mediump int) +0:3 Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 1 (const int) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 100 +ERROR: node is still EOpNull! +0:1 Function Definition: main(i1; ( global mediump int) +0:1 Function Parameters: +0:1 'foo' ( in mediump int) +0:3 Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 1 (const int) +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/es-link1.frag.out b/deps/glslang/glslang/Test/baseResults/es-link1.frag.out new file mode 100644 index 0000000000..8e662c3d79 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/es-link1.frag.out @@ -0,0 +1,27 @@ +es-link1.frag +Shader version: 100 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:7 Sequence +0:7 move second child to first child ( temp mediump 4-component vector of float) +0:7 'gl_FragColor' ( fragColor mediump 4-component vector of float FragColor) +0:7 Function Call: calculateColor( ( global mediump 4-component vector of float) +0:? Linker Objects + +es-link2.frag +Shader version: 100 +0:? Sequence +0:5 Function Definition: calculateColor( ( global mediump 4-component vector of float) +0:5 Function Parameters: +0:7 Sequence +0:7 Branch: Return with expression +0:7 vector-scale ( temp mediump 4-component vector of float) +0:7 'varyingColor' ( smooth in mediump 4-component vector of float) +0:7 Constant: +0:7 0.500000 +0:? Linker Objects +0:? 'varyingColor' ( smooth in mediump 4-component vector of float) + +ERROR: Cannot attach multiple ES shaders of the same type to a single program + diff --git a/deps/glslang/glslang/Test/baseResults/findFunction.frag.out b/deps/glslang/glslang/Test/baseResults/findFunction.frag.out new file mode 100644 index 0000000000..ec4f3e46d7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/findFunction.frag.out @@ -0,0 +1,233 @@ +findFunction.frag +ERROR: 0:39: 'func' : ambiguous best function under implicit type conversion +ERROR: 0:40: 'func' : no matching overloaded function found +ERROR: 0:40: '=' : cannot convert from ' const float' to ' temp int64_t' +ERROR: 0:41: 'func' : no matching overloaded function found +ERROR: 0:41: '=' : cannot convert from ' const float' to ' temp int64_t' +ERROR: 0:44: 'func' : no matching overloaded function found +ERROR: 0:44: '=' : cannot convert from ' const float' to ' temp int64_t' +ERROR: 0:45: 'func' : ambiguous best function under implicit type conversion +ERROR: 8 compilation errors. No code generated. + + +Shader version: 450 +Requested GL_KHX_shader_explicit_arithmetic_types +ERROR: node is still EOpNull! +0:5 Function Definition: func(i81;i161;i161; ( global int64_t) +0:5 Function Parameters: +0:5 'a' ( in int8_t) +0:5 'b' ( in int16_t) +0:5 'c' ( in int16_t) +0:7 Sequence +0:7 Branch: Return with expression +0:7 Convert int16_t to int64 ( temp int64_t) +0:7 inclusive-or ( temp int16_t) +0:7 Convert int8_t to int16_t ( temp int16_t) +0:7 'a' ( in int8_t) +0:7 add ( temp int16_t) +0:7 'b' ( in int16_t) +0:7 'c' ( in int16_t) +0:10 Function Definition: func(i81;i161;i1; ( global int64_t) +0:10 Function Parameters: +0:10 'a' ( in int8_t) +0:10 'b' ( in int16_t) +0:10 'c' ( in int) +0:12 Sequence +0:12 Branch: Return with expression +0:12 Convert int to int64 ( temp int64_t) +0:12 inclusive-or ( temp int) +0:12 Convert int8_t to int ( temp int) +0:12 'a' ( in int8_t) +0:12 subtract ( temp int) +0:12 Convert int16_t to int ( temp int) +0:12 'b' ( in int16_t) +0:12 'c' ( in int) +0:15 Function Definition: func(i1;i1;i1; ( global int64_t) +0:15 Function Parameters: +0:15 'a' ( in int) +0:15 'b' ( in int) +0:15 'c' ( in int) +0:17 Sequence +0:17 Branch: Return with expression +0:17 Convert int to int64 ( temp int64_t) +0:17 add ( temp int) +0:17 divide ( temp int) +0:17 'a' ( in int) +0:17 'b' ( in int) +0:17 'c' ( in int) +0:20 Function Definition: func(f161;f161;f1; ( global int64_t) +0:20 Function Parameters: +0:20 'a' ( in float16_t) +0:20 'b' ( in float16_t) +0:20 'c' ( in float) +0:22 Sequence +0:22 Branch: Return with expression +0:22 Convert float to int64 ( temp int64_t) +0:22 subtract ( temp float) +0:22 Convert float16_t to float ( temp float) +0:22 'a' ( in float16_t) +0:22 component-wise multiply ( temp float) +0:22 Convert float16_t to float ( temp float) +0:22 'b' ( in float16_t) +0:22 'c' ( in float) +0:25 Function Definition: func(f161;i161;f1; ( global int64_t) +0:25 Function Parameters: +0:25 'a' ( in float16_t) +0:25 'b' ( in int16_t) +0:25 'c' ( in float) +0:27 Sequence +0:27 Branch: Return with expression +0:27 Convert float to int64 ( temp int64_t) +0:27 subtract ( temp float) +0:27 Convert float16_t to float ( temp float) +0:27 'a' ( in float16_t) +0:27 component-wise multiply ( temp float) +0:27 Convert int16_t to float ( temp float) +0:27 'b' ( in int16_t) +0:27 'c' ( in float) +0:30 Function Definition: main( ( global void) +0:30 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp int64_t) +0:38 'b1' ( temp int64_t) +0:38 Function Call: func(i81;i161;i1; ( global int64_t) +0:38 'x' ( temp int8_t) +0:38 'y' ( temp int16_t) +0:38 'z' ( temp int) +0:39 Sequence +0:39 move second child to first child ( temp int64_t) +0:39 'b2' ( temp int64_t) +0:39 Function Call: func(f161;i161;f1; ( global int64_t) +0:39 Convert int16_t to float16_t ( temp float16_t) +0:39 'y' ( temp int16_t) +0:39 'y' ( temp int16_t) +0:39 Convert int to float ( temp float) +0:39 'z' ( temp int) +0:42 Sequence +0:42 move second child to first child ( temp int64_t) +0:42 'b5' ( temp int64_t) +0:42 Function Call: func(f161;i161;f1; ( global int64_t) +0:42 Convert int16_t to float16_t ( temp float16_t) +0:42 'y' ( temp int16_t) +0:42 'y' ( temp int16_t) +0:42 Convert float16_t to float ( temp float) +0:42 'f16' ( temp float16_t) +0:43 Sequence +0:43 move second child to first child ( temp int64_t) +0:43 'b7' ( temp int64_t) +0:43 Function Call: func(f161;f161;f1; ( global int64_t) +0:43 'f16' ( temp float16_t) +0:43 'f16' ( temp float16_t) +0:43 Convert int16_t to float ( temp float) +0:43 'y' ( temp int16_t) +0:45 Sequence +0:45 move second child to first child ( temp int64_t) +0:45 'b9' ( temp int64_t) +0:45 Function Call: func(f161;f161;f1; ( global int64_t) +0:45 'f16' ( temp float16_t) +0:45 Convert int8_t to float16_t ( temp float16_t) +0:45 'x' ( temp int8_t) +0:45 Convert float16_t to float ( temp float) +0:45 'f16' ( temp float16_t) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +Requested GL_KHX_shader_explicit_arithmetic_types +ERROR: node is still EOpNull! +0:10 Function Definition: func(i81;i161;i1; ( global int64_t) +0:10 Function Parameters: +0:10 'a' ( in int8_t) +0:10 'b' ( in int16_t) +0:10 'c' ( in int) +0:12 Sequence +0:12 Branch: Return with expression +0:12 Convert int to int64 ( temp int64_t) +0:12 inclusive-or ( temp int) +0:12 Convert int8_t to int ( temp int) +0:12 'a' ( in int8_t) +0:12 subtract ( temp int) +0:12 Convert int16_t to int ( temp int) +0:12 'b' ( in int16_t) +0:12 'c' ( in int) +0:20 Function Definition: func(f161;f161;f1; ( global int64_t) +0:20 Function Parameters: +0:20 'a' ( in float16_t) +0:20 'b' ( in float16_t) +0:20 'c' ( in float) +0:22 Sequence +0:22 Branch: Return with expression +0:22 Convert float to int64 ( temp int64_t) +0:22 subtract ( temp float) +0:22 Convert float16_t to float ( temp float) +0:22 'a' ( in float16_t) +0:22 component-wise multiply ( temp float) +0:22 Convert float16_t to float ( temp float) +0:22 'b' ( in float16_t) +0:22 'c' ( in float) +0:25 Function Definition: func(f161;i161;f1; ( global int64_t) +0:25 Function Parameters: +0:25 'a' ( in float16_t) +0:25 'b' ( in int16_t) +0:25 'c' ( in float) +0:27 Sequence +0:27 Branch: Return with expression +0:27 Convert float to int64 ( temp int64_t) +0:27 subtract ( temp float) +0:27 Convert float16_t to float ( temp float) +0:27 'a' ( in float16_t) +0:27 component-wise multiply ( temp float) +0:27 Convert int16_t to float ( temp float) +0:27 'b' ( in int16_t) +0:27 'c' ( in float) +0:30 Function Definition: main( ( global void) +0:30 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp int64_t) +0:38 'b1' ( temp int64_t) +0:38 Function Call: func(i81;i161;i1; ( global int64_t) +0:38 'x' ( temp int8_t) +0:38 'y' ( temp int16_t) +0:38 'z' ( temp int) +0:39 Sequence +0:39 move second child to first child ( temp int64_t) +0:39 'b2' ( temp int64_t) +0:39 Function Call: func(f161;i161;f1; ( global int64_t) +0:39 Convert int16_t to float16_t ( temp float16_t) +0:39 'y' ( temp int16_t) +0:39 'y' ( temp int16_t) +0:39 Convert int to float ( temp float) +0:39 'z' ( temp int) +0:42 Sequence +0:42 move second child to first child ( temp int64_t) +0:42 'b5' ( temp int64_t) +0:42 Function Call: func(f161;i161;f1; ( global int64_t) +0:42 Convert int16_t to float16_t ( temp float16_t) +0:42 'y' ( temp int16_t) +0:42 'y' ( temp int16_t) +0:42 Convert float16_t to float ( temp float) +0:42 'f16' ( temp float16_t) +0:43 Sequence +0:43 move second child to first child ( temp int64_t) +0:43 'b7' ( temp int64_t) +0:43 Function Call: func(f161;f161;f1; ( global int64_t) +0:43 'f16' ( temp float16_t) +0:43 'f16' ( temp float16_t) +0:43 Convert int16_t to float ( temp float) +0:43 'y' ( temp int16_t) +0:45 Sequence +0:45 move second child to first child ( temp int64_t) +0:45 'b9' ( temp int64_t) +0:45 Function Call: func(f161;f161;f1; ( global int64_t) +0:45 'f16' ( temp float16_t) +0:45 Convert int8_t to float16_t ( temp float16_t) +0:45 'x' ( temp int8_t) +0:45 Convert float16_t to float ( temp float) +0:45 'f16' ( temp float16_t) +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/flowControl.frag.out b/deps/glslang/glslang/Test/baseResults/flowControl.frag.out new file mode 100644 index 0000000000..4f5fc8bcec --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/flowControl.frag.out @@ -0,0 +1,81 @@ +flowControl.frag +Shader version: 120 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'BaseColor' ( smooth in 4-component vector of float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'color2' ( temp 4-component vector of float) +0:15 'otherColor' ( uniform 4-component vector of float) +0:17 Test condition and select ( temp void) +0:17 Condition +0:17 Compare Greater Than ( temp bool) +0:17 'c' ( smooth in float) +0:17 'd' ( uniform float) +0:17 true case +0:18 add second child into first child ( temp 4-component vector of float) +0:18 'color' ( temp 4-component vector of float) +0:18 'bigColor' ( uniform 4-component vector of float) +0:17 false case +0:20 add second child into first child ( temp 4-component vector of float) +0:20 'color' ( temp 4-component vector of float) +0:20 'smallColor' ( uniform 4-component vector of float) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:22 component-wise multiply ( temp 4-component vector of float) +0:22 'color' ( temp 4-component vector of float) +0:22 'color2' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'd' ( uniform float) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'smallColor' ( uniform 4-component vector of float) +0:? 'otherColor' ( uniform 4-component vector of float) +0:? 'c' ( smooth in float) +0:? 'BaseColor' ( smooth in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 120 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'BaseColor' ( smooth in 4-component vector of float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'color2' ( temp 4-component vector of float) +0:15 'otherColor' ( uniform 4-component vector of float) +0:17 Test condition and select ( temp void) +0:17 Condition +0:17 Compare Greater Than ( temp bool) +0:17 'c' ( smooth in float) +0:17 'd' ( uniform float) +0:17 true case +0:18 add second child into first child ( temp 4-component vector of float) +0:18 'color' ( temp 4-component vector of float) +0:18 'bigColor' ( uniform 4-component vector of float) +0:17 false case +0:20 add second child into first child ( temp 4-component vector of float) +0:20 'color' ( temp 4-component vector of float) +0:20 'smallColor' ( uniform 4-component vector of float) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:22 component-wise multiply ( temp 4-component vector of float) +0:22 'color' ( temp 4-component vector of float) +0:22 'color2' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'd' ( uniform float) +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'smallColor' ( uniform 4-component vector of float) +0:? 'otherColor' ( uniform 4-component vector of float) +0:? 'c' ( smooth in float) +0:? 'BaseColor' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/forLoop.frag.out b/deps/glslang/glslang/Test/baseResults/forLoop.frag.out new file mode 100644 index 0000000000..e6a151788e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/forLoop.frag.out @@ -0,0 +1,361 @@ +forLoop.frag +Shader version: 130 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'BaseColor' ( smooth in 4-component vector of float) +0:14 Sequence +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'i' ( temp int) +0:14 Constant: +0:14 0 (const int) +0:14 Loop with condition tested first +0:14 Loop Condition +0:14 Compare Less Than ( temp bool) +0:14 'i' ( temp int) +0:14 'Count' ( uniform int) +0:14 Loop Body +0:15 Sequence +0:15 add second child into first child ( temp 4-component vector of float) +0:15 'color' ( temp 4-component vector of float) +0:15 'bigColor' ( uniform 4-component vector of float) +0:14 Loop Terminal Expression +0:14 Pre-Increment ( temp int) +0:14 'i' ( temp int) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:18 'color' ( temp 4-component vector of float) +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'sum' ( temp float) +0:20 Constant: +0:20 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'i' ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 Loop with condition tested first +0:21 Loop Condition +0:21 Compare Less Than ( temp bool) +0:21 'i' ( temp int) +0:21 Constant: +0:21 4 (const int) +0:21 Loop Body +0:22 add second child into first child ( temp float) +0:22 'sum' ( temp float) +0:22 Convert uint to float ( temp float) +0:22 indirect index ( temp uint) +0:22 'v4' ( uniform 4-component vector of uint) +0:22 'i' ( temp int) +0:21 Loop Terminal Expression +0:21 Pre-Increment ( temp int) +0:21 'i' ( temp int) +0:26 Sequence +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'i' ( temp int) +0:26 Constant: +0:26 0 (const int) +0:26 Loop with condition tested first +0:26 Loop Condition +0:26 Compare Less Than ( temp bool) +0:26 'i' ( temp int) +0:26 Constant: +0:26 4 (const int) +0:26 Loop Body +0:27 move second child to first child ( temp float) +0:27 indirect index ( temp float) +0:27 'tv4' ( temp 4-component vector of float) +0:27 'i' ( temp int) +0:27 Convert uint to float ( temp float) +0:27 component-wise multiply ( temp uint) +0:27 indirect index ( temp uint) +0:27 'v4' ( uniform 4-component vector of uint) +0:27 'i' ( temp int) +0:27 Constant: +0:27 4 (const uint) +0:26 Loop Terminal Expression +0:26 Pre-Increment ( temp int) +0:26 'i' ( temp int) +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:29 add ( temp 4-component vector of float) +0:29 Construct vec4 ( temp 4-component vector of float) +0:29 'sum' ( temp float) +0:29 'tv4' ( temp 4-component vector of float) +0:32 move second child to first child ( temp 3-component vector of float) +0:32 vector swizzle ( temp 3-component vector of float) +0:32 'r' ( temp 4-component vector of float) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 vector swizzle ( temp 3-component vector of float) +0:32 'BaseColor' ( smooth in 4-component vector of float) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'i' ( temp int) +0:34 Constant: +0:34 0 (const int) +0:34 Loop with condition tested first +0:34 Loop Condition +0:34 Compare Less Than ( temp bool) +0:34 'i' ( temp int) +0:34 'Count' ( uniform int) +0:34 Loop Body +0:35 move second child to first child ( temp float) +0:35 direct index ( temp float) +0:35 'r' ( temp 4-component vector of float) +0:35 Constant: +0:35 3 (const int) +0:35 'f' ( smooth in float) +0:34 Loop Terminal Expression +0:34 Pre-Increment ( temp int) +0:34 'i' ( temp int) +0:37 add second child into first child ( temp 3-component vector of float) +0:37 vector swizzle ( temp 3-component vector of float) +0:37 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 vector swizzle ( temp 3-component vector of float) +0:37 'r' ( temp 4-component vector of float) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 Sequence +0:39 Sequence +0:39 move second child to first child ( temp int) +0:39 'i' ( temp int) +0:39 Constant: +0:39 0 (const int) +0:39 Loop with condition tested first +0:39 Loop Condition +0:39 Compare Less Than ( temp bool) +0:39 'i' ( temp int) +0:39 Constant: +0:39 16 (const int) +0:39 Loop Body +0:40 vector scale second child into first child ( temp 4-component vector of float) +0:40 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:40 'f' ( smooth in float) +0:39 Loop Terminal Expression +0:39 add second child into first child ( temp int) +0:39 'i' ( temp int) +0:39 Constant: +0:39 4 (const int) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'f' ( smooth in float) +0:? 'Count' ( uniform int) +0:? 'v4' ( uniform 4-component vector of uint) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'BaseColor' ( smooth in 4-component vector of float) +0:14 Sequence +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'i' ( temp int) +0:14 Constant: +0:14 0 (const int) +0:14 Loop with condition tested first +0:14 Loop Condition +0:14 Compare Less Than ( temp bool) +0:14 'i' ( temp int) +0:14 'Count' ( uniform int) +0:14 Loop Body +0:15 Sequence +0:15 add second child into first child ( temp 4-component vector of float) +0:15 'color' ( temp 4-component vector of float) +0:15 'bigColor' ( uniform 4-component vector of float) +0:14 Loop Terminal Expression +0:14 Pre-Increment ( temp int) +0:14 'i' ( temp int) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:18 'color' ( temp 4-component vector of float) +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'sum' ( temp float) +0:20 Constant: +0:20 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'i' ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 Loop with condition tested first +0:21 Loop Condition +0:21 Compare Less Than ( temp bool) +0:21 'i' ( temp int) +0:21 Constant: +0:21 4 (const int) +0:21 Loop Body +0:22 add second child into first child ( temp float) +0:22 'sum' ( temp float) +0:22 Convert uint to float ( temp float) +0:22 indirect index ( temp uint) +0:22 'v4' ( uniform 4-component vector of uint) +0:22 'i' ( temp int) +0:21 Loop Terminal Expression +0:21 Pre-Increment ( temp int) +0:21 'i' ( temp int) +0:26 Sequence +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'i' ( temp int) +0:26 Constant: +0:26 0 (const int) +0:26 Loop with condition tested first +0:26 Loop Condition +0:26 Compare Less Than ( temp bool) +0:26 'i' ( temp int) +0:26 Constant: +0:26 4 (const int) +0:26 Loop Body +0:27 move second child to first child ( temp float) +0:27 indirect index ( temp float) +0:27 'tv4' ( temp 4-component vector of float) +0:27 'i' ( temp int) +0:27 Convert uint to float ( temp float) +0:27 component-wise multiply ( temp uint) +0:27 indirect index ( temp uint) +0:27 'v4' ( uniform 4-component vector of uint) +0:27 'i' ( temp int) +0:27 Constant: +0:27 4 (const uint) +0:26 Loop Terminal Expression +0:26 Pre-Increment ( temp int) +0:26 'i' ( temp int) +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:29 add ( temp 4-component vector of float) +0:29 Construct vec4 ( temp 4-component vector of float) +0:29 'sum' ( temp float) +0:29 'tv4' ( temp 4-component vector of float) +0:32 move second child to first child ( temp 3-component vector of float) +0:32 vector swizzle ( temp 3-component vector of float) +0:32 'r' ( temp 4-component vector of float) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 vector swizzle ( temp 3-component vector of float) +0:32 'BaseColor' ( smooth in 4-component vector of float) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'i' ( temp int) +0:34 Constant: +0:34 0 (const int) +0:34 Loop with condition tested first +0:34 Loop Condition +0:34 Compare Less Than ( temp bool) +0:34 'i' ( temp int) +0:34 'Count' ( uniform int) +0:34 Loop Body +0:35 move second child to first child ( temp float) +0:35 direct index ( temp float) +0:35 'r' ( temp 4-component vector of float) +0:35 Constant: +0:35 3 (const int) +0:35 'f' ( smooth in float) +0:34 Loop Terminal Expression +0:34 Pre-Increment ( temp int) +0:34 'i' ( temp int) +0:37 add second child into first child ( temp 3-component vector of float) +0:37 vector swizzle ( temp 3-component vector of float) +0:37 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 vector swizzle ( temp 3-component vector of float) +0:37 'r' ( temp 4-component vector of float) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 Sequence +0:39 Sequence +0:39 move second child to first child ( temp int) +0:39 'i' ( temp int) +0:39 Constant: +0:39 0 (const int) +0:39 Loop with condition tested first +0:39 Loop Condition +0:39 Compare Less Than ( temp bool) +0:39 'i' ( temp int) +0:39 Constant: +0:39 16 (const int) +0:39 Loop Body +0:40 vector scale second child into first child ( temp 4-component vector of float) +0:40 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:40 'f' ( smooth in float) +0:39 Loop Terminal Expression +0:39 add second child into first child ( temp int) +0:39 'i' ( temp int) +0:39 Constant: +0:39 4 (const int) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'f' ( smooth in float) +0:? 'Count' ( uniform int) +0:? 'v4' ( uniform 4-component vector of uint) + diff --git a/deps/glslang/glslang/Test/baseResults/forwardRef.frag.out b/deps/glslang/glslang/Test/baseResults/forwardRef.frag.out new file mode 100644 index 0000000000..22e77c5b76 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/forwardRef.frag.out @@ -0,0 +1,125 @@ +forwardRef.frag +Shader version: 110 +0:? Sequence +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'color' ( temp 4-component vector of float) +0:13 Construct vec4 ( temp 4-component vector of float) +0:13 Function Call: foo(vf4; ( global float) +0:13 'BaseColor' ( smooth in 4-component vector of float) +0:15 Function Call: bar( ( global void) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'f' ( temp float) +0:16 Function Call: unreachableReturn( ( global float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:18 vector-scale ( temp 4-component vector of float) +0:18 'color' ( temp 4-component vector of float) +0:18 'f' ( temp float) +0:21 Function Definition: bar( ( global void) +0:21 Function Parameters: +0:25 Function Definition: unreachableReturn( ( global float) +0:25 Function Parameters: +0:27 Sequence +0:27 Function Call: bar( ( global void) +0:28 Test condition and select ( temp void) +0:28 Condition +0:28 Compare Less Than ( temp bool) +0:28 'd' ( uniform float) +0:28 Constant: +0:28 4.200000 +0:28 true case +0:29 Branch: Return with expression +0:29 Constant: +0:29 1.200000 +0:28 false case +0:31 Branch: Return with expression +0:31 Constant: +0:31 4.500000 +0:34 Function Definition: foo(vf4; ( global float) +0:34 Function Parameters: +0:34 'bar' ( in 4-component vector of float) +0:36 Sequence +0:36 Branch: Return with expression +0:36 add ( temp float) +0:36 direct index ( temp float) +0:36 'bar' ( in 4-component vector of float) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp float) +0:36 'bar' ( in 4-component vector of float) +0:36 Constant: +0:36 1 (const int) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:13 Sequence +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'color' ( temp 4-component vector of float) +0:13 Construct vec4 ( temp 4-component vector of float) +0:13 Function Call: foo(vf4; ( global float) +0:13 'BaseColor' ( smooth in 4-component vector of float) +0:15 Function Call: bar( ( global void) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'f' ( temp float) +0:16 Function Call: unreachableReturn( ( global float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:18 vector-scale ( temp 4-component vector of float) +0:18 'color' ( temp 4-component vector of float) +0:18 'f' ( temp float) +0:21 Function Definition: bar( ( global void) +0:21 Function Parameters: +0:25 Function Definition: unreachableReturn( ( global float) +0:25 Function Parameters: +0:27 Sequence +0:27 Function Call: bar( ( global void) +0:28 Test condition and select ( temp void) +0:28 Condition +0:28 Compare Less Than ( temp bool) +0:28 'd' ( uniform float) +0:28 Constant: +0:28 4.200000 +0:28 true case +0:29 Branch: Return with expression +0:29 Constant: +0:29 1.200000 +0:28 false case +0:31 Branch: Return with expression +0:31 Constant: +0:31 4.500000 +0:34 Function Definition: foo(vf4; ( global float) +0:34 Function Parameters: +0:34 'bar' ( in 4-component vector of float) +0:36 Sequence +0:36 Branch: Return with expression +0:36 add ( temp float) +0:36 direct index ( temp float) +0:36 'bar' ( in 4-component vector of float) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp float) +0:36 'bar' ( in 4-component vector of float) +0:36 Constant: +0:36 1 (const int) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + diff --git a/deps/glslang/glslang/Test/baseResults/functionCall.frag.out b/deps/glslang/glslang/Test/baseResults/functionCall.frag.out new file mode 100644 index 0000000000..902208ff7c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/functionCall.frag.out @@ -0,0 +1,183 @@ +functionCall.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'h' ( global float) +0:7 Constant: +0:7 0.000000 +0:9 Function Definition: foo(vf4; ( global float) +0:9 Function Parameters: +0:9 'bar' ( in 4-component vector of float) +0:11 Sequence +0:11 Branch: Return with expression +0:11 add ( temp float) +0:11 direct index ( temp float) +0:11 'bar' ( in 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 'bar' ( in 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:14 Function Definition: bar( ( global void) +0:14 Function Parameters: +0:18 Function Definition: unreachableReturn( ( global float) +0:18 Function Parameters: +0:20 Sequence +0:20 Test condition and select ( temp void) +0:20 Condition +0:20 Compare Less Than ( temp bool) +0:20 'd' ( uniform float) +0:20 Constant: +0:20 4.200000 +0:20 true case +0:21 Branch: Return with expression +0:21 Constant: +0:21 1.200000 +0:20 false case +0:23 Branch: Return with expression +0:23 Constant: +0:23 4.500000 +0:27 Function Definition: missingReturn( ( global float) +0:27 Function Parameters: +0:29 Sequence +0:29 Test condition and select ( temp void) +0:29 Condition +0:29 Compare Less Than ( temp bool) +0:29 'd' ( uniform float) +0:29 Constant: +0:29 4.500000 +0:29 true case +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'h' ( global float) +0:30 'd' ( uniform float) +0:31 Branch: Return with expression +0:31 Constant: +0:31 3.900000 +0:35 Function Definition: main( ( global void) +0:35 Function Parameters: +0:37 Sequence +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'color' ( temp 4-component vector of float) +0:37 Construct vec4 ( temp 4-component vector of float) +0:37 Function Call: foo(vf4; ( global float) +0:37 'BaseColor' ( smooth in 4-component vector of float) +0:39 Function Call: bar( ( global void) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'f' ( temp float) +0:40 Function Call: unreachableReturn( ( global float) +0:41 Sequence +0:41 move second child to first child ( temp float) +0:41 'g' ( temp float) +0:41 Function Call: missingReturn( ( global float) +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:43 vector-scale ( temp 4-component vector of float) +0:43 vector-scale ( temp 4-component vector of float) +0:43 'color' ( temp 4-component vector of float) +0:43 'f' ( temp float) +0:43 'h' ( global float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'h' ( global float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'h' ( global float) +0:7 Constant: +0:7 0.000000 +0:9 Function Definition: foo(vf4; ( global float) +0:9 Function Parameters: +0:9 'bar' ( in 4-component vector of float) +0:11 Sequence +0:11 Branch: Return with expression +0:11 add ( temp float) +0:11 direct index ( temp float) +0:11 'bar' ( in 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 'bar' ( in 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:14 Function Definition: bar( ( global void) +0:14 Function Parameters: +0:18 Function Definition: unreachableReturn( ( global float) +0:18 Function Parameters: +0:20 Sequence +0:20 Test condition and select ( temp void) +0:20 Condition +0:20 Compare Less Than ( temp bool) +0:20 'd' ( uniform float) +0:20 Constant: +0:20 4.200000 +0:20 true case +0:21 Branch: Return with expression +0:21 Constant: +0:21 1.200000 +0:20 false case +0:23 Branch: Return with expression +0:23 Constant: +0:23 4.500000 +0:27 Function Definition: missingReturn( ( global float) +0:27 Function Parameters: +0:29 Sequence +0:29 Test condition and select ( temp void) +0:29 Condition +0:29 Compare Less Than ( temp bool) +0:29 'd' ( uniform float) +0:29 Constant: +0:29 4.500000 +0:29 true case +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'h' ( global float) +0:30 'd' ( uniform float) +0:31 Branch: Return with expression +0:31 Constant: +0:31 3.900000 +0:35 Function Definition: main( ( global void) +0:35 Function Parameters: +0:37 Sequence +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'color' ( temp 4-component vector of float) +0:37 Construct vec4 ( temp 4-component vector of float) +0:37 Function Call: foo(vf4; ( global float) +0:37 'BaseColor' ( smooth in 4-component vector of float) +0:39 Function Call: bar( ( global void) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'f' ( temp float) +0:40 Function Call: unreachableReturn( ( global float) +0:41 Sequence +0:41 move second child to first child ( temp float) +0:41 'g' ( temp float) +0:41 Function Call: missingReturn( ( global float) +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:43 vector-scale ( temp 4-component vector of float) +0:43 vector-scale ( temp 4-component vector of float) +0:43 'color' ( temp 4-component vector of float) +0:43 'f' ( temp float) +0:43 'h' ( global float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'h' ( global float) + diff --git a/deps/glslang/glslang/Test/baseResults/functionSemantics.frag.out b/deps/glslang/glslang/Test/baseResults/functionSemantics.frag.out new file mode 100644 index 0000000000..d04e6e7adc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/functionSemantics.frag.out @@ -0,0 +1,401 @@ +functionSemantics.frag +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 +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) +0:5 'b' ( const (read only) int) +0:5 'c' ( in int) +0:5 'd' ( const (read only) int) +0:5 'e' ( out int) +0:5 'f' ( inout int) +0:7 Sequence +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'sum' ( temp int) +0:7 add ( temp int) +0:7 add ( temp int) +0:7 add ( temp int) +0:7 add ( temp int) +0:7 'a' ( in int) +0:7 'b' ( const (read only) int) +0:7 'c' ( in int) +0:7 'd' ( const (read only) int) +0:7 'f' ( inout int) +0:10 multiply second child into first child ( temp int) +0:10 'a' ( in int) +0:10 Constant: +0:10 64 (const int) +0:12 multiply second child into first child ( temp int) +0:12 'c' ( in int) +0:12 Constant: +0:12 64 (const int) +0:14 move second child to first child ( temp int) +0:14 'e' ( out int) +0:14 Constant: +0:14 1024 (const int) +0:15 multiply second child into first child ( temp int) +0:15 'f' ( inout int) +0:15 Constant: +0:15 64 (const int) +0:17 add second child into first child ( temp int) +0:17 'sum' ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 'a' ( in int) +0:17 component-wise multiply ( temp int) +0:17 Constant: +0:17 64 (const int) +0:17 'b' ( const (read only) int) +0:17 'c' ( in int) +0:17 component-wise multiply ( temp int) +0:17 Constant: +0:17 64 (const int) +0:17 'd' ( const (read only) int) +0:17 'e' ( out int) +0:17 'f' ( inout int) +0:20 Branch: Return with expression +0:20 'sum' ( temp int) +0:23 Function Definition: foo2(f1;vf3;i1; ( global int) +0:23 Function Parameters: +0:23 'a' ( in float) +0:23 'b' ( in 3-component vector of float) +0:23 'r' ( out int) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'r' ( out int) +0:25 Convert float to int ( temp int) +0:25 component-wise multiply ( temp float) +0:25 Constant: +0:25 3.000000 +0:25 'a' ( in float) +0:26 Branch: Return with expression +0:26 Convert float to int ( temp int) +0:26 component-wise multiply ( temp float) +0:26 Constant: +0:26 5.000000 +0:26 direct index ( temp float) +0:26 'b' ( in 3-component vector of float) +0:26 Constant: +0:26 1 (const int) +0:29 Function Definition: foo3( ( global int) +0:29 Function Parameters: +0:31 Sequence +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Greater Than ( temp bool) +0:31 'u' ( uniform float) +0:31 Constant: +0:31 3.200000 +0:31 true case +0:32 Sequence +0:32 Branch: Kill +0:33 Branch: Return with expression +0:33 Constant: +0:33 1000000 (const int) +0:36 Branch: Return with expression +0:36 Constant: +0:36 2000000 (const int) +0:39 Function Definition: main( ( global void) +0:39 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp int) +0:42 't' ( temp int) +0:42 Constant: +0:42 2 (const int) +0:46 move second child to first child ( temp int) +0:46 direct index ( temp int) +0:46 t: direct index for structure ( temp 4-component vector of int) +0:46 'f' ( temp structure{ temp 4-component vector of int t}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 32 (const int) +0:49 Sequence +0:49 move second child to first child ( temp int) +0:49 'color' ( temp int) +0:49 Function Call: foo(i1;i1;i1;i1;i1;i1; ( global int) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 2 (const int) +0:49 add ( temp int) +0:49 't' ( temp int) +0:49 't' ( temp int) +0:49 Constant: +0:49 8 (const int) +0:49 'e' ( temp int) +0:49 direct index ( temp int) +0:49 t: direct index for structure ( temp 4-component vector of int) +0:49 'f' ( temp structure{ temp 4-component vector of int t}) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 1 (const int) +0:51 add second child into first child ( temp int) +0:51 'color' ( temp int) +0:51 component-wise multiply ( temp int) +0:51 Constant: +0:51 128 (const int) +0:51 add ( temp int) +0:51 'e' ( temp int) +0:51 direct index ( temp int) +0:51 t: direct index for structure ( temp 4-component vector of int) +0:51 'f' ( temp structure{ temp 4-component vector of int t}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:57 move second child to first child ( temp float) +0:57 'ret' ( temp float) +0:57 Convert int to float ( temp float) +0:57 Comma ( global int) +0:57 move second child to first child ( temp int) +0:57 'tempReturn' ( global int) +0:57 Function Call: foo2(f1;vf3;i1; ( global int) +0:57 Constant: +0:57 4.000000 +0:57 Constant: +0:57 1.000000 +0:57 2.000000 +0:57 3.000000 +0:57 'tempArg' ( temp int) +0:57 move second child to first child ( temp float) +0:57 'arg' ( temp float) +0:57 Convert int to float ( temp float) +0:57 'tempArg' ( temp int) +0:57 'tempReturn' ( global int) +0:58 add second child into first child ( temp int) +0:58 'color' ( temp int) +0:58 Convert float to int ( temp int) +0:58 add ( temp float) +0:58 'ret' ( temp float) +0:58 'arg' ( temp float) +0:60 add second child into first child ( temp int) +0:60 'color' ( temp int) +0:60 Function Call: foo3( ( global int) +0:62 move second child to first child ( temp 4-component vector of float) +0:62 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:62 Construct vec4 ( temp 4-component vector of float) +0:62 Convert int to float ( temp float) +0:62 'color' ( temp int) +0:66 Function Definition: aggCall( ( global void) +0:66 Function Parameters: +0:? Sequence +0:69 Function Call: m(vf2; ( global 3-component vector of float) +0:69 Convert int to float ( temp 2-component vector of float) +0:69 Construct ivec2 ( temp 2-component vector of int) +0:69 Convert float to int ( temp int) +0:69 'F' ( temp float) +0:72 Function Definition: badConv( ( global 4-component vector of float) +0:72 Function Parameters: +0:74 Sequence +0:74 Branch: Return with expression +0:74 'u' ( uniform float) +0:? Linker Objects +0:? 'u' ( uniform float) + + +Linked fragment stage: + + +Shader version: 400 +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) +0:5 'b' ( const (read only) int) +0:5 'c' ( in int) +0:5 'd' ( const (read only) int) +0:5 'e' ( out int) +0:5 'f' ( inout int) +0:7 Sequence +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'sum' ( temp int) +0:7 add ( temp int) +0:7 add ( temp int) +0:7 add ( temp int) +0:7 add ( temp int) +0:7 'a' ( in int) +0:7 'b' ( const (read only) int) +0:7 'c' ( in int) +0:7 'd' ( const (read only) int) +0:7 'f' ( inout int) +0:10 multiply second child into first child ( temp int) +0:10 'a' ( in int) +0:10 Constant: +0:10 64 (const int) +0:12 multiply second child into first child ( temp int) +0:12 'c' ( in int) +0:12 Constant: +0:12 64 (const int) +0:14 move second child to first child ( temp int) +0:14 'e' ( out int) +0:14 Constant: +0:14 1024 (const int) +0:15 multiply second child into first child ( temp int) +0:15 'f' ( inout int) +0:15 Constant: +0:15 64 (const int) +0:17 add second child into first child ( temp int) +0:17 'sum' ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 add ( temp int) +0:17 'a' ( in int) +0:17 component-wise multiply ( temp int) +0:17 Constant: +0:17 64 (const int) +0:17 'b' ( const (read only) int) +0:17 'c' ( in int) +0:17 component-wise multiply ( temp int) +0:17 Constant: +0:17 64 (const int) +0:17 'd' ( const (read only) int) +0:17 'e' ( out int) +0:17 'f' ( inout int) +0:20 Branch: Return with expression +0:20 'sum' ( temp int) +0:23 Function Definition: foo2(f1;vf3;i1; ( global int) +0:23 Function Parameters: +0:23 'a' ( in float) +0:23 'b' ( in 3-component vector of float) +0:23 'r' ( out int) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'r' ( out int) +0:25 Convert float to int ( temp int) +0:25 component-wise multiply ( temp float) +0:25 Constant: +0:25 3.000000 +0:25 'a' ( in float) +0:26 Branch: Return with expression +0:26 Convert float to int ( temp int) +0:26 component-wise multiply ( temp float) +0:26 Constant: +0:26 5.000000 +0:26 direct index ( temp float) +0:26 'b' ( in 3-component vector of float) +0:26 Constant: +0:26 1 (const int) +0:29 Function Definition: foo3( ( global int) +0:29 Function Parameters: +0:31 Sequence +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Compare Greater Than ( temp bool) +0:31 'u' ( uniform float) +0:31 Constant: +0:31 3.200000 +0:31 true case +0:32 Sequence +0:32 Branch: Kill +0:33 Branch: Return with expression +0:33 Constant: +0:33 1000000 (const int) +0:36 Branch: Return with expression +0:36 Constant: +0:36 2000000 (const int) +0:39 Function Definition: main( ( global void) +0:39 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp int) +0:42 't' ( temp int) +0:42 Constant: +0:42 2 (const int) +0:46 move second child to first child ( temp int) +0:46 direct index ( temp int) +0:46 t: direct index for structure ( temp 4-component vector of int) +0:46 'f' ( temp structure{ temp 4-component vector of int t}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 32 (const int) +0:49 Sequence +0:49 move second child to first child ( temp int) +0:49 'color' ( temp int) +0:49 Function Call: foo(i1;i1;i1;i1;i1;i1; ( global int) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 2 (const int) +0:49 add ( temp int) +0:49 't' ( temp int) +0:49 't' ( temp int) +0:49 Constant: +0:49 8 (const int) +0:49 'e' ( temp int) +0:49 direct index ( temp int) +0:49 t: direct index for structure ( temp 4-component vector of int) +0:49 'f' ( temp structure{ temp 4-component vector of int t}) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 1 (const int) +0:51 add second child into first child ( temp int) +0:51 'color' ( temp int) +0:51 component-wise multiply ( temp int) +0:51 Constant: +0:51 128 (const int) +0:51 add ( temp int) +0:51 'e' ( temp int) +0:51 direct index ( temp int) +0:51 t: direct index for structure ( temp 4-component vector of int) +0:51 'f' ( temp structure{ temp 4-component vector of int t}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:57 move second child to first child ( temp float) +0:57 'ret' ( temp float) +0:57 Convert int to float ( temp float) +0:57 Comma ( global int) +0:57 move second child to first child ( temp int) +0:57 'tempReturn' ( global int) +0:57 Function Call: foo2(f1;vf3;i1; ( global int) +0:57 Constant: +0:57 4.000000 +0:57 Constant: +0:57 1.000000 +0:57 2.000000 +0:57 3.000000 +0:57 'tempArg' ( temp int) +0:57 move second child to first child ( temp float) +0:57 'arg' ( temp float) +0:57 Convert int to float ( temp float) +0:57 'tempArg' ( temp int) +0:57 'tempReturn' ( global int) +0:58 add second child into first child ( temp int) +0:58 'color' ( temp int) +0:58 Convert float to int ( temp int) +0:58 add ( temp float) +0:58 'ret' ( temp float) +0:58 'arg' ( temp float) +0:60 add second child into first child ( temp int) +0:60 'color' ( temp int) +0:60 Function Call: foo3( ( global int) +0:62 move second child to first child ( temp 4-component vector of float) +0:62 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:62 Construct vec4 ( temp 4-component vector of float) +0:62 Convert int to float ( temp float) +0:62 'color' ( temp int) +0:? Linker Objects +0:? 'u' ( uniform float) + diff --git a/deps/glslang/glslang/Test/baseResults/glsl.-D-U.frag.out b/deps/glslang/glslang/Test/baseResults/glsl.-D-U.frag.out new file mode 100644 index 0000000000..6538e849c7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glsl.-D-U.frag.out @@ -0,0 +1,55 @@ +glsl.-D-U.frag +Shader version: 450 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 'color' (layout( location=0) out 4-component vector of float) +0:10 Constant: +0:10 1.000000 +0:10 1.000000 +0:10 1.000000 +0:10 1.000000 +0:16 Post-Increment ( temp 4-component vector of float) +0:16 'color' (layout( location=0) out 4-component vector of float) +0:24 vector scale second child into first child ( temp 4-component vector of float) +0:24 'color' (layout( location=0) out 4-component vector of float) +0:24 Constant: +0:24 3.000000 +0:28 vector scale second child into first child ( temp 4-component vector of float) +0:28 'color' (layout( location=0) out 4-component vector of float) +0:28 Constant: +0:28 400.000000 +0:? Linker Objects +0:? 'color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 'color' (layout( location=0) out 4-component vector of float) +0:10 Constant: +0:10 1.000000 +0:10 1.000000 +0:10 1.000000 +0:10 1.000000 +0:16 Post-Increment ( temp 4-component vector of float) +0:16 'color' (layout( location=0) out 4-component vector of float) +0:24 vector scale second child into first child ( temp 4-component vector of float) +0:24 'color' (layout( location=0) out 4-component vector of float) +0:24 Constant: +0:24 3.000000 +0:28 vector scale second child into first child ( temp 4-component vector of float) +0:28 'color' (layout( location=0) out 4-component vector of float) +0:28 Constant: +0:28 400.000000 +0:? Linker Objects +0:? 'color' (layout( location=0) out 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out new file mode 100644 index 0000000000..c7ea97e043 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out @@ -0,0 +1,45 @@ +glsl.entryPointRename.vert +ERROR: Source entry point must be "main" + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "foo" 13 + Source GLSL 460 + Name 4 "foo" + 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 "" + 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 + 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: TypePointer Output 7(fvec4) + 4(foo): 2 Function None 3 + 5: Label + 19: 18(ptr) AccessChain 13 15 + Store 19 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.out b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.out new file mode 100644 index 0000000000..3dbe13bae9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename.vert.out @@ -0,0 +1,43 @@ +glsl.entryPointRename.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "foo" 13 + Source GLSL 460 + Name 4 "foo" + 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 "" + 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 + 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: TypePointer Output 7(fvec4) + 4(foo): 2 Function None 3 + 5: Label + 19: 18(ptr) AccessChain 13 15 + Store 19 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename2.vert.out b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename2.vert.out new file mode 100644 index 0000000000..aebd86beee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glsl.entryPointRename2.vert.out @@ -0,0 +1,4 @@ +glsl.entryPointRename2.vert +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out b/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out new file mode 100644 index 0000000000..782865abcc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glspv.esversion.vert.out @@ -0,0 +1,6 @@ +glspv.esversion.vert +ERROR: #version: ES shaders for OpenGL SPIR-V are not supported +ERROR: 1 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/glspv.frag.out b/deps/glslang/glslang/Test/baseResults/glspv.frag.out new file mode 100644 index 0000000000..db752133c1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glspv.frag.out @@ -0,0 +1,15 @@ +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: 'f' : non-opaque uniform variables need a layout(location=L) +ERROR: 0:21: 'noise1' : no matching overloaded function found +ERROR: 0:22: 'noise2' : no matching overloaded function found +ERROR: 0:23: 'noise3' : no matching overloaded function found +ERROR: 0:24: 'noise4' : no matching overloaded function found +ERROR: 0:27: 'atomic_uint' : layout(binding=X) is required +ERROR: 0:28: 'input_attachment_index' : only allowed when using GLSL for Vulkan +ERROR: 0:28: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON +ERROR: 10 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/glspv.version.frag.out b/deps/glslang/glslang/Test/baseResults/glspv.version.frag.out new file mode 100644 index 0000000000..4a45b5bfd1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glspv.version.frag.out @@ -0,0 +1,20 @@ +glspv.version.frag +ERROR: #version: compilation for SPIR-V does not support the compatibility profile + +// Module Version 10000 +// Generated by (magic number): 80007 +// 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/deps/glslang/glslang/Test/baseResults/glspv.version.vert.out b/deps/glslang/glslang/Test/baseResults/glspv.version.vert.out new file mode 100644 index 0000000000..9683b3bd90 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glspv.version.vert.out @@ -0,0 +1,6 @@ +glspv.version.vert +ERROR: #version: Desktop shaders for OpenGL SPIR-V require version 330 or higher +ERROR: 1 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/glspv.vert.out b/deps/glslang/glslang/Test/baseResults/glspv.vert.out new file mode 100644 index 0000000000..f2fe53b295 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/glspv.vert.out @@ -0,0 +1,13 @@ +glspv.vert +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, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON +ERROR: 8 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.-D-U.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.-D-U.frag.out new file mode 100644 index 0000000000..06842e8009 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.-D-U.frag.out @@ -0,0 +1,65 @@ +hlsl.-D-U.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'color' ( global 4-component vector of float) +0:9 Constant: +0:9 1.000000 +0:9 1.000000 +0:9 1.000000 +0:9 1.000000 +0:15 subtract second child into first child ( temp 4-component vector of float) +0:15 'color' ( global 4-component vector of float) +0:15 Constant: +0:15 5.000000 +0:21 Post-Increment ( temp 4-component vector of float) +0:21 'color' ( global 4-component vector of float) +0:29 vector scale second child into first child ( temp 4-component vector of float) +0:29 'color' ( global 4-component vector of float) +0:29 Constant: +0:29 3.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'color' ( global 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'color' ( global 4-component vector of float) +0:9 Constant: +0:9 1.000000 +0:9 1.000000 +0:9 1.000000 +0:9 1.000000 +0:15 subtract second child into first child ( temp 4-component vector of float) +0:15 'color' ( global 4-component vector of float) +0:15 Constant: +0:15 5.000000 +0:21 Post-Increment ( temp 4-component vector of float) +0:21 'color' ( global 4-component vector of float) +0:29 vector scale second child into first child ( temp 4-component vector of float) +0:29 'color' ( global 4-component vector of float) +0:29 Constant: +0:29 3.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'color' ( global 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.geom.out new file mode 100644 index 0000000000..0d18f1fde7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.geom.out @@ -0,0 +1,143 @@ +hlsl.PointSize.geom +Shader version: 500 +invocations = -1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:8 Function Definition: @main(u1[3];struct-S-f11; ( temp void) +0:8 Function Parameters: +0:8 'ps' ( in 3-element array of uint) +0:8 'OutputStream' ( out structure{ temp float ps}) +0:? Sequence +0:10 Sequence +0:10 Sequence +0:10 move second child to first child ( temp float) +0:? 'OutputStream.ps' ( out float PointSize) +0:10 ps: direct index for structure ( temp float) +0:10 's' ( temp structure{ temp float ps}) +0:10 Constant: +0:10 0 (const int) +0:10 EmitVertex ( temp void) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 3-element array of uint) +0:? 'ps' ( temp 3-element array of uint) +0:? 'ps' ( in 3-element array of uint PointSize) +0:8 Function Call: @main(u1[3];struct-S-f11; ( temp void) +0:? 'ps' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp float ps}) +0:? Linker Objects +0:? 'ps' ( in 3-element array of uint PointSize) +0:? 'OutputStream.ps' ( out float PointSize) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:8 Function Definition: @main(u1[3];struct-S-f11; ( temp void) +0:8 Function Parameters: +0:8 'ps' ( in 3-element array of uint) +0:8 'OutputStream' ( out structure{ temp float ps}) +0:? Sequence +0:10 Sequence +0:10 Sequence +0:10 move second child to first child ( temp float) +0:? 'OutputStream.ps' ( out float PointSize) +0:10 ps: direct index for structure ( temp float) +0:10 's' ( temp structure{ temp float ps}) +0:10 Constant: +0:10 0 (const int) +0:10 EmitVertex ( temp void) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 3-element array of uint) +0:? 'ps' ( temp 3-element array of uint) +0:? 'ps' ( in 3-element array of uint PointSize) +0:8 Function Call: @main(u1[3];struct-S-f11; ( temp void) +0:? 'ps' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp float ps}) +0:? Linker Objects +0:? 'ps' ( in 3-element array of uint PointSize) +0:? 'OutputStream.ps' ( out float PointSize) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 36 + + Capability Geometry + Capability GeometryPointSize + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 19 28 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 4 + Source HLSL 500 + Name 4 "main" + Name 11 "S" + MemberName 11(S) 0 "ps" + Name 16 "@main(u1[3];struct-S-f11;" + Name 14 "ps" + Name 15 "OutputStream" + Name 19 "OutputStream.ps" + Name 20 "s" + Name 26 "ps" + Name 28 "ps" + Name 30 "OutputStream" + Name 31 "param" + Name 33 "param" + Decorate 19(OutputStream.ps) BuiltIn PointSize + Decorate 28(ps) BuiltIn PointSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 3 + 8: TypeArray 6(int) 7 + 9: TypePointer Function 8 + 10: TypeFloat 32 + 11(S): TypeStruct 10(float) + 12: TypePointer Function 11(S) + 13: TypeFunction 2 9(ptr) 12(ptr) + 18: TypePointer Output 10(float) +19(OutputStream.ps): 18(ptr) Variable Output + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: TypePointer Function 10(float) + 27: TypePointer Input 8 + 28(ps): 27(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 26(ps): 9(ptr) Variable Function +30(OutputStream): 12(ptr) Variable Function + 31(param): 9(ptr) Variable Function + 33(param): 12(ptr) Variable Function + 29: 8 Load 28(ps) + Store 26(ps) 29 + 32: 8 Load 26(ps) + Store 31(param) 32 + 34: 2 FunctionCall 16(@main(u1[3];struct-S-f11;) 31(param) 33(param) + 35: 11(S) Load 33(param) + Store 30(OutputStream) 35 + Return + FunctionEnd +16(@main(u1[3];struct-S-f11;): 2 Function None 13 + 14(ps): 9(ptr) FunctionParameter +15(OutputStream): 12(ptr) FunctionParameter + 17: Label + 20(s): 12(ptr) Variable Function + 24: 23(ptr) AccessChain 20(s) 22 + 25: 10(float) Load 24 + Store 19(OutputStream.ps) 25 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.vert.out new file mode 100644 index 0000000000..bda0030e1c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.PointSize.vert.out @@ -0,0 +1,69 @@ +hlsl.PointSize.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp float) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 2.300000 +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? '@entryPointOutput' ( out float PointSize) +0:2 Function Call: @main( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' ( out float PointSize) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp float) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 2.300000 +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? '@entryPointOutput' ( out float PointSize) +0:2 Function Call: @main( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' ( out float PointSize) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 16 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 14 + Source HLSL 500 + Name 4 "main" + Name 8 "@main(" + Name 14 "@entryPointOutput" + Decorate 14(@entryPointOutput) BuiltIn PointSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: 6(float) Constant 1075000115 + 13: TypePointer Output 6(float) +14(@entryPointOutput): 13(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 15: 6(float) FunctionCall 8(@main() + Store 14(@entryPointOutput) 15 + Return + FunctionEnd + 8(@main(): 6(float) Function None 7 + 9: Label + ReturnValue 10 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out new file mode 100644 index 0000000000..9928278da1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out @@ -0,0 +1,242 @@ +hlsl.aliasOpaque.frag +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:? Sequence +0:13 Branch: Return with expression +0:13 vector-scale ( temp 4-component vector of float) +0:13 a: direct index for structure ( temp float) +0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:13 Constant: +0:13 1 (const int) +0:13 texture ( temp 4-component vector of float) +0:13 Construct combined texture-sampler ( temp sampler2D) +0:13 tex: direct index for structure ( temp texture2D) +0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:13 Constant: +0:13 2 (const int) +0:13 ss: direct index for structure ( temp sampler) +0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:13 Constant: +0:13 0 (const int) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:17 Function Definition: @main( ( temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:19 move second child to first child ( temp sampler) +0:19 ss: direct index for structure ( temp sampler) +0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:19 Constant: +0:19 0 (const int) +0:19 'gss2' ( uniform sampler) +0:20 move second child to first child ( temp sampler) +0:20 ss: direct index for structure ( temp sampler) +0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:20 Constant: +0:20 0 (const int) +0:20 'gss' ( uniform sampler) +0:21 move second child to first child ( temp texture2D) +0:21 tex: direct index for structure ( temp texture2D) +0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:21 Constant: +0:21 2 (const int) +0:21 'gtex' ( uniform texture2D) +0:22 move second child to first child ( temp float) +0:22 a: direct index for structure ( temp float) +0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 3.000000 +0:28 Branch: Return with expression +0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) +0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:17 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'gss' ( uniform sampler) +0:? 'gss2' ( uniform sampler) +0:? 'gtex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:? Sequence +0:13 Branch: Return with expression +0:13 vector-scale ( temp 4-component vector of float) +0:13 a: direct index for structure ( temp float) +0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:13 Constant: +0:13 1 (const int) +0:13 texture ( temp 4-component vector of float) +0:13 Construct combined texture-sampler ( temp sampler2D) +0:13 tex: direct index for structure ( temp texture2D) +0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:13 Constant: +0:13 2 (const int) +0:13 ss: direct index for structure ( temp sampler) +0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:13 Constant: +0:13 0 (const int) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:17 Function Definition: @main( ( temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:19 move second child to first child ( temp sampler) +0:19 ss: direct index for structure ( temp sampler) +0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:19 Constant: +0:19 0 (const int) +0:19 'gss2' ( uniform sampler) +0:20 move second child to first child ( temp sampler) +0:20 ss: direct index for structure ( temp sampler) +0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:20 Constant: +0:20 0 (const int) +0:20 'gss' ( uniform sampler) +0:21 move second child to first child ( temp texture2D) +0:21 tex: direct index for structure ( temp texture2D) +0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:21 Constant: +0:21 2 (const int) +0:21 'gtex' ( uniform texture2D) +0:22 move second child to first child ( temp float) +0:22 a: direct index for structure ( temp float) +0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 3.000000 +0:28 Branch: Return with expression +0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) +0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:17 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'gss' ( uniform sampler) +0:? 'gss2' ( uniform sampler) +0:? 'gtex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 64 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 62 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "OS" + MemberName 9(OS) 0 "ss" + MemberName 9(OS) 1 "a" + MemberName 9(OS) 2 "tex" + Name 14 "osCall(struct-OS-p1-f1-t211;" + Name 13 "s" + Name 17 "@main(" + Name 42 "os" + Name 44 "gss2" + Name 47 "gss" + Name 51 "gtex" + Name 56 "param" + Name 62 "@entryPointOutput" + Decorate 44(gss2) DescriptorSet 0 + Decorate 47(gss) DescriptorSet 0 + Decorate 51(gtex) DescriptorSet 0 + Decorate 62(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7: TypeFloat 32 + 8: TypeImage 7(float) 2D sampled format:Unknown + 9(OS): TypeStruct 6 7(float) 8 + 10: TypePointer Function 9(OS) + 11: TypeVector 7(float) 4 + 12: TypeFunction 11(fvec4) 10(ptr) + 16: TypeFunction 11(fvec4) + 19: TypeInt 32 1 + 20: 19(int) Constant 1 + 21: TypePointer Function 7(float) + 24: 19(int) Constant 2 + 25: TypePointer Function 8 + 28: 19(int) Constant 0 + 29: TypePointer Function 6 + 32: TypeSampledImage 8 + 34: TypeVector 7(float) 2 + 35: 7(float) Constant 1045220557 + 36: 7(float) Constant 1050253722 + 37: 34(fvec2) ConstantComposite 35 36 + 43: TypePointer UniformConstant 6 + 44(gss2): 43(ptr) Variable UniformConstant + 47(gss): 43(ptr) Variable UniformConstant + 50: TypePointer UniformConstant 8 + 51(gtex): 50(ptr) Variable UniformConstant + 54: 7(float) Constant 1077936128 + 61: TypePointer Output 11(fvec4) +62(@entryPointOutput): 61(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 63: 11(fvec4) FunctionCall 17(@main() + Store 62(@entryPointOutput) 63 + Return + FunctionEnd +14(osCall(struct-OS-p1-f1-t211;): 11(fvec4) Function None 12 + 13(s): 10(ptr) FunctionParameter + 15: Label + 22: 21(ptr) AccessChain 13(s) 20 + 23: 7(float) Load 22 + 26: 25(ptr) AccessChain 13(s) 24 + 27: 8 Load 26 + 30: 29(ptr) AccessChain 13(s) 28 + 31: 6 Load 30 + 33: 32 SampledImage 27 31 + 38: 11(fvec4) ImageSampleImplicitLod 33 37 + 39: 11(fvec4) VectorTimesScalar 38 23 + ReturnValue 39 + FunctionEnd + 17(@main(): 11(fvec4) Function None 16 + 18: Label + 42(os): 10(ptr) Variable Function + 56(param): 10(ptr) Variable Function + 45: 6 Load 44(gss2) + 46: 29(ptr) AccessChain 42(os) 28 + Store 46 45 + 48: 6 Load 47(gss) + 49: 29(ptr) AccessChain 42(os) 28 + Store 49 48 + 52: 8 Load 51(gtex) + 53: 25(ptr) AccessChain 42(os) 24 + Store 53 52 + 55: 21(ptr) AccessChain 42(os) 20 + Store 55 54 + 57: 9(OS) Load 42(os) + Store 56(param) 57 + 58: 11(fvec4) FunctionCall 14(osCall(struct-OS-p1-f1-t211;) 56(param) + ReturnValue 58 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out new file mode 100644 index 0000000000..fa4ad035d7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.amend.frag.out @@ -0,0 +1,257 @@ +hlsl.amend.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:3 'm' ( global 4-component vector of float) +0:3 vector-scale ( temp 4-component vector of float) +0:3 a: direct index for structure ( uniform 4-component vector of float) +0:3 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:3 Constant: +0:3 0 (const uint) +0:3 b: direct index for structure ( uniform float) +0:3 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:3 Constant: +0:3 1 (const uint) +0:5 Function Definition: @f1( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale ( temp 4-component vector of float) +0:6 a: direct index for structure ( uniform 4-component vector of float) +0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure ( uniform float) +0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:5 Function Definition: f1( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Function Call: @f1( ( temp void) +0:12 Function Definition: f2( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add ( temp float) +0:13 add ( temp float) +0:13 direct index ( temp float) +0:13 a: direct index for structure ( uniform 4-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure ( uniform float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index ( temp float) +0:13 c: direct index for structure ( uniform 3-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure ( uniform 3-component vector of float) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale ( temp 4-component vector of float) +0:25 Convert int to float ( temp float) +0:25 d: direct index for structure ( uniform int) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure ( uniform 4-component vector of float) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:? 'm' ( global 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:3 'm' ( global 4-component vector of float) +0:3 vector-scale ( temp 4-component vector of float) +0:3 a: direct index for structure ( uniform 4-component vector of float) +0:3 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:3 Constant: +0:3 0 (const uint) +0:3 b: direct index for structure ( uniform float) +0:3 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:3 Constant: +0:3 1 (const uint) +0:5 Function Definition: @f1( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale ( temp 4-component vector of float) +0:6 a: direct index for structure ( uniform 4-component vector of float) +0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure ( uniform float) +0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:5 Function Definition: f1( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Function Call: @f1( ( temp void) +0:12 Function Definition: f2( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add ( temp float) +0:13 add ( temp float) +0:13 direct index ( temp float) +0:13 a: direct index for structure ( uniform 4-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure ( uniform float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index ( temp float) +0:13 c: direct index for structure ( uniform 3-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure ( uniform 3-component vector of float) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale ( temp 4-component vector of float) +0:25 Convert int to float ( temp float) +0:25 d: direct index for structure ( uniform int) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure ( uniform 4-component vector of float) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float a, uniform float b, uniform 3-component vector of float c, uniform int d, uniform int e}) +0:? 'm' ( global 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "f1" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "f1" + Name 6 "@f1(" + Name 8 "f2(" + Name 10 "f3(" + Name 12 "f4(" + Name 17 "m" + Name 20 "$Global" + MemberName 20($Global) 0 "a" + MemberName 20($Global) 1 "b" + MemberName 20($Global) 2 "c" + MemberName 20($Global) 3 "d" + MemberName 20($Global) 4 "e" + Name 22 "" + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 16 + MemberDecorate 20($Global) 2 Offset 32 + MemberDecorate 20($Global) 3 Offset 44 + MemberDecorate 20($Global) 4 Offset 48 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeFloat 32 + 15: TypeVector 14(float) 4 + 16: TypePointer Private 15(fvec4) + 17(m): 16(ptr) Variable Private + 18: TypeVector 14(float) 3 + 19: TypeInt 32 1 + 20($Global): TypeStruct 15(fvec4) 14(float) 18(fvec3) 19(int) 19(int) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 19(int) Constant 0 + 24: TypePointer Uniform 15(fvec4) + 27: 19(int) Constant 1 + 28: TypePointer Uniform 14(float) + 38: TypeInt 32 0 + 39: 38(int) Constant 0 + 45: 19(int) Constant 2 + 49: 19(int) Constant 3 + 50: TypePointer Uniform 19(int) + 4(f1): 2 Function None 3 + 5: Label + 25: 24(ptr) AccessChain 22 23 + 26: 15(fvec4) Load 25 + 29: 28(ptr) AccessChain 22 27 + 30: 14(float) Load 29 + 31: 15(fvec4) VectorTimesScalar 26 30 + Store 17(m) 31 + 37: 2 FunctionCall 6(@f1() + Return + FunctionEnd + 6(@f1(): 2 Function None 3 + 7: Label + 32: 24(ptr) AccessChain 22 23 + 33: 15(fvec4) Load 32 + 34: 28(ptr) AccessChain 22 27 + 35: 14(float) Load 34 + 36: 15(fvec4) VectorTimesScalar 33 35 + Return + FunctionEnd + 8(f2(): 2 Function None 3 + 9: Label + 40: 28(ptr) AccessChain 22 23 39 + 41: 14(float) Load 40 + 42: 28(ptr) AccessChain 22 27 + 43: 14(float) Load 42 + 44: 14(float) FAdd 41 43 + 46: 28(ptr) AccessChain 22 45 39 + 47: 14(float) Load 46 + 48: 14(float) FAdd 44 47 + Return + FunctionEnd + 10(f3(): 2 Function None 3 + 11: Label + Return + FunctionEnd + 12(f4(): 2 Function None 3 + 13: Label + 51: 50(ptr) AccessChain 22 49 + 52: 19(int) Load 51 + 53: 14(float) ConvertSToF 52 + 54: 24(ptr) AccessChain 22 23 + 55: 15(fvec4) Load 54 + 56: 15(fvec4) VectorTimesScalar 55 53 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.array.flatten.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.array.flatten.frag.out new file mode 100644 index 0000000000..4c8609c257 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.flatten.frag.out @@ -0,0 +1,592 @@ +hlsl.array.flatten.frag +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( ( temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture ( temp 4-component vector of float) +0:18 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_tex[1]' ( uniform texture1D) +0:? 'g_samp[1]' ( uniform sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' ( in 3-element array of texture1D) +0:22 'l_samp' ( in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1D) +0:23 direct index ( temp texture1D) +0:23 'l_tex' ( in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index ( temp sampler) +0:23 'l_samp' ( in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child ( temp 5-element array of int) +0:26 'not_flattened_a' ( global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:31 Function Parameters: +0:31 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp sampler) +0:33 direct index ( temp sampler) +0:33 'local_sampler_array' ( temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' ( uniform sampler) +0:33 move second child to first child ( temp sampler) +0:33 direct index ( temp sampler) +0:33 'local_sampler_array' ( temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' ( uniform sampler) +0:33 move second child to first child ( temp sampler) +0:33 direct index ( temp sampler) +0:33 'local_sampler_array' ( temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' ( uniform sampler) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child ( temp texture1D) +0:34 direct index ( temp texture1D) +0:34 'local_texture_array' ( temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' ( uniform texture1D) +0:34 move second child to first child ( temp texture1D) +0:34 direct index ( temp texture1D) +0:34 'local_texture_array' ( temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' ( uniform texture1D) +0:34 move second child to first child ( temp texture1D) +0:34 direct index ( temp texture1D) +0:34 'local_texture_array' ( temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' ( uniform texture1D) +0:35 Sequence +0:35 move second child to first child ( temp 4-element array of float) +0:35 'local_float_array' ( temp 4-element array of float) +0:35 g_floats: direct index for structure ( uniform 4-element array of float) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit, uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) +0:37 move second child to first child ( temp 4-component vector of float) +0:37 color: direct index for structure ( temp 4-component vector of float) +0:37 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:37 Constant: +0:37 0 (const int) +0:37 add ( temp 4-component vector of float) +0:37 Function Call: TestFn1( ( temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float) +0:37 Comma ( temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child ( temp texture1D) +0:37 direct index ( temp texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) +0:? 'g_tex[0]' ( uniform texture1D) +0:37 move second child to first child ( temp texture1D) +0:37 direct index ( temp texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) +0:? 'g_tex[1]' ( uniform texture1D) +0:37 move second child to first child ( temp texture1D) +0:37 direct index ( temp texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) +0:? 'g_tex[2]' ( uniform texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Comma ( temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child ( temp sampler) +0:37 direct index ( temp sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) +0:? 'g_samp[0]' ( uniform sampler) +0:37 move second child to first child ( temp sampler) +0:37 direct index ( temp sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) +0:? 'g_samp[1]' ( uniform sampler) +0:37 move second child to first child ( temp sampler) +0:37 direct index ( temp sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) +0:? 'g_samp[2]' ( uniform sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:31 Function Definition: main( ( temp void) +0:31 Function Parameters: +0:? Sequence +0:31 Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) +0:31 color: direct index for structure ( temp 4-component vector of float) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:? Linker Objects +0:? 'g_tex[0]' ( uniform texture1D) +0:? 'g_tex[1]' ( uniform texture1D) +0:? 'g_tex[2]' ( uniform texture1D) +0:? 'g_tex_explicit[0]' (layout( binding=1) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout( binding=2) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout( binding=3) uniform texture1D) +0:? 'g_samp[0]' ( uniform sampler) +0:? 'g_samp[1]' ( uniform sampler) +0:? 'g_samp[2]' ( uniform sampler) +0:? 'g_samp_explicit[0]' (layout( binding=5) uniform sampler) +0:? 'g_samp_explicit[1]' (layout( binding=6) uniform sampler) +0:? 'g_samp_explicit[2]' (layout( binding=7) uniform sampler) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit, uniform 4-element array of float g_floats}) +0:? 'not_flattened_a' ( global 5-element array of int) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( ( temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture ( temp 4-component vector of float) +0:18 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_tex[1]' ( uniform texture1D) +0:? 'g_samp[1]' ( uniform sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' ( in 3-element array of texture1D) +0:22 'l_samp' ( in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1D) +0:23 direct index ( temp texture1D) +0:23 'l_tex' ( in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index ( temp sampler) +0:23 'l_samp' ( in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child ( temp 5-element array of int) +0:26 'not_flattened_a' ( global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:31 Function Parameters: +0:31 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp sampler) +0:33 direct index ( temp sampler) +0:33 'local_sampler_array' ( temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' ( uniform sampler) +0:33 move second child to first child ( temp sampler) +0:33 direct index ( temp sampler) +0:33 'local_sampler_array' ( temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' ( uniform sampler) +0:33 move second child to first child ( temp sampler) +0:33 direct index ( temp sampler) +0:33 'local_sampler_array' ( temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' ( uniform sampler) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child ( temp texture1D) +0:34 direct index ( temp texture1D) +0:34 'local_texture_array' ( temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' ( uniform texture1D) +0:34 move second child to first child ( temp texture1D) +0:34 direct index ( temp texture1D) +0:34 'local_texture_array' ( temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' ( uniform texture1D) +0:34 move second child to first child ( temp texture1D) +0:34 direct index ( temp texture1D) +0:34 'local_texture_array' ( temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' ( uniform texture1D) +0:35 Sequence +0:35 move second child to first child ( temp 4-element array of float) +0:35 'local_float_array' ( temp 4-element array of float) +0:35 g_floats: direct index for structure ( uniform 4-element array of float) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit, uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) +0:37 move second child to first child ( temp 4-component vector of float) +0:37 color: direct index for structure ( temp 4-component vector of float) +0:37 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:37 Constant: +0:37 0 (const int) +0:37 add ( temp 4-component vector of float) +0:37 Function Call: TestFn1( ( temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float) +0:37 Comma ( temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child ( temp texture1D) +0:37 direct index ( temp texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) +0:? 'g_tex[0]' ( uniform texture1D) +0:37 move second child to first child ( temp texture1D) +0:37 direct index ( temp texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) +0:? 'g_tex[1]' ( uniform texture1D) +0:37 move second child to first child ( temp texture1D) +0:37 direct index ( temp texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) +0:? 'g_tex[2]' ( uniform texture1D) +0:37 'aggShadow' ( temp 3-element array of texture1D) +0:37 Comma ( temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child ( temp sampler) +0:37 direct index ( temp sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) +0:? 'g_samp[0]' ( uniform sampler) +0:37 move second child to first child ( temp sampler) +0:37 direct index ( temp sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) +0:? 'g_samp[1]' ( uniform sampler) +0:37 move second child to first child ( temp sampler) +0:37 direct index ( temp sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) +0:? 'g_samp[2]' ( uniform sampler) +0:37 'aggShadow' ( temp 3-element array of sampler) +0:31 Function Definition: main( ( temp void) +0:31 Function Parameters: +0:? Sequence +0:31 Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) +0:31 color: direct index for structure ( temp 4-component vector of float) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:? Linker Objects +0:? 'g_tex[0]' ( uniform texture1D) +0:? 'g_tex[1]' ( uniform texture1D) +0:? 'g_tex[2]' ( uniform texture1D) +0:? 'g_tex_explicit[0]' (layout( binding=1) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout( binding=2) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout( binding=3) uniform texture1D) +0:? 'g_samp[0]' ( uniform sampler) +0:? 'g_samp[1]' ( uniform sampler) +0:? 'g_samp[2]' ( uniform sampler) +0:? 'g_samp_explicit[0]' (layout( binding=5) uniform sampler) +0:? 'g_samp_explicit[1]' (layout( binding=6) uniform sampler) +0:? 'g_samp_explicit[2]' (layout( binding=7) uniform sampler) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit, uniform 4-element array of float g_floats}) +0:? 'not_flattened_a' ( global 5-element array of int) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 143 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 134 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "TestFn1(" + Name 22 "TestFn2(t11[3];p1[3];" + Name 20 "l_tex" + Name 21 "l_samp" + Name 24 "PS_OUTPUT" + MemberName 24(PS_OUTPUT) 0 "color" + Name 28 "@main(struct-PS_OUTPUT-vf41;" + Name 27 "ps_output" + Name 34 "not_flattened_a" + Name 42 "g_tex[1]" + Name 45 "g_samp[1]" + Name 63 "local_sampler_array" + Name 65 "g_samp[0]" + Name 70 "g_samp[2]" + Name 73 "local_texture_array" + Name 74 "g_tex[0]" + Name 79 "g_tex[2]" + Name 85 "local_float_array" + Name 91 "$Global" + MemberName 91($Global) 0 "g_mats" + MemberName 91($Global) 1 "g_mats_explicit" + MemberName 91($Global) 2 "g_floats" + Name 93 "" + Name 107 "aggShadow" + Name 114 "aggShadow" + Name 121 "param" + Name 123 "param" + Name 129 "ps_output" + Name 130 "param" + Name 134 "ps_output.color" + Name 137 "g_tex_explicit[0]" + Name 138 "g_tex_explicit[1]" + Name 139 "g_tex_explicit[2]" + Name 140 "g_samp_explicit[0]" + Name 141 "g_samp_explicit[1]" + Name 142 "g_samp_explicit[2]" + Decorate 42(g_tex[1]) DescriptorSet 0 + Decorate 45(g_samp[1]) DescriptorSet 0 + Decorate 65(g_samp[0]) DescriptorSet 0 + Decorate 70(g_samp[2]) DescriptorSet 0 + Decorate 74(g_tex[0]) DescriptorSet 0 + Decorate 79(g_tex[2]) DescriptorSet 0 + Decorate 88 ArrayStride 48 + Decorate 89 ArrayStride 48 + Decorate 90 ArrayStride 16 + MemberDecorate 91($Global) 0 RowMajor + MemberDecorate 91($Global) 0 Offset 0 + MemberDecorate 91($Global) 0 MatrixStride 16 + MemberDecorate 91($Global) 1 RowMajor + MemberDecorate 91($Global) 1 Offset 192 + MemberDecorate 91($Global) 1 MatrixStride 16 + MemberDecorate 91($Global) 2 Offset 384 + Decorate 91($Global) Block + Decorate 93 DescriptorSet 0 + Decorate 134(ps_output.color) Location 0 + Decorate 137(g_tex_explicit[0]) DescriptorSet 0 + Decorate 137(g_tex_explicit[0]) Binding 1 + Decorate 138(g_tex_explicit[1]) DescriptorSet 0 + Decorate 138(g_tex_explicit[1]) Binding 2 + Decorate 139(g_tex_explicit[2]) DescriptorSet 0 + Decorate 139(g_tex_explicit[2]) Binding 3 + Decorate 140(g_samp_explicit[0]) DescriptorSet 0 + Decorate 140(g_samp_explicit[0]) Binding 5 + Decorate 141(g_samp_explicit[1]) DescriptorSet 0 + Decorate 141(g_samp_explicit[1]) Binding 6 + Decorate 142(g_samp_explicit[2]) DescriptorSet 0 + Decorate 142(g_samp_explicit[2]) Binding 7 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 1D sampled format:Unknown + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 11 13 + 15: TypePointer Function 14 + 16: TypeSampler + 17: TypeArray 16 13 + 18: TypePointer Function 17 + 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) + 24(PS_OUTPUT): TypeStruct 7(fvec4) + 25: TypePointer Function 24(PS_OUTPUT) + 26: TypeFunction 2 25(ptr) + 30: TypeInt 32 1 + 31: 12(int) Constant 5 + 32: TypeArray 30(int) 31 + 33: TypePointer Private 32 +34(not_flattened_a): 33(ptr) Variable Private + 35: 30(int) Constant 1 + 36: 30(int) Constant 2 + 37: 30(int) Constant 3 + 38: 30(int) Constant 4 + 39: 30(int) Constant 5 + 40: 32 ConstantComposite 35 36 37 38 39 + 41: TypePointer UniformConstant 11 + 42(g_tex[1]): 41(ptr) Variable UniformConstant + 44: TypePointer UniformConstant 16 + 45(g_samp[1]): 44(ptr) Variable UniformConstant + 47: TypeSampledImage 11 + 49: 6(float) Constant 1045220557 + 53: TypePointer Function 11 + 56: TypePointer Function 16 + 64: 30(int) Constant 0 + 65(g_samp[0]): 44(ptr) Variable UniformConstant + 70(g_samp[2]): 44(ptr) Variable UniformConstant + 74(g_tex[0]): 41(ptr) Variable UniformConstant + 79(g_tex[2]): 41(ptr) Variable UniformConstant + 82: 12(int) Constant 4 + 83: TypeArray 6(float) 82 + 84: TypePointer Function 83 + 86: TypeVector 6(float) 3 + 87: TypeMatrix 86(fvec3) 3 + 88: TypeArray 87 82 + 89: TypeArray 87 82 + 90: TypeArray 6(float) 82 + 91($Global): TypeStruct 88 89 90 + 92: TypePointer Uniform 91($Global) + 93: 92(ptr) Variable Uniform + 94: TypePointer Uniform 90 + 98: TypePointer Function 6(float) + 127: TypePointer Function 7(fvec4) + 133: TypePointer Output 7(fvec4) +134(ps_output.color): 133(ptr) Variable Output +137(g_tex_explicit[0]): 41(ptr) Variable UniformConstant +138(g_tex_explicit[1]): 41(ptr) Variable UniformConstant +139(g_tex_explicit[2]): 41(ptr) Variable UniformConstant +140(g_samp_explicit[0]): 44(ptr) Variable UniformConstant +141(g_samp_explicit[1]): 44(ptr) Variable UniformConstant +142(g_samp_explicit[2]): 44(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 129(ps_output): 25(ptr) Variable Function + 130(param): 25(ptr) Variable Function + Store 34(not_flattened_a) 40 + 131: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 130(param) + 132:24(PS_OUTPUT) Load 130(param) + Store 129(ps_output) 132 + 135: 127(ptr) AccessChain 129(ps_output) 64 + 136: 7(fvec4) Load 135 + Store 134(ps_output.color) 136 + Return + FunctionEnd + 9(TestFn1(): 7(fvec4) Function None 8 + 10: Label + 43: 11 Load 42(g_tex[1]) + 46: 16 Load 45(g_samp[1]) + 48: 47 SampledImage 43 46 + 50: 7(fvec4) ImageSampleImplicitLod 48 49 + ReturnValue 50 + FunctionEnd +22(TestFn2(t11[3];p1[3];): 7(fvec4) Function None 19 + 20(l_tex): 15(ptr) FunctionParameter + 21(l_samp): 18(ptr) FunctionParameter + 23: Label + 54: 53(ptr) AccessChain 20(l_tex) 36 + 55: 11 Load 54 + 57: 56(ptr) AccessChain 21(l_samp) 36 + 58: 16 Load 57 + 59: 47 SampledImage 55 58 + 60: 7(fvec4) ImageSampleImplicitLod 59 49 + ReturnValue 60 + FunctionEnd +28(@main(struct-PS_OUTPUT-vf41;): 2 Function None 26 + 27(ps_output): 25(ptr) FunctionParameter + 29: Label +63(local_sampler_array): 18(ptr) Variable Function +73(local_texture_array): 15(ptr) Variable Function +85(local_float_array): 84(ptr) Variable Function + 107(aggShadow): 15(ptr) Variable Function + 114(aggShadow): 18(ptr) Variable Function + 121(param): 15(ptr) Variable Function + 123(param): 18(ptr) Variable Function + 66: 16 Load 65(g_samp[0]) + 67: 56(ptr) AccessChain 63(local_sampler_array) 64 + Store 67 66 + 68: 16 Load 45(g_samp[1]) + 69: 56(ptr) AccessChain 63(local_sampler_array) 35 + Store 69 68 + 71: 16 Load 70(g_samp[2]) + 72: 56(ptr) AccessChain 63(local_sampler_array) 36 + Store 72 71 + 75: 11 Load 74(g_tex[0]) + 76: 53(ptr) AccessChain 73(local_texture_array) 64 + Store 76 75 + 77: 11 Load 42(g_tex[1]) + 78: 53(ptr) AccessChain 73(local_texture_array) 35 + Store 78 77 + 80: 11 Load 79(g_tex[2]) + 81: 53(ptr) AccessChain 73(local_texture_array) 36 + Store 81 80 + 95: 94(ptr) AccessChain 93 36 + 96: 90 Load 95 + 97: 6(float) CompositeExtract 96 0 + 99: 98(ptr) AccessChain 85(local_float_array) 64 + Store 99 97 + 100: 6(float) CompositeExtract 96 1 + 101: 98(ptr) AccessChain 85(local_float_array) 35 + Store 101 100 + 102: 6(float) CompositeExtract 96 2 + 103: 98(ptr) AccessChain 85(local_float_array) 36 + Store 103 102 + 104: 6(float) CompositeExtract 96 3 + 105: 98(ptr) AccessChain 85(local_float_array) 37 + Store 105 104 + 106: 7(fvec4) FunctionCall 9(TestFn1() + 108: 11 Load 74(g_tex[0]) + 109: 53(ptr) AccessChain 107(aggShadow) 64 + Store 109 108 + 110: 11 Load 42(g_tex[1]) + 111: 53(ptr) AccessChain 107(aggShadow) 35 + Store 111 110 + 112: 11 Load 79(g_tex[2]) + 113: 53(ptr) AccessChain 107(aggShadow) 36 + Store 113 112 + 115: 16 Load 65(g_samp[0]) + 116: 56(ptr) AccessChain 114(aggShadow) 64 + Store 116 115 + 117: 16 Load 45(g_samp[1]) + 118: 56(ptr) AccessChain 114(aggShadow) 35 + Store 118 117 + 119: 16 Load 70(g_samp[2]) + 120: 56(ptr) AccessChain 114(aggShadow) 36 + Store 120 119 + 122: 14 Load 107(aggShadow) + Store 121(param) 122 + 124: 17 Load 114(aggShadow) + Store 123(param) 124 + 125: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 121(param) 123(param) + 126: 7(fvec4) FAdd 106 125 + 128: 127(ptr) AccessChain 27(ps_output) 64 + Store 128 126 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.array.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.array.frag.out new file mode 100644 index 0000000000..0f68e7cd55 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.frag.out @@ -0,0 +1,475 @@ +hlsl.array.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 'C' ( global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:11 Sequence +0:11 move second child to first child ( temp 2-element array of 4-component vector of float) +0:11 'c2' ( global 2-element array of 4-component vector of float) +0:11 Construct vec4 ( temp 2-element array of 4-component vector of float) +0:11 'C' ( global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:14 Function Definition: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) +0:14 Function Parameters: +0:14 'i' ( in int) +0:14 'input' ( in 3-element array of 4-component vector of float) +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 10-element array of 4-component vector of float) +0:15 'b' ( temp 10-element array of 4-component vector of float) +0:15 Construct vec4 ( temp 10-element array of 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'tmp' ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 'C' ( global 4-component vector of float) +0:16 direct index ( temp 4-component vector of float) +0:16 a1: direct index for structure ( uniform 1-element array of 4-component vector of float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:16 Constant: +0:16 2 (const uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 2.000000 +0:16 3.000000 +0:16 4.000000 +0:16 indirect index ( temp 4-component vector of float) +0:16 a2: direct index for structure ( uniform 2-element array of 4-component vector of float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:16 Constant: +0:16 3 (const uint) +0:16 'i' ( in int) +0:16 indirect index ( temp 4-component vector of float) +0:16 'c2' ( global 2-element array of 4-component vector of float) +0:16 'i' ( in int) +0:17 Branch: Return with expression +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 direct index ( temp 4-component vector of float) +0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:17 Constant: +0:17 0 (const uint) +0:17 Constant: +0:17 1 (const int) +0:17 indirect index ( temp 4-component vector of float) +0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:17 Constant: +0:17 0 (const uint) +0:17 'i' ( in int) +0:17 direct index ( temp 4-component vector of float) +0:17 'input' ( in 3-element array of 4-component vector of float) +0:17 Constant: +0:17 2 (const int) +0:17 indirect index ( temp 4-component vector of float) +0:17 'input' ( in 3-element array of 4-component vector of float) +0:17 'i' ( in int) +0:17 direct index ( temp 4-component vector of float) +0:17 'b' ( temp 10-element array of 4-component vector of float) +0:17 Constant: +0:17 5 (const int) +0:17 indirect index ( temp 4-component vector of float) +0:17 'b' ( temp 10-element array of 4-component vector of float) +0:17 'i' ( in int) +0:17 indirect index ( temp 4-component vector of float) +0:17 m: direct index for structure ( temp 7-element array of 4-component vector of float) +0:17 indirect index ( temp structure{ temp 7-element array of 4-component vector of float m}) +0:17 s: direct index for structure ( uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m}) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:17 Constant: +0:17 1 (const uint) +0:17 'i' ( in int) +0:17 Constant: +0:17 0 (const int) +0:17 'i' ( in int) +0:17 'tmp' ( temp 4-component vector of float) +0:14 Function Definition: PixelShaderFunction( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp int) +0:? 'i' ( temp int) +0:? 'i' (layout( location=0) flat in int) +0:14 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'input' ( temp 3-element array of 4-component vector of float) +0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) +0:14 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:14 Function Call: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) +0:? 'i' ( temp int) +0:? 'input' ( temp 3-element array of 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:? 'C' ( global 4-component vector of float) +0:? 'c1' ( const 1-element array of 4-component vector of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 'c2' ( global 2-element array of 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'i' (layout( location=0) flat in int) +0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 'C' ( global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:11 Sequence +0:11 move second child to first child ( temp 2-element array of 4-component vector of float) +0:11 'c2' ( global 2-element array of 4-component vector of float) +0:11 Construct vec4 ( temp 2-element array of 4-component vector of float) +0:11 'C' ( global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:14 Function Definition: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) +0:14 Function Parameters: +0:14 'i' ( in int) +0:14 'input' ( in 3-element array of 4-component vector of float) +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 10-element array of 4-component vector of float) +0:15 'b' ( temp 10-element array of 4-component vector of float) +0:15 Construct vec4 ( temp 10-element array of 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:15 'C' ( global 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'tmp' ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 'C' ( global 4-component vector of float) +0:16 direct index ( temp 4-component vector of float) +0:16 a1: direct index for structure ( uniform 1-element array of 4-component vector of float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:16 Constant: +0:16 2 (const uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 2.000000 +0:16 3.000000 +0:16 4.000000 +0:16 indirect index ( temp 4-component vector of float) +0:16 a2: direct index for structure ( uniform 2-element array of 4-component vector of float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:16 Constant: +0:16 3 (const uint) +0:16 'i' ( in int) +0:16 indirect index ( temp 4-component vector of float) +0:16 'c2' ( global 2-element array of 4-component vector of float) +0:16 'i' ( in int) +0:17 Branch: Return with expression +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 add ( temp 4-component vector of float) +0:17 direct index ( temp 4-component vector of float) +0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:17 Constant: +0:17 0 (const uint) +0:17 Constant: +0:17 1 (const int) +0:17 indirect index ( temp 4-component vector of float) +0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:17 Constant: +0:17 0 (const uint) +0:17 'i' ( in int) +0:17 direct index ( temp 4-component vector of float) +0:17 'input' ( in 3-element array of 4-component vector of float) +0:17 Constant: +0:17 2 (const int) +0:17 indirect index ( temp 4-component vector of float) +0:17 'input' ( in 3-element array of 4-component vector of float) +0:17 'i' ( in int) +0:17 direct index ( temp 4-component vector of float) +0:17 'b' ( temp 10-element array of 4-component vector of float) +0:17 Constant: +0:17 5 (const int) +0:17 indirect index ( temp 4-component vector of float) +0:17 'b' ( temp 10-element array of 4-component vector of float) +0:17 'i' ( in int) +0:17 indirect index ( temp 4-component vector of float) +0:17 m: direct index for structure ( temp 7-element array of 4-component vector of float) +0:17 indirect index ( temp structure{ temp 7-element array of 4-component vector of float m}) +0:17 s: direct index for structure ( uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m}) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:17 Constant: +0:17 1 (const uint) +0:17 'i' ( in int) +0:17 Constant: +0:17 0 (const int) +0:17 'i' ( in int) +0:17 'tmp' ( temp 4-component vector of float) +0:14 Function Definition: PixelShaderFunction( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp int) +0:? 'i' ( temp int) +0:? 'i' (layout( location=0) flat in int) +0:14 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'input' ( temp 3-element array of 4-component vector of float) +0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) +0:14 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:14 Function Call: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) +0:? 'i' ( temp int) +0:? 'input' ( temp 3-element array of 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) +0:? 'C' ( global 4-component vector of float) +0:? 'c1' ( const 1-element array of 4-component vector of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 'c2' ( global 2-element array of 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'i' (layout( location=0) flat in int) +0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 126 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 112 116 119 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 17 "@PixelShaderFunction(i1;vf4[3];" + Name 15 "i" + Name 16 "input" + Name 20 "C" + Name 29 "c2" + Name 35 "b" + Name 48 "tmp" + Name 54 "" + MemberName 54 0 "m" + Name 60 "$Global" + MemberName 60($Global) 0 "a" + MemberName 60($Global) 1 "s" + MemberName 60($Global) 2 "a1" + MemberName 60($Global) 3 "a2" + Name 62 "" + Name 110 "i" + Name 112 "i" + Name 114 "input" + Name 116 "input" + Name 119 "@entryPointOutput" + Name 120 "param" + Name 122 "param" + Decorate 51 ArrayStride 16 + Decorate 53 ArrayStride 16 + MemberDecorate 54 0 Offset 0 + Decorate 56 ArrayStride 112 + Decorate 58 ArrayStride 16 + Decorate 59 ArrayStride 16 + MemberDecorate 60($Global) 0 Offset 0 + MemberDecorate 60($Global) 1 Offset 64 + MemberDecorate 60($Global) 2 Offset 1296 + MemberDecorate 60($Global) 3 Offset 1312 + Decorate 60($Global) Block + Decorate 62 DescriptorSet 0 + Decorate 112(i) Flat + Decorate 112(i) Location 0 + Decorate 116(input) Location 1 + Decorate 119(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypeArray 9(fvec4) 11 + 13: TypePointer Function 12 + 14: TypeFunction 9(fvec4) 7(ptr) 13(ptr) + 19: TypePointer Private 9(fvec4) + 20(C): 19(ptr) Variable Private + 21: 8(float) Constant 1065353216 + 22: 8(float) Constant 1073741824 + 23: 8(float) Constant 1077936128 + 24: 8(float) Constant 1082130432 + 25: 9(fvec4) ConstantComposite 21 22 23 24 + 26: 10(int) Constant 2 + 27: TypeArray 9(fvec4) 26 + 28: TypePointer Private 27 + 29(c2): 28(ptr) Variable Private + 32: 10(int) Constant 10 + 33: TypeArray 9(fvec4) 32 + 34: TypePointer Function 33 + 47: TypePointer Function 9(fvec4) + 50: 10(int) Constant 4 + 51: TypeArray 9(fvec4) 50 + 52: 10(int) Constant 7 + 53: TypeArray 9(fvec4) 52 + 54: TypeStruct 53 + 55: 10(int) Constant 11 + 56: TypeArray 54(struct) 55 + 57: 10(int) Constant 1 + 58: TypeArray 9(fvec4) 57 + 59: TypeArray 9(fvec4) 26 + 60($Global): TypeStruct 51 56 58 59 + 61: TypePointer Uniform 60($Global) + 62: 61(ptr) Variable Uniform + 63: 6(int) Constant 2 + 64: 6(int) Constant 0 + 65: TypePointer Uniform 9(fvec4) + 70: 6(int) Constant 3 + 79: 6(int) Constant 1 + 93: 6(int) Constant 5 + 111: TypePointer Input 6(int) + 112(i): 111(ptr) Variable Input + 115: TypePointer Input 12 + 116(input): 115(ptr) Variable Input + 118: TypePointer Output 9(fvec4) +119(@entryPointOutput): 118(ptr) Variable Output + 125: 58 ConstantComposite 25 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 110(i): 7(ptr) Variable Function + 114(input): 13(ptr) Variable Function + 120(param): 7(ptr) Variable Function + 122(param): 13(ptr) Variable Function + Store 20(C) 25 + 30: 9(fvec4) Load 20(C) + 31: 27 CompositeConstruct 30 25 + Store 29(c2) 31 + 113: 6(int) Load 112(i) + Store 110(i) 113 + 117: 12 Load 116(input) + Store 114(input) 117 + 121: 6(int) Load 110(i) + Store 120(param) 121 + 123: 12 Load 114(input) + Store 122(param) 123 + 124: 9(fvec4) FunctionCall 17(@PixelShaderFunction(i1;vf4[3];) 120(param) 122(param) + Store 119(@entryPointOutput) 124 + Return + FunctionEnd +17(@PixelShaderFunction(i1;vf4[3];): 9(fvec4) Function None 14 + 15(i): 7(ptr) FunctionParameter + 16(input): 13(ptr) FunctionParameter + 18: Label + 35(b): 34(ptr) Variable Function + 48(tmp): 47(ptr) Variable Function + 36: 9(fvec4) Load 20(C) + 37: 9(fvec4) Load 20(C) + 38: 9(fvec4) Load 20(C) + 39: 9(fvec4) Load 20(C) + 40: 9(fvec4) Load 20(C) + 41: 9(fvec4) Load 20(C) + 42: 9(fvec4) Load 20(C) + 43: 9(fvec4) Load 20(C) + 44: 9(fvec4) Load 20(C) + 45: 9(fvec4) Load 20(C) + 46: 33 CompositeConstruct 36 37 38 39 40 41 42 43 44 45 + Store 35(b) 46 + 49: 9(fvec4) Load 20(C) + 66: 65(ptr) AccessChain 62 63 64 + 67: 9(fvec4) Load 66 + 68: 9(fvec4) FAdd 49 67 + 69: 9(fvec4) FAdd 68 25 + 71: 6(int) Load 15(i) + 72: 65(ptr) AccessChain 62 70 71 + 73: 9(fvec4) Load 72 + 74: 9(fvec4) FAdd 69 73 + 75: 6(int) Load 15(i) + 76: 19(ptr) AccessChain 29(c2) 75 + 77: 9(fvec4) Load 76 + 78: 9(fvec4) FAdd 74 77 + Store 48(tmp) 78 + 80: 65(ptr) AccessChain 62 64 79 + 81: 9(fvec4) Load 80 + 82: 6(int) Load 15(i) + 83: 65(ptr) AccessChain 62 64 82 + 84: 9(fvec4) Load 83 + 85: 9(fvec4) FAdd 81 84 + 86: 47(ptr) AccessChain 16(input) 63 + 87: 9(fvec4) Load 86 + 88: 9(fvec4) FAdd 85 87 + 89: 6(int) Load 15(i) + 90: 47(ptr) AccessChain 16(input) 89 + 91: 9(fvec4) Load 90 + 92: 9(fvec4) FAdd 88 91 + 94: 47(ptr) AccessChain 35(b) 93 + 95: 9(fvec4) Load 94 + 96: 9(fvec4) FAdd 92 95 + 97: 6(int) Load 15(i) + 98: 47(ptr) AccessChain 35(b) 97 + 99: 9(fvec4) Load 98 + 100: 9(fvec4) FAdd 96 99 + 101: 6(int) Load 15(i) + 102: 6(int) Load 15(i) + 103: 65(ptr) AccessChain 62 79 101 64 102 + 104: 9(fvec4) Load 103 + 105: 9(fvec4) FAdd 100 104 + 106: 9(fvec4) Load 48(tmp) + 107: 9(fvec4) FAdd 105 106 + ReturnValue 107 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out new file mode 100644 index 0000000000..9af6fed287 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -0,0 +1,266 @@ +hlsl.array.implicit-size.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 5-element array of float) +0:3 'g_array' ( global 5-element array of float) +0:3 Constant: +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:3 4.000000 +0:3 5.000000 +0:6 Sequence +0:6 move second child to first child ( temp 7-element array of float) +0:6 'g_array_unused' ( global 7-element array of float) +0:6 Constant: +0:6 1.000000 +0:6 2.000000 +0:6 3.000000 +0:6 4.000000 +0:6 5.000000 +0:6 6.000000 +0:6 7.000000 +0:12 Sequence +0:12 move second child to first child ( temp 2-element array of structure{ temp int i, temp float f}) +0:12 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) +0:12 Constant: +0:12 1 (const int) +0:12 2.000000 +0:12 3 (const int) +0:12 4.000000 +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; ( temp void) +0:26 Function Parameters: +0:26 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp 3-element array of float) +0:28 'l_array' ( temp 3-element array of float) +0:28 Constant: +0:28 1.000000 +0:28 2.000000 +0:28 3.000000 +0:31 move second child to first child ( temp 4-component vector of float) +0:31 color: direct index for structure ( temp 4-component vector of float) +0:31 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:31 Construct vec4 ( temp 4-component vector of float) +0:31 add ( temp float) +0:31 add ( temp float) +0:31 add ( temp float) +0:31 add ( temp float) +0:31 direct index ( temp float) +0:31 'g_array' ( global 5-element array of float) +0:31 Constant: +0:31 0 (const int) +0:31 direct index ( temp float) +0:31 'g_array' ( global 5-element array of float) +0:31 Constant: +0:31 4 (const int) +0:31 direct index ( temp float) +0:31 'l_array' ( temp 3-element array of float) +0:31 Constant: +0:31 1 (const int) +0:31 f: direct index for structure ( temp float) +0:31 direct index ( temp structure{ temp int i, temp float f}) +0:31 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 indirect index ( temp float) +0:31 'g_array' ( global 5-element array of float) +0:31 'idx' ( temp int) +0:? Linker Objects +0:? 'g_array' ( global 5-element array of float) +0:? 'g_array_unused' ( global 7-element array of float) +0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 5-element array of float) +0:3 'g_array' ( global 5-element array of float) +0:3 Constant: +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:3 4.000000 +0:3 5.000000 +0:6 Sequence +0:6 move second child to first child ( temp 7-element array of float) +0:6 'g_array_unused' ( global 7-element array of float) +0:6 Constant: +0:6 1.000000 +0:6 2.000000 +0:6 3.000000 +0:6 4.000000 +0:6 5.000000 +0:6 6.000000 +0:6 7.000000 +0:12 Sequence +0:12 move second child to first child ( temp 2-element array of structure{ temp int i, temp float f}) +0:12 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) +0:12 Constant: +0:12 1 (const int) +0:12 2.000000 +0:12 3 (const int) +0:12 4.000000 +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; ( temp void) +0:26 Function Parameters: +0:26 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp 3-element array of float) +0:28 'l_array' ( temp 3-element array of float) +0:28 Constant: +0:28 1.000000 +0:28 2.000000 +0:28 3.000000 +0:31 move second child to first child ( temp 4-component vector of float) +0:31 color: direct index for structure ( temp 4-component vector of float) +0:31 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:31 Construct vec4 ( temp 4-component vector of float) +0:31 add ( temp float) +0:31 add ( temp float) +0:31 add ( temp float) +0:31 add ( temp float) +0:31 direct index ( temp float) +0:31 'g_array' ( global 5-element array of float) +0:31 Constant: +0:31 0 (const int) +0:31 direct index ( temp float) +0:31 'g_array' ( global 5-element array of float) +0:31 Constant: +0:31 4 (const int) +0:31 direct index ( temp float) +0:31 'l_array' ( temp 3-element array of float) +0:31 Constant: +0:31 1 (const int) +0:31 f: direct index for structure ( temp float) +0:31 direct index ( temp structure{ temp int i, temp float f}) +0:31 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 indirect index ( temp float) +0:31 'g_array' ( global 5-element array of float) +0:31 'idx' ( temp int) +0:? Linker Objects +0:? 'g_array' ( global 5-element array of float) +0:? 'g_array_unused' ( global 7-element array of float) +0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 72 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 12 "main(struct-PS_OUTPUT-vf41;" + Name 11 "ps_output" + Name 18 "g_array" + Name 28 "g_array_unused" + Name 33 "mystruct" + MemberName 33(mystruct) 0 "i" + MemberName 33(mystruct) 1 "f" + Name 37 "g_mystruct" + Name 46 "l_array" + Name 64 "idx" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 10: TypeFunction 2 9(ptr) + 14: TypeInt 32 0 + 15: 14(int) Constant 5 + 16: TypeArray 6(float) 15 + 17: TypePointer Private 16 + 18(g_array): 17(ptr) Variable Private + 19: 6(float) Constant 1065353216 + 20: 6(float) Constant 1073741824 + 21: 6(float) Constant 1077936128 + 22: 6(float) Constant 1082130432 + 23: 6(float) Constant 1084227584 + 24: 16 ConstantComposite 19 20 21 22 23 + 25: 14(int) Constant 7 + 26: TypeArray 6(float) 25 + 27: TypePointer Private 26 +28(g_array_unused): 27(ptr) Variable Private + 29: 6(float) Constant 1086324736 + 30: 6(float) Constant 1088421888 + 31: 26 ConstantComposite 19 20 21 22 23 29 30 + 32: TypeInt 32 1 + 33(mystruct): TypeStruct 32(int) 6(float) + 34: 14(int) Constant 2 + 35: TypeArray 33(mystruct) 34 + 36: TypePointer Private 35 + 37(g_mystruct): 36(ptr) Variable Private + 38: 32(int) Constant 1 + 39:33(mystruct) ConstantComposite 38 20 + 40: 32(int) Constant 3 + 41:33(mystruct) ConstantComposite 40 22 + 42: 35 ConstantComposite 39 41 + 43: 14(int) Constant 3 + 44: TypeArray 6(float) 43 + 45: TypePointer Function 44 + 47: 44 ConstantComposite 19 20 21 + 48: 32(int) Constant 0 + 49: TypePointer Private 6(float) + 52: 32(int) Constant 4 + 56: TypePointer Function 6(float) + 63: TypePointer Function 32(int) + 70: TypePointer Function 7(fvec4) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Store 18(g_array) 24 + Store 28(g_array_unused) 31 + Store 37(g_mystruct) 42 + Return + FunctionEnd +12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10 + 11(ps_output): 9(ptr) FunctionParameter + 13: Label + 46(l_array): 45(ptr) Variable Function + 64(idx): 63(ptr) Variable Function + Store 46(l_array) 47 + 50: 49(ptr) AccessChain 18(g_array) 48 + 51: 6(float) Load 50 + 53: 49(ptr) AccessChain 18(g_array) 52 + 54: 6(float) Load 53 + 55: 6(float) FAdd 51 54 + 57: 56(ptr) AccessChain 46(l_array) 38 + 58: 6(float) Load 57 + 59: 6(float) FAdd 55 58 + 60: 49(ptr) AccessChain 37(g_mystruct) 48 38 + 61: 6(float) Load 60 + 62: 6(float) FAdd 59 61 + 65: 32(int) Load 64(idx) + 66: 49(ptr) AccessChain 18(g_array) 65 + 67: 6(float) Load 66 + 68: 6(float) FAdd 62 67 + 69: 7(fvec4) CompositeConstruct 68 68 68 68 + 71: 70(ptr) AccessChain 11(ps_output) 48 + Store 71 69 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out new file mode 100644 index 0000000000..59f64c0e49 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.array.multidim.frag.out @@ -0,0 +1,224 @@ +hlsl.array.multidim.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 direct index ( temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 ( temp 4-component vector of float) +0:14 direct index ( temp float) +0:14 direct index ( temp 3-element array of float) +0:14 direct index ( temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure ( uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child ( temp 3-element array of 4-component vector of float) +0:15 direct index ( temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' ( temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index ( temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 Color: direct index for structure ( temp 4-component vector of float) +0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp 4-component vector of float) +0:18 direct index ( temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Branch: Return with expression +0:19 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:10 Color: direct index for structure ( temp 4-component vector of float) +0:10 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Constant: +0:10 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 direct index ( temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 ( temp 4-component vector of float) +0:14 direct index ( temp float) +0:14 direct index ( temp 3-element array of float) +0:14 direct index ( temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure ( uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child ( temp 3-element array of 4-component vector of float) +0:15 direct index ( temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' ( temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index ( temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 Color: direct index for structure ( temp 4-component vector of float) +0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp 4-component vector of float) +0:18 direct index ( temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' ( temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Branch: Return with expression +0:19 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:10 Color: direct index for structure ( temp 4-component vector of float) +0:10 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Constant: +0:10 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 54 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 18 "float4_array_1" + Name 27 "$Global" + MemberName 27($Global) 0 "float_array" + Name 29 "" + Name 40 "float4_array_2" + Name 46 "psout" + Name 54 "@entryPointOutput.Color" + Decorate 22 ArrayStride 16 + Decorate 24 ArrayStride 48 + Decorate 26 ArrayStride 192 + MemberDecorate 27($Global) 0 Offset 0 + Decorate 27($Global) Block + Decorate 29 DescriptorSet 0 + Decorate 54(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 7(fvec4) 13 + 15: 12(int) Constant 2 + 16: TypeArray 14 15 + 17: TypePointer Function 16 + 19: TypeInt 32 1 + 20: 19(int) Constant 1 + 21: 19(int) Constant 2 + 22: TypeArray 6(float) 13 + 23: 12(int) Constant 4 + 24: TypeArray 22 23 + 25: 12(int) Constant 5 + 26: TypeArray 24 25 + 27($Global): TypeStruct 26 + 28: TypePointer Uniform 27($Global) + 29: 28(ptr) Variable Uniform + 30: 19(int) Constant 0 + 31: 19(int) Constant 3 + 32: TypePointer Uniform 6(float) + 36: TypePointer Function 7(fvec4) + 38: TypeArray 14 25 + 39: TypePointer Function 38 + 41: TypePointer Function 14 + 45: TypePointer Function 8(PS_OUTPUT) + 53: TypePointer Output 7(fvec4) +54(@entryPointOutput.Color): 53(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 55:8(PS_OUTPUT) FunctionCall 10(@main() + 56: 7(fvec4) CompositeExtract 55 0 + Store 54(@entryPointOutput.Color) 56 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label +18(float4_array_1): 17(ptr) Variable Function +40(float4_array_2): 39(ptr) Variable Function + 46(psout): 45(ptr) Variable Function + 33: 32(ptr) AccessChain 29 30 21 31 20 + 34: 6(float) Load 33 + 35: 7(fvec4) CompositeConstruct 34 34 34 34 + 37: 36(ptr) AccessChain 18(float4_array_1) 20 21 + Store 37 35 + 42: 41(ptr) AccessChain 18(float4_array_1) 30 + 43: 14 Load 42 + 44: 41(ptr) AccessChain 40(float4_array_2) 20 + Store 44 43 + 47: 36(ptr) AccessChain 18(float4_array_1) 20 21 + 48: 7(fvec4) Load 47 + 49: 36(ptr) AccessChain 46(psout) 30 + Store 49 48 + 50:8(PS_OUTPUT) Load 46(psout) + ReturnValue 50 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.assoc.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.assoc.frag.out new file mode 100644 index 0000000000..562a863343 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.assoc.frag.out @@ -0,0 +1,245 @@ +hlsl.assoc.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 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) +0:8 'a3' ( in 4-component vector of float) +0:8 'a4' ( in 4-component vector of float) +0:8 'a5' ( in 4-component vector of float) +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a1' ( in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a2' ( in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a3' ( in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a4' ( in 4-component vector of float) +0:9 'a5' ( in 4-component vector of float) +0:10 Branch: Return with expression +0:10 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:10 'a1' ( in 4-component vector of float) +0:10 'a2' ( in 4-component vector of float) +0:10 'a3' ( in 4-component vector of float) +0:10 'a4' ( in 4-component vector of float) +0:10 'a5' ( in 4-component vector of float) +0:8 Function Definition: PixelShaderFunction( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a5' ( temp 4-component vector of float) +0:? 'a5' (layout( location=4) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? 'a5' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) +0:? 'a5' (layout( location=4) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 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) +0:8 'a3' ( in 4-component vector of float) +0:8 'a4' ( in 4-component vector of float) +0:8 'a5' ( in 4-component vector of float) +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a1' ( in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a2' ( in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a3' ( in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'a4' ( in 4-component vector of float) +0:9 'a5' ( in 4-component vector of float) +0:10 Branch: Return with expression +0:10 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:10 'a1' ( in 4-component vector of float) +0:10 'a2' ( in 4-component vector of float) +0:10 'a3' ( in 4-component vector of float) +0:10 'a4' ( in 4-component vector of float) +0:10 'a5' ( in 4-component vector of float) +0:8 Function Definition: PixelShaderFunction( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'a5' ( temp 4-component vector of float) +0:? 'a5' (layout( location=4) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? 'a5' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) +0:? 'a5' (layout( location=4) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 58 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 31 34 37 40 43 46 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 15 "@PixelShaderFunction(vf4;vf4;vf4;vf4;vf4;" + Name 10 "a1" + Name 11 "a2" + Name 12 "a3" + Name 13 "a4" + Name 14 "a5" + Name 29 "a1" + Name 31 "a1" + Name 33 "a2" + Name 34 "a2" + Name 36 "a3" + Name 37 "a3" + Name 39 "a4" + Name 40 "a4" + Name 42 "a5" + Name 43 "a5" + Name 46 "@entryPointOutput" + Name 47 "param" + Name 49 "param" + Name 51 "param" + Name 53 "param" + Name 55 "param" + Decorate 31(a1) Location 0 + Decorate 34(a2) Location 1 + Decorate 37(a3) Location 2 + Decorate 40(a4) Location 3 + Decorate 43(a5) Location 4 + Decorate 46(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 8(ptr) 8(ptr) 8(ptr) + 30: TypePointer Input 7(fvec4) + 31(a1): 30(ptr) Variable Input + 34(a2): 30(ptr) Variable Input + 37(a3): 30(ptr) Variable Input + 40(a4): 30(ptr) Variable Input + 43(a5): 30(ptr) Variable Input + 45: TypePointer Output 7(fvec4) +46(@entryPointOutput): 45(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 29(a1): 8(ptr) Variable Function + 33(a2): 8(ptr) Variable Function + 36(a3): 8(ptr) Variable Function + 39(a4): 8(ptr) Variable Function + 42(a5): 8(ptr) Variable Function + 47(param): 8(ptr) Variable Function + 49(param): 8(ptr) Variable Function + 51(param): 8(ptr) Variable Function + 53(param): 8(ptr) Variable Function + 55(param): 8(ptr) Variable Function + 32: 7(fvec4) Load 31(a1) + Store 29(a1) 32 + 35: 7(fvec4) Load 34(a2) + Store 33(a2) 35 + 38: 7(fvec4) Load 37(a3) + Store 36(a3) 38 + 41: 7(fvec4) Load 40(a4) + Store 39(a4) 41 + 44: 7(fvec4) Load 43(a5) + Store 42(a5) 44 + 48: 7(fvec4) Load 29(a1) + Store 47(param) 48 + 50: 7(fvec4) Load 33(a2) + Store 49(param) 50 + 52: 7(fvec4) Load 36(a3) + Store 51(param) 52 + 54: 7(fvec4) Load 39(a4) + Store 53(param) 54 + 56: 7(fvec4) Load 42(a5) + Store 55(param) 56 + 57: 7(fvec4) FunctionCall 15(@PixelShaderFunction(vf4;vf4;vf4;vf4;vf4;) 47(param) 49(param) 51(param) 53(param) 55(param) + Store 46(@entryPointOutput) 57 + Return + FunctionEnd +15(@PixelShaderFunction(vf4;vf4;vf4;vf4;vf4;): 7(fvec4) Function None 9 + 10(a1): 8(ptr) FunctionParameter + 11(a2): 8(ptr) FunctionParameter + 12(a3): 8(ptr) FunctionParameter + 13(a4): 8(ptr) FunctionParameter + 14(a5): 8(ptr) FunctionParameter + 16: Label + 17: 7(fvec4) Load 14(a5) + Store 13(a4) 17 + Store 12(a3) 17 + Store 11(a2) 17 + Store 10(a1) 17 + 18: 7(fvec4) Load 10(a1) + 19: 7(fvec4) Load 11(a2) + 20: 7(fvec4) FAdd 18 19 + 21: 7(fvec4) Load 12(a3) + 22: 7(fvec4) FAdd 20 21 + 23: 7(fvec4) Load 13(a4) + 24: 7(fvec4) FAdd 22 23 + 25: 7(fvec4) Load 14(a5) + 26: 7(fvec4) FAdd 24 25 + ReturnValue 26 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.attribute.expression.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.attribute.expression.comp.out new file mode 100644 index 0000000000..4bef5e764d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.attribute.expression.comp.out @@ -0,0 +1,152 @@ +hlsl.attribute.expression.comp +Shader version: 500 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: @main( ( temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'x' ( temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first: Unroll +0:11 Loop Condition +0:11 Compare Less Than ( temp bool) +0:11 'x' ( temp int) +0:11 bound: direct index for structure ( uniform int) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment ( temp int) +0:11 'x' ( temp int) +0:14 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:9 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked compute stage: + + +Shader version: 500 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: @main( ( temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'x' ( temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first: Unroll +0:11 Loop Condition +0:11 Compare Less Than ( temp bool) +0:11 'x' ( temp int) +0:11 bound: direct index for structure ( uniform int) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment ( temp int) +0:11 'x' ( temp int) +0:14 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:9 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 37 + ExecutionMode 4 LocalSize 4 6 8 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "x" + Name 21 "$Global" + MemberName 21($Global) 0 "bound" + Name 23 "" + Name 37 "@entryPointOutput" + MemberDecorate 21($Global) 0 Offset 0 + Decorate 21($Global) Block + Decorate 23 DescriptorSet 0 + Decorate 37(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 1 + 12: TypePointer Function 11(int) + 14: 11(int) Constant 0 + 21($Global): TypeStruct 11(int) + 22: TypePointer Uniform 21($Global) + 23: 22(ptr) Variable Uniform + 24: TypePointer Uniform 11(int) + 27: TypeBool + 30: 11(int) Constant 1 + 32: 6(float) Constant 0 + 33: 7(fvec4) ConstantComposite 32 32 32 32 + 36: TypePointer Output 7(fvec4) +37(@entryPointOutput): 36(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 38: 7(fvec4) FunctionCall 9(@main() + Store 37(@entryPointOutput) 38 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 13(x): 12(ptr) Variable Function + Store 13(x) 14 + Branch 15 + 15: Label + LoopMerge 17 18 Unroll + Branch 19 + 19: Label + 20: 11(int) Load 13(x) + 25: 24(ptr) AccessChain 23 14 + 26: 11(int) Load 25 + 28: 27(bool) SLessThan 20 26 + BranchConditional 28 16 17 + 16: Label + Branch 18 + 18: Label + 29: 11(int) Load 13(x) + 31: 11(int) IAdd 29 30 + Store 13(x) 31 + Branch 15 + 17: Label + ReturnValue 33 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.attribute.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.attribute.frag.out new file mode 100644 index 0000000000..44e963e0fd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.attribute.frag.out @@ -0,0 +1,99 @@ +hlsl.attribute.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:11 Test condition and select ( temp void): DontFlatten +0:11 Condition +0:11 Constant: +0:11 false (const bool) +0:11 true case is null +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:11 Test condition and select ( temp void): DontFlatten +0:11 Condition +0:11 Constant: +0:11 false (const bool) +0:11 true case is null +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 19 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 17 "input" + Name 19 "input" + Name 21 "param" + Decorate 19(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 13: TypeBool + 14: 13(bool) ConstantFalse + 18: TypePointer Input 7(fvec4) + 19(input): 18(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 17(input): 8(ptr) Variable Function + 21(param): 8(ptr) Variable Function + 20: 7(fvec4) Load 19(input) + Store 17(input) 20 + 22: 7(fvec4) Load 17(input) + Store 21(param) 22 + 23: 2 FunctionCall 11(@PixelShaderFunction(vf4;) 21(param) + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 2 Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + SelectionMerge 16 DontFlatten + BranchConditional 14 15 16 + 15: Label + Branch 16 + 16: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.attributeC11.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.attributeC11.frag.out new file mode 100644 index 0000000000..becb500639 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.attributeC11.frag.out @@ -0,0 +1,193 @@ +hlsl.attributeC11.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 'input' ( in 4-component vector of float) +0:? Sequence +0:21 Branch: Return with expression +0:21 add ( temp 4-component vector of float) +0:21 'input' ( in 4-component vector of float) +0:21 textureFetch ( temp 4-component vector of float) +0:21 'attach' ( uniform texture2D) +0:21 vector swizzle ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 0 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 direct index ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=8) in 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) +0:20 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) +0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) +0:? 'attach' ( uniform texture2D) +0:? 'ci' ( specialization-constant const int) +0:? 11 (const int) +0:? 'anon@0' (layout( row_major std430 push_constant) uniform block{layout( row_major std430 offset=0) uniform int a}) +0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) +0:? 'input' (layout( location=8) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 'input' ( in 4-component vector of float) +0:? Sequence +0:21 Branch: Return with expression +0:21 add ( temp 4-component vector of float) +0:21 'input' ( in 4-component vector of float) +0:21 textureFetch ( temp 4-component vector of float) +0:21 'attach' ( uniform texture2D) +0:21 vector swizzle ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 0 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 direct index ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=8) in 4-component vector of float) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) +0:20 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'buffer1' (layout( set=0 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) +0:? 'buffer3' (layout( set=2 binding=3 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 2-component vector of float f} @data}) +0:? 'attach' ( uniform texture2D) +0:? 'ci' ( specialization-constant const int) +0:? 11 (const int) +0:? 'anon@0' (layout( row_major std430 push_constant) uniform block{layout( row_major std430 offset=0) uniform int a}) +0:? '@entryPointOutput' (layout( location=7) out 4-component vector of float) +0:? 'input' (layout( location=8) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 51 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 36 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "input" + Name 16 "attach" + Name 31 "input" + Name 33 "input" + Name 36 "@entryPointOutput" + Name 37 "param" + Name 41 "S" + MemberName 41(S) 0 "f" + Name 43 "buffer1" + MemberName 43(buffer1) 0 "@data" + Name 45 "buffer1" + Name 46 "buffer3" + Name 47 "ci" + Name 48 "pcBuf" + MemberName 48(pcBuf) 0 "a" + Name 50 "" + Decorate 16(attach) DescriptorSet 0 + Decorate 16(attach) InputAttachmentIndex 4 + Decorate 33(input) Location 8 + Decorate 36(@entryPointOutput) Location 7 + MemberDecorate 41(S) 0 Offset 0 + Decorate 42 ArrayStride 8 + MemberDecorate 43(buffer1) 0 NonWritable + MemberDecorate 43(buffer1) 0 Offset 0 + Decorate 43(buffer1) BufferBlock + Decorate 45(buffer1) DescriptorSet 0 + Decorate 45(buffer1) Binding 1 + Decorate 46(buffer3) DescriptorSet 2 + Decorate 46(buffer3) Binding 3 + Decorate 47(ci) SpecId 13 + MemberDecorate 48(pcBuf) 0 Offset 0 + Decorate 48(pcBuf) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(attach): 15(ptr) Variable UniformConstant + 18: TypeInt 32 1 + 19: TypeVector 18(int) 2 + 20: 18(int) Constant 0 + 21: 19(ivec2) ConstantComposite 20 20 + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 25: 22(int) Constant 1 + 32: TypePointer Input 7(fvec4) + 33(input): 32(ptr) Variable Input + 35: TypePointer Output 7(fvec4) +36(@entryPointOutput): 35(ptr) Variable Output + 40: TypeVector 6(float) 2 + 41(S): TypeStruct 40(fvec2) + 42: TypeRuntimeArray 41(S) + 43(buffer1): TypeStruct 42 + 44: TypePointer Uniform 43(buffer1) + 45(buffer1): 44(ptr) Variable Uniform + 46(buffer3): 44(ptr) Variable Uniform + 47(ci): 18(int) SpecConstant 11 + 48(pcBuf): TypeStruct 18(int) + 49: TypePointer PushConstant 48(pcBuf) + 50: 49(ptr) Variable PushConstant + 4(main): 2 Function None 3 + 5: Label + 31(input): 8(ptr) Variable Function + 37(param): 8(ptr) Variable Function + 34: 7(fvec4) Load 33(input) + Store 31(input) 34 + 38: 7(fvec4) Load 31(input) + Store 37(param) 38 + 39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param) + Store 36(@entryPointOutput) 39 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13: 7(fvec4) Load 10(input) + 17: 14 Load 16(attach) + 24: 18(int) CompositeExtract 21 0 + 26: 18(int) CompositeExtract 21 1 + 27: 7(fvec4) ImageFetch 17 24 Lod 26 + 28: 7(fvec4) FAdd 13 27 + ReturnValue 28 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out new file mode 100644 index 0000000000..e3784473f8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out @@ -0,0 +1,109 @@ +hlsl.attributeGlobalBuffer.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: @main( ( temp 4-component vector of float) +0:6 Function Parameters: +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp 4-component vector of float) +0:7 u1: direct index for structure ( uniform 4-component vector of float) +0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) +0:7 Constant: +0:7 0 (const uint) +0:7 u2: direct index for structure ( uniform 4-component vector of float) +0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) +0:7 Constant: +0:7 1 (const uint) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: @main( ( temp 4-component vector of float) +0:6 Function Parameters: +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp 4-component vector of float) +0:7 u1: direct index for structure ( uniform 4-component vector of float) +0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) +0:7 Constant: +0:7 0 (const uint) +0:7 u2: direct index for structure ( uniform 4-component vector of float) +0:7 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) +0:7 Constant: +0:7 1 (const uint) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( set=2 binding=5 row_major std140) uniform block{ uniform 4-component vector of float u1, uniform 4-component vector of float u2}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 28 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 26 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 11 "$Global" + MemberName 11($Global) 0 "u1" + MemberName 11($Global) 1 "u2" + Name 13 "" + Name 26 "@entryPointOutput" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 2 + Decorate 13 Binding 5 + Decorate 26(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11($Global): TypeStruct 7(fvec4) 7(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Uniform 7(fvec4) + 19: 14(int) Constant 1 + 25: TypePointer Output 7(fvec4) +26(@entryPointOutput): 25(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 27: 7(fvec4) FunctionCall 9(@main() + Store 26(@entryPointOutput) 27 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 17: 16(ptr) AccessChain 13 15 + 18: 7(fvec4) Load 17 + 20: 16(ptr) AccessChain 13 19 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 18 21 + ReturnValue 22 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.automap.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.automap.frag.out new file mode 100644 index 0000000000..7664bf6492 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.automap.frag.out @@ -0,0 +1,29 @@ +hlsl.automap.frag +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 11 +t2: offset -1, type 8b5e, size 1, index -1, binding 12 +t3: offset -1, type 8b5f, size 1, index -1, binding 13 +t4.@data: offset 0, type 8b52, size 1, index 0, binding -1 +t5.@data: offset 0, type 1405, size 0, index 1, binding -1 +t6: offset -1, type 8dc2, size 1, index -1, binding 16 +s1: offset -1, type 0, size 1, index -1, binding 31 +s2: offset -1, type 0, size 1, index -1, binding 32 +u1: offset -1, type 904c, size 1, index -1, binding 41 +u2: offset -1, type 904d, size 1, index -1, binding 42 +u3: offset -1, type 904e, size 1, index -1, binding 43 +u4: offset -1, type 9051, size 1, index -1, binding 44 +u5.@data: offset 0, type 1405, size 0, index 2, binding -1 +u6.@data: offset 0, type 1406, size 1, index 3, binding -1 +cb1: offset 0, type 1404, size 1, index 4, binding -1 +tb1: offset 0, type 1404, size 1, index 5, binding -1 + +Uniform block reflection: +t4: offset -1, type ffffffff, size 0, index -1, binding 14 +t5: offset -1, type ffffffff, size 0, index -1, binding 15 +u5: offset -1, type ffffffff, size 0, index -1, binding 45 +u6: offset -1, type ffffffff, size 0, index -1, binding 46 +cb: offset -1, type ffffffff, size 4, index -1, binding 51 +tb: offset -1, type ffffffff, size 4, index -1, binding 17 + +Vertex attribute reflection: + diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out new file mode 100644 index 0000000000..d84642e9a4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.basic.comp.out @@ -0,0 +1,132 @@ +hlsl.basic.comp +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: @main(i1;i1; ( temp void) +0:4 Function Parameters: +0:4 'dti' ( in int) +0:4 'gti' ( in int) +0:? Sequence +0:5 subtract ( temp int) +0:5 'dti' ( in int) +0:5 'gti' ( in int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp int) +0:? 'dti' ( temp int) +0:? Construct int ( temp int) +0:? 'dti' ( in 3-component vector of int GlobalInvocationID) +0:4 move second child to first child ( temp int) +0:? 'gti' ( temp int) +0:? Construct int ( temp int) +0:? 'gti' ( in 3-component vector of int LocalInvocationID) +0:4 Function Call: @main(i1;i1; ( temp void) +0:? 'dti' ( temp int) +0:? 'gti' ( temp int) +0:? Linker Objects +0:? 'a' ( shared 100-element array of 4-component vector of float) +0:? 'dti' ( in 3-component vector of int GlobalInvocationID) +0:? 'gti' ( in 3-component vector of int LocalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: @main(i1;i1; ( temp void) +0:4 Function Parameters: +0:4 'dti' ( in int) +0:4 'gti' ( in int) +0:? Sequence +0:5 subtract ( temp int) +0:5 'dti' ( in int) +0:5 'gti' ( in int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp int) +0:? 'dti' ( temp int) +0:? Construct int ( temp int) +0:? 'dti' ( in 3-component vector of int GlobalInvocationID) +0:4 move second child to first child ( temp int) +0:? 'gti' ( temp int) +0:? Construct int ( temp int) +0:? 'gti' ( in 3-component vector of int LocalInvocationID) +0:4 Function Call: @main(i1;i1; ( temp void) +0:? 'dti' ( temp int) +0:? 'gti' ( temp int) +0:? Linker Objects +0:? 'a' ( shared 100-element array of 4-component vector of float) +0:? 'dti' ( in 3-component vector of int GlobalInvocationID) +0:? 'gti' ( in 3-component vector of int LocalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 38 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 19 23 + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(i1;i1;" + Name 9 "dti" + Name 10 "gti" + Name 16 "dti" + Name 19 "dti" + Name 22 "gti" + Name 23 "gti" + Name 26 "param" + Name 28 "param" + Name 37 "a" + Decorate 19(dti) BuiltIn GlobalInvocationId + Decorate 23(gti) BuiltIn LocalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 2 7(ptr) 7(ptr) + 17: TypeVector 6(int) 3 + 18: TypePointer Input 17(ivec3) + 19(dti): 18(ptr) Variable Input + 23(gti): 18(ptr) Variable Input + 31: TypeFloat 32 + 32: TypeVector 31(float) 4 + 33: TypeInt 32 0 + 34: 33(int) Constant 100 + 35: TypeArray 32(fvec4) 34 + 36: TypePointer Workgroup 35 + 37(a): 36(ptr) Variable Workgroup + 4(main): 2 Function None 3 + 5: Label + 16(dti): 7(ptr) Variable Function + 22(gti): 7(ptr) Variable Function + 26(param): 7(ptr) Variable Function + 28(param): 7(ptr) Variable Function + 20: 17(ivec3) Load 19(dti) + 21: 6(int) CompositeExtract 20 0 + Store 16(dti) 21 + 24: 17(ivec3) Load 23(gti) + 25: 6(int) CompositeExtract 24 0 + Store 22(gti) 25 + 27: 6(int) Load 16(dti) + Store 26(param) 27 + 29: 6(int) Load 22(gti) + Store 28(param) 29 + 30: 2 FunctionCall 11(@main(i1;i1;) 26(param) 28(param) + Return + FunctionEnd +11(@main(i1;i1;): 2 Function None 8 + 9(dti): 7(ptr) FunctionParameter + 10(gti): 7(ptr) FunctionParameter + 12: Label + 13: 6(int) Load 9(dti) + 14: 6(int) Load 10(gti) + 15: 6(int) ISub 13 14 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.basic.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.basic.geom.out new file mode 100644 index 0000000000..f4116d4e81 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.basic.geom.out @@ -0,0 +1,309 @@ +hlsl.basic.geom +Shader version: 500 +invocations = -1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void) +0:16 Function Parameters: +0:16 'VertexID' ( in 3-element array of uint) +0:16 'test' ( in 3-element array of uint) +0:16 'OutputStream' ( out structure{ temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child ( temp float) +0:19 myfloat: direct index for structure ( temp float) +0:19 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float ( temp float) +0:19 add ( temp uint) +0:19 add ( temp uint) +0:19 direct index ( temp uint) +0:19 'test' ( in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp uint) +0:19 'test' ( in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index ( temp uint) +0:19 'test' ( in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child ( temp int) +0:20 something: direct index for structure ( temp int) +0:20 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int ( temp int) +0:20 direct index ( temp uint) +0:20 'VertexID' ( in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:? 'OutputStream.myfloat' (layout( location=0) out float) +0:22 myfloat: direct index for structure ( temp float) +0:22 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp int) +0:? 'OutputStream.something' (layout( location=1) out int) +0:22 something: direct index for structure ( temp int) +0:22 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:22 Constant: +0:22 1 (const int) +0:22 EmitVertex ( temp void) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp float) +0:? 'OutputStream.myfloat' (layout( location=0) out float) +0:23 myfloat: direct index for structure ( temp float) +0:23 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:23 Constant: +0:23 0 (const int) +0:23 move second child to first child ( temp int) +0:? 'OutputStream.something' (layout( location=1) out int) +0:23 something: direct index for structure ( temp int) +0:23 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:23 Constant: +0:23 1 (const int) +0:23 EmitVertex ( temp void) +0:24 EndPrimitive ( temp void) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:16 move second child to first child ( temp 3-element array of uint) +0:? 'test' ( temp 3-element array of uint) +0:? 'test' (layout( location=1) in 3-element array of uint) +0:16 Function Call: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'test' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp float myfloat, temp int something}) +0:? Linker Objects +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'test' (layout( location=1) in 3-element array of uint) +0:? 'OutputStream.myfloat' (layout( location=0) out float) +0:? 'OutputStream.something' (layout( location=1) out int) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void) +0:16 Function Parameters: +0:16 'VertexID' ( in 3-element array of uint) +0:16 'test' ( in 3-element array of uint) +0:16 'OutputStream' ( out structure{ temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child ( temp float) +0:19 myfloat: direct index for structure ( temp float) +0:19 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float ( temp float) +0:19 add ( temp uint) +0:19 add ( temp uint) +0:19 direct index ( temp uint) +0:19 'test' ( in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp uint) +0:19 'test' ( in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index ( temp uint) +0:19 'test' ( in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child ( temp int) +0:20 something: direct index for structure ( temp int) +0:20 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int ( temp int) +0:20 direct index ( temp uint) +0:20 'VertexID' ( in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:? 'OutputStream.myfloat' (layout( location=0) out float) +0:22 myfloat: direct index for structure ( temp float) +0:22 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp int) +0:? 'OutputStream.something' (layout( location=1) out int) +0:22 something: direct index for structure ( temp int) +0:22 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:22 Constant: +0:22 1 (const int) +0:22 EmitVertex ( temp void) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp float) +0:? 'OutputStream.myfloat' (layout( location=0) out float) +0:23 myfloat: direct index for structure ( temp float) +0:23 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:23 Constant: +0:23 0 (const int) +0:23 move second child to first child ( temp int) +0:? 'OutputStream.something' (layout( location=1) out int) +0:23 something: direct index for structure ( temp int) +0:23 'Vert' ( temp structure{ temp float myfloat, temp int something}) +0:23 Constant: +0:23 1 (const int) +0:23 EmitVertex ( temp void) +0:24 EndPrimitive ( temp void) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:16 move second child to first child ( temp 3-element array of uint) +0:? 'test' ( temp 3-element array of uint) +0:? 'test' (layout( location=1) in 3-element array of uint) +0:16 Function Call: @main(u1[3];u1[3];struct-PSInput-f1-i11; ( temp void) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'test' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp float myfloat, temp int something}) +0:? Linker Objects +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'test' (layout( location=1) in 3-element array of uint) +0:? 'OutputStream.myfloat' (layout( location=0) out float) +0:? 'OutputStream.something' (layout( location=1) out int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 68 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 42 46 55 58 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 4 + Source HLSL 500 + Name 4 "main" + Name 12 "PSInput" + MemberName 12(PSInput) 0 "myfloat" + MemberName 12(PSInput) 1 "something" + Name 18 "@main(u1[3];u1[3];struct-PSInput-f1-i11;" + Name 15 "VertexID" + Name 16 "test" + Name 17 "OutputStream" + Name 20 "Vert" + Name 42 "OutputStream.myfloat" + Name 46 "OutputStream.something" + Name 53 "VertexID" + Name 55 "VertexID" + Name 57 "test" + Name 58 "test" + Name 60 "OutputStream" + Name 61 "param" + Name 63 "param" + Name 65 "param" + Decorate 42(OutputStream.myfloat) Location 0 + Decorate 46(OutputStream.something) Location 1 + Decorate 55(VertexID) Location 0 + Decorate 58(test) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 3 + 8: TypeArray 6(int) 7 + 9: TypePointer Function 8 + 10: TypeFloat 32 + 11: TypeInt 32 1 + 12(PSInput): TypeStruct 10(float) 11(int) + 13: TypePointer Function 12(PSInput) + 14: TypeFunction 2 9(ptr) 9(ptr) 13(ptr) + 21: 11(int) Constant 0 + 22: TypePointer Function 6(int) + 25: 11(int) Constant 1 + 29: 11(int) Constant 2 + 34: TypePointer Function 10(float) + 39: TypePointer Function 11(int) + 41: TypePointer Output 10(float) +42(OutputStream.myfloat): 41(ptr) Variable Output + 45: TypePointer Output 11(int) +46(OutputStream.something): 45(ptr) Variable Output + 54: TypePointer Input 8 + 55(VertexID): 54(ptr) Variable Input + 58(test): 54(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 53(VertexID): 9(ptr) Variable Function + 57(test): 9(ptr) Variable Function +60(OutputStream): 13(ptr) Variable Function + 61(param): 9(ptr) Variable Function + 63(param): 9(ptr) Variable Function + 65(param): 13(ptr) Variable Function + 56: 8 Load 55(VertexID) + Store 53(VertexID) 56 + 59: 8 Load 58(test) + Store 57(test) 59 + 62: 8 Load 53(VertexID) + Store 61(param) 62 + 64: 8 Load 57(test) + Store 63(param) 64 + 66: 2 FunctionCall 18(@main(u1[3];u1[3];struct-PSInput-f1-i11;) 61(param) 63(param) 65(param) + 67: 12(PSInput) Load 65(param) + Store 60(OutputStream) 67 + Return + FunctionEnd +18(@main(u1[3];u1[3];struct-PSInput-f1-i11;): 2 Function None 14 + 15(VertexID): 9(ptr) FunctionParameter + 16(test): 9(ptr) FunctionParameter +17(OutputStream): 13(ptr) FunctionParameter + 19: Label + 20(Vert): 13(ptr) Variable Function + 23: 22(ptr) AccessChain 16(test) 21 + 24: 6(int) Load 23 + 26: 22(ptr) AccessChain 16(test) 25 + 27: 6(int) Load 26 + 28: 6(int) IAdd 24 27 + 30: 22(ptr) AccessChain 16(test) 29 + 31: 6(int) Load 30 + 32: 6(int) IAdd 28 31 + 33: 10(float) ConvertUToF 32 + 35: 34(ptr) AccessChain 20(Vert) 21 + Store 35 33 + 36: 22(ptr) AccessChain 15(VertexID) 21 + 37: 6(int) Load 36 + 38: 11(int) Bitcast 37 + 40: 39(ptr) AccessChain 20(Vert) 25 + Store 40 38 + 43: 34(ptr) AccessChain 20(Vert) 21 + 44: 10(float) Load 43 + Store 42(OutputStream.myfloat) 44 + 47: 39(ptr) AccessChain 20(Vert) 25 + 48: 11(int) Load 47 + Store 46(OutputStream.something) 48 + EmitVertex + 49: 34(ptr) AccessChain 20(Vert) 21 + 50: 10(float) Load 49 + Store 42(OutputStream.myfloat) 50 + 51: 39(ptr) AccessChain 20(Vert) 25 + 52: 11(int) Load 51 + Store 46(OutputStream.something) 52 + EmitVertex + EndPrimitive + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.boolConv.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.boolConv.vert.out new file mode 100644 index 0000000000..d88955fae2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.boolConv.vert.out @@ -0,0 +1,333 @@ +hlsl.boolConv.vert +Shader version: 500 +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp bool) +0:1 'b' ( global bool) +0:1 Constant: +0:1 true (const bool) +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp int) +0:4 'r' ( temp int) +0:4 Constant: +0:4 0 (const int) +0:6 add second child into first child ( temp int) +0:6 'r' ( temp int) +0:6 add ( temp int) +0:6 Convert bool to int ( temp int) +0:6 'a' ( global bool) +0:6 Convert bool to int ( temp int) +0:6 'b' ( global bool) +0:7 add second child into first child ( temp int) +0:7 'r' ( temp int) +0:7 subtract ( temp int) +0:7 Convert bool to int ( temp int) +0:7 'a' ( global bool) +0:7 Convert bool to int ( temp int) +0:7 'b' ( global bool) +0:8 add second child into first child ( temp int) +0:8 'r' ( temp int) +0:8 component-wise multiply ( temp int) +0:8 Convert bool to int ( temp int) +0:8 'a' ( global bool) +0:8 Convert bool to int ( temp int) +0:8 'b' ( global bool) +0:9 add second child into first child ( temp int) +0:9 'r' ( temp int) +0:9 divide ( temp int) +0:9 Convert bool to int ( temp int) +0:9 'a' ( global bool) +0:9 Convert bool to int ( temp int) +0:9 'b' ( global bool) +0:10 add second child into first child ( temp int) +0:10 'r' ( temp int) +0:10 mod ( temp int) +0:10 Convert bool to int ( temp int) +0:10 'a' ( global bool) +0:10 Convert bool to int ( temp int) +0:10 'b' ( global bool) +0:12 add second child into first child ( temp int) +0:12 'r' ( temp int) +0:12 bitwise and ( temp int) +0:12 Convert bool to int ( temp int) +0:12 'a' ( global bool) +0:12 Convert bool to int ( temp int) +0:12 'b' ( global bool) +0:13 add second child into first child ( temp int) +0:13 'r' ( temp int) +0:13 inclusive-or ( temp int) +0:13 Convert bool to int ( temp int) +0:13 'a' ( global bool) +0:13 Convert bool to int ( temp int) +0:13 'b' ( global bool) +0:14 add second child into first child ( temp int) +0:14 'r' ( temp int) +0:14 exclusive-or ( temp int) +0:14 Convert bool to int ( temp int) +0:14 'a' ( global bool) +0:14 Convert bool to int ( temp int) +0:14 'b' ( global bool) +0:16 add second child into first child ( temp int) +0:16 'r' ( temp int) +0:16 left-shift ( temp int) +0:16 Convert bool to int ( temp int) +0:16 'a' ( global bool) +0:16 Convert bool to int ( temp int) +0:16 'b' ( global bool) +0:17 add second child into first child ( temp int) +0:17 'r' ( temp int) +0:17 right-shift ( temp int) +0:17 Convert bool to int ( temp int) +0:17 'a' ( global bool) +0:17 Convert bool to int ( temp int) +0:17 'b' ( global bool) +0:19 Branch: Return with expression +0:19 Construct vec4 ( temp 4-component vector of float) +0:19 Convert int to float ( temp float) +0:19 'r' ( temp int) +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'a' ( global bool) +0:? 'b' ( global bool) +0:? '@entryPointOutput' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp bool) +0:1 'b' ( global bool) +0:1 Constant: +0:1 true (const bool) +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp int) +0:4 'r' ( temp int) +0:4 Constant: +0:4 0 (const int) +0:6 add second child into first child ( temp int) +0:6 'r' ( temp int) +0:6 add ( temp int) +0:6 Convert bool to int ( temp int) +0:6 'a' ( global bool) +0:6 Convert bool to int ( temp int) +0:6 'b' ( global bool) +0:7 add second child into first child ( temp int) +0:7 'r' ( temp int) +0:7 subtract ( temp int) +0:7 Convert bool to int ( temp int) +0:7 'a' ( global bool) +0:7 Convert bool to int ( temp int) +0:7 'b' ( global bool) +0:8 add second child into first child ( temp int) +0:8 'r' ( temp int) +0:8 component-wise multiply ( temp int) +0:8 Convert bool to int ( temp int) +0:8 'a' ( global bool) +0:8 Convert bool to int ( temp int) +0:8 'b' ( global bool) +0:9 add second child into first child ( temp int) +0:9 'r' ( temp int) +0:9 divide ( temp int) +0:9 Convert bool to int ( temp int) +0:9 'a' ( global bool) +0:9 Convert bool to int ( temp int) +0:9 'b' ( global bool) +0:10 add second child into first child ( temp int) +0:10 'r' ( temp int) +0:10 mod ( temp int) +0:10 Convert bool to int ( temp int) +0:10 'a' ( global bool) +0:10 Convert bool to int ( temp int) +0:10 'b' ( global bool) +0:12 add second child into first child ( temp int) +0:12 'r' ( temp int) +0:12 bitwise and ( temp int) +0:12 Convert bool to int ( temp int) +0:12 'a' ( global bool) +0:12 Convert bool to int ( temp int) +0:12 'b' ( global bool) +0:13 add second child into first child ( temp int) +0:13 'r' ( temp int) +0:13 inclusive-or ( temp int) +0:13 Convert bool to int ( temp int) +0:13 'a' ( global bool) +0:13 Convert bool to int ( temp int) +0:13 'b' ( global bool) +0:14 add second child into first child ( temp int) +0:14 'r' ( temp int) +0:14 exclusive-or ( temp int) +0:14 Convert bool to int ( temp int) +0:14 'a' ( global bool) +0:14 Convert bool to int ( temp int) +0:14 'b' ( global bool) +0:16 add second child into first child ( temp int) +0:16 'r' ( temp int) +0:16 left-shift ( temp int) +0:16 Convert bool to int ( temp int) +0:16 'a' ( global bool) +0:16 Convert bool to int ( temp int) +0:16 'b' ( global bool) +0:17 add second child into first child ( temp int) +0:17 'r' ( temp int) +0:17 right-shift ( temp int) +0:17 Convert bool to int ( temp int) +0:17 'a' ( global bool) +0:17 Convert bool to int ( temp int) +0:17 'b' ( global bool) +0:19 Branch: Return with expression +0:19 Construct vec4 ( temp 4-component vector of float) +0:19 Convert int to float ( temp float) +0:19 'r' ( temp int) +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'a' ( global bool) +0:? 'b' ( global bool) +0:? '@entryPointOutput' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 99 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 97 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "b" + Name 17 "r" + Name 19 "a" + Name 97 "@entryPointOutput" + Decorate 97(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeBool + 12: TypePointer Private 11(bool) + 13(b): 12(ptr) Variable Private + 14: 11(bool) ConstantTrue + 15: TypeInt 32 1 + 16: TypePointer Function 15(int) + 18: 15(int) Constant 0 + 19(a): 12(ptr) Variable Private + 21: 15(int) Constant 1 + 96: TypePointer Output 7(fvec4) +97(@entryPointOutput): 96(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Store 13(b) 14 + 98: 7(fvec4) FunctionCall 9(@main() + Store 97(@entryPointOutput) 98 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 17(r): 16(ptr) Variable Function + Store 17(r) 18 + 20: 11(bool) Load 19(a) + 22: 15(int) Select 20 21 18 + 23: 11(bool) Load 13(b) + 24: 15(int) Select 23 21 18 + 25: 15(int) IAdd 22 24 + 26: 15(int) Load 17(r) + 27: 15(int) IAdd 26 25 + Store 17(r) 27 + 28: 11(bool) Load 19(a) + 29: 15(int) Select 28 21 18 + 30: 11(bool) Load 13(b) + 31: 15(int) Select 30 21 18 + 32: 15(int) ISub 29 31 + 33: 15(int) Load 17(r) + 34: 15(int) IAdd 33 32 + Store 17(r) 34 + 35: 11(bool) Load 19(a) + 36: 15(int) Select 35 21 18 + 37: 11(bool) Load 13(b) + 38: 15(int) Select 37 21 18 + 39: 15(int) IMul 36 38 + 40: 15(int) Load 17(r) + 41: 15(int) IAdd 40 39 + Store 17(r) 41 + 42: 11(bool) Load 19(a) + 43: 15(int) Select 42 21 18 + 44: 11(bool) Load 13(b) + 45: 15(int) Select 44 21 18 + 46: 15(int) SDiv 43 45 + 47: 15(int) Load 17(r) + 48: 15(int) IAdd 47 46 + Store 17(r) 48 + 49: 11(bool) Load 19(a) + 50: 15(int) Select 49 21 18 + 51: 11(bool) Load 13(b) + 52: 15(int) Select 51 21 18 + 53: 15(int) SMod 50 52 + 54: 15(int) Load 17(r) + 55: 15(int) IAdd 54 53 + Store 17(r) 55 + 56: 11(bool) Load 19(a) + 57: 15(int) Select 56 21 18 + 58: 11(bool) Load 13(b) + 59: 15(int) Select 58 21 18 + 60: 15(int) BitwiseAnd 57 59 + 61: 15(int) Load 17(r) + 62: 15(int) IAdd 61 60 + Store 17(r) 62 + 63: 11(bool) Load 19(a) + 64: 15(int) Select 63 21 18 + 65: 11(bool) Load 13(b) + 66: 15(int) Select 65 21 18 + 67: 15(int) BitwiseOr 64 66 + 68: 15(int) Load 17(r) + 69: 15(int) IAdd 68 67 + Store 17(r) 69 + 70: 11(bool) Load 19(a) + 71: 15(int) Select 70 21 18 + 72: 11(bool) Load 13(b) + 73: 15(int) Select 72 21 18 + 74: 15(int) BitwiseXor 71 73 + 75: 15(int) Load 17(r) + 76: 15(int) IAdd 75 74 + Store 17(r) 76 + 77: 11(bool) Load 19(a) + 78: 15(int) Select 77 21 18 + 79: 11(bool) Load 13(b) + 80: 15(int) Select 79 21 18 + 81: 15(int) ShiftLeftLogical 78 80 + 82: 15(int) Load 17(r) + 83: 15(int) IAdd 82 81 + Store 17(r) 83 + 84: 11(bool) Load 19(a) + 85: 15(int) Select 84 21 18 + 86: 11(bool) Load 13(b) + 87: 15(int) Select 86 21 18 + 88: 15(int) ShiftRightArithmetic 85 87 + 89: 15(int) Load 17(r) + 90: 15(int) IAdd 89 88 + Store 17(r) 90 + 91: 15(int) Load 17(r) + 92: 6(float) ConvertSToF 91 + 93: 7(fvec4) CompositeConstruct 92 92 92 92 + ReturnValue 93 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out new file mode 100644 index 0000000000..8d2c514736 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.buffer.frag.out @@ -0,0 +1,323 @@ +hlsl.buffer.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:30 Function Definition: foo( ( temp float) +0:30 Function Parameters: +0:? Sequence +0:31 Branch: Return with expression +0:31 Constant: +0:31 1.000000 +0:43 Function Definition: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a}) +0:43 Function Parameters: +0:43 'input' ( in 4-component vector of float) +0:? Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 a: direct index for structure ( temp 4-component vector of float) +0:45 'ret' ( temp structure{ temp 4-component vector of float a}) +0:45 Constant: +0:45 0 (const int) +0:45 add ( temp 4-component vector of float) +0:45 v24: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:45 'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24}) +0:45 Constant: +0:45 0 (const uint) +0:45 vector-scale ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 'input' ( in 4-component vector of float) +0:45 v1: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1}) +0:45 Constant: +0:45 0 (const uint) +0:45 v2: direct index for structure (layout( row_major std430) buffer 4-component vector of float) +0:45 'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2}) +0:45 Constant: +0:45 0 (const uint) +0:45 v3: direct index for structure (layout( row_major std140 offset=0) uniform 4-component vector of float) +0:45 'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3}) +0:45 Constant: +0:45 0 (const uint) +0:45 v4: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float) +0:45 'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4}) +0:45 Constant: +0:45 0 (const uint) +0:45 Function Call: foo( ( temp float) +0:46 Branch: Return with expression +0:46 'ret' ( temp structure{ temp 4-component vector of float a}) +0:43 Function Definition: PixelShaderFunction( ( temp void) +0:43 Function Parameters: +0:? Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' ( in 4-component vector of float FragCoord) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.a' (layout( location=0) out 4-component vector of float) +0:43 a: direct index for structure ( temp 4-component vector of float) +0:43 Function Call: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a}) +0:? 'input' ( temp 4-component vector of float) +0:43 Constant: +0:43 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3}) +0:? 'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4}) +0:? 'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24}) +0:? '@entryPointOutput.a' (layout( location=0) out 4-component vector of float) +0:? 'input' ( in 4-component vector of float FragCoord) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:30 Function Definition: foo( ( temp float) +0:30 Function Parameters: +0:? Sequence +0:31 Branch: Return with expression +0:31 Constant: +0:31 1.000000 +0:43 Function Definition: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a}) +0:43 Function Parameters: +0:43 'input' ( in 4-component vector of float) +0:? Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 a: direct index for structure ( temp 4-component vector of float) +0:45 'ret' ( temp structure{ temp 4-component vector of float a}) +0:45 Constant: +0:45 0 (const int) +0:45 add ( temp 4-component vector of float) +0:45 v24: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:45 'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24}) +0:45 Constant: +0:45 0 (const uint) +0:45 vector-scale ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 add ( temp 4-component vector of float) +0:45 'input' ( in 4-component vector of float) +0:45 v1: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1}) +0:45 Constant: +0:45 0 (const uint) +0:45 v2: direct index for structure (layout( row_major std430) buffer 4-component vector of float) +0:45 'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2}) +0:45 Constant: +0:45 0 (const uint) +0:45 v3: direct index for structure (layout( row_major std140 offset=0) uniform 4-component vector of float) +0:45 'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3}) +0:45 Constant: +0:45 0 (const uint) +0:45 v4: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float) +0:45 'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4}) +0:45 Constant: +0:45 0 (const uint) +0:45 Function Call: foo( ( temp float) +0:46 Branch: Return with expression +0:46 'ret' ( temp structure{ temp 4-component vector of float a}) +0:43 Function Definition: PixelShaderFunction( ( temp void) +0:43 Function Parameters: +0:? Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' ( in 4-component vector of float FragCoord) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.a' (layout( location=0) out 4-component vector of float) +0:43 a: direct index for structure ( temp 4-component vector of float) +0:43 Function Call: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a}) +0:? 'input' ( temp 4-component vector of float) +0:43 Constant: +0:43 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3}) +0:? 'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4}) +0:? 'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24}) +0:? '@entryPointOutput.a' (layout( location=0) out 4-component vector of float) +0:? 'input' ( in 4-component vector of float FragCoord) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 73 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 65 68 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 8 "foo(" + Name 12 "id" + MemberName 12(id) 0 "a" + Name 15 "@PixelShaderFunction(vf4;" + Name 14 "input" + Name 21 "ret" + Name 24 "cbufName2" + MemberName 24(cbufName2) 0 "v24" + Name 26 "" + Name 31 "buf1" + MemberName 31(buf1) 0 "v1" + Name 33 "" + Name 37 "buf2" + MemberName 37(buf2) 0 "v2" + Name 39 "" + Name 43 "cbufName" + MemberName 43(cbufName) 0 "v3" + MemberName 43(cbufName) 1 "i3" + Name 45 "" + Name 50 "tbufName" + MemberName 50(tbufName) 0 "v4" + MemberName 50(tbufName) 1 "i4" + MemberName 50(tbufName) 2 "f1" + MemberName 50(tbufName) 3 "f3" + MemberName 50(tbufName) 4 "f4" + MemberName 50(tbufName) 5 "f5" + MemberName 50(tbufName) 6 "f6" + MemberName 50(tbufName) 7 "f7" + MemberName 50(tbufName) 8 "m1" + MemberName 50(tbufName) 9 "m2" + MemberName 50(tbufName) 10 "m3" + MemberName 50(tbufName) 11 "m4" + Name 52 "" + Name 63 "input" + Name 65 "input" + Name 68 "@entryPointOutput.a" + Name 69 "param" + MemberDecorate 24(cbufName2) 0 Offset 0 + Decorate 24(cbufName2) Block + Decorate 26 DescriptorSet 0 + MemberDecorate 31(buf1) 0 Offset 0 + Decorate 31(buf1) Block + Decorate 33 DescriptorSet 0 + MemberDecorate 37(buf2) 0 NonWritable + MemberDecorate 37(buf2) 0 Offset 0 + Decorate 37(buf2) BufferBlock + Decorate 39 DescriptorSet 0 + MemberDecorate 43(cbufName) 0 Offset 0 + MemberDecorate 43(cbufName) 1 Offset 20 + Decorate 43(cbufName) Block + Decorate 45 DescriptorSet 0 + MemberDecorate 50(tbufName) 0 NonWritable + MemberDecorate 50(tbufName) 0 Offset 16 + MemberDecorate 50(tbufName) 1 NonWritable + MemberDecorate 50(tbufName) 1 Offset 48 + MemberDecorate 50(tbufName) 2 NonWritable + MemberDecorate 50(tbufName) 2 Offset 60 + MemberDecorate 50(tbufName) 3 NonWritable + MemberDecorate 50(tbufName) 3 Offset 64 + MemberDecorate 50(tbufName) 4 NonWritable + MemberDecorate 50(tbufName) 4 Offset 68 + MemberDecorate 50(tbufName) 5 NonWritable + MemberDecorate 50(tbufName) 5 Offset 72 + MemberDecorate 50(tbufName) 6 NonWritable + MemberDecorate 50(tbufName) 6 Offset 76 + MemberDecorate 50(tbufName) 7 NonWritable + MemberDecorate 50(tbufName) 7 Offset 128 + MemberDecorate 50(tbufName) 8 RowMajor + MemberDecorate 50(tbufName) 8 NonWritable + MemberDecorate 50(tbufName) 8 Offset 112 + MemberDecorate 50(tbufName) 8 MatrixStride 16 + MemberDecorate 50(tbufName) 9 ColMajor + MemberDecorate 50(tbufName) 9 NonWritable + MemberDecorate 50(tbufName) 9 Offset 176 + MemberDecorate 50(tbufName) 9 MatrixStride 16 + MemberDecorate 50(tbufName) 10 RowMajor + MemberDecorate 50(tbufName) 10 NonWritable + MemberDecorate 50(tbufName) 10 Offset 240 + MemberDecorate 50(tbufName) 10 MatrixStride 16 + MemberDecorate 50(tbufName) 11 RowMajor + MemberDecorate 50(tbufName) 11 NonWritable + MemberDecorate 50(tbufName) 11 Offset 304 + MemberDecorate 50(tbufName) 11 MatrixStride 16 + Decorate 50(tbufName) BufferBlock + Decorate 52 DescriptorSet 0 + Decorate 52 Binding 8 + Decorate 65(input) BuiltIn FragCoord + Decorate 68(@entryPointOutput.a) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 12(id): TypeStruct 10(fvec4) + 13: TypeFunction 12(id) 11(ptr) + 17: 6(float) Constant 1065353216 + 20: TypePointer Function 12(id) + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24(cbufName2): TypeStruct 10(fvec4) + 25: TypePointer Uniform 24(cbufName2) + 26: 25(ptr) Variable Uniform + 27: TypePointer Uniform 10(fvec4) + 31(buf1): TypeStruct 10(fvec4) + 32: TypePointer Uniform 31(buf1) + 33: 32(ptr) Variable Uniform + 37(buf2): TypeStruct 10(fvec4) + 38: TypePointer Uniform 37(buf2) + 39: 38(ptr) Variable Uniform + 43(cbufName): TypeStruct 10(fvec4) 22(int) + 44: TypePointer Uniform 43(cbufName) + 45: 44(ptr) Variable Uniform + 49: TypeMatrix 10(fvec4) 3 + 50(tbufName): TypeStruct 10(fvec4) 22(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 49 49 49 49 + 51: TypePointer Uniform 50(tbufName) + 52: 51(ptr) Variable Uniform + 64: TypePointer Input 10(fvec4) + 65(input): 64(ptr) Variable Input + 67: TypePointer Output 10(fvec4) +68(@entryPointOutput.a): 67(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 63(input): 11(ptr) Variable Function + 69(param): 11(ptr) Variable Function + 66: 10(fvec4) Load 65(input) + Store 63(input) 66 + 70: 10(fvec4) Load 63(input) + Store 69(param) 70 + 71: 12(id) FunctionCall 15(@PixelShaderFunction(vf4;) 69(param) + 72: 10(fvec4) CompositeExtract 71 0 + Store 68(@entryPointOutput.a) 72 + Return + FunctionEnd + 8(foo(): 6(float) Function None 7 + 9: Label + ReturnValue 17 + FunctionEnd +15(@PixelShaderFunction(vf4;): 12(id) Function None 13 + 14(input): 11(ptr) FunctionParameter + 16: Label + 21(ret): 20(ptr) Variable Function + 28: 27(ptr) AccessChain 26 23 + 29: 10(fvec4) Load 28 + 30: 10(fvec4) Load 14(input) + 34: 27(ptr) AccessChain 33 23 + 35: 10(fvec4) Load 34 + 36: 10(fvec4) FAdd 30 35 + 40: 27(ptr) AccessChain 39 23 + 41: 10(fvec4) Load 40 + 42: 10(fvec4) FAdd 36 41 + 46: 27(ptr) AccessChain 45 23 + 47: 10(fvec4) Load 46 + 48: 10(fvec4) FAdd 42 47 + 53: 27(ptr) AccessChain 52 23 + 54: 10(fvec4) Load 53 + 55: 10(fvec4) FAdd 48 54 + 56: 6(float) FunctionCall 8(foo() + 57: 10(fvec4) VectorTimesScalar 55 56 + 58: 10(fvec4) FAdd 29 57 + 59: 11(ptr) AccessChain 21(ret) 23 + Store 59 58 + 60: 12(id) Load 21(ret) + ReturnValue 60 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out new file mode 100644 index 0000000000..46b4eea5c6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -0,0 +1,580 @@ +hlsl.calculatelod.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'txval10' ( temp float) +0:28 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:28 Construct combined texture-sampler ( temp sampler1DArray) +0:28 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'txval11' ( temp float) +0:29 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:29 Construct combined texture-sampler ( temp isampler1DArray) +0:29 'g_tTex1di4a' ( uniform itexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'txval12' ( temp float) +0:30 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:30 Construct combined texture-sampler ( temp usampler1DArray) +0:30 'g_tTex1du4a' ( uniform utexture1DArray) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'txval20' ( temp float) +0:32 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:32 Construct combined texture-sampler ( temp sampler2DArray) +0:32 'g_tTex2df4a' ( uniform texture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'txval21' ( temp float) +0:33 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:33 Construct combined texture-sampler ( temp isampler2DArray) +0:33 'g_tTex2di4a' ( uniform itexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'txval22' ( temp float) +0:34 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:34 Construct combined texture-sampler ( temp usampler2DArray) +0:34 'g_tTex2du4a' ( uniform utexture2DArray) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp float) +0:36 'txval40' ( temp float) +0:36 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:36 Construct combined texture-sampler ( temp samplerCubeArray) +0:36 'g_tTexcdf4a' ( uniform textureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp float) +0:37 'txval41' ( temp float) +0:37 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:37 Construct combined texture-sampler ( temp isamplerCubeArray) +0:37 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child ( temp float) +0:38 'txval42' ( temp float) +0:38 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:38 Construct combined texture-sampler ( temp usamplerCubeArray) +0:38 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:41 move second child to first child ( temp float) +0:41 Depth: direct index for structure ( temp float) +0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'txval10' ( temp float) +0:28 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:28 Construct combined texture-sampler ( temp sampler1DArray) +0:28 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'txval11' ( temp float) +0:29 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:29 Construct combined texture-sampler ( temp isampler1DArray) +0:29 'g_tTex1di4a' ( uniform itexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'txval12' ( temp float) +0:30 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:30 Construct combined texture-sampler ( temp usampler1DArray) +0:30 'g_tTex1du4a' ( uniform utexture1DArray) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'txval20' ( temp float) +0:32 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:32 Construct combined texture-sampler ( temp sampler2DArray) +0:32 'g_tTex2df4a' ( uniform texture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'txval21' ( temp float) +0:33 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:33 Construct combined texture-sampler ( temp isampler2DArray) +0:33 'g_tTex2di4a' ( uniform itexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'txval22' ( temp float) +0:34 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:34 Construct combined texture-sampler ( temp usampler2DArray) +0:34 'g_tTex2du4a' ( uniform utexture2DArray) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp float) +0:36 'txval40' ( temp float) +0:36 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:36 Construct combined texture-sampler ( temp samplerCubeArray) +0:36 'g_tTexcdf4a' ( uniform textureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp float) +0:37 'txval41' ( temp float) +0:37 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:37 Construct combined texture-sampler ( temp isamplerCubeArray) +0:37 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child ( temp float) +0:38 'txval42' ( temp float) +0:38 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:38 Construct combined texture-sampler ( temp usamplerCubeArray) +0:38 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:41 move second child to first child ( temp float) +0:41 Depth: direct index for structure ( temp float) +0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 148 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 140 144 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4a" + Name 20 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4a" + Name 41 "txval12" + Name 45 "g_tTex1du4a" + Name 53 "txval20" + Name 56 "g_tTex2df4a" + Name 64 "txval21" + Name 67 "g_tTex2di4a" + Name 76 "txval22" + Name 79 "g_tTex2du4a" + Name 89 "txval40" + Name 92 "g_tTexcdf4a" + Name 101 "txval41" + Name 104 "g_tTexcdi4a" + Name 112 "txval42" + Name 115 "g_tTexcdu4a" + Name 127 "psout" + Name 137 "flattenTemp" + Name 140 "@entryPointOutput.Color" + Name 144 "@entryPointOutput.Depth" + Name 147 "g_tTex1df4" + Decorate 16(g_tTex1df4a) DescriptorSet 0 + Decorate 16(g_tTex1df4a) Binding 1 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4a) DescriptorSet 0 + Decorate 45(g_tTex1du4a) DescriptorSet 0 + Decorate 56(g_tTex2df4a) DescriptorSet 0 + Decorate 67(g_tTex2di4a) DescriptorSet 0 + Decorate 79(g_tTex2du4a) DescriptorSet 0 + Decorate 92(g_tTexcdf4a) DescriptorSet 0 + Decorate 104(g_tTexcdi4a) DescriptorSet 0 + Decorate 115(g_tTexcdu4a) DescriptorSet 0 + Decorate 140(@entryPointOutput.Color) Location 0 + Decorate 144(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 147(g_tTex1df4) DescriptorSet 0 + Decorate 147(g_tTex1df4) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: TypeVector 6(float) 2 + 27: TypeInt 32 1 + 28: 27(int) Constant 0 + 31: TypeImage 27(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4a): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1045220557 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4a): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 50: 6(float) Constant 1050253722 + 54: TypeImage 6(float) 2D array sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4a): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 25(fvec2) ConstantComposite 24 38 + 65: TypeImage 27(int) 2D array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4a): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 25(fvec2) ConstantComposite 50 72 + 77: TypeImage 42(int) 2D array sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4a): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1056964608 + 85: 6(float) Constant 1058642330 + 86: 25(fvec2) ConstantComposite 84 85 + 90: TypeImage 6(float) Cube array sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTexcdf4a): 91(ptr) Variable UniformConstant + 95: TypeSampledImage 90 + 97: TypeVector 6(float) 3 + 98: 97(fvec3) ConstantComposite 24 38 50 + 102: TypeImage 27(int) Cube array sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTexcdi4a): 103(ptr) Variable UniformConstant + 107: TypeSampledImage 102 + 109: 97(fvec3) ConstantComposite 72 84 85 + 113: TypeImage 42(int) Cube array sampled format:Unknown + 114: TypePointer UniformConstant 113 +115(g_tTexcdu4a): 114(ptr) Variable UniformConstant + 118: TypeSampledImage 113 + 120: 6(float) Constant 1060320051 + 121: 6(float) Constant 1061997773 + 122: 6(float) Constant 1063675494 + 123: 97(fvec3) ConstantComposite 120 121 122 + 126: TypePointer Function 8(PS_OUTPUT) + 128: 6(float) Constant 1065353216 + 129: 7(fvec4) ConstantComposite 128 128 128 128 + 130: TypePointer Function 7(fvec4) + 132: 27(int) Constant 1 + 139: TypePointer Output 7(fvec4) +140(@entryPointOutput.Color): 139(ptr) Variable Output + 143: TypePointer Output 6(float) +144(@entryPointOutput.Depth): 143(ptr) Variable Output + 147(g_tTex1df4): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +137(flattenTemp): 126(ptr) Variable Function + 138:8(PS_OUTPUT) FunctionCall 10(@main() + Store 137(flattenTemp) 138 + 141: 130(ptr) AccessChain 137(flattenTemp) 28 + 142: 7(fvec4) Load 141 + Store 140(@entryPointOutput.Color) 142 + 145: 12(ptr) AccessChain 137(flattenTemp) 132 + 146: 6(float) Load 145 + Store 144(@entryPointOutput.Depth) 146 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 30(txval11): 12(ptr) Variable Function + 41(txval12): 12(ptr) Variable Function + 53(txval20): 12(ptr) Variable Function + 64(txval21): 12(ptr) Variable Function + 76(txval22): 12(ptr) Variable Function + 89(txval40): 12(ptr) Variable Function + 101(txval41): 12(ptr) Variable Function + 112(txval42): 12(ptr) Variable Function + 127(psout): 126(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 26: 25(fvec2) ImageQueryLod 23 24 + 29: 6(float) CompositeExtract 26 0 + Store 13(txval10) 29 + 34: 31 Load 33(g_tTex1di4a) + 35: 18 Load 20(g_sSamp) + 37: 36 SampledImage 34 35 + 39: 25(fvec2) ImageQueryLod 37 38 + 40: 6(float) CompositeExtract 39 0 + Store 30(txval11) 40 + 46: 43 Load 45(g_tTex1du4a) + 47: 18 Load 20(g_sSamp) + 49: 48 SampledImage 46 47 + 51: 25(fvec2) ImageQueryLod 49 50 + 52: 6(float) CompositeExtract 51 0 + Store 41(txval12) 52 + 57: 54 Load 56(g_tTex2df4a) + 58: 18 Load 20(g_sSamp) + 60: 59 SampledImage 57 58 + 62: 25(fvec2) ImageQueryLod 60 61 + 63: 6(float) CompositeExtract 62 0 + Store 53(txval20) 63 + 68: 65 Load 67(g_tTex2di4a) + 69: 18 Load 20(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 25(fvec2) ImageQueryLod 71 73 + 75: 6(float) CompositeExtract 74 0 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4a) + 81: 18 Load 20(g_sSamp) + 83: 82 SampledImage 80 81 + 87: 25(fvec2) ImageQueryLod 83 86 + 88: 6(float) CompositeExtract 87 0 + Store 76(txval22) 88 + 93: 90 Load 92(g_tTexcdf4a) + 94: 18 Load 20(g_sSamp) + 96: 95 SampledImage 93 94 + 99: 25(fvec2) ImageQueryLod 96 98 + 100: 6(float) CompositeExtract 99 0 + Store 89(txval40) 100 + 105: 102 Load 104(g_tTexcdi4a) + 106: 18 Load 20(g_sSamp) + 108: 107 SampledImage 105 106 + 110: 25(fvec2) ImageQueryLod 108 109 + 111: 6(float) CompositeExtract 110 0 + Store 101(txval41) 111 + 116: 113 Load 115(g_tTexcdu4a) + 117: 18 Load 20(g_sSamp) + 119: 118 SampledImage 116 117 + 124: 25(fvec2) ImageQueryLod 119 123 + 125: 6(float) CompositeExtract 124 0 + Store 112(txval42) 125 + 131: 130(ptr) AccessChain 127(psout) 28 + Store 131 129 + 133: 12(ptr) AccessChain 127(psout) 132 + Store 133 128 + 134:8(PS_OUTPUT) Load 127(psout) + ReturnValue 134 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out new file mode 100644 index 0000000000..160c095864 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -0,0 +1,372 @@ +hlsl.calculatelodunclamped.dx10.frag +ERROR: 0:28: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:29: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:30: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:32: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:33: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:34: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:36: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:37: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:38: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 9 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +ERROR: node is still EOpNull! +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'txval10' ( temp float) +0:28 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:28 Construct combined texture-sampler ( temp sampler1DArray) +0:28 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'txval11' ( temp float) +0:29 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:29 Construct combined texture-sampler ( temp isampler1DArray) +0:29 'g_tTex1di4a' ( uniform itexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'txval12' ( temp float) +0:30 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:30 Construct combined texture-sampler ( temp usampler1DArray) +0:30 'g_tTex1du4a' ( uniform utexture1DArray) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'txval20' ( temp float) +0:32 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:32 Construct combined texture-sampler ( temp sampler2DArray) +0:32 'g_tTex2df4a' ( uniform texture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'txval21' ( temp float) +0:33 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:33 Construct combined texture-sampler ( temp isampler2DArray) +0:33 'g_tTex2di4a' ( uniform itexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'txval22' ( temp float) +0:34 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:34 Construct combined texture-sampler ( temp usampler2DArray) +0:34 'g_tTex2du4a' ( uniform utexture2DArray) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp float) +0:36 'txval40' ( temp float) +0:36 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:36 Construct combined texture-sampler ( temp samplerCubeArray) +0:36 'g_tTexcdf4a' ( uniform textureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp float) +0:37 'txval41' ( temp float) +0:37 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:37 Construct combined texture-sampler ( temp isamplerCubeArray) +0:37 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child ( temp float) +0:38 'txval42' ( temp float) +0:38 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:38 Construct combined texture-sampler ( temp usamplerCubeArray) +0:38 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:41 move second child to first child ( temp float) +0:41 Depth: direct index for structure ( temp float) +0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +ERROR: node is still EOpNull! +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'txval10' ( temp float) +0:28 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:28 Construct combined texture-sampler ( temp sampler1DArray) +0:28 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'txval11' ( temp float) +0:29 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:29 Construct combined texture-sampler ( temp isampler1DArray) +0:29 'g_tTex1di4a' ( uniform itexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'txval12' ( temp float) +0:30 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:30 Construct combined texture-sampler ( temp usampler1DArray) +0:30 'g_tTex1du4a' ( uniform utexture1DArray) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'txval20' ( temp float) +0:32 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:32 Construct combined texture-sampler ( temp sampler2DArray) +0:32 'g_tTex2df4a' ( uniform texture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'txval21' ( temp float) +0:33 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:33 Construct combined texture-sampler ( temp isampler2DArray) +0:33 'g_tTex2di4a' ( uniform itexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'txval22' ( temp float) +0:34 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:34 Construct combined texture-sampler ( temp usampler2DArray) +0:34 'g_tTex2du4a' ( uniform utexture2DArray) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp float) +0:36 'txval40' ( temp float) +0:36 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:36 Construct combined texture-sampler ( temp samplerCubeArray) +0:36 'g_tTexcdf4a' ( uniform textureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp float) +0:37 'txval41' ( temp float) +0:37 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:37 Construct combined texture-sampler ( temp isamplerCubeArray) +0:37 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child ( temp float) +0:38 'txval42' ( temp float) +0:38 direct index ( temp float) +0:? textureQueryLod ( temp float) +0:38 Construct combined texture-sampler ( temp usamplerCubeArray) +0:38 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:41 move second child to first child ( temp float) +0:41 Depth: direct index for structure ( temp float) +0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.cast.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.cast.frag.out new file mode 100644 index 0000000000..0aa11bead6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.cast.frag.out @@ -0,0 +1,127 @@ +hlsl.cast.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Branch: Return with expression +0:3 add ( temp 4-component vector of float) +0:3 add ( temp 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:3 Convert int to float ( temp 4-component vector of float) +0:3 Convert float to int ( temp 4-component vector of int) +0:3 'input' ( in 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Branch: Return with expression +0:3 add ( temp 4-component vector of float) +0:3 add ( temp 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:3 Convert int to float ( temp 4-component vector of float) +0:3 Convert float to int ( temp 4-component vector of int) +0:3 'input' ( in 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 27 30 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 25 "input" + Name 27 "input" + Name 30 "@entryPointOutput" + Name 31 "param" + Decorate 27(input) Location 0 + Decorate 30(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 15: TypeInt 32 1 + 16: TypeVector 15(int) 4 + 20: 6(float) Constant 1067014160 + 21: 7(fvec4) ConstantComposite 20 20 20 20 + 26: TypePointer Input 7(fvec4) + 27(input): 26(ptr) Variable Input + 29: TypePointer Output 7(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 25(input): 8(ptr) Variable Function + 31(param): 8(ptr) Variable Function + 28: 7(fvec4) Load 27(input) + Store 25(input) 28 + 32: 7(fvec4) Load 25(input) + Store 31(param) 32 + 33: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 31(param) + Store 30(@entryPointOutput) 33 + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13: 7(fvec4) Load 10(input) + 14: 7(fvec4) Load 10(input) + 17: 16(ivec4) ConvertFToS 14 + 18: 7(fvec4) ConvertSToF 17 + 19: 7(fvec4) FAdd 13 18 + 22: 7(fvec4) FAdd 19 21 + ReturnValue 22 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out new file mode 100644 index 0000000000..6142ca0633 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out @@ -0,0 +1,417 @@ +hlsl.cbuffer-identifier.vert +WARNING: 0:29: '' : mul() matrix size mismatch + +Shader version: 500 +0:? Sequence +0:22 Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Function Parameters: +0:22 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'ConstantBuffer' ( temp int) +0:23 Constant: +0:23 42 (const int) +0:25 Sequence +0:25 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:25 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 move second child to first child ( temp 4-component vector of float) +0:26 Pos: direct index for structure ( temp 4-component vector of float) +0:26 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:26 Constant: +0:26 0 (const int) +0:26 matrix-times-vector ( temp 4-component vector of float) +0:26 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:26 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:26 Constant: +0:26 0 (const uint) +0:26 Pos: direct index for structure ( temp 4-component vector of float) +0:26 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:26 Constant: +0:26 0 (const int) +0:27 move second child to first child ( temp 4-component vector of float) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:27 Constant: +0:27 0 (const int) +0:27 matrix-times-vector ( temp 4-component vector of float) +0:27 View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:27 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:27 Constant: +0:27 1 (const uint) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:27 Constant: +0:27 0 (const int) +0:28 move second child to first child ( temp 4-component vector of float) +0:28 Pos: direct index for structure ( temp 4-component vector of float) +0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:28 Constant: +0:28 0 (const int) +0:28 matrix-times-vector ( temp 4-component vector of float) +0:28 Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:28 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:28 Constant: +0:28 2 (const uint) +0:28 Pos: direct index for structure ( temp 4-component vector of float) +0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:28 Constant: +0:28 0 (const int) +0:29 move second child to first child ( temp 3-component vector of float) +0:29 Norm: direct index for structure ( temp 3-component vector of float) +0:29 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:29 Constant: +0:29 1 (const int) +0:29 Construct vec3 ( temp 3-component vector of float) +0:29 matrix-times-vector ( temp 4-component vector of float) +0:29 Construct mat3x4 ( uniform 3X4 matrix of float) +0:29 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:29 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:29 Constant: +0:29 0 (const uint) +0:29 Norm: direct index for structure ( temp 3-component vector of float) +0:29 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:29 Constant: +0:29 1 (const int) +0:31 Branch: Return with expression +0:31 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Pos: direct index for structure ( temp 4-component vector of float) +0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 0 (const int) +0:? 'input.Pos' (layout( location=0) in 4-component vector of float) +0:22 move second child to first child ( temp 3-component vector of float) +0:22 Norm: direct index for structure ( temp 3-component vector of float) +0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 1 (const int) +0:? 'input.Norm' (layout( location=1) in 3-component vector of float) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:22 Pos: direct index for structure ( temp 4-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) +0:22 Norm: direct index for structure ( temp 3-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 1 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) +0:? 'input.Pos' (layout( location=0) in 4-component vector of float) +0:? 'input.Norm' (layout( location=1) in 3-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:22 Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Function Parameters: +0:22 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'ConstantBuffer' ( temp int) +0:23 Constant: +0:23 42 (const int) +0:25 Sequence +0:25 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:25 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 move second child to first child ( temp 4-component vector of float) +0:26 Pos: direct index for structure ( temp 4-component vector of float) +0:26 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:26 Constant: +0:26 0 (const int) +0:26 matrix-times-vector ( temp 4-component vector of float) +0:26 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:26 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:26 Constant: +0:26 0 (const uint) +0:26 Pos: direct index for structure ( temp 4-component vector of float) +0:26 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:26 Constant: +0:26 0 (const int) +0:27 move second child to first child ( temp 4-component vector of float) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:27 Constant: +0:27 0 (const int) +0:27 matrix-times-vector ( temp 4-component vector of float) +0:27 View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:27 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:27 Constant: +0:27 1 (const uint) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:27 Constant: +0:27 0 (const int) +0:28 move second child to first child ( temp 4-component vector of float) +0:28 Pos: direct index for structure ( temp 4-component vector of float) +0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:28 Constant: +0:28 0 (const int) +0:28 matrix-times-vector ( temp 4-component vector of float) +0:28 Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:28 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:28 Constant: +0:28 2 (const uint) +0:28 Pos: direct index for structure ( temp 4-component vector of float) +0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:28 Constant: +0:28 0 (const int) +0:29 move second child to first child ( temp 3-component vector of float) +0:29 Norm: direct index for structure ( temp 3-component vector of float) +0:29 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:29 Constant: +0:29 1 (const int) +0:29 Construct vec3 ( temp 3-component vector of float) +0:29 matrix-times-vector ( temp 4-component vector of float) +0:29 Construct mat3x4 ( uniform 3X4 matrix of float) +0:29 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:29 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:29 Constant: +0:29 0 (const uint) +0:29 Norm: direct index for structure ( temp 3-component vector of float) +0:29 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:29 Constant: +0:29 1 (const int) +0:31 Branch: Return with expression +0:31 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Pos: direct index for structure ( temp 4-component vector of float) +0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 0 (const int) +0:? 'input.Pos' (layout( location=0) in 4-component vector of float) +0:22 move second child to first child ( temp 3-component vector of float) +0:22 Norm: direct index for structure ( temp 3-component vector of float) +0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 1 (const int) +0:? 'input.Norm' (layout( location=1) in 3-component vector of float) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:22 Pos: direct index for structure ( temp 4-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) +0:22 Norm: direct index for structure ( temp 3-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm}) +0:22 Constant: +0:22 1 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection}) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float) +0:? 'input.Pos' (layout( location=0) in 4-component vector of float) +0:? 'input.Norm' (layout( location=1) in 3-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 106 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 87 91 99 103 + Source HLSL 500 + Name 4 "main" + Name 9 "VS_INPUT" + MemberName 9(VS_INPUT) 0 "Pos" + MemberName 9(VS_INPUT) 1 "Norm" + Name 11 "PS_INPUT" + MemberName 11(PS_INPUT) 0 "Pos" + MemberName 11(PS_INPUT) 1 "Norm" + Name 14 "@main(struct-VS_INPUT-vf4-vf31;" + Name 13 "input" + Name 18 "ConstantBuffer" + Name 21 "output" + Name 28 "C" + MemberName 28(C) 0 "World" + MemberName 28(C) 1 "View" + MemberName 28(C) 2 "Projection" + Name 30 "" + Name 85 "input" + Name 87 "input.Pos" + Name 91 "input.Norm" + Name 94 "flattenTemp" + Name 95 "param" + Name 99 "@entryPointOutput.Pos" + Name 103 "@entryPointOutput.Norm" + MemberDecorate 28(C) 0 RowMajor + MemberDecorate 28(C) 0 Offset 0 + MemberDecorate 28(C) 0 MatrixStride 16 + MemberDecorate 28(C) 1 RowMajor + MemberDecorate 28(C) 1 Offset 64 + MemberDecorate 28(C) 1 MatrixStride 16 + MemberDecorate 28(C) 2 RowMajor + MemberDecorate 28(C) 2 Offset 128 + MemberDecorate 28(C) 2 MatrixStride 16 + Decorate 28(C) Block + Decorate 30 DescriptorSet 0 + Decorate 30 Binding 0 + Decorate 87(input.Pos) Location 0 + Decorate 91(input.Norm) Location 1 + Decorate 99(@entryPointOutput.Pos) BuiltIn Position + Decorate 103(@entryPointOutput.Norm) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(VS_INPUT): TypeStruct 7(fvec4) 8(fvec3) + 10: TypePointer Function 9(VS_INPUT) + 11(PS_INPUT): TypeStruct 7(fvec4) 8(fvec3) + 12: TypeFunction 11(PS_INPUT) 10(ptr) + 16: TypeInt 32 1 + 17: TypePointer Function 16(int) + 19: 16(int) Constant 42 + 20: TypePointer Function 11(PS_INPUT) + 22: 6(float) Constant 0 + 23: 7(fvec4) ConstantComposite 22 22 22 22 + 24: 8(fvec3) ConstantComposite 22 22 22 + 25:11(PS_INPUT) ConstantComposite 23 24 + 26: 16(int) Constant 0 + 27: TypeMatrix 7(fvec4) 4 + 28(C): TypeStruct 27 27 27 + 29: TypePointer Uniform 28(C) + 30: 29(ptr) Variable Uniform + 31: TypePointer Uniform 27 + 34: TypePointer Function 7(fvec4) + 39: 16(int) Constant 1 + 46: 16(int) Constant 2 + 55: TypeMatrix 7(fvec4) 3 + 56: 6(float) Constant 1065353216 + 73: TypePointer Function 8(fvec3) + 86: TypePointer Input 7(fvec4) + 87(input.Pos): 86(ptr) Variable Input + 90: TypePointer Input 8(fvec3) + 91(input.Norm): 90(ptr) Variable Input + 98: TypePointer Output 7(fvec4) +99(@entryPointOutput.Pos): 98(ptr) Variable Output + 102: TypePointer Output 8(fvec3) +103(@entryPointOutput.Norm): 102(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 85(input): 10(ptr) Variable Function + 94(flattenTemp): 20(ptr) Variable Function + 95(param): 10(ptr) Variable Function + 88: 7(fvec4) Load 87(input.Pos) + 89: 34(ptr) AccessChain 85(input) 26 + Store 89 88 + 92: 8(fvec3) Load 91(input.Norm) + 93: 73(ptr) AccessChain 85(input) 39 + Store 93 92 + 96: 9(VS_INPUT) Load 85(input) + Store 95(param) 96 + 97:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 95(param) + Store 94(flattenTemp) 97 + 100: 34(ptr) AccessChain 94(flattenTemp) 26 + 101: 7(fvec4) Load 100 + Store 99(@entryPointOutput.Pos) 101 + 104: 73(ptr) AccessChain 94(flattenTemp) 39 + 105: 8(fvec3) Load 104 + Store 103(@entryPointOutput.Norm) 105 + Return + FunctionEnd +14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12 + 13(input): 10(ptr) FunctionParameter + 15: Label +18(ConstantBuffer): 17(ptr) Variable Function + 21(output): 20(ptr) Variable Function + Store 18(ConstantBuffer) 19 + Store 21(output) 25 + 32: 31(ptr) AccessChain 30 26 + 33: 27 Load 32 + 35: 34(ptr) AccessChain 13(input) 26 + 36: 7(fvec4) Load 35 + 37: 7(fvec4) MatrixTimesVector 33 36 + 38: 34(ptr) AccessChain 21(output) 26 + Store 38 37 + 40: 31(ptr) AccessChain 30 39 + 41: 27 Load 40 + 42: 34(ptr) AccessChain 21(output) 26 + 43: 7(fvec4) Load 42 + 44: 7(fvec4) MatrixTimesVector 41 43 + 45: 34(ptr) AccessChain 21(output) 26 + Store 45 44 + 47: 31(ptr) AccessChain 30 46 + 48: 27 Load 47 + 49: 34(ptr) AccessChain 21(output) 26 + 50: 7(fvec4) Load 49 + 51: 7(fvec4) MatrixTimesVector 48 50 + 52: 34(ptr) AccessChain 21(output) 26 + Store 52 51 + 53: 31(ptr) AccessChain 30 26 + 54: 27 Load 53 + 57: 6(float) CompositeExtract 54 0 0 + 58: 6(float) CompositeExtract 54 0 1 + 59: 6(float) CompositeExtract 54 0 2 + 60: 6(float) CompositeExtract 54 0 3 + 61: 6(float) CompositeExtract 54 1 0 + 62: 6(float) CompositeExtract 54 1 1 + 63: 6(float) CompositeExtract 54 1 2 + 64: 6(float) CompositeExtract 54 1 3 + 65: 6(float) CompositeExtract 54 2 0 + 66: 6(float) CompositeExtract 54 2 1 + 67: 6(float) CompositeExtract 54 2 2 + 68: 6(float) CompositeExtract 54 2 3 + 69: 7(fvec4) CompositeConstruct 57 58 59 60 + 70: 7(fvec4) CompositeConstruct 61 62 63 64 + 71: 7(fvec4) CompositeConstruct 65 66 67 68 + 72: 55 CompositeConstruct 69 70 71 + 74: 73(ptr) AccessChain 13(input) 39 + 75: 8(fvec3) Load 74 + 76: 7(fvec4) MatrixTimesVector 72 75 + 77: 6(float) CompositeExtract 76 0 + 78: 6(float) CompositeExtract 76 1 + 79: 6(float) CompositeExtract 76 2 + 80: 8(fvec3) CompositeConstruct 77 78 79 + 81: 73(ptr) AccessChain 21(output) 39 + Store 81 80 + 82:11(PS_INPUT) Load 21(output) + ReturnValue 82 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.charLit.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.charLit.vert.out new file mode 100644 index 0000000000..b09fc81f40 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.charLit.vert.out @@ -0,0 +1,233 @@ +hlsl.charLit.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp uint) +0:3 'a1' ( temp uint) +0:3 Constant: +0:3 65 (const uint) +0:4 Sequence +0:4 move second child to first child ( temp int) +0:4 'a2' ( temp int) +0:4 Constant: +0:4 48 (const int) +0:6 Sequence +0:6 move second child to first child ( temp int) +0:6 'a3' ( temp int) +0:6 Constant: +0:6 7 (const int) +0:7 add second child into first child ( temp int) +0:7 'a3' ( temp int) +0:7 Constant: +0:7 8 (const int) +0:8 add second child into first child ( temp int) +0:8 'a3' ( temp int) +0:8 Constant: +0:8 9 (const int) +0:9 add second child into first child ( temp int) +0:9 'a3' ( temp int) +0:9 Constant: +0:9 10 (const int) +0:10 add second child into first child ( temp int) +0:10 'a3' ( temp int) +0:10 Constant: +0:10 11 (const int) +0:11 add second child into first child ( temp int) +0:11 'a3' ( temp int) +0:11 Constant: +0:11 12 (const int) +0:12 add second child into first child ( temp int) +0:12 'a3' ( temp int) +0:12 Constant: +0:12 13 (const int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a10' ( temp int) +0:14 Constant: +0:14 99 (const int) +0:16 Branch: Return with expression +0:16 Construct vec4 ( temp 4-component vector of float) +0:16 Convert uint to float ( temp float) +0:16 add ( temp uint) +0:16 add ( temp uint) +0:16 add ( temp uint) +0:16 'a1' ( temp uint) +0:16 Convert int to uint ( temp uint) +0:16 'a2' ( temp int) +0:16 Convert int to uint ( temp uint) +0:16 'a3' ( temp int) +0:16 Convert int to uint ( temp uint) +0:16 'a10' ( temp int) +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp uint) +0:3 'a1' ( temp uint) +0:3 Constant: +0:3 65 (const uint) +0:4 Sequence +0:4 move second child to first child ( temp int) +0:4 'a2' ( temp int) +0:4 Constant: +0:4 48 (const int) +0:6 Sequence +0:6 move second child to first child ( temp int) +0:6 'a3' ( temp int) +0:6 Constant: +0:6 7 (const int) +0:7 add second child into first child ( temp int) +0:7 'a3' ( temp int) +0:7 Constant: +0:7 8 (const int) +0:8 add second child into first child ( temp int) +0:8 'a3' ( temp int) +0:8 Constant: +0:8 9 (const int) +0:9 add second child into first child ( temp int) +0:9 'a3' ( temp int) +0:9 Constant: +0:9 10 (const int) +0:10 add second child into first child ( temp int) +0:10 'a3' ( temp int) +0:10 Constant: +0:10 11 (const int) +0:11 add second child into first child ( temp int) +0:11 'a3' ( temp int) +0:11 Constant: +0:11 12 (const int) +0:12 add second child into first child ( temp int) +0:12 'a3' ( temp int) +0:12 Constant: +0:12 13 (const int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'a10' ( temp int) +0:14 Constant: +0:14 99 (const int) +0:16 Branch: Return with expression +0:16 Construct vec4 ( temp 4-component vector of float) +0:16 Convert uint to float ( temp float) +0:16 add ( temp uint) +0:16 add ( temp uint) +0:16 add ( temp uint) +0:16 'a1' ( temp uint) +0:16 Convert int to uint ( temp uint) +0:16 'a2' ( temp int) +0:16 Convert int to uint ( temp uint) +0:16 'a3' ( temp int) +0:16 Convert int to uint ( temp uint) +0:16 'a10' ( temp int) +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 58 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 56 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "a1" + Name 17 "a2" + Name 19 "a3" + Name 39 "a10" + Name 56 "@entryPointOutput" + Decorate 56(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 0 + 12: TypePointer Function 11(int) + 14: 11(int) Constant 65 + 15: TypeInt 32 1 + 16: TypePointer Function 15(int) + 18: 15(int) Constant 48 + 20: 15(int) Constant 7 + 21: 15(int) Constant 8 + 24: 15(int) Constant 9 + 27: 15(int) Constant 10 + 30: 15(int) Constant 11 + 33: 15(int) Constant 12 + 36: 15(int) Constant 13 + 40: 15(int) Constant 99 + 55: TypePointer Output 7(fvec4) +56(@entryPointOutput): 55(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 57: 7(fvec4) FunctionCall 9(@main() + Store 56(@entryPointOutput) 57 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 13(a1): 12(ptr) Variable Function + 17(a2): 16(ptr) Variable Function + 19(a3): 16(ptr) Variable Function + 39(a10): 16(ptr) Variable Function + Store 13(a1) 14 + Store 17(a2) 18 + Store 19(a3) 20 + 22: 15(int) Load 19(a3) + 23: 15(int) IAdd 22 21 + Store 19(a3) 23 + 25: 15(int) Load 19(a3) + 26: 15(int) IAdd 25 24 + Store 19(a3) 26 + 28: 15(int) Load 19(a3) + 29: 15(int) IAdd 28 27 + Store 19(a3) 29 + 31: 15(int) Load 19(a3) + 32: 15(int) IAdd 31 30 + Store 19(a3) 32 + 34: 15(int) Load 19(a3) + 35: 15(int) IAdd 34 33 + Store 19(a3) 35 + 37: 15(int) Load 19(a3) + 38: 15(int) IAdd 37 36 + Store 19(a3) 38 + Store 39(a10) 40 + 41: 11(int) Load 13(a1) + 42: 15(int) Load 17(a2) + 43: 11(int) Bitcast 42 + 44: 11(int) IAdd 41 43 + 45: 15(int) Load 19(a3) + 46: 11(int) Bitcast 45 + 47: 11(int) IAdd 44 46 + 48: 15(int) Load 39(a10) + 49: 11(int) Bitcast 48 + 50: 11(int) IAdd 47 49 + 51: 6(float) ConvertUToF 50 + 52: 7(fvec4) CompositeConstruct 51 51 51 51 + ReturnValue 52 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clip.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clip.frag.out new file mode 100644 index 0000000000..dbf99bf5a0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clip.frag.out @@ -0,0 +1,123 @@ +hlsl.clip.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: GetEntitySelectClip( ( temp float) +0:3 Function Parameters: +0:? Sequence +0:4 Branch: Return with expression +0:4 Constant: +0:4 1.000000 +0:8 Function Definition: @main( ( temp 4-component vector of float) +0:8 Function Parameters: +0:? Sequence +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Compare Less Than ( temp bool) +0:9 Function Call: GetEntitySelectClip( ( temp float) +0:9 Constant: +0:9 0.000000 +0:9 true case +0:9 Branch: Kill +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: GetEntitySelectClip( ( temp float) +0:3 Function Parameters: +0:? Sequence +0:4 Branch: Return with expression +0:4 Constant: +0:4 1.000000 +0:8 Function Definition: @main( ( temp 4-component vector of float) +0:8 Function Parameters: +0:? Sequence +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Compare Less Than ( temp bool) +0:9 Function Call: GetEntitySelectClip( ( temp float) +0:9 Constant: +0:9 0.000000 +0:9 true case +0:9 Branch: Kill +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 28 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "GetEntitySelectClip(" + Name 12 "@main(" + Name 28 "@entryPointOutput" + Decorate 28(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypeVector 6(float) 4 + 11: TypeFunction 10(fvec4) + 14: 6(float) Constant 1065353216 + 18: 6(float) Constant 0 + 19: TypeBool + 24: 10(fvec4) ConstantComposite 18 18 18 18 + 27: TypePointer Output 10(fvec4) +28(@entryPointOutput): 27(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 29: 10(fvec4) FunctionCall 12(@main() + Store 28(@entryPointOutput) 29 + Return + FunctionEnd +8(GetEntitySelectClip(): 6(float) Function None 7 + 9: Label + ReturnValue 14 + FunctionEnd + 12(@main(): 10(fvec4) Function None 11 + 13: Label + 17: 6(float) FunctionCall 8(GetEntitySelectClip() + 20: 19(bool) FOrdLessThan 17 18 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + Kill + 22: Label + ReturnValue 24 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out new file mode 100644 index 0000000000..f223ddc4f7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out @@ -0,0 +1,190 @@ +hlsl.clipdistance-1.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(vf4;f1;f1; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'pos' ( in 4-component vector of float) +0:4 'clip' ( in float) +0:4 'cull' ( in float) +0:? Sequence +0:5 Branch: Return with expression +0:5 add ( temp 4-component vector of float) +0:5 add ( temp 4-component vector of float) +0:5 'pos' ( in 4-component vector of float) +0:5 'clip' ( in float) +0:5 'cull' ( in float) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? Sequence +0:4 move second child to first child ( temp float) +0:? 'clip' ( temp float) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 1-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:? Sequence +0:4 move second child to first child ( temp float) +0:? 'cull' ( temp float) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 1-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main(vf4;f1;f1; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp float) +0:? 'cull' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? 'clip' ( in 1-element array of float ClipDistance) +0:? 'cull' ( in 1-element array of float CullDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(vf4;f1;f1; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'pos' ( in 4-component vector of float) +0:4 'clip' ( in float) +0:4 'cull' ( in float) +0:? Sequence +0:5 Branch: Return with expression +0:5 add ( temp 4-component vector of float) +0:5 add ( temp 4-component vector of float) +0:5 'pos' ( in 4-component vector of float) +0:5 'clip' ( in float) +0:5 'cull' ( in float) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? Sequence +0:4 move second child to first child ( temp float) +0:? 'clip' ( temp float) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 1-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:? Sequence +0:4 move second child to first child ( temp float) +0:? 'cull' ( temp float) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 1-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main(vf4;f1;f1; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp float) +0:? 'cull' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? 'clip' ( in 1-element array of float ClipDistance) +0:? 'cull' ( in 1-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 53 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 27 34 41 45 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 14 "@main(vf4;f1;f1;" + Name 11 "pos" + Name 12 "clip" + Name 13 "cull" + Name 25 "pos" + Name 27 "pos" + Name 29 "clip" + Name 34 "clip" + Name 40 "cull" + Name 41 "cull" + Name 45 "@entryPointOutput" + Name 46 "param" + Name 48 "param" + Name 50 "param" + Decorate 27(pos) BuiltIn FragCoord + Decorate 34(clip) BuiltIn ClipDistance + Decorate 41(cull) BuiltIn CullDistance + Decorate 45(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypePointer Function 6(float) + 10: TypeFunction 7(fvec4) 8(ptr) 9(ptr) 9(ptr) + 26: TypePointer Input 7(fvec4) + 27(pos): 26(ptr) Variable Input + 30: TypeInt 32 0 + 31: 30(int) Constant 1 + 32: TypeArray 6(float) 31 + 33: TypePointer Input 32 + 34(clip): 33(ptr) Variable Input + 35: TypeInt 32 1 + 36: 35(int) Constant 0 + 37: TypePointer Input 6(float) + 41(cull): 33(ptr) Variable Input + 44: TypePointer Output 7(fvec4) +45(@entryPointOutput): 44(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 25(pos): 8(ptr) Variable Function + 29(clip): 9(ptr) Variable Function + 40(cull): 9(ptr) Variable Function + 46(param): 8(ptr) Variable Function + 48(param): 9(ptr) Variable Function + 50(param): 9(ptr) Variable Function + 28: 7(fvec4) Load 27(pos) + Store 25(pos) 28 + 38: 37(ptr) AccessChain 34(clip) 36 + 39: 6(float) Load 38 + Store 29(clip) 39 + 42: 37(ptr) AccessChain 41(cull) 36 + 43: 6(float) Load 42 + Store 40(cull) 43 + 47: 7(fvec4) Load 25(pos) + Store 46(param) 47 + 49: 6(float) Load 29(clip) + Store 48(param) 49 + 51: 6(float) Load 40(cull) + Store 50(param) 51 + 52: 7(fvec4) FunctionCall 14(@main(vf4;f1;f1;) 46(param) 48(param) 50(param) + Store 45(@entryPointOutput) 52 + Return + FunctionEnd +14(@main(vf4;f1;f1;): 7(fvec4) Function None 10 + 11(pos): 8(ptr) FunctionParameter + 12(clip): 9(ptr) FunctionParameter + 13(cull): 9(ptr) FunctionParameter + 15: Label + 16: 7(fvec4) Load 11(pos) + 17: 6(float) Load 12(clip) + 18: 7(fvec4) CompositeConstruct 17 17 17 17 + 19: 7(fvec4) FAdd 16 18 + 20: 6(float) Load 13(cull) + 21: 7(fvec4) CompositeConstruct 20 20 20 20 + 22: 7(fvec4) FAdd 19 21 + ReturnValue 22 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out new file mode 100644 index 0000000000..144b8775e2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out @@ -0,0 +1,737 @@ +hlsl.clipdistance-1.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) +0:11 Function Parameters: +0:11 'pos' ( in 3-element array of 4-component vector of float) +0:11 'VertexID' ( in 3-element array of uint) +0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:11 'clip' ( in 3-element array of 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( temp 4-component vector of float) +0:14 'pos' ( in 3-element array of 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp 2-component vector of float) +0:15 clip: direct index for structure ( temp 2-component vector of float) +0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:15 Constant: +0:15 1 (const int) +0:15 vector swizzle ( temp 2-component vector of float) +0:15 direct index ( temp 4-component vector of float) +0:15 'clip' ( in 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:15 Sequence +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1 (const int) +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:17 pos: direct index for structure ( temp 4-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:17 Constant: +0:17 0 (const int) +0:? Sequence +0:17 move second child to first child ( temp float) +0:17 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) +0:17 Constant: +0:17 0 (const int) +0:17 direct index ( temp float) +0:17 clip: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child ( temp float) +0:17 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) +0:17 Constant: +0:17 1 (const int) +0:17 direct index ( temp float) +0:17 clip: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 EmitVertex ( temp void) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:11 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) +0:11 Function Parameters: +0:11 'pos' ( in 3-element array of 4-component vector of float) +0:11 'VertexID' ( in 3-element array of uint) +0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:11 'clip' ( in 3-element array of 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( temp 4-component vector of float) +0:14 'pos' ( in 3-element array of 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp 2-component vector of float) +0:15 clip: direct index for structure ( temp 2-component vector of float) +0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:15 Constant: +0:15 1 (const int) +0:15 vector swizzle ( temp 2-component vector of float) +0:15 direct index ( temp 4-component vector of float) +0:15 'clip' ( in 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:15 Sequence +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1 (const int) +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:17 pos: direct index for structure ( temp 4-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:17 Constant: +0:17 0 (const int) +0:? Sequence +0:17 move second child to first child ( temp float) +0:17 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) +0:17 Constant: +0:17 0 (const int) +0:17 direct index ( temp float) +0:17 clip: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child ( temp float) +0:17 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) +0:17 Constant: +0:17 1 (const int) +0:17 direct index ( temp float) +0:17 clip: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 EmitVertex ( temp void) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:11 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip}) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 118 + + Capability Geometry + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 38 44 57 61 68 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 15 "S" + MemberName 15(S) 0 "pos" + MemberName 15(S) 1 "clip" + Name 22 "@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];" + Name 18 "pos" + Name 19 "VertexID" + Name 20 "OutputStream" + Name 21 "clip" + Name 24 "s" + Name 38 "OutputStream.pos" + Name 44 "OutputStream.clip" + Name 55 "pos" + Name 57 "pos" + Name 59 "VertexID" + Name 61 "VertexID" + Name 63 "clip" + Name 68 "clip" + Name 108 "OutputStream" + Name 109 "param" + Name 111 "param" + Name 113 "param" + Name 114 "param" + Decorate 38(OutputStream.pos) BuiltIn Position + Decorate 44(OutputStream.clip) BuiltIn ClipDistance + Decorate 57(pos) BuiltIn Position + Decorate 61(VertexID) Location 0 + Decorate 68(clip) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Function 10 + 12: TypeArray 8(int) 9 + 13: TypePointer Function 12 + 14: TypeVector 6(float) 2 + 15(S): TypeStruct 7(fvec4) 14(fvec2) + 16: TypePointer Function 15(S) + 17: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 11(ptr) + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27: TypePointer Function 7(fvec4) + 31: 25(int) Constant 1 + 35: TypePointer Function 14(fvec2) + 37: TypePointer Output 7(fvec4) +38(OutputStream.pos): 37(ptr) Variable Output + 41: 8(int) Constant 2 + 42: TypeArray 6(float) 41 + 43: TypePointer Output 42 +44(OutputStream.clip): 43(ptr) Variable Output + 45: 8(int) Constant 0 + 46: TypePointer Function 6(float) + 49: TypePointer Output 6(float) + 51: 8(int) Constant 1 + 56: TypePointer Input 10 + 57(pos): 56(ptr) Variable Input + 60: TypePointer Input 12 + 61(VertexID): 60(ptr) Variable Input + 64: 8(int) Constant 4 + 65: TypeArray 6(float) 64 + 66: TypeArray 65 9 + 67: TypePointer Input 66 + 68(clip): 67(ptr) Variable Input + 69: TypePointer Input 6(float) + 76: 25(int) Constant 2 + 80: 25(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 55(pos): 11(ptr) Variable Function + 59(VertexID): 13(ptr) Variable Function + 63(clip): 11(ptr) Variable Function +108(OutputStream): 16(ptr) Variable Function + 109(param): 11(ptr) Variable Function + 111(param): 13(ptr) Variable Function + 113(param): 16(ptr) Variable Function + 114(param): 11(ptr) Variable Function + 58: 10 Load 57(pos) + Store 55(pos) 58 + 62: 12 Load 61(VertexID) + Store 59(VertexID) 62 + 70: 69(ptr) AccessChain 68(clip) 26 26 + 71: 6(float) Load 70 + 72: 46(ptr) AccessChain 63(clip) 26 45 + Store 72 71 + 73: 69(ptr) AccessChain 68(clip) 26 31 + 74: 6(float) Load 73 + 75: 46(ptr) AccessChain 63(clip) 26 51 + Store 75 74 + 77: 69(ptr) AccessChain 68(clip) 26 76 + 78: 6(float) Load 77 + 79: 46(ptr) AccessChain 63(clip) 26 41 + Store 79 78 + 81: 69(ptr) AccessChain 68(clip) 26 80 + 82: 6(float) Load 81 + 83: 46(ptr) AccessChain 63(clip) 26 9 + Store 83 82 + 84: 69(ptr) AccessChain 68(clip) 31 26 + 85: 6(float) Load 84 + 86: 46(ptr) AccessChain 63(clip) 31 45 + Store 86 85 + 87: 69(ptr) AccessChain 68(clip) 31 31 + 88: 6(float) Load 87 + 89: 46(ptr) AccessChain 63(clip) 31 51 + Store 89 88 + 90: 69(ptr) AccessChain 68(clip) 31 76 + 91: 6(float) Load 90 + 92: 46(ptr) AccessChain 63(clip) 31 41 + Store 92 91 + 93: 69(ptr) AccessChain 68(clip) 31 80 + 94: 6(float) Load 93 + 95: 46(ptr) AccessChain 63(clip) 31 9 + Store 95 94 + 96: 69(ptr) AccessChain 68(clip) 76 26 + 97: 6(float) Load 96 + 98: 46(ptr) AccessChain 63(clip) 76 45 + Store 98 97 + 99: 69(ptr) AccessChain 68(clip) 76 31 + 100: 6(float) Load 99 + 101: 46(ptr) AccessChain 63(clip) 76 51 + Store 101 100 + 102: 69(ptr) AccessChain 68(clip) 76 76 + 103: 6(float) Load 102 + 104: 46(ptr) AccessChain 63(clip) 76 41 + Store 104 103 + 105: 69(ptr) AccessChain 68(clip) 76 80 + 106: 6(float) Load 105 + 107: 46(ptr) AccessChain 63(clip) 76 9 + Store 107 106 + 110: 10 Load 55(pos) + Store 109(param) 110 + 112: 12 Load 59(VertexID) + Store 111(param) 112 + 115: 10 Load 63(clip) + Store 114(param) 115 + 116: 2 FunctionCall 22(@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];) 109(param) 111(param) 113(param) 114(param) + 117: 15(S) Load 113(param) + Store 108(OutputStream) 117 + Return + FunctionEnd +22(@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];): 2 Function None 17 + 18(pos): 11(ptr) FunctionParameter + 19(VertexID): 13(ptr) FunctionParameter +20(OutputStream): 16(ptr) FunctionParameter + 21(clip): 11(ptr) FunctionParameter + 23: Label + 24(s): 16(ptr) Variable Function + 28: 27(ptr) AccessChain 18(pos) 26 + 29: 7(fvec4) Load 28 + 30: 27(ptr) AccessChain 24(s) 26 + Store 30 29 + 32: 27(ptr) AccessChain 21(clip) 26 + 33: 7(fvec4) Load 32 + 34: 14(fvec2) VectorShuffle 33 33 0 1 + 36: 35(ptr) AccessChain 24(s) 31 + Store 36 34 + 39: 27(ptr) AccessChain 24(s) 26 + 40: 7(fvec4) Load 39 + Store 38(OutputStream.pos) 40 + 47: 46(ptr) AccessChain 24(s) 31 45 + 48: 6(float) Load 47 + 50: 49(ptr) AccessChain 44(OutputStream.clip) 26 + Store 50 48 + 52: 46(ptr) AccessChain 24(s) 31 51 + 53: 6(float) Load 52 + 54: 49(ptr) AccessChain 44(OutputStream.clip) 31 + Store 54 53 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out new file mode 100644 index 0000000000..d1d1370a9f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out @@ -0,0 +1,194 @@ +hlsl.clipdistance-1.vert +Shader version: 500 +0:? Sequence +0:4 Function Definition: @main(vf4;f1;f1; ( temp void) +0:4 Function Parameters: +0:4 'pos' ( out 4-component vector of float) +0:4 'clip' ( out float) +0:4 'cull' ( out float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'pos' ( out 4-component vector of float) +0:5 Constant: +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:6 move second child to first child ( temp float) +0:6 'clip' ( out float) +0:6 Constant: +0:6 0.500000 +0:7 move second child to first child ( temp float) +0:7 'cull' ( out float) +0:7 Constant: +0:7 0.510000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Function Call: @main(vf4;f1;f1; ( temp void) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp float) +0:? 'cull' ( temp float) +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( out 4-component vector of float Position) +0:? 'pos' ( temp 4-component vector of float) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 1-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:? 'clip' ( temp float) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 1-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:? 'cull' ( temp float) +0:? Linker Objects +0:? 'pos' ( out 4-component vector of float Position) +0:? 'clip' ( out 1-element array of float ClipDistance) +0:? 'cull' ( out 1-element array of float CullDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:4 Function Definition: @main(vf4;f1;f1; ( temp void) +0:4 Function Parameters: +0:4 'pos' ( out 4-component vector of float) +0:4 'clip' ( out float) +0:4 'cull' ( out float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'pos' ( out 4-component vector of float) +0:5 Constant: +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:6 move second child to first child ( temp float) +0:6 'clip' ( out float) +0:6 Constant: +0:6 0.500000 +0:7 move second child to first child ( temp float) +0:7 'cull' ( out float) +0:7 Constant: +0:7 0.510000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Function Call: @main(vf4;f1;f1; ( temp void) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp float) +0:? 'cull' ( temp float) +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( out 4-component vector of float Position) +0:? 'pos' ( temp 4-component vector of float) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 1-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:? 'clip' ( temp float) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 1-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:? 'cull' ( temp float) +0:? Linker Objects +0:? 'pos' ( out 4-component vector of float Position) +0:? 'clip' ( out 1-element array of float ClipDistance) +0:? 'cull' ( out 1-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 46 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 31 37 43 + Source HLSL 500 + Name 4 "main" + Name 14 "@main(vf4;f1;f1;" + Name 11 "pos" + Name 12 "clip" + Name 13 "cull" + Name 20 "pos" + Name 21 "clip" + Name 22 "cull" + Name 23 "param" + Name 24 "param" + Name 25 "param" + Name 31 "pos" + Name 37 "clip" + Name 43 "cull" + Decorate 31(pos) BuiltIn Position + Decorate 37(clip) BuiltIn ClipDistance + Decorate 43(cull) BuiltIn CullDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypePointer Function 6(float) + 10: TypeFunction 2 8(ptr) 9(ptr) 9(ptr) + 16: 6(float) Constant 1065353216 + 17: 7(fvec4) ConstantComposite 16 16 16 16 + 18: 6(float) Constant 1056964608 + 19: 6(float) Constant 1057132380 + 30: TypePointer Output 7(fvec4) + 31(pos): 30(ptr) Variable Output + 33: TypeInt 32 0 + 34: 33(int) Constant 1 + 35: TypeArray 6(float) 34 + 36: TypePointer Output 35 + 37(clip): 36(ptr) Variable Output + 38: TypeInt 32 1 + 39: 38(int) Constant 0 + 41: TypePointer Output 6(float) + 43(cull): 36(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 20(pos): 8(ptr) Variable Function + 21(clip): 9(ptr) Variable Function + 22(cull): 9(ptr) Variable Function + 23(param): 8(ptr) Variable Function + 24(param): 9(ptr) Variable Function + 25(param): 9(ptr) Variable Function + 26: 2 FunctionCall 14(@main(vf4;f1;f1;) 23(param) 24(param) 25(param) + 27: 7(fvec4) Load 23(param) + Store 20(pos) 27 + 28: 6(float) Load 24(param) + Store 21(clip) 28 + 29: 6(float) Load 25(param) + Store 22(cull) 29 + 32: 7(fvec4) Load 20(pos) + Store 31(pos) 32 + 40: 6(float) Load 21(clip) + 42: 41(ptr) AccessChain 37(clip) 39 + Store 42 40 + 44: 6(float) Load 22(cull) + 45: 41(ptr) AccessChain 43(cull) 39 + Store 45 44 + Return + FunctionEnd +14(@main(vf4;f1;f1;): 2 Function None 10 + 11(pos): 8(ptr) FunctionParameter + 12(clip): 9(ptr) FunctionParameter + 13(cull): 9(ptr) FunctionParameter + 15: Label + Store 11(pos) 17 + Store 12(clip) 18 + Store 13(cull) 19 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out new file mode 100644 index 0000000000..64604ebb99 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out @@ -0,0 +1,419 @@ +hlsl.clipdistance-2.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'pos' ( in 4-component vector of float) +0:4 'clip' ( in 2-element array of 2-component vector of float) +0:4 'cull' ( in 2-element array of 2-component vector of float) +0:? Sequence +0:6 Branch: Return with expression +0:6 add ( temp 4-component vector of float) +0:6 add ( temp 4-component vector of float) +0:6 'pos' ( in 4-component vector of float) +0:6 direct index ( temp float) +0:6 direct index ( temp 2-component vector of float) +0:6 'clip' ( in 2-element array of 2-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const int) +0:6 direct index ( temp float) +0:6 direct index ( temp 2-component vector of float) +0:6 'cull' ( in 2-element array of 2-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 2 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 3 (const int) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 2 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 3 (const int) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:? 'cull' ( in 4-element array of float CullDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'pos' ( in 4-component vector of float) +0:4 'clip' ( in 2-element array of 2-component vector of float) +0:4 'cull' ( in 2-element array of 2-component vector of float) +0:? Sequence +0:6 Branch: Return with expression +0:6 add ( temp 4-component vector of float) +0:6 add ( temp 4-component vector of float) +0:6 'pos' ( in 4-component vector of float) +0:6 direct index ( temp float) +0:6 direct index ( temp 2-component vector of float) +0:6 'clip' ( in 2-element array of 2-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const int) +0:6 direct index ( temp float) +0:6 direct index ( temp 2-component vector of float) +0:6 'cull' ( in 2-element array of 2-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 2 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float ClipDistance) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:4 Constant: +0:4 3 (const int) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 2 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( in float CullDistance) +0:? 'cull' ( in 4-element array of float CullDistance) +0:4 Constant: +0:4 3 (const int) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? 'clip' ( in 4-element array of float ClipDistance) +0:? 'cull' ( in 4-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 84 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 37 43 62 76 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 18 "@main(vf4;vf2[2];vf2[2];" + Name 15 "pos" + Name 16 "clip" + Name 17 "cull" + Name 35 "pos" + Name 37 "pos" + Name 39 "clip" + Name 43 "clip" + Name 61 "cull" + Name 62 "cull" + Name 76 "@entryPointOutput" + Name 77 "param" + Name 79 "param" + Name 81 "param" + Decorate 37(pos) BuiltIn FragCoord + Decorate 43(clip) BuiltIn ClipDistance + Decorate 62(cull) BuiltIn CullDistance + Decorate 76(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeVector 6(float) 2 + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 9(fvec2) 11 + 13: TypePointer Function 12 + 14: TypeFunction 7(fvec4) 8(ptr) 13(ptr) 13(ptr) + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: 10(int) Constant 0 + 24: TypePointer Function 6(float) + 36: TypePointer Input 7(fvec4) + 37(pos): 36(ptr) Variable Input + 40: 10(int) Constant 4 + 41: TypeArray 6(float) 40 + 42: TypePointer Input 41 + 43(clip): 42(ptr) Variable Input + 44: TypePointer Input 6(float) + 48: 21(int) Constant 1 + 51: 10(int) Constant 1 + 53: 21(int) Constant 2 + 57: 21(int) Constant 3 + 62(cull): 42(ptr) Variable Input + 75: TypePointer Output 7(fvec4) +76(@entryPointOutput): 75(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 35(pos): 8(ptr) Variable Function + 39(clip): 13(ptr) Variable Function + 61(cull): 13(ptr) Variable Function + 77(param): 8(ptr) Variable Function + 79(param): 13(ptr) Variable Function + 81(param): 13(ptr) Variable Function + 38: 7(fvec4) Load 37(pos) + Store 35(pos) 38 + 45: 44(ptr) AccessChain 43(clip) 22 + 46: 6(float) Load 45 + 47: 24(ptr) AccessChain 39(clip) 22 23 + Store 47 46 + 49: 44(ptr) AccessChain 43(clip) 48 + 50: 6(float) Load 49 + 52: 24(ptr) AccessChain 39(clip) 22 51 + Store 52 50 + 54: 44(ptr) AccessChain 43(clip) 53 + 55: 6(float) Load 54 + 56: 24(ptr) AccessChain 39(clip) 48 23 + Store 56 55 + 58: 44(ptr) AccessChain 43(clip) 57 + 59: 6(float) Load 58 + 60: 24(ptr) AccessChain 39(clip) 48 51 + Store 60 59 + 63: 44(ptr) AccessChain 62(cull) 22 + 64: 6(float) Load 63 + 65: 24(ptr) AccessChain 61(cull) 22 23 + Store 65 64 + 66: 44(ptr) AccessChain 62(cull) 48 + 67: 6(float) Load 66 + 68: 24(ptr) AccessChain 61(cull) 22 51 + Store 68 67 + 69: 44(ptr) AccessChain 62(cull) 53 + 70: 6(float) Load 69 + 71: 24(ptr) AccessChain 61(cull) 48 23 + Store 71 70 + 72: 44(ptr) AccessChain 62(cull) 57 + 73: 6(float) Load 72 + 74: 24(ptr) AccessChain 61(cull) 48 51 + Store 74 73 + 78: 7(fvec4) Load 35(pos) + Store 77(param) 78 + 80: 12 Load 39(clip) + Store 79(param) 80 + 82: 12 Load 61(cull) + Store 81(param) 82 + 83: 7(fvec4) FunctionCall 18(@main(vf4;vf2[2];vf2[2];) 77(param) 79(param) 81(param) + Store 76(@entryPointOutput) 83 + Return + FunctionEnd +18(@main(vf4;vf2[2];vf2[2];): 7(fvec4) Function None 14 + 15(pos): 8(ptr) FunctionParameter + 16(clip): 13(ptr) FunctionParameter + 17(cull): 13(ptr) FunctionParameter + 19: Label + 20: 7(fvec4) Load 15(pos) + 25: 24(ptr) AccessChain 16(clip) 22 23 + 26: 6(float) Load 25 + 27: 7(fvec4) CompositeConstruct 26 26 26 26 + 28: 7(fvec4) FAdd 20 27 + 29: 24(ptr) AccessChain 17(cull) 22 23 + 30: 6(float) Load 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 32: 7(fvec4) FAdd 28 31 + ReturnValue 32 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out new file mode 100644 index 0000000000..a8abd02f21 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out @@ -0,0 +1,924 @@ +hlsl.clipdistance-2.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) +0:11 Function Parameters: +0:11 'pos' ( in 3-element array of 4-component vector of float) +0:11 'VertexID' ( in 3-element array of uint) +0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:11 'clip' ( in 3-element array of 2-element array of 2-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( temp 4-component vector of float) +0:14 'pos' ( in 3-element array of 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp 2-component vector of float) +0:15 direct index ( temp 2-component vector of float) +0:15 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 direct index ( temp 2-component vector of float) +0:15 direct index ( temp 2-element array of 2-component vector of float) +0:15 'clip' ( in 3-element array of 2-element array of 2-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:16 direct index ( temp 2-component vector of float) +0:16 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 direct index ( temp 2-component vector of float) +0:16 direct index ( temp 2-element array of 2-component vector of float) +0:16 'clip' ( in 3-element array of 2-element array of 2-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:18 Sequence +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 0 (const int) +0:? Sequence +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 3 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 EmitVertex ( temp void) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:11 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) +0:11 Function Parameters: +0:11 'pos' ( in 3-element array of 4-component vector of float) +0:11 'VertexID' ( in 3-element array of uint) +0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:11 'clip' ( in 3-element array of 2-element array of 2-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( temp 4-component vector of float) +0:14 'pos' ( in 3-element array of 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp 2-component vector of float) +0:15 direct index ( temp 2-component vector of float) +0:15 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 direct index ( temp 2-component vector of float) +0:15 direct index ( temp 2-element array of 2-component vector of float) +0:15 'clip' ( in 3-element array of 2-element array of 2-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:16 direct index ( temp 2-component vector of float) +0:16 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 direct index ( temp 2-component vector of float) +0:16 direct index ( temp 2-element array of 2-component vector of float) +0:16 'clip' ( in 3-element array of 2-element array of 2-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:18 Sequence +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 0 (const int) +0:? Sequence +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( out float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) +0:18 Constant: +0:18 3 (const int) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 EmitVertex ( temp void) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:11 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 direct index ( temp 2-element array of 2-component vector of float) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( in float ClipDistance) +0:11 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 3 (const int) +0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip}) +0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 128 + + Capability Geometry + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 44 50 71 75 80 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 17 "S" + MemberName 17(S) 0 "pos" + MemberName 17(S) 1 "clip" + Name 26 "@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];" + Name 22 "pos" + Name 23 "VertexID" + Name 24 "OutputStream" + Name 25 "clip" + Name 28 "s" + Name 44 "OutputStream.pos" + Name 50 "OutputStream.clip" + Name 69 "pos" + Name 71 "pos" + Name 73 "VertexID" + Name 75 "VertexID" + Name 77 "clip" + Name 80 "clip" + Name 118 "OutputStream" + Name 119 "param" + Name 121 "param" + Name 123 "param" + Name 124 "param" + Decorate 44(OutputStream.pos) BuiltIn Position + Decorate 50(OutputStream.clip) BuiltIn ClipDistance + Decorate 71(pos) BuiltIn Position + Decorate 75(VertexID) Location 0 + Decorate 80(clip) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Function 10 + 12: TypeArray 8(int) 9 + 13: TypePointer Function 12 + 14: TypeVector 6(float) 2 + 15: 8(int) Constant 2 + 16: TypeArray 14(fvec2) 15 + 17(S): TypeStruct 7(fvec4) 16 + 18: TypePointer Function 17(S) + 19: TypeArray 16 9 + 20: TypePointer Function 19 + 21: TypeFunction 2 11(ptr) 13(ptr) 18(ptr) 20(ptr) + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 31: TypePointer Function 7(fvec4) + 35: 29(int) Constant 1 + 36: TypePointer Function 14(fvec2) + 43: TypePointer Output 7(fvec4) +44(OutputStream.pos): 43(ptr) Variable Output + 47: 8(int) Constant 4 + 48: TypeArray 6(float) 47 + 49: TypePointer Output 48 +50(OutputStream.clip): 49(ptr) Variable Output + 51: 8(int) Constant 0 + 52: TypePointer Function 6(float) + 55: TypePointer Output 6(float) + 57: 8(int) Constant 1 + 61: 29(int) Constant 2 + 65: 29(int) Constant 3 + 70: TypePointer Input 10 + 71(pos): 70(ptr) Variable Input + 74: TypePointer Input 12 + 75(VertexID): 74(ptr) Variable Input + 78: TypeArray 48 9 + 79: TypePointer Input 78 + 80(clip): 79(ptr) Variable Input + 81: TypePointer Input 6(float) + 4(main): 2 Function None 3 + 5: Label + 69(pos): 11(ptr) Variable Function + 73(VertexID): 13(ptr) Variable Function + 77(clip): 20(ptr) Variable Function +118(OutputStream): 18(ptr) Variable Function + 119(param): 11(ptr) Variable Function + 121(param): 13(ptr) Variable Function + 123(param): 18(ptr) Variable Function + 124(param): 20(ptr) Variable Function + 72: 10 Load 71(pos) + Store 69(pos) 72 + 76: 12 Load 75(VertexID) + Store 73(VertexID) 76 + 82: 81(ptr) AccessChain 80(clip) 30 30 + 83: 6(float) Load 82 + 84: 52(ptr) AccessChain 77(clip) 30 30 51 + Store 84 83 + 85: 81(ptr) AccessChain 80(clip) 30 35 + 86: 6(float) Load 85 + 87: 52(ptr) AccessChain 77(clip) 30 30 57 + Store 87 86 + 88: 81(ptr) AccessChain 80(clip) 30 61 + 89: 6(float) Load 88 + 90: 52(ptr) AccessChain 77(clip) 30 35 51 + Store 90 89 + 91: 81(ptr) AccessChain 80(clip) 30 65 + 92: 6(float) Load 91 + 93: 52(ptr) AccessChain 77(clip) 30 35 57 + Store 93 92 + 94: 81(ptr) AccessChain 80(clip) 35 30 + 95: 6(float) Load 94 + 96: 52(ptr) AccessChain 77(clip) 35 30 51 + Store 96 95 + 97: 81(ptr) AccessChain 80(clip) 35 35 + 98: 6(float) Load 97 + 99: 52(ptr) AccessChain 77(clip) 35 30 57 + Store 99 98 + 100: 81(ptr) AccessChain 80(clip) 35 61 + 101: 6(float) Load 100 + 102: 52(ptr) AccessChain 77(clip) 35 35 51 + Store 102 101 + 103: 81(ptr) AccessChain 80(clip) 35 65 + 104: 6(float) Load 103 + 105: 52(ptr) AccessChain 77(clip) 35 35 57 + Store 105 104 + 106: 81(ptr) AccessChain 80(clip) 61 30 + 107: 6(float) Load 106 + 108: 52(ptr) AccessChain 77(clip) 61 30 51 + Store 108 107 + 109: 81(ptr) AccessChain 80(clip) 61 35 + 110: 6(float) Load 109 + 111: 52(ptr) AccessChain 77(clip) 61 30 57 + Store 111 110 + 112: 81(ptr) AccessChain 80(clip) 61 61 + 113: 6(float) Load 112 + 114: 52(ptr) AccessChain 77(clip) 61 35 51 + Store 114 113 + 115: 81(ptr) AccessChain 80(clip) 61 65 + 116: 6(float) Load 115 + 117: 52(ptr) AccessChain 77(clip) 61 35 57 + Store 117 116 + 120: 10 Load 69(pos) + Store 119(param) 120 + 122: 12 Load 73(VertexID) + Store 121(param) 122 + 125: 19 Load 77(clip) + Store 124(param) 125 + 126: 2 FunctionCall 26(@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];) 119(param) 121(param) 123(param) 124(param) + 127: 17(S) Load 123(param) + Store 118(OutputStream) 127 + Return + FunctionEnd +26(@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];): 2 Function None 21 + 22(pos): 11(ptr) FunctionParameter + 23(VertexID): 13(ptr) FunctionParameter +24(OutputStream): 18(ptr) FunctionParameter + 25(clip): 20(ptr) FunctionParameter + 27: Label + 28(s): 18(ptr) Variable Function + 32: 31(ptr) AccessChain 22(pos) 30 + 33: 7(fvec4) Load 32 + 34: 31(ptr) AccessChain 28(s) 30 + Store 34 33 + 37: 36(ptr) AccessChain 25(clip) 30 30 + 38: 14(fvec2) Load 37 + 39: 36(ptr) AccessChain 28(s) 35 30 + Store 39 38 + 40: 36(ptr) AccessChain 25(clip) 30 35 + 41: 14(fvec2) Load 40 + 42: 36(ptr) AccessChain 28(s) 35 35 + Store 42 41 + 45: 31(ptr) AccessChain 28(s) 30 + 46: 7(fvec4) Load 45 + Store 44(OutputStream.pos) 46 + 53: 52(ptr) AccessChain 28(s) 35 30 51 + 54: 6(float) Load 53 + 56: 55(ptr) AccessChain 50(OutputStream.clip) 30 + Store 56 54 + 58: 52(ptr) AccessChain 28(s) 35 30 57 + 59: 6(float) Load 58 + 60: 55(ptr) AccessChain 50(OutputStream.clip) 35 + Store 60 59 + 62: 52(ptr) AccessChain 28(s) 35 35 51 + 63: 6(float) Load 62 + 64: 55(ptr) AccessChain 50(OutputStream.clip) 61 + Store 64 63 + 66: 52(ptr) AccessChain 28(s) 35 35 57 + 67: 6(float) Load 66 + 68: 55(ptr) AccessChain 50(OutputStream.clip) 65 + Store 68 67 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out new file mode 100644 index 0000000000..397a25d7cf --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out @@ -0,0 +1,561 @@ +hlsl.clipdistance-2.vert +Shader version: 500 +0:? Sequence +0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp void) +0:4 Function Parameters: +0:4 'pos' ( out 4-component vector of float) +0:4 'clip' ( out 2-element array of 2-component vector of float) +0:4 'cull' ( out 2-element array of 2-component vector of float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'pos' ( out 4-component vector of float) +0:5 Constant: +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:6 direct index ( temp 2-component vector of float) +0:6 'clip' ( out 2-element array of 2-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0.500000 +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 'clip' ( out 2-element array of 2-component vector of float) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0.600000 +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 direct index ( temp 2-component vector of float) +0:8 'clip' ( out 2-element array of 2-component vector of float) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.700000 +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float) +0:9 direct index ( temp 2-component vector of float) +0:9 'clip' ( out 2-element array of 2-component vector of float) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0.800000 +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 'cull' ( out 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0.525000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 2-component vector of float) +0:12 'cull' ( out 2-element array of 2-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0.625000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:13 'cull' ( out 2-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.725000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 direct index ( temp 2-component vector of float) +0:14 'cull' ( out 2-element array of 2-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0.825000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp void) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( out 4-component vector of float Position) +0:? 'pos' ( temp 4-component vector of float) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 2 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 3 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 2 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 3 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:? Linker Objects +0:? 'pos' ( out 4-component vector of float Position) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:? 'cull' ( out 4-element array of float CullDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:4 Function Definition: @main(vf4;vf2[2];vf2[2]; ( temp void) +0:4 Function Parameters: +0:4 'pos' ( out 4-component vector of float) +0:4 'clip' ( out 2-element array of 2-component vector of float) +0:4 'cull' ( out 2-element array of 2-component vector of float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'pos' ( out 4-component vector of float) +0:5 Constant: +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:6 direct index ( temp 2-component vector of float) +0:6 'clip' ( out 2-element array of 2-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0.500000 +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 'clip' ( out 2-element array of 2-component vector of float) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0.600000 +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 direct index ( temp 2-component vector of float) +0:8 'clip' ( out 2-element array of 2-component vector of float) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.700000 +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float) +0:9 direct index ( temp 2-component vector of float) +0:9 'clip' ( out 2-element array of 2-component vector of float) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0.800000 +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 'cull' ( out 2-element array of 2-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0.525000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 2-component vector of float) +0:12 'cull' ( out 2-element array of 2-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0.625000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:13 'cull' ( out 2-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.725000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 direct index ( temp 2-component vector of float) +0:14 'cull' ( out 2-element array of 2-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0.825000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Function Call: @main(vf4;vf2[2];vf2[2]; ( temp void) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( out 4-component vector of float Position) +0:? 'pos' ( temp 4-component vector of float) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 2 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float ClipDistance) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:4 Constant: +0:4 3 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'clip' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:? Sequence +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 0 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 1 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 0 (const int) +0:4 Constant: +0:4 1 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 2 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:4 direct index ( out float CullDistance) +0:? 'cull' ( out 4-element array of float CullDistance) +0:4 Constant: +0:4 3 (const int) +0:4 direct index ( temp float) +0:4 direct index ( temp 2-component vector of float) +0:? 'cull' ( temp 2-element array of 2-component vector of float) +0:4 Constant: +0:4 1 (const int) +0:4 Constant: +0:4 1 (const int) +0:? Linker Objects +0:? 'pos' ( out 4-component vector of float Position) +0:? 'clip' ( out 4-element array of float ClipDistance) +0:? 'cull' ( out 4-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 89 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 55 60 76 + Source HLSL 500 + Name 4 "main" + Name 18 "@main(vf4;vf2[2];vf2[2];" + Name 15 "pos" + Name 16 "clip" + Name 17 "cull" + Name 44 "pos" + Name 45 "clip" + Name 46 "cull" + Name 47 "param" + Name 48 "param" + Name 49 "param" + Name 55 "pos" + Name 60 "clip" + Name 76 "cull" + Decorate 55(pos) BuiltIn Position + Decorate 60(clip) BuiltIn ClipDistance + Decorate 76(cull) BuiltIn CullDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeVector 6(float) 2 + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 9(fvec2) 11 + 13: TypePointer Function 12 + 14: TypeFunction 2 8(ptr) 13(ptr) 13(ptr) + 20: 6(float) Constant 1065353216 + 21: 7(fvec4) ConstantComposite 20 20 20 20 + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: 6(float) Constant 1056964608 + 25: 10(int) Constant 0 + 26: TypePointer Function 6(float) + 28: 6(float) Constant 1058642330 + 29: 10(int) Constant 1 + 31: 22(int) Constant 1 + 32: 6(float) Constant 1060320051 + 34: 6(float) Constant 1061997773 + 36: 6(float) Constant 1057384038 + 38: 6(float) Constant 1059061760 + 40: 6(float) Constant 1060739482 + 42: 6(float) Constant 1062417203 + 54: TypePointer Output 7(fvec4) + 55(pos): 54(ptr) Variable Output + 57: 10(int) Constant 4 + 58: TypeArray 6(float) 57 + 59: TypePointer Output 58 + 60(clip): 59(ptr) Variable Output + 63: TypePointer Output 6(float) + 68: 22(int) Constant 2 + 72: 22(int) Constant 3 + 76(cull): 59(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 44(pos): 8(ptr) Variable Function + 45(clip): 13(ptr) Variable Function + 46(cull): 13(ptr) Variable Function + 47(param): 8(ptr) Variable Function + 48(param): 13(ptr) Variable Function + 49(param): 13(ptr) Variable Function + 50: 2 FunctionCall 18(@main(vf4;vf2[2];vf2[2];) 47(param) 48(param) 49(param) + 51: 7(fvec4) Load 47(param) + Store 44(pos) 51 + 52: 12 Load 48(param) + Store 45(clip) 52 + 53: 12 Load 49(param) + Store 46(cull) 53 + 56: 7(fvec4) Load 44(pos) + Store 55(pos) 56 + 61: 26(ptr) AccessChain 45(clip) 23 25 + 62: 6(float) Load 61 + 64: 63(ptr) AccessChain 60(clip) 23 + Store 64 62 + 65: 26(ptr) AccessChain 45(clip) 23 29 + 66: 6(float) Load 65 + 67: 63(ptr) AccessChain 60(clip) 31 + Store 67 66 + 69: 26(ptr) AccessChain 45(clip) 31 25 + 70: 6(float) Load 69 + 71: 63(ptr) AccessChain 60(clip) 68 + Store 71 70 + 73: 26(ptr) AccessChain 45(clip) 31 29 + 74: 6(float) Load 73 + 75: 63(ptr) AccessChain 60(clip) 72 + Store 75 74 + 77: 26(ptr) AccessChain 46(cull) 23 25 + 78: 6(float) Load 77 + 79: 63(ptr) AccessChain 76(cull) 23 + Store 79 78 + 80: 26(ptr) AccessChain 46(cull) 23 29 + 81: 6(float) Load 80 + 82: 63(ptr) AccessChain 76(cull) 31 + Store 82 81 + 83: 26(ptr) AccessChain 46(cull) 31 25 + 84: 6(float) Load 83 + 85: 63(ptr) AccessChain 76(cull) 68 + Store 85 84 + 86: 26(ptr) AccessChain 46(cull) 31 29 + 87: 6(float) Load 86 + 88: 63(ptr) AccessChain 76(cull) 72 + Store 88 87 + Return + FunctionEnd +18(@main(vf4;vf2[2];vf2[2];): 2 Function None 14 + 15(pos): 8(ptr) FunctionParameter + 16(clip): 13(ptr) FunctionParameter + 17(cull): 13(ptr) FunctionParameter + 19: Label + Store 15(pos) 21 + 27: 26(ptr) AccessChain 16(clip) 23 25 + Store 27 24 + 30: 26(ptr) AccessChain 16(clip) 23 29 + Store 30 28 + 33: 26(ptr) AccessChain 16(clip) 31 25 + Store 33 32 + 35: 26(ptr) AccessChain 16(clip) 31 29 + Store 35 34 + 37: 26(ptr) AccessChain 17(cull) 23 25 + Store 37 36 + 39: 26(ptr) AccessChain 17(cull) 23 29 + Store 39 38 + 41: 26(ptr) AccessChain 17(cull) 31 25 + Store 41 40 + 43: 26(ptr) AccessChain 17(cull) 31 29 + Store 43 42 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out new file mode 100644 index 0000000000..3b5082e870 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out @@ -0,0 +1,190 @@ +hlsl.clipdistance-3.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'pos' ( in 4-component vector of float) +0:4 'clip' ( in 2-element array of float) +0:4 'cull' ( in 2-element array of float) +0:? Sequence +0:5 Branch: Return with expression +0:5 add ( temp 4-component vector of float) +0:5 add ( temp 4-component vector of float) +0:5 'pos' ( in 4-component vector of float) +0:5 direct index ( temp float) +0:5 'clip' ( in 2-element array of float) +0:5 Constant: +0:5 0 (const int) +0:5 direct index ( temp float) +0:5 'cull' ( in 2-element array of float) +0:5 Constant: +0:5 0 (const int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'clip' ( temp 2-element array of float) +0:? 'clip' ( in 2-element array of float ClipDistance) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'cull' ( temp 2-element array of float) +0:? 'cull' ( in 2-element array of float CullDistance) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of float) +0:? 'cull' ( temp 2-element array of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? 'clip' ( in 2-element array of float ClipDistance) +0:? 'cull' ( in 2-element array of float CullDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'pos' ( in 4-component vector of float) +0:4 'clip' ( in 2-element array of float) +0:4 'cull' ( in 2-element array of float) +0:? Sequence +0:5 Branch: Return with expression +0:5 add ( temp 4-component vector of float) +0:5 add ( temp 4-component vector of float) +0:5 'pos' ( in 4-component vector of float) +0:5 direct index ( temp float) +0:5 'clip' ( in 2-element array of float) +0:5 Constant: +0:5 0 (const int) +0:5 direct index ( temp float) +0:5 'cull' ( in 2-element array of float) +0:5 Constant: +0:5 0 (const int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'clip' ( temp 2-element array of float) +0:? 'clip' ( in 2-element array of float ClipDistance) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'cull' ( temp 2-element array of float) +0:? 'cull' ( in 2-element array of float CullDistance) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of float) +0:? 'cull' ( temp 2-element array of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:? 'clip' ( in 2-element array of float ClipDistance) +0:? 'cull' ( in 2-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 53 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 35 39 42 45 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 17 "@main(vf4;f1[2];f1[2];" + Name 14 "pos" + Name 15 "clip" + Name 16 "cull" + Name 33 "pos" + Name 35 "pos" + Name 37 "clip" + Name 39 "clip" + Name 41 "cull" + Name 42 "cull" + Name 45 "@entryPointOutput" + Name 46 "param" + Name 48 "param" + Name 50 "param" + Decorate 35(pos) BuiltIn FragCoord + Decorate 39(clip) BuiltIn ClipDistance + Decorate 42(cull) BuiltIn CullDistance + Decorate 45(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(float) 10 + 12: TypePointer Function 11 + 13: TypeFunction 7(fvec4) 8(ptr) 12(ptr) 12(ptr) + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypePointer Function 6(float) + 34: TypePointer Input 7(fvec4) + 35(pos): 34(ptr) Variable Input + 38: TypePointer Input 11 + 39(clip): 38(ptr) Variable Input + 42(cull): 38(ptr) Variable Input + 44: TypePointer Output 7(fvec4) +45(@entryPointOutput): 44(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 33(pos): 8(ptr) Variable Function + 37(clip): 12(ptr) Variable Function + 41(cull): 12(ptr) Variable Function + 46(param): 8(ptr) Variable Function + 48(param): 12(ptr) Variable Function + 50(param): 12(ptr) Variable Function + 36: 7(fvec4) Load 35(pos) + Store 33(pos) 36 + 40: 11 Load 39(clip) + Store 37(clip) 40 + 43: 11 Load 42(cull) + Store 41(cull) 43 + 47: 7(fvec4) Load 33(pos) + Store 46(param) 47 + 49: 11 Load 37(clip) + Store 48(param) 49 + 51: 11 Load 41(cull) + Store 50(param) 51 + 52: 7(fvec4) FunctionCall 17(@main(vf4;f1[2];f1[2];) 46(param) 48(param) 50(param) + Store 45(@entryPointOutput) 52 + Return + FunctionEnd +17(@main(vf4;f1[2];f1[2];): 7(fvec4) Function None 13 + 14(pos): 8(ptr) FunctionParameter + 15(clip): 12(ptr) FunctionParameter + 16(cull): 12(ptr) FunctionParameter + 18: Label + 19: 7(fvec4) Load 14(pos) + 23: 22(ptr) AccessChain 15(clip) 21 + 24: 6(float) Load 23 + 25: 7(fvec4) CompositeConstruct 24 24 24 24 + 26: 7(fvec4) FAdd 19 25 + 27: 22(ptr) AccessChain 16(cull) 21 + 28: 6(float) Load 27 + 29: 7(fvec4) CompositeConstruct 28 28 28 28 + 30: 7(fvec4) FAdd 26 29 + ReturnValue 30 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out new file mode 100644 index 0000000000..f8ba5c6d50 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out @@ -0,0 +1,830 @@ +hlsl.clipdistance-3.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:12 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) +0:12 Function Parameters: +0:12 'pos' ( in 3-element array of 4-component vector of float) +0:12 'VertexID' ( in 3-element array of uint) +0:12 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:12 'clip' ( in 3-element array of 4-component vector of float) +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 pos: direct index for structure ( temp 4-component vector of float) +0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:15 Constant: +0:15 0 (const int) +0:15 direct index ( temp 4-component vector of float) +0:15 'pos' ( in 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:16 clip0: direct index for structure ( temp 2-component vector of float) +0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:16 Constant: +0:16 1 (const int) +0:16 vector swizzle ( temp 2-component vector of float) +0:16 direct index ( temp 4-component vector of float) +0:16 'clip' ( in 3-element array of 4-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp 2-component vector of float) +0:17 clip1: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 vector swizzle ( temp 2-component vector of float) +0:17 direct index ( temp 4-component vector of float) +0:17 'clip' ( in 3-element array of 4-component vector of float) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:19 pos: direct index for structure ( temp 4-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 0 (const int) +0:? Sequence +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 clip0: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 1 (const int) +0:19 direct index ( temp float) +0:19 clip0: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 1 (const int) +0:? Sequence +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 2 (const int) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 3 (const int) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 EmitVertex ( temp void) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:12 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:12 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) +0:12 Function Parameters: +0:12 'pos' ( in 3-element array of 4-component vector of float) +0:12 'VertexID' ( in 3-element array of uint) +0:12 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:12 'clip' ( in 3-element array of 4-component vector of float) +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 pos: direct index for structure ( temp 4-component vector of float) +0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:15 Constant: +0:15 0 (const int) +0:15 direct index ( temp 4-component vector of float) +0:15 'pos' ( in 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:16 clip0: direct index for structure ( temp 2-component vector of float) +0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:16 Constant: +0:16 1 (const int) +0:16 vector swizzle ( temp 2-component vector of float) +0:16 direct index ( temp 4-component vector of float) +0:16 'clip' ( in 3-element array of 4-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp 2-component vector of float) +0:17 clip1: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 vector swizzle ( temp 2-component vector of float) +0:17 direct index ( temp 4-component vector of float) +0:17 'clip' ( in 3-element array of 4-component vector of float) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:19 pos: direct index for structure ( temp 4-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 0 (const int) +0:? Sequence +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 clip0: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 1 (const int) +0:19 direct index ( temp float) +0:19 clip0: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 1 (const int) +0:? Sequence +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 2 (const int) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:19 Constant: +0:19 3 (const int) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 EmitVertex ( temp void) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:12 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 direct index ( temp 4-component vector of float) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( in float ClipDistance) +0:12 direct index ( in 4-element array of float ClipDistance) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 3 (const int) +0:12 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:? 'clip' ( temp 3-element array of 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 127 + + Capability Geometry + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 43 49 69 73 78 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 15 "S" + MemberName 15(S) 0 "pos" + MemberName 15(S) 1 "clip0" + MemberName 15(S) 2 "clip1" + Name 22 "@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];" + Name 18 "pos" + Name 19 "VertexID" + Name 20 "OutputStream" + Name 21 "clip" + Name 24 "s" + Name 43 "OutputStream.pos" + Name 49 "OutputStream.clip1" + Name 67 "pos" + Name 69 "pos" + Name 71 "VertexID" + Name 73 "VertexID" + Name 75 "clip" + Name 78 "clip" + Name 117 "OutputStream" + Name 118 "param" + Name 120 "param" + Name 122 "param" + Name 123 "param" + Decorate 43(OutputStream.pos) BuiltIn Position + Decorate 49(OutputStream.clip1) BuiltIn ClipDistance + Decorate 69(pos) BuiltIn Position + Decorate 73(VertexID) Location 0 + Decorate 78(clip) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Function 10 + 12: TypeArray 8(int) 9 + 13: TypePointer Function 12 + 14: TypeVector 6(float) 2 + 15(S): TypeStruct 7(fvec4) 14(fvec2) 14(fvec2) + 16: TypePointer Function 15(S) + 17: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 11(ptr) + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27: TypePointer Function 7(fvec4) + 31: 25(int) Constant 1 + 35: TypePointer Function 14(fvec2) + 37: 25(int) Constant 2 + 42: TypePointer Output 7(fvec4) +43(OutputStream.pos): 42(ptr) Variable Output + 46: 8(int) Constant 4 + 47: TypeArray 6(float) 46 + 48: TypePointer Output 47 +49(OutputStream.clip1): 48(ptr) Variable Output + 50: 8(int) Constant 0 + 51: TypePointer Function 6(float) + 54: TypePointer Output 6(float) + 56: 8(int) Constant 1 + 63: 25(int) Constant 3 + 68: TypePointer Input 10 + 69(pos): 68(ptr) Variable Input + 72: TypePointer Input 12 + 73(VertexID): 72(ptr) Variable Input + 76: TypeArray 47 9 + 77: TypePointer Input 76 + 78(clip): 77(ptr) Variable Input + 79: TypePointer Input 6(float) + 88: 8(int) Constant 2 + 4(main): 2 Function None 3 + 5: Label + 67(pos): 11(ptr) Variable Function + 71(VertexID): 13(ptr) Variable Function + 75(clip): 11(ptr) Variable Function +117(OutputStream): 16(ptr) Variable Function + 118(param): 11(ptr) Variable Function + 120(param): 13(ptr) Variable Function + 122(param): 16(ptr) Variable Function + 123(param): 11(ptr) Variable Function + 70: 10 Load 69(pos) + Store 67(pos) 70 + 74: 12 Load 73(VertexID) + Store 71(VertexID) 74 + 80: 79(ptr) AccessChain 78(clip) 26 26 + 81: 6(float) Load 80 + 82: 51(ptr) AccessChain 75(clip) 26 50 + Store 82 81 + 83: 79(ptr) AccessChain 78(clip) 26 31 + 84: 6(float) Load 83 + 85: 51(ptr) AccessChain 75(clip) 26 56 + Store 85 84 + 86: 79(ptr) AccessChain 78(clip) 26 37 + 87: 6(float) Load 86 + 89: 51(ptr) AccessChain 75(clip) 26 88 + Store 89 87 + 90: 79(ptr) AccessChain 78(clip) 26 63 + 91: 6(float) Load 90 + 92: 51(ptr) AccessChain 75(clip) 26 9 + Store 92 91 + 93: 79(ptr) AccessChain 78(clip) 31 26 + 94: 6(float) Load 93 + 95: 51(ptr) AccessChain 75(clip) 31 50 + Store 95 94 + 96: 79(ptr) AccessChain 78(clip) 31 31 + 97: 6(float) Load 96 + 98: 51(ptr) AccessChain 75(clip) 31 56 + Store 98 97 + 99: 79(ptr) AccessChain 78(clip) 31 37 + 100: 6(float) Load 99 + 101: 51(ptr) AccessChain 75(clip) 31 88 + Store 101 100 + 102: 79(ptr) AccessChain 78(clip) 31 63 + 103: 6(float) Load 102 + 104: 51(ptr) AccessChain 75(clip) 31 9 + Store 104 103 + 105: 79(ptr) AccessChain 78(clip) 37 26 + 106: 6(float) Load 105 + 107: 51(ptr) AccessChain 75(clip) 37 50 + Store 107 106 + 108: 79(ptr) AccessChain 78(clip) 37 31 + 109: 6(float) Load 108 + 110: 51(ptr) AccessChain 75(clip) 37 56 + Store 110 109 + 111: 79(ptr) AccessChain 78(clip) 37 37 + 112: 6(float) Load 111 + 113: 51(ptr) AccessChain 75(clip) 37 88 + Store 113 112 + 114: 79(ptr) AccessChain 78(clip) 37 63 + 115: 6(float) Load 114 + 116: 51(ptr) AccessChain 75(clip) 37 9 + Store 116 115 + 119: 10 Load 67(pos) + Store 118(param) 119 + 121: 12 Load 71(VertexID) + Store 120(param) 121 + 124: 10 Load 75(clip) + Store 123(param) 124 + 125: 2 FunctionCall 22(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];) 118(param) 120(param) 122(param) 123(param) + 126: 15(S) Load 122(param) + Store 117(OutputStream) 126 + Return + FunctionEnd +22(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];): 2 Function None 17 + 18(pos): 11(ptr) FunctionParameter + 19(VertexID): 13(ptr) FunctionParameter +20(OutputStream): 16(ptr) FunctionParameter + 21(clip): 11(ptr) FunctionParameter + 23: Label + 24(s): 16(ptr) Variable Function + 28: 27(ptr) AccessChain 18(pos) 26 + 29: 7(fvec4) Load 28 + 30: 27(ptr) AccessChain 24(s) 26 + Store 30 29 + 32: 27(ptr) AccessChain 21(clip) 26 + 33: 7(fvec4) Load 32 + 34: 14(fvec2) VectorShuffle 33 33 0 1 + 36: 35(ptr) AccessChain 24(s) 31 + Store 36 34 + 38: 27(ptr) AccessChain 21(clip) 26 + 39: 7(fvec4) Load 38 + 40: 14(fvec2) VectorShuffle 39 39 2 3 + 41: 35(ptr) AccessChain 24(s) 37 + Store 41 40 + 44: 27(ptr) AccessChain 24(s) 26 + 45: 7(fvec4) Load 44 + Store 43(OutputStream.pos) 45 + 52: 51(ptr) AccessChain 24(s) 31 50 + 53: 6(float) Load 52 + 55: 54(ptr) AccessChain 49(OutputStream.clip1) 26 + Store 55 53 + 57: 51(ptr) AccessChain 24(s) 31 56 + 58: 6(float) Load 57 + 59: 54(ptr) AccessChain 49(OutputStream.clip1) 31 + Store 59 58 + 60: 51(ptr) AccessChain 24(s) 37 50 + 61: 6(float) Load 60 + 62: 54(ptr) AccessChain 49(OutputStream.clip1) 37 + Store 62 61 + 64: 51(ptr) AccessChain 24(s) 37 56 + 65: 6(float) Load 64 + 66: 54(ptr) AccessChain 49(OutputStream.clip1) 63 + Store 66 65 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out new file mode 100644 index 0000000000..01afd1797e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out @@ -0,0 +1,229 @@ +hlsl.clipdistance-3.vert +Shader version: 500 +0:? Sequence +0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp void) +0:4 Function Parameters: +0:4 'pos' ( out 4-component vector of float) +0:4 'clip' ( out 2-element array of float) +0:4 'cull' ( out 2-element array of float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'pos' ( out 4-component vector of float) +0:5 Constant: +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:6 'clip' ( out 2-element array of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0.500000 +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 'clip' ( out 2-element array of float) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0.600000 +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float) +0:9 'cull' ( out 2-element array of float) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 0.525000 +0:10 move second child to first child ( temp float) +0:10 direct index ( temp float) +0:10 'cull' ( out 2-element array of float) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0.625000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp void) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of float) +0:? 'cull' ( temp 2-element array of float) +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( out 4-component vector of float Position) +0:? 'pos' ( temp 4-component vector of float) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'clip' ( out 2-element array of float ClipDistance) +0:? 'clip' ( temp 2-element array of float) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'cull' ( out 2-element array of float CullDistance) +0:? 'cull' ( temp 2-element array of float) +0:? Linker Objects +0:? 'pos' ( out 4-component vector of float Position) +0:? 'clip' ( out 2-element array of float ClipDistance) +0:? 'cull' ( out 2-element array of float CullDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:4 Function Definition: @main(vf4;f1[2];f1[2]; ( temp void) +0:4 Function Parameters: +0:4 'pos' ( out 4-component vector of float) +0:4 'clip' ( out 2-element array of float) +0:4 'cull' ( out 2-element array of float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'pos' ( out 4-component vector of float) +0:5 Constant: +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:5 1.000000 +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:6 'clip' ( out 2-element array of float) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0.500000 +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 'clip' ( out 2-element array of float) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0.600000 +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float) +0:9 'cull' ( out 2-element array of float) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 0.525000 +0:10 move second child to first child ( temp float) +0:10 direct index ( temp float) +0:10 'cull' ( out 2-element array of float) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0.625000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Function Call: @main(vf4;f1[2];f1[2]; ( temp void) +0:? 'pos' ( temp 4-component vector of float) +0:? 'clip' ( temp 2-element array of float) +0:? 'cull' ( temp 2-element array of float) +0:4 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( out 4-component vector of float Position) +0:? 'pos' ( temp 4-component vector of float) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'clip' ( out 2-element array of float ClipDistance) +0:? 'clip' ( temp 2-element array of float) +0:? Sequence +0:4 move second child to first child ( temp 2-element array of float) +0:? 'cull' ( out 2-element array of float CullDistance) +0:? 'cull' ( temp 2-element array of float) +0:? Linker Objects +0:? 'pos' ( out 4-component vector of float Position) +0:? 'clip' ( out 2-element array of float ClipDistance) +0:? 'cull' ( out 2-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 51 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 44 47 49 + Source HLSL 500 + Name 4 "main" + Name 17 "@main(vf4;f1[2];f1[2];" + Name 14 "pos" + Name 15 "clip" + Name 16 "cull" + Name 33 "pos" + Name 34 "clip" + Name 35 "cull" + Name 36 "param" + Name 37 "param" + Name 38 "param" + Name 44 "pos" + Name 47 "clip" + Name 49 "cull" + Decorate 44(pos) BuiltIn Position + Decorate 47(clip) BuiltIn ClipDistance + Decorate 49(cull) BuiltIn CullDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 6(float) 10 + 12: TypePointer Function 11 + 13: TypeFunction 2 8(ptr) 12(ptr) 12(ptr) + 19: 6(float) Constant 1065353216 + 20: 7(fvec4) ConstantComposite 19 19 19 19 + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: 6(float) Constant 1056964608 + 24: TypePointer Function 6(float) + 26: 21(int) Constant 1 + 27: 6(float) Constant 1058642330 + 29: 6(float) Constant 1057384038 + 31: 6(float) Constant 1059061760 + 43: TypePointer Output 7(fvec4) + 44(pos): 43(ptr) Variable Output + 46: TypePointer Output 11 + 47(clip): 46(ptr) Variable Output + 49(cull): 46(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 33(pos): 8(ptr) Variable Function + 34(clip): 12(ptr) Variable Function + 35(cull): 12(ptr) Variable Function + 36(param): 8(ptr) Variable Function + 37(param): 12(ptr) Variable Function + 38(param): 12(ptr) Variable Function + 39: 2 FunctionCall 17(@main(vf4;f1[2];f1[2];) 36(param) 37(param) 38(param) + 40: 7(fvec4) Load 36(param) + Store 33(pos) 40 + 41: 11 Load 37(param) + Store 34(clip) 41 + 42: 11 Load 38(param) + Store 35(cull) 42 + 45: 7(fvec4) Load 33(pos) + Store 44(pos) 45 + 48: 11 Load 34(clip) + Store 47(clip) 48 + 50: 11 Load 35(cull) + Store 49(cull) 50 + Return + FunctionEnd +17(@main(vf4;f1[2];f1[2];): 2 Function None 13 + 14(pos): 8(ptr) FunctionParameter + 15(clip): 12(ptr) FunctionParameter + 16(cull): 12(ptr) FunctionParameter + 18: Label + Store 14(pos) 20 + 25: 24(ptr) AccessChain 15(clip) 22 + Store 25 23 + 28: 24(ptr) AccessChain 15(clip) 26 + Store 28 27 + 30: 24(ptr) AccessChain 16(cull) 22 + Store 30 29 + 32: 24(ptr) AccessChain 16(cull) 26 + Store 32 31 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out new file mode 100644 index 0000000000..95f81c9560 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out @@ -0,0 +1,262 @@ +hlsl.clipdistance-4.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:8 Constant: +0:8 0 (const int) +0:8 ClipRect: direct index for structure ( temp 4-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:8 Constant: +0:8 1 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 2 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 3 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 3 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:8 Constant: +0:8 0 (const int) +0:8 ClipRect: direct index for structure ( temp 4-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:8 Constant: +0:8 1 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 2 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 ClipRect: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 3 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 3 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf41; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 57 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 24 32 54 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Position" + MemberName 8(VS_OUTPUT) 1 "ClipRect" + Name 11 "@main(struct-VS_OUTPUT-vf4-vf41;" + Name 10 "v" + Name 22 "v" + Name 24 "v.Position" + Name 32 "v.ClipRect" + Name 54 "@entryPointOutput" + Decorate 24(v.Position) BuiltIn FragCoord + Decorate 32(v.ClipRect) BuiltIn ClipDistance + Decorate 54(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) + 9: TypeFunction 7(fvec4) 8(VS_OUTPUT) + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: 13(int) Constant 1 + 21: TypePointer Function 8(VS_OUTPUT) + 23: TypePointer Input 7(fvec4) + 24(v.Position): 23(ptr) Variable Input + 26: TypePointer Function 7(fvec4) + 28: TypeInt 32 0 + 29: 28(int) Constant 4 + 30: TypeArray 6(float) 29 + 31: TypePointer Input 30 + 32(v.ClipRect): 31(ptr) Variable Input + 33: TypePointer Input 6(float) + 36: 28(int) Constant 0 + 37: TypePointer Function 6(float) + 41: 28(int) Constant 1 + 43: 13(int) Constant 2 + 46: 28(int) Constant 2 + 48: 13(int) Constant 3 + 51: 28(int) Constant 3 + 53: TypePointer Output 7(fvec4) +54(@entryPointOutput): 53(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 22(v): 21(ptr) Variable Function + 25: 7(fvec4) Load 24(v.Position) + 27: 26(ptr) AccessChain 22(v) 14 + Store 27 25 + 34: 33(ptr) AccessChain 32(v.ClipRect) 14 + 35: 6(float) Load 34 + 38: 37(ptr) AccessChain 22(v) 16 36 + Store 38 35 + 39: 33(ptr) AccessChain 32(v.ClipRect) 16 + 40: 6(float) Load 39 + 42: 37(ptr) AccessChain 22(v) 16 41 + Store 42 40 + 44: 33(ptr) AccessChain 32(v.ClipRect) 43 + 45: 6(float) Load 44 + 47: 37(ptr) AccessChain 22(v) 16 46 + Store 47 45 + 49: 33(ptr) AccessChain 32(v.ClipRect) 48 + 50: 6(float) Load 49 + 52: 37(ptr) AccessChain 22(v) 16 51 + Store 52 50 + 55:8(VS_OUTPUT) Load 22(v) + 56: 7(fvec4) FunctionCall 11(@main(struct-VS_OUTPUT-vf4-vf41;) 55 + Store 54(@entryPointOutput) 56 + Return + FunctionEnd +11(@main(struct-VS_OUTPUT-vf4-vf41;): 7(fvec4) Function None 9 + 10(v):8(VS_OUTPUT) FunctionParameter + 12: Label + 15: 7(fvec4) CompositeExtract 10(v) 0 + 17: 7(fvec4) CompositeExtract 10(v) 1 + 18: 7(fvec4) FAdd 15 17 + ReturnValue 18 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out new file mode 100644 index 0000000000..1096e02c25 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out @@ -0,0 +1,819 @@ +hlsl.clipdistance-4.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) +0:13 Function Parameters: +0:13 'pos' ( in 3-element array of 4-component vector of float) +0:13 'VertexID' ( in 3-element array of uint) +0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:13 'clip0' ( in 3-element array of 2-component vector of float) +0:13 'clip1' ( in 3-element array of 2-component vector of float) +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 pos: direct index for structure ( temp 4-component vector of float) +0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:16 Constant: +0:16 0 (const int) +0:16 direct index ( temp 4-component vector of float) +0:16 'pos' ( in 3-element array of 4-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:17 move second child to first child ( temp 2-component vector of float) +0:17 clip0: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:17 Constant: +0:17 1 (const int) +0:17 direct index ( temp 2-component vector of float) +0:17 'clip0' ( in 3-element array of 2-component vector of float) +0:17 Constant: +0:17 0 (const int) +0:18 move second child to first child ( temp 2-component vector of float) +0:18 clip1: direct index for structure ( temp 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp 2-component vector of float) +0:18 'clip1' ( in 3-element array of 2-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:20 Sequence +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:20 pos: direct index for structure ( temp 4-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 0 (const int) +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 0 (const int) +0:20 direct index ( temp float) +0:20 clip0: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 1 (const int) +0:20 direct index ( temp float) +0:20 clip0: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 1 (const int) +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 2 (const int) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 3 (const int) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 EmitVertex ( temp void) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:13 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) +0:13 Function Parameters: +0:13 'pos' ( in 3-element array of 4-component vector of float) +0:13 'VertexID' ( in 3-element array of uint) +0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:13 'clip0' ( in 3-element array of 2-component vector of float) +0:13 'clip1' ( in 3-element array of 2-component vector of float) +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 pos: direct index for structure ( temp 4-component vector of float) +0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:16 Constant: +0:16 0 (const int) +0:16 direct index ( temp 4-component vector of float) +0:16 'pos' ( in 3-element array of 4-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:17 move second child to first child ( temp 2-component vector of float) +0:17 clip0: direct index for structure ( temp 2-component vector of float) +0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:17 Constant: +0:17 1 (const int) +0:17 direct index ( temp 2-component vector of float) +0:17 'clip0' ( in 3-element array of 2-component vector of float) +0:17 Constant: +0:17 0 (const int) +0:18 move second child to first child ( temp 2-component vector of float) +0:18 clip1: direct index for structure ( temp 2-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp 2-component vector of float) +0:18 'clip1' ( in 3-element array of 2-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:20 Sequence +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:20 pos: direct index for structure ( temp 4-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 0 (const int) +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 0 (const int) +0:20 direct index ( temp float) +0:20 clip0: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 1 (const int) +0:20 direct index ( temp float) +0:20 clip0: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 1 (const int) +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 2 (const int) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( out float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) +0:20 Constant: +0:20 3 (const int) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 EmitVertex ( temp void) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:13 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 2 (const int) +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 direct index ( temp 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 direct index ( in float ClipDistance) +0:13 direct index ( in 4-element array of float ClipDistance) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 3 (const int) +0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void) +0:? 'pos' ( temp 3-element array of 4-component vector of float) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1}) +0:? 'clip0' ( temp 3-element array of 2-component vector of float) +0:? 'clip1' ( temp 3-element array of 2-component vector of float) +0:? Linker Objects +0:? 'pos' ( in 3-element array of 4-component vector of float Position) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.pos' ( out 4-component vector of float Position) +0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance) +0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 130 + + Capability Geometry + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 44 50 70 74 79 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 15 "S" + MemberName 15(S) 0 "pos" + MemberName 15(S) 1 "clip0" + MemberName 15(S) 2 "clip1" + Name 25 "@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];" + Name 20 "pos" + Name 21 "VertexID" + Name 22 "OutputStream" + Name 23 "clip0" + Name 24 "clip1" + Name 27 "s" + Name 44 "OutputStream.pos" + Name 50 "OutputStream.clip1" + Name 68 "pos" + Name 70 "pos" + Name 72 "VertexID" + Name 74 "VertexID" + Name 76 "clip0" + Name 79 "clip0" + Name 99 "clip1" + Name 118 "OutputStream" + Name 119 "param" + Name 121 "param" + Name 123 "param" + Name 124 "param" + Name 126 "param" + Decorate 44(OutputStream.pos) BuiltIn Position + Decorate 50(OutputStream.clip1) BuiltIn ClipDistance + Decorate 70(pos) BuiltIn Position + Decorate 74(VertexID) Location 0 + Decorate 79(clip0) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Function 10 + 12: TypeArray 8(int) 9 + 13: TypePointer Function 12 + 14: TypeVector 6(float) 2 + 15(S): TypeStruct 7(fvec4) 14(fvec2) 14(fvec2) + 16: TypePointer Function 15(S) + 17: TypeArray 14(fvec2) 9 + 18: TypePointer Function 17 + 19: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 18(ptr) 18(ptr) + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 30: TypePointer Function 7(fvec4) + 34: 28(int) Constant 1 + 35: TypePointer Function 14(fvec2) + 39: 28(int) Constant 2 + 43: TypePointer Output 7(fvec4) +44(OutputStream.pos): 43(ptr) Variable Output + 47: 8(int) Constant 4 + 48: TypeArray 6(float) 47 + 49: TypePointer Output 48 +50(OutputStream.clip1): 49(ptr) Variable Output + 51: 8(int) Constant 0 + 52: TypePointer Function 6(float) + 55: TypePointer Output 6(float) + 57: 8(int) Constant 1 + 64: 28(int) Constant 3 + 69: TypePointer Input 10 + 70(pos): 69(ptr) Variable Input + 73: TypePointer Input 12 + 74(VertexID): 73(ptr) Variable Input + 77: TypeArray 48 9 + 78: TypePointer Input 77 + 79(clip0): 78(ptr) Variable Input + 80: TypePointer Input 6(float) + 4(main): 2 Function None 3 + 5: Label + 68(pos): 11(ptr) Variable Function + 72(VertexID): 13(ptr) Variable Function + 76(clip0): 18(ptr) Variable Function + 99(clip1): 18(ptr) Variable Function +118(OutputStream): 16(ptr) Variable Function + 119(param): 11(ptr) Variable Function + 121(param): 13(ptr) Variable Function + 123(param): 16(ptr) Variable Function + 124(param): 18(ptr) Variable Function + 126(param): 18(ptr) Variable Function + 71: 10 Load 70(pos) + Store 68(pos) 71 + 75: 12 Load 74(VertexID) + Store 72(VertexID) 75 + 81: 80(ptr) AccessChain 79(clip0) 29 29 + 82: 6(float) Load 81 + 83: 52(ptr) AccessChain 76(clip0) 29 51 + Store 83 82 + 84: 80(ptr) AccessChain 79(clip0) 29 34 + 85: 6(float) Load 84 + 86: 52(ptr) AccessChain 76(clip0) 29 57 + Store 86 85 + 87: 80(ptr) AccessChain 79(clip0) 29 39 + 88: 6(float) Load 87 + 89: 52(ptr) AccessChain 76(clip0) 34 51 + Store 89 88 + 90: 80(ptr) AccessChain 79(clip0) 29 64 + 91: 6(float) Load 90 + 92: 52(ptr) AccessChain 76(clip0) 34 57 + Store 92 91 + 93: 80(ptr) AccessChain 79(clip0) 34 29 + 94: 6(float) Load 93 + 95: 52(ptr) AccessChain 76(clip0) 39 51 + Store 95 94 + 96: 80(ptr) AccessChain 79(clip0) 34 34 + 97: 6(float) Load 96 + 98: 52(ptr) AccessChain 76(clip0) 39 57 + Store 98 97 + 100: 80(ptr) AccessChain 79(clip0) 29 39 + 101: 6(float) Load 100 + 102: 52(ptr) AccessChain 99(clip1) 29 51 + Store 102 101 + 103: 80(ptr) AccessChain 79(clip0) 29 64 + 104: 6(float) Load 103 + 105: 52(ptr) AccessChain 99(clip1) 29 57 + Store 105 104 + 106: 80(ptr) AccessChain 79(clip0) 34 39 + 107: 6(float) Load 106 + 108: 52(ptr) AccessChain 99(clip1) 34 51 + Store 108 107 + 109: 80(ptr) AccessChain 79(clip0) 34 64 + 110: 6(float) Load 109 + 111: 52(ptr) AccessChain 99(clip1) 34 57 + Store 111 110 + 112: 80(ptr) AccessChain 79(clip0) 39 39 + 113: 6(float) Load 112 + 114: 52(ptr) AccessChain 99(clip1) 39 51 + Store 114 113 + 115: 80(ptr) AccessChain 79(clip0) 39 64 + 116: 6(float) Load 115 + 117: 52(ptr) AccessChain 99(clip1) 39 57 + Store 117 116 + 120: 10 Load 68(pos) + Store 119(param) 120 + 122: 12 Load 72(VertexID) + Store 121(param) 122 + 125: 17 Load 76(clip0) + Store 124(param) 125 + 127: 17 Load 99(clip1) + Store 126(param) 127 + 128: 2 FunctionCall 25(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];) 119(param) 121(param) 123(param) 124(param) 126(param) + 129: 15(S) Load 123(param) + Store 118(OutputStream) 129 + Return + FunctionEnd +25(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];): 2 Function None 19 + 20(pos): 11(ptr) FunctionParameter + 21(VertexID): 13(ptr) FunctionParameter +22(OutputStream): 16(ptr) FunctionParameter + 23(clip0): 18(ptr) FunctionParameter + 24(clip1): 18(ptr) FunctionParameter + 26: Label + 27(s): 16(ptr) Variable Function + 31: 30(ptr) AccessChain 20(pos) 29 + 32: 7(fvec4) Load 31 + 33: 30(ptr) AccessChain 27(s) 29 + Store 33 32 + 36: 35(ptr) AccessChain 23(clip0) 29 + 37: 14(fvec2) Load 36 + 38: 35(ptr) AccessChain 27(s) 34 + Store 38 37 + 40: 35(ptr) AccessChain 24(clip1) 29 + 41: 14(fvec2) Load 40 + 42: 35(ptr) AccessChain 27(s) 39 + Store 42 41 + 45: 30(ptr) AccessChain 27(s) 29 + 46: 7(fvec4) Load 45 + Store 44(OutputStream.pos) 46 + 53: 52(ptr) AccessChain 27(s) 34 51 + 54: 6(float) Load 53 + 56: 55(ptr) AccessChain 50(OutputStream.clip1) 29 + Store 56 54 + 58: 52(ptr) AccessChain 27(s) 34 57 + 59: 6(float) Load 58 + 60: 55(ptr) AccessChain 50(OutputStream.clip1) 34 + Store 60 59 + 61: 52(ptr) AccessChain 27(s) 39 51 + 62: 6(float) Load 61 + 63: 55(ptr) AccessChain 50(OutputStream.clip1) 39 + Store 63 62 + 65: 52(ptr) AccessChain 27(s) 39 57 + 66: 6(float) Load 65 + 67: 55(ptr) AccessChain 50(OutputStream.clip1) 64 + Store 67 66 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out new file mode 100644 index 0000000000..d05fae41d7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out @@ -0,0 +1,382 @@ +hlsl.clipdistance-4.vert +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Function Parameters: +0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 Position: direct index for structure ( temp 4-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:15 move second child to first child ( temp float) +0:15 direct index ( temp float) +0:15 ClipRect: direct index for structure ( temp 4-component vector of float) +0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float) +0:16 ClipRect: direct index for structure ( temp 4-component vector of float) +0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 2.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 ClipRect: direct index for structure ( temp 4-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 ClipRect: direct index for structure ( temp 4-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 3 (const int) +0:18 Constant: +0:18 4.000000 +0:20 Branch: Return with expression +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 Constant: +0:11 0 (const int) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 0 (const int) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Function Parameters: +0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 Position: direct index for structure ( temp 4-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:15 move second child to first child ( temp float) +0:15 direct index ( temp float) +0:15 ClipRect: direct index for structure ( temp 4-component vector of float) +0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float) +0:16 ClipRect: direct index for structure ( temp 4-component vector of float) +0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 2.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 ClipRect: direct index for structure ( temp 4-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 ClipRect: direct index for structure ( temp 4-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 3 (const int) +0:18 Constant: +0:18 4.000000 +0:20 Branch: Return with expression +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 Constant: +0:11 0 (const int) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 0 (const int) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( temp float) +0:11 ClipRect: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 72 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 43 50 56 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_INPUT" + MemberName 8(VS_INPUT) 0 "Position" + Name 9 "VS_OUTPUT" + MemberName 9(VS_OUTPUT) 0 "Position" + MemberName 9(VS_OUTPUT) 1 "ClipRect" + Name 12 "@main(struct-VS_INPUT-vf41;" + Name 11 "v" + Name 15 "Output" + Name 41 "v" + Name 43 "v.Position" + Name 46 "flattenTemp" + Name 50 "@entryPointOutput.Position" + Name 56 "@entryPointOutput.ClipRect" + Decorate 43(v.Position) Location 0 + Decorate 50(@entryPointOutput.Position) BuiltIn Position + Decorate 56(@entryPointOutput.ClipRect) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_INPUT): TypeStruct 7(fvec4) + 9(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) + 10: TypeFunction 9(VS_OUTPUT) 8(VS_INPUT) + 14: TypePointer Function 9(VS_OUTPUT) + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: 6(float) Constant 0 + 19: 7(fvec4) ConstantComposite 18 18 18 18 + 20: TypePointer Function 7(fvec4) + 22: 16(int) Constant 1 + 23: 6(float) Constant 1065353216 + 24: TypeInt 32 0 + 25: 24(int) Constant 0 + 26: TypePointer Function 6(float) + 28: 6(float) Constant 1073741824 + 29: 24(int) Constant 1 + 31: 6(float) Constant 1077936128 + 32: 24(int) Constant 2 + 34: 6(float) Constant 1082130432 + 35: 24(int) Constant 3 + 40: TypePointer Function 8(VS_INPUT) + 42: TypePointer Input 7(fvec4) + 43(v.Position): 42(ptr) Variable Input + 49: TypePointer Output 7(fvec4) +50(@entryPointOutput.Position): 49(ptr) Variable Output + 53: 24(int) Constant 4 + 54: TypeArray 6(float) 53 + 55: TypePointer Output 54 +56(@entryPointOutput.ClipRect): 55(ptr) Variable Output + 59: TypePointer Output 6(float) + 64: 16(int) Constant 2 + 68: 16(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 41(v): 40(ptr) Variable Function + 46(flattenTemp): 14(ptr) Variable Function + 44: 7(fvec4) Load 43(v.Position) + 45: 20(ptr) AccessChain 41(v) 17 + Store 45 44 + 47: 8(VS_INPUT) Load 41(v) + 48:9(VS_OUTPUT) FunctionCall 12(@main(struct-VS_INPUT-vf41;) 47 + Store 46(flattenTemp) 48 + 51: 20(ptr) AccessChain 46(flattenTemp) 17 + 52: 7(fvec4) Load 51 + Store 50(@entryPointOutput.Position) 52 + 57: 26(ptr) AccessChain 46(flattenTemp) 22 25 + 58: 6(float) Load 57 + 60: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 17 + Store 60 58 + 61: 26(ptr) AccessChain 46(flattenTemp) 22 29 + 62: 6(float) Load 61 + 63: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 22 + Store 63 62 + 65: 26(ptr) AccessChain 46(flattenTemp) 22 32 + 66: 6(float) Load 65 + 67: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 64 + Store 67 66 + 69: 26(ptr) AccessChain 46(flattenTemp) 22 35 + 70: 6(float) Load 69 + 71: 59(ptr) AccessChain 56(@entryPointOutput.ClipRect) 68 + Store 71 70 + Return + FunctionEnd +12(@main(struct-VS_INPUT-vf41;):9(VS_OUTPUT) Function None 10 + 11(v): 8(VS_INPUT) FunctionParameter + 13: Label + 15(Output): 14(ptr) Variable Function + 21: 20(ptr) AccessChain 15(Output) 17 + Store 21 19 + 27: 26(ptr) AccessChain 15(Output) 22 25 + Store 27 23 + 30: 26(ptr) AccessChain 15(Output) 22 29 + Store 30 28 + 33: 26(ptr) AccessChain 15(Output) 22 32 + Store 33 31 + 36: 26(ptr) AccessChain 15(Output) 22 35 + Store 36 34 + 37:9(VS_OUTPUT) Load 15(Output) + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out new file mode 100644 index 0000000000..afdd4c4d7d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out @@ -0,0 +1,325 @@ +hlsl.clipdistance-5.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp 4-component vector of float) +0:8 add ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 direct index ( temp 2-component vector of float) +0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 direct index ( temp 2-component vector of float) +0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 3 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp 4-component vector of float) +0:8 add ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 direct index ( temp 2-component vector of float) +0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 direct index ( temp 2-component vector of float) +0:8 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:8 'v' ( const (read only) structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 2-component vector of float) +0:7 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in float ClipDistance) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) +0:7 Constant: +0:7 3 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(struct-VS_OUTPUT-vf4-vf2[2]1; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.ClipRect' ( in 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 62 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 40 59 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "VS_OUTPUT" + MemberName 12(VS_OUTPUT) 0 "Position" + MemberName 12(VS_OUTPUT) 1 "ClipRect" + Name 15 "@main(struct-VS_OUTPUT-vf4-vf2[2]1;" + Name 14 "v" + Name 31 "v" + Name 33 "v.Position" + Name 40 "v.ClipRect" + Name 59 "@entryPointOutput" + Decorate 33(v.Position) BuiltIn FragCoord + Decorate 40(v.ClipRect) BuiltIn ClipDistance + Decorate 59(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 2 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 8(fvec2) 10 + 12(VS_OUTPUT): TypeStruct 7(fvec4) 11 + 13: TypeFunction 7(fvec4) 12(VS_OUTPUT) + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 20: 17(int) Constant 1 + 21: 9(int) Constant 0 + 30: TypePointer Function 12(VS_OUTPUT) + 32: TypePointer Input 7(fvec4) + 33(v.Position): 32(ptr) Variable Input + 35: TypePointer Function 7(fvec4) + 37: 9(int) Constant 4 + 38: TypeArray 6(float) 37 + 39: TypePointer Input 38 + 40(v.ClipRect): 39(ptr) Variable Input + 41: TypePointer Input 6(float) + 44: TypePointer Function 6(float) + 48: 9(int) Constant 1 + 50: 17(int) Constant 2 + 54: 17(int) Constant 3 + 58: TypePointer Output 7(fvec4) +59(@entryPointOutput): 58(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 31(v): 30(ptr) Variable Function + 34: 7(fvec4) Load 33(v.Position) + 36: 35(ptr) AccessChain 31(v) 18 + Store 36 34 + 42: 41(ptr) AccessChain 40(v.ClipRect) 18 + 43: 6(float) Load 42 + 45: 44(ptr) AccessChain 31(v) 20 18 21 + Store 45 43 + 46: 41(ptr) AccessChain 40(v.ClipRect) 20 + 47: 6(float) Load 46 + 49: 44(ptr) AccessChain 31(v) 20 18 48 + Store 49 47 + 51: 41(ptr) AccessChain 40(v.ClipRect) 50 + 52: 6(float) Load 51 + 53: 44(ptr) AccessChain 31(v) 20 20 21 + Store 53 52 + 55: 41(ptr) AccessChain 40(v.ClipRect) 54 + 56: 6(float) Load 55 + 57: 44(ptr) AccessChain 31(v) 20 20 48 + Store 57 56 + 60:12(VS_OUTPUT) Load 31(v) + 61: 7(fvec4) FunctionCall 15(@main(struct-VS_OUTPUT-vf4-vf2[2]1;) 60 + Store 59(@entryPointOutput) 61 + Return + FunctionEnd +15(@main(struct-VS_OUTPUT-vf4-vf2[2]1;): 7(fvec4) Function None 13 + 14(v):12(VS_OUTPUT) FunctionParameter + 16: Label + 19: 7(fvec4) CompositeExtract 14(v) 0 + 22: 6(float) CompositeExtract 14(v) 1 0 0 + 23: 7(fvec4) CompositeConstruct 22 22 22 22 + 24: 7(fvec4) FAdd 19 23 + 25: 6(float) CompositeExtract 14(v) 1 1 0 + 26: 7(fvec4) CompositeConstruct 25 25 25 25 + 27: 7(fvec4) FAdd 24 26 + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out new file mode 100644 index 0000000000..3e8f1fe771 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out @@ -0,0 +1,431 @@ +hlsl.clipdistance-5.vert +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Function Parameters: +0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 Position: direct index for structure ( temp 4-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:15 move second child to first child ( temp float) +0:15 direct index ( temp float) +0:15 direct index ( temp 2-component vector of float) +0:15 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float) +0:16 direct index ( temp 2-component vector of float) +0:16 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 2.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 direct index ( temp 2-component vector of float) +0:17 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 3.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 4.000000 +0:20 Branch: Return with expression +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 Constant: +0:11 0 (const int) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 0 (const int) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Function Parameters: +0:11 'v' ( const (read only) structure{ temp 4-component vector of float Position}) +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 Position: direct index for structure ( temp 4-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:15 move second child to first child ( temp float) +0:15 direct index ( temp float) +0:15 direct index ( temp 2-component vector of float) +0:15 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float) +0:16 direct index ( temp 2-component vector of float) +0:16 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:16 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 2.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 direct index ( temp 2-component vector of float) +0:17 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 3.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 2-component vector of float) +0:18 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 4.000000 +0:20 Branch: Return with expression +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 Constant: +0:11 0 (const int) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:? 'v' ( temp structure{ temp 4-component vector of float Position}) +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:11 Position: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 0 (const int) +0:? Sequence +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 0 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( out float ClipDistance) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) +0:11 Constant: +0:11 3 (const int) +0:11 direct index ( temp float) +0:11 direct index ( temp 2-component vector of float) +0:11 ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 2-element array of 2-component vector of float ClipRect}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? 'v.Position' (layout( location=0) in 4-component vector of float) +0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 73 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 44 51 57 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_INPUT" + MemberName 8(VS_INPUT) 0 "Position" + Name 13 "VS_OUTPUT" + MemberName 13(VS_OUTPUT) 0 "Position" + MemberName 13(VS_OUTPUT) 1 "ClipRect" + Name 16 "@main(struct-VS_INPUT-vf41;" + Name 15 "v" + Name 19 "Output" + Name 42 "v" + Name 44 "v.Position" + Name 47 "flattenTemp" + Name 51 "@entryPointOutput.Position" + Name 57 "@entryPointOutput.ClipRect" + Decorate 44(v.Position) Location 0 + Decorate 51(@entryPointOutput.Position) BuiltIn Position + Decorate 57(@entryPointOutput.ClipRect) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_INPUT): TypeStruct 7(fvec4) + 9: TypeVector 6(float) 2 + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 9(fvec2) 11 + 13(VS_OUTPUT): TypeStruct 7(fvec4) 12 + 14: TypeFunction 13(VS_OUTPUT) 8(VS_INPUT) + 18: TypePointer Function 13(VS_OUTPUT) + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: 6(float) Constant 0 + 23: 7(fvec4) ConstantComposite 22 22 22 22 + 24: TypePointer Function 7(fvec4) + 26: 20(int) Constant 1 + 27: 6(float) Constant 1065353216 + 28: 10(int) Constant 0 + 29: TypePointer Function 6(float) + 31: 6(float) Constant 1073741824 + 32: 10(int) Constant 1 + 34: 6(float) Constant 1077936128 + 36: 6(float) Constant 1082130432 + 41: TypePointer Function 8(VS_INPUT) + 43: TypePointer Input 7(fvec4) + 44(v.Position): 43(ptr) Variable Input + 50: TypePointer Output 7(fvec4) +51(@entryPointOutput.Position): 50(ptr) Variable Output + 54: 10(int) Constant 4 + 55: TypeArray 6(float) 54 + 56: TypePointer Output 55 +57(@entryPointOutput.ClipRect): 56(ptr) Variable Output + 60: TypePointer Output 6(float) + 65: 20(int) Constant 2 + 69: 20(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 42(v): 41(ptr) Variable Function + 47(flattenTemp): 18(ptr) Variable Function + 45: 7(fvec4) Load 44(v.Position) + 46: 24(ptr) AccessChain 42(v) 21 + Store 46 45 + 48: 8(VS_INPUT) Load 42(v) + 49:13(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-vf41;) 48 + Store 47(flattenTemp) 49 + 52: 24(ptr) AccessChain 47(flattenTemp) 21 + 53: 7(fvec4) Load 52 + Store 51(@entryPointOutput.Position) 53 + 58: 29(ptr) AccessChain 47(flattenTemp) 26 21 28 + 59: 6(float) Load 58 + 61: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 21 + Store 61 59 + 62: 29(ptr) AccessChain 47(flattenTemp) 26 21 32 + 63: 6(float) Load 62 + 64: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 26 + Store 64 63 + 66: 29(ptr) AccessChain 47(flattenTemp) 26 26 28 + 67: 6(float) Load 66 + 68: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 65 + Store 68 67 + 70: 29(ptr) AccessChain 47(flattenTemp) 26 26 32 + 71: 6(float) Load 70 + 72: 60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 69 + Store 72 71 + Return + FunctionEnd +16(@main(struct-VS_INPUT-vf41;):13(VS_OUTPUT) Function None 14 + 15(v): 8(VS_INPUT) FunctionParameter + 17: Label + 19(Output): 18(ptr) Variable Function + 25: 24(ptr) AccessChain 19(Output) 21 + Store 25 23 + 30: 29(ptr) AccessChain 19(Output) 26 21 28 + Store 30 27 + 33: 29(ptr) AccessChain 19(Output) 26 21 32 + Store 33 31 + 35: 29(ptr) AccessChain 19(Output) 26 26 28 + Store 35 34 + 37: 29(ptr) AccessChain 19(Output) 26 26 32 + Store 37 36 + 38:13(VS_OUTPUT) Load 19(Output) + ReturnValue 38 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out new file mode 100644 index 0000000000..3ee8065aad --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out @@ -0,0 +1,399 @@ +hlsl.clipdistance-6.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 0 (const int) +0:9 clip0: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 1 (const int) +0:9 clip1: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 2 (const int) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 0 (const int) +0:9 clip0: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 1 (const int) +0:9 clip1: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 2 (const int) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf4-vf41; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 79 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 31 38 75 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Position" + MemberName 8(VS_OUTPUT) 1 "clip0" + MemberName 8(VS_OUTPUT) 2 "clip1" + Name 12 "@main(struct-VS_OUTPUT-vf4-vf4-vf41;" + Name 11 "v" + Name 29 "v" + Name 31 "v.Position" + Name 38 "v.clip1" + Name 75 "@entryPointOutput" + Name 76 "param" + Decorate 31(v.Position) BuiltIn FragCoord + Decorate 38(v.clip1) BuiltIn ClipDistance + Decorate 75(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) + 9: TypePointer Function 8(VS_OUTPUT) + 10: TypeFunction 7(fvec4) 9(ptr) + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Function 7(fvec4) + 19: 14(int) Constant 1 + 23: 14(int) Constant 2 + 30: TypePointer Input 7(fvec4) + 31(v.Position): 30(ptr) Variable Input + 34: TypeInt 32 0 + 35: 34(int) Constant 8 + 36: TypeArray 6(float) 35 + 37: TypePointer Input 36 + 38(v.clip1): 37(ptr) Variable Input + 39: TypePointer Input 6(float) + 42: 34(int) Constant 0 + 43: TypePointer Function 6(float) + 47: 34(int) Constant 1 + 51: 34(int) Constant 2 + 53: 14(int) Constant 3 + 56: 34(int) Constant 3 + 58: 14(int) Constant 4 + 62: 14(int) Constant 5 + 66: 14(int) Constant 6 + 70: 14(int) Constant 7 + 74: TypePointer Output 7(fvec4) +75(@entryPointOutput): 74(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 29(v): 9(ptr) Variable Function + 76(param): 9(ptr) Variable Function + 32: 7(fvec4) Load 31(v.Position) + 33: 16(ptr) AccessChain 29(v) 15 + Store 33 32 + 40: 39(ptr) AccessChain 38(v.clip1) 15 + 41: 6(float) Load 40 + 44: 43(ptr) AccessChain 29(v) 19 42 + Store 44 41 + 45: 39(ptr) AccessChain 38(v.clip1) 19 + 46: 6(float) Load 45 + 48: 43(ptr) AccessChain 29(v) 19 47 + Store 48 46 + 49: 39(ptr) AccessChain 38(v.clip1) 23 + 50: 6(float) Load 49 + 52: 43(ptr) AccessChain 29(v) 19 51 + Store 52 50 + 54: 39(ptr) AccessChain 38(v.clip1) 53 + 55: 6(float) Load 54 + 57: 43(ptr) AccessChain 29(v) 19 56 + Store 57 55 + 59: 39(ptr) AccessChain 38(v.clip1) 58 + 60: 6(float) Load 59 + 61: 43(ptr) AccessChain 29(v) 23 42 + Store 61 60 + 63: 39(ptr) AccessChain 38(v.clip1) 62 + 64: 6(float) Load 63 + 65: 43(ptr) AccessChain 29(v) 23 47 + Store 65 64 + 67: 39(ptr) AccessChain 38(v.clip1) 66 + 68: 6(float) Load 67 + 69: 43(ptr) AccessChain 29(v) 23 51 + Store 69 68 + 71: 39(ptr) AccessChain 38(v.clip1) 70 + 72: 6(float) Load 71 + 73: 43(ptr) AccessChain 29(v) 23 56 + Store 73 72 + 77:8(VS_OUTPUT) Load 29(v) + Store 76(param) 77 + 78: 7(fvec4) FunctionCall 12(@main(struct-VS_OUTPUT-vf4-vf4-vf41;) 76(param) + Store 75(@entryPointOutput) 78 + Return + FunctionEnd +12(@main(struct-VS_OUTPUT-vf4-vf4-vf41;): 7(fvec4) Function None 10 + 11(v): 9(ptr) FunctionParameter + 13: Label + 17: 16(ptr) AccessChain 11(v) 15 + 18: 7(fvec4) Load 17 + 20: 16(ptr) AccessChain 11(v) 19 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 18 21 + 24: 16(ptr) AccessChain 11(v) 23 + 25: 7(fvec4) Load 24 + 26: 7(fvec4) FAdd 22 25 + ReturnValue 26 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out new file mode 100644 index 0000000000..a386d0ac58 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out @@ -0,0 +1,556 @@ +hlsl.clipdistance-6.vert +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 Position: direct index for structure ( temp 4-component vector of float) +0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 clip0: direct index for structure ( temp 4-component vector of float) +0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 clip0: direct index for structure ( temp 4-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1.000000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 clip0: direct index for structure ( temp 4-component vector of float) +0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 2.000000 +0:15 move second child to first child ( temp float) +0:15 direct index ( temp float) +0:15 clip0: direct index for structure ( temp 4-component vector of float) +0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 3 (const int) +0:15 Constant: +0:15 3.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 clip1: direct index for structure ( temp 4-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 4.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 clip1: direct index for structure ( temp 4-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 5.000000 +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 4-component vector of float) +0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 6.000000 +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 4-component vector of float) +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 3 (const int) +0:20 Constant: +0:20 7.000000 +0:22 Branch: Return with expression +0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 3 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 Position: direct index for structure ( temp 4-component vector of float) +0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 clip0: direct index for structure ( temp 4-component vector of float) +0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 clip0: direct index for structure ( temp 4-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1.000000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 clip0: direct index for structure ( temp 4-component vector of float) +0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 2.000000 +0:15 move second child to first child ( temp float) +0:15 direct index ( temp float) +0:15 clip0: direct index for structure ( temp 4-component vector of float) +0:15 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 3 (const int) +0:15 Constant: +0:15 3.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 clip1: direct index for structure ( temp 4-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 4.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 clip1: direct index for structure ( temp 4-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 5.000000 +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 4-component vector of float) +0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 6.000000 +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 4-component vector of float) +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 3 (const int) +0:20 Constant: +0:20 7.000000 +0:22 Branch: Return with expression +0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 3 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 4-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 86 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 49 55 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Position" + MemberName 8(VS_OUTPUT) 1 "clip0" + MemberName 8(VS_OUTPUT) 2 "clip1" + Name 10 "@main(" + Name 13 "Output" + Name 46 "flattenTemp" + Name 49 "@entryPointOutput.Position" + Name 55 "@entryPointOutput.clip1" + Decorate 49(@entryPointOutput.Position) BuiltIn Position + Decorate 55(@entryPointOutput.clip1) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) + 9: TypeFunction 8(VS_OUTPUT) + 12: TypePointer Function 8(VS_OUTPUT) + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: 6(float) Constant 0 + 17: 7(fvec4) ConstantComposite 16 16 16 16 + 18: TypePointer Function 7(fvec4) + 20: 14(int) Constant 1 + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 25: 6(float) Constant 1065353216 + 26: 21(int) Constant 1 + 28: 6(float) Constant 1073741824 + 29: 21(int) Constant 2 + 31: 6(float) Constant 1077936128 + 32: 21(int) Constant 3 + 34: 14(int) Constant 2 + 35: 6(float) Constant 1082130432 + 37: 6(float) Constant 1084227584 + 39: 6(float) Constant 1086324736 + 41: 6(float) Constant 1088421888 + 48: TypePointer Output 7(fvec4) +49(@entryPointOutput.Position): 48(ptr) Variable Output + 52: 21(int) Constant 8 + 53: TypeArray 6(float) 52 + 54: TypePointer Output 53 +55(@entryPointOutput.clip1): 54(ptr) Variable Output + 58: TypePointer Output 6(float) + 66: 14(int) Constant 3 + 70: 14(int) Constant 4 + 74: 14(int) Constant 5 + 78: 14(int) Constant 6 + 82: 14(int) Constant 7 + 4(main): 2 Function None 3 + 5: Label + 46(flattenTemp): 12(ptr) Variable Function + 47:8(VS_OUTPUT) FunctionCall 10(@main() + Store 46(flattenTemp) 47 + 50: 18(ptr) AccessChain 46(flattenTemp) 15 + 51: 7(fvec4) Load 50 + Store 49(@entryPointOutput.Position) 51 + 56: 23(ptr) AccessChain 46(flattenTemp) 20 22 + 57: 6(float) Load 56 + 59: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 15 + Store 59 57 + 60: 23(ptr) AccessChain 46(flattenTemp) 20 26 + 61: 6(float) Load 60 + 62: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 20 + Store 62 61 + 63: 23(ptr) AccessChain 46(flattenTemp) 20 29 + 64: 6(float) Load 63 + 65: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 34 + Store 65 64 + 67: 23(ptr) AccessChain 46(flattenTemp) 20 32 + 68: 6(float) Load 67 + 69: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 66 + Store 69 68 + 71: 23(ptr) AccessChain 46(flattenTemp) 34 22 + 72: 6(float) Load 71 + 73: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 70 + Store 73 72 + 75: 23(ptr) AccessChain 46(flattenTemp) 34 26 + 76: 6(float) Load 75 + 77: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 74 + Store 77 76 + 79: 23(ptr) AccessChain 46(flattenTemp) 34 29 + 80: 6(float) Load 79 + 81: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 78 + Store 81 80 + 83: 23(ptr) AccessChain 46(flattenTemp) 34 32 + 84: 6(float) Load 83 + 85: 58(ptr) AccessChain 55(@entryPointOutput.clip1) 82 + Store 85 84 + Return + FunctionEnd + 10(@main():8(VS_OUTPUT) Function None 9 + 11: Label + 13(Output): 12(ptr) Variable Function + 19: 18(ptr) AccessChain 13(Output) 15 + Store 19 17 + 24: 23(ptr) AccessChain 13(Output) 20 22 + Store 24 16 + 27: 23(ptr) AccessChain 13(Output) 20 26 + Store 27 25 + 30: 23(ptr) AccessChain 13(Output) 20 29 + Store 30 28 + 33: 23(ptr) AccessChain 13(Output) 20 32 + Store 33 31 + 36: 23(ptr) AccessChain 13(Output) 34 22 + Store 36 35 + 38: 23(ptr) AccessChain 13(Output) 34 26 + Store 38 37 + 40: 23(ptr) AccessChain 13(Output) 34 29 + Store 40 39 + 42: 23(ptr) AccessChain 13(Output) 34 32 + Store 42 41 + 43:8(VS_OUTPUT) Load 13(Output) + ReturnValue 43 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out new file mode 100644 index 0000000000..94b6a791fc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out @@ -0,0 +1,385 @@ +hlsl.clipdistance-7.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 0 (const int) +0:9 direct index ( temp float) +0:9 clip0: direct index for structure ( temp 3-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:9 direct index ( temp float) +0:9 clip1: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 0 (const int) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 0 (const int) +0:9 direct index ( temp float) +0:9 clip0: direct index for structure ( temp 3-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:9 direct index ( temp float) +0:9 clip1: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 0 (const int) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-vf41; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.clip1' ( in 8-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 78 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 37 43 74 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "VS_OUTPUT" + MemberName 9(VS_OUTPUT) 0 "Position" + MemberName 9(VS_OUTPUT) 1 "clip0" + MemberName 9(VS_OUTPUT) 2 "clip1" + Name 13 "@main(struct-VS_OUTPUT-vf4-vf3-vf41;" + Name 12 "v" + Name 35 "v" + Name 37 "v.Position" + Name 43 "v.clip1" + Name 74 "@entryPointOutput" + Name 75 "param" + Decorate 37(v.Position) BuiltIn FragCoord + Decorate 43(v.clip1) BuiltIn ClipDistance + Decorate 74(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 7(fvec4) + 10: TypePointer Function 9(VS_OUTPUT) + 11: TypeFunction 7(fvec4) 10(ptr) + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Function 7(fvec4) + 20: 15(int) Constant 1 + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 28: 15(int) Constant 2 + 36: TypePointer Input 7(fvec4) + 37(v.Position): 36(ptr) Variable Input + 40: 21(int) Constant 8 + 41: TypeArray 6(float) 40 + 42: TypePointer Input 41 + 43(v.clip1): 42(ptr) Variable Input + 44: TypePointer Input 6(float) + 50: 21(int) Constant 1 + 54: 21(int) Constant 2 + 56: 15(int) Constant 4 + 60: 15(int) Constant 5 + 64: 15(int) Constant 6 + 68: 15(int) Constant 7 + 71: 21(int) Constant 3 + 73: TypePointer Output 7(fvec4) +74(@entryPointOutput): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 35(v): 10(ptr) Variable Function + 75(param): 10(ptr) Variable Function + 38: 7(fvec4) Load 37(v.Position) + 39: 17(ptr) AccessChain 35(v) 16 + Store 39 38 + 45: 44(ptr) AccessChain 43(v.clip1) 16 + 46: 6(float) Load 45 + 47: 23(ptr) AccessChain 35(v) 20 22 + Store 47 46 + 48: 44(ptr) AccessChain 43(v.clip1) 20 + 49: 6(float) Load 48 + 51: 23(ptr) AccessChain 35(v) 20 50 + Store 51 49 + 52: 44(ptr) AccessChain 43(v.clip1) 28 + 53: 6(float) Load 52 + 55: 23(ptr) AccessChain 35(v) 20 54 + Store 55 53 + 57: 44(ptr) AccessChain 43(v.clip1) 56 + 58: 6(float) Load 57 + 59: 23(ptr) AccessChain 35(v) 28 22 + Store 59 58 + 61: 44(ptr) AccessChain 43(v.clip1) 60 + 62: 6(float) Load 61 + 63: 23(ptr) AccessChain 35(v) 28 50 + Store 63 62 + 65: 44(ptr) AccessChain 43(v.clip1) 64 + 66: 6(float) Load 65 + 67: 23(ptr) AccessChain 35(v) 28 54 + Store 67 66 + 69: 44(ptr) AccessChain 43(v.clip1) 68 + 70: 6(float) Load 69 + 72: 23(ptr) AccessChain 35(v) 28 71 + Store 72 70 + 76:9(VS_OUTPUT) Load 35(v) + Store 75(param) 76 + 77: 7(fvec4) FunctionCall 13(@main(struct-VS_OUTPUT-vf4-vf3-vf41;) 75(param) + Store 74(@entryPointOutput) 77 + Return + FunctionEnd +13(@main(struct-VS_OUTPUT-vf4-vf3-vf41;): 7(fvec4) Function None 11 + 12(v): 10(ptr) FunctionParameter + 14: Label + 18: 17(ptr) AccessChain 12(v) 16 + 19: 7(fvec4) Load 18 + 24: 23(ptr) AccessChain 12(v) 20 22 + 25: 6(float) Load 24 + 26: 7(fvec4) CompositeConstruct 25 25 25 25 + 27: 7(fvec4) FAdd 19 26 + 29: 23(ptr) AccessChain 12(v) 28 22 + 30: 6(float) Load 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 32: 7(fvec4) FAdd 27 31 + ReturnValue 32 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out new file mode 100644 index 0000000000..87e34bd8ac --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out @@ -0,0 +1,505 @@ +hlsl.clipdistance-7.vert +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 Position: direct index for structure ( temp 4-component vector of float) +0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 clip0: direct index for structure ( temp 3-component vector of float) +0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 clip0: direct index for structure ( temp 3-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1.000000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 clip0: direct index for structure ( temp 3-component vector of float) +0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 2.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 clip1: direct index for structure ( temp 4-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 4.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 clip1: direct index for structure ( temp 4-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 5.000000 +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 4-component vector of float) +0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 6.000000 +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 4-component vector of float) +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 3 (const int) +0:20 Constant: +0:20 7.000000 +0:22 Branch: Return with expression +0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 Position: direct index for structure ( temp 4-component vector of float) +0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 clip0: direct index for structure ( temp 3-component vector of float) +0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 clip0: direct index for structure ( temp 3-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1.000000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 clip0: direct index for structure ( temp 3-component vector of float) +0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 2.000000 +0:17 move second child to first child ( temp float) +0:17 direct index ( temp float) +0:17 clip1: direct index for structure ( temp 4-component vector of float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 4.000000 +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 clip1: direct index for structure ( temp 4-component vector of float) +0:18 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 5.000000 +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 clip1: direct index for structure ( temp 4-component vector of float) +0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 6.000000 +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 clip1: direct index for structure ( temp 4-component vector of float) +0:20 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 3 (const int) +0:20 Constant: +0:20 7.000000 +0:22 Branch: Return with expression +0:22 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 4 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 5 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 6 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) +0:8 Constant: +0:8 7 (const int) +0:8 direct index ( temp float) +0:8 clip1: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp 4-component vector of float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 81 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 48 54 + Source HLSL 500 + Name 4 "main" + Name 9 "VS_OUTPUT" + MemberName 9(VS_OUTPUT) 0 "Position" + MemberName 9(VS_OUTPUT) 1 "clip0" + MemberName 9(VS_OUTPUT) 2 "clip1" + Name 11 "@main(" + Name 14 "Output" + Name 45 "flattenTemp" + Name 48 "@entryPointOutput.Position" + Name 54 "@entryPointOutput.clip1" + Decorate 48(@entryPointOutput.Position) BuiltIn Position + Decorate 54(@entryPointOutput.clip1) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 7(fvec4) + 10: TypeFunction 9(VS_OUTPUT) + 13: TypePointer Function 9(VS_OUTPUT) + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: 6(float) Constant 0 + 18: 7(fvec4) ConstantComposite 17 17 17 17 + 19: TypePointer Function 7(fvec4) + 21: 15(int) Constant 1 + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 24: TypePointer Function 6(float) + 26: 6(float) Constant 1065353216 + 27: 22(int) Constant 1 + 29: 6(float) Constant 1073741824 + 30: 22(int) Constant 2 + 32: 15(int) Constant 2 + 33: 6(float) Constant 1082130432 + 35: 6(float) Constant 1084227584 + 37: 6(float) Constant 1086324736 + 39: 6(float) Constant 1088421888 + 40: 22(int) Constant 3 + 47: TypePointer Output 7(fvec4) +48(@entryPointOutput.Position): 47(ptr) Variable Output + 51: 22(int) Constant 8 + 52: TypeArray 6(float) 51 + 53: TypePointer Output 52 +54(@entryPointOutput.clip1): 53(ptr) Variable Output + 57: TypePointer Output 6(float) + 65: 15(int) Constant 4 + 69: 15(int) Constant 5 + 73: 15(int) Constant 6 + 77: 15(int) Constant 7 + 4(main): 2 Function None 3 + 5: Label + 45(flattenTemp): 13(ptr) Variable Function + 46:9(VS_OUTPUT) FunctionCall 11(@main() + Store 45(flattenTemp) 46 + 49: 19(ptr) AccessChain 45(flattenTemp) 16 + 50: 7(fvec4) Load 49 + Store 48(@entryPointOutput.Position) 50 + 55: 24(ptr) AccessChain 45(flattenTemp) 21 23 + 56: 6(float) Load 55 + 58: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 16 + Store 58 56 + 59: 24(ptr) AccessChain 45(flattenTemp) 21 27 + 60: 6(float) Load 59 + 61: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 21 + Store 61 60 + 62: 24(ptr) AccessChain 45(flattenTemp) 21 30 + 63: 6(float) Load 62 + 64: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 32 + Store 64 63 + 66: 24(ptr) AccessChain 45(flattenTemp) 32 23 + 67: 6(float) Load 66 + 68: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 65 + Store 68 67 + 70: 24(ptr) AccessChain 45(flattenTemp) 32 27 + 71: 6(float) Load 70 + 72: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 69 + Store 72 71 + 74: 24(ptr) AccessChain 45(flattenTemp) 32 30 + 75: 6(float) Load 74 + 76: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 73 + Store 76 75 + 78: 24(ptr) AccessChain 45(flattenTemp) 32 40 + 79: 6(float) Load 78 + 80: 57(ptr) AccessChain 54(@entryPointOutput.clip1) 77 + Store 80 79 + Return + FunctionEnd + 11(@main():9(VS_OUTPUT) Function None 10 + 12: Label + 14(Output): 13(ptr) Variable Function + 20: 19(ptr) AccessChain 14(Output) 16 + Store 20 18 + 25: 24(ptr) AccessChain 14(Output) 21 23 + Store 25 17 + 28: 24(ptr) AccessChain 14(Output) 21 27 + Store 28 26 + 31: 24(ptr) AccessChain 14(Output) 21 30 + Store 31 29 + 34: 24(ptr) AccessChain 14(Output) 32 23 + Store 34 33 + 36: 24(ptr) AccessChain 14(Output) 32 27 + Store 36 35 + 38: 24(ptr) AccessChain 14(Output) 32 30 + Store 38 37 + 41: 24(ptr) AccessChain 14(Output) 32 40 + Store 41 39 + 42:9(VS_OUTPUT) Load 14(Output) + ReturnValue 42 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out new file mode 100644 index 0000000000..98c9505c86 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out @@ -0,0 +1,285 @@ +hlsl.clipdistance-8.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:9 Constant: +0:9 0 (const int) +0:9 direct index ( temp float) +0:9 clip0: direct index for structure ( temp 3-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:9 clip1: direct index for structure ( temp float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:9 Constant: +0:9 2 (const int) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 clip1: direct index for structure ( temp float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:9 Constant: +0:9 0 (const int) +0:9 direct index ( temp float) +0:9 clip0: direct index for structure ( temp 3-component vector of float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:9 clip1: direct index for structure ( temp float) +0:9 'v' ( in structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:9 Constant: +0:9 2 (const int) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 clip1: direct index for structure ( temp float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( in float ClipDistance) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(struct-VS_OUTPUT-vf4-vf3-f11; ( temp 4-component vector of float) +0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'v.Position' ( in 4-component vector of float FragCoord) +0:? 'v.clip1' ( in 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 65 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 37 43 61 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "VS_OUTPUT" + MemberName 9(VS_OUTPUT) 0 "Position" + MemberName 9(VS_OUTPUT) 1 "clip0" + MemberName 9(VS_OUTPUT) 2 "clip1" + Name 13 "@main(struct-VS_OUTPUT-vf4-vf3-f11;" + Name 12 "v" + Name 35 "v" + Name 37 "v.Position" + Name 43 "v.clip1" + Name 61 "@entryPointOutput" + Name 62 "param" + Decorate 37(v.Position) BuiltIn FragCoord + Decorate 43(v.clip1) BuiltIn ClipDistance + Decorate 61(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 6(float) + 10: TypePointer Function 9(VS_OUTPUT) + 11: TypeFunction 7(fvec4) 10(ptr) + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Function 7(fvec4) + 20: 15(int) Constant 1 + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 28: 15(int) Constant 2 + 36: TypePointer Input 7(fvec4) + 37(v.Position): 36(ptr) Variable Input + 40: 21(int) Constant 4 + 41: TypeArray 6(float) 40 + 42: TypePointer Input 41 + 43(v.clip1): 42(ptr) Variable Input + 44: TypePointer Input 6(float) + 50: 21(int) Constant 1 + 54: 21(int) Constant 2 + 56: 15(int) Constant 3 + 60: TypePointer Output 7(fvec4) +61(@entryPointOutput): 60(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 35(v): 10(ptr) Variable Function + 62(param): 10(ptr) Variable Function + 38: 7(fvec4) Load 37(v.Position) + 39: 17(ptr) AccessChain 35(v) 16 + Store 39 38 + 45: 44(ptr) AccessChain 43(v.clip1) 16 + 46: 6(float) Load 45 + 47: 23(ptr) AccessChain 35(v) 20 22 + Store 47 46 + 48: 44(ptr) AccessChain 43(v.clip1) 20 + 49: 6(float) Load 48 + 51: 23(ptr) AccessChain 35(v) 20 50 + Store 51 49 + 52: 44(ptr) AccessChain 43(v.clip1) 28 + 53: 6(float) Load 52 + 55: 23(ptr) AccessChain 35(v) 20 54 + Store 55 53 + 57: 44(ptr) AccessChain 43(v.clip1) 56 + 58: 6(float) Load 57 + 59: 23(ptr) AccessChain 35(v) 28 + Store 59 58 + 63:9(VS_OUTPUT) Load 35(v) + Store 62(param) 63 + 64: 7(fvec4) FunctionCall 13(@main(struct-VS_OUTPUT-vf4-vf3-f11;) 62(param) + Store 61(@entryPointOutput) 64 + Return + FunctionEnd +13(@main(struct-VS_OUTPUT-vf4-vf3-f11;): 7(fvec4) Function None 11 + 12(v): 10(ptr) FunctionParameter + 14: Label + 18: 17(ptr) AccessChain 12(v) 16 + 19: 7(fvec4) Load 18 + 24: 23(ptr) AccessChain 12(v) 20 22 + 25: 6(float) Load 24 + 26: 7(fvec4) CompositeConstruct 25 25 25 25 + 27: 7(fvec4) FAdd 19 26 + 29: 23(ptr) AccessChain 12(v) 28 + 30: 6(float) Load 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 32: 7(fvec4) FAdd 27 31 + ReturnValue 32 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out new file mode 100644 index 0000000000..88800e3c4e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out @@ -0,0 +1,336 @@ +hlsl.clipdistance-8.vert +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 Position: direct index for structure ( temp 4-component vector of float) +0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 clip0: direct index for structure ( temp 3-component vector of float) +0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 clip0: direct index for structure ( temp 3-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1.000000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 clip0: direct index for structure ( temp 3-component vector of float) +0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 2.000000 +0:17 move second child to first child ( temp float) +0:17 clip1: direct index for structure ( temp float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3.000000 +0:19 Branch: Return with expression +0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:8 clip1: direct index for structure ( temp float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:10 Position: direct index for structure ( temp 4-component vector of float) +0:10 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 clip0: direct index for structure ( temp 3-component vector of float) +0:12 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 0.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 clip0: direct index for structure ( temp 3-component vector of float) +0:13 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1.000000 +0:14 move second child to first child ( temp float) +0:14 direct index ( temp float) +0:14 clip0: direct index for structure ( temp 3-component vector of float) +0:14 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 2.000000 +0:17 move second child to first child ( temp float) +0:17 clip1: direct index for structure ( temp float) +0:17 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3.000000 +0:19 Branch: Return with expression +0:19 'Output' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Function Call: @main( ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:8 Position: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 0 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 0 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 1 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 clip0: direct index for structure ( temp 3-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:? Sequence +0:8 move second child to first child ( temp float) +0:8 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) +0:8 Constant: +0:8 3 (const int) +0:8 clip1: direct index for structure ( temp float) +0:8 'flattenTemp' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1}) +0:8 Constant: +0:8 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 62 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 41 47 + Source HLSL 500 + Name 4 "main" + Name 9 "VS_OUTPUT" + MemberName 9(VS_OUTPUT) 0 "Position" + MemberName 9(VS_OUTPUT) 1 "clip0" + MemberName 9(VS_OUTPUT) 2 "clip1" + Name 11 "@main(" + Name 14 "Output" + Name 38 "flattenTemp" + Name 41 "@entryPointOutput.Position" + Name 47 "@entryPointOutput.clip1" + Decorate 41(@entryPointOutput.Position) BuiltIn Position + Decorate 47(@entryPointOutput.clip1) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(VS_OUTPUT): TypeStruct 7(fvec4) 8(fvec3) 6(float) + 10: TypeFunction 9(VS_OUTPUT) + 13: TypePointer Function 9(VS_OUTPUT) + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: 6(float) Constant 0 + 18: 7(fvec4) ConstantComposite 17 17 17 17 + 19: TypePointer Function 7(fvec4) + 21: 15(int) Constant 1 + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 24: TypePointer Function 6(float) + 26: 6(float) Constant 1065353216 + 27: 22(int) Constant 1 + 29: 6(float) Constant 1073741824 + 30: 22(int) Constant 2 + 32: 15(int) Constant 2 + 33: 6(float) Constant 1077936128 + 40: TypePointer Output 7(fvec4) +41(@entryPointOutput.Position): 40(ptr) Variable Output + 44: 22(int) Constant 4 + 45: TypeArray 6(float) 44 + 46: TypePointer Output 45 +47(@entryPointOutput.clip1): 46(ptr) Variable Output + 50: TypePointer Output 6(float) + 58: 15(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 38(flattenTemp): 13(ptr) Variable Function + 39:9(VS_OUTPUT) FunctionCall 11(@main() + Store 38(flattenTemp) 39 + 42: 19(ptr) AccessChain 38(flattenTemp) 16 + 43: 7(fvec4) Load 42 + Store 41(@entryPointOutput.Position) 43 + 48: 24(ptr) AccessChain 38(flattenTemp) 21 23 + 49: 6(float) Load 48 + 51: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 16 + Store 51 49 + 52: 24(ptr) AccessChain 38(flattenTemp) 21 27 + 53: 6(float) Load 52 + 54: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 21 + Store 54 53 + 55: 24(ptr) AccessChain 38(flattenTemp) 21 30 + 56: 6(float) Load 55 + 57: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 32 + Store 57 56 + 59: 24(ptr) AccessChain 38(flattenTemp) 32 + 60: 6(float) Load 59 + 61: 50(ptr) AccessChain 47(@entryPointOutput.clip1) 58 + Store 61 60 + Return + FunctionEnd + 11(@main():9(VS_OUTPUT) Function None 10 + 12: Label + 14(Output): 13(ptr) Variable Function + 20: 19(ptr) AccessChain 14(Output) 16 + Store 20 18 + 25: 24(ptr) AccessChain 14(Output) 21 23 + Store 25 17 + 28: 24(ptr) AccessChain 14(Output) 21 27 + Store 28 26 + 31: 24(ptr) AccessChain 14(Output) 21 30 + Store 31 29 + 34: 24(ptr) AccessChain 14(Output) 32 + Store 34 33 + 35:9(VS_OUTPUT) Load 14(Output) + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out new file mode 100644 index 0000000000..ff7f261902 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out @@ -0,0 +1,250 @@ +hlsl.clipdistance-9.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: @main(vf4;vf3;f1; ( temp 4-component vector of float) +0:6 Function Parameters: +0:6 'Position' ( in 4-component vector of float) +0:6 'clip0' ( in 3-component vector of float) +0:6 'clip1' ( in float) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp 4-component vector of float) +0:7 add ( temp 4-component vector of float) +0:7 'Position' ( in 4-component vector of float) +0:7 direct index ( temp float) +0:7 'clip0' ( in 3-component vector of float) +0:7 Constant: +0:7 0 (const int) +0:7 'clip1' ( in float) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:? 'Position' ( temp 4-component vector of float) +0:? 'Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 0 (const int) +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:6 Constant: +0:6 1 (const int) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 1 (const int) +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:6 Constant: +0:6 2 (const int) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 2 (const int) +0:? Sequence +0:6 move second child to first child ( temp float) +0:? 'clip1' ( temp float) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 3 (const int) +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main(vf4;vf3;f1; ( temp 4-component vector of float) +0:? 'Position' ( temp 4-component vector of float) +0:? 'clip0' ( temp 3-component vector of float) +0:? 'clip1' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'Position' ( in 4-component vector of float FragCoord) +0:? 'clip0' ( in 4-element array of float ClipDistance) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: @main(vf4;vf3;f1; ( temp 4-component vector of float) +0:6 Function Parameters: +0:6 'Position' ( in 4-component vector of float) +0:6 'clip0' ( in 3-component vector of float) +0:6 'clip1' ( in float) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp 4-component vector of float) +0:7 add ( temp 4-component vector of float) +0:7 'Position' ( in 4-component vector of float) +0:7 direct index ( temp float) +0:7 'clip0' ( in 3-component vector of float) +0:7 Constant: +0:7 0 (const int) +0:7 'clip1' ( in float) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:? 'Position' ( temp 4-component vector of float) +0:? 'Position' ( in 4-component vector of float FragCoord) +0:? Sequence +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:6 Constant: +0:6 0 (const int) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 0 (const int) +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:6 Constant: +0:6 1 (const int) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 1 (const int) +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:6 Constant: +0:6 2 (const int) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 2 (const int) +0:? Sequence +0:6 move second child to first child ( temp float) +0:? 'clip1' ( temp float) +0:6 direct index ( in float ClipDistance) +0:? 'clip0' ( in 4-element array of float ClipDistance) +0:6 Constant: +0:6 3 (const int) +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main(vf4;vf3;f1; ( temp 4-component vector of float) +0:? 'Position' ( temp 4-component vector of float) +0:? 'clip0' ( temp 3-component vector of float) +0:? 'clip1' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'Position' ( in 4-component vector of float FragCoord) +0:? 'clip0' ( in 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 68 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 32 38 60 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 16 "@main(vf4;vf3;f1;" + Name 13 "Position" + Name 14 "clip0" + Name 15 "clip1" + Name 30 "Position" + Name 32 "Position" + Name 34 "clip0" + Name 38 "clip0" + Name 55 "clip1" + Name 60 "@entryPointOutput" + Name 61 "param" + Name 63 "param" + Name 65 "param" + Decorate 32(Position) BuiltIn FragCoord + Decorate 38(clip0) BuiltIn ClipDistance + Decorate 60(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeVector 6(float) 3 + 10: TypePointer Function 9(fvec3) + 11: TypePointer Function 6(float) + 12: TypeFunction 7(fvec4) 8(ptr) 10(ptr) 11(ptr) + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 31: TypePointer Input 7(fvec4) + 32(Position): 31(ptr) Variable Input + 35: 19(int) Constant 4 + 36: TypeArray 6(float) 35 + 37: TypePointer Input 36 + 38(clip0): 37(ptr) Variable Input + 39: TypeInt 32 1 + 40: 39(int) Constant 0 + 41: TypePointer Input 6(float) + 45: 39(int) Constant 1 + 48: 19(int) Constant 1 + 50: 39(int) Constant 2 + 53: 19(int) Constant 2 + 56: 39(int) Constant 3 + 59: TypePointer Output 7(fvec4) +60(@entryPointOutput): 59(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 30(Position): 8(ptr) Variable Function + 34(clip0): 10(ptr) Variable Function + 55(clip1): 11(ptr) Variable Function + 61(param): 8(ptr) Variable Function + 63(param): 10(ptr) Variable Function + 65(param): 11(ptr) Variable Function + 33: 7(fvec4) Load 32(Position) + Store 30(Position) 33 + 42: 41(ptr) AccessChain 38(clip0) 40 + 43: 6(float) Load 42 + 44: 11(ptr) AccessChain 34(clip0) 20 + Store 44 43 + 46: 41(ptr) AccessChain 38(clip0) 45 + 47: 6(float) Load 46 + 49: 11(ptr) AccessChain 34(clip0) 48 + Store 49 47 + 51: 41(ptr) AccessChain 38(clip0) 50 + 52: 6(float) Load 51 + 54: 11(ptr) AccessChain 34(clip0) 53 + Store 54 52 + 57: 41(ptr) AccessChain 38(clip0) 56 + 58: 6(float) Load 57 + Store 55(clip1) 58 + 62: 7(fvec4) Load 30(Position) + Store 61(param) 62 + 64: 9(fvec3) Load 34(clip0) + Store 63(param) 64 + 66: 6(float) Load 55(clip1) + Store 65(param) 66 + 67: 7(fvec4) FunctionCall 16(@main(vf4;vf3;f1;) 61(param) 63(param) 65(param) + Store 60(@entryPointOutput) 67 + Return + FunctionEnd +16(@main(vf4;vf3;f1;): 7(fvec4) Function None 12 + 13(Position): 8(ptr) FunctionParameter + 14(clip0): 10(ptr) FunctionParameter + 15(clip1): 11(ptr) FunctionParameter + 17: Label + 18: 7(fvec4) Load 13(Position) + 21: 11(ptr) AccessChain 14(clip0) 20 + 22: 6(float) Load 21 + 23: 7(fvec4) CompositeConstruct 22 22 22 22 + 24: 7(fvec4) FAdd 18 23 + 25: 6(float) Load 15(clip1) + 26: 7(fvec4) CompositeConstruct 25 25 25 25 + 27: 7(fvec4) FAdd 24 26 + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out new file mode 100644 index 0000000000..2d0c9b02e2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out @@ -0,0 +1,299 @@ +hlsl.clipdistance-9.vert +Shader version: 500 +0:? Sequence +0:7 Function Definition: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) +0:7 Function Parameters: +0:7 'clip0' ( out 3-component vector of float) +0:7 'clip1' ( out float) +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'Output' ( temp structure{ temp 4-component vector of float Position}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 'clip0' ( out 3-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 'clip0' ( out 3-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 'clip0' ( out 3-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 2.000000 +0:16 move second child to first child ( temp float) +0:16 'clip1' ( out float) +0:16 Constant: +0:16 3.000000 +0:18 Branch: Return with expression +0:18 'Output' ( temp structure{ temp 4-component vector of float Position}) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:7 Position: direct index for structure ( temp 4-component vector of float) +0:7 Function Call: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) +0:? 'clip0' ( temp 3-component vector of float) +0:? 'clip1' ( temp float) +0:7 Constant: +0:7 0 (const int) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 2 (const int) +0:7 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:7 Constant: +0:7 2 (const int) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 3 (const int) +0:? 'clip1' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? 'clip0' ( out 4-element array of float ClipDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:7 Function Definition: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) +0:7 Function Parameters: +0:7 'clip0' ( out 3-component vector of float) +0:7 'clip1' ( out float) +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 Position: direct index for structure ( temp 4-component vector of float) +0:9 'Output' ( temp structure{ temp 4-component vector of float Position}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 'clip0' ( out 3-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0.000000 +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 'clip0' ( out 3-component vector of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1.000000 +0:13 move second child to first child ( temp float) +0:13 direct index ( temp float) +0:13 'clip0' ( out 3-component vector of float) +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 2.000000 +0:16 move second child to first child ( temp float) +0:16 'clip1' ( out float) +0:16 Constant: +0:16 3.000000 +0:18 Branch: Return with expression +0:18 'Output' ( temp structure{ temp 4-component vector of float Position}) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:7 Position: direct index for structure ( temp 4-component vector of float) +0:7 Function Call: @main(vf3;f1; ( temp structure{ temp 4-component vector of float Position}) +0:? 'clip0' ( temp 3-component vector of float) +0:? 'clip1' ( temp float) +0:7 Constant: +0:7 0 (const int) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 2 (const int) +0:7 direct index ( temp float) +0:? 'clip0' ( temp 3-component vector of float) +0:7 Constant: +0:7 2 (const int) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( out float ClipDistance) +0:? 'clip0' ( out 4-element array of float ClipDistance) +0:7 Constant: +0:7 3 (const int) +0:? 'clip1' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput.Position' ( out 4-component vector of float Position) +0:? 'clip0' ( out 4-element array of float ClipDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 67 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 39 51 + Source HLSL 500 + Name 4 "main" + Name 11 "VS_OUTPUT" + MemberName 11(VS_OUTPUT) 0 "Position" + Name 15 "@main(vf3;f1;" + Name 13 "clip0" + Name 14 "clip1" + Name 18 "Output" + Name 39 "@entryPointOutput.Position" + Name 40 "clip0" + Name 41 "clip1" + Name 42 "param" + Name 43 "param" + Name 51 "clip0" + Decorate 39(@entryPointOutput.Position) BuiltIn Position + Decorate 51(clip0) BuiltIn ClipDistance + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 9: TypePointer Function 6(float) + 10: TypeVector 6(float) 4 + 11(VS_OUTPUT): TypeStruct 10(fvec4) + 12: TypeFunction 11(VS_OUTPUT) 8(ptr) 9(ptr) + 17: TypePointer Function 11(VS_OUTPUT) + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 21: 6(float) Constant 0 + 22: 10(fvec4) ConstantComposite 21 21 21 21 + 23: TypePointer Function 10(fvec4) + 25: TypeInt 32 0 + 26: 25(int) Constant 0 + 28: 6(float) Constant 1065353216 + 29: 25(int) Constant 1 + 31: 6(float) Constant 1073741824 + 32: 25(int) Constant 2 + 34: 6(float) Constant 1077936128 + 38: TypePointer Output 10(fvec4) +39(@entryPointOutput.Position): 38(ptr) Variable Output + 48: 25(int) Constant 4 + 49: TypeArray 6(float) 48 + 50: TypePointer Output 49 + 51(clip0): 50(ptr) Variable Output + 54: TypePointer Output 6(float) + 56: 19(int) Constant 1 + 60: 19(int) Constant 2 + 64: 19(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 40(clip0): 8(ptr) Variable Function + 41(clip1): 9(ptr) Variable Function + 42(param): 8(ptr) Variable Function + 43(param): 9(ptr) Variable Function + 44:11(VS_OUTPUT) FunctionCall 15(@main(vf3;f1;) 42(param) 43(param) + 45: 7(fvec3) Load 42(param) + Store 40(clip0) 45 + 46: 6(float) Load 43(param) + Store 41(clip1) 46 + 47: 10(fvec4) CompositeExtract 44 0 + Store 39(@entryPointOutput.Position) 47 + 52: 9(ptr) AccessChain 40(clip0) 26 + 53: 6(float) Load 52 + 55: 54(ptr) AccessChain 51(clip0) 20 + Store 55 53 + 57: 9(ptr) AccessChain 40(clip0) 29 + 58: 6(float) Load 57 + 59: 54(ptr) AccessChain 51(clip0) 56 + Store 59 58 + 61: 9(ptr) AccessChain 40(clip0) 32 + 62: 6(float) Load 61 + 63: 54(ptr) AccessChain 51(clip0) 60 + Store 63 62 + 65: 6(float) Load 41(clip1) + 66: 54(ptr) AccessChain 51(clip0) 64 + Store 66 65 + Return + FunctionEnd +15(@main(vf3;f1;):11(VS_OUTPUT) Function None 12 + 13(clip0): 8(ptr) FunctionParameter + 14(clip1): 9(ptr) FunctionParameter + 16: Label + 18(Output): 17(ptr) Variable Function + 24: 23(ptr) AccessChain 18(Output) 20 + Store 24 22 + 27: 9(ptr) AccessChain 13(clip0) 26 + Store 27 21 + 30: 9(ptr) AccessChain 13(clip0) 29 + Store 30 28 + 33: 9(ptr) AccessChain 13(clip0) 32 + Store 33 31 + Store 14(clip1) 34 + 35:11(VS_OUTPUT) Load 18(Output) + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.color.hull.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.color.hull.tesc.out new file mode 100644 index 0000000000..72e0b7e763 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.color.hull.tesc.out @@ -0,0 +1,572 @@ +hlsl.color.hull.tesc +Shader version: 500 +vertices = 3 +vertex spacing = equal_spacing +triangle order = cw +0:? Sequence +0:37 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:37 Function Parameters: +0:37 'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:37 'patchId' ( in uint) +0:? Sequence +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 edges: direct index for structure ( temp 3-element array of float) +0:42 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:42 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:42 Constant: +0:42 0 (const uint) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 edges: direct index for structure ( temp 3-element array of float) +0:43 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 1 (const int) +0:43 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:43 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:43 Constant: +0:43 0 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 edges: direct index for structure ( temp 3-element array of float) +0:44 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:44 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:44 Constant: +0:44 0 (const uint) +0:47 move second child to first child ( temp float) +0:47 inside: direct index for structure ( temp float) +0:47 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:47 Constant: +0:47 1 (const int) +0:47 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:47 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:47 Constant: +0:47 0 (const uint) +0:49 Branch: Return with expression +0:49 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:63 Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 Function Parameters: +0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 'pointId' ( in uint) +0:63 'patchId' ( in uint) +0:? Sequence +0:67 move second child to first child ( temp 3-component vector of float) +0:67 position: direct index for structure ( temp 3-component vector of float) +0:67 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:67 Constant: +0:67 0 (const int) +0:67 position: direct index for structure ( temp 3-component vector of float) +0:67 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:67 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:67 'pointId' ( in uint) +0:67 Constant: +0:67 0 (const int) +0:70 move second child to first child ( temp 4-component vector of float) +0:70 color: direct index for structure ( temp 4-component vector of float) +0:70 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:70 Constant: +0:70 1 (const int) +0:70 color: direct index for structure ( temp 4-component vector of float) +0:70 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:70 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:70 'pointId' ( in uint) +0:70 Constant: +0:70 1 (const int) +0:72 Branch: Return with expression +0:72 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 Function Definition: main( ( temp void) +0:63 Function Parameters: +0:? Sequence +0:63 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 move second child to first child ( temp uint) +0:? 'pointId' ( temp uint) +0:? 'pointId' ( in uint InvocationID) +0:63 move second child to first child ( temp uint) +0:? 'patchId' ( temp uint) +0:? 'patchId' ( in uint PrimitiveID) +0:63 move second child to first child ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 indirect index (layout( location=0) out structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'pointId' ( in uint InvocationID) +0:63 Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'pointId' ( temp uint) +0:? 'patchId' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'pointId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patchId' ( in uint PrimitiveID) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? inside: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 1 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'pointId' ( in uint InvocationID) +0:? 'patchId' ( in uint PrimitiveID) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +vertex spacing = equal_spacing +triangle order = cw +0:? Sequence +0:37 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:37 Function Parameters: +0:37 'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:37 'patchId' ( in uint) +0:? Sequence +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 edges: direct index for structure ( temp 3-element array of float) +0:42 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:42 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:42 Constant: +0:42 0 (const uint) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 edges: direct index for structure ( temp 3-element array of float) +0:43 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 1 (const int) +0:43 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:43 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:43 Constant: +0:43 0 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 edges: direct index for structure ( temp 3-element array of float) +0:44 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:44 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:44 Constant: +0:44 0 (const uint) +0:47 move second child to first child ( temp float) +0:47 inside: direct index for structure ( temp float) +0:47 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:47 Constant: +0:47 1 (const int) +0:47 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) +0:47 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:47 Constant: +0:47 0 (const uint) +0:49 Branch: Return with expression +0:49 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:63 Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 Function Parameters: +0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 'pointId' ( in uint) +0:63 'patchId' ( in uint) +0:? Sequence +0:67 move second child to first child ( temp 3-component vector of float) +0:67 position: direct index for structure ( temp 3-component vector of float) +0:67 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:67 Constant: +0:67 0 (const int) +0:67 position: direct index for structure ( temp 3-component vector of float) +0:67 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:67 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:67 'pointId' ( in uint) +0:67 Constant: +0:67 0 (const int) +0:70 move second child to first child ( temp 4-component vector of float) +0:70 color: direct index for structure ( temp 4-component vector of float) +0:70 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:70 Constant: +0:70 1 (const int) +0:70 color: direct index for structure ( temp 4-component vector of float) +0:70 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:70 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:70 'pointId' ( in uint) +0:70 Constant: +0:70 1 (const int) +0:72 Branch: Return with expression +0:72 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 Function Definition: main( ( temp void) +0:63 Function Parameters: +0:? Sequence +0:63 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 move second child to first child ( temp uint) +0:? 'pointId' ( temp uint) +0:? 'pointId' ( in uint InvocationID) +0:63 move second child to first child ( temp uint) +0:? 'patchId' ( temp uint) +0:? 'patchId' ( in uint PrimitiveID) +0:63 move second child to first child ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:63 indirect index (layout( location=0) out structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'pointId' ( in uint InvocationID) +0:63 Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'pointId' ( temp uint) +0:? 'patchId' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'pointId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patchId' ( in uint PrimitiveID) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? inside: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) +0:? Constant: +0:? 1 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) +0:? 'pointId' ( in uint InvocationID) +0:? 'patchId' ( in uint PrimitiveID) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 127 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 72 76 79 83 110 123 + ExecutionMode 4 OutputVertices 3 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingEqual + ExecutionMode 4 VertexOrderCw + Source HLSL 500 + Name 4 "main" + Name 9 "HullInputType" + MemberName 9(HullInputType) 0 "position" + MemberName 9(HullInputType) 1 "color" + Name 16 "ConstantOutputType" + MemberName 16(ConstantOutputType) 0 "edges" + MemberName 16(ConstantOutputType) 1 "inside" + Name 20 "ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;" + Name 18 "inputPatch" + Name 19 "patchId" + Name 22 "HullOutputType" + MemberName 22(HullOutputType) 0 "position" + MemberName 22(HullOutputType) 1 "color" + Name 27 "@main(struct-HullInputType-vf3-vf41[3];u1;u1;" + Name 24 "patch" + Name 25 "pointId" + Name 26 "patchId" + Name 30 "output" + Name 33 "TessellationBuffer" + MemberName 33(TessellationBuffer) 0 "tessellationAmount" + MemberName 33(TessellationBuffer) 1 "padding" + Name 35 "" + Name 56 "output" + Name 70 "patch" + Name 72 "patch" + Name 74 "pointId" + Name 76 "pointId" + Name 78 "patchId" + Name 79 "patchId" + Name 83 "@entryPointOutput" + Name 85 "param" + Name 87 "param" + Name 89 "param" + Name 102 "@patchConstantResult" + Name 103 "param" + Name 105 "param" + Name 110 "@patchConstantOutput.edges" + Name 123 "@patchConstantOutput.inside" + MemberDecorate 33(TessellationBuffer) 0 Offset 0 + MemberDecorate 33(TessellationBuffer) 1 Offset 4 + Decorate 33(TessellationBuffer) Block + Decorate 35 DescriptorSet 0 + Decorate 35 Binding 0 + Decorate 72(patch) Location 0 + Decorate 76(pointId) BuiltIn InvocationId + Decorate 79(patchId) BuiltIn PrimitiveId + Decorate 83(@entryPointOutput) Location 0 + Decorate 110(@patchConstantOutput.edges) Patch + Decorate 110(@patchConstantOutput.edges) BuiltIn TessLevelOuter + Decorate 123(@patchConstantOutput.inside) Patch + Decorate 123(@patchConstantOutput.inside) BuiltIn TessLevelInner + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeVector 6(float) 4 +9(HullInputType): TypeStruct 7(fvec3) 8(fvec4) + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypeArray 9(HullInputType) 11 + 13: TypePointer Function 12 + 14: TypePointer Function 10(int) + 15: TypeArray 6(float) 11 +16(ConstantOutputType): TypeStruct 15 6(float) + 17: TypeFunction 16(ConstantOutputType) 13(ptr) 14(ptr) +22(HullOutputType): TypeStruct 7(fvec3) 8(fvec4) + 23: TypeFunction 22(HullOutputType) 13(ptr) 14(ptr) 14(ptr) + 29: TypePointer Function 16(ConstantOutputType) + 31: TypeInt 32 1 + 32: 31(int) Constant 0 +33(TessellationBuffer): TypeStruct 6(float) 7(fvec3) + 34: TypePointer Uniform 33(TessellationBuffer) + 35: 34(ptr) Variable Uniform + 36: TypePointer Uniform 6(float) + 39: TypePointer Function 6(float) + 41: 31(int) Constant 1 + 45: 31(int) Constant 2 + 55: TypePointer Function 22(HullOutputType) + 58: TypePointer Function 7(fvec3) + 63: TypePointer Function 8(fvec4) + 71: TypePointer Input 12 + 72(patch): 71(ptr) Variable Input + 75: TypePointer Input 10(int) + 76(pointId): 75(ptr) Variable Input + 79(patchId): 75(ptr) Variable Input + 81: TypeArray 22(HullOutputType) 11 + 82: TypePointer Output 81 +83(@entryPointOutput): 82(ptr) Variable Output + 92: TypePointer Output 22(HullOutputType) + 94: 10(int) Constant 2 + 95: 10(int) Constant 4 + 96: 10(int) Constant 0 + 98: TypeBool + 108: TypeArray 6(float) 95 + 109: TypePointer Output 108 +110(@patchConstantOutput.edges): 109(ptr) Variable Output + 113: TypePointer Output 6(float) + 121: TypeArray 6(float) 94 + 122: TypePointer Output 121 +123(@patchConstantOutput.inside): 122(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 70(patch): 13(ptr) Variable Function + 74(pointId): 14(ptr) Variable Function + 78(patchId): 14(ptr) Variable Function + 85(param): 13(ptr) Variable Function + 87(param): 14(ptr) Variable Function + 89(param): 14(ptr) Variable Function +102(@patchConstantResult): 29(ptr) Variable Function + 103(param): 13(ptr) Variable Function + 105(param): 14(ptr) Variable Function + 73: 12 Load 72(patch) + Store 70(patch) 73 + 77: 10(int) Load 76(pointId) + Store 74(pointId) 77 + 80: 10(int) Load 79(patchId) + Store 78(patchId) 80 + 84: 10(int) Load 76(pointId) + 86: 12 Load 70(patch) + Store 85(param) 86 + 88: 10(int) Load 74(pointId) + Store 87(param) 88 + 90: 10(int) Load 78(patchId) + Store 89(param) 90 + 91:22(HullOutputType) FunctionCall 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;) 85(param) 87(param) 89(param) + 93: 92(ptr) AccessChain 83(@entryPointOutput) 84 + Store 93 91 + ControlBarrier 94 95 96 + 97: 10(int) Load 76(pointId) + 99: 98(bool) IEqual 97 32 + SelectionMerge 101 None + BranchConditional 99 100 101 + 100: Label + 104: 12 Load 70(patch) + Store 103(param) 104 + 106: 10(int) Load 79(patchId) + Store 105(param) 106 + 107:16(ConstantOutputType) FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 103(param) 105(param) + Store 102(@patchConstantResult) 107 + 111: 39(ptr) AccessChain 102(@patchConstantResult) 32 32 + 112: 6(float) Load 111 + 114: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 32 + Store 114 112 + 115: 39(ptr) AccessChain 102(@patchConstantResult) 32 41 + 116: 6(float) Load 115 + 117: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 41 + Store 117 116 + 118: 39(ptr) AccessChain 102(@patchConstantResult) 32 45 + 119: 6(float) Load 118 + 120: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 45 + Store 120 119 + 124: 39(ptr) AccessChain 102(@patchConstantResult) 41 + 125: 6(float) Load 124 + 126: 113(ptr) AccessChain 123(@patchConstantOutput.inside) 32 + Store 126 125 + Branch 101 + 101: Label + Return + FunctionEnd +20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;):16(ConstantOutputType) Function None 17 + 18(inputPatch): 13(ptr) FunctionParameter + 19(patchId): 14(ptr) FunctionParameter + 21: Label + 30(output): 29(ptr) Variable Function + 37: 36(ptr) AccessChain 35 32 + 38: 6(float) Load 37 + 40: 39(ptr) AccessChain 30(output) 32 32 + Store 40 38 + 42: 36(ptr) AccessChain 35 32 + 43: 6(float) Load 42 + 44: 39(ptr) AccessChain 30(output) 32 41 + Store 44 43 + 46: 36(ptr) AccessChain 35 32 + 47: 6(float) Load 46 + 48: 39(ptr) AccessChain 30(output) 32 45 + Store 48 47 + 49: 36(ptr) AccessChain 35 32 + 50: 6(float) Load 49 + 51: 39(ptr) AccessChain 30(output) 41 + Store 51 50 + 52:16(ConstantOutputType) Load 30(output) + ReturnValue 52 + FunctionEnd +27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;):22(HullOutputType) Function None 23 + 24(patch): 13(ptr) FunctionParameter + 25(pointId): 14(ptr) FunctionParameter + 26(patchId): 14(ptr) FunctionParameter + 28: Label + 56(output): 55(ptr) Variable Function + 57: 10(int) Load 25(pointId) + 59: 58(ptr) AccessChain 24(patch) 57 32 + 60: 7(fvec3) Load 59 + 61: 58(ptr) AccessChain 56(output) 32 + Store 61 60 + 62: 10(int) Load 25(pointId) + 64: 63(ptr) AccessChain 24(patch) 62 41 + 65: 8(fvec4) Load 64 + 66: 63(ptr) AccessChain 56(output) 41 + Store 66 65 + 67:22(HullOutputType) Load 56(output) + ReturnValue 67 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out new file mode 100644 index 0000000000..c7e4ed52b8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.comparison.vec.frag.out @@ -0,0 +1,416 @@ +hlsl.comparison.vec.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; ( temp void) +0:4 Function Parameters: +0:4 'a' ( in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'v04' ( temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'v01' ( temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of bool) +0:8 'r00' ( temp 4-component vector of bool) +0:8 Equal ( temp 4-component vector of bool) +0:8 'a' ( in 4-component vector of float) +0:8 'v04' ( temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of bool) +0:9 'r01' ( temp 4-component vector of bool) +0:9 NotEqual ( temp 4-component vector of bool) +0:9 'a' ( in 4-component vector of float) +0:9 'v04' ( temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of bool) +0:10 'r02' ( temp 4-component vector of bool) +0:10 Compare Less Than ( temp 4-component vector of bool) +0:10 'a' ( in 4-component vector of float) +0:10 'v04' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of bool) +0:11 'r03' ( temp 4-component vector of bool) +0:11 Compare Greater Than ( temp 4-component vector of bool) +0:11 'a' ( in 4-component vector of float) +0:11 'v04' ( temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of bool) +0:13 'r10' ( temp 4-component vector of bool) +0:13 Equal ( temp 4-component vector of bool) +0:13 'a' ( in 4-component vector of float) +0:13 Construct vec4 ( in 4-component vector of float) +0:13 'v01' ( temp float) +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of bool) +0:14 'r11' ( temp 4-component vector of bool) +0:14 NotEqual ( temp 4-component vector of bool) +0:14 'a' ( in 4-component vector of float) +0:14 Construct vec4 ( in 4-component vector of float) +0:14 'v01' ( temp float) +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of bool) +0:15 'r12' ( temp 4-component vector of bool) +0:15 Compare Less Than ( temp 4-component vector of bool) +0:15 'a' ( in 4-component vector of float) +0:15 Construct vec4 ( in 4-component vector of float) +0:15 'v01' ( temp float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of bool) +0:16 'r13' ( temp 4-component vector of bool) +0:16 Compare Greater Than ( temp 4-component vector of bool) +0:16 'a' ( in 4-component vector of float) +0:16 Construct vec4 ( in 4-component vector of float) +0:16 'v01' ( temp float) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of bool) +0:18 'r20' ( temp 4-component vector of bool) +0:18 Equal ( temp 4-component vector of bool) +0:18 Construct vec4 ( in 4-component vector of float) +0:18 'v01' ( temp float) +0:18 'a' ( in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of bool) +0:19 'r21' ( temp 4-component vector of bool) +0:19 NotEqual ( temp 4-component vector of bool) +0:19 Construct vec4 ( in 4-component vector of float) +0:19 'v01' ( temp float) +0:19 'a' ( in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of bool) +0:20 'r22' ( temp 4-component vector of bool) +0:20 Compare Less Than ( temp 4-component vector of bool) +0:20 Construct vec4 ( in 4-component vector of float) +0:20 'v01' ( temp float) +0:20 'a' ( in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child ( temp 4-component vector of bool) +0:21 'r23' ( temp 4-component vector of bool) +0:21 Compare Greater Than ( temp 4-component vector of bool) +0:21 Construct vec4 ( in 4-component vector of float) +0:21 'v01' ( temp float) +0:21 'a' ( in 4-component vector of float) +0:30 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 Color: direct index for structure ( temp 4-component vector of float) +0:32 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Branch: Return with expression +0:33 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:30 Function Definition: main( ( temp void) +0:30 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:30 Color: direct index for structure ( temp 4-component vector of float) +0:30 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:30 Constant: +0:30 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; ( temp void) +0:4 Function Parameters: +0:4 'a' ( in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'v04' ( temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'v01' ( temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of bool) +0:8 'r00' ( temp 4-component vector of bool) +0:8 Equal ( temp 4-component vector of bool) +0:8 'a' ( in 4-component vector of float) +0:8 'v04' ( temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of bool) +0:9 'r01' ( temp 4-component vector of bool) +0:9 NotEqual ( temp 4-component vector of bool) +0:9 'a' ( in 4-component vector of float) +0:9 'v04' ( temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of bool) +0:10 'r02' ( temp 4-component vector of bool) +0:10 Compare Less Than ( temp 4-component vector of bool) +0:10 'a' ( in 4-component vector of float) +0:10 'v04' ( temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of bool) +0:11 'r03' ( temp 4-component vector of bool) +0:11 Compare Greater Than ( temp 4-component vector of bool) +0:11 'a' ( in 4-component vector of float) +0:11 'v04' ( temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of bool) +0:13 'r10' ( temp 4-component vector of bool) +0:13 Equal ( temp 4-component vector of bool) +0:13 'a' ( in 4-component vector of float) +0:13 Construct vec4 ( in 4-component vector of float) +0:13 'v01' ( temp float) +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of bool) +0:14 'r11' ( temp 4-component vector of bool) +0:14 NotEqual ( temp 4-component vector of bool) +0:14 'a' ( in 4-component vector of float) +0:14 Construct vec4 ( in 4-component vector of float) +0:14 'v01' ( temp float) +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of bool) +0:15 'r12' ( temp 4-component vector of bool) +0:15 Compare Less Than ( temp 4-component vector of bool) +0:15 'a' ( in 4-component vector of float) +0:15 Construct vec4 ( in 4-component vector of float) +0:15 'v01' ( temp float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of bool) +0:16 'r13' ( temp 4-component vector of bool) +0:16 Compare Greater Than ( temp 4-component vector of bool) +0:16 'a' ( in 4-component vector of float) +0:16 Construct vec4 ( in 4-component vector of float) +0:16 'v01' ( temp float) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of bool) +0:18 'r20' ( temp 4-component vector of bool) +0:18 Equal ( temp 4-component vector of bool) +0:18 Construct vec4 ( in 4-component vector of float) +0:18 'v01' ( temp float) +0:18 'a' ( in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of bool) +0:19 'r21' ( temp 4-component vector of bool) +0:19 NotEqual ( temp 4-component vector of bool) +0:19 Construct vec4 ( in 4-component vector of float) +0:19 'v01' ( temp float) +0:19 'a' ( in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of bool) +0:20 'r22' ( temp 4-component vector of bool) +0:20 Compare Less Than ( temp 4-component vector of bool) +0:20 Construct vec4 ( in 4-component vector of float) +0:20 'v01' ( temp float) +0:20 'a' ( in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child ( temp 4-component vector of bool) +0:21 'r23' ( temp 4-component vector of bool) +0:21 Compare Greater Than ( temp 4-component vector of bool) +0:21 Construct vec4 ( in 4-component vector of float) +0:21 'v01' ( temp float) +0:21 'a' ( in 4-component vector of float) +0:30 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 Color: direct index for structure ( temp 4-component vector of float) +0:32 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Branch: Return with expression +0:33 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:30 Function Definition: main( ( temp void) +0:30 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:30 Color: direct index for structure ( temp 4-component vector of float) +0:30 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:30 Constant: +0:30 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 96 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 90 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Bug1(vf4;" + Name 10 "a" + Name 13 "PS_OUTPUT" + MemberName 13(PS_OUTPUT) 0 "Color" + Name 15 "@main(" + Name 17 "v04" + Name 21 "v01" + Name 25 "r00" + Name 29 "r01" + Name 33 "r02" + Name 37 "r03" + Name 41 "r10" + Name 46 "r11" + Name 51 "r12" + Name 56 "r13" + Name 61 "r20" + Name 66 "r21" + Name 71 "r22" + Name 76 "r23" + Name 82 "psout" + Name 90 "@entryPointOutput.Color" + Name 93 "$Global" + MemberName 93($Global) 0 "uf4" + Name 95 "" + Decorate 90(@entryPointOutput.Color) Location 0 + MemberDecorate 93($Global) 0 Offset 0 + Decorate 93($Global) Block + Decorate 95 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 13(PS_OUTPUT): TypeStruct 7(fvec4) + 14: TypeFunction 13(PS_OUTPUT) + 18: 6(float) Constant 0 + 19: 7(fvec4) ConstantComposite 18 18 18 18 + 20: TypePointer Function 6(float) + 22: TypeBool + 23: TypeVector 22(bool) 4 + 24: TypePointer Function 23(bvec4) + 81: TypePointer Function 13(PS_OUTPUT) + 83: TypeInt 32 1 + 84: 83(int) Constant 0 + 89: TypePointer Output 7(fvec4) +90(@entryPointOutput.Color): 89(ptr) Variable Output + 93($Global): TypeStruct 7(fvec4) + 94: TypePointer Uniform 93($Global) + 95: 94(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 91:13(PS_OUTPUT) FunctionCall 15(@main() + 92: 7(fvec4) CompositeExtract 91 0 + Store 90(@entryPointOutput.Color) 92 + Return + FunctionEnd + 11(Bug1(vf4;): 2 Function None 9 + 10(a): 8(ptr) FunctionParameter + 12: Label + 17(v04): 8(ptr) Variable Function + 21(v01): 20(ptr) Variable Function + 25(r00): 24(ptr) Variable Function + 29(r01): 24(ptr) Variable Function + 33(r02): 24(ptr) Variable Function + 37(r03): 24(ptr) Variable Function + 41(r10): 24(ptr) Variable Function + 46(r11): 24(ptr) Variable Function + 51(r12): 24(ptr) Variable Function + 56(r13): 24(ptr) Variable Function + 61(r20): 24(ptr) Variable Function + 66(r21): 24(ptr) Variable Function + 71(r22): 24(ptr) Variable Function + 76(r23): 24(ptr) Variable Function + Store 17(v04) 19 + Store 21(v01) 18 + 26: 7(fvec4) Load 10(a) + 27: 7(fvec4) Load 17(v04) + 28: 23(bvec4) FOrdEqual 26 27 + Store 25(r00) 28 + 30: 7(fvec4) Load 10(a) + 31: 7(fvec4) Load 17(v04) + 32: 23(bvec4) FOrdNotEqual 30 31 + Store 29(r01) 32 + 34: 7(fvec4) Load 10(a) + 35: 7(fvec4) Load 17(v04) + 36: 23(bvec4) FOrdLessThan 34 35 + Store 33(r02) 36 + 38: 7(fvec4) Load 10(a) + 39: 7(fvec4) Load 17(v04) + 40: 23(bvec4) FOrdGreaterThan 38 39 + Store 37(r03) 40 + 42: 7(fvec4) Load 10(a) + 43: 6(float) Load 21(v01) + 44: 7(fvec4) CompositeConstruct 43 43 43 43 + 45: 23(bvec4) FOrdEqual 42 44 + Store 41(r10) 45 + 47: 7(fvec4) Load 10(a) + 48: 6(float) Load 21(v01) + 49: 7(fvec4) CompositeConstruct 48 48 48 48 + 50: 23(bvec4) FOrdNotEqual 47 49 + Store 46(r11) 50 + 52: 7(fvec4) Load 10(a) + 53: 6(float) Load 21(v01) + 54: 7(fvec4) CompositeConstruct 53 53 53 53 + 55: 23(bvec4) FOrdLessThan 52 54 + Store 51(r12) 55 + 57: 7(fvec4) Load 10(a) + 58: 6(float) Load 21(v01) + 59: 7(fvec4) CompositeConstruct 58 58 58 58 + 60: 23(bvec4) FOrdGreaterThan 57 59 + Store 56(r13) 60 + 62: 6(float) Load 21(v01) + 63: 7(fvec4) CompositeConstruct 62 62 62 62 + 64: 7(fvec4) Load 10(a) + 65: 23(bvec4) FOrdEqual 63 64 + Store 61(r20) 65 + 67: 6(float) Load 21(v01) + 68: 7(fvec4) CompositeConstruct 67 67 67 67 + 69: 7(fvec4) Load 10(a) + 70: 23(bvec4) FOrdNotEqual 68 69 + Store 66(r21) 70 + 72: 6(float) Load 21(v01) + 73: 7(fvec4) CompositeConstruct 72 72 72 72 + 74: 7(fvec4) Load 10(a) + 75: 23(bvec4) FOrdLessThan 73 74 + Store 71(r22) 75 + 77: 6(float) Load 21(v01) + 78: 7(fvec4) CompositeConstruct 77 77 77 77 + 79: 7(fvec4) Load 10(a) + 80: 23(bvec4) FOrdGreaterThan 78 79 + Store 76(r23) 80 + Return + FunctionEnd + 15(@main():13(PS_OUTPUT) Function None 14 + 16: Label + 82(psout): 81(ptr) Variable Function + 85: 8(ptr) AccessChain 82(psout) 84 + Store 85 19 + 86:13(PS_OUTPUT) Load 82(psout) + ReturnValue 86 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.conditional.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.conditional.frag.out new file mode 100644 index 0000000000..90d9f79b34 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.conditional.frag.out @@ -0,0 +1,797 @@ +hlsl.conditional.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: vectorCond( ( temp 4-component vector of float) +0:8 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:11 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 mix ( temp 4-component vector of float) +0:9 f4: direct index for structure ( uniform 4-component vector of float) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:9 Constant: +0:9 2 (const uint) +0:9 t4: direct index for structure ( uniform 4-component vector of float) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:9 Constant: +0:9 1 (const uint) +0:9 Convert float to bool ( temp 4-component vector of bool) +0:9 c4: direct index for structure ( uniform 4-component vector of float) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:9 Constant: +0:9 0 (const uint) +0:10 mix ( temp 4-component vector of float) +0:10 Construct vec4 ( temp 4-component vector of float) +0:10 f: direct index for structure ( uniform float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:10 Constant: +0:10 4 (const uint) +0:10 Construct vec4 ( temp 4-component vector of float) +0:10 t: direct index for structure ( uniform float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:10 Constant: +0:10 3 (const uint) +0:10 Convert float to bool ( temp 4-component vector of bool) +0:10 c4: direct index for structure ( uniform 4-component vector of float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:10 Constant: +0:10 0 (const uint) +0:11 mix ( temp 4-component vector of float) +0:11 f4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 2 (const uint) +0:11 t4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 1 (const uint) +0:11 Compare Less Than ( temp 4-component vector of bool) +0:11 t4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 1 (const uint) +0:11 f4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 2 (const uint) +0:12 mix ( temp 4-component vector of float) +0:12 f4: direct index for structure ( uniform 4-component vector of float) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:12 Constant: +0:12 2 (const uint) +0:12 Construct vec4 ( temp 4-component vector of float) +0:12 t: direct index for structure ( uniform float) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:12 Constant: +0:12 3 (const uint) +0:12 Convert float to bool ( temp 4-component vector of bool) +0:12 c4: direct index for structure ( uniform 4-component vector of float) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:12 Constant: +0:12 0 (const uint) +0:16 Function Definition: scalarCond( ( temp 4-component vector of float) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'ret' ( temp 4-component vector of float) +0:17 Test condition and select ( temp 4-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Not Equal ( temp bool) +0:17 t: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 3 (const uint) +0:17 f: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 4 (const uint) +0:17 true case +0:17 vector-scale ( temp 4-component vector of float) +0:17 t: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 3 (const uint) +0:17 f4: direct index for structure ( uniform 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 2 (const uint) +0:17 false case +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Branch: Return with expression +0:18 'ret' ( temp 4-component vector of float) +0:22 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) +0:22 Function Parameters: +0:22 'cnd' ( in 2-component vector of bool) +0:22 'src0' ( in 2-component vector of float) +0:22 'src1' ( in 2-component vector of float) +0:? Sequence +0:23 Branch: Return with expression +0:23 mix ( temp 2-component vector of float) +0:23 'src1' ( in 2-component vector of float) +0:23 'src0' ( in 2-component vector of float) +0:23 'cnd' ( in 2-component vector of bool) +0:27 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:27 Function Parameters: +0:27 'input' ( in 4-component vector of float) +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'a' ( temp int) +0:28 Constant: +0:28 5 (const int) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'b' ( temp int) +0:29 Constant: +0:29 6 (const int) +0:30 Sequence +0:30 move second child to first child ( temp int) +0:30 'c' ( temp int) +0:30 Constant: +0:30 7 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'd' ( temp int) +0:31 Constant: +0:31 7 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'ret' ( temp 4-component vector of float) +0:34 add ( temp 4-component vector of float) +0:33 add ( temp 4-component vector of float) +0:32 add ( temp 4-component vector of float) +0:32 vector-scale ( temp 4-component vector of float) +0:32 Convert int to float ( temp float) +0:32 'a' ( temp int) +0:32 'input' ( in 4-component vector of float) +0:33 vector-scale ( temp 4-component vector of float) +0:33 Convert int to float ( temp float) +0:33 'b' ( temp int) +0:33 'input' ( in 4-component vector of float) +0:34 vector-scale ( temp 4-component vector of float) +0:34 Convert int to float ( temp float) +0:34 'c' ( temp int) +0:34 'input' ( in 4-component vector of float) +0:35 vector-scale ( temp 4-component vector of float) +0:35 Convert int to float ( temp float) +0:35 'd' ( temp int) +0:35 'input' ( in 4-component vector of float) +0:37 Comma ( temp int) +0:37 move second child to first child ( temp int) +0:37 'e' ( temp int) +0:37 move second child to first child ( temp int) +0:37 'a' ( temp int) +0:37 Test condition and select ( temp int): no shortcircuit +0:37 Condition +0:37 Convert int to bool ( temp bool) +0:37 'b' ( temp int) +0:37 true case +0:37 move second child to first child ( temp int) +0:37 'c' ( temp int) +0:37 'd' ( temp int) +0:37 false case +0:37 Constant: +0:37 10 (const int) +0:37 move second child to first child ( temp int) +0:37 'b' ( temp int) +0:37 Test condition and select ( temp int): no shortcircuit +0:37 Condition +0:37 Convert int to bool ( temp bool) +0:37 'a' ( temp int) +0:37 true case +0:37 move second child to first child ( temp int) +0:37 'd' ( temp int) +0:37 'c' ( temp int) +0:37 false case +0:37 Constant: +0:37 11 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'f' ( temp 4-component vector of float) +0:39 Test condition and select ( temp 4-component vector of float): no shortcircuit +0:39 Condition +0:39 Compare Less Than ( temp bool) +0:39 direct index ( temp float) +0:39 'ret' ( temp 4-component vector of float) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( temp float) +0:39 'input' ( in 4-component vector of float) +0:39 Constant: +0:39 1 (const int) +0:39 true case +0:39 vector-scale ( temp 4-component vector of float) +0:39 Convert int to float ( temp float) +0:39 'c' ( temp int) +0:39 'input' ( in 4-component vector of float) +0:39 false case +0:39 vector-scale ( temp 4-component vector of float) +0:39 Convert int to float ( temp float) +0:39 'd' ( temp int) +0:39 'input' ( in 4-component vector of float) +0:41 Branch: Return with expression +0:40 add ( temp 4-component vector of float) +0:40 add ( temp 4-component vector of float) +0:40 add ( temp 4-component vector of float) +0:40 add ( temp 4-component vector of float) +0:40 vector-scale ( temp 4-component vector of float) +0:40 Convert int to float ( temp float) +0:40 'e' ( temp int) +0:40 'ret' ( temp 4-component vector of float) +0:40 'f' ( temp 4-component vector of float) +0:40 Function Call: vectorCond( ( temp 4-component vector of float) +0:40 Function Call: scalarCond( ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:41 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) +0:? Constant: +0:? true (const bool) +0:? false (const bool) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? Constant: +0:? 3.000000 +0:? 4.000000 +0:41 Constant: +0:41 10.000000 +0:41 Constant: +0:41 10.000000 +0:27 Function Definition: PixelShaderFunction( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: vectorCond( ( temp 4-component vector of float) +0:8 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:11 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 mix ( temp 4-component vector of float) +0:9 f4: direct index for structure ( uniform 4-component vector of float) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:9 Constant: +0:9 2 (const uint) +0:9 t4: direct index for structure ( uniform 4-component vector of float) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:9 Constant: +0:9 1 (const uint) +0:9 Convert float to bool ( temp 4-component vector of bool) +0:9 c4: direct index for structure ( uniform 4-component vector of float) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:9 Constant: +0:9 0 (const uint) +0:10 mix ( temp 4-component vector of float) +0:10 Construct vec4 ( temp 4-component vector of float) +0:10 f: direct index for structure ( uniform float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:10 Constant: +0:10 4 (const uint) +0:10 Construct vec4 ( temp 4-component vector of float) +0:10 t: direct index for structure ( uniform float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:10 Constant: +0:10 3 (const uint) +0:10 Convert float to bool ( temp 4-component vector of bool) +0:10 c4: direct index for structure ( uniform 4-component vector of float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:10 Constant: +0:10 0 (const uint) +0:11 mix ( temp 4-component vector of float) +0:11 f4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 2 (const uint) +0:11 t4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 1 (const uint) +0:11 Compare Less Than ( temp 4-component vector of bool) +0:11 t4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 1 (const uint) +0:11 f4: direct index for structure ( uniform 4-component vector of float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:11 Constant: +0:11 2 (const uint) +0:12 mix ( temp 4-component vector of float) +0:12 f4: direct index for structure ( uniform 4-component vector of float) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:12 Constant: +0:12 2 (const uint) +0:12 Construct vec4 ( temp 4-component vector of float) +0:12 t: direct index for structure ( uniform float) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:12 Constant: +0:12 3 (const uint) +0:12 Convert float to bool ( temp 4-component vector of bool) +0:12 c4: direct index for structure ( uniform 4-component vector of float) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:12 Constant: +0:12 0 (const uint) +0:16 Function Definition: scalarCond( ( temp 4-component vector of float) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'ret' ( temp 4-component vector of float) +0:17 Test condition and select ( temp 4-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Not Equal ( temp bool) +0:17 t: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 3 (const uint) +0:17 f: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 4 (const uint) +0:17 true case +0:17 vector-scale ( temp 4-component vector of float) +0:17 t: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 3 (const uint) +0:17 f4: direct index for structure ( uniform 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:17 Constant: +0:17 2 (const uint) +0:17 false case +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Branch: Return with expression +0:18 'ret' ( temp 4-component vector of float) +0:22 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) +0:22 Function Parameters: +0:22 'cnd' ( in 2-component vector of bool) +0:22 'src0' ( in 2-component vector of float) +0:22 'src1' ( in 2-component vector of float) +0:? Sequence +0:23 Branch: Return with expression +0:23 mix ( temp 2-component vector of float) +0:23 'src1' ( in 2-component vector of float) +0:23 'src0' ( in 2-component vector of float) +0:23 'cnd' ( in 2-component vector of bool) +0:27 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:27 Function Parameters: +0:27 'input' ( in 4-component vector of float) +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'a' ( temp int) +0:28 Constant: +0:28 5 (const int) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'b' ( temp int) +0:29 Constant: +0:29 6 (const int) +0:30 Sequence +0:30 move second child to first child ( temp int) +0:30 'c' ( temp int) +0:30 Constant: +0:30 7 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'd' ( temp int) +0:31 Constant: +0:31 7 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'ret' ( temp 4-component vector of float) +0:34 add ( temp 4-component vector of float) +0:33 add ( temp 4-component vector of float) +0:32 add ( temp 4-component vector of float) +0:32 vector-scale ( temp 4-component vector of float) +0:32 Convert int to float ( temp float) +0:32 'a' ( temp int) +0:32 'input' ( in 4-component vector of float) +0:33 vector-scale ( temp 4-component vector of float) +0:33 Convert int to float ( temp float) +0:33 'b' ( temp int) +0:33 'input' ( in 4-component vector of float) +0:34 vector-scale ( temp 4-component vector of float) +0:34 Convert int to float ( temp float) +0:34 'c' ( temp int) +0:34 'input' ( in 4-component vector of float) +0:35 vector-scale ( temp 4-component vector of float) +0:35 Convert int to float ( temp float) +0:35 'd' ( temp int) +0:35 'input' ( in 4-component vector of float) +0:37 Comma ( temp int) +0:37 move second child to first child ( temp int) +0:37 'e' ( temp int) +0:37 move second child to first child ( temp int) +0:37 'a' ( temp int) +0:37 Test condition and select ( temp int): no shortcircuit +0:37 Condition +0:37 Convert int to bool ( temp bool) +0:37 'b' ( temp int) +0:37 true case +0:37 move second child to first child ( temp int) +0:37 'c' ( temp int) +0:37 'd' ( temp int) +0:37 false case +0:37 Constant: +0:37 10 (const int) +0:37 move second child to first child ( temp int) +0:37 'b' ( temp int) +0:37 Test condition and select ( temp int): no shortcircuit +0:37 Condition +0:37 Convert int to bool ( temp bool) +0:37 'a' ( temp int) +0:37 true case +0:37 move second child to first child ( temp int) +0:37 'd' ( temp int) +0:37 'c' ( temp int) +0:37 false case +0:37 Constant: +0:37 11 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'f' ( temp 4-component vector of float) +0:39 Test condition and select ( temp 4-component vector of float): no shortcircuit +0:39 Condition +0:39 Compare Less Than ( temp bool) +0:39 direct index ( temp float) +0:39 'ret' ( temp 4-component vector of float) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( temp float) +0:39 'input' ( in 4-component vector of float) +0:39 Constant: +0:39 1 (const int) +0:39 true case +0:39 vector-scale ( temp 4-component vector of float) +0:39 Convert int to float ( temp float) +0:39 'c' ( temp int) +0:39 'input' ( in 4-component vector of float) +0:39 false case +0:39 vector-scale ( temp 4-component vector of float) +0:39 Convert int to float ( temp float) +0:39 'd' ( temp int) +0:39 'input' ( in 4-component vector of float) +0:41 Branch: Return with expression +0:40 add ( temp 4-component vector of float) +0:40 add ( temp 4-component vector of float) +0:40 add ( temp 4-component vector of float) +0:40 add ( temp 4-component vector of float) +0:40 vector-scale ( temp 4-component vector of float) +0:40 Convert int to float ( temp float) +0:40 'e' ( temp int) +0:40 'ret' ( temp 4-component vector of float) +0:40 'f' ( temp 4-component vector of float) +0:40 Function Call: vectorCond( ( temp 4-component vector of float) +0:40 Function Call: scalarCond( ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:41 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) +0:? Constant: +0:? true (const bool) +0:? false (const bool) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? Constant: +0:? 3.000000 +0:? 4.000000 +0:41 Constant: +0:41 10.000000 +0:41 Constant: +0:41 10.000000 +0:27 Function Definition: PixelShaderFunction( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 206 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 199 202 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 9 "vectorCond(" + Name 11 "scalarCond(" + Name 22 "fbSelect(vb2;vf2;vf2;" + Name 19 "cnd" + Name 20 "src0" + Name 21 "src1" + Name 27 "@PixelShaderFunction(vf4;" + Name 26 "input" + Name 29 "$Global" + MemberName 29($Global) 0 "c4" + MemberName 29($Global) 1 "t4" + MemberName 29($Global) 2 "f4" + MemberName 29($Global) 3 "t" + MemberName 29($Global) 4 "f" + Name 31 "" + Name 85 "ret" + Name 110 "a" + Name 112 "b" + Name 114 "c" + Name 116 "d" + Name 117 "ret" + Name 137 "e" + Name 150 "f" + Name 186 "param" + Name 187 "param" + Name 188 "param" + Name 197 "input" + Name 199 "input" + Name 202 "@entryPointOutput" + Name 203 "param" + MemberDecorate 29($Global) 0 Offset 0 + MemberDecorate 29($Global) 1 Offset 16 + MemberDecorate 29($Global) 2 Offset 32 + MemberDecorate 29($Global) 3 Offset 48 + MemberDecorate 29($Global) 4 Offset 52 + Decorate 29($Global) Block + Decorate 31 DescriptorSet 0 + Decorate 199(input) Location 0 + Decorate 202(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 13: TypeBool + 14: TypeVector 13(bool) 2 + 15: TypePointer Function 14(bvec2) + 16: TypeVector 6(float) 2 + 17: TypePointer Function 16(fvec2) + 18: TypeFunction 16(fvec2) 15(ptr) 17(ptr) 17(ptr) + 24: TypePointer Function 7(fvec4) + 25: TypeFunction 7(fvec4) 24(ptr) + 29($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 6(float) 6(float) + 30: TypePointer Uniform 29($Global) + 31: 30(ptr) Variable Uniform + 32: TypeInt 32 1 + 33: 32(int) Constant 2 + 34: TypePointer Uniform 7(fvec4) + 37: 32(int) Constant 1 + 40: 32(int) Constant 0 + 43: TypeVector 13(bool) 4 + 44: 6(float) Constant 0 + 45: 7(fvec4) ConstantComposite 44 44 44 44 + 48: 32(int) Constant 4 + 49: TypePointer Uniform 6(float) + 53: 32(int) Constant 3 + 96: 6(float) Constant 1065353216 + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 109: TypePointer Function 32(int) + 111: 32(int) Constant 5 + 113: 32(int) Constant 6 + 115: 32(int) Constant 7 + 139: TypeInt 32 0 + 140: 139(int) Constant 0 + 143: 32(int) Constant 10 + 148: 32(int) Constant 11 + 151: TypePointer Function 6(float) + 154: 139(int) Constant 1 + 178: 13(bool) ConstantTrue + 179: 13(bool) ConstantFalse + 180: 14(bvec2) ConstantComposite 178 179 + 181: 6(float) Constant 1073741824 + 182: 16(fvec2) ConstantComposite 96 181 + 183: 6(float) Constant 1077936128 + 184: 6(float) Constant 1082130432 + 185: 16(fvec2) ConstantComposite 183 184 + 190: 6(float) Constant 1092616192 + 198: TypePointer Input 7(fvec4) + 199(input): 198(ptr) Variable Input + 201: TypePointer Output 7(fvec4) +202(@entryPointOutput): 201(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 197(input): 24(ptr) Variable Function + 203(param): 24(ptr) Variable Function + 200: 7(fvec4) Load 199(input) + Store 197(input) 200 + 204: 7(fvec4) Load 197(input) + Store 203(param) 204 + 205: 7(fvec4) FunctionCall 27(@PixelShaderFunction(vf4;) 203(param) + Store 202(@entryPointOutput) 205 + Return + FunctionEnd + 9(vectorCond(): 7(fvec4) Function None 8 + 10: Label + 35: 34(ptr) AccessChain 31 33 + 36: 7(fvec4) Load 35 + 38: 34(ptr) AccessChain 31 37 + 39: 7(fvec4) Load 38 + 41: 34(ptr) AccessChain 31 40 + 42: 7(fvec4) Load 41 + 46: 43(bvec4) FOrdNotEqual 42 45 + 47: 7(fvec4) Select 46 39 36 + 50: 49(ptr) AccessChain 31 48 + 51: 6(float) Load 50 + 52: 7(fvec4) CompositeConstruct 51 51 51 51 + 54: 49(ptr) AccessChain 31 53 + 55: 6(float) Load 54 + 56: 7(fvec4) CompositeConstruct 55 55 55 55 + 57: 34(ptr) AccessChain 31 40 + 58: 7(fvec4) Load 57 + 59: 43(bvec4) FOrdNotEqual 58 45 + 60: 7(fvec4) Select 59 56 52 + 61: 7(fvec4) FAdd 47 60 + 62: 34(ptr) AccessChain 31 33 + 63: 7(fvec4) Load 62 + 64: 34(ptr) AccessChain 31 37 + 65: 7(fvec4) Load 64 + 66: 34(ptr) AccessChain 31 37 + 67: 7(fvec4) Load 66 + 68: 34(ptr) AccessChain 31 33 + 69: 7(fvec4) Load 68 + 70: 43(bvec4) FOrdLessThan 67 69 + 71: 7(fvec4) Select 70 65 63 + 72: 7(fvec4) FAdd 61 71 + 73: 34(ptr) AccessChain 31 33 + 74: 7(fvec4) Load 73 + 75: 49(ptr) AccessChain 31 53 + 76: 6(float) Load 75 + 77: 7(fvec4) CompositeConstruct 76 76 76 76 + 78: 34(ptr) AccessChain 31 40 + 79: 7(fvec4) Load 78 + 80: 43(bvec4) FOrdNotEqual 79 45 + 81: 7(fvec4) Select 80 77 74 + 82: 7(fvec4) FAdd 72 81 + ReturnValue 82 + FunctionEnd + 11(scalarCond(): 7(fvec4) Function None 8 + 12: Label + 85(ret): 24(ptr) Variable Function + 86: 49(ptr) AccessChain 31 53 + 87: 6(float) Load 86 + 88: 49(ptr) AccessChain 31 48 + 89: 6(float) Load 88 + 90: 13(bool) FOrdNotEqual 87 89 + 91: 49(ptr) AccessChain 31 53 + 92: 6(float) Load 91 + 93: 34(ptr) AccessChain 31 33 + 94: 7(fvec4) Load 93 + 95: 7(fvec4) VectorTimesScalar 94 92 + 98: 43(bvec4) CompositeConstruct 90 90 90 90 + 99: 7(fvec4) Select 98 95 97 + Store 85(ret) 99 + 100: 7(fvec4) Load 85(ret) + ReturnValue 100 + FunctionEnd +22(fbSelect(vb2;vf2;vf2;): 16(fvec2) Function None 18 + 19(cnd): 15(ptr) FunctionParameter + 20(src0): 17(ptr) FunctionParameter + 21(src1): 17(ptr) FunctionParameter + 23: Label + 103: 16(fvec2) Load 21(src1) + 104: 16(fvec2) Load 20(src0) + 105: 14(bvec2) Load 19(cnd) + 106: 16(fvec2) Select 105 104 103 + ReturnValue 106 + FunctionEnd +27(@PixelShaderFunction(vf4;): 7(fvec4) Function None 25 + 26(input): 24(ptr) FunctionParameter + 28: Label + 110(a): 109(ptr) Variable Function + 112(b): 109(ptr) Variable Function + 114(c): 109(ptr) Variable Function + 116(d): 109(ptr) Variable Function + 117(ret): 24(ptr) Variable Function + 137(e): 109(ptr) Variable Function + 150(f): 24(ptr) Variable Function + 186(param): 15(ptr) Variable Function + 187(param): 17(ptr) Variable Function + 188(param): 17(ptr) Variable Function + Store 110(a) 111 + Store 112(b) 113 + Store 114(c) 115 + Store 116(d) 115 + 118: 32(int) Load 110(a) + 119: 6(float) ConvertSToF 118 + 120: 7(fvec4) Load 26(input) + 121: 7(fvec4) VectorTimesScalar 120 119 + 122: 32(int) Load 112(b) + 123: 6(float) ConvertSToF 122 + 124: 7(fvec4) Load 26(input) + 125: 7(fvec4) VectorTimesScalar 124 123 + 126: 7(fvec4) FAdd 121 125 + 127: 32(int) Load 114(c) + 128: 6(float) ConvertSToF 127 + 129: 7(fvec4) Load 26(input) + 130: 7(fvec4) VectorTimesScalar 129 128 + 131: 7(fvec4) FAdd 126 130 + 132: 32(int) Load 116(d) + 133: 6(float) ConvertSToF 132 + 134: 7(fvec4) Load 26(input) + 135: 7(fvec4) VectorTimesScalar 134 133 + 136: 7(fvec4) FAdd 131 135 + Store 117(ret) 136 + 138: 32(int) Load 112(b) + 141: 13(bool) INotEqual 138 140 + 142: 32(int) Load 116(d) + Store 114(c) 142 + 144: 32(int) Select 141 142 143 + Store 110(a) 144 + Store 137(e) 144 + 145: 32(int) Load 110(a) + 146: 13(bool) INotEqual 145 140 + 147: 32(int) Load 114(c) + Store 116(d) 147 + 149: 32(int) Select 146 147 148 + Store 112(b) 149 + 152: 151(ptr) AccessChain 117(ret) 140 + 153: 6(float) Load 152 + 155: 151(ptr) AccessChain 26(input) 154 + 156: 6(float) Load 155 + 157: 13(bool) FOrdLessThan 153 156 + 158: 32(int) Load 114(c) + 159: 6(float) ConvertSToF 158 + 160: 7(fvec4) Load 26(input) + 161: 7(fvec4) VectorTimesScalar 160 159 + 162: 32(int) Load 116(d) + 163: 6(float) ConvertSToF 162 + 164: 7(fvec4) Load 26(input) + 165: 7(fvec4) VectorTimesScalar 164 163 + 166: 43(bvec4) CompositeConstruct 157 157 157 157 + 167: 7(fvec4) Select 166 161 165 + Store 150(f) 167 + 168: 32(int) Load 137(e) + 169: 6(float) ConvertSToF 168 + 170: 7(fvec4) Load 117(ret) + 171: 7(fvec4) VectorTimesScalar 170 169 + 172: 7(fvec4) Load 150(f) + 173: 7(fvec4) FAdd 171 172 + 174: 7(fvec4) FunctionCall 9(vectorCond() + 175: 7(fvec4) FAdd 173 174 + 176: 7(fvec4) FunctionCall 11(scalarCond() + 177: 7(fvec4) FAdd 175 176 + Store 186(param) 180 + Store 187(param) 182 + Store 188(param) 185 + 189: 16(fvec2) FunctionCall 22(fbSelect(vb2;vf2;vf2;) 186(param) 187(param) 188(param) + 191: 6(float) CompositeExtract 189 0 + 192: 6(float) CompositeExtract 189 1 + 193: 7(fvec4) CompositeConstruct 191 192 190 190 + 194: 7(fvec4) FAdd 177 193 + ReturnValue 194 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.constantbuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.constantbuffer.frag.out new file mode 100644 index 0000000000..4b5c6b1c8c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.constantbuffer.frag.out @@ -0,0 +1,241 @@ +hlsl.constantbuffer.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main( ( temp 4-component vector of float) +0:20 Function Parameters: +0:? Sequence +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 x: direct index for structure (layout( row_major std140) uniform bool) +0:21 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:21 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:21 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 0 (const int) +0:21 true case +0:22 Branch: Return with expression +0:22 add ( temp 4-component vector of float) +0:22 add ( temp 4-component vector of float) +0:22 x: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:22 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) +0:22 Constant: +0:22 0 (const int) +0:22 y: direct index for structure (layout( row_major std140) uniform float) +0:22 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:22 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Convert int to float ( temp float) +0:22 c1: direct index for structure (layout( row_major std140) uniform int) +0:22 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) +0:22 Constant: +0:22 0 (const uint) +0:21 false case +0:24 Branch: Return with expression +0:24 Construct vec4 ( temp 4-component vector of float) +0:24 y: direct index for structure (layout( row_major std140) uniform float) +0:24 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:24 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:24 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 3 (const int) +0:24 Constant: +0:24 1 (const int) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:20 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) +0:? 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:? 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main( ( temp 4-component vector of float) +0:20 Function Parameters: +0:? Sequence +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 x: direct index for structure (layout( row_major std140) uniform bool) +0:21 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:21 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:21 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 0 (const int) +0:21 true case +0:22 Branch: Return with expression +0:22 add ( temp 4-component vector of float) +0:22 add ( temp 4-component vector of float) +0:22 x: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:22 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) +0:22 Constant: +0:22 0 (const int) +0:22 y: direct index for structure (layout( row_major std140) uniform float) +0:22 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:22 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Convert int to float ( temp float) +0:22 c1: direct index for structure (layout( row_major std140) uniform int) +0:22 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) +0:22 Constant: +0:22 0 (const uint) +0:21 false case +0:24 Branch: Return with expression +0:24 Construct vec4 ( temp 4-component vector of float) +0:24 y: direct index for structure (layout( row_major std140) uniform float) +0:24 direct index (layout( row_major std140) temp block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:24 direct index (layout( row_major std140) temp 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:24 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 3 (const int) +0:24 Constant: +0:24 1 (const int) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:20 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'cb1' (layout( binding=12 row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float x}) +0:? 'cb2' (layout( row_major std140) uniform 3-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:? 'cb3' (layout( row_major std140) uniform 2-element array of 4-element array of block{layout( row_major std140) uniform bool x, layout( row_major std140) uniform float y}) +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform int c1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 66 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 64 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "cb3" + MemberName 12(cb3) 0 "x" + MemberName 12(cb3) 1 "y" + Name 18 "cb3" + Name 31 "cb1" + MemberName 31(cb1) 0 "x" + Name 33 "cb1" + Name 40 "cb2" + Name 46 "cbuff" + MemberName 46(cbuff) 0 "c1" + Name 48 "" + Name 64 "@entryPointOutput" + MemberDecorate 12(cb3) 0 Offset 0 + MemberDecorate 12(cb3) 1 Offset 4 + Decorate 12(cb3) Block + Decorate 18(cb3) DescriptorSet 0 + MemberDecorate 31(cb1) 0 Offset 0 + Decorate 31(cb1) Block + Decorate 33(cb1) DescriptorSet 0 + Decorate 33(cb1) Binding 12 + Decorate 40(cb2) DescriptorSet 0 + MemberDecorate 46(cbuff) 0 Offset 0 + Decorate 46(cbuff) Block + Decorate 48 DescriptorSet 0 + Decorate 64(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 0 + 12(cb3): TypeStruct 11(int) 6(float) + 13: 11(int) Constant 4 + 14: TypeArray 12(cb3) 13 + 15: 11(int) Constant 2 + 16: TypeArray 14 15 + 17: TypePointer Uniform 16 + 18(cb3): 17(ptr) Variable Uniform + 19: TypeInt 32 1 + 20: 19(int) Constant 1 + 21: 19(int) Constant 2 + 22: 19(int) Constant 0 + 23: TypePointer Uniform 11(int) + 26: TypeBool + 27: 11(int) Constant 0 + 31(cb1): TypeStruct 7(fvec4) + 32: TypePointer Uniform 31(cb1) + 33(cb1): 32(ptr) Variable Uniform + 34: TypePointer Uniform 7(fvec4) + 37: 11(int) Constant 3 + 38: TypeArray 12(cb3) 37 + 39: TypePointer Uniform 38 + 40(cb2): 39(ptr) Variable Uniform + 41: TypePointer Uniform 6(float) + 46(cbuff): TypeStruct 19(int) + 47: TypePointer Uniform 46(cbuff) + 48: 47(ptr) Variable Uniform + 49: TypePointer Uniform 19(int) + 57: 19(int) Constant 3 + 63: TypePointer Output 7(fvec4) +64(@entryPointOutput): 63(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 65: 7(fvec4) FunctionCall 9(@main() + Store 64(@entryPointOutput) 65 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 24: 23(ptr) AccessChain 18(cb3) 20 21 22 + 25: 11(int) Load 24 + 28: 26(bool) INotEqual 25 27 + SelectionMerge 30 None + BranchConditional 28 29 56 + 29: Label + 35: 34(ptr) AccessChain 33(cb1) 22 + 36: 7(fvec4) Load 35 + 42: 41(ptr) AccessChain 40(cb2) 20 20 + 43: 6(float) Load 42 + 44: 7(fvec4) CompositeConstruct 43 43 43 43 + 45: 7(fvec4) FAdd 36 44 + 50: 49(ptr) AccessChain 48 22 + 51: 19(int) Load 50 + 52: 6(float) ConvertSToF 51 + 53: 7(fvec4) CompositeConstruct 52 52 52 52 + 54: 7(fvec4) FAdd 45 53 + ReturnValue 54 + 56: Label + 58: 41(ptr) AccessChain 18(cb3) 20 57 20 + 59: 6(float) Load 58 + 60: 7(fvec4) CompositeConstruct 59 59 59 59 + ReturnValue 60 + 30: Label + 62: 7(fvec4) Undef + ReturnValue 62 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.constructArray.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.constructArray.vert.out new file mode 100644 index 0000000000..6e18ad9713 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.constructArray.vert.out @@ -0,0 +1,381 @@ +hlsl.constructArray.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp 2-element array of 4-component vector of float) +0:4 'float4_array_times' ( temp 2-element array of 4-component vector of float) +0:4 Construct structure ( temp 2-element array of 4-component vector of float) +0:4 Convert int to float ( temp 4-component vector of float) +0:4 direct index ( temp 4-component vector of int) +0:4 'int4_array' ( temp 3-element array of 4-component vector of int) +0:4 Constant: +0:4 0 (const int) +0:4 Convert int to float ( temp 4-component vector of float) +0:4 direct index ( temp 4-component vector of int) +0:4 'int4_array' ( temp 3-element array of 4-component vector of int) +0:4 Constant: +0:4 1 (const int) +0:5 Sequence +0:5 move second child to first child ( temp 4-element array of 2-component vector of float) +0:5 'float2_array_times2' ( temp 4-element array of 2-component vector of float) +0:5 Construct structure ( temp 4-element array of 2-component vector of float) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 2 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 3 (const int) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 2 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 3 (const int) +0:6 Sequence +0:6 move second child to first child ( temp 2-element array of 4-component vector of int) +0:6 'int4_array2' ( temp 2-element array of 4-component vector of int) +0:6 Construct structure ( temp 2-element array of 4-component vector of int) +0:6 direct index ( temp 4-component vector of int) +0:6 'int4_array' ( temp 3-element array of 4-component vector of int) +0:6 Constant: +0:6 0 (const int) +0:6 direct index ( temp 4-component vector of int) +0:6 'int4_array' ( temp 3-element array of 4-component vector of int) +0:6 Constant: +0:6 1 (const int) +0:7 Sequence +0:7 move second child to first child ( temp 2-element array of int) +0:7 'int1_array' ( temp 2-element array of int) +0:7 Construct structure ( temp 2-element array of int) +0:7 direct index ( temp int) +0:7 direct index ( temp 4-component vector of int) +0:7 'int4_array' ( temp 3-element array of 4-component vector of int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( temp int) +0:7 direct index ( temp 4-component vector of int) +0:7 'int4_array' ( temp 3-element array of 4-component vector of int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:9 Branch: Return with expression +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp 2-element array of 4-component vector of float) +0:4 'float4_array_times' ( temp 2-element array of 4-component vector of float) +0:4 Construct structure ( temp 2-element array of 4-component vector of float) +0:4 Convert int to float ( temp 4-component vector of float) +0:4 direct index ( temp 4-component vector of int) +0:4 'int4_array' ( temp 3-element array of 4-component vector of int) +0:4 Constant: +0:4 0 (const int) +0:4 Convert int to float ( temp 4-component vector of float) +0:4 direct index ( temp 4-component vector of int) +0:4 'int4_array' ( temp 3-element array of 4-component vector of int) +0:4 Constant: +0:4 1 (const int) +0:5 Sequence +0:5 move second child to first child ( temp 4-element array of 2-component vector of float) +0:5 'float2_array_times2' ( temp 4-element array of 2-component vector of float) +0:5 Construct structure ( temp 4-element array of 2-component vector of float) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 2 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 0 (const int) +0:5 Constant: +0:5 3 (const int) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Convert int to float ( temp 2-component vector of float) +0:5 Construct ivec2 ( temp 2-component vector of int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 2 (const int) +0:5 direct index ( temp int) +0:5 direct index ( temp 4-component vector of int) +0:5 'int4_array' ( temp 3-element array of 4-component vector of int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 3 (const int) +0:6 Sequence +0:6 move second child to first child ( temp 2-element array of 4-component vector of int) +0:6 'int4_array2' ( temp 2-element array of 4-component vector of int) +0:6 Construct structure ( temp 2-element array of 4-component vector of int) +0:6 direct index ( temp 4-component vector of int) +0:6 'int4_array' ( temp 3-element array of 4-component vector of int) +0:6 Constant: +0:6 0 (const int) +0:6 direct index ( temp 4-component vector of int) +0:6 'int4_array' ( temp 3-element array of 4-component vector of int) +0:6 Constant: +0:6 1 (const int) +0:7 Sequence +0:7 move second child to first child ( temp 2-element array of int) +0:7 'int1_array' ( temp 2-element array of int) +0:7 Construct structure ( temp 2-element array of int) +0:7 direct index ( temp int) +0:7 direct index ( temp 4-component vector of int) +0:7 'int4_array' ( temp 3-element array of 4-component vector of int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 0 (const int) +0:7 direct index ( temp int) +0:7 direct index ( temp 4-component vector of int) +0:7 'int4_array' ( temp 3-element array of 4-component vector of int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:9 Branch: Return with expression +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 89 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 87 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 15 "float4_array_times" + Name 21 "int4_array" + Name 36 "float2_array_times2" + Name 68 "int4_array2" + Name 76 "int1_array" + Name 87 "@entryPointOutput" + Decorate 87(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 0 + 12: 11(int) Constant 2 + 13: TypeArray 7(fvec4) 12 + 14: TypePointer Function 13 + 16: TypeInt 32 1 + 17: TypeVector 16(int) 4 + 18: 11(int) Constant 3 + 19: TypeArray 17(ivec4) 18 + 20: TypePointer Function 19 + 22: 16(int) Constant 0 + 23: TypePointer Function 17(ivec4) + 27: 16(int) Constant 1 + 32: TypeVector 6(float) 2 + 33: 11(int) Constant 4 + 34: TypeArray 32(fvec2) 33 + 35: TypePointer Function 34 + 37: 11(int) Constant 0 + 38: TypePointer Function 16(int) + 41: 11(int) Constant 1 + 44: TypeVector 16(int) 2 + 66: TypeArray 17(ivec4) 12 + 67: TypePointer Function 66 + 74: TypeArray 16(int) 12 + 75: TypePointer Function 74 + 82: 6(float) Constant 0 + 83: 7(fvec4) ConstantComposite 82 82 82 82 + 86: TypePointer Output 7(fvec4) +87(@entryPointOutput): 86(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 88: 7(fvec4) FunctionCall 9(@main() + Store 87(@entryPointOutput) 88 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label +15(float4_array_times): 14(ptr) Variable Function + 21(int4_array): 20(ptr) Variable Function +36(float2_array_times2): 35(ptr) Variable Function + 68(int4_array2): 67(ptr) Variable Function + 76(int1_array): 75(ptr) Variable Function + 24: 23(ptr) AccessChain 21(int4_array) 22 + 25: 17(ivec4) Load 24 + 26: 7(fvec4) ConvertSToF 25 + 28: 23(ptr) AccessChain 21(int4_array) 27 + 29: 17(ivec4) Load 28 + 30: 7(fvec4) ConvertSToF 29 + 31: 13 CompositeConstruct 26 30 + Store 15(float4_array_times) 31 + 39: 38(ptr) AccessChain 21(int4_array) 22 37 + 40: 16(int) Load 39 + 42: 38(ptr) AccessChain 21(int4_array) 22 41 + 43: 16(int) Load 42 + 45: 44(ivec2) CompositeConstruct 40 43 + 46: 32(fvec2) ConvertSToF 45 + 47: 38(ptr) AccessChain 21(int4_array) 22 12 + 48: 16(int) Load 47 + 49: 38(ptr) AccessChain 21(int4_array) 22 18 + 50: 16(int) Load 49 + 51: 44(ivec2) CompositeConstruct 48 50 + 52: 32(fvec2) ConvertSToF 51 + 53: 38(ptr) AccessChain 21(int4_array) 27 37 + 54: 16(int) Load 53 + 55: 38(ptr) AccessChain 21(int4_array) 27 41 + 56: 16(int) Load 55 + 57: 44(ivec2) CompositeConstruct 54 56 + 58: 32(fvec2) ConvertSToF 57 + 59: 38(ptr) AccessChain 21(int4_array) 27 12 + 60: 16(int) Load 59 + 61: 38(ptr) AccessChain 21(int4_array) 27 18 + 62: 16(int) Load 61 + 63: 44(ivec2) CompositeConstruct 60 62 + 64: 32(fvec2) ConvertSToF 63 + 65: 34 CompositeConstruct 46 52 58 64 + Store 36(float2_array_times2) 65 + 69: 23(ptr) AccessChain 21(int4_array) 22 + 70: 17(ivec4) Load 69 + 71: 23(ptr) AccessChain 21(int4_array) 27 + 72: 17(ivec4) Load 71 + 73: 66 CompositeConstruct 70 72 + Store 68(int4_array2) 73 + 77: 38(ptr) AccessChain 21(int4_array) 22 37 + 78: 16(int) Load 77 + 79: 38(ptr) AccessChain 21(int4_array) 22 41 + 80: 16(int) Load 79 + 81: 74 CompositeConstruct 78 80 + Store 76(int1_array) 81 + ReturnValue 83 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out new file mode 100644 index 0000000000..227c7e1738 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.constructexpr.frag.out @@ -0,0 +1,164 @@ +hlsl.constructexpr.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:4 Function Parameters: +0:? Sequence +0:6 Constant: +0:6 3 (const int) +0:7 Constant: +0:7 4 (const int) +0:8 Constant: +0:8 5 (const int) +0:9 Constant: +0:9 6 (const int) +0:10 Constant: +0:10 7 (const int) +0:11 Constant: +0:11 8 (const int) +0:12 Comma ( temp 2-component vector of float) +0:? Constant: +0:? 9.000000 +0:? 10.000000 +0:? Constant: +0:? 11.000000 +0:? 12.000000 +0:15 move second child to first child ( temp 4-component vector of float) +0:15 color: direct index for structure ( temp 4-component vector of float) +0:15 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 Branch: Return with expression +0:16 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:4 color: direct index for structure ( temp 4-component vector of float) +0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:4 Constant: +0:4 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:4 Function Parameters: +0:? Sequence +0:6 Constant: +0:6 3 (const int) +0:7 Constant: +0:7 4 (const int) +0:8 Constant: +0:8 5 (const int) +0:9 Constant: +0:9 6 (const int) +0:10 Constant: +0:10 7 (const int) +0:11 Constant: +0:11 8 (const int) +0:12 Comma ( temp 2-component vector of float) +0:? Constant: +0:? 9.000000 +0:? 10.000000 +0:? Constant: +0:? 11.000000 +0:? 12.000000 +0:15 move second child to first child ( temp 4-component vector of float) +0:15 color: direct index for structure ( temp 4-component vector of float) +0:15 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 Branch: Return with expression +0:16 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:4 color: direct index for structure ( temp 4-component vector of float) +0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:4 Constant: +0:4 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 40 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 37 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 10 "@main(" + Name 27 "ps_output" + Name 37 "@entryPointOutput.color" + Decorate 37(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13: 12(int) Constant 3 + 14: 12(int) Constant 4 + 15: 12(int) Constant 5 + 16: 12(int) Constant 6 + 17: 12(int) Constant 7 + 18: 12(int) Constant 8 + 19: TypeVector 6(float) 2 + 20: 6(float) Constant 1091567616 + 21: 6(float) Constant 1092616192 + 22: 19(fvec2) ConstantComposite 20 21 + 23: 6(float) Constant 1093664768 + 24: 6(float) Constant 1094713344 + 25: 19(fvec2) ConstantComposite 23 24 + 26: TypePointer Function 8(PS_OUTPUT) + 28: 12(int) Constant 0 + 29: 6(float) Constant 1065353216 + 30: 7(fvec4) ConstantComposite 29 29 29 29 + 31: TypePointer Function 7(fvec4) + 36: TypePointer Output 7(fvec4) +37(@entryPointOutput.color): 36(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 38:8(PS_OUTPUT) FunctionCall 10(@main() + 39: 7(fvec4) CompositeExtract 38 0 + Store 37(@entryPointOutput.color) 39 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 27(ps_output): 26(ptr) Variable Function + 32: 31(ptr) AccessChain 27(ps_output) 28 + Store 32 30 + 33:8(PS_OUTPUT) Load 27(ps_output) + ReturnValue 33 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.constructimat.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.constructimat.frag.out new file mode 100644 index 0000000000..c36ff6d0e3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.constructimat.frag.out @@ -0,0 +1,694 @@ +hlsl.constructimat.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @main( ( temp int) +0:2 Function Parameters: +0:? Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4X4 matrix of int) +0:6 'var443' ( temp 4X4 matrix of int) +0:6 Constant: +0:6 0 (const int) +0:6 1 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 1 (const int) +0:6 1 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 1 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:7 Sequence +0:7 move second child to first child ( temp 4X4 matrix of int) +0:7 'var444' ( temp 4X4 matrix of int) +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:11 Sequence +0:11 move second child to first child ( temp 4X2 matrix of int) +0:11 'var423' ( temp 4X2 matrix of int) +0:11 Constant: +0:11 0 (const int) +0:11 1 (const int) +0:11 1 (const int) +0:11 1 (const int) +0:11 1 (const int) +0:11 0 (const int) +0:11 0 (const int) +0:11 0 (const int) +0:12 Sequence +0:12 move second child to first child ( temp 4X2 matrix of int) +0:12 'var424' ( temp 4X2 matrix of int) +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:16 Sequence +0:16 move second child to first child ( temp 3X2 matrix of int) +0:16 'var323' ( temp 3X2 matrix of int) +0:16 Constant: +0:16 0 (const int) +0:16 1 (const int) +0:16 1 (const int) +0:16 1 (const int) +0:16 1 (const int) +0:16 0 (const int) +0:17 Sequence +0:17 move second child to first child ( temp 3X2 matrix of int) +0:17 'var234' ( temp 3X2 matrix of int) +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:22 Sequence +0:22 move second child to first child ( temp 4X4 matrix of uint) +0:22 'uvar443' ( temp 4X4 matrix of uint) +0:22 Constant: +0:22 0 (const uint) +0:22 1 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 1 (const uint) +0:22 1 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 1 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:23 Sequence +0:23 move second child to first child ( temp 4X4 matrix of uint) +0:23 'uvar444' ( temp 4X4 matrix of uint) +0:? Constant: +0:? 0 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:27 Sequence +0:27 move second child to first child ( temp 4X2 matrix of uint) +0:27 'uvar423' ( temp 4X2 matrix of uint) +0:27 Constant: +0:27 0 (const uint) +0:27 1 (const uint) +0:27 1 (const uint) +0:27 1 (const uint) +0:27 1 (const uint) +0:27 0 (const uint) +0:27 0 (const uint) +0:27 0 (const uint) +0:28 Sequence +0:28 move second child to first child ( temp 4X2 matrix of uint) +0:28 'uvar424' ( temp 4X2 matrix of uint) +0:? Constant: +0:? 0 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:32 Sequence +0:32 move second child to first child ( temp 3X2 matrix of uint) +0:32 'uvar323' ( temp 3X2 matrix of uint) +0:32 Constant: +0:32 0 (const uint) +0:32 1 (const uint) +0:32 1 (const uint) +0:32 1 (const uint) +0:32 1 (const uint) +0:32 0 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 3X2 matrix of uint) +0:33 'uvar234' ( temp 3X2 matrix of uint) +0:? Constant: +0:? 0 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:38 Sequence +0:38 move second child to first child ( temp 4X4 matrix of bool) +0:38 'bvar443' ( temp 4X4 matrix of bool) +0:38 Constant: +0:38 false (const bool) +0:38 true (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 true (const bool) +0:38 true (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 true (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:39 Sequence +0:39 move second child to first child ( temp 4X4 matrix of bool) +0:39 'bvar444' ( temp 4X4 matrix of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:43 Sequence +0:43 move second child to first child ( temp 4X2 matrix of bool) +0:43 'bvar423' ( temp 4X2 matrix of bool) +0:43 Constant: +0:43 false (const bool) +0:43 true (const bool) +0:43 true (const bool) +0:43 true (const bool) +0:43 true (const bool) +0:43 false (const bool) +0:43 false (const bool) +0:43 false (const bool) +0:44 Sequence +0:44 move second child to first child ( temp 4X2 matrix of bool) +0:44 'bvar424' ( temp 4X2 matrix of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:48 Sequence +0:48 move second child to first child ( temp 3X2 matrix of bool) +0:48 'bvar323' ( temp 3X2 matrix of bool) +0:48 Constant: +0:48 false (const bool) +0:48 true (const bool) +0:48 true (const bool) +0:48 true (const bool) +0:48 true (const bool) +0:48 false (const bool) +0:49 Sequence +0:49 move second child to first child ( temp 3X2 matrix of bool) +0:49 'bvar234' ( temp 3X2 matrix of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:51 Branch: Return with expression +0:51 Constant: +0:51 0 (const int) +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:2 Function Call: @main( ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @main( ( temp int) +0:2 Function Parameters: +0:? Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4X4 matrix of int) +0:6 'var443' ( temp 4X4 matrix of int) +0:6 Constant: +0:6 0 (const int) +0:6 1 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 1 (const int) +0:6 1 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 1 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:6 0 (const int) +0:7 Sequence +0:7 move second child to first child ( temp 4X4 matrix of int) +0:7 'var444' ( temp 4X4 matrix of int) +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:11 Sequence +0:11 move second child to first child ( temp 4X2 matrix of int) +0:11 'var423' ( temp 4X2 matrix of int) +0:11 Constant: +0:11 0 (const int) +0:11 1 (const int) +0:11 1 (const int) +0:11 1 (const int) +0:11 1 (const int) +0:11 0 (const int) +0:11 0 (const int) +0:11 0 (const int) +0:12 Sequence +0:12 move second child to first child ( temp 4X2 matrix of int) +0:12 'var424' ( temp 4X2 matrix of int) +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:? 0 (const int) +0:16 Sequence +0:16 move second child to first child ( temp 3X2 matrix of int) +0:16 'var323' ( temp 3X2 matrix of int) +0:16 Constant: +0:16 0 (const int) +0:16 1 (const int) +0:16 1 (const int) +0:16 1 (const int) +0:16 1 (const int) +0:16 0 (const int) +0:17 Sequence +0:17 move second child to first child ( temp 3X2 matrix of int) +0:17 'var234' ( temp 3X2 matrix of int) +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:? 0 (const int) +0:22 Sequence +0:22 move second child to first child ( temp 4X4 matrix of uint) +0:22 'uvar443' ( temp 4X4 matrix of uint) +0:22 Constant: +0:22 0 (const uint) +0:22 1 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 1 (const uint) +0:22 1 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 1 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:22 0 (const uint) +0:23 Sequence +0:23 move second child to first child ( temp 4X4 matrix of uint) +0:23 'uvar444' ( temp 4X4 matrix of uint) +0:? Constant: +0:? 0 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:27 Sequence +0:27 move second child to first child ( temp 4X2 matrix of uint) +0:27 'uvar423' ( temp 4X2 matrix of uint) +0:27 Constant: +0:27 0 (const uint) +0:27 1 (const uint) +0:27 1 (const uint) +0:27 1 (const uint) +0:27 1 (const uint) +0:27 0 (const uint) +0:27 0 (const uint) +0:27 0 (const uint) +0:28 Sequence +0:28 move second child to first child ( temp 4X2 matrix of uint) +0:28 'uvar424' ( temp 4X2 matrix of uint) +0:? Constant: +0:? 0 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:? 0 (const uint) +0:32 Sequence +0:32 move second child to first child ( temp 3X2 matrix of uint) +0:32 'uvar323' ( temp 3X2 matrix of uint) +0:32 Constant: +0:32 0 (const uint) +0:32 1 (const uint) +0:32 1 (const uint) +0:32 1 (const uint) +0:32 1 (const uint) +0:32 0 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 3X2 matrix of uint) +0:33 'uvar234' ( temp 3X2 matrix of uint) +0:? Constant: +0:? 0 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) +0:? 0 (const uint) +0:38 Sequence +0:38 move second child to first child ( temp 4X4 matrix of bool) +0:38 'bvar443' ( temp 4X4 matrix of bool) +0:38 Constant: +0:38 false (const bool) +0:38 true (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 true (const bool) +0:38 true (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 true (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:38 false (const bool) +0:39 Sequence +0:39 move second child to first child ( temp 4X4 matrix of bool) +0:39 'bvar444' ( temp 4X4 matrix of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:43 Sequence +0:43 move second child to first child ( temp 4X2 matrix of bool) +0:43 'bvar423' ( temp 4X2 matrix of bool) +0:43 Constant: +0:43 false (const bool) +0:43 true (const bool) +0:43 true (const bool) +0:43 true (const bool) +0:43 true (const bool) +0:43 false (const bool) +0:43 false (const bool) +0:43 false (const bool) +0:44 Sequence +0:44 move second child to first child ( temp 4X2 matrix of bool) +0:44 'bvar424' ( temp 4X2 matrix of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:? false (const bool) +0:? false (const bool) +0:48 Sequence +0:48 move second child to first child ( temp 3X2 matrix of bool) +0:48 'bvar323' ( temp 3X2 matrix of bool) +0:48 Constant: +0:48 false (const bool) +0:48 true (const bool) +0:48 true (const bool) +0:48 true (const bool) +0:48 true (const bool) +0:48 false (const bool) +0:49 Sequence +0:49 move second child to first child ( temp 3X2 matrix of bool) +0:49 'bvar234' ( temp 3X2 matrix of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:51 Branch: Return with expression +0:51 Constant: +0:51 0 (const int) +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:2 Function Call: @main( ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 98 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "@main(" + Name 13 "var443" + Name 21 "var444" + Name 25 "var423" + Name 31 "var424" + Name 34 "var323" + Name 36 "var234" + Name 41 "uvar443" + Name 49 "uvar444" + Name 53 "uvar423" + Name 59 "uvar424" + Name 62 "uvar323" + Name 64 "uvar234" + Name 69 "bvar443" + Name 77 "bvar444" + Name 81 "bvar423" + Name 87 "bvar424" + Name 90 "bvar323" + Name 92 "bvar234" + Name 96 "@entryPointOutput" + Decorate 96(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFunction 6(int) + 10: TypeVector 6(int) 4 + 11: TypeMatrix 10(ivec4) 4 + 12: TypePointer Function 11 + 14: 6(int) Constant 0 + 15: 6(int) Constant 1 + 16: 10(ivec4) ConstantComposite 14 15 14 14 + 17: 10(ivec4) ConstantComposite 15 15 14 14 + 18: 10(ivec4) ConstantComposite 15 14 14 14 + 19: 10(ivec4) ConstantComposite 14 14 14 14 + 20: 11 ConstantComposite 16 17 18 19 + 22: TypeVector 6(int) 2 + 23: TypeMatrix 22(ivec2) 4 + 24: TypePointer Function 23 + 26: 22(ivec2) ConstantComposite 14 15 + 27: 22(ivec2) ConstantComposite 15 15 + 28: 22(ivec2) ConstantComposite 15 14 + 29: 22(ivec2) ConstantComposite 14 14 + 30: 23 ConstantComposite 26 27 28 29 + 32: TypeMatrix 22(ivec2) 3 + 33: TypePointer Function 32 + 35: 32 ConstantComposite 26 27 28 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypeMatrix 38(ivec4) 4 + 40: TypePointer Function 39 + 42: 37(int) Constant 0 + 43: 37(int) Constant 1 + 44: 38(ivec4) ConstantComposite 42 43 42 42 + 45: 38(ivec4) ConstantComposite 43 43 42 42 + 46: 38(ivec4) ConstantComposite 43 42 42 42 + 47: 38(ivec4) ConstantComposite 42 42 42 42 + 48: 39 ConstantComposite 44 45 46 47 + 50: TypeVector 37(int) 2 + 51: TypeMatrix 50(ivec2) 4 + 52: TypePointer Function 51 + 54: 50(ivec2) ConstantComposite 42 43 + 55: 50(ivec2) ConstantComposite 43 43 + 56: 50(ivec2) ConstantComposite 43 42 + 57: 50(ivec2) ConstantComposite 42 42 + 58: 51 ConstantComposite 54 55 56 57 + 60: TypeMatrix 50(ivec2) 3 + 61: TypePointer Function 60 + 63: 60 ConstantComposite 54 55 56 + 65: TypeBool + 66: TypeVector 65(bool) 4 + 67: TypeMatrix 66(bvec4) 4 + 68: TypePointer Function 67 + 70: 65(bool) ConstantFalse + 71: 65(bool) ConstantTrue + 72: 66(bvec4) ConstantComposite 70 71 70 70 + 73: 66(bvec4) ConstantComposite 71 71 70 70 + 74: 66(bvec4) ConstantComposite 71 70 70 70 + 75: 66(bvec4) ConstantComposite 70 70 70 70 + 76: 67 ConstantComposite 72 73 74 75 + 78: TypeVector 65(bool) 2 + 79: TypeMatrix 78(bvec2) 4 + 80: TypePointer Function 79 + 82: 78(bvec2) ConstantComposite 70 71 + 83: 78(bvec2) ConstantComposite 71 71 + 84: 78(bvec2) ConstantComposite 71 70 + 85: 78(bvec2) ConstantComposite 70 70 + 86: 79 ConstantComposite 82 83 84 85 + 88: TypeMatrix 78(bvec2) 3 + 89: TypePointer Function 88 + 91: 88 ConstantComposite 82 83 84 + 95: TypePointer Output 6(int) +96(@entryPointOutput): 95(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 97: 6(int) FunctionCall 8(@main() + Store 96(@entryPointOutput) 97 + Return + FunctionEnd + 8(@main(): 6(int) Function None 7 + 9: Label + 13(var443): 12(ptr) Variable Function + 21(var444): 12(ptr) Variable Function + 25(var423): 24(ptr) Variable Function + 31(var424): 24(ptr) Variable Function + 34(var323): 33(ptr) Variable Function + 36(var234): 33(ptr) Variable Function + 41(uvar443): 40(ptr) Variable Function + 49(uvar444): 40(ptr) Variable Function + 53(uvar423): 52(ptr) Variable Function + 59(uvar424): 52(ptr) Variable Function + 62(uvar323): 61(ptr) Variable Function + 64(uvar234): 61(ptr) Variable Function + 69(bvar443): 68(ptr) Variable Function + 77(bvar444): 68(ptr) Variable Function + 81(bvar423): 80(ptr) Variable Function + 87(bvar424): 80(ptr) Variable Function + 90(bvar323): 89(ptr) Variable Function + 92(bvar234): 89(ptr) Variable Function + Store 13(var443) 20 + Store 21(var444) 20 + Store 25(var423) 30 + Store 31(var424) 30 + Store 34(var323) 35 + Store 36(var234) 35 + Store 41(uvar443) 48 + Store 49(uvar444) 48 + Store 53(uvar423) 58 + Store 59(uvar424) 58 + Store 62(uvar323) 63 + Store 64(uvar234) 63 + Store 69(bvar443) 76 + Store 77(bvar444) 76 + Store 81(bvar423) 86 + Store 87(bvar424) 86 + Store 90(bvar323) 91 + Store 92(bvar234) 91 + ReturnValue 14 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.coverage.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.coverage.frag.out new file mode 100644 index 0000000000..8afc59af4b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.coverage.frag.out @@ -0,0 +1,204 @@ +hlsl.coverage.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Function Parameters: +0:15 'i' ( in structure{}) +0:? Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 vColor: direct index for structure ( temp 4-component vector of float) +0:17 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:17 Constant: +0:17 0 (const int) +0:? Constant: +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:18 move second child to first child ( temp uint) +0:18 nCoverageMask: direct index for structure ( temp uint) +0:18 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const uint) +0:19 Branch: Return with expression +0:19 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? 'i' ( in structure{}) +0:15 Sequence +0:15 move second child to first child ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Function Call: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:? 'i' ( temp structure{}) +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) +0:15 vColor: direct index for structure ( temp 4-component vector of float) +0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Constant: +0:15 0 (const int) +0:15 move second child to first child ( temp uint) +0:15 direct index ( out uint SampleMaskIn) +0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) +0:15 Constant: +0:15 0 (const int) +0:15 nCoverageMask: direct index for structure ( temp uint) +0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Constant: +0:15 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) +0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Function Parameters: +0:15 'i' ( in structure{}) +0:? Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 vColor: direct index for structure ( temp 4-component vector of float) +0:17 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:17 Constant: +0:17 0 (const int) +0:? Constant: +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:18 move second child to first child ( temp uint) +0:18 nCoverageMask: direct index for structure ( temp uint) +0:18 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const uint) +0:19 Branch: Return with expression +0:19 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? 'i' ( in structure{}) +0:15 Sequence +0:15 move second child to first child ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Function Call: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:? 'i' ( temp structure{}) +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) +0:15 vColor: direct index for structure ( temp 4-component vector of float) +0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Constant: +0:15 0 (const int) +0:15 move second child to first child ( temp uint) +0:15 direct index ( out uint SampleMaskIn) +0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) +0:15 Constant: +0:15 0 (const int) +0:15 nCoverageMask: direct index for structure ( temp uint) +0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) +0:15 Constant: +0:15 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) +0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 52 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 47 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "PS_INPUT" + Name 11 "PS_OUTPUT" + MemberName 11(PS_OUTPUT) 0 "vColor" + MemberName 11(PS_OUTPUT) 1 "nCoverageMask" + Name 14 "@main(struct-PS_INPUT1;" + Name 13 "i" + Name 17 "o" + Name 32 "i" + Name 34 "i" + Name 36 "flattenTemp" + Name 37 "param" + Name 41 "@entryPointOutput.vColor" + Name 47 "@entryPointOutput.nCoverageMask" + Decorate 41(@entryPointOutput.vColor) Location 0 + Decorate 47(@entryPointOutput.nCoverageMask) BuiltIn SampleMask + 2: TypeVoid + 3: TypeFunction 2 + 6(PS_INPUT): TypeStruct + 7: TypePointer Function 6(PS_INPUT) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeInt 32 0 + 11(PS_OUTPUT): TypeStruct 9(fvec4) 10(int) + 12: TypeFunction 11(PS_OUTPUT) 7(ptr) + 16: TypePointer Function 11(PS_OUTPUT) + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: 8(float) Constant 1065353216 + 21: 8(float) Constant 0 + 22: 9(fvec4) ConstantComposite 20 21 21 20 + 23: TypePointer Function 9(fvec4) + 25: 18(int) Constant 1 + 26: 10(int) Constant 0 + 27: TypePointer Function 10(int) + 33: TypePointer Input 6(PS_INPUT) + 34(i): 33(ptr) Variable Input + 40: TypePointer Output 9(fvec4) +41(@entryPointOutput.vColor): 40(ptr) Variable Output + 44: 10(int) Constant 1 + 45: TypeArray 10(int) 44 + 46: TypePointer Output 45 +47(@entryPointOutput.nCoverageMask): 46(ptr) Variable Output + 50: TypePointer Output 10(int) + 4(main): 2 Function None 3 + 5: Label + 32(i): 7(ptr) Variable Function + 36(flattenTemp): 16(ptr) Variable Function + 37(param): 7(ptr) Variable Function + 35: 6(PS_INPUT) Load 34(i) + Store 32(i) 35 + 38: 6(PS_INPUT) Load 32(i) + Store 37(param) 38 + 39:11(PS_OUTPUT) FunctionCall 14(@main(struct-PS_INPUT1;) 37(param) + Store 36(flattenTemp) 39 + 42: 23(ptr) AccessChain 36(flattenTemp) 19 + 43: 9(fvec4) Load 42 + Store 41(@entryPointOutput.vColor) 43 + 48: 27(ptr) AccessChain 36(flattenTemp) 25 + 49: 10(int) Load 48 + 51: 50(ptr) AccessChain 47(@entryPointOutput.nCoverageMask) 19 + Store 51 49 + Return + FunctionEnd +14(@main(struct-PS_INPUT1;):11(PS_OUTPUT) Function None 12 + 13(i): 7(ptr) FunctionParameter + 15: Label + 17(o): 16(ptr) Variable Function + 24: 23(ptr) AccessChain 17(o) 19 + Store 24 22 + 28: 27(ptr) AccessChain 17(o) 25 + Store 28 26 + 29:11(PS_OUTPUT) Load 17(o) + ReturnValue 29 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.dashI.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.dashI.vert.out new file mode 100644 index 0000000000..400502be50 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.dashI.vert.out @@ -0,0 +1,69 @@ +hlsl.dashI.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 40 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 38 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 11 "$Global" + MemberName 11($Global) 0 "i1" + MemberName 11($Global) 1 "p1" + MemberName 11($Global) 2 "p2" + MemberName 11($Global) 3 "p3" + MemberName 11($Global) 4 "i4" + Name 13 "" + Name 38 "@entryPointOutput" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + MemberDecorate 11($Global) 2 Offset 32 + MemberDecorate 11($Global) 3 Offset 48 + MemberDecorate 11($Global) 4 Offset 64 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 38(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Uniform 7(fvec4) + 19: 14(int) Constant 4 + 23: 14(int) Constant 1 + 27: 14(int) Constant 2 + 31: 14(int) Constant 3 + 37: TypePointer Output 7(fvec4) +38(@entryPointOutput): 37(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 39: 7(fvec4) FunctionCall 9(@main() + Store 38(@entryPointOutput) 39 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 17: 16(ptr) AccessChain 13 15 + 18: 7(fvec4) Load 17 + 20: 16(ptr) AccessChain 13 19 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 18 21 + 24: 16(ptr) AccessChain 13 23 + 25: 7(fvec4) Load 24 + 26: 7(fvec4) FAdd 22 25 + 28: 16(ptr) AccessChain 13 27 + 29: 7(fvec4) Load 28 + 30: 7(fvec4) FAdd 26 29 + 32: 16(ptr) AccessChain 13 31 + 33: 7(fvec4) Load 32 + 34: 7(fvec4) FAdd 30 33 + ReturnValue 34 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out new file mode 100644 index 0000000000..2bc08dabb8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out @@ -0,0 +1,33 @@ +hlsl.deadFunctionMissingBody.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 18 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 16 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 16 "@entryPointOutput" + Decorate 16(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: 6(float) Constant 0 + 12: 7(fvec4) ConstantComposite 11 11 11 11 + 15: TypePointer Output 7(fvec4) +16(@entryPointOutput): 15(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 17: 7(fvec4) FunctionCall 9(@main() + Store 16(@entryPointOutput) 17 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.depthGreater.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.depthGreater.frag.out new file mode 100644 index 0000000000..9749371a50 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.depthGreater.frag.out @@ -0,0 +1,95 @@ +hlsl.depthGreater.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_greater +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(f1; ( temp void) +0:2 Function Parameters: +0:2 'depth' ( out float) +0:? Sequence +0:3 move second child to first child ( temp float) +0:3 'depth' ( out float) +0:3 Constant: +0:3 0.200000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 Function Call: @PixelShaderFunction(f1; ( temp void) +0:? 'depth' ( temp float) +0:2 move second child to first child ( temp float) +0:? 'depth' ( out float FragDepth) +0:? 'depth' ( temp float) +0:? Linker Objects +0:? 'depth' ( out float FragDepth) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_greater +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(f1; ( temp void) +0:2 Function Parameters: +0:2 'depth' ( out float) +0:? Sequence +0:3 move second child to first child ( temp float) +0:3 'depth' ( out float) +0:3 Constant: +0:3 0.200000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 Function Call: @PixelShaderFunction(f1; ( temp void) +0:? 'depth' ( temp float) +0:2 move second child to first child ( temp float) +0:? 'depth' ( out float FragDepth) +0:? 'depth' ( temp float) +0:? Linker Objects +0:? 'depth' ( out float FragDepth) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 18 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthGreater + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 10 "@PixelShaderFunction(f1;" + Name 9 "depth" + Name 13 "depth" + Name 14 "param" + Name 18 "depth" + Decorate 18(depth) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) + 12: 6(float) Constant 1045220557 + 17: TypePointer Output 6(float) + 18(depth): 17(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 13(depth): 7(ptr) Variable Function + 14(param): 7(ptr) Variable Function + 15: 2 FunctionCall 10(@PixelShaderFunction(f1;) 14(param) + 16: 6(float) Load 14(param) + Store 13(depth) 16 + 19: 6(float) Load 13(depth) + Store 18(depth) 19 + Return + FunctionEnd +10(@PixelShaderFunction(f1;): 2 Function None 8 + 9(depth): 7(ptr) FunctionParameter + 11: Label + Store 9(depth) 12 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.depthLess.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.depthLess.frag.out new file mode 100644 index 0000000000..c3af8eeaee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.depthLess.frag.out @@ -0,0 +1,76 @@ +hlsl.depthLess.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_less +0:? Sequence +0:2 Function Definition: @PixelShaderFunction( ( temp float) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 0.200000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? '@entryPointOutput' ( out float FragDepth) +0:2 Function Call: @PixelShaderFunction( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' ( out float FragDepth) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_less +0:? Sequence +0:2 Function Definition: @PixelShaderFunction( ( temp float) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 0.200000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? '@entryPointOutput' ( out float FragDepth) +0:2 Function Call: @PixelShaderFunction( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' ( out float FragDepth) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 16 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 14 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthLess + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 8 "@PixelShaderFunction(" + Name 14 "@entryPointOutput" + Decorate 14(@entryPointOutput) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: 6(float) Constant 1045220557 + 13: TypePointer Output 6(float) +14(@entryPointOutput): 13(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 15: 6(float) FunctionCall 8(@PixelShaderFunction() + Store 14(@entryPointOutput) 15 + Return + FunctionEnd +8(@PixelShaderFunction(): 6(float) Function None 7 + 9: Label + ReturnValue 10 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.discard.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.discard.frag.out new file mode 100644 index 0000000000..cc7c866609 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.discard.frag.out @@ -0,0 +1,191 @@ +hlsl.discard.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo(f1; ( temp 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:8 Function Definition: @PixelShaderFunction(vf4; ( temp void) +0:8 Function Parameters: +0:8 'input' ( in 4-component vector of float) +0:? Sequence +0:9 Function Call: foo(f1; ( temp 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 Convert float to bool ( temp bool) +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:8 Function Definition: PixelShaderFunction( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:8 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo(f1; ( temp 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:8 Function Definition: @PixelShaderFunction(vf4; ( temp void) +0:8 Function Parameters: +0:8 'input' ( in 4-component vector of float) +0:? Sequence +0:9 Function Call: foo(f1; ( temp 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 Convert float to bool ( temp bool) +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:8 Function Definition: PixelShaderFunction( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:8 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 45 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 10 "foo(f1;" + Name 9 "f" + Name 16 "@PixelShaderFunction(vf4;" + Name 15 "input" + Name 25 "param" + Name 39 "f" + Name 43 "input" + Name 45 "input" + Name 47 "param" + Decorate 45(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) + 12: TypeVector 6(float) 4 + 13: TypePointer Function 12(fvec4) + 14: TypeFunction 2 13(ptr) + 19: 6(float) Constant 1065353216 + 20: TypeBool + 26: TypeInt 32 0 + 27: 26(int) Constant 2 + 31: 26(int) Constant 0 + 34: 6(float) Constant 0 + 44: TypePointer Input 12(fvec4) + 45(input): 44(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 43(input): 13(ptr) Variable Function + 47(param): 13(ptr) Variable Function + 46: 12(fvec4) Load 45(input) + Store 43(input) 46 + 48: 12(fvec4) Load 43(input) + Store 47(param) 48 + 49: 2 FunctionCall 16(@PixelShaderFunction(vf4;) 47(param) + Return + FunctionEnd + 10(foo(f1;): 2 Function None 8 + 9(f): 7(ptr) FunctionParameter + 11: Label + 18: 6(float) Load 9(f) + 21: 20(bool) FOrdLessThan 18 19 + SelectionMerge 23 None + BranchConditional 21 22 23 + 22: Label + Kill + 23: Label + Return + FunctionEnd +16(@PixelShaderFunction(vf4;): 2 Function None 14 + 15(input): 13(ptr) FunctionParameter + 17: Label + 25(param): 7(ptr) Variable Function + 39(f): 7(ptr) Variable Function + 28: 7(ptr) AccessChain 15(input) 27 + 29: 6(float) Load 28 + Store 25(param) 29 + 30: 2 FunctionCall 10(foo(f1;) 25(param) + 32: 7(ptr) AccessChain 15(input) 31 + 33: 6(float) Load 32 + 35: 20(bool) FOrdNotEqual 33 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + Kill + 37: Label + 40: 7(ptr) AccessChain 15(input) 31 + 41: 6(float) Load 40 + Store 39(f) 41 + Kill + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.doLoop.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.doLoop.frag.out new file mode 100644 index 0000000000..bb564658a2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.doLoop.frag.out @@ -0,0 +1,271 @@ +hlsl.doLoop.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in float) +0:? Sequence +0:3 Loop with condition not tested first: Unroll +0:3 Loop Condition +0:3 Constant: +0:3 false (const bool) +0:3 No loop body +0:4 Loop with condition not tested first: Unroll +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition not tested first +0:5 Loop Condition +0:5 Compare Greater Than ( temp bool) +0:5 'input' ( in float) +0:5 Constant: +0:5 2.000000 +0:5 Loop Body +0:? Sequence +0:5 Branch: Return with expression +0:5 Construct vec4 ( temp 4-component vector of float) +0:5 'input' ( in float) +0:6 Loop with condition not tested first +0:6 Loop Condition +0:6 Compare Less Than ( temp bool) +0:6 'input' ( in float) +0:6 Constant: +0:6 10.000000 +0:6 Loop Body +0:6 Pre-Increment ( temp float) +0:6 'input' ( in float) +0:7 Loop with condition not tested first +0:7 Loop Condition +0:7 Compare Less Than ( temp bool) +0:7 Pre-Increment ( temp float) +0:7 'input' ( in float) +0:7 Constant: +0:7 10.000000 +0:7 Loop Body +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 Compare Less Than ( temp bool) +0:7 Pre-Increment ( temp float) +0:7 'input' ( in float) +0:7 Constant: +0:7 10.000000 +0:7 No loop body +0:8 Branch: Return with expression +0:8 Construct vec4 ( temp 4-component vector of float) +0:8 'input' ( in float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? 'input' ( temp float) +0:? 'input' (layout( location=0) in float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(f1; ( temp 4-component vector of float) +0:? 'input' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in float) +0:? Sequence +0:3 Loop with condition not tested first: Unroll +0:3 Loop Condition +0:3 Constant: +0:3 false (const bool) +0:3 No loop body +0:4 Loop with condition not tested first: Unroll +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition not tested first +0:5 Loop Condition +0:5 Compare Greater Than ( temp bool) +0:5 'input' ( in float) +0:5 Constant: +0:5 2.000000 +0:5 Loop Body +0:? Sequence +0:5 Branch: Return with expression +0:5 Construct vec4 ( temp 4-component vector of float) +0:5 'input' ( in float) +0:6 Loop with condition not tested first +0:6 Loop Condition +0:6 Compare Less Than ( temp bool) +0:6 'input' ( in float) +0:6 Constant: +0:6 10.000000 +0:6 Loop Body +0:6 Pre-Increment ( temp float) +0:6 'input' ( in float) +0:7 Loop with condition not tested first +0:7 Loop Condition +0:7 Compare Less Than ( temp bool) +0:7 Pre-Increment ( temp float) +0:7 'input' ( in float) +0:7 Constant: +0:7 10.000000 +0:7 Loop Body +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 Compare Less Than ( temp bool) +0:7 Pre-Increment ( temp float) +0:7 'input' ( in float) +0:7 Constant: +0:7 10.000000 +0:7 No loop body +0:8 Branch: Return with expression +0:8 Construct vec4 ( temp 4-component vector of float) +0:8 'input' ( in float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? 'input' ( temp float) +0:? 'input' (layout( location=0) in float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(f1; ( temp 4-component vector of float) +0:? 'input' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 71 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 64 67 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(f1;" + Name 10 "input" + Name 62 "input" + Name 64 "input" + Name 67 "@entryPointOutput" + Name 68 "param" + Decorate 64(input) Location 0 + Decorate 67(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeVector 6(float) 4 + 9: TypeFunction 8(fvec4) 7(ptr) + 17: TypeBool + 18: 17(bool) ConstantFalse + 31: 6(float) Constant 1073741824 + 38: 6(float) Constant 1065353216 + 41: 6(float) Constant 1092616192 + 63: TypePointer Input 6(float) + 64(input): 63(ptr) Variable Input + 66: TypePointer Output 8(fvec4) +67(@entryPointOutput): 66(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 62(input): 7(ptr) Variable Function + 68(param): 7(ptr) Variable Function + 65: 6(float) Load 64(input) + Store 62(input) 65 + 69: 6(float) Load 62(input) + Store 68(param) 69 + 70: 8(fvec4) FunctionCall 11(@PixelShaderFunction(f1;) 68(param) + Store 67(@entryPointOutput) 70 + Return + FunctionEnd +11(@PixelShaderFunction(f1;): 8(fvec4) Function None 9 + 10(input): 7(ptr) FunctionParameter + 12: Label + Branch 13 + 13: Label + LoopMerge 15 16 Unroll + Branch 14 + 14: Label + Branch 16 + 16: Label + BranchConditional 18 13 15 + 15: Label + Branch 19 + 19: Label + LoopMerge 21 22 Unroll + Branch 20 + 20: Label + Branch 22 + 22: Label + BranchConditional 18 19 21 + 21: Label + Branch 23 + 23: Label + LoopMerge 25 26 None + Branch 24 + 24: Label + 27: 6(float) Load 10(input) + 28: 8(fvec4) CompositeConstruct 27 27 27 27 + ReturnValue 28 + 26: Label + 30: 6(float) Load 10(input) + 32: 17(bool) FOrdGreaterThan 30 31 + BranchConditional 32 23 25 + 25: Label + Branch 33 + 33: Label + LoopMerge 35 36 None + Branch 34 + 34: Label + 37: 6(float) Load 10(input) + 39: 6(float) FAdd 37 38 + Store 10(input) 39 + Branch 36 + 36: Label + 40: 6(float) Load 10(input) + 42: 17(bool) FOrdLessThan 40 41 + BranchConditional 42 33 35 + 35: Label + Branch 43 + 43: Label + LoopMerge 45 46 None + Branch 44 + 44: Label + Branch 47 + 47: Label + LoopMerge 49 50 None + Branch 51 + 51: Label + 52: 6(float) Load 10(input) + 53: 6(float) FAdd 52 38 + Store 10(input) 53 + 54: 17(bool) FOrdLessThan 53 41 + BranchConditional 54 48 49 + 48: Label + Branch 50 + 50: Label + Branch 47 + 49: Label + Branch 46 + 46: Label + 55: 6(float) Load 10(input) + 56: 6(float) FAdd 55 38 + Store 10(input) 56 + 57: 17(bool) FOrdLessThan 56 41 + BranchConditional 57 43 45 + 45: Label + 58: 6(float) Load 10(input) + 59: 8(fvec4) CompositeConstruct 58 58 58 58 + ReturnValue 59 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.domain.1.tese.out b/deps/glslang/glslang/Test/baseResults/hlsl.domain.1.tese.out new file mode 100644 index 0000000000..4bc8bac5e9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.domain.1.tese.out @@ -0,0 +1,457 @@ +hlsl.domain.1.tese +Shader version: 500 +input primitive = triangles +vertex spacing = none +triangle order = none +0:? Sequence +0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Function Parameters: +0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 'f' ( in float) +0:22 'tesscoord' ( in 3-component vector of float) +0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:? Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 pos: direct index for structure ( temp 4-component vector of float) +0:25 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 0 (const int) +0:25 add ( temp 4-component vector of float) +0:25 pos: direct index for structure ( temp 4-component vector of float) +0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 component-wise multiply ( temp float) +0:25 direct index ( temp float) +0:25 'tesscoord' ( in 3-component vector of float) +0:25 Constant: +0:25 0 (const int) +0:25 'f' ( in float) +0:26 move second child to first child ( temp 3-component vector of float) +0:26 norm: direct index for structure ( temp 3-component vector of float) +0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:26 Constant: +0:26 1 (const int) +0:26 add ( temp 3-component vector of float) +0:26 norm: direct index for structure ( temp 3-component vector of float) +0:26 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:26 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 direct index ( temp float) +0:26 'tesscoord' ( in 3-component vector of float) +0:26 Constant: +0:26 1 (const int) +0:28 direct index ( temp float) +0:28 'tesscoord' ( in 3-component vector of float) +0:28 Constant: +0:28 2 (const int) +0:30 Branch: Return with expression +0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 move second child to first child ( temp float) +0:? 'f' ( temp float) +0:? 'f' (layout( location=2) patch in float) +0:22 move second child to first child ( temp 3-component vector of float) +0:? 'tesscoord' ( temp 3-component vector of float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 direct index ( temp float) +0:22 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 0 (const int) +0:22 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp float) +0:22 direct index ( temp float) +0:22 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:22 Constant: +0:22 1 (const int) +0:22 move second child to first child ( temp float) +0:22 direct index ( temp float) +0:22 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:22 Constant: +0:22 2 (const int) +0:22 move second child to first child ( temp float) +0:22 flInsideTessFactor: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 1 (const int) +0:22 direct index ( patch in float TessLevelInner) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:22 Constant: +0:22 0 (const int) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'f' ( temp float) +0:? 'tesscoord' ( temp 3-component vector of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:22 pos: direct index for structure ( temp 4-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:22 norm: direct index for structure ( temp 3-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Constant: +0:22 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'f' (layout( location=2) patch in float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) + + +Linked tessellation evaluation stage: + + +Shader version: 500 +input primitive = triangles +vertex spacing = none +triangle order = none +0:? Sequence +0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Function Parameters: +0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 'f' ( in float) +0:22 'tesscoord' ( in 3-component vector of float) +0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:? Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 pos: direct index for structure ( temp 4-component vector of float) +0:25 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 0 (const int) +0:25 add ( temp 4-component vector of float) +0:25 pos: direct index for structure ( temp 4-component vector of float) +0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 component-wise multiply ( temp float) +0:25 direct index ( temp float) +0:25 'tesscoord' ( in 3-component vector of float) +0:25 Constant: +0:25 0 (const int) +0:25 'f' ( in float) +0:26 move second child to first child ( temp 3-component vector of float) +0:26 norm: direct index for structure ( temp 3-component vector of float) +0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:26 Constant: +0:26 1 (const int) +0:26 add ( temp 3-component vector of float) +0:26 norm: direct index for structure ( temp 3-component vector of float) +0:26 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:26 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 direct index ( temp float) +0:26 'tesscoord' ( in 3-component vector of float) +0:26 Constant: +0:26 1 (const int) +0:28 direct index ( temp float) +0:28 'tesscoord' ( in 3-component vector of float) +0:28 Constant: +0:28 2 (const int) +0:30 Branch: Return with expression +0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 move second child to first child ( temp float) +0:? 'f' ( temp float) +0:? 'f' (layout( location=2) patch in float) +0:22 move second child to first child ( temp 3-component vector of float) +0:? 'tesscoord' ( temp 3-component vector of float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 direct index ( temp float) +0:22 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 0 (const int) +0:22 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp float) +0:22 direct index ( temp float) +0:22 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:22 Constant: +0:22 1 (const int) +0:22 move second child to first child ( temp float) +0:22 direct index ( temp float) +0:22 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:22 Constant: +0:22 2 (const int) +0:22 move second child to first child ( temp float) +0:22 flInsideTessFactor: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 Constant: +0:22 1 (const int) +0:22 direct index ( patch in float TessLevelInner) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:22 Constant: +0:22 0 (const int) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'f' ( temp float) +0:? 'tesscoord' ( temp 3-component vector of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:22 pos: direct index for structure ( temp 4-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:22 norm: direct index for structure ( temp 3-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:22 Constant: +0:22 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'f' (layout( location=2) patch in float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 103 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationEvaluation 4 "main" 54 58 62 68 82 96 100 + ExecutionMode 4 Triangles + Source HLSL 500 + Name 4 "main" + Name 9 "ds_in_t" + MemberName 9(ds_in_t) 0 "pos" + MemberName 9(ds_in_t) 1 "norm" + Name 16 "pcf_in_t" + MemberName 16(pcf_in_t) 0 "flTessFactor" + MemberName 16(pcf_in_t) 1 "flInsideTessFactor" + Name 18 "gs_in_t" + MemberName 18(gs_in_t) 0 "pos" + MemberName 18(gs_in_t) 1 "norm" + Name 24 "@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;" + Name 20 "i" + Name 21 "f" + Name 22 "tesscoord" + Name 23 "pcf_data" + Name 27 "o" + Name 52 "i" + Name 54 "i" + Name 56 "f" + Name 58 "f" + Name 60 "tesscoord" + Name 62 "tesscoord" + Name 64 "pcf_data" + Name 68 "pcf_data.flTessFactor" + Name 82 "pcf_data.flInsideTessFactor" + Name 86 "flattenTemp" + Name 88 "param" + Name 90 "param" + Name 92 "param" + Name 96 "@entryPointOutput.pos" + Name 100 "@entryPointOutput.norm" + Decorate 54(i) Location 0 + Decorate 58(f) Patch + Decorate 58(f) Location 2 + Decorate 62(tesscoord) Patch + Decorate 62(tesscoord) BuiltIn TessCoord + Decorate 68(pcf_data.flTessFactor) Patch + Decorate 68(pcf_data.flTessFactor) BuiltIn TessLevelOuter + Decorate 82(pcf_data.flInsideTessFactor) Patch + Decorate 82(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner + Decorate 96(@entryPointOutput.pos) Location 0 + Decorate 100(@entryPointOutput.norm) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(ds_in_t): TypeStruct 7(fvec4) 8(fvec3) + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypeArray 9(ds_in_t) 11 + 13: TypePointer Function 6(float) + 14: TypePointer Function 8(fvec3) + 15: TypeArray 6(float) 11 + 16(pcf_in_t): TypeStruct 15 6(float) + 17: TypePointer Function 16(pcf_in_t) + 18(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) + 19: TypeFunction 18(gs_in_t) 12 13(ptr) 14(ptr) 17(ptr) + 26: TypePointer Function 18(gs_in_t) + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 31: 10(int) Constant 0 + 38: TypePointer Function 7(fvec4) + 40: 28(int) Constant 1 + 42: 10(int) Constant 1 + 51: TypePointer Function 12 + 53: TypePointer Input 12 + 54(i): 53(ptr) Variable Input + 57: TypePointer Input 6(float) + 58(f): 57(ptr) Variable Input + 61: TypePointer Input 8(fvec3) + 62(tesscoord): 61(ptr) Variable Input + 65: 10(int) Constant 4 + 66: TypeArray 6(float) 65 + 67: TypePointer Input 66 +68(pcf_data.flTessFactor): 67(ptr) Variable Input + 75: 28(int) Constant 2 + 79: 10(int) Constant 2 + 80: TypeArray 6(float) 79 + 81: TypePointer Input 80 +82(pcf_data.flInsideTessFactor): 81(ptr) Variable Input + 95: TypePointer Output 7(fvec4) +96(@entryPointOutput.pos): 95(ptr) Variable Output + 99: TypePointer Output 8(fvec3) +100(@entryPointOutput.norm): 99(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 52(i): 51(ptr) Variable Function + 56(f): 13(ptr) Variable Function + 60(tesscoord): 14(ptr) Variable Function + 64(pcf_data): 17(ptr) Variable Function + 86(flattenTemp): 26(ptr) Variable Function + 88(param): 13(ptr) Variable Function + 90(param): 14(ptr) Variable Function + 92(param): 17(ptr) Variable Function + 55: 12 Load 54(i) + Store 52(i) 55 + 59: 6(float) Load 58(f) + Store 56(f) 59 + 63: 8(fvec3) Load 62(tesscoord) + Store 60(tesscoord) 63 + 69: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 29 + 70: 6(float) Load 69 + 71: 13(ptr) AccessChain 64(pcf_data) 29 29 + Store 71 70 + 72: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 40 + 73: 6(float) Load 72 + 74: 13(ptr) AccessChain 64(pcf_data) 29 40 + Store 74 73 + 76: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 75 + 77: 6(float) Load 76 + 78: 13(ptr) AccessChain 64(pcf_data) 29 75 + Store 78 77 + 83: 57(ptr) AccessChain 82(pcf_data.flInsideTessFactor) 29 + 84: 6(float) Load 83 + 85: 13(ptr) AccessChain 64(pcf_data) 40 + Store 85 84 + 87: 12 Load 52(i) + 89: 6(float) Load 56(f) + Store 88(param) 89 + 91: 8(fvec3) Load 60(tesscoord) + Store 90(param) 91 + 93:16(pcf_in_t) Load 64(pcf_data) + Store 92(param) 93 + 94: 18(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;) 87 88(param) 90(param) 92(param) + Store 86(flattenTemp) 94 + 97: 38(ptr) AccessChain 86(flattenTemp) 29 + 98: 7(fvec4) Load 97 + Store 96(@entryPointOutput.pos) 98 + 101: 14(ptr) AccessChain 86(flattenTemp) 40 + 102: 8(fvec3) Load 101 + Store 100(@entryPointOutput.norm) 102 + Return + FunctionEnd +24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;): 18(gs_in_t) Function None 19 + 20(i): 12 FunctionParameter + 21(f): 13(ptr) FunctionParameter + 22(tesscoord): 14(ptr) FunctionParameter + 23(pcf_data): 17(ptr) FunctionParameter + 25: Label + 27(o): 26(ptr) Variable Function + 30: 7(fvec4) CompositeExtract 20(i) 0 0 + 32: 13(ptr) AccessChain 22(tesscoord) 31 + 33: 6(float) Load 32 + 34: 6(float) Load 21(f) + 35: 6(float) FMul 33 34 + 36: 7(fvec4) CompositeConstruct 35 35 35 35 + 37: 7(fvec4) FAdd 30 36 + 39: 38(ptr) AccessChain 27(o) 29 + Store 39 37 + 41: 8(fvec3) CompositeExtract 20(i) 0 1 + 43: 13(ptr) AccessChain 22(tesscoord) 42 + 44: 6(float) Load 43 + 45: 8(fvec3) CompositeConstruct 44 44 44 + 46: 8(fvec3) FAdd 41 45 + 47: 14(ptr) AccessChain 27(o) 40 + Store 47 46 + 48: 18(gs_in_t) Load 27(o) + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.domain.2.tese.out b/deps/glslang/glslang/Test/baseResults/hlsl.domain.2.tese.out new file mode 100644 index 0000000000..827f80f733 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.domain.2.tese.out @@ -0,0 +1,447 @@ +hlsl.domain.2.tese +Shader version: 500 +input primitive = triangles +vertex spacing = none +triangle order = none +0:? Sequence +0:25 Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Function Parameters: +0:25 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 'tesscoord' ( in 3-component vector of float) +0:? Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:28 pos: direct index for structure ( temp 4-component vector of float) +0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 0 (const int) +0:28 add ( temp 4-component vector of float) +0:28 pos: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 direct index ( temp float) +0:28 'tesscoord' ( in 3-component vector of float) +0:28 Constant: +0:28 0 (const int) +0:29 move second child to first child ( temp 3-component vector of float) +0:29 norm: direct index for structure ( temp 3-component vector of float) +0:29 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:29 Constant: +0:29 1 (const int) +0:29 add ( temp 3-component vector of float) +0:29 norm: direct index for structure ( temp 3-component vector of float) +0:29 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:29 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1 (const int) +0:29 direct index ( temp float) +0:29 'tesscoord' ( in 3-component vector of float) +0:29 Constant: +0:29 1 (const int) +0:31 direct index ( temp float) +0:31 'tesscoord' ( in 3-component vector of float) +0:31 Constant: +0:31 2 (const int) +0:33 Branch: Return with expression +0:33 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Function Definition: main( ( temp void) +0:25 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1 (const int) +0:25 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:25 Constant: +0:25 1 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:25 Constant: +0:25 2 (const int) +0:25 move second child to first child ( temp float) +0:25 flInsideTessFactor: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 1 (const int) +0:25 direct index ( patch in float TessLevelInner) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp float) +0:25 foo: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 2 (const int) +0:? 'pcf_data.foo' (layout( location=2) patch in float) +0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 move second child to first child ( temp 3-component vector of float) +0:? 'tesscoord' ( temp 3-component vector of float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:25 Sequence +0:25 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( temp 3-component vector of float) +0:25 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:25 pos: direct index for structure ( temp 4-component vector of float) +0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:25 norm: direct index for structure ( temp 3-component vector of float) +0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:? 'pcf_data.foo' (layout( location=2) patch in float) + + +Linked tessellation evaluation stage: + + +Shader version: 500 +input primitive = triangles +vertex spacing = none +triangle order = none +0:? Sequence +0:25 Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Function Parameters: +0:25 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 'tesscoord' ( in 3-component vector of float) +0:? Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:28 pos: direct index for structure ( temp 4-component vector of float) +0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 0 (const int) +0:28 add ( temp 4-component vector of float) +0:28 pos: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 direct index ( temp float) +0:28 'tesscoord' ( in 3-component vector of float) +0:28 Constant: +0:28 0 (const int) +0:29 move second child to first child ( temp 3-component vector of float) +0:29 norm: direct index for structure ( temp 3-component vector of float) +0:29 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:29 Constant: +0:29 1 (const int) +0:29 add ( temp 3-component vector of float) +0:29 norm: direct index for structure ( temp 3-component vector of float) +0:29 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:29 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1 (const int) +0:29 direct index ( temp float) +0:29 'tesscoord' ( in 3-component vector of float) +0:29 Constant: +0:29 1 (const int) +0:31 direct index ( temp float) +0:31 'tesscoord' ( in 3-component vector of float) +0:31 Constant: +0:31 2 (const int) +0:33 Branch: Return with expression +0:33 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Function Definition: main( ( temp void) +0:25 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1 (const int) +0:25 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:25 Constant: +0:25 1 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:25 Constant: +0:25 2 (const int) +0:25 move second child to first child ( temp float) +0:25 flInsideTessFactor: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 1 (const int) +0:25 direct index ( patch in float TessLevelInner) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp float) +0:25 foo: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:25 Constant: +0:25 2 (const int) +0:? 'pcf_data.foo' (layout( location=2) patch in float) +0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 move second child to first child ( temp 3-component vector of float) +0:? 'tesscoord' ( temp 3-component vector of float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:25 Sequence +0:25 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( temp 3-component vector of float) +0:25 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:25 pos: direct index for structure ( temp 4-component vector of float) +0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:25 norm: direct index for structure ( temp 3-component vector of float) +0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:25 Constant: +0:25 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:? 'pcf_data.foo' (layout( location=2) patch in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 98 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationEvaluation 4 "main" 52 67 71 77 81 91 95 + ExecutionMode 4 Triangles + Source HLSL 500 + Name 4 "main" + Name 10 "pcf_in_t" + MemberName 10(pcf_in_t) 0 "flTessFactor" + MemberName 10(pcf_in_t) 1 "flInsideTessFactor" + MemberName 10(pcf_in_t) 2 "foo" + Name 14 "ds_in_t" + MemberName 14(ds_in_t) 0 "pos" + MemberName 14(ds_in_t) 1 "norm" + Name 17 "gs_in_t" + MemberName 17(gs_in_t) 0 "pos" + MemberName 17(gs_in_t) 1 "norm" + Name 22 "@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;" + Name 19 "pcf_data" + Name 20 "i" + Name 21 "tesscoord" + Name 25 "o" + Name 48 "pcf_data" + Name 52 "pcf_data.flTessFactor" + Name 67 "pcf_data.flInsideTessFactor" + Name 71 "pcf_data.foo" + Name 75 "i" + Name 77 "i" + Name 79 "tesscoord" + Name 81 "tesscoord" + Name 83 "flattenTemp" + Name 85 "param" + Name 87 "param" + Name 91 "@entryPointOutput.pos" + Name 95 "@entryPointOutput.norm" + Decorate 52(pcf_data.flTessFactor) Patch + Decorate 52(pcf_data.flTessFactor) BuiltIn TessLevelOuter + Decorate 67(pcf_data.flInsideTessFactor) Patch + Decorate 67(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner + Decorate 71(pcf_data.foo) Patch + Decorate 71(pcf_data.foo) Location 2 + Decorate 77(i) Location 0 + Decorate 81(tesscoord) Patch + Decorate 81(tesscoord) BuiltIn TessCoord + Decorate 91(@entryPointOutput.pos) Location 0 + Decorate 95(@entryPointOutput.norm) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8: 7(int) Constant 3 + 9: TypeArray 6(float) 8 + 10(pcf_in_t): TypeStruct 9 6(float) 6(float) + 11: TypePointer Function 10(pcf_in_t) + 12: TypeVector 6(float) 4 + 13: TypeVector 6(float) 3 + 14(ds_in_t): TypeStruct 12(fvec4) 13(fvec3) + 15: TypeArray 14(ds_in_t) 8 + 16: TypePointer Function 13(fvec3) + 17(gs_in_t): TypeStruct 12(fvec4) 13(fvec3) + 18: TypeFunction 17(gs_in_t) 11(ptr) 15 16(ptr) + 24: TypePointer Function 17(gs_in_t) + 26: TypeInt 32 1 + 27: 26(int) Constant 0 + 29: 7(int) Constant 0 + 30: TypePointer Function 6(float) + 35: TypePointer Function 12(fvec4) + 37: 26(int) Constant 1 + 39: 7(int) Constant 1 + 49: 7(int) Constant 4 + 50: TypeArray 6(float) 49 + 51: TypePointer Input 50 +52(pcf_data.flTessFactor): 51(ptr) Variable Input + 53: TypePointer Input 6(float) + 60: 26(int) Constant 2 + 64: 7(int) Constant 2 + 65: TypeArray 6(float) 64 + 66: TypePointer Input 65 +67(pcf_data.flInsideTessFactor): 66(ptr) Variable Input +71(pcf_data.foo): 53(ptr) Variable Input + 74: TypePointer Function 15 + 76: TypePointer Input 15 + 77(i): 76(ptr) Variable Input + 80: TypePointer Input 13(fvec3) + 81(tesscoord): 80(ptr) Variable Input + 90: TypePointer Output 12(fvec4) +91(@entryPointOutput.pos): 90(ptr) Variable Output + 94: TypePointer Output 13(fvec3) +95(@entryPointOutput.norm): 94(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 48(pcf_data): 11(ptr) Variable Function + 75(i): 74(ptr) Variable Function + 79(tesscoord): 16(ptr) Variable Function + 83(flattenTemp): 24(ptr) Variable Function + 85(param): 11(ptr) Variable Function + 87(param): 16(ptr) Variable Function + 54: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 27 + 55: 6(float) Load 54 + 56: 30(ptr) AccessChain 48(pcf_data) 27 27 + Store 56 55 + 57: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 37 + 58: 6(float) Load 57 + 59: 30(ptr) AccessChain 48(pcf_data) 27 37 + Store 59 58 + 61: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 60 + 62: 6(float) Load 61 + 63: 30(ptr) AccessChain 48(pcf_data) 27 60 + Store 63 62 + 68: 53(ptr) AccessChain 67(pcf_data.flInsideTessFactor) 27 + 69: 6(float) Load 68 + 70: 30(ptr) AccessChain 48(pcf_data) 37 + Store 70 69 + 72: 6(float) Load 71(pcf_data.foo) + 73: 30(ptr) AccessChain 48(pcf_data) 60 + Store 73 72 + 78: 15 Load 77(i) + Store 75(i) 78 + 82: 13(fvec3) Load 81(tesscoord) + Store 79(tesscoord) 82 + 84: 15 Load 75(i) + 86:10(pcf_in_t) Load 48(pcf_data) + Store 85(param) 86 + 88: 13(fvec3) Load 79(tesscoord) + Store 87(param) 88 + 89: 17(gs_in_t) FunctionCall 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;) 85(param) 84 87(param) + Store 83(flattenTemp) 89 + 92: 35(ptr) AccessChain 83(flattenTemp) 27 + 93: 12(fvec4) Load 92 + Store 91(@entryPointOutput.pos) 93 + 96: 16(ptr) AccessChain 83(flattenTemp) 37 + 97: 13(fvec3) Load 96 + Store 95(@entryPointOutput.norm) 97 + Return + FunctionEnd +22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;): 17(gs_in_t) Function None 18 + 19(pcf_data): 11(ptr) FunctionParameter + 20(i): 15 FunctionParameter + 21(tesscoord): 16(ptr) FunctionParameter + 23: Label + 25(o): 24(ptr) Variable Function + 28: 12(fvec4) CompositeExtract 20(i) 0 0 + 31: 30(ptr) AccessChain 21(tesscoord) 29 + 32: 6(float) Load 31 + 33: 12(fvec4) CompositeConstruct 32 32 32 32 + 34: 12(fvec4) FAdd 28 33 + 36: 35(ptr) AccessChain 25(o) 27 + Store 36 34 + 38: 13(fvec3) CompositeExtract 20(i) 0 1 + 40: 30(ptr) AccessChain 21(tesscoord) 39 + 41: 6(float) Load 40 + 42: 13(fvec3) CompositeConstruct 41 41 41 + 43: 13(fvec3) FAdd 38 42 + 44: 16(ptr) AccessChain 25(o) 37 + Store 44 43 + 45: 17(gs_in_t) Load 25(o) + ReturnValue 45 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.domain.3.tese.out b/deps/glslang/glslang/Test/baseResults/hlsl.domain.3.tese.out new file mode 100644 index 0000000000..dd3d502af8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.domain.3.tese.out @@ -0,0 +1,424 @@ +hlsl.domain.3.tese +Shader version: 500 +input primitive = isolines +vertex spacing = none +triangle order = none +0:? Sequence +0:24 Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Function Parameters: +0:24 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 'tesscoord' ( in 2-component vector of float) +0:24 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 pos: direct index for structure ( temp 4-component vector of float) +0:27 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:27 Constant: +0:27 0 (const int) +0:27 add ( temp 4-component vector of float) +0:27 pos: direct index for structure ( temp 4-component vector of float) +0:27 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:27 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp float) +0:27 'tesscoord' ( in 2-component vector of float) +0:27 Constant: +0:27 0 (const int) +0:28 move second child to first child ( temp 3-component vector of float) +0:28 norm: direct index for structure ( temp 3-component vector of float) +0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 1 (const int) +0:28 add ( temp 3-component vector of float) +0:28 norm: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 direct index ( temp float) +0:28 'tesscoord' ( in 2-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:30 Branch: Return with expression +0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 move second child to first child ( temp 2-component vector of float) +0:? 'tesscoord' ( temp 2-component vector of float) +0:? Construct vec2 ( temp 2-component vector of float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:24 Constant: +0:24 1 (const int) +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:24 Constant: +0:24 2 (const int) +0:24 move second child to first child ( temp float) +0:24 flInsideTessFactor: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 1 (const int) +0:24 direct index ( patch in float TessLevelInner) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:24 Constant: +0:24 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( temp 2-component vector of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:24 norm: direct index for structure ( temp 3-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) + + +Linked tessellation evaluation stage: + + +Shader version: 500 +input primitive = isolines +vertex spacing = none +triangle order = none +0:? Sequence +0:24 Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Function Parameters: +0:24 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 'tesscoord' ( in 2-component vector of float) +0:24 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 pos: direct index for structure ( temp 4-component vector of float) +0:27 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:27 Constant: +0:27 0 (const int) +0:27 add ( temp 4-component vector of float) +0:27 pos: direct index for structure ( temp 4-component vector of float) +0:27 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:27 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp float) +0:27 'tesscoord' ( in 2-component vector of float) +0:27 Constant: +0:27 0 (const int) +0:28 move second child to first child ( temp 3-component vector of float) +0:28 norm: direct index for structure ( temp 3-component vector of float) +0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 1 (const int) +0:28 add ( temp 3-component vector of float) +0:28 norm: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 direct index ( temp float) +0:28 'tesscoord' ( in 2-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:30 Branch: Return with expression +0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 move second child to first child ( temp 2-component vector of float) +0:? 'tesscoord' ( temp 2-component vector of float) +0:? Construct vec2 ( temp 2-component vector of float) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:24 Constant: +0:24 1 (const int) +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 flTessFactor: direct index for structure ( temp 3-element array of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 direct index ( patch in float TessLevelOuter) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:24 Constant: +0:24 2 (const int) +0:24 move second child to first child ( temp float) +0:24 flInsideTessFactor: direct index for structure ( temp float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 Constant: +0:24 1 (const int) +0:24 direct index ( patch in float TessLevelInner) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) +0:24 Constant: +0:24 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( temp 2-component vector of float) +0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 3-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:24 norm: direct index for structure ( temp 3-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) +0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) +0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) +0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) +0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 100 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationEvaluation 4 "main" 54 58 67 81 93 97 + ExecutionMode 4 Isolines + Source HLSL 500 + Name 4 "main" + Name 9 "ds_in_t" + MemberName 9(ds_in_t) 0 "pos" + MemberName 9(ds_in_t) 1 "norm" + Name 17 "pcf_in_t" + MemberName 17(pcf_in_t) 0 "flTessFactor" + MemberName 17(pcf_in_t) 1 "flInsideTessFactor" + Name 19 "gs_in_t" + MemberName 19(gs_in_t) 0 "pos" + MemberName 19(gs_in_t) 1 "norm" + Name 24 "@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;" + Name 21 "i" + Name 22 "tesscoord" + Name 23 "pcf_data" + Name 27 "o" + Name 52 "i" + Name 54 "i" + Name 56 "tesscoord" + Name 58 "tesscoord" + Name 63 "pcf_data" + Name 67 "pcf_data.flTessFactor" + Name 81 "pcf_data.flInsideTessFactor" + Name 85 "flattenTemp" + Name 87 "param" + Name 89 "param" + Name 93 "@entryPointOutput.pos" + Name 97 "@entryPointOutput.norm" + Decorate 54(i) Location 0 + Decorate 58(tesscoord) Patch + Decorate 58(tesscoord) BuiltIn TessCoord + Decorate 67(pcf_data.flTessFactor) Patch + Decorate 67(pcf_data.flTessFactor) BuiltIn TessLevelOuter + Decorate 81(pcf_data.flInsideTessFactor) Patch + Decorate 81(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner + Decorate 93(@entryPointOutput.pos) Location 0 + Decorate 97(@entryPointOutput.norm) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 3 + 9(ds_in_t): TypeStruct 7(fvec4) 8(fvec3) + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 9(ds_in_t) 11 + 13: TypeVector 6(float) 2 + 14: TypePointer Function 13(fvec2) + 15: 10(int) Constant 3 + 16: TypeArray 6(float) 15 + 17(pcf_in_t): TypeStruct 16 6(float) + 18: TypePointer Function 17(pcf_in_t) + 19(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) + 20: TypeFunction 19(gs_in_t) 12 14(ptr) 18(ptr) + 26: TypePointer Function 19(gs_in_t) + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 31: 10(int) Constant 0 + 32: TypePointer Function 6(float) + 37: TypePointer Function 7(fvec4) + 39: 28(int) Constant 1 + 41: 10(int) Constant 1 + 46: TypePointer Function 8(fvec3) + 51: TypePointer Function 12 + 53: TypePointer Input 12 + 54(i): 53(ptr) Variable Input + 57: TypePointer Input 8(fvec3) + 58(tesscoord): 57(ptr) Variable Input + 64: 10(int) Constant 4 + 65: TypeArray 6(float) 64 + 66: TypePointer Input 65 +67(pcf_data.flTessFactor): 66(ptr) Variable Input + 68: TypePointer Input 6(float) + 75: 28(int) Constant 2 + 79: TypeArray 6(float) 11 + 80: TypePointer Input 79 +81(pcf_data.flInsideTessFactor): 80(ptr) Variable Input + 92: TypePointer Output 7(fvec4) +93(@entryPointOutput.pos): 92(ptr) Variable Output + 96: TypePointer Output 8(fvec3) +97(@entryPointOutput.norm): 96(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 52(i): 51(ptr) Variable Function + 56(tesscoord): 14(ptr) Variable Function + 63(pcf_data): 18(ptr) Variable Function + 85(flattenTemp): 26(ptr) Variable Function + 87(param): 14(ptr) Variable Function + 89(param): 18(ptr) Variable Function + 55: 12 Load 54(i) + Store 52(i) 55 + 59: 8(fvec3) Load 58(tesscoord) + 60: 6(float) CompositeExtract 59 0 + 61: 6(float) CompositeExtract 59 1 + 62: 13(fvec2) CompositeConstruct 60 61 + Store 56(tesscoord) 62 + 69: 68(ptr) AccessChain 67(pcf_data.flTessFactor) 29 + 70: 6(float) Load 69 + 71: 32(ptr) AccessChain 63(pcf_data) 29 29 + Store 71 70 + 72: 68(ptr) AccessChain 67(pcf_data.flTessFactor) 39 + 73: 6(float) Load 72 + 74: 32(ptr) AccessChain 63(pcf_data) 29 39 + Store 74 73 + 76: 68(ptr) AccessChain 67(pcf_data.flTessFactor) 75 + 77: 6(float) Load 76 + 78: 32(ptr) AccessChain 63(pcf_data) 29 75 + Store 78 77 + 82: 68(ptr) AccessChain 81(pcf_data.flInsideTessFactor) 29 + 83: 6(float) Load 82 + 84: 32(ptr) AccessChain 63(pcf_data) 39 + Store 84 83 + 86: 12 Load 52(i) + 88: 13(fvec2) Load 56(tesscoord) + Store 87(param) 88 + 90:17(pcf_in_t) Load 63(pcf_data) + Store 89(param) 90 + 91: 19(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;) 86 87(param) 89(param) + Store 85(flattenTemp) 91 + 94: 37(ptr) AccessChain 85(flattenTemp) 29 + 95: 7(fvec4) Load 94 + Store 93(@entryPointOutput.pos) 95 + 98: 46(ptr) AccessChain 85(flattenTemp) 39 + 99: 8(fvec3) Load 98 + Store 97(@entryPointOutput.norm) 99 + Return + FunctionEnd +24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;): 19(gs_in_t) Function None 20 + 21(i): 12 FunctionParameter + 22(tesscoord): 14(ptr) FunctionParameter + 23(pcf_data): 18(ptr) FunctionParameter + 25: Label + 27(o): 26(ptr) Variable Function + 30: 7(fvec4) CompositeExtract 21(i) 0 0 + 33: 32(ptr) AccessChain 22(tesscoord) 31 + 34: 6(float) Load 33 + 35: 7(fvec4) CompositeConstruct 34 34 34 34 + 36: 7(fvec4) FAdd 30 35 + 38: 37(ptr) AccessChain 27(o) 29 + Store 38 36 + 40: 8(fvec3) CompositeExtract 21(i) 0 1 + 42: 32(ptr) AccessChain 22(tesscoord) 41 + 43: 6(float) Load 42 + 44: 8(fvec3) CompositeConstruct 43 43 43 + 45: 8(fvec3) FAdd 40 44 + 47: 46(ptr) AccessChain 27(o) 39 + Store 47 45 + 48: 19(gs_in_t) Load 27(o) + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out new file mode 100644 index 0000000000..410915cfe8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out @@ -0,0 +1,112 @@ +hlsl.emptystruct.init.vert +WARNING: 0:3: 'Test_Empty' : variable with qualifier 'const' not initialized; zero initializing + +Shader version: 500 +0:? Sequence +0:6 Function Definition: @main(u1; ( temp 4-component vector of float) +0:6 Function Parameters: +0:6 'vertexIndex' ( in uint) +0:? Sequence +0:7 Branch: Return with expression +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp uint) +0:? 'vertexIndex' ( temp uint) +0:? 'vertexIndex' (layout( location=0) in uint) +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'vertexIndex' ( temp uint) +0:? Linker Objects +0:? 'Test_Empty' ( const structure{}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'vertexIndex' (layout( location=0) in uint) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:6 Function Definition: @main(u1; ( temp 4-component vector of float) +0:6 Function Parameters: +0:6 'vertexIndex' ( in uint) +0:? Sequence +0:7 Branch: Return with expression +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp uint) +0:? 'vertexIndex' ( temp uint) +0:? 'vertexIndex' (layout( location=0) in uint) +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'vertexIndex' ( temp uint) +0:? Linker Objects +0:? 'Test_Empty' ( const structure{}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'vertexIndex' (layout( location=0) in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 29 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 20 23 + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "vertexIndex" + Name 18 "vertexIndex" + Name 20 "vertexIndex" + Name 23 "@entryPointOutput" + Name 24 "param" + Name 27 "Test" + Decorate 20(vertexIndex) Location 0 + Decorate 23(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: 8(float) Constant 0 + 15: 9(fvec4) ConstantComposite 14 14 14 14 + 19: TypePointer Input 6(int) + 20(vertexIndex): 19(ptr) Variable Input + 22: TypePointer Output 9(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 27(Test): TypeStruct + 28: 27(Test) ConstantComposite + 4(main): 2 Function None 3 + 5: Label + 18(vertexIndex): 7(ptr) Variable Function + 24(param): 7(ptr) Variable Function + 21: 6(int) Load 20(vertexIndex) + Store 18(vertexIndex) 21 + 25: 6(int) Load 18(vertexIndex) + Store 24(param) 25 + 26: 9(fvec4) FunctionCall 12(@main(u1;) 24(param) + Store 23(@entryPointOutput) 26 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(vertexIndex): 7(ptr) FunctionParameter + 13: Label + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out new file mode 100644 index 0000000000..8c8b62bb1b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out @@ -0,0 +1,101 @@ +hlsl.emptystructreturn.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main(struct-ps_in1; ( temp structure{}) +0:10 Function Parameters: +0:10 'i' ( in structure{}) +0:? Sequence +0:12 Branch: Return with expression +0:12 'o' ( temp structure{}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? 'i' ( in structure{}) +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? '@entryPointOutput' ( out structure{}) +0:10 Function Call: @main(struct-ps_in1; ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main(struct-ps_in1; ( temp structure{}) +0:10 Function Parameters: +0:10 'i' ( in structure{}) +0:? Sequence +0:12 Branch: Return with expression +0:12 'o' ( temp structure{}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? 'i' ( in structure{}) +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? '@entryPointOutput' ( out structure{}) +0:10 Function Call: @main(struct-ps_in1; ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "ps_in" + Name 8 "ps_out" + Name 11 "@main(struct-ps_in1;" + Name 10 "i" + Name 14 "o" + Name 18 "i" + Name 20 "i" + Name 23 "@entryPointOutput" + Name 24 "param" + 2: TypeVoid + 3: TypeFunction 2 + 6(ps_in): TypeStruct + 7: TypePointer Function 6(ps_in) + 8(ps_out): TypeStruct + 9: TypeFunction 8(ps_out) 7(ptr) + 13: TypePointer Function 8(ps_out) + 19: TypePointer Input 6(ps_in) + 20(i): 19(ptr) Variable Input + 22: TypePointer Output 8(ps_out) +23(@entryPointOutput): 22(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 18(i): 7(ptr) Variable Function + 24(param): 7(ptr) Variable Function + 21: 6(ps_in) Load 20(i) + Store 18(i) 21 + 25: 6(ps_in) Load 18(i) + Store 24(param) 25 + 26: 8(ps_out) FunctionCall 11(@main(struct-ps_in1;) 24(param) + Store 23(@entryPointOutput) 26 + Return + FunctionEnd +11(@main(struct-ps_in1;): 8(ps_out) Function None 9 + 10(i): 7(ptr) FunctionParameter + 12: Label + 14(o): 13(ptr) Variable Function + 15: 8(ps_out) Load 14(o) + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out new file mode 100644 index 0000000000..b2aaf5ee72 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out @@ -0,0 +1,98 @@ +hlsl.emptystructreturn.vert +Shader version: 500 +0:? Sequence +0:10 Function Definition: @main(struct-vs_in1; ( temp structure{}) +0:10 Function Parameters: +0:10 'i' ( in structure{}) +0:? Sequence +0:12 Branch: Return with expression +0:12 'o' ( temp structure{}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? 'i' ( in structure{}) +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? '@entryPointOutput' ( out structure{}) +0:10 Function Call: @main(struct-vs_in1; ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? Linker Objects + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:10 Function Definition: @main(struct-vs_in1; ( temp structure{}) +0:10 Function Parameters: +0:10 'i' ( in structure{}) +0:? Sequence +0:12 Branch: Return with expression +0:12 'o' ( temp structure{}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? 'i' ( in structure{}) +0:10 Sequence +0:10 move second child to first child ( temp structure{}) +0:? '@entryPointOutput' ( out structure{}) +0:10 Function Call: @main(struct-vs_in1; ( temp structure{}) +0:? 'i' ( temp structure{}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 500 + Name 4 "main" + Name 6 "vs_in" + Name 8 "vs_out" + Name 11 "@main(struct-vs_in1;" + Name 10 "i" + Name 14 "o" + Name 18 "i" + Name 20 "i" + Name 23 "@entryPointOutput" + Name 24 "param" + 2: TypeVoid + 3: TypeFunction 2 + 6(vs_in): TypeStruct + 7: TypePointer Function 6(vs_in) + 8(vs_out): TypeStruct + 9: TypeFunction 8(vs_out) 7(ptr) + 13: TypePointer Function 8(vs_out) + 19: TypePointer Input 6(vs_in) + 20(i): 19(ptr) Variable Input + 22: TypePointer Output 8(vs_out) +23(@entryPointOutput): 22(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 18(i): 7(ptr) Variable Function + 24(param): 7(ptr) Variable Function + 21: 6(vs_in) Load 20(i) + Store 18(i) 21 + 25: 6(vs_in) Load 18(i) + Store 24(param) 25 + 26: 8(vs_out) FunctionCall 11(@main(struct-vs_in1;) 24(param) + Store 23(@entryPointOutput) 26 + Return + FunctionEnd +11(@main(struct-vs_in1;): 8(vs_out) Function None 9 + 10(i): 7(ptr) FunctionParameter + 12: Label + 14(o): 13(ptr) Variable Function + 15: 8(vs_out) Load 14(o) + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out new file mode 100644 index 0000000000..dc9eea4af9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.entry-in.frag.out @@ -0,0 +1,286 @@ +hlsl.entry-in.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; ( temp float) +0:8 Function Parameters: +0:8 'p' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp float) +0:9 direct index ( temp float) +0:9 v: direct index for structure ( temp 2-component vector of float) +0:9 'p' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 direct index ( temp float) +0:9 fragCoord: direct index for structure ( temp 4-component vector of float) +0:9 'p' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:13 Function Definition: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float) +0:13 Function Parameters: +0:13 'i' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:15 move second child to first child ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 'local' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 'i' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'ret1' ( temp float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; ( temp float) +0:16 'local' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'ret2' ( temp float) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; ( temp float) +0:17 'i' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:19 Branch: Return with expression +0:19 vector-scale ( temp 4-component vector of float) +0:19 vector-scale ( temp 4-component vector of float) +0:19 fragCoord: direct index for structure ( temp 4-component vector of float) +0:19 'local' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:19 Constant: +0:19 1 (const int) +0:19 'ret1' ( temp float) +0:19 'ret2' ( temp float) +0:13 Function Definition: PixelShaderFunction( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of float) +0:13 v: direct index for structure ( temp 2-component vector of float) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:13 Constant: +0:13 0 (const int) +0:? 'i.v' (layout( location=0) in 2-component vector of float) +0:13 move second child to first child ( temp 4-component vector of float) +0:13 fragCoord: direct index for structure ( temp 4-component vector of float) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:13 Constant: +0:13 1 (const int) +0:? 'i.fragCoord' ( in 4-component vector of float FragCoord) +0:13 move second child to first child ( temp 2-component vector of int) +0:13 i2: direct index for structure ( temp 2-component vector of int) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:13 Constant: +0:13 2 (const int) +0:? 'i.i2' (layout( location=1) flat in 2-component vector of int) +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:13 Function Call: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'i.fragCoord' ( in 4-component vector of float FragCoord) +0:? 'i.v' (layout( location=0) in 2-component vector of float) +0:? 'i.i2' (layout( location=1) flat in 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; ( temp float) +0:8 Function Parameters: +0:8 'p' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add ( temp float) +0:9 direct index ( temp float) +0:9 v: direct index for structure ( temp 2-component vector of float) +0:9 'p' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 direct index ( temp float) +0:9 fragCoord: direct index for structure ( temp 4-component vector of float) +0:9 'p' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:13 Function Definition: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float) +0:13 Function Parameters: +0:13 'i' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:15 move second child to first child ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 'local' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:15 'i' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'ret1' ( temp float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; ( temp float) +0:16 'local' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'ret2' ( temp float) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; ( temp float) +0:17 'i' ( in structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:19 Branch: Return with expression +0:19 vector-scale ( temp 4-component vector of float) +0:19 vector-scale ( temp 4-component vector of float) +0:19 fragCoord: direct index for structure ( temp 4-component vector of float) +0:19 'local' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:19 Constant: +0:19 1 (const int) +0:19 'ret1' ( temp float) +0:19 'ret2' ( temp float) +0:13 Function Definition: PixelShaderFunction( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of float) +0:13 v: direct index for structure ( temp 2-component vector of float) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:13 Constant: +0:13 0 (const int) +0:? 'i.v' (layout( location=0) in 2-component vector of float) +0:13 move second child to first child ( temp 4-component vector of float) +0:13 fragCoord: direct index for structure ( temp 4-component vector of float) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:13 Constant: +0:13 1 (const int) +0:? 'i.fragCoord' ( in 4-component vector of float FragCoord) +0:13 move second child to first child ( temp 2-component vector of int) +0:13 i2: direct index for structure ( temp 2-component vector of int) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:13 Constant: +0:13 2 (const int) +0:? 'i.i2' (layout( location=1) flat in 2-component vector of int) +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:13 Function Call: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float) +0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'i.fragCoord' ( in 4-component vector of float FragCoord) +0:? 'i.v' (layout( location=0) in 2-component vector of float) +0:? 'i.i2' (layout( location=1) flat in 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 74 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 55 60 65 70 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "InParam" + MemberName 11(InParam) 0 "v" + MemberName 11(InParam) 1 "fragCoord" + MemberName 11(InParam) 2 "i2" + Name 15 "fun(struct-InParam-vf2-vf4-vi21;" + Name 14 "p" + Name 19 "@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;" + Name 18 "i" + Name 34 "local" + Name 36 "ret1" + Name 37 "param" + Name 40 "ret2" + Name 41 "param" + Name 53 "i" + Name 55 "i.v" + Name 60 "i.fragCoord" + Name 65 "i.i2" + Name 70 "@entryPointOutput" + Name 71 "param" + Decorate 55(i.v) Location 0 + Decorate 60(i.fragCoord) BuiltIn FragCoord + Decorate 65(i.i2) Flat + Decorate 65(i.i2) Location 1 + Decorate 70(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeVector 6(float) 4 + 9: TypeInt 32 1 + 10: TypeVector 9(int) 2 + 11(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2) + 12: TypePointer Function 11(InParam) + 13: TypeFunction 6(float) 12(ptr) + 17: TypeFunction 8(fvec4) 12(ptr) + 21: 9(int) Constant 0 + 22: TypeInt 32 0 + 23: 22(int) Constant 1 + 24: TypePointer Function 6(float) + 27: 9(int) Constant 1 + 28: 22(int) Constant 0 + 44: TypePointer Function 8(fvec4) + 54: TypePointer Input 7(fvec2) + 55(i.v): 54(ptr) Variable Input + 57: TypePointer Function 7(fvec2) + 59: TypePointer Input 8(fvec4) + 60(i.fragCoord): 59(ptr) Variable Input + 63: 9(int) Constant 2 + 64: TypePointer Input 10(ivec2) + 65(i.i2): 64(ptr) Variable Input + 67: TypePointer Function 10(ivec2) + 69: TypePointer Output 8(fvec4) +70(@entryPointOutput): 69(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 53(i): 12(ptr) Variable Function + 71(param): 12(ptr) Variable Function + 56: 7(fvec2) Load 55(i.v) + 58: 57(ptr) AccessChain 53(i) 21 + Store 58 56 + 61: 8(fvec4) Load 60(i.fragCoord) + 62: 44(ptr) AccessChain 53(i) 27 + Store 62 61 + 66: 10(ivec2) Load 65(i.i2) + 68: 67(ptr) AccessChain 53(i) 63 + Store 68 66 + 72: 11(InParam) Load 53(i) + Store 71(param) 72 + 73: 8(fvec4) FunctionCall 19(@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;) 71(param) + Store 70(@entryPointOutput) 73 + Return + FunctionEnd +15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13 + 14(p): 12(ptr) FunctionParameter + 16: Label + 25: 24(ptr) AccessChain 14(p) 21 23 + 26: 6(float) Load 25 + 29: 24(ptr) AccessChain 14(p) 27 28 + 30: 6(float) Load 29 + 31: 6(float) FAdd 26 30 + ReturnValue 31 + FunctionEnd +19(@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;): 8(fvec4) Function None 17 + 18(i): 12(ptr) FunctionParameter + 20: Label + 34(local): 12(ptr) Variable Function + 36(ret1): 24(ptr) Variable Function + 37(param): 12(ptr) Variable Function + 40(ret2): 24(ptr) Variable Function + 41(param): 12(ptr) Variable Function + 35: 11(InParam) Load 18(i) + Store 34(local) 35 + 38: 11(InParam) Load 34(local) + Store 37(param) 38 + 39: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 37(param) + Store 36(ret1) 39 + 42: 11(InParam) Load 18(i) + Store 41(param) 42 + 43: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 41(param) + Store 40(ret2) 43 + 45: 44(ptr) AccessChain 34(local) 27 + 46: 8(fvec4) Load 45 + 47: 6(float) Load 36(ret1) + 48: 8(fvec4) VectorTimesScalar 46 47 + 49: 6(float) Load 40(ret2) + 50: 8(fvec4) VectorTimesScalar 48 49 + ReturnValue 50 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.entry-out.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.entry-out.frag.out new file mode 100644 index 0000000000..6ca3011bba --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.entry-out.frag.out @@ -0,0 +1,400 @@ +hlsl.entry-out.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void) +0:7 Function Parameters: +0:7 'op' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:8 move second child to first child ( temp 2-component vector of float) +0:8 v: direct index for structure ( temp 2-component vector of float) +0:8 'op' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.400000 +0:8 0.400000 +0:9 move second child to first child ( temp 2-component vector of int) +0:9 i: direct index for structure ( temp 2-component vector of int) +0:9 'op' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 7 (const int) +0:9 7 (const int) +0:13 Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float) +0:13 Function Parameters: +0:13 'input' ( in 4-component vector of float) +0:13 'out1' ( out 4-component vector of float) +0:13 'out2' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'out1' ( out 4-component vector of float) +0:14 'input' ( in 4-component vector of float) +0:15 move second child to first child ( temp 2-component vector of float) +0:15 v: direct index for structure ( temp 2-component vector of float) +0:15 'out2' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child ( temp 2-component vector of int) +0:16 i: direct index for structure ( temp 2-component vector of int) +0:16 'out2' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child ( temp 2-component vector of float) +0:18 v: direct index for structure ( temp 2-component vector of float) +0:18 'local' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child ( temp 2-component vector of int) +0:19 i: direct index for structure ( temp 2-component vector of int) +0:19 'local' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; ( temp void) +0:20 'out3' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:22 Branch: Return with expression +0:22 'out1' ( out 4-component vector of float) +0:13 Function Definition: PixelShaderFunction( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:13 Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'out1' ( temp 4-component vector of float) +0:? 'out2' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:? 'out3' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 move second child to first child ( temp 4-component vector of float) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out1' ( temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of float) +0:? 'out2.v' (layout( location=2) out 2-component vector of float) +0:13 v: direct index for structure ( temp 2-component vector of float) +0:? 'out2' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp 2-component vector of int) +0:? 'out2.i' (layout( location=3) out 2-component vector of int) +0:13 i: direct index for structure ( temp 2-component vector of int) +0:? 'out2' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of float) +0:? 'out3.v' (layout( location=4) out 2-component vector of float) +0:13 v: direct index for structure ( temp 2-component vector of float) +0:? 'out3' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp 2-component vector of int) +0:? 'out3.i' (layout( location=5) out 2-component vector of int) +0:13 i: direct index for structure ( temp 2-component vector of int) +0:? 'out3' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out2.v' (layout( location=2) out 2-component vector of float) +0:? 'out2.i' (layout( location=3) out 2-component vector of int) +0:? 'out3.v' (layout( location=4) out 2-component vector of float) +0:? 'out3.i' (layout( location=5) out 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void) +0:7 Function Parameters: +0:7 'op' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:8 move second child to first child ( temp 2-component vector of float) +0:8 v: direct index for structure ( temp 2-component vector of float) +0:8 'op' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.400000 +0:8 0.400000 +0:9 move second child to first child ( temp 2-component vector of int) +0:9 i: direct index for structure ( temp 2-component vector of int) +0:9 'op' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 7 (const int) +0:9 7 (const int) +0:13 Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float) +0:13 Function Parameters: +0:13 'input' ( in 4-component vector of float) +0:13 'out1' ( out 4-component vector of float) +0:13 'out2' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'out1' ( out 4-component vector of float) +0:14 'input' ( in 4-component vector of float) +0:15 move second child to first child ( temp 2-component vector of float) +0:15 v: direct index for structure ( temp 2-component vector of float) +0:15 'out2' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child ( temp 2-component vector of int) +0:16 i: direct index for structure ( temp 2-component vector of int) +0:16 'out2' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child ( temp 2-component vector of float) +0:18 v: direct index for structure ( temp 2-component vector of float) +0:18 'local' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child ( temp 2-component vector of int) +0:19 i: direct index for structure ( temp 2-component vector of int) +0:19 'local' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; ( temp void) +0:20 'out3' ( out structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:22 Branch: Return with expression +0:22 'out1' ( out 4-component vector of float) +0:13 Function Definition: PixelShaderFunction( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:13 Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'out1' ( temp 4-component vector of float) +0:? 'out2' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:? 'out3' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 move second child to first child ( temp 4-component vector of float) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out1' ( temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of float) +0:? 'out2.v' (layout( location=2) out 2-component vector of float) +0:13 v: direct index for structure ( temp 2-component vector of float) +0:? 'out2' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp 2-component vector of int) +0:? 'out2.i' (layout( location=3) out 2-component vector of int) +0:13 i: direct index for structure ( temp 2-component vector of int) +0:? 'out2' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of float) +0:? 'out3.v' (layout( location=4) out 2-component vector of float) +0:13 v: direct index for structure ( temp 2-component vector of float) +0:? 'out3' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp 2-component vector of int) +0:? 'out3.i' (layout( location=5) out 2-component vector of int) +0:13 i: direct index for structure ( temp 2-component vector of int) +0:? 'out3' ( temp structure{ temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out2.v' (layout( location=2) out 2-component vector of float) +0:? 'out2.i' (layout( location=3) out 2-component vector of int) +0:? 'out3.v' (layout( location=4) out 2-component vector of float) +0:? 'out3.i' (layout( location=5) out 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 89 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 57 60 73 76 80 83 86 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 10 "OutParam" + MemberName 10(OutParam) 0 "v" + MemberName 10(OutParam) 1 "i" + Name 14 "fun(struct-OutParam-vf2-vi21;" + Name 13 "op" + Name 23 "@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;" + Name 19 "input" + Name 20 "out1" + Name 21 "out2" + Name 22 "out3" + Name 42 "local" + Name 49 "param" + Name 55 "input" + Name 57 "input" + Name 60 "@entryPointOutput" + Name 61 "out1" + Name 62 "out2" + Name 63 "out3" + Name 64 "param" + Name 66 "param" + Name 67 "param" + Name 68 "param" + Name 73 "out1" + Name 76 "out2.v" + Name 80 "out2.i" + Name 83 "out3.v" + Name 86 "out3.i" + Decorate 57(input) Location 0 + Decorate 60(@entryPointOutput) Location 0 + Decorate 73(out1) Location 1 + Decorate 76(out2.v) Location 2 + Decorate 80(out2.i) Location 3 + Decorate 83(out3.v) Location 4 + Decorate 86(out3.i) Location 5 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 2 + 10(OutParam): TypeStruct 7(fvec2) 9(ivec2) + 11: TypePointer Function 10(OutParam) + 12: TypeFunction 2 11(ptr) + 16: TypeVector 6(float) 4 + 17: TypePointer Function 16(fvec4) + 18: TypeFunction 16(fvec4) 17(ptr) 17(ptr) 11(ptr) 11(ptr) + 25: 8(int) Constant 0 + 26: 6(float) Constant 1053609165 + 27: 7(fvec2) ConstantComposite 26 26 + 28: TypePointer Function 7(fvec2) + 30: 8(int) Constant 1 + 31: 8(int) Constant 7 + 32: 9(ivec2) ConstantComposite 31 31 + 33: TypePointer Function 9(ivec2) + 36: 6(float) Constant 1073741824 + 37: 7(fvec2) ConstantComposite 36 36 + 39: 8(int) Constant 3 + 40: 9(ivec2) ConstantComposite 39 39 + 43: 6(float) Constant 1094713344 + 44: 7(fvec2) ConstantComposite 43 43 + 46: 8(int) Constant 13 + 47: 9(ivec2) ConstantComposite 46 46 + 56: TypePointer Input 16(fvec4) + 57(input): 56(ptr) Variable Input + 59: TypePointer Output 16(fvec4) +60(@entryPointOutput): 59(ptr) Variable Output + 73(out1): 59(ptr) Variable Output + 75: TypePointer Output 7(fvec2) + 76(out2.v): 75(ptr) Variable Output + 79: TypePointer Output 9(ivec2) + 80(out2.i): 79(ptr) Variable Output + 83(out3.v): 75(ptr) Variable Output + 86(out3.i): 79(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 55(input): 17(ptr) Variable Function + 61(out1): 17(ptr) Variable Function + 62(out2): 11(ptr) Variable Function + 63(out3): 11(ptr) Variable Function + 64(param): 17(ptr) Variable Function + 66(param): 17(ptr) Variable Function + 67(param): 11(ptr) Variable Function + 68(param): 11(ptr) Variable Function + 58: 16(fvec4) Load 57(input) + Store 55(input) 58 + 65: 16(fvec4) Load 55(input) + Store 64(param) 65 + 69: 16(fvec4) FunctionCall 23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;) 64(param) 66(param) 67(param) 68(param) + 70: 16(fvec4) Load 66(param) + Store 61(out1) 70 + 71:10(OutParam) Load 67(param) + Store 62(out2) 71 + 72:10(OutParam) Load 68(param) + Store 63(out3) 72 + Store 60(@entryPointOutput) 69 + 74: 16(fvec4) Load 61(out1) + Store 73(out1) 74 + 77: 28(ptr) AccessChain 62(out2) 25 + 78: 7(fvec2) Load 77 + Store 76(out2.v) 78 + 81: 33(ptr) AccessChain 62(out2) 30 + 82: 9(ivec2) Load 81 + Store 80(out2.i) 82 + 84: 28(ptr) AccessChain 63(out3) 25 + 85: 7(fvec2) Load 84 + Store 83(out3.v) 85 + 87: 33(ptr) AccessChain 63(out3) 30 + 88: 9(ivec2) Load 87 + Store 86(out3.i) 88 + Return + FunctionEnd +14(fun(struct-OutParam-vf2-vi21;): 2 Function None 12 + 13(op): 11(ptr) FunctionParameter + 15: Label + 29: 28(ptr) AccessChain 13(op) 25 + Store 29 27 + 34: 33(ptr) AccessChain 13(op) 30 + Store 34 32 + Return + FunctionEnd +23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;): 16(fvec4) Function None 18 + 19(input): 17(ptr) FunctionParameter + 20(out1): 17(ptr) FunctionParameter + 21(out2): 11(ptr) FunctionParameter + 22(out3): 11(ptr) FunctionParameter + 24: Label + 42(local): 11(ptr) Variable Function + 49(param): 11(ptr) Variable Function + 35: 16(fvec4) Load 19(input) + Store 20(out1) 35 + 38: 28(ptr) AccessChain 21(out2) 25 + Store 38 37 + 41: 33(ptr) AccessChain 21(out2) 30 + Store 41 40 + 45: 28(ptr) AccessChain 42(local) 25 + Store 45 44 + 48: 33(ptr) AccessChain 42(local) 30 + Store 48 47 + 50: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 49(param) + 51:10(OutParam) Load 49(param) + Store 22(out3) 51 + 52: 16(fvec4) Load 20(out1) + ReturnValue 52 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.entry.rename.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.entry.rename.frag.out new file mode 100644 index 0000000000..898eb4bd87 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.entry.rename.frag.out @@ -0,0 +1,133 @@ +hlsl.entry.rename.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: not_the_entry_point( ( temp void) +0:7 Function Parameters: +0:11 Function Definition: @main_in_spv( ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 Color: direct index for structure ( temp 4-component vector of float) +0:13 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:14 Branch: Return with expression +0:14 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Definition: main_in_spv( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:11 Color: direct index for structure ( temp 4-component vector of float) +0:11 Function Call: @main_in_spv( ( temp structure{ temp 4-component vector of float Color}) +0:11 Constant: +0:11 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int also_not_the_entry_point}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: not_the_entry_point( ( temp void) +0:7 Function Parameters: +0:11 Function Definition: @main_in_spv( ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 Color: direct index for structure ( temp 4-component vector of float) +0:13 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:14 Branch: Return with expression +0:14 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Definition: main_in_spv( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:11 Color: direct index for structure ( temp 4-component vector of float) +0:11 Function Call: @main_in_spv( ( temp structure{ temp 4-component vector of float Color}) +0:11 Constant: +0:11 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int also_not_the_entry_point}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_in_spv" 26 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main_in_spv" + Name 6 "not_the_entry_point(" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "Color" + Name 12 "@main_in_spv(" + Name 15 "psout" + Name 26 "@entryPointOutput.Color" + Name 29 "$Global" + MemberName 29($Global) 0 "also_not_the_entry_point" + Name 31 "" + Decorate 26(@entryPointOutput.Color) Location 0 + MemberDecorate 29($Global) 0 Offset 0 + Decorate 29($Global) Block + Decorate 31 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) + 11: TypeFunction 10(PS_OUTPUT) + 14: TypePointer Function 10(PS_OUTPUT) + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: 8(float) Constant 0 + 19: 9(fvec4) ConstantComposite 18 18 18 18 + 20: TypePointer Function 9(fvec4) + 25: TypePointer Output 9(fvec4) +26(@entryPointOutput.Color): 25(ptr) Variable Output + 29($Global): TypeStruct 16(int) + 30: TypePointer Uniform 29($Global) + 31: 30(ptr) Variable Uniform + 4(main_in_spv): 2 Function None 3 + 5: Label + 27:10(PS_OUTPUT) FunctionCall 12(@main_in_spv() + 28: 9(fvec4) CompositeExtract 27 0 + Store 26(@entryPointOutput.Color) 28 + Return + FunctionEnd +6(not_the_entry_point(): 2 Function None 3 + 7: Label + Return + FunctionEnd +12(@main_in_spv():10(PS_OUTPUT) Function None 11 + 13: Label + 15(psout): 14(ptr) Variable Function + 21: 20(ptr) AccessChain 15(psout) 17 + Store 21 19 + 22:10(PS_OUTPUT) Load 15(psout) + ReturnValue 22 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out new file mode 100644 index 0000000000..b5f34405c1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out @@ -0,0 +1,66 @@ +hlsl.explicitDescriptorSet.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 19 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "g_sSamp2_amb" + Name 19 "@entryPointOutput" + Name 21 "g_sSamp" + Name 24 "g_tTex1df4" + Name 25 "$Global" + MemberName 25($Global) 0 "floatval_amb" + Name 27 "" + Name 30 "floatbuff" + Decorate 13(g_sSamp2_amb) DescriptorSet 3 + Decorate 13(g_sSamp2_amb) Binding 10 + Decorate 19(@entryPointOutput) Location 0 + Decorate 21(g_sSamp) DescriptorSet 3 + Decorate 21(g_sSamp) Binding 11 + Decorate 24(g_tTex1df4) DescriptorSet 3 + Decorate 24(g_tTex1df4) Binding 20 + MemberDecorate 25($Global) 0 Offset 0 + Decorate 25($Global) Block + Decorate 27 DescriptorSet 3 + Decorate 30(floatbuff) DescriptorSet 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeSampler + 12: TypePointer UniformConstant 11 +13(g_sSamp2_amb): 12(ptr) Variable UniformConstant + 14: 6(float) Constant 0 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 18: TypePointer Output 7(fvec4) +19(@entryPointOutput): 18(ptr) Variable Output + 21(g_sSamp): 12(ptr) Variable UniformConstant + 22: TypeImage 6(float) 1D sampled format:Unknown + 23: TypePointer UniformConstant 22 + 24(g_tTex1df4): 23(ptr) Variable UniformConstant + 25($Global): TypeStruct 6(float) + 26: TypePointer Uniform 25($Global) + 27: 26(ptr) Variable Uniform + 28: TypeImage 6(float) Buffer sampled format:R32f + 29: TypePointer UniformConstant 28 + 30(floatbuff): 29(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 20: 7(fvec4) FunctionCall 9(@main() + Store 19(@entryPointOutput) 20 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out new file mode 100644 index 0000000000..8ab296fe01 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out @@ -0,0 +1,66 @@ +hlsl.explicitDescriptorSet.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 19 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "g_sSamp2_amb" + Name 19 "@entryPointOutput" + Name 21 "g_sSamp" + Name 24 "g_tTex1df4" + Name 25 "$Global" + MemberName 25($Global) 0 "floatval_amb" + Name 27 "" + Name 30 "floatbuff" + Decorate 13(g_sSamp2_amb) DescriptorSet 4 + Decorate 13(g_sSamp2_amb) Binding 10 + Decorate 19(@entryPointOutput) Location 0 + Decorate 21(g_sSamp) DescriptorSet 4 + Decorate 21(g_sSamp) Binding 11 + Decorate 24(g_tTex1df4) DescriptorSet 4 + Decorate 24(g_tTex1df4) Binding 20 + MemberDecorate 25($Global) 0 Offset 0 + Decorate 25($Global) Block + Decorate 27 DescriptorSet 4 + Decorate 30(floatbuff) DescriptorSet 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeSampler + 12: TypePointer UniformConstant 11 +13(g_sSamp2_amb): 12(ptr) Variable UniformConstant + 14: 6(float) Constant 0 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 18: TypePointer Output 7(fvec4) +19(@entryPointOutput): 18(ptr) Variable Output + 21(g_sSamp): 12(ptr) Variable UniformConstant + 22: TypeImage 6(float) 1D sampled format:Unknown + 23: TypePointer UniformConstant 22 + 24(g_tTex1df4): 23(ptr) Variable UniformConstant + 25($Global): TypeStruct 6(float) + 26: TypePointer Uniform 25($Global) + 27: 26(ptr) Variable Uniform + 28: TypeImage 6(float) Buffer sampled format:R32f + 29: TypePointer UniformConstant 28 + 30(floatbuff): 29(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 20: 7(fvec4) FunctionCall 9(@main() + Store 19(@entryPointOutput) 20 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out new file mode 100644 index 0000000000..e47fe3ebf0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flatten.return.frag.out @@ -0,0 +1,200 @@ +hlsl.flatten.return.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Branch: Return with expression +0:17 Function Call: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:16 color: direct index for structure ( temp 4-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 0 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) +0:16 other_struct_member1: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 1 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) +0:16 other_struct_member2: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 2 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) +0:16 other_struct_member3: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) +0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) +0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Branch: Return with expression +0:17 Function Call: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:16 color: direct index for structure ( temp 4-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 0 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) +0:16 other_struct_member1: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 1 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) +0:16 other_struct_member2: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 2 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) +0:16 other_struct_member3: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Constant: +0:16 3 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) +0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) +0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 49 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 29 36 41 45 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + MemberName 8(PS_OUTPUT) 1 "other_struct_member1" + MemberName 8(PS_OUTPUT) 2 "other_struct_member2" + MemberName 8(PS_OUTPUT) 3 "other_struct_member3" + Name 10 "Func1(" + Name 12 "@main(" + Name 26 "flattenTemp" + Name 29 "@entryPointOutput.color" + Name 36 "@entryPointOutput.other_struct_member1" + Name 41 "@entryPointOutput.other_struct_member2" + Name 45 "@entryPointOutput.other_struct_member3" + Decorate 29(@entryPointOutput.color) Location 0 + Decorate 36(@entryPointOutput.other_struct_member1) Location 1 + Decorate 41(@entryPointOutput.other_struct_member2) Location 2 + Decorate 45(@entryPointOutput.other_struct_member3) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 6(float) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 14: 6(float) Constant 1065353216 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 16: 6(float) Constant 1073741824 + 17: 6(float) Constant 1077936128 + 18: 6(float) Constant 1082130432 + 19:8(PS_OUTPUT) ConstantComposite 15 16 17 18 + 25: TypePointer Function 8(PS_OUTPUT) + 28: TypePointer Output 7(fvec4) +29(@entryPointOutput.color): 28(ptr) Variable Output + 30: TypeInt 32 1 + 31: 30(int) Constant 0 + 32: TypePointer Function 7(fvec4) + 35: TypePointer Output 6(float) +36(@entryPointOutput.other_struct_member1): 35(ptr) Variable Output + 37: 30(int) Constant 1 + 38: TypePointer Function 6(float) +41(@entryPointOutput.other_struct_member2): 35(ptr) Variable Output + 42: 30(int) Constant 2 +45(@entryPointOutput.other_struct_member3): 35(ptr) Variable Output + 46: 30(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 26(flattenTemp): 25(ptr) Variable Function + 27:8(PS_OUTPUT) FunctionCall 12(@main() + Store 26(flattenTemp) 27 + 33: 32(ptr) AccessChain 26(flattenTemp) 31 + 34: 7(fvec4) Load 33 + Store 29(@entryPointOutput.color) 34 + 39: 38(ptr) AccessChain 26(flattenTemp) 37 + 40: 6(float) Load 39 + Store 36(@entryPointOutput.other_struct_member1) 40 + 43: 38(ptr) AccessChain 26(flattenTemp) 42 + 44: 6(float) Load 43 + Store 41(@entryPointOutput.other_struct_member2) 44 + 47: 38(ptr) AccessChain 26(flattenTemp) 46 + 48: 6(float) Load 47 + Store 45(@entryPointOutput.other_struct_member3) 48 + Return + FunctionEnd + 10(Func1():8(PS_OUTPUT) Function None 9 + 11: Label + ReturnValue 19 + FunctionEnd + 12(@main():8(PS_OUTPUT) Function None 9 + 13: Label + 22:8(PS_OUTPUT) FunctionCall 10(Func1() + ReturnValue 22 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out new file mode 100644 index 0000000000..eb47c3f899 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out @@ -0,0 +1,478 @@ +hlsl.flattenOpaque.frag +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) +0:15 Function Parameters: +0:15 's' ( in structure{ temp sampler s2D}) +0:? Sequence +0:16 Branch: Return with expression +0:16 texture ( temp 4-component vector of float) +0:16 Construct combined texture-sampler ( temp sampler2D) +0:16 'tex' ( uniform texture2D) +0:16 s2D: direct index for structure ( temp sampler) +0:16 's' ( in structure{ temp sampler s2D}) +0:16 Constant: +0:16 0 (const int) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 's' ( in structure{ temp sampler s2D}) +0:20 'f2' ( in 2-component vector of float) +0:? Sequence +0:21 Branch: Return with expression +0:21 texture ( temp 4-component vector of float) +0:21 Construct combined texture-sampler ( temp sampler2D) +0:21 'tex' ( uniform texture2D) +0:21 s2D: direct index for structure ( temp sampler) +0:21 's' ( in structure{ temp sampler s2D}) +0:21 Constant: +0:21 0 (const int) +0:21 'f2' ( in 2-component vector of float) +0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) +0:25 Function Parameters: +0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:? Sequence +0:26 Branch: Return with expression +0:26 texture ( temp 4-component vector of float) +0:26 Construct combined texture-sampler ( temp sampler2D) +0:26 tex: direct index for structure ( temp texture2D) +0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:26 Constant: +0:26 1 (const int) +0:26 s2D: direct index for structure ( temp sampler) +0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:26 Constant: +0:26 0 (const int) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) +0:30 Function Parameters: +0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:30 'f2' ( in 2-component vector of float) +0:? Sequence +0:31 Branch: Return with expression +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2D) +0:31 tex: direct index for structure ( temp texture2D) +0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:31 Constant: +0:31 1 (const int) +0:31 s2D: direct index for structure ( temp sampler) +0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:31 Constant: +0:31 0 (const int) +0:31 'f2' ( in 2-component vector of float) +0:35 Function Definition: @main( ( temp 4-component vector of float) +0:35 Function Parameters: +0:? Sequence +0:39 Branch: Return with expression +0:38 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:36 add ( temp 4-component vector of float) +0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) +0:36 Comma ( temp structure{ temp sampler s2D}) +0:36 Sequence +0:36 move second child to first child ( temp sampler) +0:36 s2D: direct index for structure ( temp sampler) +0:36 'aggShadow' ( temp structure{ temp sampler s2D}) +0:36 Constant: +0:36 0 (const int) +0:? 's.s2D' ( uniform sampler) +0:36 'aggShadow' ( temp structure{ temp sampler s2D}) +0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) +0:37 Comma ( temp structure{ temp sampler s2D}) +0:37 Sequence +0:37 move second child to first child ( temp sampler) +0:37 s2D: direct index for structure ( temp sampler) +0:37 'aggShadow' ( temp structure{ temp sampler s2D}) +0:37 Constant: +0:37 0 (const int) +0:? 's.s2D' ( uniform sampler) +0:37 'aggShadow' ( temp structure{ temp sampler s2D}) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) +0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:38 Sequence +0:38 move second child to first child ( temp sampler) +0:38 s2D: direct index for structure ( temp sampler) +0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:38 Constant: +0:38 0 (const int) +0:? 's2.s2D' ( uniform sampler) +0:38 move second child to first child ( temp texture2D) +0:38 tex: direct index for structure ( temp texture2D) +0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:38 Constant: +0:38 1 (const int) +0:? 's2.tex' ( uniform texture2D) +0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) +0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Sequence +0:39 move second child to first child ( temp sampler) +0:39 s2D: direct index for structure ( temp sampler) +0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Constant: +0:39 0 (const int) +0:? 's2.s2D' ( uniform sampler) +0:39 move second child to first child ( temp texture2D) +0:39 tex: direct index for structure ( temp texture2D) +0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Constant: +0:39 1 (const int) +0:? 's2.tex' ( uniform texture2D) +0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:35 Function Definition: main( ( temp void) +0:35 Function Parameters: +0:? Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:35 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' ( uniform texture2D) +0:? 's.s2D' ( uniform sampler) +0:? 's2.s2D' ( uniform sampler) +0:? 's2.tex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) +0:15 Function Parameters: +0:15 's' ( in structure{ temp sampler s2D}) +0:? Sequence +0:16 Branch: Return with expression +0:16 texture ( temp 4-component vector of float) +0:16 Construct combined texture-sampler ( temp sampler2D) +0:16 'tex' ( uniform texture2D) +0:16 s2D: direct index for structure ( temp sampler) +0:16 's' ( in structure{ temp sampler s2D}) +0:16 Constant: +0:16 0 (const int) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 's' ( in structure{ temp sampler s2D}) +0:20 'f2' ( in 2-component vector of float) +0:? Sequence +0:21 Branch: Return with expression +0:21 texture ( temp 4-component vector of float) +0:21 Construct combined texture-sampler ( temp sampler2D) +0:21 'tex' ( uniform texture2D) +0:21 s2D: direct index for structure ( temp sampler) +0:21 's' ( in structure{ temp sampler s2D}) +0:21 Constant: +0:21 0 (const int) +0:21 'f2' ( in 2-component vector of float) +0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) +0:25 Function Parameters: +0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:? Sequence +0:26 Branch: Return with expression +0:26 texture ( temp 4-component vector of float) +0:26 Construct combined texture-sampler ( temp sampler2D) +0:26 tex: direct index for structure ( temp texture2D) +0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:26 Constant: +0:26 1 (const int) +0:26 s2D: direct index for structure ( temp sampler) +0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:26 Constant: +0:26 0 (const int) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) +0:30 Function Parameters: +0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:30 'f2' ( in 2-component vector of float) +0:? Sequence +0:31 Branch: Return with expression +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2D) +0:31 tex: direct index for structure ( temp texture2D) +0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:31 Constant: +0:31 1 (const int) +0:31 s2D: direct index for structure ( temp sampler) +0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) +0:31 Constant: +0:31 0 (const int) +0:31 'f2' ( in 2-component vector of float) +0:35 Function Definition: @main( ( temp 4-component vector of float) +0:35 Function Parameters: +0:? Sequence +0:39 Branch: Return with expression +0:38 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:36 add ( temp 4-component vector of float) +0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) +0:36 Comma ( temp structure{ temp sampler s2D}) +0:36 Sequence +0:36 move second child to first child ( temp sampler) +0:36 s2D: direct index for structure ( temp sampler) +0:36 'aggShadow' ( temp structure{ temp sampler s2D}) +0:36 Constant: +0:36 0 (const int) +0:? 's.s2D' ( uniform sampler) +0:36 'aggShadow' ( temp structure{ temp sampler s2D}) +0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) +0:37 Comma ( temp structure{ temp sampler s2D}) +0:37 Sequence +0:37 move second child to first child ( temp sampler) +0:37 s2D: direct index for structure ( temp sampler) +0:37 'aggShadow' ( temp structure{ temp sampler s2D}) +0:37 Constant: +0:37 0 (const int) +0:? 's.s2D' ( uniform sampler) +0:37 'aggShadow' ( temp structure{ temp sampler s2D}) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) +0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:38 Sequence +0:38 move second child to first child ( temp sampler) +0:38 s2D: direct index for structure ( temp sampler) +0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:38 Constant: +0:38 0 (const int) +0:? 's2.s2D' ( uniform sampler) +0:38 move second child to first child ( temp texture2D) +0:38 tex: direct index for structure ( temp texture2D) +0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:38 Constant: +0:38 1 (const int) +0:? 's2.tex' ( uniform texture2D) +0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) +0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Sequence +0:39 move second child to first child ( temp sampler) +0:39 s2D: direct index for structure ( temp sampler) +0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Constant: +0:39 0 (const int) +0:? 's2.s2D' ( uniform sampler) +0:39 move second child to first child ( temp texture2D) +0:39 tex: direct index for structure ( temp texture2D) +0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:39 Constant: +0:39 1 (const int) +0:? 's2.tex' ( uniform texture2D) +0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:35 Function Definition: main( ( temp void) +0:35 Function Parameters: +0:? Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:35 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' ( uniform texture2D) +0:? 's.s2D' ( uniform sampler) +0:? 's2.s2D' ( uniform sampler) +0:? 's2.tex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 122 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 120 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 7 "os" + MemberName 7(os) 0 "s2D" + Name 13 "osCall1(struct-os-p11;" + Name 12 "s" + Name 20 "osCall2(struct-os-p11;vf2;" + Name 18 "s" + Name 19 "f2" + Name 23 "os2" + MemberName 23(os2) 0 "s2D" + MemberName 23(os2) 1 "tex" + Name 27 "os2Call1(struct-os2-p1-t211;" + Name 26 "s" + Name 32 "os2Call2(struct-os2-p1-t211;vf2;" + Name 30 "s" + Name 31 "f2" + Name 35 "@main(" + Name 38 "tex" + Name 80 "aggShadow" + Name 82 "s.s2D" + Name 85 "param" + Name 88 "aggShadow" + Name 91 "param" + Name 93 "param" + Name 96 "aggShadow" + Name 97 "s2.s2D" + Name 100 "s2.tex" + Name 103 "param" + Name 107 "aggShadow" + Name 112 "param" + Name 114 "param" + Name 120 "@entryPointOutput" + Decorate 38(tex) DescriptorSet 0 + Decorate 82(s.s2D) DescriptorSet 0 + Decorate 97(s2.s2D) DescriptorSet 0 + Decorate 100(s2.tex) DescriptorSet 0 + Decorate 120(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7(os): TypeStruct 6 + 8: TypePointer Function 7(os) + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11: TypeFunction 10(fvec4) 8(ptr) + 15: TypeVector 9(float) 2 + 16: TypePointer Function 15(fvec2) + 17: TypeFunction 10(fvec4) 8(ptr) 16(ptr) + 22: TypeImage 9(float) 2D sampled format:Unknown + 23(os2): TypeStruct 6 22 + 24: TypePointer Function 23(os2) + 25: TypeFunction 10(fvec4) 24(ptr) + 29: TypeFunction 10(fvec4) 24(ptr) 16(ptr) + 34: TypeFunction 10(fvec4) + 37: TypePointer UniformConstant 22 + 38(tex): 37(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 42: TypePointer Function 6 + 45: TypeSampledImage 22 + 47: 9(float) Constant 1045220557 + 48: 9(float) Constant 1050253722 + 49: 15(fvec2) ConstantComposite 47 48 + 61: 40(int) Constant 1 + 62: TypePointer Function 22 + 81: TypePointer UniformConstant 6 + 82(s.s2D): 81(ptr) Variable UniformConstant + 97(s2.s2D): 81(ptr) Variable UniformConstant + 100(s2.tex): 37(ptr) Variable UniformConstant + 119: TypePointer Output 10(fvec4) +120(@entryPointOutput): 119(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 121: 10(fvec4) FunctionCall 35(@main() + Store 120(@entryPointOutput) 121 + Return + FunctionEnd +13(osCall1(struct-os-p11;): 10(fvec4) Function None 11 + 12(s): 8(ptr) FunctionParameter + 14: Label + 39: 22 Load 38(tex) + 43: 42(ptr) AccessChain 12(s) 41 + 44: 6 Load 43 + 46: 45 SampledImage 39 44 + 50: 10(fvec4) ImageSampleImplicitLod 46 49 + ReturnValue 50 + FunctionEnd +20(osCall2(struct-os-p11;vf2;): 10(fvec4) Function None 17 + 18(s): 8(ptr) FunctionParameter + 19(f2): 16(ptr) FunctionParameter + 21: Label + 53: 22 Load 38(tex) + 54: 42(ptr) AccessChain 18(s) 41 + 55: 6 Load 54 + 56: 45 SampledImage 53 55 + 57: 15(fvec2) Load 19(f2) + 58: 10(fvec4) ImageSampleImplicitLod 56 57 + ReturnValue 58 + FunctionEnd +27(os2Call1(struct-os2-p1-t211;): 10(fvec4) Function None 25 + 26(s): 24(ptr) FunctionParameter + 28: Label + 63: 62(ptr) AccessChain 26(s) 61 + 64: 22 Load 63 + 65: 42(ptr) AccessChain 26(s) 41 + 66: 6 Load 65 + 67: 45 SampledImage 64 66 + 68: 10(fvec4) ImageSampleImplicitLod 67 49 + ReturnValue 68 + FunctionEnd +32(os2Call2(struct-os2-p1-t211;vf2;): 10(fvec4) Function None 29 + 30(s): 24(ptr) FunctionParameter + 31(f2): 16(ptr) FunctionParameter + 33: Label + 71: 62(ptr) AccessChain 30(s) 61 + 72: 22 Load 71 + 73: 42(ptr) AccessChain 30(s) 41 + 74: 6 Load 73 + 75: 45 SampledImage 72 74 + 76: 15(fvec2) Load 31(f2) + 77: 10(fvec4) ImageSampleImplicitLod 75 76 + ReturnValue 77 + FunctionEnd + 35(@main(): 10(fvec4) Function None 34 + 36: Label + 80(aggShadow): 8(ptr) Variable Function + 85(param): 8(ptr) Variable Function + 88(aggShadow): 8(ptr) Variable Function + 91(param): 8(ptr) Variable Function + 93(param): 16(ptr) Variable Function + 96(aggShadow): 24(ptr) Variable Function + 103(param): 24(ptr) Variable Function + 107(aggShadow): 24(ptr) Variable Function + 112(param): 24(ptr) Variable Function + 114(param): 16(ptr) Variable Function + 83: 6 Load 82(s.s2D) + 84: 42(ptr) AccessChain 80(aggShadow) 41 + Store 84 83 + 86: 7(os) Load 80(aggShadow) + Store 85(param) 86 + 87: 10(fvec4) FunctionCall 13(osCall1(struct-os-p11;) 85(param) + 89: 6 Load 82(s.s2D) + 90: 42(ptr) AccessChain 88(aggShadow) 41 + Store 90 89 + 92: 7(os) Load 88(aggShadow) + Store 91(param) 92 + Store 93(param) 49 + 94: 10(fvec4) FunctionCall 20(osCall2(struct-os-p11;vf2;) 91(param) 93(param) + 95: 10(fvec4) FAdd 87 94 + 98: 6 Load 97(s2.s2D) + 99: 42(ptr) AccessChain 96(aggShadow) 41 + Store 99 98 + 101: 22 Load 100(s2.tex) + 102: 62(ptr) AccessChain 96(aggShadow) 61 + Store 102 101 + 104: 23(os2) Load 96(aggShadow) + Store 103(param) 104 + 105: 10(fvec4) FunctionCall 27(os2Call1(struct-os2-p1-t211;) 103(param) + 106: 10(fvec4) FAdd 95 105 + 108: 6 Load 97(s2.s2D) + 109: 42(ptr) AccessChain 107(aggShadow) 41 + Store 109 108 + 110: 22 Load 100(s2.tex) + 111: 62(ptr) AccessChain 107(aggShadow) 61 + Store 111 110 + 113: 23(os2) Load 107(aggShadow) + Store 112(param) 113 + Store 114(param) 49 + 115: 10(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 112(param) 114(param) + 116: 10(fvec4) FAdd 106 115 + ReturnValue 116 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out new file mode 100644 index 0000000000..29da844654 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out @@ -0,0 +1,291 @@ +hlsl.flattenOpaqueInit.vert +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +0:? Sequence +0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) +0:? Sequence +0:6 Branch: Return with expression +0:6 texture ( temp 4-component vector of float) +0:6 Construct combined texture-sampler ( temp sampler2D) +0:6 tex: direct index for structure ( temp texture2D) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) +0:6 Constant: +0:6 1 (const int) +0:6 smpl: direct index for structure ( temp sampler) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) +0:6 Constant: +0:6 0 (const int) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:10 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp sampler) +0:12 smpl: direct index for structure ( temp sampler) +0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:12 Constant: +0:12 0 (const int) +0:12 'g_tInputTexture_sampler' ( uniform sampler) +0:13 move second child to first child ( temp texture2D) +0:13 tex: direct index for structure ( temp texture2D) +0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:13 Constant: +0:13 1 (const int) +0:13 'g_tInputTexture' ( uniform texture2D) +0:14 Branch: Return with expression +0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:18 Function Definition: @main( ( temp 4-component vector of float) +0:18 Function Parameters: +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:19 'g_tInputTexture_sampler' ( uniform sampler) +0:19 'g_tInputTexture' ( uniform texture2D) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'res' ( temp 4-component vector of float) +0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:21 Sequence +0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:22 add second child into first child ( temp 4-component vector of float) +0:22 'res' ( temp 4-component vector of float) +0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:23 Sequence +0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:24 add second child into first child ( temp 4-component vector of float) +0:24 'res' ( temp 4-component vector of float) +0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:26 Branch: Return with expression +0:26 'res' ( temp 4-component vector of float) +0:18 Function Definition: main( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:18 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tInputTexture_sampler' ( uniform sampler) +0:? 'g_tInputTexture' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) +0:? Sequence +0:6 Branch: Return with expression +0:6 texture ( temp 4-component vector of float) +0:6 Construct combined texture-sampler ( temp sampler2D) +0:6 tex: direct index for structure ( temp texture2D) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) +0:6 Constant: +0:6 1 (const int) +0:6 smpl: direct index for structure ( temp sampler) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) +0:6 Constant: +0:6 0 (const int) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:10 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp sampler) +0:12 smpl: direct index for structure ( temp sampler) +0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:12 Constant: +0:12 0 (const int) +0:12 'g_tInputTexture_sampler' ( uniform sampler) +0:13 move second child to first child ( temp texture2D) +0:13 tex: direct index for structure ( temp texture2D) +0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:13 Constant: +0:13 1 (const int) +0:13 'g_tInputTexture' ( uniform texture2D) +0:14 Branch: Return with expression +0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:18 Function Definition: @main( ( temp 4-component vector of float) +0:18 Function Parameters: +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:19 'g_tInputTexture_sampler' ( uniform sampler) +0:19 'g_tInputTexture' ( uniform texture2D) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'res' ( temp 4-component vector of float) +0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:21 Sequence +0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:22 add second child into first child ( temp 4-component vector of float) +0:22 'res' ( temp 4-component vector of float) +0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:23 Sequence +0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:24 add second child into first child ( temp 4-component vector of float) +0:24 'res' ( temp 4-component vector of float) +0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) +0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) +0:26 Branch: Return with expression +0:26 'res' ( temp 4-component vector of float) +0:18 Function Definition: main( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:18 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tInputTexture_sampler' ( uniform sampler) +0:? 'g_tInputTexture' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 82 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 80 + Source HLSL 500 + Name 4 "main" + Name 9 "FxaaTex" + MemberName 9(FxaaTex) 0 "smpl" + MemberName 9(FxaaTex) 1 "tex" + Name 14 "lookUp(struct-FxaaTex-p1-t211;" + Name 13 "tex" + Name 17 "fillOpaque(" + Name 20 "@main(" + Name 41 "t" + Name 43 "g_tInputTexture_sampler" + Name 47 "g_tInputTexture" + Name 53 "tex1" + Name 58 "res" + Name 59 "param" + Name 62 "tex2" + Name 64 "param" + Name 69 "tex3" + Name 71 "param" + Name 80 "@entryPointOutput" + Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 + Decorate 47(g_tInputTexture) DescriptorSet 0 + Decorate 80(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7: TypeFloat 32 + 8: TypeImage 7(float) 2D sampled format:Unknown + 9(FxaaTex): TypeStruct 6 8 + 10: TypePointer Function 9(FxaaTex) + 11: TypeVector 7(float) 4 + 12: TypeFunction 11(fvec4) 10(ptr) + 16: TypeFunction 9(FxaaTex) + 19: TypeFunction 11(fvec4) + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 24: TypePointer Function 8 + 27: 22(int) Constant 0 + 28: TypePointer Function 6 + 31: TypeSampledImage 8 + 33: TypeVector 7(float) 2 + 34: 7(float) Constant 1050253722 + 35: 7(float) Constant 1053609165 + 36: 33(fvec2) ConstantComposite 34 35 + 37: 7(float) Constant 0 + 42: TypePointer UniformConstant 6 +43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant + 46: TypePointer UniformConstant 8 +47(g_tInputTexture): 46(ptr) Variable UniformConstant + 57: TypePointer Function 11(fvec4) + 79: TypePointer Output 11(fvec4) +80(@entryPointOutput): 79(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 81: 11(fvec4) FunctionCall 20(@main() + Store 80(@entryPointOutput) 81 + Return + FunctionEnd +14(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12 + 13(tex): 10(ptr) FunctionParameter + 15: Label + 25: 24(ptr) AccessChain 13(tex) 23 + 26: 8 Load 25 + 29: 28(ptr) AccessChain 13(tex) 27 + 30: 6 Load 29 + 32: 31 SampledImage 26 30 + 38: 11(fvec4) ImageSampleExplicitLod 32 36 Lod 37 + ReturnValue 38 + FunctionEnd + 17(fillOpaque(): 9(FxaaTex) Function None 16 + 18: Label + 41(t): 10(ptr) Variable Function + 44: 6 Load 43(g_tInputTexture_sampler) + 45: 28(ptr) AccessChain 41(t) 27 + Store 45 44 + 48: 8 Load 47(g_tInputTexture) + 49: 24(ptr) AccessChain 41(t) 23 + Store 49 48 + 50: 9(FxaaTex) Load 41(t) + ReturnValue 50 + FunctionEnd + 20(@main(): 11(fvec4) Function None 19 + 21: Label + 53(tex1): 10(ptr) Variable Function + 58(res): 57(ptr) Variable Function + 59(param): 10(ptr) Variable Function + 62(tex2): 10(ptr) Variable Function + 64(param): 10(ptr) Variable Function + 69(tex3): 10(ptr) Variable Function + 71(param): 10(ptr) Variable Function + 54: 6 Load 43(g_tInputTexture_sampler) + 55: 8 Load 47(g_tInputTexture) + 56: 9(FxaaTex) CompositeConstruct 54 55 + Store 53(tex1) 56 + 60: 9(FxaaTex) Load 53(tex1) + Store 59(param) 60 + 61: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 59(param) + Store 58(res) 61 + 63: 9(FxaaTex) FunctionCall 17(fillOpaque() + Store 62(tex2) 63 + 65: 9(FxaaTex) Load 62(tex2) + Store 64(param) 65 + 66: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 64(param) + 67: 11(fvec4) Load 58(res) + 68: 11(fvec4) FAdd 67 66 + Store 58(res) 68 + 70: 9(FxaaTex) Load 53(tex1) + Store 69(tex3) 70 + 72: 9(FxaaTex) Load 69(tex3) + Store 71(param) 72 + 73: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 71(param) + 74: 11(fvec4) Load 58(res) + 75: 11(fvec4) FAdd 74 73 + Store 58(res) 75 + 76: 11(fvec4) Load 58(res) + ReturnValue 76 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out new file mode 100644 index 0000000000..bf95980434 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out @@ -0,0 +1,195 @@ +hlsl.flattenOpaqueInitMix.vert +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +0:? Sequence +0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:? Sequence +0:6 Branch: Return with expression +0:6 texture ( temp 4-component vector of float) +0:6 Construct combined texture-sampler ( temp sampler2D) +0:6 tex: direct index for structure ( temp texture2D) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 1 (const int) +0:6 smpl: direct index for structure ( temp sampler) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 0 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:6 f: direct index for structure ( temp float) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 2 (const int) +0:6 f: direct index for structure ( temp float) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 2 (const int) +0:10 Function Definition: @main( ( temp 4-component vector of float) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:11 'g_tInputTexture_sampler' ( uniform sampler) +0:11 'g_tInputTexture' ( uniform texture2D) +0:11 Constant: +0:11 0.500000 +0:12 Branch: Return with expression +0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) +0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:10 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tInputTexture_sampler' ( uniform sampler) +0:? 'g_tInputTexture' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:? Sequence +0:6 Branch: Return with expression +0:6 texture ( temp 4-component vector of float) +0:6 Construct combined texture-sampler ( temp sampler2D) +0:6 tex: direct index for structure ( temp texture2D) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 1 (const int) +0:6 smpl: direct index for structure ( temp sampler) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 0 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:6 f: direct index for structure ( temp float) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 2 (const int) +0:6 f: direct index for structure ( temp float) +0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:6 Constant: +0:6 2 (const int) +0:10 Function Definition: @main( ( temp 4-component vector of float) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:11 'g_tInputTexture_sampler' ( uniform sampler) +0:11 'g_tInputTexture' ( uniform texture2D) +0:11 Constant: +0:11 0.500000 +0:12 Branch: Return with expression +0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) +0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:10 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tInputTexture_sampler' ( uniform sampler) +0:? 'g_tInputTexture' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 59 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 57 + Source HLSL 500 + Name 4 "main" + Name 9 "FxaaTex" + MemberName 9(FxaaTex) 0 "smpl" + MemberName 9(FxaaTex) 1 "tex" + MemberName 9(FxaaTex) 2 "f" + Name 14 "lookUp(struct-FxaaTex-p1-t21-f11;" + Name 13 "tex" + Name 17 "@main(" + Name 42 "tex" + Name 44 "g_tInputTexture_sampler" + Name 47 "g_tInputTexture" + Name 51 "param" + Name 57 "@entryPointOutput" + Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 + Decorate 47(g_tInputTexture) DescriptorSet 0 + Decorate 57(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeSampler + 7: TypeFloat 32 + 8: TypeImage 7(float) 2D sampled format:Unknown + 9(FxaaTex): TypeStruct 6 8 7(float) + 10: TypePointer Function 9(FxaaTex) + 11: TypeVector 7(float) 4 + 12: TypeFunction 11(fvec4) 10(ptr) + 16: TypeFunction 11(fvec4) + 19: TypeInt 32 1 + 20: 19(int) Constant 1 + 21: TypePointer Function 8 + 24: 19(int) Constant 0 + 25: TypePointer Function 6 + 28: TypeSampledImage 8 + 30: 19(int) Constant 2 + 31: TypePointer Function 7(float) + 36: TypeVector 7(float) 2 + 38: 7(float) Constant 0 + 43: TypePointer UniformConstant 6 +44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant + 46: TypePointer UniformConstant 8 +47(g_tInputTexture): 46(ptr) Variable UniformConstant + 49: 7(float) Constant 1056964608 + 56: TypePointer Output 11(fvec4) +57(@entryPointOutput): 56(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 58: 11(fvec4) FunctionCall 17(@main() + Store 57(@entryPointOutput) 58 + Return + FunctionEnd +14(lookUp(struct-FxaaTex-p1-t21-f11;): 11(fvec4) Function None 12 + 13(tex): 10(ptr) FunctionParameter + 15: Label + 22: 21(ptr) AccessChain 13(tex) 20 + 23: 8 Load 22 + 26: 25(ptr) AccessChain 13(tex) 24 + 27: 6 Load 26 + 29: 28 SampledImage 23 27 + 32: 31(ptr) AccessChain 13(tex) 30 + 33: 7(float) Load 32 + 34: 31(ptr) AccessChain 13(tex) 30 + 35: 7(float) Load 34 + 37: 36(fvec2) CompositeConstruct 33 35 + 39: 11(fvec4) ImageSampleExplicitLod 29 37 Lod 38 + ReturnValue 39 + FunctionEnd + 17(@main(): 11(fvec4) Function None 16 + 18: Label + 42(tex): 10(ptr) Variable Function + 51(param): 10(ptr) Variable Function + 45: 6 Load 44(g_tInputTexture_sampler) + 48: 8 Load 47(g_tInputTexture) + 50: 9(FxaaTex) CompositeConstruct 45 48 49 + Store 42(tex) 50 + 52: 9(FxaaTex) Load 42(tex) + Store 51(param) 52 + 53: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t21-f11;) 51(param) + ReturnValue 53 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset.frag.out new file mode 100644 index 0000000000..92e2a9690e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset.frag.out @@ -0,0 +1,216 @@ +hlsl.flattenSubset.frag +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:30 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:30 Function Parameters: +0:30 'vpos' ( in 4-component vector of float) +0:? Sequence +0:33 move second child to first child ( temp sampler) +0:33 ss: direct index for structure ( temp sampler) +0:33 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) +0:33 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 'samp' ( uniform sampler) +0:34 move second child to first child ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:34 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:34 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) +0:34 Constant: +0:34 5 (const int) +0:34 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:35 Branch: Return with expression +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'tex' ( uniform texture2D) +0:35 ss: direct index for structure ( temp sampler) +0:35 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) +0:35 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:35 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) +0:35 Constant: +0:35 5 (const int) +0:35 Constant: +0:35 2 (const int) +0:35 Constant: +0:35 2 (const int) +0:35 Constant: +0:35 0.500000 +0:35 0.500000 +0:30 Function Definition: main( ( temp void) +0:30 Function Parameters: +0:? Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) +0:30 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:30 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'samp' ( uniform sampler) +0:? 'tex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:30 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:30 Function Parameters: +0:30 'vpos' ( in 4-component vector of float) +0:? Sequence +0:33 move second child to first child ( temp sampler) +0:33 ss: direct index for structure ( temp sampler) +0:33 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) +0:33 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 'samp' ( uniform sampler) +0:34 move second child to first child ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:34 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:34 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) +0:34 Constant: +0:34 5 (const int) +0:34 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:35 Branch: Return with expression +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'tex' ( uniform texture2D) +0:35 ss: direct index for structure ( temp sampler) +0:35 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss}) +0:35 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a}) +0:35 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources}) +0:35 Constant: +0:35 5 (const int) +0:35 Constant: +0:35 2 (const int) +0:35 Constant: +0:35 2 (const int) +0:35 Constant: +0:35 0.500000 +0:35 0.500000 +0:30 Function Definition: main( ( temp void) +0:30 Function Parameters: +0:? Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) +0:30 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:30 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'samp' ( uniform sampler) +0:? 'tex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 47 50 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "vpos" + Name 15 "S0" + MemberName 15(S0) 0 "x" + MemberName 15(S0) 1 "y" + MemberName 15(S0) 2 "ss" + Name 16 "S1" + MemberName 16(S1) 0 "b" + MemberName 16(S1) 1 "samplerState" + MemberName 16(S1) 2 "s0" + MemberName 16(S1) 3 "a" + Name 18 "s1" + Name 21 "samp" + Name 25 "S2" + MemberName 25(S2) 0 "a1" + MemberName 25(S2) 1 "a2" + MemberName 25(S2) 2 "a3" + MemberName 25(S2) 3 "a4" + MemberName 25(S2) 4 "a5" + MemberName 25(S2) 5 "resources" + Name 27 "s2" + Name 33 "tex" + Name 45 "vpos" + Name 47 "vpos" + Name 50 "@entryPointOutput" + Name 51 "param" + Decorate 21(samp) DescriptorSet 0 + Decorate 33(tex) DescriptorSet 0 + Decorate 47(vpos) Location 0 + Decorate 50(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypeSampler + 14: TypeInt 32 1 + 15(S0): TypeStruct 14(int) 14(int) 13 + 16(S1): TypeStruct 6(float) 13 15(S0) 14(int) + 17: TypePointer Function 16(S1) + 19: 14(int) Constant 2 + 20: TypePointer UniformConstant 13 + 21(samp): 20(ptr) Variable UniformConstant + 23: TypePointer Function 13 + 25(S2): TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1) + 26: TypePointer Function 25(S2) + 28: 14(int) Constant 5 + 31: TypeImage 6(float) 2D sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(tex): 32(ptr) Variable UniformConstant + 37: TypeSampledImage 31 + 39: TypeVector 6(float) 2 + 40: 6(float) Constant 1056964608 + 41: 39(fvec2) ConstantComposite 40 40 + 46: TypePointer Input 7(fvec4) + 47(vpos): 46(ptr) Variable Input + 49: TypePointer Output 7(fvec4) +50(@entryPointOutput): 49(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 45(vpos): 8(ptr) Variable Function + 51(param): 8(ptr) Variable Function + 48: 7(fvec4) Load 47(vpos) + Store 45(vpos) 48 + 52: 7(fvec4) Load 45(vpos) + Store 51(param) 52 + 53: 7(fvec4) FunctionCall 11(@main(vf4;) 51(param) + Store 50(@entryPointOutput) 53 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(vpos): 8(ptr) FunctionParameter + 12: Label + 18(s1): 17(ptr) Variable Function + 27(s2): 26(ptr) Variable Function + 22: 13 Load 21(samp) + 24: 23(ptr) AccessChain 18(s1) 19 19 + Store 24 22 + 29: 16(S1) Load 18(s1) + 30: 17(ptr) AccessChain 27(s2) 28 + Store 30 29 + 34: 31 Load 33(tex) + 35: 23(ptr) AccessChain 27(s2) 28 19 19 + 36: 13 Load 35 + 38: 37 SampledImage 34 36 + 42: 7(fvec4) ImageSampleImplicitLod 38 41 + ReturnValue 42 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out new file mode 100644 index 0000000000..b22734a8cd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out @@ -0,0 +1,248 @@ +hlsl.flattenSubset2.frag +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'vpos' ( in 4-component vector of float) +0:? Sequence +0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) +0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:13 Constant: +0:13 0 (const int) +0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:13 Constant: +0:13 0 (const int) +0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) +0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) +0:14 Constant: +0:14 0 (const int) +0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:14 Constant: +0:14 0 (const int) +0:17 Sequence +0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) +0:17 'n' ( temp structure{ temp float y, temp texture2D texNested}) +0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) +0:17 Constant: +0:17 0 (const int) +0:20 move second child to first child ( temp texture2D) +0:20 texNested: direct index for structure ( temp texture2D) +0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 'someTex' ( uniform texture2D) +0:21 move second child to first child ( temp float) +0:21 y: direct index for structure ( temp float) +0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1.000000 +0:23 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'someTex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'vpos' ( in 4-component vector of float) +0:? Sequence +0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) +0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:13 Constant: +0:13 0 (const int) +0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:13 Constant: +0:13 0 (const int) +0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) +0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) +0:14 Constant: +0:14 0 (const int) +0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:14 Constant: +0:14 0 (const int) +0:17 Sequence +0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) +0:17 'n' ( temp structure{ temp float y, temp texture2D texNested}) +0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) +0:17 Constant: +0:17 0 (const int) +0:20 move second child to first child ( temp texture2D) +0:20 texNested: direct index for structure ( temp texture2D) +0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 'someTex' ( uniform texture2D) +0:21 move second child to first child ( temp float) +0:21 y: direct index for structure ( temp float) +0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) +0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1.000000 +0:23 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'vpos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'someTex' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'vpos' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 56 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 49 52 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "vpos" + Name 14 "Nested" + MemberName 14(Nested) 0 "y" + MemberName 14(Nested) 1 "texNested" + Name 15 "A" + MemberName 15(A) 0 "n" + MemberName 15(A) 1 "x" + Name 17 "a1" + Name 20 "a2" + Name 25 "B" + MemberName 25(B) 0 "n" + MemberName 25(B) 1 "tex" + Name 27 "b" + Name 31 "n" + Name 36 "someTex" + Name 47 "vpos" + Name 49 "vpos" + Name 52 "@entryPointOutput" + Name 53 "param" + Decorate 36(someTex) DescriptorSet 0 + Decorate 49(vpos) Location 0 + Decorate 52(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypeImage 6(float) 2D sampled format:Unknown + 14(Nested): TypeStruct 6(float) 13 + 15(A): TypeStruct 14(Nested) 6(float) + 16: TypePointer Function 15(A) + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 21: TypePointer Function 14(Nested) + 25(B): TypeStruct 14(Nested) 13 + 26: TypePointer Function 25(B) + 34: 18(int) Constant 1 + 35: TypePointer UniformConstant 13 + 36(someTex): 35(ptr) Variable UniformConstant + 38: TypePointer Function 13 + 40: 6(float) Constant 1065353216 + 41: TypePointer Function 6(float) + 43: 6(float) Constant 0 + 44: 7(fvec4) ConstantComposite 43 43 43 43 + 48: TypePointer Input 7(fvec4) + 49(vpos): 48(ptr) Variable Input + 51: TypePointer Output 7(fvec4) +52(@entryPointOutput): 51(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 47(vpos): 8(ptr) Variable Function + 53(param): 8(ptr) Variable Function + 50: 7(fvec4) Load 49(vpos) + Store 47(vpos) 50 + 54: 7(fvec4) Load 47(vpos) + Store 53(param) 54 + 55: 7(fvec4) FunctionCall 11(@main(vf4;) 53(param) + Store 52(@entryPointOutput) 55 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(vpos): 8(ptr) FunctionParameter + 12: Label + 17(a1): 16(ptr) Variable Function + 20(a2): 16(ptr) Variable Function + 27(b): 26(ptr) Variable Function + 31(n): 21(ptr) Variable Function + 22: 21(ptr) AccessChain 20(a2) 19 + 23: 14(Nested) Load 22 + 24: 21(ptr) AccessChain 17(a1) 19 + Store 24 23 + 28: 21(ptr) AccessChain 17(a1) 19 + 29: 14(Nested) Load 28 + 30: 21(ptr) AccessChain 27(b) 19 + Store 30 29 + 32: 21(ptr) AccessChain 27(b) 19 + 33: 14(Nested) Load 32 + Store 31(n) 33 + 37: 13 Load 36(someTex) + 39: 38(ptr) AccessChain 20(a2) 19 34 + Store 39 37 + 42: 41(ptr) AccessChain 17(a1) 19 19 + Store 42 40 + ReturnValue 44 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out new file mode 100644 index 0000000000..7862123138 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.float1.frag.out @@ -0,0 +1,111 @@ +hlsl.float1.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 1-component vector of float) +0:1 'f1' ( global 1-component vector of float) +0:1 Constant: +0:1 1.000000 +0: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:5 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) +0:5 Function Parameters: +0:5 'inFloat1' ( in 1-component vector of float) +0:5 'inScalar' ( in float) +0:? Sequence +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' ( 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' ( global 1-component vector of float) +0:? 'scalar' ( global float) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 1-component vector of float) +0:1 'f1' ( global 1-component vector of float) +0:1 Constant: +0:1 1.000000 +0: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:5 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) +0:5 Function Parameters: +0:5 'inFloat1' ( in 1-component vector of float) +0:5 'inScalar' ( in float) +0:? Sequence +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' ( 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' ( global 1-component vector of float) +0:? 'scalar' ( global float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "ShaderFunction(vf1;f1;" + Name 9 "inFloat1" + Name 10 "inScalar" + 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 + Return + FunctionEnd +11(ShaderFunction(vf1;f1;): 6(float) Function None 8 + 9(inFloat1): 7(ptr) FunctionParameter + 10(inScalar): 7(ptr) FunctionParameter + 12: Label + 18: 6(float) Load 14(f1) + 19: 6(float) Load 16(scalar) + 20: 6(float) IMul 18 19 + 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/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out new file mode 100644 index 0000000000..cd741ed0c2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.float4.frag.out @@ -0,0 +1,96 @@ +hlsl.float4.frag +WARNING: 0:5: 'register' : ignoring shader_profile +WARNING: 0:6: 'register' : ignoring shader_profile + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 'input' ( in 4-component vector of float) +0:? Sequence +0:10 Branch: Return with expression +0:10 component-wise multiply ( temp 4-component vector of float) +0:10 'input' ( in 4-component vector of float) +0:10 AmbientColor: direct index for structure ( uniform 4-component vector of float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) +0:10 Constant: +0:10 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 'input' ( in 4-component vector of float) +0:? Sequence +0:10 Branch: Return with expression +0:10 component-wise multiply ( temp 4-component vector of float) +0:10 'input' ( in 4-component vector of float) +0:10 AmbientColor: direct index for structure ( uniform 4-component vector of float) +0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) +0:10 Constant: +0:10 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "ShaderFunction(vf4;" + Name 10 "input" + Name 15 "$Global" + MemberName 15($Global) 0 "AmbientColor" + MemberName 15($Global) 1 "ff1" + MemberName 15($Global) 2 "ff2" + MemberName 15($Global) 3 "ff3" + MemberName 15($Global) 4 "ff4" + Name 17 "" + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 16 + MemberDecorate 15($Global) 2 Offset 20 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 14: TypeInt 32 0 + 15($Global): TypeStruct 7(fvec4) 14(int) 6(float) 7(fvec4) 7(fvec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: TypePointer Uniform 7(fvec4) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Return + FunctionEnd +11(ShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13: 7(fvec4) Load 10(input) + 21: 20(ptr) AccessChain 17 19 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FMul 13 22 + ReturnValue 23 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out new file mode 100644 index 0000000000..3e835f80d4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.forLoop.frag.out @@ -0,0 +1,705 @@ +hlsl.forLoop.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:? Sequence +0:3 Loop with condition tested first +0:3 No loop condition +0:3 No loop body +0:4 Sequence +0:4 Pre-Increment ( temp 4-component vector of float) +0:4 'input' ( in 4-component vector of float) +0:4 Loop with condition tested first +0:4 No loop condition +0:4 No loop body +0:? Sequence +0:5 Loop with condition tested first: Unroll +0:5 Loop Condition +0:5 any ( temp bool) +0:5 NotEqual ( temp 4-component vector of bool) +0:5 'input' ( in 4-component vector of float) +0:5 'input' ( in 4-component vector of float) +0:5 No loop body +0:? Sequence +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 any ( temp bool) +0:6 NotEqual ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) +0:6 Loop Body +0:? Sequence +0:6 Branch: Return with expression +0:6 Negate value ( temp 4-component vector of float) +0:6 'input' ( in 4-component vector of float) +0:7 Sequence +0:7 Pre-Decrement ( temp 4-component vector of float) +0:7 'input' ( in 4-component vector of float) +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 any ( temp bool) +0:7 NotEqual ( temp 4-component vector of bool) +0:7 'input' ( in 4-component vector of float) +0:7 'input' ( in 4-component vector of float) +0:7 Loop Body +0:? Sequence +0:7 Branch: Return with expression +0:7 Negate value ( temp 4-component vector of float) +0:7 'input' ( in 4-component vector of float) +0:7 Loop Terminal Expression +0:7 add second child into first child ( temp 4-component vector of float) +0:7 'input' ( 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:13 Sequence +0:13 move second child to first child ( temp int) +0:13 'first' ( temp int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp int) +0:13 'second' ( temp int) +0:13 Constant: +0:13 1 (const int) +0:13 Loop with condition tested first +0:13 No loop condition +0:13 Loop Body +0:13 add ( temp int) +0:13 'first' ( temp int) +0:13 'second' ( temp int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'i' ( temp int) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child ( temp int) +0:14 'count' ( temp int) +0:14 Convert float to int ( temp int) +0:14 'ii' ( temp float) +0:14 Loop with condition tested first +0:14 Loop Condition +0:14 Compare Less Than ( temp bool) +0:14 'i' ( temp int) +0:14 'count' ( temp int) +0:14 No loop body +0:14 Loop Terminal Expression +0:14 Post-Increment ( temp int) +0:14 'i' ( temp int) +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'first' ( temp float) +0:15 Constant: +0:15 0.000000 +0:15 Loop with condition tested first +0:15 Loop Condition +0:15 Compare Less Than ( temp bool) +0:15 'first' ( temp float) +0:15 direct index ( temp float) +0:15 'second' ( temp 2-element array of float) +0:15 Constant: +0:15 0 (const int) +0:15 Loop Body +0:15 add ( temp float) +0:15 add ( temp float) +0:15 'first' ( temp float) +0:15 direct index ( temp float) +0:15 'second' ( temp 2-element array of float) +0:15 Constant: +0:15 1 (const int) +0:15 'third' ( temp float) +0:15 Loop Terminal Expression +0:15 Pre-Increment ( temp float) +0:15 direct index ( temp float) +0:15 'second' ( temp 2-element array of float) +0:15 Constant: +0:15 1 (const int) +0:? Sequence +0:16 Comma ( temp float) +0:16 Comma ( temp float) +0:16 Pre-Decrement ( temp float) +0:16 'ii' ( temp float) +0:16 Pre-Decrement ( temp float) +0:16 'ii' ( temp float) +0:16 Pre-Decrement ( temp float) +0:16 'ii' ( temp float) +0:16 Loop with condition tested first +0:16 No loop condition +0:16 Loop Body +0:16 'ii' ( temp float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:? Sequence +0:3 Loop with condition tested first +0:3 No loop condition +0:3 No loop body +0:4 Sequence +0:4 Pre-Increment ( temp 4-component vector of float) +0:4 'input' ( in 4-component vector of float) +0:4 Loop with condition tested first +0:4 No loop condition +0:4 No loop body +0:? Sequence +0:5 Loop with condition tested first: Unroll +0:5 Loop Condition +0:5 any ( temp bool) +0:5 NotEqual ( temp 4-component vector of bool) +0:5 'input' ( in 4-component vector of float) +0:5 'input' ( in 4-component vector of float) +0:5 No loop body +0:? Sequence +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 any ( temp bool) +0:6 NotEqual ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) +0:6 Loop Body +0:? Sequence +0:6 Branch: Return with expression +0:6 Negate value ( temp 4-component vector of float) +0:6 'input' ( in 4-component vector of float) +0:7 Sequence +0:7 Pre-Decrement ( temp 4-component vector of float) +0:7 'input' ( in 4-component vector of float) +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 any ( temp bool) +0:7 NotEqual ( temp 4-component vector of bool) +0:7 'input' ( in 4-component vector of float) +0:7 'input' ( in 4-component vector of float) +0:7 Loop Body +0:? Sequence +0:7 Branch: Return with expression +0:7 Negate value ( temp 4-component vector of float) +0:7 'input' ( in 4-component vector of float) +0:7 Loop Terminal Expression +0:7 add second child into first child ( temp 4-component vector of float) +0:7 'input' ( 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:13 Sequence +0:13 move second child to first child ( temp int) +0:13 'first' ( temp int) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp int) +0:13 'second' ( temp int) +0:13 Constant: +0:13 1 (const int) +0:13 Loop with condition tested first +0:13 No loop condition +0:13 Loop Body +0:13 add ( temp int) +0:13 'first' ( temp int) +0:13 'second' ( temp int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'i' ( temp int) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child ( temp int) +0:14 'count' ( temp int) +0:14 Convert float to int ( temp int) +0:14 'ii' ( temp float) +0:14 Loop with condition tested first +0:14 Loop Condition +0:14 Compare Less Than ( temp bool) +0:14 'i' ( temp int) +0:14 'count' ( temp int) +0:14 No loop body +0:14 Loop Terminal Expression +0:14 Post-Increment ( temp int) +0:14 'i' ( temp int) +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'first' ( temp float) +0:15 Constant: +0:15 0.000000 +0:15 Loop with condition tested first +0:15 Loop Condition +0:15 Compare Less Than ( temp bool) +0:15 'first' ( temp float) +0:15 direct index ( temp float) +0:15 'second' ( temp 2-element array of float) +0:15 Constant: +0:15 0 (const int) +0:15 Loop Body +0:15 add ( temp float) +0:15 add ( temp float) +0:15 'first' ( temp float) +0:15 direct index ( temp float) +0:15 'second' ( temp 2-element array of float) +0:15 Constant: +0:15 1 (const int) +0:15 'third' ( temp float) +0:15 Loop Terminal Expression +0:15 Pre-Increment ( temp float) +0:15 direct index ( temp float) +0:15 'second' ( temp 2-element array of float) +0:15 Constant: +0:15 1 (const int) +0:? Sequence +0:16 Comma ( temp float) +0:16 Comma ( temp float) +0:16 Pre-Decrement ( temp float) +0:16 'ii' ( temp float) +0:16 Pre-Decrement ( temp float) +0:16 'ii' ( temp float) +0:16 Pre-Decrement ( temp float) +0:16 'ii' ( temp float) +0:16 Loop with condition tested first +0:16 No loop condition +0:16 Loop Body +0:16 'ii' ( temp float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 183 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 176 179 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 92 "ii" + Name 111 "ii" + Name 114 "first" + Name 116 "second" + Name 124 "i" + Name 125 "count" + Name 138 "first" + Name 149 "second" + Name 157 "third" + Name 174 "input" + Name 176 "input" + Name 179 "@entryPointOutput" + Name 180 "param" + Decorate 176(input) Location 0 + Decorate 179(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 18: 6(float) Constant 1065353216 + 32: TypeBool + 33: TypeVector 32(bool) 4 + 63: 6(float) Constant 1073741824 + 71: TypeInt 32 0 + 72: 71(int) Constant 0 + 73: TypePointer Function 6(float) + 90: TypeInt 32 1 + 91: TypePointer Function 90(int) + 93: 90(int) Constant 4294967295 + 100: 90(int) Constant 3 + 103: 90(int) Constant 2 + 109: 90(int) Constant 1 + 115: 90(int) Constant 0 + 139: 6(float) Constant 0 + 146: 71(int) Constant 2 + 147: TypeArray 6(float) 146 + 148: TypePointer Function 147 + 175: TypePointer Input 7(fvec4) + 176(input): 175(ptr) Variable Input + 178: TypePointer Output 7(fvec4) +179(@entryPointOutput): 178(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 174(input): 8(ptr) Variable Function + 180(param): 8(ptr) Variable Function + 177: 7(fvec4) Load 176(input) + Store 174(input) 177 + 181: 7(fvec4) Load 174(input) + Store 180(param) 181 + 182: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 180(param) + Store 179(@entryPointOutput) 182 + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 92(ii): 91(ptr) Variable Function + 111(ii): 73(ptr) Variable Function + 114(first): 91(ptr) Variable Function + 116(second): 91(ptr) Variable Function + 124(i): 91(ptr) Variable Function + 125(count): 91(ptr) Variable Function + 138(first): 73(ptr) Variable Function + 149(second): 148(ptr) Variable Function + 157(third): 73(ptr) Variable Function + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 14 + 14: Label + Branch 16 + 16: Label + Branch 13 + 15: Label + 17: 7(fvec4) Load 10(input) + 19: 7(fvec4) CompositeConstruct 18 18 18 18 + 20: 7(fvec4) FAdd 17 19 + Store 10(input) 20 + Branch 21 + 21: Label + LoopMerge 23 24 None + Branch 22 + 22: Label + Branch 24 + 24: Label + Branch 21 + 23: Label + Branch 25 + 25: Label + LoopMerge 27 28 Unroll + Branch 29 + 29: Label + 30: 7(fvec4) Load 10(input) + 31: 7(fvec4) Load 10(input) + 34: 33(bvec4) FOrdNotEqual 30 31 + 35: 32(bool) Any 34 + BranchConditional 35 26 27 + 26: Label + Branch 28 + 28: Label + Branch 25 + 27: Label + Branch 36 + 36: Label + LoopMerge 38 39 None + Branch 40 + 40: Label + 41: 7(fvec4) Load 10(input) + 42: 7(fvec4) Load 10(input) + 43: 33(bvec4) FOrdNotEqual 41 42 + 44: 32(bool) Any 43 + BranchConditional 44 37 38 + 37: Label + 45: 7(fvec4) Load 10(input) + 46: 7(fvec4) FNegate 45 + ReturnValue 46 + 39: Label + Branch 36 + 38: Label + 48: 7(fvec4) Load 10(input) + 49: 7(fvec4) CompositeConstruct 18 18 18 18 + 50: 7(fvec4) FSub 48 49 + Store 10(input) 50 + Branch 51 + 51: Label + LoopMerge 53 54 None + Branch 55 + 55: Label + 56: 7(fvec4) Load 10(input) + 57: 7(fvec4) Load 10(input) + 58: 33(bvec4) FOrdNotEqual 56 57 + 59: 32(bool) Any 58 + BranchConditional 59 52 53 + 52: Label + 60: 7(fvec4) Load 10(input) + 61: 7(fvec4) FNegate 60 + ReturnValue 61 + 54: Label + 64: 7(fvec4) Load 10(input) + 65: 7(fvec4) CompositeConstruct 63 63 63 63 + 66: 7(fvec4) FAdd 64 65 + Store 10(input) 66 + Branch 51 + 53: Label + Branch 67 + 67: Label + LoopMerge 69 70 None + Branch 68 + 68: Label + 74: 73(ptr) AccessChain 10(input) 72 + 75: 6(float) Load 74 + 76: 32(bool) FOrdGreaterThan 75 63 + SelectionMerge 78 None + BranchConditional 76 77 78 + 77: Label + Branch 69 + 78: Label + Branch 70 + 70: Label + Branch 67 + 69: Label + Branch 80 + 80: Label + LoopMerge 82 83 None + Branch 81 + 81: Label + 84: 73(ptr) AccessChain 10(input) 72 + 85: 6(float) Load 84 + 86: 32(bool) FOrdGreaterThan 85 63 + SelectionMerge 88 None + BranchConditional 86 87 88 + 87: Label + Branch 83 + 88: Label + Branch 83 + 83: Label + Branch 80 + 82: Label + Store 92(ii) 93 + Branch 94 + 94: Label + LoopMerge 96 97 None + Branch 98 + 98: Label + 99: 90(int) Load 92(ii) + 101: 32(bool) SLessThan 99 100 + BranchConditional 101 95 96 + 95: Label + 102: 90(int) Load 92(ii) + 104: 32(bool) IEqual 102 103 + SelectionMerge 106 None + BranchConditional 104 105 106 + 105: Label + Branch 97 + 106: Label + Branch 97 + 97: Label + 108: 90(int) Load 92(ii) + 110: 90(int) IAdd 108 109 + Store 92(ii) 110 + Branch 94 + 96: Label + 112: 6(float) Load 111(ii) + 113: 6(float) FSub 112 18 + Store 111(ii) 113 + Store 114(first) 115 + Store 116(second) 109 + Branch 117 + 117: Label + LoopMerge 119 120 None + Branch 118 + 118: Label + 121: 90(int) Load 114(first) + 122: 90(int) Load 116(second) + 123: 90(int) IAdd 121 122 + Branch 120 + 120: Label + Branch 117 + 119: Label + Store 124(i) 115 + 126: 6(float) Load 111(ii) + 127: 90(int) ConvertFToS 126 + Store 125(count) 127 + Branch 128 + 128: Label + LoopMerge 130 131 None + Branch 132 + 132: Label + 133: 90(int) Load 124(i) + 134: 90(int) Load 125(count) + 135: 32(bool) SLessThan 133 134 + BranchConditional 135 129 130 + 129: Label + Branch 131 + 131: Label + 136: 90(int) Load 124(i) + 137: 90(int) IAdd 136 109 + Store 124(i) 137 + Branch 128 + 130: Label + Store 138(first) 139 + Branch 140 + 140: Label + LoopMerge 142 143 None + Branch 144 + 144: Label + 145: 6(float) Load 138(first) + 150: 73(ptr) AccessChain 149(second) 115 + 151: 6(float) Load 150 + 152: 32(bool) FOrdLessThan 145 151 + BranchConditional 152 141 142 + 141: Label + 153: 6(float) Load 138(first) + 154: 73(ptr) AccessChain 149(second) 109 + 155: 6(float) Load 154 + 156: 6(float) FAdd 153 155 + 158: 6(float) Load 157(third) + 159: 6(float) FAdd 156 158 + Branch 143 + 143: Label + 160: 73(ptr) AccessChain 149(second) 109 + 161: 6(float) Load 160 + 162: 6(float) FAdd 161 18 + Store 160 162 + Branch 140 + 142: Label + 163: 6(float) Load 111(ii) + 164: 6(float) FSub 163 18 + Store 111(ii) 164 + 165: 6(float) Load 111(ii) + 166: 6(float) FSub 165 18 + Store 111(ii) 166 + 167: 6(float) Load 111(ii) + 168: 6(float) FSub 167 18 + Store 111(ii) 168 + Branch 169 + 169: Label + LoopMerge 171 172 None + Branch 170 + 170: Label + Branch 172 + 172: Label + Branch 169 + 171: Label + 173: 7(fvec4) Undef + ReturnValue 173 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.frag.out new file mode 100644 index 0000000000..b0e6e4df00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.frag.out @@ -0,0 +1,161 @@ +hlsl.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:2 move second child to first child (temp float) +0:2 'AmbientIntensity' (temp float) +0:2 Constant: +0:2 0.100000 +0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Parameters: +0:5 'input' (in 4-component vector of float) +0:? Sequence +0:6 Branch: Return with expression +0:6 add (temp 4-component vector of float) +0:6 vector-scale (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 'AmbientIntensity' (temp float) +0:6 'AmbientColor' (temp 4-component vector of float) +0:7 Branch: Return with expression +0:7 add (temp 4-component vector of float) +0:7 component-wise multiply (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 component-wise multiply (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:8 Branch: Return with expression +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:9 Branch: Return with expression +0:9 component-wise multiply (temp 4-component vector of float) +0:9 Pre-Increment (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 Pre-Decrement (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:10 Branch: Return with expression +0:10 add (temp 4-component vector of float) +0:10 Post-Increment (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) +0:10 Pre-Increment (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) +0:11 Branch: Return with expression +0:11 sine (global 4-component vector of float) +0:11 'input' (in 4-component vector of float) +0:? Linker Objects +0:? 'AmbientColor' (temp 4-component vector of float) +0:? 'AmbientIntensity' (temp float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:1 move second child to first child (temp 4-component vector of float) +0:1 'AmbientColor' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:2 move second child to first child (temp float) +0:2 'AmbientIntensity' (temp float) +0:2 Constant: +0:2 0.100000 +0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Parameters: +0:5 'input' (in 4-component vector of float) +0:? Sequence +0:6 Branch: Return with expression +0:6 add (temp 4-component vector of float) +0:6 vector-scale (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 'AmbientIntensity' (temp float) +0:6 'AmbientColor' (temp 4-component vector of float) +0:7 Branch: Return with expression +0:7 add (temp 4-component vector of float) +0:7 component-wise multiply (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 component-wise multiply (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:8 Branch: Return with expression +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:9 Branch: Return with expression +0:9 component-wise multiply (temp 4-component vector of float) +0:9 Pre-Increment (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 Pre-Decrement (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:10 Branch: Return with expression +0:10 add (temp 4-component vector of float) +0:10 Post-Increment (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) +0:10 Pre-Increment (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) +0:11 Branch: Return with expression +0:11 sine (global 4-component vector of float) +0:11 'input' (in 4-component vector of float) +0:? Linker Objects +0:? 'AmbientColor' (temp 4-component vector of float) +0:? 'AmbientIntensity' (temp float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 58 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 9 "input" + Name 12 "AmbientIntensity" + Name 16 "AmbientColor" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input + 11: TypePointer Function 6(float) + 15: TypePointer Function 7(fvec4) + 37: 6(float) Constant 1065353216 +4(PixelShaderFunction): 2 Function None 3 + 5: Label +12(AmbientIntensity): 11(ptr) Variable Function +16(AmbientColor): 15(ptr) Variable Function + 10: 7(fvec4) Load 9(input) + 13: 6(float) Load 12(AmbientIntensity) + 14: 7(fvec4) VectorTimesScalar 10 13 + 17: 7(fvec4) Load 16(AmbientColor) + 18: 7(fvec4) FAdd 14 17 + ReturnValue 18 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.fraggeom.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.fraggeom.frag.out new file mode 100644 index 0000000000..af3564d196 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.fraggeom.frag.out @@ -0,0 +1,112 @@ +hlsl.fraggeom.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41; ( temp void) +0:9 Function Parameters: +0:9 'IN' ( in structure{ temp 4-component vector of float pos}) +0:9 'OutputStream' ( out structure{ temp 4-component vector of float pos}) +0:? Sequence +0:10 Constant: +0:10 0.000000 +0:11 Constant: +0:11 0.000000 +0:15 Function Definition: @main( ( temp 4-component vector of float) +0:15 Function Parameters: +0:? Sequence +0:16 Branch: Return with expression +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41; ( temp void) +0:9 Function Parameters: +0:9 'IN' ( in structure{ temp 4-component vector of float pos}) +0:9 'OutputStream' ( out structure{ temp 4-component vector of float pos}) +0:? Sequence +0:10 Constant: +0:10 0.000000 +0:11 Constant: +0:11 0.000000 +0:15 Function Definition: @main( ( temp 4-component vector of float) +0:15 Function Parameters: +0:? Sequence +0:16 Branch: Return with expression +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 23 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "myVertex" + MemberName 8(myVertex) 0 "pos" + Name 13 "GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41;" + Name 11 "IN" + Name 12 "OutputStream" + Name 16 "@main(" + Name 23 "@entryPointOutput" + Decorate 23(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(myVertex): TypeStruct 7(fvec4) + 9: TypePointer Function 8(myVertex) + 10: TypeFunction 2 9(ptr) 9(ptr) + 15: TypeFunction 7(fvec4) + 18: 6(float) Constant 0 + 19: 7(fvec4) ConstantComposite 18 18 18 18 + 22: TypePointer Output 7(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 24: 7(fvec4) FunctionCall 16(@main() + Store 23(@entryPointOutput) 24 + Return + FunctionEnd +13(GS_Draw(struct-myVertex-vf41;struct-myVertex-vf41;): 2 Function None 10 + 11(IN): 9(ptr) FunctionParameter +12(OutputStream): 9(ptr) FunctionParameter + 14: Label + Return + FunctionEnd + 16(@main(): 7(fvec4) Function None 15 + 17: Label + ReturnValue 19 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.function.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.function.frag.out new file mode 100644 index 0000000000..00b882d829 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.function.frag.out @@ -0,0 +1,119 @@ +hlsl.function.frag +ERROR: 0:24: 'fun1' : unknown variable +ERROR: 0:24: 'return' : type does not match, or is not convertible to, the function's return type +ERROR: 2 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: fun0( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:7 Function Definition: fun2(vf4; ( temp uint) +0:7 Function Parameters: +0:7 'col' ( in 4-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 Constant: +0:8 7 (const uint) +0:12 Function Definition: fun4(u1;u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'id1' ( in uint) +0:12 'id2' ( in uint) +0:? Sequence +0:13 Branch: Return with expression +0:13 Construct vec4 ( temp 4-component vector of float) +0:13 Convert uint to float ( temp float) +0:13 component-wise multiply ( temp uint) +0:13 'id1' ( in uint) +0:13 'id2' ( in uint) +0:17 Function Definition: fun1(i1; ( temp 4-component vector of float) +0:17 Function Parameters: +0:17 'index' ( in int) +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp uint) +0:18 'entityId' ( temp uint) +0:18 Function Call: fun2(vf4; ( temp uint) +0:18 Function Call: fun0( ( temp 4-component vector of float) +0:19 Branch: Return with expression +0:19 Function Call: fun4(u1;u1; ( temp 4-component vector of float) +0:19 'entityId' ( temp uint) +0:19 'entityId' ( temp uint) +0:23 Function Definition: @main( ( temp int) +0:23 Function Parameters: +0:23 Function Definition: main( ( temp void) +0:23 Function Parameters: +0:? Sequence +0:23 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:23 Function Call: @main( ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: fun0( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:7 Function Definition: fun2(vf4; ( temp uint) +0:7 Function Parameters: +0:7 'col' ( in 4-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 Constant: +0:8 7 (const uint) +0:12 Function Definition: fun4(u1;u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'id1' ( in uint) +0:12 'id2' ( in uint) +0:? Sequence +0:13 Branch: Return with expression +0:13 Construct vec4 ( temp 4-component vector of float) +0:13 Convert uint to float ( temp float) +0:13 component-wise multiply ( temp uint) +0:13 'id1' ( in uint) +0:13 'id2' ( in uint) +0:17 Function Definition: fun1(i1; ( temp 4-component vector of float) +0:17 Function Parameters: +0:17 'index' ( in int) +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp uint) +0:18 'entityId' ( temp uint) +0:18 Function Call: fun2(vf4; ( temp uint) +0:18 Function Call: fun0( ( temp 4-component vector of float) +0:19 Branch: Return with expression +0:19 Function Call: fun4(u1;u1; ( temp 4-component vector of float) +0:19 'entityId' ( temp uint) +0:19 'entityId' ( temp uint) +0:23 Function Definition: @main( ( temp int) +0:23 Function Parameters: +0:23 Function Definition: main( ( temp void) +0:23 Function Parameters: +0:? Sequence +0:23 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:23 Function Call: @main( ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out new file mode 100644 index 0000000000..be4606a2b2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -0,0 +1,453 @@ +hlsl.gather.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:29 'txval20' ( temp 4-component vector of float) +0:29 textureGather ( temp 4-component vector of float) +0:29 Construct combined texture-sampler ( temp sampler2DArray) +0:29 'g_tTex2df4a' ( uniform texture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of int) +0:30 'txval21' ( temp 4-component vector of int) +0:30 textureGather ( temp 4-component vector of int) +0:30 Construct combined texture-sampler ( temp isampler2DArray) +0:30 'g_tTex2di4a' ( uniform itexture2DArray) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of uint) +0:31 'txval22' ( temp 4-component vector of uint) +0:31 textureGather ( temp 4-component vector of uint) +0:31 Construct combined texture-sampler ( temp usampler2DArray) +0:31 'g_tTex2du4a' ( uniform utexture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 textureGather ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4a' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 textureGather ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 textureGather ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:29 'txval20' ( temp 4-component vector of float) +0:29 textureGather ( temp 4-component vector of float) +0:29 Construct combined texture-sampler ( temp sampler2DArray) +0:29 'g_tTex2df4a' ( uniform texture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of int) +0:30 'txval21' ( temp 4-component vector of int) +0:30 textureGather ( temp 4-component vector of int) +0:30 Construct combined texture-sampler ( temp isampler2DArray) +0:30 'g_tTex2di4a' ( uniform itexture2DArray) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of uint) +0:31 'txval22' ( temp 4-component vector of uint) +0:31 textureGather ( temp 4-component vector of uint) +0:31 Construct combined texture-sampler ( temp usampler2DArray) +0:31 'g_tTex2du4a' ( uniform utexture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 textureGather ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4a' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 textureGather ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 textureGather ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 124 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 107 111 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval20" + Name 16 "g_tTex2df4a" + Name 20 "g_sSamp" + Name 34 "txval21" + Name 37 "g_tTex2di4a" + Name 49 "txval22" + Name 52 "g_tTex2du4a" + Name 61 "txval40" + Name 64 "g_tTexcdf4a" + Name 71 "txval41" + Name 74 "g_tTexcdi4a" + Name 81 "txval42" + Name 84 "g_tTexcdu4a" + Name 95 "psout" + Name 104 "flattenTemp" + Name 107 "@entryPointOutput.Color" + Name 111 "@entryPointOutput.Depth" + Name 116 "g_tTex1df4a" + Name 117 "g_tTex1df4" + Name 120 "g_tTex1di4a" + Name 123 "g_tTex1du4a" + Decorate 16(g_tTex2df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 37(g_tTex2di4a) DescriptorSet 0 + Decorate 52(g_tTex2du4a) DescriptorSet 0 + Decorate 64(g_tTexcdf4a) DescriptorSet 0 + Decorate 74(g_tTexcdi4a) DescriptorSet 0 + Decorate 84(g_tTexcdu4a) DescriptorSet 0 + Decorate 107(@entryPointOutput.Color) Location 0 + Decorate 111(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 116(g_tTex1df4a) DescriptorSet 0 + Decorate 116(g_tTex1df4a) Binding 1 + Decorate 117(g_tTex1df4) DescriptorSet 0 + Decorate 117(g_tTex1df4) Binding 0 + Decorate 120(g_tTex1di4a) DescriptorSet 0 + Decorate 123(g_tTex1du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 3 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 6(float) Constant 1050253722 + 28: 24(fvec3) ConstantComposite 25 26 27 + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 32: TypeVector 29(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 29(int) 2D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4a): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 42: 6(float) Constant 1053609165 + 43: 6(float) Constant 1056964608 + 44: 24(fvec3) ConstantComposite 27 42 43 + 46: TypeInt 32 0 + 47: TypeVector 46(int) 4 + 48: TypePointer Function 47(ivec4) + 50: TypeImage 46(int) 2D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2du4a): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: 6(float) Constant 1058642330 + 58: 6(float) Constant 1060320051 + 59: 24(fvec3) ConstantComposite 43 57 58 + 62: TypeImage 6(float) Cube array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTexcdf4a): 63(ptr) Variable UniformConstant + 67: TypeSampledImage 62 + 69: 7(fvec4) ConstantComposite 25 26 27 42 + 72: TypeImage 29(int) Cube array sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTexcdi4a): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 7(fvec4) ConstantComposite 42 43 57 58 + 82: TypeImage 46(int) Cube array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTexcdu4a): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: 6(float) Constant 1061997773 + 90: 6(float) Constant 1063675494 + 91: 6(float) Constant 1065353216 + 92: 7(fvec4) ConstantComposite 58 89 90 91 + 94: TypePointer Function 8(PS_OUTPUT) + 96: 7(fvec4) ConstantComposite 91 91 91 91 + 98: 29(int) Constant 1 + 99: TypePointer Function 6(float) + 106: TypePointer Output 7(fvec4) +107(@entryPointOutput.Color): 106(ptr) Variable Output + 110: TypePointer Output 6(float) +111(@entryPointOutput.Depth): 110(ptr) Variable Output + 114: TypeImage 6(float) 1D array sampled format:Unknown + 115: TypePointer UniformConstant 114 +116(g_tTex1df4a): 115(ptr) Variable UniformConstant + 117(g_tTex1df4): 115(ptr) Variable UniformConstant + 118: TypeImage 29(int) 1D array sampled format:Unknown + 119: TypePointer UniformConstant 118 +120(g_tTex1di4a): 119(ptr) Variable UniformConstant + 121: TypeImage 46(int) 1D array sampled format:Unknown + 122: TypePointer UniformConstant 121 +123(g_tTex1du4a): 122(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +104(flattenTemp): 94(ptr) Variable Function + 105:8(PS_OUTPUT) FunctionCall 10(@main() + Store 104(flattenTemp) 105 + 108: 12(ptr) AccessChain 104(flattenTemp) 30 + 109: 7(fvec4) Load 108 + Store 107(@entryPointOutput.Color) 109 + 112: 99(ptr) AccessChain 104(flattenTemp) 98 + 113: 6(float) Load 112 + Store 111(@entryPointOutput.Depth) 113 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval20): 12(ptr) Variable Function + 34(txval21): 33(ptr) Variable Function + 49(txval22): 48(ptr) Variable Function + 61(txval40): 12(ptr) Variable Function + 71(txval41): 33(ptr) Variable Function + 81(txval42): 48(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 31: 7(fvec4) ImageGather 23 28 30 + Store 13(txval20) 31 + 38: 35 Load 37(g_tTex2di4a) + 39: 18 Load 20(g_sSamp) + 41: 40 SampledImage 38 39 + 45: 32(ivec4) ImageGather 41 44 30 + Store 34(txval21) 45 + 53: 50 Load 52(g_tTex2du4a) + 54: 18 Load 20(g_sSamp) + 56: 55 SampledImage 53 54 + 60: 47(ivec4) ImageGather 56 59 30 + Store 49(txval22) 60 + 65: 62 Load 64(g_tTexcdf4a) + 66: 18 Load 20(g_sSamp) + 68: 67 SampledImage 65 66 + 70: 7(fvec4) ImageGather 68 69 30 + Store 61(txval40) 70 + 75: 72 Load 74(g_tTexcdi4a) + 76: 18 Load 20(g_sSamp) + 78: 77 SampledImage 75 76 + 80: 32(ivec4) ImageGather 78 79 30 + Store 71(txval41) 80 + 85: 82 Load 84(g_tTexcdu4a) + 86: 18 Load 20(g_sSamp) + 88: 87 SampledImage 85 86 + 93: 47(ivec4) ImageGather 88 92 30 + Store 81(txval42) 93 + 97: 12(ptr) AccessChain 95(psout) 30 + Store 97 96 + 100: 99(ptr) AccessChain 95(psout) 98 + Store 100 91 + 101:8(PS_OUTPUT) Load 95(psout) + ReturnValue 101 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out new file mode 100644 index 0000000000..8182ddebbf --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -0,0 +1,467 @@ +hlsl.gather.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Parameters: +0:? Sequence +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'txval20' ( temp 4-component vector of float) +0:34 textureGather ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df4' ( uniform texture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of int) +0:35 'txval21' ( temp 4-component vector of int) +0:35 textureGather ( temp 4-component vector of int) +0:35 Construct combined texture-sampler ( temp isampler2D) +0:35 'g_tTex2di4' ( uniform itexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of uint) +0:36 'txval22' ( temp 4-component vector of uint) +0:36 textureGather ( temp 4-component vector of uint) +0:36 Construct combined texture-sampler ( temp usampler2D) +0:36 'g_tTex2du4' ( uniform utexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'txval40' ( temp 4-component vector of float) +0:40 textureGather ( temp 4-component vector of float) +0:40 Construct combined texture-sampler ( temp samplerCube) +0:40 'g_tTexcdf4' ( uniform textureCube) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of int) +0:41 'txval41' ( temp 4-component vector of int) +0:41 textureGather ( temp 4-component vector of int) +0:41 Construct combined texture-sampler ( temp isamplerCube) +0:41 'g_tTexcdi4' ( uniform itextureCube) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of uint) +0:42 'txval42' ( temp 4-component vector of uint) +0:42 textureGather ( temp 4-component vector of uint) +0:42 Construct combined texture-sampler ( temp usamplerCube) +0:42 'g_tTexcdu4' ( uniform utextureCube) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 move second child to first child ( temp 4-component vector of float) +0:44 Color: direct index for structure ( temp 4-component vector of float) +0:44 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 +0:45 move second child to first child ( temp float) +0:45 Depth: direct index for structure ( temp float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 1 (const int) +0:45 Constant: +0:45 1.000000 +0:47 Branch: Return with expression +0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:29 Color: direct index for structure ( temp 4-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:29 Depth: direct index for structure ( temp float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Parameters: +0:? Sequence +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'txval20' ( temp 4-component vector of float) +0:34 textureGather ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df4' ( uniform texture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of int) +0:35 'txval21' ( temp 4-component vector of int) +0:35 textureGather ( temp 4-component vector of int) +0:35 Construct combined texture-sampler ( temp isampler2D) +0:35 'g_tTex2di4' ( uniform itexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of uint) +0:36 'txval22' ( temp 4-component vector of uint) +0:36 textureGather ( temp 4-component vector of uint) +0:36 Construct combined texture-sampler ( temp usampler2D) +0:36 'g_tTex2du4' ( uniform utexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'txval40' ( temp 4-component vector of float) +0:40 textureGather ( temp 4-component vector of float) +0:40 Construct combined texture-sampler ( temp samplerCube) +0:40 'g_tTexcdf4' ( uniform textureCube) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of int) +0:41 'txval41' ( temp 4-component vector of int) +0:41 textureGather ( temp 4-component vector of int) +0:41 Construct combined texture-sampler ( temp isamplerCube) +0:41 'g_tTexcdi4' ( uniform itextureCube) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of uint) +0:42 'txval42' ( temp 4-component vector of uint) +0:42 textureGather ( temp 4-component vector of uint) +0:42 Construct combined texture-sampler ( temp usamplerCube) +0:42 'g_tTexcdu4' ( uniform utextureCube) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 move second child to first child ( temp 4-component vector of float) +0:44 Color: direct index for structure ( temp 4-component vector of float) +0:44 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 +0:45 move second child to first child ( temp float) +0:45 Depth: direct index for structure ( temp float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 1 (const int) +0:45 Constant: +0:45 1.000000 +0:47 Branch: Return with expression +0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:29 Color: direct index for structure ( temp 4-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:29 Depth: direct index for structure ( temp float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 135 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 108 112 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval20" + Name 16 "g_tTex2df4" + Name 20 "g_sSamp" + Name 33 "txval21" + Name 36 "g_tTex2di4" + Name 48 "txval22" + Name 51 "g_tTex2du4" + Name 60 "txval40" + Name 63 "g_tTexcdf4" + Name 71 "txval41" + Name 74 "g_tTexcdi4" + Name 81 "txval42" + Name 84 "g_tTexcdu4" + Name 95 "psout" + Name 105 "flattenTemp" + Name 108 "@entryPointOutput.Color" + Name 112 "@entryPointOutput.Depth" + Name 115 "g_sSamp2d" + Name 118 "g_tTex1df4a" + Name 119 "g_tTex1df4" + Name 122 "g_tTex1di4" + Name 125 "g_tTex1du4" + Name 128 "g_tTex3df4" + Name 131 "g_tTex3di4" + Name 134 "g_tTex3du4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 63(g_tTexcdf4) DescriptorSet 0 + Decorate 74(g_tTexcdi4) DescriptorSet 0 + Decorate 84(g_tTexcdu4) DescriptorSet 0 + Decorate 108(@entryPointOutput.Color) Location 0 + Decorate 112(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 115(g_sSamp2d) DescriptorSet 0 + Decorate 118(g_tTex1df4a) DescriptorSet 0 + Decorate 118(g_tTex1df4a) Binding 1 + Decorate 119(g_tTex1df4) DescriptorSet 0 + Decorate 119(g_tTex1df4) Binding 0 + Decorate 122(g_tTex1di4) DescriptorSet 0 + Decorate 125(g_tTex1du4) DescriptorSet 0 + Decorate 128(g_tTex3df4) DescriptorSet 0 + Decorate 131(g_tTex3di4) DescriptorSet 0 + Decorate 134(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 31: TypeVector 28(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 28(int) 2D sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1050253722 + 42: 6(float) Constant 1053609165 + 43: 24(fvec2) ConstantComposite 41 42 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 6(float) Constant 1056964608 + 57: 6(float) Constant 1058642330 + 58: 24(fvec2) ConstantComposite 56 57 + 61: TypeImage 6(float) Cube sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTexcdf4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: TypeVector 6(float) 3 + 69: 68(fvec3) ConstantComposite 25 26 41 + 72: TypeImage 28(int) Cube sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTexcdi4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 68(fvec3) ConstantComposite 42 56 57 + 82: TypeImage 45(int) Cube sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTexcdu4): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: 6(float) Constant 1060320051 + 90: 6(float) Constant 1061997773 + 91: 6(float) Constant 1063675494 + 92: 68(fvec3) ConstantComposite 89 90 91 + 94: TypePointer Function 8(PS_OUTPUT) + 96: 6(float) Constant 1065353216 + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 99: 28(int) Constant 1 + 100: TypePointer Function 6(float) + 107: TypePointer Output 7(fvec4) +108(@entryPointOutput.Color): 107(ptr) Variable Output + 111: TypePointer Output 6(float) +112(@entryPointOutput.Depth): 111(ptr) Variable Output + 115(g_sSamp2d): 19(ptr) Variable UniformConstant + 116: TypeImage 6(float) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 +118(g_tTex1df4a): 117(ptr) Variable UniformConstant + 119(g_tTex1df4): 117(ptr) Variable UniformConstant + 120: TypeImage 28(int) 1D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex1di4): 121(ptr) Variable UniformConstant + 123: TypeImage 45(int) 1D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex1du4): 124(ptr) Variable UniformConstant + 126: TypeImage 6(float) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3df4): 127(ptr) Variable UniformConstant + 129: TypeImage 28(int) 3D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex3di4): 130(ptr) Variable UniformConstant + 132: TypeImage 45(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3du4): 133(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +105(flattenTemp): 94(ptr) Variable Function + 106:8(PS_OUTPUT) FunctionCall 10(@main() + Store 105(flattenTemp) 106 + 109: 12(ptr) AccessChain 105(flattenTemp) 29 + 110: 7(fvec4) Load 109 + Store 108(@entryPointOutput.Color) 110 + 113: 100(ptr) AccessChain 105(flattenTemp) 99 + 114: 6(float) Load 113 + Store 112(@entryPointOutput.Depth) 114 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval20): 12(ptr) Variable Function + 33(txval21): 32(ptr) Variable Function + 48(txval22): 47(ptr) Variable Function + 60(txval40): 12(ptr) Variable Function + 71(txval41): 32(ptr) Variable Function + 81(txval42): 47(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 7(fvec4) ImageGather 23 27 29 + Store 13(txval20) 30 + 37: 34 Load 36(g_tTex2di4) + 38: 18 Load 20(g_sSamp) + 40: 39 SampledImage 37 38 + 44: 31(ivec4) ImageGather 40 43 29 + Store 33(txval21) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 18 Load 20(g_sSamp) + 55: 54 SampledImage 52 53 + 59: 46(ivec4) ImageGather 55 58 29 + Store 48(txval22) 59 + 64: 61 Load 63(g_tTexcdf4) + 65: 18 Load 20(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 7(fvec4) ImageGather 67 69 29 + Store 60(txval40) 70 + 75: 72 Load 74(g_tTexcdi4) + 76: 18 Load 20(g_sSamp) + 78: 77 SampledImage 75 76 + 80: 31(ivec4) ImageGather 78 79 29 + Store 71(txval41) 80 + 85: 82 Load 84(g_tTexcdu4) + 86: 18 Load 20(g_sSamp) + 88: 87 SampledImage 85 86 + 93: 46(ivec4) ImageGather 88 92 29 + Store 81(txval42) 93 + 98: 12(ptr) AccessChain 95(psout) 29 + Store 98 97 + 101: 100(ptr) AccessChain 95(psout) 99 + Store 101 96 + 102:8(PS_OUTPUT) Load 95(psout) + ReturnValue 102 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out new file mode 100644 index 0000000000..fe5611495b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -0,0 +1,411 @@ +hlsl.gather.basic.dx10.vert +Shader version: 500 +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'txval20' ( temp 4-component vector of float) +0:33 textureGather ( temp 4-component vector of float) +0:33 Construct combined texture-sampler ( temp sampler2D) +0:33 'g_tTex2df4' ( uniform texture2D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of int) +0:34 'txval21' ( temp 4-component vector of int) +0:34 textureGather ( temp 4-component vector of int) +0:34 Construct combined texture-sampler ( temp isampler2D) +0:34 'g_tTex2di4' ( uniform itexture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of uint) +0:35 'txval22' ( temp 4-component vector of uint) +0:35 textureGather ( temp 4-component vector of uint) +0:35 Construct combined texture-sampler ( temp usampler2D) +0:35 'g_tTex2du4' ( uniform utexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval40' ( temp 4-component vector of float) +0:39 textureGather ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp samplerCube) +0:39 'g_tTexcdf4' ( uniform textureCube) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval41' ( temp 4-component vector of int) +0:40 textureGather ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isamplerCube) +0:40 'g_tTexcdi4' ( uniform itextureCube) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval42' ( temp 4-component vector of uint) +0:41 textureGather ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usamplerCube) +0:41 'g_tTexcdu4' ( uniform utextureCube) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:43 move second child to first child ( temp 4-component vector of float) +0:43 Pos: direct index for structure ( temp 4-component vector of float) +0:43 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:43 Constant: +0:43 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:45 Branch: Return with expression +0:45 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:28 Pos: direct index for structure ( temp 4-component vector of float) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:28 Constant: +0:28 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'txval20' ( temp 4-component vector of float) +0:33 textureGather ( temp 4-component vector of float) +0:33 Construct combined texture-sampler ( temp sampler2D) +0:33 'g_tTex2df4' ( uniform texture2D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of int) +0:34 'txval21' ( temp 4-component vector of int) +0:34 textureGather ( temp 4-component vector of int) +0:34 Construct combined texture-sampler ( temp isampler2D) +0:34 'g_tTex2di4' ( uniform itexture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of uint) +0:35 'txval22' ( temp 4-component vector of uint) +0:35 textureGather ( temp 4-component vector of uint) +0:35 Construct combined texture-sampler ( temp usampler2D) +0:35 'g_tTex2du4' ( uniform utexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval40' ( temp 4-component vector of float) +0:39 textureGather ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp samplerCube) +0:39 'g_tTexcdf4' ( uniform textureCube) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval41' ( temp 4-component vector of int) +0:40 textureGather ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isamplerCube) +0:40 'g_tTexcdi4' ( uniform itextureCube) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval42' ( temp 4-component vector of uint) +0:41 textureGather ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usamplerCube) +0:41 'g_tTexcdu4' ( uniform utextureCube) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:43 move second child to first child ( temp 4-component vector of float) +0:43 Pos: direct index for structure ( temp 4-component vector of float) +0:43 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:43 Constant: +0:43 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:45 Branch: Return with expression +0:45 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:28 Pos: direct index for structure ( temp 4-component vector of float) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:28 Constant: +0:28 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 126 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 103 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Pos" + Name 10 "@main(" + Name 13 "txval20" + Name 16 "g_tTex2df4" + Name 20 "g_sSamp" + Name 33 "txval21" + Name 36 "g_tTex2di4" + Name 48 "txval22" + Name 51 "g_tTex2du4" + Name 60 "txval40" + Name 63 "g_tTexcdf4" + Name 71 "txval41" + Name 74 "g_tTexcdi4" + Name 81 "txval42" + Name 84 "g_tTexcdu4" + Name 95 "vsout" + Name 103 "@entryPointOutput.Pos" + Name 106 "g_sSamp2d" + Name 109 "g_tTex1df4a" + Name 110 "g_tTex1df4" + Name 113 "g_tTex1di4" + Name 116 "g_tTex1du4" + Name 119 "g_tTex3df4" + Name 122 "g_tTex3di4" + Name 125 "g_tTex3du4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 63(g_tTexcdf4) DescriptorSet 0 + Decorate 74(g_tTexcdi4) DescriptorSet 0 + Decorate 84(g_tTexcdu4) DescriptorSet 0 + Decorate 103(@entryPointOutput.Pos) BuiltIn Position + Decorate 106(g_sSamp2d) DescriptorSet 0 + Decorate 109(g_tTex1df4a) DescriptorSet 0 + Decorate 109(g_tTex1df4a) Binding 1 + Decorate 110(g_tTex1df4) DescriptorSet 0 + Decorate 110(g_tTex1df4) Binding 0 + Decorate 113(g_tTex1di4) DescriptorSet 0 + Decorate 116(g_tTex1du4) DescriptorSet 0 + Decorate 119(g_tTex3df4) DescriptorSet 0 + Decorate 122(g_tTex3di4) DescriptorSet 0 + Decorate 125(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(VS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 31: TypeVector 28(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 28(int) 2D sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1050253722 + 42: 6(float) Constant 1053609165 + 43: 24(fvec2) ConstantComposite 41 42 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 6(float) Constant 1056964608 + 57: 6(float) Constant 1058642330 + 58: 24(fvec2) ConstantComposite 56 57 + 61: TypeImage 6(float) Cube sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTexcdf4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: TypeVector 6(float) 3 + 69: 68(fvec3) ConstantComposite 25 26 41 + 72: TypeImage 28(int) Cube sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTexcdi4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 68(fvec3) ConstantComposite 42 56 57 + 82: TypeImage 45(int) Cube sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTexcdu4): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: 6(float) Constant 1060320051 + 90: 6(float) Constant 1061997773 + 91: 6(float) Constant 1063675494 + 92: 68(fvec3) ConstantComposite 89 90 91 + 94: TypePointer Function 8(VS_OUTPUT) + 96: 6(float) Constant 0 + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 102: TypePointer Output 7(fvec4) +103(@entryPointOutput.Pos): 102(ptr) Variable Output + 106(g_sSamp2d): 19(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D sampled format:Unknown + 108: TypePointer UniformConstant 107 +109(g_tTex1df4a): 108(ptr) Variable UniformConstant + 110(g_tTex1df4): 108(ptr) Variable UniformConstant + 111: TypeImage 28(int) 1D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex1di4): 112(ptr) Variable UniformConstant + 114: TypeImage 45(int) 1D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex1du4): 115(ptr) Variable UniformConstant + 117: TypeImage 6(float) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3df4): 118(ptr) Variable UniformConstant + 120: TypeImage 28(int) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3di4): 121(ptr) Variable UniformConstant + 123: TypeImage 45(int) 3D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex3du4): 124(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 104:8(VS_OUTPUT) FunctionCall 10(@main() + 105: 7(fvec4) CompositeExtract 104 0 + Store 103(@entryPointOutput.Pos) 105 + Return + FunctionEnd + 10(@main():8(VS_OUTPUT) Function None 9 + 11: Label + 13(txval20): 12(ptr) Variable Function + 33(txval21): 32(ptr) Variable Function + 48(txval22): 47(ptr) Variable Function + 60(txval40): 12(ptr) Variable Function + 71(txval41): 32(ptr) Variable Function + 81(txval42): 47(ptr) Variable Function + 95(vsout): 94(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 7(fvec4) ImageGather 23 27 29 + Store 13(txval20) 30 + 37: 34 Load 36(g_tTex2di4) + 38: 18 Load 20(g_sSamp) + 40: 39 SampledImage 37 38 + 44: 31(ivec4) ImageGather 40 43 29 + Store 33(txval21) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 18 Load 20(g_sSamp) + 55: 54 SampledImage 52 53 + 59: 46(ivec4) ImageGather 55 58 29 + Store 48(txval22) 59 + 64: 61 Load 63(g_tTexcdf4) + 65: 18 Load 20(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 7(fvec4) ImageGather 67 69 29 + Store 60(txval40) 70 + 75: 72 Load 74(g_tTexcdi4) + 76: 18 Load 20(g_sSamp) + 78: 77 SampledImage 75 76 + 80: 31(ivec4) ImageGather 78 79 29 + Store 71(txval41) 80 + 85: 82 Load 84(g_tTexcdu4) + 86: 18 Load 20(g_sSamp) + 88: 87 SampledImage 85 86 + 93: 46(ivec4) ImageGather 88 92 29 + Store 81(txval42) 93 + 98: 12(ptr) AccessChain 95(vsout) 29 + Store 98 97 + 99:8(VS_OUTPUT) Load 95(vsout) + ReturnValue 99 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out new file mode 100644 index 0000000000..ae816ddd82 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -0,0 +1,388 @@ +hlsl.gather.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'txval20' ( temp 4-component vector of float) +0:33 textureGatherOffset ( temp 4-component vector of float) +0:33 Construct combined texture-sampler ( temp sampler2D) +0:33 'g_tTex2df4' ( uniform texture2D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of int) +0:34 'txval21' ( temp 4-component vector of int) +0:34 textureGatherOffset ( temp 4-component vector of int) +0:34 Construct combined texture-sampler ( temp isampler2D) +0:34 'g_tTex2di4' ( uniform itexture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of uint) +0:35 'txval22' ( temp 4-component vector of uint) +0:35 textureGatherOffset ( temp 4-component vector of uint) +0:35 Construct combined texture-sampler ( temp usampler2D) +0:35 'g_tTex2du4' ( uniform utexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:41 move second child to first child ( temp float) +0:41 Depth: direct index for structure ( temp float) +0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'txval20' ( temp 4-component vector of float) +0:33 textureGatherOffset ( temp 4-component vector of float) +0:33 Construct combined texture-sampler ( temp sampler2D) +0:33 'g_tTex2df4' ( uniform texture2D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of int) +0:34 'txval21' ( temp 4-component vector of int) +0:34 textureGatherOffset ( temp 4-component vector of int) +0:34 Construct combined texture-sampler ( temp isampler2D) +0:34 'g_tTex2di4' ( uniform itexture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of uint) +0:35 'txval22' ( temp 4-component vector of uint) +0:35 textureGatherOffset ( temp 4-component vector of uint) +0:35 Construct combined texture-sampler ( temp usampler2D) +0:35 'g_tTex2du4' ( uniform utexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:41 move second child to first child ( temp float) +0:41 Depth: direct index for structure ( temp float) +0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 114 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 79 83 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval20" + Name 16 "g_tTex2df4" + Name 20 "g_sSamp" + Name 36 "txval21" + Name 39 "g_tTex2di4" + Name 52 "txval22" + Name 55 "g_tTex2du4" + Name 67 "psout" + Name 76 "flattenTemp" + Name 79 "@entryPointOutput.Color" + Name 83 "@entryPointOutput.Depth" + Name 88 "g_tTex1df4a" + Name 89 "g_tTex1df4" + Name 92 "g_tTex1di4" + Name 95 "g_tTex1du4" + Name 98 "g_tTex3df4" + Name 101 "g_tTex3di4" + Name 104 "g_tTex3du4" + Name 107 "g_tTexcdf4" + Name 110 "g_tTexcdi4" + Name 113 "g_tTexcdu4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 39(g_tTex2di4) DescriptorSet 0 + Decorate 55(g_tTex2du4) DescriptorSet 0 + Decorate 79(@entryPointOutput.Color) Location 0 + Decorate 83(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 88(g_tTex1df4a) DescriptorSet 0 + Decorate 88(g_tTex1df4a) Binding 1 + Decorate 89(g_tTex1df4) DescriptorSet 0 + Decorate 89(g_tTex1df4) Binding 0 + Decorate 92(g_tTex1di4) DescriptorSet 0 + Decorate 95(g_tTex1du4) DescriptorSet 0 + Decorate 98(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 104(g_tTex3du4) DescriptorSet 0 + Decorate 107(g_tTexcdf4) DescriptorSet 0 + Decorate 110(g_tTexcdi4) DescriptorSet 0 + Decorate 113(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: TypeInt 32 1 + 29: TypeVector 28(int) 2 + 30: 28(int) Constant 1 + 31: 28(int) Constant 0 + 32: 29(ivec2) ConstantComposite 30 31 + 34: TypeVector 28(int) 4 + 35: TypePointer Function 34(ivec4) + 37: TypeImage 28(int) 2D sampled format:Unknown + 38: TypePointer UniformConstant 37 + 39(g_tTex2di4): 38(ptr) Variable UniformConstant + 42: TypeSampledImage 37 + 44: 6(float) Constant 1050253722 + 45: 6(float) Constant 1053609165 + 46: 24(fvec2) ConstantComposite 44 45 + 47: 29(ivec2) ConstantComposite 30 30 + 49: TypeInt 32 0 + 50: TypeVector 49(int) 4 + 51: TypePointer Function 50(ivec4) + 53: TypeImage 49(int) 2D sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2du4): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 60: 6(float) Constant 1056964608 + 61: 6(float) Constant 1058642330 + 62: 24(fvec2) ConstantComposite 60 61 + 63: 28(int) Constant 4294967295 + 64: 29(ivec2) ConstantComposite 30 63 + 66: TypePointer Function 8(PS_OUTPUT) + 68: 6(float) Constant 1065353216 + 69: 7(fvec4) ConstantComposite 68 68 68 68 + 71: TypePointer Function 6(float) + 78: TypePointer Output 7(fvec4) +79(@entryPointOutput.Color): 78(ptr) Variable Output + 82: TypePointer Output 6(float) +83(@entryPointOutput.Depth): 82(ptr) Variable Output + 86: TypeImage 6(float) 1D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex1df4a): 87(ptr) Variable UniformConstant + 89(g_tTex1df4): 87(ptr) Variable UniformConstant + 90: TypeImage 28(int) 1D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex1di4): 91(ptr) Variable UniformConstant + 93: TypeImage 49(int) 1D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex1du4): 94(ptr) Variable UniformConstant + 96: TypeImage 6(float) 3D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex3df4): 97(ptr) Variable UniformConstant + 99: TypeImage 28(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 102: TypeImage 49(int) 3D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex3du4): 103(ptr) Variable UniformConstant + 105: TypeImage 6(float) Cube sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdf4): 106(ptr) Variable UniformConstant + 108: TypeImage 28(int) Cube sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTexcdi4): 109(ptr) Variable UniformConstant + 111: TypeImage 49(int) Cube sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTexcdu4): 112(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 76(flattenTemp): 66(ptr) Variable Function + 77:8(PS_OUTPUT) FunctionCall 10(@main() + Store 76(flattenTemp) 77 + 80: 12(ptr) AccessChain 76(flattenTemp) 31 + 81: 7(fvec4) Load 80 + Store 79(@entryPointOutput.Color) 81 + 84: 71(ptr) AccessChain 76(flattenTemp) 30 + 85: 6(float) Load 84 + Store 83(@entryPointOutput.Depth) 85 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval20): 12(ptr) Variable Function + 36(txval21): 35(ptr) Variable Function + 52(txval22): 51(ptr) Variable Function + 67(psout): 66(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 33: 7(fvec4) ImageGather 23 27 31 ConstOffset 32 + Store 13(txval20) 33 + 40: 37 Load 39(g_tTex2di4) + 41: 18 Load 20(g_sSamp) + 43: 42 SampledImage 40 41 + 48: 34(ivec4) ImageGather 43 46 31 ConstOffset 47 + Store 36(txval21) 48 + 56: 53 Load 55(g_tTex2du4) + 57: 18 Load 20(g_sSamp) + 59: 58 SampledImage 56 57 + 65: 50(ivec4) ImageGather 59 62 31 ConstOffset 64 + Store 52(txval22) 65 + 70: 12(ptr) AccessChain 67(psout) 31 + Store 70 69 + 72: 71(ptr) AccessChain 67(psout) 30 + Store 72 68 + 73:8(PS_OUTPUT) Load 67(psout) + ReturnValue 73 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..8805232137 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -0,0 +1,353 @@ +hlsl.gather.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'txval20' ( temp 4-component vector of float) +0:25 textureGatherOffset ( temp 4-component vector of float) +0:25 Construct combined texture-sampler ( temp sampler2DArray) +0:25 'g_tTex2df4' ( uniform texture2DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:26 Sequence +0:26 move second child to first child ( temp 4-component vector of int) +0:26 'txval21' ( temp 4-component vector of int) +0:26 textureGatherOffset ( temp 4-component vector of int) +0:26 Construct combined texture-sampler ( temp isampler2DArray) +0:26 'g_tTex2di4' ( uniform itexture2DArray) +0:26 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of uint) +0:27 'txval22' ( temp 4-component vector of uint) +0:27 textureGatherOffset ( temp 4-component vector of uint) +0:27 Construct combined texture-sampler ( temp usampler2DArray) +0:27 'g_tTex2du4' ( uniform utexture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:32 move second child to first child ( temp 4-component vector of float) +0:32 Color: direct index for structure ( temp 4-component vector of float) +0:32 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:33 move second child to first child ( temp float) +0:33 Depth: direct index for structure ( temp float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.000000 +0:35 Branch: Return with expression +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'txval20' ( temp 4-component vector of float) +0:25 textureGatherOffset ( temp 4-component vector of float) +0:25 Construct combined texture-sampler ( temp sampler2DArray) +0:25 'g_tTex2df4' ( uniform texture2DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:26 Sequence +0:26 move second child to first child ( temp 4-component vector of int) +0:26 'txval21' ( temp 4-component vector of int) +0:26 textureGatherOffset ( temp 4-component vector of int) +0:26 Construct combined texture-sampler ( temp isampler2DArray) +0:26 'g_tTex2di4' ( uniform itexture2DArray) +0:26 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of uint) +0:27 'txval22' ( temp 4-component vector of uint) +0:27 textureGatherOffset ( temp 4-component vector of uint) +0:27 Construct combined texture-sampler ( temp usampler2DArray) +0:27 'g_tTex2du4' ( uniform utexture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:32 move second child to first child ( temp 4-component vector of float) +0:32 Color: direct index for structure ( temp 4-component vector of float) +0:32 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:33 move second child to first child ( temp float) +0:33 Depth: direct index for structure ( temp float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.000000 +0:35 Branch: Return with expression +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 97 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 80 84 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval20" + Name 16 "g_tTex2df4" + Name 20 "g_sSamp" + Name 37 "txval21" + Name 40 "g_tTex2di4" + Name 52 "txval22" + Name 55 "g_tTex2du4" + Name 68 "psout" + Name 77 "flattenTemp" + Name 80 "@entryPointOutput.Color" + Name 84 "@entryPointOutput.Depth" + Name 89 "g_tTex1df4a" + Name 90 "g_tTex1df4" + Name 93 "g_tTex1di4" + Name 96 "g_tTex1du4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 40(g_tTex2di4) DescriptorSet 0 + Decorate 55(g_tTex2du4) DescriptorSet 0 + Decorate 80(@entryPointOutput.Color) Location 0 + Decorate 84(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 89(g_tTex1df4a) DescriptorSet 0 + Decorate 89(g_tTex1df4a) Binding 1 + Decorate 90(g_tTex1df4) DescriptorSet 0 + Decorate 90(g_tTex1df4) Binding 0 + Decorate 93(g_tTex1di4) DescriptorSet 0 + Decorate 96(g_tTex1du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 3 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 6(float) Constant 1050253722 + 28: 24(fvec3) ConstantComposite 25 26 27 + 29: TypeInt 32 1 + 30: TypeVector 29(int) 2 + 31: 29(int) Constant 1 + 32: 29(int) Constant 0 + 33: 30(ivec2) ConstantComposite 31 32 + 35: TypeVector 29(int) 4 + 36: TypePointer Function 35(ivec4) + 38: TypeImage 29(int) 2D array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex2di4): 39(ptr) Variable UniformConstant + 43: TypeSampledImage 38 + 45: 6(float) Constant 1053609165 + 46: 24(fvec3) ConstantComposite 27 45 45 + 47: 30(ivec2) ConstantComposite 31 31 + 49: TypeInt 32 0 + 50: TypeVector 49(int) 4 + 51: TypePointer Function 50(ivec4) + 53: TypeImage 49(int) 2D array sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2du4): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 60: 6(float) Constant 1056964608 + 61: 6(float) Constant 1058642330 + 62: 6(float) Constant 1060320051 + 63: 24(fvec3) ConstantComposite 60 61 62 + 64: 29(int) Constant 4294967295 + 65: 30(ivec2) ConstantComposite 31 64 + 67: TypePointer Function 8(PS_OUTPUT) + 69: 6(float) Constant 1065353216 + 70: 7(fvec4) ConstantComposite 69 69 69 69 + 72: TypePointer Function 6(float) + 79: TypePointer Output 7(fvec4) +80(@entryPointOutput.Color): 79(ptr) Variable Output + 83: TypePointer Output 6(float) +84(@entryPointOutput.Depth): 83(ptr) Variable Output + 87: TypeImage 6(float) 1D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex1df4a): 88(ptr) Variable UniformConstant + 90(g_tTex1df4): 88(ptr) Variable UniformConstant + 91: TypeImage 29(int) 1D array sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex1di4): 92(ptr) Variable UniformConstant + 94: TypeImage 49(int) 1D array sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex1du4): 95(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(flattenTemp): 67(ptr) Variable Function + 78:8(PS_OUTPUT) FunctionCall 10(@main() + Store 77(flattenTemp) 78 + 81: 12(ptr) AccessChain 77(flattenTemp) 32 + 82: 7(fvec4) Load 81 + Store 80(@entryPointOutput.Color) 82 + 85: 72(ptr) AccessChain 77(flattenTemp) 31 + 86: 6(float) Load 85 + Store 84(@entryPointOutput.Depth) 86 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval20): 12(ptr) Variable Function + 37(txval21): 36(ptr) Variable Function + 52(txval22): 51(ptr) Variable Function + 68(psout): 67(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 34: 7(fvec4) ImageGather 23 28 32 ConstOffset 33 + Store 13(txval20) 34 + 41: 38 Load 40(g_tTex2di4) + 42: 18 Load 20(g_sSamp) + 44: 43 SampledImage 41 42 + 48: 35(ivec4) ImageGather 44 46 32 ConstOffset 47 + Store 37(txval21) 48 + 56: 53 Load 55(g_tTex2du4) + 57: 18 Load 20(g_sSamp) + 59: 58 SampledImage 56 57 + 66: 50(ivec4) ImageGather 59 63 32 ConstOffset 65 + Store 52(txval22) 66 + 71: 12(ptr) AccessChain 68(psout) 32 + Store 71 70 + 73: 72(ptr) AccessChain 68(psout) 31 + Store 73 69 + 74:8(PS_OUTPUT) Load 68(psout) + ReturnValue 74 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out new file mode 100644 index 0000000000..35b0a003c8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -0,0 +1,1119 @@ +hlsl.gatherRGBA.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'txval00' ( temp 4-component vector of float) +0:33 textureGather ( temp 4-component vector of float) +0:33 Construct combined texture-sampler ( temp sampler2DArray) +0:33 'g_tTex2df4a' ( uniform texture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 c3: direct index for structure ( uniform 3-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of int) +0:34 'txval01' ( temp 4-component vector of int) +0:34 textureGather ( temp 4-component vector of int) +0:34 Construct combined texture-sampler ( temp isampler2DArray) +0:34 'g_tTex2di4a' ( uniform itexture2DArray) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:34 c3: direct index for structure ( uniform 3-component vector of float) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 0 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of uint) +0:35 'txval02' ( temp 4-component vector of uint) +0:35 textureGather ( temp 4-component vector of uint) +0:35 Construct combined texture-sampler ( temp usampler2DArray) +0:35 'g_tTex2du4a' ( uniform utexture2DArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:35 c3: direct index for structure ( uniform 3-component vector of float) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) +0:35 Constant: +0:35 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'txval10' ( temp 4-component vector of float) +0:37 textureGather ( temp 4-component vector of float) +0:37 Construct combined texture-sampler ( temp sampler2DArray) +0:37 'g_tTex2df4a' ( uniform texture2DArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:37 c3: direct index for structure ( uniform 3-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of int) +0:38 'txval11' ( temp 4-component vector of int) +0:38 textureGather ( temp 4-component vector of int) +0:38 Construct combined texture-sampler ( temp isampler2DArray) +0:38 'g_tTex2di4a' ( uniform itexture2DArray) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:38 c3: direct index for structure ( uniform 3-component vector of float) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) +0:38 Constant: +0:38 1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of uint) +0:39 'txval12' ( temp 4-component vector of uint) +0:39 textureGather ( temp 4-component vector of uint) +0:39 Construct combined texture-sampler ( temp usampler2DArray) +0:39 'g_tTex2du4a' ( uniform utexture2DArray) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:39 c3: direct index for structure ( uniform 3-component vector of float) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) +0:39 Constant: +0:39 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of float) +0:41 'txval20' ( temp 4-component vector of float) +0:41 textureGather ( temp 4-component vector of float) +0:41 Construct combined texture-sampler ( temp sampler2DArray) +0:41 'g_tTex2df4a' ( uniform texture2DArray) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:41 c3: direct index for structure ( uniform 3-component vector of float) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) +0:41 Constant: +0:41 2 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of int) +0:42 'txval21' ( temp 4-component vector of int) +0:42 textureGather ( temp 4-component vector of int) +0:42 Construct combined texture-sampler ( temp isampler2DArray) +0:42 'g_tTex2di4a' ( uniform itexture2DArray) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 c3: direct index for structure ( uniform 3-component vector of float) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of uint) +0:43 'txval22' ( temp 4-component vector of uint) +0:43 textureGather ( temp 4-component vector of uint) +0:43 Construct combined texture-sampler ( temp usampler2DArray) +0:43 'g_tTex2du4a' ( uniform utexture2DArray) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 c3: direct index for structure ( uniform 3-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 2 (const int) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 'txval30' ( temp 4-component vector of float) +0:45 textureGather ( temp 4-component vector of float) +0:45 Construct combined texture-sampler ( temp sampler2DArray) +0:45 'g_tTex2df4a' ( uniform texture2DArray) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:45 c3: direct index for structure ( uniform 3-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Constant: +0:45 3 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'txval31' ( temp 4-component vector of int) +0:46 textureGather ( temp 4-component vector of int) +0:46 Construct combined texture-sampler ( temp isampler2DArray) +0:46 'g_tTex2di4a' ( uniform itexture2DArray) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:46 c3: direct index for structure ( uniform 3-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Constant: +0:46 3 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 'txval32' ( temp 4-component vector of uint) +0:47 textureGather ( temp 4-component vector of uint) +0:47 Construct combined texture-sampler ( temp usampler2DArray) +0:47 'g_tTex2du4a' ( uniform utexture2DArray) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 c3: direct index for structure ( uniform 3-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'txval40' ( temp 4-component vector of float) +0:51 textureGather ( temp 4-component vector of float) +0:51 Construct combined texture-sampler ( temp samplerCubeArray) +0:51 'g_tTexcdf4a' ( uniform textureCubeArray) +0:51 'g_sSamp' (layout( binding=0) uniform sampler) +0:51 c4: direct index for structure ( uniform 4-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'txval41' ( temp 4-component vector of int) +0:52 textureGather ( temp 4-component vector of int) +0:52 Construct combined texture-sampler ( temp isamplerCubeArray) +0:52 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 c4: direct index for structure ( uniform 4-component vector of float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of uint) +0:53 'txval42' ( temp 4-component vector of uint) +0:53 textureGather ( temp 4-component vector of uint) +0:53 Construct combined texture-sampler ( temp usamplerCubeArray) +0:53 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 c4: direct index for structure ( uniform 4-component vector of float) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) +0:53 Constant: +0:53 0 (const int) +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of float) +0:55 'txval50' ( temp 4-component vector of float) +0:55 textureGather ( temp 4-component vector of float) +0:55 Construct combined texture-sampler ( temp samplerCubeArray) +0:55 'g_tTexcdf4a' ( uniform textureCubeArray) +0:55 'g_sSamp' (layout( binding=0) uniform sampler) +0:55 c4: direct index for structure ( uniform 4-component vector of float) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) +0:55 Constant: +0:55 1 (const int) +0:56 Sequence +0:56 move second child to first child ( temp 4-component vector of int) +0:56 'txval51' ( temp 4-component vector of int) +0:56 textureGather ( temp 4-component vector of int) +0:56 Construct combined texture-sampler ( temp isamplerCubeArray) +0:56 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:56 'g_sSamp' (layout( binding=0) uniform sampler) +0:56 c4: direct index for structure ( uniform 4-component vector of float) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of uint) +0:57 'txval52' ( temp 4-component vector of uint) +0:57 textureGather ( temp 4-component vector of uint) +0:57 Construct combined texture-sampler ( temp usamplerCubeArray) +0:57 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:57 'g_sSamp' (layout( binding=0) uniform sampler) +0:57 c4: direct index for structure ( uniform 4-component vector of float) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 1 (const int) +0:59 Sequence +0:59 move second child to first child ( temp 4-component vector of float) +0:59 'txval60' ( temp 4-component vector of float) +0:59 textureGather ( temp 4-component vector of float) +0:59 Construct combined texture-sampler ( temp samplerCubeArray) +0:59 'g_tTexcdf4a' ( uniform textureCubeArray) +0:59 'g_sSamp' (layout( binding=0) uniform sampler) +0:59 c4: direct index for structure ( uniform 4-component vector of float) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 2 (const int) +0:60 Sequence +0:60 move second child to first child ( temp 4-component vector of int) +0:60 'txval61' ( temp 4-component vector of int) +0:60 textureGather ( temp 4-component vector of int) +0:60 Construct combined texture-sampler ( temp isamplerCubeArray) +0:60 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:60 'g_sSamp' (layout( binding=0) uniform sampler) +0:60 c4: direct index for structure ( uniform 4-component vector of float) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) +0:60 Constant: +0:60 2 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of uint) +0:61 'txval62' ( temp 4-component vector of uint) +0:61 textureGather ( temp 4-component vector of uint) +0:61 Construct combined texture-sampler ( temp usamplerCubeArray) +0:61 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:61 'g_sSamp' (layout( binding=0) uniform sampler) +0:61 c4: direct index for structure ( uniform 4-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 2 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of float) +0:63 'txval70' ( temp 4-component vector of float) +0:63 textureGather ( temp 4-component vector of float) +0:63 Construct combined texture-sampler ( temp samplerCubeArray) +0:63 'g_tTexcdf4a' ( uniform textureCubeArray) +0:63 'g_sSamp' (layout( binding=0) uniform sampler) +0:63 c4: direct index for structure ( uniform 4-component vector of float) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 Sequence +0:64 move second child to first child ( temp 4-component vector of int) +0:64 'txval71' ( temp 4-component vector of int) +0:64 textureGather ( temp 4-component vector of int) +0:64 Construct combined texture-sampler ( temp isamplerCubeArray) +0:64 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:64 'g_sSamp' (layout( binding=0) uniform sampler) +0:64 c4: direct index for structure ( uniform 4-component vector of float) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:65 Sequence +0:65 move second child to first child ( temp 4-component vector of uint) +0:65 'txval72' ( temp 4-component vector of uint) +0:65 textureGather ( temp 4-component vector of uint) +0:65 Construct combined texture-sampler ( temp usamplerCubeArray) +0:65 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:65 'g_sSamp' (layout( binding=0) uniform sampler) +0:65 c4: direct index for structure ( uniform 4-component vector of float) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) +0:65 Constant: +0:65 3 (const int) +0:67 move second child to first child ( temp 4-component vector of float) +0:67 Color: direct index for structure ( temp 4-component vector of float) +0:67 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:68 move second child to first child ( temp float) +0:68 Depth: direct index for structure ( temp float) +0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'txval00' ( temp 4-component vector of float) +0:33 textureGather ( temp 4-component vector of float) +0:33 Construct combined texture-sampler ( temp sampler2DArray) +0:33 'g_tTex2df4a' ( uniform texture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 c3: direct index for structure ( uniform 3-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of int) +0:34 'txval01' ( temp 4-component vector of int) +0:34 textureGather ( temp 4-component vector of int) +0:34 Construct combined texture-sampler ( temp isampler2DArray) +0:34 'g_tTex2di4a' ( uniform itexture2DArray) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:34 c3: direct index for structure ( uniform 3-component vector of float) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 0 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of uint) +0:35 'txval02' ( temp 4-component vector of uint) +0:35 textureGather ( temp 4-component vector of uint) +0:35 Construct combined texture-sampler ( temp usampler2DArray) +0:35 'g_tTex2du4a' ( uniform utexture2DArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:35 c3: direct index for structure ( uniform 3-component vector of float) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) +0:35 Constant: +0:35 0 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'txval10' ( temp 4-component vector of float) +0:37 textureGather ( temp 4-component vector of float) +0:37 Construct combined texture-sampler ( temp sampler2DArray) +0:37 'g_tTex2df4a' ( uniform texture2DArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:37 c3: direct index for structure ( uniform 3-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of int) +0:38 'txval11' ( temp 4-component vector of int) +0:38 textureGather ( temp 4-component vector of int) +0:38 Construct combined texture-sampler ( temp isampler2DArray) +0:38 'g_tTex2di4a' ( uniform itexture2DArray) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:38 c3: direct index for structure ( uniform 3-component vector of float) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) +0:38 Constant: +0:38 1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of uint) +0:39 'txval12' ( temp 4-component vector of uint) +0:39 textureGather ( temp 4-component vector of uint) +0:39 Construct combined texture-sampler ( temp usampler2DArray) +0:39 'g_tTex2du4a' ( uniform utexture2DArray) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:39 c3: direct index for structure ( uniform 3-component vector of float) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) +0:39 Constant: +0:39 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of float) +0:41 'txval20' ( temp 4-component vector of float) +0:41 textureGather ( temp 4-component vector of float) +0:41 Construct combined texture-sampler ( temp sampler2DArray) +0:41 'g_tTex2df4a' ( uniform texture2DArray) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:41 c3: direct index for structure ( uniform 3-component vector of float) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) +0:41 Constant: +0:41 2 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of int) +0:42 'txval21' ( temp 4-component vector of int) +0:42 textureGather ( temp 4-component vector of int) +0:42 Construct combined texture-sampler ( temp isampler2DArray) +0:42 'g_tTex2di4a' ( uniform itexture2DArray) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 c3: direct index for structure ( uniform 3-component vector of float) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of uint) +0:43 'txval22' ( temp 4-component vector of uint) +0:43 textureGather ( temp 4-component vector of uint) +0:43 Construct combined texture-sampler ( temp usampler2DArray) +0:43 'g_tTex2du4a' ( uniform utexture2DArray) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 c3: direct index for structure ( uniform 3-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 2 (const int) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 'txval30' ( temp 4-component vector of float) +0:45 textureGather ( temp 4-component vector of float) +0:45 Construct combined texture-sampler ( temp sampler2DArray) +0:45 'g_tTex2df4a' ( uniform texture2DArray) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:45 c3: direct index for structure ( uniform 3-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Constant: +0:45 3 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'txval31' ( temp 4-component vector of int) +0:46 textureGather ( temp 4-component vector of int) +0:46 Construct combined texture-sampler ( temp isampler2DArray) +0:46 'g_tTex2di4a' ( uniform itexture2DArray) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:46 c3: direct index for structure ( uniform 3-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Constant: +0:46 3 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 'txval32' ( temp 4-component vector of uint) +0:47 textureGather ( temp 4-component vector of uint) +0:47 Construct combined texture-sampler ( temp usampler2DArray) +0:47 'g_tTex2du4a' ( uniform utexture2DArray) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 c3: direct index for structure ( uniform 3-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'txval40' ( temp 4-component vector of float) +0:51 textureGather ( temp 4-component vector of float) +0:51 Construct combined texture-sampler ( temp samplerCubeArray) +0:51 'g_tTexcdf4a' ( uniform textureCubeArray) +0:51 'g_sSamp' (layout( binding=0) uniform sampler) +0:51 c4: direct index for structure ( uniform 4-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'txval41' ( temp 4-component vector of int) +0:52 textureGather ( temp 4-component vector of int) +0:52 Construct combined texture-sampler ( temp isamplerCubeArray) +0:52 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 c4: direct index for structure ( uniform 4-component vector of float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of uint) +0:53 'txval42' ( temp 4-component vector of uint) +0:53 textureGather ( temp 4-component vector of uint) +0:53 Construct combined texture-sampler ( temp usamplerCubeArray) +0:53 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 c4: direct index for structure ( uniform 4-component vector of float) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) +0:53 Constant: +0:53 0 (const int) +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of float) +0:55 'txval50' ( temp 4-component vector of float) +0:55 textureGather ( temp 4-component vector of float) +0:55 Construct combined texture-sampler ( temp samplerCubeArray) +0:55 'g_tTexcdf4a' ( uniform textureCubeArray) +0:55 'g_sSamp' (layout( binding=0) uniform sampler) +0:55 c4: direct index for structure ( uniform 4-component vector of float) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) +0:55 Constant: +0:55 1 (const int) +0:56 Sequence +0:56 move second child to first child ( temp 4-component vector of int) +0:56 'txval51' ( temp 4-component vector of int) +0:56 textureGather ( temp 4-component vector of int) +0:56 Construct combined texture-sampler ( temp isamplerCubeArray) +0:56 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:56 'g_sSamp' (layout( binding=0) uniform sampler) +0:56 c4: direct index for structure ( uniform 4-component vector of float) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of uint) +0:57 'txval52' ( temp 4-component vector of uint) +0:57 textureGather ( temp 4-component vector of uint) +0:57 Construct combined texture-sampler ( temp usamplerCubeArray) +0:57 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:57 'g_sSamp' (layout( binding=0) uniform sampler) +0:57 c4: direct index for structure ( uniform 4-component vector of float) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 1 (const int) +0:59 Sequence +0:59 move second child to first child ( temp 4-component vector of float) +0:59 'txval60' ( temp 4-component vector of float) +0:59 textureGather ( temp 4-component vector of float) +0:59 Construct combined texture-sampler ( temp samplerCubeArray) +0:59 'g_tTexcdf4a' ( uniform textureCubeArray) +0:59 'g_sSamp' (layout( binding=0) uniform sampler) +0:59 c4: direct index for structure ( uniform 4-component vector of float) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 2 (const int) +0:60 Sequence +0:60 move second child to first child ( temp 4-component vector of int) +0:60 'txval61' ( temp 4-component vector of int) +0:60 textureGather ( temp 4-component vector of int) +0:60 Construct combined texture-sampler ( temp isamplerCubeArray) +0:60 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:60 'g_sSamp' (layout( binding=0) uniform sampler) +0:60 c4: direct index for structure ( uniform 4-component vector of float) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) +0:60 Constant: +0:60 2 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of uint) +0:61 'txval62' ( temp 4-component vector of uint) +0:61 textureGather ( temp 4-component vector of uint) +0:61 Construct combined texture-sampler ( temp usamplerCubeArray) +0:61 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:61 'g_sSamp' (layout( binding=0) uniform sampler) +0:61 c4: direct index for structure ( uniform 4-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 2 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of float) +0:63 'txval70' ( temp 4-component vector of float) +0:63 textureGather ( temp 4-component vector of float) +0:63 Construct combined texture-sampler ( temp samplerCubeArray) +0:63 'g_tTexcdf4a' ( uniform textureCubeArray) +0:63 'g_sSamp' (layout( binding=0) uniform sampler) +0:63 c4: direct index for structure ( uniform 4-component vector of float) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 Sequence +0:64 move second child to first child ( temp 4-component vector of int) +0:64 'txval71' ( temp 4-component vector of int) +0:64 textureGather ( temp 4-component vector of int) +0:64 Construct combined texture-sampler ( temp isamplerCubeArray) +0:64 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:64 'g_sSamp' (layout( binding=0) uniform sampler) +0:64 c4: direct index for structure ( uniform 4-component vector of float) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:65 Sequence +0:65 move second child to first child ( temp 4-component vector of uint) +0:65 'txval72' ( temp 4-component vector of uint) +0:65 textureGather ( temp 4-component vector of uint) +0:65 Construct combined texture-sampler ( temp usamplerCubeArray) +0:65 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:65 'g_sSamp' (layout( binding=0) uniform sampler) +0:65 c4: direct index for structure ( uniform 4-component vector of float) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) +0:65 Constant: +0:65 3 (const int) +0:67 move second child to first child ( temp 4-component vector of float) +0:67 Color: direct index for structure ( temp 4-component vector of float) +0:67 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:68 move second child to first child ( temp float) +0:68 Depth: direct index for structure ( temp float) +0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 255 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 238 242 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval00" + Name 16 "g_tTex2df4a" + Name 20 "g_sSamp" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + Name 28 "" + Name 38 "txval01" + Name 41 "g_tTex2di4a" + Name 52 "txval02" + Name 55 "g_tTex2du4a" + Name 63 "txval10" + Name 71 "txval11" + Name 78 "txval12" + Name 85 "txval20" + Name 92 "txval21" + Name 99 "txval22" + Name 106 "txval30" + Name 114 "txval31" + Name 121 "txval32" + Name 128 "txval40" + Name 131 "g_tTexcdf4a" + Name 140 "txval41" + Name 143 "g_tTexcdi4a" + Name 151 "txval42" + Name 154 "g_tTexcdu4a" + Name 162 "txval50" + Name 169 "txval51" + Name 176 "txval52" + Name 183 "txval60" + Name 190 "txval61" + Name 197 "txval62" + Name 204 "txval70" + Name 211 "txval71" + Name 218 "txval72" + Name 226 "psout" + Name 235 "flattenTemp" + Name 238 "@entryPointOutput.Color" + Name 242 "@entryPointOutput.Depth" + Name 245 "g_sSamp2d" + Name 248 "g_tTex1df4a" + Name 251 "g_tTex1di4a" + Name 254 "g_tTex1du4a" + Decorate 16(g_tTex2df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 41(g_tTex2di4a) DescriptorSet 0 + Decorate 55(g_tTex2du4a) DescriptorSet 0 + Decorate 131(g_tTexcdf4a) DescriptorSet 0 + Decorate 143(g_tTexcdi4a) DescriptorSet 0 + Decorate 154(g_tTexcdu4a) DescriptorSet 0 + Decorate 238(@entryPointOutput.Color) Location 0 + Decorate 242(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 245(g_sSamp2d) DescriptorSet 0 + Decorate 248(g_tTex1df4a) DescriptorSet 0 + Decorate 248(g_tTex1df4a) Binding 0 + Decorate 251(g_tTex1di4a) DescriptorSet 0 + Decorate 254(g_tTex1du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: TypeVector 6(float) 3 + 26($Global): TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 31: TypePointer Uniform 25(fvec3) + 34: 29(int) Constant 0 + 36: TypeVector 29(int) 4 + 37: TypePointer Function 36(ivec4) + 39: TypeImage 29(int) 2D array sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex2di4a): 40(ptr) Variable UniformConstant + 44: TypeSampledImage 39 + 49: TypeInt 32 0 + 50: TypeVector 49(int) 4 + 51: TypePointer Function 50(ivec4) + 53: TypeImage 49(int) 2D array sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2du4a): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 69: 29(int) Constant 1 + 112: 29(int) Constant 3 + 129: TypeImage 6(float) Cube array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTexcdf4a): 130(ptr) Variable UniformConstant + 134: TypeSampledImage 129 + 136: TypePointer Uniform 7(fvec4) + 141: TypeImage 29(int) Cube array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTexcdi4a): 142(ptr) Variable UniformConstant + 146: TypeSampledImage 141 + 152: TypeImage 49(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdu4a): 153(ptr) Variable UniformConstant + 157: TypeSampledImage 152 + 225: TypePointer Function 8(PS_OUTPUT) + 227: 6(float) Constant 1065353216 + 228: 7(fvec4) ConstantComposite 227 227 227 227 + 230: TypePointer Function 6(float) + 237: TypePointer Output 7(fvec4) +238(@entryPointOutput.Color): 237(ptr) Variable Output + 241: TypePointer Output 6(float) +242(@entryPointOutput.Depth): 241(ptr) Variable Output + 245(g_sSamp2d): 19(ptr) Variable UniformConstant + 246: TypeImage 6(float) 1D array sampled format:Unknown + 247: TypePointer UniformConstant 246 +248(g_tTex1df4a): 247(ptr) Variable UniformConstant + 249: TypeImage 29(int) 1D array sampled format:Unknown + 250: TypePointer UniformConstant 249 +251(g_tTex1di4a): 250(ptr) Variable UniformConstant + 252: TypeImage 49(int) 1D array sampled format:Unknown + 253: TypePointer UniformConstant 252 +254(g_tTex1du4a): 253(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +235(flattenTemp): 225(ptr) Variable Function + 236:8(PS_OUTPUT) FunctionCall 10(@main() + Store 235(flattenTemp) 236 + 239: 12(ptr) AccessChain 235(flattenTemp) 34 + 240: 7(fvec4) Load 239 + Store 238(@entryPointOutput.Color) 240 + 243: 230(ptr) AccessChain 235(flattenTemp) 69 + 244: 6(float) Load 243 + Store 242(@entryPointOutput.Depth) 244 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval00): 12(ptr) Variable Function + 38(txval01): 37(ptr) Variable Function + 52(txval02): 51(ptr) Variable Function + 63(txval10): 12(ptr) Variable Function + 71(txval11): 37(ptr) Variable Function + 78(txval12): 51(ptr) Variable Function + 85(txval20): 12(ptr) Variable Function + 92(txval21): 37(ptr) Variable Function + 99(txval22): 51(ptr) Variable Function + 106(txval30): 12(ptr) Variable Function + 114(txval31): 37(ptr) Variable Function + 121(txval32): 51(ptr) Variable Function + 128(txval40): 12(ptr) Variable Function + 140(txval41): 37(ptr) Variable Function + 151(txval42): 51(ptr) Variable Function + 162(txval50): 12(ptr) Variable Function + 169(txval51): 37(ptr) Variable Function + 176(txval52): 51(ptr) Variable Function + 183(txval60): 12(ptr) Variable Function + 190(txval61): 37(ptr) Variable Function + 197(txval62): 51(ptr) Variable Function + 204(txval70): 12(ptr) Variable Function + 211(txval71): 37(ptr) Variable Function + 218(txval72): 51(ptr) Variable Function + 226(psout): 225(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 32: 31(ptr) AccessChain 28 30 + 33: 25(fvec3) Load 32 + 35: 7(fvec4) ImageGather 23 33 34 + Store 13(txval00) 35 + 42: 39 Load 41(g_tTex2di4a) + 43: 18 Load 20(g_sSamp) + 45: 44 SampledImage 42 43 + 46: 31(ptr) AccessChain 28 30 + 47: 25(fvec3) Load 46 + 48: 36(ivec4) ImageGather 45 47 34 + Store 38(txval01) 48 + 56: 53 Load 55(g_tTex2du4a) + 57: 18 Load 20(g_sSamp) + 59: 58 SampledImage 56 57 + 60: 31(ptr) AccessChain 28 30 + 61: 25(fvec3) Load 60 + 62: 50(ivec4) ImageGather 59 61 34 + Store 52(txval02) 62 + 64: 14 Load 16(g_tTex2df4a) + 65: 18 Load 20(g_sSamp) + 66: 22 SampledImage 64 65 + 67: 31(ptr) AccessChain 28 30 + 68: 25(fvec3) Load 67 + 70: 7(fvec4) ImageGather 66 68 69 + Store 63(txval10) 70 + 72: 39 Load 41(g_tTex2di4a) + 73: 18 Load 20(g_sSamp) + 74: 44 SampledImage 72 73 + 75: 31(ptr) AccessChain 28 30 + 76: 25(fvec3) Load 75 + 77: 36(ivec4) ImageGather 74 76 69 + Store 71(txval11) 77 + 79: 53 Load 55(g_tTex2du4a) + 80: 18 Load 20(g_sSamp) + 81: 58 SampledImage 79 80 + 82: 31(ptr) AccessChain 28 30 + 83: 25(fvec3) Load 82 + 84: 50(ivec4) ImageGather 81 83 69 + Store 78(txval12) 84 + 86: 14 Load 16(g_tTex2df4a) + 87: 18 Load 20(g_sSamp) + 88: 22 SampledImage 86 87 + 89: 31(ptr) AccessChain 28 30 + 90: 25(fvec3) Load 89 + 91: 7(fvec4) ImageGather 88 90 30 + Store 85(txval20) 91 + 93: 39 Load 41(g_tTex2di4a) + 94: 18 Load 20(g_sSamp) + 95: 44 SampledImage 93 94 + 96: 31(ptr) AccessChain 28 30 + 97: 25(fvec3) Load 96 + 98: 36(ivec4) ImageGather 95 97 30 + Store 92(txval21) 98 + 100: 53 Load 55(g_tTex2du4a) + 101: 18 Load 20(g_sSamp) + 102: 58 SampledImage 100 101 + 103: 31(ptr) AccessChain 28 30 + 104: 25(fvec3) Load 103 + 105: 50(ivec4) ImageGather 102 104 30 + Store 99(txval22) 105 + 107: 14 Load 16(g_tTex2df4a) + 108: 18 Load 20(g_sSamp) + 109: 22 SampledImage 107 108 + 110: 31(ptr) AccessChain 28 30 + 111: 25(fvec3) Load 110 + 113: 7(fvec4) ImageGather 109 111 112 + Store 106(txval30) 113 + 115: 39 Load 41(g_tTex2di4a) + 116: 18 Load 20(g_sSamp) + 117: 44 SampledImage 115 116 + 118: 31(ptr) AccessChain 28 30 + 119: 25(fvec3) Load 118 + 120: 36(ivec4) ImageGather 117 119 112 + Store 114(txval31) 120 + 122: 53 Load 55(g_tTex2du4a) + 123: 18 Load 20(g_sSamp) + 124: 58 SampledImage 122 123 + 125: 31(ptr) AccessChain 28 30 + 126: 25(fvec3) Load 125 + 127: 50(ivec4) ImageGather 124 126 112 + Store 121(txval32) 127 + 132: 129 Load 131(g_tTexcdf4a) + 133: 18 Load 20(g_sSamp) + 135: 134 SampledImage 132 133 + 137: 136(ptr) AccessChain 28 112 + 138: 7(fvec4) Load 137 + 139: 7(fvec4) ImageGather 135 138 34 + Store 128(txval40) 139 + 144: 141 Load 143(g_tTexcdi4a) + 145: 18 Load 20(g_sSamp) + 147: 146 SampledImage 144 145 + 148: 136(ptr) AccessChain 28 112 + 149: 7(fvec4) Load 148 + 150: 36(ivec4) ImageGather 147 149 34 + Store 140(txval41) 150 + 155: 152 Load 154(g_tTexcdu4a) + 156: 18 Load 20(g_sSamp) + 158: 157 SampledImage 155 156 + 159: 136(ptr) AccessChain 28 112 + 160: 7(fvec4) Load 159 + 161: 50(ivec4) ImageGather 158 160 34 + Store 151(txval42) 161 + 163: 129 Load 131(g_tTexcdf4a) + 164: 18 Load 20(g_sSamp) + 165: 134 SampledImage 163 164 + 166: 136(ptr) AccessChain 28 112 + 167: 7(fvec4) Load 166 + 168: 7(fvec4) ImageGather 165 167 69 + Store 162(txval50) 168 + 170: 141 Load 143(g_tTexcdi4a) + 171: 18 Load 20(g_sSamp) + 172: 146 SampledImage 170 171 + 173: 136(ptr) AccessChain 28 112 + 174: 7(fvec4) Load 173 + 175: 36(ivec4) ImageGather 172 174 69 + Store 169(txval51) 175 + 177: 152 Load 154(g_tTexcdu4a) + 178: 18 Load 20(g_sSamp) + 179: 157 SampledImage 177 178 + 180: 136(ptr) AccessChain 28 112 + 181: 7(fvec4) Load 180 + 182: 50(ivec4) ImageGather 179 181 69 + Store 176(txval52) 182 + 184: 129 Load 131(g_tTexcdf4a) + 185: 18 Load 20(g_sSamp) + 186: 134 SampledImage 184 185 + 187: 136(ptr) AccessChain 28 112 + 188: 7(fvec4) Load 187 + 189: 7(fvec4) ImageGather 186 188 30 + Store 183(txval60) 189 + 191: 141 Load 143(g_tTexcdi4a) + 192: 18 Load 20(g_sSamp) + 193: 146 SampledImage 191 192 + 194: 136(ptr) AccessChain 28 112 + 195: 7(fvec4) Load 194 + 196: 36(ivec4) ImageGather 193 195 30 + Store 190(txval61) 196 + 198: 152 Load 154(g_tTexcdu4a) + 199: 18 Load 20(g_sSamp) + 200: 157 SampledImage 198 199 + 201: 136(ptr) AccessChain 28 112 + 202: 7(fvec4) Load 201 + 203: 50(ivec4) ImageGather 200 202 30 + Store 197(txval62) 203 + 205: 129 Load 131(g_tTexcdf4a) + 206: 18 Load 20(g_sSamp) + 207: 134 SampledImage 205 206 + 208: 136(ptr) AccessChain 28 112 + 209: 7(fvec4) Load 208 + 210: 7(fvec4) ImageGather 207 209 112 + Store 204(txval70) 210 + 212: 141 Load 143(g_tTexcdi4a) + 213: 18 Load 20(g_sSamp) + 214: 146 SampledImage 212 213 + 215: 136(ptr) AccessChain 28 112 + 216: 7(fvec4) Load 215 + 217: 36(ivec4) ImageGather 214 216 112 + Store 211(txval71) 217 + 219: 152 Load 154(g_tTexcdu4a) + 220: 18 Load 20(g_sSamp) + 221: 157 SampledImage 219 220 + 222: 136(ptr) AccessChain 28 112 + 223: 7(fvec4) Load 222 + 224: 50(ivec4) ImageGather 221 223 112 + Store 218(txval72) 224 + 229: 12(ptr) AccessChain 226(psout) 34 + Store 229 228 + 231: 230(ptr) AccessChain 226(psout) 69 + Store 231 227 + 232:8(PS_OUTPUT) Load 226(psout) + ReturnValue 232 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out new file mode 100644 index 0000000000..d0be6d5a2b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -0,0 +1,1145 @@ +hlsl.gatherRGBA.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:34 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval00' ( temp 4-component vector of float) +0:39 textureGather ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler2D) +0:39 'g_tTex2df4' ( uniform texture2D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:39 c2: direct index for structure ( uniform 2-component vector of float) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 0 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval01' ( temp 4-component vector of int) +0:40 textureGather ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler2D) +0:40 'g_tTex2di4' ( uniform itexture2D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:40 c2: direct index for structure ( uniform 2-component vector of float) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval02' ( temp 4-component vector of uint) +0:41 textureGather ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler2D) +0:41 'g_tTex2du4' ( uniform utexture2D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:41 c2: direct index for structure ( uniform 2-component vector of float) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) +0:41 Constant: +0:41 0 (const int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'txval10' ( temp 4-component vector of float) +0:43 textureGather ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp sampler2D) +0:43 'g_tTex2df4' ( uniform texture2D) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 c2: direct index for structure ( uniform 2-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 1 (const int) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of int) +0:44 'txval11' ( temp 4-component vector of int) +0:44 textureGather ( temp 4-component vector of int) +0:44 Construct combined texture-sampler ( temp isampler2D) +0:44 'g_tTex2di4' ( uniform itexture2D) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 c2: direct index for structure ( uniform 2-component vector of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 1 (const int) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of uint) +0:45 'txval12' ( temp 4-component vector of uint) +0:45 textureGather ( temp 4-component vector of uint) +0:45 Construct combined texture-sampler ( temp usampler2D) +0:45 'g_tTex2du4' ( uniform utexture2D) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:45 c2: direct index for structure ( uniform 2-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 1 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of float) +0:47 'txval20' ( temp 4-component vector of float) +0:47 textureGather ( temp 4-component vector of float) +0:47 Construct combined texture-sampler ( temp sampler2D) +0:47 'g_tTex2df4' ( uniform texture2D) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 c2: direct index for structure ( uniform 2-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) +0:47 Constant: +0:47 2 (const int) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of int) +0:48 'txval21' ( temp 4-component vector of int) +0:48 textureGather ( temp 4-component vector of int) +0:48 Construct combined texture-sampler ( temp isampler2D) +0:48 'g_tTex2di4' ( uniform itexture2D) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 c2: direct index for structure ( uniform 2-component vector of float) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) +0:48 Constant: +0:48 2 (const int) +0:49 Sequence +0:49 move second child to first child ( temp 4-component vector of uint) +0:49 'txval22' ( temp 4-component vector of uint) +0:49 textureGather ( temp 4-component vector of uint) +0:49 Construct combined texture-sampler ( temp usampler2D) +0:49 'g_tTex2du4' ( uniform utexture2D) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 c2: direct index for structure ( uniform 2-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) +0:49 Constant: +0:49 2 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'txval30' ( temp 4-component vector of float) +0:51 textureGather ( temp 4-component vector of float) +0:51 Construct combined texture-sampler ( temp sampler2D) +0:51 'g_tTex2df4' ( uniform texture2D) +0:51 'g_sSamp' (layout( binding=0) uniform sampler) +0:51 c2: direct index for structure ( uniform 2-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 3 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'txval31' ( temp 4-component vector of int) +0:52 textureGather ( temp 4-component vector of int) +0:52 Construct combined texture-sampler ( temp isampler2D) +0:52 'g_tTex2di4' ( uniform itexture2D) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 c2: direct index for structure ( uniform 2-component vector of float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 3 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of uint) +0:53 'txval32' ( temp 4-component vector of uint) +0:53 textureGather ( temp 4-component vector of uint) +0:53 Construct combined texture-sampler ( temp usampler2D) +0:53 'g_tTex2du4' ( uniform utexture2D) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 c2: direct index for structure ( uniform 2-component vector of float) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 3 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of float) +0:57 'txval40' ( temp 4-component vector of float) +0:57 textureGather ( temp 4-component vector of float) +0:57 Construct combined texture-sampler ( temp samplerCube) +0:57 'g_tTexcdf4' ( uniform textureCube) +0:57 'g_sSamp' (layout( binding=0) uniform sampler) +0:57 c3: direct index for structure ( uniform 3-component vector of float) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child ( temp 4-component vector of int) +0:58 'txval41' ( temp 4-component vector of int) +0:58 textureGather ( temp 4-component vector of int) +0:58 Construct combined texture-sampler ( temp isamplerCube) +0:58 'g_tTexcdi4' ( uniform itextureCube) +0:58 'g_sSamp' (layout( binding=0) uniform sampler) +0:58 c3: direct index for structure ( uniform 3-component vector of float) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 0 (const int) +0:59 Sequence +0:59 move second child to first child ( temp 4-component vector of uint) +0:59 'txval42' ( temp 4-component vector of uint) +0:59 textureGather ( temp 4-component vector of uint) +0:59 Construct combined texture-sampler ( temp usamplerCube) +0:59 'g_tTexcdu4' ( uniform utextureCube) +0:59 'g_sSamp' (layout( binding=0) uniform sampler) +0:59 c3: direct index for structure ( uniform 3-component vector of float) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 0 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of float) +0:61 'txval50' ( temp 4-component vector of float) +0:61 textureGather ( temp 4-component vector of float) +0:61 Construct combined texture-sampler ( temp samplerCube) +0:61 'g_tTexcdf4' ( uniform textureCube) +0:61 'g_sSamp' (layout( binding=0) uniform sampler) +0:61 c3: direct index for structure ( uniform 3-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of int) +0:62 'txval51' ( temp 4-component vector of int) +0:62 textureGather ( temp 4-component vector of int) +0:62 Construct combined texture-sampler ( temp isamplerCube) +0:62 'g_tTexcdi4' ( uniform itextureCube) +0:62 'g_sSamp' (layout( binding=0) uniform sampler) +0:62 c3: direct index for structure ( uniform 3-component vector of float) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of uint) +0:63 'txval52' ( temp 4-component vector of uint) +0:63 textureGather ( temp 4-component vector of uint) +0:63 Construct combined texture-sampler ( temp usamplerCube) +0:63 'g_tTexcdu4' ( uniform utextureCube) +0:63 'g_sSamp' (layout( binding=0) uniform sampler) +0:63 c3: direct index for structure ( uniform 3-component vector of float) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 1 (const int) +0:65 Sequence +0:65 move second child to first child ( temp 4-component vector of float) +0:65 'txval60' ( temp 4-component vector of float) +0:65 textureGather ( temp 4-component vector of float) +0:65 Construct combined texture-sampler ( temp samplerCube) +0:65 'g_tTexcdf4' ( uniform textureCube) +0:65 'g_sSamp' (layout( binding=0) uniform sampler) +0:65 c3: direct index for structure ( uniform 3-component vector of float) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child ( temp 4-component vector of int) +0:66 'txval61' ( temp 4-component vector of int) +0:66 textureGather ( temp 4-component vector of int) +0:66 Construct combined texture-sampler ( temp isamplerCube) +0:66 'g_tTexcdi4' ( uniform itextureCube) +0:66 'g_sSamp' (layout( binding=0) uniform sampler) +0:66 c3: direct index for structure ( uniform 3-component vector of float) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) +0:66 Constant: +0:66 2 (const int) +0:67 Sequence +0:67 move second child to first child ( temp 4-component vector of uint) +0:67 'txval62' ( temp 4-component vector of uint) +0:67 textureGather ( temp 4-component vector of uint) +0:67 Construct combined texture-sampler ( temp usamplerCube) +0:67 'g_tTexcdu4' ( uniform utextureCube) +0:67 'g_sSamp' (layout( binding=0) uniform sampler) +0:67 c3: direct index for structure ( uniform 3-component vector of float) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) +0:67 Constant: +0:67 2 (const int) +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'txval70' ( temp 4-component vector of float) +0:69 textureGather ( temp 4-component vector of float) +0:69 Construct combined texture-sampler ( temp samplerCube) +0:69 'g_tTexcdf4' ( uniform textureCube) +0:69 'g_sSamp' (layout( binding=0) uniform sampler) +0:69 c3: direct index for structure ( uniform 3-component vector of float) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) +0:69 Constant: +0:69 3 (const int) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of int) +0:70 'txval71' ( temp 4-component vector of int) +0:70 textureGather ( temp 4-component vector of int) +0:70 Construct combined texture-sampler ( temp isamplerCube) +0:70 'g_tTexcdi4' ( uniform itextureCube) +0:70 'g_sSamp' (layout( binding=0) uniform sampler) +0:70 c3: direct index for structure ( uniform 3-component vector of float) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) +0:70 Constant: +0:70 3 (const int) +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of uint) +0:71 'txval72' ( temp 4-component vector of uint) +0:71 textureGather ( temp 4-component vector of uint) +0:71 Construct combined texture-sampler ( temp usamplerCube) +0:71 'g_tTexcdu4' ( uniform utextureCube) +0:71 'g_sSamp' (layout( binding=0) uniform sampler) +0:71 c3: direct index for structure ( uniform 3-component vector of float) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) +0:71 Constant: +0:71 3 (const int) +0:73 move second child to first child ( temp 4-component vector of float) +0:73 Color: direct index for structure ( temp 4-component vector of float) +0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:74 move second child to first child ( temp float) +0:74 Depth: direct index for structure ( temp float) +0:74 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 1.000000 +0:76 Branch: Return with expression +0:76 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Function Definition: main( ( temp void) +0:34 Function Parameters: +0:? Sequence +0:34 Sequence +0:34 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:34 Color: direct index for structure ( temp 4-component vector of float) +0:34 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:34 Depth: direct index for structure ( temp float) +0:34 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:34 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval00' ( temp 4-component vector of float) +0:39 textureGather ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler2D) +0:39 'g_tTex2df4' ( uniform texture2D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:39 c2: direct index for structure ( uniform 2-component vector of float) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 0 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval01' ( temp 4-component vector of int) +0:40 textureGather ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler2D) +0:40 'g_tTex2di4' ( uniform itexture2D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:40 c2: direct index for structure ( uniform 2-component vector of float) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval02' ( temp 4-component vector of uint) +0:41 textureGather ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler2D) +0:41 'g_tTex2du4' ( uniform utexture2D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:41 c2: direct index for structure ( uniform 2-component vector of float) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) +0:41 Constant: +0:41 0 (const int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'txval10' ( temp 4-component vector of float) +0:43 textureGather ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp sampler2D) +0:43 'g_tTex2df4' ( uniform texture2D) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 c2: direct index for structure ( uniform 2-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 1 (const int) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of int) +0:44 'txval11' ( temp 4-component vector of int) +0:44 textureGather ( temp 4-component vector of int) +0:44 Construct combined texture-sampler ( temp isampler2D) +0:44 'g_tTex2di4' ( uniform itexture2D) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 c2: direct index for structure ( uniform 2-component vector of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 1 (const int) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of uint) +0:45 'txval12' ( temp 4-component vector of uint) +0:45 textureGather ( temp 4-component vector of uint) +0:45 Construct combined texture-sampler ( temp usampler2D) +0:45 'g_tTex2du4' ( uniform utexture2D) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:45 c2: direct index for structure ( uniform 2-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 1 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of float) +0:47 'txval20' ( temp 4-component vector of float) +0:47 textureGather ( temp 4-component vector of float) +0:47 Construct combined texture-sampler ( temp sampler2D) +0:47 'g_tTex2df4' ( uniform texture2D) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 c2: direct index for structure ( uniform 2-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) +0:47 Constant: +0:47 2 (const int) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of int) +0:48 'txval21' ( temp 4-component vector of int) +0:48 textureGather ( temp 4-component vector of int) +0:48 Construct combined texture-sampler ( temp isampler2D) +0:48 'g_tTex2di4' ( uniform itexture2D) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 c2: direct index for structure ( uniform 2-component vector of float) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) +0:48 Constant: +0:48 2 (const int) +0:49 Sequence +0:49 move second child to first child ( temp 4-component vector of uint) +0:49 'txval22' ( temp 4-component vector of uint) +0:49 textureGather ( temp 4-component vector of uint) +0:49 Construct combined texture-sampler ( temp usampler2D) +0:49 'g_tTex2du4' ( uniform utexture2D) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 c2: direct index for structure ( uniform 2-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) +0:49 Constant: +0:49 2 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'txval30' ( temp 4-component vector of float) +0:51 textureGather ( temp 4-component vector of float) +0:51 Construct combined texture-sampler ( temp sampler2D) +0:51 'g_tTex2df4' ( uniform texture2D) +0:51 'g_sSamp' (layout( binding=0) uniform sampler) +0:51 c2: direct index for structure ( uniform 2-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 3 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'txval31' ( temp 4-component vector of int) +0:52 textureGather ( temp 4-component vector of int) +0:52 Construct combined texture-sampler ( temp isampler2D) +0:52 'g_tTex2di4' ( uniform itexture2D) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 c2: direct index for structure ( uniform 2-component vector of float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 3 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of uint) +0:53 'txval32' ( temp 4-component vector of uint) +0:53 textureGather ( temp 4-component vector of uint) +0:53 Construct combined texture-sampler ( temp usampler2D) +0:53 'g_tTex2du4' ( uniform utexture2D) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 c2: direct index for structure ( uniform 2-component vector of float) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 3 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of float) +0:57 'txval40' ( temp 4-component vector of float) +0:57 textureGather ( temp 4-component vector of float) +0:57 Construct combined texture-sampler ( temp samplerCube) +0:57 'g_tTexcdf4' ( uniform textureCube) +0:57 'g_sSamp' (layout( binding=0) uniform sampler) +0:57 c3: direct index for structure ( uniform 3-component vector of float) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child ( temp 4-component vector of int) +0:58 'txval41' ( temp 4-component vector of int) +0:58 textureGather ( temp 4-component vector of int) +0:58 Construct combined texture-sampler ( temp isamplerCube) +0:58 'g_tTexcdi4' ( uniform itextureCube) +0:58 'g_sSamp' (layout( binding=0) uniform sampler) +0:58 c3: direct index for structure ( uniform 3-component vector of float) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 0 (const int) +0:59 Sequence +0:59 move second child to first child ( temp 4-component vector of uint) +0:59 'txval42' ( temp 4-component vector of uint) +0:59 textureGather ( temp 4-component vector of uint) +0:59 Construct combined texture-sampler ( temp usamplerCube) +0:59 'g_tTexcdu4' ( uniform utextureCube) +0:59 'g_sSamp' (layout( binding=0) uniform sampler) +0:59 c3: direct index for structure ( uniform 3-component vector of float) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 0 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of float) +0:61 'txval50' ( temp 4-component vector of float) +0:61 textureGather ( temp 4-component vector of float) +0:61 Construct combined texture-sampler ( temp samplerCube) +0:61 'g_tTexcdf4' ( uniform textureCube) +0:61 'g_sSamp' (layout( binding=0) uniform sampler) +0:61 c3: direct index for structure ( uniform 3-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of int) +0:62 'txval51' ( temp 4-component vector of int) +0:62 textureGather ( temp 4-component vector of int) +0:62 Construct combined texture-sampler ( temp isamplerCube) +0:62 'g_tTexcdi4' ( uniform itextureCube) +0:62 'g_sSamp' (layout( binding=0) uniform sampler) +0:62 c3: direct index for structure ( uniform 3-component vector of float) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of uint) +0:63 'txval52' ( temp 4-component vector of uint) +0:63 textureGather ( temp 4-component vector of uint) +0:63 Construct combined texture-sampler ( temp usamplerCube) +0:63 'g_tTexcdu4' ( uniform utextureCube) +0:63 'g_sSamp' (layout( binding=0) uniform sampler) +0:63 c3: direct index for structure ( uniform 3-component vector of float) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 1 (const int) +0:65 Sequence +0:65 move second child to first child ( temp 4-component vector of float) +0:65 'txval60' ( temp 4-component vector of float) +0:65 textureGather ( temp 4-component vector of float) +0:65 Construct combined texture-sampler ( temp samplerCube) +0:65 'g_tTexcdf4' ( uniform textureCube) +0:65 'g_sSamp' (layout( binding=0) uniform sampler) +0:65 c3: direct index for structure ( uniform 3-component vector of float) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child ( temp 4-component vector of int) +0:66 'txval61' ( temp 4-component vector of int) +0:66 textureGather ( temp 4-component vector of int) +0:66 Construct combined texture-sampler ( temp isamplerCube) +0:66 'g_tTexcdi4' ( uniform itextureCube) +0:66 'g_sSamp' (layout( binding=0) uniform sampler) +0:66 c3: direct index for structure ( uniform 3-component vector of float) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) +0:66 Constant: +0:66 2 (const int) +0:67 Sequence +0:67 move second child to first child ( temp 4-component vector of uint) +0:67 'txval62' ( temp 4-component vector of uint) +0:67 textureGather ( temp 4-component vector of uint) +0:67 Construct combined texture-sampler ( temp usamplerCube) +0:67 'g_tTexcdu4' ( uniform utextureCube) +0:67 'g_sSamp' (layout( binding=0) uniform sampler) +0:67 c3: direct index for structure ( uniform 3-component vector of float) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) +0:67 Constant: +0:67 2 (const int) +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'txval70' ( temp 4-component vector of float) +0:69 textureGather ( temp 4-component vector of float) +0:69 Construct combined texture-sampler ( temp samplerCube) +0:69 'g_tTexcdf4' ( uniform textureCube) +0:69 'g_sSamp' (layout( binding=0) uniform sampler) +0:69 c3: direct index for structure ( uniform 3-component vector of float) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) +0:69 Constant: +0:69 3 (const int) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of int) +0:70 'txval71' ( temp 4-component vector of int) +0:70 textureGather ( temp 4-component vector of int) +0:70 Construct combined texture-sampler ( temp isamplerCube) +0:70 'g_tTexcdi4' ( uniform itextureCube) +0:70 'g_sSamp' (layout( binding=0) uniform sampler) +0:70 c3: direct index for structure ( uniform 3-component vector of float) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) +0:70 Constant: +0:70 3 (const int) +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of uint) +0:71 'txval72' ( temp 4-component vector of uint) +0:71 textureGather ( temp 4-component vector of uint) +0:71 Construct combined texture-sampler ( temp usamplerCube) +0:71 'g_tTexcdu4' ( uniform utextureCube) +0:71 'g_sSamp' (layout( binding=0) uniform sampler) +0:71 c3: direct index for structure ( uniform 3-component vector of float) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) +0:71 Constant: +0:71 3 (const int) +0:73 move second child to first child ( temp 4-component vector of float) +0:73 Color: direct index for structure ( temp 4-component vector of float) +0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:74 move second child to first child ( temp float) +0:74 Depth: direct index for structure ( temp float) +0:74 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 1.000000 +0:76 Branch: Return with expression +0:76 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Function Definition: main( ( temp void) +0:34 Function Parameters: +0:? Sequence +0:34 Sequence +0:34 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:34 Color: direct index for structure ( temp 4-component vector of float) +0:34 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:34 Depth: direct index for structure ( temp float) +0:34 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 265 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 238 242 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval00" + Name 16 "g_tTex2df4" + Name 20 "g_sSamp" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + Name 28 "" + Name 38 "txval01" + Name 41 "g_tTex2di4" + Name 52 "txval02" + Name 55 "g_tTex2du4" + Name 63 "txval10" + Name 70 "txval11" + Name 77 "txval12" + Name 84 "txval20" + Name 92 "txval21" + Name 99 "txval22" + Name 106 "txval30" + Name 114 "txval31" + Name 121 "txval32" + Name 128 "txval40" + Name 131 "g_tTexcdf4" + Name 140 "txval41" + Name 143 "g_tTexcdi4" + Name 151 "txval42" + Name 154 "g_tTexcdu4" + Name 162 "txval50" + Name 169 "txval51" + Name 176 "txval52" + Name 183 "txval60" + Name 190 "txval61" + Name 197 "txval62" + Name 204 "txval70" + Name 211 "txval71" + Name 218 "txval72" + Name 226 "psout" + Name 235 "flattenTemp" + Name 238 "@entryPointOutput.Color" + Name 242 "@entryPointOutput.Depth" + Name 245 "g_sSamp2d" + Name 248 "g_tTex1df4a" + Name 249 "g_tTex1df4" + Name 252 "g_tTex1di4" + Name 255 "g_tTex1du4" + Name 258 "g_tTex3df4" + Name 261 "g_tTex3di4" + Name 264 "g_tTex3du4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 41(g_tTex2di4) DescriptorSet 0 + Decorate 55(g_tTex2du4) DescriptorSet 0 + Decorate 131(g_tTexcdf4) DescriptorSet 0 + Decorate 143(g_tTexcdi4) DescriptorSet 0 + Decorate 154(g_tTexcdu4) DescriptorSet 0 + Decorate 238(@entryPointOutput.Color) Location 0 + Decorate 242(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 245(g_sSamp2d) DescriptorSet 0 + Decorate 248(g_tTex1df4a) DescriptorSet 0 + Decorate 248(g_tTex1df4a) Binding 1 + Decorate 249(g_tTex1df4) DescriptorSet 0 + Decorate 249(g_tTex1df4) Binding 0 + Decorate 252(g_tTex1di4) DescriptorSet 0 + Decorate 255(g_tTex1du4) DescriptorSet 0 + Decorate 258(g_tTex3df4) DescriptorSet 0 + Decorate 261(g_tTex3di4) DescriptorSet 0 + Decorate 264(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: TypeVector 6(float) 3 + 26($Global): TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: TypeInt 32 1 + 30: 29(int) Constant 1 + 31: TypePointer Uniform 24(fvec2) + 34: 29(int) Constant 0 + 36: TypeVector 29(int) 4 + 37: TypePointer Function 36(ivec4) + 39: TypeImage 29(int) 2D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex2di4): 40(ptr) Variable UniformConstant + 44: TypeSampledImage 39 + 49: TypeInt 32 0 + 50: TypeVector 49(int) 4 + 51: TypePointer Function 50(ivec4) + 53: TypeImage 49(int) 2D sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2du4): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 90: 29(int) Constant 2 + 112: 29(int) Constant 3 + 129: TypeImage 6(float) Cube sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTexcdf4): 130(ptr) Variable UniformConstant + 134: TypeSampledImage 129 + 136: TypePointer Uniform 25(fvec3) + 141: TypeImage 29(int) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdi4): 142(ptr) Variable UniformConstant + 146: TypeSampledImage 141 + 152: TypeImage 49(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdu4): 153(ptr) Variable UniformConstant + 157: TypeSampledImage 152 + 225: TypePointer Function 8(PS_OUTPUT) + 227: 6(float) Constant 1065353216 + 228: 7(fvec4) ConstantComposite 227 227 227 227 + 230: TypePointer Function 6(float) + 237: TypePointer Output 7(fvec4) +238(@entryPointOutput.Color): 237(ptr) Variable Output + 241: TypePointer Output 6(float) +242(@entryPointOutput.Depth): 241(ptr) Variable Output + 245(g_sSamp2d): 19(ptr) Variable UniformConstant + 246: TypeImage 6(float) 1D sampled format:Unknown + 247: TypePointer UniformConstant 246 +248(g_tTex1df4a): 247(ptr) Variable UniformConstant + 249(g_tTex1df4): 247(ptr) Variable UniformConstant + 250: TypeImage 29(int) 1D sampled format:Unknown + 251: TypePointer UniformConstant 250 + 252(g_tTex1di4): 251(ptr) Variable UniformConstant + 253: TypeImage 49(int) 1D sampled format:Unknown + 254: TypePointer UniformConstant 253 + 255(g_tTex1du4): 254(ptr) Variable UniformConstant + 256: TypeImage 6(float) 3D sampled format:Unknown + 257: TypePointer UniformConstant 256 + 258(g_tTex3df4): 257(ptr) Variable UniformConstant + 259: TypeImage 29(int) 3D sampled format:Unknown + 260: TypePointer UniformConstant 259 + 261(g_tTex3di4): 260(ptr) Variable UniformConstant + 262: TypeImage 49(int) 3D sampled format:Unknown + 263: TypePointer UniformConstant 262 + 264(g_tTex3du4): 263(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +235(flattenTemp): 225(ptr) Variable Function + 236:8(PS_OUTPUT) FunctionCall 10(@main() + Store 235(flattenTemp) 236 + 239: 12(ptr) AccessChain 235(flattenTemp) 34 + 240: 7(fvec4) Load 239 + Store 238(@entryPointOutput.Color) 240 + 243: 230(ptr) AccessChain 235(flattenTemp) 30 + 244: 6(float) Load 243 + Store 242(@entryPointOutput.Depth) 244 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval00): 12(ptr) Variable Function + 38(txval01): 37(ptr) Variable Function + 52(txval02): 51(ptr) Variable Function + 63(txval10): 12(ptr) Variable Function + 70(txval11): 37(ptr) Variable Function + 77(txval12): 51(ptr) Variable Function + 84(txval20): 12(ptr) Variable Function + 92(txval21): 37(ptr) Variable Function + 99(txval22): 51(ptr) Variable Function + 106(txval30): 12(ptr) Variable Function + 114(txval31): 37(ptr) Variable Function + 121(txval32): 51(ptr) Variable Function + 128(txval40): 12(ptr) Variable Function + 140(txval41): 37(ptr) Variable Function + 151(txval42): 51(ptr) Variable Function + 162(txval50): 12(ptr) Variable Function + 169(txval51): 37(ptr) Variable Function + 176(txval52): 51(ptr) Variable Function + 183(txval60): 12(ptr) Variable Function + 190(txval61): 37(ptr) Variable Function + 197(txval62): 51(ptr) Variable Function + 204(txval70): 12(ptr) Variable Function + 211(txval71): 37(ptr) Variable Function + 218(txval72): 51(ptr) Variable Function + 226(psout): 225(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 32: 31(ptr) AccessChain 28 30 + 33: 24(fvec2) Load 32 + 35: 7(fvec4) ImageGather 23 33 34 + Store 13(txval00) 35 + 42: 39 Load 41(g_tTex2di4) + 43: 18 Load 20(g_sSamp) + 45: 44 SampledImage 42 43 + 46: 31(ptr) AccessChain 28 30 + 47: 24(fvec2) Load 46 + 48: 36(ivec4) ImageGather 45 47 34 + Store 38(txval01) 48 + 56: 53 Load 55(g_tTex2du4) + 57: 18 Load 20(g_sSamp) + 59: 58 SampledImage 56 57 + 60: 31(ptr) AccessChain 28 30 + 61: 24(fvec2) Load 60 + 62: 50(ivec4) ImageGather 59 61 34 + Store 52(txval02) 62 + 64: 14 Load 16(g_tTex2df4) + 65: 18 Load 20(g_sSamp) + 66: 22 SampledImage 64 65 + 67: 31(ptr) AccessChain 28 30 + 68: 24(fvec2) Load 67 + 69: 7(fvec4) ImageGather 66 68 30 + Store 63(txval10) 69 + 71: 39 Load 41(g_tTex2di4) + 72: 18 Load 20(g_sSamp) + 73: 44 SampledImage 71 72 + 74: 31(ptr) AccessChain 28 30 + 75: 24(fvec2) Load 74 + 76: 36(ivec4) ImageGather 73 75 30 + Store 70(txval11) 76 + 78: 53 Load 55(g_tTex2du4) + 79: 18 Load 20(g_sSamp) + 80: 58 SampledImage 78 79 + 81: 31(ptr) AccessChain 28 30 + 82: 24(fvec2) Load 81 + 83: 50(ivec4) ImageGather 80 82 30 + Store 77(txval12) 83 + 85: 14 Load 16(g_tTex2df4) + 86: 18 Load 20(g_sSamp) + 87: 22 SampledImage 85 86 + 88: 31(ptr) AccessChain 28 30 + 89: 24(fvec2) Load 88 + 91: 7(fvec4) ImageGather 87 89 90 + Store 84(txval20) 91 + 93: 39 Load 41(g_tTex2di4) + 94: 18 Load 20(g_sSamp) + 95: 44 SampledImage 93 94 + 96: 31(ptr) AccessChain 28 30 + 97: 24(fvec2) Load 96 + 98: 36(ivec4) ImageGather 95 97 90 + Store 92(txval21) 98 + 100: 53 Load 55(g_tTex2du4) + 101: 18 Load 20(g_sSamp) + 102: 58 SampledImage 100 101 + 103: 31(ptr) AccessChain 28 30 + 104: 24(fvec2) Load 103 + 105: 50(ivec4) ImageGather 102 104 90 + Store 99(txval22) 105 + 107: 14 Load 16(g_tTex2df4) + 108: 18 Load 20(g_sSamp) + 109: 22 SampledImage 107 108 + 110: 31(ptr) AccessChain 28 30 + 111: 24(fvec2) Load 110 + 113: 7(fvec4) ImageGather 109 111 112 + Store 106(txval30) 113 + 115: 39 Load 41(g_tTex2di4) + 116: 18 Load 20(g_sSamp) + 117: 44 SampledImage 115 116 + 118: 31(ptr) AccessChain 28 30 + 119: 24(fvec2) Load 118 + 120: 36(ivec4) ImageGather 117 119 112 + Store 114(txval31) 120 + 122: 53 Load 55(g_tTex2du4) + 123: 18 Load 20(g_sSamp) + 124: 58 SampledImage 122 123 + 125: 31(ptr) AccessChain 28 30 + 126: 24(fvec2) Load 125 + 127: 50(ivec4) ImageGather 124 126 112 + Store 121(txval32) 127 + 132: 129 Load 131(g_tTexcdf4) + 133: 18 Load 20(g_sSamp) + 135: 134 SampledImage 132 133 + 137: 136(ptr) AccessChain 28 90 + 138: 25(fvec3) Load 137 + 139: 7(fvec4) ImageGather 135 138 34 + Store 128(txval40) 139 + 144: 141 Load 143(g_tTexcdi4) + 145: 18 Load 20(g_sSamp) + 147: 146 SampledImage 144 145 + 148: 136(ptr) AccessChain 28 90 + 149: 25(fvec3) Load 148 + 150: 36(ivec4) ImageGather 147 149 34 + Store 140(txval41) 150 + 155: 152 Load 154(g_tTexcdu4) + 156: 18 Load 20(g_sSamp) + 158: 157 SampledImage 155 156 + 159: 136(ptr) AccessChain 28 90 + 160: 25(fvec3) Load 159 + 161: 50(ivec4) ImageGather 158 160 34 + Store 151(txval42) 161 + 163: 129 Load 131(g_tTexcdf4) + 164: 18 Load 20(g_sSamp) + 165: 134 SampledImage 163 164 + 166: 136(ptr) AccessChain 28 90 + 167: 25(fvec3) Load 166 + 168: 7(fvec4) ImageGather 165 167 30 + Store 162(txval50) 168 + 170: 141 Load 143(g_tTexcdi4) + 171: 18 Load 20(g_sSamp) + 172: 146 SampledImage 170 171 + 173: 136(ptr) AccessChain 28 90 + 174: 25(fvec3) Load 173 + 175: 36(ivec4) ImageGather 172 174 30 + Store 169(txval51) 175 + 177: 152 Load 154(g_tTexcdu4) + 178: 18 Load 20(g_sSamp) + 179: 157 SampledImage 177 178 + 180: 136(ptr) AccessChain 28 90 + 181: 25(fvec3) Load 180 + 182: 50(ivec4) ImageGather 179 181 30 + Store 176(txval52) 182 + 184: 129 Load 131(g_tTexcdf4) + 185: 18 Load 20(g_sSamp) + 186: 134 SampledImage 184 185 + 187: 136(ptr) AccessChain 28 90 + 188: 25(fvec3) Load 187 + 189: 7(fvec4) ImageGather 186 188 90 + Store 183(txval60) 189 + 191: 141 Load 143(g_tTexcdi4) + 192: 18 Load 20(g_sSamp) + 193: 146 SampledImage 191 192 + 194: 136(ptr) AccessChain 28 90 + 195: 25(fvec3) Load 194 + 196: 36(ivec4) ImageGather 193 195 90 + Store 190(txval61) 196 + 198: 152 Load 154(g_tTexcdu4) + 199: 18 Load 20(g_sSamp) + 200: 157 SampledImage 198 199 + 201: 136(ptr) AccessChain 28 90 + 202: 25(fvec3) Load 201 + 203: 50(ivec4) ImageGather 200 202 90 + Store 197(txval62) 203 + 205: 129 Load 131(g_tTexcdf4) + 206: 18 Load 20(g_sSamp) + 207: 134 SampledImage 205 206 + 208: 136(ptr) AccessChain 28 90 + 209: 25(fvec3) Load 208 + 210: 7(fvec4) ImageGather 207 209 112 + Store 204(txval70) 210 + 212: 141 Load 143(g_tTexcdi4) + 213: 18 Load 20(g_sSamp) + 214: 146 SampledImage 212 213 + 215: 136(ptr) AccessChain 28 90 + 216: 25(fvec3) Load 215 + 217: 36(ivec4) ImageGather 214 216 112 + Store 211(txval71) 217 + 219: 152 Load 154(g_tTexcdu4) + 220: 18 Load 20(g_sSamp) + 221: 157 SampledImage 219 220 + 222: 136(ptr) AccessChain 28 90 + 223: 25(fvec3) Load 222 + 224: 50(ivec4) ImageGather 221 223 112 + Store 218(txval72) 224 + 229: 12(ptr) AccessChain 226(psout) 34 + Store 229 228 + 231: 230(ptr) AccessChain 226(psout) 30 + Store 231 227 + 232:8(PS_OUTPUT) Load 226(psout) + ReturnValue 232 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out new file mode 100644 index 0000000000..49fda31a06 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -0,0 +1,1792 @@ +hlsl.gatherRGBA.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:39 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of float) +0:46 'txval001' ( temp 4-component vector of float) +0:46 textureGatherOffset ( temp 4-component vector of float) +0:46 Construct combined texture-sampler ( temp sampler2D) +0:46 'g_tTex2df4' ( uniform texture2D) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:46 c2: direct index for structure ( uniform 2-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of int) +0:47 'txval011' ( temp 4-component vector of int) +0:47 textureGatherOffset ( temp 4-component vector of int) +0:47 Construct combined texture-sampler ( temp isampler2D) +0:47 'g_tTex2di4' ( uniform itexture2D) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 c2: direct index for structure ( uniform 2-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure ( uniform 2-component vector of int) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of uint) +0:48 'txval021' ( temp 4-component vector of uint) +0:48 textureGatherOffset ( temp 4-component vector of uint) +0:48 Construct combined texture-sampler ( temp usampler2D) +0:48 'g_tTex2du4' ( uniform utexture2D) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 c2: direct index for structure ( uniform 2-component vector of float) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure ( uniform 2-component vector of int) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'txval004' ( temp 4-component vector of float) +0:50 textureGatherOffsets ( temp 4-component vector of float) +0:50 Construct combined texture-sampler ( temp sampler2D) +0:50 'g_tTex2df4' ( uniform texture2D) +0:50 'g_sSamp' (layout( binding=0) uniform sampler) +0:50 c2: direct index for structure ( uniform 2-component vector of float) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:50 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of int) +0:51 'txval014' ( temp 4-component vector of int) +0:51 textureGatherOffsets ( temp 4-component vector of int) +0:51 Construct combined texture-sampler ( temp isampler2D) +0:51 'g_tTex2di4' ( uniform itexture2D) +0:51 'g_sSamp' (layout( binding=0) uniform sampler) +0:51 c2: direct index for structure ( uniform 2-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of uint) +0:52 'txval024' ( temp 4-component vector of uint) +0:52 textureGatherOffsets ( temp 4-component vector of uint) +0:52 Construct combined texture-sampler ( temp usampler2D) +0:52 'g_tTex2du4' ( uniform utexture2D) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 c2: direct index for structure ( uniform 2-component vector of float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of float) +0:62 'txval101' ( temp 4-component vector of float) +0:62 textureGatherOffset ( temp 4-component vector of float) +0:62 Construct combined texture-sampler ( temp sampler2D) +0:62 'g_tTex2df4' ( uniform texture2D) +0:62 'g_sSamp' (layout( binding=0) uniform sampler) +0:62 c2: direct index for structure ( uniform 2-component vector of float) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of int) +0:63 'txval111' ( temp 4-component vector of int) +0:63 textureGatherOffset ( temp 4-component vector of int) +0:63 Construct combined texture-sampler ( temp isampler2D) +0:63 'g_tTex2di4' ( uniform itexture2D) +0:63 'g_sSamp' (layout( binding=0) uniform sampler) +0:63 c2: direct index for structure ( uniform 2-component vector of float) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure ( uniform 2-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child ( temp 4-component vector of uint) +0:64 'txval121' ( temp 4-component vector of uint) +0:64 textureGatherOffset ( temp 4-component vector of uint) +0:64 Construct combined texture-sampler ( temp usampler2D) +0:64 'g_tTex2du4' ( uniform utexture2D) +0:64 'g_sSamp' (layout( binding=0) uniform sampler) +0:64 c2: direct index for structure ( uniform 2-component vector of float) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child ( temp 4-component vector of float) +0:66 'txval104' ( temp 4-component vector of float) +0:66 textureGatherOffsets ( temp 4-component vector of float) +0:66 Construct combined texture-sampler ( temp sampler2D) +0:66 'g_tTex2df4' ( uniform texture2D) +0:66 'g_sSamp' (layout( binding=0) uniform sampler) +0:66 c2: direct index for structure ( uniform 2-component vector of float) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) +0:66 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child ( temp 4-component vector of int) +0:67 'txval114' ( temp 4-component vector of int) +0:67 textureGatherOffsets ( temp 4-component vector of int) +0:67 Construct combined texture-sampler ( temp isampler2D) +0:67 'g_tTex2di4' ( uniform itexture2D) +0:67 'g_sSamp' (layout( binding=0) uniform sampler) +0:67 c2: direct index for structure ( uniform 2-component vector of float) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) +0:67 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child ( temp 4-component vector of uint) +0:68 'txval124' ( temp 4-component vector of uint) +0:68 textureGatherOffsets ( temp 4-component vector of uint) +0:68 Construct combined texture-sampler ( temp usampler2D) +0:68 'g_tTex2du4' ( uniform utexture2D) +0:68 'g_sSamp' (layout( binding=0) uniform sampler) +0:68 c2: direct index for structure ( uniform 2-component vector of float) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) +0:68 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 4-component vector of float) +0:78 'txval201' ( temp 4-component vector of float) +0:78 textureGatherOffset ( temp 4-component vector of float) +0:78 Construct combined texture-sampler ( temp sampler2D) +0:78 'g_tTex2df4' ( uniform texture2D) +0:78 'g_sSamp' (layout( binding=0) uniform sampler) +0:78 c2: direct index for structure ( uniform 2-component vector of float) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child ( temp 4-component vector of int) +0:79 'txval211' ( temp 4-component vector of int) +0:79 textureGatherOffset ( temp 4-component vector of int) +0:79 Construct combined texture-sampler ( temp isampler2D) +0:79 'g_tTex2di4' ( uniform itexture2D) +0:79 'g_sSamp' (layout( binding=0) uniform sampler) +0:79 c2: direct index for structure ( uniform 2-component vector of float) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure ( uniform 2-component vector of int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child ( temp 4-component vector of uint) +0:80 'txval221' ( temp 4-component vector of uint) +0:80 textureGatherOffset ( temp 4-component vector of uint) +0:80 Construct combined texture-sampler ( temp usampler2D) +0:80 'g_tTex2du4' ( uniform utexture2D) +0:80 'g_sSamp' (layout( binding=0) uniform sampler) +0:80 c2: direct index for structure ( uniform 2-component vector of float) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure ( uniform 2-component vector of int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child ( temp 4-component vector of float) +0:82 'txval204' ( temp 4-component vector of float) +0:82 textureGatherOffsets ( temp 4-component vector of float) +0:82 Construct combined texture-sampler ( temp sampler2D) +0:82 'g_tTex2df4' ( uniform texture2D) +0:82 'g_sSamp' (layout( binding=0) uniform sampler) +0:82 c2: direct index for structure ( uniform 2-component vector of float) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) +0:82 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child ( temp 4-component vector of int) +0:83 'txval214' ( temp 4-component vector of int) +0:83 textureGatherOffsets ( temp 4-component vector of int) +0:83 Construct combined texture-sampler ( temp isampler2D) +0:83 'g_tTex2di4' ( uniform itexture2D) +0:83 'g_sSamp' (layout( binding=0) uniform sampler) +0:83 c2: direct index for structure ( uniform 2-component vector of float) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) +0:83 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child ( temp 4-component vector of uint) +0:84 'txval224' ( temp 4-component vector of uint) +0:84 textureGatherOffsets ( temp 4-component vector of uint) +0:84 Construct combined texture-sampler ( temp usampler2D) +0:84 'g_tTex2du4' ( uniform utexture2D) +0:84 'g_sSamp' (layout( binding=0) uniform sampler) +0:84 c2: direct index for structure ( uniform 2-component vector of float) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) +0:84 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child ( temp 4-component vector of float) +0:94 'txval301' ( temp 4-component vector of float) +0:94 textureGatherOffset ( temp 4-component vector of float) +0:94 Construct combined texture-sampler ( temp sampler2D) +0:94 'g_tTex2df4' ( uniform texture2D) +0:94 'g_sSamp' (layout( binding=0) uniform sampler) +0:94 c2: direct index for structure ( uniform 2-component vector of float) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child ( temp 4-component vector of int) +0:95 'txval311' ( temp 4-component vector of int) +0:95 textureGatherOffset ( temp 4-component vector of int) +0:95 Construct combined texture-sampler ( temp isampler2D) +0:95 'g_tTex2di4' ( uniform itexture2D) +0:95 'g_sSamp' (layout( binding=0) uniform sampler) +0:95 c2: direct index for structure ( uniform 2-component vector of float) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child ( temp 4-component vector of uint) +0:96 'txval321' ( temp 4-component vector of uint) +0:96 textureGatherOffset ( temp 4-component vector of uint) +0:96 Construct combined texture-sampler ( temp usampler2D) +0:96 'g_tTex2du4' ( uniform utexture2D) +0:96 'g_sSamp' (layout( binding=0) uniform sampler) +0:96 c2: direct index for structure ( uniform 2-component vector of float) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child ( temp 4-component vector of float) +0:98 'txval304' ( temp 4-component vector of float) +0:98 textureGatherOffsets ( temp 4-component vector of float) +0:98 Construct combined texture-sampler ( temp sampler2D) +0:98 'g_tTex2df4' ( uniform texture2D) +0:98 'g_sSamp' (layout( binding=0) uniform sampler) +0:98 c2: direct index for structure ( uniform 2-component vector of float) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) +0:98 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child ( temp 4-component vector of int) +0:99 'txval314' ( temp 4-component vector of int) +0:99 textureGatherOffsets ( temp 4-component vector of int) +0:99 Construct combined texture-sampler ( temp isampler2D) +0:99 'g_tTex2di4' ( uniform itexture2D) +0:99 'g_sSamp' (layout( binding=0) uniform sampler) +0:99 c2: direct index for structure ( uniform 2-component vector of float) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) +0:99 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child ( temp 4-component vector of uint) +0:100 'txval324' ( temp 4-component vector of uint) +0:100 textureGatherOffsets ( temp 4-component vector of uint) +0:100 Construct combined texture-sampler ( temp usampler2D) +0:100 'g_tTex2du4' ( uniform utexture2D) +0:100 'g_sSamp' (layout( binding=0) uniform sampler) +0:100 c2: direct index for structure ( uniform 2-component vector of float) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) +0:100 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child ( temp 4-component vector of float) +0:112 Color: direct index for structure ( temp 4-component vector of float) +0:112 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:113 move second child to first child ( temp float) +0:113 Depth: direct index for structure ( temp float) +0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:113 Constant: +0:113 1 (const int) +0:113 Constant: +0:113 1.000000 +0:115 Branch: Return with expression +0:115 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Function Definition: main( ( temp void) +0:39 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:39 Depth: direct index for structure ( temp float) +0:39 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:39 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of float) +0:46 'txval001' ( temp 4-component vector of float) +0:46 textureGatherOffset ( temp 4-component vector of float) +0:46 Construct combined texture-sampler ( temp sampler2D) +0:46 'g_tTex2df4' ( uniform texture2D) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:46 c2: direct index for structure ( uniform 2-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of int) +0:47 'txval011' ( temp 4-component vector of int) +0:47 textureGatherOffset ( temp 4-component vector of int) +0:47 Construct combined texture-sampler ( temp isampler2D) +0:47 'g_tTex2di4' ( uniform itexture2D) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 c2: direct index for structure ( uniform 2-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure ( uniform 2-component vector of int) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of uint) +0:48 'txval021' ( temp 4-component vector of uint) +0:48 textureGatherOffset ( temp 4-component vector of uint) +0:48 Construct combined texture-sampler ( temp usampler2D) +0:48 'g_tTex2du4' ( uniform utexture2D) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 c2: direct index for structure ( uniform 2-component vector of float) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure ( uniform 2-component vector of int) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'txval004' ( temp 4-component vector of float) +0:50 textureGatherOffsets ( temp 4-component vector of float) +0:50 Construct combined texture-sampler ( temp sampler2D) +0:50 'g_tTex2df4' ( uniform texture2D) +0:50 'g_sSamp' (layout( binding=0) uniform sampler) +0:50 c2: direct index for structure ( uniform 2-component vector of float) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:50 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of int) +0:51 'txval014' ( temp 4-component vector of int) +0:51 textureGatherOffsets ( temp 4-component vector of int) +0:51 Construct combined texture-sampler ( temp isampler2D) +0:51 'g_tTex2di4' ( uniform itexture2D) +0:51 'g_sSamp' (layout( binding=0) uniform sampler) +0:51 c2: direct index for structure ( uniform 2-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of uint) +0:52 'txval024' ( temp 4-component vector of uint) +0:52 textureGatherOffsets ( temp 4-component vector of uint) +0:52 Construct combined texture-sampler ( temp usampler2D) +0:52 'g_tTex2du4' ( uniform utexture2D) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 c2: direct index for structure ( uniform 2-component vector of float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of float) +0:62 'txval101' ( temp 4-component vector of float) +0:62 textureGatherOffset ( temp 4-component vector of float) +0:62 Construct combined texture-sampler ( temp sampler2D) +0:62 'g_tTex2df4' ( uniform texture2D) +0:62 'g_sSamp' (layout( binding=0) uniform sampler) +0:62 c2: direct index for structure ( uniform 2-component vector of float) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of int) +0:63 'txval111' ( temp 4-component vector of int) +0:63 textureGatherOffset ( temp 4-component vector of int) +0:63 Construct combined texture-sampler ( temp isampler2D) +0:63 'g_tTex2di4' ( uniform itexture2D) +0:63 'g_sSamp' (layout( binding=0) uniform sampler) +0:63 c2: direct index for structure ( uniform 2-component vector of float) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure ( uniform 2-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child ( temp 4-component vector of uint) +0:64 'txval121' ( temp 4-component vector of uint) +0:64 textureGatherOffset ( temp 4-component vector of uint) +0:64 Construct combined texture-sampler ( temp usampler2D) +0:64 'g_tTex2du4' ( uniform utexture2D) +0:64 'g_sSamp' (layout( binding=0) uniform sampler) +0:64 c2: direct index for structure ( uniform 2-component vector of float) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child ( temp 4-component vector of float) +0:66 'txval104' ( temp 4-component vector of float) +0:66 textureGatherOffsets ( temp 4-component vector of float) +0:66 Construct combined texture-sampler ( temp sampler2D) +0:66 'g_tTex2df4' ( uniform texture2D) +0:66 'g_sSamp' (layout( binding=0) uniform sampler) +0:66 c2: direct index for structure ( uniform 2-component vector of float) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) +0:66 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child ( temp 4-component vector of int) +0:67 'txval114' ( temp 4-component vector of int) +0:67 textureGatherOffsets ( temp 4-component vector of int) +0:67 Construct combined texture-sampler ( temp isampler2D) +0:67 'g_tTex2di4' ( uniform itexture2D) +0:67 'g_sSamp' (layout( binding=0) uniform sampler) +0:67 c2: direct index for structure ( uniform 2-component vector of float) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) +0:67 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure ( uniform 2-component vector of int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child ( temp 4-component vector of uint) +0:68 'txval124' ( temp 4-component vector of uint) +0:68 textureGatherOffsets ( temp 4-component vector of uint) +0:68 Construct combined texture-sampler ( temp usampler2D) +0:68 'g_tTex2du4' ( uniform utexture2D) +0:68 'g_sSamp' (layout( binding=0) uniform sampler) +0:68 c2: direct index for structure ( uniform 2-component vector of float) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) +0:68 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure ( uniform 2-component vector of int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 4-component vector of float) +0:78 'txval201' ( temp 4-component vector of float) +0:78 textureGatherOffset ( temp 4-component vector of float) +0:78 Construct combined texture-sampler ( temp sampler2D) +0:78 'g_tTex2df4' ( uniform texture2D) +0:78 'g_sSamp' (layout( binding=0) uniform sampler) +0:78 c2: direct index for structure ( uniform 2-component vector of float) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child ( temp 4-component vector of int) +0:79 'txval211' ( temp 4-component vector of int) +0:79 textureGatherOffset ( temp 4-component vector of int) +0:79 Construct combined texture-sampler ( temp isampler2D) +0:79 'g_tTex2di4' ( uniform itexture2D) +0:79 'g_sSamp' (layout( binding=0) uniform sampler) +0:79 c2: direct index for structure ( uniform 2-component vector of float) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure ( uniform 2-component vector of int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child ( temp 4-component vector of uint) +0:80 'txval221' ( temp 4-component vector of uint) +0:80 textureGatherOffset ( temp 4-component vector of uint) +0:80 Construct combined texture-sampler ( temp usampler2D) +0:80 'g_tTex2du4' ( uniform utexture2D) +0:80 'g_sSamp' (layout( binding=0) uniform sampler) +0:80 c2: direct index for structure ( uniform 2-component vector of float) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure ( uniform 2-component vector of int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child ( temp 4-component vector of float) +0:82 'txval204' ( temp 4-component vector of float) +0:82 textureGatherOffsets ( temp 4-component vector of float) +0:82 Construct combined texture-sampler ( temp sampler2D) +0:82 'g_tTex2df4' ( uniform texture2D) +0:82 'g_sSamp' (layout( binding=0) uniform sampler) +0:82 c2: direct index for structure ( uniform 2-component vector of float) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) +0:82 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child ( temp 4-component vector of int) +0:83 'txval214' ( temp 4-component vector of int) +0:83 textureGatherOffsets ( temp 4-component vector of int) +0:83 Construct combined texture-sampler ( temp isampler2D) +0:83 'g_tTex2di4' ( uniform itexture2D) +0:83 'g_sSamp' (layout( binding=0) uniform sampler) +0:83 c2: direct index for structure ( uniform 2-component vector of float) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) +0:83 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child ( temp 4-component vector of uint) +0:84 'txval224' ( temp 4-component vector of uint) +0:84 textureGatherOffsets ( temp 4-component vector of uint) +0:84 Construct combined texture-sampler ( temp usampler2D) +0:84 'g_tTex2du4' ( uniform utexture2D) +0:84 'g_sSamp' (layout( binding=0) uniform sampler) +0:84 c2: direct index for structure ( uniform 2-component vector of float) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) +0:84 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child ( temp 4-component vector of float) +0:94 'txval301' ( temp 4-component vector of float) +0:94 textureGatherOffset ( temp 4-component vector of float) +0:94 Construct combined texture-sampler ( temp sampler2D) +0:94 'g_tTex2df4' ( uniform texture2D) +0:94 'g_sSamp' (layout( binding=0) uniform sampler) +0:94 c2: direct index for structure ( uniform 2-component vector of float) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child ( temp 4-component vector of int) +0:95 'txval311' ( temp 4-component vector of int) +0:95 textureGatherOffset ( temp 4-component vector of int) +0:95 Construct combined texture-sampler ( temp isampler2D) +0:95 'g_tTex2di4' ( uniform itexture2D) +0:95 'g_sSamp' (layout( binding=0) uniform sampler) +0:95 c2: direct index for structure ( uniform 2-component vector of float) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child ( temp 4-component vector of uint) +0:96 'txval321' ( temp 4-component vector of uint) +0:96 textureGatherOffset ( temp 4-component vector of uint) +0:96 Construct combined texture-sampler ( temp usampler2D) +0:96 'g_tTex2du4' ( uniform utexture2D) +0:96 'g_sSamp' (layout( binding=0) uniform sampler) +0:96 c2: direct index for structure ( uniform 2-component vector of float) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child ( temp 4-component vector of float) +0:98 'txval304' ( temp 4-component vector of float) +0:98 textureGatherOffsets ( temp 4-component vector of float) +0:98 Construct combined texture-sampler ( temp sampler2D) +0:98 'g_tTex2df4' ( uniform texture2D) +0:98 'g_sSamp' (layout( binding=0) uniform sampler) +0:98 c2: direct index for structure ( uniform 2-component vector of float) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) +0:98 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child ( temp 4-component vector of int) +0:99 'txval314' ( temp 4-component vector of int) +0:99 textureGatherOffsets ( temp 4-component vector of int) +0:99 Construct combined texture-sampler ( temp isampler2D) +0:99 'g_tTex2di4' ( uniform itexture2D) +0:99 'g_sSamp' (layout( binding=0) uniform sampler) +0:99 c2: direct index for structure ( uniform 2-component vector of float) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) +0:99 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure ( uniform 2-component vector of int) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child ( temp 4-component vector of uint) +0:100 'txval324' ( temp 4-component vector of uint) +0:100 textureGatherOffsets ( temp 4-component vector of uint) +0:100 Construct combined texture-sampler ( temp usampler2D) +0:100 'g_tTex2du4' ( uniform utexture2D) +0:100 'g_sSamp' (layout( binding=0) uniform sampler) +0:100 c2: direct index for structure ( uniform 2-component vector of float) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) +0:100 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure ( uniform 2-component vector of int) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child ( temp 4-component vector of float) +0:112 Color: direct index for structure ( temp 4-component vector of float) +0:112 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:113 move second child to first child ( temp float) +0:113 Depth: direct index for structure ( temp float) +0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:113 Constant: +0:113 1 (const int) +0:113 Constant: +0:113 1.000000 +0:115 Branch: Return with expression +0:115 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Function Definition: main( ( temp void) +0:39 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:39 Depth: direct index for structure ( temp float) +0:39 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 399 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 363 367 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval001" + Name 16 "g_tTex2df4" + Name 20 "g_sSamp" + Name 30 "$Global" + MemberName 30($Global) 0 "c1" + MemberName 30($Global) 1 "c2" + MemberName 30($Global) 2 "c3" + MemberName 30($Global) 3 "c4" + MemberName 30($Global) 4 "o1" + MemberName 30($Global) 5 "o2" + MemberName 30($Global) 6 "o3" + MemberName 30($Global) 7 "o4" + Name 32 "" + Name 44 "txval011" + Name 47 "g_tTex2di4" + Name 60 "txval021" + Name 63 "g_tTex2du4" + Name 73 "txval004" + Name 91 "txval014" + Name 107 "txval024" + Name 123 "txval101" + Name 132 "txval111" + Name 141 "txval121" + Name 150 "txval104" + Name 166 "txval114" + Name 182 "txval124" + Name 198 "txval201" + Name 208 "txval211" + Name 217 "txval221" + Name 226 "txval204" + Name 242 "txval214" + Name 258 "txval224" + Name 274 "txval301" + Name 284 "txval311" + Name 293 "txval321" + Name 302 "txval304" + Name 318 "txval314" + Name 334 "txval324" + Name 351 "psout" + Name 360 "flattenTemp" + Name 363 "@entryPointOutput.Color" + Name 367 "@entryPointOutput.Depth" + Name 370 "g_sSamp2d" + Name 373 "g_tTex1df4a" + Name 374 "g_tTex1df4" + Name 377 "g_tTex1di4" + Name 380 "g_tTex1du4" + Name 383 "g_tTex3df4" + Name 386 "g_tTex3di4" + Name 389 "g_tTex3du4" + Name 392 "g_tTexcdf4" + Name 395 "g_tTexcdi4" + Name 398 "g_tTexcdu4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + MemberDecorate 30($Global) 0 Offset 0 + MemberDecorate 30($Global) 1 Offset 8 + MemberDecorate 30($Global) 2 Offset 16 + MemberDecorate 30($Global) 3 Offset 32 + MemberDecorate 30($Global) 4 Offset 48 + MemberDecorate 30($Global) 5 Offset 56 + MemberDecorate 30($Global) 6 Offset 64 + MemberDecorate 30($Global) 7 Offset 80 + Decorate 30($Global) Block + Decorate 32 DescriptorSet 0 + Decorate 47(g_tTex2di4) DescriptorSet 0 + Decorate 63(g_tTex2du4) DescriptorSet 0 + Decorate 363(@entryPointOutput.Color) Location 0 + Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 370(g_sSamp2d) DescriptorSet 0 + Decorate 373(g_tTex1df4a) DescriptorSet 0 + Decorate 373(g_tTex1df4a) Binding 1 + Decorate 374(g_tTex1df4) DescriptorSet 0 + Decorate 374(g_tTex1df4) Binding 0 + Decorate 377(g_tTex1di4) DescriptorSet 0 + Decorate 380(g_tTex1du4) DescriptorSet 0 + Decorate 383(g_tTex3df4) DescriptorSet 0 + Decorate 386(g_tTex3di4) DescriptorSet 0 + Decorate 389(g_tTex3du4) DescriptorSet 0 + Decorate 392(g_tTexcdf4) DescriptorSet 0 + Decorate 395(g_tTexcdi4) DescriptorSet 0 + Decorate 398(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: TypeVector 6(float) 3 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 2 + 28: TypeVector 26(int) 3 + 29: TypeVector 26(int) 4 + 30($Global): TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) 26(int) 27(ivec2) 28(ivec3) 29(ivec4) + 31: TypePointer Uniform 30($Global) + 32: 31(ptr) Variable Uniform + 33: 26(int) Constant 1 + 34: TypePointer Uniform 24(fvec2) + 37: 26(int) Constant 5 + 38: TypePointer Uniform 27(ivec2) + 41: 26(int) Constant 0 + 43: TypePointer Function 29(ivec4) + 45: TypeImage 26(int) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2di4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 57: TypeInt 32 0 + 58: TypeVector 57(int) 4 + 59: TypePointer Function 58(ivec4) + 61: TypeImage 57(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2du4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 87: 57(int) Constant 4 + 88: TypeArray 27(ivec2) 87 + 206: 26(int) Constant 2 + 282: 26(int) Constant 3 + 350: TypePointer Function 8(PS_OUTPUT) + 352: 6(float) Constant 1065353216 + 353: 7(fvec4) ConstantComposite 352 352 352 352 + 355: TypePointer Function 6(float) + 362: TypePointer Output 7(fvec4) +363(@entryPointOutput.Color): 362(ptr) Variable Output + 366: TypePointer Output 6(float) +367(@entryPointOutput.Depth): 366(ptr) Variable Output + 370(g_sSamp2d): 19(ptr) Variable UniformConstant + 371: TypeImage 6(float) 1D sampled format:Unknown + 372: TypePointer UniformConstant 371 +373(g_tTex1df4a): 372(ptr) Variable UniformConstant + 374(g_tTex1df4): 372(ptr) Variable UniformConstant + 375: TypeImage 26(int) 1D sampled format:Unknown + 376: TypePointer UniformConstant 375 + 377(g_tTex1di4): 376(ptr) Variable UniformConstant + 378: TypeImage 57(int) 1D sampled format:Unknown + 379: TypePointer UniformConstant 378 + 380(g_tTex1du4): 379(ptr) Variable UniformConstant + 381: TypeImage 6(float) 3D sampled format:Unknown + 382: TypePointer UniformConstant 381 + 383(g_tTex3df4): 382(ptr) Variable UniformConstant + 384: TypeImage 26(int) 3D sampled format:Unknown + 385: TypePointer UniformConstant 384 + 386(g_tTex3di4): 385(ptr) Variable UniformConstant + 387: TypeImage 57(int) 3D sampled format:Unknown + 388: TypePointer UniformConstant 387 + 389(g_tTex3du4): 388(ptr) Variable UniformConstant + 390: TypeImage 6(float) Cube sampled format:Unknown + 391: TypePointer UniformConstant 390 + 392(g_tTexcdf4): 391(ptr) Variable UniformConstant + 393: TypeImage 26(int) Cube sampled format:Unknown + 394: TypePointer UniformConstant 393 + 395(g_tTexcdi4): 394(ptr) Variable UniformConstant + 396: TypeImage 57(int) Cube sampled format:Unknown + 397: TypePointer UniformConstant 396 + 398(g_tTexcdu4): 397(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +360(flattenTemp): 350(ptr) Variable Function + 361:8(PS_OUTPUT) FunctionCall 10(@main() + Store 360(flattenTemp) 361 + 364: 12(ptr) AccessChain 360(flattenTemp) 41 + 365: 7(fvec4) Load 364 + Store 363(@entryPointOutput.Color) 365 + 368: 355(ptr) AccessChain 360(flattenTemp) 33 + 369: 6(float) Load 368 + Store 367(@entryPointOutput.Depth) 369 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval001): 12(ptr) Variable Function + 44(txval011): 43(ptr) Variable Function + 60(txval021): 59(ptr) Variable Function + 73(txval004): 12(ptr) Variable Function + 91(txval014): 43(ptr) Variable Function + 107(txval024): 59(ptr) Variable Function + 123(txval101): 12(ptr) Variable Function + 132(txval111): 43(ptr) Variable Function + 141(txval121): 59(ptr) Variable Function + 150(txval104): 12(ptr) Variable Function + 166(txval114): 43(ptr) Variable Function + 182(txval124): 59(ptr) Variable Function + 198(txval201): 12(ptr) Variable Function + 208(txval211): 43(ptr) Variable Function + 217(txval221): 59(ptr) Variable Function + 226(txval204): 12(ptr) Variable Function + 242(txval214): 43(ptr) Variable Function + 258(txval224): 59(ptr) Variable Function + 274(txval301): 12(ptr) Variable Function + 284(txval311): 43(ptr) Variable Function + 293(txval321): 59(ptr) Variable Function + 302(txval304): 12(ptr) Variable Function + 318(txval314): 43(ptr) Variable Function + 334(txval324): 59(ptr) Variable Function + 351(psout): 350(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 35: 34(ptr) AccessChain 32 33 + 36: 24(fvec2) Load 35 + 39: 38(ptr) AccessChain 32 37 + 40: 27(ivec2) Load 39 + 42: 7(fvec4) ImageGather 23 36 41 Offset 40 + Store 13(txval001) 42 + 48: 45 Load 47(g_tTex2di4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 52: 34(ptr) AccessChain 32 33 + 53: 24(fvec2) Load 52 + 54: 38(ptr) AccessChain 32 37 + 55: 27(ivec2) Load 54 + 56: 29(ivec4) ImageGather 51 53 41 Offset 55 + Store 44(txval011) 56 + 64: 61 Load 63(g_tTex2du4) + 65: 18 Load 20(g_sSamp) + 67: 66 SampledImage 64 65 + 68: 34(ptr) AccessChain 32 33 + 69: 24(fvec2) Load 68 + 70: 38(ptr) AccessChain 32 37 + 71: 27(ivec2) Load 70 + 72: 58(ivec4) ImageGather 67 69 41 Offset 71 + Store 60(txval021) 72 + 74: 14 Load 16(g_tTex2df4) + 75: 18 Load 20(g_sSamp) + 76: 22 SampledImage 74 75 + 77: 34(ptr) AccessChain 32 33 + 78: 24(fvec2) Load 77 + 79: 38(ptr) AccessChain 32 37 + 80: 27(ivec2) Load 79 + 81: 38(ptr) AccessChain 32 37 + 82: 27(ivec2) Load 81 + 83: 38(ptr) AccessChain 32 37 + 84: 27(ivec2) Load 83 + 85: 38(ptr) AccessChain 32 37 + 86: 27(ivec2) Load 85 + 89: 88 CompositeConstruct 80 82 84 86 + 90: 7(fvec4) ImageGather 76 78 41 ConstOffsets 89 + Store 73(txval004) 90 + 92: 45 Load 47(g_tTex2di4) + 93: 18 Load 20(g_sSamp) + 94: 50 SampledImage 92 93 + 95: 34(ptr) AccessChain 32 33 + 96: 24(fvec2) Load 95 + 97: 38(ptr) AccessChain 32 37 + 98: 27(ivec2) Load 97 + 99: 38(ptr) AccessChain 32 37 + 100: 27(ivec2) Load 99 + 101: 38(ptr) AccessChain 32 37 + 102: 27(ivec2) Load 101 + 103: 38(ptr) AccessChain 32 37 + 104: 27(ivec2) Load 103 + 105: 88 CompositeConstruct 98 100 102 104 + 106: 29(ivec4) ImageGather 94 96 41 ConstOffsets 105 + Store 91(txval014) 106 + 108: 61 Load 63(g_tTex2du4) + 109: 18 Load 20(g_sSamp) + 110: 66 SampledImage 108 109 + 111: 34(ptr) AccessChain 32 33 + 112: 24(fvec2) Load 111 + 113: 38(ptr) AccessChain 32 37 + 114: 27(ivec2) Load 113 + 115: 38(ptr) AccessChain 32 37 + 116: 27(ivec2) Load 115 + 117: 38(ptr) AccessChain 32 37 + 118: 27(ivec2) Load 117 + 119: 38(ptr) AccessChain 32 37 + 120: 27(ivec2) Load 119 + 121: 88 CompositeConstruct 114 116 118 120 + 122: 58(ivec4) ImageGather 110 112 41 ConstOffsets 121 + Store 107(txval024) 122 + 124: 14 Load 16(g_tTex2df4) + 125: 18 Load 20(g_sSamp) + 126: 22 SampledImage 124 125 + 127: 34(ptr) AccessChain 32 33 + 128: 24(fvec2) Load 127 + 129: 38(ptr) AccessChain 32 37 + 130: 27(ivec2) Load 129 + 131: 7(fvec4) ImageGather 126 128 33 Offset 130 + Store 123(txval101) 131 + 133: 45 Load 47(g_tTex2di4) + 134: 18 Load 20(g_sSamp) + 135: 50 SampledImage 133 134 + 136: 34(ptr) AccessChain 32 33 + 137: 24(fvec2) Load 136 + 138: 38(ptr) AccessChain 32 37 + 139: 27(ivec2) Load 138 + 140: 29(ivec4) ImageGather 135 137 33 Offset 139 + Store 132(txval111) 140 + 142: 61 Load 63(g_tTex2du4) + 143: 18 Load 20(g_sSamp) + 144: 66 SampledImage 142 143 + 145: 34(ptr) AccessChain 32 33 + 146: 24(fvec2) Load 145 + 147: 38(ptr) AccessChain 32 37 + 148: 27(ivec2) Load 147 + 149: 58(ivec4) ImageGather 144 146 33 Offset 148 + Store 141(txval121) 149 + 151: 14 Load 16(g_tTex2df4) + 152: 18 Load 20(g_sSamp) + 153: 22 SampledImage 151 152 + 154: 34(ptr) AccessChain 32 33 + 155: 24(fvec2) Load 154 + 156: 38(ptr) AccessChain 32 37 + 157: 27(ivec2) Load 156 + 158: 38(ptr) AccessChain 32 37 + 159: 27(ivec2) Load 158 + 160: 38(ptr) AccessChain 32 37 + 161: 27(ivec2) Load 160 + 162: 38(ptr) AccessChain 32 37 + 163: 27(ivec2) Load 162 + 164: 88 CompositeConstruct 157 159 161 163 + 165: 7(fvec4) ImageGather 153 155 33 ConstOffsets 164 + Store 150(txval104) 165 + 167: 45 Load 47(g_tTex2di4) + 168: 18 Load 20(g_sSamp) + 169: 50 SampledImage 167 168 + 170: 34(ptr) AccessChain 32 33 + 171: 24(fvec2) Load 170 + 172: 38(ptr) AccessChain 32 37 + 173: 27(ivec2) Load 172 + 174: 38(ptr) AccessChain 32 37 + 175: 27(ivec2) Load 174 + 176: 38(ptr) AccessChain 32 37 + 177: 27(ivec2) Load 176 + 178: 38(ptr) AccessChain 32 37 + 179: 27(ivec2) Load 178 + 180: 88 CompositeConstruct 173 175 177 179 + 181: 29(ivec4) ImageGather 169 171 33 ConstOffsets 180 + Store 166(txval114) 181 + 183: 61 Load 63(g_tTex2du4) + 184: 18 Load 20(g_sSamp) + 185: 66 SampledImage 183 184 + 186: 34(ptr) AccessChain 32 33 + 187: 24(fvec2) Load 186 + 188: 38(ptr) AccessChain 32 37 + 189: 27(ivec2) Load 188 + 190: 38(ptr) AccessChain 32 37 + 191: 27(ivec2) Load 190 + 192: 38(ptr) AccessChain 32 37 + 193: 27(ivec2) Load 192 + 194: 38(ptr) AccessChain 32 37 + 195: 27(ivec2) Load 194 + 196: 88 CompositeConstruct 189 191 193 195 + 197: 58(ivec4) ImageGather 185 187 33 ConstOffsets 196 + Store 182(txval124) 197 + 199: 14 Load 16(g_tTex2df4) + 200: 18 Load 20(g_sSamp) + 201: 22 SampledImage 199 200 + 202: 34(ptr) AccessChain 32 33 + 203: 24(fvec2) Load 202 + 204: 38(ptr) AccessChain 32 37 + 205: 27(ivec2) Load 204 + 207: 7(fvec4) ImageGather 201 203 206 Offset 205 + Store 198(txval201) 207 + 209: 45 Load 47(g_tTex2di4) + 210: 18 Load 20(g_sSamp) + 211: 50 SampledImage 209 210 + 212: 34(ptr) AccessChain 32 33 + 213: 24(fvec2) Load 212 + 214: 38(ptr) AccessChain 32 37 + 215: 27(ivec2) Load 214 + 216: 29(ivec4) ImageGather 211 213 206 Offset 215 + Store 208(txval211) 216 + 218: 61 Load 63(g_tTex2du4) + 219: 18 Load 20(g_sSamp) + 220: 66 SampledImage 218 219 + 221: 34(ptr) AccessChain 32 33 + 222: 24(fvec2) Load 221 + 223: 38(ptr) AccessChain 32 37 + 224: 27(ivec2) Load 223 + 225: 58(ivec4) ImageGather 220 222 206 Offset 224 + Store 217(txval221) 225 + 227: 14 Load 16(g_tTex2df4) + 228: 18 Load 20(g_sSamp) + 229: 22 SampledImage 227 228 + 230: 34(ptr) AccessChain 32 33 + 231: 24(fvec2) Load 230 + 232: 38(ptr) AccessChain 32 37 + 233: 27(ivec2) Load 232 + 234: 38(ptr) AccessChain 32 37 + 235: 27(ivec2) Load 234 + 236: 38(ptr) AccessChain 32 37 + 237: 27(ivec2) Load 236 + 238: 38(ptr) AccessChain 32 37 + 239: 27(ivec2) Load 238 + 240: 88 CompositeConstruct 233 235 237 239 + 241: 7(fvec4) ImageGather 229 231 206 ConstOffsets 240 + Store 226(txval204) 241 + 243: 45 Load 47(g_tTex2di4) + 244: 18 Load 20(g_sSamp) + 245: 50 SampledImage 243 244 + 246: 34(ptr) AccessChain 32 33 + 247: 24(fvec2) Load 246 + 248: 38(ptr) AccessChain 32 37 + 249: 27(ivec2) Load 248 + 250: 38(ptr) AccessChain 32 37 + 251: 27(ivec2) Load 250 + 252: 38(ptr) AccessChain 32 37 + 253: 27(ivec2) Load 252 + 254: 38(ptr) AccessChain 32 37 + 255: 27(ivec2) Load 254 + 256: 88 CompositeConstruct 249 251 253 255 + 257: 29(ivec4) ImageGather 245 247 206 ConstOffsets 256 + Store 242(txval214) 257 + 259: 61 Load 63(g_tTex2du4) + 260: 18 Load 20(g_sSamp) + 261: 66 SampledImage 259 260 + 262: 34(ptr) AccessChain 32 33 + 263: 24(fvec2) Load 262 + 264: 38(ptr) AccessChain 32 37 + 265: 27(ivec2) Load 264 + 266: 38(ptr) AccessChain 32 37 + 267: 27(ivec2) Load 266 + 268: 38(ptr) AccessChain 32 37 + 269: 27(ivec2) Load 268 + 270: 38(ptr) AccessChain 32 37 + 271: 27(ivec2) Load 270 + 272: 88 CompositeConstruct 265 267 269 271 + 273: 58(ivec4) ImageGather 261 263 206 ConstOffsets 272 + Store 258(txval224) 273 + 275: 14 Load 16(g_tTex2df4) + 276: 18 Load 20(g_sSamp) + 277: 22 SampledImage 275 276 + 278: 34(ptr) AccessChain 32 33 + 279: 24(fvec2) Load 278 + 280: 38(ptr) AccessChain 32 37 + 281: 27(ivec2) Load 280 + 283: 7(fvec4) ImageGather 277 279 282 Offset 281 + Store 274(txval301) 283 + 285: 45 Load 47(g_tTex2di4) + 286: 18 Load 20(g_sSamp) + 287: 50 SampledImage 285 286 + 288: 34(ptr) AccessChain 32 33 + 289: 24(fvec2) Load 288 + 290: 38(ptr) AccessChain 32 37 + 291: 27(ivec2) Load 290 + 292: 29(ivec4) ImageGather 287 289 282 Offset 291 + Store 284(txval311) 292 + 294: 61 Load 63(g_tTex2du4) + 295: 18 Load 20(g_sSamp) + 296: 66 SampledImage 294 295 + 297: 34(ptr) AccessChain 32 33 + 298: 24(fvec2) Load 297 + 299: 38(ptr) AccessChain 32 37 + 300: 27(ivec2) Load 299 + 301: 58(ivec4) ImageGather 296 298 282 Offset 300 + Store 293(txval321) 301 + 303: 14 Load 16(g_tTex2df4) + 304: 18 Load 20(g_sSamp) + 305: 22 SampledImage 303 304 + 306: 34(ptr) AccessChain 32 33 + 307: 24(fvec2) Load 306 + 308: 38(ptr) AccessChain 32 37 + 309: 27(ivec2) Load 308 + 310: 38(ptr) AccessChain 32 37 + 311: 27(ivec2) Load 310 + 312: 38(ptr) AccessChain 32 37 + 313: 27(ivec2) Load 312 + 314: 38(ptr) AccessChain 32 37 + 315: 27(ivec2) Load 314 + 316: 88 CompositeConstruct 309 311 313 315 + 317: 7(fvec4) ImageGather 305 307 282 ConstOffsets 316 + Store 302(txval304) 317 + 319: 45 Load 47(g_tTex2di4) + 320: 18 Load 20(g_sSamp) + 321: 50 SampledImage 319 320 + 322: 34(ptr) AccessChain 32 33 + 323: 24(fvec2) Load 322 + 324: 38(ptr) AccessChain 32 37 + 325: 27(ivec2) Load 324 + 326: 38(ptr) AccessChain 32 37 + 327: 27(ivec2) Load 326 + 328: 38(ptr) AccessChain 32 37 + 329: 27(ivec2) Load 328 + 330: 38(ptr) AccessChain 32 37 + 331: 27(ivec2) Load 330 + 332: 88 CompositeConstruct 325 327 329 331 + 333: 29(ivec4) ImageGather 321 323 282 ConstOffsets 332 + Store 318(txval314) 333 + 335: 61 Load 63(g_tTex2du4) + 336: 18 Load 20(g_sSamp) + 337: 66 SampledImage 335 336 + 338: 34(ptr) AccessChain 32 33 + 339: 24(fvec2) Load 338 + 340: 38(ptr) AccessChain 32 37 + 341: 27(ivec2) Load 340 + 342: 38(ptr) AccessChain 32 37 + 343: 27(ivec2) Load 342 + 344: 38(ptr) AccessChain 32 37 + 345: 27(ivec2) Load 344 + 346: 38(ptr) AccessChain 32 37 + 347: 27(ivec2) Load 346 + 348: 88 CompositeConstruct 341 343 345 347 + 349: 58(ivec4) ImageGather 337 339 282 ConstOffsets 348 + Store 334(txval324) 349 + 354: 12(ptr) AccessChain 351(psout) 41 + Store 354 353 + 356: 355(ptr) AccessChain 351(psout) 33 + Store 356 352 + 357:8(PS_OUTPUT) Load 351(psout) + ReturnValue 357 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..9de1a97216 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -0,0 +1,1766 @@ +hlsl.gatherRGBA.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'txval001' ( temp 4-component vector of float) +0:40 textureGatherOffset ( temp 4-component vector of float) +0:40 Construct combined texture-sampler ( temp sampler2DArray) +0:40 'g_tTex2df4a' ( uniform texture2DArray) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:40 c3: direct index for structure ( uniform 3-component vector of float) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure ( uniform 2-component vector of int) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of int) +0:41 'txval011' ( temp 4-component vector of int) +0:41 textureGatherOffset ( temp 4-component vector of int) +0:41 Construct combined texture-sampler ( temp isampler2DArray) +0:41 'g_tTex2di4a' ( uniform itexture2DArray) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:41 c3: direct index for structure ( uniform 3-component vector of float) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure ( uniform 2-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of uint) +0:42 'txval021' ( temp 4-component vector of uint) +0:42 textureGatherOffset ( temp 4-component vector of uint) +0:42 Construct combined texture-sampler ( temp usampler2DArray) +0:42 'g_tTex2du4a' ( uniform utexture2DArray) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 c3: direct index for structure ( uniform 3-component vector of float) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure ( uniform 2-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'txval004' ( temp 4-component vector of float) +0:44 textureGatherOffsets ( temp 4-component vector of float) +0:44 Construct combined texture-sampler ( temp sampler2DArray) +0:44 'g_tTex2df4a' ( uniform texture2DArray) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 c3: direct index for structure ( uniform 3-component vector of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of int) +0:45 'txval014' ( temp 4-component vector of int) +0:45 textureGatherOffsets ( temp 4-component vector of int) +0:45 Construct combined texture-sampler ( temp isampler2DArray) +0:45 'g_tTex2di4a' ( uniform itexture2DArray) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:45 c3: direct index for structure ( uniform 3-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of uint) +0:46 'txval024' ( temp 4-component vector of uint) +0:46 textureGatherOffsets ( temp 4-component vector of uint) +0:46 Construct combined texture-sampler ( temp usampler2DArray) +0:46 'g_tTex2du4a' ( uniform utexture2DArray) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:46 c3: direct index for structure ( uniform 3-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child ( temp 4-component vector of float) +0:56 'txval101' ( temp 4-component vector of float) +0:56 textureGatherOffset ( temp 4-component vector of float) +0:56 Construct combined texture-sampler ( temp sampler2DArray) +0:56 'g_tTex2df4a' ( uniform texture2DArray) +0:56 'g_sSamp' (layout( binding=0) uniform sampler) +0:56 c3: direct index for structure ( uniform 3-component vector of float) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure ( uniform 2-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of int) +0:57 'txval111' ( temp 4-component vector of int) +0:57 textureGatherOffset ( temp 4-component vector of int) +0:57 Construct combined texture-sampler ( temp isampler2DArray) +0:57 'g_tTex2di4a' ( uniform itexture2DArray) +0:57 'g_sSamp' (layout( binding=0) uniform sampler) +0:57 c3: direct index for structure ( uniform 3-component vector of float) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child ( temp 4-component vector of uint) +0:58 'txval121' ( temp 4-component vector of uint) +0:58 textureGatherOffset ( temp 4-component vector of uint) +0:58 Construct combined texture-sampler ( temp usampler2DArray) +0:58 'g_tTex2du4a' ( uniform utexture2DArray) +0:58 'g_sSamp' (layout( binding=0) uniform sampler) +0:58 c3: direct index for structure ( uniform 3-component vector of float) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child ( temp 4-component vector of float) +0:60 'txval104' ( temp 4-component vector of float) +0:60 textureGatherOffsets ( temp 4-component vector of float) +0:60 Construct combined texture-sampler ( temp sampler2DArray) +0:60 'g_tTex2df4a' ( uniform texture2DArray) +0:60 'g_sSamp' (layout( binding=0) uniform sampler) +0:60 c3: direct index for structure ( uniform 3-component vector of float) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) +0:60 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of int) +0:61 'txval114' ( temp 4-component vector of int) +0:61 textureGatherOffsets ( temp 4-component vector of int) +0:61 Construct combined texture-sampler ( temp isampler2DArray) +0:61 'g_tTex2di4a' ( uniform itexture2DArray) +0:61 'g_sSamp' (layout( binding=0) uniform sampler) +0:61 c3: direct index for structure ( uniform 3-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of uint) +0:62 'txval124' ( temp 4-component vector of uint) +0:62 textureGatherOffsets ( temp 4-component vector of uint) +0:62 Construct combined texture-sampler ( temp usampler2DArray) +0:62 'g_tTex2du4a' ( uniform utexture2DArray) +0:62 'g_sSamp' (layout( binding=0) uniform sampler) +0:62 c3: direct index for structure ( uniform 3-component vector of float) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child ( temp 4-component vector of float) +0:72 'txval201' ( temp 4-component vector of float) +0:72 textureGatherOffset ( temp 4-component vector of float) +0:72 Construct combined texture-sampler ( temp sampler2DArray) +0:72 'g_tTex2df4a' ( uniform texture2DArray) +0:72 'g_sSamp' (layout( binding=0) uniform sampler) +0:72 c3: direct index for structure ( uniform 3-component vector of float) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure ( uniform 2-component vector of int) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child ( temp 4-component vector of int) +0:73 'txval211' ( temp 4-component vector of int) +0:73 textureGatherOffset ( temp 4-component vector of int) +0:73 Construct combined texture-sampler ( temp isampler2DArray) +0:73 'g_tTex2di4a' ( uniform itexture2DArray) +0:73 'g_sSamp' (layout( binding=0) uniform sampler) +0:73 c3: direct index for structure ( uniform 3-component vector of float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure ( uniform 2-component vector of int) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child ( temp 4-component vector of uint) +0:74 'txval221' ( temp 4-component vector of uint) +0:74 textureGatherOffset ( temp 4-component vector of uint) +0:74 Construct combined texture-sampler ( temp usampler2DArray) +0:74 'g_tTex2du4a' ( uniform utexture2DArray) +0:74 'g_sSamp' (layout( binding=0) uniform sampler) +0:74 c3: direct index for structure ( uniform 3-component vector of float) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure ( uniform 2-component vector of int) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child ( temp 4-component vector of float) +0:76 'txval204' ( temp 4-component vector of float) +0:76 textureGatherOffsets ( temp 4-component vector of float) +0:76 Construct combined texture-sampler ( temp sampler2DArray) +0:76 'g_tTex2df4a' ( uniform texture2DArray) +0:76 'g_sSamp' (layout( binding=0) uniform sampler) +0:76 c3: direct index for structure ( uniform 3-component vector of float) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) +0:76 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child ( temp 4-component vector of int) +0:77 'txval214' ( temp 4-component vector of int) +0:77 textureGatherOffsets ( temp 4-component vector of int) +0:77 Construct combined texture-sampler ( temp isampler2DArray) +0:77 'g_tTex2di4a' ( uniform itexture2DArray) +0:77 'g_sSamp' (layout( binding=0) uniform sampler) +0:77 c3: direct index for structure ( uniform 3-component vector of float) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) +0:77 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 4-component vector of uint) +0:78 'txval224' ( temp 4-component vector of uint) +0:78 textureGatherOffsets ( temp 4-component vector of uint) +0:78 Construct combined texture-sampler ( temp usampler2DArray) +0:78 'g_tTex2du4a' ( uniform utexture2DArray) +0:78 'g_sSamp' (layout( binding=0) uniform sampler) +0:78 c3: direct index for structure ( uniform 3-component vector of float) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) +0:78 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child ( temp 4-component vector of float) +0:88 'txval301' ( temp 4-component vector of float) +0:88 textureGatherOffset ( temp 4-component vector of float) +0:88 Construct combined texture-sampler ( temp sampler2DArray) +0:88 'g_tTex2df4a' ( uniform texture2DArray) +0:88 'g_sSamp' (layout( binding=0) uniform sampler) +0:88 c3: direct index for structure ( uniform 3-component vector of float) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure ( uniform 2-component vector of int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child ( temp 4-component vector of int) +0:89 'txval311' ( temp 4-component vector of int) +0:89 textureGatherOffset ( temp 4-component vector of int) +0:89 Construct combined texture-sampler ( temp isampler2DArray) +0:89 'g_tTex2di4a' ( uniform itexture2DArray) +0:89 'g_sSamp' (layout( binding=0) uniform sampler) +0:89 c3: direct index for structure ( uniform 3-component vector of float) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure ( uniform 2-component vector of int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 4-component vector of uint) +0:90 'txval321' ( temp 4-component vector of uint) +0:90 textureGatherOffset ( temp 4-component vector of uint) +0:90 Construct combined texture-sampler ( temp usampler2DArray) +0:90 'g_tTex2du4a' ( uniform utexture2DArray) +0:90 'g_sSamp' (layout( binding=0) uniform sampler) +0:90 c3: direct index for structure ( uniform 3-component vector of float) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure ( uniform 2-component vector of int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child ( temp 4-component vector of float) +0:92 'txval304' ( temp 4-component vector of float) +0:92 textureGatherOffsets ( temp 4-component vector of float) +0:92 Construct combined texture-sampler ( temp sampler2DArray) +0:92 'g_tTex2df4a' ( uniform texture2DArray) +0:92 'g_sSamp' (layout( binding=0) uniform sampler) +0:92 c3: direct index for structure ( uniform 3-component vector of float) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) +0:92 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child ( temp 4-component vector of int) +0:93 'txval314' ( temp 4-component vector of int) +0:93 textureGatherOffsets ( temp 4-component vector of int) +0:93 Construct combined texture-sampler ( temp isampler2DArray) +0:93 'g_tTex2di4a' ( uniform itexture2DArray) +0:93 'g_sSamp' (layout( binding=0) uniform sampler) +0:93 c3: direct index for structure ( uniform 3-component vector of float) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) +0:93 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 'txval324' ( temp 4-component vector of uint) +0:94 textureGatherOffsets ( temp 4-component vector of uint) +0:94 Construct combined texture-sampler ( temp usampler2DArray) +0:94 'g_tTex2du4a' ( uniform utexture2DArray) +0:94 'g_sSamp' (layout( binding=0) uniform sampler) +0:94 c3: direct index for structure ( uniform 3-component vector of float) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) +0:94 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child ( temp 4-component vector of float) +0:106 Color: direct index for structure ( temp 4-component vector of float) +0:106 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:107 move second child to first child ( temp float) +0:107 Depth: direct index for structure ( temp float) +0:107 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 1.000000 +0:109 Branch: Return with expression +0:109 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Function Definition: main( ( temp void) +0:33 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:33 Depth: direct index for structure ( temp float) +0:33 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'txval001' ( temp 4-component vector of float) +0:40 textureGatherOffset ( temp 4-component vector of float) +0:40 Construct combined texture-sampler ( temp sampler2DArray) +0:40 'g_tTex2df4a' ( uniform texture2DArray) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:40 c3: direct index for structure ( uniform 3-component vector of float) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure ( uniform 2-component vector of int) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of int) +0:41 'txval011' ( temp 4-component vector of int) +0:41 textureGatherOffset ( temp 4-component vector of int) +0:41 Construct combined texture-sampler ( temp isampler2DArray) +0:41 'g_tTex2di4a' ( uniform itexture2DArray) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:41 c3: direct index for structure ( uniform 3-component vector of float) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure ( uniform 2-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of uint) +0:42 'txval021' ( temp 4-component vector of uint) +0:42 textureGatherOffset ( temp 4-component vector of uint) +0:42 Construct combined texture-sampler ( temp usampler2DArray) +0:42 'g_tTex2du4a' ( uniform utexture2DArray) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 c3: direct index for structure ( uniform 3-component vector of float) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure ( uniform 2-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'txval004' ( temp 4-component vector of float) +0:44 textureGatherOffsets ( temp 4-component vector of float) +0:44 Construct combined texture-sampler ( temp sampler2DArray) +0:44 'g_tTex2df4a' ( uniform texture2DArray) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 c3: direct index for structure ( uniform 3-component vector of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of int) +0:45 'txval014' ( temp 4-component vector of int) +0:45 textureGatherOffsets ( temp 4-component vector of int) +0:45 Construct combined texture-sampler ( temp isampler2DArray) +0:45 'g_tTex2di4a' ( uniform itexture2DArray) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:45 c3: direct index for structure ( uniform 3-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) +0:45 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of uint) +0:46 'txval024' ( temp 4-component vector of uint) +0:46 textureGatherOffsets ( temp 4-component vector of uint) +0:46 Construct combined texture-sampler ( temp usampler2DArray) +0:46 'g_tTex2du4a' ( uniform utexture2DArray) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:46 c3: direct index for structure ( uniform 3-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) +0:46 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child ( temp 4-component vector of float) +0:56 'txval101' ( temp 4-component vector of float) +0:56 textureGatherOffset ( temp 4-component vector of float) +0:56 Construct combined texture-sampler ( temp sampler2DArray) +0:56 'g_tTex2df4a' ( uniform texture2DArray) +0:56 'g_sSamp' (layout( binding=0) uniform sampler) +0:56 c3: direct index for structure ( uniform 3-component vector of float) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure ( uniform 2-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of int) +0:57 'txval111' ( temp 4-component vector of int) +0:57 textureGatherOffset ( temp 4-component vector of int) +0:57 Construct combined texture-sampler ( temp isampler2DArray) +0:57 'g_tTex2di4a' ( uniform itexture2DArray) +0:57 'g_sSamp' (layout( binding=0) uniform sampler) +0:57 c3: direct index for structure ( uniform 3-component vector of float) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child ( temp 4-component vector of uint) +0:58 'txval121' ( temp 4-component vector of uint) +0:58 textureGatherOffset ( temp 4-component vector of uint) +0:58 Construct combined texture-sampler ( temp usampler2DArray) +0:58 'g_tTex2du4a' ( uniform utexture2DArray) +0:58 'g_sSamp' (layout( binding=0) uniform sampler) +0:58 c3: direct index for structure ( uniform 3-component vector of float) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child ( temp 4-component vector of float) +0:60 'txval104' ( temp 4-component vector of float) +0:60 textureGatherOffsets ( temp 4-component vector of float) +0:60 Construct combined texture-sampler ( temp sampler2DArray) +0:60 'g_tTex2df4a' ( uniform texture2DArray) +0:60 'g_sSamp' (layout( binding=0) uniform sampler) +0:60 c3: direct index for structure ( uniform 3-component vector of float) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) +0:60 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure ( uniform 2-component vector of int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of int) +0:61 'txval114' ( temp 4-component vector of int) +0:61 textureGatherOffsets ( temp 4-component vector of int) +0:61 Construct combined texture-sampler ( temp isampler2DArray) +0:61 'g_tTex2di4a' ( uniform itexture2DArray) +0:61 'g_sSamp' (layout( binding=0) uniform sampler) +0:61 c3: direct index for structure ( uniform 3-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure ( uniform 2-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of uint) +0:62 'txval124' ( temp 4-component vector of uint) +0:62 textureGatherOffsets ( temp 4-component vector of uint) +0:62 Construct combined texture-sampler ( temp usampler2DArray) +0:62 'g_tTex2du4a' ( uniform utexture2DArray) +0:62 'g_sSamp' (layout( binding=0) uniform sampler) +0:62 c3: direct index for structure ( uniform 3-component vector of float) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure ( uniform 2-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child ( temp 4-component vector of float) +0:72 'txval201' ( temp 4-component vector of float) +0:72 textureGatherOffset ( temp 4-component vector of float) +0:72 Construct combined texture-sampler ( temp sampler2DArray) +0:72 'g_tTex2df4a' ( uniform texture2DArray) +0:72 'g_sSamp' (layout( binding=0) uniform sampler) +0:72 c3: direct index for structure ( uniform 3-component vector of float) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure ( uniform 2-component vector of int) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child ( temp 4-component vector of int) +0:73 'txval211' ( temp 4-component vector of int) +0:73 textureGatherOffset ( temp 4-component vector of int) +0:73 Construct combined texture-sampler ( temp isampler2DArray) +0:73 'g_tTex2di4a' ( uniform itexture2DArray) +0:73 'g_sSamp' (layout( binding=0) uniform sampler) +0:73 c3: direct index for structure ( uniform 3-component vector of float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure ( uniform 2-component vector of int) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child ( temp 4-component vector of uint) +0:74 'txval221' ( temp 4-component vector of uint) +0:74 textureGatherOffset ( temp 4-component vector of uint) +0:74 Construct combined texture-sampler ( temp usampler2DArray) +0:74 'g_tTex2du4a' ( uniform utexture2DArray) +0:74 'g_sSamp' (layout( binding=0) uniform sampler) +0:74 c3: direct index for structure ( uniform 3-component vector of float) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure ( uniform 2-component vector of int) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child ( temp 4-component vector of float) +0:76 'txval204' ( temp 4-component vector of float) +0:76 textureGatherOffsets ( temp 4-component vector of float) +0:76 Construct combined texture-sampler ( temp sampler2DArray) +0:76 'g_tTex2df4a' ( uniform texture2DArray) +0:76 'g_sSamp' (layout( binding=0) uniform sampler) +0:76 c3: direct index for structure ( uniform 3-component vector of float) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) +0:76 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure ( uniform 2-component vector of int) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child ( temp 4-component vector of int) +0:77 'txval214' ( temp 4-component vector of int) +0:77 textureGatherOffsets ( temp 4-component vector of int) +0:77 Construct combined texture-sampler ( temp isampler2DArray) +0:77 'g_tTex2di4a' ( uniform itexture2DArray) +0:77 'g_sSamp' (layout( binding=0) uniform sampler) +0:77 c3: direct index for structure ( uniform 3-component vector of float) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) +0:77 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure ( uniform 2-component vector of int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 4-component vector of uint) +0:78 'txval224' ( temp 4-component vector of uint) +0:78 textureGatherOffsets ( temp 4-component vector of uint) +0:78 Construct combined texture-sampler ( temp usampler2DArray) +0:78 'g_tTex2du4a' ( uniform utexture2DArray) +0:78 'g_sSamp' (layout( binding=0) uniform sampler) +0:78 c3: direct index for structure ( uniform 3-component vector of float) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) +0:78 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure ( uniform 2-component vector of int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child ( temp 4-component vector of float) +0:88 'txval301' ( temp 4-component vector of float) +0:88 textureGatherOffset ( temp 4-component vector of float) +0:88 Construct combined texture-sampler ( temp sampler2DArray) +0:88 'g_tTex2df4a' ( uniform texture2DArray) +0:88 'g_sSamp' (layout( binding=0) uniform sampler) +0:88 c3: direct index for structure ( uniform 3-component vector of float) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure ( uniform 2-component vector of int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child ( temp 4-component vector of int) +0:89 'txval311' ( temp 4-component vector of int) +0:89 textureGatherOffset ( temp 4-component vector of int) +0:89 Construct combined texture-sampler ( temp isampler2DArray) +0:89 'g_tTex2di4a' ( uniform itexture2DArray) +0:89 'g_sSamp' (layout( binding=0) uniform sampler) +0:89 c3: direct index for structure ( uniform 3-component vector of float) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure ( uniform 2-component vector of int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 4-component vector of uint) +0:90 'txval321' ( temp 4-component vector of uint) +0:90 textureGatherOffset ( temp 4-component vector of uint) +0:90 Construct combined texture-sampler ( temp usampler2DArray) +0:90 'g_tTex2du4a' ( uniform utexture2DArray) +0:90 'g_sSamp' (layout( binding=0) uniform sampler) +0:90 c3: direct index for structure ( uniform 3-component vector of float) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure ( uniform 2-component vector of int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child ( temp 4-component vector of float) +0:92 'txval304' ( temp 4-component vector of float) +0:92 textureGatherOffsets ( temp 4-component vector of float) +0:92 Construct combined texture-sampler ( temp sampler2DArray) +0:92 'g_tTex2df4a' ( uniform texture2DArray) +0:92 'g_sSamp' (layout( binding=0) uniform sampler) +0:92 c3: direct index for structure ( uniform 3-component vector of float) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) +0:92 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child ( temp 4-component vector of int) +0:93 'txval314' ( temp 4-component vector of int) +0:93 textureGatherOffsets ( temp 4-component vector of int) +0:93 Construct combined texture-sampler ( temp isampler2DArray) +0:93 'g_tTex2di4a' ( uniform itexture2DArray) +0:93 'g_sSamp' (layout( binding=0) uniform sampler) +0:93 c3: direct index for structure ( uniform 3-component vector of float) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) +0:93 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 'txval324' ( temp 4-component vector of uint) +0:94 textureGatherOffsets ( temp 4-component vector of uint) +0:94 Construct combined texture-sampler ( temp usampler2DArray) +0:94 'g_tTex2du4a' ( uniform utexture2DArray) +0:94 'g_sSamp' (layout( binding=0) uniform sampler) +0:94 c3: direct index for structure ( uniform 3-component vector of float) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) +0:94 Construct ivec2 ( temp 4-element array of 2-component vector of int) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child ( temp 4-component vector of float) +0:106 Color: direct index for structure ( temp 4-component vector of float) +0:106 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:107 move second child to first child ( temp float) +0:107 Depth: direct index for structure ( temp float) +0:107 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 1.000000 +0:109 Branch: Return with expression +0:109 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Function Definition: main( ( temp void) +0:33 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:33 Depth: direct index for structure ( temp float) +0:33 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 389 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 363 367 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval001" + Name 16 "g_tTex2df4a" + Name 20 "g_sSamp" + Name 30 "$Global" + MemberName 30($Global) 0 "c1" + MemberName 30($Global) 1 "c2" + MemberName 30($Global) 2 "c3" + MemberName 30($Global) 3 "c4" + MemberName 30($Global) 4 "o1" + MemberName 30($Global) 5 "o2" + MemberName 30($Global) 6 "o3" + MemberName 30($Global) 7 "o4" + Name 32 "" + Name 44 "txval011" + Name 47 "g_tTex2di4a" + Name 60 "txval021" + Name 63 "g_tTex2du4a" + Name 73 "txval004" + Name 91 "txval014" + Name 107 "txval024" + Name 123 "txval101" + Name 133 "txval111" + Name 142 "txval121" + Name 151 "txval104" + Name 167 "txval114" + Name 183 "txval124" + Name 199 "txval201" + Name 208 "txval211" + Name 217 "txval221" + Name 226 "txval204" + Name 242 "txval214" + Name 258 "txval224" + Name 274 "txval301" + Name 284 "txval311" + Name 293 "txval321" + Name 302 "txval304" + Name 318 "txval314" + Name 334 "txval324" + Name 351 "psout" + Name 360 "flattenTemp" + Name 363 "@entryPointOutput.Color" + Name 367 "@entryPointOutput.Depth" + Name 370 "g_sSamp2d" + Name 373 "g_tTex1df4a" + Name 376 "g_tTex1di4a" + Name 379 "g_tTex1du4a" + Name 382 "g_tTexcdf4a" + Name 385 "g_tTexcdi4a" + Name 388 "g_tTexcdu4a" + Decorate 16(g_tTex2df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + MemberDecorate 30($Global) 0 Offset 0 + MemberDecorate 30($Global) 1 Offset 8 + MemberDecorate 30($Global) 2 Offset 16 + MemberDecorate 30($Global) 3 Offset 32 + MemberDecorate 30($Global) 4 Offset 48 + MemberDecorate 30($Global) 5 Offset 56 + MemberDecorate 30($Global) 6 Offset 64 + MemberDecorate 30($Global) 7 Offset 80 + Decorate 30($Global) Block + Decorate 32 DescriptorSet 0 + Decorate 47(g_tTex2di4a) DescriptorSet 0 + Decorate 63(g_tTex2du4a) DescriptorSet 0 + Decorate 363(@entryPointOutput.Color) Location 0 + Decorate 367(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 370(g_sSamp2d) DescriptorSet 0 + Decorate 373(g_tTex1df4a) DescriptorSet 0 + Decorate 373(g_tTex1df4a) Binding 0 + Decorate 376(g_tTex1di4a) DescriptorSet 0 + Decorate 379(g_tTex1du4a) DescriptorSet 0 + Decorate 382(g_tTexcdf4a) DescriptorSet 0 + Decorate 385(g_tTexcdi4a) DescriptorSet 0 + Decorate 388(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: TypeVector 6(float) 3 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 2 + 28: TypeVector 26(int) 3 + 29: TypeVector 26(int) 4 + 30($Global): TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) 26(int) 27(ivec2) 28(ivec3) 29(ivec4) + 31: TypePointer Uniform 30($Global) + 32: 31(ptr) Variable Uniform + 33: 26(int) Constant 2 + 34: TypePointer Uniform 25(fvec3) + 37: 26(int) Constant 5 + 38: TypePointer Uniform 27(ivec2) + 41: 26(int) Constant 0 + 43: TypePointer Function 29(ivec4) + 45: TypeImage 26(int) 2D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2di4a): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 57: TypeInt 32 0 + 58: TypeVector 57(int) 4 + 59: TypePointer Function 58(ivec4) + 61: TypeImage 57(int) 2D array sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2du4a): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 87: 57(int) Constant 4 + 88: TypeArray 27(ivec2) 87 + 131: 26(int) Constant 1 + 282: 26(int) Constant 3 + 350: TypePointer Function 8(PS_OUTPUT) + 352: 6(float) Constant 1065353216 + 353: 7(fvec4) ConstantComposite 352 352 352 352 + 355: TypePointer Function 6(float) + 362: TypePointer Output 7(fvec4) +363(@entryPointOutput.Color): 362(ptr) Variable Output + 366: TypePointer Output 6(float) +367(@entryPointOutput.Depth): 366(ptr) Variable Output + 370(g_sSamp2d): 19(ptr) Variable UniformConstant + 371: TypeImage 6(float) 1D array sampled format:Unknown + 372: TypePointer UniformConstant 371 +373(g_tTex1df4a): 372(ptr) Variable UniformConstant + 374: TypeImage 26(int) 1D array sampled format:Unknown + 375: TypePointer UniformConstant 374 +376(g_tTex1di4a): 375(ptr) Variable UniformConstant + 377: TypeImage 57(int) 1D array sampled format:Unknown + 378: TypePointer UniformConstant 377 +379(g_tTex1du4a): 378(ptr) Variable UniformConstant + 380: TypeImage 6(float) Cube array sampled format:Unknown + 381: TypePointer UniformConstant 380 +382(g_tTexcdf4a): 381(ptr) Variable UniformConstant + 383: TypeImage 26(int) Cube array sampled format:Unknown + 384: TypePointer UniformConstant 383 +385(g_tTexcdi4a): 384(ptr) Variable UniformConstant + 386: TypeImage 57(int) Cube array sampled format:Unknown + 387: TypePointer UniformConstant 386 +388(g_tTexcdu4a): 387(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +360(flattenTemp): 350(ptr) Variable Function + 361:8(PS_OUTPUT) FunctionCall 10(@main() + Store 360(flattenTemp) 361 + 364: 12(ptr) AccessChain 360(flattenTemp) 41 + 365: 7(fvec4) Load 364 + Store 363(@entryPointOutput.Color) 365 + 368: 355(ptr) AccessChain 360(flattenTemp) 131 + 369: 6(float) Load 368 + Store 367(@entryPointOutput.Depth) 369 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval001): 12(ptr) Variable Function + 44(txval011): 43(ptr) Variable Function + 60(txval021): 59(ptr) Variable Function + 73(txval004): 12(ptr) Variable Function + 91(txval014): 43(ptr) Variable Function + 107(txval024): 59(ptr) Variable Function + 123(txval101): 12(ptr) Variable Function + 133(txval111): 43(ptr) Variable Function + 142(txval121): 59(ptr) Variable Function + 151(txval104): 12(ptr) Variable Function + 167(txval114): 43(ptr) Variable Function + 183(txval124): 59(ptr) Variable Function + 199(txval201): 12(ptr) Variable Function + 208(txval211): 43(ptr) Variable Function + 217(txval221): 59(ptr) Variable Function + 226(txval204): 12(ptr) Variable Function + 242(txval214): 43(ptr) Variable Function + 258(txval224): 59(ptr) Variable Function + 274(txval301): 12(ptr) Variable Function + 284(txval311): 43(ptr) Variable Function + 293(txval321): 59(ptr) Variable Function + 302(txval304): 12(ptr) Variable Function + 318(txval314): 43(ptr) Variable Function + 334(txval324): 59(ptr) Variable Function + 351(psout): 350(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 35: 34(ptr) AccessChain 32 33 + 36: 25(fvec3) Load 35 + 39: 38(ptr) AccessChain 32 37 + 40: 27(ivec2) Load 39 + 42: 7(fvec4) ImageGather 23 36 41 Offset 40 + Store 13(txval001) 42 + 48: 45 Load 47(g_tTex2di4a) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 52: 34(ptr) AccessChain 32 33 + 53: 25(fvec3) Load 52 + 54: 38(ptr) AccessChain 32 37 + 55: 27(ivec2) Load 54 + 56: 29(ivec4) ImageGather 51 53 41 Offset 55 + Store 44(txval011) 56 + 64: 61 Load 63(g_tTex2du4a) + 65: 18 Load 20(g_sSamp) + 67: 66 SampledImage 64 65 + 68: 34(ptr) AccessChain 32 33 + 69: 25(fvec3) Load 68 + 70: 38(ptr) AccessChain 32 37 + 71: 27(ivec2) Load 70 + 72: 58(ivec4) ImageGather 67 69 41 Offset 71 + Store 60(txval021) 72 + 74: 14 Load 16(g_tTex2df4a) + 75: 18 Load 20(g_sSamp) + 76: 22 SampledImage 74 75 + 77: 34(ptr) AccessChain 32 33 + 78: 25(fvec3) Load 77 + 79: 38(ptr) AccessChain 32 37 + 80: 27(ivec2) Load 79 + 81: 38(ptr) AccessChain 32 37 + 82: 27(ivec2) Load 81 + 83: 38(ptr) AccessChain 32 37 + 84: 27(ivec2) Load 83 + 85: 38(ptr) AccessChain 32 37 + 86: 27(ivec2) Load 85 + 89: 88 CompositeConstruct 80 82 84 86 + 90: 7(fvec4) ImageGather 76 78 41 ConstOffsets 89 + Store 73(txval004) 90 + 92: 45 Load 47(g_tTex2di4a) + 93: 18 Load 20(g_sSamp) + 94: 50 SampledImage 92 93 + 95: 34(ptr) AccessChain 32 33 + 96: 25(fvec3) Load 95 + 97: 38(ptr) AccessChain 32 37 + 98: 27(ivec2) Load 97 + 99: 38(ptr) AccessChain 32 37 + 100: 27(ivec2) Load 99 + 101: 38(ptr) AccessChain 32 37 + 102: 27(ivec2) Load 101 + 103: 38(ptr) AccessChain 32 37 + 104: 27(ivec2) Load 103 + 105: 88 CompositeConstruct 98 100 102 104 + 106: 29(ivec4) ImageGather 94 96 41 ConstOffsets 105 + Store 91(txval014) 106 + 108: 61 Load 63(g_tTex2du4a) + 109: 18 Load 20(g_sSamp) + 110: 66 SampledImage 108 109 + 111: 34(ptr) AccessChain 32 33 + 112: 25(fvec3) Load 111 + 113: 38(ptr) AccessChain 32 37 + 114: 27(ivec2) Load 113 + 115: 38(ptr) AccessChain 32 37 + 116: 27(ivec2) Load 115 + 117: 38(ptr) AccessChain 32 37 + 118: 27(ivec2) Load 117 + 119: 38(ptr) AccessChain 32 37 + 120: 27(ivec2) Load 119 + 121: 88 CompositeConstruct 114 116 118 120 + 122: 58(ivec4) ImageGather 110 112 41 ConstOffsets 121 + Store 107(txval024) 122 + 124: 14 Load 16(g_tTex2df4a) + 125: 18 Load 20(g_sSamp) + 126: 22 SampledImage 124 125 + 127: 34(ptr) AccessChain 32 33 + 128: 25(fvec3) Load 127 + 129: 38(ptr) AccessChain 32 37 + 130: 27(ivec2) Load 129 + 132: 7(fvec4) ImageGather 126 128 131 Offset 130 + Store 123(txval101) 132 + 134: 45 Load 47(g_tTex2di4a) + 135: 18 Load 20(g_sSamp) + 136: 50 SampledImage 134 135 + 137: 34(ptr) AccessChain 32 33 + 138: 25(fvec3) Load 137 + 139: 38(ptr) AccessChain 32 37 + 140: 27(ivec2) Load 139 + 141: 29(ivec4) ImageGather 136 138 131 Offset 140 + Store 133(txval111) 141 + 143: 61 Load 63(g_tTex2du4a) + 144: 18 Load 20(g_sSamp) + 145: 66 SampledImage 143 144 + 146: 34(ptr) AccessChain 32 33 + 147: 25(fvec3) Load 146 + 148: 38(ptr) AccessChain 32 37 + 149: 27(ivec2) Load 148 + 150: 58(ivec4) ImageGather 145 147 131 Offset 149 + Store 142(txval121) 150 + 152: 14 Load 16(g_tTex2df4a) + 153: 18 Load 20(g_sSamp) + 154: 22 SampledImage 152 153 + 155: 34(ptr) AccessChain 32 33 + 156: 25(fvec3) Load 155 + 157: 38(ptr) AccessChain 32 37 + 158: 27(ivec2) Load 157 + 159: 38(ptr) AccessChain 32 37 + 160: 27(ivec2) Load 159 + 161: 38(ptr) AccessChain 32 37 + 162: 27(ivec2) Load 161 + 163: 38(ptr) AccessChain 32 37 + 164: 27(ivec2) Load 163 + 165: 88 CompositeConstruct 158 160 162 164 + 166: 7(fvec4) ImageGather 154 156 131 ConstOffsets 165 + Store 151(txval104) 166 + 168: 45 Load 47(g_tTex2di4a) + 169: 18 Load 20(g_sSamp) + 170: 50 SampledImage 168 169 + 171: 34(ptr) AccessChain 32 33 + 172: 25(fvec3) Load 171 + 173: 38(ptr) AccessChain 32 37 + 174: 27(ivec2) Load 173 + 175: 38(ptr) AccessChain 32 37 + 176: 27(ivec2) Load 175 + 177: 38(ptr) AccessChain 32 37 + 178: 27(ivec2) Load 177 + 179: 38(ptr) AccessChain 32 37 + 180: 27(ivec2) Load 179 + 181: 88 CompositeConstruct 174 176 178 180 + 182: 29(ivec4) ImageGather 170 172 131 ConstOffsets 181 + Store 167(txval114) 182 + 184: 61 Load 63(g_tTex2du4a) + 185: 18 Load 20(g_sSamp) + 186: 66 SampledImage 184 185 + 187: 34(ptr) AccessChain 32 33 + 188: 25(fvec3) Load 187 + 189: 38(ptr) AccessChain 32 37 + 190: 27(ivec2) Load 189 + 191: 38(ptr) AccessChain 32 37 + 192: 27(ivec2) Load 191 + 193: 38(ptr) AccessChain 32 37 + 194: 27(ivec2) Load 193 + 195: 38(ptr) AccessChain 32 37 + 196: 27(ivec2) Load 195 + 197: 88 CompositeConstruct 190 192 194 196 + 198: 58(ivec4) ImageGather 186 188 131 ConstOffsets 197 + Store 183(txval124) 198 + 200: 14 Load 16(g_tTex2df4a) + 201: 18 Load 20(g_sSamp) + 202: 22 SampledImage 200 201 + 203: 34(ptr) AccessChain 32 33 + 204: 25(fvec3) Load 203 + 205: 38(ptr) AccessChain 32 37 + 206: 27(ivec2) Load 205 + 207: 7(fvec4) ImageGather 202 204 33 Offset 206 + Store 199(txval201) 207 + 209: 45 Load 47(g_tTex2di4a) + 210: 18 Load 20(g_sSamp) + 211: 50 SampledImage 209 210 + 212: 34(ptr) AccessChain 32 33 + 213: 25(fvec3) Load 212 + 214: 38(ptr) AccessChain 32 37 + 215: 27(ivec2) Load 214 + 216: 29(ivec4) ImageGather 211 213 33 Offset 215 + Store 208(txval211) 216 + 218: 61 Load 63(g_tTex2du4a) + 219: 18 Load 20(g_sSamp) + 220: 66 SampledImage 218 219 + 221: 34(ptr) AccessChain 32 33 + 222: 25(fvec3) Load 221 + 223: 38(ptr) AccessChain 32 37 + 224: 27(ivec2) Load 223 + 225: 58(ivec4) ImageGather 220 222 33 Offset 224 + Store 217(txval221) 225 + 227: 14 Load 16(g_tTex2df4a) + 228: 18 Load 20(g_sSamp) + 229: 22 SampledImage 227 228 + 230: 34(ptr) AccessChain 32 33 + 231: 25(fvec3) Load 230 + 232: 38(ptr) AccessChain 32 37 + 233: 27(ivec2) Load 232 + 234: 38(ptr) AccessChain 32 37 + 235: 27(ivec2) Load 234 + 236: 38(ptr) AccessChain 32 37 + 237: 27(ivec2) Load 236 + 238: 38(ptr) AccessChain 32 37 + 239: 27(ivec2) Load 238 + 240: 88 CompositeConstruct 233 235 237 239 + 241: 7(fvec4) ImageGather 229 231 33 ConstOffsets 240 + Store 226(txval204) 241 + 243: 45 Load 47(g_tTex2di4a) + 244: 18 Load 20(g_sSamp) + 245: 50 SampledImage 243 244 + 246: 34(ptr) AccessChain 32 33 + 247: 25(fvec3) Load 246 + 248: 38(ptr) AccessChain 32 37 + 249: 27(ivec2) Load 248 + 250: 38(ptr) AccessChain 32 37 + 251: 27(ivec2) Load 250 + 252: 38(ptr) AccessChain 32 37 + 253: 27(ivec2) Load 252 + 254: 38(ptr) AccessChain 32 37 + 255: 27(ivec2) Load 254 + 256: 88 CompositeConstruct 249 251 253 255 + 257: 29(ivec4) ImageGather 245 247 33 ConstOffsets 256 + Store 242(txval214) 257 + 259: 61 Load 63(g_tTex2du4a) + 260: 18 Load 20(g_sSamp) + 261: 66 SampledImage 259 260 + 262: 34(ptr) AccessChain 32 33 + 263: 25(fvec3) Load 262 + 264: 38(ptr) AccessChain 32 37 + 265: 27(ivec2) Load 264 + 266: 38(ptr) AccessChain 32 37 + 267: 27(ivec2) Load 266 + 268: 38(ptr) AccessChain 32 37 + 269: 27(ivec2) Load 268 + 270: 38(ptr) AccessChain 32 37 + 271: 27(ivec2) Load 270 + 272: 88 CompositeConstruct 265 267 269 271 + 273: 58(ivec4) ImageGather 261 263 33 ConstOffsets 272 + Store 258(txval224) 273 + 275: 14 Load 16(g_tTex2df4a) + 276: 18 Load 20(g_sSamp) + 277: 22 SampledImage 275 276 + 278: 34(ptr) AccessChain 32 33 + 279: 25(fvec3) Load 278 + 280: 38(ptr) AccessChain 32 37 + 281: 27(ivec2) Load 280 + 283: 7(fvec4) ImageGather 277 279 282 Offset 281 + Store 274(txval301) 283 + 285: 45 Load 47(g_tTex2di4a) + 286: 18 Load 20(g_sSamp) + 287: 50 SampledImage 285 286 + 288: 34(ptr) AccessChain 32 33 + 289: 25(fvec3) Load 288 + 290: 38(ptr) AccessChain 32 37 + 291: 27(ivec2) Load 290 + 292: 29(ivec4) ImageGather 287 289 282 Offset 291 + Store 284(txval311) 292 + 294: 61 Load 63(g_tTex2du4a) + 295: 18 Load 20(g_sSamp) + 296: 66 SampledImage 294 295 + 297: 34(ptr) AccessChain 32 33 + 298: 25(fvec3) Load 297 + 299: 38(ptr) AccessChain 32 37 + 300: 27(ivec2) Load 299 + 301: 58(ivec4) ImageGather 296 298 282 Offset 300 + Store 293(txval321) 301 + 303: 14 Load 16(g_tTex2df4a) + 304: 18 Load 20(g_sSamp) + 305: 22 SampledImage 303 304 + 306: 34(ptr) AccessChain 32 33 + 307: 25(fvec3) Load 306 + 308: 38(ptr) AccessChain 32 37 + 309: 27(ivec2) Load 308 + 310: 38(ptr) AccessChain 32 37 + 311: 27(ivec2) Load 310 + 312: 38(ptr) AccessChain 32 37 + 313: 27(ivec2) Load 312 + 314: 38(ptr) AccessChain 32 37 + 315: 27(ivec2) Load 314 + 316: 88 CompositeConstruct 309 311 313 315 + 317: 7(fvec4) ImageGather 305 307 282 ConstOffsets 316 + Store 302(txval304) 317 + 319: 45 Load 47(g_tTex2di4a) + 320: 18 Load 20(g_sSamp) + 321: 50 SampledImage 319 320 + 322: 34(ptr) AccessChain 32 33 + 323: 25(fvec3) Load 322 + 324: 38(ptr) AccessChain 32 37 + 325: 27(ivec2) Load 324 + 326: 38(ptr) AccessChain 32 37 + 327: 27(ivec2) Load 326 + 328: 38(ptr) AccessChain 32 37 + 329: 27(ivec2) Load 328 + 330: 38(ptr) AccessChain 32 37 + 331: 27(ivec2) Load 330 + 332: 88 CompositeConstruct 325 327 329 331 + 333: 29(ivec4) ImageGather 321 323 282 ConstOffsets 332 + Store 318(txval314) 333 + 335: 61 Load 63(g_tTex2du4a) + 336: 18 Load 20(g_sSamp) + 337: 66 SampledImage 335 336 + 338: 34(ptr) AccessChain 32 33 + 339: 25(fvec3) Load 338 + 340: 38(ptr) AccessChain 32 37 + 341: 27(ivec2) Load 340 + 342: 38(ptr) AccessChain 32 37 + 343: 27(ivec2) Load 342 + 344: 38(ptr) AccessChain 32 37 + 345: 27(ivec2) Load 344 + 346: 38(ptr) AccessChain 32 37 + 347: 27(ivec2) Load 346 + 348: 88 CompositeConstruct 341 343 345 347 + 349: 58(ivec4) ImageGather 337 339 282 ConstOffsets 348 + Store 334(txval324) 349 + 354: 12(ptr) AccessChain 351(psout) 41 + Store 354 353 + 356: 355(ptr) AccessChain 351(psout) 131 + Store 356 352 + 357:8(PS_OUTPUT) Load 351(psout) + ReturnValue 357 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out new file mode 100644 index 0000000000..fe99df5207 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out @@ -0,0 +1,711 @@ +hlsl.gathercmpRGBA.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 'txval001' ( temp 4-component vector of float) +0:45 textureGatherOffset ( temp 4-component vector of float) +0:45 Construct combined texture-sampler ( temp sampler2DShadow) +0:45 'g_tTex2df4' ( uniform texture2DShadow) +0:45 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:45 c2: direct index for structure ( uniform 2-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'txval011' ( temp 4-component vector of int) +0:46 textureGatherOffset ( temp 4-component vector of int) +0:46 Construct combined texture-sampler ( temp isampler2DShadow) +0:46 'g_tTex2di4' ( uniform itexture2DShadow) +0:46 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:46 c2: direct index for structure ( uniform 2-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:46 Constant: +0:46 1 (const uint) +0:46 Constant: +0:46 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 'txval021' ( temp 4-component vector of uint) +0:47 textureGatherOffset ( temp 4-component vector of uint) +0:47 Construct combined texture-sampler ( temp usampler2DShadow) +0:47 'g_tTex2du4' ( uniform utexture2DShadow) +0:47 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:47 c2: direct index for structure ( uniform 2-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:49 Sequence +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'txval004' ( temp 4-component vector of float) +0:49 textureGatherOffsets ( temp 4-component vector of float) +0:49 Construct combined texture-sampler ( temp sampler2DShadow) +0:49 'g_tTex2df4' ( uniform texture2DShadow) +0:49 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:49 c2: direct index for structure ( uniform 2-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 1 (const int) +0:49 0 (const int) +0:49 1 (const int) +0:49 0 (const int) +0:49 1 (const int) +0:49 0 (const int) +0:49 1 (const int) +0:49 0 (const int) +0:50 Sequence +0:50 move second child to first child ( temp 4-component vector of int) +0:50 'txval014' ( temp 4-component vector of int) +0:50 textureGatherOffsets ( temp 4-component vector of int) +0:50 Construct combined texture-sampler ( temp isampler2DShadow) +0:50 'g_tTex2di4' ( uniform itexture2DShadow) +0:50 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:50 c2: direct index for structure ( uniform 2-component vector of float) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:50 Constant: +0:50 1 (const uint) +0:50 Constant: +0:50 0.750000 +0:50 Constant: +0:50 1 (const int) +0:50 -1 (const int) +0:50 1 (const int) +0:50 -1 (const int) +0:50 1 (const int) +0:50 -1 (const int) +0:50 1 (const int) +0:50 -1 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of uint) +0:51 'txval024' ( temp 4-component vector of uint) +0:51 textureGatherOffsets ( temp 4-component vector of uint) +0:51 Construct combined texture-sampler ( temp usampler2DShadow) +0:51 'g_tTex2du4' ( uniform utexture2DShadow) +0:51 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:51 c2: direct index for structure ( uniform 2-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 0.750000 +0:51 Constant: +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:53 'txval401' ( temp 4-component vector of float) +0:53 textureGatherOffset ( temp 4-component vector of float) +0:53 Construct combined texture-sampler ( temp sampler2DShadow) +0:53 'g_tTex2df4' ( uniform texture2DShadow) +0:53 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:53 c2: direct index for structure ( uniform 2-component vector of float) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:54 Sequence +0:54 move second child to first child ( temp 4-component vector of int) +0:54 'txval411' ( temp 4-component vector of int) +0:54 textureGatherOffset ( temp 4-component vector of int) +0:54 Construct combined texture-sampler ( temp isampler2DShadow) +0:54 'g_tTex2di4' ( uniform itexture2DShadow) +0:54 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:54 c2: direct index for structure ( uniform 2-component vector of float) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of uint) +0:55 'txval421' ( temp 4-component vector of uint) +0:55 textureGatherOffset ( temp 4-component vector of uint) +0:55 Construct combined texture-sampler ( temp usampler2DShadow) +0:55 'g_tTex2du4' ( uniform utexture2DShadow) +0:55 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:55 c2: direct index for structure ( uniform 2-component vector of float) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:55 Constant: +0:55 1 (const uint) +0:55 Constant: +0:55 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:110 move second child to first child ( temp 4-component vector of float) +0:110 Color: direct index for structure ( temp 4-component vector of float) +0:110 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 1.000000 +0:110 1.000000 +0:110 1.000000 +0:110 1.000000 +0:111 move second child to first child ( temp float) +0:111 Depth: direct index for structure ( temp float) +0:111 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:111 Constant: +0:111 1 (const int) +0:111 Constant: +0:111 1.000000 +0:113 Branch: Return with expression +0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 'txval001' ( temp 4-component vector of float) +0:45 textureGatherOffset ( temp 4-component vector of float) +0:45 Construct combined texture-sampler ( temp sampler2DShadow) +0:45 'g_tTex2df4' ( uniform texture2DShadow) +0:45 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:45 c2: direct index for structure ( uniform 2-component vector of float) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'txval011' ( temp 4-component vector of int) +0:46 textureGatherOffset ( temp 4-component vector of int) +0:46 Construct combined texture-sampler ( temp isampler2DShadow) +0:46 'g_tTex2di4' ( uniform itexture2DShadow) +0:46 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:46 c2: direct index for structure ( uniform 2-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:46 Constant: +0:46 1 (const uint) +0:46 Constant: +0:46 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 'txval021' ( temp 4-component vector of uint) +0:47 textureGatherOffset ( temp 4-component vector of uint) +0:47 Construct combined texture-sampler ( temp usampler2DShadow) +0:47 'g_tTex2du4' ( uniform utexture2DShadow) +0:47 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:47 c2: direct index for structure ( uniform 2-component vector of float) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:49 Sequence +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'txval004' ( temp 4-component vector of float) +0:49 textureGatherOffsets ( temp 4-component vector of float) +0:49 Construct combined texture-sampler ( temp sampler2DShadow) +0:49 'g_tTex2df4' ( uniform texture2DShadow) +0:49 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:49 c2: direct index for structure ( uniform 2-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 1 (const int) +0:49 0 (const int) +0:49 1 (const int) +0:49 0 (const int) +0:49 1 (const int) +0:49 0 (const int) +0:49 1 (const int) +0:49 0 (const int) +0:50 Sequence +0:50 move second child to first child ( temp 4-component vector of int) +0:50 'txval014' ( temp 4-component vector of int) +0:50 textureGatherOffsets ( temp 4-component vector of int) +0:50 Construct combined texture-sampler ( temp isampler2DShadow) +0:50 'g_tTex2di4' ( uniform itexture2DShadow) +0:50 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:50 c2: direct index for structure ( uniform 2-component vector of float) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:50 Constant: +0:50 1 (const uint) +0:50 Constant: +0:50 0.750000 +0:50 Constant: +0:50 1 (const int) +0:50 -1 (const int) +0:50 1 (const int) +0:50 -1 (const int) +0:50 1 (const int) +0:50 -1 (const int) +0:50 1 (const int) +0:50 -1 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of uint) +0:51 'txval024' ( temp 4-component vector of uint) +0:51 textureGatherOffsets ( temp 4-component vector of uint) +0:51 Construct combined texture-sampler ( temp usampler2DShadow) +0:51 'g_tTex2du4' ( uniform utexture2DShadow) +0:51 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:51 c2: direct index for structure ( uniform 2-component vector of float) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 0.750000 +0:51 Constant: +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:51 1 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:53 'txval401' ( temp 4-component vector of float) +0:53 textureGatherOffset ( temp 4-component vector of float) +0:53 Construct combined texture-sampler ( temp sampler2DShadow) +0:53 'g_tTex2df4' ( uniform texture2DShadow) +0:53 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:53 c2: direct index for structure ( uniform 2-component vector of float) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:54 Sequence +0:54 move second child to first child ( temp 4-component vector of int) +0:54 'txval411' ( temp 4-component vector of int) +0:54 textureGatherOffset ( temp 4-component vector of int) +0:54 Construct combined texture-sampler ( temp isampler2DShadow) +0:54 'g_tTex2di4' ( uniform itexture2DShadow) +0:54 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:54 c2: direct index for structure ( uniform 2-component vector of float) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of uint) +0:55 'txval421' ( temp 4-component vector of uint) +0:55 textureGatherOffset ( temp 4-component vector of uint) +0:55 Construct combined texture-sampler ( temp usampler2DShadow) +0:55 'g_tTex2du4' ( uniform utexture2DShadow) +0:55 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:55 c2: direct index for structure ( uniform 2-component vector of float) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:55 Constant: +0:55 1 (const uint) +0:55 Constant: +0:55 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:110 move second child to first child ( temp 4-component vector of float) +0:110 Color: direct index for structure ( temp 4-component vector of float) +0:110 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 1.000000 +0:110 1.000000 +0:110 1.000000 +0:110 1.000000 +0:111 move second child to first child ( temp float) +0:111 Depth: direct index for structure ( temp float) +0:111 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:111 Constant: +0:111 1 (const int) +0:111 Constant: +0:111 1.000000 +0:113 Branch: Return with expression +0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSampCmp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 164 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 129 133 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval001" + Name 16 "g_tTex2df4" + Name 20 "g_sSampCmp" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + Name 28 "" + Name 41 "txval011" + Name 44 "g_tTex2di4" + Name 57 "txval021" + Name 60 "g_tTex2du4" + Name 69 "txval004" + Name 79 "txval014" + Name 87 "txval024" + Name 95 "txval401" + Name 102 "txval411" + Name 109 "txval421" + Name 117 "psout" + Name 126 "flattenTemp" + Name 129 "@entryPointOutput.Color" + Name 133 "@entryPointOutput.Depth" + Name 138 "g_tTex1df4a" + Name 139 "g_tTex1df4" + Name 142 "g_tTex1di4" + Name 145 "g_tTex1du4" + Name 148 "g_tTex3df4" + Name 151 "g_tTex3di4" + Name 154 "g_tTex3du4" + Name 157 "g_tTexcdf4" + Name 160 "g_tTexcdi4" + Name 163 "g_tTexcdu4" + Decorate 16(g_tTex2df4) DescriptorSet 0 + Decorate 20(g_sSampCmp) DescriptorSet 0 + Decorate 20(g_sSampCmp) Binding 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 44(g_tTex2di4) DescriptorSet 0 + Decorate 60(g_tTex2du4) DescriptorSet 0 + Decorate 129(@entryPointOutput.Color) Location 0 + Decorate 133(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1df4a) Binding 1 + Decorate 139(g_tTex1df4) DescriptorSet 0 + Decorate 139(g_tTex1df4) Binding 0 + Decorate 142(g_tTex1di4) DescriptorSet 0 + Decorate 145(g_tTex1du4) DescriptorSet 0 + Decorate 148(g_tTex3df4) DescriptorSet 0 + Decorate 151(g_tTex3di4) DescriptorSet 0 + Decorate 154(g_tTex3du4) DescriptorSet 0 + Decorate 157(g_tTexcdf4) DescriptorSet 0 + Decorate 160(g_tTexcdi4) DescriptorSet 0 + Decorate 163(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 2D depth sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex2df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSampCmp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: TypeVector 6(float) 3 + 26($Global): TypeStruct 6(float) 24(fvec2) 25(fvec3) 7(fvec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: TypeInt 32 1 + 30: 29(int) Constant 1 + 31: TypePointer Uniform 24(fvec2) + 34: 6(float) Constant 1061158912 + 35: TypeVector 29(int) 2 + 36: 29(int) Constant 0 + 37: 35(ivec2) ConstantComposite 30 36 + 39: TypeVector 29(int) 4 + 40: TypePointer Function 39(ivec4) + 42: TypeImage 29(int) 2D depth sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex2di4): 43(ptr) Variable UniformConstant + 47: TypeSampledImage 42 + 51: 29(int) Constant 4294967295 + 52: 35(ivec2) ConstantComposite 30 51 + 54: TypeInt 32 0 + 55: TypeVector 54(int) 4 + 56: TypePointer Function 55(ivec4) + 58: TypeImage 54(int) 2D depth sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2du4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 67: 35(ivec2) ConstantComposite 30 30 + 75: 54(int) Constant 4 + 76: TypeArray 35(ivec2) 75 + 77: 76 ConstantComposite 37 37 37 37 + 85: 76 ConstantComposite 52 52 52 52 + 93: 76 ConstantComposite 67 67 67 67 + 116: TypePointer Function 8(PS_OUTPUT) + 118: 6(float) Constant 1065353216 + 119: 7(fvec4) ConstantComposite 118 118 118 118 + 121: TypePointer Function 6(float) + 128: TypePointer Output 7(fvec4) +129(@entryPointOutput.Color): 128(ptr) Variable Output + 132: TypePointer Output 6(float) +133(@entryPointOutput.Depth): 132(ptr) Variable Output + 136: TypeImage 6(float) 1D sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1df4a): 137(ptr) Variable UniformConstant + 139(g_tTex1df4): 137(ptr) Variable UniformConstant + 140: TypeImage 29(int) 1D sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTex1di4): 141(ptr) Variable UniformConstant + 143: TypeImage 54(int) 1D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex1du4): 144(ptr) Variable UniformConstant + 146: TypeImage 6(float) 3D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex3df4): 147(ptr) Variable UniformConstant + 149: TypeImage 29(int) 3D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex3di4): 150(ptr) Variable UniformConstant + 152: TypeImage 54(int) 3D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex3du4): 153(ptr) Variable UniformConstant + 155: TypeImage 6(float) Cube sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTexcdf4): 156(ptr) Variable UniformConstant + 158: TypeImage 29(int) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdi4): 159(ptr) Variable UniformConstant + 161: TypeImage 54(int) Cube sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTexcdu4): 162(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +126(flattenTemp): 116(ptr) Variable Function + 127:8(PS_OUTPUT) FunctionCall 10(@main() + Store 126(flattenTemp) 127 + 130: 12(ptr) AccessChain 126(flattenTemp) 36 + 131: 7(fvec4) Load 130 + Store 129(@entryPointOutput.Color) 131 + 134: 121(ptr) AccessChain 126(flattenTemp) 30 + 135: 6(float) Load 134 + Store 133(@entryPointOutput.Depth) 135 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval001): 12(ptr) Variable Function + 41(txval011): 40(ptr) Variable Function + 57(txval021): 56(ptr) Variable Function + 69(txval004): 12(ptr) Variable Function + 79(txval014): 40(ptr) Variable Function + 87(txval024): 56(ptr) Variable Function + 95(txval401): 12(ptr) Variable Function + 102(txval411): 40(ptr) Variable Function + 109(txval421): 56(ptr) Variable Function + 117(psout): 116(ptr) Variable Function + 17: 14 Load 16(g_tTex2df4) + 21: 18 Load 20(g_sSampCmp) + 23: 22 SampledImage 17 21 + 32: 31(ptr) AccessChain 28 30 + 33: 24(fvec2) Load 32 + 38: 7(fvec4) ImageDrefGather 23 33 34 ConstOffset 37 + Store 13(txval001) 38 + 45: 42 Load 44(g_tTex2di4) + 46: 18 Load 20(g_sSampCmp) + 48: 47 SampledImage 45 46 + 49: 31(ptr) AccessChain 28 30 + 50: 24(fvec2) Load 49 + 53: 39(ivec4) ImageDrefGather 48 50 34 ConstOffset 52 + Store 41(txval011) 53 + 61: 58 Load 60(g_tTex2du4) + 62: 18 Load 20(g_sSampCmp) + 64: 63 SampledImage 61 62 + 65: 31(ptr) AccessChain 28 30 + 66: 24(fvec2) Load 65 + 68: 55(ivec4) ImageDrefGather 64 66 34 ConstOffset 67 + Store 57(txval021) 68 + 70: 14 Load 16(g_tTex2df4) + 71: 18 Load 20(g_sSampCmp) + 72: 22 SampledImage 70 71 + 73: 31(ptr) AccessChain 28 30 + 74: 24(fvec2) Load 73 + 78: 7(fvec4) ImageDrefGather 72 74 34 ConstOffsets 77 + Store 69(txval004) 78 + 80: 42 Load 44(g_tTex2di4) + 81: 18 Load 20(g_sSampCmp) + 82: 47 SampledImage 80 81 + 83: 31(ptr) AccessChain 28 30 + 84: 24(fvec2) Load 83 + 86: 39(ivec4) ImageDrefGather 82 84 34 ConstOffsets 85 + Store 79(txval014) 86 + 88: 58 Load 60(g_tTex2du4) + 89: 18 Load 20(g_sSampCmp) + 90: 63 SampledImage 88 89 + 91: 31(ptr) AccessChain 28 30 + 92: 24(fvec2) Load 91 + 94: 55(ivec4) ImageDrefGather 90 92 34 ConstOffsets 93 + Store 87(txval024) 94 + 96: 14 Load 16(g_tTex2df4) + 97: 18 Load 20(g_sSampCmp) + 98: 22 SampledImage 96 97 + 99: 31(ptr) AccessChain 28 30 + 100: 24(fvec2) Load 99 + 101: 7(fvec4) ImageDrefGather 98 100 34 ConstOffset 37 + Store 95(txval401) 101 + 103: 42 Load 44(g_tTex2di4) + 104: 18 Load 20(g_sSampCmp) + 105: 47 SampledImage 103 104 + 106: 31(ptr) AccessChain 28 30 + 107: 24(fvec2) Load 106 + 108: 39(ivec4) ImageDrefGather 105 107 34 ConstOffset 52 + Store 102(txval411) 108 + 110: 58 Load 60(g_tTex2du4) + 111: 18 Load 20(g_sSampCmp) + 112: 63 SampledImage 110 111 + 113: 31(ptr) AccessChain 28 30 + 114: 24(fvec2) Load 113 + 115: 55(ivec4) ImageDrefGather 112 114 34 ConstOffset 67 + Store 109(txval421) 115 + 120: 12(ptr) AccessChain 117(psout) 36 + Store 120 119 + 122: 121(ptr) AccessChain 117(psout) 30 + Store 122 118 + 123:8(PS_OUTPUT) Load 117(psout) + ReturnValue 123 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out new file mode 100644 index 0000000000..599c65912d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -0,0 +1,3197 @@ +hlsl.getdimensions.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:46 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Function Parameters: +0:? Sequence +0:65 Sequence +0:65 move second child to first child ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:65 textureSize ( temp uint) +0:65 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:65 Constant: +0:65 0 (const int) +0:65 move second child to first child ( temp uint) +0:65 'WidthU' ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:66 Sequence +0:66 move second child to first child ( temp uint) +0:66 'sizeQueryTemp' ( temp uint) +0:66 textureSize ( temp uint) +0:66 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:66 Constant: +0:66 6 (const uint) +0:66 move second child to first child ( temp uint) +0:66 'WidthU' ( temp uint) +0:66 'sizeQueryTemp' ( temp uint) +0:66 move second child to first child ( temp uint) +0:66 'NumberOfLevelsU' ( temp uint) +0:66 textureQueryLevels ( temp uint) +0:66 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:69 Sequence +0:69 move second child to first child ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:69 textureSize ( temp uint) +0:69 'g_tTex1di4' ( uniform itexture1D) +0:69 Constant: +0:69 0 (const int) +0:69 move second child to first child ( temp uint) +0:69 'WidthU' ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:70 Sequence +0:70 move second child to first child ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 textureSize ( temp uint) +0:70 'g_tTex1di4' ( uniform itexture1D) +0:70 Constant: +0:70 6 (const uint) +0:70 move second child to first child ( temp uint) +0:70 'WidthU' ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 move second child to first child ( temp uint) +0:70 'NumberOfLevelsU' ( temp uint) +0:70 textureQueryLevels ( temp uint) +0:70 'g_tTex1di4' ( uniform itexture1D) +0:73 Sequence +0:73 move second child to first child ( temp uint) +0:73 'sizeQueryTemp' ( temp uint) +0:73 textureSize ( temp uint) +0:73 'g_tTex1du4' ( uniform utexture1D) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child ( temp uint) +0:73 'WidthU' ( temp uint) +0:73 'sizeQueryTemp' ( temp uint) +0:74 Sequence +0:74 move second child to first child ( temp uint) +0:74 'sizeQueryTemp' ( temp uint) +0:74 textureSize ( temp uint) +0:74 'g_tTex1du4' ( uniform utexture1D) +0:74 Constant: +0:74 6 (const uint) +0:74 move second child to first child ( temp uint) +0:74 'WidthU' ( temp uint) +0:74 'sizeQueryTemp' ( temp uint) +0:74 move second child to first child ( temp uint) +0:74 'NumberOfLevelsU' ( temp uint) +0:74 textureQueryLevels ( temp uint) +0:74 'g_tTex1du4' ( uniform utexture1D) +0:77 Sequence +0:77 move second child to first child ( temp 2-component vector of uint) +0:77 'sizeQueryTemp' ( temp 2-component vector of uint) +0:77 textureSize ( temp 2-component vector of uint) +0:77 'g_tTex1df4a' ( uniform texture1DArray) +0:77 Constant: +0:77 0 (const int) +0:77 move second child to first child ( temp uint) +0:77 'WidthU' ( temp uint) +0:77 direct index ( temp uint) +0:77 'sizeQueryTemp' ( temp 2-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 move second child to first child ( temp uint) +0:77 'ElementsU' ( temp uint) +0:77 direct index ( temp uint) +0:77 'sizeQueryTemp' ( temp 2-component vector of uint) +0:77 Constant: +0:77 1 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 2-component vector of uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 textureSize ( temp 2-component vector of uint) +0:78 'g_tTex1df4a' ( uniform texture1DArray) +0:78 Constant: +0:78 6 (const uint) +0:78 move second child to first child ( temp uint) +0:78 'WidthU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child ( temp uint) +0:78 'ElementsU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:78 move second child to first child ( temp uint) +0:78 'NumberOfLevelsU' ( temp uint) +0:78 textureQueryLevels ( temp uint) +0:78 'g_tTex1df4a' ( uniform texture1DArray) +0:81 Sequence +0:81 move second child to first child ( temp 2-component vector of uint) +0:81 'sizeQueryTemp' ( temp 2-component vector of uint) +0:81 textureSize ( temp 2-component vector of uint) +0:81 'g_tTex1di4a' ( uniform itexture1DArray) +0:81 Constant: +0:81 0 (const int) +0:81 move second child to first child ( temp uint) +0:81 'WidthU' ( temp uint) +0:81 direct index ( temp uint) +0:81 'sizeQueryTemp' ( temp 2-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 move second child to first child ( temp uint) +0:81 'ElementsU' ( temp uint) +0:81 direct index ( temp uint) +0:81 'sizeQueryTemp' ( temp 2-component vector of uint) +0:81 Constant: +0:81 1 (const int) +0:82 Sequence +0:82 move second child to first child ( temp 2-component vector of uint) +0:82 'sizeQueryTemp' ( temp 2-component vector of uint) +0:82 textureSize ( temp 2-component vector of uint) +0:82 'g_tTex1di4a' ( uniform itexture1DArray) +0:82 Constant: +0:82 6 (const uint) +0:82 move second child to first child ( temp uint) +0:82 'WidthU' ( temp uint) +0:82 direct index ( temp uint) +0:82 'sizeQueryTemp' ( temp 2-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 move second child to first child ( temp uint) +0:82 'ElementsU' ( temp uint) +0:82 direct index ( temp uint) +0:82 'sizeQueryTemp' ( temp 2-component vector of uint) +0:82 Constant: +0:82 1 (const int) +0:82 move second child to first child ( temp uint) +0:82 'NumberOfLevelsU' ( temp uint) +0:82 textureQueryLevels ( temp uint) +0:82 'g_tTex1di4a' ( uniform itexture1DArray) +0:85 Sequence +0:85 move second child to first child ( temp 2-component vector of uint) +0:85 'sizeQueryTemp' ( temp 2-component vector of uint) +0:85 textureSize ( temp 2-component vector of uint) +0:85 'g_tTex1du4a' ( uniform utexture1DArray) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child ( temp uint) +0:85 'WidthU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 2-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child ( temp uint) +0:85 'ElementsU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 2-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:86 Sequence +0:86 move second child to first child ( temp 2-component vector of uint) +0:86 'sizeQueryTemp' ( temp 2-component vector of uint) +0:86 textureSize ( temp 2-component vector of uint) +0:86 'g_tTex1du4a' ( uniform utexture1DArray) +0:86 Constant: +0:86 6 (const uint) +0:86 move second child to first child ( temp uint) +0:86 'WidthU' ( temp uint) +0:86 direct index ( temp uint) +0:86 'sizeQueryTemp' ( temp 2-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 move second child to first child ( temp uint) +0:86 'ElementsU' ( temp uint) +0:86 direct index ( temp uint) +0:86 'sizeQueryTemp' ( temp 2-component vector of uint) +0:86 Constant: +0:86 1 (const int) +0:86 move second child to first child ( temp uint) +0:86 'NumberOfLevelsU' ( temp uint) +0:86 textureQueryLevels ( temp uint) +0:86 'g_tTex1du4a' ( uniform utexture1DArray) +0:89 Sequence +0:89 move second child to first child ( temp 2-component vector of uint) +0:89 'sizeQueryTemp' ( temp 2-component vector of uint) +0:89 textureSize ( temp 2-component vector of uint) +0:89 'g_tTex2df4' ( uniform texture2D) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child ( temp uint) +0:89 'WidthU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 2-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child ( temp uint) +0:89 'HeightU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 2-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 2-component vector of uint) +0:90 'sizeQueryTemp' ( temp 2-component vector of uint) +0:90 textureSize ( temp 2-component vector of uint) +0:90 'g_tTex2df4' ( uniform texture2D) +0:90 Constant: +0:90 6 (const uint) +0:90 move second child to first child ( temp uint) +0:90 'WidthU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 2-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child ( temp uint) +0:90 'HeightU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 2-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child ( temp uint) +0:90 'NumberOfLevelsU' ( temp uint) +0:90 textureQueryLevels ( temp uint) +0:90 'g_tTex2df4' ( uniform texture2D) +0:93 Sequence +0:93 move second child to first child ( temp 2-component vector of uint) +0:93 'sizeQueryTemp' ( temp 2-component vector of uint) +0:93 textureSize ( temp 2-component vector of uint) +0:93 'g_tTex2di4' ( uniform itexture2D) +0:93 Constant: +0:93 0 (const int) +0:93 move second child to first child ( temp uint) +0:93 'WidthU' ( temp uint) +0:93 direct index ( temp uint) +0:93 'sizeQueryTemp' ( temp 2-component vector of uint) +0:93 Constant: +0:93 0 (const int) +0:93 move second child to first child ( temp uint) +0:93 'HeightU' ( temp uint) +0:93 direct index ( temp uint) +0:93 'sizeQueryTemp' ( temp 2-component vector of uint) +0:93 Constant: +0:93 1 (const int) +0:94 Sequence +0:94 move second child to first child ( temp 2-component vector of uint) +0:94 'sizeQueryTemp' ( temp 2-component vector of uint) +0:94 textureSize ( temp 2-component vector of uint) +0:94 'g_tTex2di4' ( uniform itexture2D) +0:94 Constant: +0:94 6 (const uint) +0:94 move second child to first child ( temp uint) +0:94 'WidthU' ( temp uint) +0:94 direct index ( temp uint) +0:94 'sizeQueryTemp' ( temp 2-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 move second child to first child ( temp uint) +0:94 'HeightU' ( temp uint) +0:94 direct index ( temp uint) +0:94 'sizeQueryTemp' ( temp 2-component vector of uint) +0:94 Constant: +0:94 1 (const int) +0:94 move second child to first child ( temp uint) +0:94 'NumberOfLevelsU' ( temp uint) +0:94 textureQueryLevels ( temp uint) +0:94 'g_tTex2di4' ( uniform itexture2D) +0:97 Sequence +0:97 move second child to first child ( temp 2-component vector of uint) +0:97 'sizeQueryTemp' ( temp 2-component vector of uint) +0:97 textureSize ( temp 2-component vector of uint) +0:97 'g_tTex2du4' ( uniform utexture2D) +0:97 Constant: +0:97 0 (const int) +0:97 move second child to first child ( temp uint) +0:97 'WidthU' ( temp uint) +0:97 direct index ( temp uint) +0:97 'sizeQueryTemp' ( temp 2-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 move second child to first child ( temp uint) +0:97 'HeightU' ( temp uint) +0:97 direct index ( temp uint) +0:97 'sizeQueryTemp' ( temp 2-component vector of uint) +0:97 Constant: +0:97 1 (const int) +0:98 Sequence +0:98 move second child to first child ( temp 2-component vector of uint) +0:98 'sizeQueryTemp' ( temp 2-component vector of uint) +0:98 textureSize ( temp 2-component vector of uint) +0:98 'g_tTex2du4' ( uniform utexture2D) +0:98 Constant: +0:98 6 (const uint) +0:98 move second child to first child ( temp uint) +0:98 'WidthU' ( temp uint) +0:98 direct index ( temp uint) +0:98 'sizeQueryTemp' ( temp 2-component vector of uint) +0:98 Constant: +0:98 0 (const int) +0:98 move second child to first child ( temp uint) +0:98 'HeightU' ( temp uint) +0:98 direct index ( temp uint) +0:98 'sizeQueryTemp' ( temp 2-component vector of uint) +0:98 Constant: +0:98 1 (const int) +0:98 move second child to first child ( temp uint) +0:98 'NumberOfLevelsU' ( temp uint) +0:98 textureQueryLevels ( temp uint) +0:98 'g_tTex2du4' ( uniform utexture2D) +0:101 Sequence +0:101 move second child to first child ( temp 3-component vector of uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 textureSize ( temp 3-component vector of uint) +0:101 'g_tTex2df4a' ( uniform texture2DArray) +0:101 Constant: +0:101 0 (const int) +0:101 move second child to first child ( temp uint) +0:101 'WidthU' ( temp uint) +0:101 direct index ( temp uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 move second child to first child ( temp uint) +0:101 'HeightU' ( temp uint) +0:101 direct index ( temp uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 Constant: +0:101 1 (const int) +0:101 move second child to first child ( temp uint) +0:101 'ElementsU' ( temp uint) +0:101 direct index ( temp uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 Constant: +0:101 2 (const int) +0:102 Sequence +0:102 move second child to first child ( temp 3-component vector of uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 textureSize ( temp 3-component vector of uint) +0:102 'g_tTex2df4a' ( uniform texture2DArray) +0:102 Constant: +0:102 6 (const uint) +0:102 move second child to first child ( temp uint) +0:102 'WidthU' ( temp uint) +0:102 direct index ( temp uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 move second child to first child ( temp uint) +0:102 'HeightU' ( temp uint) +0:102 direct index ( temp uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 Constant: +0:102 1 (const int) +0:102 move second child to first child ( temp uint) +0:102 'ElementsU' ( temp uint) +0:102 direct index ( temp uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 Constant: +0:102 2 (const int) +0:102 move second child to first child ( temp uint) +0:102 'NumberOfLevelsU' ( temp uint) +0:102 textureQueryLevels ( temp uint) +0:102 'g_tTex2df4a' ( uniform texture2DArray) +0:105 Sequence +0:105 move second child to first child ( temp 3-component vector of uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 textureSize ( temp 3-component vector of uint) +0:105 'g_tTex2di4a' ( uniform itexture2DArray) +0:105 Constant: +0:105 0 (const int) +0:105 move second child to first child ( temp uint) +0:105 'WidthU' ( temp uint) +0:105 direct index ( temp uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 move second child to first child ( temp uint) +0:105 'HeightU' ( temp uint) +0:105 direct index ( temp uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 Constant: +0:105 1 (const int) +0:105 move second child to first child ( temp uint) +0:105 'ElementsU' ( temp uint) +0:105 direct index ( temp uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 Constant: +0:105 2 (const int) +0:106 Sequence +0:106 move second child to first child ( temp 3-component vector of uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 textureSize ( temp 3-component vector of uint) +0:106 'g_tTex2di4a' ( uniform itexture2DArray) +0:106 Constant: +0:106 6 (const uint) +0:106 move second child to first child ( temp uint) +0:106 'WidthU' ( temp uint) +0:106 direct index ( temp uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 move second child to first child ( temp uint) +0:106 'HeightU' ( temp uint) +0:106 direct index ( temp uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 Constant: +0:106 1 (const int) +0:106 move second child to first child ( temp uint) +0:106 'ElementsU' ( temp uint) +0:106 direct index ( temp uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 Constant: +0:106 2 (const int) +0:106 move second child to first child ( temp uint) +0:106 'NumberOfLevelsU' ( temp uint) +0:106 textureQueryLevels ( temp uint) +0:106 'g_tTex2di4a' ( uniform itexture2DArray) +0:109 Sequence +0:109 move second child to first child ( temp 3-component vector of uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 textureSize ( temp 3-component vector of uint) +0:109 'g_tTex2du4a' ( uniform utexture2DArray) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child ( temp uint) +0:109 'WidthU' ( temp uint) +0:109 direct index ( temp uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child ( temp uint) +0:109 'HeightU' ( temp uint) +0:109 direct index ( temp uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 Constant: +0:109 1 (const int) +0:109 move second child to first child ( temp uint) +0:109 'ElementsU' ( temp uint) +0:109 direct index ( temp uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 Constant: +0:109 2 (const int) +0:110 Sequence +0:110 move second child to first child ( temp 3-component vector of uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 textureSize ( temp 3-component vector of uint) +0:110 'g_tTex2du4a' ( uniform utexture2DArray) +0:110 Constant: +0:110 6 (const uint) +0:110 move second child to first child ( temp uint) +0:110 'WidthU' ( temp uint) +0:110 direct index ( temp uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 move second child to first child ( temp uint) +0:110 'HeightU' ( temp uint) +0:110 direct index ( temp uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 Constant: +0:110 1 (const int) +0:110 move second child to first child ( temp uint) +0:110 'ElementsU' ( temp uint) +0:110 direct index ( temp uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 Constant: +0:110 2 (const int) +0:110 move second child to first child ( temp uint) +0:110 'NumberOfLevelsU' ( temp uint) +0:110 textureQueryLevels ( temp uint) +0:110 'g_tTex2du4a' ( uniform utexture2DArray) +0:113 Sequence +0:113 move second child to first child ( temp 3-component vector of uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 textureSize ( temp 3-component vector of uint) +0:113 'g_tTex3df4' ( uniform texture3D) +0:113 Constant: +0:113 0 (const int) +0:113 move second child to first child ( temp uint) +0:113 'WidthU' ( temp uint) +0:113 direct index ( temp uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 Constant: +0:113 0 (const int) +0:113 move second child to first child ( temp uint) +0:113 'HeightU' ( temp uint) +0:113 direct index ( temp uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 Constant: +0:113 1 (const int) +0:113 move second child to first child ( temp uint) +0:113 'DepthU' ( temp uint) +0:113 direct index ( temp uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 Constant: +0:113 2 (const int) +0:114 Sequence +0:114 move second child to first child ( temp 3-component vector of uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 textureSize ( temp 3-component vector of uint) +0:114 'g_tTex3df4' ( uniform texture3D) +0:114 Constant: +0:114 6 (const uint) +0:114 move second child to first child ( temp uint) +0:114 'WidthU' ( temp uint) +0:114 direct index ( temp uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 move second child to first child ( temp uint) +0:114 'HeightU' ( temp uint) +0:114 direct index ( temp uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 Constant: +0:114 1 (const int) +0:114 move second child to first child ( temp uint) +0:114 'DepthU' ( temp uint) +0:114 direct index ( temp uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 Constant: +0:114 2 (const int) +0:114 move second child to first child ( temp uint) +0:114 'NumberOfLevelsU' ( temp uint) +0:114 textureQueryLevels ( temp uint) +0:114 'g_tTex3df4' ( uniform texture3D) +0:117 Sequence +0:117 move second child to first child ( temp 3-component vector of uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 textureSize ( temp 3-component vector of uint) +0:117 'g_tTex3di4' ( uniform itexture3D) +0:117 Constant: +0:117 0 (const int) +0:117 move second child to first child ( temp uint) +0:117 'WidthU' ( temp uint) +0:117 direct index ( temp uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 move second child to first child ( temp uint) +0:117 'HeightU' ( temp uint) +0:117 direct index ( temp uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 Constant: +0:117 1 (const int) +0:117 move second child to first child ( temp uint) +0:117 'DepthU' ( temp uint) +0:117 direct index ( temp uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 Constant: +0:117 2 (const int) +0:118 Sequence +0:118 move second child to first child ( temp 3-component vector of uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 textureSize ( temp 3-component vector of uint) +0:118 'g_tTex3di4' ( uniform itexture3D) +0:118 Constant: +0:118 6 (const uint) +0:118 move second child to first child ( temp uint) +0:118 'WidthU' ( temp uint) +0:118 direct index ( temp uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 Constant: +0:118 0 (const int) +0:118 move second child to first child ( temp uint) +0:118 'HeightU' ( temp uint) +0:118 direct index ( temp uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 Constant: +0:118 1 (const int) +0:118 move second child to first child ( temp uint) +0:118 'DepthU' ( temp uint) +0:118 direct index ( temp uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 Constant: +0:118 2 (const int) +0:118 move second child to first child ( temp uint) +0:118 'NumberOfLevelsU' ( temp uint) +0:118 textureQueryLevels ( temp uint) +0:118 'g_tTex3di4' ( uniform itexture3D) +0:121 Sequence +0:121 move second child to first child ( temp 3-component vector of uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 textureSize ( temp 3-component vector of uint) +0:121 'g_tTex3du4' ( uniform utexture3D) +0:121 Constant: +0:121 0 (const int) +0:121 move second child to first child ( temp uint) +0:121 'WidthU' ( temp uint) +0:121 direct index ( temp uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 move second child to first child ( temp uint) +0:121 'HeightU' ( temp uint) +0:121 direct index ( temp uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 Constant: +0:121 1 (const int) +0:121 move second child to first child ( temp uint) +0:121 'DepthU' ( temp uint) +0:121 direct index ( temp uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 Constant: +0:121 2 (const int) +0:122 Sequence +0:122 move second child to first child ( temp 3-component vector of uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 textureSize ( temp 3-component vector of uint) +0:122 'g_tTex3du4' ( uniform utexture3D) +0:122 Constant: +0:122 6 (const uint) +0:122 move second child to first child ( temp uint) +0:122 'WidthU' ( temp uint) +0:122 direct index ( temp uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 move second child to first child ( temp uint) +0:122 'HeightU' ( temp uint) +0:122 direct index ( temp uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 Constant: +0:122 1 (const int) +0:122 move second child to first child ( temp uint) +0:122 'DepthU' ( temp uint) +0:122 direct index ( temp uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 Constant: +0:122 2 (const int) +0:122 move second child to first child ( temp uint) +0:122 'NumberOfLevelsU' ( temp uint) +0:122 textureQueryLevels ( temp uint) +0:122 'g_tTex3du4' ( uniform utexture3D) +0:125 Sequence +0:125 move second child to first child ( temp 2-component vector of uint) +0:125 'sizeQueryTemp' ( temp 2-component vector of uint) +0:125 textureSize ( temp 2-component vector of uint) +0:125 'g_tTexcdf4' ( uniform textureCube) +0:125 Constant: +0:125 0 (const int) +0:125 move second child to first child ( temp uint) +0:125 'WidthU' ( temp uint) +0:125 direct index ( temp uint) +0:125 'sizeQueryTemp' ( temp 2-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 move second child to first child ( temp uint) +0:125 'HeightU' ( temp uint) +0:125 direct index ( temp uint) +0:125 'sizeQueryTemp' ( temp 2-component vector of uint) +0:125 Constant: +0:125 1 (const int) +0:126 Sequence +0:126 move second child to first child ( temp 2-component vector of uint) +0:126 'sizeQueryTemp' ( temp 2-component vector of uint) +0:126 textureSize ( temp 2-component vector of uint) +0:126 'g_tTexcdf4' ( uniform textureCube) +0:126 Constant: +0:126 6 (const uint) +0:126 move second child to first child ( temp uint) +0:126 'WidthU' ( temp uint) +0:126 direct index ( temp uint) +0:126 'sizeQueryTemp' ( temp 2-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 move second child to first child ( temp uint) +0:126 'HeightU' ( temp uint) +0:126 direct index ( temp uint) +0:126 'sizeQueryTemp' ( temp 2-component vector of uint) +0:126 Constant: +0:126 1 (const int) +0:126 move second child to first child ( temp uint) +0:126 'NumberOfLevelsU' ( temp uint) +0:126 textureQueryLevels ( temp uint) +0:126 'g_tTexcdf4' ( uniform textureCube) +0:129 Sequence +0:129 move second child to first child ( temp 2-component vector of uint) +0:129 'sizeQueryTemp' ( temp 2-component vector of uint) +0:129 textureSize ( temp 2-component vector of uint) +0:129 'g_tTexcdi4' ( uniform itextureCube) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child ( temp uint) +0:129 'WidthU' ( temp uint) +0:129 direct index ( temp uint) +0:129 'sizeQueryTemp' ( temp 2-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child ( temp uint) +0:129 'HeightU' ( temp uint) +0:129 direct index ( temp uint) +0:129 'sizeQueryTemp' ( temp 2-component vector of uint) +0:129 Constant: +0:129 1 (const int) +0:130 Sequence +0:130 move second child to first child ( temp 2-component vector of uint) +0:130 'sizeQueryTemp' ( temp 2-component vector of uint) +0:130 textureSize ( temp 2-component vector of uint) +0:130 'g_tTexcdi4' ( uniform itextureCube) +0:130 Constant: +0:130 6 (const uint) +0:130 move second child to first child ( temp uint) +0:130 'WidthU' ( temp uint) +0:130 direct index ( temp uint) +0:130 'sizeQueryTemp' ( temp 2-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 move second child to first child ( temp uint) +0:130 'HeightU' ( temp uint) +0:130 direct index ( temp uint) +0:130 'sizeQueryTemp' ( temp 2-component vector of uint) +0:130 Constant: +0:130 1 (const int) +0:130 move second child to first child ( temp uint) +0:130 'NumberOfLevelsU' ( temp uint) +0:130 textureQueryLevels ( temp uint) +0:130 'g_tTexcdi4' ( uniform itextureCube) +0:133 Sequence +0:133 move second child to first child ( temp 2-component vector of uint) +0:133 'sizeQueryTemp' ( temp 2-component vector of uint) +0:133 textureSize ( temp 2-component vector of uint) +0:133 'g_tTexcdu4' ( uniform utextureCube) +0:133 Constant: +0:133 0 (const int) +0:133 move second child to first child ( temp uint) +0:133 'WidthU' ( temp uint) +0:133 direct index ( temp uint) +0:133 'sizeQueryTemp' ( temp 2-component vector of uint) +0:133 Constant: +0:133 0 (const int) +0:133 move second child to first child ( temp uint) +0:133 'HeightU' ( temp uint) +0:133 direct index ( temp uint) +0:133 'sizeQueryTemp' ( temp 2-component vector of uint) +0:133 Constant: +0:133 1 (const int) +0:134 Sequence +0:134 move second child to first child ( temp 2-component vector of uint) +0:134 'sizeQueryTemp' ( temp 2-component vector of uint) +0:134 textureSize ( temp 2-component vector of uint) +0:134 'g_tTexcdu4' ( uniform utextureCube) +0:134 Constant: +0:134 6 (const uint) +0:134 move second child to first child ( temp uint) +0:134 'WidthU' ( temp uint) +0:134 direct index ( temp uint) +0:134 'sizeQueryTemp' ( temp 2-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 move second child to first child ( temp uint) +0:134 'HeightU' ( temp uint) +0:134 direct index ( temp uint) +0:134 'sizeQueryTemp' ( temp 2-component vector of uint) +0:134 Constant: +0:134 1 (const int) +0:134 move second child to first child ( temp uint) +0:134 'NumberOfLevelsU' ( temp uint) +0:134 textureQueryLevels ( temp uint) +0:134 'g_tTexcdu4' ( uniform utextureCube) +0:137 Sequence +0:137 move second child to first child ( temp 3-component vector of uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 textureSize ( temp 3-component vector of uint) +0:137 'g_tTexcdf4a' ( uniform textureCubeArray) +0:137 Constant: +0:137 0 (const int) +0:137 move second child to first child ( temp uint) +0:137 'WidthU' ( temp uint) +0:137 direct index ( temp uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 move second child to first child ( temp uint) +0:137 'HeightU' ( temp uint) +0:137 direct index ( temp uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 Constant: +0:137 1 (const int) +0:137 move second child to first child ( temp uint) +0:137 'ElementsU' ( temp uint) +0:137 direct index ( temp uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 Constant: +0:137 2 (const int) +0:138 Sequence +0:138 move second child to first child ( temp 3-component vector of uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 textureSize ( temp 3-component vector of uint) +0:138 'g_tTexcdf4a' ( uniform textureCubeArray) +0:138 Constant: +0:138 6 (const uint) +0:138 move second child to first child ( temp uint) +0:138 'WidthU' ( temp uint) +0:138 direct index ( temp uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 Constant: +0:138 0 (const int) +0:138 move second child to first child ( temp uint) +0:138 'HeightU' ( temp uint) +0:138 direct index ( temp uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 Constant: +0:138 1 (const int) +0:138 move second child to first child ( temp uint) +0:138 'ElementsU' ( temp uint) +0:138 direct index ( temp uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 Constant: +0:138 2 (const int) +0:138 move second child to first child ( temp uint) +0:138 'NumberOfLevelsU' ( temp uint) +0:138 textureQueryLevels ( temp uint) +0:138 'g_tTexcdf4a' ( uniform textureCubeArray) +0:141 Sequence +0:141 move second child to first child ( temp 3-component vector of uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 textureSize ( temp 3-component vector of uint) +0:141 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:141 Constant: +0:141 0 (const int) +0:141 move second child to first child ( temp uint) +0:141 'WidthU' ( temp uint) +0:141 direct index ( temp uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 move second child to first child ( temp uint) +0:141 'HeightU' ( temp uint) +0:141 direct index ( temp uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 Constant: +0:141 1 (const int) +0:141 move second child to first child ( temp uint) +0:141 'ElementsU' ( temp uint) +0:141 direct index ( temp uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 Constant: +0:141 2 (const int) +0:142 Sequence +0:142 move second child to first child ( temp 3-component vector of uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 textureSize ( temp 3-component vector of uint) +0:142 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:142 Constant: +0:142 6 (const uint) +0:142 move second child to first child ( temp uint) +0:142 'WidthU' ( temp uint) +0:142 direct index ( temp uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 move second child to first child ( temp uint) +0:142 'HeightU' ( temp uint) +0:142 direct index ( temp uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 Constant: +0:142 1 (const int) +0:142 move second child to first child ( temp uint) +0:142 'ElementsU' ( temp uint) +0:142 direct index ( temp uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 Constant: +0:142 2 (const int) +0:142 move second child to first child ( temp uint) +0:142 'NumberOfLevelsU' ( temp uint) +0:142 textureQueryLevels ( temp uint) +0:142 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:145 Sequence +0:145 move second child to first child ( temp 3-component vector of uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 textureSize ( temp 3-component vector of uint) +0:145 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:145 Constant: +0:145 0 (const int) +0:145 move second child to first child ( temp uint) +0:145 'WidthU' ( temp uint) +0:145 direct index ( temp uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 move second child to first child ( temp uint) +0:145 'HeightU' ( temp uint) +0:145 direct index ( temp uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 Constant: +0:145 1 (const int) +0:145 move second child to first child ( temp uint) +0:145 'ElementsU' ( temp uint) +0:145 direct index ( temp uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 Constant: +0:145 2 (const int) +0:146 Sequence +0:146 move second child to first child ( temp 3-component vector of uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 textureSize ( temp 3-component vector of uint) +0:146 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:146 Constant: +0:146 6 (const uint) +0:146 move second child to first child ( temp uint) +0:146 'WidthU' ( temp uint) +0:146 direct index ( temp uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 move second child to first child ( temp uint) +0:146 'HeightU' ( temp uint) +0:146 direct index ( temp uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 Constant: +0:146 1 (const int) +0:146 move second child to first child ( temp uint) +0:146 'ElementsU' ( temp uint) +0:146 direct index ( temp uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 Constant: +0:146 2 (const int) +0:146 move second child to first child ( temp uint) +0:146 'NumberOfLevelsU' ( temp uint) +0:146 textureQueryLevels ( temp uint) +0:146 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:149 Sequence +0:149 move second child to first child ( temp 2-component vector of uint) +0:149 'sizeQueryTemp' ( temp 2-component vector of uint) +0:149 textureSize ( temp 2-component vector of uint) +0:149 'g_tTex2dmsf4' ( uniform texture2DMS) +0:149 move second child to first child ( temp uint) +0:149 'WidthU' ( temp uint) +0:149 direct index ( temp uint) +0:149 'sizeQueryTemp' ( temp 2-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 move second child to first child ( temp uint) +0:149 'HeightU' ( temp uint) +0:149 direct index ( temp uint) +0:149 'sizeQueryTemp' ( temp 2-component vector of uint) +0:149 Constant: +0:149 1 (const int) +0:149 move second child to first child ( temp uint) +0:149 'NumberOfSamplesU' ( temp uint) +0:149 imageQuerySamples ( temp uint) +0:149 'g_tTex2dmsf4' ( uniform texture2DMS) +0:152 Sequence +0:152 move second child to first child ( temp 2-component vector of uint) +0:152 'sizeQueryTemp' ( temp 2-component vector of uint) +0:152 textureSize ( temp 2-component vector of uint) +0:152 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:152 move second child to first child ( temp uint) +0:152 'WidthU' ( temp uint) +0:152 direct index ( temp uint) +0:152 'sizeQueryTemp' ( temp 2-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 move second child to first child ( temp uint) +0:152 'HeightU' ( temp uint) +0:152 direct index ( temp uint) +0:152 'sizeQueryTemp' ( temp 2-component vector of uint) +0:152 Constant: +0:152 1 (const int) +0:152 move second child to first child ( temp uint) +0:152 'NumberOfSamplesU' ( temp uint) +0:152 imageQuerySamples ( temp uint) +0:152 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:155 Sequence +0:155 move second child to first child ( temp 2-component vector of uint) +0:155 'sizeQueryTemp' ( temp 2-component vector of uint) +0:155 textureSize ( temp 2-component vector of uint) +0:155 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:155 move second child to first child ( temp uint) +0:155 'WidthU' ( temp uint) +0:155 direct index ( temp uint) +0:155 'sizeQueryTemp' ( temp 2-component vector of uint) +0:155 Constant: +0:155 0 (const int) +0:155 move second child to first child ( temp uint) +0:155 'HeightU' ( temp uint) +0:155 direct index ( temp uint) +0:155 'sizeQueryTemp' ( temp 2-component vector of uint) +0:155 Constant: +0:155 1 (const int) +0:155 move second child to first child ( temp uint) +0:155 'NumberOfSamplesU' ( temp uint) +0:155 imageQuerySamples ( temp uint) +0:155 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:158 Sequence +0:158 move second child to first child ( temp 3-component vector of uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 textureSize ( temp 3-component vector of uint) +0:158 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:158 move second child to first child ( temp uint) +0:158 'WidthU' ( temp uint) +0:158 direct index ( temp uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 Constant: +0:158 0 (const int) +0:158 move second child to first child ( temp uint) +0:158 'HeightU' ( temp uint) +0:158 direct index ( temp uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 Constant: +0:158 1 (const int) +0:158 move second child to first child ( temp uint) +0:158 'ElementsU' ( temp uint) +0:158 direct index ( temp uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 Constant: +0:158 2 (const int) +0:158 move second child to first child ( temp uint) +0:158 'NumberOfSamplesU' ( temp uint) +0:158 imageQuerySamples ( temp uint) +0:158 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:161 Sequence +0:161 move second child to first child ( temp 3-component vector of uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 textureSize ( temp 3-component vector of uint) +0:161 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:161 move second child to first child ( temp uint) +0:161 'WidthU' ( temp uint) +0:161 direct index ( temp uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 Constant: +0:161 0 (const int) +0:161 move second child to first child ( temp uint) +0:161 'HeightU' ( temp uint) +0:161 direct index ( temp uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 Constant: +0:161 1 (const int) +0:161 move second child to first child ( temp uint) +0:161 'ElementsU' ( temp uint) +0:161 direct index ( temp uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 Constant: +0:161 2 (const int) +0:161 move second child to first child ( temp uint) +0:161 'NumberOfSamplesU' ( temp uint) +0:161 imageQuerySamples ( temp uint) +0:161 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:164 Sequence +0:164 move second child to first child ( temp 3-component vector of uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 textureSize ( temp 3-component vector of uint) +0:164 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:164 move second child to first child ( temp uint) +0:164 'WidthU' ( temp uint) +0:164 direct index ( temp uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 Constant: +0:164 0 (const int) +0:164 move second child to first child ( temp uint) +0:164 'HeightU' ( temp uint) +0:164 direct index ( temp uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 Constant: +0:164 1 (const int) +0:164 move second child to first child ( temp uint) +0:164 'ElementsU' ( temp uint) +0:164 direct index ( temp uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 Constant: +0:164 2 (const int) +0:164 move second child to first child ( temp uint) +0:164 'NumberOfSamplesU' ( temp uint) +0:164 imageQuerySamples ( temp uint) +0:164 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:276 move second child to first child ( temp 4-component vector of float) +0:276 Color: direct index for structure ( temp 4-component vector of float) +0:276 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:276 Constant: +0:276 0 (const int) +0:276 Constant: +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 +0:277 move second child to first child ( temp float) +0:277 Depth: direct index for structure ( temp float) +0:277 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:277 Constant: +0:277 1 (const int) +0:277 Constant: +0:277 1.000000 +0:279 Branch: Return with expression +0:279 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Function Definition: main( ( temp void) +0:46 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:46 Color: direct index for structure ( temp 4-component vector of float) +0:46 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 0 (const int) +0:46 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:46 Depth: direct index for structure ( temp float) +0:46 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:? 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:46 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Function Parameters: +0:? Sequence +0:65 Sequence +0:65 move second child to first child ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:65 textureSize ( temp uint) +0:65 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:65 Constant: +0:65 0 (const int) +0:65 move second child to first child ( temp uint) +0:65 'WidthU' ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:66 Sequence +0:66 move second child to first child ( temp uint) +0:66 'sizeQueryTemp' ( temp uint) +0:66 textureSize ( temp uint) +0:66 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:66 Constant: +0:66 6 (const uint) +0:66 move second child to first child ( temp uint) +0:66 'WidthU' ( temp uint) +0:66 'sizeQueryTemp' ( temp uint) +0:66 move second child to first child ( temp uint) +0:66 'NumberOfLevelsU' ( temp uint) +0:66 textureQueryLevels ( temp uint) +0:66 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:69 Sequence +0:69 move second child to first child ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:69 textureSize ( temp uint) +0:69 'g_tTex1di4' ( uniform itexture1D) +0:69 Constant: +0:69 0 (const int) +0:69 move second child to first child ( temp uint) +0:69 'WidthU' ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:70 Sequence +0:70 move second child to first child ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 textureSize ( temp uint) +0:70 'g_tTex1di4' ( uniform itexture1D) +0:70 Constant: +0:70 6 (const uint) +0:70 move second child to first child ( temp uint) +0:70 'WidthU' ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 move second child to first child ( temp uint) +0:70 'NumberOfLevelsU' ( temp uint) +0:70 textureQueryLevels ( temp uint) +0:70 'g_tTex1di4' ( uniform itexture1D) +0:73 Sequence +0:73 move second child to first child ( temp uint) +0:73 'sizeQueryTemp' ( temp uint) +0:73 textureSize ( temp uint) +0:73 'g_tTex1du4' ( uniform utexture1D) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child ( temp uint) +0:73 'WidthU' ( temp uint) +0:73 'sizeQueryTemp' ( temp uint) +0:74 Sequence +0:74 move second child to first child ( temp uint) +0:74 'sizeQueryTemp' ( temp uint) +0:74 textureSize ( temp uint) +0:74 'g_tTex1du4' ( uniform utexture1D) +0:74 Constant: +0:74 6 (const uint) +0:74 move second child to first child ( temp uint) +0:74 'WidthU' ( temp uint) +0:74 'sizeQueryTemp' ( temp uint) +0:74 move second child to first child ( temp uint) +0:74 'NumberOfLevelsU' ( temp uint) +0:74 textureQueryLevels ( temp uint) +0:74 'g_tTex1du4' ( uniform utexture1D) +0:77 Sequence +0:77 move second child to first child ( temp 2-component vector of uint) +0:77 'sizeQueryTemp' ( temp 2-component vector of uint) +0:77 textureSize ( temp 2-component vector of uint) +0:77 'g_tTex1df4a' ( uniform texture1DArray) +0:77 Constant: +0:77 0 (const int) +0:77 move second child to first child ( temp uint) +0:77 'WidthU' ( temp uint) +0:77 direct index ( temp uint) +0:77 'sizeQueryTemp' ( temp 2-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 move second child to first child ( temp uint) +0:77 'ElementsU' ( temp uint) +0:77 direct index ( temp uint) +0:77 'sizeQueryTemp' ( temp 2-component vector of uint) +0:77 Constant: +0:77 1 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 2-component vector of uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 textureSize ( temp 2-component vector of uint) +0:78 'g_tTex1df4a' ( uniform texture1DArray) +0:78 Constant: +0:78 6 (const uint) +0:78 move second child to first child ( temp uint) +0:78 'WidthU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child ( temp uint) +0:78 'ElementsU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:78 move second child to first child ( temp uint) +0:78 'NumberOfLevelsU' ( temp uint) +0:78 textureQueryLevels ( temp uint) +0:78 'g_tTex1df4a' ( uniform texture1DArray) +0:81 Sequence +0:81 move second child to first child ( temp 2-component vector of uint) +0:81 'sizeQueryTemp' ( temp 2-component vector of uint) +0:81 textureSize ( temp 2-component vector of uint) +0:81 'g_tTex1di4a' ( uniform itexture1DArray) +0:81 Constant: +0:81 0 (const int) +0:81 move second child to first child ( temp uint) +0:81 'WidthU' ( temp uint) +0:81 direct index ( temp uint) +0:81 'sizeQueryTemp' ( temp 2-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 move second child to first child ( temp uint) +0:81 'ElementsU' ( temp uint) +0:81 direct index ( temp uint) +0:81 'sizeQueryTemp' ( temp 2-component vector of uint) +0:81 Constant: +0:81 1 (const int) +0:82 Sequence +0:82 move second child to first child ( temp 2-component vector of uint) +0:82 'sizeQueryTemp' ( temp 2-component vector of uint) +0:82 textureSize ( temp 2-component vector of uint) +0:82 'g_tTex1di4a' ( uniform itexture1DArray) +0:82 Constant: +0:82 6 (const uint) +0:82 move second child to first child ( temp uint) +0:82 'WidthU' ( temp uint) +0:82 direct index ( temp uint) +0:82 'sizeQueryTemp' ( temp 2-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 move second child to first child ( temp uint) +0:82 'ElementsU' ( temp uint) +0:82 direct index ( temp uint) +0:82 'sizeQueryTemp' ( temp 2-component vector of uint) +0:82 Constant: +0:82 1 (const int) +0:82 move second child to first child ( temp uint) +0:82 'NumberOfLevelsU' ( temp uint) +0:82 textureQueryLevels ( temp uint) +0:82 'g_tTex1di4a' ( uniform itexture1DArray) +0:85 Sequence +0:85 move second child to first child ( temp 2-component vector of uint) +0:85 'sizeQueryTemp' ( temp 2-component vector of uint) +0:85 textureSize ( temp 2-component vector of uint) +0:85 'g_tTex1du4a' ( uniform utexture1DArray) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child ( temp uint) +0:85 'WidthU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 2-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child ( temp uint) +0:85 'ElementsU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 2-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:86 Sequence +0:86 move second child to first child ( temp 2-component vector of uint) +0:86 'sizeQueryTemp' ( temp 2-component vector of uint) +0:86 textureSize ( temp 2-component vector of uint) +0:86 'g_tTex1du4a' ( uniform utexture1DArray) +0:86 Constant: +0:86 6 (const uint) +0:86 move second child to first child ( temp uint) +0:86 'WidthU' ( temp uint) +0:86 direct index ( temp uint) +0:86 'sizeQueryTemp' ( temp 2-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 move second child to first child ( temp uint) +0:86 'ElementsU' ( temp uint) +0:86 direct index ( temp uint) +0:86 'sizeQueryTemp' ( temp 2-component vector of uint) +0:86 Constant: +0:86 1 (const int) +0:86 move second child to first child ( temp uint) +0:86 'NumberOfLevelsU' ( temp uint) +0:86 textureQueryLevels ( temp uint) +0:86 'g_tTex1du4a' ( uniform utexture1DArray) +0:89 Sequence +0:89 move second child to first child ( temp 2-component vector of uint) +0:89 'sizeQueryTemp' ( temp 2-component vector of uint) +0:89 textureSize ( temp 2-component vector of uint) +0:89 'g_tTex2df4' ( uniform texture2D) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child ( temp uint) +0:89 'WidthU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 2-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child ( temp uint) +0:89 'HeightU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 2-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 2-component vector of uint) +0:90 'sizeQueryTemp' ( temp 2-component vector of uint) +0:90 textureSize ( temp 2-component vector of uint) +0:90 'g_tTex2df4' ( uniform texture2D) +0:90 Constant: +0:90 6 (const uint) +0:90 move second child to first child ( temp uint) +0:90 'WidthU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 2-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child ( temp uint) +0:90 'HeightU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 2-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child ( temp uint) +0:90 'NumberOfLevelsU' ( temp uint) +0:90 textureQueryLevels ( temp uint) +0:90 'g_tTex2df4' ( uniform texture2D) +0:93 Sequence +0:93 move second child to first child ( temp 2-component vector of uint) +0:93 'sizeQueryTemp' ( temp 2-component vector of uint) +0:93 textureSize ( temp 2-component vector of uint) +0:93 'g_tTex2di4' ( uniform itexture2D) +0:93 Constant: +0:93 0 (const int) +0:93 move second child to first child ( temp uint) +0:93 'WidthU' ( temp uint) +0:93 direct index ( temp uint) +0:93 'sizeQueryTemp' ( temp 2-component vector of uint) +0:93 Constant: +0:93 0 (const int) +0:93 move second child to first child ( temp uint) +0:93 'HeightU' ( temp uint) +0:93 direct index ( temp uint) +0:93 'sizeQueryTemp' ( temp 2-component vector of uint) +0:93 Constant: +0:93 1 (const int) +0:94 Sequence +0:94 move second child to first child ( temp 2-component vector of uint) +0:94 'sizeQueryTemp' ( temp 2-component vector of uint) +0:94 textureSize ( temp 2-component vector of uint) +0:94 'g_tTex2di4' ( uniform itexture2D) +0:94 Constant: +0:94 6 (const uint) +0:94 move second child to first child ( temp uint) +0:94 'WidthU' ( temp uint) +0:94 direct index ( temp uint) +0:94 'sizeQueryTemp' ( temp 2-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 move second child to first child ( temp uint) +0:94 'HeightU' ( temp uint) +0:94 direct index ( temp uint) +0:94 'sizeQueryTemp' ( temp 2-component vector of uint) +0:94 Constant: +0:94 1 (const int) +0:94 move second child to first child ( temp uint) +0:94 'NumberOfLevelsU' ( temp uint) +0:94 textureQueryLevels ( temp uint) +0:94 'g_tTex2di4' ( uniform itexture2D) +0:97 Sequence +0:97 move second child to first child ( temp 2-component vector of uint) +0:97 'sizeQueryTemp' ( temp 2-component vector of uint) +0:97 textureSize ( temp 2-component vector of uint) +0:97 'g_tTex2du4' ( uniform utexture2D) +0:97 Constant: +0:97 0 (const int) +0:97 move second child to first child ( temp uint) +0:97 'WidthU' ( temp uint) +0:97 direct index ( temp uint) +0:97 'sizeQueryTemp' ( temp 2-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 move second child to first child ( temp uint) +0:97 'HeightU' ( temp uint) +0:97 direct index ( temp uint) +0:97 'sizeQueryTemp' ( temp 2-component vector of uint) +0:97 Constant: +0:97 1 (const int) +0:98 Sequence +0:98 move second child to first child ( temp 2-component vector of uint) +0:98 'sizeQueryTemp' ( temp 2-component vector of uint) +0:98 textureSize ( temp 2-component vector of uint) +0:98 'g_tTex2du4' ( uniform utexture2D) +0:98 Constant: +0:98 6 (const uint) +0:98 move second child to first child ( temp uint) +0:98 'WidthU' ( temp uint) +0:98 direct index ( temp uint) +0:98 'sizeQueryTemp' ( temp 2-component vector of uint) +0:98 Constant: +0:98 0 (const int) +0:98 move second child to first child ( temp uint) +0:98 'HeightU' ( temp uint) +0:98 direct index ( temp uint) +0:98 'sizeQueryTemp' ( temp 2-component vector of uint) +0:98 Constant: +0:98 1 (const int) +0:98 move second child to first child ( temp uint) +0:98 'NumberOfLevelsU' ( temp uint) +0:98 textureQueryLevels ( temp uint) +0:98 'g_tTex2du4' ( uniform utexture2D) +0:101 Sequence +0:101 move second child to first child ( temp 3-component vector of uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 textureSize ( temp 3-component vector of uint) +0:101 'g_tTex2df4a' ( uniform texture2DArray) +0:101 Constant: +0:101 0 (const int) +0:101 move second child to first child ( temp uint) +0:101 'WidthU' ( temp uint) +0:101 direct index ( temp uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 move second child to first child ( temp uint) +0:101 'HeightU' ( temp uint) +0:101 direct index ( temp uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 Constant: +0:101 1 (const int) +0:101 move second child to first child ( temp uint) +0:101 'ElementsU' ( temp uint) +0:101 direct index ( temp uint) +0:101 'sizeQueryTemp' ( temp 3-component vector of uint) +0:101 Constant: +0:101 2 (const int) +0:102 Sequence +0:102 move second child to first child ( temp 3-component vector of uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 textureSize ( temp 3-component vector of uint) +0:102 'g_tTex2df4a' ( uniform texture2DArray) +0:102 Constant: +0:102 6 (const uint) +0:102 move second child to first child ( temp uint) +0:102 'WidthU' ( temp uint) +0:102 direct index ( temp uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 move second child to first child ( temp uint) +0:102 'HeightU' ( temp uint) +0:102 direct index ( temp uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 Constant: +0:102 1 (const int) +0:102 move second child to first child ( temp uint) +0:102 'ElementsU' ( temp uint) +0:102 direct index ( temp uint) +0:102 'sizeQueryTemp' ( temp 3-component vector of uint) +0:102 Constant: +0:102 2 (const int) +0:102 move second child to first child ( temp uint) +0:102 'NumberOfLevelsU' ( temp uint) +0:102 textureQueryLevels ( temp uint) +0:102 'g_tTex2df4a' ( uniform texture2DArray) +0:105 Sequence +0:105 move second child to first child ( temp 3-component vector of uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 textureSize ( temp 3-component vector of uint) +0:105 'g_tTex2di4a' ( uniform itexture2DArray) +0:105 Constant: +0:105 0 (const int) +0:105 move second child to first child ( temp uint) +0:105 'WidthU' ( temp uint) +0:105 direct index ( temp uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 move second child to first child ( temp uint) +0:105 'HeightU' ( temp uint) +0:105 direct index ( temp uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 Constant: +0:105 1 (const int) +0:105 move second child to first child ( temp uint) +0:105 'ElementsU' ( temp uint) +0:105 direct index ( temp uint) +0:105 'sizeQueryTemp' ( temp 3-component vector of uint) +0:105 Constant: +0:105 2 (const int) +0:106 Sequence +0:106 move second child to first child ( temp 3-component vector of uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 textureSize ( temp 3-component vector of uint) +0:106 'g_tTex2di4a' ( uniform itexture2DArray) +0:106 Constant: +0:106 6 (const uint) +0:106 move second child to first child ( temp uint) +0:106 'WidthU' ( temp uint) +0:106 direct index ( temp uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 move second child to first child ( temp uint) +0:106 'HeightU' ( temp uint) +0:106 direct index ( temp uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 Constant: +0:106 1 (const int) +0:106 move second child to first child ( temp uint) +0:106 'ElementsU' ( temp uint) +0:106 direct index ( temp uint) +0:106 'sizeQueryTemp' ( temp 3-component vector of uint) +0:106 Constant: +0:106 2 (const int) +0:106 move second child to first child ( temp uint) +0:106 'NumberOfLevelsU' ( temp uint) +0:106 textureQueryLevels ( temp uint) +0:106 'g_tTex2di4a' ( uniform itexture2DArray) +0:109 Sequence +0:109 move second child to first child ( temp 3-component vector of uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 textureSize ( temp 3-component vector of uint) +0:109 'g_tTex2du4a' ( uniform utexture2DArray) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child ( temp uint) +0:109 'WidthU' ( temp uint) +0:109 direct index ( temp uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child ( temp uint) +0:109 'HeightU' ( temp uint) +0:109 direct index ( temp uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 Constant: +0:109 1 (const int) +0:109 move second child to first child ( temp uint) +0:109 'ElementsU' ( temp uint) +0:109 direct index ( temp uint) +0:109 'sizeQueryTemp' ( temp 3-component vector of uint) +0:109 Constant: +0:109 2 (const int) +0:110 Sequence +0:110 move second child to first child ( temp 3-component vector of uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 textureSize ( temp 3-component vector of uint) +0:110 'g_tTex2du4a' ( uniform utexture2DArray) +0:110 Constant: +0:110 6 (const uint) +0:110 move second child to first child ( temp uint) +0:110 'WidthU' ( temp uint) +0:110 direct index ( temp uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 move second child to first child ( temp uint) +0:110 'HeightU' ( temp uint) +0:110 direct index ( temp uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 Constant: +0:110 1 (const int) +0:110 move second child to first child ( temp uint) +0:110 'ElementsU' ( temp uint) +0:110 direct index ( temp uint) +0:110 'sizeQueryTemp' ( temp 3-component vector of uint) +0:110 Constant: +0:110 2 (const int) +0:110 move second child to first child ( temp uint) +0:110 'NumberOfLevelsU' ( temp uint) +0:110 textureQueryLevels ( temp uint) +0:110 'g_tTex2du4a' ( uniform utexture2DArray) +0:113 Sequence +0:113 move second child to first child ( temp 3-component vector of uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 textureSize ( temp 3-component vector of uint) +0:113 'g_tTex3df4' ( uniform texture3D) +0:113 Constant: +0:113 0 (const int) +0:113 move second child to first child ( temp uint) +0:113 'WidthU' ( temp uint) +0:113 direct index ( temp uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 Constant: +0:113 0 (const int) +0:113 move second child to first child ( temp uint) +0:113 'HeightU' ( temp uint) +0:113 direct index ( temp uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 Constant: +0:113 1 (const int) +0:113 move second child to first child ( temp uint) +0:113 'DepthU' ( temp uint) +0:113 direct index ( temp uint) +0:113 'sizeQueryTemp' ( temp 3-component vector of uint) +0:113 Constant: +0:113 2 (const int) +0:114 Sequence +0:114 move second child to first child ( temp 3-component vector of uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 textureSize ( temp 3-component vector of uint) +0:114 'g_tTex3df4' ( uniform texture3D) +0:114 Constant: +0:114 6 (const uint) +0:114 move second child to first child ( temp uint) +0:114 'WidthU' ( temp uint) +0:114 direct index ( temp uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 move second child to first child ( temp uint) +0:114 'HeightU' ( temp uint) +0:114 direct index ( temp uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 Constant: +0:114 1 (const int) +0:114 move second child to first child ( temp uint) +0:114 'DepthU' ( temp uint) +0:114 direct index ( temp uint) +0:114 'sizeQueryTemp' ( temp 3-component vector of uint) +0:114 Constant: +0:114 2 (const int) +0:114 move second child to first child ( temp uint) +0:114 'NumberOfLevelsU' ( temp uint) +0:114 textureQueryLevels ( temp uint) +0:114 'g_tTex3df4' ( uniform texture3D) +0:117 Sequence +0:117 move second child to first child ( temp 3-component vector of uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 textureSize ( temp 3-component vector of uint) +0:117 'g_tTex3di4' ( uniform itexture3D) +0:117 Constant: +0:117 0 (const int) +0:117 move second child to first child ( temp uint) +0:117 'WidthU' ( temp uint) +0:117 direct index ( temp uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 move second child to first child ( temp uint) +0:117 'HeightU' ( temp uint) +0:117 direct index ( temp uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 Constant: +0:117 1 (const int) +0:117 move second child to first child ( temp uint) +0:117 'DepthU' ( temp uint) +0:117 direct index ( temp uint) +0:117 'sizeQueryTemp' ( temp 3-component vector of uint) +0:117 Constant: +0:117 2 (const int) +0:118 Sequence +0:118 move second child to first child ( temp 3-component vector of uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 textureSize ( temp 3-component vector of uint) +0:118 'g_tTex3di4' ( uniform itexture3D) +0:118 Constant: +0:118 6 (const uint) +0:118 move second child to first child ( temp uint) +0:118 'WidthU' ( temp uint) +0:118 direct index ( temp uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 Constant: +0:118 0 (const int) +0:118 move second child to first child ( temp uint) +0:118 'HeightU' ( temp uint) +0:118 direct index ( temp uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 Constant: +0:118 1 (const int) +0:118 move second child to first child ( temp uint) +0:118 'DepthU' ( temp uint) +0:118 direct index ( temp uint) +0:118 'sizeQueryTemp' ( temp 3-component vector of uint) +0:118 Constant: +0:118 2 (const int) +0:118 move second child to first child ( temp uint) +0:118 'NumberOfLevelsU' ( temp uint) +0:118 textureQueryLevels ( temp uint) +0:118 'g_tTex3di4' ( uniform itexture3D) +0:121 Sequence +0:121 move second child to first child ( temp 3-component vector of uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 textureSize ( temp 3-component vector of uint) +0:121 'g_tTex3du4' ( uniform utexture3D) +0:121 Constant: +0:121 0 (const int) +0:121 move second child to first child ( temp uint) +0:121 'WidthU' ( temp uint) +0:121 direct index ( temp uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 move second child to first child ( temp uint) +0:121 'HeightU' ( temp uint) +0:121 direct index ( temp uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 Constant: +0:121 1 (const int) +0:121 move second child to first child ( temp uint) +0:121 'DepthU' ( temp uint) +0:121 direct index ( temp uint) +0:121 'sizeQueryTemp' ( temp 3-component vector of uint) +0:121 Constant: +0:121 2 (const int) +0:122 Sequence +0:122 move second child to first child ( temp 3-component vector of uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 textureSize ( temp 3-component vector of uint) +0:122 'g_tTex3du4' ( uniform utexture3D) +0:122 Constant: +0:122 6 (const uint) +0:122 move second child to first child ( temp uint) +0:122 'WidthU' ( temp uint) +0:122 direct index ( temp uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 move second child to first child ( temp uint) +0:122 'HeightU' ( temp uint) +0:122 direct index ( temp uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 Constant: +0:122 1 (const int) +0:122 move second child to first child ( temp uint) +0:122 'DepthU' ( temp uint) +0:122 direct index ( temp uint) +0:122 'sizeQueryTemp' ( temp 3-component vector of uint) +0:122 Constant: +0:122 2 (const int) +0:122 move second child to first child ( temp uint) +0:122 'NumberOfLevelsU' ( temp uint) +0:122 textureQueryLevels ( temp uint) +0:122 'g_tTex3du4' ( uniform utexture3D) +0:125 Sequence +0:125 move second child to first child ( temp 2-component vector of uint) +0:125 'sizeQueryTemp' ( temp 2-component vector of uint) +0:125 textureSize ( temp 2-component vector of uint) +0:125 'g_tTexcdf4' ( uniform textureCube) +0:125 Constant: +0:125 0 (const int) +0:125 move second child to first child ( temp uint) +0:125 'WidthU' ( temp uint) +0:125 direct index ( temp uint) +0:125 'sizeQueryTemp' ( temp 2-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 move second child to first child ( temp uint) +0:125 'HeightU' ( temp uint) +0:125 direct index ( temp uint) +0:125 'sizeQueryTemp' ( temp 2-component vector of uint) +0:125 Constant: +0:125 1 (const int) +0:126 Sequence +0:126 move second child to first child ( temp 2-component vector of uint) +0:126 'sizeQueryTemp' ( temp 2-component vector of uint) +0:126 textureSize ( temp 2-component vector of uint) +0:126 'g_tTexcdf4' ( uniform textureCube) +0:126 Constant: +0:126 6 (const uint) +0:126 move second child to first child ( temp uint) +0:126 'WidthU' ( temp uint) +0:126 direct index ( temp uint) +0:126 'sizeQueryTemp' ( temp 2-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 move second child to first child ( temp uint) +0:126 'HeightU' ( temp uint) +0:126 direct index ( temp uint) +0:126 'sizeQueryTemp' ( temp 2-component vector of uint) +0:126 Constant: +0:126 1 (const int) +0:126 move second child to first child ( temp uint) +0:126 'NumberOfLevelsU' ( temp uint) +0:126 textureQueryLevels ( temp uint) +0:126 'g_tTexcdf4' ( uniform textureCube) +0:129 Sequence +0:129 move second child to first child ( temp 2-component vector of uint) +0:129 'sizeQueryTemp' ( temp 2-component vector of uint) +0:129 textureSize ( temp 2-component vector of uint) +0:129 'g_tTexcdi4' ( uniform itextureCube) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child ( temp uint) +0:129 'WidthU' ( temp uint) +0:129 direct index ( temp uint) +0:129 'sizeQueryTemp' ( temp 2-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child ( temp uint) +0:129 'HeightU' ( temp uint) +0:129 direct index ( temp uint) +0:129 'sizeQueryTemp' ( temp 2-component vector of uint) +0:129 Constant: +0:129 1 (const int) +0:130 Sequence +0:130 move second child to first child ( temp 2-component vector of uint) +0:130 'sizeQueryTemp' ( temp 2-component vector of uint) +0:130 textureSize ( temp 2-component vector of uint) +0:130 'g_tTexcdi4' ( uniform itextureCube) +0:130 Constant: +0:130 6 (const uint) +0:130 move second child to first child ( temp uint) +0:130 'WidthU' ( temp uint) +0:130 direct index ( temp uint) +0:130 'sizeQueryTemp' ( temp 2-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 move second child to first child ( temp uint) +0:130 'HeightU' ( temp uint) +0:130 direct index ( temp uint) +0:130 'sizeQueryTemp' ( temp 2-component vector of uint) +0:130 Constant: +0:130 1 (const int) +0:130 move second child to first child ( temp uint) +0:130 'NumberOfLevelsU' ( temp uint) +0:130 textureQueryLevels ( temp uint) +0:130 'g_tTexcdi4' ( uniform itextureCube) +0:133 Sequence +0:133 move second child to first child ( temp 2-component vector of uint) +0:133 'sizeQueryTemp' ( temp 2-component vector of uint) +0:133 textureSize ( temp 2-component vector of uint) +0:133 'g_tTexcdu4' ( uniform utextureCube) +0:133 Constant: +0:133 0 (const int) +0:133 move second child to first child ( temp uint) +0:133 'WidthU' ( temp uint) +0:133 direct index ( temp uint) +0:133 'sizeQueryTemp' ( temp 2-component vector of uint) +0:133 Constant: +0:133 0 (const int) +0:133 move second child to first child ( temp uint) +0:133 'HeightU' ( temp uint) +0:133 direct index ( temp uint) +0:133 'sizeQueryTemp' ( temp 2-component vector of uint) +0:133 Constant: +0:133 1 (const int) +0:134 Sequence +0:134 move second child to first child ( temp 2-component vector of uint) +0:134 'sizeQueryTemp' ( temp 2-component vector of uint) +0:134 textureSize ( temp 2-component vector of uint) +0:134 'g_tTexcdu4' ( uniform utextureCube) +0:134 Constant: +0:134 6 (const uint) +0:134 move second child to first child ( temp uint) +0:134 'WidthU' ( temp uint) +0:134 direct index ( temp uint) +0:134 'sizeQueryTemp' ( temp 2-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 move second child to first child ( temp uint) +0:134 'HeightU' ( temp uint) +0:134 direct index ( temp uint) +0:134 'sizeQueryTemp' ( temp 2-component vector of uint) +0:134 Constant: +0:134 1 (const int) +0:134 move second child to first child ( temp uint) +0:134 'NumberOfLevelsU' ( temp uint) +0:134 textureQueryLevels ( temp uint) +0:134 'g_tTexcdu4' ( uniform utextureCube) +0:137 Sequence +0:137 move second child to first child ( temp 3-component vector of uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 textureSize ( temp 3-component vector of uint) +0:137 'g_tTexcdf4a' ( uniform textureCubeArray) +0:137 Constant: +0:137 0 (const int) +0:137 move second child to first child ( temp uint) +0:137 'WidthU' ( temp uint) +0:137 direct index ( temp uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 move second child to first child ( temp uint) +0:137 'HeightU' ( temp uint) +0:137 direct index ( temp uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 Constant: +0:137 1 (const int) +0:137 move second child to first child ( temp uint) +0:137 'ElementsU' ( temp uint) +0:137 direct index ( temp uint) +0:137 'sizeQueryTemp' ( temp 3-component vector of uint) +0:137 Constant: +0:137 2 (const int) +0:138 Sequence +0:138 move second child to first child ( temp 3-component vector of uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 textureSize ( temp 3-component vector of uint) +0:138 'g_tTexcdf4a' ( uniform textureCubeArray) +0:138 Constant: +0:138 6 (const uint) +0:138 move second child to first child ( temp uint) +0:138 'WidthU' ( temp uint) +0:138 direct index ( temp uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 Constant: +0:138 0 (const int) +0:138 move second child to first child ( temp uint) +0:138 'HeightU' ( temp uint) +0:138 direct index ( temp uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 Constant: +0:138 1 (const int) +0:138 move second child to first child ( temp uint) +0:138 'ElementsU' ( temp uint) +0:138 direct index ( temp uint) +0:138 'sizeQueryTemp' ( temp 3-component vector of uint) +0:138 Constant: +0:138 2 (const int) +0:138 move second child to first child ( temp uint) +0:138 'NumberOfLevelsU' ( temp uint) +0:138 textureQueryLevels ( temp uint) +0:138 'g_tTexcdf4a' ( uniform textureCubeArray) +0:141 Sequence +0:141 move second child to first child ( temp 3-component vector of uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 textureSize ( temp 3-component vector of uint) +0:141 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:141 Constant: +0:141 0 (const int) +0:141 move second child to first child ( temp uint) +0:141 'WidthU' ( temp uint) +0:141 direct index ( temp uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 move second child to first child ( temp uint) +0:141 'HeightU' ( temp uint) +0:141 direct index ( temp uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 Constant: +0:141 1 (const int) +0:141 move second child to first child ( temp uint) +0:141 'ElementsU' ( temp uint) +0:141 direct index ( temp uint) +0:141 'sizeQueryTemp' ( temp 3-component vector of uint) +0:141 Constant: +0:141 2 (const int) +0:142 Sequence +0:142 move second child to first child ( temp 3-component vector of uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 textureSize ( temp 3-component vector of uint) +0:142 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:142 Constant: +0:142 6 (const uint) +0:142 move second child to first child ( temp uint) +0:142 'WidthU' ( temp uint) +0:142 direct index ( temp uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 move second child to first child ( temp uint) +0:142 'HeightU' ( temp uint) +0:142 direct index ( temp uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 Constant: +0:142 1 (const int) +0:142 move second child to first child ( temp uint) +0:142 'ElementsU' ( temp uint) +0:142 direct index ( temp uint) +0:142 'sizeQueryTemp' ( temp 3-component vector of uint) +0:142 Constant: +0:142 2 (const int) +0:142 move second child to first child ( temp uint) +0:142 'NumberOfLevelsU' ( temp uint) +0:142 textureQueryLevels ( temp uint) +0:142 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:145 Sequence +0:145 move second child to first child ( temp 3-component vector of uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 textureSize ( temp 3-component vector of uint) +0:145 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:145 Constant: +0:145 0 (const int) +0:145 move second child to first child ( temp uint) +0:145 'WidthU' ( temp uint) +0:145 direct index ( temp uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 move second child to first child ( temp uint) +0:145 'HeightU' ( temp uint) +0:145 direct index ( temp uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 Constant: +0:145 1 (const int) +0:145 move second child to first child ( temp uint) +0:145 'ElementsU' ( temp uint) +0:145 direct index ( temp uint) +0:145 'sizeQueryTemp' ( temp 3-component vector of uint) +0:145 Constant: +0:145 2 (const int) +0:146 Sequence +0:146 move second child to first child ( temp 3-component vector of uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 textureSize ( temp 3-component vector of uint) +0:146 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:146 Constant: +0:146 6 (const uint) +0:146 move second child to first child ( temp uint) +0:146 'WidthU' ( temp uint) +0:146 direct index ( temp uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 move second child to first child ( temp uint) +0:146 'HeightU' ( temp uint) +0:146 direct index ( temp uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 Constant: +0:146 1 (const int) +0:146 move second child to first child ( temp uint) +0:146 'ElementsU' ( temp uint) +0:146 direct index ( temp uint) +0:146 'sizeQueryTemp' ( temp 3-component vector of uint) +0:146 Constant: +0:146 2 (const int) +0:146 move second child to first child ( temp uint) +0:146 'NumberOfLevelsU' ( temp uint) +0:146 textureQueryLevels ( temp uint) +0:146 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:149 Sequence +0:149 move second child to first child ( temp 2-component vector of uint) +0:149 'sizeQueryTemp' ( temp 2-component vector of uint) +0:149 textureSize ( temp 2-component vector of uint) +0:149 'g_tTex2dmsf4' ( uniform texture2DMS) +0:149 move second child to first child ( temp uint) +0:149 'WidthU' ( temp uint) +0:149 direct index ( temp uint) +0:149 'sizeQueryTemp' ( temp 2-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 move second child to first child ( temp uint) +0:149 'HeightU' ( temp uint) +0:149 direct index ( temp uint) +0:149 'sizeQueryTemp' ( temp 2-component vector of uint) +0:149 Constant: +0:149 1 (const int) +0:149 move second child to first child ( temp uint) +0:149 'NumberOfSamplesU' ( temp uint) +0:149 imageQuerySamples ( temp uint) +0:149 'g_tTex2dmsf4' ( uniform texture2DMS) +0:152 Sequence +0:152 move second child to first child ( temp 2-component vector of uint) +0:152 'sizeQueryTemp' ( temp 2-component vector of uint) +0:152 textureSize ( temp 2-component vector of uint) +0:152 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:152 move second child to first child ( temp uint) +0:152 'WidthU' ( temp uint) +0:152 direct index ( temp uint) +0:152 'sizeQueryTemp' ( temp 2-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 move second child to first child ( temp uint) +0:152 'HeightU' ( temp uint) +0:152 direct index ( temp uint) +0:152 'sizeQueryTemp' ( temp 2-component vector of uint) +0:152 Constant: +0:152 1 (const int) +0:152 move second child to first child ( temp uint) +0:152 'NumberOfSamplesU' ( temp uint) +0:152 imageQuerySamples ( temp uint) +0:152 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:155 Sequence +0:155 move second child to first child ( temp 2-component vector of uint) +0:155 'sizeQueryTemp' ( temp 2-component vector of uint) +0:155 textureSize ( temp 2-component vector of uint) +0:155 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:155 move second child to first child ( temp uint) +0:155 'WidthU' ( temp uint) +0:155 direct index ( temp uint) +0:155 'sizeQueryTemp' ( temp 2-component vector of uint) +0:155 Constant: +0:155 0 (const int) +0:155 move second child to first child ( temp uint) +0:155 'HeightU' ( temp uint) +0:155 direct index ( temp uint) +0:155 'sizeQueryTemp' ( temp 2-component vector of uint) +0:155 Constant: +0:155 1 (const int) +0:155 move second child to first child ( temp uint) +0:155 'NumberOfSamplesU' ( temp uint) +0:155 imageQuerySamples ( temp uint) +0:155 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:158 Sequence +0:158 move second child to first child ( temp 3-component vector of uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 textureSize ( temp 3-component vector of uint) +0:158 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:158 move second child to first child ( temp uint) +0:158 'WidthU' ( temp uint) +0:158 direct index ( temp uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 Constant: +0:158 0 (const int) +0:158 move second child to first child ( temp uint) +0:158 'HeightU' ( temp uint) +0:158 direct index ( temp uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 Constant: +0:158 1 (const int) +0:158 move second child to first child ( temp uint) +0:158 'ElementsU' ( temp uint) +0:158 direct index ( temp uint) +0:158 'sizeQueryTemp' ( temp 3-component vector of uint) +0:158 Constant: +0:158 2 (const int) +0:158 move second child to first child ( temp uint) +0:158 'NumberOfSamplesU' ( temp uint) +0:158 imageQuerySamples ( temp uint) +0:158 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:161 Sequence +0:161 move second child to first child ( temp 3-component vector of uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 textureSize ( temp 3-component vector of uint) +0:161 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:161 move second child to first child ( temp uint) +0:161 'WidthU' ( temp uint) +0:161 direct index ( temp uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 Constant: +0:161 0 (const int) +0:161 move second child to first child ( temp uint) +0:161 'HeightU' ( temp uint) +0:161 direct index ( temp uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 Constant: +0:161 1 (const int) +0:161 move second child to first child ( temp uint) +0:161 'ElementsU' ( temp uint) +0:161 direct index ( temp uint) +0:161 'sizeQueryTemp' ( temp 3-component vector of uint) +0:161 Constant: +0:161 2 (const int) +0:161 move second child to first child ( temp uint) +0:161 'NumberOfSamplesU' ( temp uint) +0:161 imageQuerySamples ( temp uint) +0:161 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:164 Sequence +0:164 move second child to first child ( temp 3-component vector of uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 textureSize ( temp 3-component vector of uint) +0:164 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:164 move second child to first child ( temp uint) +0:164 'WidthU' ( temp uint) +0:164 direct index ( temp uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 Constant: +0:164 0 (const int) +0:164 move second child to first child ( temp uint) +0:164 'HeightU' ( temp uint) +0:164 direct index ( temp uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 Constant: +0:164 1 (const int) +0:164 move second child to first child ( temp uint) +0:164 'ElementsU' ( temp uint) +0:164 direct index ( temp uint) +0:164 'sizeQueryTemp' ( temp 3-component vector of uint) +0:164 Constant: +0:164 2 (const int) +0:164 move second child to first child ( temp uint) +0:164 'NumberOfSamplesU' ( temp uint) +0:164 imageQuerySamples ( temp uint) +0:164 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:276 move second child to first child ( temp 4-component vector of float) +0:276 Color: direct index for structure ( temp 4-component vector of float) +0:276 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:276 Constant: +0:276 0 (const int) +0:276 Constant: +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 +0:277 move second child to first child ( temp float) +0:277 Depth: direct index for structure ( temp float) +0:277 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:277 Constant: +0:277 1 (const int) +0:277 Constant: +0:277 1.000000 +0:279 Branch: Return with expression +0:279 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Function Definition: main( ( temp void) +0:46 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:46 Color: direct index for structure ( temp 4-component vector of float) +0:46 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 0 (const int) +0:46 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:46 Depth: direct index for structure ( temp float) +0:46 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:? 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 550 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 540 544 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "sizeQueryTemp" + Name 17 "g_tTex1df4" + Name 22 "WidthU" + Name 24 "sizeQueryTemp" + Name 29 "NumberOfLevelsU" + Name 32 "sizeQueryTemp" + Name 35 "g_tTex1di4" + Name 39 "sizeQueryTemp" + Name 45 "sizeQueryTemp" + Name 48 "g_tTex1du4" + Name 52 "sizeQueryTemp" + Name 60 "sizeQueryTemp" + Name 63 "g_tTex1df4a" + Name 69 "ElementsU" + Name 73 "sizeQueryTemp" + Name 82 "sizeQueryTemp" + Name 85 "g_tTex1di4a" + Name 92 "sizeQueryTemp" + Name 101 "sizeQueryTemp" + Name 104 "g_tTex1du4a" + Name 111 "sizeQueryTemp" + Name 120 "sizeQueryTemp" + Name 123 "g_tTex2df4" + Name 128 "HeightU" + Name 131 "sizeQueryTemp" + Name 140 "sizeQueryTemp" + Name 143 "g_tTex2di4" + Name 150 "sizeQueryTemp" + Name 159 "sizeQueryTemp" + Name 162 "g_tTex2du4" + Name 169 "sizeQueryTemp" + Name 180 "sizeQueryTemp" + Name 183 "g_tTex2df4a" + Name 193 "sizeQueryTemp" + Name 204 "sizeQueryTemp" + Name 207 "g_tTex2di4a" + Name 216 "sizeQueryTemp" + Name 227 "sizeQueryTemp" + Name 230 "g_tTex2du4a" + Name 239 "sizeQueryTemp" + Name 250 "sizeQueryTemp" + Name 253 "g_tTex3df4" + Name 260 "DepthU" + Name 263 "sizeQueryTemp" + Name 274 "sizeQueryTemp" + Name 277 "g_tTex3di4" + Name 286 "sizeQueryTemp" + Name 297 "sizeQueryTemp" + Name 300 "g_tTex3du4" + Name 309 "sizeQueryTemp" + Name 320 "sizeQueryTemp" + Name 323 "g_tTexcdf4" + Name 330 "sizeQueryTemp" + Name 339 "sizeQueryTemp" + Name 342 "g_tTexcdi4" + Name 349 "sizeQueryTemp" + Name 358 "sizeQueryTemp" + Name 361 "g_tTexcdu4" + Name 368 "sizeQueryTemp" + Name 377 "sizeQueryTemp" + Name 380 "g_tTexcdf4a" + Name 389 "sizeQueryTemp" + Name 400 "sizeQueryTemp" + Name 403 "g_tTexcdi4a" + Name 412 "sizeQueryTemp" + Name 423 "sizeQueryTemp" + Name 426 "g_tTexcdu4a" + Name 435 "sizeQueryTemp" + Name 446 "sizeQueryTemp" + Name 449 "g_tTex2dmsf4" + Name 456 "NumberOfSamplesU" + Name 459 "sizeQueryTemp" + Name 462 "g_tTex2dmsi4" + Name 471 "sizeQueryTemp" + Name 474 "g_tTex2dmsu4" + Name 483 "sizeQueryTemp" + Name 486 "g_tTex2dmsf4a" + Name 497 "sizeQueryTemp" + Name 500 "g_tTex2dmsi4a" + Name 511 "sizeQueryTemp" + Name 514 "g_tTex2dmsu4a" + Name 526 "psout" + Name 537 "flattenTemp" + Name 540 "@entryPointOutput.Color" + Name 544 "@entryPointOutput.Depth" + Name 549 "g_sSamp" + Decorate 17(g_tTex1df4) DescriptorSet 0 + Decorate 17(g_tTex1df4) Binding 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 63(g_tTex1df4a) DescriptorSet 0 + Decorate 85(g_tTex1di4a) DescriptorSet 0 + Decorate 104(g_tTex1du4a) DescriptorSet 0 + Decorate 123(g_tTex2df4) DescriptorSet 0 + Decorate 143(g_tTex2di4) DescriptorSet 0 + Decorate 162(g_tTex2du4) DescriptorSet 0 + Decorate 183(g_tTex2df4a) DescriptorSet 0 + Decorate 207(g_tTex2di4a) DescriptorSet 0 + Decorate 230(g_tTex2du4a) DescriptorSet 0 + Decorate 253(g_tTex3df4) DescriptorSet 0 + Decorate 277(g_tTex3di4) DescriptorSet 0 + Decorate 300(g_tTex3du4) DescriptorSet 0 + Decorate 323(g_tTexcdf4) DescriptorSet 0 + Decorate 342(g_tTexcdi4) DescriptorSet 0 + Decorate 361(g_tTexcdu4) DescriptorSet 0 + Decorate 380(g_tTexcdf4a) DescriptorSet 0 + Decorate 403(g_tTexcdi4a) DescriptorSet 0 + Decorate 426(g_tTexcdu4a) DescriptorSet 0 + Decorate 449(g_tTex2dmsf4) DescriptorSet 0 + Decorate 462(g_tTex2dmsi4) DescriptorSet 0 + Decorate 474(g_tTex2dmsu4) DescriptorSet 0 + Decorate 486(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 500(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 514(g_tTex2dmsu4a) DescriptorSet 0 + Decorate 540(@entryPointOutput.Color) Location 0 + Decorate 544(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 549(g_sSamp) DescriptorSet 0 + Decorate 549(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1df4): 16(ptr) Variable UniformConstant + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 26: 12(int) Constant 6 + 33: TypeImage 19(int) 1D sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 46: TypeImage 12(int) 1D sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 58: TypeVector 12(int) 2 + 59: TypePointer Function 58(ivec2) + 61: TypeImage 6(float) 1D array sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex1df4a): 62(ptr) Variable UniformConstant + 66: 12(int) Constant 0 + 70: 12(int) Constant 1 + 83: TypeImage 19(int) 1D array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex1di4a): 84(ptr) Variable UniformConstant + 102: TypeImage 12(int) 1D array sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1du4a): 103(ptr) Variable UniformConstant + 121: TypeImage 6(float) 2D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex2df4): 122(ptr) Variable UniformConstant + 141: TypeImage 19(int) 2D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex2di4): 142(ptr) Variable UniformConstant + 160: TypeImage 12(int) 2D sampled format:Unknown + 161: TypePointer UniformConstant 160 + 162(g_tTex2du4): 161(ptr) Variable UniformConstant + 178: TypeVector 12(int) 3 + 179: TypePointer Function 178(ivec3) + 181: TypeImage 6(float) 2D array sampled format:Unknown + 182: TypePointer UniformConstant 181 +183(g_tTex2df4a): 182(ptr) Variable UniformConstant + 190: 12(int) Constant 2 + 205: TypeImage 19(int) 2D array sampled format:Unknown + 206: TypePointer UniformConstant 205 +207(g_tTex2di4a): 206(ptr) Variable UniformConstant + 228: TypeImage 12(int) 2D array sampled format:Unknown + 229: TypePointer UniformConstant 228 +230(g_tTex2du4a): 229(ptr) Variable UniformConstant + 251: TypeImage 6(float) 3D sampled format:Unknown + 252: TypePointer UniformConstant 251 + 253(g_tTex3df4): 252(ptr) Variable UniformConstant + 275: TypeImage 19(int) 3D sampled format:Unknown + 276: TypePointer UniformConstant 275 + 277(g_tTex3di4): 276(ptr) Variable UniformConstant + 298: TypeImage 12(int) 3D sampled format:Unknown + 299: TypePointer UniformConstant 298 + 300(g_tTex3du4): 299(ptr) Variable UniformConstant + 321: TypeImage 6(float) Cube sampled format:Unknown + 322: TypePointer UniformConstant 321 + 323(g_tTexcdf4): 322(ptr) Variable UniformConstant + 340: TypeImage 19(int) Cube sampled format:Unknown + 341: TypePointer UniformConstant 340 + 342(g_tTexcdi4): 341(ptr) Variable UniformConstant + 359: TypeImage 12(int) Cube sampled format:Unknown + 360: TypePointer UniformConstant 359 + 361(g_tTexcdu4): 360(ptr) Variable UniformConstant + 378: TypeImage 6(float) Cube array sampled format:Unknown + 379: TypePointer UniformConstant 378 +380(g_tTexcdf4a): 379(ptr) Variable UniformConstant + 401: TypeImage 19(int) Cube array sampled format:Unknown + 402: TypePointer UniformConstant 401 +403(g_tTexcdi4a): 402(ptr) Variable UniformConstant + 424: TypeImage 12(int) Cube array sampled format:Unknown + 425: TypePointer UniformConstant 424 +426(g_tTexcdu4a): 425(ptr) Variable UniformConstant + 447: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 448: TypePointer UniformConstant 447 +449(g_tTex2dmsf4): 448(ptr) Variable UniformConstant + 460: TypeImage 19(int) 2D multi-sampled sampled format:Unknown + 461: TypePointer UniformConstant 460 +462(g_tTex2dmsi4): 461(ptr) Variable UniformConstant + 472: TypeImage 12(int) 2D multi-sampled sampled format:Unknown + 473: TypePointer UniformConstant 472 +474(g_tTex2dmsu4): 473(ptr) Variable UniformConstant + 484: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 485: TypePointer UniformConstant 484 +486(g_tTex2dmsf4a): 485(ptr) Variable UniformConstant + 498: TypeImage 19(int) 2D array multi-sampled sampled format:Unknown + 499: TypePointer UniformConstant 498 +500(g_tTex2dmsi4a): 499(ptr) Variable UniformConstant + 512: TypeImage 12(int) 2D array multi-sampled sampled format:Unknown + 513: TypePointer UniformConstant 512 +514(g_tTex2dmsu4a): 513(ptr) Variable UniformConstant + 525: TypePointer Function 8(PS_OUTPUT) + 527: 6(float) Constant 1065353216 + 528: 7(fvec4) ConstantComposite 527 527 527 527 + 529: TypePointer Function 7(fvec4) + 531: 19(int) Constant 1 + 532: TypePointer Function 6(float) + 539: TypePointer Output 7(fvec4) +540(@entryPointOutput.Color): 539(ptr) Variable Output + 543: TypePointer Output 6(float) +544(@entryPointOutput.Depth): 543(ptr) Variable Output + 547: TypeSampler + 548: TypePointer UniformConstant 547 + 549(g_sSamp): 548(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +537(flattenTemp): 525(ptr) Variable Function + 538:8(PS_OUTPUT) FunctionCall 10(@main() + Store 537(flattenTemp) 538 + 541: 529(ptr) AccessChain 537(flattenTemp) 20 + 542: 7(fvec4) Load 541 + Store 540(@entryPointOutput.Color) 542 + 545: 532(ptr) AccessChain 537(flattenTemp) 531 + 546: 6(float) Load 545 + Store 544(@entryPointOutput.Depth) 546 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label +14(sizeQueryTemp): 13(ptr) Variable Function + 22(WidthU): 13(ptr) Variable Function +24(sizeQueryTemp): 13(ptr) Variable Function +29(NumberOfLevelsU): 13(ptr) Variable Function +32(sizeQueryTemp): 13(ptr) Variable Function +39(sizeQueryTemp): 13(ptr) Variable Function +45(sizeQueryTemp): 13(ptr) Variable Function +52(sizeQueryTemp): 13(ptr) Variable Function +60(sizeQueryTemp): 59(ptr) Variable Function + 69(ElementsU): 13(ptr) Variable Function +73(sizeQueryTemp): 59(ptr) Variable Function +82(sizeQueryTemp): 59(ptr) Variable Function +92(sizeQueryTemp): 59(ptr) Variable Function +101(sizeQueryTemp): 59(ptr) Variable Function +111(sizeQueryTemp): 59(ptr) Variable Function +120(sizeQueryTemp): 59(ptr) Variable Function + 128(HeightU): 13(ptr) Variable Function +131(sizeQueryTemp): 59(ptr) Variable Function +140(sizeQueryTemp): 59(ptr) Variable Function +150(sizeQueryTemp): 59(ptr) Variable Function +159(sizeQueryTemp): 59(ptr) Variable Function +169(sizeQueryTemp): 59(ptr) Variable Function +180(sizeQueryTemp): 179(ptr) Variable Function +193(sizeQueryTemp): 179(ptr) Variable Function +204(sizeQueryTemp): 179(ptr) Variable Function +216(sizeQueryTemp): 179(ptr) Variable Function +227(sizeQueryTemp): 179(ptr) Variable Function +239(sizeQueryTemp): 179(ptr) Variable Function +250(sizeQueryTemp): 179(ptr) Variable Function + 260(DepthU): 13(ptr) Variable Function +263(sizeQueryTemp): 179(ptr) Variable Function +274(sizeQueryTemp): 179(ptr) Variable Function +286(sizeQueryTemp): 179(ptr) Variable Function +297(sizeQueryTemp): 179(ptr) Variable Function +309(sizeQueryTemp): 179(ptr) Variable Function +320(sizeQueryTemp): 59(ptr) Variable Function +330(sizeQueryTemp): 59(ptr) Variable Function +339(sizeQueryTemp): 59(ptr) Variable Function +349(sizeQueryTemp): 59(ptr) Variable Function +358(sizeQueryTemp): 59(ptr) Variable Function +368(sizeQueryTemp): 59(ptr) Variable Function +377(sizeQueryTemp): 179(ptr) Variable Function +389(sizeQueryTemp): 179(ptr) Variable Function +400(sizeQueryTemp): 179(ptr) Variable Function +412(sizeQueryTemp): 179(ptr) Variable Function +423(sizeQueryTemp): 179(ptr) Variable Function +435(sizeQueryTemp): 179(ptr) Variable Function +446(sizeQueryTemp): 59(ptr) Variable Function +456(NumberOfSamplesU): 13(ptr) Variable Function +459(sizeQueryTemp): 59(ptr) Variable Function +471(sizeQueryTemp): 59(ptr) Variable Function +483(sizeQueryTemp): 179(ptr) Variable Function +497(sizeQueryTemp): 179(ptr) Variable Function +511(sizeQueryTemp): 179(ptr) Variable Function + 526(psout): 525(ptr) Variable Function + 18: 15 Load 17(g_tTex1df4) + 21: 12(int) ImageQuerySizeLod 18 20 + Store 14(sizeQueryTemp) 21 + 23: 12(int) Load 14(sizeQueryTemp) + Store 22(WidthU) 23 + 25: 15 Load 17(g_tTex1df4) + 27: 12(int) ImageQuerySizeLod 25 26 + Store 24(sizeQueryTemp) 27 + 28: 12(int) Load 24(sizeQueryTemp) + Store 22(WidthU) 28 + 30: 15 Load 17(g_tTex1df4) + 31: 12(int) ImageQueryLevels 30 + Store 29(NumberOfLevelsU) 31 + 36: 33 Load 35(g_tTex1di4) + 37: 12(int) ImageQuerySizeLod 36 20 + Store 32(sizeQueryTemp) 37 + 38: 12(int) Load 32(sizeQueryTemp) + Store 22(WidthU) 38 + 40: 33 Load 35(g_tTex1di4) + 41: 12(int) ImageQuerySizeLod 40 26 + Store 39(sizeQueryTemp) 41 + 42: 12(int) Load 39(sizeQueryTemp) + Store 22(WidthU) 42 + 43: 33 Load 35(g_tTex1di4) + 44: 12(int) ImageQueryLevels 43 + Store 29(NumberOfLevelsU) 44 + 49: 46 Load 48(g_tTex1du4) + 50: 12(int) ImageQuerySizeLod 49 20 + Store 45(sizeQueryTemp) 50 + 51: 12(int) Load 45(sizeQueryTemp) + Store 22(WidthU) 51 + 53: 46 Load 48(g_tTex1du4) + 54: 12(int) ImageQuerySizeLod 53 26 + Store 52(sizeQueryTemp) 54 + 55: 12(int) Load 52(sizeQueryTemp) + Store 22(WidthU) 55 + 56: 46 Load 48(g_tTex1du4) + 57: 12(int) ImageQueryLevels 56 + Store 29(NumberOfLevelsU) 57 + 64: 61 Load 63(g_tTex1df4a) + 65: 58(ivec2) ImageQuerySizeLod 64 20 + Store 60(sizeQueryTemp) 65 + 67: 13(ptr) AccessChain 60(sizeQueryTemp) 66 + 68: 12(int) Load 67 + Store 22(WidthU) 68 + 71: 13(ptr) AccessChain 60(sizeQueryTemp) 70 + 72: 12(int) Load 71 + Store 69(ElementsU) 72 + 74: 61 Load 63(g_tTex1df4a) + 75: 58(ivec2) ImageQuerySizeLod 74 26 + Store 73(sizeQueryTemp) 75 + 76: 13(ptr) AccessChain 73(sizeQueryTemp) 66 + 77: 12(int) Load 76 + Store 22(WidthU) 77 + 78: 13(ptr) AccessChain 73(sizeQueryTemp) 70 + 79: 12(int) Load 78 + Store 69(ElementsU) 79 + 80: 61 Load 63(g_tTex1df4a) + 81: 12(int) ImageQueryLevels 80 + Store 29(NumberOfLevelsU) 81 + 86: 83 Load 85(g_tTex1di4a) + 87: 58(ivec2) ImageQuerySizeLod 86 20 + Store 82(sizeQueryTemp) 87 + 88: 13(ptr) AccessChain 82(sizeQueryTemp) 66 + 89: 12(int) Load 88 + Store 22(WidthU) 89 + 90: 13(ptr) AccessChain 82(sizeQueryTemp) 70 + 91: 12(int) Load 90 + Store 69(ElementsU) 91 + 93: 83 Load 85(g_tTex1di4a) + 94: 58(ivec2) ImageQuerySizeLod 93 26 + Store 92(sizeQueryTemp) 94 + 95: 13(ptr) AccessChain 92(sizeQueryTemp) 66 + 96: 12(int) Load 95 + Store 22(WidthU) 96 + 97: 13(ptr) AccessChain 92(sizeQueryTemp) 70 + 98: 12(int) Load 97 + Store 69(ElementsU) 98 + 99: 83 Load 85(g_tTex1di4a) + 100: 12(int) ImageQueryLevels 99 + Store 29(NumberOfLevelsU) 100 + 105: 102 Load 104(g_tTex1du4a) + 106: 58(ivec2) ImageQuerySizeLod 105 20 + Store 101(sizeQueryTemp) 106 + 107: 13(ptr) AccessChain 101(sizeQueryTemp) 66 + 108: 12(int) Load 107 + Store 22(WidthU) 108 + 109: 13(ptr) AccessChain 101(sizeQueryTemp) 70 + 110: 12(int) Load 109 + Store 69(ElementsU) 110 + 112: 102 Load 104(g_tTex1du4a) + 113: 58(ivec2) ImageQuerySizeLod 112 26 + Store 111(sizeQueryTemp) 113 + 114: 13(ptr) AccessChain 111(sizeQueryTemp) 66 + 115: 12(int) Load 114 + Store 22(WidthU) 115 + 116: 13(ptr) AccessChain 111(sizeQueryTemp) 70 + 117: 12(int) Load 116 + Store 69(ElementsU) 117 + 118: 102 Load 104(g_tTex1du4a) + 119: 12(int) ImageQueryLevels 118 + Store 29(NumberOfLevelsU) 119 + 124: 121 Load 123(g_tTex2df4) + 125: 58(ivec2) ImageQuerySizeLod 124 20 + Store 120(sizeQueryTemp) 125 + 126: 13(ptr) AccessChain 120(sizeQueryTemp) 66 + 127: 12(int) Load 126 + Store 22(WidthU) 127 + 129: 13(ptr) AccessChain 120(sizeQueryTemp) 70 + 130: 12(int) Load 129 + Store 128(HeightU) 130 + 132: 121 Load 123(g_tTex2df4) + 133: 58(ivec2) ImageQuerySizeLod 132 26 + Store 131(sizeQueryTemp) 133 + 134: 13(ptr) AccessChain 131(sizeQueryTemp) 66 + 135: 12(int) Load 134 + Store 22(WidthU) 135 + 136: 13(ptr) AccessChain 131(sizeQueryTemp) 70 + 137: 12(int) Load 136 + Store 128(HeightU) 137 + 138: 121 Load 123(g_tTex2df4) + 139: 12(int) ImageQueryLevels 138 + Store 29(NumberOfLevelsU) 139 + 144: 141 Load 143(g_tTex2di4) + 145: 58(ivec2) ImageQuerySizeLod 144 20 + Store 140(sizeQueryTemp) 145 + 146: 13(ptr) AccessChain 140(sizeQueryTemp) 66 + 147: 12(int) Load 146 + Store 22(WidthU) 147 + 148: 13(ptr) AccessChain 140(sizeQueryTemp) 70 + 149: 12(int) Load 148 + Store 128(HeightU) 149 + 151: 141 Load 143(g_tTex2di4) + 152: 58(ivec2) ImageQuerySizeLod 151 26 + Store 150(sizeQueryTemp) 152 + 153: 13(ptr) AccessChain 150(sizeQueryTemp) 66 + 154: 12(int) Load 153 + Store 22(WidthU) 154 + 155: 13(ptr) AccessChain 150(sizeQueryTemp) 70 + 156: 12(int) Load 155 + Store 128(HeightU) 156 + 157: 141 Load 143(g_tTex2di4) + 158: 12(int) ImageQueryLevels 157 + Store 29(NumberOfLevelsU) 158 + 163: 160 Load 162(g_tTex2du4) + 164: 58(ivec2) ImageQuerySizeLod 163 20 + Store 159(sizeQueryTemp) 164 + 165: 13(ptr) AccessChain 159(sizeQueryTemp) 66 + 166: 12(int) Load 165 + Store 22(WidthU) 166 + 167: 13(ptr) AccessChain 159(sizeQueryTemp) 70 + 168: 12(int) Load 167 + Store 128(HeightU) 168 + 170: 160 Load 162(g_tTex2du4) + 171: 58(ivec2) ImageQuerySizeLod 170 26 + Store 169(sizeQueryTemp) 171 + 172: 13(ptr) AccessChain 169(sizeQueryTemp) 66 + 173: 12(int) Load 172 + Store 22(WidthU) 173 + 174: 13(ptr) AccessChain 169(sizeQueryTemp) 70 + 175: 12(int) Load 174 + Store 128(HeightU) 175 + 176: 160 Load 162(g_tTex2du4) + 177: 12(int) ImageQueryLevels 176 + Store 29(NumberOfLevelsU) 177 + 184: 181 Load 183(g_tTex2df4a) + 185: 178(ivec3) ImageQuerySizeLod 184 20 + Store 180(sizeQueryTemp) 185 + 186: 13(ptr) AccessChain 180(sizeQueryTemp) 66 + 187: 12(int) Load 186 + Store 22(WidthU) 187 + 188: 13(ptr) AccessChain 180(sizeQueryTemp) 70 + 189: 12(int) Load 188 + Store 128(HeightU) 189 + 191: 13(ptr) AccessChain 180(sizeQueryTemp) 190 + 192: 12(int) Load 191 + Store 69(ElementsU) 192 + 194: 181 Load 183(g_tTex2df4a) + 195: 178(ivec3) ImageQuerySizeLod 194 26 + Store 193(sizeQueryTemp) 195 + 196: 13(ptr) AccessChain 193(sizeQueryTemp) 66 + 197: 12(int) Load 196 + Store 22(WidthU) 197 + 198: 13(ptr) AccessChain 193(sizeQueryTemp) 70 + 199: 12(int) Load 198 + Store 128(HeightU) 199 + 200: 13(ptr) AccessChain 193(sizeQueryTemp) 190 + 201: 12(int) Load 200 + Store 69(ElementsU) 201 + 202: 181 Load 183(g_tTex2df4a) + 203: 12(int) ImageQueryLevels 202 + Store 29(NumberOfLevelsU) 203 + 208: 205 Load 207(g_tTex2di4a) + 209: 178(ivec3) ImageQuerySizeLod 208 20 + Store 204(sizeQueryTemp) 209 + 210: 13(ptr) AccessChain 204(sizeQueryTemp) 66 + 211: 12(int) Load 210 + Store 22(WidthU) 211 + 212: 13(ptr) AccessChain 204(sizeQueryTemp) 70 + 213: 12(int) Load 212 + Store 128(HeightU) 213 + 214: 13(ptr) AccessChain 204(sizeQueryTemp) 190 + 215: 12(int) Load 214 + Store 69(ElementsU) 215 + 217: 205 Load 207(g_tTex2di4a) + 218: 178(ivec3) ImageQuerySizeLod 217 26 + Store 216(sizeQueryTemp) 218 + 219: 13(ptr) AccessChain 216(sizeQueryTemp) 66 + 220: 12(int) Load 219 + Store 22(WidthU) 220 + 221: 13(ptr) AccessChain 216(sizeQueryTemp) 70 + 222: 12(int) Load 221 + Store 128(HeightU) 222 + 223: 13(ptr) AccessChain 216(sizeQueryTemp) 190 + 224: 12(int) Load 223 + Store 69(ElementsU) 224 + 225: 205 Load 207(g_tTex2di4a) + 226: 12(int) ImageQueryLevels 225 + Store 29(NumberOfLevelsU) 226 + 231: 228 Load 230(g_tTex2du4a) + 232: 178(ivec3) ImageQuerySizeLod 231 20 + Store 227(sizeQueryTemp) 232 + 233: 13(ptr) AccessChain 227(sizeQueryTemp) 66 + 234: 12(int) Load 233 + Store 22(WidthU) 234 + 235: 13(ptr) AccessChain 227(sizeQueryTemp) 70 + 236: 12(int) Load 235 + Store 128(HeightU) 236 + 237: 13(ptr) AccessChain 227(sizeQueryTemp) 190 + 238: 12(int) Load 237 + Store 69(ElementsU) 238 + 240: 228 Load 230(g_tTex2du4a) + 241: 178(ivec3) ImageQuerySizeLod 240 26 + Store 239(sizeQueryTemp) 241 + 242: 13(ptr) AccessChain 239(sizeQueryTemp) 66 + 243: 12(int) Load 242 + Store 22(WidthU) 243 + 244: 13(ptr) AccessChain 239(sizeQueryTemp) 70 + 245: 12(int) Load 244 + Store 128(HeightU) 245 + 246: 13(ptr) AccessChain 239(sizeQueryTemp) 190 + 247: 12(int) Load 246 + Store 69(ElementsU) 247 + 248: 228 Load 230(g_tTex2du4a) + 249: 12(int) ImageQueryLevels 248 + Store 29(NumberOfLevelsU) 249 + 254: 251 Load 253(g_tTex3df4) + 255: 178(ivec3) ImageQuerySizeLod 254 20 + Store 250(sizeQueryTemp) 255 + 256: 13(ptr) AccessChain 250(sizeQueryTemp) 66 + 257: 12(int) Load 256 + Store 22(WidthU) 257 + 258: 13(ptr) AccessChain 250(sizeQueryTemp) 70 + 259: 12(int) Load 258 + Store 128(HeightU) 259 + 261: 13(ptr) AccessChain 250(sizeQueryTemp) 190 + 262: 12(int) Load 261 + Store 260(DepthU) 262 + 264: 251 Load 253(g_tTex3df4) + 265: 178(ivec3) ImageQuerySizeLod 264 26 + Store 263(sizeQueryTemp) 265 + 266: 13(ptr) AccessChain 263(sizeQueryTemp) 66 + 267: 12(int) Load 266 + Store 22(WidthU) 267 + 268: 13(ptr) AccessChain 263(sizeQueryTemp) 70 + 269: 12(int) Load 268 + Store 128(HeightU) 269 + 270: 13(ptr) AccessChain 263(sizeQueryTemp) 190 + 271: 12(int) Load 270 + Store 260(DepthU) 271 + 272: 251 Load 253(g_tTex3df4) + 273: 12(int) ImageQueryLevels 272 + Store 29(NumberOfLevelsU) 273 + 278: 275 Load 277(g_tTex3di4) + 279: 178(ivec3) ImageQuerySizeLod 278 20 + Store 274(sizeQueryTemp) 279 + 280: 13(ptr) AccessChain 274(sizeQueryTemp) 66 + 281: 12(int) Load 280 + Store 22(WidthU) 281 + 282: 13(ptr) AccessChain 274(sizeQueryTemp) 70 + 283: 12(int) Load 282 + Store 128(HeightU) 283 + 284: 13(ptr) AccessChain 274(sizeQueryTemp) 190 + 285: 12(int) Load 284 + Store 260(DepthU) 285 + 287: 275 Load 277(g_tTex3di4) + 288: 178(ivec3) ImageQuerySizeLod 287 26 + Store 286(sizeQueryTemp) 288 + 289: 13(ptr) AccessChain 286(sizeQueryTemp) 66 + 290: 12(int) Load 289 + Store 22(WidthU) 290 + 291: 13(ptr) AccessChain 286(sizeQueryTemp) 70 + 292: 12(int) Load 291 + Store 128(HeightU) 292 + 293: 13(ptr) AccessChain 286(sizeQueryTemp) 190 + 294: 12(int) Load 293 + Store 260(DepthU) 294 + 295: 275 Load 277(g_tTex3di4) + 296: 12(int) ImageQueryLevels 295 + Store 29(NumberOfLevelsU) 296 + 301: 298 Load 300(g_tTex3du4) + 302: 178(ivec3) ImageQuerySizeLod 301 20 + Store 297(sizeQueryTemp) 302 + 303: 13(ptr) AccessChain 297(sizeQueryTemp) 66 + 304: 12(int) Load 303 + Store 22(WidthU) 304 + 305: 13(ptr) AccessChain 297(sizeQueryTemp) 70 + 306: 12(int) Load 305 + Store 128(HeightU) 306 + 307: 13(ptr) AccessChain 297(sizeQueryTemp) 190 + 308: 12(int) Load 307 + Store 260(DepthU) 308 + 310: 298 Load 300(g_tTex3du4) + 311: 178(ivec3) ImageQuerySizeLod 310 26 + Store 309(sizeQueryTemp) 311 + 312: 13(ptr) AccessChain 309(sizeQueryTemp) 66 + 313: 12(int) Load 312 + Store 22(WidthU) 313 + 314: 13(ptr) AccessChain 309(sizeQueryTemp) 70 + 315: 12(int) Load 314 + Store 128(HeightU) 315 + 316: 13(ptr) AccessChain 309(sizeQueryTemp) 190 + 317: 12(int) Load 316 + Store 260(DepthU) 317 + 318: 298 Load 300(g_tTex3du4) + 319: 12(int) ImageQueryLevels 318 + Store 29(NumberOfLevelsU) 319 + 324: 321 Load 323(g_tTexcdf4) + 325: 58(ivec2) ImageQuerySizeLod 324 20 + Store 320(sizeQueryTemp) 325 + 326: 13(ptr) AccessChain 320(sizeQueryTemp) 66 + 327: 12(int) Load 326 + Store 22(WidthU) 327 + 328: 13(ptr) AccessChain 320(sizeQueryTemp) 70 + 329: 12(int) Load 328 + Store 128(HeightU) 329 + 331: 321 Load 323(g_tTexcdf4) + 332: 58(ivec2) ImageQuerySizeLod 331 26 + Store 330(sizeQueryTemp) 332 + 333: 13(ptr) AccessChain 330(sizeQueryTemp) 66 + 334: 12(int) Load 333 + Store 22(WidthU) 334 + 335: 13(ptr) AccessChain 330(sizeQueryTemp) 70 + 336: 12(int) Load 335 + Store 128(HeightU) 336 + 337: 321 Load 323(g_tTexcdf4) + 338: 12(int) ImageQueryLevels 337 + Store 29(NumberOfLevelsU) 338 + 343: 340 Load 342(g_tTexcdi4) + 344: 58(ivec2) ImageQuerySizeLod 343 20 + Store 339(sizeQueryTemp) 344 + 345: 13(ptr) AccessChain 339(sizeQueryTemp) 66 + 346: 12(int) Load 345 + Store 22(WidthU) 346 + 347: 13(ptr) AccessChain 339(sizeQueryTemp) 70 + 348: 12(int) Load 347 + Store 128(HeightU) 348 + 350: 340 Load 342(g_tTexcdi4) + 351: 58(ivec2) ImageQuerySizeLod 350 26 + Store 349(sizeQueryTemp) 351 + 352: 13(ptr) AccessChain 349(sizeQueryTemp) 66 + 353: 12(int) Load 352 + Store 22(WidthU) 353 + 354: 13(ptr) AccessChain 349(sizeQueryTemp) 70 + 355: 12(int) Load 354 + Store 128(HeightU) 355 + 356: 340 Load 342(g_tTexcdi4) + 357: 12(int) ImageQueryLevels 356 + Store 29(NumberOfLevelsU) 357 + 362: 359 Load 361(g_tTexcdu4) + 363: 58(ivec2) ImageQuerySizeLod 362 20 + Store 358(sizeQueryTemp) 363 + 364: 13(ptr) AccessChain 358(sizeQueryTemp) 66 + 365: 12(int) Load 364 + Store 22(WidthU) 365 + 366: 13(ptr) AccessChain 358(sizeQueryTemp) 70 + 367: 12(int) Load 366 + Store 128(HeightU) 367 + 369: 359 Load 361(g_tTexcdu4) + 370: 58(ivec2) ImageQuerySizeLod 369 26 + Store 368(sizeQueryTemp) 370 + 371: 13(ptr) AccessChain 368(sizeQueryTemp) 66 + 372: 12(int) Load 371 + Store 22(WidthU) 372 + 373: 13(ptr) AccessChain 368(sizeQueryTemp) 70 + 374: 12(int) Load 373 + Store 128(HeightU) 374 + 375: 359 Load 361(g_tTexcdu4) + 376: 12(int) ImageQueryLevels 375 + Store 29(NumberOfLevelsU) 376 + 381: 378 Load 380(g_tTexcdf4a) + 382: 178(ivec3) ImageQuerySizeLod 381 20 + Store 377(sizeQueryTemp) 382 + 383: 13(ptr) AccessChain 377(sizeQueryTemp) 66 + 384: 12(int) Load 383 + Store 22(WidthU) 384 + 385: 13(ptr) AccessChain 377(sizeQueryTemp) 70 + 386: 12(int) Load 385 + Store 128(HeightU) 386 + 387: 13(ptr) AccessChain 377(sizeQueryTemp) 190 + 388: 12(int) Load 387 + Store 69(ElementsU) 388 + 390: 378 Load 380(g_tTexcdf4a) + 391: 178(ivec3) ImageQuerySizeLod 390 26 + Store 389(sizeQueryTemp) 391 + 392: 13(ptr) AccessChain 389(sizeQueryTemp) 66 + 393: 12(int) Load 392 + Store 22(WidthU) 393 + 394: 13(ptr) AccessChain 389(sizeQueryTemp) 70 + 395: 12(int) Load 394 + Store 128(HeightU) 395 + 396: 13(ptr) AccessChain 389(sizeQueryTemp) 190 + 397: 12(int) Load 396 + Store 69(ElementsU) 397 + 398: 378 Load 380(g_tTexcdf4a) + 399: 12(int) ImageQueryLevels 398 + Store 29(NumberOfLevelsU) 399 + 404: 401 Load 403(g_tTexcdi4a) + 405: 178(ivec3) ImageQuerySizeLod 404 20 + Store 400(sizeQueryTemp) 405 + 406: 13(ptr) AccessChain 400(sizeQueryTemp) 66 + 407: 12(int) Load 406 + Store 22(WidthU) 407 + 408: 13(ptr) AccessChain 400(sizeQueryTemp) 70 + 409: 12(int) Load 408 + Store 128(HeightU) 409 + 410: 13(ptr) AccessChain 400(sizeQueryTemp) 190 + 411: 12(int) Load 410 + Store 69(ElementsU) 411 + 413: 401 Load 403(g_tTexcdi4a) + 414: 178(ivec3) ImageQuerySizeLod 413 26 + Store 412(sizeQueryTemp) 414 + 415: 13(ptr) AccessChain 412(sizeQueryTemp) 66 + 416: 12(int) Load 415 + Store 22(WidthU) 416 + 417: 13(ptr) AccessChain 412(sizeQueryTemp) 70 + 418: 12(int) Load 417 + Store 128(HeightU) 418 + 419: 13(ptr) AccessChain 412(sizeQueryTemp) 190 + 420: 12(int) Load 419 + Store 69(ElementsU) 420 + 421: 401 Load 403(g_tTexcdi4a) + 422: 12(int) ImageQueryLevels 421 + Store 29(NumberOfLevelsU) 422 + 427: 424 Load 426(g_tTexcdu4a) + 428: 178(ivec3) ImageQuerySizeLod 427 20 + Store 423(sizeQueryTemp) 428 + 429: 13(ptr) AccessChain 423(sizeQueryTemp) 66 + 430: 12(int) Load 429 + Store 22(WidthU) 430 + 431: 13(ptr) AccessChain 423(sizeQueryTemp) 70 + 432: 12(int) Load 431 + Store 128(HeightU) 432 + 433: 13(ptr) AccessChain 423(sizeQueryTemp) 190 + 434: 12(int) Load 433 + Store 69(ElementsU) 434 + 436: 424 Load 426(g_tTexcdu4a) + 437: 178(ivec3) ImageQuerySizeLod 436 26 + Store 435(sizeQueryTemp) 437 + 438: 13(ptr) AccessChain 435(sizeQueryTemp) 66 + 439: 12(int) Load 438 + Store 22(WidthU) 439 + 440: 13(ptr) AccessChain 435(sizeQueryTemp) 70 + 441: 12(int) Load 440 + Store 128(HeightU) 441 + 442: 13(ptr) AccessChain 435(sizeQueryTemp) 190 + 443: 12(int) Load 442 + Store 69(ElementsU) 443 + 444: 424 Load 426(g_tTexcdu4a) + 445: 12(int) ImageQueryLevels 444 + Store 29(NumberOfLevelsU) 445 + 450: 447 Load 449(g_tTex2dmsf4) + 451: 58(ivec2) ImageQuerySize 450 + Store 446(sizeQueryTemp) 451 + 452: 13(ptr) AccessChain 446(sizeQueryTemp) 66 + 453: 12(int) Load 452 + Store 22(WidthU) 453 + 454: 13(ptr) AccessChain 446(sizeQueryTemp) 70 + 455: 12(int) Load 454 + Store 128(HeightU) 455 + 457: 447 Load 449(g_tTex2dmsf4) + 458: 12(int) ImageQuerySamples 457 + Store 456(NumberOfSamplesU) 458 + 463: 460 Load 462(g_tTex2dmsi4) + 464: 58(ivec2) ImageQuerySize 463 + Store 459(sizeQueryTemp) 464 + 465: 13(ptr) AccessChain 459(sizeQueryTemp) 66 + 466: 12(int) Load 465 + Store 22(WidthU) 466 + 467: 13(ptr) AccessChain 459(sizeQueryTemp) 70 + 468: 12(int) Load 467 + Store 128(HeightU) 468 + 469: 460 Load 462(g_tTex2dmsi4) + 470: 12(int) ImageQuerySamples 469 + Store 456(NumberOfSamplesU) 470 + 475: 472 Load 474(g_tTex2dmsu4) + 476: 58(ivec2) ImageQuerySize 475 + Store 471(sizeQueryTemp) 476 + 477: 13(ptr) AccessChain 471(sizeQueryTemp) 66 + 478: 12(int) Load 477 + Store 22(WidthU) 478 + 479: 13(ptr) AccessChain 471(sizeQueryTemp) 70 + 480: 12(int) Load 479 + Store 128(HeightU) 480 + 481: 472 Load 474(g_tTex2dmsu4) + 482: 12(int) ImageQuerySamples 481 + Store 456(NumberOfSamplesU) 482 + 487: 484 Load 486(g_tTex2dmsf4a) + 488: 178(ivec3) ImageQuerySize 487 + Store 483(sizeQueryTemp) 488 + 489: 13(ptr) AccessChain 483(sizeQueryTemp) 66 + 490: 12(int) Load 489 + Store 22(WidthU) 490 + 491: 13(ptr) AccessChain 483(sizeQueryTemp) 70 + 492: 12(int) Load 491 + Store 128(HeightU) 492 + 493: 13(ptr) AccessChain 483(sizeQueryTemp) 190 + 494: 12(int) Load 493 + Store 69(ElementsU) 494 + 495: 484 Load 486(g_tTex2dmsf4a) + 496: 12(int) ImageQuerySamples 495 + Store 456(NumberOfSamplesU) 496 + 501: 498 Load 500(g_tTex2dmsi4a) + 502: 178(ivec3) ImageQuerySize 501 + Store 497(sizeQueryTemp) 502 + 503: 13(ptr) AccessChain 497(sizeQueryTemp) 66 + 504: 12(int) Load 503 + Store 22(WidthU) 504 + 505: 13(ptr) AccessChain 497(sizeQueryTemp) 70 + 506: 12(int) Load 505 + Store 128(HeightU) 506 + 507: 13(ptr) AccessChain 497(sizeQueryTemp) 190 + 508: 12(int) Load 507 + Store 69(ElementsU) 508 + 509: 498 Load 500(g_tTex2dmsi4a) + 510: 12(int) ImageQuerySamples 509 + Store 456(NumberOfSamplesU) 510 + 515: 512 Load 514(g_tTex2dmsu4a) + 516: 178(ivec3) ImageQuerySize 515 + Store 511(sizeQueryTemp) 516 + 517: 13(ptr) AccessChain 511(sizeQueryTemp) 66 + 518: 12(int) Load 517 + Store 22(WidthU) 518 + 519: 13(ptr) AccessChain 511(sizeQueryTemp) 70 + 520: 12(int) Load 519 + Store 128(HeightU) 520 + 521: 13(ptr) AccessChain 511(sizeQueryTemp) 190 + 522: 12(int) Load 521 + Store 69(ElementsU) 522 + 523: 512 Load 514(g_tTex2dmsu4a) + 524: 12(int) ImageQuerySamples 523 + Store 456(NumberOfSamplesU) 524 + 530: 529(ptr) AccessChain 526(psout) 20 + Store 530 528 + 533: 532(ptr) AccessChain 526(psout) 531 + Store 533 527 + 534:8(PS_OUTPUT) Load 526(psout) + ReturnValue 534 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out new file mode 100644 index 0000000000..cccdfeb247 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -0,0 +1,200 @@ +hlsl.getdimensions.dx10.vert +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:11 Function Parameters: +0:? Sequence +0:21 Sequence +0:21 move second child to first child ( temp uint) +0:21 'sizeQueryTemp' ( temp uint) +0:21 textureSize ( temp uint) +0:21 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:21 Constant: +0:21 0 (const int) +0:21 move second child to first child ( temp uint) +0:21 'WidthU' ( temp uint) +0:21 'sizeQueryTemp' ( temp uint) +0:22 Sequence +0:22 move second child to first child ( temp uint) +0:22 'sizeQueryTemp' ( temp uint) +0:22 textureSize ( temp uint) +0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:22 Constant: +0:22 6 (const uint) +0:22 move second child to first child ( temp uint) +0:22 'WidthU' ( temp uint) +0:22 'sizeQueryTemp' ( temp uint) +0:22 move second child to first child ( temp uint) +0:22 'NumberOfLevelsU' ( temp uint) +0:22 textureQueryLevels ( temp uint) +0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 Pos: direct index for structure ( temp 4-component vector of float) +0:24 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:24 Constant: +0:24 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:26 Branch: Return with expression +0:26 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:11 Pos: direct index for structure ( temp 4-component vector of float) +0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:11 Constant: +0:11 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:11 Function Parameters: +0:? Sequence +0:21 Sequence +0:21 move second child to first child ( temp uint) +0:21 'sizeQueryTemp' ( temp uint) +0:21 textureSize ( temp uint) +0:21 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:21 Constant: +0:21 0 (const int) +0:21 move second child to first child ( temp uint) +0:21 'WidthU' ( temp uint) +0:21 'sizeQueryTemp' ( temp uint) +0:22 Sequence +0:22 move second child to first child ( temp uint) +0:22 'sizeQueryTemp' ( temp uint) +0:22 textureSize ( temp uint) +0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:22 Constant: +0:22 6 (const uint) +0:22 move second child to first child ( temp uint) +0:22 'WidthU' ( temp uint) +0:22 'sizeQueryTemp' ( temp uint) +0:22 move second child to first child ( temp uint) +0:22 'NumberOfLevelsU' ( temp uint) +0:22 textureQueryLevels ( temp uint) +0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 Pos: direct index for structure ( temp 4-component vector of float) +0:24 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:24 Constant: +0:24 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:26 Branch: Return with expression +0:26 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:11 Pos: direct index for structure ( temp 4-component vector of float) +0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:11 Constant: +0:11 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 48 + + Capability Shader + Capability Sampled1D + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 42 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Pos" + Name 10 "@main(" + Name 14 "sizeQueryTemp" + Name 17 "g_tTex1df4" + Name 22 "WidthU" + Name 24 "sizeQueryTemp" + Name 29 "NumberOfLevelsU" + Name 33 "vsout" + Name 42 "@entryPointOutput.Pos" + Name 47 "g_sSamp" + Decorate 17(g_tTex1df4) DescriptorSet 0 + Decorate 17(g_tTex1df4) Binding 0 + Decorate 42(@entryPointOutput.Pos) BuiltIn Position + Decorate 47(g_sSamp) DescriptorSet 0 + Decorate 47(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(VS_OUTPUT) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1df4): 16(ptr) Variable UniformConstant + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 26: 12(int) Constant 6 + 32: TypePointer Function 8(VS_OUTPUT) + 34: 6(float) Constant 0 + 35: 7(fvec4) ConstantComposite 34 34 34 34 + 36: TypePointer Function 7(fvec4) + 41: TypePointer Output 7(fvec4) +42(@entryPointOutput.Pos): 41(ptr) Variable Output + 45: TypeSampler + 46: TypePointer UniformConstant 45 + 47(g_sSamp): 46(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 43:8(VS_OUTPUT) FunctionCall 10(@main() + 44: 7(fvec4) CompositeExtract 43 0 + Store 42(@entryPointOutput.Pos) 44 + Return + FunctionEnd + 10(@main():8(VS_OUTPUT) Function None 9 + 11: Label +14(sizeQueryTemp): 13(ptr) Variable Function + 22(WidthU): 13(ptr) Variable Function +24(sizeQueryTemp): 13(ptr) Variable Function +29(NumberOfLevelsU): 13(ptr) Variable Function + 33(vsout): 32(ptr) Variable Function + 18: 15 Load 17(g_tTex1df4) + 21: 12(int) ImageQuerySizeLod 18 20 + Store 14(sizeQueryTemp) 21 + 23: 12(int) Load 14(sizeQueryTemp) + Store 22(WidthU) 23 + 25: 15 Load 17(g_tTex1df4) + 27: 12(int) ImageQuerySizeLod 25 26 + Store 24(sizeQueryTemp) 27 + 28: 12(int) Load 24(sizeQueryTemp) + Store 22(WidthU) 28 + 30: 15 Load 17(g_tTex1df4) + 31: 12(int) ImageQueryLevels 30 + Store 29(NumberOfLevelsU) 31 + 37: 36(ptr) AccessChain 33(vsout) 20 + Store 37 35 + 38:8(VS_OUTPUT) Load 33(vsout) + ReturnValue 38 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out new file mode 100644 index 0000000000..0b9a674099 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -0,0 +1,1117 @@ +hlsl.getdimensions.rw.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:44 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child ( temp uint) +0:63 'sizeQueryTemp' ( temp uint) +0:63 imageQuerySize ( temp uint) +0:63 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:63 move second child to first child ( temp uint) +0:63 'WidthU' ( temp uint) +0:63 'sizeQueryTemp' ( temp uint) +0:64 Sequence +0:64 move second child to first child ( temp uint) +0:64 'sizeQueryTemp' ( temp uint) +0:64 imageQuerySize ( temp uint) +0:64 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:64 move second child to first child ( temp uint) +0:64 'WidthU' ( temp uint) +0:64 'sizeQueryTemp' ( temp uint) +0:65 Sequence +0:65 move second child to first child ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:65 imageQuerySize ( temp uint) +0:65 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:65 move second child to first child ( temp uint) +0:65 'WidthU' ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:68 Sequence +0:68 move second child to first child ( temp uint) +0:68 'sizeQueryTemp' ( temp uint) +0:68 imageQuerySize ( temp uint) +0:68 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:68 move second child to first child ( temp uint) +0:68 'WidthU' ( temp uint) +0:68 'sizeQueryTemp' ( temp uint) +0:69 Sequence +0:69 move second child to first child ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:69 imageQuerySize ( temp uint) +0:69 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:69 move second child to first child ( temp uint) +0:69 'WidthU' ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:70 Sequence +0:70 move second child to first child ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 imageQuerySize ( temp uint) +0:70 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:70 move second child to first child ( temp uint) +0:70 'WidthU' ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:73 Sequence +0:73 move second child to first child ( temp 2-component vector of uint) +0:73 'sizeQueryTemp' ( temp 2-component vector of uint) +0:73 imageQuerySize ( temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:73 move second child to first child ( temp uint) +0:73 'WidthU' ( temp uint) +0:73 direct index ( temp uint) +0:73 'sizeQueryTemp' ( temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child ( temp uint) +0:73 'ElementsU' ( temp uint) +0:73 direct index ( temp uint) +0:73 'sizeQueryTemp' ( temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child ( temp 2-component vector of uint) +0:74 'sizeQueryTemp' ( temp 2-component vector of uint) +0:74 imageQuerySize ( temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:74 move second child to first child ( temp uint) +0:74 'WidthU' ( temp uint) +0:74 direct index ( temp uint) +0:74 'sizeQueryTemp' ( temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child ( temp uint) +0:74 'ElementsU' ( temp uint) +0:74 direct index ( temp uint) +0:74 'sizeQueryTemp' ( temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child ( temp 2-component vector of uint) +0:75 'sizeQueryTemp' ( temp 2-component vector of uint) +0:75 imageQuerySize ( temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:75 move second child to first child ( temp uint) +0:75 'WidthU' ( temp uint) +0:75 direct index ( temp uint) +0:75 'sizeQueryTemp' ( temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child ( temp uint) +0:75 'ElementsU' ( temp uint) +0:75 direct index ( temp uint) +0:75 'sizeQueryTemp' ( temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 2-component vector of uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 imageQuerySize ( temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:78 move second child to first child ( temp uint) +0:78 'WidthU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child ( temp uint) +0:78 'HeightU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child ( temp 2-component vector of uint) +0:79 'sizeQueryTemp' ( temp 2-component vector of uint) +0:79 imageQuerySize ( temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:79 move second child to first child ( temp uint) +0:79 'WidthU' ( temp uint) +0:79 direct index ( temp uint) +0:79 'sizeQueryTemp' ( temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child ( temp uint) +0:79 'HeightU' ( temp uint) +0:79 direct index ( temp uint) +0:79 'sizeQueryTemp' ( temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child ( temp 2-component vector of uint) +0:80 'sizeQueryTemp' ( temp 2-component vector of uint) +0:80 imageQuerySize ( temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:80 move second child to first child ( temp uint) +0:80 'WidthU' ( temp uint) +0:80 direct index ( temp uint) +0:80 'sizeQueryTemp' ( temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child ( temp uint) +0:80 'HeightU' ( temp uint) +0:80 direct index ( temp uint) +0:80 'sizeQueryTemp' ( temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child ( temp 3-component vector of uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 imageQuerySize ( temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:83 move second child to first child ( temp uint) +0:83 'WidthU' ( temp uint) +0:83 direct index ( temp uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child ( temp uint) +0:83 'HeightU' ( temp uint) +0:83 direct index ( temp uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child ( temp uint) +0:83 'ElementsU' ( temp uint) +0:83 direct index ( temp uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child ( temp 3-component vector of uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 imageQuerySize ( temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:84 move second child to first child ( temp uint) +0:84 'WidthU' ( temp uint) +0:84 direct index ( temp uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child ( temp uint) +0:84 'HeightU' ( temp uint) +0:84 direct index ( temp uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child ( temp uint) +0:84 'ElementsU' ( temp uint) +0:84 direct index ( temp uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child ( temp 3-component vector of uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 imageQuerySize ( temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:85 move second child to first child ( temp uint) +0:85 'WidthU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child ( temp uint) +0:85 'HeightU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child ( temp uint) +0:85 'ElementsU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child ( temp 3-component vector of uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 imageQuerySize ( temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:88 move second child to first child ( temp uint) +0:88 'WidthU' ( temp uint) +0:88 direct index ( temp uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child ( temp uint) +0:88 'HeightU' ( temp uint) +0:88 direct index ( temp uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child ( temp uint) +0:88 'DepthU' ( temp uint) +0:88 direct index ( temp uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child ( temp 3-component vector of uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 imageQuerySize ( temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:89 move second child to first child ( temp uint) +0:89 'WidthU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child ( temp uint) +0:89 'HeightU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child ( temp uint) +0:89 'DepthU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 3-component vector of uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 imageQuerySize ( temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:90 move second child to first child ( temp uint) +0:90 'WidthU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child ( temp uint) +0:90 'HeightU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child ( temp uint) +0:90 'DepthU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child ( temp 4-component vector of float) +0:92 Color: direct index for structure ( temp 4-component vector of float) +0:92 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child ( temp float) +0:93 Depth: direct index for structure ( temp float) +0:93 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Branch: Return with expression +0:95 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Function Definition: main( ( temp void) +0:44 Function Parameters: +0:? Sequence +0:44 Sequence +0:44 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:44 Color: direct index for structure ( temp 4-component vector of float) +0:44 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Constant: +0:44 0 (const int) +0:44 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:44 Depth: direct index for structure ( temp float) +0:44 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Constant: +0:44 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:? 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:? 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:44 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child ( temp uint) +0:63 'sizeQueryTemp' ( temp uint) +0:63 imageQuerySize ( temp uint) +0:63 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:63 move second child to first child ( temp uint) +0:63 'WidthU' ( temp uint) +0:63 'sizeQueryTemp' ( temp uint) +0:64 Sequence +0:64 move second child to first child ( temp uint) +0:64 'sizeQueryTemp' ( temp uint) +0:64 imageQuerySize ( temp uint) +0:64 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:64 move second child to first child ( temp uint) +0:64 'WidthU' ( temp uint) +0:64 'sizeQueryTemp' ( temp uint) +0:65 Sequence +0:65 move second child to first child ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:65 imageQuerySize ( temp uint) +0:65 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:65 move second child to first child ( temp uint) +0:65 'WidthU' ( temp uint) +0:65 'sizeQueryTemp' ( temp uint) +0:68 Sequence +0:68 move second child to first child ( temp uint) +0:68 'sizeQueryTemp' ( temp uint) +0:68 imageQuerySize ( temp uint) +0:68 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:68 move second child to first child ( temp uint) +0:68 'WidthU' ( temp uint) +0:68 'sizeQueryTemp' ( temp uint) +0:69 Sequence +0:69 move second child to first child ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:69 imageQuerySize ( temp uint) +0:69 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:69 move second child to first child ( temp uint) +0:69 'WidthU' ( temp uint) +0:69 'sizeQueryTemp' ( temp uint) +0:70 Sequence +0:70 move second child to first child ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 imageQuerySize ( temp uint) +0:70 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:70 move second child to first child ( temp uint) +0:70 'WidthU' ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:73 Sequence +0:73 move second child to first child ( temp 2-component vector of uint) +0:73 'sizeQueryTemp' ( temp 2-component vector of uint) +0:73 imageQuerySize ( temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:73 move second child to first child ( temp uint) +0:73 'WidthU' ( temp uint) +0:73 direct index ( temp uint) +0:73 'sizeQueryTemp' ( temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child ( temp uint) +0:73 'ElementsU' ( temp uint) +0:73 direct index ( temp uint) +0:73 'sizeQueryTemp' ( temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child ( temp 2-component vector of uint) +0:74 'sizeQueryTemp' ( temp 2-component vector of uint) +0:74 imageQuerySize ( temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:74 move second child to first child ( temp uint) +0:74 'WidthU' ( temp uint) +0:74 direct index ( temp uint) +0:74 'sizeQueryTemp' ( temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child ( temp uint) +0:74 'ElementsU' ( temp uint) +0:74 direct index ( temp uint) +0:74 'sizeQueryTemp' ( temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child ( temp 2-component vector of uint) +0:75 'sizeQueryTemp' ( temp 2-component vector of uint) +0:75 imageQuerySize ( temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:75 move second child to first child ( temp uint) +0:75 'WidthU' ( temp uint) +0:75 direct index ( temp uint) +0:75 'sizeQueryTemp' ( temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child ( temp uint) +0:75 'ElementsU' ( temp uint) +0:75 direct index ( temp uint) +0:75 'sizeQueryTemp' ( temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child ( temp 2-component vector of uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 imageQuerySize ( temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:78 move second child to first child ( temp uint) +0:78 'WidthU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child ( temp uint) +0:78 'HeightU' ( temp uint) +0:78 direct index ( temp uint) +0:78 'sizeQueryTemp' ( temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child ( temp 2-component vector of uint) +0:79 'sizeQueryTemp' ( temp 2-component vector of uint) +0:79 imageQuerySize ( temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:79 move second child to first child ( temp uint) +0:79 'WidthU' ( temp uint) +0:79 direct index ( temp uint) +0:79 'sizeQueryTemp' ( temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child ( temp uint) +0:79 'HeightU' ( temp uint) +0:79 direct index ( temp uint) +0:79 'sizeQueryTemp' ( temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child ( temp 2-component vector of uint) +0:80 'sizeQueryTemp' ( temp 2-component vector of uint) +0:80 imageQuerySize ( temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:80 move second child to first child ( temp uint) +0:80 'WidthU' ( temp uint) +0:80 direct index ( temp uint) +0:80 'sizeQueryTemp' ( temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child ( temp uint) +0:80 'HeightU' ( temp uint) +0:80 direct index ( temp uint) +0:80 'sizeQueryTemp' ( temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child ( temp 3-component vector of uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 imageQuerySize ( temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:83 move second child to first child ( temp uint) +0:83 'WidthU' ( temp uint) +0:83 direct index ( temp uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child ( temp uint) +0:83 'HeightU' ( temp uint) +0:83 direct index ( temp uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child ( temp uint) +0:83 'ElementsU' ( temp uint) +0:83 direct index ( temp uint) +0:83 'sizeQueryTemp' ( temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child ( temp 3-component vector of uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 imageQuerySize ( temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:84 move second child to first child ( temp uint) +0:84 'WidthU' ( temp uint) +0:84 direct index ( temp uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child ( temp uint) +0:84 'HeightU' ( temp uint) +0:84 direct index ( temp uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child ( temp uint) +0:84 'ElementsU' ( temp uint) +0:84 direct index ( temp uint) +0:84 'sizeQueryTemp' ( temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child ( temp 3-component vector of uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 imageQuerySize ( temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:85 move second child to first child ( temp uint) +0:85 'WidthU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child ( temp uint) +0:85 'HeightU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child ( temp uint) +0:85 'ElementsU' ( temp uint) +0:85 direct index ( temp uint) +0:85 'sizeQueryTemp' ( temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child ( temp 3-component vector of uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 imageQuerySize ( temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:88 move second child to first child ( temp uint) +0:88 'WidthU' ( temp uint) +0:88 direct index ( temp uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child ( temp uint) +0:88 'HeightU' ( temp uint) +0:88 direct index ( temp uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child ( temp uint) +0:88 'DepthU' ( temp uint) +0:88 direct index ( temp uint) +0:88 'sizeQueryTemp' ( temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child ( temp 3-component vector of uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 imageQuerySize ( temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:89 move second child to first child ( temp uint) +0:89 'WidthU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child ( temp uint) +0:89 'HeightU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child ( temp uint) +0:89 'DepthU' ( temp uint) +0:89 direct index ( temp uint) +0:89 'sizeQueryTemp' ( temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 3-component vector of uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 imageQuerySize ( temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:90 move second child to first child ( temp uint) +0:90 'WidthU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child ( temp uint) +0:90 'HeightU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child ( temp uint) +0:90 'DepthU' ( temp uint) +0:90 direct index ( temp uint) +0:90 'sizeQueryTemp' ( temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child ( temp 4-component vector of float) +0:92 Color: direct index for structure ( temp 4-component vector of float) +0:92 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child ( temp float) +0:93 Depth: direct index for structure ( temp float) +0:93 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Branch: Return with expression +0:95 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Function Definition: main( ( temp void) +0:44 Function Parameters: +0:? Sequence +0:44 Sequence +0:44 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:44 Color: direct index for structure ( temp 4-component vector of float) +0:44 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Constant: +0:44 0 (const int) +0:44 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:44 Depth: direct index for structure ( temp float) +0:44 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:44 Constant: +0:44 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:? 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:? 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 232 + + Capability Shader + Capability Image1D + Capability ImageBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 216 220 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "sizeQueryTemp" + Name 17 "g_tTex1df4" + Name 20 "WidthU" + Name 22 "sizeQueryTemp" + Name 26 "g_tTex1di4" + Name 30 "sizeQueryTemp" + Name 33 "g_tTex1du4" + Name 37 "sizeQueryTemp" + Name 40 "g_tBuffF" + Name 44 "sizeQueryTemp" + Name 47 "g_tBuffI" + Name 51 "sizeQueryTemp" + Name 54 "g_tBuffU" + Name 60 "sizeQueryTemp" + Name 63 "g_tTex1df4a" + Name 69 "ElementsU" + Name 73 "sizeQueryTemp" + Name 76 "g_tTex1di4a" + Name 83 "sizeQueryTemp" + Name 86 "g_tTex1du4a" + Name 93 "sizeQueryTemp" + Name 96 "g_tTex2df4" + Name 101 "HeightU" + Name 104 "sizeQueryTemp" + Name 107 "g_tTex2di4" + Name 114 "sizeQueryTemp" + Name 117 "g_tTex2du4" + Name 126 "sizeQueryTemp" + Name 129 "g_tTex2df4a" + Name 139 "sizeQueryTemp" + Name 142 "g_tTex2di4a" + Name 151 "sizeQueryTemp" + Name 154 "g_tTex2du4a" + Name 163 "sizeQueryTemp" + Name 166 "g_tTex3df4" + Name 173 "DepthU" + Name 176 "sizeQueryTemp" + Name 179 "g_tTex3di4" + Name 188 "sizeQueryTemp" + Name 191 "g_tTex3du4" + Name 201 "psout" + Name 213 "flattenTemp" + Name 216 "@entryPointOutput.Color" + Name 220 "@entryPointOutput.Depth" + Name 225 "g_sSamp" + Name 229 "$Global" + MemberName 229($Global) 0 "c1" + MemberName 229($Global) 1 "c2" + MemberName 229($Global) 2 "c3" + MemberName 229($Global) 3 "c4" + MemberName 229($Global) 4 "o1" + MemberName 229($Global) 5 "o2" + MemberName 229($Global) 6 "o3" + MemberName 229($Global) 7 "o4" + Name 231 "" + Decorate 17(g_tTex1df4) DescriptorSet 0 + Decorate 17(g_tTex1df4) Binding 0 + Decorate 26(g_tTex1di4) DescriptorSet 0 + Decorate 33(g_tTex1du4) DescriptorSet 0 + Decorate 40(g_tBuffF) DescriptorSet 0 + Decorate 47(g_tBuffI) DescriptorSet 0 + Decorate 54(g_tBuffU) DescriptorSet 0 + Decorate 63(g_tTex1df4a) DescriptorSet 0 + Decorate 76(g_tTex1di4a) DescriptorSet 0 + Decorate 86(g_tTex1du4a) DescriptorSet 0 + Decorate 96(g_tTex2df4) DescriptorSet 0 + Decorate 107(g_tTex2di4) DescriptorSet 0 + Decorate 117(g_tTex2du4) DescriptorSet 0 + Decorate 129(g_tTex2df4a) DescriptorSet 0 + Decorate 142(g_tTex2di4a) DescriptorSet 0 + Decorate 154(g_tTex2du4a) DescriptorSet 0 + Decorate 166(g_tTex3df4) DescriptorSet 0 + Decorate 179(g_tTex3di4) DescriptorSet 0 + Decorate 191(g_tTex3du4) DescriptorSet 0 + Decorate 216(@entryPointOutput.Color) Location 0 + Decorate 220(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 225(g_sSamp) DescriptorSet 0 + Decorate 225(g_sSamp) Binding 0 + MemberDecorate 229($Global) 0 Offset 0 + MemberDecorate 229($Global) 1 Offset 8 + MemberDecorate 229($Global) 2 Offset 16 + MemberDecorate 229($Global) 3 Offset 32 + MemberDecorate 229($Global) 4 Offset 48 + MemberDecorate 229($Global) 5 Offset 56 + MemberDecorate 229($Global) 6 Offset 64 + MemberDecorate 229($Global) 7 Offset 80 + Decorate 229($Global) Block + Decorate 231 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 15: TypeImage 6(float) 1D nonsampled format:Rgba32f + 16: TypePointer UniformConstant 15 + 17(g_tTex1df4): 16(ptr) Variable UniformConstant + 23: TypeInt 32 1 + 24: TypeImage 23(int) 1D nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4): 25(ptr) Variable UniformConstant + 31: TypeImage 12(int) 1D nonsampled format:Rgba32ui + 32: TypePointer UniformConstant 31 + 33(g_tTex1du4): 32(ptr) Variable UniformConstant + 38: TypeImage 6(float) Buffer nonsampled format:Rgba32f + 39: TypePointer UniformConstant 38 + 40(g_tBuffF): 39(ptr) Variable UniformConstant + 45: TypeImage 23(int) Buffer nonsampled format:Rgba32i + 46: TypePointer UniformConstant 45 + 47(g_tBuffI): 46(ptr) Variable UniformConstant + 52: TypeImage 12(int) Buffer nonsampled format:Rgba32ui + 53: TypePointer UniformConstant 52 + 54(g_tBuffU): 53(ptr) Variable UniformConstant + 58: TypeVector 12(int) 2 + 59: TypePointer Function 58(ivec2) + 61: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 62: TypePointer UniformConstant 61 + 63(g_tTex1df4a): 62(ptr) Variable UniformConstant + 66: 12(int) Constant 0 + 70: 12(int) Constant 1 + 74: TypeImage 23(int) 1D array nonsampled format:Rgba32i + 75: TypePointer UniformConstant 74 + 76(g_tTex1di4a): 75(ptr) Variable UniformConstant + 84: TypeImage 12(int) 1D array nonsampled format:Rgba32ui + 85: TypePointer UniformConstant 84 + 86(g_tTex1du4a): 85(ptr) Variable UniformConstant + 94: TypeImage 6(float) 2D nonsampled format:Rgba32f + 95: TypePointer UniformConstant 94 + 96(g_tTex2df4): 95(ptr) Variable UniformConstant + 105: TypeImage 23(int) 2D nonsampled format:Rgba32i + 106: TypePointer UniformConstant 105 + 107(g_tTex2di4): 106(ptr) Variable UniformConstant + 115: TypeImage 12(int) 2D nonsampled format:Rgba32ui + 116: TypePointer UniformConstant 115 + 117(g_tTex2du4): 116(ptr) Variable UniformConstant + 124: TypeVector 12(int) 3 + 125: TypePointer Function 124(ivec3) + 127: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 128: TypePointer UniformConstant 127 +129(g_tTex2df4a): 128(ptr) Variable UniformConstant + 136: 12(int) Constant 2 + 140: TypeImage 23(int) 2D array nonsampled format:Rgba32i + 141: TypePointer UniformConstant 140 +142(g_tTex2di4a): 141(ptr) Variable UniformConstant + 152: TypeImage 12(int) 2D array nonsampled format:Rgba32ui + 153: TypePointer UniformConstant 152 +154(g_tTex2du4a): 153(ptr) Variable UniformConstant + 164: TypeImage 6(float) 3D nonsampled format:Rgba32f + 165: TypePointer UniformConstant 164 + 166(g_tTex3df4): 165(ptr) Variable UniformConstant + 177: TypeImage 23(int) 3D nonsampled format:Rgba32i + 178: TypePointer UniformConstant 177 + 179(g_tTex3di4): 178(ptr) Variable UniformConstant + 189: TypeImage 12(int) 3D nonsampled format:Rgba32ui + 190: TypePointer UniformConstant 189 + 191(g_tTex3du4): 190(ptr) Variable UniformConstant + 200: TypePointer Function 8(PS_OUTPUT) + 202: 23(int) Constant 0 + 203: 6(float) Constant 1065353216 + 204: 7(fvec4) ConstantComposite 203 203 203 203 + 205: TypePointer Function 7(fvec4) + 207: 23(int) Constant 1 + 208: TypePointer Function 6(float) + 215: TypePointer Output 7(fvec4) +216(@entryPointOutput.Color): 215(ptr) Variable Output + 219: TypePointer Output 6(float) +220(@entryPointOutput.Depth): 219(ptr) Variable Output + 223: TypeSampler + 224: TypePointer UniformConstant 223 + 225(g_sSamp): 224(ptr) Variable UniformConstant + 226: TypeVector 23(int) 2 + 227: TypeVector 23(int) 3 + 228: TypeVector 23(int) 4 + 229($Global): TypeStruct 23(int) 226(ivec2) 227(ivec3) 228(ivec4) 23(int) 226(ivec2) 227(ivec3) 228(ivec4) + 230: TypePointer Uniform 229($Global) + 231: 230(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label +213(flattenTemp): 200(ptr) Variable Function + 214:8(PS_OUTPUT) FunctionCall 10(@main() + Store 213(flattenTemp) 214 + 217: 205(ptr) AccessChain 213(flattenTemp) 202 + 218: 7(fvec4) Load 217 + Store 216(@entryPointOutput.Color) 218 + 221: 208(ptr) AccessChain 213(flattenTemp) 207 + 222: 6(float) Load 221 + Store 220(@entryPointOutput.Depth) 222 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label +14(sizeQueryTemp): 13(ptr) Variable Function + 20(WidthU): 13(ptr) Variable Function +22(sizeQueryTemp): 13(ptr) Variable Function +30(sizeQueryTemp): 13(ptr) Variable Function +37(sizeQueryTemp): 13(ptr) Variable Function +44(sizeQueryTemp): 13(ptr) Variable Function +51(sizeQueryTemp): 13(ptr) Variable Function +60(sizeQueryTemp): 59(ptr) Variable Function + 69(ElementsU): 13(ptr) Variable Function +73(sizeQueryTemp): 59(ptr) Variable Function +83(sizeQueryTemp): 59(ptr) Variable Function +93(sizeQueryTemp): 59(ptr) Variable Function + 101(HeightU): 13(ptr) Variable Function +104(sizeQueryTemp): 59(ptr) Variable Function +114(sizeQueryTemp): 59(ptr) Variable Function +126(sizeQueryTemp): 125(ptr) Variable Function +139(sizeQueryTemp): 125(ptr) Variable Function +151(sizeQueryTemp): 125(ptr) Variable Function +163(sizeQueryTemp): 125(ptr) Variable Function + 173(DepthU): 13(ptr) Variable Function +176(sizeQueryTemp): 125(ptr) Variable Function +188(sizeQueryTemp): 125(ptr) Variable Function + 201(psout): 200(ptr) Variable Function + 18: 15 Load 17(g_tTex1df4) + 19: 12(int) ImageQuerySize 18 + Store 14(sizeQueryTemp) 19 + 21: 12(int) Load 14(sizeQueryTemp) + Store 20(WidthU) 21 + 27: 24 Load 26(g_tTex1di4) + 28: 12(int) ImageQuerySize 27 + Store 22(sizeQueryTemp) 28 + 29: 12(int) Load 22(sizeQueryTemp) + Store 20(WidthU) 29 + 34: 31 Load 33(g_tTex1du4) + 35: 12(int) ImageQuerySize 34 + Store 30(sizeQueryTemp) 35 + 36: 12(int) Load 30(sizeQueryTemp) + Store 20(WidthU) 36 + 41: 38 Load 40(g_tBuffF) + 42: 12(int) ImageQuerySize 41 + Store 37(sizeQueryTemp) 42 + 43: 12(int) Load 37(sizeQueryTemp) + Store 20(WidthU) 43 + 48: 45 Load 47(g_tBuffI) + 49: 12(int) ImageQuerySize 48 + Store 44(sizeQueryTemp) 49 + 50: 12(int) Load 44(sizeQueryTemp) + Store 20(WidthU) 50 + 55: 52 Load 54(g_tBuffU) + 56: 12(int) ImageQuerySize 55 + Store 51(sizeQueryTemp) 56 + 57: 12(int) Load 51(sizeQueryTemp) + Store 20(WidthU) 57 + 64: 61 Load 63(g_tTex1df4a) + 65: 58(ivec2) ImageQuerySize 64 + Store 60(sizeQueryTemp) 65 + 67: 13(ptr) AccessChain 60(sizeQueryTemp) 66 + 68: 12(int) Load 67 + Store 20(WidthU) 68 + 71: 13(ptr) AccessChain 60(sizeQueryTemp) 70 + 72: 12(int) Load 71 + Store 69(ElementsU) 72 + 77: 74 Load 76(g_tTex1di4a) + 78: 58(ivec2) ImageQuerySize 77 + Store 73(sizeQueryTemp) 78 + 79: 13(ptr) AccessChain 73(sizeQueryTemp) 66 + 80: 12(int) Load 79 + Store 20(WidthU) 80 + 81: 13(ptr) AccessChain 73(sizeQueryTemp) 70 + 82: 12(int) Load 81 + Store 69(ElementsU) 82 + 87: 84 Load 86(g_tTex1du4a) + 88: 58(ivec2) ImageQuerySize 87 + Store 83(sizeQueryTemp) 88 + 89: 13(ptr) AccessChain 83(sizeQueryTemp) 66 + 90: 12(int) Load 89 + Store 20(WidthU) 90 + 91: 13(ptr) AccessChain 83(sizeQueryTemp) 70 + 92: 12(int) Load 91 + Store 69(ElementsU) 92 + 97: 94 Load 96(g_tTex2df4) + 98: 58(ivec2) ImageQuerySize 97 + Store 93(sizeQueryTemp) 98 + 99: 13(ptr) AccessChain 93(sizeQueryTemp) 66 + 100: 12(int) Load 99 + Store 20(WidthU) 100 + 102: 13(ptr) AccessChain 93(sizeQueryTemp) 70 + 103: 12(int) Load 102 + Store 101(HeightU) 103 + 108: 105 Load 107(g_tTex2di4) + 109: 58(ivec2) ImageQuerySize 108 + Store 104(sizeQueryTemp) 109 + 110: 13(ptr) AccessChain 104(sizeQueryTemp) 66 + 111: 12(int) Load 110 + Store 20(WidthU) 111 + 112: 13(ptr) AccessChain 104(sizeQueryTemp) 70 + 113: 12(int) Load 112 + Store 101(HeightU) 113 + 118: 115 Load 117(g_tTex2du4) + 119: 58(ivec2) ImageQuerySize 118 + Store 114(sizeQueryTemp) 119 + 120: 13(ptr) AccessChain 114(sizeQueryTemp) 66 + 121: 12(int) Load 120 + Store 20(WidthU) 121 + 122: 13(ptr) AccessChain 114(sizeQueryTemp) 70 + 123: 12(int) Load 122 + Store 101(HeightU) 123 + 130: 127 Load 129(g_tTex2df4a) + 131: 124(ivec3) ImageQuerySize 130 + Store 126(sizeQueryTemp) 131 + 132: 13(ptr) AccessChain 126(sizeQueryTemp) 66 + 133: 12(int) Load 132 + Store 20(WidthU) 133 + 134: 13(ptr) AccessChain 126(sizeQueryTemp) 70 + 135: 12(int) Load 134 + Store 101(HeightU) 135 + 137: 13(ptr) AccessChain 126(sizeQueryTemp) 136 + 138: 12(int) Load 137 + Store 69(ElementsU) 138 + 143: 140 Load 142(g_tTex2di4a) + 144: 124(ivec3) ImageQuerySize 143 + Store 139(sizeQueryTemp) 144 + 145: 13(ptr) AccessChain 139(sizeQueryTemp) 66 + 146: 12(int) Load 145 + Store 20(WidthU) 146 + 147: 13(ptr) AccessChain 139(sizeQueryTemp) 70 + 148: 12(int) Load 147 + Store 101(HeightU) 148 + 149: 13(ptr) AccessChain 139(sizeQueryTemp) 136 + 150: 12(int) Load 149 + Store 69(ElementsU) 150 + 155: 152 Load 154(g_tTex2du4a) + 156: 124(ivec3) ImageQuerySize 155 + Store 151(sizeQueryTemp) 156 + 157: 13(ptr) AccessChain 151(sizeQueryTemp) 66 + 158: 12(int) Load 157 + Store 20(WidthU) 158 + 159: 13(ptr) AccessChain 151(sizeQueryTemp) 70 + 160: 12(int) Load 159 + Store 101(HeightU) 160 + 161: 13(ptr) AccessChain 151(sizeQueryTemp) 136 + 162: 12(int) Load 161 + Store 69(ElementsU) 162 + 167: 164 Load 166(g_tTex3df4) + 168: 124(ivec3) ImageQuerySize 167 + Store 163(sizeQueryTemp) 168 + 169: 13(ptr) AccessChain 163(sizeQueryTemp) 66 + 170: 12(int) Load 169 + Store 20(WidthU) 170 + 171: 13(ptr) AccessChain 163(sizeQueryTemp) 70 + 172: 12(int) Load 171 + Store 101(HeightU) 172 + 174: 13(ptr) AccessChain 163(sizeQueryTemp) 136 + 175: 12(int) Load 174 + Store 173(DepthU) 175 + 180: 177 Load 179(g_tTex3di4) + 181: 124(ivec3) ImageQuerySize 180 + Store 176(sizeQueryTemp) 181 + 182: 13(ptr) AccessChain 176(sizeQueryTemp) 66 + 183: 12(int) Load 182 + Store 20(WidthU) 183 + 184: 13(ptr) AccessChain 176(sizeQueryTemp) 70 + 185: 12(int) Load 184 + Store 101(HeightU) 185 + 186: 13(ptr) AccessChain 176(sizeQueryTemp) 136 + 187: 12(int) Load 186 + Store 173(DepthU) 187 + 192: 189 Load 191(g_tTex3du4) + 193: 124(ivec3) ImageQuerySize 192 + Store 188(sizeQueryTemp) 193 + 194: 13(ptr) AccessChain 188(sizeQueryTemp) 66 + 195: 12(int) Load 194 + Store 20(WidthU) 195 + 196: 13(ptr) AccessChain 188(sizeQueryTemp) 70 + 197: 12(int) Load 196 + Store 101(HeightU) 197 + 198: 13(ptr) AccessChain 188(sizeQueryTemp) 136 + 199: 12(int) Load 198 + Store 173(DepthU) 199 + 206: 205(ptr) AccessChain 201(psout) 202 + Store 206 204 + 209: 208(ptr) AccessChain 201(psout) 207 + Store 209 203 + 210:8(PS_OUTPUT) Load 201(psout) + ReturnValue 210 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out new file mode 100644 index 0000000000..51bd076937 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -0,0 +1,846 @@ +hlsl.getsampleposition.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:13 Function Definition: @main(i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Function Parameters: +0:13 'sample' ( in int) +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 2-component vector of float) +0:16 'r00' ( temp 2-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp uint) +0:16 '@sampleCount' ( temp uint) +0:16 imageQuerySamples ( temp uint) +0:16 'g_tTex2dmsf4' ( uniform texture2DMS) +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 2 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.250000 +0:? 0.250000 +0:? -0.250000 +0:? -0.250000 +0:16 'sample' ( in int) +0:16 false case +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 4 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? -0.125000 +0:? -0.375000 +0:? 0.375000 +0:? -0.125000 +0:? -0.375000 +0:? 0.125000 +0:? 0.125000 +0:? 0.375000 +0:16 'sample' ( in int) +0:16 false case +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 8 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? -0.187500 +0:? -0.062500 +0:? 0.187500 +0:? 0.312500 +0:? 0.062500 +0:? -0.187500 +0:? -0.312500 +0:? -0.312500 +0:? 0.312500 +0:? -0.437500 +0:? -0.062500 +0:? 0.187500 +0:? 0.437500 +0:? 0.437500 +0:? -0.437500 +0:16 'sample' ( in int) +0:16 false case +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 16 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? 0.062500 +0:? -0.062500 +0:? -0.187500 +0:? -0.187500 +0:? 0.125000 +0:? 0.250000 +0:? -0.062500 +0:? -0.312500 +0:? -0.125000 +0:? 0.125000 +0:? 0.312500 +0:? 0.312500 +0:? 0.187500 +0:? 0.187500 +0:? -0.312500 +0:? -0.125000 +0:? 0.375000 +0:? 0.000000 +0:? -0.437500 +0:? -0.250000 +0:? -0.375000 +0:? -0.375000 +0:? 0.250000 +0:? -0.500000 +0:? 0.000000 +0:? 0.437500 +0:? -0.250000 +0:? 0.375000 +0:? 0.437500 +0:? -0.437500 +0:? -0.500000 +0:16 'sample' ( in int) +0:16 false case +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:17 Sequence +0:17 move second child to first child ( temp 2-component vector of float) +0:17 'r01' ( temp 2-component vector of float) +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 '@sampleCount' ( temp uint) +0:17 imageQuerySamples ( temp uint) +0:17 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 2 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.250000 +0:? 0.250000 +0:? -0.250000 +0:? -0.250000 +0:17 'sample' ( in int) +0:17 false case +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 4 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? -0.125000 +0:? -0.375000 +0:? 0.375000 +0:? -0.125000 +0:? -0.375000 +0:? 0.125000 +0:? 0.125000 +0:? 0.375000 +0:17 'sample' ( in int) +0:17 false case +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 8 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? -0.187500 +0:? -0.062500 +0:? 0.187500 +0:? 0.312500 +0:? 0.062500 +0:? -0.187500 +0:? -0.312500 +0:? -0.312500 +0:? 0.312500 +0:? -0.437500 +0:? -0.062500 +0:? 0.187500 +0:? 0.437500 +0:? 0.437500 +0:? -0.437500 +0:17 'sample' ( in int) +0:17 false case +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 16 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? 0.062500 +0:? -0.062500 +0:? -0.187500 +0:? -0.187500 +0:? 0.125000 +0:? 0.250000 +0:? -0.062500 +0:? -0.312500 +0:? -0.125000 +0:? 0.125000 +0:? 0.312500 +0:? 0.312500 +0:? 0.187500 +0:? 0.187500 +0:? -0.312500 +0:? -0.125000 +0:? 0.375000 +0:? 0.000000 +0:? -0.437500 +0:? -0.250000 +0:? -0.375000 +0:? -0.375000 +0:? 0.250000 +0:? -0.500000 +0:? 0.000000 +0:? 0.437500 +0:? -0.250000 +0:? 0.375000 +0:? 0.437500 +0:? -0.437500 +0:? -0.500000 +0:17 'sample' ( in int) +0:17 false case +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:19 move second child to first child ( temp 4-component vector of float) +0:19 Color: direct index for structure ( temp 4-component vector of float) +0:19 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 +0:20 move second child to first child ( temp float) +0:20 Depth: direct index for structure ( temp float) +0:20 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 1.000000 +0:22 Branch: Return with expression +0:22 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp int) +0:? 'sample' ( temp int) +0:? 'sample' (layout( location=0) flat in int) +0:13 Sequence +0:13 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Function Call: @main(i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:? 'sample' ( temp int) +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:13 Color: direct index for structure ( temp 4-component vector of float) +0:13 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:13 Depth: direct index for structure ( temp float) +0:13 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Constant: +0:13 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:? 'sample' (layout( location=0) flat in int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:13 Function Definition: @main(i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Function Parameters: +0:13 'sample' ( in int) +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 2-component vector of float) +0:16 'r00' ( temp 2-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp uint) +0:16 '@sampleCount' ( temp uint) +0:16 imageQuerySamples ( temp uint) +0:16 'g_tTex2dmsf4' ( uniform texture2DMS) +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 2 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.250000 +0:? 0.250000 +0:? -0.250000 +0:? -0.250000 +0:16 'sample' ( in int) +0:16 false case +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 4 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? -0.125000 +0:? -0.375000 +0:? 0.375000 +0:? -0.125000 +0:? -0.375000 +0:? 0.125000 +0:? 0.125000 +0:? 0.375000 +0:16 'sample' ( in int) +0:16 false case +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 8 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? -0.187500 +0:? -0.062500 +0:? 0.187500 +0:? 0.312500 +0:? 0.062500 +0:? -0.187500 +0:? -0.312500 +0:? -0.312500 +0:? 0.312500 +0:? -0.437500 +0:? -0.062500 +0:? 0.187500 +0:? 0.437500 +0:? 0.437500 +0:? -0.437500 +0:16 'sample' ( in int) +0:16 false case +0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:16 Condition +0:16 Compare Equal ( temp bool) +0:16 '@sampleCount' ( temp uint) +0:16 Constant: +0:16 16 (const int) +0:16 true case +0:16 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? 0.062500 +0:? -0.062500 +0:? -0.187500 +0:? -0.187500 +0:? 0.125000 +0:? 0.250000 +0:? -0.062500 +0:? -0.312500 +0:? -0.125000 +0:? 0.125000 +0:? 0.312500 +0:? 0.312500 +0:? 0.187500 +0:? 0.187500 +0:? -0.312500 +0:? -0.125000 +0:? 0.375000 +0:? 0.000000 +0:? -0.437500 +0:? -0.250000 +0:? -0.375000 +0:? -0.375000 +0:? 0.250000 +0:? -0.500000 +0:? 0.000000 +0:? 0.437500 +0:? -0.250000 +0:? 0.375000 +0:? 0.437500 +0:? -0.437500 +0:? -0.500000 +0:16 'sample' ( in int) +0:16 false case +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:17 Sequence +0:17 move second child to first child ( temp 2-component vector of float) +0:17 'r01' ( temp 2-component vector of float) +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 '@sampleCount' ( temp uint) +0:17 imageQuerySamples ( temp uint) +0:17 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 2 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.250000 +0:? 0.250000 +0:? -0.250000 +0:? -0.250000 +0:17 'sample' ( in int) +0:17 false case +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 4 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? -0.125000 +0:? -0.375000 +0:? 0.375000 +0:? -0.125000 +0:? -0.375000 +0:? 0.125000 +0:? 0.125000 +0:? 0.375000 +0:17 'sample' ( in int) +0:17 false case +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 8 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? -0.187500 +0:? -0.062500 +0:? 0.187500 +0:? 0.312500 +0:? 0.062500 +0:? -0.187500 +0:? -0.312500 +0:? -0.312500 +0:? 0.312500 +0:? -0.437500 +0:? -0.062500 +0:? 0.187500 +0:? 0.437500 +0:? 0.437500 +0:? -0.437500 +0:17 'sample' ( in int) +0:17 false case +0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit +0:17 Condition +0:17 Compare Equal ( temp bool) +0:17 '@sampleCount' ( temp uint) +0:17 Constant: +0:17 16 (const int) +0:17 true case +0:17 indirect index ( temp 2-component vector of float) +0:? Constant: +0:? 0.062500 +0:? 0.062500 +0:? -0.062500 +0:? -0.187500 +0:? -0.187500 +0:? 0.125000 +0:? 0.250000 +0:? -0.062500 +0:? -0.312500 +0:? -0.125000 +0:? 0.125000 +0:? 0.312500 +0:? 0.312500 +0:? 0.187500 +0:? 0.187500 +0:? -0.312500 +0:? -0.125000 +0:? 0.375000 +0:? 0.000000 +0:? -0.437500 +0:? -0.250000 +0:? -0.375000 +0:? -0.375000 +0:? 0.250000 +0:? -0.500000 +0:? 0.000000 +0:? 0.437500 +0:? -0.250000 +0:? 0.375000 +0:? 0.437500 +0:? -0.437500 +0:? -0.500000 +0:17 'sample' ( in int) +0:17 false case +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:19 move second child to first child ( temp 4-component vector of float) +0:19 Color: direct index for structure ( temp 4-component vector of float) +0:19 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 +0:20 move second child to first child ( temp float) +0:20 Depth: direct index for structure ( temp float) +0:20 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 1.000000 +0:22 Branch: Return with expression +0:22 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp int) +0:? 'sample' ( temp int) +0:? 'sample' (layout( location=0) flat in int) +0:13 Sequence +0:13 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Function Call: @main(i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:? 'sample' ( temp int) +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:13 Color: direct index for structure ( temp 4-component vector of float) +0:13 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:13 Depth: direct index for structure ( temp float) +0:13 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:13 Constant: +0:13 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:? 'sample' (layout( location=0) flat in int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 198 + + Capability Shader + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 181 188 192 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "Color" + MemberName 10(PS_OUTPUT) 1 "Depth" + Name 13 "@main(i1;" + Name 12 "sample" + Name 17 "r00" + Name 20 "@sampleCount" + Name 23 "g_tTex2dmsf4" + Name 39 "indexable" + Name 58 "indexable" + Name 85 "indexable" + Name 114 "indexable" + Name 127 "r01" + Name 128 "@sampleCount" + Name 131 "g_tTex2dmsf4a" + Name 137 "indexable" + Name 143 "indexable" + Name 149 "indexable" + Name 155 "indexable" + Name 167 "psout" + Name 179 "sample" + Name 181 "sample" + Name 183 "flattenTemp" + Name 184 "param" + Name 188 "@entryPointOutput.Color" + Name 192 "@entryPointOutput.Depth" + Name 197 "g_sSamp" + Decorate 23(g_tTex2dmsf4) DescriptorSet 0 + Decorate 131(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 181(sample) Flat + Decorate 181(sample) Location 0 + Decorate 188(@entryPointOutput.Color) Location 0 + Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 197(g_sSamp) DescriptorSet 0 + Decorate 197(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) 8(float) + 11: TypeFunction 10(PS_OUTPUT) 7(ptr) + 15: TypeVector 8(float) 2 + 16: TypePointer Function 15(fvec2) + 18: TypeInt 32 0 + 19: TypePointer Function 18(int) + 21: TypeImage 8(float) 2D multi-sampled sampled format:Unknown + 22: TypePointer UniformConstant 21 +23(g_tTex2dmsf4): 22(ptr) Variable UniformConstant + 27: 6(int) Constant 2 + 28: TypeBool + 30: 18(int) Constant 2 + 31: TypeArray 15(fvec2) 30 + 32: 8(float) Constant 1048576000 + 33: 15(fvec2) ConstantComposite 32 32 + 34: 8(float) Constant 3196059648 + 35: 15(fvec2) ConstantComposite 34 34 + 36: 31 ConstantComposite 33 35 + 38: TypePointer Function 31 + 43: 6(int) Constant 4 + 45: 18(int) Constant 4 + 46: TypeArray 15(fvec2) 45 + 47: 8(float) Constant 3187671040 + 48: 8(float) Constant 3200253952 + 49: 15(fvec2) ConstantComposite 47 48 + 50: 8(float) Constant 1052770304 + 51: 15(fvec2) ConstantComposite 50 47 + 52: 8(float) Constant 1040187392 + 53: 15(fvec2) ConstantComposite 48 52 + 54: 15(fvec2) ConstantComposite 52 50 + 55: 46 ConstantComposite 49 51 53 54 + 57: TypePointer Function 46 + 62: 6(int) Constant 8 + 64: 18(int) Constant 8 + 65: TypeArray 15(fvec2) 64 + 66: 8(float) Constant 1031798784 + 67: 8(float) Constant 3191865344 + 68: 15(fvec2) ConstantComposite 66 67 + 69: 8(float) Constant 3179282432 + 70: 8(float) Constant 1044381696 + 71: 15(fvec2) ConstantComposite 69 70 + 72: 8(float) Constant 1050673152 + 73: 15(fvec2) ConstantComposite 72 66 + 74: 8(float) Constant 3198156800 + 75: 15(fvec2) ConstantComposite 67 74 + 76: 15(fvec2) ConstantComposite 74 72 + 77: 8(float) Constant 3202351104 + 78: 15(fvec2) ConstantComposite 77 69 + 79: 8(float) Constant 1054867456 + 80: 15(fvec2) ConstantComposite 70 79 + 81: 15(fvec2) ConstantComposite 79 77 + 82: 65 ConstantComposite 68 71 73 75 76 78 80 81 + 84: TypePointer Function 65 + 89: 6(int) Constant 16 + 91: 18(int) Constant 16 + 92: TypeArray 15(fvec2) 91 + 93: 15(fvec2) ConstantComposite 66 66 + 94: 15(fvec2) ConstantComposite 69 67 + 95: 15(fvec2) ConstantComposite 67 52 + 96: 15(fvec2) ConstantComposite 32 69 + 97: 15(fvec2) ConstantComposite 74 47 + 98: 15(fvec2) ConstantComposite 52 72 + 99: 15(fvec2) ConstantComposite 72 70 + 100: 15(fvec2) ConstantComposite 70 74 + 101: 15(fvec2) ConstantComposite 47 50 + 102: 8(float) Constant 0 + 103: 15(fvec2) ConstantComposite 102 77 + 104: 15(fvec2) ConstantComposite 34 48 + 105: 15(fvec2) ConstantComposite 48 32 + 106: 8(float) Constant 3204448256 + 107: 15(fvec2) ConstantComposite 106 102 + 108: 15(fvec2) ConstantComposite 79 34 + 109: 15(fvec2) ConstantComposite 50 79 + 110: 15(fvec2) ConstantComposite 77 106 + 111: 92 ConstantComposite 93 94 95 96 97 98 99 100 101 103 104 105 107 108 109 110 + 113: TypePointer Function 92 + 117: 15(fvec2) ConstantComposite 102 102 + 118: TypeVector 28(bool) 2 + 129: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTex2dmsf4a): 130(ptr) Variable UniformConstant + 166: TypePointer Function 10(PS_OUTPUT) + 168: 6(int) Constant 0 + 169: 8(float) Constant 1065353216 + 170: 9(fvec4) ConstantComposite 169 169 169 169 + 171: TypePointer Function 9(fvec4) + 173: 6(int) Constant 1 + 174: TypePointer Function 8(float) + 180: TypePointer Input 6(int) + 181(sample): 180(ptr) Variable Input + 187: TypePointer Output 9(fvec4) +188(@entryPointOutput.Color): 187(ptr) Variable Output + 191: TypePointer Output 8(float) +192(@entryPointOutput.Depth): 191(ptr) Variable Output + 195: TypeSampler + 196: TypePointer UniformConstant 195 + 197(g_sSamp): 196(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 179(sample): 7(ptr) Variable Function +183(flattenTemp): 166(ptr) Variable Function + 184(param): 7(ptr) Variable Function + 182: 6(int) Load 181(sample) + Store 179(sample) 182 + 185: 6(int) Load 179(sample) + Store 184(param) 185 + 186:10(PS_OUTPUT) FunctionCall 13(@main(i1;) 184(param) + Store 183(flattenTemp) 186 + 189: 171(ptr) AccessChain 183(flattenTemp) 168 + 190: 9(fvec4) Load 189 + Store 188(@entryPointOutput.Color) 190 + 193: 174(ptr) AccessChain 183(flattenTemp) 173 + 194: 8(float) Load 193 + Store 192(@entryPointOutput.Depth) 194 + Return + FunctionEnd + 13(@main(i1;):10(PS_OUTPUT) Function None 11 + 12(sample): 7(ptr) FunctionParameter + 14: Label + 17(r00): 16(ptr) Variable Function +20(@sampleCount): 19(ptr) Variable Function + 39(indexable): 38(ptr) Variable Function + 58(indexable): 57(ptr) Variable Function + 85(indexable): 84(ptr) Variable Function + 114(indexable): 113(ptr) Variable Function + 127(r01): 16(ptr) Variable Function +128(@sampleCount): 19(ptr) Variable Function + 137(indexable): 38(ptr) Variable Function + 143(indexable): 57(ptr) Variable Function + 149(indexable): 84(ptr) Variable Function + 155(indexable): 113(ptr) Variable Function + 167(psout): 166(ptr) Variable Function + 24: 21 Load 23(g_tTex2dmsf4) + 25: 18(int) ImageQuerySamples 24 + Store 20(@sampleCount) 25 + 26: 18(int) Load 20(@sampleCount) + 29: 28(bool) IEqual 26 27 + 37: 6(int) Load 12(sample) + Store 39(indexable) 36 + 40: 16(ptr) AccessChain 39(indexable) 37 + 41: 15(fvec2) Load 40 + 42: 18(int) Load 20(@sampleCount) + 44: 28(bool) IEqual 42 43 + 56: 6(int) Load 12(sample) + Store 58(indexable) 55 + 59: 16(ptr) AccessChain 58(indexable) 56 + 60: 15(fvec2) Load 59 + 61: 18(int) Load 20(@sampleCount) + 63: 28(bool) IEqual 61 62 + 83: 6(int) Load 12(sample) + Store 85(indexable) 82 + 86: 16(ptr) AccessChain 85(indexable) 83 + 87: 15(fvec2) Load 86 + 88: 18(int) Load 20(@sampleCount) + 90: 28(bool) IEqual 88 89 + 112: 6(int) Load 12(sample) + Store 114(indexable) 111 + 115: 16(ptr) AccessChain 114(indexable) 112 + 116: 15(fvec2) Load 115 + 119: 118(bvec2) CompositeConstruct 90 90 + 120: 15(fvec2) Select 119 116 117 + 121: 118(bvec2) CompositeConstruct 63 63 + 122: 15(fvec2) Select 121 87 120 + 123: 118(bvec2) CompositeConstruct 44 44 + 124: 15(fvec2) Select 123 60 122 + 125: 118(bvec2) CompositeConstruct 29 29 + 126: 15(fvec2) Select 125 41 124 + Store 17(r00) 126 + 132: 129 Load 131(g_tTex2dmsf4a) + 133: 18(int) ImageQuerySamples 132 + Store 128(@sampleCount) 133 + 134: 18(int) Load 128(@sampleCount) + 135: 28(bool) IEqual 134 27 + 136: 6(int) Load 12(sample) + Store 137(indexable) 36 + 138: 16(ptr) AccessChain 137(indexable) 136 + 139: 15(fvec2) Load 138 + 140: 18(int) Load 128(@sampleCount) + 141: 28(bool) IEqual 140 43 + 142: 6(int) Load 12(sample) + Store 143(indexable) 55 + 144: 16(ptr) AccessChain 143(indexable) 142 + 145: 15(fvec2) Load 144 + 146: 18(int) Load 128(@sampleCount) + 147: 28(bool) IEqual 146 62 + 148: 6(int) Load 12(sample) + Store 149(indexable) 82 + 150: 16(ptr) AccessChain 149(indexable) 148 + 151: 15(fvec2) Load 150 + 152: 18(int) Load 128(@sampleCount) + 153: 28(bool) IEqual 152 89 + 154: 6(int) Load 12(sample) + Store 155(indexable) 111 + 156: 16(ptr) AccessChain 155(indexable) 154 + 157: 15(fvec2) Load 156 + 158: 118(bvec2) CompositeConstruct 153 153 + 159: 15(fvec2) Select 158 157 117 + 160: 118(bvec2) CompositeConstruct 147 147 + 161: 15(fvec2) Select 160 151 159 + 162: 118(bvec2) CompositeConstruct 141 141 + 163: 15(fvec2) Select 162 145 161 + 164: 118(bvec2) CompositeConstruct 135 135 + 165: 15(fvec2) Select 164 139 163 + Store 127(r01) 165 + 172: 171(ptr) AccessChain 167(psout) 168 + Store 172 170 + 175: 174(ptr) AccessChain 167(psout) 173 + Store 175 169 + 176:10(PS_OUTPUT) Load 167(psout) + ReturnValue 176 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.global-const-init.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.global-const-init.frag.out new file mode 100644 index 0000000000..940f3be851 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.global-const-init.frag.out @@ -0,0 +1,178 @@ +hlsl.global-const-init.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'bar' ( global 4-component vector of float) +0:6 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:6 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) +0:6 Constant: +0:6 0 (const uint) +0:8 Sequence +0:8 move second child to first child ( temp 2-element array of 2-component vector of float) +0:8 'a1' ( global 2-element array of 2-component vector of float) +0:8 Construct vec2 ( temp 2-element array of 2-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 2.000000 +0:8 Construct vec2 ( temp 2-component vector of float) +0:8 direct index ( temp float) +0:8 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:8 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) +0:8 Constant: +0:8 0 (const uint) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 4.000000 +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 'bar' ( global 4-component vector of float) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) +0:? 'bar' ( global 4-component vector of float) +0:? 'a1' ( global 2-element array of 2-component vector of float) +0:? 'a2' ( const 2-element array of 2-component vector of float) +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'bar' ( global 4-component vector of float) +0:6 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:6 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) +0:6 Constant: +0:6 0 (const uint) +0:8 Sequence +0:8 move second child to first child ( temp 2-element array of 2-component vector of float) +0:8 'a1' ( global 2-element array of 2-component vector of float) +0:8 Construct vec2 ( temp 2-element array of 2-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 2.000000 +0:8 Construct vec2 ( temp 2-component vector of float) +0:8 direct index ( temp float) +0:8 foo: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:8 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) +0:8 Constant: +0:8 0 (const uint) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 4.000000 +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 'bar' ( global 4-component vector of float) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float foo}) +0:? 'bar' ( global 4-component vector of float) +0:? 'a1' ( global 2-element array of 2-component vector of float) +0:? 'a2' ( const 2-element array of 2-component vector of float) +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "bar" + Name 13 "CB" + MemberName 13(CB) 0 "foo" + Name 15 "" + Name 26 "a1" + Name 41 "@entryPointOutput" + MemberDecorate 13(CB) 0 Offset 0 + Decorate 13(CB) Block + Decorate 15 DescriptorSet 0 + Decorate 41(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Private 7(fvec4) + 12(bar): 11(ptr) Variable Private + 13(CB): TypeStruct 7(fvec4) + 14: TypePointer Uniform 13(CB) + 15: 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Uniform 7(fvec4) + 21: TypeVector 6(float) 2 + 22: TypeInt 32 0 + 23: 22(int) Constant 2 + 24: TypeArray 21(fvec2) 23 + 25: TypePointer Private 24 + 26(a1): 25(ptr) Variable Private + 27: 6(float) Constant 1065353216 + 28: 6(float) Constant 1073741824 + 29: 21(fvec2) ConstantComposite 27 28 + 30: 22(int) Constant 0 + 31: TypePointer Uniform 6(float) + 34: 6(float) Constant 1082130432 + 40: TypePointer Output 7(fvec4) +41(@entryPointOutput): 40(ptr) Variable Output + 43: 6(float) Constant 1084227584 + 44: 6(float) Constant 1086324736 + 45: 21(fvec2) ConstantComposite 43 44 + 46: 6(float) Constant 1088421888 + 47: 6(float) Constant 1090519040 + 48: 21(fvec2) ConstantComposite 46 47 + 49: 24 ConstantComposite 45 48 + 4(main): 2 Function None 3 + 5: Label + 19: 18(ptr) AccessChain 15 17 + 20: 7(fvec4) Load 19 + Store 12(bar) 20 + 32: 31(ptr) AccessChain 15 17 30 + 33: 6(float) Load 32 + 35: 21(fvec2) CompositeConstruct 33 34 + 36: 24 CompositeConstruct 29 35 + Store 26(a1) 36 + 42: 7(fvec4) FunctionCall 9(@main() + Store 41(@entryPointOutput) 42 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 37: 7(fvec4) Load 12(bar) + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.groupid.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.groupid.comp.out new file mode 100644 index 0000000000..386a3e970d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.groupid.comp.out @@ -0,0 +1,146 @@ +hlsl.groupid.comp +Shader version: 500 +local_size = (8, 8, 1) +0:? Sequence +0:7 Function Definition: @main(vu2; ( temp void) +0:7 Function Parameters: +0:7 'vGroupId' ( in 2-component vector of uint) +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'storeTemp' ( temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:8 imageStore ( temp void) +0:8 'OutputTexture' (layout( rgba32f) uniform image2D) +0:8 vector swizzle ( temp 2-component vector of uint) +0:8 'vGroupId' ( in 2-component vector of uint) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 'storeTemp' ( temp 4-component vector of float) +0:8 'storeTemp' ( temp 4-component vector of float) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 2-component vector of uint) +0:? 'vGroupId' ( temp 2-component vector of uint) +0:? Construct uvec2 ( temp 2-component vector of uint) +0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) +0:7 Function Call: @main(vu2; ( temp void) +0:? 'vGroupId' ( temp 2-component vector of uint) +0:? Linker Objects +0:? 'OutputTexture' (layout( rgba32f) uniform image2D) +0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (8, 8, 1) +0:? Sequence +0:7 Function Definition: @main(vu2; ( temp void) +0:7 Function Parameters: +0:7 'vGroupId' ( in 2-component vector of uint) +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'storeTemp' ( temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:8 imageStore ( temp void) +0:8 'OutputTexture' (layout( rgba32f) uniform image2D) +0:8 vector swizzle ( temp 2-component vector of uint) +0:8 'vGroupId' ( in 2-component vector of uint) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 'storeTemp' ( temp 4-component vector of float) +0:8 'storeTemp' ( temp 4-component vector of float) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 2-component vector of uint) +0:? 'vGroupId' ( temp 2-component vector of uint) +0:? Construct uvec2 ( temp 2-component vector of uint) +0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) +0:7 Function Call: @main(vu2; ( temp void) +0:? 'vGroupId' ( temp 2-component vector of uint) +0:? Linker Objects +0:? 'OutputTexture' (layout( rgba32f) uniform image2D) +0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 37 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 29 + ExecutionMode 4 LocalSize 8 8 1 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vu2;" + Name 10 "vGroupId" + Name 16 "storeTemp" + Name 22 "OutputTexture" + Name 26 "vGroupId" + Name 29 "vGroupId" + Name 34 "param" + Decorate 22(OutputTexture) DescriptorSet 0 + Decorate 29(vGroupId) BuiltIn WorkgroupId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 9: TypeFunction 2 8(ptr) + 13: TypeFloat 32 + 14: TypeVector 13(float) 4 + 15: TypePointer Function 14(fvec4) + 17: 13(float) Constant 1065353216 + 18: 13(float) Constant 0 + 19: 14(fvec4) ConstantComposite 17 18 18 17 + 20: TypeImage 13(float) 2D nonsampled format:Rgba32f + 21: TypePointer UniformConstant 20 +22(OutputTexture): 21(ptr) Variable UniformConstant + 27: TypeVector 6(int) 3 + 28: TypePointer Input 27(ivec3) + 29(vGroupId): 28(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 26(vGroupId): 8(ptr) Variable Function + 34(param): 8(ptr) Variable Function + 30: 27(ivec3) Load 29(vGroupId) + 31: 6(int) CompositeExtract 30 0 + 32: 6(int) CompositeExtract 30 1 + 33: 7(ivec2) CompositeConstruct 31 32 + Store 26(vGroupId) 33 + 35: 7(ivec2) Load 26(vGroupId) + Store 34(param) 35 + 36: 2 FunctionCall 11(@main(vu2;) 34(param) + Return + FunctionEnd + 11(@main(vu2;): 2 Function None 9 + 10(vGroupId): 8(ptr) FunctionParameter + 12: Label + 16(storeTemp): 15(ptr) Variable Function + Store 16(storeTemp) 19 + 23: 20 Load 22(OutputTexture) + 24: 7(ivec2) Load 10(vGroupId) + 25: 14(fvec4) Load 16(storeTemp) + ImageWrite 23 24 25 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out new file mode 100644 index 0000000000..4971371a39 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out @@ -0,0 +1,1158 @@ +hlsl.gs-hs-mix.tesc +Shader version: 500 +vertices = 3 +input primitive = triangles +vertex spacing = fractional_odd_spacing +triangle order = ccw +0:? Sequence +0:31 Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:31 Function Parameters: +0:31 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? Sequence +0:32 Sequence +0:32 move second child to first child ( temp 3-component vector of float) +0:32 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:32 tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:32 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'roundedInsideTessFactor' ( temp float) +0:33 Constant: +0:33 3.000000 +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'insideTessFactor' ( temp float) +0:34 Constant: +0:34 1.000000 +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:39 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( temp float) +0:39 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:39 Constant: +0:39 0 (const int) +0:40 move second child to first child ( temp float) +0:40 direct index ( temp float) +0:40 EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:40 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 direct index ( temp float) +0:40 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:40 Constant: +0:40 1 (const int) +0:41 move second child to first child ( temp float) +0:41 direct index ( temp float) +0:41 EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:41 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 2 (const int) +0:41 direct index ( temp float) +0:41 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:41 Constant: +0:41 2 (const int) +0:42 move second child to first child ( temp float) +0:42 InsideTessFactor: direct index for structure ( temp float) +0:42 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:42 Constant: +0:42 1 (const int) +0:42 'roundedInsideTessFactor' ( temp float) +0:45 move second child to first child ( temp 3-component vector of float) +0:45 direct index ( temp 3-component vector of float) +0:45 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:45 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 NormalWS: direct index for structure ( temp 3-component vector of float) +0:45 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:45 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1 (const int) +0:46 move second child to first child ( temp 3-component vector of float) +0:46 direct index ( temp 3-component vector of float) +0:46 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:46 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:46 Constant: +0:46 2 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 NormalWS: direct index for structure ( temp 3-component vector of float) +0:46 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:46 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 direct index ( temp 3-component vector of float) +0:47 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:47 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:47 Constant: +0:47 2 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 NormalWS: direct index for structure ( temp 3-component vector of float) +0:47 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:47 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:47 Constant: +0:47 2 (const int) +0:47 Constant: +0:47 1 (const int) +0:49 Branch: Return with expression +0:49 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:61 Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) +0:61 Function Parameters: +0:61 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:61 'id' ( in uint) +0:? Sequence +0:63 move second child to first child ( temp 3-component vector of float) +0:63 PositionWS: direct index for structure ( temp 3-component vector of float) +0:63 'output' ( temp structure{ temp 3-component vector of float PositionWS}) +0:63 Constant: +0:63 0 (const int) +0:63 PositionWS: direct index for structure ( temp 3-component vector of float) +0:63 indirect index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:63 'id' ( in uint) +0:63 Constant: +0:63 0 (const int) +0:64 Branch: Return with expression +0:64 'output' ( temp structure{ temp 3-component vector of float PositionWS}) +0:61 Function Definition: HSMain( ( temp void) +0:61 Function Parameters: +0:? Sequence +0:61 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:61 move second child to first child ( temp uint) +0:? 'id' ( temp uint) +0:? 'id' ( in uint InvocationID) +0:61 move second child to first child ( temp structure{ temp 3-component vector of float PositionWS}) +0:61 indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) +0:? 'id' ( in uint InvocationID) +0:61 Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'id' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'id' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? InsideTessFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp 3-element array of 3-component vector of float) +0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 2 (const int) +0:84 Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void) +0:84 Function Parameters: +0:84 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:84 'output' ( out structure{ temp 4-component vector of float PositionCS}) +0:? Sequence +0:86 Sequence +0:86 move second child to first child ( temp 3-component vector of float) +0:86 'P0' ( temp 3-component vector of float) +0:86 vector swizzle ( temp 3-component vector of float) +0:86 PositionWS: direct index for structure ( temp 3-component vector of float) +0:86 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:86 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 0 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 Constant: +0:86 2 (const int) +0:87 Sequence +0:87 move second child to first child ( temp 3-component vector of float) +0:87 'P1' ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 PositionWS: direct index for structure ( temp 3-component vector of float) +0:87 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:87 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 0 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:88 Sequence +0:88 move second child to first child ( temp 3-component vector of float) +0:88 'P2' ( temp 3-component vector of float) +0:88 vector swizzle ( temp 3-component vector of float) +0:88 PositionWS: direct index for structure ( temp 3-component vector of float) +0:88 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:88 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:88 Constant: +0:88 2 (const int) +0:88 Constant: +0:88 0 (const int) +0:88 Sequence +0:88 Constant: +0:88 0 (const int) +0:88 Constant: +0:88 1 (const int) +0:88 Constant: +0:88 2 (const int) +0:92 add second child into first child ( temp float) +0:92 direct index ( temp float) +0:92 'P0' ( temp 3-component vector of float) +0:92 Constant: +0:92 2 (const int) +0:92 Constant: +0:92 0.001000 +0:93 add second child into first child ( temp float) +0:93 direct index ( temp float) +0:93 'P1' ( temp 3-component vector of float) +0:93 Constant: +0:93 2 (const int) +0:93 Constant: +0:93 0.001000 +0:94 add second child into first child ( temp float) +0:94 direct index ( temp float) +0:94 'P2' ( temp 3-component vector of float) +0:94 Constant: +0:94 2 (const int) +0:94 Constant: +0:94 0.001000 +0:95 Sequence +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'Q0' ( temp 4-component vector of float) +0:95 vector-times-matrix ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:95 'P0' ( temp 3-component vector of float) +0:95 Constant: +0:95 1.000000 +0:95 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:95 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:95 Constant: +0:95 1 (const uint) +0:96 Sequence +0:96 move second child to first child ( temp 4-component vector of float) +0:96 'Q1' ( temp 4-component vector of float) +0:96 vector-times-matrix ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:96 'P1' ( temp 3-component vector of float) +0:96 Constant: +0:96 1.000000 +0:96 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:96 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:96 Constant: +0:96 1 (const uint) +0:97 Sequence +0:97 move second child to first child ( temp 4-component vector of float) +0:97 'Q2' ( temp 4-component vector of float) +0:97 vector-times-matrix ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:97 'P2' ( temp 3-component vector of float) +0:97 Constant: +0:97 1.000000 +0:97 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:97 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:97 Constant: +0:97 1 (const uint) +0:100 move second child to first child ( temp 4-component vector of float) +0:100 PositionCS: direct index for structure ( temp 4-component vector of float) +0:100 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:100 Constant: +0:100 0 (const int) +0:100 'Q0' ( temp 4-component vector of float) +0:101 Constant: +0:101 0.000000 +0:102 move second child to first child ( temp 4-component vector of float) +0:102 PositionCS: direct index for structure ( temp 4-component vector of float) +0:102 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:102 Constant: +0:102 0 (const int) +0:102 'Q1' ( temp 4-component vector of float) +0:103 Constant: +0:103 0.000000 +0:104 Constant: +0:104 0.000000 +0:107 move second child to first child ( temp 4-component vector of float) +0:107 PositionCS: direct index for structure ( temp 4-component vector of float) +0:107 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:107 Constant: +0:107 0 (const int) +0:107 'Q1' ( temp 4-component vector of float) +0:108 Constant: +0:108 0.000000 +0:109 move second child to first child ( temp 4-component vector of float) +0:109 PositionCS: direct index for structure ( temp 4-component vector of float) +0:109 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:109 Constant: +0:109 0 (const int) +0:109 'Q2' ( temp 4-component vector of float) +0:110 Constant: +0:110 0.000000 +0:111 Constant: +0:111 0.000000 +0:114 move second child to first child ( temp 4-component vector of float) +0:114 PositionCS: direct index for structure ( temp 4-component vector of float) +0:114 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:114 Constant: +0:114 0 (const int) +0:114 'Q2' ( temp 4-component vector of float) +0:115 Constant: +0:115 0.000000 +0:116 move second child to first child ( temp 4-component vector of float) +0:116 PositionCS: direct index for structure ( temp 4-component vector of float) +0:116 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:116 Constant: +0:116 0 (const int) +0:116 'Q0' ( temp 4-component vector of float) +0:117 Constant: +0:117 0.000000 +0:118 Constant: +0:118 0.000000 +0:? Linker Objects +0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'id' ( in uint InvocationID) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) +0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +input primitive = triangles +vertex spacing = fractional_odd_spacing +triangle order = ccw +0:? Sequence +0:31 Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:31 Function Parameters: +0:31 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? Sequence +0:32 Sequence +0:32 move second child to first child ( temp 3-component vector of float) +0:32 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:32 tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:32 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'roundedInsideTessFactor' ( temp float) +0:33 Constant: +0:33 3.000000 +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'insideTessFactor' ( temp float) +0:34 Constant: +0:34 1.000000 +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:39 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( temp float) +0:39 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:39 Constant: +0:39 0 (const int) +0:40 move second child to first child ( temp float) +0:40 direct index ( temp float) +0:40 EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:40 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 direct index ( temp float) +0:40 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:40 Constant: +0:40 1 (const int) +0:41 move second child to first child ( temp float) +0:41 direct index ( temp float) +0:41 EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:41 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 2 (const int) +0:41 direct index ( temp float) +0:41 'roundedEdgeTessFactor' ( temp 3-component vector of float) +0:41 Constant: +0:41 2 (const int) +0:42 move second child to first child ( temp float) +0:42 InsideTessFactor: direct index for structure ( temp float) +0:42 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:42 Constant: +0:42 1 (const int) +0:42 'roundedInsideTessFactor' ( temp float) +0:45 move second child to first child ( temp 3-component vector of float) +0:45 direct index ( temp 3-component vector of float) +0:45 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:45 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 NormalWS: direct index for structure ( temp 3-component vector of float) +0:45 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:45 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1 (const int) +0:46 move second child to first child ( temp 3-component vector of float) +0:46 direct index ( temp 3-component vector of float) +0:46 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:46 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:46 Constant: +0:46 2 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 NormalWS: direct index for structure ( temp 3-component vector of float) +0:46 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:46 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 direct index ( temp 3-component vector of float) +0:47 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:47 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:47 Constant: +0:47 2 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 NormalWS: direct index for structure ( temp 3-component vector of float) +0:47 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:47 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:47 Constant: +0:47 2 (const int) +0:47 Constant: +0:47 1 (const int) +0:49 Branch: Return with expression +0:49 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:61 Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) +0:61 Function Parameters: +0:61 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:61 'id' ( in uint) +0:? Sequence +0:63 move second child to first child ( temp 3-component vector of float) +0:63 PositionWS: direct index for structure ( temp 3-component vector of float) +0:63 'output' ( temp structure{ temp 3-component vector of float PositionWS}) +0:63 Constant: +0:63 0 (const int) +0:63 PositionWS: direct index for structure ( temp 3-component vector of float) +0:63 indirect index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:63 'id' ( in uint) +0:63 Constant: +0:63 0 (const int) +0:64 Branch: Return with expression +0:64 'output' ( temp structure{ temp 3-component vector of float PositionWS}) +0:61 Function Definition: HSMain( ( temp void) +0:61 Function Parameters: +0:? Sequence +0:61 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:61 move second child to first child ( temp uint) +0:? 'id' ( temp uint) +0:? 'id' ( in uint InvocationID) +0:61 move second child to first child ( temp structure{ temp 3-component vector of float PositionWS}) +0:61 indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) +0:? 'id' ( in uint InvocationID) +0:61 Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'id' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'id' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? InsideTessFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp 3-element array of 3-component vector of float) +0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 0 (const int) +0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) +0:? Constant: +0:? 2 (const int) +0:84 Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void) +0:84 Function Parameters: +0:84 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:84 'output' ( out structure{ temp 4-component vector of float PositionCS}) +0:? Sequence +0:86 Sequence +0:86 move second child to first child ( temp 3-component vector of float) +0:86 'P0' ( temp 3-component vector of float) +0:86 vector swizzle ( temp 3-component vector of float) +0:86 PositionWS: direct index for structure ( temp 3-component vector of float) +0:86 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:86 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 0 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 Constant: +0:86 2 (const int) +0:87 Sequence +0:87 move second child to first child ( temp 3-component vector of float) +0:87 'P1' ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 PositionWS: direct index for structure ( temp 3-component vector of float) +0:87 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:87 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 0 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:88 Sequence +0:88 move second child to first child ( temp 3-component vector of float) +0:88 'P2' ( temp 3-component vector of float) +0:88 vector swizzle ( temp 3-component vector of float) +0:88 PositionWS: direct index for structure ( temp 3-component vector of float) +0:88 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:88 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:88 Constant: +0:88 2 (const int) +0:88 Constant: +0:88 0 (const int) +0:88 Sequence +0:88 Constant: +0:88 0 (const int) +0:88 Constant: +0:88 1 (const int) +0:88 Constant: +0:88 2 (const int) +0:92 add second child into first child ( temp float) +0:92 direct index ( temp float) +0:92 'P0' ( temp 3-component vector of float) +0:92 Constant: +0:92 2 (const int) +0:92 Constant: +0:92 0.001000 +0:93 add second child into first child ( temp float) +0:93 direct index ( temp float) +0:93 'P1' ( temp 3-component vector of float) +0:93 Constant: +0:93 2 (const int) +0:93 Constant: +0:93 0.001000 +0:94 add second child into first child ( temp float) +0:94 direct index ( temp float) +0:94 'P2' ( temp 3-component vector of float) +0:94 Constant: +0:94 2 (const int) +0:94 Constant: +0:94 0.001000 +0:95 Sequence +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'Q0' ( temp 4-component vector of float) +0:95 vector-times-matrix ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:95 'P0' ( temp 3-component vector of float) +0:95 Constant: +0:95 1.000000 +0:95 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:95 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:95 Constant: +0:95 1 (const uint) +0:96 Sequence +0:96 move second child to first child ( temp 4-component vector of float) +0:96 'Q1' ( temp 4-component vector of float) +0:96 vector-times-matrix ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:96 'P1' ( temp 3-component vector of float) +0:96 Constant: +0:96 1.000000 +0:96 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:96 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:96 Constant: +0:96 1 (const uint) +0:97 Sequence +0:97 move second child to first child ( temp 4-component vector of float) +0:97 'Q2' ( temp 4-component vector of float) +0:97 vector-times-matrix ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:97 'P2' ( temp 3-component vector of float) +0:97 Constant: +0:97 1.000000 +0:97 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:97 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:97 Constant: +0:97 1 (const uint) +0:100 move second child to first child ( temp 4-component vector of float) +0:100 PositionCS: direct index for structure ( temp 4-component vector of float) +0:100 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:100 Constant: +0:100 0 (const int) +0:100 'Q0' ( temp 4-component vector of float) +0:101 Constant: +0:101 0.000000 +0:102 move second child to first child ( temp 4-component vector of float) +0:102 PositionCS: direct index for structure ( temp 4-component vector of float) +0:102 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:102 Constant: +0:102 0 (const int) +0:102 'Q1' ( temp 4-component vector of float) +0:103 Constant: +0:103 0.000000 +0:104 Constant: +0:104 0.000000 +0:107 move second child to first child ( temp 4-component vector of float) +0:107 PositionCS: direct index for structure ( temp 4-component vector of float) +0:107 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:107 Constant: +0:107 0 (const int) +0:107 'Q1' ( temp 4-component vector of float) +0:108 Constant: +0:108 0.000000 +0:109 move second child to first child ( temp 4-component vector of float) +0:109 PositionCS: direct index for structure ( temp 4-component vector of float) +0:109 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:109 Constant: +0:109 0 (const int) +0:109 'Q2' ( temp 4-component vector of float) +0:110 Constant: +0:110 0.000000 +0:111 Constant: +0:111 0.000000 +0:114 move second child to first child ( temp 4-component vector of float) +0:114 PositionCS: direct index for structure ( temp 4-component vector of float) +0:114 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:114 Constant: +0:114 0 (const int) +0:114 'Q2' ( temp 4-component vector of float) +0:115 Constant: +0:115 0.000000 +0:116 move second child to first child ( temp 4-component vector of float) +0:116 PositionCS: direct index for structure ( temp 4-component vector of float) +0:116 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) +0:116 Constant: +0:116 0 (const int) +0:116 'Q0' ( temp 4-component vector of float) +0:117 Constant: +0:117 0.000000 +0:118 Constant: +0:118 0.000000 +0:? Linker Objects +0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) +0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) +0:? 'id' ( in uint InvocationID) +0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) +0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 216 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "HSMain" 97 101 105 126 139 145 + ExecutionMode 4 OutputVertices 3 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingFractionalOdd + ExecutionMode 4 VertexOrderCcw + Source HLSL 500 + Name 4 "HSMain" + Name 8 "HSInput" + MemberName 8(HSInput) 0 "PositionWS" + MemberName 8(HSInput) 1 "NormalWS" + Name 15 "HSTrianglePatchConstant" + MemberName 15(HSTrianglePatchConstant) 0 "EdgeTessFactor" + MemberName 15(HSTrianglePatchConstant) 1 "InsideTessFactor" + MemberName 15(HSTrianglePatchConstant) 2 "NormalWS" + Name 18 "HSPatchConstant(struct-HSInput-vf3-vf31[3];" + Name 17 "patch" + Name 21 "HSOutput" + MemberName 21(HSOutput) 0 "PositionWS" + Name 25 "@HSMain(struct-HSInput-vf3-vf31[3];u1;" + Name 23 "patch" + Name 24 "id" + Name 27 "GSVertexInput" + MemberName 27(GSVertexInput) 0 "PositionWS" + MemberName 27(GSVertexInput) 1 "NormalWS" + Name 31 "GSVertexOutput" + MemberName 31(GSVertexOutput) 0 "PositionCS" + Name 36 "GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;" + Name 34 "input" + Name 35 "output" + Name 39 "roundedEdgeTessFactor" + Name 42 "UniformBlock0" + MemberName 42(UniformBlock0) 0 "model_view_matrix" + MemberName 42(UniformBlock0) 1 "proj_matrix" + MemberName 42(UniformBlock0) 2 "model_view_proj_matrix" + MemberName 42(UniformBlock0) 3 "normal_matrix" + MemberName 42(UniformBlock0) 4 "color" + MemberName 42(UniformBlock0) 5 "view_dir" + MemberName 42(UniformBlock0) 6 "tess_factor" + Name 44 "" + Name 51 "roundedInsideTessFactor" + Name 53 "insideTessFactor" + Name 56 "result" + Name 87 "output" + Name 95 "patch" + Name 97 "patch" + Name 99 "id" + Name 101 "id" + Name 105 "@entryPointOutput" + Name 107 "param" + Name 109 "param" + Name 120 "@patchConstantResult" + Name 121 "param" + Name 126 "@patchConstantOutput.EdgeTessFactor" + Name 139 "@patchConstantOutput.InsideTessFactor" + Name 143 "HSTrianglePatchConstant" + MemberName 143(HSTrianglePatchConstant) 0 "NormalWS" + Name 145 "@patchConstantOutput" + Name 151 "P0" + Name 154 "P1" + Name 157 "P2" + Name 174 "Q0" + Name 184 "Q1" + Name 193 "Q2" + Name 202 "vertex" + MemberDecorate 42(UniformBlock0) 0 RowMajor + MemberDecorate 42(UniformBlock0) 0 Offset 0 + MemberDecorate 42(UniformBlock0) 0 MatrixStride 16 + MemberDecorate 42(UniformBlock0) 1 RowMajor + MemberDecorate 42(UniformBlock0) 1 Offset 64 + MemberDecorate 42(UniformBlock0) 1 MatrixStride 16 + MemberDecorate 42(UniformBlock0) 2 RowMajor + MemberDecorate 42(UniformBlock0) 2 Offset 128 + MemberDecorate 42(UniformBlock0) 2 MatrixStride 16 + MemberDecorate 42(UniformBlock0) 3 RowMajor + MemberDecorate 42(UniformBlock0) 3 Offset 192 + MemberDecorate 42(UniformBlock0) 3 MatrixStride 16 + MemberDecorate 42(UniformBlock0) 4 Offset 240 + MemberDecorate 42(UniformBlock0) 5 Offset 256 + MemberDecorate 42(UniformBlock0) 6 Offset 272 + Decorate 42(UniformBlock0) Block + Decorate 44 DescriptorSet 0 + Decorate 44 Binding 0 + Decorate 97(patch) Location 0 + Decorate 101(id) BuiltIn InvocationId + Decorate 105(@entryPointOutput) Location 0 + Decorate 126(@patchConstantOutput.EdgeTessFactor) Patch + Decorate 126(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter + Decorate 139(@patchConstantOutput.InsideTessFactor) Patch + Decorate 139(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner + MemberDecorate 143(HSTrianglePatchConstant) 0 Patch + Decorate 145(@patchConstantOutput) Patch + Decorate 145(@patchConstantOutput) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(HSInput): TypeStruct 7(fvec3) 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(HSInput) 10 + 12: TypePointer Function 11 + 13: TypeArray 6(float) 10 + 14: TypeArray 7(fvec3) 10 +15(HSTrianglePatchConstant): TypeStruct 13 6(float) 14 + 16: TypeFunction 15(HSTrianglePatchConstant) 12(ptr) + 20: TypePointer Function 9(int) + 21(HSOutput): TypeStruct 7(fvec3) + 22: TypeFunction 21(HSOutput) 12(ptr) 20(ptr) +27(GSVertexInput): TypeStruct 7(fvec3) 7(fvec3) + 28: TypeArray 27(GSVertexInput) 10 + 29: TypePointer Function 28 + 30: TypeVector 6(float) 4 +31(GSVertexOutput): TypeStruct 30(fvec4) + 32: TypePointer Function 31(GSVertexOutput) + 33: TypeFunction 2 29(ptr) 32(ptr) + 38: TypePointer Function 7(fvec3) + 40: TypeMatrix 30(fvec4) 4 + 41: TypeMatrix 7(fvec3) 3 +42(UniformBlock0): TypeStruct 40 40 40 41 7(fvec3) 7(fvec3) 7(fvec3) + 43: TypePointer Uniform 42(UniformBlock0) + 44: 43(ptr) Variable Uniform + 45: TypeInt 32 1 + 46: 45(int) Constant 6 + 47: TypePointer Uniform 7(fvec3) + 50: TypePointer Function 6(float) + 52: 6(float) Constant 1077936128 + 54: 6(float) Constant 1065353216 + 55: TypePointer Function 15(HSTrianglePatchConstant) + 57: 45(int) Constant 0 + 58: 9(int) Constant 0 + 62: 45(int) Constant 1 + 63: 9(int) Constant 1 + 67: 45(int) Constant 2 + 68: 9(int) Constant 2 + 86: TypePointer Function 21(HSOutput) + 96: TypePointer Input 11 + 97(patch): 96(ptr) Variable Input + 100: TypePointer Input 9(int) + 101(id): 100(ptr) Variable Input + 103: TypeArray 21(HSOutput) 10 + 104: TypePointer Output 103 +105(@entryPointOutput): 104(ptr) Variable Output + 112: TypePointer Output 21(HSOutput) + 114: 9(int) Constant 4 + 116: TypeBool + 124: TypeArray 6(float) 114 + 125: TypePointer Output 124 +126(@patchConstantOutput.EdgeTessFactor): 125(ptr) Variable Output + 129: TypePointer Output 6(float) + 137: TypeArray 6(float) 68 + 138: TypePointer Output 137 +139(@patchConstantOutput.InsideTessFactor): 138(ptr) Variable Output +143(HSTrianglePatchConstant): TypeStruct 14 + 144: TypePointer Output 143(HSTrianglePatchConstant) +145(@patchConstantOutput): 144(ptr) Variable Output + 146: TypePointer Function 14 + 149: TypePointer Output 14 + 160: 6(float) Constant 981668463 + 173: TypePointer Function 30(fvec4) + 180: TypePointer Uniform 40 + 205: 6(float) Constant 0 + 4(HSMain): 2 Function None 3 + 5: Label + 95(patch): 12(ptr) Variable Function + 99(id): 20(ptr) Variable Function + 107(param): 12(ptr) Variable Function + 109(param): 20(ptr) Variable Function +120(@patchConstantResult): 55(ptr) Variable Function + 121(param): 12(ptr) Variable Function + 98: 11 Load 97(patch) + Store 95(patch) 98 + 102: 9(int) Load 101(id) + Store 99(id) 102 + 106: 9(int) Load 101(id) + 108: 11 Load 95(patch) + Store 107(param) 108 + 110: 9(int) Load 99(id) + Store 109(param) 110 + 111:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 107(param) 109(param) + 113: 112(ptr) AccessChain 105(@entryPointOutput) 106 + Store 113 111 + ControlBarrier 68 114 58 + 115: 9(int) Load 101(id) + 117: 116(bool) IEqual 115 57 + SelectionMerge 119 None + BranchConditional 117 118 119 + 118: Label + 122: 11 Load 95(patch) + Store 121(param) 122 + 123:15(HSTrianglePatchConstant) FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 121(param) + Store 120(@patchConstantResult) 123 + 127: 50(ptr) AccessChain 120(@patchConstantResult) 57 57 + 128: 6(float) Load 127 + 130: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 57 + Store 130 128 + 131: 50(ptr) AccessChain 120(@patchConstantResult) 57 62 + 132: 6(float) Load 131 + 133: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 62 + Store 133 132 + 134: 50(ptr) AccessChain 120(@patchConstantResult) 57 67 + 135: 6(float) Load 134 + 136: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 67 + Store 136 135 + 140: 50(ptr) AccessChain 120(@patchConstantResult) 62 + 141: 6(float) Load 140 + 142: 129(ptr) AccessChain 139(@patchConstantOutput.InsideTessFactor) 57 + Store 142 141 + 147: 146(ptr) AccessChain 120(@patchConstantResult) 67 + 148: 14 Load 147 + 150: 149(ptr) AccessChain 145(@patchConstantOutput) 57 + Store 150 148 + Branch 119 + 119: Label + Return + FunctionEnd +18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16 + 17(patch): 12(ptr) FunctionParameter + 19: Label +39(roundedEdgeTessFactor): 38(ptr) Variable Function +51(roundedInsideTessFactor): 50(ptr) Variable Function +53(insideTessFactor): 50(ptr) Variable Function + 56(result): 55(ptr) Variable Function + 48: 47(ptr) AccessChain 44 46 + 49: 7(fvec3) Load 48 + Store 39(roundedEdgeTessFactor) 49 + Store 51(roundedInsideTessFactor) 52 + Store 53(insideTessFactor) 54 + 59: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 58 + 60: 6(float) Load 59 + 61: 50(ptr) AccessChain 56(result) 57 57 + Store 61 60 + 64: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 63 + 65: 6(float) Load 64 + 66: 50(ptr) AccessChain 56(result) 57 62 + Store 66 65 + 69: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 68 + 70: 6(float) Load 69 + 71: 50(ptr) AccessChain 56(result) 57 67 + Store 71 70 + 72: 6(float) Load 51(roundedInsideTessFactor) + 73: 50(ptr) AccessChain 56(result) 62 + Store 73 72 + 74: 38(ptr) AccessChain 17(patch) 57 62 + 75: 7(fvec3) Load 74 + 76: 38(ptr) AccessChain 56(result) 67 57 + Store 76 75 + 77: 38(ptr) AccessChain 17(patch) 62 62 + 78: 7(fvec3) Load 77 + 79: 38(ptr) AccessChain 56(result) 67 62 + Store 79 78 + 80: 38(ptr) AccessChain 17(patch) 67 62 + 81: 7(fvec3) Load 80 + 82: 38(ptr) AccessChain 56(result) 67 67 + Store 82 81 + 83:15(HSTrianglePatchConstant) Load 56(result) + ReturnValue 83 + FunctionEnd +25(@HSMain(struct-HSInput-vf3-vf31[3];u1;):21(HSOutput) Function None 22 + 23(patch): 12(ptr) FunctionParameter + 24(id): 20(ptr) FunctionParameter + 26: Label + 87(output): 86(ptr) Variable Function + 88: 9(int) Load 24(id) + 89: 38(ptr) AccessChain 23(patch) 88 57 + 90: 7(fvec3) Load 89 + 91: 38(ptr) AccessChain 87(output) 57 + Store 91 90 + 92:21(HSOutput) Load 87(output) + ReturnValue 92 + FunctionEnd +36(GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;): 2 Function None 33 + 34(input): 29(ptr) FunctionParameter + 35(output): 32(ptr) FunctionParameter + 37: Label + 151(P0): 38(ptr) Variable Function + 154(P1): 38(ptr) Variable Function + 157(P2): 38(ptr) Variable Function + 174(Q0): 173(ptr) Variable Function + 184(Q1): 173(ptr) Variable Function + 193(Q2): 173(ptr) Variable Function + 202(vertex): 32(ptr) Variable Function + 152: 38(ptr) AccessChain 34(input) 57 57 + 153: 7(fvec3) Load 152 + Store 151(P0) 153 + 155: 38(ptr) AccessChain 34(input) 62 57 + 156: 7(fvec3) Load 155 + Store 154(P1) 156 + 158: 38(ptr) AccessChain 34(input) 67 57 + 159: 7(fvec3) Load 158 + Store 157(P2) 159 + 161: 50(ptr) AccessChain 151(P0) 68 + 162: 6(float) Load 161 + 163: 6(float) FAdd 162 160 + 164: 50(ptr) AccessChain 151(P0) 68 + Store 164 163 + 165: 50(ptr) AccessChain 154(P1) 68 + 166: 6(float) Load 165 + 167: 6(float) FAdd 166 160 + 168: 50(ptr) AccessChain 154(P1) 68 + Store 168 167 + 169: 50(ptr) AccessChain 157(P2) 68 + 170: 6(float) Load 169 + 171: 6(float) FAdd 170 160 + 172: 50(ptr) AccessChain 157(P2) 68 + Store 172 171 + 175: 7(fvec3) Load 151(P0) + 176: 6(float) CompositeExtract 175 0 + 177: 6(float) CompositeExtract 175 1 + 178: 6(float) CompositeExtract 175 2 + 179: 30(fvec4) CompositeConstruct 176 177 178 54 + 181: 180(ptr) AccessChain 44 62 + 182: 40 Load 181 + 183: 30(fvec4) VectorTimesMatrix 179 182 + Store 174(Q0) 183 + 185: 7(fvec3) Load 154(P1) + 186: 6(float) CompositeExtract 185 0 + 187: 6(float) CompositeExtract 185 1 + 188: 6(float) CompositeExtract 185 2 + 189: 30(fvec4) CompositeConstruct 186 187 188 54 + 190: 180(ptr) AccessChain 44 62 + 191: 40 Load 190 + 192: 30(fvec4) VectorTimesMatrix 189 191 + Store 184(Q1) 192 + 194: 7(fvec3) Load 157(P2) + 195: 6(float) CompositeExtract 194 0 + 196: 6(float) CompositeExtract 194 1 + 197: 6(float) CompositeExtract 194 2 + 198: 30(fvec4) CompositeConstruct 195 196 197 54 + 199: 180(ptr) AccessChain 44 62 + 200: 40 Load 199 + 201: 30(fvec4) VectorTimesMatrix 198 200 + Store 193(Q2) 201 + 203: 30(fvec4) Load 174(Q0) + 204: 173(ptr) AccessChain 202(vertex) 57 + Store 204 203 + 206: 30(fvec4) Load 184(Q1) + 207: 173(ptr) AccessChain 202(vertex) 57 + Store 207 206 + 208: 30(fvec4) Load 184(Q1) + 209: 173(ptr) AccessChain 202(vertex) 57 + Store 209 208 + 210: 30(fvec4) Load 193(Q2) + 211: 173(ptr) AccessChain 202(vertex) 57 + Store 211 210 + 212: 30(fvec4) Load 193(Q2) + 213: 173(ptr) AccessChain 202(vertex) 57 + Store 213 212 + 214: 30(fvec4) Load 174(Q0) + 215: 173(ptr) AccessChain 202(vertex) 57 + Store 215 214 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hlslOffset.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.hlslOffset.vert.out new file mode 100644 index 0000000000..8393d837b0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hlslOffset.vert.out @@ -0,0 +1,85 @@ +hlsl.hlslOffset.vert +Shader version: 500 +0:? Sequence +0:20 Function Definition: @main( ( temp void) +0:20 Function Parameters: +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96}) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:20 Function Definition: @main( ( temp void) +0:20 Function Parameters: +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 18 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 500 + Name 4 "main" + Name 6 "@main(" + Name 15 "b" + MemberName 15(b) 0 "m0" + MemberName 15(b) 1 "m4" + MemberName 15(b) 2 "m16" + MemberName 15(b) 3 "m20" + MemberName 15(b) 4 "m36" + MemberName 15(b) 5 "m56" + MemberName 15(b) 6 "m64" + MemberName 15(b) 7 "m68" + MemberName 15(b) 8 "m76" + MemberName 15(b) 9 "m80" + MemberName 15(b) 10 "m96" + Name 17 "" + Decorate 14 ArrayStride 16 + MemberDecorate 15(b) 0 Offset 0 + MemberDecorate 15(b) 1 Offset 4 + MemberDecorate 15(b) 2 Offset 16 + MemberDecorate 15(b) 3 Offset 20 + MemberDecorate 15(b) 4 Offset 36 + MemberDecorate 15(b) 5 Offset 56 + MemberDecorate 15(b) 6 Offset 64 + MemberDecorate 15(b) 7 Offset 68 + MemberDecorate 15(b) 8 Offset 76 + MemberDecorate 15(b) 9 Offset 80 + MemberDecorate 15(b) 10 Offset 96 + Decorate 15(b) Block + Decorate 17 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 9: TypeFloat 32 + 10: TypeVector 9(float) 3 + 11: TypeVector 9(float) 2 + 12: TypeInt 32 0 + 13: 12(int) Constant 1 + 14: TypeArray 11(fvec2) 13 + 15(b): TypeStruct 9(float) 10(fvec3) 9(float) 10(fvec3) 10(fvec3) 11(fvec2) 9(float) 11(fvec2) 9(float) 9(float) 14 + 16: TypePointer Uniform 15(b) + 17: 16(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 8: 2 FunctionCall 6(@main() + Return + FunctionEnd + 6(@main(): 2 Function None 3 + 7: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.1.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.1.tesc.out new file mode 100644 index 0000000000..1be149872f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.1.tesc.out @@ -0,0 +1,373 @@ +hlsl.hull.1.tesc +Shader version: 500 +vertices = 4 +vertex spacing = equal_spacing +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 'm_cpid' ( in uint) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp uint) +0:? 'm_cpid' ( temp uint) +0:? 'm_cpid' ( in uint InvocationID) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'm_cpid' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'm_cpid' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'm_cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) +0:? 'pid' ( in uint PrimitiveID) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) +0:33 Function Parameters: +0:33 'pid' ( in uint) +0:? Sequence +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 edges: direct index for structure ( temp 2-element array of float) +0:36 'output' ( temp structure{ temp 2-element array of float edges}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 2.000000 +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 edges: direct index for structure ( temp 2-element array of float) +0:37 'output' ( temp structure{ temp 2-element array of float edges}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 8.000000 +0:38 Branch: Return with expression +0:38 'output' ( temp structure{ temp 2-element array of float edges}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'm_cpid' ( in uint InvocationID) +0:? 'pid' ( in uint PrimitiveID) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 4 +vertex spacing = equal_spacing +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 'm_cpid' ( in uint) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp uint) +0:? 'm_cpid' ( temp uint) +0:? 'm_cpid' ( in uint InvocationID) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'm_cpid' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'm_cpid' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'm_cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) +0:? 'pid' ( in uint PrimitiveID) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) +0:33 Function Parameters: +0:33 'pid' ( in uint) +0:? Sequence +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 edges: direct index for structure ( temp 2-element array of float) +0:36 'output' ( temp structure{ temp 2-element array of float edges}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 2.000000 +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 edges: direct index for structure ( temp 2-element array of float) +0:37 'output' ( temp structure{ temp 2-element array of float edges}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 8.000000 +0:38 Branch: Return with expression +0:38 'output' ( temp structure{ temp 2-element array of float edges}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'm_cpid' ( in uint InvocationID) +0:? 'pid' ( in uint PrimitiveID) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 89 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 40 44 48 65 71 + ExecutionMode 4 OutputVertices 4 + ExecutionMode 4 Isolines + ExecutionMode 4 SpacingEqual + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUT" + MemberName 8(VS_OUT) 0 "cpoint" + Name 14 "HS_OUT" + MemberName 14(HS_OUT) 0 "cpoint" + Name 18 "@main(struct-VS_OUT-vf31[4];u1;" + Name 16 "ip" + Name 17 "m_cpid" + Name 22 "HS_CONSTANT_OUT" + MemberName 22(HS_CONSTANT_OUT) 0 "edges" + Name 25 "PCF(u1;" + Name 24 "pid" + Name 28 "output" + Name 38 "ip" + Name 40 "ip" + Name 42 "m_cpid" + Name 44 "m_cpid" + Name 48 "@entryPointOutput" + Name 50 "param" + Name 52 "param" + Name 64 "@patchConstantResult" + Name 65 "pid" + Name 66 "param" + Name 71 "@patchConstantOutput.edges" + Name 81 "output" + Decorate 40(ip) Location 0 + Decorate 44(m_cpid) BuiltIn InvocationId + Decorate 48(@entryPointOutput) Location 0 + Decorate 65(pid) BuiltIn PrimitiveId + Decorate 71(@patchConstantOutput.edges) Patch + Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(VS_OUT): TypeStruct 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 4 + 11: TypeArray 8(VS_OUT) 10 + 12: TypePointer Function 11 + 13: TypePointer Function 9(int) + 14(HS_OUT): TypeStruct 7(fvec3) + 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr) + 20: 9(int) Constant 2 + 21: TypeArray 6(float) 20 +22(HS_CONSTANT_OUT): TypeStruct 21 + 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr) + 27: TypePointer Function 14(HS_OUT) + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 31: TypePointer Function 7(fvec3) + 39: TypePointer Input 11 + 40(ip): 39(ptr) Variable Input + 43: TypePointer Input 9(int) + 44(m_cpid): 43(ptr) Variable Input + 46: TypeArray 14(HS_OUT) 10 + 47: TypePointer Output 46 +48(@entryPointOutput): 47(ptr) Variable Output + 55: TypePointer Output 14(HS_OUT) + 57: 9(int) Constant 0 + 59: TypeBool + 63: TypePointer Function 22(HS_CONSTANT_OUT) + 65(pid): 43(ptr) Variable Input + 69: TypeArray 6(float) 10 + 70: TypePointer Output 69 +71(@patchConstantOutput.edges): 70(ptr) Variable Output + 72: TypePointer Function 6(float) + 75: TypePointer Output 6(float) + 77: 29(int) Constant 1 + 82: 6(float) Constant 1073741824 + 84: 6(float) Constant 1090519040 + 4(main): 2 Function None 3 + 5: Label + 38(ip): 12(ptr) Variable Function + 42(m_cpid): 13(ptr) Variable Function + 50(param): 12(ptr) Variable Function + 52(param): 13(ptr) Variable Function +64(@patchConstantResult): 63(ptr) Variable Function + 66(param): 13(ptr) Variable Function + 41: 11 Load 40(ip) + Store 38(ip) 41 + 45: 9(int) Load 44(m_cpid) + Store 42(m_cpid) 45 + 49: 9(int) Load 44(m_cpid) + 51: 11 Load 38(ip) + Store 50(param) 51 + 53: 9(int) Load 42(m_cpid) + Store 52(param) 53 + 54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param) + 56: 55(ptr) AccessChain 48(@entryPointOutput) 49 + Store 56 54 + ControlBarrier 20 10 57 + 58: 9(int) Load 44(m_cpid) + 60: 59(bool) IEqual 58 30 + SelectionMerge 62 None + BranchConditional 60 61 62 + 61: Label + 67: 9(int) Load 65(pid) + Store 66(param) 67 + 68:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 66(param) + Store 64(@patchConstantResult) 68 + 73: 72(ptr) AccessChain 64(@patchConstantResult) 30 30 + 74: 6(float) Load 73 + 76: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 30 + Store 76 74 + 78: 72(ptr) AccessChain 64(@patchConstantResult) 30 77 + 79: 6(float) Load 78 + 80: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 77 + Store 80 79 + Branch 62 + 62: Label + Return + FunctionEnd +18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15 + 16(ip): 12(ptr) FunctionParameter + 17(m_cpid): 13(ptr) FunctionParameter + 19: Label + 28(output): 27(ptr) Variable Function + 32: 31(ptr) AccessChain 16(ip) 30 30 + 33: 7(fvec3) Load 32 + 34: 31(ptr) AccessChain 28(output) 30 + Store 34 33 + 35: 14(HS_OUT) Load 28(output) + ReturnValue 35 + FunctionEnd + 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23 + 24(pid): 13(ptr) FunctionParameter + 26: Label + 81(output): 63(ptr) Variable Function + 83: 72(ptr) AccessChain 81(output) 30 30 + Store 83 82 + 85: 72(ptr) AccessChain 81(output) 30 77 + Store 85 84 + 86:22(HS_CONSTANT_OUT) Load 81(output) + ReturnValue 86 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.2.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.2.tesc.out new file mode 100644 index 0000000000..c8218d2372 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.2.tesc.out @@ -0,0 +1,371 @@ +hlsl.hull.2.tesc +Shader version: 500 +vertices = 4 +vertex spacing = equal_spacing +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'InvocationId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:33 Function Parameters: +0:33 'pid' ( in uint) +0:33 'pos' ( in 4-component vector of float) +0:? Sequence +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 edges: direct index for structure ( temp 2-element array of float) +0:36 'output' ( temp structure{ temp 2-element array of float edges}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 2.000000 +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 edges: direct index for structure ( temp 2-element array of float) +0:37 'output' ( temp structure{ temp 2-element array of float edges}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 8.000000 +0:38 Branch: Return with expression +0:38 'output' ( temp structure{ temp 2-element array of float edges}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 4 +vertex spacing = equal_spacing +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'InvocationId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:33 Function Parameters: +0:33 'pid' ( in uint) +0:33 'pos' ( in 4-component vector of float) +0:? Sequence +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 edges: direct index for structure ( temp 2-element array of float) +0:36 'output' ( temp structure{ temp 2-element array of float edges}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 2.000000 +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 edges: direct index for structure ( temp 2-element array of float) +0:37 'output' ( temp structure{ temp 2-element array of float edges}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 8.000000 +0:38 Branch: Return with expression +0:38 'output' ( temp structure{ temp 2-element array of float edges}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 91 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 42 46 48 63 65 73 + ExecutionMode 4 OutputVertices 4 + ExecutionMode 4 Isolines + ExecutionMode 4 SpacingEqual + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUT" + MemberName 8(VS_OUT) 0 "cpoint" + Name 13 "HS_OUT" + MemberName 13(HS_OUT) 0 "cpoint" + Name 16 "@main(struct-VS_OUT-vf31[4];" + Name 15 "ip" + Name 23 "HS_CONSTANT_OUT" + MemberName 23(HS_CONSTANT_OUT) 0 "edges" + Name 27 "PCF(u1;vf4;" + Name 25 "pid" + Name 26 "pos" + Name 30 "output" + Name 40 "ip" + Name 42 "ip" + Name 46 "@entryPointOutput" + Name 48 "InvocationId" + Name 50 "param" + Name 62 "@patchConstantResult" + Name 63 "pid" + Name 65 "pos" + Name 66 "param" + Name 68 "param" + Name 73 "@patchConstantOutput.edges" + Name 83 "output" + Decorate 42(ip) Location 0 + Decorate 46(@entryPointOutput) Location 0 + Decorate 48(InvocationId) BuiltIn InvocationId + Decorate 63(pid) BuiltIn PrimitiveId + Decorate 65(pos) BuiltIn Position + Decorate 73(@patchConstantOutput.edges) Patch + Decorate 73(@patchConstantOutput.edges) BuiltIn TessLevelOuter + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(VS_OUT): TypeStruct 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 4 + 11: TypeArray 8(VS_OUT) 10 + 12: TypePointer Function 11 + 13(HS_OUT): TypeStruct 7(fvec3) + 14: TypeFunction 13(HS_OUT) 12(ptr) + 18: TypePointer Function 9(int) + 19: TypeVector 6(float) 4 + 20: TypePointer Function 19(fvec4) + 21: 9(int) Constant 2 + 22: TypeArray 6(float) 21 +23(HS_CONSTANT_OUT): TypeStruct 22 + 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr) + 29: TypePointer Function 13(HS_OUT) + 31: TypeInt 32 1 + 32: 31(int) Constant 0 + 33: TypePointer Function 7(fvec3) + 41: TypePointer Input 11 + 42(ip): 41(ptr) Variable Input + 44: TypeArray 13(HS_OUT) 10 + 45: TypePointer Output 44 +46(@entryPointOutput): 45(ptr) Variable Output + 47: TypePointer Input 9(int) +48(InvocationId): 47(ptr) Variable Input + 53: TypePointer Output 13(HS_OUT) + 55: 9(int) Constant 0 + 57: TypeBool + 61: TypePointer Function 23(HS_CONSTANT_OUT) + 63(pid): 47(ptr) Variable Input + 64: TypePointer Input 19(fvec4) + 65(pos): 64(ptr) Variable Input + 71: TypeArray 6(float) 10 + 72: TypePointer Output 71 +73(@patchConstantOutput.edges): 72(ptr) Variable Output + 74: TypePointer Function 6(float) + 77: TypePointer Output 6(float) + 79: 31(int) Constant 1 + 84: 6(float) Constant 1073741824 + 86: 6(float) Constant 1090519040 + 4(main): 2 Function None 3 + 5: Label + 40(ip): 12(ptr) Variable Function + 50(param): 12(ptr) Variable Function +62(@patchConstantResult): 61(ptr) Variable Function + 66(param): 18(ptr) Variable Function + 68(param): 20(ptr) Variable Function + 43: 11 Load 42(ip) + Store 40(ip) 43 + 49: 9(int) Load 48(InvocationId) + 51: 11 Load 40(ip) + Store 50(param) 51 + 52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param) + 54: 53(ptr) AccessChain 46(@entryPointOutput) 49 + Store 54 52 + ControlBarrier 21 10 55 + 56: 9(int) Load 48(InvocationId) + 58: 57(bool) IEqual 56 32 + SelectionMerge 60 None + BranchConditional 58 59 60 + 59: Label + 67: 9(int) Load 63(pid) + Store 66(param) 67 + 69: 19(fvec4) Load 65(pos) + Store 68(param) 69 + 70:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 66(param) 68(param) + Store 62(@patchConstantResult) 70 + 75: 74(ptr) AccessChain 62(@patchConstantResult) 32 32 + 76: 6(float) Load 75 + 78: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 32 + Store 78 76 + 80: 74(ptr) AccessChain 62(@patchConstantResult) 32 79 + 81: 6(float) Load 80 + 82: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 79 + Store 82 81 + Branch 60 + 60: Label + Return + FunctionEnd +16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14 + 15(ip): 12(ptr) FunctionParameter + 17: Label + 30(output): 29(ptr) Variable Function + 34: 33(ptr) AccessChain 15(ip) 32 32 + 35: 7(fvec3) Load 34 + 36: 33(ptr) AccessChain 30(output) 32 + Store 36 35 + 37: 13(HS_OUT) Load 30(output) + ReturnValue 37 + FunctionEnd + 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24 + 25(pid): 18(ptr) FunctionParameter + 26(pos): 20(ptr) FunctionParameter + 28: Label + 83(output): 61(ptr) Variable Function + 85: 74(ptr) AccessChain 83(output) 32 32 + Store 85 84 + 87: 74(ptr) AccessChain 83(output) 32 79 + Store 87 86 + 88:23(HS_CONSTANT_OUT) Load 83(output) + ReturnValue 88 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.3.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.3.tesc.out new file mode 100644 index 0000000000..4ff01985dc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.3.tesc.out @@ -0,0 +1,372 @@ +hlsl.hull.3.tesc +Shader version: 500 +vertices = 4 +vertex spacing = equal_spacing +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'InvocationId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:33 Function Parameters: +0:33 'pid' ( in uint) +0:33 'pos' ( in 4-component vector of float) +0:? Sequence +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 edges: direct index for structure ( temp 2-element array of float) +0:36 'output' ( temp structure{ temp 2-element array of float edges}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 2.000000 +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 edges: direct index for structure ( temp 2-element array of float) +0:37 'output' ( temp structure{ temp 2-element array of float edges}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 8.000000 +0:38 Branch: Return with expression +0:38 'output' ( temp structure{ temp 2-element array of float edges}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 4 +vertex spacing = equal_spacing +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'InvocationId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? edges: direct index for structure ( temp 2-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) +0:33 Function Parameters: +0:33 'pid' ( in uint) +0:33 'pos' ( in 4-component vector of float) +0:? Sequence +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 edges: direct index for structure ( temp 2-element array of float) +0:36 'output' ( temp structure{ temp 2-element array of float edges}) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 2.000000 +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 edges: direct index for structure ( temp 2-element array of float) +0:37 'output' ( temp structure{ temp 2-element array of float edges}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 8.000000 +0:38 Branch: Return with expression +0:38 'output' ( temp structure{ temp 2-element array of float edges}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:? 'pid' ( in uint PrimitiveID) +0:? 'pos' ( in 4-component vector of float Position) +0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 91 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 42 46 48 63 65 73 + ExecutionMode 4 OutputVertices 4 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingEqual + ExecutionMode 4 PointMode + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUT" + MemberName 8(VS_OUT) 0 "cpoint" + Name 13 "HS_OUT" + MemberName 13(HS_OUT) 0 "cpoint" + Name 16 "@main(struct-VS_OUT-vf31[4];" + Name 15 "ip" + Name 23 "HS_CONSTANT_OUT" + MemberName 23(HS_CONSTANT_OUT) 0 "edges" + Name 27 "PCF(u1;vf4;" + Name 25 "pid" + Name 26 "pos" + Name 30 "output" + Name 40 "ip" + Name 42 "ip" + Name 46 "@entryPointOutput" + Name 48 "InvocationId" + Name 50 "param" + Name 62 "@patchConstantResult" + Name 63 "pid" + Name 65 "pos" + Name 66 "param" + Name 68 "param" + Name 73 "@patchConstantOutput.edges" + Name 83 "output" + Decorate 42(ip) Location 0 + Decorate 46(@entryPointOutput) Location 0 + Decorate 48(InvocationId) BuiltIn InvocationId + Decorate 63(pid) BuiltIn PrimitiveId + Decorate 65(pos) BuiltIn Position + Decorate 73(@patchConstantOutput.edges) Patch + Decorate 73(@patchConstantOutput.edges) BuiltIn TessLevelOuter + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(VS_OUT): TypeStruct 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 4 + 11: TypeArray 8(VS_OUT) 10 + 12: TypePointer Function 11 + 13(HS_OUT): TypeStruct 7(fvec3) + 14: TypeFunction 13(HS_OUT) 12(ptr) + 18: TypePointer Function 9(int) + 19: TypeVector 6(float) 4 + 20: TypePointer Function 19(fvec4) + 21: 9(int) Constant 2 + 22: TypeArray 6(float) 21 +23(HS_CONSTANT_OUT): TypeStruct 22 + 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr) + 29: TypePointer Function 13(HS_OUT) + 31: TypeInt 32 1 + 32: 31(int) Constant 0 + 33: TypePointer Function 7(fvec3) + 41: TypePointer Input 11 + 42(ip): 41(ptr) Variable Input + 44: TypeArray 13(HS_OUT) 10 + 45: TypePointer Output 44 +46(@entryPointOutput): 45(ptr) Variable Output + 47: TypePointer Input 9(int) +48(InvocationId): 47(ptr) Variable Input + 53: TypePointer Output 13(HS_OUT) + 55: 9(int) Constant 0 + 57: TypeBool + 61: TypePointer Function 23(HS_CONSTANT_OUT) + 63(pid): 47(ptr) Variable Input + 64: TypePointer Input 19(fvec4) + 65(pos): 64(ptr) Variable Input + 71: TypeArray 6(float) 10 + 72: TypePointer Output 71 +73(@patchConstantOutput.edges): 72(ptr) Variable Output + 74: TypePointer Function 6(float) + 77: TypePointer Output 6(float) + 79: 31(int) Constant 1 + 84: 6(float) Constant 1073741824 + 86: 6(float) Constant 1090519040 + 4(main): 2 Function None 3 + 5: Label + 40(ip): 12(ptr) Variable Function + 50(param): 12(ptr) Variable Function +62(@patchConstantResult): 61(ptr) Variable Function + 66(param): 18(ptr) Variable Function + 68(param): 20(ptr) Variable Function + 43: 11 Load 42(ip) + Store 40(ip) 43 + 49: 9(int) Load 48(InvocationId) + 51: 11 Load 40(ip) + Store 50(param) 51 + 52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param) + 54: 53(ptr) AccessChain 46(@entryPointOutput) 49 + Store 54 52 + ControlBarrier 21 10 55 + 56: 9(int) Load 48(InvocationId) + 58: 57(bool) IEqual 56 32 + SelectionMerge 60 None + BranchConditional 58 59 60 + 59: Label + 67: 9(int) Load 63(pid) + Store 66(param) 67 + 69: 19(fvec4) Load 65(pos) + Store 68(param) 69 + 70:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 66(param) 68(param) + Store 62(@patchConstantResult) 70 + 75: 74(ptr) AccessChain 62(@patchConstantResult) 32 32 + 76: 6(float) Load 75 + 78: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 32 + Store 78 76 + 80: 74(ptr) AccessChain 62(@patchConstantResult) 32 79 + 81: 6(float) Load 80 + 82: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 79 + Store 82 81 + Branch 60 + 60: Label + Return + FunctionEnd +16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14 + 15(ip): 12(ptr) FunctionParameter + 17: Label + 30(output): 29(ptr) Variable Function + 34: 33(ptr) AccessChain 15(ip) 32 32 + 35: 7(fvec3) Load 34 + 36: 33(ptr) AccessChain 30(output) 32 + Store 36 35 + 37: 13(HS_OUT) Load 30(output) + ReturnValue 37 + FunctionEnd + 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24 + 25(pid): 18(ptr) FunctionParameter + 26(pos): 20(ptr) FunctionParameter + 28: Label + 83(output): 61(ptr) Variable Function + 85: 74(ptr) AccessChain 83(output) 32 32 + Store 85 84 + 87: 74(ptr) AccessChain 83(output) 32 79 + Store 87 86 + 88:23(HS_CONSTANT_OUT) Load 83(output) + ReturnValue 88 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.4.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.4.tesc.out new file mode 100644 index 0000000000..a99730d093 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.4.tesc.out @@ -0,0 +1,679 @@ +hlsl.hull.4.tesc +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +0:? Sequence +0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:25 Function Parameters: +0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? Sequence +0:26 Sequence +0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:28 move second child to first child ( temp float) +0:28 fInsideTessFactor: direct index for structure ( temp float) +0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:28 Constant: +0:28 1 (const int) +0:28 add ( temp float) +0:28 direct index ( temp float) +0:28 m_Position: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 3 (const int) +0:28 direct index ( temp float) +0:28 m_Normal: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 3 (const int) +0:30 Branch: Return with expression +0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:39 Function Definition: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Parameters: +0:39 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 'cpid' ( in uint) +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) +0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:40 Constant: +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:41 move second child to first child ( temp 4-component vector of float) +0:41 m_Position: direct index for structure ( temp 4-component vector of float) +0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:42 Branch: Return with expression +0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Definition: main( ( temp void) +0:39 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( in 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) +0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( in 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:39 Constant: +0:39 1 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) +0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( in 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:39 Constant: +0:39 2 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) +0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 indirect index ( out 4-component vector of float Position) +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'cpid' ( in uint InvocationID) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 Function Call: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'cpid' ( temp uint) +0:39 Constant: +0:39 0 (const int) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Function Call: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? fTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? fTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? fTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? fInsideTessFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:? 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:? 'cpid' ( in uint InvocationID) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +0:? Sequence +0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:25 Function Parameters: +0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? Sequence +0:26 Sequence +0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:28 move second child to first child ( temp float) +0:28 fInsideTessFactor: direct index for structure ( temp float) +0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:28 Constant: +0:28 1 (const int) +0:28 add ( temp float) +0:28 direct index ( temp float) +0:28 m_Position: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 3 (const int) +0:28 direct index ( temp float) +0:28 m_Normal: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 3 (const int) +0:30 Branch: Return with expression +0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:39 Function Definition: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Parameters: +0:39 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 'cpid' ( in uint) +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) +0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:40 Constant: +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:41 move second child to first child ( temp 4-component vector of float) +0:41 m_Position: direct index for structure ( temp 4-component vector of float) +0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:42 Branch: Return with expression +0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Definition: main( ( temp void) +0:39 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( in 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) +0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( in 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:39 Constant: +0:39 1 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) +0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( in 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:39 Constant: +0:39 2 (const int) +0:39 move second child to first child ( temp 4-component vector of float) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 m_Normal: direct index for structure ( temp 4-component vector of float) +0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) +0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 indirect index ( out 4-component vector of float Position) +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'cpid' ( in uint InvocationID) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 Function Call: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? 'cpid' ( temp uint) +0:39 Constant: +0:39 0 (const int) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Function Call: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? fTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? fTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? fTessFactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? fInsideTessFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:? Constant: +0:? 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) +0:? 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) +0:? 'cpid' ( in uint InvocationID) +0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 127 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 56 64 83 86 110 123 + ExecutionMode 4 OutputVertices 3 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingFractionalOdd + ExecutionMode 4 VertexOrderCw + Source HLSL 500 + Name 4 "main" + Name 8 "HS_Input" + MemberName 8(HS_Input) 0 "m_Position" + MemberName 8(HS_Input) 1 "m_Normal" + Name 14 "HS_Output" + MemberName 14(HS_Output) 0 "fTessFactor" + MemberName 14(HS_Output) 1 "fInsideTessFactor" + Name 17 "HS_ConstFunc(struct-HS_Input-vf4-vf41[3];" + Name 16 "I" + Name 20 "HS_Main_Output" + MemberName 20(HS_Main_Output) 0 "m_Position" + Name 24 "@main(struct-HS_Input-vf4-vf41[3];u1;" + Name 22 "I" + Name 23 "cpid" + Name 27 "O" + Name 45 "output" + Name 53 "I" + Name 56 "I.m_Position" + Name 61 "HS_Input" + MemberName 61(HS_Input) 0 "m_Normal" + Name 64 "I" + Name 81 "cpid" + Name 83 "cpid" + Name 86 "@entryPointOutput.m_Position" + Name 88 "param" + Name 90 "param" + Name 104 "@patchConstantResult" + Name 105 "param" + Name 110 "@patchConstantOutput.fTessFactor" + Name 123 "@patchConstantOutput.fInsideTessFactor" + Decorate 56(I.m_Position) BuiltIn Position + Decorate 64(I) Location 0 + Decorate 83(cpid) BuiltIn InvocationId + Decorate 86(@entryPointOutput.m_Position) BuiltIn Position + Decorate 110(@patchConstantOutput.fTessFactor) Patch + Decorate 110(@patchConstantOutput.fTessFactor) BuiltIn TessLevelOuter + Decorate 123(@patchConstantOutput.fInsideTessFactor) Patch + Decorate 123(@patchConstantOutput.fInsideTessFactor) BuiltIn TessLevelInner + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(HS_Input): TypeStruct 7(fvec4) 7(fvec4) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(HS_Input) 10 + 12: TypePointer Function 11 + 13: TypeArray 6(float) 10 + 14(HS_Output): TypeStruct 13 6(float) + 15: TypeFunction 14(HS_Output) 12(ptr) + 19: TypePointer Function 9(int) +20(HS_Main_Output): TypeStruct 7(fvec4) + 21: TypeFunction 20(HS_Main_Output) 12(ptr) 19(ptr) + 26: TypePointer Function 14(HS_Output) + 28: 6(float) Constant 0 + 29: 13 ConstantComposite 28 28 28 + 30:14(HS_Output) ConstantComposite 29 28 + 31: TypeInt 32 1 + 32: 31(int) Constant 1 + 33: 31(int) Constant 0 + 34: TypePointer Function 6(float) + 44: TypePointer Function 20(HS_Main_Output) + 46: 7(fvec4) ConstantComposite 28 28 28 28 + 47:20(HS_Main_Output) ConstantComposite 46 + 48: TypePointer Function 7(fvec4) + 54: TypeArray 7(fvec4) 10 + 55: TypePointer Input 54 +56(I.m_Position): 55(ptr) Variable Input + 57: TypePointer Input 7(fvec4) + 61(HS_Input): TypeStruct 7(fvec4) + 62: TypeArray 61(HS_Input) 10 + 63: TypePointer Input 62 + 64(I): 63(ptr) Variable Input + 74: 31(int) Constant 2 + 82: TypePointer Input 9(int) + 83(cpid): 82(ptr) Variable Input + 85: TypePointer Output 54 +86(@entryPointOutput.m_Position): 85(ptr) Variable Output + 94: TypePointer Output 7(fvec4) + 96: 9(int) Constant 2 + 97: 9(int) Constant 4 + 98: 9(int) Constant 0 + 100: TypeBool + 108: TypeArray 6(float) 97 + 109: TypePointer Output 108 +110(@patchConstantOutput.fTessFactor): 109(ptr) Variable Output + 113: TypePointer Output 6(float) + 121: TypeArray 6(float) 96 + 122: TypePointer Output 121 +123(@patchConstantOutput.fInsideTessFactor): 122(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 53(I): 12(ptr) Variable Function + 81(cpid): 19(ptr) Variable Function + 88(param): 12(ptr) Variable Function + 90(param): 19(ptr) Variable Function +104(@patchConstantResult): 26(ptr) Variable Function + 105(param): 12(ptr) Variable Function + 58: 57(ptr) AccessChain 56(I.m_Position) 33 + 59: 7(fvec4) Load 58 + 60: 48(ptr) AccessChain 53(I) 33 33 + Store 60 59 + 65: 57(ptr) AccessChain 64(I) 33 33 + 66: 7(fvec4) Load 65 + 67: 48(ptr) AccessChain 53(I) 33 32 + Store 67 66 + 68: 57(ptr) AccessChain 56(I.m_Position) 32 + 69: 7(fvec4) Load 68 + 70: 48(ptr) AccessChain 53(I) 32 33 + Store 70 69 + 71: 57(ptr) AccessChain 64(I) 32 33 + 72: 7(fvec4) Load 71 + 73: 48(ptr) AccessChain 53(I) 32 32 + Store 73 72 + 75: 57(ptr) AccessChain 56(I.m_Position) 74 + 76: 7(fvec4) Load 75 + 77: 48(ptr) AccessChain 53(I) 74 33 + Store 77 76 + 78: 57(ptr) AccessChain 64(I) 74 33 + 79: 7(fvec4) Load 78 + 80: 48(ptr) AccessChain 53(I) 74 32 + Store 80 79 + 84: 9(int) Load 83(cpid) + Store 81(cpid) 84 + 87: 9(int) Load 83(cpid) + 89: 11 Load 53(I) + Store 88(param) 89 + 91: 9(int) Load 81(cpid) + Store 90(param) 91 + 92:20(HS_Main_Output) FunctionCall 24(@main(struct-HS_Input-vf4-vf41[3];u1;) 88(param) 90(param) + 93: 7(fvec4) CompositeExtract 92 0 + 95: 94(ptr) AccessChain 86(@entryPointOutput.m_Position) 87 + Store 95 93 + ControlBarrier 96 97 98 + 99: 9(int) Load 83(cpid) + 101: 100(bool) IEqual 99 33 + SelectionMerge 103 None + BranchConditional 101 102 103 + 102: Label + 106: 11 Load 53(I) + Store 105(param) 106 + 107:14(HS_Output) FunctionCall 17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];) 105(param) + Store 104(@patchConstantResult) 107 + 111: 34(ptr) AccessChain 104(@patchConstantResult) 33 33 + 112: 6(float) Load 111 + 114: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 33 + Store 114 112 + 115: 34(ptr) AccessChain 104(@patchConstantResult) 33 32 + 116: 6(float) Load 115 + 117: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 32 + Store 117 116 + 118: 34(ptr) AccessChain 104(@patchConstantResult) 33 74 + 119: 6(float) Load 118 + 120: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 74 + Store 120 119 + 124: 34(ptr) AccessChain 104(@patchConstantResult) 32 + 125: 6(float) Load 124 + 126: 113(ptr) AccessChain 123(@patchConstantOutput.fInsideTessFactor) 33 + Store 126 125 + Branch 103 + 103: Label + Return + FunctionEnd +17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];):14(HS_Output) Function None 15 + 16(I): 12(ptr) FunctionParameter + 18: Label + 27(O): 26(ptr) Variable Function + Store 27(O) 30 + 35: 34(ptr) AccessChain 16(I) 33 33 10 + 36: 6(float) Load 35 + 37: 34(ptr) AccessChain 16(I) 33 32 10 + 38: 6(float) Load 37 + 39: 6(float) FAdd 36 38 + 40: 34(ptr) AccessChain 27(O) 32 + Store 40 39 + 41:14(HS_Output) Load 27(O) + ReturnValue 41 + FunctionEnd +24(@main(struct-HS_Input-vf4-vf41[3];u1;):20(HS_Main_Output) Function None 21 + 22(I): 12(ptr) FunctionParameter + 23(cpid): 19(ptr) FunctionParameter + 25: Label + 45(output): 44(ptr) Variable Function + Store 45(output) 47 + 49: 48(ptr) AccessChain 45(output) 33 + Store 49 46 + 50:20(HS_Main_Output) Load 45(output) + ReturnValue 50 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.5.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.5.tesc.out new file mode 100644 index 0000000000..656427b6de --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.5.tesc.out @@ -0,0 +1,188 @@ +hlsl.hull.5.tesc +ERROR: 0:0: '' : unimplemented: PCF input patch without entry point input patch parameter +ERROR: 1 compilation errors. No code generated. + + +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +ERROR: node is still EOpNull! +0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:25 Function Parameters: +0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? Sequence +0:26 Sequence +0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:28 move second child to first child ( temp float) +0:28 fInsideTessFactor: direct index for structure ( temp float) +0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:28 Constant: +0:28 1 (const int) +0:28 add ( temp float) +0:28 direct index ( temp float) +0:28 m_Position: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 3 (const int) +0:28 direct index ( temp float) +0:28 m_Normal: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 3 (const int) +0:30 Branch: Return with expression +0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:39 Function Definition: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Parameters: +0:39 'cpid' ( in uint) +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) +0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:40 Constant: +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:41 move second child to first child ( temp 4-component vector of float) +0:41 m_Position: direct index for structure ( temp 4-component vector of float) +0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:42 Branch: Return with expression +0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Definition: main( ( temp void) +0:39 Function Parameters: +0:? Sequence +0:39 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 indirect index ( out 4-component vector of float Position) +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'cpid' ( in uint InvocationID) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 Function Call: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:? 'cpid' ( temp uint) +0:39 Constant: +0:39 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'cpid' ( in uint InvocationID) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +ERROR: node is still EOpNull! +0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:25 Function Parameters: +0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:? Sequence +0:26 Sequence +0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:28 move second child to first child ( temp float) +0:28 fInsideTessFactor: direct index for structure ( temp float) +0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:28 Constant: +0:28 1 (const int) +0:28 add ( temp float) +0:28 direct index ( temp float) +0:28 m_Position: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 3 (const int) +0:28 direct index ( temp float) +0:28 m_Normal: direct index for structure ( temp 4-component vector of float) +0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 3 (const int) +0:30 Branch: Return with expression +0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) +0:39 Function Definition: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Parameters: +0:39 'cpid' ( in uint) +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) +0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:40 Constant: +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:40 0.000000 +0:41 move second child to first child ( temp 4-component vector of float) +0:41 m_Position: direct index for structure ( temp 4-component vector of float) +0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:41 0.000000 +0:42 Branch: Return with expression +0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) +0:39 Function Definition: main( ( temp void) +0:39 Function Parameters: +0:? Sequence +0:39 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 indirect index ( out 4-component vector of float Position) +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'cpid' ( in uint InvocationID) +0:39 m_Position: direct index for structure ( temp 4-component vector of float) +0:39 Function Call: @main(u1; ( temp structure{ temp 4-component vector of float m_Position}) +0:? 'cpid' ( temp uint) +0:39 Constant: +0:39 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) +0:? 'cpid' ( in uint InvocationID) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out new file mode 100644 index 0000000000..41f3c0a44d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out @@ -0,0 +1,604 @@ +hlsl.hull.ctrlpt-1.tesc +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +0:? Sequence +0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:27 Function Parameters: +0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) +0:27 'cpid' ( in uint) +0:? Sequence +0:29 move second child to first child ( temp 3-component vector of float) +0:29 val: direct index for structure ( temp 3-component vector of float) +0:29 'o' ( temp structure{ temp 3-component vector of float val}) +0:29 Constant: +0:29 0 (const int) +0:29 Construct vec3 ( temp 3-component vector of float) +0:29 Convert uint to float ( temp float) +0:29 'cpid' ( in uint) +0:30 Branch: Return with expression +0:30 'o' ( temp structure{ temp 3-component vector of float val}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:27 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:27 move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:27 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const uint) +0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? flInFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 1 (const int) +0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:34 Function Parameters: +0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 tfactor: direct index for structure ( temp 3-element array of float) +0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp float) +0:37 val: direct index for structure ( temp 3-component vector of float) +0:37 direct index ( temp structure{ temp 3-component vector of float val}) +0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 tfactor: direct index for structure ( temp 3-element array of float) +0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:38 Constant: +0:38 0 (const int) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp float) +0:38 val: direct index for structure ( temp 3-component vector of float) +0:38 direct index ( temp structure{ temp 3-component vector of float val}) +0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:38 Constant: +0:38 1 (const int) +0:38 Constant: +0:38 0 (const int) +0:38 Constant: +0:38 0 (const int) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 tfactor: direct index for structure ( temp 3-element array of float) +0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 2 (const int) +0:39 direct index ( temp float) +0:39 val: direct index for structure ( temp 3-component vector of float) +0:39 direct index ( temp structure{ temp 3-component vector of float val}) +0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:40 move second child to first child ( temp float) +0:40 flInFactor: direct index for structure ( temp float) +0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 4.000000 +0:42 Branch: Return with expression +0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +0:? Sequence +0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:27 Function Parameters: +0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) +0:27 'cpid' ( in uint) +0:? Sequence +0:29 move second child to first child ( temp 3-component vector of float) +0:29 val: direct index for structure ( temp 3-component vector of float) +0:29 'o' ( temp structure{ temp 3-component vector of float val}) +0:29 Constant: +0:29 0 (const int) +0:29 Construct vec3 ( temp 3-component vector of float) +0:29 Convert uint to float ( temp float) +0:29 'cpid' ( in uint) +0:30 Branch: Return with expression +0:30 'o' ( temp structure{ temp 3-component vector of float val}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:27 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:27 move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:27 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const uint) +0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? flInFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 1 (const int) +0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:34 Function Parameters: +0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:37 move second child to first child ( temp float) +0:37 direct index ( temp float) +0:37 tfactor: direct index for structure ( temp 3-element array of float) +0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp float) +0:37 val: direct index for structure ( temp 3-component vector of float) +0:37 direct index ( temp structure{ temp 3-component vector of float val}) +0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 tfactor: direct index for structure ( temp 3-element array of float) +0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:38 Constant: +0:38 0 (const int) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp float) +0:38 val: direct index for structure ( temp 3-component vector of float) +0:38 direct index ( temp structure{ temp 3-component vector of float val}) +0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:38 Constant: +0:38 1 (const int) +0:38 Constant: +0:38 0 (const int) +0:38 Constant: +0:38 0 (const int) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 tfactor: direct index for structure ( temp 3-element array of float) +0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 2 (const int) +0:39 direct index ( temp float) +0:39 val: direct index for structure ( temp 3-component vector of float) +0:39 direct index ( temp structure{ temp 3-component vector of float val}) +0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:39 Constant: +0:39 2 (const int) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 0 (const int) +0:40 move second child to first child ( temp float) +0:40 flInFactor: direct index for structure ( temp float) +0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 4.000000 +0:42 Branch: Return with expression +0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 124 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 41 45 48 94 108 + ExecutionMode 4 OutputVertices 3 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingFractionalOdd + ExecutionMode 4 VertexOrderCw + Source HLSL 500 + Name 4 "main" + Name 8 "hs_in_t" + MemberName 8(hs_in_t) 0 "val" + Name 14 "hs_out_t" + MemberName 14(hs_out_t) 0 "val" + Name 18 "@main(struct-hs_in_t-vf31[3];u1;" + Name 16 "i" + Name 17 "cpid" + Name 22 "hs_pcf_t" + MemberName 22(hs_pcf_t) 0 "tfactor" + MemberName 22(hs_pcf_t) 1 "flInFactor" + Name 25 "PCF(struct-hs_out_t-vf31[3];" + Name 24 "pcf_out" + Name 28 "o" + Name 39 "i" + Name 41 "i" + Name 43 "cpid" + Name 45 "cpid" + Name 48 "@entryPointOutput" + Name 50 "param" + Name 52 "param" + Name 66 "pcf_out" + Name 67 "i" + Name 68 "param" + Name 70 "param" + Name 74 "i" + Name 76 "param" + Name 78 "param" + Name 82 "i" + Name 83 "param" + Name 85 "param" + Name 89 "@patchConstantResult" + Name 94 "@patchConstantOutput.tfactor" + Name 108 "@patchConstantOutput.flInFactor" + Name 112 "o" + Decorate 41(i) Location 0 + Decorate 45(cpid) BuiltIn InvocationId + Decorate 48(@entryPointOutput) Location 0 + Decorate 94(@patchConstantOutput.tfactor) Patch + Decorate 94(@patchConstantOutput.tfactor) BuiltIn TessLevelOuter + Decorate 108(@patchConstantOutput.flInFactor) Patch + Decorate 108(@patchConstantOutput.flInFactor) BuiltIn TessLevelInner + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(hs_in_t): TypeStruct 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(hs_in_t) 10 + 12: TypePointer Function 11 + 13: TypePointer Function 9(int) + 14(hs_out_t): TypeStruct 7(fvec3) + 15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr) + 20: TypeArray 14(hs_out_t) 10 + 21: TypeArray 6(float) 10 + 22(hs_pcf_t): TypeStruct 21 6(float) + 23: TypeFunction 22(hs_pcf_t) 20 + 27: TypePointer Function 14(hs_out_t) + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 34: TypePointer Function 7(fvec3) + 40: TypePointer Input 11 + 41(i): 40(ptr) Variable Input + 44: TypePointer Input 9(int) + 45(cpid): 44(ptr) Variable Input + 47: TypePointer Output 20 +48(@entryPointOutput): 47(ptr) Variable Output + 55: TypePointer Output 14(hs_out_t) + 57: 9(int) Constant 2 + 58: 9(int) Constant 4 + 59: 9(int) Constant 0 + 61: TypeBool + 65: TypePointer Function 20 + 73: 29(int) Constant 1 + 75: 9(int) Constant 1 + 81: 29(int) Constant 2 + 88: TypePointer Function 22(hs_pcf_t) + 92: TypeArray 6(float) 58 + 93: TypePointer Output 92 +94(@patchConstantOutput.tfactor): 93(ptr) Variable Output + 95: TypePointer Function 6(float) + 98: TypePointer Output 6(float) + 106: TypeArray 6(float) 57 + 107: TypePointer Output 106 +108(@patchConstantOutput.flInFactor): 107(ptr) Variable Output + 119: 6(float) Constant 1082130432 + 4(main): 2 Function None 3 + 5: Label + 39(i): 12(ptr) Variable Function + 43(cpid): 13(ptr) Variable Function + 50(param): 12(ptr) Variable Function + 52(param): 13(ptr) Variable Function + 66(pcf_out): 65(ptr) Variable Function + 67(i): 12(ptr) Variable Function + 68(param): 12(ptr) Variable Function + 70(param): 13(ptr) Variable Function + 74(i): 12(ptr) Variable Function + 76(param): 12(ptr) Variable Function + 78(param): 13(ptr) Variable Function + 82(i): 12(ptr) Variable Function + 83(param): 12(ptr) Variable Function + 85(param): 13(ptr) Variable Function +89(@patchConstantResult): 88(ptr) Variable Function + 42: 11 Load 41(i) + Store 39(i) 42 + 46: 9(int) Load 45(cpid) + Store 43(cpid) 46 + 49: 9(int) Load 45(cpid) + 51: 11 Load 39(i) + Store 50(param) 51 + 53: 9(int) Load 43(cpid) + Store 52(param) 53 + 54:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 50(param) 52(param) + 56: 55(ptr) AccessChain 48(@entryPointOutput) 49 + Store 56 54 + ControlBarrier 57 58 59 + 60: 9(int) Load 45(cpid) + 62: 61(bool) IEqual 60 30 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + 69: 11 Load 67(i) + Store 68(param) 69 + Store 70(param) 59 + 71:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 68(param) 70(param) + 72: 27(ptr) AccessChain 66(pcf_out) 30 + Store 72 71 + 77: 11 Load 74(i) + Store 76(param) 77 + Store 78(param) 75 + 79:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 76(param) 78(param) + 80: 27(ptr) AccessChain 66(pcf_out) 73 + Store 80 79 + 84: 11 Load 82(i) + Store 83(param) 84 + Store 85(param) 57 + 86:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 83(param) 85(param) + 87: 27(ptr) AccessChain 66(pcf_out) 81 + Store 87 86 + 90: 20 Load 66(pcf_out) + 91:22(hs_pcf_t) FunctionCall 25(PCF(struct-hs_out_t-vf31[3];) 90 + Store 89(@patchConstantResult) 91 + 96: 95(ptr) AccessChain 89(@patchConstantResult) 30 30 + 97: 6(float) Load 96 + 99: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 30 + Store 99 97 + 100: 95(ptr) AccessChain 89(@patchConstantResult) 30 73 + 101: 6(float) Load 100 + 102: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 73 + Store 102 101 + 103: 95(ptr) AccessChain 89(@patchConstantResult) 30 81 + 104: 6(float) Load 103 + 105: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 81 + Store 105 104 + 109: 95(ptr) AccessChain 89(@patchConstantResult) 73 + 110: 6(float) Load 109 + 111: 98(ptr) AccessChain 108(@patchConstantOutput.flInFactor) 30 + Store 111 110 + Branch 64 + 64: Label + Return + FunctionEnd +18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15 + 16(i): 12(ptr) FunctionParameter + 17(cpid): 13(ptr) FunctionParameter + 19: Label + 28(o): 27(ptr) Variable Function + 31: 9(int) Load 17(cpid) + 32: 6(float) ConvertUToF 31 + 33: 7(fvec3) CompositeConstruct 32 32 32 + 35: 34(ptr) AccessChain 28(o) 30 + Store 35 33 + 36:14(hs_out_t) Load 28(o) + ReturnValue 36 + FunctionEnd +25(PCF(struct-hs_out_t-vf31[3];):22(hs_pcf_t) Function None 23 + 24(pcf_out): 20 FunctionParameter + 26: Label + 112(o): 88(ptr) Variable Function + 113: 6(float) CompositeExtract 24(pcf_out) 0 0 0 + 114: 95(ptr) AccessChain 112(o) 30 30 + Store 114 113 + 115: 6(float) CompositeExtract 24(pcf_out) 1 0 0 + 116: 95(ptr) AccessChain 112(o) 30 73 + Store 116 115 + 117: 6(float) CompositeExtract 24(pcf_out) 2 0 0 + 118: 95(ptr) AccessChain 112(o) 30 81 + Store 118 117 + 120: 95(ptr) AccessChain 112(o) 73 + Store 120 119 + 121:22(hs_pcf_t) Load 112(o) + ReturnValue 121 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out new file mode 100644 index 0000000000..986e110211 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out @@ -0,0 +1,625 @@ +hlsl.hull.ctrlpt-2.tesc +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +0:? Sequence +0:28 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:28 Function Parameters: +0:28 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) +0:28 'cpid' ( in uint) +0:? Sequence +0:29 val: direct index for structure ( temp 3-component vector of float) +0:29 direct index ( temp structure{ temp 3-component vector of float val}) +0:29 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:32 move second child to first child ( temp 3-component vector of float) +0:32 val: direct index for structure ( temp 3-component vector of float) +0:32 'o' ( temp structure{ temp 3-component vector of float val}) +0:32 Constant: +0:32 0 (const int) +0:32 Construct vec3 ( temp 3-component vector of float) +0:32 Convert uint to float ( temp float) +0:32 'cpid' ( in uint) +0:33 Branch: Return with expression +0:33 'o' ( temp structure{ temp 3-component vector of float val}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:28 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:28 move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:28 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:28 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const uint) +0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? flInFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 1 (const int) +0:38 Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:38 Function Parameters: +0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:38 'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:41 move second child to first child ( temp float) +0:41 direct index ( temp float) +0:41 tfactor: direct index for structure ( temp 3-element array of float) +0:41 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0 (const int) +0:41 direct index ( temp float) +0:41 val: direct index for structure ( temp 3-component vector of float) +0:41 direct index ( temp structure{ temp 3-component vector of float val}) +0:41 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0 (const int) +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 tfactor: direct index for structure ( temp 3-element array of float) +0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 direct index ( temp float) +0:42 val: direct index for structure ( temp 3-component vector of float) +0:42 direct index ( temp structure{ temp 3-component vector of float val}) +0:42 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 0 (const int) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 tfactor: direct index for structure ( temp 3-element array of float) +0:43 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 2 (const int) +0:43 direct index ( temp float) +0:43 val: direct index for structure ( temp 3-component vector of float) +0:43 direct index ( temp structure{ temp 3-component vector of float val}) +0:43 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:43 Constant: +0:43 2 (const int) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 0 (const int) +0:44 move second child to first child ( temp float) +0:44 flInFactor: direct index for structure ( temp float) +0:44 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 4.000000 +0:46 Branch: Return with expression +0:46 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +vertex spacing = fractional_odd_spacing +triangle order = cw +0:? Sequence +0:28 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:28 Function Parameters: +0:28 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) +0:28 'cpid' ( in uint) +0:? Sequence +0:29 val: direct index for structure ( temp 3-component vector of float) +0:29 direct index ( temp structure{ temp 3-component vector of float val}) +0:29 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:32 move second child to first child ( temp 3-component vector of float) +0:32 val: direct index for structure ( temp 3-component vector of float) +0:32 'o' ( temp structure{ temp 3-component vector of float val}) +0:32 Constant: +0:32 0 (const int) +0:32 Construct vec3 ( temp 3-component vector of float) +0:32 Convert uint to float ( temp float) +0:32 'cpid' ( in uint) +0:33 Branch: Return with expression +0:33 'o' ( temp structure{ temp 3-component vector of float val}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:28 move second child to first child ( temp uint) +0:? 'cpid' ( temp uint) +0:? 'cpid' ( in uint InvocationID) +0:28 move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:28 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:28 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( temp uint) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'cpid' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 0 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 1 (const uint) +0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) +0:? direct index ( temp structure{ temp 3-component vector of float val}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const int) +0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Constant: +0:? 2 (const uint) +0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 0 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 0 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 1 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 1 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelOuter) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? Constant: +0:? 2 (const int) +0:? direct index ( temp float) +0:? tfactor: direct index for structure ( temp 3-element array of float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 0 (const int) +0:? Constant: +0:? 2 (const int) +0:? move second child to first child ( temp float) +0:? direct index ( patch out float TessLevelInner) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) +0:? Constant: +0:? 0 (const int) +0:? flInFactor: direct index for structure ( temp float) +0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Constant: +0:? 1 (const int) +0:38 Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:38 Function Parameters: +0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:38 'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:? Sequence +0:41 move second child to first child ( temp float) +0:41 direct index ( temp float) +0:41 tfactor: direct index for structure ( temp 3-element array of float) +0:41 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0 (const int) +0:41 direct index ( temp float) +0:41 val: direct index for structure ( temp 3-component vector of float) +0:41 direct index ( temp structure{ temp 3-component vector of float val}) +0:41 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 0 (const int) +0:42 move second child to first child ( temp float) +0:42 direct index ( temp float) +0:42 tfactor: direct index for structure ( temp 3-element array of float) +0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 direct index ( temp float) +0:42 val: direct index for structure ( temp 3-component vector of float) +0:42 direct index ( temp structure{ temp 3-component vector of float val}) +0:42 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 0 (const int) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 tfactor: direct index for structure ( temp 3-element array of float) +0:43 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 2 (const int) +0:43 direct index ( temp float) +0:43 val: direct index for structure ( temp 3-component vector of float) +0:43 direct index ( temp structure{ temp 3-component vector of float val}) +0:43 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) +0:43 Constant: +0:43 2 (const int) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 0 (const int) +0:44 move second child to first child ( temp float) +0:44 flInFactor: direct index for structure ( temp float) +0:44 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 4.000000 +0:46 Branch: Return with expression +0:46 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) +0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) +0:? 'cpid' ( in uint InvocationID) +0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) +0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 126 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 42 46 49 96 110 + ExecutionMode 4 OutputVertices 3 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingFractionalOdd + ExecutionMode 4 VertexOrderCw + Source HLSL 500 + Name 4 "main" + Name 8 "hs_in_t" + MemberName 8(hs_in_t) 0 "val" + Name 14 "hs_out_t" + MemberName 14(hs_out_t) 0 "val" + Name 18 "@main(struct-hs_in_t-vf31[3];u1;" + Name 16 "i" + Name 17 "cpid" + Name 22 "hs_pcf_t" + MemberName 22(hs_pcf_t) 0 "tfactor" + MemberName 22(hs_pcf_t) 1 "flInFactor" + Name 26 "PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];" + Name 24 "pcf_out" + Name 25 "pcf_in" + Name 31 "o" + Name 40 "i" + Name 42 "i" + Name 44 "cpid" + Name 46 "cpid" + Name 49 "@entryPointOutput" + Name 51 "param" + Name 53 "param" + Name 67 "pcf_out" + Name 68 "i" + Name 69 "param" + Name 71 "param" + Name 75 "i" + Name 77 "param" + Name 79 "param" + Name 83 "i" + Name 84 "param" + Name 86 "param" + Name 90 "@patchConstantResult" + Name 96 "@patchConstantOutput.tfactor" + Name 110 "@patchConstantOutput.flInFactor" + Name 114 "o" + Decorate 42(i) Location 0 + Decorate 46(cpid) BuiltIn InvocationId + Decorate 49(@entryPointOutput) Location 0 + Decorate 96(@patchConstantOutput.tfactor) Patch + Decorate 96(@patchConstantOutput.tfactor) BuiltIn TessLevelOuter + Decorate 110(@patchConstantOutput.flInFactor) Patch + Decorate 110(@patchConstantOutput.flInFactor) BuiltIn TessLevelInner + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(hs_in_t): TypeStruct 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(hs_in_t) 10 + 12: TypePointer Function 11 + 13: TypePointer Function 9(int) + 14(hs_out_t): TypeStruct 7(fvec3) + 15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr) + 20: TypeArray 14(hs_out_t) 10 + 21: TypeArray 6(float) 10 + 22(hs_pcf_t): TypeStruct 21 6(float) + 23: TypeFunction 22(hs_pcf_t) 20 11 + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 30: TypePointer Function 14(hs_out_t) + 35: TypePointer Function 7(fvec3) + 41: TypePointer Input 11 + 42(i): 41(ptr) Variable Input + 45: TypePointer Input 9(int) + 46(cpid): 45(ptr) Variable Input + 48: TypePointer Output 20 +49(@entryPointOutput): 48(ptr) Variable Output + 56: TypePointer Output 14(hs_out_t) + 58: 9(int) Constant 2 + 59: 9(int) Constant 4 + 60: 9(int) Constant 0 + 62: TypeBool + 66: TypePointer Function 20 + 74: 28(int) Constant 1 + 76: 9(int) Constant 1 + 82: 28(int) Constant 2 + 89: TypePointer Function 22(hs_pcf_t) + 94: TypeArray 6(float) 59 + 95: TypePointer Output 94 +96(@patchConstantOutput.tfactor): 95(ptr) Variable Output + 97: TypePointer Function 6(float) + 100: TypePointer Output 6(float) + 108: TypeArray 6(float) 58 + 109: TypePointer Output 108 +110(@patchConstantOutput.flInFactor): 109(ptr) Variable Output + 121: 6(float) Constant 1082130432 + 4(main): 2 Function None 3 + 5: Label + 40(i): 12(ptr) Variable Function + 44(cpid): 13(ptr) Variable Function + 51(param): 12(ptr) Variable Function + 53(param): 13(ptr) Variable Function + 67(pcf_out): 66(ptr) Variable Function + 68(i): 12(ptr) Variable Function + 69(param): 12(ptr) Variable Function + 71(param): 13(ptr) Variable Function + 75(i): 12(ptr) Variable Function + 77(param): 12(ptr) Variable Function + 79(param): 13(ptr) Variable Function + 83(i): 12(ptr) Variable Function + 84(param): 12(ptr) Variable Function + 86(param): 13(ptr) Variable Function +90(@patchConstantResult): 89(ptr) Variable Function + 43: 11 Load 42(i) + Store 40(i) 43 + 47: 9(int) Load 46(cpid) + Store 44(cpid) 47 + 50: 9(int) Load 46(cpid) + 52: 11 Load 40(i) + Store 51(param) 52 + 54: 9(int) Load 44(cpid) + Store 53(param) 54 + 55:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 51(param) 53(param) + 57: 56(ptr) AccessChain 49(@entryPointOutput) 50 + Store 57 55 + ControlBarrier 58 59 60 + 61: 9(int) Load 46(cpid) + 63: 62(bool) IEqual 61 29 + SelectionMerge 65 None + BranchConditional 63 64 65 + 64: Label + 70: 11 Load 68(i) + Store 69(param) 70 + Store 71(param) 60 + 72:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 69(param) 71(param) + 73: 30(ptr) AccessChain 67(pcf_out) 29 + Store 73 72 + 78: 11 Load 75(i) + Store 77(param) 78 + Store 79(param) 76 + 80:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 77(param) 79(param) + 81: 30(ptr) AccessChain 67(pcf_out) 74 + Store 81 80 + 85: 11 Load 83(i) + Store 84(param) 85 + Store 86(param) 58 + 87:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 84(param) 86(param) + 88: 30(ptr) AccessChain 67(pcf_out) 82 + Store 88 87 + 91: 20 Load 67(pcf_out) + 92: 11 Load 40(i) + 93:22(hs_pcf_t) FunctionCall 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];) 91 92 + Store 90(@patchConstantResult) 93 + 98: 97(ptr) AccessChain 90(@patchConstantResult) 29 29 + 99: 6(float) Load 98 + 101: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 29 + Store 101 99 + 102: 97(ptr) AccessChain 90(@patchConstantResult) 29 74 + 103: 6(float) Load 102 + 104: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 74 + Store 104 103 + 105: 97(ptr) AccessChain 90(@patchConstantResult) 29 82 + 106: 6(float) Load 105 + 107: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 82 + Store 107 106 + 111: 97(ptr) AccessChain 90(@patchConstantResult) 74 + 112: 6(float) Load 111 + 113: 100(ptr) AccessChain 110(@patchConstantOutput.flInFactor) 29 + Store 113 112 + Branch 65 + 65: Label + Return + FunctionEnd +18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15 + 16(i): 12(ptr) FunctionParameter + 17(cpid): 13(ptr) FunctionParameter + 19: Label + 31(o): 30(ptr) Variable Function + 32: 9(int) Load 17(cpid) + 33: 6(float) ConvertUToF 32 + 34: 7(fvec3) CompositeConstruct 33 33 33 + 36: 35(ptr) AccessChain 31(o) 29 + Store 36 34 + 37:14(hs_out_t) Load 31(o) + ReturnValue 37 + FunctionEnd +26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];):22(hs_pcf_t) Function None 23 + 24(pcf_out): 20 FunctionParameter + 25(pcf_in): 11 FunctionParameter + 27: Label + 114(o): 89(ptr) Variable Function + 115: 6(float) CompositeExtract 24(pcf_out) 0 0 0 + 116: 97(ptr) AccessChain 114(o) 29 29 + Store 116 115 + 117: 6(float) CompositeExtract 24(pcf_out) 1 0 0 + 118: 97(ptr) AccessChain 114(o) 29 74 + Store 118 117 + 119: 6(float) CompositeExtract 24(pcf_out) 2 0 0 + 120: 97(ptr) AccessChain 114(o) 29 82 + Store 120 119 + 122: 97(ptr) AccessChain 114(o) 74 + Store 122 121 + 123:22(hs_pcf_t) Load 114(o) + ReturnValue 123 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.hull.void.tesc.out b/deps/glslang/glslang/Test/baseResults/hlsl.hull.void.tesc.out new file mode 100644 index 0000000000..c44c7e4dd7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.hull.void.tesc.out @@ -0,0 +1,204 @@ +hlsl.hull.void.tesc +Shader version: 500 +vertices = 3 +vertex spacing = fractional_even_spacing +triangle order = ccw +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'InvocationId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? Function Call: PCF( ( temp void) +0:33 Function Definition: PCF( ( temp void) +0:33 Function Parameters: +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) + + +Linked tessellation control stage: + + +Shader version: 500 +vertices = 3 +vertex spacing = fractional_even_spacing +triangle order = ccw +0:? Sequence +0:26 Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Parameters: +0:26 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 cpoint: direct index for structure ( temp 3-component vector of float) +0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) +0:28 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:29 Branch: Return with expression +0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) +0:26 Function Definition: main( ( temp void) +0:26 Function Parameters: +0:? Sequence +0:26 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) +0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) +0:26 Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) +0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? Barrier ( temp void) +0:? Test condition and select ( temp void) +0:? Condition +0:? Compare Equal ( temp bool) +0:? 'InvocationId' ( in uint InvocationID) +0:? Constant: +0:? 0 (const int) +0:? true case +0:? Sequence +0:? Function Call: PCF( ( temp void) +0:33 Function Definition: PCF( ( temp void) +0:33 Function Parameters: +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) +0:? 'InvocationId' ( in uint InvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 55 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 33 37 39 + ExecutionMode 4 OutputVertices 3 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingFractionalEven + ExecutionMode 4 VertexOrderCcw + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUT" + MemberName 8(VS_OUT) 0 "cpoint" + Name 13 "HS_OUT" + MemberName 13(HS_OUT) 0 "cpoint" + Name 16 "@main(struct-VS_OUT-vf31[3];" + Name 15 "ip" + Name 18 "PCF(" + Name 21 "output" + Name 31 "ip" + Name 33 "ip" + Name 37 "@entryPointOutput" + Name 39 "InvocationId" + Name 41 "param" + Decorate 33(ip) Location 0 + Decorate 37(@entryPointOutput) Location 0 + Decorate 39(InvocationId) BuiltIn InvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(VS_OUT): TypeStruct 7(fvec3) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(VS_OUT) 10 + 12: TypePointer Function 11 + 13(HS_OUT): TypeStruct 7(fvec3) + 14: TypeFunction 13(HS_OUT) 12(ptr) + 20: TypePointer Function 13(HS_OUT) + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: TypePointer Function 7(fvec3) + 32: TypePointer Input 11 + 33(ip): 32(ptr) Variable Input + 35: TypeArray 13(HS_OUT) 10 + 36: TypePointer Output 35 +37(@entryPointOutput): 36(ptr) Variable Output + 38: TypePointer Input 9(int) +39(InvocationId): 38(ptr) Variable Input + 44: TypePointer Output 13(HS_OUT) + 46: 9(int) Constant 2 + 47: 9(int) Constant 4 + 48: 9(int) Constant 0 + 50: TypeBool + 4(main): 2 Function None 3 + 5: Label + 31(ip): 12(ptr) Variable Function + 41(param): 12(ptr) Variable Function + 34: 11 Load 33(ip) + Store 31(ip) 34 + 40: 9(int) Load 39(InvocationId) + 42: 11 Load 31(ip) + Store 41(param) 42 + 43: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[3];) 41(param) + 45: 44(ptr) AccessChain 37(@entryPointOutput) 40 + Store 45 43 + ControlBarrier 46 47 48 + 49: 9(int) Load 39(InvocationId) + 51: 50(bool) IEqual 49 23 + SelectionMerge 53 None + BranchConditional 51 52 53 + 52: Label + 54: 2 FunctionCall 18(PCF() + Branch 53 + 53: Label + Return + FunctionEnd +16(@main(struct-VS_OUT-vf31[3];): 13(HS_OUT) Function None 14 + 15(ip): 12(ptr) FunctionParameter + 17: Label + 21(output): 20(ptr) Variable Function + 25: 24(ptr) AccessChain 15(ip) 23 23 + 26: 7(fvec3) Load 25 + 27: 24(ptr) AccessChain 21(output) 23 + Store 27 26 + 28: 13(HS_OUT) Load 21(output) + ReturnValue 28 + FunctionEnd + 18(PCF(): 2 Function None 3 + 19: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out new file mode 100644 index 0000000000..a23451ec19 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.identifier.sample.frag.out @@ -0,0 +1,139 @@ +hlsl.identifier.sample.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; ( temp int) +0:9 Function Parameters: +0:9 'x' ( in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' ( in int) +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'sample' ( temp 4-component vector of float) +0:? Constant: +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:17 Branch: Return with expression +0:17 vector swizzle ( temp 4-component vector of float) +0:17 'sample' ( temp 4-component vector of float) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3 (const int) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; ( temp int) +0:9 Function Parameters: +0:9 'x' ( in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' ( in int) +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'sample' ( temp 4-component vector of float) +0:? Constant: +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:17 Branch: Return with expression +0:17 vector swizzle ( temp 4-component vector of float) +0:17 'sample' ( temp 4-component vector of float) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3 (const int) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 31 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "sample(i1;" + Name 9 "x" + Name 15 "@main(" + Name 21 "sample" + Name 31 "@entryPointOutput" + Decorate 31(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 12: TypeFloat 32 + 13: TypeVector 12(float) 4 + 14: TypeFunction 13(fvec4) + 20: TypePointer Function 13(fvec4) + 22: 12(float) Constant 1077936128 + 23: 12(float) Constant 1082130432 + 24: 12(float) Constant 1084227584 + 25: 12(float) Constant 1086324736 + 26: 13(fvec4) ConstantComposite 22 23 24 25 + 30: TypePointer Output 13(fvec4) +31(@entryPointOutput): 30(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 32: 13(fvec4) FunctionCall 15(@main() + Store 31(@entryPointOutput) 32 + Return + FunctionEnd + 10(sample(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 17: 6(int) Load 9(x) + ReturnValue 17 + FunctionEnd + 15(@main(): 13(fvec4) Function None 14 + 16: Label + 21(sample): 20(ptr) Variable Function + Store 21(sample) 26 + 27: 13(fvec4) Load 21(sample) + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.if.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.if.frag.out new file mode 100644 index 0000000000..056b672e30 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.if.frag.out @@ -0,0 +1,370 @@ +hlsl.if.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Test condition and select ( temp void) +0:3 Condition +0:3 all ( temp bool) +0:3 Equal ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:3 true case +0:4 Branch: Return with expression +0:4 'input' ( in 4-component vector of float) +0:6 Test condition and select ( temp void) +0:6 Condition +0:6 all ( temp bool) +0:6 Equal ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) +0:6 true case +0:7 Branch: Return with expression +0:7 'input' ( in 4-component vector of float) +0:6 false case +0:9 Branch: Return with expression +0:9 Negate value ( temp 4-component vector of float) +0:9 'input' ( in 4-component vector of float) +0:11 Test condition and select ( temp void) +0:11 Condition +0:11 all ( temp bool) +0:11 Equal ( temp 4-component vector of bool) +0:11 'input' ( in 4-component vector of float) +0:11 'input' ( in 4-component vector of float) +0:11 true case is null +0:14 Test condition and select ( temp void) +0:14 Condition +0:14 all ( temp bool) +0:14 Equal ( temp 4-component vector of bool) +0:14 'input' ( in 4-component vector of float) +0:14 'input' ( in 4-component vector of float) +0:14 true case is null +0:19 Test condition and select ( temp void): Flatten +0:19 Condition +0:19 all ( temp bool) +0:19 Equal ( temp 4-component vector of bool) +0:19 'input' ( in 4-component vector of float) +0:19 'input' ( in 4-component vector of float) +0:19 true case +0:? Sequence +0:20 Branch: Return with expression +0:20 'input' ( in 4-component vector of float) +0:23 Test condition and select ( temp void) +0:23 Condition +0:23 all ( temp bool) +0:23 Equal ( temp 4-component vector of bool) +0:23 'input' ( in 4-component vector of float) +0:23 'input' ( in 4-component vector of float) +0:23 true case +0:? Sequence +0:24 Branch: Return with expression +0:24 'input' ( in 4-component vector of float) +0:23 false case +0:? Sequence +0:26 Branch: Return with expression +0:26 Negate value ( temp 4-component vector of float) +0:26 'input' ( in 4-component vector of float) +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Convert float to bool ( temp bool) +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:33 Test condition and select ( temp void) +0:33 Condition +0:33 Compare Equal ( temp bool) +0:33 Convert int to float ( temp float) +0:33 'ii' ( temp int) +0:33 Constant: +0:33 1.000000 +0:33 true case +0:34 Pre-Increment ( temp int) +0:34 'ii' ( temp int) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Test condition and select ( temp void) +0:3 Condition +0:3 all ( temp bool) +0:3 Equal ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:3 true case +0:4 Branch: Return with expression +0:4 'input' ( in 4-component vector of float) +0:6 Test condition and select ( temp void) +0:6 Condition +0:6 all ( temp bool) +0:6 Equal ( temp 4-component vector of bool) +0:6 'input' ( in 4-component vector of float) +0:6 'input' ( in 4-component vector of float) +0:6 true case +0:7 Branch: Return with expression +0:7 'input' ( in 4-component vector of float) +0:6 false case +0:9 Branch: Return with expression +0:9 Negate value ( temp 4-component vector of float) +0:9 'input' ( in 4-component vector of float) +0:11 Test condition and select ( temp void) +0:11 Condition +0:11 all ( temp bool) +0:11 Equal ( temp 4-component vector of bool) +0:11 'input' ( in 4-component vector of float) +0:11 'input' ( in 4-component vector of float) +0:11 true case is null +0:14 Test condition and select ( temp void) +0:14 Condition +0:14 all ( temp bool) +0:14 Equal ( temp 4-component vector of bool) +0:14 'input' ( in 4-component vector of float) +0:14 'input' ( in 4-component vector of float) +0:14 true case is null +0:19 Test condition and select ( temp void): Flatten +0:19 Condition +0:19 all ( temp bool) +0:19 Equal ( temp 4-component vector of bool) +0:19 'input' ( in 4-component vector of float) +0:19 'input' ( in 4-component vector of float) +0:19 true case +0:? Sequence +0:20 Branch: Return with expression +0:20 'input' ( in 4-component vector of float) +0:23 Test condition and select ( temp void) +0:23 Condition +0:23 all ( temp bool) +0:23 Equal ( temp 4-component vector of bool) +0:23 'input' ( in 4-component vector of float) +0:23 'input' ( in 4-component vector of float) +0:23 true case +0:? Sequence +0:24 Branch: Return with expression +0:24 'input' ( in 4-component vector of float) +0:23 false case +0:? Sequence +0:26 Branch: Return with expression +0:26 Negate value ( temp 4-component vector of float) +0:26 'input' ( in 4-component vector of float) +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Convert float to bool ( temp bool) +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:33 Test condition and select ( temp void) +0:33 Condition +0:33 Compare Equal ( temp bool) +0:33 Convert int to float ( temp float) +0:33 'ii' ( temp int) +0:33 Constant: +0:33 1.000000 +0:33 true case +0:34 Pre-Increment ( temp int) +0:34 'ii' ( temp int) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 103 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 96 99 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 68 "ii" + Name 82 "ii" + Name 94 "input" + Name 96 "input" + Name 99 "@entryPointOutput" + Name 100 "param" + Decorate 96(input) Location 0 + Decorate 99(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 15: TypeBool + 16: TypeVector 15(bool) 4 + 67: TypePointer Function 6(float) + 69: TypeInt 32 0 + 70: 69(int) Constant 2 + 73: 6(float) Constant 0 + 78: 6(float) Constant 1065353216 + 80: TypeInt 32 1 + 81: TypePointer Function 80(int) + 84: 80(int) Constant 1 + 95: TypePointer Input 7(fvec4) + 96(input): 95(ptr) Variable Input + 98: TypePointer Output 7(fvec4) +99(@entryPointOutput): 98(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 94(input): 8(ptr) Variable Function + 100(param): 8(ptr) Variable Function + 97: 7(fvec4) Load 96(input) + Store 94(input) 97 + 101: 7(fvec4) Load 94(input) + Store 100(param) 101 + 102: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 100(param) + Store 99(@entryPointOutput) 102 + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 68(ii): 67(ptr) Variable Function + 82(ii): 81(ptr) Variable Function + 13: 7(fvec4) Load 10(input) + 14: 7(fvec4) Load 10(input) + 17: 16(bvec4) FOrdEqual 13 14 + 18: 15(bool) All 17 + SelectionMerge 20 None + BranchConditional 18 19 20 + 19: Label + 21: 7(fvec4) Load 10(input) + ReturnValue 21 + 20: Label + 23: 7(fvec4) Load 10(input) + 24: 7(fvec4) Load 10(input) + 25: 16(bvec4) FOrdEqual 23 24 + 26: 15(bool) All 25 + SelectionMerge 28 None + BranchConditional 26 27 31 + 27: Label + 29: 7(fvec4) Load 10(input) + ReturnValue 29 + 31: Label + 32: 7(fvec4) Load 10(input) + 33: 7(fvec4) FNegate 32 + ReturnValue 33 + 28: Label + 35: 7(fvec4) Load 10(input) + 36: 7(fvec4) Load 10(input) + 37: 16(bvec4) FOrdEqual 35 36 + 38: 15(bool) All 37 + SelectionMerge 40 None + BranchConditional 38 39 40 + 39: Label + Branch 40 + 40: Label + 41: 7(fvec4) Load 10(input) + 42: 7(fvec4) Load 10(input) + 43: 16(bvec4) FOrdEqual 41 42 + 44: 15(bool) All 43 + SelectionMerge 46 None + BranchConditional 44 45 46 + 45: Label + Branch 46 + 46: Label + 47: 7(fvec4) Load 10(input) + 48: 7(fvec4) Load 10(input) + 49: 16(bvec4) FOrdEqual 47 48 + 50: 15(bool) All 49 + SelectionMerge 52 Flatten + BranchConditional 50 51 52 + 51: Label + 53: 7(fvec4) Load 10(input) + ReturnValue 53 + 52: Label + 55: 7(fvec4) Load 10(input) + 56: 7(fvec4) Load 10(input) + 57: 16(bvec4) FOrdEqual 55 56 + 58: 15(bool) All 57 + SelectionMerge 60 None + BranchConditional 58 59 63 + 59: Label + 61: 7(fvec4) Load 10(input) + ReturnValue 61 + 63: Label + 64: 7(fvec4) Load 10(input) + 65: 7(fvec4) FNegate 64 + ReturnValue 65 + 60: Label + 71: 67(ptr) AccessChain 10(input) 70 + 72: 6(float) Load 71 + Store 68(ii) 72 + 74: 15(bool) FOrdNotEqual 72 73 + SelectionMerge 76 None + BranchConditional 74 75 76 + 75: Label + 77: 6(float) Load 68(ii) + 79: 6(float) FAdd 77 78 + Store 68(ii) 79 + Branch 76 + 76: Label + 83: 80(int) Load 82(ii) + 85: 80(int) IAdd 83 84 + Store 82(ii) 85 + 86: 80(int) Load 82(ii) + 87: 6(float) ConvertSToF 86 + 88: 15(bool) FOrdEqual 87 78 + SelectionMerge 90 None + BranchConditional 88 89 90 + 89: Label + 91: 80(int) Load 82(ii) + 92: 80(int) IAdd 91 84 + Store 82(ii) 92 + Branch 90 + 90: Label + 93: 7(fvec4) Undef + ReturnValue 93 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out new file mode 100644 index 0000000000..721aeead00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out @@ -0,0 +1,142 @@ +hlsl.imagefetch-subvec4.comp +Shader version: 500 +local_size = (8, 8, 8) +0:? Sequence +0:6 Function Definition: @main(vu3; ( temp void) +0:6 Function Parameters: +0:6 'tid' ( in 3-component vector of uint) +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'storeTemp' ( temp uint) +0:7 Convert int to uint ( temp uint) +0:7 textureFetch ( temp int) +0:7 'IN' (layout( binding=0) uniform itexture3D) +0:7 'tid' ( in 3-component vector of uint) +0:7 Constant: +0:7 0 (const int) +0:7 imageStore ( temp void) +0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) +0:7 'tid' ( in 3-component vector of uint) +0:7 'storeTemp' ( temp uint) +0:7 'storeTemp' ( temp uint) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:6 Function Call: @main(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'IN' (layout( binding=0) uniform itexture3D) +0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (8, 8, 8) +0:? Sequence +0:6 Function Definition: @main(vu3; ( temp void) +0:6 Function Parameters: +0:6 'tid' ( in 3-component vector of uint) +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'storeTemp' ( temp uint) +0:7 Convert int to uint ( temp uint) +0:7 textureFetch ( temp int) +0:7 'IN' (layout( binding=0) uniform itexture3D) +0:7 'tid' ( in 3-component vector of uint) +0:7 Constant: +0:7 0 (const int) +0:7 imageStore ( temp void) +0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) +0:7 'tid' ( in 3-component vector of uint) +0:7 'storeTemp' ( temp uint) +0:7 'storeTemp' ( temp uint) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:6 Function Call: @main(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'IN' (layout( binding=0) uniform itexture3D) +0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 34 + ExecutionMode 4 LocalSize 8 8 8 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vu3;" + Name 10 "tid" + Name 14 "storeTemp" + Name 18 "IN" + Name 28 "OUT" + Name 32 "tid" + Name 34 "tid" + Name 36 "param" + Decorate 18(IN) DescriptorSet 0 + Decorate 18(IN) Binding 0 + Decorate 28(OUT) DescriptorSet 0 + Decorate 28(OUT) Binding 1 + Decorate 34(tid) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypePointer Function 6(int) + 15: TypeInt 32 1 + 16: TypeImage 15(int) 3D sampled format:Unknown + 17: TypePointer UniformConstant 16 + 18(IN): 17(ptr) Variable UniformConstant + 21: 15(int) Constant 0 + 22: TypeVector 15(int) 4 + 26: TypeImage 6(int) 3D nonsampled format:R32ui + 27: TypePointer UniformConstant 26 + 28(OUT): 27(ptr) Variable UniformConstant + 33: TypePointer Input 7(ivec3) + 34(tid): 33(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 32(tid): 8(ptr) Variable Function + 36(param): 8(ptr) Variable Function + 35: 7(ivec3) Load 34(tid) + Store 32(tid) 35 + 37: 7(ivec3) Load 32(tid) + Store 36(param) 37 + 38: 2 FunctionCall 11(@main(vu3;) 36(param) + Return + FunctionEnd + 11(@main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + 14(storeTemp): 13(ptr) Variable Function + 19: 16 Load 18(IN) + 20: 7(ivec3) Load 10(tid) + 23: 22(ivec4) ImageFetch 19 20 Lod 21 + 24: 15(int) CompositeExtract 23 0 + 25: 6(int) Bitcast 24 + Store 14(storeTemp) 25 + 29: 26 Load 28(OUT) + 30: 7(ivec3) Load 10(tid) + 31: 6(int) Load 14(storeTemp) + ImageWrite 29 30 31 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.implicitBool.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.implicitBool.frag.out new file mode 100644 index 0000000000..72894f23e1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.implicitBool.frag.out @@ -0,0 +1,538 @@ +hlsl.implicitBool.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'a' ( temp 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Convert int to bool ( temp bool) +0:9 condi: direct index for structure ( uniform int) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:9 Constant: +0:9 1 (const uint) +0:9 true case +0:10 Branch: Return with expression +0:10 add ( temp 4-component vector of float) +0:10 'a' ( temp 4-component vector of float) +0:10 Constant: +0:10 1.000000 +0:11 Test condition and select ( temp void) +0:11 Condition +0:11 Convert float to bool ( temp bool) +0:11 condf: direct index for structure ( uniform float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:11 Constant: +0:11 0 (const uint) +0:11 true case +0:12 Branch: Return with expression +0:12 add ( temp 4-component vector of float) +0:12 'a' ( temp 4-component vector of float) +0:12 Constant: +0:12 2.000000 +0:13 Test condition and select ( temp void) +0:13 Condition +0:13 Convert float to bool ( temp bool) +0:13 condf1: direct index for structure ( uniform 1-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case +0:14 Branch: Return with expression +0:14 add ( temp 4-component vector of float) +0:14 'a' ( temp 4-component vector of float) +0:14 Constant: +0:14 3.000000 +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Convert int to bool ( temp bool) +0:15 condi1: direct index for structure ( uniform 1-component vector of int) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:15 Constant: +0:15 3 (const uint) +0:15 true case +0:16 Branch: Return with expression +0:16 add ( temp 4-component vector of float) +0:16 'a' ( temp 4-component vector of float) +0:16 Constant: +0:16 4.000000 +0:17 Test condition and select ( temp void) +0:17 Condition +0:17 logical-or ( temp bool) +0:17 logical-and ( temp bool) +0:17 Convert int to bool ( temp bool) +0:17 condi: direct index for structure ( uniform int) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:17 Constant: +0:17 1 (const uint) +0:17 Convert float to bool ( temp bool) +0:17 condf: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:17 Constant: +0:17 0 (const uint) +0:17 Convert float to bool ( temp bool) +0:17 condf1: direct index for structure ( uniform 1-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:17 Constant: +0:17 2 (const uint) +0:17 true case +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of float) +0:18 'a' ( temp 4-component vector of float) +0:18 Constant: +0:18 5.000000 +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'f' ( temp float) +0:20 condf: direct index for structure ( uniform float) +0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:20 Constant: +0:20 0 (const uint) +0:21 Loop with condition tested first +0:21 Loop Condition +0:21 Convert float to bool ( temp bool) +0:21 'f' ( temp float) +0:21 Loop Body +0:? Sequence +0:21 Pre-Decrement ( temp float) +0:21 'f' ( temp float) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'i' ( temp int) +0:23 condi: direct index for structure ( uniform int) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:23 Constant: +0:23 1 (const uint) +0:24 Loop with condition not tested first +0:24 Loop Condition +0:24 Convert int to bool ( temp bool) +0:24 'i' ( temp int) +0:24 Loop Body +0:? Sequence +0:24 Pre-Decrement ( temp int) +0:24 'i' ( temp int) +0:? Sequence +0:26 Loop with condition tested first +0:26 Loop Condition +0:26 Convert int to bool ( temp bool) +0:26 'i' ( temp int) +0:26 Loop Body +0:? Sequence +0:26 Pre-Decrement ( temp int) +0:26 'i' ( temp int) +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'g' ( temp float) +0:28 Test condition and select ( temp float): no shortcircuit +0:28 Condition +0:28 Convert float to bool ( temp bool) +0:28 condf: direct index for structure ( uniform float) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:28 Constant: +0:28 0 (const uint) +0:28 true case +0:28 Constant: +0:28 7.000000 +0:28 false case +0:28 Constant: +0:28 8.000000 +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'a' ( temp 4-component vector of float) +0:29 'g' ( temp float) +0:31 Branch: Return with expression +0:31 subtract ( temp 4-component vector of float) +0:31 'a' ( temp 4-component vector of float) +0:31 Constant: +0:31 1.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'a' ( temp 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Convert int to bool ( temp bool) +0:9 condi: direct index for structure ( uniform int) +0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:9 Constant: +0:9 1 (const uint) +0:9 true case +0:10 Branch: Return with expression +0:10 add ( temp 4-component vector of float) +0:10 'a' ( temp 4-component vector of float) +0:10 Constant: +0:10 1.000000 +0:11 Test condition and select ( temp void) +0:11 Condition +0:11 Convert float to bool ( temp bool) +0:11 condf: direct index for structure ( uniform float) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:11 Constant: +0:11 0 (const uint) +0:11 true case +0:12 Branch: Return with expression +0:12 add ( temp 4-component vector of float) +0:12 'a' ( temp 4-component vector of float) +0:12 Constant: +0:12 2.000000 +0:13 Test condition and select ( temp void) +0:13 Condition +0:13 Convert float to bool ( temp bool) +0:13 condf1: direct index for structure ( uniform 1-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case +0:14 Branch: Return with expression +0:14 add ( temp 4-component vector of float) +0:14 'a' ( temp 4-component vector of float) +0:14 Constant: +0:14 3.000000 +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Convert int to bool ( temp bool) +0:15 condi1: direct index for structure ( uniform 1-component vector of int) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:15 Constant: +0:15 3 (const uint) +0:15 true case +0:16 Branch: Return with expression +0:16 add ( temp 4-component vector of float) +0:16 'a' ( temp 4-component vector of float) +0:16 Constant: +0:16 4.000000 +0:17 Test condition and select ( temp void) +0:17 Condition +0:17 logical-or ( temp bool) +0:17 logical-and ( temp bool) +0:17 Convert int to bool ( temp bool) +0:17 condi: direct index for structure ( uniform int) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:17 Constant: +0:17 1 (const uint) +0:17 Convert float to bool ( temp bool) +0:17 condf: direct index for structure ( uniform float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:17 Constant: +0:17 0 (const uint) +0:17 Convert float to bool ( temp bool) +0:17 condf1: direct index for structure ( uniform 1-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:17 Constant: +0:17 2 (const uint) +0:17 true case +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of float) +0:18 'a' ( temp 4-component vector of float) +0:18 Constant: +0:18 5.000000 +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'f' ( temp float) +0:20 condf: direct index for structure ( uniform float) +0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:20 Constant: +0:20 0 (const uint) +0:21 Loop with condition tested first +0:21 Loop Condition +0:21 Convert float to bool ( temp bool) +0:21 'f' ( temp float) +0:21 Loop Body +0:? Sequence +0:21 Pre-Decrement ( temp float) +0:21 'f' ( temp float) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'i' ( temp int) +0:23 condi: direct index for structure ( uniform int) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:23 Constant: +0:23 1 (const uint) +0:24 Loop with condition not tested first +0:24 Loop Condition +0:24 Convert int to bool ( temp bool) +0:24 'i' ( temp int) +0:24 Loop Body +0:? Sequence +0:24 Pre-Decrement ( temp int) +0:24 'i' ( temp int) +0:? Sequence +0:26 Loop with condition tested first +0:26 Loop Condition +0:26 Convert int to bool ( temp bool) +0:26 'i' ( temp int) +0:26 Loop Body +0:? Sequence +0:26 Pre-Decrement ( temp int) +0:26 'i' ( temp int) +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'g' ( temp float) +0:28 Test condition and select ( temp float): no shortcircuit +0:28 Condition +0:28 Convert float to bool ( temp bool) +0:28 condf: direct index for structure ( uniform float) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:28 Constant: +0:28 0 (const uint) +0:28 true case +0:28 Constant: +0:28 7.000000 +0:28 false case +0:28 Constant: +0:28 8.000000 +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'a' ( temp 4-component vector of float) +0:29 'g' ( temp float) +0:31 Branch: Return with expression +0:31 subtract ( temp 4-component vector of float) +0:31 'a' ( temp 4-component vector of float) +0:31 Constant: +0:31 1.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 139 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "a" + Name 16 "$Global" + MemberName 16($Global) 0 "condf" + MemberName 16($Global) 1 "condi" + MemberName 16($Global) 2 "condf1" + MemberName 16($Global) 3 "condi1" + Name 18 "" + Name 87 "f" + Name 100 "i" + Name 120 "g" + Name 137 "@entryPointOutput" + MemberDecorate 16($Global) 0 Offset 0 + MemberDecorate 16($Global) 1 Offset 4 + MemberDecorate 16($Global) 2 Offset 8 + MemberDecorate 16($Global) 3 Offset 12 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + Decorate 137(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 7(fvec4) + 13: 6(float) Constant 1073741824 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 15: TypeInt 32 1 + 16($Global): TypeStruct 6(float) 15(int) 6(float) 15(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: 15(int) Constant 1 + 20: TypePointer Uniform 15(int) + 23: TypeBool + 24: TypeInt 32 0 + 25: 24(int) Constant 0 + 30: 6(float) Constant 1065353216 + 34: 15(int) Constant 0 + 35: TypePointer Uniform 6(float) + 38: 6(float) Constant 0 + 46: 15(int) Constant 2 + 53: 6(float) Constant 1077936128 + 57: 15(int) Constant 3 + 64: 6(float) Constant 1082130432 + 82: 6(float) Constant 1084227584 + 86: TypePointer Function 6(float) + 99: TypePointer Function 15(int) + 124: 6(float) Constant 1088421888 + 125: 6(float) Constant 1090519040 + 136: TypePointer Output 7(fvec4) +137(@entryPointOutput): 136(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(@main() + Store 137(@entryPointOutput) 138 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(a): 11(ptr) Variable Function + 87(f): 86(ptr) Variable Function + 100(i): 99(ptr) Variable Function + 120(g): 86(ptr) Variable Function + Store 12(a) 14 + 21: 20(ptr) AccessChain 18 19 + 22: 15(int) Load 21 + 26: 23(bool) INotEqual 22 25 + SelectionMerge 28 None + BranchConditional 26 27 28 + 27: Label + 29: 7(fvec4) Load 12(a) + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 32: 7(fvec4) FAdd 29 31 + ReturnValue 32 + 28: Label + 36: 35(ptr) AccessChain 18 34 + 37: 6(float) Load 36 + 39: 23(bool) FOrdNotEqual 37 38 + SelectionMerge 41 None + BranchConditional 39 40 41 + 40: Label + 42: 7(fvec4) Load 12(a) + 43: 7(fvec4) CompositeConstruct 13 13 13 13 + 44: 7(fvec4) FAdd 42 43 + ReturnValue 44 + 41: Label + 47: 35(ptr) AccessChain 18 46 + 48: 6(float) Load 47 + 49: 23(bool) FOrdNotEqual 48 38 + SelectionMerge 51 None + BranchConditional 49 50 51 + 50: Label + 52: 7(fvec4) Load 12(a) + 54: 7(fvec4) CompositeConstruct 53 53 53 53 + 55: 7(fvec4) FAdd 52 54 + ReturnValue 55 + 51: Label + 58: 20(ptr) AccessChain 18 57 + 59: 15(int) Load 58 + 60: 23(bool) INotEqual 59 25 + SelectionMerge 62 None + BranchConditional 60 61 62 + 61: Label + 63: 7(fvec4) Load 12(a) + 65: 7(fvec4) CompositeConstruct 64 64 64 64 + 66: 7(fvec4) FAdd 63 65 + ReturnValue 66 + 62: Label + 68: 20(ptr) AccessChain 18 19 + 69: 15(int) Load 68 + 70: 23(bool) INotEqual 69 25 + 71: 35(ptr) AccessChain 18 34 + 72: 6(float) Load 71 + 73: 23(bool) FOrdNotEqual 72 38 + 74: 23(bool) LogicalAnd 70 73 + 75: 35(ptr) AccessChain 18 46 + 76: 6(float) Load 75 + 77: 23(bool) FOrdNotEqual 76 38 + 78: 23(bool) LogicalOr 74 77 + SelectionMerge 80 None + BranchConditional 78 79 80 + 79: Label + 81: 7(fvec4) Load 12(a) + 83: 7(fvec4) CompositeConstruct 82 82 82 82 + 84: 7(fvec4) FAdd 81 83 + ReturnValue 84 + 80: Label + 88: 35(ptr) AccessChain 18 34 + 89: 6(float) Load 88 + Store 87(f) 89 + Branch 90 + 90: Label + LoopMerge 92 93 None + Branch 94 + 94: Label + 95: 6(float) Load 87(f) + 96: 23(bool) FOrdNotEqual 95 38 + BranchConditional 96 91 92 + 91: Label + 97: 6(float) Load 87(f) + 98: 6(float) FSub 97 30 + Store 87(f) 98 + Branch 93 + 93: Label + Branch 90 + 92: Label + 101: 20(ptr) AccessChain 18 19 + 102: 15(int) Load 101 + Store 100(i) 102 + Branch 103 + 103: Label + LoopMerge 105 106 None + Branch 104 + 104: Label + 107: 15(int) Load 100(i) + 108: 15(int) ISub 107 19 + Store 100(i) 108 + Branch 106 + 106: Label + 109: 15(int) Load 100(i) + 110: 23(bool) INotEqual 109 25 + BranchConditional 110 103 105 + 105: Label + Branch 111 + 111: Label + LoopMerge 113 114 None + Branch 115 + 115: Label + 116: 15(int) Load 100(i) + 117: 23(bool) INotEqual 116 25 + BranchConditional 117 112 113 + 112: Label + 118: 15(int) Load 100(i) + 119: 15(int) ISub 118 19 + Store 100(i) 119 + Branch 114 + 114: Label + Branch 111 + 113: Label + 121: 35(ptr) AccessChain 18 34 + 122: 6(float) Load 121 + 123: 23(bool) FOrdNotEqual 122 38 + 126: 6(float) Select 123 124 125 + Store 120(g) 126 + 127: 6(float) Load 120(g) + 128: 7(fvec4) Load 12(a) + 129: 7(fvec4) CompositeConstruct 127 127 127 127 + 130: 7(fvec4) FAdd 128 129 + Store 12(a) 130 + 131: 7(fvec4) Load 12(a) + 132: 7(fvec4) CompositeConstruct 30 30 30 30 + 133: 7(fvec4) FSub 131 132 + ReturnValue 133 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.include.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.include.vert.out new file mode 100644 index 0000000000..020879d15f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.include.vert.out @@ -0,0 +1,75 @@ +../Test/hlsl.include.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 42 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 11 "$Global" + MemberName 11($Global) 0 "i1" + MemberName 11($Global) 1 "i2" + MemberName 11($Global) 2 "i4" + MemberName 11($Global) 3 "i3" + MemberName 11($Global) 4 "i6" + MemberName 11($Global) 5 "i5" + Name 13 "" + Name 42 "@entryPointOutput" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + MemberDecorate 11($Global) 2 Offset 32 + MemberDecorate 11($Global) 3 Offset 48 + MemberDecorate 11($Global) 4 Offset 64 + MemberDecorate 11($Global) 5 Offset 80 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 42(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Uniform 7(fvec4) + 19: 14(int) Constant 1 + 23: 14(int) Constant 3 + 27: 14(int) Constant 2 + 31: 14(int) Constant 5 + 35: 14(int) Constant 4 + 41: TypePointer Output 7(fvec4) +42(@entryPointOutput): 41(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 43: 7(fvec4) FunctionCall 9(@main() + Store 42(@entryPointOutput) 43 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 17: 16(ptr) AccessChain 13 15 + 18: 7(fvec4) Load 17 + 20: 16(ptr) AccessChain 13 19 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 18 21 + 24: 16(ptr) AccessChain 13 23 + 25: 7(fvec4) Load 24 + 26: 7(fvec4) FAdd 22 25 + 28: 16(ptr) AccessChain 13 27 + 29: 7(fvec4) Load 28 + 30: 7(fvec4) FAdd 26 29 + 32: 16(ptr) AccessChain 13 31 + 33: 7(fvec4) Load 32 + 34: 7(fvec4) FAdd 30 33 + 36: 16(ptr) AccessChain 13 35 + 37: 7(fvec4) Load 36 + 38: 7(fvec4) FAdd 34 37 + ReturnValue 38 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.includeNegative.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.includeNegative.vert.out new file mode 100644 index 0000000000..5faa383fec --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.includeNegative.vert.out @@ -0,0 +1,10 @@ +hlsl.includeNegative.vert +ERROR: ./foo.h:1: '#error' : should not be included +ERROR: ./inc2/../foo.h:1: '#error' : should not be included +ERROR: ./parentBad:3: '#error' : bad parent +ERROR: hlsl.includeNegative.vert:7: '#error' : in main +hlsl.includeNegative.vert(8): error at column 0, HLSL parsing failed. +ERROR: 5 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.inf.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.inf.vert.out new file mode 100644 index 0000000000..1cedc55f51 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.inf.vert.out @@ -0,0 +1,172 @@ +hlsl.inf.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp float) +0:3 'f1' ( temp float) +0:3 Constant: +0:3 -1.#INF +0:4 Sequence +0:4 move second child to first child ( temp float) +0:4 'f2' ( temp float) +0:4 Constant: +0:4 +1.#INF +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'f3' ( temp float) +0:5 Constant: +0:5 +1.#INF +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'f4' ( temp float) +0:6 add ( temp float) +0:6 component-wise multiply ( temp float) +0:6 'f2' ( temp float) +0:6 Constant: +0:6 +1.#INF +0:6 Constant: +0:6 +1.#INF +0:10 Branch: Return with expression +0:10 Construct vec4 ( temp 4-component vector of float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 'f1' ( temp float) +0:10 'f2' ( temp float) +0:10 'f3' ( temp float) +0:10 'f4' ( temp float) +0:10 Constant: +0:10 -1.#INF +0:10 Constant: +0:10 1.#IND +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp float) +0:3 'f1' ( temp float) +0:3 Constant: +0:3 -1.#INF +0:4 Sequence +0:4 move second child to first child ( temp float) +0:4 'f2' ( temp float) +0:4 Constant: +0:4 +1.#INF +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'f3' ( temp float) +0:5 Constant: +0:5 +1.#INF +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'f4' ( temp float) +0:6 add ( temp float) +0:6 component-wise multiply ( temp float) +0:6 'f2' ( temp float) +0:6 Constant: +0:6 +1.#INF +0:6 Constant: +0:6 +1.#INF +0:10 Branch: Return with expression +0:10 Construct vec4 ( temp 4-component vector of float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 add ( temp float) +0:10 'f1' ( temp float) +0:10 'f2' ( temp float) +0:10 'f3' ( temp float) +0:10 'f4' ( temp float) +0:10 Constant: +0:10 -1.#INF +0:10 Constant: +0:10 1.#IND +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 37 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 35 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "f1" + Name 14 "f2" + Name 16 "f3" + Name 17 "f4" + Name 35 "@entryPointOutput" + Decorate 35(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 6(float) + 13: 6(float) Constant 4286578688 + 15: 6(float) Constant 2139095040 + 29: 6(float) Constant 4290772992 + 34: TypePointer Output 7(fvec4) +35(@entryPointOutput): 34(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 36: 7(fvec4) FunctionCall 9(@main() + Store 35(@entryPointOutput) 36 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(f1): 11(ptr) Variable Function + 14(f2): 11(ptr) Variable Function + 16(f3): 11(ptr) Variable Function + 17(f4): 11(ptr) Variable Function + Store 12(f1) 13 + Store 14(f2) 15 + Store 16(f3) 15 + 18: 6(float) Load 14(f2) + 19: 6(float) FMul 18 15 + 20: 6(float) FAdd 19 15 + Store 17(f4) 20 + 21: 6(float) Load 12(f1) + 22: 6(float) Load 14(f2) + 23: 6(float) FAdd 21 22 + 24: 6(float) Load 16(f3) + 25: 6(float) FAdd 23 24 + 26: 6(float) Load 17(f4) + 27: 6(float) FAdd 25 26 + 28: 6(float) FAdd 27 13 + 30: 6(float) FAdd 28 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + ReturnValue 31 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out new file mode 100644 index 0000000000..9fc816ce29 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.init.frag.out @@ -0,0 +1,530 @@ +hlsl.init.frag +WARNING: 0:40: 'typedef' : struct-member initializers ignored +WARNING: 0:40: 'typedef' : struct-member initializers ignored + +Shader version: 500 +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:9 Sequence +0:9 move second child to first child ( temp structure{ temp int f}) +0:9 'single1' ( global structure{ temp int f}) +0:9 Constant: +0:9 10 (const int) +0:12 Sequence +0:12 move second child to first child ( temp structure{ temp 2-component vector of uint v}) +0:12 'single2' ( global structure{ temp 2-component vector of uint v}) +0:12 Constant: +0:12 1 (const uint) +0:12 2 (const uint) +0:15 Sequence +0:15 move second child to first child ( temp structure{ temp structure{ temp int f} s1}) +0:15 'single3' ( global structure{ temp structure{ temp int f} s1}) +0:15 Constant: +0:15 3 (const int) +0:18 Sequence +0:18 move second child to first child ( temp structure{ temp structure{ temp 2-component vector of uint v} s1}) +0:18 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) +0:18 Constant: +0:18 4 (const uint) +0:18 5 (const uint) +0:21 Function Definition: @ShaderFunction(vf4; ( temp 4-component vector of float) +0:21 Function Parameters: +0:21 'input' ( in 4-component vector of float) +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'a2' ( temp 4-component vector of float) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Sequence +0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 's2i' ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 Construct structure ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 Constant: +0:32 9 (const int) +0:32 'a5' ( global float) +0:32 Construct structure ( temp structure{ temp float f, temp int i}) +0:32 Comma ( temp float) +0:32 'a3' ( global float) +0:32 'a4' ( global float) +0:32 Constant: +0:32 12 (const int) +0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 '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:32 Constant: +0:32 9 (const int) +0:32 'a5' ( global float) +0:? Construct structure ( temp structure{ temp float f, temp int i}) +0:32 Comma ( temp float) +0:32 'a3' ( global float) +0:32 'a4' ( global float) +0:32 Constant: +0:32 12 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'a8' ( temp float) +0:33 Comma ( temp float) +0:33 'a2' ( temp 4-component vector of float) +0:33 'b2' ( global float) +0:33 move second child to first child ( temp float) +0:33 'a9' ( temp float) +0:33 'a5' ( global float) +0:35 Branch: Return with expression +0:35 component-wise multiply ( temp 4-component vector of float) +0:35 'input' ( in 4-component vector of float) +0:35 'a1' ( global 4-component vector of float) +0:21 Function Definition: ShaderFunction( ( temp void) +0:21 Function Parameters: +0:? Sequence +0:21 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:21 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:21 Function Call: @ShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 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) +0:? 'single1' ( global structure{ temp int f}) +0:? 'single2' ( global structure{ temp 2-component vector of uint v}) +0:? 'single3' ( global structure{ temp structure{ temp int f} s1}) +0:? 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c}) + + +Linked fragment stage: + + +Shader version: 500 +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:9 Sequence +0:9 move second child to first child ( temp structure{ temp int f}) +0:9 'single1' ( global structure{ temp int f}) +0:9 Constant: +0:9 10 (const int) +0:12 Sequence +0:12 move second child to first child ( temp structure{ temp 2-component vector of uint v}) +0:12 'single2' ( global structure{ temp 2-component vector of uint v}) +0:12 Constant: +0:12 1 (const uint) +0:12 2 (const uint) +0:15 Sequence +0:15 move second child to first child ( temp structure{ temp structure{ temp int f} s1}) +0:15 'single3' ( global structure{ temp structure{ temp int f} s1}) +0:15 Constant: +0:15 3 (const int) +0:18 Sequence +0:18 move second child to first child ( temp structure{ temp structure{ temp 2-component vector of uint v} s1}) +0:18 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) +0:18 Constant: +0:18 4 (const uint) +0:18 5 (const uint) +0:21 Function Definition: @ShaderFunction(vf4; ( temp 4-component vector of float) +0:21 Function Parameters: +0:21 'input' ( in 4-component vector of float) +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'a2' ( temp 4-component vector of float) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Sequence +0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 's2i' ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 Construct structure ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 Constant: +0:32 9 (const int) +0:32 'a5' ( global float) +0:32 Construct structure ( temp structure{ temp float f, temp int i}) +0:32 Comma ( temp float) +0:32 'a3' ( global float) +0:32 'a4' ( global float) +0:32 Constant: +0:32 12 (const int) +0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) +0:32 '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:32 Constant: +0:32 9 (const int) +0:32 'a5' ( global float) +0:? Construct structure ( temp structure{ temp float f, temp int i}) +0:32 Comma ( temp float) +0:32 'a3' ( global float) +0:32 'a4' ( global float) +0:32 Constant: +0:32 12 (const int) +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'a8' ( temp float) +0:33 Comma ( temp float) +0:33 'a2' ( temp 4-component vector of float) +0:33 'b2' ( global float) +0:33 move second child to first child ( temp float) +0:33 'a9' ( temp float) +0:33 'a5' ( global float) +0:35 Branch: Return with expression +0:35 component-wise multiply ( temp 4-component vector of float) +0:35 'input' ( in 4-component vector of float) +0:35 'a1' ( global 4-component vector of float) +0:21 Function Definition: ShaderFunction( ( temp void) +0:21 Function Parameters: +0:? Sequence +0:21 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:21 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:21 Function Call: @ShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 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) +0:? 'single1' ( global structure{ temp int f}) +0:? 'single2' ( global structure{ temp 2-component vector of uint v}) +0:? 'single3' ( global structure{ temp structure{ temp int f} s1}) +0:? 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 110 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "ShaderFunction" 98 101 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "ShaderFunction" + Name 11 "@ShaderFunction(vf4;" + Name 10 "input" + Name 14 "a1" + Name 19 "b1" + Name 25 "a1i" + Name 26 "b1i" + Name 28 "a2" + Name 30 "b3" + Name 32 "b4" + Name 34 "a5" + Name 35 "c5" + Name 38 "Single1" + MemberName 38(Single1) 0 "f" + Name 40 "single1" + Name 45 "Single2" + MemberName 45(Single2) 0 "v" + Name 47 "single2" + Name 52 "Single3" + MemberName 52(Single3) 0 "s1" + Name 54 "single3" + Name 58 "Single4" + MemberName 58(Single4) 0 "s1" + Name 60 "single4" + Name 66 "a2" + Name 68 "S1" + MemberName 68(S1) 0 "f" + MemberName 68(S1) 1 "i" + Name 69 "S2" + MemberName 69(S2) 0 "j" + MemberName 69(S2) 1 "g" + MemberName 69(S2) 2 "s1" + Name 71 "s2i" + Name 74 "a3" + Name 75 "a4" + Name 80 "s2" + Name 86 "a8" + Name 87 "b2" + Name 89 "a9" + Name 96 "input" + Name 98 "input" + Name 101 "@entryPointOutput" + Name 102 "param" + Name 105 "c4" + Name 106 "b5" + Name 107 "Constants" + MemberName 107(Constants) 0 "a" + MemberName 107(Constants) 1 "b" + MemberName 107(Constants) 2 "c" + Name 109 "" + Decorate 98(input) Location 0 + Decorate 101(@entryPointOutput) Location 0 + MemberDecorate 107(Constants) 0 Offset 0 + MemberDecorate 107(Constants) 1 Offset 4 + MemberDecorate 107(Constants) 2 Offset 8 + Decorate 107(Constants) Block + Decorate 109 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypePointer Private 7(fvec4) + 14(a1): 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 + 19(b1): 13(ptr) Variable Private + 20: 6(float) Constant 1073741824 + 21: 6(float) Constant 1075838976 + 22: 6(float) Constant 1074161254 + 23: 6(float) Constant 1074580685 + 24: 7(fvec4) ConstantComposite 20 21 22 23 + 25(a1i): 13(ptr) Variable Private + 26(b1i): 13(ptr) Variable Private + 27: TypePointer Private 6(float) + 28(a2): 27(ptr) Variable Private + 29: 6(float) Constant 1045220557 + 30(b3): 27(ptr) Variable Private + 31: 6(float) Constant 1050253722 + 32(b4): 27(ptr) Variable Private + 33: 6(float) Constant 1053609165 + 34(a5): 27(ptr) Variable Private + 35(c5): 27(ptr) Variable Private + 36: 6(float) Constant 1069547520 + 37: TypeInt 32 1 + 38(Single1): TypeStruct 37(int) + 39: TypePointer Private 38(Single1) + 40(single1): 39(ptr) Variable Private + 41: 37(int) Constant 10 + 42: 38(Single1) ConstantComposite 41 + 43: TypeInt 32 0 + 44: TypeVector 43(int) 2 + 45(Single2): TypeStruct 44(ivec2) + 46: TypePointer Private 45(Single2) + 47(single2): 46(ptr) Variable Private + 48: 43(int) Constant 1 + 49: 43(int) Constant 2 + 50: 44(ivec2) ConstantComposite 48 49 + 51: 45(Single2) ConstantComposite 50 + 52(Single3): TypeStruct 38(Single1) + 53: TypePointer Private 52(Single3) + 54(single3): 53(ptr) Variable Private + 55: 37(int) Constant 3 + 56: 38(Single1) ConstantComposite 55 + 57: 52(Single3) ConstantComposite 56 + 58(Single4): TypeStruct 45(Single2) + 59: TypePointer Private 58(Single4) + 60(single4): 59(ptr) Variable Private + 61: 43(int) Constant 4 + 62: 43(int) Constant 5 + 63: 44(ivec2) ConstantComposite 61 62 + 64: 45(Single2) ConstantComposite 63 + 65: 58(Single4) ConstantComposite 64 + 67: 7(fvec4) ConstantComposite 29 31 33 16 + 68(S1): TypeStruct 6(float) 37(int) + 69(S2): TypeStruct 37(int) 6(float) 68(S1) + 70: TypePointer Function 69(S2) + 72: 37(int) Constant 9 + 74(a3): 27(ptr) Variable Private + 75(a4): 27(ptr) Variable Private + 77: 37(int) Constant 12 + 85: TypePointer Function 6(float) + 87(b2): 27(ptr) Variable Private + 97: TypePointer Input 7(fvec4) + 98(input): 97(ptr) Variable Input + 100: TypePointer Output 7(fvec4) +101(@entryPointOutput): 100(ptr) Variable Output + 105(c4): 27(ptr) Variable Private + 106(b5): 27(ptr) Variable Private + 107(Constants): TypeStruct 6(float) 6(float) 6(float) + 108: TypePointer Uniform 107(Constants) + 109: 108(ptr) Variable Uniform +4(ShaderFunction): 2 Function None 3 + 5: Label + 96(input): 8(ptr) Variable Function + 102(param): 8(ptr) Variable Function + Store 14(a1) 18 + Store 19(b1) 24 + Store 25(a1i) 18 + Store 26(b1i) 24 + Store 28(a2) 29 + Store 30(b3) 31 + Store 32(b4) 33 + Store 34(a5) 16 + Store 35(c5) 36 + Store 40(single1) 42 + Store 47(single2) 51 + Store 54(single3) 57 + Store 60(single4) 65 + 99: 7(fvec4) Load 98(input) + Store 96(input) 99 + 103: 7(fvec4) Load 96(input) + Store 102(param) 103 + 104: 7(fvec4) FunctionCall 11(@ShaderFunction(vf4;) 102(param) + Store 101(@entryPointOutput) 104 + Return + FunctionEnd +11(@ShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 66(a2): 8(ptr) Variable Function + 71(s2i): 70(ptr) Variable Function + 80(s2): 70(ptr) Variable Function + 86(a8): 85(ptr) Variable Function + 89(a9): 85(ptr) Variable Function + Store 66(a2) 67 + 73: 6(float) Load 34(a5) + 76: 6(float) Load 75(a4) + 78: 68(S1) CompositeConstruct 76 77 + 79: 69(S2) CompositeConstruct 72 73 78 + Store 71(s2i) 79 + 81: 6(float) Load 34(a5) + 82: 6(float) Load 75(a4) + 83: 68(S1) CompositeConstruct 82 77 + 84: 69(S2) CompositeConstruct 72 81 83 + Store 80(s2) 84 + 88: 6(float) Load 87(b2) + Store 86(a8) 88 + 90: 6(float) Load 34(a5) + Store 89(a9) 90 + 91: 7(fvec4) Load 10(input) + 92: 7(fvec4) Load 14(a1) + 93: 7(fvec4) FMul 91 92 + ReturnValue 93 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.init2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.init2.frag.out new file mode 100644 index 0000000000..9e03de3a9c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.init2.frag.out @@ -0,0 +1,531 @@ +hlsl.init2.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: Test1( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp structure{ temp 2-component vector of float a}) +0:5 'test1' ( temp structure{ temp 2-component vector of float a}) +0:5 Constant: +0:5 1.000000 +0:5 2.000000 +0:9 Sequence +0:9 move second child to first child ( temp structure{ temp 2-component vector of float a}) +0:9 'test2' ( temp structure{ temp 2-component vector of float a}) +0:9 Constant: +0:9 3.000000 +0:9 4.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'test4' ( temp float) +0:17 Constant: +0:17 7.000000 +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp float a, temp float b, temp float c}) +0:20 'test5' ( temp structure{ temp float a, temp float b, temp float c}) +0:20 Constant: +0:20 8.000000 +0:20 9.000000 +0:20 10.000000 +0:22 Constant: +0:22 10.000000 +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'n' ( temp float) +0:25 Constant: +0:25 0.000000 +0:26 Sequence +0:26 move second child to first child ( temp 8-element array of 3-component vector of float) +0:26 'a' ( const (read only) 8-element array of 3-component vector of float) +0:26 Construct vec3 ( temp 8-element array of 3-component vector of float) +0:27 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? 0.577350 +0:? 0.577350 +0:27 add second child into first child ( temp float) +0:27 'n' ( temp float) +0:27 Constant: +0:27 1.000000 +0:28 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? -0.577350 +0:? -0.577350 +0:28 add second child into first child ( temp float) +0:28 'n' ( temp float) +0:28 Constant: +0:28 1.000000 +0:29 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? -0.577350 +0:? 0.577350 +0:29 add second child into first child ( temp float) +0:29 'n' ( temp float) +0:29 Constant: +0:29 1.000000 +0:30 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? -0.577350 +0:30 add second child into first child ( temp float) +0:30 'n' ( temp float) +0:30 Constant: +0:30 1.000000 +0:31 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:31 add second child into first child ( temp float) +0:31 'n' ( temp float) +0:31 Constant: +0:31 1.000000 +0:32 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? -0.577350 +0:? -0.577350 +0:32 add second child into first child ( temp float) +0:32 'n' ( temp float) +0:32 Constant: +0:32 1.000000 +0:33 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? -0.577350 +0:? 0.577350 +0:33 add second child into first child ( temp float) +0:33 'n' ( temp float) +0:33 Constant: +0:33 1.000000 +0:34 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? 0.577350 +0:? -0.577350 +0:34 add second child into first child ( temp float) +0:34 'n' ( temp float) +0:34 Constant: +0:34 1.000000 +0:36 Sequence +0:36 move second child to first child ( temp structure{ temp 3-component vector of float a}) +0:36 'oneNonConst' ( const (read only) structure{ temp 3-component vector of float a}) +0:36 Construct structure ( temp structure{ temp 3-component vector of float a}) +0:36 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:36 add second child into first child ( temp float) +0:36 'n' ( temp float) +0:36 Constant: +0:36 1.000000 +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) +0:38 'twoNonConst' ( const (read only) structure{ temp 3-component vector of float a, temp 3-component vector of float b}) +0:38 Construct structure ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) +0:38 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:38 add second child into first child ( temp float) +0:38 'n' ( temp float) +0:38 Constant: +0:38 1.000000 +0:39 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:39 add second child into first child ( temp float) +0:39 'n' ( temp float) +0:39 Constant: +0:39 1.000000 +0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:45 Function Parameters: +0:? Sequence +0:46 Function Call: Test1( ( temp void) +0:49 move second child to first child ( temp 4-component vector of float) +0:49 color: direct index for structure ( temp 4-component vector of float) +0:49 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 1.000000 +0:49 1.000000 +0:49 1.000000 +0:49 1.000000 +0:50 Branch: Return with expression +0:50 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:45 Function Definition: main( ( temp void) +0:45 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:45 color: direct index for structure ( temp 4-component vector of float) +0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:45 Constant: +0:45 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: Test1( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp structure{ temp 2-component vector of float a}) +0:5 'test1' ( temp structure{ temp 2-component vector of float a}) +0:5 Constant: +0:5 1.000000 +0:5 2.000000 +0:9 Sequence +0:9 move second child to first child ( temp structure{ temp 2-component vector of float a}) +0:9 'test2' ( temp structure{ temp 2-component vector of float a}) +0:9 Constant: +0:9 3.000000 +0:9 4.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'test4' ( temp float) +0:17 Constant: +0:17 7.000000 +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp float a, temp float b, temp float c}) +0:20 'test5' ( temp structure{ temp float a, temp float b, temp float c}) +0:20 Constant: +0:20 8.000000 +0:20 9.000000 +0:20 10.000000 +0:22 Constant: +0:22 10.000000 +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'n' ( temp float) +0:25 Constant: +0:25 0.000000 +0:26 Sequence +0:26 move second child to first child ( temp 8-element array of 3-component vector of float) +0:26 'a' ( const (read only) 8-element array of 3-component vector of float) +0:26 Construct vec3 ( temp 8-element array of 3-component vector of float) +0:27 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? 0.577350 +0:? 0.577350 +0:27 add second child into first child ( temp float) +0:27 'n' ( temp float) +0:27 Constant: +0:27 1.000000 +0:28 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? -0.577350 +0:? -0.577350 +0:28 add second child into first child ( temp float) +0:28 'n' ( temp float) +0:28 Constant: +0:28 1.000000 +0:29 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? -0.577350 +0:? 0.577350 +0:29 add second child into first child ( temp float) +0:29 'n' ( temp float) +0:29 Constant: +0:29 1.000000 +0:30 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? -0.577350 +0:30 add second child into first child ( temp float) +0:30 'n' ( temp float) +0:30 Constant: +0:30 1.000000 +0:31 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:31 add second child into first child ( temp float) +0:31 'n' ( temp float) +0:31 Constant: +0:31 1.000000 +0:32 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? -0.577350 +0:? -0.577350 +0:32 add second child into first child ( temp float) +0:32 'n' ( temp float) +0:32 Constant: +0:32 1.000000 +0:33 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? -0.577350 +0:? 0.577350 +0:33 add second child into first child ( temp float) +0:33 'n' ( temp float) +0:33 Constant: +0:33 1.000000 +0:34 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? 0.577350 +0:? 0.577350 +0:? -0.577350 +0:34 add second child into first child ( temp float) +0:34 'n' ( temp float) +0:34 Constant: +0:34 1.000000 +0:36 Sequence +0:36 move second child to first child ( temp structure{ temp 3-component vector of float a}) +0:36 'oneNonConst' ( const (read only) structure{ temp 3-component vector of float a}) +0:36 Construct structure ( temp structure{ temp 3-component vector of float a}) +0:36 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:36 add second child into first child ( temp float) +0:36 'n' ( temp float) +0:36 Constant: +0:36 1.000000 +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) +0:38 'twoNonConst' ( const (read only) structure{ temp 3-component vector of float a, temp 3-component vector of float b}) +0:38 Construct structure ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) +0:38 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:38 add second child into first child ( temp float) +0:38 'n' ( temp float) +0:38 Constant: +0:38 1.000000 +0:39 vector-scale ( temp 3-component vector of float) +0:? Constant: +0:? -0.577350 +0:? 0.577350 +0:? 0.577350 +0:39 add second child into first child ( temp float) +0:39 'n' ( temp float) +0:39 Constant: +0:39 1.000000 +0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:45 Function Parameters: +0:? Sequence +0:46 Function Call: Test1( ( temp void) +0:49 move second child to first child ( temp 4-component vector of float) +0:49 color: direct index for structure ( temp 4-component vector of float) +0:49 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 1.000000 +0:49 1.000000 +0:49 1.000000 +0:49 1.000000 +0:50 Branch: Return with expression +0:50 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:45 Function Definition: main( ( temp void) +0:45 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:45 color: direct index for structure ( temp 4-component vector of float) +0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:45 Constant: +0:45 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 112 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 109 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "Test1(" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "color" + Name 12 "@main(" + Name 15 "mystruct" + MemberName 15(mystruct) 0 "a" + Name 17 "test1" + Name 22 "test2" + Name 28 "test4" + Name 30 "mystruct2" + MemberName 30(mystruct2) 0 "a" + MemberName 30(mystruct2) 1 "b" + MemberName 30(mystruct2) 2 "c" + Name 32 "test5" + Name 37 "n" + Name 44 "a" + Name 80 "one" + MemberName 80(one) 0 "a" + Name 82 "oneNonConst" + Name 87 "two" + MemberName 87(two) 0 "a" + MemberName 87(two) 1 "b" + Name 89 "twoNonConst" + Name 99 "ps_output" + Name 109 "@entryPointOutput.color" + Decorate 109(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) + 11: TypeFunction 10(PS_OUTPUT) + 14: TypeVector 8(float) 2 + 15(mystruct): TypeStruct 14(fvec2) + 16: TypePointer Function 15(mystruct) + 18: 8(float) Constant 1065353216 + 19: 8(float) Constant 1073741824 + 20: 14(fvec2) ConstantComposite 18 19 + 21:15(mystruct) ConstantComposite 20 + 23: 8(float) Constant 1077936128 + 24: 8(float) Constant 1082130432 + 25: 14(fvec2) ConstantComposite 23 24 + 26:15(mystruct) ConstantComposite 25 + 27: TypePointer Function 8(float) + 29: 8(float) Constant 1088421888 + 30(mystruct2): TypeStruct 8(float) 8(float) 8(float) + 31: TypePointer Function 30(mystruct2) + 33: 8(float) Constant 1090519040 + 34: 8(float) Constant 1091567616 + 35: 8(float) Constant 1092616192 + 36:30(mystruct2) ConstantComposite 33 34 35 + 38: 8(float) Constant 0 + 39: TypeVector 8(float) 3 + 40: TypeInt 32 0 + 41: 40(int) Constant 8 + 42: TypeArray 39(fvec3) 41 + 43: TypePointer Function 42 + 45: 8(float) Constant 1058262330 + 46: 39(fvec3) ConstantComposite 45 45 45 + 50: 8(float) Constant 3205745978 + 51: 39(fvec3) ConstantComposite 50 50 50 + 55: 39(fvec3) ConstantComposite 50 50 45 + 59: 39(fvec3) ConstantComposite 50 45 50 + 63: 39(fvec3) ConstantComposite 50 45 45 + 67: 39(fvec3) ConstantComposite 45 50 50 + 71: 39(fvec3) ConstantComposite 45 50 45 + 75: 39(fvec3) ConstantComposite 45 45 50 + 80(one): TypeStruct 39(fvec3) + 81: TypePointer Function 80(one) + 87(two): TypeStruct 39(fvec3) 39(fvec3) + 88: TypePointer Function 87(two) + 98: TypePointer Function 10(PS_OUTPUT) + 100: TypeInt 32 1 + 101: 100(int) Constant 0 + 102: 9(fvec4) ConstantComposite 18 18 18 18 + 103: TypePointer Function 9(fvec4) + 108: TypePointer Output 9(fvec4) +109(@entryPointOutput.color): 108(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 110:10(PS_OUTPUT) FunctionCall 12(@main() + 111: 9(fvec4) CompositeExtract 110 0 + Store 109(@entryPointOutput.color) 111 + Return + FunctionEnd + 6(Test1(): 2 Function None 3 + 7: Label + 17(test1): 16(ptr) Variable Function + 22(test2): 16(ptr) Variable Function + 28(test4): 27(ptr) Variable Function + 32(test5): 31(ptr) Variable Function + 37(n): 27(ptr) Variable Function + 44(a): 43(ptr) Variable Function + 82(oneNonConst): 81(ptr) Variable Function + 89(twoNonConst): 88(ptr) Variable Function + Store 17(test1) 21 + Store 22(test2) 26 + Store 28(test4) 29 + Store 32(test5) 36 + Store 37(n) 38 + 47: 8(float) Load 37(n) + 48: 8(float) FAdd 47 18 + Store 37(n) 48 + 49: 39(fvec3) VectorTimesScalar 46 48 + 52: 8(float) Load 37(n) + 53: 8(float) FAdd 52 18 + Store 37(n) 53 + 54: 39(fvec3) VectorTimesScalar 51 53 + 56: 8(float) Load 37(n) + 57: 8(float) FAdd 56 18 + Store 37(n) 57 + 58: 39(fvec3) VectorTimesScalar 55 57 + 60: 8(float) Load 37(n) + 61: 8(float) FAdd 60 18 + Store 37(n) 61 + 62: 39(fvec3) VectorTimesScalar 59 61 + 64: 8(float) Load 37(n) + 65: 8(float) FAdd 64 18 + Store 37(n) 65 + 66: 39(fvec3) VectorTimesScalar 63 65 + 68: 8(float) Load 37(n) + 69: 8(float) FAdd 68 18 + Store 37(n) 69 + 70: 39(fvec3) VectorTimesScalar 67 69 + 72: 8(float) Load 37(n) + 73: 8(float) FAdd 72 18 + Store 37(n) 73 + 74: 39(fvec3) VectorTimesScalar 71 73 + 76: 8(float) Load 37(n) + 77: 8(float) FAdd 76 18 + Store 37(n) 77 + 78: 39(fvec3) VectorTimesScalar 75 77 + 79: 42 CompositeConstruct 49 54 58 62 66 70 74 78 + Store 44(a) 79 + 83: 8(float) Load 37(n) + 84: 8(float) FAdd 83 18 + Store 37(n) 84 + 85: 39(fvec3) VectorTimesScalar 63 84 + 86: 80(one) CompositeConstruct 85 + Store 82(oneNonConst) 86 + 90: 8(float) Load 37(n) + 91: 8(float) FAdd 90 18 + Store 37(n) 91 + 92: 39(fvec3) VectorTimesScalar 63 91 + 93: 8(float) Load 37(n) + 94: 8(float) FAdd 93 18 + Store 37(n) 94 + 95: 39(fvec3) VectorTimesScalar 63 94 + 96: 87(two) CompositeConstruct 92 95 + Store 89(twoNonConst) 96 + Return + FunctionEnd + 12(@main():10(PS_OUTPUT) Function None 11 + 13: Label + 99(ps_output): 98(ptr) Variable Function + 97: 2 FunctionCall 6(Test1() + 104: 103(ptr) AccessChain 99(ps_output) 101 + Store 104 102 + 105:10(PS_OUTPUT) Load 99(ps_output) + ReturnValue 105 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.inoutquals.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.inoutquals.frag.out new file mode 100644 index 0000000000..42adb1a81a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.inoutquals.frag.out @@ -0,0 +1,375 @@ +hlsl.inoutquals.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:8 Function Definition: MyFunc(f1;f1;f1;f1; ( temp void) +0:8 Function Parameters: +0:8 'x' ( in float) +0:8 'y' ( out float) +0:8 'z' ( inout float) +0:8 'w' ( inout float) +0:? Sequence +0:9 move second child to first child ( temp float) +0:9 'y' ( out float) +0:9 'x' ( in float) +0:10 move second child to first child ( temp float) +0:10 'z' ( inout float) +0:10 'y' ( out float) +0:11 move second child to first child ( temp float) +0:11 'x' ( in float) +0:11 Constant: +0:11 -1.000000 +0:12 multiply second child into first child ( temp float) +0:12 'w' ( inout float) +0:12 Constant: +0:12 1.000000 +0:16 Function Definition: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Function Parameters: +0:16 'inpos' ( in 4-component vector of float) +0:16 'sampleMask' ( out int) +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'x' ( temp float) +0:19 Constant: +0:19 7.000000 +0:19 move second child to first child ( temp float) +0:19 'z' ( temp float) +0:19 Constant: +0:19 3.000000 +0:20 Function Call: MyFunc(f1;f1;f1;f1; ( temp void) +0:20 'x' ( temp float) +0:20 'y' ( temp float) +0:20 'z' ( temp float) +0:20 direct index ( temp float) +0:20 'inpos' ( in 4-component vector of float) +0:20 Constant: +0:20 3 (const int) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:22 'x' ( temp float) +0:22 'y' ( temp float) +0:22 'z' ( temp float) +0:22 Constant: +0:22 1.000000 +0:23 move second child to first child ( temp float) +0:23 Depth: direct index for structure ( temp float) +0:23 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:23 Constant: +0:23 1 (const int) +0:23 direct index ( temp float) +0:23 'inpos' ( in 4-component vector of float) +0:23 Constant: +0:23 3 (const int) +0:25 Branch: Return with expression +0:25 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? 'inpos' ( temp 4-component vector of float) +0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:? 'inpos' ( temp 4-component vector of float) +0:? 'sampleMask' ( temp int) +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:16 Color: direct index for structure ( temp 4-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Constant: +0:16 0 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:16 Depth: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Constant: +0:16 1 (const int) +0:16 move second child to first child ( temp int) +0:16 direct index ( out int SampleMaskIn) +0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) +0:16 Constant: +0:16 0 (const int) +0:? 'sampleMask' ( temp int) +0:? Linker Objects +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:8 Function Definition: MyFunc(f1;f1;f1;f1; ( temp void) +0:8 Function Parameters: +0:8 'x' ( in float) +0:8 'y' ( out float) +0:8 'z' ( inout float) +0:8 'w' ( inout float) +0:? Sequence +0:9 move second child to first child ( temp float) +0:9 'y' ( out float) +0:9 'x' ( in float) +0:10 move second child to first child ( temp float) +0:10 'z' ( inout float) +0:10 'y' ( out float) +0:11 move second child to first child ( temp float) +0:11 'x' ( in float) +0:11 Constant: +0:11 -1.000000 +0:12 multiply second child into first child ( temp float) +0:12 'w' ( inout float) +0:12 Constant: +0:12 1.000000 +0:16 Function Definition: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Function Parameters: +0:16 'inpos' ( in 4-component vector of float) +0:16 'sampleMask' ( out int) +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'x' ( temp float) +0:19 Constant: +0:19 7.000000 +0:19 move second child to first child ( temp float) +0:19 'z' ( temp float) +0:19 Constant: +0:19 3.000000 +0:20 Function Call: MyFunc(f1;f1;f1;f1; ( temp void) +0:20 'x' ( temp float) +0:20 'y' ( temp float) +0:20 'z' ( temp float) +0:20 direct index ( temp float) +0:20 'inpos' ( in 4-component vector of float) +0:20 Constant: +0:20 3 (const int) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:22 Constant: +0:22 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:22 'x' ( temp float) +0:22 'y' ( temp float) +0:22 'z' ( temp float) +0:22 Constant: +0:22 1.000000 +0:23 move second child to first child ( temp float) +0:23 Depth: direct index for structure ( temp float) +0:23 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:23 Constant: +0:23 1 (const int) +0:23 direct index ( temp float) +0:23 'inpos' ( in 4-component vector of float) +0:23 Constant: +0:23 3 (const int) +0:25 Branch: Return with expression +0:25 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? 'inpos' ( temp 4-component vector of float) +0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:? 'inpos' ( temp 4-component vector of float) +0:? 'sampleMask' ( temp int) +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:16 Color: direct index for structure ( temp 4-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Constant: +0:16 0 (const int) +0:16 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:16 Depth: direct index for structure ( temp float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:16 Constant: +0:16 1 (const int) +0:16 move second child to first child ( temp int) +0:16 direct index ( out int SampleMaskIn) +0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) +0:16 Constant: +0:16 0 (const int) +0:? 'sampleMask' ( temp int) +0:? Linker Objects +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 92 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 78 82 88 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 13 "MyFunc(f1;f1;f1;f1;" + Name 9 "x" + Name 10 "y" + Name 11 "z" + Name 12 "w" + Name 19 "PS_OUTPUT" + MemberName 19(PS_OUTPUT) 0 "Color" + MemberName 19(PS_OUTPUT) 1 "Depth" + Name 23 "@main(vf4;i1;" + Name 21 "inpos" + Name 22 "sampleMask" + Name 31 "x" + Name 33 "z" + Name 35 "y" + Name 36 "param" + Name 38 "param" + Name 39 "param" + Name 41 "param" + Name 52 "psout" + Name 66 "inpos" + Name 68 "inpos" + Name 70 "flattenTemp" + Name 71 "sampleMask" + Name 72 "param" + Name 74 "param" + Name 78 "@entryPointOutput.Color" + Name 82 "@entryPointOutput.Depth" + Name 88 "sampleMask" + Decorate 68(inpos) NoPerspective + Decorate 68(inpos) BuiltIn FragCoord + Decorate 78(@entryPointOutput.Color) Location 0 + Decorate 82(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 88(sampleMask) BuiltIn SampleMask + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) 7(ptr) 7(ptr) 7(ptr) + 15: TypeVector 6(float) 4 + 16: TypePointer Function 15(fvec4) + 17: TypeInt 32 1 + 18: TypePointer Function 17(int) + 19(PS_OUTPUT): TypeStruct 15(fvec4) 6(float) + 20: TypeFunction 19(PS_OUTPUT) 16(ptr) 18(ptr) + 27: 6(float) Constant 3212836864 + 28: 6(float) Constant 1065353216 + 32: 6(float) Constant 1088421888 + 34: 6(float) Constant 1077936128 + 42: TypeInt 32 0 + 43: 42(int) Constant 3 + 51: TypePointer Function 19(PS_OUTPUT) + 53: 17(int) Constant 0 + 59: 17(int) Constant 1 + 67: TypePointer Input 15(fvec4) + 68(inpos): 67(ptr) Variable Input + 77: TypePointer Output 15(fvec4) +78(@entryPointOutput.Color): 77(ptr) Variable Output + 81: TypePointer Output 6(float) +82(@entryPointOutput.Depth): 81(ptr) Variable Output + 85: 42(int) Constant 1 + 86: TypeArray 17(int) 85 + 87: TypePointer Output 86 + 88(sampleMask): 87(ptr) Variable Output + 90: TypePointer Output 17(int) + 4(main): 2 Function None 3 + 5: Label + 66(inpos): 16(ptr) Variable Function + 70(flattenTemp): 51(ptr) Variable Function + 71(sampleMask): 18(ptr) Variable Function + 72(param): 16(ptr) Variable Function + 74(param): 18(ptr) Variable Function + 69: 15(fvec4) Load 68(inpos) + Store 66(inpos) 69 + 73: 15(fvec4) Load 66(inpos) + Store 72(param) 73 + 75:19(PS_OUTPUT) FunctionCall 23(@main(vf4;i1;) 72(param) 74(param) + 76: 17(int) Load 74(param) + Store 71(sampleMask) 76 + Store 70(flattenTemp) 75 + 79: 16(ptr) AccessChain 70(flattenTemp) 53 + 80: 15(fvec4) Load 79 + Store 78(@entryPointOutput.Color) 80 + 83: 7(ptr) AccessChain 70(flattenTemp) 59 + 84: 6(float) Load 83 + Store 82(@entryPointOutput.Depth) 84 + 89: 17(int) Load 71(sampleMask) + 91: 90(ptr) AccessChain 88(sampleMask) 53 + Store 91 89 + Return + FunctionEnd +13(MyFunc(f1;f1;f1;f1;): 2 Function None 8 + 9(x): 7(ptr) FunctionParameter + 10(y): 7(ptr) FunctionParameter + 11(z): 7(ptr) FunctionParameter + 12(w): 7(ptr) FunctionParameter + 14: Label + 25: 6(float) Load 9(x) + Store 10(y) 25 + 26: 6(float) Load 10(y) + Store 11(z) 26 + Store 9(x) 27 + 29: 6(float) Load 12(w) + 30: 6(float) FMul 29 28 + Store 12(w) 30 + Return + FunctionEnd +23(@main(vf4;i1;):19(PS_OUTPUT) Function None 20 + 21(inpos): 16(ptr) FunctionParameter + 22(sampleMask): 18(ptr) FunctionParameter + 24: Label + 31(x): 7(ptr) Variable Function + 33(z): 7(ptr) Variable Function + 35(y): 7(ptr) Variable Function + 36(param): 7(ptr) Variable Function + 38(param): 7(ptr) Variable Function + 39(param): 7(ptr) Variable Function + 41(param): 7(ptr) Variable Function + 52(psout): 51(ptr) Variable Function + Store 31(x) 32 + Store 33(z) 34 + 37: 6(float) Load 31(x) + Store 36(param) 37 + 40: 6(float) Load 33(z) + Store 39(param) 40 + 44: 7(ptr) AccessChain 21(inpos) 43 + 45: 6(float) Load 44 + Store 41(param) 45 + 46: 2 FunctionCall 13(MyFunc(f1;f1;f1;f1;) 36(param) 38(param) 39(param) 41(param) + 47: 6(float) Load 38(param) + Store 35(y) 47 + 48: 6(float) Load 39(param) + Store 33(z) 48 + 49: 6(float) Load 41(param) + 50: 7(ptr) AccessChain 21(inpos) 43 + Store 50 49 + 54: 6(float) Load 31(x) + 55: 6(float) Load 35(y) + 56: 6(float) Load 33(z) + 57: 15(fvec4) CompositeConstruct 54 55 56 28 + 58: 16(ptr) AccessChain 52(psout) 53 + Store 58 57 + 60: 7(ptr) AccessChain 21(inpos) 43 + 61: 6(float) Load 60 + 62: 7(ptr) AccessChain 52(psout) 59 + Store 62 61 + 63:19(PS_OUTPUT) Load 52(psout) + ReturnValue 63 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out new file mode 100644 index 0000000000..3a9d6fd51f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out @@ -0,0 +1,336 @@ +hlsl.intrinsic.frexp.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: PixelShaderFunctionS(f1;f1; ( temp float) +0:3 Function Parameters: +0:3 'inF0' ( in float) +0:3 'inF1' ( in float) +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp float) +0:4 'r000' ( temp float) +0:4 frexp ( temp float) +0:4 'inF0' ( in float) +0:4 'inF1' ( in float) +0:5 Branch: Return with expression +0:5 Constant: +0:5 0.000000 +0:9 Function Definition: PixelShaderFunction2(vf2;vf2; ( temp 2-component vector of float) +0:9 Function Parameters: +0:9 'inF0' ( in 2-component vector of float) +0:9 'inF1' ( in 2-component vector of float) +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 2-component vector of float) +0:10 'r000' ( temp 2-component vector of float) +0:10 frexp ( temp 2-component vector of float) +0:10 'inF0' ( in 2-component vector of float) +0:10 'inF1' ( in 2-component vector of float) +0:11 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:15 Function Definition: PixelShaderFunction3(vf3;vf3; ( temp 3-component vector of float) +0:15 Function Parameters: +0:15 'inF0' ( in 3-component vector of float) +0:15 'inF1' ( in 3-component vector of float) +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 3-component vector of float) +0:16 'r000' ( temp 3-component vector of float) +0:16 frexp ( temp 3-component vector of float) +0:16 'inF0' ( in 3-component vector of float) +0:16 'inF1' ( in 3-component vector of float) +0:17 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:21 Function Definition: PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) +0:21 Function Parameters: +0:21 'inF0' ( in 4-component vector of float) +0:21 'inF1' ( in 4-component vector of float) +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'r000' ( temp 4-component vector of float) +0:22 frexp ( temp 4-component vector of float) +0:22 'inF0' ( in 4-component vector of float) +0:22 'inF1' ( in 4-component vector of float) +0:23 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:33 Function Parameters: +0:? Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 color: direct index for structure ( temp 4-component vector of float) +0:35 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:36 Branch: Return with expression +0:36 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:33 Function Definition: main( ( temp void) +0:33 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:33 color: direct index for structure ( temp 4-component vector of float) +0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:33 Constant: +0:33 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: PixelShaderFunctionS(f1;f1; ( temp float) +0:3 Function Parameters: +0:3 'inF0' ( in float) +0:3 'inF1' ( in float) +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp float) +0:4 'r000' ( temp float) +0:4 frexp ( temp float) +0:4 'inF0' ( in float) +0:4 'inF1' ( in float) +0:5 Branch: Return with expression +0:5 Constant: +0:5 0.000000 +0:9 Function Definition: PixelShaderFunction2(vf2;vf2; ( temp 2-component vector of float) +0:9 Function Parameters: +0:9 'inF0' ( in 2-component vector of float) +0:9 'inF1' ( in 2-component vector of float) +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 2-component vector of float) +0:10 'r000' ( temp 2-component vector of float) +0:10 frexp ( temp 2-component vector of float) +0:10 'inF0' ( in 2-component vector of float) +0:10 'inF1' ( in 2-component vector of float) +0:11 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:15 Function Definition: PixelShaderFunction3(vf3;vf3; ( temp 3-component vector of float) +0:15 Function Parameters: +0:15 'inF0' ( in 3-component vector of float) +0:15 'inF1' ( in 3-component vector of float) +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 3-component vector of float) +0:16 'r000' ( temp 3-component vector of float) +0:16 frexp ( temp 3-component vector of float) +0:16 'inF0' ( in 3-component vector of float) +0:16 'inF1' ( in 3-component vector of float) +0:17 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:21 Function Definition: PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) +0:21 Function Parameters: +0:21 'inF0' ( in 4-component vector of float) +0:21 'inF1' ( in 4-component vector of float) +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:22 'r000' ( temp 4-component vector of float) +0:22 frexp ( temp 4-component vector of float) +0:22 'inF0' ( in 4-component vector of float) +0:22 'inF1' ( in 4-component vector of float) +0:23 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:33 Function Parameters: +0:? Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 color: direct index for structure ( temp 4-component vector of float) +0:35 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:36 Branch: Return with expression +0:36 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:33 Function Definition: main( ( temp void) +0:33 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:33 color: direct index for structure ( temp 4-component vector of float) +0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:33 Constant: +0:33 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 98 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 95 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "PixelShaderFunctionS(f1;f1;" + Name 9 "inF0" + Name 10 "inF1" + Name 18 "PixelShaderFunction2(vf2;vf2;" + Name 16 "inF0" + Name 17 "inF1" + Name 25 "PixelShaderFunction3(vf3;vf3;" + Name 23 "inF0" + Name 24 "inF1" + Name 32 "PixelShaderFunction(vf4;vf4;" + Name 30 "inF0" + Name 31 "inF1" + Name 34 "PS_OUTPUT" + MemberName 34(PS_OUTPUT) 0 "color" + Name 36 "@main(" + Name 38 "r000" + Name 41 "ResType" + Name 49 "r000" + Name 52 "ResType" + Name 62 "r000" + Name 65 "ResType" + Name 74 "r000" + Name 77 "ResType" + Name 87 "ps_output" + Name 95 "@entryPointOutput.color" + Decorate 95(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) 7(ptr) + 13: TypeVector 6(float) 2 + 14: TypePointer Function 13(fvec2) + 15: TypeFunction 13(fvec2) 14(ptr) 14(ptr) + 20: TypeVector 6(float) 3 + 21: TypePointer Function 20(fvec3) + 22: TypeFunction 20(fvec3) 21(ptr) 21(ptr) + 27: TypeVector 6(float) 4 + 28: TypePointer Function 27(fvec4) + 29: TypeFunction 27(fvec4) 28(ptr) 28(ptr) + 34(PS_OUTPUT): TypeStruct 27(fvec4) + 35: TypeFunction 34(PS_OUTPUT) + 40: TypeInt 32 1 + 41(ResType): TypeStruct 6(float) 40(int) + 46: 6(float) Constant 0 + 51: TypeVector 40(int) 2 + 52(ResType): TypeStruct 13(fvec2) 51(ivec2) + 57: 6(float) Constant 1065353216 + 58: 6(float) Constant 1073741824 + 59: 13(fvec2) ConstantComposite 57 58 + 64: TypeVector 40(int) 3 + 65(ResType): TypeStruct 20(fvec3) 64(ivec3) + 70: 6(float) Constant 1077936128 + 71: 20(fvec3) ConstantComposite 57 58 70 + 76: TypeVector 40(int) 4 + 77(ResType): TypeStruct 27(fvec4) 76(ivec4) + 82: 6(float) Constant 1082130432 + 83: 27(fvec4) ConstantComposite 57 58 70 82 + 86: TypePointer Function 34(PS_OUTPUT) + 88: 40(int) Constant 0 + 89: 27(fvec4) ConstantComposite 57 57 57 57 + 94: TypePointer Output 27(fvec4) +95(@entryPointOutput.color): 94(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 96:34(PS_OUTPUT) FunctionCall 36(@main() + 97: 27(fvec4) CompositeExtract 96 0 + Store 95(@entryPointOutput.color) 97 + Return + FunctionEnd +11(PixelShaderFunctionS(f1;f1;): 6(float) Function None 8 + 9(inF0): 7(ptr) FunctionParameter + 10(inF1): 7(ptr) FunctionParameter + 12: Label + 38(r000): 7(ptr) Variable Function + 39: 6(float) Load 9(inF0) + 42: 41(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 39 + 43: 40(int) CompositeExtract 42 1 + 44: 6(float) ConvertSToF 43 + Store 10(inF1) 44 + 45: 6(float) CompositeExtract 42 0 + Store 38(r000) 45 + ReturnValue 46 + FunctionEnd +18(PixelShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15 + 16(inF0): 14(ptr) FunctionParameter + 17(inF1): 14(ptr) FunctionParameter + 19: Label + 49(r000): 14(ptr) Variable Function + 50: 13(fvec2) Load 16(inF0) + 53: 52(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 50 + 54: 51(ivec2) CompositeExtract 53 1 + 55: 13(fvec2) ConvertSToF 54 + Store 17(inF1) 55 + 56: 13(fvec2) CompositeExtract 53 0 + Store 49(r000) 56 + ReturnValue 59 + FunctionEnd +25(PixelShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22 + 23(inF0): 21(ptr) FunctionParameter + 24(inF1): 21(ptr) FunctionParameter + 26: Label + 62(r000): 21(ptr) Variable Function + 63: 20(fvec3) Load 23(inF0) + 66: 65(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 63 + 67: 64(ivec3) CompositeExtract 66 1 + 68: 20(fvec3) ConvertSToF 67 + Store 24(inF1) 68 + 69: 20(fvec3) CompositeExtract 66 0 + Store 62(r000) 69 + ReturnValue 71 + FunctionEnd +32(PixelShaderFunction(vf4;vf4;): 27(fvec4) Function None 29 + 30(inF0): 28(ptr) FunctionParameter + 31(inF1): 28(ptr) FunctionParameter + 33: Label + 74(r000): 28(ptr) Variable Function + 75: 27(fvec4) Load 30(inF0) + 78: 77(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 75 + 79: 76(ivec4) CompositeExtract 78 1 + 80: 27(fvec4) ConvertSToF 79 + Store 31(inF1) 80 + 81: 27(fvec4) CompositeExtract 78 0 + Store 74(r000) 81 + ReturnValue 83 + FunctionEnd + 36(@main():34(PS_OUTPUT) Function None 35 + 37: Label + 87(ps_output): 86(ptr) Variable Function + 90: 28(ptr) AccessChain 87(ps_output) 88 + Store 90 89 + 91:34(PS_OUTPUT) Load 87(ps_output) + ReturnValue 91 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out new file mode 100644 index 0000000000..92bd7ef0aa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out @@ -0,0 +1,222 @@ +hlsl.intrinsic.frexp.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:? Sequence +0:3 frexp ( temp float) +0:3 'inF0' ( in float) +0:3 'inF1' ( in float) +0:4 Branch: Return with expression +0:4 Constant: +0:4 0.000000 +0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float) +0:8 Function Parameters: +0:8 'inF0' ( in 2-component vector of float) +0:8 'inF1' ( in 2-component vector of float) +0:? Sequence +0:9 frexp ( temp 2-component vector of float) +0:9 'inF0' ( in 2-component vector of float) +0:9 'inF1' ( in 2-component vector of float) +0:10 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float) +0:14 Function Parameters: +0:14 'inF0' ( in 3-component vector of float) +0:14 'inF1' ( in 3-component vector of float) +0:? Sequence +0:15 frexp ( temp 3-component vector of float) +0:15 'inF0' ( in 3-component vector of float) +0:15 'inF1' ( in 3-component vector of float) +0:16 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 'inF0' ( in 4-component vector of float) +0:20 'inF1' ( in 4-component vector of float) +0:? Sequence +0:21 frexp ( temp 4-component vector of float) +0:21 'inF0' ( in 4-component vector of float) +0:21 'inF1' ( in 4-component vector of float) +0:22 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked vertex stage: + +WARNING: Linking vertex stage: Entry point not found + +Shader version: 500 +0:? Sequence +0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:? Sequence +0:3 frexp ( temp float) +0:3 'inF0' ( in float) +0:3 'inF1' ( in float) +0:4 Branch: Return with expression +0:4 Constant: +0:4 0.000000 +0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float) +0:8 Function Parameters: +0:8 'inF0' ( in 2-component vector of float) +0:8 'inF1' ( in 2-component vector of float) +0:? Sequence +0:9 frexp ( temp 2-component vector of float) +0:9 'inF0' ( in 2-component vector of float) +0:9 'inF1' ( in 2-component vector of float) +0:10 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float) +0:14 Function Parameters: +0:14 'inF0' ( in 3-component vector of float) +0:14 'inF1' ( in 3-component vector of float) +0:? Sequence +0:15 frexp ( temp 3-component vector of float) +0:15 'inF0' ( in 3-component vector of float) +0:15 'inF1' ( in 3-component vector of float) +0:16 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 'inF0' ( in 4-component vector of float) +0:20 'inF1' ( in 4-component vector of float) +0:? Sequence +0:21 frexp ( temp 4-component vector of float) +0:21 'inF0' ( in 4-component vector of float) +0:21 'inF1' ( in 4-component vector of float) +0:22 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" + Source HLSL 500 + Name 4 "VertexShaderFunction" + Name 11 "VertexShaderFunctionS(f1;f1;" + Name 9 "inF0" + Name 10 "inF1" + Name 18 "VertexShaderFunction2(vf2;vf2;" + Name 16 "inF0" + Name 17 "inF1" + Name 25 "VertexShaderFunction3(vf3;vf3;" + Name 23 "inF0" + Name 24 "inF1" + Name 32 "VertexShaderFunction4(vf4;vf4;" + Name 30 "inF0" + Name 31 "inF1" + Name 36 "ResType" + Name 46 "ResType" + Name 58 "ResType" + Name 69 "ResType" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) 7(ptr) + 13: TypeVector 6(float) 2 + 14: TypePointer Function 13(fvec2) + 15: TypeFunction 13(fvec2) 14(ptr) 14(ptr) + 20: TypeVector 6(float) 3 + 21: TypePointer Function 20(fvec3) + 22: TypeFunction 20(fvec3) 21(ptr) 21(ptr) + 27: TypeVector 6(float) 4 + 28: TypePointer Function 27(fvec4) + 29: TypeFunction 27(fvec4) 28(ptr) 28(ptr) + 35: TypeInt 32 1 + 36(ResType): TypeStruct 6(float) 35(int) + 41: 6(float) Constant 0 + 45: TypeVector 35(int) 2 + 46(ResType): TypeStruct 13(fvec2) 45(ivec2) + 51: 6(float) Constant 1065353216 + 52: 6(float) Constant 1073741824 + 53: 13(fvec2) ConstantComposite 51 52 + 57: TypeVector 35(int) 3 + 58(ResType): TypeStruct 20(fvec3) 57(ivec3) + 63: 6(float) Constant 1077936128 + 64: 20(fvec3) ConstantComposite 51 52 63 + 68: TypeVector 35(int) 4 + 69(ResType): TypeStruct 27(fvec4) 68(ivec4) + 74: 6(float) Constant 1082130432 + 75: 27(fvec4) ConstantComposite 51 52 63 74 +4(VertexShaderFunction): 2 Function None 3 + 5: Label + Return + FunctionEnd +11(VertexShaderFunctionS(f1;f1;): 6(float) Function None 8 + 9(inF0): 7(ptr) FunctionParameter + 10(inF1): 7(ptr) FunctionParameter + 12: Label + 34: 6(float) Load 9(inF0) + 37: 36(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 34 + 38: 35(int) CompositeExtract 37 1 + 39: 6(float) ConvertSToF 38 + Store 10(inF1) 39 + 40: 6(float) CompositeExtract 37 0 + ReturnValue 41 + FunctionEnd +18(VertexShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15 + 16(inF0): 14(ptr) FunctionParameter + 17(inF1): 14(ptr) FunctionParameter + 19: Label + 44: 13(fvec2) Load 16(inF0) + 47: 46(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 44 + 48: 45(ivec2) CompositeExtract 47 1 + 49: 13(fvec2) ConvertSToF 48 + Store 17(inF1) 49 + 50: 13(fvec2) CompositeExtract 47 0 + ReturnValue 53 + FunctionEnd +25(VertexShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22 + 23(inF0): 21(ptr) FunctionParameter + 24(inF1): 21(ptr) FunctionParameter + 26: Label + 56: 20(fvec3) Load 23(inF0) + 59: 58(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 56 + 60: 57(ivec3) CompositeExtract 59 1 + 61: 20(fvec3) ConvertSToF 60 + Store 24(inF1) 61 + 62: 20(fvec3) CompositeExtract 59 0 + ReturnValue 64 + FunctionEnd +32(VertexShaderFunction4(vf4;vf4;): 27(fvec4) Function None 29 + 30(inF0): 28(ptr) FunctionParameter + 31(inF1): 28(ptr) FunctionParameter + 33: Label + 67: 27(fvec4) Load 30(inF0) + 70: 69(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 67 + 71: 68(ivec4) CompositeExtract 70 1 + 72: 27(fvec4) ConvertSToF 71 + Store 31(inF1) 72 + 73: 27(fvec4) CompositeExtract 70 0 + ReturnValue 75 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out new file mode 100644 index 0000000000..13fe578073 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -0,0 +1,96 @@ +hlsl.intrinsics.barriers.comp +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:3 Function Definition: @ComputeShaderFunction( ( temp float) +0:3 Function Parameters: +0:? Sequence +0:4 MemoryBarrier ( temp void) +0:5 AllMemoryBarrierWithGroupSync ( temp void) +0:6 DeviceMemoryBarrier ( temp void) +0:7 DeviceMemoryBarrierWithGroupSync ( temp void) +0:8 WorkgroupMemoryBarrier ( temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync ( temp void) +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:3 Function Definition: ComputeShaderFunction( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:3 Function Call: @ComputeShaderFunction( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:3 Function Definition: @ComputeShaderFunction( ( temp float) +0:3 Function Parameters: +0:? Sequence +0:4 MemoryBarrier ( temp void) +0:5 AllMemoryBarrierWithGroupSync ( temp void) +0:6 DeviceMemoryBarrier ( temp void) +0:7 DeviceMemoryBarrierWithGroupSync ( temp void) +0:8 WorkgroupMemoryBarrier ( temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync ( temp void) +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:3 Function Definition: ComputeShaderFunction( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:3 Function Call: @ComputeShaderFunction( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" 20 + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 + Name 4 "ComputeShaderFunction" + Name 8 "@ComputeShaderFunction(" + Name 20 "@entryPointOutput" + Decorate 20(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypeInt 32 0 + 11: 10(int) Constant 1 + 12: 10(int) Constant 3400 + 13: 10(int) Constant 2 + 14: 10(int) Constant 2120 + 15: 10(int) Constant 264 + 16: 6(float) Constant 0 + 19: TypePointer Output 6(float) +20(@entryPointOutput): 19(ptr) Variable Output +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + 21: 6(float) FunctionCall 8(@ComputeShaderFunction() + Store 20(@entryPointOutput) 21 + Return + FunctionEnd +8(@ComputeShaderFunction(): 6(float) Function None 7 + 9: Label + MemoryBarrier 11 12 + ControlBarrier 13 11 12 + MemoryBarrier 11 14 + ControlBarrier 13 11 14 + MemoryBarrier 13 15 + ControlBarrier 13 13 15 + ReturnValue 16 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.comp.out new file mode 100644 index 0000000000..a5b543cb2b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.comp.out @@ -0,0 +1,1102 @@ +hlsl.intrinsics.comp +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) +0:17 Function Parameters: +0:17 'inF0' ( in float) +0:17 'inF1' ( in float) +0:17 'inF2' ( in float) +0:17 'inU0' ( in uint) +0:17 'inU1' ( in uint) +0:? Sequence +0:21 all ( temp bool) +0:21 Convert float to bool ( temp bool) +0:21 'inF0' ( in float) +0:24 AtomicAdd ( temp uint) +0:24 'gs_ua' ( shared uint) +0:24 'gs_ub' ( shared uint) +0:25 move second child to first child ( temp uint) +0:25 'out_u1' ( temp uint) +0:25 AtomicAdd ( temp uint) +0:25 'gs_ua' ( shared uint) +0:25 'gs_ub' ( shared uint) +0:26 AtomicAnd ( temp uint) +0:26 'gs_ua' ( shared uint) +0:26 'gs_ub' ( shared uint) +0:27 move second child to first child ( temp uint) +0:27 'out_u1' ( temp uint) +0:27 AtomicAnd ( temp uint) +0:27 'gs_ua' ( shared uint) +0:27 'gs_ub' ( shared uint) +0:28 move second child to first child ( temp uint) +0:28 'out_u1' ( temp uint) +0:28 AtomicCompSwap ( temp uint) +0:28 'gs_ua' ( shared uint) +0:28 'gs_ub' ( shared uint) +0:28 'gs_uc' ( shared uint) +0:29 move second child to first child ( temp uint) +0:29 'out_u1' ( temp uint) +0:29 AtomicExchange ( temp uint) +0:29 'gs_ua' ( shared uint) +0:29 'gs_ub' ( shared uint) +0:30 AtomicMax ( temp uint) +0:30 'gs_ua' ( shared uint) +0:30 'gs_ub' ( shared uint) +0:31 move second child to first child ( temp uint) +0:31 'out_u1' ( temp uint) +0:31 AtomicMax ( temp uint) +0:31 'gs_ua' ( shared uint) +0:31 'gs_ub' ( shared uint) +0:32 AtomicMin ( temp uint) +0:32 'gs_ua' ( shared uint) +0:32 'gs_ub' ( shared uint) +0:33 move second child to first child ( temp uint) +0:33 'out_u1' ( temp uint) +0:33 AtomicMin ( temp uint) +0:33 'gs_ua' ( shared uint) +0:33 'gs_ub' ( shared uint) +0:34 AtomicOr ( temp uint) +0:34 'gs_ua' ( shared uint) +0:34 'gs_ub' ( shared uint) +0:35 move second child to first child ( temp uint) +0:35 'out_u1' ( temp uint) +0:35 AtomicOr ( temp uint) +0:35 'gs_ua' ( shared uint) +0:35 'gs_ub' ( shared uint) +0:36 AtomicXor ( temp uint) +0:36 'gs_ua' ( shared uint) +0:36 'gs_ub' ( shared uint) +0:37 move second child to first child ( temp uint) +0:37 'out_u1' ( temp uint) +0:37 AtomicXor ( temp uint) +0:37 'gs_ua' ( shared uint) +0:37 'gs_ub' ( shared uint) +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) +0:45 Function Parameters: +0:45 'inF0' ( in 1-component vector of float) +0:45 'inF1' ( in 1-component vector of float) +0:45 'inF2' ( in 1-component vector of float) +0:? Sequence +0:47 Branch: Return with expression +0:47 Constant: +0:47 0.000000 +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) +0:51 Function Parameters: +0:51 'inF0' ( in 2-component vector of float) +0:51 'inF1' ( in 2-component vector of float) +0:51 'inF2' ( in 2-component vector of float) +0:51 'inU0' ( in 2-component vector of uint) +0:51 'inU1' ( in 2-component vector of uint) +0:? Sequence +0:55 all ( temp bool) +0:55 Convert float to bool ( temp 2-component vector of bool) +0:55 'inF0' ( in 2-component vector of float) +0:58 AtomicAdd ( temp 2-component vector of uint) +0:58 'gs_ua2' ( shared 2-component vector of uint) +0:58 'gs_ub2' ( shared 2-component vector of uint) +0:59 move second child to first child ( temp 2-component vector of uint) +0:59 'out_u2' ( temp 2-component vector of uint) +0:59 AtomicAdd ( temp 2-component vector of uint) +0:59 'gs_ua2' ( shared 2-component vector of uint) +0:59 'gs_ub2' ( shared 2-component vector of uint) +0:60 AtomicAnd ( temp 2-component vector of uint) +0:60 'gs_ua2' ( shared 2-component vector of uint) +0:60 'gs_ub2' ( shared 2-component vector of uint) +0:61 move second child to first child ( temp 2-component vector of uint) +0:61 'out_u2' ( temp 2-component vector of uint) +0:61 AtomicAnd ( temp 2-component vector of uint) +0:61 'gs_ua2' ( shared 2-component vector of uint) +0:61 'gs_ub2' ( shared 2-component vector of uint) +0:62 move second child to first child ( temp 2-component vector of uint) +0:62 'out_u2' ( temp 2-component vector of uint) +0:62 AtomicCompSwap ( temp 2-component vector of uint) +0:62 'gs_ua2' ( shared 2-component vector of uint) +0:62 'gs_ub2' ( shared 2-component vector of uint) +0:62 'gs_uc2' ( shared 2-component vector of uint) +0:63 move second child to first child ( temp 2-component vector of uint) +0:63 'out_u2' ( temp 2-component vector of uint) +0:63 AtomicExchange ( temp 2-component vector of uint) +0:63 'gs_ua2' ( shared 2-component vector of uint) +0:63 'gs_ub2' ( shared 2-component vector of uint) +0:64 AtomicMax ( temp 2-component vector of uint) +0:64 'gs_ua2' ( shared 2-component vector of uint) +0:64 'gs_ub2' ( shared 2-component vector of uint) +0:65 move second child to first child ( temp 2-component vector of uint) +0:65 'out_u2' ( temp 2-component vector of uint) +0:65 AtomicMax ( temp 2-component vector of uint) +0:65 'gs_ua2' ( shared 2-component vector of uint) +0:65 'gs_ub2' ( shared 2-component vector of uint) +0:66 AtomicMin ( temp 2-component vector of uint) +0:66 'gs_ua2' ( shared 2-component vector of uint) +0:66 'gs_ub2' ( shared 2-component vector of uint) +0:67 move second child to first child ( temp 2-component vector of uint) +0:67 'out_u2' ( temp 2-component vector of uint) +0:67 AtomicMin ( temp 2-component vector of uint) +0:67 'gs_ua2' ( shared 2-component vector of uint) +0:67 'gs_ub2' ( shared 2-component vector of uint) +0:68 AtomicOr ( temp 2-component vector of uint) +0:68 'gs_ua2' ( shared 2-component vector of uint) +0:68 'gs_ub2' ( shared 2-component vector of uint) +0:69 move second child to first child ( temp 2-component vector of uint) +0:69 'out_u2' ( temp 2-component vector of uint) +0:69 AtomicOr ( temp 2-component vector of uint) +0:69 'gs_ua2' ( shared 2-component vector of uint) +0:69 'gs_ub2' ( shared 2-component vector of uint) +0:70 AtomicXor ( temp 2-component vector of uint) +0:70 'gs_ua2' ( shared 2-component vector of uint) +0:70 'gs_ub2' ( shared 2-component vector of uint) +0:71 move second child to first child ( temp 2-component vector of uint) +0:71 'out_u2' ( temp 2-component vector of uint) +0:71 AtomicXor ( temp 2-component vector of uint) +0:71 'gs_ua2' ( shared 2-component vector of uint) +0:71 'gs_ub2' ( shared 2-component vector of uint) +0:74 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) +0:78 Function Parameters: +0:78 'inF0' ( in 3-component vector of float) +0:78 'inF1' ( in 3-component vector of float) +0:78 'inF2' ( in 3-component vector of float) +0:78 'inU0' ( in 3-component vector of uint) +0:78 'inU1' ( in 3-component vector of uint) +0:? Sequence +0:82 all ( temp bool) +0:82 Convert float to bool ( temp 3-component vector of bool) +0:82 'inF0' ( in 3-component vector of float) +0:85 AtomicAdd ( temp 3-component vector of uint) +0:85 'gs_ua3' ( shared 3-component vector of uint) +0:85 'gs_ub3' ( shared 3-component vector of uint) +0:86 move second child to first child ( temp 3-component vector of uint) +0:86 'out_u3' ( temp 3-component vector of uint) +0:86 AtomicAdd ( temp 3-component vector of uint) +0:86 'gs_ua3' ( shared 3-component vector of uint) +0:86 'gs_ub3' ( shared 3-component vector of uint) +0:87 AtomicAnd ( temp 3-component vector of uint) +0:87 'gs_ua3' ( shared 3-component vector of uint) +0:87 'gs_ub3' ( shared 3-component vector of uint) +0:88 move second child to first child ( temp 3-component vector of uint) +0:88 'out_u3' ( temp 3-component vector of uint) +0:88 AtomicAnd ( temp 3-component vector of uint) +0:88 'gs_ua3' ( shared 3-component vector of uint) +0:88 'gs_ub3' ( shared 3-component vector of uint) +0:89 move second child to first child ( temp 3-component vector of uint) +0:89 'out_u3' ( temp 3-component vector of uint) +0:89 AtomicCompSwap ( temp 3-component vector of uint) +0:89 'gs_ua3' ( shared 3-component vector of uint) +0:89 'gs_ub3' ( shared 3-component vector of uint) +0:89 'gs_uc3' ( shared 3-component vector of uint) +0:90 move second child to first child ( temp 3-component vector of uint) +0:90 'out_u3' ( temp 3-component vector of uint) +0:90 AtomicExchange ( temp 3-component vector of uint) +0:90 'gs_ua3' ( shared 3-component vector of uint) +0:90 'gs_ub3' ( shared 3-component vector of uint) +0:91 AtomicMax ( temp 3-component vector of uint) +0:91 'gs_ua3' ( shared 3-component vector of uint) +0:91 'gs_ub3' ( shared 3-component vector of uint) +0:92 move second child to first child ( temp 3-component vector of uint) +0:92 'out_u3' ( temp 3-component vector of uint) +0:92 AtomicMax ( temp 3-component vector of uint) +0:92 'gs_ua3' ( shared 3-component vector of uint) +0:92 'gs_ub3' ( shared 3-component vector of uint) +0:93 AtomicMin ( temp 3-component vector of uint) +0:93 'gs_ua3' ( shared 3-component vector of uint) +0:93 'gs_ub3' ( shared 3-component vector of uint) +0:94 move second child to first child ( temp 3-component vector of uint) +0:94 'out_u3' ( temp 3-component vector of uint) +0:94 AtomicMin ( temp 3-component vector of uint) +0:94 'gs_ua3' ( shared 3-component vector of uint) +0:94 'gs_ub3' ( shared 3-component vector of uint) +0:95 AtomicOr ( temp 3-component vector of uint) +0:95 'gs_ua3' ( shared 3-component vector of uint) +0:95 'gs_ub3' ( shared 3-component vector of uint) +0:96 move second child to first child ( temp 3-component vector of uint) +0:96 'out_u3' ( temp 3-component vector of uint) +0:96 AtomicOr ( temp 3-component vector of uint) +0:96 'gs_ua3' ( shared 3-component vector of uint) +0:96 'gs_ub3' ( shared 3-component vector of uint) +0:97 AtomicXor ( temp 3-component vector of uint) +0:97 'gs_ua3' ( shared 3-component vector of uint) +0:97 'gs_ub3' ( shared 3-component vector of uint) +0:98 move second child to first child ( temp 3-component vector of uint) +0:98 'out_u3' ( temp 3-component vector of uint) +0:98 AtomicXor ( temp 3-component vector of uint) +0:98 'gs_ua3' ( shared 3-component vector of uint) +0:98 'gs_ub3' ( shared 3-component vector of uint) +0:101 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:105 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 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) +0:105 'inF2' ( in 4-component vector of float) +0:105 'inU0' ( in 4-component vector of uint) +0:105 'inU1' ( in 4-component vector of uint) +0:? Sequence +0:109 all ( temp bool) +0:109 Convert float to bool ( temp 4-component vector of bool) +0:109 'inF0' ( in 4-component vector of float) +0:112 AtomicAdd ( temp 4-component vector of uint) +0:112 'gs_ua4' ( shared 4-component vector of uint) +0:112 'gs_ub4' ( shared 4-component vector of uint) +0:113 move second child to first child ( temp 4-component vector of uint) +0:113 'out_u4' ( temp 4-component vector of uint) +0:113 AtomicAdd ( temp 4-component vector of uint) +0:113 'gs_ua4' ( shared 4-component vector of uint) +0:113 'gs_ub4' ( shared 4-component vector of uint) +0:114 AtomicAnd ( temp 4-component vector of uint) +0:114 'gs_ua4' ( shared 4-component vector of uint) +0:114 'gs_ub4' ( shared 4-component vector of uint) +0:115 move second child to first child ( temp 4-component vector of uint) +0:115 'out_u4' ( temp 4-component vector of uint) +0:115 AtomicAnd ( temp 4-component vector of uint) +0:115 'gs_ua4' ( shared 4-component vector of uint) +0:115 'gs_ub4' ( shared 4-component vector of uint) +0:116 move second child to first child ( temp 4-component vector of uint) +0:116 'out_u4' ( temp 4-component vector of uint) +0:116 AtomicCompSwap ( temp 4-component vector of uint) +0:116 'gs_ua4' ( shared 4-component vector of uint) +0:116 'gs_ub4' ( shared 4-component vector of uint) +0:116 'gs_uc4' ( shared 4-component vector of uint) +0:117 move second child to first child ( temp 4-component vector of uint) +0:117 'out_u4' ( temp 4-component vector of uint) +0:117 AtomicExchange ( temp 4-component vector of uint) +0:117 'gs_ua4' ( shared 4-component vector of uint) +0:117 'gs_ub4' ( shared 4-component vector of uint) +0:118 AtomicMax ( temp 4-component vector of uint) +0:118 'gs_ua4' ( shared 4-component vector of uint) +0:118 'gs_ub4' ( shared 4-component vector of uint) +0:119 move second child to first child ( temp 4-component vector of uint) +0:119 'out_u4' ( temp 4-component vector of uint) +0:119 AtomicMax ( temp 4-component vector of uint) +0:119 'gs_ua4' ( shared 4-component vector of uint) +0:119 'gs_ub4' ( shared 4-component vector of uint) +0:120 AtomicMin ( temp 4-component vector of uint) +0:120 'gs_ua4' ( shared 4-component vector of uint) +0:120 'gs_ub4' ( shared 4-component vector of uint) +0:121 move second child to first child ( temp 4-component vector of uint) +0:121 'out_u4' ( temp 4-component vector of uint) +0:121 AtomicMin ( temp 4-component vector of uint) +0:121 'gs_ua4' ( shared 4-component vector of uint) +0:121 'gs_ub4' ( shared 4-component vector of uint) +0:122 AtomicOr ( temp 4-component vector of uint) +0:122 'gs_ua4' ( shared 4-component vector of uint) +0:122 'gs_ub4' ( shared 4-component vector of uint) +0:123 move second child to first child ( temp 4-component vector of uint) +0:123 'out_u4' ( temp 4-component vector of uint) +0:123 AtomicOr ( temp 4-component vector of uint) +0:123 'gs_ua4' ( shared 4-component vector of uint) +0:123 'gs_ub4' ( shared 4-component vector of uint) +0:124 AtomicXor ( temp 4-component vector of uint) +0:124 'gs_ua4' ( shared 4-component vector of uint) +0:124 'gs_ub4' ( shared 4-component vector of uint) +0:125 move second child to first child ( temp 4-component vector of uint) +0:125 'out_u4' ( temp 4-component vector of uint) +0:125 AtomicXor ( temp 4-component vector of uint) +0:125 'gs_ua4' ( shared 4-component vector of uint) +0:125 'gs_ub4' ( shared 4-component vector of uint) +0:128 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:105 Function Definition: ComputeShaderFunction( ( temp void) +0:105 Function Parameters: +0:? Sequence +0:105 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:105 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:105 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:105 move second child to first child ( temp 4-component vector of uint) +0:? 'inU0' ( temp 4-component vector of uint) +0:? 'inU0' (layout( location=3) in 4-component vector of uint) +0:105 move second child to first child ( temp 4-component vector of uint) +0:? 'inU1' ( temp 4-component vector of uint) +0:? 'inU1' (layout( location=4) in 4-component vector of uint) +0:105 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:105 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inU0' ( temp 4-component vector of uint) +0:? 'inU1' ( temp 4-component vector of uint) +0:? Linker Objects +0:? 'gs_ua' ( shared uint) +0:? 'gs_ub' ( shared uint) +0:? 'gs_uc' ( shared uint) +0:? 'gs_ua2' ( shared 2-component vector of uint) +0:? 'gs_ub2' ( shared 2-component vector of uint) +0:? 'gs_uc2' ( shared 2-component vector of uint) +0:? 'gs_ua3' ( shared 3-component vector of uint) +0:? 'gs_ub3' ( shared 3-component vector of uint) +0:? 'gs_uc3' ( shared 3-component vector of uint) +0:? 'gs_ua4' ( shared 4-component vector of uint) +0:? 'gs_ub4' ( shared 4-component vector of uint) +0:? 'gs_uc4' ( shared 4-component vector of uint) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inU0' (layout( location=3) in 4-component vector of uint) +0:? 'inU1' (layout( location=4) in 4-component vector of uint) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) +0:17 Function Parameters: +0:17 'inF0' ( in float) +0:17 'inF1' ( in float) +0:17 'inF2' ( in float) +0:17 'inU0' ( in uint) +0:17 'inU1' ( in uint) +0:? Sequence +0:21 all ( temp bool) +0:21 Convert float to bool ( temp bool) +0:21 'inF0' ( in float) +0:24 AtomicAdd ( temp uint) +0:24 'gs_ua' ( shared uint) +0:24 'gs_ub' ( shared uint) +0:25 move second child to first child ( temp uint) +0:25 'out_u1' ( temp uint) +0:25 AtomicAdd ( temp uint) +0:25 'gs_ua' ( shared uint) +0:25 'gs_ub' ( shared uint) +0:26 AtomicAnd ( temp uint) +0:26 'gs_ua' ( shared uint) +0:26 'gs_ub' ( shared uint) +0:27 move second child to first child ( temp uint) +0:27 'out_u1' ( temp uint) +0:27 AtomicAnd ( temp uint) +0:27 'gs_ua' ( shared uint) +0:27 'gs_ub' ( shared uint) +0:28 move second child to first child ( temp uint) +0:28 'out_u1' ( temp uint) +0:28 AtomicCompSwap ( temp uint) +0:28 'gs_ua' ( shared uint) +0:28 'gs_ub' ( shared uint) +0:28 'gs_uc' ( shared uint) +0:29 move second child to first child ( temp uint) +0:29 'out_u1' ( temp uint) +0:29 AtomicExchange ( temp uint) +0:29 'gs_ua' ( shared uint) +0:29 'gs_ub' ( shared uint) +0:30 AtomicMax ( temp uint) +0:30 'gs_ua' ( shared uint) +0:30 'gs_ub' ( shared uint) +0:31 move second child to first child ( temp uint) +0:31 'out_u1' ( temp uint) +0:31 AtomicMax ( temp uint) +0:31 'gs_ua' ( shared uint) +0:31 'gs_ub' ( shared uint) +0:32 AtomicMin ( temp uint) +0:32 'gs_ua' ( shared uint) +0:32 'gs_ub' ( shared uint) +0:33 move second child to first child ( temp uint) +0:33 'out_u1' ( temp uint) +0:33 AtomicMin ( temp uint) +0:33 'gs_ua' ( shared uint) +0:33 'gs_ub' ( shared uint) +0:34 AtomicOr ( temp uint) +0:34 'gs_ua' ( shared uint) +0:34 'gs_ub' ( shared uint) +0:35 move second child to first child ( temp uint) +0:35 'out_u1' ( temp uint) +0:35 AtomicOr ( temp uint) +0:35 'gs_ua' ( shared uint) +0:35 'gs_ub' ( shared uint) +0:36 AtomicXor ( temp uint) +0:36 'gs_ua' ( shared uint) +0:36 'gs_ub' ( shared uint) +0:37 move second child to first child ( temp uint) +0:37 'out_u1' ( temp uint) +0:37 AtomicXor ( temp uint) +0:37 'gs_ua' ( shared uint) +0:37 'gs_ub' ( shared uint) +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) +0:45 Function Parameters: +0:45 'inF0' ( in 1-component vector of float) +0:45 'inF1' ( in 1-component vector of float) +0:45 'inF2' ( in 1-component vector of float) +0:? Sequence +0:47 Branch: Return with expression +0:47 Constant: +0:47 0.000000 +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) +0:51 Function Parameters: +0:51 'inF0' ( in 2-component vector of float) +0:51 'inF1' ( in 2-component vector of float) +0:51 'inF2' ( in 2-component vector of float) +0:51 'inU0' ( in 2-component vector of uint) +0:51 'inU1' ( in 2-component vector of uint) +0:? Sequence +0:55 all ( temp bool) +0:55 Convert float to bool ( temp 2-component vector of bool) +0:55 'inF0' ( in 2-component vector of float) +0:58 AtomicAdd ( temp 2-component vector of uint) +0:58 'gs_ua2' ( shared 2-component vector of uint) +0:58 'gs_ub2' ( shared 2-component vector of uint) +0:59 move second child to first child ( temp 2-component vector of uint) +0:59 'out_u2' ( temp 2-component vector of uint) +0:59 AtomicAdd ( temp 2-component vector of uint) +0:59 'gs_ua2' ( shared 2-component vector of uint) +0:59 'gs_ub2' ( shared 2-component vector of uint) +0:60 AtomicAnd ( temp 2-component vector of uint) +0:60 'gs_ua2' ( shared 2-component vector of uint) +0:60 'gs_ub2' ( shared 2-component vector of uint) +0:61 move second child to first child ( temp 2-component vector of uint) +0:61 'out_u2' ( temp 2-component vector of uint) +0:61 AtomicAnd ( temp 2-component vector of uint) +0:61 'gs_ua2' ( shared 2-component vector of uint) +0:61 'gs_ub2' ( shared 2-component vector of uint) +0:62 move second child to first child ( temp 2-component vector of uint) +0:62 'out_u2' ( temp 2-component vector of uint) +0:62 AtomicCompSwap ( temp 2-component vector of uint) +0:62 'gs_ua2' ( shared 2-component vector of uint) +0:62 'gs_ub2' ( shared 2-component vector of uint) +0:62 'gs_uc2' ( shared 2-component vector of uint) +0:63 move second child to first child ( temp 2-component vector of uint) +0:63 'out_u2' ( temp 2-component vector of uint) +0:63 AtomicExchange ( temp 2-component vector of uint) +0:63 'gs_ua2' ( shared 2-component vector of uint) +0:63 'gs_ub2' ( shared 2-component vector of uint) +0:64 AtomicMax ( temp 2-component vector of uint) +0:64 'gs_ua2' ( shared 2-component vector of uint) +0:64 'gs_ub2' ( shared 2-component vector of uint) +0:65 move second child to first child ( temp 2-component vector of uint) +0:65 'out_u2' ( temp 2-component vector of uint) +0:65 AtomicMax ( temp 2-component vector of uint) +0:65 'gs_ua2' ( shared 2-component vector of uint) +0:65 'gs_ub2' ( shared 2-component vector of uint) +0:66 AtomicMin ( temp 2-component vector of uint) +0:66 'gs_ua2' ( shared 2-component vector of uint) +0:66 'gs_ub2' ( shared 2-component vector of uint) +0:67 move second child to first child ( temp 2-component vector of uint) +0:67 'out_u2' ( temp 2-component vector of uint) +0:67 AtomicMin ( temp 2-component vector of uint) +0:67 'gs_ua2' ( shared 2-component vector of uint) +0:67 'gs_ub2' ( shared 2-component vector of uint) +0:68 AtomicOr ( temp 2-component vector of uint) +0:68 'gs_ua2' ( shared 2-component vector of uint) +0:68 'gs_ub2' ( shared 2-component vector of uint) +0:69 move second child to first child ( temp 2-component vector of uint) +0:69 'out_u2' ( temp 2-component vector of uint) +0:69 AtomicOr ( temp 2-component vector of uint) +0:69 'gs_ua2' ( shared 2-component vector of uint) +0:69 'gs_ub2' ( shared 2-component vector of uint) +0:70 AtomicXor ( temp 2-component vector of uint) +0:70 'gs_ua2' ( shared 2-component vector of uint) +0:70 'gs_ub2' ( shared 2-component vector of uint) +0:71 move second child to first child ( temp 2-component vector of uint) +0:71 'out_u2' ( temp 2-component vector of uint) +0:71 AtomicXor ( temp 2-component vector of uint) +0:71 'gs_ua2' ( shared 2-component vector of uint) +0:71 'gs_ub2' ( shared 2-component vector of uint) +0:74 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) +0:78 Function Parameters: +0:78 'inF0' ( in 3-component vector of float) +0:78 'inF1' ( in 3-component vector of float) +0:78 'inF2' ( in 3-component vector of float) +0:78 'inU0' ( in 3-component vector of uint) +0:78 'inU1' ( in 3-component vector of uint) +0:? Sequence +0:82 all ( temp bool) +0:82 Convert float to bool ( temp 3-component vector of bool) +0:82 'inF0' ( in 3-component vector of float) +0:85 AtomicAdd ( temp 3-component vector of uint) +0:85 'gs_ua3' ( shared 3-component vector of uint) +0:85 'gs_ub3' ( shared 3-component vector of uint) +0:86 move second child to first child ( temp 3-component vector of uint) +0:86 'out_u3' ( temp 3-component vector of uint) +0:86 AtomicAdd ( temp 3-component vector of uint) +0:86 'gs_ua3' ( shared 3-component vector of uint) +0:86 'gs_ub3' ( shared 3-component vector of uint) +0:87 AtomicAnd ( temp 3-component vector of uint) +0:87 'gs_ua3' ( shared 3-component vector of uint) +0:87 'gs_ub3' ( shared 3-component vector of uint) +0:88 move second child to first child ( temp 3-component vector of uint) +0:88 'out_u3' ( temp 3-component vector of uint) +0:88 AtomicAnd ( temp 3-component vector of uint) +0:88 'gs_ua3' ( shared 3-component vector of uint) +0:88 'gs_ub3' ( shared 3-component vector of uint) +0:89 move second child to first child ( temp 3-component vector of uint) +0:89 'out_u3' ( temp 3-component vector of uint) +0:89 AtomicCompSwap ( temp 3-component vector of uint) +0:89 'gs_ua3' ( shared 3-component vector of uint) +0:89 'gs_ub3' ( shared 3-component vector of uint) +0:89 'gs_uc3' ( shared 3-component vector of uint) +0:90 move second child to first child ( temp 3-component vector of uint) +0:90 'out_u3' ( temp 3-component vector of uint) +0:90 AtomicExchange ( temp 3-component vector of uint) +0:90 'gs_ua3' ( shared 3-component vector of uint) +0:90 'gs_ub3' ( shared 3-component vector of uint) +0:91 AtomicMax ( temp 3-component vector of uint) +0:91 'gs_ua3' ( shared 3-component vector of uint) +0:91 'gs_ub3' ( shared 3-component vector of uint) +0:92 move second child to first child ( temp 3-component vector of uint) +0:92 'out_u3' ( temp 3-component vector of uint) +0:92 AtomicMax ( temp 3-component vector of uint) +0:92 'gs_ua3' ( shared 3-component vector of uint) +0:92 'gs_ub3' ( shared 3-component vector of uint) +0:93 AtomicMin ( temp 3-component vector of uint) +0:93 'gs_ua3' ( shared 3-component vector of uint) +0:93 'gs_ub3' ( shared 3-component vector of uint) +0:94 move second child to first child ( temp 3-component vector of uint) +0:94 'out_u3' ( temp 3-component vector of uint) +0:94 AtomicMin ( temp 3-component vector of uint) +0:94 'gs_ua3' ( shared 3-component vector of uint) +0:94 'gs_ub3' ( shared 3-component vector of uint) +0:95 AtomicOr ( temp 3-component vector of uint) +0:95 'gs_ua3' ( shared 3-component vector of uint) +0:95 'gs_ub3' ( shared 3-component vector of uint) +0:96 move second child to first child ( temp 3-component vector of uint) +0:96 'out_u3' ( temp 3-component vector of uint) +0:96 AtomicOr ( temp 3-component vector of uint) +0:96 'gs_ua3' ( shared 3-component vector of uint) +0:96 'gs_ub3' ( shared 3-component vector of uint) +0:97 AtomicXor ( temp 3-component vector of uint) +0:97 'gs_ua3' ( shared 3-component vector of uint) +0:97 'gs_ub3' ( shared 3-component vector of uint) +0:98 move second child to first child ( temp 3-component vector of uint) +0:98 'out_u3' ( temp 3-component vector of uint) +0:98 AtomicXor ( temp 3-component vector of uint) +0:98 'gs_ua3' ( shared 3-component vector of uint) +0:98 'gs_ub3' ( shared 3-component vector of uint) +0:101 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:105 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 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) +0:105 'inF2' ( in 4-component vector of float) +0:105 'inU0' ( in 4-component vector of uint) +0:105 'inU1' ( in 4-component vector of uint) +0:? Sequence +0:109 all ( temp bool) +0:109 Convert float to bool ( temp 4-component vector of bool) +0:109 'inF0' ( in 4-component vector of float) +0:112 AtomicAdd ( temp 4-component vector of uint) +0:112 'gs_ua4' ( shared 4-component vector of uint) +0:112 'gs_ub4' ( shared 4-component vector of uint) +0:113 move second child to first child ( temp 4-component vector of uint) +0:113 'out_u4' ( temp 4-component vector of uint) +0:113 AtomicAdd ( temp 4-component vector of uint) +0:113 'gs_ua4' ( shared 4-component vector of uint) +0:113 'gs_ub4' ( shared 4-component vector of uint) +0:114 AtomicAnd ( temp 4-component vector of uint) +0:114 'gs_ua4' ( shared 4-component vector of uint) +0:114 'gs_ub4' ( shared 4-component vector of uint) +0:115 move second child to first child ( temp 4-component vector of uint) +0:115 'out_u4' ( temp 4-component vector of uint) +0:115 AtomicAnd ( temp 4-component vector of uint) +0:115 'gs_ua4' ( shared 4-component vector of uint) +0:115 'gs_ub4' ( shared 4-component vector of uint) +0:116 move second child to first child ( temp 4-component vector of uint) +0:116 'out_u4' ( temp 4-component vector of uint) +0:116 AtomicCompSwap ( temp 4-component vector of uint) +0:116 'gs_ua4' ( shared 4-component vector of uint) +0:116 'gs_ub4' ( shared 4-component vector of uint) +0:116 'gs_uc4' ( shared 4-component vector of uint) +0:117 move second child to first child ( temp 4-component vector of uint) +0:117 'out_u4' ( temp 4-component vector of uint) +0:117 AtomicExchange ( temp 4-component vector of uint) +0:117 'gs_ua4' ( shared 4-component vector of uint) +0:117 'gs_ub4' ( shared 4-component vector of uint) +0:118 AtomicMax ( temp 4-component vector of uint) +0:118 'gs_ua4' ( shared 4-component vector of uint) +0:118 'gs_ub4' ( shared 4-component vector of uint) +0:119 move second child to first child ( temp 4-component vector of uint) +0:119 'out_u4' ( temp 4-component vector of uint) +0:119 AtomicMax ( temp 4-component vector of uint) +0:119 'gs_ua4' ( shared 4-component vector of uint) +0:119 'gs_ub4' ( shared 4-component vector of uint) +0:120 AtomicMin ( temp 4-component vector of uint) +0:120 'gs_ua4' ( shared 4-component vector of uint) +0:120 'gs_ub4' ( shared 4-component vector of uint) +0:121 move second child to first child ( temp 4-component vector of uint) +0:121 'out_u4' ( temp 4-component vector of uint) +0:121 AtomicMin ( temp 4-component vector of uint) +0:121 'gs_ua4' ( shared 4-component vector of uint) +0:121 'gs_ub4' ( shared 4-component vector of uint) +0:122 AtomicOr ( temp 4-component vector of uint) +0:122 'gs_ua4' ( shared 4-component vector of uint) +0:122 'gs_ub4' ( shared 4-component vector of uint) +0:123 move second child to first child ( temp 4-component vector of uint) +0:123 'out_u4' ( temp 4-component vector of uint) +0:123 AtomicOr ( temp 4-component vector of uint) +0:123 'gs_ua4' ( shared 4-component vector of uint) +0:123 'gs_ub4' ( shared 4-component vector of uint) +0:124 AtomicXor ( temp 4-component vector of uint) +0:124 'gs_ua4' ( shared 4-component vector of uint) +0:124 'gs_ub4' ( shared 4-component vector of uint) +0:125 move second child to first child ( temp 4-component vector of uint) +0:125 'out_u4' ( temp 4-component vector of uint) +0:125 AtomicXor ( temp 4-component vector of uint) +0:125 'gs_ua4' ( shared 4-component vector of uint) +0:125 'gs_ub4' ( shared 4-component vector of uint) +0:128 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:105 Function Definition: ComputeShaderFunction( ( temp void) +0:105 Function Parameters: +0:? Sequence +0:105 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:105 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:105 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:105 move second child to first child ( temp 4-component vector of uint) +0:? 'inU0' ( temp 4-component vector of uint) +0:? 'inU0' (layout( location=3) in 4-component vector of uint) +0:105 move second child to first child ( temp 4-component vector of uint) +0:? 'inU1' ( temp 4-component vector of uint) +0:? 'inU1' (layout( location=4) in 4-component vector of uint) +0:105 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:105 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inU0' ( temp 4-component vector of uint) +0:? 'inU1' ( temp 4-component vector of uint) +0:? Linker Objects +0:? 'gs_ua' ( shared uint) +0:? 'gs_ub' ( shared uint) +0:? 'gs_uc' ( shared uint) +0:? 'gs_ua2' ( shared 2-component vector of uint) +0:? 'gs_ub2' ( shared 2-component vector of uint) +0:? 'gs_uc2' ( shared 2-component vector of uint) +0:? 'gs_ua3' ( shared 3-component vector of uint) +0:? 'gs_ub3' ( shared 3-component vector of uint) +0:? 'gs_uc3' ( shared 3-component vector of uint) +0:? 'gs_ua4' ( shared 4-component vector of uint) +0:? 'gs_ub4' ( shared 4-component vector of uint) +0:? 'gs_uc4' ( shared 4-component vector of uint) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inU0' (layout( location=3) in 4-component vector of uint) +0:? 'inU1' (layout( location=4) in 4-component vector of uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 265 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" 237 240 243 247 250 253 + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 + Name 4 "ComputeShaderFunction" + 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 58 "@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;" + Name 53 "inF0" + Name 54 "inF1" + Name 55 "inF2" + Name 56 "inU0" + Name 57 "inU1" + Name 66 "gs_ua" + Name 67 "gs_ub" + Name 72 "out_u1" + Name 80 "gs_uc" + Name 111 "gs_ua2" + Name 112 "gs_ub2" + Name 115 "out_u2" + Name 123 "gs_uc2" + Name 155 "gs_ua3" + Name 156 "gs_ub3" + Name 159 "out_u3" + Name 167 "gs_uc3" + Name 198 "gs_ua4" + Name 199 "gs_ub4" + Name 202 "out_u4" + Name 210 "gs_uc4" + Name 235 "inF0" + Name 237 "inF0" + Name 239 "inF1" + Name 240 "inF1" + Name 242 "inF2" + Name 243 "inF2" + Name 245 "inU0" + Name 247 "inU0" + Name 249 "inU1" + Name 250 "inU1" + Name 253 "@entryPointOutput" + Name 254 "param" + Name 256 "param" + Name 258 "param" + Name 260 "param" + Name 262 "param" + Decorate 237(inF0) Location 0 + Decorate 240(inF1) Location 1 + Decorate 243(inF2) Location 2 + Decorate 247(inU0) Location 3 + Decorate 250(inU1) Location 4 + Decorate 253(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 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) + 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) + 61: TypeBool + 62: 6(float) Constant 0 + 65: TypePointer Workgroup 8(int) + 66(gs_ua): 65(ptr) Variable Workgroup + 67(gs_ub): 65(ptr) Variable Workgroup + 69: 8(int) Constant 1 + 70: 8(int) Constant 0 + 80(gs_uc): 65(ptr) Variable Workgroup + 106: TypeVector 61(bool) 2 + 107: 24(fvec2) ConstantComposite 62 62 + 110: TypePointer Workgroup 26(ivec2) + 111(gs_ua2): 110(ptr) Variable Workgroup + 112(gs_ub2): 110(ptr) Variable Workgroup + 123(gs_uc2): 110(ptr) Variable Workgroup + 144: 6(float) Constant 1065353216 + 145: 6(float) Constant 1073741824 + 146: 24(fvec2) ConstantComposite 144 145 + 150: TypeVector 61(bool) 3 + 151: 36(fvec3) ConstantComposite 62 62 62 + 154: TypePointer Workgroup 38(ivec3) + 155(gs_ua3): 154(ptr) Variable Workgroup + 156(gs_ub3): 154(ptr) Variable Workgroup + 167(gs_uc3): 154(ptr) Variable Workgroup + 188: 6(float) Constant 1077936128 + 189: 36(fvec3) ConstantComposite 144 145 188 + 193: TypeVector 61(bool) 4 + 194: 48(fvec4) ConstantComposite 62 62 62 62 + 197: TypePointer Workgroup 50(ivec4) + 198(gs_ua4): 197(ptr) Variable Workgroup + 199(gs_ub4): 197(ptr) Variable Workgroup + 210(gs_uc4): 197(ptr) Variable Workgroup + 231: 6(float) Constant 1082130432 + 232: 48(fvec4) ConstantComposite 144 145 188 231 + 236: TypePointer Input 48(fvec4) + 237(inF0): 236(ptr) Variable Input + 240(inF1): 236(ptr) Variable Input + 243(inF2): 236(ptr) Variable Input + 246: TypePointer Input 50(ivec4) + 247(inU0): 246(ptr) Variable Input + 250(inU1): 246(ptr) Variable Input + 252: TypePointer Output 48(fvec4) +253(@entryPointOutput): 252(ptr) Variable Output +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + 235(inF0): 49(ptr) Variable Function + 239(inF1): 49(ptr) Variable Function + 242(inF2): 49(ptr) Variable Function + 245(inU0): 51(ptr) Variable Function + 249(inU1): 51(ptr) Variable Function + 254(param): 49(ptr) Variable Function + 256(param): 49(ptr) Variable Function + 258(param): 49(ptr) Variable Function + 260(param): 51(ptr) Variable Function + 262(param): 51(ptr) Variable Function + 238: 48(fvec4) Load 237(inF0) + Store 235(inF0) 238 + 241: 48(fvec4) Load 240(inF1) + Store 239(inF1) 241 + 244: 48(fvec4) Load 243(inF2) + Store 242(inF2) 244 + 248: 50(ivec4) Load 247(inU0) + Store 245(inU0) 248 + 251: 50(ivec4) Load 250(inU1) + Store 249(inU1) 251 + 255: 48(fvec4) Load 235(inF0) + Store 254(param) 255 + 257: 48(fvec4) Load 239(inF1) + Store 256(param) 257 + 259: 48(fvec4) Load 242(inF2) + Store 258(param) 259 + 261: 50(ivec4) Load 245(inU0) + Store 260(param) 261 + 263: 50(ivec4) Load 249(inU1) + Store 262(param) 263 + 264: 48(fvec4) FunctionCall 58(@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;) 254(param) 256(param) 258(param) 260(param) 262(param) + Store 253(@entryPointOutput) 264 + Return + 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 + 72(out_u1): 9(ptr) Variable Function + 60: 6(float) Load 11(inF0) + 63: 61(bool) FOrdNotEqual 60 62 + 64: 61(bool) All 63 + 68: 8(int) Load 67(gs_ub) + 71: 8(int) AtomicIAdd 66(gs_ua) 69 70 68 + 73: 8(int) Load 67(gs_ub) + 74: 8(int) AtomicIAdd 66(gs_ua) 69 70 73 + Store 72(out_u1) 74 + 75: 8(int) Load 67(gs_ub) + 76: 8(int) AtomicAnd 66(gs_ua) 69 70 75 + 77: 8(int) Load 67(gs_ub) + 78: 8(int) AtomicAnd 66(gs_ua) 69 70 77 + Store 72(out_u1) 78 + 79: 8(int) Load 67(gs_ub) + 81: 8(int) Load 80(gs_uc) + 82: 8(int) AtomicCompareExchange 66(gs_ua) 69 70 70 81 79 + Store 72(out_u1) 82 + 83: 8(int) Load 67(gs_ub) + 84: 8(int) AtomicExchange 66(gs_ua) 69 70 83 + Store 72(out_u1) 84 + 85: 8(int) Load 67(gs_ub) + 86: 8(int) AtomicUMax 66(gs_ua) 69 70 85 + 87: 8(int) Load 67(gs_ub) + 88: 8(int) AtomicUMax 66(gs_ua) 69 70 87 + Store 72(out_u1) 88 + 89: 8(int) Load 67(gs_ub) + 90: 8(int) AtomicUMin 66(gs_ua) 69 70 89 + 91: 8(int) Load 67(gs_ub) + 92: 8(int) AtomicUMin 66(gs_ua) 69 70 91 + Store 72(out_u1) 92 + 93: 8(int) Load 67(gs_ub) + 94: 8(int) AtomicOr 66(gs_ua) 69 70 93 + 95: 8(int) Load 67(gs_ub) + 96: 8(int) AtomicOr 66(gs_ua) 69 70 95 + Store 72(out_u1) 96 + 97: 8(int) Load 67(gs_ub) + 98: 8(int) AtomicXor 66(gs_ua) 69 70 97 + 99: 8(int) Load 67(gs_ub) + 100: 8(int) AtomicXor 66(gs_ua) 69 70 99 + Store 72(out_u1) 100 + ReturnValue 62 + 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 62 + 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 + 115(out_u2): 27(ptr) Variable Function + 105: 24(fvec2) Load 29(inF0) + 108: 106(bvec2) FOrdNotEqual 105 107 + 109: 61(bool) All 108 + 113: 26(ivec2) Load 112(gs_ub2) + 114: 26(ivec2) AtomicIAdd 111(gs_ua2) 69 70 113 + 116: 26(ivec2) Load 112(gs_ub2) + 117: 26(ivec2) AtomicIAdd 111(gs_ua2) 69 70 116 + Store 115(out_u2) 117 + 118: 26(ivec2) Load 112(gs_ub2) + 119: 26(ivec2) AtomicAnd 111(gs_ua2) 69 70 118 + 120: 26(ivec2) Load 112(gs_ub2) + 121: 26(ivec2) AtomicAnd 111(gs_ua2) 69 70 120 + Store 115(out_u2) 121 + 122: 26(ivec2) Load 112(gs_ub2) + 124: 26(ivec2) Load 123(gs_uc2) + 125: 26(ivec2) AtomicCompareExchange 111(gs_ua2) 69 70 70 124 122 + Store 115(out_u2) 125 + 126: 26(ivec2) Load 112(gs_ub2) + 127: 26(ivec2) AtomicExchange 111(gs_ua2) 69 70 126 + Store 115(out_u2) 127 + 128: 26(ivec2) Load 112(gs_ub2) + 129: 26(ivec2) AtomicUMax 111(gs_ua2) 69 70 128 + 130: 26(ivec2) Load 112(gs_ub2) + 131: 26(ivec2) AtomicUMax 111(gs_ua2) 69 70 130 + Store 115(out_u2) 131 + 132: 26(ivec2) Load 112(gs_ub2) + 133: 26(ivec2) AtomicUMin 111(gs_ua2) 69 70 132 + 134: 26(ivec2) Load 112(gs_ub2) + 135: 26(ivec2) AtomicUMin 111(gs_ua2) 69 70 134 + Store 115(out_u2) 135 + 136: 26(ivec2) Load 112(gs_ub2) + 137: 26(ivec2) AtomicOr 111(gs_ua2) 69 70 136 + 138: 26(ivec2) Load 112(gs_ub2) + 139: 26(ivec2) AtomicOr 111(gs_ua2) 69 70 138 + Store 115(out_u2) 139 + 140: 26(ivec2) Load 112(gs_ub2) + 141: 26(ivec2) AtomicXor 111(gs_ua2) 69 70 140 + 142: 26(ivec2) Load 112(gs_ub2) + 143: 26(ivec2) AtomicXor 111(gs_ua2) 69 70 142 + Store 115(out_u2) 143 + ReturnValue 146 + 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 + 159(out_u3): 39(ptr) Variable Function + 149: 36(fvec3) Load 41(inF0) + 152: 150(bvec3) FOrdNotEqual 149 151 + 153: 61(bool) All 152 + 157: 38(ivec3) Load 156(gs_ub3) + 158: 38(ivec3) AtomicIAdd 155(gs_ua3) 69 70 157 + 160: 38(ivec3) Load 156(gs_ub3) + 161: 38(ivec3) AtomicIAdd 155(gs_ua3) 69 70 160 + Store 159(out_u3) 161 + 162: 38(ivec3) Load 156(gs_ub3) + 163: 38(ivec3) AtomicAnd 155(gs_ua3) 69 70 162 + 164: 38(ivec3) Load 156(gs_ub3) + 165: 38(ivec3) AtomicAnd 155(gs_ua3) 69 70 164 + Store 159(out_u3) 165 + 166: 38(ivec3) Load 156(gs_ub3) + 168: 38(ivec3) Load 167(gs_uc3) + 169: 38(ivec3) AtomicCompareExchange 155(gs_ua3) 69 70 70 168 166 + Store 159(out_u3) 169 + 170: 38(ivec3) Load 156(gs_ub3) + 171: 38(ivec3) AtomicExchange 155(gs_ua3) 69 70 170 + Store 159(out_u3) 171 + 172: 38(ivec3) Load 156(gs_ub3) + 173: 38(ivec3) AtomicUMax 155(gs_ua3) 69 70 172 + 174: 38(ivec3) Load 156(gs_ub3) + 175: 38(ivec3) AtomicUMax 155(gs_ua3) 69 70 174 + Store 159(out_u3) 175 + 176: 38(ivec3) Load 156(gs_ub3) + 177: 38(ivec3) AtomicUMin 155(gs_ua3) 69 70 176 + 178: 38(ivec3) Load 156(gs_ub3) + 179: 38(ivec3) AtomicUMin 155(gs_ua3) 69 70 178 + Store 159(out_u3) 179 + 180: 38(ivec3) Load 156(gs_ub3) + 181: 38(ivec3) AtomicOr 155(gs_ua3) 69 70 180 + 182: 38(ivec3) Load 156(gs_ub3) + 183: 38(ivec3) AtomicOr 155(gs_ua3) 69 70 182 + Store 159(out_u3) 183 + 184: 38(ivec3) Load 156(gs_ub3) + 185: 38(ivec3) AtomicXor 155(gs_ua3) 69 70 184 + 186: 38(ivec3) Load 156(gs_ub3) + 187: 38(ivec3) AtomicXor 155(gs_ua3) 69 70 186 + Store 159(out_u3) 187 + ReturnValue 189 + FunctionEnd +58(@ComputeShaderFunction(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 + 202(out_u4): 51(ptr) Variable Function + 192: 48(fvec4) Load 53(inF0) + 195: 193(bvec4) FOrdNotEqual 192 194 + 196: 61(bool) All 195 + 200: 50(ivec4) Load 199(gs_ub4) + 201: 50(ivec4) AtomicIAdd 198(gs_ua4) 69 70 200 + 203: 50(ivec4) Load 199(gs_ub4) + 204: 50(ivec4) AtomicIAdd 198(gs_ua4) 69 70 203 + Store 202(out_u4) 204 + 205: 50(ivec4) Load 199(gs_ub4) + 206: 50(ivec4) AtomicAnd 198(gs_ua4) 69 70 205 + 207: 50(ivec4) Load 199(gs_ub4) + 208: 50(ivec4) AtomicAnd 198(gs_ua4) 69 70 207 + Store 202(out_u4) 208 + 209: 50(ivec4) Load 199(gs_ub4) + 211: 50(ivec4) Load 210(gs_uc4) + 212: 50(ivec4) AtomicCompareExchange 198(gs_ua4) 69 70 70 211 209 + Store 202(out_u4) 212 + 213: 50(ivec4) Load 199(gs_ub4) + 214: 50(ivec4) AtomicExchange 198(gs_ua4) 69 70 213 + Store 202(out_u4) 214 + 215: 50(ivec4) Load 199(gs_ub4) + 216: 50(ivec4) AtomicUMax 198(gs_ua4) 69 70 215 + 217: 50(ivec4) Load 199(gs_ub4) + 218: 50(ivec4) AtomicUMax 198(gs_ua4) 69 70 217 + Store 202(out_u4) 218 + 219: 50(ivec4) Load 199(gs_ub4) + 220: 50(ivec4) AtomicUMin 198(gs_ua4) 69 70 219 + 221: 50(ivec4) Load 199(gs_ub4) + 222: 50(ivec4) AtomicUMin 198(gs_ua4) 69 70 221 + Store 202(out_u4) 222 + 223: 50(ivec4) Load 199(gs_ub4) + 224: 50(ivec4) AtomicOr 198(gs_ua4) 69 70 223 + 225: 50(ivec4) Load 199(gs_ub4) + 226: 50(ivec4) AtomicOr 198(gs_ua4) 69 70 225 + Store 202(out_u4) 226 + 227: 50(ivec4) Load 199(gs_ub4) + 228: 50(ivec4) AtomicXor 198(gs_ua4) 69 70 227 + 229: 50(ivec4) Load 199(gs_ub4) + 230: 50(ivec4) AtomicXor 198(gs_ua4) 69 70 229 + Store 202(out_u4) 230 + ReturnValue 232 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out new file mode 100644 index 0000000000..970691c5c9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out @@ -0,0 +1,125 @@ +hlsl.intrinsics.d3dcolortoubyte4.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of int) +0:5 Function Parameters: +0:? Sequence +0:6 Branch: Return with expression +0:6 Convert float to int ( temp 4-component vector of int) +0:6 vector-scale ( temp 4-component vector of float) +0:6 Constant: +0:6 255.001953 +0:6 vector swizzle ( temp 4-component vector of float) +0:6 col4: direct index for structure ( uniform 4-component vector of float) +0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) +0:6 Constant: +0:6 0 (const uint) +0:6 Sequence +0:6 Constant: +0:6 2 (const int) +0:6 Constant: +0:6 1 (const int) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 3 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) +0:5 Function Call: @main( ( temp 4-component vector of int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of int) +0:5 Function Parameters: +0:? Sequence +0:6 Branch: Return with expression +0:6 Convert float to int ( temp 4-component vector of int) +0:6 vector-scale ( temp 4-component vector of float) +0:6 Constant: +0:6 255.001953 +0:6 vector swizzle ( temp 4-component vector of float) +0:6 col4: direct index for structure ( uniform 4-component vector of float) +0:6 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) +0:6 Constant: +0:6 0 (const uint) +0:6 Sequence +0:6 Constant: +0:6 2 (const int) +0:6 Constant: +0:6 1 (const int) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 3 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) +0:5 Function Call: @main( ( temp 4-component vector of int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float col4}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 29 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 27 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 14 "$Global" + MemberName 14($Global) 0 "col4" + Name 16 "" + Name 27 "@entryPointOutput" + MemberDecorate 14($Global) 0 Offset 0 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 27(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypeFunction 7(ivec4) + 11: TypeFloat 32 + 12: 11(float) Constant 1132396672 + 13: TypeVector 11(float) 4 + 14($Global): TypeStruct 13(fvec4) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 6(int) Constant 0 + 18: TypePointer Uniform 13(fvec4) + 26: TypePointer Output 7(ivec4) +27(@entryPointOutput): 26(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 28: 7(ivec4) FunctionCall 9(@main() + Store 27(@entryPointOutput) 28 + Return + FunctionEnd + 9(@main(): 7(ivec4) Function None 8 + 10: Label + 19: 18(ptr) AccessChain 16 17 + 20: 13(fvec4) Load 19 + 21: 13(fvec4) VectorShuffle 20 20 2 1 0 3 + 22: 13(fvec4) VectorTimesScalar 21 12 + 23: 7(ivec4) ConvertFToS 22 + ReturnValue 23 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out new file mode 100644 index 0000000000..55a102f551 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -0,0 +1,339 @@ +hlsl.intrinsics.double.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp 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 ( temp 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:5 Function Definition: PixelShaderFunction( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp double) +0:? 'inDV1a' ( temp double) +0:? 'inDV1a' (layout( location=0) flat in double) +0:5 move second child to first child ( temp double) +0:? 'inDV1b' ( temp double) +0:? 'inDV1b' (layout( location=1) flat in double) +0:5 move second child to first child ( temp double) +0:? 'inDV1c' ( temp double) +0:? 'inDV1c' (layout( location=2) flat in double) +0:5 move second child to first child ( temp 2-component vector of double) +0:? 'inDV2' ( temp 2-component vector of double) +0:? 'inDV2' (layout( location=3) flat in 2-component vector of double) +0:5 move second child to first child ( temp 3-component vector of double) +0:? 'inDV3' ( temp 3-component vector of double) +0:? 'inDV3' (layout( location=4) flat in 3-component vector of double) +0:5 move second child to first child ( temp 4-component vector of double) +0:? 'inDV4' ( temp 4-component vector of double) +0:? 'inDV4' (layout( location=6) flat in 4-component vector of double) +0:5 move second child to first child ( temp uint) +0:? 'inU1a' ( temp uint) +0:? 'inU1a' (layout( location=8) flat in uint) +0:5 move second child to first child ( temp uint) +0:? 'inU1b' ( temp uint) +0:? 'inU1b' (layout( location=9) flat in uint) +0:5 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:5 Function Call: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp float) +0:? 'inDV1a' ( temp double) +0:? 'inDV1b' ( temp double) +0:? 'inDV1c' ( temp double) +0:? 'inDV2' ( temp 2-component vector of double) +0:? 'inDV3' ( temp 3-component vector of double) +0:? 'inDV4' ( temp 4-component vector of double) +0:? 'inU1a' ( temp uint) +0:? 'inU1b' ( temp uint) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'inDV1a' (layout( location=0) flat in double) +0:? 'inDV1b' (layout( location=1) flat in double) +0:? 'inDV1c' (layout( location=2) flat in double) +0:? 'inDV2' (layout( location=3) flat in 2-component vector of double) +0:? 'inDV3' (layout( location=4) flat in 3-component vector of double) +0:? 'inDV4' (layout( location=6) flat in 4-component vector of double) +0:? 'inU1a' (layout( location=8) flat in uint) +0:? 'inU1b' (layout( location=9) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp 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 ( temp 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:5 Function Definition: PixelShaderFunction( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp double) +0:? 'inDV1a' ( temp double) +0:? 'inDV1a' (layout( location=0) flat in double) +0:5 move second child to first child ( temp double) +0:? 'inDV1b' ( temp double) +0:? 'inDV1b' (layout( location=1) flat in double) +0:5 move second child to first child ( temp double) +0:? 'inDV1c' ( temp double) +0:? 'inDV1c' (layout( location=2) flat in double) +0:5 move second child to first child ( temp 2-component vector of double) +0:? 'inDV2' ( temp 2-component vector of double) +0:? 'inDV2' (layout( location=3) flat in 2-component vector of double) +0:5 move second child to first child ( temp 3-component vector of double) +0:? 'inDV3' ( temp 3-component vector of double) +0:? 'inDV3' (layout( location=4) flat in 3-component vector of double) +0:5 move second child to first child ( temp 4-component vector of double) +0:? 'inDV4' ( temp 4-component vector of double) +0:? 'inDV4' (layout( location=6) flat in 4-component vector of double) +0:5 move second child to first child ( temp uint) +0:? 'inU1a' ( temp uint) +0:? 'inU1a' (layout( location=8) flat in uint) +0:5 move second child to first child ( temp uint) +0:? 'inU1b' ( temp uint) +0:? 'inU1b' (layout( location=9) flat in uint) +0:5 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:5 Function Call: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp float) +0:? 'inDV1a' ( temp double) +0:? 'inDV1b' ( temp double) +0:? 'inDV1c' ( temp double) +0:? 'inDV2' ( temp 2-component vector of double) +0:? 'inDV3' ( temp 3-component vector of double) +0:? 'inDV4' ( temp 4-component vector of double) +0:? 'inU1a' ( temp uint) +0:? 'inU1b' ( temp uint) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'inDV1a' (layout( location=0) flat in double) +0:? 'inDV1b' (layout( location=1) flat in double) +0:? 'inDV1c' (layout( location=2) flat in double) +0:? 'inDV2' (layout( location=3) flat in 2-component vector of double) +0:? 'inDV3' (layout( location=4) flat in 3-component vector of double) +0:? 'inDV4' (layout( location=6) flat in 4-component vector of double) +0:? 'inU1a' (layout( location=8) flat in uint) +0:? 'inU1b' (layout( location=9) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 90 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 44 47 50 54 58 62 66 69 72 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 26 "@PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1;" + Name 18 "inDV1a" + Name 19 "inDV1b" + Name 20 "inDV1c" + Name 21 "inDV2" + Name 22 "inDV3" + Name 23 "inDV4" + Name 24 "inU1a" + Name 25 "inU1b" + Name 28 "r00" + Name 33 "r01" + Name 42 "inDV1a" + Name 44 "inDV1a" + Name 46 "inDV1b" + Name 47 "inDV1b" + Name 49 "inDV1c" + Name 50 "inDV1c" + Name 52 "inDV2" + Name 54 "inDV2" + Name 56 "inDV3" + Name 58 "inDV3" + Name 60 "inDV4" + Name 62 "inDV4" + Name 64 "inU1a" + Name 66 "inU1a" + Name 68 "inU1b" + Name 69 "inU1b" + Name 72 "@entryPointOutput" + Name 73 "param" + Name 75 "param" + Name 77 "param" + Name 79 "param" + Name 81 "param" + Name 83 "param" + Name 85 "param" + Name 87 "param" + Decorate 44(inDV1a) Flat + Decorate 44(inDV1a) Location 0 + Decorate 47(inDV1b) Flat + Decorate 47(inDV1b) Location 1 + Decorate 50(inDV1c) Flat + Decorate 50(inDV1c) Location 2 + Decorate 54(inDV2) Flat + Decorate 54(inDV2) Location 3 + Decorate 58(inDV3) Flat + Decorate 58(inDV3) Location 4 + Decorate 62(inDV4) Flat + Decorate 62(inDV4) Location 6 + Decorate 66(inU1a) Flat + Decorate 66(inU1a) Location 8 + Decorate 69(inU1b) Flat + Decorate 69(inU1b) Location 9 + Decorate 72(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 64 + 7: TypePointer Function 6(float64_t) + 8: TypeVector 6(float64_t) 2 + 9: TypePointer Function 8(f64vec2) + 10: TypeVector 6(float64_t) 3 + 11: TypePointer Function 10(f64vec3) + 12: TypeVector 6(float64_t) 4 + 13: TypePointer Function 12(f64vec4) + 14: TypeInt 32 0 + 15: TypePointer Function 14(int) + 16: TypeFloat 32 + 17: TypeFunction 16(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 11(ptr) 13(ptr) 15(ptr) 15(ptr) + 36: TypeVector 14(int) 2 + 39: 16(float) Constant 0 + 43: TypePointer Input 6(float64_t) + 44(inDV1a): 43(ptr) Variable Input + 47(inDV1b): 43(ptr) Variable Input + 50(inDV1c): 43(ptr) Variable Input + 53: TypePointer Input 8(f64vec2) + 54(inDV2): 53(ptr) Variable Input + 57: TypePointer Input 10(f64vec3) + 58(inDV3): 57(ptr) Variable Input + 61: TypePointer Input 12(f64vec4) + 62(inDV4): 61(ptr) Variable Input + 65: TypePointer Input 14(int) + 66(inU1a): 65(ptr) Variable Input + 69(inU1b): 65(ptr) Variable Input + 71: TypePointer Output 16(float) +72(@entryPointOutput): 71(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 42(inDV1a): 7(ptr) Variable Function + 46(inDV1b): 7(ptr) Variable Function + 49(inDV1c): 7(ptr) Variable Function + 52(inDV2): 9(ptr) Variable Function + 56(inDV3): 11(ptr) Variable Function + 60(inDV4): 13(ptr) Variable Function + 64(inU1a): 15(ptr) Variable Function + 68(inU1b): 15(ptr) Variable Function + 73(param): 7(ptr) Variable Function + 75(param): 7(ptr) Variable Function + 77(param): 7(ptr) Variable Function + 79(param): 9(ptr) Variable Function + 81(param): 11(ptr) Variable Function + 83(param): 13(ptr) Variable Function + 85(param): 15(ptr) Variable Function + 87(param): 15(ptr) Variable Function + 45:6(float64_t) Load 44(inDV1a) + Store 42(inDV1a) 45 + 48:6(float64_t) Load 47(inDV1b) + Store 46(inDV1b) 48 + 51:6(float64_t) Load 50(inDV1c) + Store 49(inDV1c) 51 + 55: 8(f64vec2) Load 54(inDV2) + Store 52(inDV2) 55 + 59: 10(f64vec3) Load 58(inDV3) + Store 56(inDV3) 59 + 63: 12(f64vec4) Load 62(inDV4) + Store 60(inDV4) 63 + 67: 14(int) Load 66(inU1a) + Store 64(inU1a) 67 + 70: 14(int) Load 69(inU1b) + Store 68(inU1b) 70 + 74:6(float64_t) Load 42(inDV1a) + Store 73(param) 74 + 76:6(float64_t) Load 46(inDV1b) + Store 75(param) 76 + 78:6(float64_t) Load 49(inDV1c) + Store 77(param) 78 + 80: 8(f64vec2) Load 52(inDV2) + Store 79(param) 80 + 82: 10(f64vec3) Load 56(inDV3) + Store 81(param) 82 + 84: 12(f64vec4) Load 60(inDV4) + Store 83(param) 84 + 86: 14(int) Load 64(inU1a) + Store 85(param) 86 + 88: 14(int) Load 68(inU1b) + Store 87(param) 88 + 89: 16(float) FunctionCall 26(@PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1;) 73(param) 75(param) 77(param) 79(param) 81(param) 83(param) 85(param) 87(param) + Store 72(@entryPointOutput) 89 + Return + FunctionEnd +26(@PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1;): 16(float) Function None 17 + 18(inDV1a): 7(ptr) FunctionParameter + 19(inDV1b): 7(ptr) FunctionParameter + 20(inDV1c): 7(ptr) FunctionParameter + 21(inDV2): 9(ptr) FunctionParameter + 22(inDV3): 11(ptr) FunctionParameter + 23(inDV4): 13(ptr) FunctionParameter + 24(inU1a): 15(ptr) FunctionParameter + 25(inU1b): 15(ptr) FunctionParameter + 27: Label + 28(r00): 7(ptr) Variable Function + 33(r01): 7(ptr) Variable Function + 29:6(float64_t) Load 18(inDV1a) + 30:6(float64_t) Load 19(inDV1b) + 31:6(float64_t) Load 20(inDV1c) + 32:6(float64_t) ExtInst 1(GLSL.std.450) 50(Fma) 29 30 31 + Store 28(r00) 32 + 34: 14(int) Load 24(inU1a) + 35: 14(int) Load 25(inU1b) + 37: 36(ivec2) CompositeConstruct 34 35 + 38:6(float64_t) Bitcast 37 + Store 33(r01) 38 + ReturnValue 39 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out new file mode 100644 index 0000000000..e7865627ee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -0,0 +1,286 @@ +hlsl.intrinsics.evalfns.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void) +0:3 Function Parameters: +0:3 'inF1' ( in float) +0:3 'inF2' ( in 2-component vector of float) +0:3 'inF3' ( in 3-component vector of float) +0:3 'inF4' ( in 4-component vector of float) +0:3 'inI2' ( in 2-component vector of int) +0:? Sequence +0:4 interpolateAtOffset ( temp float) +0:4 'inF1' ( in float) +0:? Constant: +0:? -0.500000 +0:? -0.062500 +0:5 interpolateAtOffset ( temp 2-component vector of float) +0:5 'inF2' ( in 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.062500 +0:6 interpolateAtOffset ( temp 3-component vector of float) +0:6 'inF3' ( in 3-component vector of float) +0:? Constant: +0:? 0.187500 +0:? -0.375000 +0:7 interpolateAtOffset ( temp 4-component vector of float) +0:7 'inF4' ( in 4-component vector of float) +0:? Constant: +0:? 0.437500 +0:? -0.500000 +0:9 interpolateAtOffset ( temp float) +0:9 'inF1' ( in float) +0:9 vector-scale ( temp 2-component vector of float) +0:9 Convert int to float ( temp 2-component vector of float) +0:9 right-shift ( temp 2-component vector of int) +0:9 left-shift ( temp 2-component vector of int) +0:9 'inI2' ( in 2-component vector of int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 0.062500 +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp float) +0:? 'inF1' ( temp float) +0:? 'inF1' (layout( location=0) in float) +0:3 move second child to first child ( temp 2-component vector of float) +0:? 'inF2' ( temp 2-component vector of float) +0:? 'inF2' (layout( location=1) in 2-component vector of float) +0:3 move second child to first child ( temp 3-component vector of float) +0:? 'inF3' ( temp 3-component vector of float) +0:? 'inF3' (layout( location=2) in 3-component vector of float) +0:3 move second child to first child ( temp 4-component vector of float) +0:? 'inF4' ( temp 4-component vector of float) +0:? 'inF4' (layout( location=3) in 4-component vector of float) +0:3 move second child to first child ( temp 2-component vector of int) +0:? 'inI2' ( temp 2-component vector of int) +0:? 'inI2' (layout( location=4) flat in 2-component vector of int) +0:3 Function Call: @main(f1;vf2;vf3;vf4;vi2; ( temp void) +0:? 'inF1' ( temp float) +0:? 'inF2' ( temp 2-component vector of float) +0:? 'inF3' ( temp 3-component vector of float) +0:? 'inF4' ( temp 4-component vector of float) +0:? 'inI2' ( temp 2-component vector of int) +0:? Linker Objects +0:? 'inF1' (layout( location=0) in float) +0:? 'inF2' (layout( location=1) in 2-component vector of float) +0:? 'inF3' (layout( location=2) in 3-component vector of float) +0:? 'inF4' (layout( location=3) in 4-component vector of float) +0:? 'inI2' (layout( location=4) flat in 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void) +0:3 Function Parameters: +0:3 'inF1' ( in float) +0:3 'inF2' ( in 2-component vector of float) +0:3 'inF3' ( in 3-component vector of float) +0:3 'inF4' ( in 4-component vector of float) +0:3 'inI2' ( in 2-component vector of int) +0:? Sequence +0:4 interpolateAtOffset ( temp float) +0:4 'inF1' ( in float) +0:? Constant: +0:? -0.500000 +0:? -0.062500 +0:5 interpolateAtOffset ( temp 2-component vector of float) +0:5 'inF2' ( in 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.062500 +0:6 interpolateAtOffset ( temp 3-component vector of float) +0:6 'inF3' ( in 3-component vector of float) +0:? Constant: +0:? 0.187500 +0:? -0.375000 +0:7 interpolateAtOffset ( temp 4-component vector of float) +0:7 'inF4' ( in 4-component vector of float) +0:? Constant: +0:? 0.437500 +0:? -0.500000 +0:9 interpolateAtOffset ( temp float) +0:9 'inF1' ( in float) +0:9 vector-scale ( temp 2-component vector of float) +0:9 Convert int to float ( temp 2-component vector of float) +0:9 right-shift ( temp 2-component vector of int) +0:9 left-shift ( temp 2-component vector of int) +0:9 'inI2' ( in 2-component vector of int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 0.062500 +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp float) +0:? 'inF1' ( temp float) +0:? 'inF1' (layout( location=0) in float) +0:3 move second child to first child ( temp 2-component vector of float) +0:? 'inF2' ( temp 2-component vector of float) +0:? 'inF2' (layout( location=1) in 2-component vector of float) +0:3 move second child to first child ( temp 3-component vector of float) +0:? 'inF3' ( temp 3-component vector of float) +0:? 'inF3' (layout( location=2) in 3-component vector of float) +0:3 move second child to first child ( temp 4-component vector of float) +0:? 'inF4' ( temp 4-component vector of float) +0:? 'inF4' (layout( location=3) in 4-component vector of float) +0:3 move second child to first child ( temp 2-component vector of int) +0:? 'inI2' ( temp 2-component vector of int) +0:? 'inI2' (layout( location=4) flat in 2-component vector of int) +0:3 Function Call: @main(f1;vf2;vf3;vf4;vi2; ( temp void) +0:? 'inF1' ( temp float) +0:? 'inF2' ( temp 2-component vector of float) +0:? 'inF3' ( temp 3-component vector of float) +0:? 'inF4' ( temp 4-component vector of float) +0:? 'inI2' ( temp 2-component vector of int) +0:? Linker Objects +0:? 'inF1' (layout( location=0) in float) +0:? 'inF2' (layout( location=1) in 2-component vector of float) +0:? 'inF3' (layout( location=2) in 3-component vector of float) +0:? 'inF4' (layout( location=3) in 4-component vector of float) +0:? 'inI2' (layout( location=4) flat in 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 80 + + Capability Shader + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 51 55 59 63 67 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 23 "@main(f1;vf2;vf3;vf4;vi2;" + Name 18 "inF1" + Name 19 "inF2" + Name 20 "inF3" + Name 21 "inF4" + Name 22 "inI2" + Name 49 "inF1" + Name 51 "inF1" + Name 53 "inF2" + Name 55 "inF2" + Name 57 "inF3" + Name 59 "inF3" + Name 61 "inF4" + Name 63 "inF4" + Name 65 "inI2" + Name 67 "inI2" + Name 69 "param" + Name 71 "param" + Name 73 "param" + Name 75 "param" + Name 77 "param" + Decorate 51(inF1) Location 0 + Decorate 55(inF2) Location 1 + Decorate 59(inF3) Location 2 + Decorate 63(inF4) Location 3 + Decorate 67(inI2) Flat + Decorate 67(inI2) Location 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeVector 6(float) 2 + 9: TypePointer Function 8(fvec2) + 10: TypeVector 6(float) 3 + 11: TypePointer Function 10(fvec3) + 12: TypeVector 6(float) 4 + 13: TypePointer Function 12(fvec4) + 14: TypeInt 32 1 + 15: TypeVector 14(int) 2 + 16: TypePointer Function 15(ivec2) + 17: TypeFunction 2 7(ptr) 9(ptr) 11(ptr) 13(ptr) 16(ptr) + 25: 6(float) Constant 3204448256 + 26: 6(float) Constant 3179282432 + 27: 8(fvec2) ConstantComposite 25 26 + 29: 6(float) Constant 0 + 30: 6(float) Constant 1031798784 + 31: 8(fvec2) ConstantComposite 29 30 + 33: 6(float) Constant 1044381696 + 34: 6(float) Constant 3200253952 + 35: 8(fvec2) ConstantComposite 33 34 + 37: 6(float) Constant 1054867456 + 38: 8(fvec2) ConstantComposite 37 25 + 41: 14(int) Constant 28 + 50: TypePointer Input 6(float) + 51(inF1): 50(ptr) Variable Input + 54: TypePointer Input 8(fvec2) + 55(inF2): 54(ptr) Variable Input + 58: TypePointer Input 10(fvec3) + 59(inF3): 58(ptr) Variable Input + 62: TypePointer Input 12(fvec4) + 63(inF4): 62(ptr) Variable Input + 66: TypePointer Input 15(ivec2) + 67(inI2): 66(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 49(inF1): 7(ptr) Variable Function + 53(inF2): 9(ptr) Variable Function + 57(inF3): 11(ptr) Variable Function + 61(inF4): 13(ptr) Variable Function + 65(inI2): 16(ptr) Variable Function + 69(param): 7(ptr) Variable Function + 71(param): 9(ptr) Variable Function + 73(param): 11(ptr) Variable Function + 75(param): 13(ptr) Variable Function + 77(param): 16(ptr) Variable Function + 52: 6(float) Load 51(inF1) + Store 49(inF1) 52 + 56: 8(fvec2) Load 55(inF2) + Store 53(inF2) 56 + 60: 10(fvec3) Load 59(inF3) + Store 57(inF3) 60 + 64: 12(fvec4) Load 63(inF4) + Store 61(inF4) 64 + 68: 15(ivec2) Load 67(inI2) + Store 65(inI2) 68 + 70: 6(float) Load 49(inF1) + Store 69(param) 70 + 72: 8(fvec2) Load 53(inF2) + Store 71(param) 72 + 74: 10(fvec3) Load 57(inF3) + Store 73(param) 74 + 76: 12(fvec4) Load 61(inF4) + Store 75(param) 76 + 78: 15(ivec2) Load 65(inI2) + Store 77(param) 78 + 79: 2 FunctionCall 23(@main(f1;vf2;vf3;vf4;vi2;) 69(param) 71(param) 73(param) 75(param) 77(param) + Return + FunctionEnd +23(@main(f1;vf2;vf3;vf4;vi2;): 2 Function None 17 + 18(inF1): 7(ptr) FunctionParameter + 19(inF2): 9(ptr) FunctionParameter + 20(inF3): 11(ptr) FunctionParameter + 21(inF4): 13(ptr) FunctionParameter + 22(inI2): 16(ptr) FunctionParameter + 24: Label + 28: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 18(inF1) 27 + 32: 8(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 19(inF2) 31 + 36: 10(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 20(inF3) 35 + 39: 12(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 21(inF4) 38 + 40: 15(ivec2) Load 22(inI2) + 42: 15(ivec2) CompositeConstruct 41 41 + 43: 15(ivec2) ShiftLeftLogical 40 42 + 44: 15(ivec2) CompositeConstruct 41 41 + 45: 15(ivec2) ShiftRightArithmetic 43 44 + 46: 8(fvec2) ConvertSToF 45 + 47: 8(fvec2) VectorTimesScalar 46 30 + 48: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 18(inF1) 47 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out new file mode 100644 index 0000000000..c5619efa55 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -0,0 +1,389 @@ +hlsl.intrinsics.f1632.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunctionS(u1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in uint) +0:? Sequence +0:3 Branch: Return with expression +0:3 direct index ( temp float) +0:3 unpackHalf2x16 ( temp 2-component vector of float) +0:3 'inF0' ( in uint) +0:3 Constant: +0:3 0 (const int) +0:7 Function Definition: PixelShaderFunction1(vu1; ( temp 1-component vector of float) +0:7 Function Parameters: +0:7 'inF0' ( in 1-component vector of uint) +0:? Sequence +0:8 Branch: Return with expression +0:8 Constant: +0:8 0.000000 +0:12 Function Definition: PixelShaderFunction2(vu2; ( temp 2-component vector of float) +0:12 Function Parameters: +0:12 'inF0' ( in 2-component vector of uint) +0:? Sequence +0:13 Branch: Return with expression +0:13 Construct vec2 ( temp 2-component vector of float) +0:13 direct index ( temp float) +0:13 unpackHalf2x16 ( temp 2-component vector of float) +0:13 direct index ( temp uint) +0:13 'inF0' ( in 2-component vector of uint) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( temp float) +0:13 unpackHalf2x16 ( temp 2-component vector of float) +0:13 direct index ( temp uint) +0:13 'inF0' ( in 2-component vector of uint) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: PixelShaderFunction3(vu3; ( temp 3-component vector of float) +0:17 Function Parameters: +0:17 'inF0' ( in 3-component vector of uint) +0:? Sequence +0:18 Branch: Return with expression +0:18 Construct vec3 ( temp 3-component vector of float) +0:18 direct index ( temp float) +0:18 unpackHalf2x16 ( temp 2-component vector of float) +0:18 direct index ( temp uint) +0:18 'inF0' ( in 3-component vector of uint) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 unpackHalf2x16 ( temp 2-component vector of float) +0:18 direct index ( temp uint) +0:18 'inF0' ( in 3-component vector of uint) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 unpackHalf2x16 ( temp 2-component vector of float) +0:18 direct index ( temp uint) +0:18 'inF0' ( in 3-component vector of uint) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 0 (const int) +0:22 Function Definition: PixelShaderFunction(vu4; ( temp 4-component vector of float) +0:22 Function Parameters: +0:22 'inF0' ( in 4-component vector of uint) +0:? Sequence +0:23 Branch: Return with expression +0:23 Construct vec4 ( temp 4-component vector of float) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 3 (const int) +0:23 Constant: +0:23 0 (const int) +0:27 Function Definition: @main( ( temp 4-component vector of float) +0:27 Function Parameters: +0:? Sequence +0:28 Branch: Return with expression +0:28 Constant: +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunctionS(u1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in uint) +0:? Sequence +0:3 Branch: Return with expression +0:3 direct index ( temp float) +0:3 unpackHalf2x16 ( temp 2-component vector of float) +0:3 'inF0' ( in uint) +0:3 Constant: +0:3 0 (const int) +0:7 Function Definition: PixelShaderFunction1(vu1; ( temp 1-component vector of float) +0:7 Function Parameters: +0:7 'inF0' ( in 1-component vector of uint) +0:? Sequence +0:8 Branch: Return with expression +0:8 Constant: +0:8 0.000000 +0:12 Function Definition: PixelShaderFunction2(vu2; ( temp 2-component vector of float) +0:12 Function Parameters: +0:12 'inF0' ( in 2-component vector of uint) +0:? Sequence +0:13 Branch: Return with expression +0:13 Construct vec2 ( temp 2-component vector of float) +0:13 direct index ( temp float) +0:13 unpackHalf2x16 ( temp 2-component vector of float) +0:13 direct index ( temp uint) +0:13 'inF0' ( in 2-component vector of uint) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 direct index ( temp float) +0:13 unpackHalf2x16 ( temp 2-component vector of float) +0:13 direct index ( temp uint) +0:13 'inF0' ( in 2-component vector of uint) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: PixelShaderFunction3(vu3; ( temp 3-component vector of float) +0:17 Function Parameters: +0:17 'inF0' ( in 3-component vector of uint) +0:? Sequence +0:18 Branch: Return with expression +0:18 Construct vec3 ( temp 3-component vector of float) +0:18 direct index ( temp float) +0:18 unpackHalf2x16 ( temp 2-component vector of float) +0:18 direct index ( temp uint) +0:18 'inF0' ( in 3-component vector of uint) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 unpackHalf2x16 ( temp 2-component vector of float) +0:18 direct index ( temp uint) +0:18 'inF0' ( in 3-component vector of uint) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 unpackHalf2x16 ( temp 2-component vector of float) +0:18 direct index ( temp uint) +0:18 'inF0' ( in 3-component vector of uint) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 0 (const int) +0:22 Function Definition: PixelShaderFunction(vu4; ( temp 4-component vector of float) +0:22 Function Parameters: +0:22 'inF0' ( in 4-component vector of uint) +0:? Sequence +0:23 Branch: Return with expression +0:23 Construct vec4 ( temp 4-component vector of float) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp float) +0:23 unpackHalf2x16 ( temp 2-component vector of float) +0:23 direct index ( temp uint) +0:23 'inF0' ( in 4-component vector of uint) +0:23 Constant: +0:23 3 (const int) +0:23 Constant: +0:23 0 (const int) +0:27 Function Definition: @main( ( temp 4-component vector of float) +0:27 Function Parameters: +0:? Sequence +0:28 Branch: Return with expression +0:28 Constant: +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 103 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 101 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "PixelShaderFunctionS(u1;" + Name 10 "inF0" + Name 14 "PixelShaderFunction1(vu1;" + Name 13 "inF0" + Name 21 "PixelShaderFunction2(vu2;" + Name 20 "inF0" + Name 28 "PixelShaderFunction3(vu3;" + Name 27 "inF0" + Name 35 "PixelShaderFunction(vu4;" + Name 34 "inF0" + Name 38 "@main(" + Name 101 "@entryPointOutput" + Decorate 101(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeFunction 8(float) 7(ptr) + 16: TypeVector 6(int) 2 + 17: TypePointer Function 16(ivec2) + 18: TypeVector 8(float) 2 + 19: TypeFunction 18(fvec2) 17(ptr) + 23: TypeVector 6(int) 3 + 24: TypePointer Function 23(ivec3) + 25: TypeVector 8(float) 3 + 26: TypeFunction 25(fvec3) 24(ptr) + 30: TypeVector 6(int) 4 + 31: TypePointer Function 30(ivec4) + 32: TypeVector 8(float) 4 + 33: TypeFunction 32(fvec4) 31(ptr) + 37: TypeFunction 32(fvec4) + 42: 6(int) Constant 0 + 46: 8(float) Constant 0 + 53: 6(int) Constant 1 + 69: 6(int) Constant 2 + 89: 6(int) Constant 3 + 97: 32(fvec4) ConstantComposite 46 46 46 46 + 100: TypePointer Output 32(fvec4) +101(@entryPointOutput): 100(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 102: 32(fvec4) FunctionCall 38(@main() + Store 101(@entryPointOutput) 102 + Return + FunctionEnd +11(PixelShaderFunctionS(u1;): 8(float) Function None 9 + 10(inF0): 7(ptr) FunctionParameter + 12: Label + 40: 6(int) Load 10(inF0) + 41: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 40 + 43: 8(float) CompositeExtract 41 0 + ReturnValue 43 + FunctionEnd +14(PixelShaderFunction1(vu1;): 8(float) Function None 9 + 13(inF0): 7(ptr) FunctionParameter + 15: Label + ReturnValue 46 + FunctionEnd +21(PixelShaderFunction2(vu2;): 18(fvec2) Function None 19 + 20(inF0): 17(ptr) FunctionParameter + 22: Label + 49: 7(ptr) AccessChain 20(inF0) 42 + 50: 6(int) Load 49 + 51: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 50 + 52: 8(float) CompositeExtract 51 0 + 54: 7(ptr) AccessChain 20(inF0) 53 + 55: 6(int) Load 54 + 56: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 55 + 57: 8(float) CompositeExtract 56 0 + 58: 18(fvec2) CompositeConstruct 52 57 + ReturnValue 58 + FunctionEnd +28(PixelShaderFunction3(vu3;): 25(fvec3) Function None 26 + 27(inF0): 24(ptr) FunctionParameter + 29: Label + 61: 7(ptr) AccessChain 27(inF0) 42 + 62: 6(int) Load 61 + 63: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 62 + 64: 8(float) CompositeExtract 63 0 + 65: 7(ptr) AccessChain 27(inF0) 53 + 66: 6(int) Load 65 + 67: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 66 + 68: 8(float) CompositeExtract 67 0 + 70: 7(ptr) AccessChain 27(inF0) 69 + 71: 6(int) Load 70 + 72: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 71 + 73: 8(float) CompositeExtract 72 0 + 74: 25(fvec3) CompositeConstruct 64 68 73 + ReturnValue 74 + FunctionEnd +35(PixelShaderFunction(vu4;): 32(fvec4) Function None 33 + 34(inF0): 31(ptr) FunctionParameter + 36: Label + 77: 7(ptr) AccessChain 34(inF0) 42 + 78: 6(int) Load 77 + 79: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 78 + 80: 8(float) CompositeExtract 79 0 + 81: 7(ptr) AccessChain 34(inF0) 53 + 82: 6(int) Load 81 + 83: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 82 + 84: 8(float) CompositeExtract 83 0 + 85: 7(ptr) AccessChain 34(inF0) 69 + 86: 6(int) Load 85 + 87: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 86 + 88: 8(float) CompositeExtract 87 0 + 90: 7(ptr) AccessChain 34(inF0) 89 + 91: 6(int) Load 90 + 92: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 91 + 93: 8(float) CompositeExtract 92 0 + 94: 32(fvec4) CompositeConstruct 80 84 88 93 + ReturnValue 94 + FunctionEnd + 38(@main(): 32(fvec4) Function None 37 + 39: Label + ReturnValue 97 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out new file mode 100644 index 0000000000..c447efc420 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out @@ -0,0 +1,402 @@ +hlsl.intrinsics.f3216.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunctionS(f1; ( temp uint) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:? Sequence +0:3 Branch: Return with expression +0:3 packHalf2x16 ( temp uint) +0:3 Construct vec2 ( temp 2-component vector of float) +0:3 'inF0' ( in float) +0:3 Constant: +0:3 0.000000 +0:7 Function Definition: PixelShaderFunction1(vf1; ( temp 1-component vector of uint) +0:7 Function Parameters: +0:7 'inF0' ( in 1-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 Construct uint ( temp 1-component vector of uint) +0:8 packHalf2x16 ( temp uint) +0:8 Construct vec2 ( temp 2-component vector of float) +0:8 Construct float ( in float) +0:8 'inF0' ( in 1-component vector of float) +0:8 Constant: +0:8 0.000000 +0:12 Function Definition: PixelShaderFunction2(vf2; ( temp 2-component vector of uint) +0:12 Function Parameters: +0:12 'inF0' ( in 2-component vector of float) +0:? Sequence +0:13 Branch: Return with expression +0:13 Construct uvec2 ( temp 2-component vector of uint) +0:13 packHalf2x16 ( temp uint) +0:13 Construct vec2 ( temp 2-component vector of float) +0:13 direct index ( temp float) +0:13 'inF0' ( in 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 packHalf2x16 ( temp uint) +0:13 Construct vec2 ( temp 2-component vector of float) +0:13 direct index ( temp float) +0:13 'inF0' ( in 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0.000000 +0:17 Function Definition: PixelShaderFunction3(vf3; ( temp 3-component vector of uint) +0:17 Function Parameters: +0:17 'inF0' ( in 3-component vector of float) +0:? Sequence +0:18 Branch: Return with expression +0:18 Construct uvec3 ( temp 3-component vector of uint) +0:18 packHalf2x16 ( temp uint) +0:18 Construct vec2 ( temp 2-component vector of float) +0:18 direct index ( temp float) +0:18 'inF0' ( in 3-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0.000000 +0:18 packHalf2x16 ( temp uint) +0:18 Construct vec2 ( temp 2-component vector of float) +0:18 direct index ( temp float) +0:18 'inF0' ( in 3-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0.000000 +0:18 packHalf2x16 ( temp uint) +0:18 Construct vec2 ( temp 2-component vector of float) +0:18 direct index ( temp float) +0:18 'inF0' ( in 3-component vector of float) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 0.000000 +0:22 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of uint) +0:22 Function Parameters: +0:22 'inF0' ( in 4-component vector of float) +0:? Sequence +0:23 Branch: Return with expression +0:23 Construct uvec4 ( temp 4-component vector of uint) +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0.000000 +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0.000000 +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.000000 +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 3 (const int) +0:23 Constant: +0:23 0.000000 +0:27 Function Definition: @main( ( temp 4-component vector of float) +0:27 Function Parameters: +0:? Sequence +0:28 Branch: Return with expression +0:28 Constant: +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunctionS(f1; ( temp uint) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:? Sequence +0:3 Branch: Return with expression +0:3 packHalf2x16 ( temp uint) +0:3 Construct vec2 ( temp 2-component vector of float) +0:3 'inF0' ( in float) +0:3 Constant: +0:3 0.000000 +0:7 Function Definition: PixelShaderFunction1(vf1; ( temp 1-component vector of uint) +0:7 Function Parameters: +0:7 'inF0' ( in 1-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 Construct uint ( temp 1-component vector of uint) +0:8 packHalf2x16 ( temp uint) +0:8 Construct vec2 ( temp 2-component vector of float) +0:8 Construct float ( in float) +0:8 'inF0' ( in 1-component vector of float) +0:8 Constant: +0:8 0.000000 +0:12 Function Definition: PixelShaderFunction2(vf2; ( temp 2-component vector of uint) +0:12 Function Parameters: +0:12 'inF0' ( in 2-component vector of float) +0:? Sequence +0:13 Branch: Return with expression +0:13 Construct uvec2 ( temp 2-component vector of uint) +0:13 packHalf2x16 ( temp uint) +0:13 Construct vec2 ( temp 2-component vector of float) +0:13 direct index ( temp float) +0:13 'inF0' ( in 2-component vector of float) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 packHalf2x16 ( temp uint) +0:13 Construct vec2 ( temp 2-component vector of float) +0:13 direct index ( temp float) +0:13 'inF0' ( in 2-component vector of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0.000000 +0:17 Function Definition: PixelShaderFunction3(vf3; ( temp 3-component vector of uint) +0:17 Function Parameters: +0:17 'inF0' ( in 3-component vector of float) +0:? Sequence +0:18 Branch: Return with expression +0:18 Construct uvec3 ( temp 3-component vector of uint) +0:18 packHalf2x16 ( temp uint) +0:18 Construct vec2 ( temp 2-component vector of float) +0:18 direct index ( temp float) +0:18 'inF0' ( in 3-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0.000000 +0:18 packHalf2x16 ( temp uint) +0:18 Construct vec2 ( temp 2-component vector of float) +0:18 direct index ( temp float) +0:18 'inF0' ( in 3-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 0.000000 +0:18 packHalf2x16 ( temp uint) +0:18 Construct vec2 ( temp 2-component vector of float) +0:18 direct index ( temp float) +0:18 'inF0' ( in 3-component vector of float) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 0.000000 +0:22 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of uint) +0:22 Function Parameters: +0:22 'inF0' ( in 4-component vector of float) +0:? Sequence +0:23 Branch: Return with expression +0:23 Construct uvec4 ( temp 4-component vector of uint) +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0.000000 +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0.000000 +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.000000 +0:23 packHalf2x16 ( temp uint) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 direct index ( temp float) +0:23 'inF0' ( in 4-component vector of float) +0:23 Constant: +0:23 3 (const int) +0:23 Constant: +0:23 0.000000 +0:27 Function Definition: @main( ( temp 4-component vector of float) +0:27 Function Parameters: +0:? Sequence +0:28 Branch: Return with expression +0:28 Constant: +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 106 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 104 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "PixelShaderFunctionS(f1;" + Name 10 "inF0" + Name 14 "PixelShaderFunction1(vf1;" + Name 13 "inF0" + Name 21 "PixelShaderFunction2(vf2;" + Name 20 "inF0" + Name 28 "PixelShaderFunction3(vf3;" + Name 27 "inF0" + Name 35 "PixelShaderFunction(vf4;" + Name 34 "inF0" + Name 38 "@main(" + Name 104 "@entryPointOutput" + Decorate 104(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeInt 32 0 + 9: TypeFunction 8(int) 7(ptr) + 16: TypeVector 6(float) 2 + 17: TypePointer Function 16(fvec2) + 18: TypeVector 8(int) 2 + 19: TypeFunction 18(ivec2) 17(ptr) + 23: TypeVector 6(float) 3 + 24: TypePointer Function 23(fvec3) + 25: TypeVector 8(int) 3 + 26: TypeFunction 25(ivec3) 24(ptr) + 30: TypeVector 6(float) 4 + 31: TypePointer Function 30(fvec4) + 32: TypeVector 8(int) 4 + 33: TypeFunction 32(ivec4) 31(ptr) + 37: TypeFunction 30(fvec4) + 41: 6(float) Constant 0 + 51: 8(int) Constant 0 + 56: 8(int) Constant 1 + 72: 8(int) Constant 2 + 92: 8(int) Constant 3 + 100: 30(fvec4) ConstantComposite 41 41 41 41 + 103: TypePointer Output 30(fvec4) +104(@entryPointOutput): 103(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 105: 30(fvec4) FunctionCall 38(@main() + Store 104(@entryPointOutput) 105 + Return + FunctionEnd +11(PixelShaderFunctionS(f1;): 8(int) Function None 9 + 10(inF0): 7(ptr) FunctionParameter + 12: Label + 40: 6(float) Load 10(inF0) + 42: 16(fvec2) CompositeConstruct 40 41 + 43: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 42 + ReturnValue 43 + FunctionEnd +14(PixelShaderFunction1(vf1;): 8(int) Function None 9 + 13(inF0): 7(ptr) FunctionParameter + 15: Label + 46: 6(float) Load 13(inF0) + 47: 16(fvec2) CompositeConstruct 46 41 + 48: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 47 + ReturnValue 48 + FunctionEnd +21(PixelShaderFunction2(vf2;): 18(ivec2) Function None 19 + 20(inF0): 17(ptr) FunctionParameter + 22: Label + 52: 7(ptr) AccessChain 20(inF0) 51 + 53: 6(float) Load 52 + 54: 16(fvec2) CompositeConstruct 53 41 + 55: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 54 + 57: 7(ptr) AccessChain 20(inF0) 56 + 58: 6(float) Load 57 + 59: 16(fvec2) CompositeConstruct 58 41 + 60: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 59 + 61: 18(ivec2) CompositeConstruct 55 60 + ReturnValue 61 + FunctionEnd +28(PixelShaderFunction3(vf3;): 25(ivec3) Function None 26 + 27(inF0): 24(ptr) FunctionParameter + 29: Label + 64: 7(ptr) AccessChain 27(inF0) 51 + 65: 6(float) Load 64 + 66: 16(fvec2) CompositeConstruct 65 41 + 67: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 66 + 68: 7(ptr) AccessChain 27(inF0) 56 + 69: 6(float) Load 68 + 70: 16(fvec2) CompositeConstruct 69 41 + 71: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 70 + 73: 7(ptr) AccessChain 27(inF0) 72 + 74: 6(float) Load 73 + 75: 16(fvec2) CompositeConstruct 74 41 + 76: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 75 + 77: 25(ivec3) CompositeConstruct 67 71 76 + ReturnValue 77 + FunctionEnd +35(PixelShaderFunction(vf4;): 32(ivec4) Function None 33 + 34(inF0): 31(ptr) FunctionParameter + 36: Label + 80: 7(ptr) AccessChain 34(inF0) 51 + 81: 6(float) Load 80 + 82: 16(fvec2) CompositeConstruct 81 41 + 83: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 82 + 84: 7(ptr) AccessChain 34(inF0) 56 + 85: 6(float) Load 84 + 86: 16(fvec2) CompositeConstruct 85 41 + 87: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 86 + 88: 7(ptr) AccessChain 34(inF0) 72 + 89: 6(float) Load 88 + 90: 16(fvec2) CompositeConstruct 89 41 + 91: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 90 + 93: 7(ptr) AccessChain 34(inF0) 92 + 94: 6(float) Load 93 + 95: 16(fvec2) CompositeConstruct 94 41 + 96: 8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 95 + 97: 32(ivec4) CompositeConstruct 83 87 91 96 + ReturnValue 97 + FunctionEnd + 38(@main(): 30(fvec4) Function None 37 + 39: Label + ReturnValue 100 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out new file mode 100644 index 0000000000..b7d71394f8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.frag.out @@ -0,0 +1,8458 @@ +hlsl.intrinsics.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;i1; ( temp float) +0:17 Function Parameters: +0:17 'inF0' ( in float) +0:17 'inF1' ( in float) +0:17 'inF2' ( in float) +0:17 'inU0' ( in uint) +0:17 'inU1' ( in int) +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp bool) +0:20 'r000' ( temp bool) +0:20 all ( temp bool) +0:20 Convert float to bool ( temp bool) +0:20 'inF0' ( in float) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'r001' ( temp float) +0:21 Absolute value ( temp float) +0:21 'inF0' ( in float) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'r002' ( temp float) +0:22 arc cosine ( temp float) +0:22 'inF0' ( in float) +0:23 Sequence +0:23 move second child to first child ( temp bool) +0:23 'r003' ( temp bool) +0:23 any ( temp bool) +0:23 Convert float to bool ( temp bool) +0:23 'inF0' ( in float) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'r004' ( temp float) +0:24 arc sine ( temp float) +0:24 'inF0' ( in float) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'r005' ( temp int) +0:25 floatBitsToInt ( temp int) +0:25 'inF0' ( in float) +0:26 Sequence +0:26 move second child to first child ( temp uint) +0:26 'r006' ( temp uint) +0:26 floatBitsToUint ( temp uint) +0:26 'inU1' ( in int) +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'r007' ( temp float) +0:27 intBitsToFloat ( temp float) +0:27 'inU0' ( in uint) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'r009' ( temp float) +0:29 arc tangent ( temp float) +0:29 'inF0' ( in float) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'r010' ( temp float) +0:30 arc tangent ( temp float) +0:30 'inF0' ( in float) +0:30 'inF1' ( in float) +0:31 Sequence +0:31 move second child to first child ( temp float) +0:31 'r011' ( temp float) +0:31 Ceiling ( temp float) +0:31 'inF0' ( in float) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'r012' ( temp float) +0:32 clamp ( temp float) +0:32 'inF0' ( in float) +0:32 'inF1' ( in float) +0:32 'inF2' ( in float) +0:33 Test condition and select ( temp void) +0:33 Condition +0:33 Compare Less Than ( temp bool) +0:33 'inF0' ( in float) +0:33 Constant: +0:33 0.000000 +0:33 true case +0:33 Branch: Kill +0:34 Test condition and select ( temp void) +0:34 Condition +0:34 Compare Less Than ( temp bool) +0:34 'r005' ( temp int) +0:34 Constant: +0:34 0 (const int) +0:34 true case +0:34 Branch: Kill +0:35 Sequence +0:35 move second child to first child ( temp float) +0:35 'r014' ( temp float) +0:35 cosine ( temp float) +0:35 'inF0' ( in float) +0:36 Sequence +0:36 move second child to first child ( temp float) +0:36 'r015' ( temp float) +0:36 hyp. cosine ( temp float) +0:36 'inF0' ( in float) +0:37 Sequence +0:37 move second child to first child ( temp int) +0:37 'r016' ( temp int) +0:37 bitCount ( temp int) +0:37 Constant: +0:37 7 (const int) +0:38 Sequence +0:38 move second child to first child ( temp float) +0:38 'r017' ( temp float) +0:38 dPdx ( temp float) +0:38 'inF0' ( in float) +0:39 Sequence +0:39 move second child to first child ( temp float) +0:39 'r018' ( temp float) +0:39 dPdxCoarse ( temp float) +0:39 'inF0' ( in float) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'r019' ( temp float) +0:40 dPdxFine ( temp float) +0:40 'inF0' ( in float) +0:41 Sequence +0:41 move second child to first child ( temp float) +0:41 'r020' ( temp float) +0:41 dPdy ( temp float) +0:41 'inF0' ( in float) +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r021' ( temp float) +0:42 dPdyCoarse ( temp float) +0:42 'inF0' ( in float) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r022' ( temp float) +0:43 dPdyFine ( temp float) +0:43 'inF0' ( in float) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r023' ( temp float) +0:44 degrees ( temp float) +0:44 'inF0' ( in float) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r027' ( temp float) +0:48 exp ( temp float) +0:48 'inF0' ( in float) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r028' ( temp float) +0:49 exp2 ( temp float) +0:49 'inF0' ( in float) +0:50 Sequence +0:50 move second child to first child ( temp uint) +0:50 'r029' ( temp uint) +0:50 Convert int to uint ( temp uint) +0:50 findMSB ( temp int) +0:50 Constant: +0:50 7 (const int) +0:51 Sequence +0:51 move second child to first child ( temp uint) +0:51 'r030' ( temp uint) +0:51 Convert int to uint ( temp uint) +0:51 findLSB ( temp int) +0:51 Constant: +0:51 7 (const int) +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r031' ( temp float) +0:52 Floor ( temp float) +0:52 'inF0' ( in float) +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r033' ( temp float) +0:54 mod ( temp float) +0:54 'inF0' ( in float) +0:54 'inF1' ( in float) +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'r034' ( temp float) +0:55 Fraction ( temp float) +0:55 'inF0' ( in float) +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'r036' ( temp float) +0:56 fwidth ( temp float) +0:56 'inF0' ( in float) +0:57 Sequence +0:57 move second child to first child ( temp bool) +0:57 'r037' ( temp bool) +0:57 isinf ( temp bool) +0:57 'inF0' ( in float) +0:58 Sequence +0:58 move second child to first child ( temp bool) +0:58 'r038' ( temp bool) +0:58 isnan ( temp bool) +0:58 'inF0' ( in float) +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 'r039' ( temp float) +0:59 ldexp ( temp float) +0:59 'inF0' ( in float) +0:59 'inF1' ( in float) +0:60 Sequence +0:60 move second child to first child ( temp float) +0:60 'r039a' ( temp float) +0:60 mix ( temp float) +0:60 'inF0' ( in float) +0:60 'inF1' ( in float) +0:60 'inF2' ( in float) +0:61 Sequence +0:61 move second child to first child ( temp float) +0:61 'r040' ( temp float) +0:61 log ( temp 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 ( temp float) +0:63 'inF0' ( in float) +0:64 Sequence +0:64 move second child to first child ( temp float) +0:64 'r043' ( temp float) +0:64 max ( temp float) +0:64 'inF0' ( in float) +0:64 'inF1' ( in float) +0:65 Sequence +0:65 move second child to first child ( temp float) +0:65 'r044' ( temp float) +0:65 min ( temp float) +0:65 'inF0' ( in float) +0:65 'inF1' ( in float) +0:66 Sequence +0:66 move second child to first child ( temp float) +0:66 'r045' ( temp float) +0:66 pow ( temp float) +0:66 'inF0' ( in float) +0:66 'inF1' ( in float) +0:67 Sequence +0:67 move second child to first child ( temp float) +0:67 'r046' ( temp float) +0:67 radians ( temp 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 Convert int to uint ( temp uint) +0:69 bitFieldReverse ( temp int) +0:69 Constant: +0:69 2 (const int) +0:70 Sequence +0:70 move second child to first child ( temp float) +0:70 'r049' ( temp float) +0:70 roundEven ( temp float) +0:70 'inF0' ( in float) +0:71 Sequence +0:71 move second child to first child ( temp float) +0:71 'r050' ( temp float) +0:71 inverse sqrt ( temp 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 ( temp float) +0:73 'inF0' ( in float) +0:74 Sequence +0:74 move second child to first child ( temp float) +0:74 'r053' ( temp float) +0:74 sine ( temp float) +0:74 'inF0' ( in 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 ( temp float) +0:76 'inF0' ( in float) +0:77 Sequence +0:77 move second child to first child ( temp float) +0:77 'r056' ( temp float) +0:77 smoothstep ( temp float) +0:77 'inF0' ( in float) +0:77 'inF1' ( in float) +0:77 'inF2' ( in float) +0:78 Sequence +0:78 move second child to first child ( temp float) +0:78 'r057' ( temp float) +0:78 sqrt ( temp float) +0:78 'inF0' ( in float) +0:79 Sequence +0:79 move second child to first child ( temp float) +0:79 'r058' ( temp float) +0:79 step ( temp float) +0:79 'inF0' ( in float) +0:79 'inF1' ( in float) +0:80 Sequence +0:80 move second child to first child ( temp float) +0:80 'r059' ( temp float) +0:80 tangent ( temp float) +0:80 'inF0' ( in float) +0:81 Sequence +0:81 move second child to first child ( temp float) +0:81 'r060' ( temp float) +0:81 hyp. tangent ( temp float) +0:81 'inF0' ( in float) +0:83 Sequence +0:83 move second child to first child ( temp float) +0:83 'r061' ( temp float) +0:83 trunc ( temp float) +0:83 'inF0' ( in float) +0:85 Branch: Return with expression +0:85 Constant: +0:85 0.000000 +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) +0:89 Function Parameters: +0:89 'inF0' ( in 1-component vector of float) +0:89 'inF1' ( in 1-component vector of float) +0:89 'inF2' ( in 1-component vector of float) +0:? Sequence +0:91 Branch: Return with expression +0:91 Constant: +0:91 0.000000 +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) +0:95 Function Parameters: +0:95 'inF0' ( in 2-component vector of float) +0:95 'inF1' ( in 2-component vector of float) +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:98 Sequence +0:98 move second child to first child ( temp bool) +0:98 'r000' ( temp bool) +0:98 all ( temp bool) +0:98 Convert float to bool ( temp 2-component vector of 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 ( temp 2-component vector of float) +0:99 'inF0' ( in 2-component vector of float) +0:100 Sequence +0:100 move second child to first child ( temp 2-component vector of float) +0:100 'r002' ( temp 2-component vector of float) +0:100 arc cosine ( temp 2-component vector of float) +0:100 'inF0' ( in 2-component vector of float) +0:101 Sequence +0:101 move second child to first child ( temp bool) +0:101 'r003' ( temp bool) +0:101 any ( temp bool) +0:101 Convert float to bool ( temp 2-component vector of 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 ( temp 2-component vector of float) +0:102 'inF0' ( in 2-component vector of float) +0:103 Sequence +0:103 move second child to first child ( temp 2-component vector of int) +0:103 'r005' ( temp 2-component vector of int) +0:103 floatBitsToInt ( temp 2-component vector of int) +0:103 'inF0' ( in 2-component vector of float) +0:104 Sequence +0:104 move second child to first child ( temp 2-component vector of uint) +0:104 'r006' ( temp 2-component vector of uint) +0:104 floatBitsToUint ( temp 2-component vector of uint) +0:104 'inF0' ( in 2-component vector of float) +0:105 Sequence +0:105 move second child to first child ( temp 2-component vector of float) +0:105 'r007' ( temp 2-component vector of float) +0:105 intBitsToFloat ( temp 2-component vector of float) +0:105 'inU0' ( in 2-component vector of uint) +0:107 Sequence +0:107 move second child to first child ( temp 2-component vector of float) +0:107 'r009' ( temp 2-component vector of float) +0:107 arc tangent ( temp 2-component vector of float) +0:107 'inF0' ( in 2-component vector of float) +0:108 Sequence +0:108 move second child to first child ( temp 2-component vector of float) +0:108 'r010' ( temp 2-component vector of float) +0:108 arc tangent ( temp 2-component vector of float) +0:108 'inF0' ( in 2-component vector of float) +0:108 'inF1' ( in 2-component vector of float) +0:109 Sequence +0:109 move second child to first child ( temp 2-component vector of float) +0:109 'r011' ( temp 2-component vector of float) +0:109 Ceiling ( temp 2-component vector of float) +0:109 'inF0' ( in 2-component vector of float) +0:110 Sequence +0:110 move second child to first child ( temp 2-component vector of float) +0:110 'r012' ( temp 2-component vector of float) +0:110 clamp ( temp 2-component vector of float) +0:110 'inF0' ( in 2-component vector of float) +0:110 'inF1' ( in 2-component vector of float) +0:110 'inF2' ( in 2-component vector of float) +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 Test condition and select ( temp void) +0:112 Condition +0:112 any ( temp bool) +0:112 Compare Less Than ( temp 2-component vector of bool) +0:112 'inU0' ( in 2-component vector of uint) +0:112 Constant: +0:112 0.000000 +0:112 0.000000 +0:112 true case +0:112 Branch: Kill +0:113 Sequence +0:113 move second child to first child ( temp 2-component vector of float) +0:113 'r013' ( temp 2-component vector of float) +0:113 cosine ( temp 2-component vector of float) +0:113 'inF0' ( in 2-component vector of float) +0:114 Sequence +0:114 move second child to first child ( temp 2-component vector of float) +0:114 'r015' ( temp 2-component vector of float) +0:114 hyp. cosine ( temp 2-component vector of float) +0:114 'inF0' ( in 2-component vector of float) +0:115 Sequence +0:115 move second child to first child ( temp 2-component vector of int) +0:115 'r016' ( temp 2-component vector of int) +0:? bitCount ( temp 2-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:116 Sequence +0:116 move second child to first child ( temp 2-component vector of float) +0:116 'r017' ( temp 2-component vector of float) +0:116 dPdx ( temp 2-component vector of float) +0:116 'inF0' ( in 2-component vector of float) +0:117 Sequence +0:117 move second child to first child ( temp 2-component vector of float) +0:117 'r018' ( temp 2-component vector of float) +0:117 dPdxCoarse ( temp 2-component vector of float) +0:117 'inF0' ( in 2-component vector of float) +0:118 Sequence +0:118 move second child to first child ( temp 2-component vector of float) +0:118 'r019' ( temp 2-component vector of float) +0:118 dPdxFine ( temp 2-component vector of float) +0:118 'inF0' ( in 2-component vector of float) +0:119 Sequence +0:119 move second child to first child ( temp 2-component vector of float) +0:119 'r020' ( temp 2-component vector of float) +0:119 dPdy ( temp 2-component vector of float) +0:119 'inF0' ( in 2-component vector of float) +0:120 Sequence +0:120 move second child to first child ( temp 2-component vector of float) +0:120 'r021' ( temp 2-component vector of float) +0:120 dPdyCoarse ( temp 2-component vector of float) +0:120 'inF0' ( in 2-component vector of float) +0:121 Sequence +0:121 move second child to first child ( temp 2-component vector of float) +0:121 'r022' ( temp 2-component vector of float) +0:121 dPdyFine ( temp 2-component vector of float) +0:121 'inF0' ( in 2-component vector of float) +0:122 Sequence +0:122 move second child to first child ( temp 2-component vector of float) +0:122 'r023' ( temp 2-component vector of float) +0:122 degrees ( temp 2-component vector of float) +0:122 'inF0' ( in 2-component vector of float) +0:126 Sequence +0:126 move second child to first child ( temp float) +0:126 'r026' ( temp float) +0:126 distance ( temp float) +0:126 'inF0' ( in 2-component vector of float) +0:126 'inF1' ( in 2-component vector of float) +0:127 Sequence +0:127 move second child to first child ( temp float) +0:127 'r027' ( temp float) +0:127 dot-product ( temp float) +0:127 'inF0' ( in 2-component vector of float) +0:127 'inF1' ( 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 'r028' ( temp 2-component vector of float) +0:131 exp ( temp 2-component vector of float) +0:131 'inF0' ( in 2-component vector of float) +0:132 Sequence +0:132 move second child to first child ( temp 2-component vector of float) +0:132 'r029' ( temp 2-component vector of float) +0:132 exp2 ( temp 2-component vector of float) +0:132 'inF0' ( in 2-component vector of float) +0:133 Sequence +0:133 move second child to first child ( temp 2-component vector of float) +0:133 'r030' ( temp 2-component vector of float) +0:133 face-forward ( temp 2-component vector of float) +0:133 'inF0' ( in 2-component vector of float) +0:133 'inF1' ( in 2-component vector of float) +0:133 'inF2' ( in 2-component vector of float) +0:134 Sequence +0:134 move second child to first child ( temp 2-component vector of uint) +0:134 'r031' ( temp 2-component vector of uint) +0:? findMSB ( temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:135 Sequence +0:135 move second child to first child ( temp 2-component vector of uint) +0:135 'r032' ( temp 2-component vector of uint) +0:? findLSB ( temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:136 Sequence +0:136 move second child to first child ( temp 2-component vector of float) +0:136 'r033' ( temp 2-component vector of float) +0:136 Floor ( temp 2-component vector of float) +0:136 'inF0' ( 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 'r035' ( temp 2-component vector of float) +0:138 mod ( temp 2-component vector of float) +0:138 'inF0' ( in 2-component vector of float) +0:138 'inF1' ( 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 'r036' ( temp 2-component vector of float) +0:139 Fraction ( temp 2-component vector of float) +0:139 'inF0' ( 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 ( temp 2-component vector of float) +0:140 'inF0' ( in 2-component vector of float) +0:141 Sequence +0:141 move second child to first child ( temp 2-component vector of bool) +0:141 'r039' ( temp 2-component vector of bool) +0:141 isinf ( temp 2-component vector of bool) +0:141 'inF0' ( in 2-component vector of float) +0:142 Sequence +0:142 move second child to first child ( temp 2-component vector of bool) +0:142 'r040' ( temp 2-component vector of bool) +0:142 isnan ( temp 2-component vector of bool) +0:142 'inF0' ( in 2-component vector of float) +0:143 Sequence +0:143 move second child to first child ( temp 2-component vector of float) +0:143 'r041' ( temp 2-component vector of float) +0:143 ldexp ( temp 2-component vector of float) +0:143 'inF0' ( in 2-component vector of float) +0:143 'inF1' ( in 2-component vector of float) +0:144 Sequence +0:144 move second child to first child ( temp 2-component vector of float) +0:144 'r039a' ( temp 2-component vector of float) +0:144 mix ( temp 2-component vector of float) +0:144 'inF0' ( in 2-component vector of float) +0:144 'inF1' ( in 2-component vector of float) +0:144 'inF2' ( in 2-component vector of float) +0:145 Sequence +0:145 move second child to first child ( temp float) +0:145 'r042' ( temp float) +0:145 length ( temp float) +0:145 'inF0' ( in 2-component vector of float) +0:146 Sequence +0:146 move second child to first child ( temp 2-component vector of float) +0:146 'r043' ( temp 2-component vector of float) +0:146 log ( temp 2-component vector of float) +0:146 'inF0' ( in 2-component vector of float) +0:147 Sequence +0:147 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:148 'inF0' ( in 2-component vector of float) +0:149 Sequence +0:149 move second child to first child ( temp 2-component vector of float) +0:149 'r046' ( temp 2-component vector of float) +0:149 max ( temp 2-component vector of float) +0:149 'inF0' ( in 2-component vector of float) +0:149 'inF1' ( in 2-component vector of float) +0:150 Sequence +0:150 move second child to first child ( temp 2-component vector of float) +0:150 'r047' ( temp 2-component vector of float) +0:150 min ( temp 2-component vector of float) +0:150 'inF0' ( in 2-component vector of float) +0:150 'inF1' ( in 2-component vector of float) +0:151 Sequence +0:151 move second child to first child ( temp 2-component vector of float) +0:151 'r048' ( temp 2-component vector of float) +0:151 normalize ( temp 2-component vector of float) +0:151 'inF0' ( in 2-component vector of float) +0:152 Sequence +0:152 move second child to first child ( temp 2-component vector of float) +0:152 'r049' ( temp 2-component vector of float) +0:152 pow ( temp 2-component vector of float) +0:152 'inF0' ( in 2-component vector of float) +0:152 'inF1' ( in 2-component vector of float) +0:153 Sequence +0:153 move second child to first child ( temp 2-component vector of float) +0:153 'r050' ( temp 2-component vector of float) +0:153 radians ( temp 2-component vector of float) +0:153 'inF0' ( in 2-component vector of float) +0:154 Sequence +0:154 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:155 'inF0' ( in 2-component vector of float) +0:155 'inF1' ( in 2-component vector of float) +0:156 Sequence +0:156 move second child to first child ( temp 2-component vector of float) +0:156 'r053' ( temp 2-component vector of float) +0:156 refract ( temp 2-component vector of float) +0:156 'inF0' ( in 2-component vector of float) +0:156 'inF1' ( in 2-component vector of float) +0:156 Constant: +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 ( temp 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:158 Sequence +0:158 move second child to first child ( temp 2-component vector of float) +0:158 'r055' ( temp 2-component vector of float) +0:158 roundEven ( temp 2-component vector of float) +0:158 'inF0' ( in 2-component vector of float) +0:159 Sequence +0:159 move second child to first child ( temp 2-component vector of float) +0:159 'r056' ( temp 2-component vector of float) +0:159 inverse sqrt ( temp 2-component vector of float) +0:159 'inF0' ( in 2-component vector of float) +0:160 Sequence +0:160 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:161 'inF0' ( in 2-component vector of float) +0:162 Sequence +0:162 move second child to first child ( temp 2-component vector of float) +0:162 'r059' ( temp 2-component vector of float) +0:162 sine ( temp 2-component vector of float) +0:162 'inF0' ( in 2-component vector of float) +0:163 Sequence +0:163 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:164 'inF0' ( in 2-component vector of float) +0:165 Sequence +0:165 move second child to first child ( temp 2-component vector of float) +0:165 'r061' ( temp 2-component vector of float) +0:165 smoothstep ( temp 2-component vector of float) +0:165 'inF0' ( in 2-component vector of float) +0:165 'inF1' ( in 2-component vector of float) +0:165 'inF2' ( in 2-component vector of float) +0:166 Sequence +0:166 move second child to first child ( temp 2-component vector of float) +0:166 'r062' ( temp 2-component vector of float) +0:166 sqrt ( temp 2-component vector of float) +0:166 'inF0' ( in 2-component vector of float) +0:167 Sequence +0:167 move second child to first child ( temp 2-component vector of float) +0:167 'r063' ( temp 2-component vector of float) +0:167 step ( temp 2-component vector of float) +0:167 'inF0' ( in 2-component vector of float) +0:167 'inF1' ( in 2-component vector of float) +0:168 Sequence +0:168 move second child to first child ( temp 2-component vector of float) +0:168 'r064' ( temp 2-component vector of float) +0:168 tangent ( temp 2-component vector of float) +0:168 'inF0' ( in 2-component vector of float) +0:169 Sequence +0:169 move second child to first child ( temp 2-component vector of float) +0:169 'r065' ( temp 2-component vector of float) +0:169 hyp. tangent ( temp 2-component vector of float) +0:169 'inF0' ( in 2-component vector of float) +0:171 Sequence +0:171 move second child to first child ( temp 2-component vector of float) +0:171 'r066' ( temp 2-component vector of float) +0:171 trunc ( temp 2-component vector of float) +0:171 'inF0' ( in 2-component vector of float) +0:174 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) +0:178 Function Parameters: +0:178 'inF0' ( in 3-component vector of float) +0:178 'inF1' ( in 3-component vector of float) +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:181 Sequence +0:181 move second child to first child ( temp bool) +0:181 'r000' ( temp bool) +0:181 all ( temp bool) +0:181 Convert float to bool ( temp 3-component vector of 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 ( temp 3-component vector of float) +0:182 'inF0' ( in 3-component vector of float) +0:183 Sequence +0:183 move second child to first child ( temp 3-component vector of float) +0:183 'r002' ( temp 3-component vector of float) +0:183 arc cosine ( temp 3-component vector of float) +0:183 'inF0' ( in 3-component vector of float) +0:184 Sequence +0:184 move second child to first child ( temp bool) +0:184 'r003' ( temp bool) +0:184 any ( temp bool) +0:184 Convert float to bool ( temp 3-component vector of 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 ( temp 3-component vector of float) +0:185 'inF0' ( in 3-component vector of float) +0:186 Sequence +0:186 move second child to first child ( temp 3-component vector of int) +0:186 'r005' ( temp 3-component vector of int) +0:186 floatBitsToInt ( temp 3-component vector of int) +0:186 'inF0' ( in 3-component vector of float) +0:187 Sequence +0:187 move second child to first child ( temp 3-component vector of uint) +0:187 'r006' ( temp 3-component vector of uint) +0:187 floatBitsToUint ( temp 3-component vector of uint) +0:187 'inF0' ( in 3-component vector of float) +0:188 Sequence +0:188 move second child to first child ( temp 3-component vector of float) +0:188 'r007' ( temp 3-component vector of float) +0:188 intBitsToFloat ( temp 3-component vector of float) +0:188 'inU0' ( in 3-component vector of uint) +0:190 Sequence +0:190 move second child to first child ( temp 3-component vector of float) +0:190 'r009' ( temp 3-component vector of float) +0:190 arc tangent ( temp 3-component vector of float) +0:190 'inF0' ( in 3-component vector of float) +0:191 Sequence +0:191 move second child to first child ( temp 3-component vector of float) +0:191 'r010' ( temp 3-component vector of float) +0:191 arc tangent ( temp 3-component vector of float) +0:191 'inF0' ( in 3-component vector of float) +0:191 'inF1' ( in 3-component vector of float) +0:192 Sequence +0:192 move second child to first child ( temp 3-component vector of float) +0:192 'r011' ( temp 3-component vector of float) +0:192 Ceiling ( temp 3-component vector of float) +0:192 'inF0' ( in 3-component vector of float) +0:193 Sequence +0:193 move second child to first child ( temp 3-component vector of float) +0:193 'r012' ( temp 3-component vector of float) +0:193 clamp ( temp 3-component vector of float) +0:193 'inF0' ( in 3-component vector of float) +0:193 'inF1' ( in 3-component vector of float) +0:193 'inF2' ( in 3-component vector of float) +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 Test condition and select ( temp void) +0:195 Condition +0:195 any ( temp bool) +0:195 Compare Less Than ( temp 3-component vector of bool) +0:195 'inU0' ( in 3-component vector of uint) +0:195 Constant: +0:195 0.000000 +0:195 0.000000 +0:195 0.000000 +0:195 true case +0:195 Branch: Kill +0:196 Sequence +0:196 move second child to first child ( temp 3-component vector of float) +0:196 'r013' ( temp 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 Sequence +0:197 move second child to first child ( temp 3-component vector of float) +0:197 'r014' ( temp 3-component vector of float) +0:197 hyp. cosine ( temp 3-component vector of float) +0:197 'inF0' ( in 3-component vector of float) +0:198 Sequence +0:198 move second child to first child ( temp 3-component vector of uint) +0:198 'r015' ( temp 3-component vector of uint) +0:? bitCount ( temp 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:199 Sequence +0:199 move second child to first child ( temp 3-component vector of float) +0:199 'r016' ( temp 3-component vector of float) +0:199 cross-product ( temp 3-component vector of float) +0:199 'inF0' ( in 3-component vector of float) +0:199 'inF1' ( 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 'r017' ( temp 3-component vector of float) +0:200 dPdx ( temp 3-component vector of float) +0:200 'inF0' ( in 3-component vector of float) +0:201 Sequence +0:201 move second child to first child ( temp 3-component vector of float) +0:201 'r018' ( temp 3-component vector of float) +0:201 dPdxCoarse ( temp 3-component vector of float) +0:201 'inF0' ( in 3-component vector of float) +0:202 Sequence +0:202 move second child to first child ( temp 3-component vector of float) +0:202 'r019' ( temp 3-component vector of float) +0:202 dPdxFine ( temp 3-component vector of float) +0:202 'inF0' ( in 3-component vector of float) +0:203 Sequence +0:203 move second child to first child ( temp 3-component vector of float) +0:203 'r020' ( temp 3-component vector of float) +0:203 dPdy ( temp 3-component vector of float) +0:203 'inF0' ( in 3-component vector of float) +0:204 Sequence +0:204 move second child to first child ( temp 3-component vector of float) +0:204 'r021' ( temp 3-component vector of float) +0:204 dPdyCoarse ( temp 3-component vector of float) +0:204 'inF0' ( in 3-component vector of float) +0:205 Sequence +0:205 move second child to first child ( temp 3-component vector of float) +0:205 'r022' ( temp 3-component vector of float) +0:205 dPdyFine ( temp 3-component vector of float) +0:205 'inF0' ( in 3-component vector of float) +0:206 Sequence +0:206 move second child to first child ( temp 3-component vector of float) +0:206 'r023' ( temp 3-component vector of float) +0:206 degrees ( temp 3-component vector of float) +0:206 'inF0' ( in 3-component vector of float) +0:207 Sequence +0:207 move second child to first child ( temp float) +0:207 'r024' ( temp float) +0:207 distance ( temp float) +0:207 'inF0' ( in 3-component vector of float) +0:207 'inF1' ( in 3-component vector of float) +0:208 Sequence +0:208 move second child to first child ( temp float) +0:208 'r025' ( temp float) +0:208 dot-product ( temp float) +0:208 'inF0' ( in 3-component vector of float) +0:208 'inF1' ( 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 'r029' ( temp 3-component vector of float) +0:212 exp ( temp 3-component vector of float) +0:212 'inF0' ( in 3-component vector of float) +0:213 Sequence +0:213 move second child to first child ( temp 3-component vector of float) +0:213 'r030' ( temp 3-component vector of float) +0:213 exp2 ( temp 3-component vector of float) +0:213 'inF0' ( in 3-component vector of float) +0:214 Sequence +0:214 move second child to first child ( temp 3-component vector of float) +0:214 'r031' ( temp 3-component vector of float) +0:214 face-forward ( temp 3-component vector of float) +0:214 'inF0' ( in 3-component vector of float) +0:214 'inF1' ( in 3-component vector of float) +0:214 'inF2' ( in 3-component vector of float) +0:215 Sequence +0:215 move second child to first child ( temp 3-component vector of uint) +0:215 'r032' ( temp 3-component vector of uint) +0:? findMSB ( temp 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 uint) +0:216 'r033' ( temp 3-component vector of uint) +0:? findLSB ( temp 3-component vector of uint) +0:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:217 Sequence +0:217 move second child to first child ( temp 3-component vector of float) +0:217 'r034' ( temp 3-component vector of float) +0:217 Floor ( temp 3-component vector of float) +0:217 'inF0' ( 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 'r036' ( temp 3-component vector of float) +0:219 mod ( temp 3-component vector of float) +0:219 'inF0' ( in 3-component vector of float) +0:219 'inF1' ( in 3-component vector of float) +0:220 Sequence +0:220 move second child to first child ( temp 3-component vector of float) +0:220 'r037' ( temp 3-component vector of float) +0:220 Fraction ( temp 3-component vector of float) +0:220 'inF0' ( 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 ( temp 3-component vector of float) +0:221 'inF0' ( in 3-component vector of float) +0:222 Sequence +0:222 move second child to first child ( temp 3-component vector of bool) +0:222 'r040' ( temp 3-component vector of bool) +0:222 isinf ( temp 3-component vector of bool) +0:222 'inF0' ( in 3-component vector of float) +0:223 Sequence +0:223 move second child to first child ( temp 3-component vector of bool) +0:223 'r041' ( temp 3-component vector of bool) +0:223 isnan ( temp 3-component vector of bool) +0:223 'inF0' ( in 3-component vector of float) +0:224 Sequence +0:224 move second child to first child ( temp 3-component vector of float) +0:224 'r042' ( temp 3-component vector of float) +0:224 ldexp ( temp 3-component vector of float) +0:224 'inF0' ( in 3-component vector of float) +0:224 'inF1' ( in 3-component vector of float) +0:225 Sequence +0:225 move second child to first child ( temp 3-component vector of float) +0:225 'r039a' ( temp 3-component vector of float) +0:225 mix ( temp 3-component vector of float) +0:225 'inF0' ( in 3-component vector of float) +0:225 'inF1' ( in 3-component vector of float) +0:225 'inF2' ( in 3-component vector of float) +0:226 Sequence +0:226 move second child to first child ( temp 3-component vector of float) +0:226 'r039b' ( temp 3-component vector of float) +0:226 mix ( temp 3-component vector of float) +0:226 'inF0' ( in 3-component vector of float) +0:226 'inF1' ( in 3-component vector of float) +0:226 Constant: +0:226 0.300000 +0:227 Sequence +0:227 move second child to first child ( temp float) +0:227 'r043' ( temp float) +0:227 length ( temp float) +0:227 'inF0' ( in 3-component vector of float) +0:228 Sequence +0:228 move second child to first child ( temp 3-component vector of float) +0:228 'r044' ( temp 3-component vector of float) +0:228 log ( temp 3-component vector of float) +0:228 'inF0' ( in 3-component vector of float) +0:229 Sequence +0:229 move second child to first child ( temp 3-component vector of float) +0:229 'r045' ( temp 3-component vector of float) +0:229 vector-scale ( temp 3-component vector of float) +0:229 log2 ( temp 3-component vector of float) +0:229 'inF0' ( in 3-component vector of float) +0:229 Constant: +0:229 0.301030 +0:230 Sequence +0:230 move second child to first child ( temp 3-component vector of float) +0:230 'r046' ( temp 3-component vector of float) +0:230 log2 ( temp 3-component vector of float) +0:230 'inF0' ( in 3-component vector of float) +0:231 Sequence +0:231 move second child to first child ( temp 3-component vector of float) +0:231 'r047' ( temp 3-component vector of float) +0:231 max ( temp 3-component vector of float) +0:231 'inF0' ( in 3-component vector of float) +0:231 'inF1' ( in 3-component vector of float) +0:232 Sequence +0:232 move second child to first child ( temp 3-component vector of float) +0:232 'r048' ( temp 3-component vector of float) +0:232 min ( temp 3-component vector of float) +0:232 'inF0' ( in 3-component vector of float) +0:232 'inF1' ( in 3-component vector of float) +0:233 Sequence +0:233 move second child to first child ( temp 3-component vector of float) +0:233 'r049' ( temp 3-component vector of float) +0:233 normalize ( temp 3-component vector of float) +0:233 'inF0' ( in 3-component vector of float) +0:234 Sequence +0:234 move second child to first child ( temp 3-component vector of float) +0:234 'r050' ( temp 3-component vector of float) +0:234 pow ( temp 3-component vector of float) +0:234 'inF0' ( in 3-component vector of float) +0:234 'inF1' ( in 3-component vector of float) +0:235 Sequence +0:235 move second child to first child ( temp 3-component vector of float) +0:235 'r051' ( temp 3-component vector of float) +0:235 radians ( temp 3-component vector of float) +0:235 'inF0' ( in 3-component vector of float) +0:236 Sequence +0:236 move second child to first child ( temp 3-component vector of float) +0:236 'r052' ( temp 3-component vector of float) +0:236 divide ( temp 3-component vector of float) +0:236 Constant: +0:236 1.000000 +0:236 'inF0' ( 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 'r053' ( temp 3-component vector of float) +0:237 reflect ( temp 3-component vector of float) +0:237 'inF0' ( in 3-component vector of float) +0:237 'inF1' ( in 3-component vector of float) +0:238 Sequence +0:238 move second child to first child ( temp 3-component vector of float) +0:238 'r054' ( temp 3-component vector of float) +0:238 refract ( temp 3-component vector of float) +0:238 'inF0' ( in 3-component vector of float) +0:238 'inF1' ( in 3-component vector of float) +0:238 Constant: +0:238 2.000000 +0:239 Sequence +0:239 move second child to first child ( temp 3-component vector of uint) +0:239 'r055' ( temp 3-component vector of uint) +0:? bitFieldReverse ( temp 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:240 Sequence +0:240 move second child to first child ( temp 3-component vector of float) +0:240 'r056' ( temp 3-component vector of float) +0:240 roundEven ( temp 3-component vector of float) +0:240 'inF0' ( in 3-component vector of float) +0:241 Sequence +0:241 move second child to first child ( temp 3-component vector of float) +0:241 'r057' ( temp 3-component vector of float) +0:241 inverse sqrt ( temp 3-component vector of float) +0:241 'inF0' ( in 3-component vector of float) +0:242 Sequence +0:242 move second child to first child ( temp 3-component vector of float) +0:242 'r058' ( temp 3-component vector of float) +0:242 clamp ( temp 3-component vector of float) +0:242 'inF0' ( in 3-component vector of float) +0:242 Constant: +0:242 0.000000 +0:242 Constant: +0:242 1.000000 +0:243 Sequence +0:243 move second child to first child ( temp 3-component vector of float) +0:243 'r059' ( temp 3-component vector of float) +0:243 Sign ( temp 3-component vector of float) +0:243 'inF0' ( in 3-component vector of float) +0:244 Sequence +0:244 move second child to first child ( temp 3-component vector of float) +0:244 'r060' ( temp 3-component vector of float) +0:244 sine ( 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 'inF1' ( in 3-component vector of float) +0:245 sine ( temp 3-component vector of float) +0:245 'inF0' ( in 3-component vector of float) +0:245 move second child to first child ( temp 3-component vector of float) +0:245 'inF2' ( in 3-component vector of float) +0:245 cosine ( temp 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 'r061' ( temp 3-component vector of float) +0:246 hyp. sine ( temp 3-component vector of float) +0:246 'inF0' ( in 3-component vector of float) +0:247 Sequence +0:247 move second child to first child ( temp 3-component vector of float) +0:247 'r062' ( temp 3-component vector of float) +0:247 smoothstep ( temp 3-component vector of float) +0:247 'inF0' ( in 3-component vector of float) +0:247 'inF1' ( in 3-component vector of float) +0:247 'inF2' ( in 3-component vector of float) +0:248 Sequence +0:248 move second child to first child ( temp 3-component vector of float) +0:248 'r063' ( temp 3-component vector of float) +0:248 sqrt ( temp 3-component vector of float) +0:248 'inF0' ( in 3-component vector of float) +0:249 Sequence +0:249 move second child to first child ( temp 3-component vector of float) +0:249 'r064' ( temp 3-component vector of float) +0:249 step ( temp 3-component vector of float) +0:249 'inF0' ( in 3-component vector of float) +0:249 'inF1' ( in 3-component vector of float) +0:250 Sequence +0:250 move second child to first child ( temp 3-component vector of float) +0:250 'r065' ( temp 3-component vector of float) +0:250 tangent ( temp 3-component vector of float) +0:250 'inF0' ( in 3-component vector of float) +0:251 Sequence +0:251 move second child to first child ( temp 3-component vector of float) +0:251 'r066' ( temp 3-component vector of float) +0:251 hyp. tangent ( temp 3-component vector of float) +0:251 'inF0' ( in 3-component vector of float) +0:253 Sequence +0:253 move second child to first child ( temp 3-component vector of float) +0:253 'r067' ( temp 3-component vector of float) +0:253 trunc ( temp 3-component vector of float) +0:253 'inF0' ( in 3-component vector of float) +0:256 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) +0:260 Function Parameters: +0:260 'inF0' ( in 4-component vector of float) +0:260 'inF1' ( in 4-component vector of float) +0:260 'inF2' ( in 4-component vector of float) +0:260 'inU0' ( in 4-component vector of uint) +0:260 'inU1' ( in 4-component vector of uint) +0:? Sequence +0:263 Sequence +0:263 move second child to first child ( temp bool) +0:263 'r000' ( temp bool) +0:263 all ( temp bool) +0:263 Convert float to bool ( temp 4-component vector of bool) +0:263 'inF0' ( in 4-component vector of float) +0:264 Sequence +0:264 move second child to first child ( temp 4-component vector of float) +0:264 'r001' ( temp 4-component vector of float) +0:264 Absolute value ( temp 4-component vector of float) +0:264 'inF0' ( in 4-component vector of float) +0:265 Sequence +0:265 move second child to first child ( temp 4-component vector of float) +0:265 'r002' ( temp 4-component vector of float) +0:265 arc cosine ( temp 4-component vector of float) +0:265 'inF0' ( in 4-component vector of float) +0:266 Sequence +0:266 move second child to first child ( temp bool) +0:266 'r003' ( temp bool) +0:266 any ( temp bool) +0:266 Convert float to bool ( temp 4-component vector of bool) +0:266 'inF0' ( in 4-component vector of float) +0:267 Sequence +0:267 move second child to first child ( temp 4-component vector of float) +0:267 'r004' ( temp 4-component vector of float) +0:267 arc sine ( temp 4-component vector of float) +0:267 'inF0' ( in 4-component vector of float) +0:268 Sequence +0:268 move second child to first child ( temp 4-component vector of int) +0:268 'r005' ( temp 4-component vector of int) +0:268 floatBitsToInt ( temp 4-component vector of int) +0:268 'inF0' ( in 4-component vector of float) +0:269 Sequence +0:269 move second child to first child ( temp 4-component vector of uint) +0:269 'r006' ( temp 4-component vector of uint) +0:269 floatBitsToUint ( temp 4-component vector of uint) +0:269 'inF0' ( in 4-component vector of float) +0:270 Sequence +0:270 move second child to first child ( temp 4-component vector of float) +0:270 'r007' ( temp 4-component vector of float) +0:270 intBitsToFloat ( temp 4-component vector of float) +0:270 'inU0' ( in 4-component vector of uint) +0:272 Sequence +0:272 move second child to first child ( temp 4-component vector of float) +0:272 'r009' ( temp 4-component vector of float) +0:272 arc tangent ( temp 4-component vector of float) +0:272 'inF0' ( in 4-component vector of float) +0:273 Sequence +0:273 move second child to first child ( temp 4-component vector of float) +0:273 'r010' ( temp 4-component vector of float) +0:273 arc tangent ( temp 4-component vector of float) +0:273 'inF0' ( in 4-component vector of float) +0:273 'inF1' ( in 4-component vector of float) +0:274 Sequence +0:274 move second child to first child ( temp 4-component vector of float) +0:274 'r011' ( temp 4-component vector of float) +0:274 Ceiling ( temp 4-component vector of float) +0:274 'inF0' ( in 4-component vector of float) +0:275 Sequence +0:275 move second child to first child ( temp 4-component vector of float) +0:275 'r012' ( temp 4-component vector of float) +0:275 clamp ( temp 4-component vector of float) +0:275 'inF0' ( in 4-component vector of float) +0:275 'inF1' ( in 4-component vector of float) +0:275 'inF2' ( in 4-component vector of float) +0:276 Test condition and select ( temp void) +0:276 Condition +0:276 any ( temp bool) +0:276 Compare Less Than ( temp 4-component vector of bool) +0:276 'inF0' ( in 4-component vector of float) +0:276 Constant: +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 true case +0:276 Branch: Kill +0:277 Test condition and select ( temp void) +0:277 Condition +0:277 any ( temp bool) +0:277 Compare Less Than ( temp 4-component vector of bool) +0:277 'inU0' ( in 4-component vector of uint) +0:277 Constant: +0:277 0.000000 +0:277 0.000000 +0:277 0.000000 +0:277 0.000000 +0:277 true case +0:277 Branch: Kill +0:278 Sequence +0:278 move second child to first child ( temp 4-component vector of float) +0:278 'r013' ( temp 4-component vector of float) +0:278 cosine ( temp 4-component vector of float) +0:278 'inF0' ( in 4-component vector of float) +0:279 Sequence +0:279 move second child to first child ( temp 4-component vector of float) +0:279 'r014' ( temp 4-component vector of float) +0:279 hyp. cosine ( temp 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 uint) +0:280 'r015' ( temp 4-component vector of uint) +0:? bitCount ( temp 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:281 Sequence +0:281 move second child to first child ( temp 4-component vector of float) +0:281 'r016' ( temp 4-component vector of float) +0:281 dPdx ( temp 4-component vector of float) +0:281 'inF0' ( in 4-component vector of float) +0:282 Sequence +0:282 move second child to first child ( temp 4-component vector of float) +0:282 'r017' ( temp 4-component vector of float) +0:282 dPdxCoarse ( temp 4-component vector of float) +0:282 'inF0' ( in 4-component vector of float) +0:283 Sequence +0:283 move second child to first child ( temp 4-component vector of float) +0:283 'r018' ( temp 4-component vector of float) +0:283 dPdxFine ( temp 4-component vector of float) +0:283 'inF0' ( in 4-component vector of float) +0:284 Sequence +0:284 move second child to first child ( temp 4-component vector of float) +0:284 'r019' ( temp 4-component vector of float) +0:284 dPdy ( temp 4-component vector of float) +0:284 'inF0' ( in 4-component vector of float) +0:285 Sequence +0:285 move second child to first child ( temp 4-component vector of float) +0:285 'r020' ( temp 4-component vector of float) +0:285 dPdyCoarse ( temp 4-component vector of float) +0:285 'inF0' ( in 4-component vector of float) +0:286 Sequence +0:286 move second child to first child ( temp 4-component vector of float) +0:286 'r021' ( temp 4-component vector of float) +0:286 dPdyFine ( temp 4-component vector of float) +0:286 'inF0' ( in 4-component vector of float) +0:287 Sequence +0:287 move second child to first child ( temp 4-component vector of float) +0:287 'r022' ( temp 4-component vector of float) +0:287 degrees ( temp 4-component vector of float) +0:287 'inF0' ( in 4-component vector of float) +0:288 Sequence +0:288 move second child to first child ( temp float) +0:288 'r023' ( temp float) +0:288 distance ( temp float) +0:288 'inF0' ( in 4-component vector of float) +0:288 'inF1' ( in 4-component vector of float) +0:289 Sequence +0:289 move second child to first child ( temp float) +0:289 'r024' ( temp float) +0:289 dot-product ( temp float) +0:289 'inF0' ( in 4-component vector of float) +0:289 'inF1' ( in 4-component vector of float) +0:290 Sequence +0:290 move second child to first child ( temp 4-component vector of float) +0:290 'r025' ( temp 4-component vector of float) +0:290 Construct vec4 ( temp 4-component vector of float) +0:290 Constant: +0:290 1.000000 +0:290 component-wise multiply ( temp float) +0:290 direct index ( temp float) +0:290 'inF0' ( in 4-component vector of float) +0:290 Constant: +0:290 1 (const int) +0:290 direct index ( temp float) +0:290 'inF1' ( in 4-component vector of float) +0:290 Constant: +0:290 1 (const int) +0:290 direct index ( temp float) +0:290 'inF0' ( in 4-component vector of float) +0:290 Constant: +0:290 2 (const int) +0:290 direct index ( temp float) +0:290 'inF1' ( in 4-component vector of float) +0:290 Constant: +0:290 3 (const int) +0:294 Sequence +0:294 move second child to first child ( temp 4-component vector of float) +0:294 'r029' ( temp 4-component vector of float) +0:294 exp ( temp 4-component vector of float) +0:294 'inF0' ( in 4-component vector of float) +0:295 Sequence +0:295 move second child to first child ( temp 4-component vector of float) +0:295 'r030' ( temp 4-component vector of float) +0:295 exp2 ( temp 4-component vector of float) +0:295 'inF0' ( in 4-component vector of float) +0:296 Sequence +0:296 move second child to first child ( temp 4-component vector of float) +0:296 'r031' ( temp 4-component vector of float) +0:296 face-forward ( temp 4-component vector of float) +0:296 'inF0' ( in 4-component vector of float) +0:296 'inF1' ( in 4-component vector of float) +0:296 'inF2' ( in 4-component vector of float) +0:297 Sequence +0:297 move second child to first child ( temp 4-component vector of uint) +0:297 'r032' ( temp 4-component vector of uint) +0:? findMSB ( temp 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:298 Sequence +0:298 move second child to first child ( temp 4-component vector of uint) +0:298 'r033' ( temp 4-component vector of uint) +0:? findLSB ( temp 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:299 Sequence +0:299 move second child to first child ( temp 4-component vector of float) +0:299 'r034' ( temp 4-component vector of float) +0:299 Floor ( temp 4-component vector of float) +0:299 '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 'r036' ( temp 4-component vector of float) +0:301 mod ( temp 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 'r037' ( temp 4-component vector of float) +0:302 Fraction ( temp 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 float) +0:303 'r039' ( temp 4-component vector of float) +0:303 fwidth ( temp 4-component vector of float) +0:303 'inF0' ( in 4-component vector of float) +0:304 Sequence +0:304 move second child to first child ( temp 4-component vector of bool) +0:304 'r040' ( temp 4-component vector of bool) +0:304 isinf ( temp 4-component vector of bool) +0:304 'inF0' ( in 4-component vector of float) +0:305 Sequence +0:305 move second child to first child ( temp 4-component vector of bool) +0:305 'r041' ( temp 4-component vector of bool) +0:305 isnan ( temp 4-component vector of bool) +0:305 'inF0' ( in 4-component vector of float) +0:306 Sequence +0:306 move second child to first child ( temp 4-component vector of float) +0:306 'r042' ( temp 4-component vector of float) +0:306 ldexp ( temp 4-component vector of float) +0:306 'inF0' ( in 4-component vector of float) +0:306 'inF1' ( in 4-component vector of float) +0:307 Sequence +0:307 move second child to first child ( temp 4-component vector of float) +0:307 'r039a' ( temp 4-component vector of float) +0:307 mix ( temp 4-component vector of float) +0:307 'inF0' ( in 4-component vector of float) +0:307 'inF1' ( in 4-component vector of float) +0:307 'inF2' ( in 4-component vector of float) +0:308 Sequence +0:308 move second child to first child ( temp float) +0:308 'r043' ( temp float) +0:308 length ( temp float) +0:308 'inF0' ( in 4-component vector of float) +0:309 Sequence +0:309 move second child to first child ( temp 4-component vector of float) +0:309 'r044' ( temp 4-component vector of float) +0:309 log ( temp 4-component vector of float) +0:309 'inF0' ( in 4-component vector of float) +0:310 Sequence +0:310 move second child to first child ( temp 4-component vector of float) +0:310 'r045' ( temp 4-component vector of float) +0:310 vector-scale ( temp 4-component vector of float) +0:310 log2 ( temp 4-component vector of float) +0:310 'inF0' ( in 4-component vector of float) +0:310 Constant: +0:310 0.301030 +0:311 Sequence +0:311 move second child to first child ( temp 4-component vector of float) +0:311 'r046' ( temp 4-component vector of float) +0:311 log2 ( temp 4-component vector of float) +0:311 'inF0' ( in 4-component vector of float) +0:312 Sequence +0:312 move second child to first child ( temp 4-component vector of float) +0:312 'r047' ( temp 4-component vector of float) +0:312 max ( temp 4-component vector of float) +0:312 'inF0' ( in 4-component vector of float) +0:312 'inF1' ( in 4-component vector of float) +0:313 Sequence +0:313 move second child to first child ( temp 4-component vector of float) +0:313 'r048' ( temp 4-component vector of float) +0:313 min ( temp 4-component vector of float) +0:313 'inF0' ( in 4-component vector of float) +0:313 'inF1' ( in 4-component vector of float) +0:314 Sequence +0:314 move second child to first child ( temp 4-component vector of float) +0:314 'r049' ( temp 4-component vector of float) +0:314 normalize ( temp 4-component vector of float) +0:314 'inF0' ( in 4-component vector of float) +0:315 Sequence +0:315 move second child to first child ( temp 4-component vector of float) +0:315 'r050' ( temp 4-component vector of float) +0:315 pow ( temp 4-component vector of float) +0:315 'inF0' ( in 4-component vector of float) +0:315 'inF1' ( in 4-component vector of float) +0:316 Sequence +0:316 move second child to first child ( temp 4-component vector of float) +0:316 'r051' ( temp 4-component vector of float) +0:316 radians ( temp 4-component vector of float) +0:316 'inF0' ( in 4-component vector of float) +0:317 Sequence +0:317 move second child to first child ( temp 4-component vector of float) +0:317 'r052' ( temp 4-component vector of float) +0:317 divide ( temp 4-component vector of float) +0:317 Constant: +0:317 1.000000 +0:317 'inF0' ( in 4-component vector of float) +0:318 Sequence +0:318 move second child to first child ( temp 4-component vector of float) +0:318 'r053' ( temp 4-component vector of float) +0:318 reflect ( temp 4-component vector of float) +0:318 'inF0' ( in 4-component vector of float) +0:318 'inF1' ( in 4-component vector of float) +0:319 Sequence +0:319 move second child to first child ( temp 4-component vector of float) +0:319 'r054' ( temp 4-component vector of float) +0:319 refract ( temp 4-component vector of float) +0:319 'inF0' ( in 4-component vector of float) +0:319 'inF1' ( in 4-component vector of float) +0:319 Constant: +0:319 2.000000 +0:320 Sequence +0:320 move second child to first child ( temp 4-component vector of uint) +0:320 'r055' ( temp 4-component vector of uint) +0:? bitFieldReverse ( 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:321 Sequence +0:321 move second child to first child ( temp 4-component vector of float) +0:321 'r056' ( temp 4-component vector of float) +0:321 roundEven ( temp 4-component vector of float) +0:321 'inF0' ( in 4-component vector of float) +0:322 Sequence +0:322 move second child to first child ( temp 4-component vector of float) +0:322 'r057' ( temp 4-component vector of float) +0:322 inverse sqrt ( temp 4-component vector of float) +0:322 'inF0' ( in 4-component vector of float) +0:323 Sequence +0:323 move second child to first child ( temp 4-component vector of float) +0:323 'r058' ( temp 4-component vector of float) +0:323 clamp ( temp 4-component vector of float) +0:323 'inF0' ( in 4-component vector of float) +0:323 Constant: +0:323 0.000000 +0:323 Constant: +0:323 1.000000 +0:324 Sequence +0:324 move second child to first child ( temp 4-component vector of float) +0:324 'r059' ( temp 4-component vector of float) +0:324 Sign ( temp 4-component vector of float) +0:324 'inF0' ( in 4-component vector of float) +0:325 Sequence +0:325 move second child to first child ( temp 4-component vector of float) +0:325 'r060' ( temp 4-component vector of float) +0:325 sine ( 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 'inF1' ( in 4-component vector of float) +0:326 sine ( temp 4-component vector of float) +0:326 'inF0' ( in 4-component vector of float) +0:326 move second child to first child ( temp 4-component vector of float) +0:326 'inF2' ( in 4-component vector of float) +0:326 cosine ( temp 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 'r061' ( temp 4-component vector of float) +0:327 hyp. sine ( temp 4-component vector of float) +0:327 'inF0' ( in 4-component vector of float) +0:328 Sequence +0:328 move second child to first child ( temp 4-component vector of float) +0:328 'r062' ( temp 4-component vector of float) +0:328 smoothstep ( temp 4-component vector of float) +0:328 'inF0' ( in 4-component vector of float) +0:328 'inF1' ( in 4-component vector of float) +0:328 'inF2' ( in 4-component vector of float) +0:329 Sequence +0:329 move second child to first child ( temp 4-component vector of float) +0:329 'r063' ( temp 4-component vector of float) +0:329 sqrt ( temp 4-component vector of float) +0:329 'inF0' ( in 4-component vector of float) +0:330 Sequence +0:330 move second child to first child ( temp 4-component vector of float) +0:330 'r064' ( temp 4-component vector of float) +0:330 step ( temp 4-component vector of float) +0:330 'inF0' ( in 4-component vector of float) +0:330 'inF1' ( in 4-component vector of float) +0:331 Sequence +0:331 move second child to first child ( temp 4-component vector of float) +0:331 'r065' ( temp 4-component vector of float) +0:331 tangent ( temp 4-component vector of float) +0:331 'inF0' ( in 4-component vector of float) +0:332 Sequence +0:332 move second child to first child ( temp 4-component vector of float) +0:332 'r066' ( temp 4-component vector of float) +0:332 hyp. tangent ( temp 4-component vector of float) +0:332 'inF0' ( in 4-component vector of float) +0:334 Sequence +0:334 move second child to first child ( temp 4-component vector of float) +0:334 'r067' ( temp 4-component vector of float) +0:334 trunc ( temp 4-component vector of float) +0:334 'inF0' ( in 4-component vector of float) +0:337 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:400 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 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:402 Sequence +0:402 move second child to first child ( temp bool) +0:402 'r000' ( temp bool) +0:402 all ( temp bool) +0:402 Convert float to bool ( temp 2X2 matrix of 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 ( temp 2X2 matrix of float) +0:402 'inF0' ( in 2X2 matrix of float) +0:402 arc 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 bool) +0:402 'r003' ( temp bool) +0:402 any ( temp bool) +0:402 Convert float to bool ( temp 2X2 matrix of 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 ( 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 'r005' ( temp 2X2 matrix of float) +0:402 arc tangent ( 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 'r006' ( temp 2X2 matrix of float) +0:402 arc tangent ( temp 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 ( temp 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 ( temp 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 ( 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 'r010' ( temp 2X2 matrix of float) +0:402 hyp. 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 'r011' ( temp 2X2 matrix of float) +0:402 dPdx ( 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 'r012' ( temp 2X2 matrix of float) +0:402 dPdxCoarse ( 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 'r013' ( temp 2X2 matrix of float) +0:402 dPdxFine ( 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 'r014' ( temp 2X2 matrix of float) +0:402 dPdy ( 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 'r015' ( temp 2X2 matrix of float) +0:402 dPdyCoarse ( 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 'r016' ( temp 2X2 matrix of float) +0:402 dPdyFine ( 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 'r017' ( temp 2X2 matrix of float) +0:402 degrees ( 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 float) +0:402 'r018' ( temp float) +0:402 determinant ( temp 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 ( 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 'R020' ( temp 2X2 matrix of float) +0:402 exp2 ( 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 'r021' ( temp 2X2 matrix of float) +0:402 Floor ( 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 'r022' ( temp 2X2 matrix of float) +0:402 mod ( temp 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 ( 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 'r025' ( temp 2X2 matrix of float) +0:402 fwidth ( 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 'r026' ( temp 2X2 matrix of float) +0:402 ldexp ( temp 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 ( temp 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 ( 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 '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 ( 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 'r030' ( temp 2X2 matrix of float) +0:402 max ( temp 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 ( temp 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 ( temp 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 ( 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 'r034' ( temp 2X2 matrix of float) +0:402 roundEven ( 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 'r035' ( temp 2X2 matrix of float) +0:402 inverse sqrt ( 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 '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 ( 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 'r038' ( temp 2X2 matrix of float) +0:402 sine ( 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 '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 ( 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 'r049' ( temp 2X2 matrix of float) +0:402 smoothstep ( temp 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 ( 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 'r042' ( temp 2X2 matrix of float) +0:402 step ( temp 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 ( 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 'r044' ( temp 2X2 matrix of float) +0:402 hyp. tangent ( temp 2X2 matrix of float) +0:402 'inF0' ( in 2X2 matrix of float) +0:402 transpose ( 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 'r046' ( temp 2X2 matrix of float) +0:402 trunc ( temp 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:409 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 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:411 Sequence +0:411 move second child to first child ( temp bool) +0:411 'r000' ( temp bool) +0:411 all ( temp bool) +0:411 Convert float to bool ( temp 3X3 matrix of 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 ( temp 3X3 matrix of float) +0:411 'inF0' ( in 3X3 matrix of float) +0:411 arc 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 bool) +0:411 'r003' ( temp bool) +0:411 any ( temp bool) +0:411 Convert float to bool ( temp 3X3 matrix of 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 ( 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 'r005' ( temp 3X3 matrix of float) +0:411 arc tangent ( 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 'r006' ( temp 3X3 matrix of float) +0:411 arc tangent ( temp 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 ( temp 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 ( temp 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 ( 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 'r010' ( temp 3X3 matrix of float) +0:411 hyp. 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 'r011' ( temp 3X3 matrix of float) +0:411 dPdx ( 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 'r012' ( temp 3X3 matrix of float) +0:411 dPdxCoarse ( 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 'r013' ( temp 3X3 matrix of float) +0:411 dPdxFine ( 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 'r014' ( temp 3X3 matrix of float) +0:411 dPdy ( 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 'r015' ( temp 3X3 matrix of float) +0:411 dPdyCoarse ( 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 'r016' ( temp 3X3 matrix of float) +0:411 dPdyFine ( 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 'r017' ( temp 3X3 matrix of float) +0:411 degrees ( 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 float) +0:411 'r018' ( temp float) +0:411 determinant ( temp 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 ( 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 'R020' ( temp 3X3 matrix of float) +0:411 exp2 ( 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 'r021' ( temp 3X3 matrix of float) +0:411 Floor ( 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 'r022' ( temp 3X3 matrix of float) +0:411 mod ( temp 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 ( 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 'r025' ( temp 3X3 matrix of float) +0:411 fwidth ( 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 'r026' ( temp 3X3 matrix of float) +0:411 ldexp ( temp 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 ( temp 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 ( 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 '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 ( 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 'r030' ( temp 3X3 matrix of float) +0:411 max ( temp 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 ( temp 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 ( temp 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 ( 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 'r034' ( temp 3X3 matrix of float) +0:411 roundEven ( 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 'r035' ( temp 3X3 matrix of float) +0:411 inverse sqrt ( 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 '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 ( 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 'r038' ( temp 3X3 matrix of float) +0:411 sine ( 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 '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 ( 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 'r049' ( temp 3X3 matrix of float) +0:411 smoothstep ( temp 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 ( 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 'r042' ( temp 3X3 matrix of float) +0:411 step ( temp 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 ( 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 'r044' ( temp 3X3 matrix of float) +0:411 hyp. tangent ( temp 3X3 matrix of float) +0:411 'inF0' ( in 3X3 matrix of float) +0:411 transpose ( 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 'r046' ( temp 3X3 matrix of float) +0:411 trunc ( temp 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 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:418 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 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:420 Sequence +0:420 move second child to first child ( temp bool) +0:420 'r000' ( temp bool) +0:420 all ( temp bool) +0:420 Convert float to bool ( temp 4X4 matrix of 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 ( temp 4X4 matrix of float) +0:420 'inF0' ( in 4X4 matrix of float) +0:420 arc 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 bool) +0:420 'r003' ( temp bool) +0:420 any ( temp bool) +0:420 Convert float to bool ( temp 4X4 matrix of 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 ( 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 'r005' ( temp 4X4 matrix of float) +0:420 arc tangent ( 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 'r006' ( temp 4X4 matrix of float) +0:420 arc tangent ( temp 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 ( temp 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 ( temp 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 ( 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 'r010' ( temp 4X4 matrix of float) +0:420 hyp. 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 'r011' ( temp 4X4 matrix of float) +0:420 dPdx ( 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 'r012' ( temp 4X4 matrix of float) +0:420 dPdxCoarse ( 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 'r013' ( temp 4X4 matrix of float) +0:420 dPdxFine ( 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 'r014' ( temp 4X4 matrix of float) +0:420 dPdy ( 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 'r015' ( temp 4X4 matrix of float) +0:420 dPdyCoarse ( 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 'r016' ( temp 4X4 matrix of float) +0:420 dPdyFine ( 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 'r017' ( temp 4X4 matrix of float) +0:420 degrees ( 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 float) +0:420 'r018' ( temp float) +0:420 determinant ( temp 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 ( 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 'R020' ( temp 4X4 matrix of float) +0:420 exp2 ( 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 'r021' ( temp 4X4 matrix of float) +0:420 Floor ( 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 'r022' ( temp 4X4 matrix of float) +0:420 mod ( temp 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 ( 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 'r025' ( temp 4X4 matrix of float) +0:420 fwidth ( 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 'r026' ( temp 4X4 matrix of float) +0:420 ldexp ( temp 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 ( temp 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 ( 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 '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 ( 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 'r030' ( temp 4X4 matrix of float) +0:420 max ( temp 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 ( temp 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 ( temp 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 ( 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 'r034' ( temp 4X4 matrix of float) +0:420 roundEven ( 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 'r035' ( temp 4X4 matrix of float) +0:420 inverse sqrt ( 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 '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 ( 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 'r038' ( temp 4X4 matrix of float) +0:420 sine ( 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 '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 ( 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 'r049' ( temp 4X4 matrix of float) +0:420 smoothstep ( temp 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 ( 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 'r042' ( temp 4X4 matrix of float) +0:420 step ( temp 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 ( 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 'r044' ( temp 4X4 matrix of float) +0:420 hyp. tangent ( temp 4X4 matrix of float) +0:420 'inF0' ( in 4X4 matrix of float) +0:420 transpose ( 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 'r046' ( temp 4X4 matrix of float) +0:420 trunc ( temp 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 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:441 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp 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: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 'inF1' ( in 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 'r1' ( 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 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 'inFV0' ( in 2-component vector of float) +0:442 'inF0' ( in float) +0:442 Sequence +0:442 move second child to first child ( temp float) +0:442 'r3' ( temp float) +0:442 dot-product ( temp 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 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 2-component vector of float) +0:442 'r5' ( 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 2X2 matrix of float) +0:442 'r6' ( 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 'r7' ( 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 'r8' ( temp 2X2 matrix of float) +0:442 matrix-multiply ( temp 2X2 matrix of float) +0:442 'inFM1' ( in 2X2 matrix of float) +0:442 'inFM0' ( in 2X2 matrix of float) +0:448 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp 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: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 'inF1' ( in 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 'r1' ( 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 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 'inFV0' ( in 3-component vector of float) +0:449 'inF0' ( in float) +0:449 Sequence +0:449 move second child to first child ( temp float) +0:449 'r3' ( temp float) +0:449 dot-product ( temp 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 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 3-component vector of float) +0:449 'r5' ( 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 3X3 matrix of float) +0:449 'r6' ( 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 'r7' ( 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 'r8' ( temp 3X3 matrix of float) +0:449 matrix-multiply ( temp 3X3 matrix of float) +0:449 'inFM1' ( in 3X3 matrix of float) +0:449 'inFM0' ( in 3X3 matrix of float) +0:455 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp 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: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 'inF1' ( in 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 'r1' ( 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 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 'inFV0' ( in 4-component vector of float) +0:456 'inF0' ( in float) +0:456 Sequence +0:456 move second child to first child ( temp float) +0:456 'r3' ( temp float) +0:456 dot-product ( temp 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 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 4-component vector of float) +0:456 'r5' ( 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 4X4 matrix of float) +0:456 'r6' ( 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 'r7' ( 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 'r8' ( temp 4X4 matrix of float) +0:456 matrix-multiply ( temp 4X4 matrix of float) +0:456 'inFM1' ( in 4X4 matrix of float) +0:456 'inFM0' ( in 4X4 matrix of float) +0:465 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp 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 2X3 matrix of float) +0:465 'inFM3x2' ( in 3X2 matrix of float) +0:465 'inFM3x3' ( in 3X3 matrix of float) +0:465 'inFM3x4' ( in 3X4 matrix of float) +0:465 'inFM2x4' ( in 2X4 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 'inF1' ( in float) +0:466 'inF0' ( 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 'inF0' ( in float) +0:467 'inFV2' ( in 2-component vector of 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 'inF0' ( in float) +0:468 'inFV3' ( in 3-component vector of 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 'inFV2' ( in 2-component vector of float) +0:469 'inF0' ( in 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 'inFV3' ( in 3-component vector of float) +0:470 'inF0' ( in float) +0:471 Sequence +0:471 move second child to first child ( temp float) +0:471 'r05' ( temp float) +0:471 dot-product ( temp 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 ( temp 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 matrix-times-vector ( temp 3-component vector of float) +0:473 'inFM2x3' ( in 2X3 matrix of float) +0:473 'inFV2' ( in 2-component vector 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 matrix-times-vector ( temp 2-component vector of float) +0:474 'inFM3x2' ( in 3X2 matrix of float) +0:474 'inFV3' ( in 3-component vector 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 vector-times-matrix ( temp 2-component vector of float) +0:475 'inFV3' ( in 3-component vector of float) +0:475 'inFM2x3' ( in 2X3 matrix 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 vector-times-matrix ( temp 3-component vector of float) +0:476 'inFV2' ( in 2-component vector of float) +0:476 'inFM3x2' ( in 3X2 matrix of float) +0:477 Sequence +0:477 move second child to first child ( temp 2X3 matrix of float) +0:477 'r11' ( temp 2X3 matrix of float) +0:477 matrix-scale ( temp 2X3 matrix of float) +0:477 'inF0' ( in float) +0:477 'inFM2x3' ( in 2X3 matrix of float) +0:478 Sequence +0:478 move second child to first child ( temp 3X2 matrix of float) +0:478 'r12' ( temp 3X2 matrix of float) +0:478 matrix-scale ( temp 3X2 matrix of float) +0:478 'inF0' ( in float) +0:478 'inFM3x2' ( in 3X2 matrix of 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 'inFM3x2' ( in 3X2 matrix of float) +0:479 'inFM2x3' ( in 2X3 matrix of float) +0:480 Sequence +0:480 move second child to first child ( temp 2X3 matrix of float) +0:480 'r14' ( temp 2X3 matrix of float) +0:480 matrix-multiply ( temp 2X3 matrix of float) +0:480 'inFM3x3' ( in 3X3 matrix of float) +0:480 'inFM2x3' ( in 2X3 matrix of float) +0:481 Sequence +0:481 move second child to first child ( temp 2X4 matrix of float) +0:481 'r15' ( temp 2X4 matrix of float) +0:481 matrix-multiply ( temp 2X4 matrix of float) +0:481 'inFM3x4' ( in 3X4 matrix of float) +0:481 'inFM2x3' ( in 2X3 matrix of float) +0:482 Sequence +0:482 move second child to first child ( temp 3X4 matrix of float) +0:482 'r16' ( temp 3X4 matrix of float) +0:482 matrix-multiply ( temp 3X4 matrix of float) +0:482 'inFM2x4' ( in 2X4 matrix of float) +0:482 'inFM3x2' ( in 3X2 matrix of float) +0:488 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:488 Function Parameters: +0:? Sequence +0:490 move second child to first child ( temp 4-component vector of float) +0:490 color: direct index for structure ( temp 4-component vector of float) +0:490 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:490 Constant: +0:490 0 (const int) +0:490 Constant: +0:490 1.000000 +0:490 1.000000 +0:490 1.000000 +0:490 1.000000 +0:491 Branch: Return with expression +0:491 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:488 Function Definition: main( ( temp void) +0:488 Function Parameters: +0:? Sequence +0:488 Sequence +0:488 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:488 color: direct index for structure ( temp 4-component vector of float) +0:488 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:488 Constant: +0:488 0 (const int) +0:? Linker Objects +0:? 'gs_ua' ( shared uint) +0:? 'gs_ub' ( shared uint) +0:? 'gs_uc' ( shared uint) +0:? 'gs_ua2' ( shared 2-component vector of uint) +0:? 'gs_ub2' ( shared 2-component vector of uint) +0:? 'gs_uc2' ( shared 2-component vector of uint) +0:? 'gs_ua3' ( shared 3-component vector of uint) +0:? 'gs_ub3' ( shared 3-component vector of uint) +0:? 'gs_uc3' ( shared 3-component vector of uint) +0:? 'gs_ua4' ( shared 4-component vector of uint) +0:? 'gs_ub4' ( shared 4-component vector of uint) +0:? 'gs_uc4' ( shared 4-component vector of uint) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;i1; ( temp float) +0:17 Function Parameters: +0:17 'inF0' ( in float) +0:17 'inF1' ( in float) +0:17 'inF2' ( in float) +0:17 'inU0' ( in uint) +0:17 'inU1' ( in int) +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp bool) +0:20 'r000' ( temp bool) +0:20 all ( temp bool) +0:20 Convert float to bool ( temp bool) +0:20 'inF0' ( in float) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'r001' ( temp float) +0:21 Absolute value ( temp float) +0:21 'inF0' ( in float) +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'r002' ( temp float) +0:22 arc cosine ( temp float) +0:22 'inF0' ( in float) +0:23 Sequence +0:23 move second child to first child ( temp bool) +0:23 'r003' ( temp bool) +0:23 any ( temp bool) +0:23 Convert float to bool ( temp bool) +0:23 'inF0' ( in float) +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'r004' ( temp float) +0:24 arc sine ( temp float) +0:24 'inF0' ( in float) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'r005' ( temp int) +0:25 floatBitsToInt ( temp int) +0:25 'inF0' ( in float) +0:26 Sequence +0:26 move second child to first child ( temp uint) +0:26 'r006' ( temp uint) +0:26 floatBitsToUint ( temp uint) +0:26 'inU1' ( in int) +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'r007' ( temp float) +0:27 intBitsToFloat ( temp float) +0:27 'inU0' ( in uint) +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'r009' ( temp float) +0:29 arc tangent ( temp float) +0:29 'inF0' ( in float) +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'r010' ( temp float) +0:30 arc tangent ( temp float) +0:30 'inF0' ( in float) +0:30 'inF1' ( in float) +0:31 Sequence +0:31 move second child to first child ( temp float) +0:31 'r011' ( temp float) +0:31 Ceiling ( temp float) +0:31 'inF0' ( in float) +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'r012' ( temp float) +0:32 clamp ( temp float) +0:32 'inF0' ( in float) +0:32 'inF1' ( in float) +0:32 'inF2' ( in float) +0:33 Test condition and select ( temp void) +0:33 Condition +0:33 Compare Less Than ( temp bool) +0:33 'inF0' ( in float) +0:33 Constant: +0:33 0.000000 +0:33 true case +0:33 Branch: Kill +0:34 Test condition and select ( temp void) +0:34 Condition +0:34 Compare Less Than ( temp bool) +0:34 'r005' ( temp int) +0:34 Constant: +0:34 0 (const int) +0:34 true case +0:34 Branch: Kill +0:35 Sequence +0:35 move second child to first child ( temp float) +0:35 'r014' ( temp float) +0:35 cosine ( temp float) +0:35 'inF0' ( in float) +0:36 Sequence +0:36 move second child to first child ( temp float) +0:36 'r015' ( temp float) +0:36 hyp. cosine ( temp float) +0:36 'inF0' ( in float) +0:37 Sequence +0:37 move second child to first child ( temp int) +0:37 'r016' ( temp int) +0:37 bitCount ( temp int) +0:37 Constant: +0:37 7 (const int) +0:38 Sequence +0:38 move second child to first child ( temp float) +0:38 'r017' ( temp float) +0:38 dPdx ( temp float) +0:38 'inF0' ( in float) +0:39 Sequence +0:39 move second child to first child ( temp float) +0:39 'r018' ( temp float) +0:39 dPdxCoarse ( temp float) +0:39 'inF0' ( in float) +0:40 Sequence +0:40 move second child to first child ( temp float) +0:40 'r019' ( temp float) +0:40 dPdxFine ( temp float) +0:40 'inF0' ( in float) +0:41 Sequence +0:41 move second child to first child ( temp float) +0:41 'r020' ( temp float) +0:41 dPdy ( temp float) +0:41 'inF0' ( in float) +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r021' ( temp float) +0:42 dPdyCoarse ( temp float) +0:42 'inF0' ( in float) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r022' ( temp float) +0:43 dPdyFine ( temp float) +0:43 'inF0' ( in float) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r023' ( temp float) +0:44 degrees ( temp float) +0:44 'inF0' ( in float) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r027' ( temp float) +0:48 exp ( temp float) +0:48 'inF0' ( in float) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r028' ( temp float) +0:49 exp2 ( temp float) +0:49 'inF0' ( in float) +0:50 Sequence +0:50 move second child to first child ( temp uint) +0:50 'r029' ( temp uint) +0:50 Convert int to uint ( temp uint) +0:50 findMSB ( temp int) +0:50 Constant: +0:50 7 (const int) +0:51 Sequence +0:51 move second child to first child ( temp uint) +0:51 'r030' ( temp uint) +0:51 Convert int to uint ( temp uint) +0:51 findLSB ( temp int) +0:51 Constant: +0:51 7 (const int) +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r031' ( temp float) +0:52 Floor ( temp float) +0:52 'inF0' ( in float) +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r033' ( temp float) +0:54 mod ( temp float) +0:54 'inF0' ( in float) +0:54 'inF1' ( in float) +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'r034' ( temp float) +0:55 Fraction ( temp float) +0:55 'inF0' ( in float) +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'r036' ( temp float) +0:56 fwidth ( temp float) +0:56 'inF0' ( in float) +0:57 Sequence +0:57 move second child to first child ( temp bool) +0:57 'r037' ( temp bool) +0:57 isinf ( temp bool) +0:57 'inF0' ( in float) +0:58 Sequence +0:58 move second child to first child ( temp bool) +0:58 'r038' ( temp bool) +0:58 isnan ( temp bool) +0:58 'inF0' ( in float) +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 'r039' ( temp float) +0:59 ldexp ( temp float) +0:59 'inF0' ( in float) +0:59 'inF1' ( in float) +0:60 Sequence +0:60 move second child to first child ( temp float) +0:60 'r039a' ( temp float) +0:60 mix ( temp float) +0:60 'inF0' ( in float) +0:60 'inF1' ( in float) +0:60 'inF2' ( in float) +0:61 Sequence +0:61 move second child to first child ( temp float) +0:61 'r040' ( temp float) +0:61 log ( temp 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 ( temp float) +0:63 'inF0' ( in float) +0:64 Sequence +0:64 move second child to first child ( temp float) +0:64 'r043' ( temp float) +0:64 max ( temp float) +0:64 'inF0' ( in float) +0:64 'inF1' ( in float) +0:65 Sequence +0:65 move second child to first child ( temp float) +0:65 'r044' ( temp float) +0:65 min ( temp float) +0:65 'inF0' ( in float) +0:65 'inF1' ( in float) +0:66 Sequence +0:66 move second child to first child ( temp float) +0:66 'r045' ( temp float) +0:66 pow ( temp float) +0:66 'inF0' ( in float) +0:66 'inF1' ( in float) +0:67 Sequence +0:67 move second child to first child ( temp float) +0:67 'r046' ( temp float) +0:67 radians ( temp 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 Convert int to uint ( temp uint) +0:69 bitFieldReverse ( temp int) +0:69 Constant: +0:69 2 (const int) +0:70 Sequence +0:70 move second child to first child ( temp float) +0:70 'r049' ( temp float) +0:70 roundEven ( temp float) +0:70 'inF0' ( in float) +0:71 Sequence +0:71 move second child to first child ( temp float) +0:71 'r050' ( temp float) +0:71 inverse sqrt ( temp 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 ( temp float) +0:73 'inF0' ( in float) +0:74 Sequence +0:74 move second child to first child ( temp float) +0:74 'r053' ( temp float) +0:74 sine ( temp float) +0:74 'inF0' ( in 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 ( temp float) +0:76 'inF0' ( in float) +0:77 Sequence +0:77 move second child to first child ( temp float) +0:77 'r056' ( temp float) +0:77 smoothstep ( temp float) +0:77 'inF0' ( in float) +0:77 'inF1' ( in float) +0:77 'inF2' ( in float) +0:78 Sequence +0:78 move second child to first child ( temp float) +0:78 'r057' ( temp float) +0:78 sqrt ( temp float) +0:78 'inF0' ( in float) +0:79 Sequence +0:79 move second child to first child ( temp float) +0:79 'r058' ( temp float) +0:79 step ( temp float) +0:79 'inF0' ( in float) +0:79 'inF1' ( in float) +0:80 Sequence +0:80 move second child to first child ( temp float) +0:80 'r059' ( temp float) +0:80 tangent ( temp float) +0:80 'inF0' ( in float) +0:81 Sequence +0:81 move second child to first child ( temp float) +0:81 'r060' ( temp float) +0:81 hyp. tangent ( temp float) +0:81 'inF0' ( in float) +0:83 Sequence +0:83 move second child to first child ( temp float) +0:83 'r061' ( temp float) +0:83 trunc ( temp float) +0:83 'inF0' ( in float) +0:85 Branch: Return with expression +0:85 Constant: +0:85 0.000000 +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) +0:89 Function Parameters: +0:89 'inF0' ( in 1-component vector of float) +0:89 'inF1' ( in 1-component vector of float) +0:89 'inF2' ( in 1-component vector of float) +0:? Sequence +0:91 Branch: Return with expression +0:91 Constant: +0:91 0.000000 +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) +0:95 Function Parameters: +0:95 'inF0' ( in 2-component vector of float) +0:95 'inF1' ( in 2-component vector of float) +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:98 Sequence +0:98 move second child to first child ( temp bool) +0:98 'r000' ( temp bool) +0:98 all ( temp bool) +0:98 Convert float to bool ( temp 2-component vector of 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 ( temp 2-component vector of float) +0:99 'inF0' ( in 2-component vector of float) +0:100 Sequence +0:100 move second child to first child ( temp 2-component vector of float) +0:100 'r002' ( temp 2-component vector of float) +0:100 arc cosine ( temp 2-component vector of float) +0:100 'inF0' ( in 2-component vector of float) +0:101 Sequence +0:101 move second child to first child ( temp bool) +0:101 'r003' ( temp bool) +0:101 any ( temp bool) +0:101 Convert float to bool ( temp 2-component vector of 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 ( temp 2-component vector of float) +0:102 'inF0' ( in 2-component vector of float) +0:103 Sequence +0:103 move second child to first child ( temp 2-component vector of int) +0:103 'r005' ( temp 2-component vector of int) +0:103 floatBitsToInt ( temp 2-component vector of int) +0:103 'inF0' ( in 2-component vector of float) +0:104 Sequence +0:104 move second child to first child ( temp 2-component vector of uint) +0:104 'r006' ( temp 2-component vector of uint) +0:104 floatBitsToUint ( temp 2-component vector of uint) +0:104 'inF0' ( in 2-component vector of float) +0:105 Sequence +0:105 move second child to first child ( temp 2-component vector of float) +0:105 'r007' ( temp 2-component vector of float) +0:105 intBitsToFloat ( temp 2-component vector of float) +0:105 'inU0' ( in 2-component vector of uint) +0:107 Sequence +0:107 move second child to first child ( temp 2-component vector of float) +0:107 'r009' ( temp 2-component vector of float) +0:107 arc tangent ( temp 2-component vector of float) +0:107 'inF0' ( in 2-component vector of float) +0:108 Sequence +0:108 move second child to first child ( temp 2-component vector of float) +0:108 'r010' ( temp 2-component vector of float) +0:108 arc tangent ( temp 2-component vector of float) +0:108 'inF0' ( in 2-component vector of float) +0:108 'inF1' ( in 2-component vector of float) +0:109 Sequence +0:109 move second child to first child ( temp 2-component vector of float) +0:109 'r011' ( temp 2-component vector of float) +0:109 Ceiling ( temp 2-component vector of float) +0:109 'inF0' ( in 2-component vector of float) +0:110 Sequence +0:110 move second child to first child ( temp 2-component vector of float) +0:110 'r012' ( temp 2-component vector of float) +0:110 clamp ( temp 2-component vector of float) +0:110 'inF0' ( in 2-component vector of float) +0:110 'inF1' ( in 2-component vector of float) +0:110 'inF2' ( in 2-component vector of float) +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 Test condition and select ( temp void) +0:112 Condition +0:112 any ( temp bool) +0:112 Compare Less Than ( temp 2-component vector of bool) +0:112 'inU0' ( in 2-component vector of uint) +0:112 Constant: +0:112 0.000000 +0:112 0.000000 +0:112 true case +0:112 Branch: Kill +0:113 Sequence +0:113 move second child to first child ( temp 2-component vector of float) +0:113 'r013' ( temp 2-component vector of float) +0:113 cosine ( temp 2-component vector of float) +0:113 'inF0' ( in 2-component vector of float) +0:114 Sequence +0:114 move second child to first child ( temp 2-component vector of float) +0:114 'r015' ( temp 2-component vector of float) +0:114 hyp. cosine ( temp 2-component vector of float) +0:114 'inF0' ( in 2-component vector of float) +0:115 Sequence +0:115 move second child to first child ( temp 2-component vector of int) +0:115 'r016' ( temp 2-component vector of int) +0:? bitCount ( temp 2-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:116 Sequence +0:116 move second child to first child ( temp 2-component vector of float) +0:116 'r017' ( temp 2-component vector of float) +0:116 dPdx ( temp 2-component vector of float) +0:116 'inF0' ( in 2-component vector of float) +0:117 Sequence +0:117 move second child to first child ( temp 2-component vector of float) +0:117 'r018' ( temp 2-component vector of float) +0:117 dPdxCoarse ( temp 2-component vector of float) +0:117 'inF0' ( in 2-component vector of float) +0:118 Sequence +0:118 move second child to first child ( temp 2-component vector of float) +0:118 'r019' ( temp 2-component vector of float) +0:118 dPdxFine ( temp 2-component vector of float) +0:118 'inF0' ( in 2-component vector of float) +0:119 Sequence +0:119 move second child to first child ( temp 2-component vector of float) +0:119 'r020' ( temp 2-component vector of float) +0:119 dPdy ( temp 2-component vector of float) +0:119 'inF0' ( in 2-component vector of float) +0:120 Sequence +0:120 move second child to first child ( temp 2-component vector of float) +0:120 'r021' ( temp 2-component vector of float) +0:120 dPdyCoarse ( temp 2-component vector of float) +0:120 'inF0' ( in 2-component vector of float) +0:121 Sequence +0:121 move second child to first child ( temp 2-component vector of float) +0:121 'r022' ( temp 2-component vector of float) +0:121 dPdyFine ( temp 2-component vector of float) +0:121 'inF0' ( in 2-component vector of float) +0:122 Sequence +0:122 move second child to first child ( temp 2-component vector of float) +0:122 'r023' ( temp 2-component vector of float) +0:122 degrees ( temp 2-component vector of float) +0:122 'inF0' ( in 2-component vector of float) +0:126 Sequence +0:126 move second child to first child ( temp float) +0:126 'r026' ( temp float) +0:126 distance ( temp float) +0:126 'inF0' ( in 2-component vector of float) +0:126 'inF1' ( in 2-component vector of float) +0:127 Sequence +0:127 move second child to first child ( temp float) +0:127 'r027' ( temp float) +0:127 dot-product ( temp float) +0:127 'inF0' ( in 2-component vector of float) +0:127 'inF1' ( 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 'r028' ( temp 2-component vector of float) +0:131 exp ( temp 2-component vector of float) +0:131 'inF0' ( in 2-component vector of float) +0:132 Sequence +0:132 move second child to first child ( temp 2-component vector of float) +0:132 'r029' ( temp 2-component vector of float) +0:132 exp2 ( temp 2-component vector of float) +0:132 'inF0' ( in 2-component vector of float) +0:133 Sequence +0:133 move second child to first child ( temp 2-component vector of float) +0:133 'r030' ( temp 2-component vector of float) +0:133 face-forward ( temp 2-component vector of float) +0:133 'inF0' ( in 2-component vector of float) +0:133 'inF1' ( in 2-component vector of float) +0:133 'inF2' ( in 2-component vector of float) +0:134 Sequence +0:134 move second child to first child ( temp 2-component vector of uint) +0:134 'r031' ( temp 2-component vector of uint) +0:? findMSB ( temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:135 Sequence +0:135 move second child to first child ( temp 2-component vector of uint) +0:135 'r032' ( temp 2-component vector of uint) +0:? findLSB ( temp 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:136 Sequence +0:136 move second child to first child ( temp 2-component vector of float) +0:136 'r033' ( temp 2-component vector of float) +0:136 Floor ( temp 2-component vector of float) +0:136 'inF0' ( 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 'r035' ( temp 2-component vector of float) +0:138 mod ( temp 2-component vector of float) +0:138 'inF0' ( in 2-component vector of float) +0:138 'inF1' ( 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 'r036' ( temp 2-component vector of float) +0:139 Fraction ( temp 2-component vector of float) +0:139 'inF0' ( 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 ( temp 2-component vector of float) +0:140 'inF0' ( in 2-component vector of float) +0:141 Sequence +0:141 move second child to first child ( temp 2-component vector of bool) +0:141 'r039' ( temp 2-component vector of bool) +0:141 isinf ( temp 2-component vector of bool) +0:141 'inF0' ( in 2-component vector of float) +0:142 Sequence +0:142 move second child to first child ( temp 2-component vector of bool) +0:142 'r040' ( temp 2-component vector of bool) +0:142 isnan ( temp 2-component vector of bool) +0:142 'inF0' ( in 2-component vector of float) +0:143 Sequence +0:143 move second child to first child ( temp 2-component vector of float) +0:143 'r041' ( temp 2-component vector of float) +0:143 ldexp ( temp 2-component vector of float) +0:143 'inF0' ( in 2-component vector of float) +0:143 'inF1' ( in 2-component vector of float) +0:144 Sequence +0:144 move second child to first child ( temp 2-component vector of float) +0:144 'r039a' ( temp 2-component vector of float) +0:144 mix ( temp 2-component vector of float) +0:144 'inF0' ( in 2-component vector of float) +0:144 'inF1' ( in 2-component vector of float) +0:144 'inF2' ( in 2-component vector of float) +0:145 Sequence +0:145 move second child to first child ( temp float) +0:145 'r042' ( temp float) +0:145 length ( temp float) +0:145 'inF0' ( in 2-component vector of float) +0:146 Sequence +0:146 move second child to first child ( temp 2-component vector of float) +0:146 'r043' ( temp 2-component vector of float) +0:146 log ( temp 2-component vector of float) +0:146 'inF0' ( in 2-component vector of float) +0:147 Sequence +0:147 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:148 'inF0' ( in 2-component vector of float) +0:149 Sequence +0:149 move second child to first child ( temp 2-component vector of float) +0:149 'r046' ( temp 2-component vector of float) +0:149 max ( temp 2-component vector of float) +0:149 'inF0' ( in 2-component vector of float) +0:149 'inF1' ( in 2-component vector of float) +0:150 Sequence +0:150 move second child to first child ( temp 2-component vector of float) +0:150 'r047' ( temp 2-component vector of float) +0:150 min ( temp 2-component vector of float) +0:150 'inF0' ( in 2-component vector of float) +0:150 'inF1' ( in 2-component vector of float) +0:151 Sequence +0:151 move second child to first child ( temp 2-component vector of float) +0:151 'r048' ( temp 2-component vector of float) +0:151 normalize ( temp 2-component vector of float) +0:151 'inF0' ( in 2-component vector of float) +0:152 Sequence +0:152 move second child to first child ( temp 2-component vector of float) +0:152 'r049' ( temp 2-component vector of float) +0:152 pow ( temp 2-component vector of float) +0:152 'inF0' ( in 2-component vector of float) +0:152 'inF1' ( in 2-component vector of float) +0:153 Sequence +0:153 move second child to first child ( temp 2-component vector of float) +0:153 'r050' ( temp 2-component vector of float) +0:153 radians ( temp 2-component vector of float) +0:153 'inF0' ( in 2-component vector of float) +0:154 Sequence +0:154 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:155 'inF0' ( in 2-component vector of float) +0:155 'inF1' ( in 2-component vector of float) +0:156 Sequence +0:156 move second child to first child ( temp 2-component vector of float) +0:156 'r053' ( temp 2-component vector of float) +0:156 refract ( temp 2-component vector of float) +0:156 'inF0' ( in 2-component vector of float) +0:156 'inF1' ( in 2-component vector of float) +0:156 Constant: +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 ( temp 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:158 Sequence +0:158 move second child to first child ( temp 2-component vector of float) +0:158 'r055' ( temp 2-component vector of float) +0:158 roundEven ( temp 2-component vector of float) +0:158 'inF0' ( in 2-component vector of float) +0:159 Sequence +0:159 move second child to first child ( temp 2-component vector of float) +0:159 'r056' ( temp 2-component vector of float) +0:159 inverse sqrt ( temp 2-component vector of float) +0:159 'inF0' ( in 2-component vector of float) +0:160 Sequence +0:160 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:161 'inF0' ( in 2-component vector of float) +0:162 Sequence +0:162 move second child to first child ( temp 2-component vector of float) +0:162 'r059' ( temp 2-component vector of float) +0:162 sine ( temp 2-component vector of float) +0:162 'inF0' ( in 2-component vector of float) +0:163 Sequence +0:163 move second child to first child ( temp 2-component vector of float) +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 ( temp 2-component vector of float) +0:164 'inF0' ( in 2-component vector of float) +0:165 Sequence +0:165 move second child to first child ( temp 2-component vector of float) +0:165 'r061' ( temp 2-component vector of float) +0:165 smoothstep ( temp 2-component vector of float) +0:165 'inF0' ( in 2-component vector of float) +0:165 'inF1' ( in 2-component vector of float) +0:165 'inF2' ( in 2-component vector of float) +0:166 Sequence +0:166 move second child to first child ( temp 2-component vector of float) +0:166 'r062' ( temp 2-component vector of float) +0:166 sqrt ( temp 2-component vector of float) +0:166 'inF0' ( in 2-component vector of float) +0:167 Sequence +0:167 move second child to first child ( temp 2-component vector of float) +0:167 'r063' ( temp 2-component vector of float) +0:167 step ( temp 2-component vector of float) +0:167 'inF0' ( in 2-component vector of float) +0:167 'inF1' ( in 2-component vector of float) +0:168 Sequence +0:168 move second child to first child ( temp 2-component vector of float) +0:168 'r064' ( temp 2-component vector of float) +0:168 tangent ( temp 2-component vector of float) +0:168 'inF0' ( in 2-component vector of float) +0:169 Sequence +0:169 move second child to first child ( temp 2-component vector of float) +0:169 'r065' ( temp 2-component vector of float) +0:169 hyp. tangent ( temp 2-component vector of float) +0:169 'inF0' ( in 2-component vector of float) +0:171 Sequence +0:171 move second child to first child ( temp 2-component vector of float) +0:171 'r066' ( temp 2-component vector of float) +0:171 trunc ( temp 2-component vector of float) +0:171 'inF0' ( in 2-component vector of float) +0:174 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) +0:178 Function Parameters: +0:178 'inF0' ( in 3-component vector of float) +0:178 'inF1' ( in 3-component vector of float) +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:181 Sequence +0:181 move second child to first child ( temp bool) +0:181 'r000' ( temp bool) +0:181 all ( temp bool) +0:181 Convert float to bool ( temp 3-component vector of 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 ( temp 3-component vector of float) +0:182 'inF0' ( in 3-component vector of float) +0:183 Sequence +0:183 move second child to first child ( temp 3-component vector of float) +0:183 'r002' ( temp 3-component vector of float) +0:183 arc cosine ( temp 3-component vector of float) +0:183 'inF0' ( in 3-component vector of float) +0:184 Sequence +0:184 move second child to first child ( temp bool) +0:184 'r003' ( temp bool) +0:184 any ( temp bool) +0:184 Convert float to bool ( temp 3-component vector of 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 ( temp 3-component vector of float) +0:185 'inF0' ( in 3-component vector of float) +0:186 Sequence +0:186 move second child to first child ( temp 3-component vector of int) +0:186 'r005' ( temp 3-component vector of int) +0:186 floatBitsToInt ( temp 3-component vector of int) +0:186 'inF0' ( in 3-component vector of float) +0:187 Sequence +0:187 move second child to first child ( temp 3-component vector of uint) +0:187 'r006' ( temp 3-component vector of uint) +0:187 floatBitsToUint ( temp 3-component vector of uint) +0:187 'inF0' ( in 3-component vector of float) +0:188 Sequence +0:188 move second child to first child ( temp 3-component vector of float) +0:188 'r007' ( temp 3-component vector of float) +0:188 intBitsToFloat ( temp 3-component vector of float) +0:188 'inU0' ( in 3-component vector of uint) +0:190 Sequence +0:190 move second child to first child ( temp 3-component vector of float) +0:190 'r009' ( temp 3-component vector of float) +0:190 arc tangent ( temp 3-component vector of float) +0:190 'inF0' ( in 3-component vector of float) +0:191 Sequence +0:191 move second child to first child ( temp 3-component vector of float) +0:191 'r010' ( temp 3-component vector of float) +0:191 arc tangent ( temp 3-component vector of float) +0:191 'inF0' ( in 3-component vector of float) +0:191 'inF1' ( in 3-component vector of float) +0:192 Sequence +0:192 move second child to first child ( temp 3-component vector of float) +0:192 'r011' ( temp 3-component vector of float) +0:192 Ceiling ( temp 3-component vector of float) +0:192 'inF0' ( in 3-component vector of float) +0:193 Sequence +0:193 move second child to first child ( temp 3-component vector of float) +0:193 'r012' ( temp 3-component vector of float) +0:193 clamp ( temp 3-component vector of float) +0:193 'inF0' ( in 3-component vector of float) +0:193 'inF1' ( in 3-component vector of float) +0:193 'inF2' ( in 3-component vector of float) +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 Test condition and select ( temp void) +0:195 Condition +0:195 any ( temp bool) +0:195 Compare Less Than ( temp 3-component vector of bool) +0:195 'inU0' ( in 3-component vector of uint) +0:195 Constant: +0:195 0.000000 +0:195 0.000000 +0:195 0.000000 +0:195 true case +0:195 Branch: Kill +0:196 Sequence +0:196 move second child to first child ( temp 3-component vector of float) +0:196 'r013' ( temp 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 Sequence +0:197 move second child to first child ( temp 3-component vector of float) +0:197 'r014' ( temp 3-component vector of float) +0:197 hyp. cosine ( temp 3-component vector of float) +0:197 'inF0' ( in 3-component vector of float) +0:198 Sequence +0:198 move second child to first child ( temp 3-component vector of uint) +0:198 'r015' ( temp 3-component vector of uint) +0:? bitCount ( temp 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:199 Sequence +0:199 move second child to first child ( temp 3-component vector of float) +0:199 'r016' ( temp 3-component vector of float) +0:199 cross-product ( temp 3-component vector of float) +0:199 'inF0' ( in 3-component vector of float) +0:199 'inF1' ( 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 'r017' ( temp 3-component vector of float) +0:200 dPdx ( temp 3-component vector of float) +0:200 'inF0' ( in 3-component vector of float) +0:201 Sequence +0:201 move second child to first child ( temp 3-component vector of float) +0:201 'r018' ( temp 3-component vector of float) +0:201 dPdxCoarse ( temp 3-component vector of float) +0:201 'inF0' ( in 3-component vector of float) +0:202 Sequence +0:202 move second child to first child ( temp 3-component vector of float) +0:202 'r019' ( temp 3-component vector of float) +0:202 dPdxFine ( temp 3-component vector of float) +0:202 'inF0' ( in 3-component vector of float) +0:203 Sequence +0:203 move second child to first child ( temp 3-component vector of float) +0:203 'r020' ( temp 3-component vector of float) +0:203 dPdy ( temp 3-component vector of float) +0:203 'inF0' ( in 3-component vector of float) +0:204 Sequence +0:204 move second child to first child ( temp 3-component vector of float) +0:204 'r021' ( temp 3-component vector of float) +0:204 dPdyCoarse ( temp 3-component vector of float) +0:204 'inF0' ( in 3-component vector of float) +0:205 Sequence +0:205 move second child to first child ( temp 3-component vector of float) +0:205 'r022' ( temp 3-component vector of float) +0:205 dPdyFine ( temp 3-component vector of float) +0:205 'inF0' ( in 3-component vector of float) +0:206 Sequence +0:206 move second child to first child ( temp 3-component vector of float) +0:206 'r023' ( temp 3-component vector of float) +0:206 degrees ( temp 3-component vector of float) +0:206 'inF0' ( in 3-component vector of float) +0:207 Sequence +0:207 move second child to first child ( temp float) +0:207 'r024' ( temp float) +0:207 distance ( temp float) +0:207 'inF0' ( in 3-component vector of float) +0:207 'inF1' ( in 3-component vector of float) +0:208 Sequence +0:208 move second child to first child ( temp float) +0:208 'r025' ( temp float) +0:208 dot-product ( temp float) +0:208 'inF0' ( in 3-component vector of float) +0:208 'inF1' ( 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 'r029' ( temp 3-component vector of float) +0:212 exp ( temp 3-component vector of float) +0:212 'inF0' ( in 3-component vector of float) +0:213 Sequence +0:213 move second child to first child ( temp 3-component vector of float) +0:213 'r030' ( temp 3-component vector of float) +0:213 exp2 ( temp 3-component vector of float) +0:213 'inF0' ( in 3-component vector of float) +0:214 Sequence +0:214 move second child to first child ( temp 3-component vector of float) +0:214 'r031' ( temp 3-component vector of float) +0:214 face-forward ( temp 3-component vector of float) +0:214 'inF0' ( in 3-component vector of float) +0:214 'inF1' ( in 3-component vector of float) +0:214 'inF2' ( in 3-component vector of float) +0:215 Sequence +0:215 move second child to first child ( temp 3-component vector of uint) +0:215 'r032' ( temp 3-component vector of uint) +0:? findMSB ( temp 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 uint) +0:216 'r033' ( temp 3-component vector of uint) +0:? findLSB ( temp 3-component vector of uint) +0:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:217 Sequence +0:217 move second child to first child ( temp 3-component vector of float) +0:217 'r034' ( temp 3-component vector of float) +0:217 Floor ( temp 3-component vector of float) +0:217 'inF0' ( 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 'r036' ( temp 3-component vector of float) +0:219 mod ( temp 3-component vector of float) +0:219 'inF0' ( in 3-component vector of float) +0:219 'inF1' ( in 3-component vector of float) +0:220 Sequence +0:220 move second child to first child ( temp 3-component vector of float) +0:220 'r037' ( temp 3-component vector of float) +0:220 Fraction ( temp 3-component vector of float) +0:220 'inF0' ( 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 ( temp 3-component vector of float) +0:221 'inF0' ( in 3-component vector of float) +0:222 Sequence +0:222 move second child to first child ( temp 3-component vector of bool) +0:222 'r040' ( temp 3-component vector of bool) +0:222 isinf ( temp 3-component vector of bool) +0:222 'inF0' ( in 3-component vector of float) +0:223 Sequence +0:223 move second child to first child ( temp 3-component vector of bool) +0:223 'r041' ( temp 3-component vector of bool) +0:223 isnan ( temp 3-component vector of bool) +0:223 'inF0' ( in 3-component vector of float) +0:224 Sequence +0:224 move second child to first child ( temp 3-component vector of float) +0:224 'r042' ( temp 3-component vector of float) +0:224 ldexp ( temp 3-component vector of float) +0:224 'inF0' ( in 3-component vector of float) +0:224 'inF1' ( in 3-component vector of float) +0:225 Sequence +0:225 move second child to first child ( temp 3-component vector of float) +0:225 'r039a' ( temp 3-component vector of float) +0:225 mix ( temp 3-component vector of float) +0:225 'inF0' ( in 3-component vector of float) +0:225 'inF1' ( in 3-component vector of float) +0:225 'inF2' ( in 3-component vector of float) +0:226 Sequence +0:226 move second child to first child ( temp 3-component vector of float) +0:226 'r039b' ( temp 3-component vector of float) +0:226 mix ( temp 3-component vector of float) +0:226 'inF0' ( in 3-component vector of float) +0:226 'inF1' ( in 3-component vector of float) +0:226 Constant: +0:226 0.300000 +0:227 Sequence +0:227 move second child to first child ( temp float) +0:227 'r043' ( temp float) +0:227 length ( temp float) +0:227 'inF0' ( in 3-component vector of float) +0:228 Sequence +0:228 move second child to first child ( temp 3-component vector of float) +0:228 'r044' ( temp 3-component vector of float) +0:228 log ( temp 3-component vector of float) +0:228 'inF0' ( in 3-component vector of float) +0:229 Sequence +0:229 move second child to first child ( temp 3-component vector of float) +0:229 'r045' ( temp 3-component vector of float) +0:229 vector-scale ( temp 3-component vector of float) +0:229 log2 ( temp 3-component vector of float) +0:229 'inF0' ( in 3-component vector of float) +0:229 Constant: +0:229 0.301030 +0:230 Sequence +0:230 move second child to first child ( temp 3-component vector of float) +0:230 'r046' ( temp 3-component vector of float) +0:230 log2 ( temp 3-component vector of float) +0:230 'inF0' ( in 3-component vector of float) +0:231 Sequence +0:231 move second child to first child ( temp 3-component vector of float) +0:231 'r047' ( temp 3-component vector of float) +0:231 max ( temp 3-component vector of float) +0:231 'inF0' ( in 3-component vector of float) +0:231 'inF1' ( in 3-component vector of float) +0:232 Sequence +0:232 move second child to first child ( temp 3-component vector of float) +0:232 'r048' ( temp 3-component vector of float) +0:232 min ( temp 3-component vector of float) +0:232 'inF0' ( in 3-component vector of float) +0:232 'inF1' ( in 3-component vector of float) +0:233 Sequence +0:233 move second child to first child ( temp 3-component vector of float) +0:233 'r049' ( temp 3-component vector of float) +0:233 normalize ( temp 3-component vector of float) +0:233 'inF0' ( in 3-component vector of float) +0:234 Sequence +0:234 move second child to first child ( temp 3-component vector of float) +0:234 'r050' ( temp 3-component vector of float) +0:234 pow ( temp 3-component vector of float) +0:234 'inF0' ( in 3-component vector of float) +0:234 'inF1' ( in 3-component vector of float) +0:235 Sequence +0:235 move second child to first child ( temp 3-component vector of float) +0:235 'r051' ( temp 3-component vector of float) +0:235 radians ( temp 3-component vector of float) +0:235 'inF0' ( in 3-component vector of float) +0:236 Sequence +0:236 move second child to first child ( temp 3-component vector of float) +0:236 'r052' ( temp 3-component vector of float) +0:236 divide ( temp 3-component vector of float) +0:236 Constant: +0:236 1.000000 +0:236 'inF0' ( 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 'r053' ( temp 3-component vector of float) +0:237 reflect ( temp 3-component vector of float) +0:237 'inF0' ( in 3-component vector of float) +0:237 'inF1' ( in 3-component vector of float) +0:238 Sequence +0:238 move second child to first child ( temp 3-component vector of float) +0:238 'r054' ( temp 3-component vector of float) +0:238 refract ( temp 3-component vector of float) +0:238 'inF0' ( in 3-component vector of float) +0:238 'inF1' ( in 3-component vector of float) +0:238 Constant: +0:238 2.000000 +0:239 Sequence +0:239 move second child to first child ( temp 3-component vector of uint) +0:239 'r055' ( temp 3-component vector of uint) +0:? bitFieldReverse ( temp 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:240 Sequence +0:240 move second child to first child ( temp 3-component vector of float) +0:240 'r056' ( temp 3-component vector of float) +0:240 roundEven ( temp 3-component vector of float) +0:240 'inF0' ( in 3-component vector of float) +0:241 Sequence +0:241 move second child to first child ( temp 3-component vector of float) +0:241 'r057' ( temp 3-component vector of float) +0:241 inverse sqrt ( temp 3-component vector of float) +0:241 'inF0' ( in 3-component vector of float) +0:242 Sequence +0:242 move second child to first child ( temp 3-component vector of float) +0:242 'r058' ( temp 3-component vector of float) +0:242 clamp ( temp 3-component vector of float) +0:242 'inF0' ( in 3-component vector of float) +0:242 Constant: +0:242 0.000000 +0:242 Constant: +0:242 1.000000 +0:243 Sequence +0:243 move second child to first child ( temp 3-component vector of float) +0:243 'r059' ( temp 3-component vector of float) +0:243 Sign ( temp 3-component vector of float) +0:243 'inF0' ( in 3-component vector of float) +0:244 Sequence +0:244 move second child to first child ( temp 3-component vector of float) +0:244 'r060' ( temp 3-component vector of float) +0:244 sine ( 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 'inF1' ( in 3-component vector of float) +0:245 sine ( temp 3-component vector of float) +0:245 'inF0' ( in 3-component vector of float) +0:245 move second child to first child ( temp 3-component vector of float) +0:245 'inF2' ( in 3-component vector of float) +0:245 cosine ( temp 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 'r061' ( temp 3-component vector of float) +0:246 hyp. sine ( temp 3-component vector of float) +0:246 'inF0' ( in 3-component vector of float) +0:247 Sequence +0:247 move second child to first child ( temp 3-component vector of float) +0:247 'r062' ( temp 3-component vector of float) +0:247 smoothstep ( temp 3-component vector of float) +0:247 'inF0' ( in 3-component vector of float) +0:247 'inF1' ( in 3-component vector of float) +0:247 'inF2' ( in 3-component vector of float) +0:248 Sequence +0:248 move second child to first child ( temp 3-component vector of float) +0:248 'r063' ( temp 3-component vector of float) +0:248 sqrt ( temp 3-component vector of float) +0:248 'inF0' ( in 3-component vector of float) +0:249 Sequence +0:249 move second child to first child ( temp 3-component vector of float) +0:249 'r064' ( temp 3-component vector of float) +0:249 step ( temp 3-component vector of float) +0:249 'inF0' ( in 3-component vector of float) +0:249 'inF1' ( in 3-component vector of float) +0:250 Sequence +0:250 move second child to first child ( temp 3-component vector of float) +0:250 'r065' ( temp 3-component vector of float) +0:250 tangent ( temp 3-component vector of float) +0:250 'inF0' ( in 3-component vector of float) +0:251 Sequence +0:251 move second child to first child ( temp 3-component vector of float) +0:251 'r066' ( temp 3-component vector of float) +0:251 hyp. tangent ( temp 3-component vector of float) +0:251 'inF0' ( in 3-component vector of float) +0:253 Sequence +0:253 move second child to first child ( temp 3-component vector of float) +0:253 'r067' ( temp 3-component vector of float) +0:253 trunc ( temp 3-component vector of float) +0:253 'inF0' ( in 3-component vector of float) +0:256 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) +0:260 Function Parameters: +0:260 'inF0' ( in 4-component vector of float) +0:260 'inF1' ( in 4-component vector of float) +0:260 'inF2' ( in 4-component vector of float) +0:260 'inU0' ( in 4-component vector of uint) +0:260 'inU1' ( in 4-component vector of uint) +0:? Sequence +0:263 Sequence +0:263 move second child to first child ( temp bool) +0:263 'r000' ( temp bool) +0:263 all ( temp bool) +0:263 Convert float to bool ( temp 4-component vector of bool) +0:263 'inF0' ( in 4-component vector of float) +0:264 Sequence +0:264 move second child to first child ( temp 4-component vector of float) +0:264 'r001' ( temp 4-component vector of float) +0:264 Absolute value ( temp 4-component vector of float) +0:264 'inF0' ( in 4-component vector of float) +0:265 Sequence +0:265 move second child to first child ( temp 4-component vector of float) +0:265 'r002' ( temp 4-component vector of float) +0:265 arc cosine ( temp 4-component vector of float) +0:265 'inF0' ( in 4-component vector of float) +0:266 Sequence +0:266 move second child to first child ( temp bool) +0:266 'r003' ( temp bool) +0:266 any ( temp bool) +0:266 Convert float to bool ( temp 4-component vector of bool) +0:266 'inF0' ( in 4-component vector of float) +0:267 Sequence +0:267 move second child to first child ( temp 4-component vector of float) +0:267 'r004' ( temp 4-component vector of float) +0:267 arc sine ( temp 4-component vector of float) +0:267 'inF0' ( in 4-component vector of float) +0:268 Sequence +0:268 move second child to first child ( temp 4-component vector of int) +0:268 'r005' ( temp 4-component vector of int) +0:268 floatBitsToInt ( temp 4-component vector of int) +0:268 'inF0' ( in 4-component vector of float) +0:269 Sequence +0:269 move second child to first child ( temp 4-component vector of uint) +0:269 'r006' ( temp 4-component vector of uint) +0:269 floatBitsToUint ( temp 4-component vector of uint) +0:269 'inF0' ( in 4-component vector of float) +0:270 Sequence +0:270 move second child to first child ( temp 4-component vector of float) +0:270 'r007' ( temp 4-component vector of float) +0:270 intBitsToFloat ( temp 4-component vector of float) +0:270 'inU0' ( in 4-component vector of uint) +0:272 Sequence +0:272 move second child to first child ( temp 4-component vector of float) +0:272 'r009' ( temp 4-component vector of float) +0:272 arc tangent ( temp 4-component vector of float) +0:272 'inF0' ( in 4-component vector of float) +0:273 Sequence +0:273 move second child to first child ( temp 4-component vector of float) +0:273 'r010' ( temp 4-component vector of float) +0:273 arc tangent ( temp 4-component vector of float) +0:273 'inF0' ( in 4-component vector of float) +0:273 'inF1' ( in 4-component vector of float) +0:274 Sequence +0:274 move second child to first child ( temp 4-component vector of float) +0:274 'r011' ( temp 4-component vector of float) +0:274 Ceiling ( temp 4-component vector of float) +0:274 'inF0' ( in 4-component vector of float) +0:275 Sequence +0:275 move second child to first child ( temp 4-component vector of float) +0:275 'r012' ( temp 4-component vector of float) +0:275 clamp ( temp 4-component vector of float) +0:275 'inF0' ( in 4-component vector of float) +0:275 'inF1' ( in 4-component vector of float) +0:275 'inF2' ( in 4-component vector of float) +0:276 Test condition and select ( temp void) +0:276 Condition +0:276 any ( temp bool) +0:276 Compare Less Than ( temp 4-component vector of bool) +0:276 'inF0' ( in 4-component vector of float) +0:276 Constant: +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 true case +0:276 Branch: Kill +0:277 Test condition and select ( temp void) +0:277 Condition +0:277 any ( temp bool) +0:277 Compare Less Than ( temp 4-component vector of bool) +0:277 'inU0' ( in 4-component vector of uint) +0:277 Constant: +0:277 0.000000 +0:277 0.000000 +0:277 0.000000 +0:277 0.000000 +0:277 true case +0:277 Branch: Kill +0:278 Sequence +0:278 move second child to first child ( temp 4-component vector of float) +0:278 'r013' ( temp 4-component vector of float) +0:278 cosine ( temp 4-component vector of float) +0:278 'inF0' ( in 4-component vector of float) +0:279 Sequence +0:279 move second child to first child ( temp 4-component vector of float) +0:279 'r014' ( temp 4-component vector of float) +0:279 hyp. cosine ( temp 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 uint) +0:280 'r015' ( temp 4-component vector of uint) +0:? bitCount ( temp 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:281 Sequence +0:281 move second child to first child ( temp 4-component vector of float) +0:281 'r016' ( temp 4-component vector of float) +0:281 dPdx ( temp 4-component vector of float) +0:281 'inF0' ( in 4-component vector of float) +0:282 Sequence +0:282 move second child to first child ( temp 4-component vector of float) +0:282 'r017' ( temp 4-component vector of float) +0:282 dPdxCoarse ( temp 4-component vector of float) +0:282 'inF0' ( in 4-component vector of float) +0:283 Sequence +0:283 move second child to first child ( temp 4-component vector of float) +0:283 'r018' ( temp 4-component vector of float) +0:283 dPdxFine ( temp 4-component vector of float) +0:283 'inF0' ( in 4-component vector of float) +0:284 Sequence +0:284 move second child to first child ( temp 4-component vector of float) +0:284 'r019' ( temp 4-component vector of float) +0:284 dPdy ( temp 4-component vector of float) +0:284 'inF0' ( in 4-component vector of float) +0:285 Sequence +0:285 move second child to first child ( temp 4-component vector of float) +0:285 'r020' ( temp 4-component vector of float) +0:285 dPdyCoarse ( temp 4-component vector of float) +0:285 'inF0' ( in 4-component vector of float) +0:286 Sequence +0:286 move second child to first child ( temp 4-component vector of float) +0:286 'r021' ( temp 4-component vector of float) +0:286 dPdyFine ( temp 4-component vector of float) +0:286 'inF0' ( in 4-component vector of float) +0:287 Sequence +0:287 move second child to first child ( temp 4-component vector of float) +0:287 'r022' ( temp 4-component vector of float) +0:287 degrees ( temp 4-component vector of float) +0:287 'inF0' ( in 4-component vector of float) +0:288 Sequence +0:288 move second child to first child ( temp float) +0:288 'r023' ( temp float) +0:288 distance ( temp float) +0:288 'inF0' ( in 4-component vector of float) +0:288 'inF1' ( in 4-component vector of float) +0:289 Sequence +0:289 move second child to first child ( temp float) +0:289 'r024' ( temp float) +0:289 dot-product ( temp float) +0:289 'inF0' ( in 4-component vector of float) +0:289 'inF1' ( in 4-component vector of float) +0:290 Sequence +0:290 move second child to first child ( temp 4-component vector of float) +0:290 'r025' ( temp 4-component vector of float) +0:290 Construct vec4 ( temp 4-component vector of float) +0:290 Constant: +0:290 1.000000 +0:290 component-wise multiply ( temp float) +0:290 direct index ( temp float) +0:290 'inF0' ( in 4-component vector of float) +0:290 Constant: +0:290 1 (const int) +0:290 direct index ( temp float) +0:290 'inF1' ( in 4-component vector of float) +0:290 Constant: +0:290 1 (const int) +0:290 direct index ( temp float) +0:290 'inF0' ( in 4-component vector of float) +0:290 Constant: +0:290 2 (const int) +0:290 direct index ( temp float) +0:290 'inF1' ( in 4-component vector of float) +0:290 Constant: +0:290 3 (const int) +0:294 Sequence +0:294 move second child to first child ( temp 4-component vector of float) +0:294 'r029' ( temp 4-component vector of float) +0:294 exp ( temp 4-component vector of float) +0:294 'inF0' ( in 4-component vector of float) +0:295 Sequence +0:295 move second child to first child ( temp 4-component vector of float) +0:295 'r030' ( temp 4-component vector of float) +0:295 exp2 ( temp 4-component vector of float) +0:295 'inF0' ( in 4-component vector of float) +0:296 Sequence +0:296 move second child to first child ( temp 4-component vector of float) +0:296 'r031' ( temp 4-component vector of float) +0:296 face-forward ( temp 4-component vector of float) +0:296 'inF0' ( in 4-component vector of float) +0:296 'inF1' ( in 4-component vector of float) +0:296 'inF2' ( in 4-component vector of float) +0:297 Sequence +0:297 move second child to first child ( temp 4-component vector of uint) +0:297 'r032' ( temp 4-component vector of uint) +0:? findMSB ( temp 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:298 Sequence +0:298 move second child to first child ( temp 4-component vector of uint) +0:298 'r033' ( temp 4-component vector of uint) +0:? findLSB ( temp 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:299 Sequence +0:299 move second child to first child ( temp 4-component vector of float) +0:299 'r034' ( temp 4-component vector of float) +0:299 Floor ( temp 4-component vector of float) +0:299 '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 'r036' ( temp 4-component vector of float) +0:301 mod ( temp 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 'r037' ( temp 4-component vector of float) +0:302 Fraction ( temp 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 float) +0:303 'r039' ( temp 4-component vector of float) +0:303 fwidth ( temp 4-component vector of float) +0:303 'inF0' ( in 4-component vector of float) +0:304 Sequence +0:304 move second child to first child ( temp 4-component vector of bool) +0:304 'r040' ( temp 4-component vector of bool) +0:304 isinf ( temp 4-component vector of bool) +0:304 'inF0' ( in 4-component vector of float) +0:305 Sequence +0:305 move second child to first child ( temp 4-component vector of bool) +0:305 'r041' ( temp 4-component vector of bool) +0:305 isnan ( temp 4-component vector of bool) +0:305 'inF0' ( in 4-component vector of float) +0:306 Sequence +0:306 move second child to first child ( temp 4-component vector of float) +0:306 'r042' ( temp 4-component vector of float) +0:306 ldexp ( temp 4-component vector of float) +0:306 'inF0' ( in 4-component vector of float) +0:306 'inF1' ( in 4-component vector of float) +0:307 Sequence +0:307 move second child to first child ( temp 4-component vector of float) +0:307 'r039a' ( temp 4-component vector of float) +0:307 mix ( temp 4-component vector of float) +0:307 'inF0' ( in 4-component vector of float) +0:307 'inF1' ( in 4-component vector of float) +0:307 'inF2' ( in 4-component vector of float) +0:308 Sequence +0:308 move second child to first child ( temp float) +0:308 'r043' ( temp float) +0:308 length ( temp float) +0:308 'inF0' ( in 4-component vector of float) +0:309 Sequence +0:309 move second child to first child ( temp 4-component vector of float) +0:309 'r044' ( temp 4-component vector of float) +0:309 log ( temp 4-component vector of float) +0:309 'inF0' ( in 4-component vector of float) +0:310 Sequence +0:310 move second child to first child ( temp 4-component vector of float) +0:310 'r045' ( temp 4-component vector of float) +0:310 vector-scale ( temp 4-component vector of float) +0:310 log2 ( temp 4-component vector of float) +0:310 'inF0' ( in 4-component vector of float) +0:310 Constant: +0:310 0.301030 +0:311 Sequence +0:311 move second child to first child ( temp 4-component vector of float) +0:311 'r046' ( temp 4-component vector of float) +0:311 log2 ( temp 4-component vector of float) +0:311 'inF0' ( in 4-component vector of float) +0:312 Sequence +0:312 move second child to first child ( temp 4-component vector of float) +0:312 'r047' ( temp 4-component vector of float) +0:312 max ( temp 4-component vector of float) +0:312 'inF0' ( in 4-component vector of float) +0:312 'inF1' ( in 4-component vector of float) +0:313 Sequence +0:313 move second child to first child ( temp 4-component vector of float) +0:313 'r048' ( temp 4-component vector of float) +0:313 min ( temp 4-component vector of float) +0:313 'inF0' ( in 4-component vector of float) +0:313 'inF1' ( in 4-component vector of float) +0:314 Sequence +0:314 move second child to first child ( temp 4-component vector of float) +0:314 'r049' ( temp 4-component vector of float) +0:314 normalize ( temp 4-component vector of float) +0:314 'inF0' ( in 4-component vector of float) +0:315 Sequence +0:315 move second child to first child ( temp 4-component vector of float) +0:315 'r050' ( temp 4-component vector of float) +0:315 pow ( temp 4-component vector of float) +0:315 'inF0' ( in 4-component vector of float) +0:315 'inF1' ( in 4-component vector of float) +0:316 Sequence +0:316 move second child to first child ( temp 4-component vector of float) +0:316 'r051' ( temp 4-component vector of float) +0:316 radians ( temp 4-component vector of float) +0:316 'inF0' ( in 4-component vector of float) +0:317 Sequence +0:317 move second child to first child ( temp 4-component vector of float) +0:317 'r052' ( temp 4-component vector of float) +0:317 divide ( temp 4-component vector of float) +0:317 Constant: +0:317 1.000000 +0:317 'inF0' ( in 4-component vector of float) +0:318 Sequence +0:318 move second child to first child ( temp 4-component vector of float) +0:318 'r053' ( temp 4-component vector of float) +0:318 reflect ( temp 4-component vector of float) +0:318 'inF0' ( in 4-component vector of float) +0:318 'inF1' ( in 4-component vector of float) +0:319 Sequence +0:319 move second child to first child ( temp 4-component vector of float) +0:319 'r054' ( temp 4-component vector of float) +0:319 refract ( temp 4-component vector of float) +0:319 'inF0' ( in 4-component vector of float) +0:319 'inF1' ( in 4-component vector of float) +0:319 Constant: +0:319 2.000000 +0:320 Sequence +0:320 move second child to first child ( temp 4-component vector of uint) +0:320 'r055' ( temp 4-component vector of uint) +0:? bitFieldReverse ( 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:321 Sequence +0:321 move second child to first child ( temp 4-component vector of float) +0:321 'r056' ( temp 4-component vector of float) +0:321 roundEven ( temp 4-component vector of float) +0:321 'inF0' ( in 4-component vector of float) +0:322 Sequence +0:322 move second child to first child ( temp 4-component vector of float) +0:322 'r057' ( temp 4-component vector of float) +0:322 inverse sqrt ( temp 4-component vector of float) +0:322 'inF0' ( in 4-component vector of float) +0:323 Sequence +0:323 move second child to first child ( temp 4-component vector of float) +0:323 'r058' ( temp 4-component vector of float) +0:323 clamp ( temp 4-component vector of float) +0:323 'inF0' ( in 4-component vector of float) +0:323 Constant: +0:323 0.000000 +0:323 Constant: +0:323 1.000000 +0:324 Sequence +0:324 move second child to first child ( temp 4-component vector of float) +0:324 'r059' ( temp 4-component vector of float) +0:324 Sign ( temp 4-component vector of float) +0:324 'inF0' ( in 4-component vector of float) +0:325 Sequence +0:325 move second child to first child ( temp 4-component vector of float) +0:325 'r060' ( temp 4-component vector of float) +0:325 sine ( 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 'inF1' ( in 4-component vector of float) +0:326 sine ( temp 4-component vector of float) +0:326 'inF0' ( in 4-component vector of float) +0:326 move second child to first child ( temp 4-component vector of float) +0:326 'inF2' ( in 4-component vector of float) +0:326 cosine ( temp 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 'r061' ( temp 4-component vector of float) +0:327 hyp. sine ( temp 4-component vector of float) +0:327 'inF0' ( in 4-component vector of float) +0:328 Sequence +0:328 move second child to first child ( temp 4-component vector of float) +0:328 'r062' ( temp 4-component vector of float) +0:328 smoothstep ( temp 4-component vector of float) +0:328 'inF0' ( in 4-component vector of float) +0:328 'inF1' ( in 4-component vector of float) +0:328 'inF2' ( in 4-component vector of float) +0:329 Sequence +0:329 move second child to first child ( temp 4-component vector of float) +0:329 'r063' ( temp 4-component vector of float) +0:329 sqrt ( temp 4-component vector of float) +0:329 'inF0' ( in 4-component vector of float) +0:330 Sequence +0:330 move second child to first child ( temp 4-component vector of float) +0:330 'r064' ( temp 4-component vector of float) +0:330 step ( temp 4-component vector of float) +0:330 'inF0' ( in 4-component vector of float) +0:330 'inF1' ( in 4-component vector of float) +0:331 Sequence +0:331 move second child to first child ( temp 4-component vector of float) +0:331 'r065' ( temp 4-component vector of float) +0:331 tangent ( temp 4-component vector of float) +0:331 'inF0' ( in 4-component vector of float) +0:332 Sequence +0:332 move second child to first child ( temp 4-component vector of float) +0:332 'r066' ( temp 4-component vector of float) +0:332 hyp. tangent ( temp 4-component vector of float) +0:332 'inF0' ( in 4-component vector of float) +0:334 Sequence +0:334 move second child to first child ( temp 4-component vector of float) +0:334 'r067' ( temp 4-component vector of float) +0:334 trunc ( temp 4-component vector of float) +0:334 'inF0' ( in 4-component vector of float) +0:337 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:400 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 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:402 Sequence +0:402 move second child to first child ( temp bool) +0:402 'r000' ( temp bool) +0:402 all ( temp bool) +0:402 Convert float to bool ( temp 2X2 matrix of 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 ( temp 2X2 matrix of float) +0:402 'inF0' ( in 2X2 matrix of float) +0:402 arc 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 bool) +0:402 'r003' ( temp bool) +0:402 any ( temp bool) +0:402 Convert float to bool ( temp 2X2 matrix of 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 ( 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 'r005' ( temp 2X2 matrix of float) +0:402 arc tangent ( 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 'r006' ( temp 2X2 matrix of float) +0:402 arc tangent ( temp 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 ( temp 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 ( temp 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 ( 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 'r010' ( temp 2X2 matrix of float) +0:402 hyp. 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 'r011' ( temp 2X2 matrix of float) +0:402 dPdx ( 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 'r012' ( temp 2X2 matrix of float) +0:402 dPdxCoarse ( 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 'r013' ( temp 2X2 matrix of float) +0:402 dPdxFine ( 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 'r014' ( temp 2X2 matrix of float) +0:402 dPdy ( 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 'r015' ( temp 2X2 matrix of float) +0:402 dPdyCoarse ( 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 'r016' ( temp 2X2 matrix of float) +0:402 dPdyFine ( 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 'r017' ( temp 2X2 matrix of float) +0:402 degrees ( 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 float) +0:402 'r018' ( temp float) +0:402 determinant ( temp 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 ( 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 'R020' ( temp 2X2 matrix of float) +0:402 exp2 ( 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 'r021' ( temp 2X2 matrix of float) +0:402 Floor ( 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 'r022' ( temp 2X2 matrix of float) +0:402 mod ( temp 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 ( 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 'r025' ( temp 2X2 matrix of float) +0:402 fwidth ( 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 'r026' ( temp 2X2 matrix of float) +0:402 ldexp ( temp 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 ( temp 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 ( 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 '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 ( 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 'r030' ( temp 2X2 matrix of float) +0:402 max ( temp 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 ( temp 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 ( temp 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 ( 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 'r034' ( temp 2X2 matrix of float) +0:402 roundEven ( 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 'r035' ( temp 2X2 matrix of float) +0:402 inverse sqrt ( 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 '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 ( 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 'r038' ( temp 2X2 matrix of float) +0:402 sine ( 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 '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 ( 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 'r049' ( temp 2X2 matrix of float) +0:402 smoothstep ( temp 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 ( 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 'r042' ( temp 2X2 matrix of float) +0:402 step ( temp 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 ( 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 'r044' ( temp 2X2 matrix of float) +0:402 hyp. tangent ( temp 2X2 matrix of float) +0:402 'inF0' ( in 2X2 matrix of float) +0:402 transpose ( 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 'r046' ( temp 2X2 matrix of float) +0:402 trunc ( temp 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:409 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 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:411 Sequence +0:411 move second child to first child ( temp bool) +0:411 'r000' ( temp bool) +0:411 all ( temp bool) +0:411 Convert float to bool ( temp 3X3 matrix of 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 ( temp 3X3 matrix of float) +0:411 'inF0' ( in 3X3 matrix of float) +0:411 arc 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 bool) +0:411 'r003' ( temp bool) +0:411 any ( temp bool) +0:411 Convert float to bool ( temp 3X3 matrix of 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 ( 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 'r005' ( temp 3X3 matrix of float) +0:411 arc tangent ( 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 'r006' ( temp 3X3 matrix of float) +0:411 arc tangent ( temp 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 ( temp 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 ( temp 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 ( 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 'r010' ( temp 3X3 matrix of float) +0:411 hyp. 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 'r011' ( temp 3X3 matrix of float) +0:411 dPdx ( 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 'r012' ( temp 3X3 matrix of float) +0:411 dPdxCoarse ( 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 'r013' ( temp 3X3 matrix of float) +0:411 dPdxFine ( 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 'r014' ( temp 3X3 matrix of float) +0:411 dPdy ( 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 'r015' ( temp 3X3 matrix of float) +0:411 dPdyCoarse ( 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 'r016' ( temp 3X3 matrix of float) +0:411 dPdyFine ( 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 'r017' ( temp 3X3 matrix of float) +0:411 degrees ( 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 float) +0:411 'r018' ( temp float) +0:411 determinant ( temp 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 ( 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 'R020' ( temp 3X3 matrix of float) +0:411 exp2 ( 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 'r021' ( temp 3X3 matrix of float) +0:411 Floor ( 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 'r022' ( temp 3X3 matrix of float) +0:411 mod ( temp 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 ( 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 'r025' ( temp 3X3 matrix of float) +0:411 fwidth ( 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 'r026' ( temp 3X3 matrix of float) +0:411 ldexp ( temp 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 ( temp 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 ( 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 '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 ( 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 'r030' ( temp 3X3 matrix of float) +0:411 max ( temp 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 ( temp 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 ( temp 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 ( 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 'r034' ( temp 3X3 matrix of float) +0:411 roundEven ( 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 'r035' ( temp 3X3 matrix of float) +0:411 inverse sqrt ( 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 '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 ( 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 'r038' ( temp 3X3 matrix of float) +0:411 sine ( 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 '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 ( 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 'r049' ( temp 3X3 matrix of float) +0:411 smoothstep ( temp 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 ( 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 'r042' ( temp 3X3 matrix of float) +0:411 step ( temp 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 ( 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 'r044' ( temp 3X3 matrix of float) +0:411 hyp. tangent ( temp 3X3 matrix of float) +0:411 'inF0' ( in 3X3 matrix of float) +0:411 transpose ( 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 'r046' ( temp 3X3 matrix of float) +0:411 trunc ( temp 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 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:418 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 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:420 Sequence +0:420 move second child to first child ( temp bool) +0:420 'r000' ( temp bool) +0:420 all ( temp bool) +0:420 Convert float to bool ( temp 4X4 matrix of 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 ( temp 4X4 matrix of float) +0:420 'inF0' ( in 4X4 matrix of float) +0:420 arc 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 bool) +0:420 'r003' ( temp bool) +0:420 any ( temp bool) +0:420 Convert float to bool ( temp 4X4 matrix of 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 ( 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 'r005' ( temp 4X4 matrix of float) +0:420 arc tangent ( 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 'r006' ( temp 4X4 matrix of float) +0:420 arc tangent ( temp 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 ( temp 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 ( temp 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 ( 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 'r010' ( temp 4X4 matrix of float) +0:420 hyp. 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 'r011' ( temp 4X4 matrix of float) +0:420 dPdx ( 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 'r012' ( temp 4X4 matrix of float) +0:420 dPdxCoarse ( 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 'r013' ( temp 4X4 matrix of float) +0:420 dPdxFine ( 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 'r014' ( temp 4X4 matrix of float) +0:420 dPdy ( 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 'r015' ( temp 4X4 matrix of float) +0:420 dPdyCoarse ( 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 'r016' ( temp 4X4 matrix of float) +0:420 dPdyFine ( 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 'r017' ( temp 4X4 matrix of float) +0:420 degrees ( 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 float) +0:420 'r018' ( temp float) +0:420 determinant ( temp 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 ( 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 'R020' ( temp 4X4 matrix of float) +0:420 exp2 ( 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 'r021' ( temp 4X4 matrix of float) +0:420 Floor ( 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 'r022' ( temp 4X4 matrix of float) +0:420 mod ( temp 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 ( 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 'r025' ( temp 4X4 matrix of float) +0:420 fwidth ( 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 'r026' ( temp 4X4 matrix of float) +0:420 ldexp ( temp 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 ( temp 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 ( 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 '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 ( 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 'r030' ( temp 4X4 matrix of float) +0:420 max ( temp 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 ( temp 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 ( temp 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 ( 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 'r034' ( temp 4X4 matrix of float) +0:420 roundEven ( 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 'r035' ( temp 4X4 matrix of float) +0:420 inverse sqrt ( 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 '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 ( 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 'r038' ( temp 4X4 matrix of float) +0:420 sine ( 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 '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 ( 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 'r049' ( temp 4X4 matrix of float) +0:420 smoothstep ( temp 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 ( 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 'r042' ( temp 4X4 matrix of float) +0:420 step ( temp 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 ( 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 'r044' ( temp 4X4 matrix of float) +0:420 hyp. tangent ( temp 4X4 matrix of float) +0:420 'inF0' ( in 4X4 matrix of float) +0:420 transpose ( 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 'r046' ( temp 4X4 matrix of float) +0:420 trunc ( temp 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 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:441 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp 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: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 'inF1' ( in 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 'r1' ( 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 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 'inFV0' ( in 2-component vector of float) +0:442 'inF0' ( in float) +0:442 Sequence +0:442 move second child to first child ( temp float) +0:442 'r3' ( temp float) +0:442 dot-product ( temp 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 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 2-component vector of float) +0:442 'r5' ( 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 2X2 matrix of float) +0:442 'r6' ( 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 'r7' ( 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 'r8' ( temp 2X2 matrix of float) +0:442 matrix-multiply ( temp 2X2 matrix of float) +0:442 'inFM1' ( in 2X2 matrix of float) +0:442 'inFM0' ( in 2X2 matrix of float) +0:448 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp 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: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 'inF1' ( in 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 'r1' ( 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 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 'inFV0' ( in 3-component vector of float) +0:449 'inF0' ( in float) +0:449 Sequence +0:449 move second child to first child ( temp float) +0:449 'r3' ( temp float) +0:449 dot-product ( temp 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 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 3-component vector of float) +0:449 'r5' ( 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 3X3 matrix of float) +0:449 'r6' ( 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 'r7' ( 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 'r8' ( temp 3X3 matrix of float) +0:449 matrix-multiply ( temp 3X3 matrix of float) +0:449 'inFM1' ( in 3X3 matrix of float) +0:449 'inFM0' ( in 3X3 matrix of float) +0:455 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp 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: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 'inF1' ( in 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 'r1' ( 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 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 'inFV0' ( in 4-component vector of float) +0:456 'inF0' ( in float) +0:456 Sequence +0:456 move second child to first child ( temp float) +0:456 'r3' ( temp float) +0:456 dot-product ( temp 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 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 4-component vector of float) +0:456 'r5' ( 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 4X4 matrix of float) +0:456 'r6' ( 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 'r7' ( 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 'r8' ( temp 4X4 matrix of float) +0:456 matrix-multiply ( temp 4X4 matrix of float) +0:456 'inFM1' ( in 4X4 matrix of float) +0:456 'inFM0' ( in 4X4 matrix of float) +0:465 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp 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 2X3 matrix of float) +0:465 'inFM3x2' ( in 3X2 matrix of float) +0:465 'inFM3x3' ( in 3X3 matrix of float) +0:465 'inFM3x4' ( in 3X4 matrix of float) +0:465 'inFM2x4' ( in 2X4 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 'inF1' ( in float) +0:466 'inF0' ( 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 'inF0' ( in float) +0:467 'inFV2' ( in 2-component vector of 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 'inF0' ( in float) +0:468 'inFV3' ( in 3-component vector of 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 'inFV2' ( in 2-component vector of float) +0:469 'inF0' ( in 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 'inFV3' ( in 3-component vector of float) +0:470 'inF0' ( in float) +0:471 Sequence +0:471 move second child to first child ( temp float) +0:471 'r05' ( temp float) +0:471 dot-product ( temp 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 ( temp 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 matrix-times-vector ( temp 3-component vector of float) +0:473 'inFM2x3' ( in 2X3 matrix of float) +0:473 'inFV2' ( in 2-component vector 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 matrix-times-vector ( temp 2-component vector of float) +0:474 'inFM3x2' ( in 3X2 matrix of float) +0:474 'inFV3' ( in 3-component vector 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 vector-times-matrix ( temp 2-component vector of float) +0:475 'inFV3' ( in 3-component vector of float) +0:475 'inFM2x3' ( in 2X3 matrix 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 vector-times-matrix ( temp 3-component vector of float) +0:476 'inFV2' ( in 2-component vector of float) +0:476 'inFM3x2' ( in 3X2 matrix of float) +0:477 Sequence +0:477 move second child to first child ( temp 2X3 matrix of float) +0:477 'r11' ( temp 2X3 matrix of float) +0:477 matrix-scale ( temp 2X3 matrix of float) +0:477 'inF0' ( in float) +0:477 'inFM2x3' ( in 2X3 matrix of float) +0:478 Sequence +0:478 move second child to first child ( temp 3X2 matrix of float) +0:478 'r12' ( temp 3X2 matrix of float) +0:478 matrix-scale ( temp 3X2 matrix of float) +0:478 'inF0' ( in float) +0:478 'inFM3x2' ( in 3X2 matrix of 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 'inFM3x2' ( in 3X2 matrix of float) +0:479 'inFM2x3' ( in 2X3 matrix of float) +0:480 Sequence +0:480 move second child to first child ( temp 2X3 matrix of float) +0:480 'r14' ( temp 2X3 matrix of float) +0:480 matrix-multiply ( temp 2X3 matrix of float) +0:480 'inFM3x3' ( in 3X3 matrix of float) +0:480 'inFM2x3' ( in 2X3 matrix of float) +0:481 Sequence +0:481 move second child to first child ( temp 2X4 matrix of float) +0:481 'r15' ( temp 2X4 matrix of float) +0:481 matrix-multiply ( temp 2X4 matrix of float) +0:481 'inFM3x4' ( in 3X4 matrix of float) +0:481 'inFM2x3' ( in 2X3 matrix of float) +0:482 Sequence +0:482 move second child to first child ( temp 3X4 matrix of float) +0:482 'r16' ( temp 3X4 matrix of float) +0:482 matrix-multiply ( temp 3X4 matrix of float) +0:482 'inFM2x4' ( in 2X4 matrix of float) +0:482 'inFM3x2' ( in 3X2 matrix of float) +0:488 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:488 Function Parameters: +0:? Sequence +0:490 move second child to first child ( temp 4-component vector of float) +0:490 color: direct index for structure ( temp 4-component vector of float) +0:490 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:490 Constant: +0:490 0 (const int) +0:490 Constant: +0:490 1.000000 +0:490 1.000000 +0:490 1.000000 +0:490 1.000000 +0:491 Branch: Return with expression +0:491 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:488 Function Definition: main( ( temp void) +0:488 Function Parameters: +0:? Sequence +0:488 Sequence +0:488 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:488 color: direct index for structure ( temp 4-component vector of float) +0:488 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:488 Constant: +0:488 0 (const int) +0:? Linker Objects +0:? 'gs_ua' ( shared uint) +0:? 'gs_ub' ( shared uint) +0:? 'gs_uc' ( shared uint) +0:? 'gs_ua2' ( shared 2-component vector of uint) +0:? 'gs_ub2' ( shared 2-component vector of uint) +0:? 'gs_uc2' ( shared 2-component vector of uint) +0:? 'gs_ua3' ( shared 3-component vector of uint) +0:? 'gs_ub3' ( shared 3-component vector of uint) +0:? 'gs_uc3' ( shared 3-component vector of uint) +0:? 'gs_ua4' ( shared 4-component vector of uint) +0:? 'gs_ub4' ( shared 4-component vector of uint) +0:? 'gs_uc4' ( shared 4-component vector of uint) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 1832 + + Capability Shader + Capability DerivativeControl + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1813 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 18 "PixelShaderFunctionS(f1;f1;f1;u1;i1;" + Name 13 "inF0" + Name 14 "inF1" + Name 15 "inF2" + Name 16 "inU0" + Name 17 "inU1" + Name 24 "PixelShaderFunction1(vf1;vf1;vf1;" + Name 21 "inF0" + Name 22 "inF1" + Name 23 "inF2" + Name 36 "PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;" + Name 31 "inF0" + Name 32 "inF1" + Name 33 "inF2" + Name 34 "inU0" + Name 35 "inU1" + Name 48 "PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;" + Name 43 "inF0" + Name 44 "inF1" + Name 45 "inF2" + Name 46 "inU0" + Name 47 "inU1" + Name 60 "PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;" + Name 55 "inF0" + Name 56 "inF1" + Name 57 "inF2" + Name 58 "inU0" + Name 59 "inU1" + Name 68 "PixelShaderFunction2x2(mf22;mf22;mf22;" + Name 65 "inF0" + Name 66 "inF1" + Name 67 "inF2" + Name 76 "PixelShaderFunction3x3(mf33;mf33;mf33;" + Name 73 "inF0" + Name 74 "inF1" + Name 75 "inF2" + Name 84 "PixelShaderFunction4x4(mf44;mf44;mf44;" + Name 81 "inF0" + Name 82 "inF1" + Name 83 "inF2" + Name 93 "TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;" + Name 87 "inF0" + Name 88 "inF1" + Name 89 "inFV0" + Name 90 "inFV1" + Name 91 "inFM0" + Name 92 "inFM1" + Name 102 "TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;" + Name 96 "inF0" + Name 97 "inF1" + Name 98 "inFV0" + Name 99 "inFV1" + Name 100 "inFM0" + Name 101 "inFM1" + Name 111 "TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;" + Name 105 "inF0" + Name 106 "inF1" + Name 107 "inFV0" + Name 108 "inFV1" + Name 109 "inFM0" + Name 110 "inFM1" + Name 131 "TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;" + Name 122 "inF0" + Name 123 "inF1" + Name 124 "inFV2" + Name 125 "inFV3" + Name 126 "inFM2x3" + Name 127 "inFM3x2" + Name 128 "inFM3x3" + Name 129 "inFM3x4" + Name 130 "inFM2x4" + Name 133 "PS_OUTPUT" + MemberName 133(PS_OUTPUT) 0 "color" + Name 135 "@main(" + Name 139 "r000" + Name 144 "r001" + Name 147 "r002" + Name 150 "r003" + Name 154 "r004" + Name 157 "r005" + Name 160 "r006" + Name 163 "r007" + Name 166 "r009" + Name 169 "r010" + Name 173 "r011" + Name 176 "r012" + Name 192 "r014" + Name 195 "r015" + Name 198 "r016" + Name 201 "r017" + Name 204 "r018" + Name 207 "r019" + Name 210 "r020" + Name 213 "r021" + Name 216 "r022" + Name 219 "r023" + Name 222 "r027" + Name 225 "r028" + Name 228 "r029" + Name 231 "r030" + Name 234 "r031" + Name 237 "r033" + Name 241 "r034" + Name 244 "r036" + Name 247 "r037" + Name 250 "r038" + Name 253 "r039" + Name 257 "r039a" + Name 262 "r040" + Name 265 "r041" + Name 270 "r042" + Name 273 "r043" + Name 277 "r044" + Name 281 "r045" + Name 285 "r046" + Name 288 "r047" + Name 292 "r048" + Name 296 "r049" + Name 299 "r050" + Name 302 "r051" + Name 305 "r052" + Name 308 "r053" + Name 315 "r055" + Name 318 "r056" + Name 323 "r057" + Name 326 "r058" + Name 330 "r059" + Name 333 "r060" + Name 336 "r061" + Name 343 "r000" + Name 349 "r001" + Name 352 "r002" + Name 355 "r003" + Name 359 "r004" + Name 364 "r005" + Name 367 "r006" + Name 370 "r007" + Name 373 "r009" + Name 376 "r010" + Name 380 "r011" + Name 383 "r012" + Name 402 "r013" + Name 405 "r015" + Name 408 "r016" + Name 412 "r017" + Name 415 "r018" + Name 418 "r019" + Name 421 "r020" + Name 424 "r021" + Name 427 "r022" + Name 430 "r023" + Name 433 "r026" + Name 437 "r027" + Name 441 "r028" + Name 444 "r029" + Name 447 "r030" + Name 452 "r031" + Name 457 "r032" + Name 459 "r033" + Name 462 "r035" + Name 466 "r036" + Name 469 "r038" + Name 473 "r039" + Name 476 "r040" + Name 479 "r041" + Name 483 "r039a" + Name 488 "r042" + Name 491 "r043" + Name 494 "r044" + Name 498 "r045" + Name 501 "r046" + Name 505 "r047" + Name 509 "r048" + Name 512 "r049" + Name 516 "r050" + Name 519 "r051" + Name 523 "r052" + Name 527 "r053" + Name 532 "r054" + Name 537 "r055" + Name 540 "r056" + Name 543 "r057" + Name 548 "r058" + Name 551 "r059" + Name 558 "r060" + Name 561 "r061" + Name 566 "r062" + Name 569 "r063" + Name 573 "r064" + Name 576 "r065" + Name 579 "r066" + Name 585 "r000" + Name 591 "r001" + Name 594 "r002" + Name 597 "r003" + Name 601 "r004" + Name 606 "r005" + Name 609 "r006" + Name 612 "r007" + Name 615 "r009" + Name 618 "r010" + Name 622 "r011" + Name 625 "r012" + Name 643 "r013" + Name 646 "r014" + Name 649 "r015" + Name 654 "r016" + Name 658 "r017" + Name 661 "r018" + Name 664 "r019" + Name 667 "r020" + Name 670 "r021" + Name 673 "r022" + Name 676 "r023" + Name 679 "r024" + Name 683 "r025" + Name 687 "r029" + Name 690 "r030" + Name 693 "r031" + Name 698 "r032" + Name 702 "r033" + Name 704 "r034" + Name 707 "r036" + Name 711 "r037" + Name 714 "r039" + Name 718 "r040" + Name 721 "r041" + Name 724 "r042" + Name 728 "r039a" + Name 733 "r039b" + Name 739 "r043" + Name 742 "r044" + Name 745 "r045" + Name 749 "r046" + Name 752 "r047" + Name 756 "r048" + Name 760 "r049" + Name 763 "r050" + Name 767 "r051" + Name 770 "r052" + Name 774 "r053" + Name 778 "r054" + Name 782 "r055" + Name 785 "r056" + Name 788 "r057" + Name 791 "r058" + Name 796 "r059" + Name 799 "r060" + Name 806 "r061" + Name 809 "r062" + Name 814 "r063" + Name 817 "r064" + Name 821 "r065" + Name 824 "r066" + Name 827 "r067" + Name 834 "r000" + Name 840 "r001" + Name 843 "r002" + Name 846 "r003" + Name 850 "r004" + Name 855 "r005" + Name 858 "r006" + Name 861 "r007" + Name 864 "r009" + Name 867 "r010" + Name 871 "r011" + Name 874 "r012" + Name 892 "r013" + Name 895 "r014" + Name 898 "r015" + Name 901 "r016" + Name 904 "r017" + Name 907 "r018" + Name 910 "r019" + Name 913 "r020" + Name 916 "r021" + Name 919 "r022" + Name 922 "r023" + Name 926 "r024" + Name 930 "r025" + Name 941 "r029" + Name 944 "r030" + Name 947 "r031" + Name 952 "r032" + Name 957 "r033" + Name 959 "r034" + Name 962 "r036" + Name 966 "r037" + Name 969 "r039" + Name 973 "r040" + Name 976 "r041" + Name 979 "r042" + Name 983 "r039a" + Name 988 "r043" + Name 991 "r044" + Name 994 "r045" + Name 998 "r046" + Name 1001 "r047" + Name 1005 "r048" + Name 1009 "r049" + Name 1012 "r050" + Name 1016 "r051" + Name 1019 "r052" + Name 1023 "r053" + Name 1027 "r054" + Name 1031 "r055" + Name 1034 "r056" + Name 1037 "r057" + Name 1040 "r058" + Name 1045 "r059" + Name 1048 "r060" + Name 1055 "r061" + Name 1058 "r062" + Name 1063 "r063" + Name 1066 "r064" + Name 1070 "r065" + Name 1073 "r066" + Name 1076 "r067" + Name 1083 "r000" + Name 1088 "r001" + Name 1093 "r003" + Name 1097 "r004" + Name 1100 "r005" + Name 1103 "r006" + Name 1107 "r007" + Name 1117 "r008" + Name 1122 "r009" + Name 1125 "r010" + Name 1128 "r011" + Name 1131 "r012" + Name 1134 "r013" + Name 1137 "r014" + Name 1140 "r015" + Name 1143 "r016" + Name 1146 "r017" + Name 1149 "r018" + Name 1152 "r019" + Name 1155 "R020" + Name 1158 "r021" + Name 1161 "r022" + Name 1171 "r023" + Name 1174 "r025" + Name 1177 "r026" + Name 1181 "r026a" + Name 1186 "r027" + Name 1189 "r028" + Name 1193 "r029" + Name 1196 "r030" + Name 1200 "r031" + Name 1204 "r032" + Name 1208 "r033" + Name 1211 "r034" + Name 1214 "r035" + Name 1217 "r036" + Name 1222 "r037" + Name 1225 "r038" + Name 1232 "r039" + Name 1235 "r049" + Name 1240 "r041" + Name 1243 "r042" + Name 1247 "r043" + Name 1250 "r044" + Name 1255 "r046" + Name 1262 "r000" + Name 1267 "r001" + Name 1272 "r003" + Name 1276 "r004" + Name 1279 "r005" + Name 1282 "r006" + Name 1286 "r007" + Name 1296 "r008" + Name 1301 "r009" + Name 1304 "r010" + Name 1307 "r011" + Name 1310 "r012" + Name 1313 "r013" + Name 1316 "r014" + Name 1319 "r015" + Name 1322 "r016" + Name 1325 "r017" + Name 1328 "r018" + Name 1331 "r019" + Name 1334 "R020" + Name 1337 "r021" + Name 1340 "r022" + Name 1353 "r023" + Name 1356 "r025" + Name 1359 "r026" + Name 1363 "r026a" + Name 1368 "r027" + Name 1371 "r028" + Name 1375 "r029" + Name 1378 "r030" + Name 1382 "r031" + Name 1386 "r032" + Name 1390 "r033" + Name 1393 "r034" + Name 1396 "r035" + Name 1399 "r036" + Name 1404 "r037" + Name 1407 "r038" + Name 1414 "r039" + Name 1417 "r049" + Name 1422 "r041" + Name 1425 "r042" + Name 1429 "r043" + Name 1432 "r044" + Name 1437 "r046" + Name 1444 "r000" + Name 1449 "r001" + Name 1454 "r003" + Name 1458 "r004" + Name 1461 "r005" + Name 1464 "r006" + Name 1468 "r007" + Name 1478 "r008" + Name 1483 "r009" + Name 1486 "r010" + Name 1489 "r011" + Name 1492 "r012" + Name 1495 "r013" + Name 1498 "r014" + Name 1501 "r015" + Name 1504 "r016" + Name 1507 "r017" + Name 1510 "r018" + Name 1513 "r019" + Name 1516 "R020" + Name 1519 "r021" + Name 1522 "r022" + Name 1538 "r023" + Name 1541 "r025" + Name 1544 "r026" + Name 1548 "r026a" + Name 1553 "r027" + Name 1556 "r028" + Name 1560 "r029" + Name 1563 "r030" + Name 1567 "r031" + Name 1571 "r032" + Name 1575 "r033" + Name 1578 "r034" + Name 1581 "r035" + Name 1584 "r036" + Name 1589 "r037" + Name 1592 "r038" + Name 1599 "r039" + Name 1602 "r049" + Name 1607 "r041" + Name 1610 "r042" + Name 1614 "r043" + Name 1617 "r044" + Name 1622 "r046" + Name 1629 "r0" + Name 1633 "r1" + Name 1637 "r2" + Name 1641 "r3" + Name 1645 "r4" + Name 1649 "r5" + Name 1653 "r6" + Name 1657 "r7" + Name 1661 "r8" + Name 1665 "r0" + Name 1669 "r1" + Name 1673 "r2" + Name 1677 "r3" + Name 1681 "r4" + Name 1685 "r5" + Name 1689 "r6" + Name 1693 "r7" + Name 1697 "r8" + Name 1701 "r0" + Name 1705 "r1" + Name 1709 "r2" + Name 1713 "r3" + Name 1717 "r4" + Name 1721 "r5" + Name 1725 "r6" + Name 1729 "r7" + Name 1733 "r8" + Name 1737 "r00" + Name 1741 "r01" + Name 1745 "r02" + Name 1749 "r03" + Name 1753 "r04" + Name 1757 "r05" + Name 1761 "r06" + Name 1765 "r07" + Name 1769 "r08" + Name 1773 "r09" + Name 1777 "r10" + Name 1781 "r11" + Name 1785 "r12" + Name 1789 "r13" + Name 1793 "r14" + Name 1797 "r15" + Name 1801 "r16" + Name 1806 "ps_output" + Name 1813 "@entryPointOutput.color" + Name 1817 "gs_ua" + Name 1818 "gs_ub" + Name 1819 "gs_uc" + Name 1821 "gs_ua2" + Name 1822 "gs_ub2" + Name 1823 "gs_uc2" + Name 1825 "gs_ua3" + Name 1826 "gs_ub3" + Name 1827 "gs_uc3" + Name 1829 "gs_ua4" + Name 1830 "gs_ub4" + Name 1831 "gs_uc4" + Decorate 1813(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeInt 32 0 + 9: TypePointer Function 8(int) + 10: TypeInt 32 1 + 11: TypePointer Function 10(int) + 12: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 11(ptr) + 20: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) + 26: TypeVector 6(float) 2 + 27: TypePointer Function 26(fvec2) + 28: TypeVector 8(int) 2 + 29: TypePointer Function 28(ivec2) + 30: TypeFunction 26(fvec2) 27(ptr) 27(ptr) 27(ptr) 29(ptr) 29(ptr) + 38: TypeVector 6(float) 3 + 39: TypePointer Function 38(fvec3) + 40: TypeVector 8(int) 3 + 41: TypePointer Function 40(ivec3) + 42: TypeFunction 38(fvec3) 39(ptr) 39(ptr) 39(ptr) 41(ptr) 41(ptr) + 50: TypeVector 6(float) 4 + 51: TypePointer Function 50(fvec4) + 52: TypeVector 8(int) 4 + 53: TypePointer Function 52(ivec4) + 54: TypeFunction 50(fvec4) 51(ptr) 51(ptr) 51(ptr) 53(ptr) 53(ptr) + 62: TypeMatrix 26(fvec2) 2 + 63: TypePointer Function 62 + 64: TypeFunction 62 63(ptr) 63(ptr) 63(ptr) + 70: TypeMatrix 38(fvec3) 3 + 71: TypePointer Function 70 + 72: TypeFunction 70 71(ptr) 71(ptr) 71(ptr) + 78: TypeMatrix 50(fvec4) 4 + 79: TypePointer Function 78 + 80: TypeFunction 78 79(ptr) 79(ptr) 79(ptr) + 86: TypeFunction 2 7(ptr) 7(ptr) 27(ptr) 27(ptr) 63(ptr) 63(ptr) + 95: TypeFunction 2 7(ptr) 7(ptr) 39(ptr) 39(ptr) 71(ptr) 71(ptr) + 104: TypeFunction 2 7(ptr) 7(ptr) 51(ptr) 51(ptr) 79(ptr) 79(ptr) + 113: TypeMatrix 38(fvec3) 2 + 114: TypePointer Function 113 + 115: TypeMatrix 26(fvec2) 3 + 116: TypePointer Function 115 + 117: TypeMatrix 50(fvec4) 3 + 118: TypePointer Function 117 + 119: TypeMatrix 50(fvec4) 2 + 120: TypePointer Function 119 + 121: TypeFunction 2 7(ptr) 7(ptr) 27(ptr) 39(ptr) 114(ptr) 116(ptr) 71(ptr) 118(ptr) 120(ptr) + 133(PS_OUTPUT): TypeStruct 50(fvec4) + 134: TypeFunction 133(PS_OUTPUT) + 137: TypeBool + 138: TypePointer Function 137(bool) + 141: 6(float) Constant 0 + 187: 10(int) Constant 0 + 199: 10(int) Constant 7 + 268: 6(float) Constant 1050288283 + 289: 6(float) Constant 1065353216 + 293: 10(int) Constant 2 + 345: TypeVector 137(bool) 2 + 346: 26(fvec2) ConstantComposite 141 141 + 362: TypeVector 10(int) 2 + 363: TypePointer Function 362(ivec2) + 395: 8(int) Constant 0 + 396: 28(ivec2) ConstantComposite 395 395 + 409: 10(int) Constant 3 + 410: 362(ivec2) ConstantComposite 199 409 + 453: 8(int) Constant 7 + 454: 8(int) Constant 8 + 455: 28(ivec2) ConstantComposite 453 454 + 472: TypePointer Function 345(bvec2) + 530: 6(float) Constant 1073741824 + 533: 8(int) Constant 1 + 534: 8(int) Constant 2 + 535: 28(ivec2) ConstantComposite 533 534 + 582: 26(fvec2) ConstantComposite 289 530 + 587: TypeVector 137(bool) 3 + 588: 38(fvec3) ConstantComposite 141 141 141 + 604: TypeVector 10(int) 3 + 605: TypePointer Function 604(ivec3) + 637: 40(ivec3) ConstantComposite 395 395 395 + 650: 8(int) Constant 3 + 651: 8(int) Constant 5 + 652: 40(ivec3) ConstantComposite 453 650 651 + 699: 8(int) Constant 4 + 700: 40(ivec3) ConstantComposite 534 650 699 + 717: TypePointer Function 587(bvec3) + 736: 6(float) Constant 1050253722 + 783: 40(ivec3) ConstantComposite 533 534 650 + 830: 6(float) Constant 1077936128 + 831: 38(fvec3) ConstantComposite 289 530 830 + 836: TypeVector 137(bool) 4 + 837: 50(fvec4) ConstantComposite 141 141 141 141 + 853: TypeVector 10(int) 4 + 854: TypePointer Function 853(ivec4) + 886: 52(ivec4) ConstantComposite 395 395 395 395 + 899: 52(ivec4) ConstantComposite 453 650 651 534 + 953: 8(int) Constant 9 + 954: 8(int) Constant 10 + 955: 52(ivec4) ConstantComposite 453 454 953 954 + 972: TypePointer Function 836(bvec4) + 1032: 52(ivec4) ConstantComposite 533 534 650 699 + 1079: 6(float) Constant 1082130432 + 1080: 50(fvec4) ConstantComposite 289 530 830 1079 + 1085: TypeMatrix 345(bvec2) 2 + 1111: 62 ConstantComposite 346 346 + 1258: 26(fvec2) ConstantComposite 530 530 + 1259: 62 ConstantComposite 1258 1258 + 1264: TypeMatrix 587(bvec3) 3 + 1290: 70 ConstantComposite 588 588 588 + 1440: 38(fvec3) ConstantComposite 830 830 830 + 1441: 70 ConstantComposite 1440 1440 1440 + 1446: TypeMatrix 836(bvec4) 4 + 1472: 78 ConstantComposite 837 837 837 837 + 1625: 50(fvec4) ConstantComposite 1079 1079 1079 1079 + 1626: 78 ConstantComposite 1625 1625 1625 1625 + 1805: TypePointer Function 133(PS_OUTPUT) + 1807: 50(fvec4) ConstantComposite 289 289 289 289 + 1812: TypePointer Output 50(fvec4) +1813(@entryPointOutput.color): 1812(ptr) Variable Output + 1816: TypePointer Workgroup 8(int) + 1817(gs_ua): 1816(ptr) Variable Workgroup + 1818(gs_ub): 1816(ptr) Variable Workgroup + 1819(gs_uc): 1816(ptr) Variable Workgroup + 1820: TypePointer Workgroup 28(ivec2) + 1821(gs_ua2): 1820(ptr) Variable Workgroup + 1822(gs_ub2): 1820(ptr) Variable Workgroup + 1823(gs_uc2): 1820(ptr) Variable Workgroup + 1824: TypePointer Workgroup 40(ivec3) + 1825(gs_ua3): 1824(ptr) Variable Workgroup + 1826(gs_ub3): 1824(ptr) Variable Workgroup + 1827(gs_uc3): 1824(ptr) Variable Workgroup + 1828: TypePointer Workgroup 52(ivec4) + 1829(gs_ua4): 1828(ptr) Variable Workgroup + 1830(gs_ub4): 1828(ptr) Variable Workgroup + 1831(gs_uc4): 1828(ptr) Variable Workgroup + 4(main): 2 Function None 3 + 5: Label + 1814:133(PS_OUTPUT) FunctionCall 135(@main() + 1815: 50(fvec4) CompositeExtract 1814 0 + Store 1813(@entryPointOutput.color) 1815 + Return + FunctionEnd +18(PixelShaderFunctionS(f1;f1;f1;u1;i1;): 6(float) Function None 12 + 13(inF0): 7(ptr) FunctionParameter + 14(inF1): 7(ptr) FunctionParameter + 15(inF2): 7(ptr) FunctionParameter + 16(inU0): 9(ptr) FunctionParameter + 17(inU1): 11(ptr) FunctionParameter + 19: Label + 139(r000): 138(ptr) Variable Function + 144(r001): 7(ptr) Variable Function + 147(r002): 7(ptr) Variable Function + 150(r003): 138(ptr) Variable Function + 154(r004): 7(ptr) Variable Function + 157(r005): 11(ptr) Variable Function + 160(r006): 9(ptr) Variable Function + 163(r007): 7(ptr) Variable Function + 166(r009): 7(ptr) Variable Function + 169(r010): 7(ptr) Variable Function + 173(r011): 7(ptr) Variable Function + 176(r012): 7(ptr) Variable Function + 192(r014): 7(ptr) Variable Function + 195(r015): 7(ptr) Variable Function + 198(r016): 11(ptr) Variable Function + 201(r017): 7(ptr) Variable Function + 204(r018): 7(ptr) Variable Function + 207(r019): 7(ptr) Variable Function + 210(r020): 7(ptr) Variable Function + 213(r021): 7(ptr) Variable Function + 216(r022): 7(ptr) Variable Function + 219(r023): 7(ptr) Variable Function + 222(r027): 7(ptr) Variable Function + 225(r028): 7(ptr) Variable Function + 228(r029): 9(ptr) Variable Function + 231(r030): 9(ptr) Variable Function + 234(r031): 7(ptr) Variable Function + 237(r033): 7(ptr) Variable Function + 241(r034): 7(ptr) Variable Function + 244(r036): 7(ptr) Variable Function + 247(r037): 138(ptr) Variable Function + 250(r038): 138(ptr) Variable Function + 253(r039): 7(ptr) Variable Function + 257(r039a): 7(ptr) Variable Function + 262(r040): 7(ptr) Variable Function + 265(r041): 7(ptr) Variable Function + 270(r042): 7(ptr) Variable Function + 273(r043): 7(ptr) Variable Function + 277(r044): 7(ptr) Variable Function + 281(r045): 7(ptr) Variable Function + 285(r046): 7(ptr) Variable Function + 288(r047): 7(ptr) Variable Function + 292(r048): 9(ptr) Variable Function + 296(r049): 7(ptr) Variable Function + 299(r050): 7(ptr) Variable Function + 302(r051): 7(ptr) Variable Function + 305(r052): 7(ptr) Variable Function + 308(r053): 7(ptr) Variable Function + 315(r055): 7(ptr) Variable Function + 318(r056): 7(ptr) Variable Function + 323(r057): 7(ptr) Variable Function + 326(r058): 7(ptr) Variable Function + 330(r059): 7(ptr) Variable Function + 333(r060): 7(ptr) Variable Function + 336(r061): 7(ptr) Variable Function + 140: 6(float) Load 13(inF0) + 142: 137(bool) FOrdNotEqual 140 141 + 143: 137(bool) All 142 + Store 139(r000) 143 + 145: 6(float) Load 13(inF0) + 146: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 145 + Store 144(r001) 146 + 148: 6(float) Load 13(inF0) + 149: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 148 + Store 147(r002) 149 + 151: 6(float) Load 13(inF0) + 152: 137(bool) FOrdNotEqual 151 141 + 153: 137(bool) Any 152 + Store 150(r003) 153 + 155: 6(float) Load 13(inF0) + 156: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 155 + Store 154(r004) 156 + 158: 6(float) Load 13(inF0) + 159: 10(int) Bitcast 158 + Store 157(r005) 159 + 161: 10(int) Load 17(inU1) + 162: 8(int) Bitcast 161 + Store 160(r006) 162 + 164: 8(int) Load 16(inU0) + 165: 6(float) Bitcast 164 + Store 163(r007) 165 + 167: 6(float) Load 13(inF0) + 168: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 167 + Store 166(r009) 168 + 170: 6(float) Load 13(inF0) + 171: 6(float) Load 14(inF1) + 172: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 170 171 + Store 169(r010) 172 + 174: 6(float) Load 13(inF0) + 175: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 174 + Store 173(r011) 175 + 177: 6(float) Load 13(inF0) + 178: 6(float) Load 14(inF1) + 179: 6(float) Load 15(inF2) + 180: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 177 178 179 + Store 176(r012) 180 + 181: 6(float) Load 13(inF0) + 182: 137(bool) FOrdLessThan 181 141 + SelectionMerge 184 None + BranchConditional 182 183 184 + 183: Label + Kill + 184: Label + 186: 10(int) Load 157(r005) + 188: 137(bool) SLessThan 186 187 + SelectionMerge 190 None + BranchConditional 188 189 190 + 189: Label + Kill + 190: Label + 193: 6(float) Load 13(inF0) + 194: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 193 + Store 192(r014) 194 + 196: 6(float) Load 13(inF0) + 197: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 196 + Store 195(r015) 197 + 200: 10(int) BitCount 199 + Store 198(r016) 200 + 202: 6(float) Load 13(inF0) + 203: 6(float) DPdx 202 + Store 201(r017) 203 + 205: 6(float) Load 13(inF0) + 206: 6(float) DPdxCoarse 205 + Store 204(r018) 206 + 208: 6(float) Load 13(inF0) + 209: 6(float) DPdxFine 208 + Store 207(r019) 209 + 211: 6(float) Load 13(inF0) + 212: 6(float) DPdy 211 + Store 210(r020) 212 + 214: 6(float) Load 13(inF0) + 215: 6(float) DPdyCoarse 214 + Store 213(r021) 215 + 217: 6(float) Load 13(inF0) + 218: 6(float) DPdyFine 217 + Store 216(r022) 218 + 220: 6(float) Load 13(inF0) + 221: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 220 + Store 219(r023) 221 + 223: 6(float) Load 13(inF0) + 224: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 223 + Store 222(r027) 224 + 226: 6(float) Load 13(inF0) + 227: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 226 + Store 225(r028) 227 + 229: 10(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 199 + 230: 8(int) Bitcast 229 + Store 228(r029) 230 + 232: 10(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 199 + 233: 8(int) Bitcast 232 + Store 231(r030) 233 + 235: 6(float) Load 13(inF0) + 236: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 235 + Store 234(r031) 236 + 238: 6(float) Load 13(inF0) + 239: 6(float) Load 14(inF1) + 240: 6(float) FMod 238 239 + Store 237(r033) 240 + 242: 6(float) Load 13(inF0) + 243: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 242 + Store 241(r034) 243 + 245: 6(float) Load 13(inF0) + 246: 6(float) Fwidth 245 + Store 244(r036) 246 + 248: 6(float) Load 13(inF0) + 249: 137(bool) IsInf 248 + Store 247(r037) 249 + 251: 6(float) Load 13(inF0) + 252: 137(bool) IsNan 251 + Store 250(r038) 252 + 254: 6(float) Load 13(inF0) + 255: 6(float) Load 14(inF1) + 256: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 254 255 + Store 253(r039) 256 + 258: 6(float) Load 13(inF0) + 259: 6(float) Load 14(inF1) + 260: 6(float) Load 15(inF2) + 261: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 258 259 260 + Store 257(r039a) 261 + 263: 6(float) Load 13(inF0) + 264: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 263 + Store 262(r040) 264 + 266: 6(float) Load 13(inF0) + 267: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 266 + 269: 6(float) FMul 267 268 + Store 265(r041) 269 + 271: 6(float) Load 13(inF0) + 272: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 271 + Store 270(r042) 272 + 274: 6(float) Load 13(inF0) + 275: 6(float) Load 14(inF1) + 276: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 274 275 + Store 273(r043) 276 + 278: 6(float) Load 13(inF0) + 279: 6(float) Load 14(inF1) + 280: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 278 279 + Store 277(r044) 280 + 282: 6(float) Load 13(inF0) + 283: 6(float) Load 14(inF1) + 284: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 282 283 + Store 281(r045) 284 + 286: 6(float) Load 13(inF0) + 287: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 286 + Store 285(r046) 287 + 290: 6(float) Load 13(inF0) + 291: 6(float) FDiv 289 290 + Store 288(r047) 291 + 294: 10(int) BitReverse 293 + 295: 8(int) Bitcast 294 + Store 292(r048) 295 + 297: 6(float) Load 13(inF0) + 298: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 297 + Store 296(r049) 298 + 300: 6(float) Load 13(inF0) + 301: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 300 + Store 299(r050) 301 + 303: 6(float) Load 13(inF0) + 304: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 303 141 289 + Store 302(r051) 304 + 306: 6(float) Load 13(inF0) + 307: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 306 + Store 305(r052) 307 + 309: 6(float) Load 13(inF0) + 310: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 309 + Store 308(r053) 310 + 311: 6(float) Load 13(inF0) + 312: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 311 + Store 14(inF1) 312 + 313: 6(float) Load 13(inF0) + 314: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 313 + Store 15(inF2) 314 + 316: 6(float) Load 13(inF0) + 317: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 316 + Store 315(r055) 317 + 319: 6(float) Load 13(inF0) + 320: 6(float) Load 14(inF1) + 321: 6(float) Load 15(inF2) + 322: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 319 320 321 + Store 318(r056) 322 + 324: 6(float) Load 13(inF0) + 325: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 324 + Store 323(r057) 325 + 327: 6(float) Load 13(inF0) + 328: 6(float) Load 14(inF1) + 329: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 327 328 + Store 326(r058) 329 + 331: 6(float) Load 13(inF0) + 332: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 331 + Store 330(r059) 332 + 334: 6(float) Load 13(inF0) + 335: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 334 + Store 333(r060) 335 + 337: 6(float) Load 13(inF0) + 338: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 337 + Store 336(r061) 338 + ReturnValue 141 + FunctionEnd +24(PixelShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 20 + 21(inF0): 7(ptr) FunctionParameter + 22(inF1): 7(ptr) FunctionParameter + 23(inF2): 7(ptr) FunctionParameter + 25: Label + ReturnValue 141 + FunctionEnd +36(PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 26(fvec2) Function None 30 + 31(inF0): 27(ptr) FunctionParameter + 32(inF1): 27(ptr) FunctionParameter + 33(inF2): 27(ptr) FunctionParameter + 34(inU0): 29(ptr) FunctionParameter + 35(inU1): 29(ptr) FunctionParameter + 37: Label + 343(r000): 138(ptr) Variable Function + 349(r001): 27(ptr) Variable Function + 352(r002): 27(ptr) Variable Function + 355(r003): 138(ptr) Variable Function + 359(r004): 27(ptr) Variable Function + 364(r005): 363(ptr) Variable Function + 367(r006): 29(ptr) Variable Function + 370(r007): 27(ptr) Variable Function + 373(r009): 27(ptr) Variable Function + 376(r010): 27(ptr) Variable Function + 380(r011): 27(ptr) Variable Function + 383(r012): 27(ptr) Variable Function + 402(r013): 27(ptr) Variable Function + 405(r015): 27(ptr) Variable Function + 408(r016): 363(ptr) Variable Function + 412(r017): 27(ptr) Variable Function + 415(r018): 27(ptr) Variable Function + 418(r019): 27(ptr) Variable Function + 421(r020): 27(ptr) Variable Function + 424(r021): 27(ptr) Variable Function + 427(r022): 27(ptr) Variable Function + 430(r023): 27(ptr) Variable Function + 433(r026): 7(ptr) Variable Function + 437(r027): 7(ptr) Variable Function + 441(r028): 27(ptr) Variable Function + 444(r029): 27(ptr) Variable Function + 447(r030): 27(ptr) Variable Function + 452(r031): 29(ptr) Variable Function + 457(r032): 29(ptr) Variable Function + 459(r033): 27(ptr) Variable Function + 462(r035): 27(ptr) Variable Function + 466(r036): 27(ptr) Variable Function + 469(r038): 27(ptr) Variable Function + 473(r039): 472(ptr) Variable Function + 476(r040): 472(ptr) Variable Function + 479(r041): 27(ptr) Variable Function + 483(r039a): 27(ptr) Variable Function + 488(r042): 7(ptr) Variable Function + 491(r043): 27(ptr) Variable Function + 494(r044): 27(ptr) Variable Function + 498(r045): 27(ptr) Variable Function + 501(r046): 27(ptr) Variable Function + 505(r047): 27(ptr) Variable Function + 509(r048): 27(ptr) Variable Function + 512(r049): 27(ptr) Variable Function + 516(r050): 27(ptr) Variable Function + 519(r051): 27(ptr) Variable Function + 523(r052): 27(ptr) Variable Function + 527(r053): 27(ptr) Variable Function + 532(r054): 29(ptr) Variable Function + 537(r055): 27(ptr) Variable Function + 540(r056): 27(ptr) Variable Function + 543(r057): 27(ptr) Variable Function + 548(r058): 27(ptr) Variable Function + 551(r059): 27(ptr) Variable Function + 558(r060): 27(ptr) Variable Function + 561(r061): 27(ptr) Variable Function + 566(r062): 27(ptr) Variable Function + 569(r063): 27(ptr) Variable Function + 573(r064): 27(ptr) Variable Function + 576(r065): 27(ptr) Variable Function + 579(r066): 27(ptr) Variable Function + 344: 26(fvec2) Load 31(inF0) + 347: 345(bvec2) FOrdNotEqual 344 346 + 348: 137(bool) All 347 + Store 343(r000) 348 + 350: 26(fvec2) Load 31(inF0) + 351: 26(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 350 + Store 349(r001) 351 + 353: 26(fvec2) Load 31(inF0) + 354: 26(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 353 + Store 352(r002) 354 + 356: 26(fvec2) Load 31(inF0) + 357: 345(bvec2) FOrdNotEqual 356 346 + 358: 137(bool) Any 357 + Store 355(r003) 358 + 360: 26(fvec2) Load 31(inF0) + 361: 26(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 360 + Store 359(r004) 361 + 365: 26(fvec2) Load 31(inF0) + 366: 362(ivec2) Bitcast 365 + Store 364(r005) 366 + 368: 26(fvec2) Load 31(inF0) + 369: 28(ivec2) Bitcast 368 + Store 367(r006) 369 + 371: 28(ivec2) Load 34(inU0) + 372: 26(fvec2) Bitcast 371 + Store 370(r007) 372 + 374: 26(fvec2) Load 31(inF0) + 375: 26(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 374 + Store 373(r009) 375 + 377: 26(fvec2) Load 31(inF0) + 378: 26(fvec2) Load 32(inF1) + 379: 26(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 377 378 + Store 376(r010) 379 + 381: 26(fvec2) Load 31(inF0) + 382: 26(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 381 + Store 380(r011) 382 + 384: 26(fvec2) Load 31(inF0) + 385: 26(fvec2) Load 32(inF1) + 386: 26(fvec2) Load 33(inF2) + 387: 26(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 384 385 386 + Store 383(r012) 387 + 388: 26(fvec2) Load 31(inF0) + 389: 345(bvec2) FOrdLessThan 388 346 + 390: 137(bool) Any 389 + SelectionMerge 392 None + BranchConditional 390 391 392 + 391: Label + Kill + 392: Label + 394: 28(ivec2) Load 34(inU0) + 397: 345(bvec2) ULessThan 394 396 + 398: 137(bool) Any 397 + SelectionMerge 400 None + BranchConditional 398 399 400 + 399: Label + Kill + 400: Label + 403: 26(fvec2) Load 31(inF0) + 404: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 403 + Store 402(r013) 404 + 406: 26(fvec2) Load 31(inF0) + 407: 26(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 406 + Store 405(r015) 407 + 411: 362(ivec2) BitCount 410 + Store 408(r016) 411 + 413: 26(fvec2) Load 31(inF0) + 414: 26(fvec2) DPdx 413 + Store 412(r017) 414 + 416: 26(fvec2) Load 31(inF0) + 417: 26(fvec2) DPdxCoarse 416 + Store 415(r018) 417 + 419: 26(fvec2) Load 31(inF0) + 420: 26(fvec2) DPdxFine 419 + Store 418(r019) 420 + 422: 26(fvec2) Load 31(inF0) + 423: 26(fvec2) DPdy 422 + Store 421(r020) 423 + 425: 26(fvec2) Load 31(inF0) + 426: 26(fvec2) DPdyCoarse 425 + Store 424(r021) 426 + 428: 26(fvec2) Load 31(inF0) + 429: 26(fvec2) DPdyFine 428 + Store 427(r022) 429 + 431: 26(fvec2) Load 31(inF0) + 432: 26(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 431 + Store 430(r023) 432 + 434: 26(fvec2) Load 31(inF0) + 435: 26(fvec2) Load 32(inF1) + 436: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 434 435 + Store 433(r026) 436 + 438: 26(fvec2) Load 31(inF0) + 439: 26(fvec2) Load 32(inF1) + 440: 6(float) Dot 438 439 + Store 437(r027) 440 + 442: 26(fvec2) Load 31(inF0) + 443: 26(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 442 + Store 441(r028) 443 + 445: 26(fvec2) Load 31(inF0) + 446: 26(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 445 + Store 444(r029) 446 + 448: 26(fvec2) Load 31(inF0) + 449: 26(fvec2) Load 32(inF1) + 450: 26(fvec2) Load 33(inF2) + 451: 26(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 448 449 450 + Store 447(r030) 451 + 456: 28(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 455 + Store 452(r031) 456 + 458: 28(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 455 + Store 457(r032) 458 + 460: 26(fvec2) Load 31(inF0) + 461: 26(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 460 + Store 459(r033) 461 + 463: 26(fvec2) Load 31(inF0) + 464: 26(fvec2) Load 32(inF1) + 465: 26(fvec2) FMod 463 464 + Store 462(r035) 465 + 467: 26(fvec2) Load 31(inF0) + 468: 26(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 467 + Store 466(r036) 468 + 470: 26(fvec2) Load 31(inF0) + 471: 26(fvec2) Fwidth 470 + Store 469(r038) 471 + 474: 26(fvec2) Load 31(inF0) + 475: 345(bvec2) IsInf 474 + Store 473(r039) 475 + 477: 26(fvec2) Load 31(inF0) + 478: 345(bvec2) IsNan 477 + Store 476(r040) 478 + 480: 26(fvec2) Load 31(inF0) + 481: 26(fvec2) Load 32(inF1) + 482: 26(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 480 481 + Store 479(r041) 482 + 484: 26(fvec2) Load 31(inF0) + 485: 26(fvec2) Load 32(inF1) + 486: 26(fvec2) Load 33(inF2) + 487: 26(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 484 485 486 + Store 483(r039a) 487 + 489: 26(fvec2) Load 31(inF0) + 490: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 489 + Store 488(r042) 490 + 492: 26(fvec2) Load 31(inF0) + 493: 26(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 492 + Store 491(r043) 493 + 495: 26(fvec2) Load 31(inF0) + 496: 26(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 495 + 497: 26(fvec2) VectorTimesScalar 496 268 + Store 494(r044) 497 + 499: 26(fvec2) Load 31(inF0) + 500: 26(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 499 + Store 498(r045) 500 + 502: 26(fvec2) Load 31(inF0) + 503: 26(fvec2) Load 32(inF1) + 504: 26(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 502 503 + Store 501(r046) 504 + 506: 26(fvec2) Load 31(inF0) + 507: 26(fvec2) Load 32(inF1) + 508: 26(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 506 507 + Store 505(r047) 508 + 510: 26(fvec2) Load 31(inF0) + 511: 26(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 510 + Store 509(r048) 511 + 513: 26(fvec2) Load 31(inF0) + 514: 26(fvec2) Load 32(inF1) + 515: 26(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 513 514 + Store 512(r049) 515 + 517: 26(fvec2) Load 31(inF0) + 518: 26(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 517 + Store 516(r050) 518 + 520: 26(fvec2) Load 31(inF0) + 521: 26(fvec2) CompositeConstruct 289 289 + 522: 26(fvec2) FDiv 521 520 + Store 519(r051) 522 + 524: 26(fvec2) Load 31(inF0) + 525: 26(fvec2) Load 32(inF1) + 526: 26(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 524 525 + Store 523(r052) 526 + 528: 26(fvec2) Load 31(inF0) + 529: 26(fvec2) Load 32(inF1) + 531: 26(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 528 529 530 + Store 527(r053) 531 + 536: 28(ivec2) BitReverse 535 + Store 532(r054) 536 + 538: 26(fvec2) Load 31(inF0) + 539: 26(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 538 + Store 537(r055) 539 + 541: 26(fvec2) Load 31(inF0) + 542: 26(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 541 + Store 540(r056) 542 + 544: 26(fvec2) Load 31(inF0) + 545: 26(fvec2) CompositeConstruct 141 141 + 546: 26(fvec2) CompositeConstruct 289 289 + 547: 26(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 544 545 546 + Store 543(r057) 547 + 549: 26(fvec2) Load 31(inF0) + 550: 26(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 549 + Store 548(r058) 550 + 552: 26(fvec2) Load 31(inF0) + 553: 26(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 552 + Store 551(r059) 553 + 554: 26(fvec2) Load 31(inF0) + 555: 26(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 554 + Store 32(inF1) 555 + 556: 26(fvec2) Load 31(inF0) + 557: 26(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 556 + Store 33(inF2) 557 + 559: 26(fvec2) Load 31(inF0) + 560: 26(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 559 + Store 558(r060) 560 + 562: 26(fvec2) Load 31(inF0) + 563: 26(fvec2) Load 32(inF1) + 564: 26(fvec2) Load 33(inF2) + 565: 26(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 562 563 564 + Store 561(r061) 565 + 567: 26(fvec2) Load 31(inF0) + 568: 26(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 567 + Store 566(r062) 568 + 570: 26(fvec2) Load 31(inF0) + 571: 26(fvec2) Load 32(inF1) + 572: 26(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 570 571 + Store 569(r063) 572 + 574: 26(fvec2) Load 31(inF0) + 575: 26(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 574 + Store 573(r064) 575 + 577: 26(fvec2) Load 31(inF0) + 578: 26(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 577 + Store 576(r065) 578 + 580: 26(fvec2) Load 31(inF0) + 581: 26(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 580 + Store 579(r066) 581 + ReturnValue 582 + FunctionEnd +48(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 38(fvec3) Function None 42 + 43(inF0): 39(ptr) FunctionParameter + 44(inF1): 39(ptr) FunctionParameter + 45(inF2): 39(ptr) FunctionParameter + 46(inU0): 41(ptr) FunctionParameter + 47(inU1): 41(ptr) FunctionParameter + 49: Label + 585(r000): 138(ptr) Variable Function + 591(r001): 39(ptr) Variable Function + 594(r002): 39(ptr) Variable Function + 597(r003): 138(ptr) Variable Function + 601(r004): 39(ptr) Variable Function + 606(r005): 605(ptr) Variable Function + 609(r006): 41(ptr) Variable Function + 612(r007): 39(ptr) Variable Function + 615(r009): 39(ptr) Variable Function + 618(r010): 39(ptr) Variable Function + 622(r011): 39(ptr) Variable Function + 625(r012): 39(ptr) Variable Function + 643(r013): 39(ptr) Variable Function + 646(r014): 39(ptr) Variable Function + 649(r015): 41(ptr) Variable Function + 654(r016): 39(ptr) Variable Function + 658(r017): 39(ptr) Variable Function + 661(r018): 39(ptr) Variable Function + 664(r019): 39(ptr) Variable Function + 667(r020): 39(ptr) Variable Function + 670(r021): 39(ptr) Variable Function + 673(r022): 39(ptr) Variable Function + 676(r023): 39(ptr) Variable Function + 679(r024): 7(ptr) Variable Function + 683(r025): 7(ptr) Variable Function + 687(r029): 39(ptr) Variable Function + 690(r030): 39(ptr) Variable Function + 693(r031): 39(ptr) Variable Function + 698(r032): 41(ptr) Variable Function + 702(r033): 41(ptr) Variable Function + 704(r034): 39(ptr) Variable Function + 707(r036): 39(ptr) Variable Function + 711(r037): 39(ptr) Variable Function + 714(r039): 39(ptr) Variable Function + 718(r040): 717(ptr) Variable Function + 721(r041): 717(ptr) Variable Function + 724(r042): 39(ptr) Variable Function + 728(r039a): 39(ptr) Variable Function + 733(r039b): 39(ptr) Variable Function + 739(r043): 7(ptr) Variable Function + 742(r044): 39(ptr) Variable Function + 745(r045): 39(ptr) Variable Function + 749(r046): 39(ptr) Variable Function + 752(r047): 39(ptr) Variable Function + 756(r048): 39(ptr) Variable Function + 760(r049): 39(ptr) Variable Function + 763(r050): 39(ptr) Variable Function + 767(r051): 39(ptr) Variable Function + 770(r052): 39(ptr) Variable Function + 774(r053): 39(ptr) Variable Function + 778(r054): 39(ptr) Variable Function + 782(r055): 41(ptr) Variable Function + 785(r056): 39(ptr) Variable Function + 788(r057): 39(ptr) Variable Function + 791(r058): 39(ptr) Variable Function + 796(r059): 39(ptr) Variable Function + 799(r060): 39(ptr) Variable Function + 806(r061): 39(ptr) Variable Function + 809(r062): 39(ptr) Variable Function + 814(r063): 39(ptr) Variable Function + 817(r064): 39(ptr) Variable Function + 821(r065): 39(ptr) Variable Function + 824(r066): 39(ptr) Variable Function + 827(r067): 39(ptr) Variable Function + 586: 38(fvec3) Load 43(inF0) + 589: 587(bvec3) FOrdNotEqual 586 588 + 590: 137(bool) All 589 + Store 585(r000) 590 + 592: 38(fvec3) Load 43(inF0) + 593: 38(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 592 + Store 591(r001) 593 + 595: 38(fvec3) Load 43(inF0) + 596: 38(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 595 + Store 594(r002) 596 + 598: 38(fvec3) Load 43(inF0) + 599: 587(bvec3) FOrdNotEqual 598 588 + 600: 137(bool) Any 599 + Store 597(r003) 600 + 602: 38(fvec3) Load 43(inF0) + 603: 38(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 602 + Store 601(r004) 603 + 607: 38(fvec3) Load 43(inF0) + 608: 604(ivec3) Bitcast 607 + Store 606(r005) 608 + 610: 38(fvec3) Load 43(inF0) + 611: 40(ivec3) Bitcast 610 + Store 609(r006) 611 + 613: 40(ivec3) Load 46(inU0) + 614: 38(fvec3) Bitcast 613 + Store 612(r007) 614 + 616: 38(fvec3) Load 43(inF0) + 617: 38(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 616 + Store 615(r009) 617 + 619: 38(fvec3) Load 43(inF0) + 620: 38(fvec3) Load 44(inF1) + 621: 38(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 619 620 + Store 618(r010) 621 + 623: 38(fvec3) Load 43(inF0) + 624: 38(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 623 + Store 622(r011) 624 + 626: 38(fvec3) Load 43(inF0) + 627: 38(fvec3) Load 44(inF1) + 628: 38(fvec3) Load 45(inF2) + 629: 38(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 626 627 628 + Store 625(r012) 629 + 630: 38(fvec3) Load 43(inF0) + 631: 587(bvec3) FOrdLessThan 630 588 + 632: 137(bool) Any 631 + SelectionMerge 634 None + BranchConditional 632 633 634 + 633: Label + Kill + 634: Label + 636: 40(ivec3) Load 46(inU0) + 638: 587(bvec3) ULessThan 636 637 + 639: 137(bool) Any 638 + SelectionMerge 641 None + BranchConditional 639 640 641 + 640: Label + Kill + 641: Label + 644: 38(fvec3) Load 43(inF0) + 645: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 644 + Store 643(r013) 645 + 647: 38(fvec3) Load 43(inF0) + 648: 38(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 647 + Store 646(r014) 648 + 653: 40(ivec3) BitCount 652 + Store 649(r015) 653 + 655: 38(fvec3) Load 43(inF0) + 656: 38(fvec3) Load 44(inF1) + 657: 38(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 655 656 + Store 654(r016) 657 + 659: 38(fvec3) Load 43(inF0) + 660: 38(fvec3) DPdx 659 + Store 658(r017) 660 + 662: 38(fvec3) Load 43(inF0) + 663: 38(fvec3) DPdxCoarse 662 + Store 661(r018) 663 + 665: 38(fvec3) Load 43(inF0) + 666: 38(fvec3) DPdxFine 665 + Store 664(r019) 666 + 668: 38(fvec3) Load 43(inF0) + 669: 38(fvec3) DPdy 668 + Store 667(r020) 669 + 671: 38(fvec3) Load 43(inF0) + 672: 38(fvec3) DPdyCoarse 671 + Store 670(r021) 672 + 674: 38(fvec3) Load 43(inF0) + 675: 38(fvec3) DPdyFine 674 + Store 673(r022) 675 + 677: 38(fvec3) Load 43(inF0) + 678: 38(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 677 + Store 676(r023) 678 + 680: 38(fvec3) Load 43(inF0) + 681: 38(fvec3) Load 44(inF1) + 682: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 680 681 + Store 679(r024) 682 + 684: 38(fvec3) Load 43(inF0) + 685: 38(fvec3) Load 44(inF1) + 686: 6(float) Dot 684 685 + Store 683(r025) 686 + 688: 38(fvec3) Load 43(inF0) + 689: 38(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 688 + Store 687(r029) 689 + 691: 38(fvec3) Load 43(inF0) + 692: 38(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 691 + Store 690(r030) 692 + 694: 38(fvec3) Load 43(inF0) + 695: 38(fvec3) Load 44(inF1) + 696: 38(fvec3) Load 45(inF2) + 697: 38(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 694 695 696 + Store 693(r031) 697 + 701: 40(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 700 + Store 698(r032) 701 + 703: 40(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 700 + Store 702(r033) 703 + 705: 38(fvec3) Load 43(inF0) + 706: 38(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 705 + Store 704(r034) 706 + 708: 38(fvec3) Load 43(inF0) + 709: 38(fvec3) Load 44(inF1) + 710: 38(fvec3) FMod 708 709 + Store 707(r036) 710 + 712: 38(fvec3) Load 43(inF0) + 713: 38(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 712 + Store 711(r037) 713 + 715: 38(fvec3) Load 43(inF0) + 716: 38(fvec3) Fwidth 715 + Store 714(r039) 716 + 719: 38(fvec3) Load 43(inF0) + 720: 587(bvec3) IsInf 719 + Store 718(r040) 720 + 722: 38(fvec3) Load 43(inF0) + 723: 587(bvec3) IsNan 722 + Store 721(r041) 723 + 725: 38(fvec3) Load 43(inF0) + 726: 38(fvec3) Load 44(inF1) + 727: 38(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 725 726 + Store 724(r042) 727 + 729: 38(fvec3) Load 43(inF0) + 730: 38(fvec3) Load 44(inF1) + 731: 38(fvec3) Load 45(inF2) + 732: 38(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 729 730 731 + Store 728(r039a) 732 + 734: 38(fvec3) Load 43(inF0) + 735: 38(fvec3) Load 44(inF1) + 737: 38(fvec3) CompositeConstruct 736 736 736 + 738: 38(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 734 735 737 + Store 733(r039b) 738 + 740: 38(fvec3) Load 43(inF0) + 741: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 740 + Store 739(r043) 741 + 743: 38(fvec3) Load 43(inF0) + 744: 38(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 743 + Store 742(r044) 744 + 746: 38(fvec3) Load 43(inF0) + 747: 38(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 746 + 748: 38(fvec3) VectorTimesScalar 747 268 + Store 745(r045) 748 + 750: 38(fvec3) Load 43(inF0) + 751: 38(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 750 + Store 749(r046) 751 + 753: 38(fvec3) Load 43(inF0) + 754: 38(fvec3) Load 44(inF1) + 755: 38(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 753 754 + Store 752(r047) 755 + 757: 38(fvec3) Load 43(inF0) + 758: 38(fvec3) Load 44(inF1) + 759: 38(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 757 758 + Store 756(r048) 759 + 761: 38(fvec3) Load 43(inF0) + 762: 38(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 761 + Store 760(r049) 762 + 764: 38(fvec3) Load 43(inF0) + 765: 38(fvec3) Load 44(inF1) + 766: 38(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 764 765 + Store 763(r050) 766 + 768: 38(fvec3) Load 43(inF0) + 769: 38(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 768 + Store 767(r051) 769 + 771: 38(fvec3) Load 43(inF0) + 772: 38(fvec3) CompositeConstruct 289 289 289 + 773: 38(fvec3) FDiv 772 771 + Store 770(r052) 773 + 775: 38(fvec3) Load 43(inF0) + 776: 38(fvec3) Load 44(inF1) + 777: 38(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 775 776 + Store 774(r053) 777 + 779: 38(fvec3) Load 43(inF0) + 780: 38(fvec3) Load 44(inF1) + 781: 38(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 779 780 530 + Store 778(r054) 781 + 784: 40(ivec3) BitReverse 783 + Store 782(r055) 784 + 786: 38(fvec3) Load 43(inF0) + 787: 38(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 786 + Store 785(r056) 787 + 789: 38(fvec3) Load 43(inF0) + 790: 38(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 789 + Store 788(r057) 790 + 792: 38(fvec3) Load 43(inF0) + 793: 38(fvec3) CompositeConstruct 141 141 141 + 794: 38(fvec3) CompositeConstruct 289 289 289 + 795: 38(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 792 793 794 + Store 791(r058) 795 + 797: 38(fvec3) Load 43(inF0) + 798: 38(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 797 + Store 796(r059) 798 + 800: 38(fvec3) Load 43(inF0) + 801: 38(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 800 + Store 799(r060) 801 + 802: 38(fvec3) Load 43(inF0) + 803: 38(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 802 + Store 44(inF1) 803 + 804: 38(fvec3) Load 43(inF0) + 805: 38(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 804 + Store 45(inF2) 805 + 807: 38(fvec3) Load 43(inF0) + 808: 38(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 807 + Store 806(r061) 808 + 810: 38(fvec3) Load 43(inF0) + 811: 38(fvec3) Load 44(inF1) + 812: 38(fvec3) Load 45(inF2) + 813: 38(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 810 811 812 + Store 809(r062) 813 + 815: 38(fvec3) Load 43(inF0) + 816: 38(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 815 + Store 814(r063) 816 + 818: 38(fvec3) Load 43(inF0) + 819: 38(fvec3) Load 44(inF1) + 820: 38(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 818 819 + Store 817(r064) 820 + 822: 38(fvec3) Load 43(inF0) + 823: 38(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 822 + Store 821(r065) 823 + 825: 38(fvec3) Load 43(inF0) + 826: 38(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 825 + Store 824(r066) 826 + 828: 38(fvec3) Load 43(inF0) + 829: 38(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 828 + Store 827(r067) 829 + ReturnValue 831 + FunctionEnd +60(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 50(fvec4) Function None 54 + 55(inF0): 51(ptr) FunctionParameter + 56(inF1): 51(ptr) FunctionParameter + 57(inF2): 51(ptr) FunctionParameter + 58(inU0): 53(ptr) FunctionParameter + 59(inU1): 53(ptr) FunctionParameter + 61: Label + 834(r000): 138(ptr) Variable Function + 840(r001): 51(ptr) Variable Function + 843(r002): 51(ptr) Variable Function + 846(r003): 138(ptr) Variable Function + 850(r004): 51(ptr) Variable Function + 855(r005): 854(ptr) Variable Function + 858(r006): 53(ptr) Variable Function + 861(r007): 51(ptr) Variable Function + 864(r009): 51(ptr) Variable Function + 867(r010): 51(ptr) Variable Function + 871(r011): 51(ptr) Variable Function + 874(r012): 51(ptr) Variable Function + 892(r013): 51(ptr) Variable Function + 895(r014): 51(ptr) Variable Function + 898(r015): 53(ptr) Variable Function + 901(r016): 51(ptr) Variable Function + 904(r017): 51(ptr) Variable Function + 907(r018): 51(ptr) Variable Function + 910(r019): 51(ptr) Variable Function + 913(r020): 51(ptr) Variable Function + 916(r021): 51(ptr) Variable Function + 919(r022): 51(ptr) Variable Function + 922(r023): 7(ptr) Variable Function + 926(r024): 7(ptr) Variable Function + 930(r025): 51(ptr) Variable Function + 941(r029): 51(ptr) Variable Function + 944(r030): 51(ptr) Variable Function + 947(r031): 51(ptr) Variable Function + 952(r032): 53(ptr) Variable Function + 957(r033): 53(ptr) Variable Function + 959(r034): 51(ptr) Variable Function + 962(r036): 51(ptr) Variable Function + 966(r037): 51(ptr) Variable Function + 969(r039): 51(ptr) Variable Function + 973(r040): 972(ptr) Variable Function + 976(r041): 972(ptr) Variable Function + 979(r042): 51(ptr) Variable Function + 983(r039a): 51(ptr) Variable Function + 988(r043): 7(ptr) Variable Function + 991(r044): 51(ptr) Variable Function + 994(r045): 51(ptr) Variable Function + 998(r046): 51(ptr) Variable Function + 1001(r047): 51(ptr) Variable Function + 1005(r048): 51(ptr) Variable Function + 1009(r049): 51(ptr) Variable Function + 1012(r050): 51(ptr) Variable Function + 1016(r051): 51(ptr) Variable Function + 1019(r052): 51(ptr) Variable Function + 1023(r053): 51(ptr) Variable Function + 1027(r054): 51(ptr) Variable Function + 1031(r055): 53(ptr) Variable Function + 1034(r056): 51(ptr) Variable Function + 1037(r057): 51(ptr) Variable Function + 1040(r058): 51(ptr) Variable Function + 1045(r059): 51(ptr) Variable Function + 1048(r060): 51(ptr) Variable Function + 1055(r061): 51(ptr) Variable Function + 1058(r062): 51(ptr) Variable Function + 1063(r063): 51(ptr) Variable Function + 1066(r064): 51(ptr) Variable Function + 1070(r065): 51(ptr) Variable Function + 1073(r066): 51(ptr) Variable Function + 1076(r067): 51(ptr) Variable Function + 835: 50(fvec4) Load 55(inF0) + 838: 836(bvec4) FOrdNotEqual 835 837 + 839: 137(bool) All 838 + Store 834(r000) 839 + 841: 50(fvec4) Load 55(inF0) + 842: 50(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 841 + Store 840(r001) 842 + 844: 50(fvec4) Load 55(inF0) + 845: 50(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 844 + Store 843(r002) 845 + 847: 50(fvec4) Load 55(inF0) + 848: 836(bvec4) FOrdNotEqual 847 837 + 849: 137(bool) Any 848 + Store 846(r003) 849 + 851: 50(fvec4) Load 55(inF0) + 852: 50(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 851 + Store 850(r004) 852 + 856: 50(fvec4) Load 55(inF0) + 857: 853(ivec4) Bitcast 856 + Store 855(r005) 857 + 859: 50(fvec4) Load 55(inF0) + 860: 52(ivec4) Bitcast 859 + Store 858(r006) 860 + 862: 52(ivec4) Load 58(inU0) + 863: 50(fvec4) Bitcast 862 + Store 861(r007) 863 + 865: 50(fvec4) Load 55(inF0) + 866: 50(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 865 + Store 864(r009) 866 + 868: 50(fvec4) Load 55(inF0) + 869: 50(fvec4) Load 56(inF1) + 870: 50(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 868 869 + Store 867(r010) 870 + 872: 50(fvec4) Load 55(inF0) + 873: 50(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 872 + Store 871(r011) 873 + 875: 50(fvec4) Load 55(inF0) + 876: 50(fvec4) Load 56(inF1) + 877: 50(fvec4) Load 57(inF2) + 878: 50(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 875 876 877 + Store 874(r012) 878 + 879: 50(fvec4) Load 55(inF0) + 880: 836(bvec4) FOrdLessThan 879 837 + 881: 137(bool) Any 880 + SelectionMerge 883 None + BranchConditional 881 882 883 + 882: Label + Kill + 883: Label + 885: 52(ivec4) Load 58(inU0) + 887: 836(bvec4) ULessThan 885 886 + 888: 137(bool) Any 887 + SelectionMerge 890 None + BranchConditional 888 889 890 + 889: Label + Kill + 890: Label + 893: 50(fvec4) Load 55(inF0) + 894: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 893 + Store 892(r013) 894 + 896: 50(fvec4) Load 55(inF0) + 897: 50(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 896 + Store 895(r014) 897 + 900: 52(ivec4) BitCount 899 + Store 898(r015) 900 + 902: 50(fvec4) Load 55(inF0) + 903: 50(fvec4) DPdx 902 + Store 901(r016) 903 + 905: 50(fvec4) Load 55(inF0) + 906: 50(fvec4) DPdxCoarse 905 + Store 904(r017) 906 + 908: 50(fvec4) Load 55(inF0) + 909: 50(fvec4) DPdxFine 908 + Store 907(r018) 909 + 911: 50(fvec4) Load 55(inF0) + 912: 50(fvec4) DPdy 911 + Store 910(r019) 912 + 914: 50(fvec4) Load 55(inF0) + 915: 50(fvec4) DPdyCoarse 914 + Store 913(r020) 915 + 917: 50(fvec4) Load 55(inF0) + 918: 50(fvec4) DPdyFine 917 + Store 916(r021) 918 + 920: 50(fvec4) Load 55(inF0) + 921: 50(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 920 + Store 919(r022) 921 + 923: 50(fvec4) Load 55(inF0) + 924: 50(fvec4) Load 56(inF1) + 925: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 923 924 + Store 922(r023) 925 + 927: 50(fvec4) Load 55(inF0) + 928: 50(fvec4) Load 56(inF1) + 929: 6(float) Dot 927 928 + Store 926(r024) 929 + 931: 7(ptr) AccessChain 55(inF0) 533 + 932: 6(float) Load 931 + 933: 7(ptr) AccessChain 56(inF1) 533 + 934: 6(float) Load 933 + 935: 6(float) FMul 932 934 + 936: 7(ptr) AccessChain 55(inF0) 534 + 937: 6(float) Load 936 + 938: 7(ptr) AccessChain 56(inF1) 650 + 939: 6(float) Load 938 + 940: 50(fvec4) CompositeConstruct 289 935 937 939 + Store 930(r025) 940 + 942: 50(fvec4) Load 55(inF0) + 943: 50(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 942 + Store 941(r029) 943 + 945: 50(fvec4) Load 55(inF0) + 946: 50(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 945 + Store 944(r030) 946 + 948: 50(fvec4) Load 55(inF0) + 949: 50(fvec4) Load 56(inF1) + 950: 50(fvec4) Load 57(inF2) + 951: 50(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 948 949 950 + Store 947(r031) 951 + 956: 52(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 955 + Store 952(r032) 956 + 958: 52(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 955 + Store 957(r033) 958 + 960: 50(fvec4) Load 55(inF0) + 961: 50(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 960 + Store 959(r034) 961 + 963: 50(fvec4) Load 55(inF0) + 964: 50(fvec4) Load 56(inF1) + 965: 50(fvec4) FMod 963 964 + Store 962(r036) 965 + 967: 50(fvec4) Load 55(inF0) + 968: 50(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 967 + Store 966(r037) 968 + 970: 50(fvec4) Load 55(inF0) + 971: 50(fvec4) Fwidth 970 + Store 969(r039) 971 + 974: 50(fvec4) Load 55(inF0) + 975: 836(bvec4) IsInf 974 + Store 973(r040) 975 + 977: 50(fvec4) Load 55(inF0) + 978: 836(bvec4) IsNan 977 + Store 976(r041) 978 + 980: 50(fvec4) Load 55(inF0) + 981: 50(fvec4) Load 56(inF1) + 982: 50(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 980 981 + Store 979(r042) 982 + 984: 50(fvec4) Load 55(inF0) + 985: 50(fvec4) Load 56(inF1) + 986: 50(fvec4) Load 57(inF2) + 987: 50(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 984 985 986 + Store 983(r039a) 987 + 989: 50(fvec4) Load 55(inF0) + 990: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 989 + Store 988(r043) 990 + 992: 50(fvec4) Load 55(inF0) + 993: 50(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 992 + Store 991(r044) 993 + 995: 50(fvec4) Load 55(inF0) + 996: 50(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 995 + 997: 50(fvec4) VectorTimesScalar 996 268 + Store 994(r045) 997 + 999: 50(fvec4) Load 55(inF0) + 1000: 50(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 999 + Store 998(r046) 1000 + 1002: 50(fvec4) Load 55(inF0) + 1003: 50(fvec4) Load 56(inF1) + 1004: 50(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 1002 1003 + Store 1001(r047) 1004 + 1006: 50(fvec4) Load 55(inF0) + 1007: 50(fvec4) Load 56(inF1) + 1008: 50(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 1006 1007 + Store 1005(r048) 1008 + 1010: 50(fvec4) Load 55(inF0) + 1011: 50(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 1010 + Store 1009(r049) 1011 + 1013: 50(fvec4) Load 55(inF0) + 1014: 50(fvec4) Load 56(inF1) + 1015: 50(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 1013 1014 + Store 1012(r050) 1015 + 1017: 50(fvec4) Load 55(inF0) + 1018: 50(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1017 + Store 1016(r051) 1018 + 1020: 50(fvec4) Load 55(inF0) + 1021: 50(fvec4) CompositeConstruct 289 289 289 289 + 1022: 50(fvec4) FDiv 1021 1020 + Store 1019(r052) 1022 + 1024: 50(fvec4) Load 55(inF0) + 1025: 50(fvec4) Load 56(inF1) + 1026: 50(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1024 1025 + Store 1023(r053) 1026 + 1028: 50(fvec4) Load 55(inF0) + 1029: 50(fvec4) Load 56(inF1) + 1030: 50(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1028 1029 530 + Store 1027(r054) 1030 + 1033: 52(ivec4) BitReverse 1032 + Store 1031(r055) 1033 + 1035: 50(fvec4) Load 55(inF0) + 1036: 50(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1035 + Store 1034(r056) 1036 + 1038: 50(fvec4) Load 55(inF0) + 1039: 50(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1038 + Store 1037(r057) 1039 + 1041: 50(fvec4) Load 55(inF0) + 1042: 50(fvec4) CompositeConstruct 141 141 141 141 + 1043: 50(fvec4) CompositeConstruct 289 289 289 289 + 1044: 50(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1041 1042 1043 + Store 1040(r058) 1044 + 1046: 50(fvec4) Load 55(inF0) + 1047: 50(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1046 + Store 1045(r059) 1047 + 1049: 50(fvec4) Load 55(inF0) + 1050: 50(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1049 + Store 1048(r060) 1050 + 1051: 50(fvec4) Load 55(inF0) + 1052: 50(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1051 + Store 56(inF1) 1052 + 1053: 50(fvec4) Load 55(inF0) + 1054: 50(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1053 + Store 57(inF2) 1054 + 1056: 50(fvec4) Load 55(inF0) + 1057: 50(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1056 + Store 1055(r061) 1057 + 1059: 50(fvec4) Load 55(inF0) + 1060: 50(fvec4) Load 56(inF1) + 1061: 50(fvec4) Load 57(inF2) + 1062: 50(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1059 1060 1061 + Store 1058(r062) 1062 + 1064: 50(fvec4) Load 55(inF0) + 1065: 50(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1064 + Store 1063(r063) 1065 + 1067: 50(fvec4) Load 55(inF0) + 1068: 50(fvec4) Load 56(inF1) + 1069: 50(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1067 1068 + Store 1066(r064) 1069 + 1071: 50(fvec4) Load 55(inF0) + 1072: 50(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1071 + Store 1070(r065) 1072 + 1074: 50(fvec4) Load 55(inF0) + 1075: 50(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1074 + Store 1073(r066) 1075 + 1077: 50(fvec4) Load 55(inF0) + 1078: 50(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1077 + Store 1076(r067) 1078 + ReturnValue 1080 + FunctionEnd +68(PixelShaderFunction2x2(mf22;mf22;mf22;): 62 Function None 64 + 65(inF0): 63(ptr) FunctionParameter + 66(inF1): 63(ptr) FunctionParameter + 67(inF2): 63(ptr) FunctionParameter + 69: Label + 1083(r000): 138(ptr) Variable Function + 1088(r001): 63(ptr) Variable Function + 1093(r003): 138(ptr) Variable Function + 1097(r004): 63(ptr) Variable Function + 1100(r005): 63(ptr) Variable Function + 1103(r006): 63(ptr) Variable Function + 1107(r007): 63(ptr) Variable Function + 1117(r008): 63(ptr) Variable Function + 1122(r009): 63(ptr) Variable Function + 1125(r010): 63(ptr) Variable Function + 1128(r011): 63(ptr) Variable Function + 1131(r012): 63(ptr) Variable Function + 1134(r013): 63(ptr) Variable Function + 1137(r014): 63(ptr) Variable Function + 1140(r015): 63(ptr) Variable Function + 1143(r016): 63(ptr) Variable Function + 1146(r017): 63(ptr) Variable Function + 1149(r018): 7(ptr) Variable Function + 1152(r019): 63(ptr) Variable Function + 1155(R020): 63(ptr) Variable Function + 1158(r021): 63(ptr) Variable Function + 1161(r022): 63(ptr) Variable Function + 1171(r023): 63(ptr) Variable Function + 1174(r025): 63(ptr) Variable Function + 1177(r026): 63(ptr) Variable Function + 1181(r026a): 63(ptr) Variable Function + 1186(r027): 63(ptr) Variable Function + 1189(r028): 63(ptr) Variable Function + 1193(r029): 63(ptr) Variable Function + 1196(r030): 63(ptr) Variable Function + 1200(r031): 63(ptr) Variable Function + 1204(r032): 63(ptr) Variable Function + 1208(r033): 63(ptr) Variable Function + 1211(r034): 63(ptr) Variable Function + 1214(r035): 63(ptr) Variable Function + 1217(r036): 63(ptr) Variable Function + 1222(r037): 63(ptr) Variable Function + 1225(r038): 63(ptr) Variable Function + 1232(r039): 63(ptr) Variable Function + 1235(r049): 63(ptr) Variable Function + 1240(r041): 63(ptr) Variable Function + 1243(r042): 63(ptr) Variable Function + 1247(r043): 63(ptr) Variable Function + 1250(r044): 63(ptr) Variable Function + 1255(r046): 63(ptr) Variable Function + 1084: 62 Load 65(inF0) + 1086: 1085 FOrdNotEqual 1084 141 + 1087: 137(bool) All 1086 + Store 1083(r000) 1087 + 1089: 62 Load 65(inF0) + 1090: 62 ExtInst 1(GLSL.std.450) 4(FAbs) 1089 + Store 1088(r001) 1090 + 1091: 62 Load 65(inF0) + 1092: 62 ExtInst 1(GLSL.std.450) 17(Acos) 1091 + 1094: 62 Load 65(inF0) + 1095: 1085 FOrdNotEqual 1094 141 + 1096: 137(bool) Any 1095 + Store 1093(r003) 1096 + 1098: 62 Load 65(inF0) + 1099: 62 ExtInst 1(GLSL.std.450) 16(Asin) 1098 + Store 1097(r004) 1099 + 1101: 62 Load 65(inF0) + 1102: 62 ExtInst 1(GLSL.std.450) 18(Atan) 1101 + Store 1100(r005) 1102 + 1104: 62 Load 65(inF0) + 1105: 62 Load 66(inF1) + 1106: 62 ExtInst 1(GLSL.std.450) 25(Atan2) 1104 1105 + Store 1103(r006) 1106 + 1108: 62 Load 65(inF0) + 1109: 62 ExtInst 1(GLSL.std.450) 9(Ceil) 1108 + Store 1107(r007) 1109 + 1110: 62 Load 65(inF0) + 1112: 1085 FOrdLessThan 1110 1111 + 1113: 137(bool) Any 1112 + SelectionMerge 1115 None + BranchConditional 1113 1114 1115 + 1114: Label + Kill + 1115: Label + 1118: 62 Load 65(inF0) + 1119: 62 Load 66(inF1) + 1120: 62 Load 67(inF2) + 1121: 62 ExtInst 1(GLSL.std.450) 43(FClamp) 1118 1119 1120 + Store 1117(r008) 1121 + 1123: 62 Load 65(inF0) + 1124: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1123 + Store 1122(r009) 1124 + 1126: 62 Load 65(inF0) + 1127: 62 ExtInst 1(GLSL.std.450) 20(Cosh) 1126 + Store 1125(r010) 1127 + 1129: 62 Load 65(inF0) + 1130: 62 DPdx 1129 + Store 1128(r011) 1130 + 1132: 62 Load 65(inF0) + 1133: 62 DPdxCoarse 1132 + Store 1131(r012) 1133 + 1135: 62 Load 65(inF0) + 1136: 62 DPdxFine 1135 + Store 1134(r013) 1136 + 1138: 62 Load 65(inF0) + 1139: 62 DPdy 1138 + Store 1137(r014) 1139 + 1141: 62 Load 65(inF0) + 1142: 62 DPdyCoarse 1141 + Store 1140(r015) 1142 + 1144: 62 Load 65(inF0) + 1145: 62 DPdyFine 1144 + Store 1143(r016) 1145 + 1147: 62 Load 65(inF0) + 1148: 62 ExtInst 1(GLSL.std.450) 12(Degrees) 1147 + Store 1146(r017) 1148 + 1150: 62 Load 65(inF0) + 1151: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1150 + Store 1149(r018) 1151 + 1153: 62 Load 65(inF0) + 1154: 62 ExtInst 1(GLSL.std.450) 27(Exp) 1153 + Store 1152(r019) 1154 + 1156: 62 Load 65(inF0) + 1157: 62 ExtInst 1(GLSL.std.450) 29(Exp2) 1156 + Store 1155(R020) 1157 + 1159: 62 Load 65(inF0) + 1160: 62 ExtInst 1(GLSL.std.450) 8(Floor) 1159 + Store 1158(r021) 1160 + 1162: 62 Load 65(inF0) + 1163: 62 Load 66(inF1) + 1164: 26(fvec2) CompositeExtract 1162 0 + 1165: 26(fvec2) CompositeExtract 1163 0 + 1166: 26(fvec2) FMod 1164 1165 + 1167: 26(fvec2) CompositeExtract 1162 1 + 1168: 26(fvec2) CompositeExtract 1163 1 + 1169: 26(fvec2) FMod 1167 1168 + 1170: 62 CompositeConstruct 1166 1169 + Store 1161(r022) 1170 + 1172: 62 Load 65(inF0) + 1173: 62 ExtInst 1(GLSL.std.450) 10(Fract) 1172 + Store 1171(r023) 1173 + 1175: 62 Load 65(inF0) + 1176: 62 Fwidth 1175 + Store 1174(r025) 1176 + 1178: 62 Load 65(inF0) + 1179: 62 Load 66(inF1) + 1180: 62 ExtInst 1(GLSL.std.450) 53(Ldexp) 1178 1179 + Store 1177(r026) 1180 + 1182: 62 Load 65(inF0) + 1183: 62 Load 66(inF1) + 1184: 62 Load 67(inF2) + 1185: 62 ExtInst 1(GLSL.std.450) 46(FMix) 1182 1183 1184 + Store 1181(r026a) 1185 + 1187: 62 Load 65(inF0) + 1188: 62 ExtInst 1(GLSL.std.450) 28(Log) 1187 + Store 1186(r027) 1188 + 1190: 62 Load 65(inF0) + 1191: 62 ExtInst 1(GLSL.std.450) 30(Log2) 1190 + 1192: 62 MatrixTimesScalar 1191 268 + Store 1189(r028) 1192 + 1194: 62 Load 65(inF0) + 1195: 62 ExtInst 1(GLSL.std.450) 30(Log2) 1194 + Store 1193(r029) 1195 + 1197: 62 Load 65(inF0) + 1198: 62 Load 66(inF1) + 1199: 62 ExtInst 1(GLSL.std.450) 40(FMax) 1197 1198 + Store 1196(r030) 1199 + 1201: 62 Load 65(inF0) + 1202: 62 Load 66(inF1) + 1203: 62 ExtInst 1(GLSL.std.450) 37(FMin) 1201 1202 + Store 1200(r031) 1203 + 1205: 62 Load 65(inF0) + 1206: 62 Load 66(inF1) + 1207: 62 ExtInst 1(GLSL.std.450) 26(Pow) 1205 1206 + Store 1204(r032) 1207 + 1209: 62 Load 65(inF0) + 1210: 62 ExtInst 1(GLSL.std.450) 11(Radians) 1209 + Store 1208(r033) 1210 + 1212: 62 Load 65(inF0) + 1213: 62 ExtInst 1(GLSL.std.450) 2(RoundEven) 1212 + Store 1211(r034) 1213 + 1215: 62 Load 65(inF0) + 1216: 62 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1215 + Store 1214(r035) 1216 + 1218: 62 Load 65(inF0) + 1219: 26(fvec2) CompositeConstruct 141 141 + 1220: 26(fvec2) CompositeConstruct 289 289 + 1221: 62 ExtInst 1(GLSL.std.450) 43(FClamp) 1218 1219 1220 + Store 1217(r036) 1221 + 1223: 62 Load 65(inF0) + 1224: 62 ExtInst 1(GLSL.std.450) 6(FSign) 1223 + Store 1222(r037) 1224 + 1226: 62 Load 65(inF0) + 1227: 62 ExtInst 1(GLSL.std.450) 13(Sin) 1226 + Store 1225(r038) 1227 + 1228: 62 Load 65(inF0) + 1229: 62 ExtInst 1(GLSL.std.450) 13(Sin) 1228 + Store 66(inF1) 1229 + 1230: 62 Load 65(inF0) + 1231: 62 ExtInst 1(GLSL.std.450) 14(Cos) 1230 + Store 67(inF2) 1231 + 1233: 62 Load 65(inF0) + 1234: 62 ExtInst 1(GLSL.std.450) 19(Sinh) 1233 + Store 1232(r039) 1234 + 1236: 62 Load 65(inF0) + 1237: 62 Load 66(inF1) + 1238: 62 Load 67(inF2) + 1239: 62 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1236 1237 1238 + Store 1235(r049) 1239 + 1241: 62 Load 65(inF0) + 1242: 62 ExtInst 1(GLSL.std.450) 31(Sqrt) 1241 + Store 1240(r041) 1242 + 1244: 62 Load 65(inF0) + 1245: 62 Load 66(inF1) + 1246: 62 ExtInst 1(GLSL.std.450) 48(Step) 1244 1245 + Store 1243(r042) 1246 + 1248: 62 Load 65(inF0) + 1249: 62 ExtInst 1(GLSL.std.450) 15(Tan) 1248 + Store 1247(r043) 1249 + 1251: 62 Load 65(inF0) + 1252: 62 ExtInst 1(GLSL.std.450) 21(Tanh) 1251 + Store 1250(r044) 1252 + 1253: 62 Load 65(inF0) + 1254: 62 Transpose 1253 + 1256: 62 Load 65(inF0) + 1257: 62 ExtInst 1(GLSL.std.450) 3(Trunc) 1256 + Store 1255(r046) 1257 + ReturnValue 1259 + FunctionEnd +76(PixelShaderFunction3x3(mf33;mf33;mf33;): 70 Function None 72 + 73(inF0): 71(ptr) FunctionParameter + 74(inF1): 71(ptr) FunctionParameter + 75(inF2): 71(ptr) FunctionParameter + 77: Label + 1262(r000): 138(ptr) Variable Function + 1267(r001): 71(ptr) Variable Function + 1272(r003): 138(ptr) Variable Function + 1276(r004): 71(ptr) Variable Function + 1279(r005): 71(ptr) Variable Function + 1282(r006): 71(ptr) Variable Function + 1286(r007): 71(ptr) Variable Function + 1296(r008): 71(ptr) Variable Function + 1301(r009): 71(ptr) Variable Function + 1304(r010): 71(ptr) Variable Function + 1307(r011): 71(ptr) Variable Function + 1310(r012): 71(ptr) Variable Function + 1313(r013): 71(ptr) Variable Function + 1316(r014): 71(ptr) Variable Function + 1319(r015): 71(ptr) Variable Function + 1322(r016): 71(ptr) Variable Function + 1325(r017): 71(ptr) Variable Function + 1328(r018): 7(ptr) Variable Function + 1331(r019): 71(ptr) Variable Function + 1334(R020): 71(ptr) Variable Function + 1337(r021): 71(ptr) Variable Function + 1340(r022): 71(ptr) Variable Function + 1353(r023): 71(ptr) Variable Function + 1356(r025): 71(ptr) Variable Function + 1359(r026): 71(ptr) Variable Function + 1363(r026a): 71(ptr) Variable Function + 1368(r027): 71(ptr) Variable Function + 1371(r028): 71(ptr) Variable Function + 1375(r029): 71(ptr) Variable Function + 1378(r030): 71(ptr) Variable Function + 1382(r031): 71(ptr) Variable Function + 1386(r032): 71(ptr) Variable Function + 1390(r033): 71(ptr) Variable Function + 1393(r034): 71(ptr) Variable Function + 1396(r035): 71(ptr) Variable Function + 1399(r036): 71(ptr) Variable Function + 1404(r037): 71(ptr) Variable Function + 1407(r038): 71(ptr) Variable Function + 1414(r039): 71(ptr) Variable Function + 1417(r049): 71(ptr) Variable Function + 1422(r041): 71(ptr) Variable Function + 1425(r042): 71(ptr) Variable Function + 1429(r043): 71(ptr) Variable Function + 1432(r044): 71(ptr) Variable Function + 1437(r046): 71(ptr) Variable Function + 1263: 70 Load 73(inF0) + 1265: 1264 FOrdNotEqual 1263 141 + 1266: 137(bool) All 1265 + Store 1262(r000) 1266 + 1268: 70 Load 73(inF0) + 1269: 70 ExtInst 1(GLSL.std.450) 4(FAbs) 1268 + Store 1267(r001) 1269 + 1270: 70 Load 73(inF0) + 1271: 70 ExtInst 1(GLSL.std.450) 17(Acos) 1270 + 1273: 70 Load 73(inF0) + 1274: 1264 FOrdNotEqual 1273 141 + 1275: 137(bool) Any 1274 + Store 1272(r003) 1275 + 1277: 70 Load 73(inF0) + 1278: 70 ExtInst 1(GLSL.std.450) 16(Asin) 1277 + Store 1276(r004) 1278 + 1280: 70 Load 73(inF0) + 1281: 70 ExtInst 1(GLSL.std.450) 18(Atan) 1280 + Store 1279(r005) 1281 + 1283: 70 Load 73(inF0) + 1284: 70 Load 74(inF1) + 1285: 70 ExtInst 1(GLSL.std.450) 25(Atan2) 1283 1284 + Store 1282(r006) 1285 + 1287: 70 Load 73(inF0) + 1288: 70 ExtInst 1(GLSL.std.450) 9(Ceil) 1287 + Store 1286(r007) 1288 + 1289: 70 Load 73(inF0) + 1291: 1264 FOrdLessThan 1289 1290 + 1292: 137(bool) Any 1291 + SelectionMerge 1294 None + BranchConditional 1292 1293 1294 + 1293: Label + Kill + 1294: Label + 1297: 70 Load 73(inF0) + 1298: 70 Load 74(inF1) + 1299: 70 Load 75(inF2) + 1300: 70 ExtInst 1(GLSL.std.450) 43(FClamp) 1297 1298 1299 + Store 1296(r008) 1300 + 1302: 70 Load 73(inF0) + 1303: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1302 + Store 1301(r009) 1303 + 1305: 70 Load 73(inF0) + 1306: 70 ExtInst 1(GLSL.std.450) 20(Cosh) 1305 + Store 1304(r010) 1306 + 1308: 70 Load 73(inF0) + 1309: 70 DPdx 1308 + Store 1307(r011) 1309 + 1311: 70 Load 73(inF0) + 1312: 70 DPdxCoarse 1311 + Store 1310(r012) 1312 + 1314: 70 Load 73(inF0) + 1315: 70 DPdxFine 1314 + Store 1313(r013) 1315 + 1317: 70 Load 73(inF0) + 1318: 70 DPdy 1317 + Store 1316(r014) 1318 + 1320: 70 Load 73(inF0) + 1321: 70 DPdyCoarse 1320 + Store 1319(r015) 1321 + 1323: 70 Load 73(inF0) + 1324: 70 DPdyFine 1323 + Store 1322(r016) 1324 + 1326: 70 Load 73(inF0) + 1327: 70 ExtInst 1(GLSL.std.450) 12(Degrees) 1326 + Store 1325(r017) 1327 + 1329: 70 Load 73(inF0) + 1330: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1329 + Store 1328(r018) 1330 + 1332: 70 Load 73(inF0) + 1333: 70 ExtInst 1(GLSL.std.450) 27(Exp) 1332 + Store 1331(r019) 1333 + 1335: 70 Load 73(inF0) + 1336: 70 ExtInst 1(GLSL.std.450) 29(Exp2) 1335 + Store 1334(R020) 1336 + 1338: 70 Load 73(inF0) + 1339: 70 ExtInst 1(GLSL.std.450) 8(Floor) 1338 + Store 1337(r021) 1339 + 1341: 70 Load 73(inF0) + 1342: 70 Load 74(inF1) + 1343: 38(fvec3) CompositeExtract 1341 0 + 1344: 38(fvec3) CompositeExtract 1342 0 + 1345: 38(fvec3) FMod 1343 1344 + 1346: 38(fvec3) CompositeExtract 1341 1 + 1347: 38(fvec3) CompositeExtract 1342 1 + 1348: 38(fvec3) FMod 1346 1347 + 1349: 38(fvec3) CompositeExtract 1341 2 + 1350: 38(fvec3) CompositeExtract 1342 2 + 1351: 38(fvec3) FMod 1349 1350 + 1352: 70 CompositeConstruct 1345 1348 1351 + Store 1340(r022) 1352 + 1354: 70 Load 73(inF0) + 1355: 70 ExtInst 1(GLSL.std.450) 10(Fract) 1354 + Store 1353(r023) 1355 + 1357: 70 Load 73(inF0) + 1358: 70 Fwidth 1357 + Store 1356(r025) 1358 + 1360: 70 Load 73(inF0) + 1361: 70 Load 74(inF1) + 1362: 70 ExtInst 1(GLSL.std.450) 53(Ldexp) 1360 1361 + Store 1359(r026) 1362 + 1364: 70 Load 73(inF0) + 1365: 70 Load 74(inF1) + 1366: 70 Load 75(inF2) + 1367: 70 ExtInst 1(GLSL.std.450) 46(FMix) 1364 1365 1366 + Store 1363(r026a) 1367 + 1369: 70 Load 73(inF0) + 1370: 70 ExtInst 1(GLSL.std.450) 28(Log) 1369 + Store 1368(r027) 1370 + 1372: 70 Load 73(inF0) + 1373: 70 ExtInst 1(GLSL.std.450) 30(Log2) 1372 + 1374: 70 MatrixTimesScalar 1373 268 + Store 1371(r028) 1374 + 1376: 70 Load 73(inF0) + 1377: 70 ExtInst 1(GLSL.std.450) 30(Log2) 1376 + Store 1375(r029) 1377 + 1379: 70 Load 73(inF0) + 1380: 70 Load 74(inF1) + 1381: 70 ExtInst 1(GLSL.std.450) 40(FMax) 1379 1380 + Store 1378(r030) 1381 + 1383: 70 Load 73(inF0) + 1384: 70 Load 74(inF1) + 1385: 70 ExtInst 1(GLSL.std.450) 37(FMin) 1383 1384 + Store 1382(r031) 1385 + 1387: 70 Load 73(inF0) + 1388: 70 Load 74(inF1) + 1389: 70 ExtInst 1(GLSL.std.450) 26(Pow) 1387 1388 + Store 1386(r032) 1389 + 1391: 70 Load 73(inF0) + 1392: 70 ExtInst 1(GLSL.std.450) 11(Radians) 1391 + Store 1390(r033) 1392 + 1394: 70 Load 73(inF0) + 1395: 70 ExtInst 1(GLSL.std.450) 2(RoundEven) 1394 + Store 1393(r034) 1395 + 1397: 70 Load 73(inF0) + 1398: 70 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1397 + Store 1396(r035) 1398 + 1400: 70 Load 73(inF0) + 1401: 38(fvec3) CompositeConstruct 141 141 141 + 1402: 38(fvec3) CompositeConstruct 289 289 289 + 1403: 70 ExtInst 1(GLSL.std.450) 43(FClamp) 1400 1401 1402 + Store 1399(r036) 1403 + 1405: 70 Load 73(inF0) + 1406: 70 ExtInst 1(GLSL.std.450) 6(FSign) 1405 + Store 1404(r037) 1406 + 1408: 70 Load 73(inF0) + 1409: 70 ExtInst 1(GLSL.std.450) 13(Sin) 1408 + Store 1407(r038) 1409 + 1410: 70 Load 73(inF0) + 1411: 70 ExtInst 1(GLSL.std.450) 13(Sin) 1410 + Store 74(inF1) 1411 + 1412: 70 Load 73(inF0) + 1413: 70 ExtInst 1(GLSL.std.450) 14(Cos) 1412 + Store 75(inF2) 1413 + 1415: 70 Load 73(inF0) + 1416: 70 ExtInst 1(GLSL.std.450) 19(Sinh) 1415 + Store 1414(r039) 1416 + 1418: 70 Load 73(inF0) + 1419: 70 Load 74(inF1) + 1420: 70 Load 75(inF2) + 1421: 70 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1418 1419 1420 + Store 1417(r049) 1421 + 1423: 70 Load 73(inF0) + 1424: 70 ExtInst 1(GLSL.std.450) 31(Sqrt) 1423 + Store 1422(r041) 1424 + 1426: 70 Load 73(inF0) + 1427: 70 Load 74(inF1) + 1428: 70 ExtInst 1(GLSL.std.450) 48(Step) 1426 1427 + Store 1425(r042) 1428 + 1430: 70 Load 73(inF0) + 1431: 70 ExtInst 1(GLSL.std.450) 15(Tan) 1430 + Store 1429(r043) 1431 + 1433: 70 Load 73(inF0) + 1434: 70 ExtInst 1(GLSL.std.450) 21(Tanh) 1433 + Store 1432(r044) 1434 + 1435: 70 Load 73(inF0) + 1436: 70 Transpose 1435 + 1438: 70 Load 73(inF0) + 1439: 70 ExtInst 1(GLSL.std.450) 3(Trunc) 1438 + Store 1437(r046) 1439 + ReturnValue 1441 + FunctionEnd +84(PixelShaderFunction4x4(mf44;mf44;mf44;): 78 Function None 80 + 81(inF0): 79(ptr) FunctionParameter + 82(inF1): 79(ptr) FunctionParameter + 83(inF2): 79(ptr) FunctionParameter + 85: Label + 1444(r000): 138(ptr) Variable Function + 1449(r001): 79(ptr) Variable Function + 1454(r003): 138(ptr) Variable Function + 1458(r004): 79(ptr) Variable Function + 1461(r005): 79(ptr) Variable Function + 1464(r006): 79(ptr) Variable Function + 1468(r007): 79(ptr) Variable Function + 1478(r008): 79(ptr) Variable Function + 1483(r009): 79(ptr) Variable Function + 1486(r010): 79(ptr) Variable Function + 1489(r011): 79(ptr) Variable Function + 1492(r012): 79(ptr) Variable Function + 1495(r013): 79(ptr) Variable Function + 1498(r014): 79(ptr) Variable Function + 1501(r015): 79(ptr) Variable Function + 1504(r016): 79(ptr) Variable Function + 1507(r017): 79(ptr) Variable Function + 1510(r018): 7(ptr) Variable Function + 1513(r019): 79(ptr) Variable Function + 1516(R020): 79(ptr) Variable Function + 1519(r021): 79(ptr) Variable Function + 1522(r022): 79(ptr) Variable Function + 1538(r023): 79(ptr) Variable Function + 1541(r025): 79(ptr) Variable Function + 1544(r026): 79(ptr) Variable Function + 1548(r026a): 79(ptr) Variable Function + 1553(r027): 79(ptr) Variable Function + 1556(r028): 79(ptr) Variable Function + 1560(r029): 79(ptr) Variable Function + 1563(r030): 79(ptr) Variable Function + 1567(r031): 79(ptr) Variable Function + 1571(r032): 79(ptr) Variable Function + 1575(r033): 79(ptr) Variable Function + 1578(r034): 79(ptr) Variable Function + 1581(r035): 79(ptr) Variable Function + 1584(r036): 79(ptr) Variable Function + 1589(r037): 79(ptr) Variable Function + 1592(r038): 79(ptr) Variable Function + 1599(r039): 79(ptr) Variable Function + 1602(r049): 79(ptr) Variable Function + 1607(r041): 79(ptr) Variable Function + 1610(r042): 79(ptr) Variable Function + 1614(r043): 79(ptr) Variable Function + 1617(r044): 79(ptr) Variable Function + 1622(r046): 79(ptr) Variable Function + 1445: 78 Load 81(inF0) + 1447: 1446 FOrdNotEqual 1445 141 + 1448: 137(bool) All 1447 + Store 1444(r000) 1448 + 1450: 78 Load 81(inF0) + 1451: 78 ExtInst 1(GLSL.std.450) 4(FAbs) 1450 + Store 1449(r001) 1451 + 1452: 78 Load 81(inF0) + 1453: 78 ExtInst 1(GLSL.std.450) 17(Acos) 1452 + 1455: 78 Load 81(inF0) + 1456: 1446 FOrdNotEqual 1455 141 + 1457: 137(bool) Any 1456 + Store 1454(r003) 1457 + 1459: 78 Load 81(inF0) + 1460: 78 ExtInst 1(GLSL.std.450) 16(Asin) 1459 + Store 1458(r004) 1460 + 1462: 78 Load 81(inF0) + 1463: 78 ExtInst 1(GLSL.std.450) 18(Atan) 1462 + Store 1461(r005) 1463 + 1465: 78 Load 81(inF0) + 1466: 78 Load 82(inF1) + 1467: 78 ExtInst 1(GLSL.std.450) 25(Atan2) 1465 1466 + Store 1464(r006) 1467 + 1469: 78 Load 81(inF0) + 1470: 78 ExtInst 1(GLSL.std.450) 9(Ceil) 1469 + Store 1468(r007) 1470 + 1471: 78 Load 81(inF0) + 1473: 1446 FOrdLessThan 1471 1472 + 1474: 137(bool) Any 1473 + SelectionMerge 1476 None + BranchConditional 1474 1475 1476 + 1475: Label + Kill + 1476: Label + 1479: 78 Load 81(inF0) + 1480: 78 Load 82(inF1) + 1481: 78 Load 83(inF2) + 1482: 78 ExtInst 1(GLSL.std.450) 43(FClamp) 1479 1480 1481 + Store 1478(r008) 1482 + 1484: 78 Load 81(inF0) + 1485: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1484 + Store 1483(r009) 1485 + 1487: 78 Load 81(inF0) + 1488: 78 ExtInst 1(GLSL.std.450) 20(Cosh) 1487 + Store 1486(r010) 1488 + 1490: 78 Load 81(inF0) + 1491: 78 DPdx 1490 + Store 1489(r011) 1491 + 1493: 78 Load 81(inF0) + 1494: 78 DPdxCoarse 1493 + Store 1492(r012) 1494 + 1496: 78 Load 81(inF0) + 1497: 78 DPdxFine 1496 + Store 1495(r013) 1497 + 1499: 78 Load 81(inF0) + 1500: 78 DPdy 1499 + Store 1498(r014) 1500 + 1502: 78 Load 81(inF0) + 1503: 78 DPdyCoarse 1502 + Store 1501(r015) 1503 + 1505: 78 Load 81(inF0) + 1506: 78 DPdyFine 1505 + Store 1504(r016) 1506 + 1508: 78 Load 81(inF0) + 1509: 78 ExtInst 1(GLSL.std.450) 12(Degrees) 1508 + Store 1507(r017) 1509 + 1511: 78 Load 81(inF0) + 1512: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1511 + Store 1510(r018) 1512 + 1514: 78 Load 81(inF0) + 1515: 78 ExtInst 1(GLSL.std.450) 27(Exp) 1514 + Store 1513(r019) 1515 + 1517: 78 Load 81(inF0) + 1518: 78 ExtInst 1(GLSL.std.450) 29(Exp2) 1517 + Store 1516(R020) 1518 + 1520: 78 Load 81(inF0) + 1521: 78 ExtInst 1(GLSL.std.450) 8(Floor) 1520 + Store 1519(r021) 1521 + 1523: 78 Load 81(inF0) + 1524: 78 Load 82(inF1) + 1525: 50(fvec4) CompositeExtract 1523 0 + 1526: 50(fvec4) CompositeExtract 1524 0 + 1527: 50(fvec4) FMod 1525 1526 + 1528: 50(fvec4) CompositeExtract 1523 1 + 1529: 50(fvec4) CompositeExtract 1524 1 + 1530: 50(fvec4) FMod 1528 1529 + 1531: 50(fvec4) CompositeExtract 1523 2 + 1532: 50(fvec4) CompositeExtract 1524 2 + 1533: 50(fvec4) FMod 1531 1532 + 1534: 50(fvec4) CompositeExtract 1523 3 + 1535: 50(fvec4) CompositeExtract 1524 3 + 1536: 50(fvec4) FMod 1534 1535 + 1537: 78 CompositeConstruct 1527 1530 1533 1536 + Store 1522(r022) 1537 + 1539: 78 Load 81(inF0) + 1540: 78 ExtInst 1(GLSL.std.450) 10(Fract) 1539 + Store 1538(r023) 1540 + 1542: 78 Load 81(inF0) + 1543: 78 Fwidth 1542 + Store 1541(r025) 1543 + 1545: 78 Load 81(inF0) + 1546: 78 Load 82(inF1) + 1547: 78 ExtInst 1(GLSL.std.450) 53(Ldexp) 1545 1546 + Store 1544(r026) 1547 + 1549: 78 Load 81(inF0) + 1550: 78 Load 82(inF1) + 1551: 78 Load 83(inF2) + 1552: 78 ExtInst 1(GLSL.std.450) 46(FMix) 1549 1550 1551 + Store 1548(r026a) 1552 + 1554: 78 Load 81(inF0) + 1555: 78 ExtInst 1(GLSL.std.450) 28(Log) 1554 + Store 1553(r027) 1555 + 1557: 78 Load 81(inF0) + 1558: 78 ExtInst 1(GLSL.std.450) 30(Log2) 1557 + 1559: 78 MatrixTimesScalar 1558 268 + Store 1556(r028) 1559 + 1561: 78 Load 81(inF0) + 1562: 78 ExtInst 1(GLSL.std.450) 30(Log2) 1561 + Store 1560(r029) 1562 + 1564: 78 Load 81(inF0) + 1565: 78 Load 82(inF1) + 1566: 78 ExtInst 1(GLSL.std.450) 40(FMax) 1564 1565 + Store 1563(r030) 1566 + 1568: 78 Load 81(inF0) + 1569: 78 Load 82(inF1) + 1570: 78 ExtInst 1(GLSL.std.450) 37(FMin) 1568 1569 + Store 1567(r031) 1570 + 1572: 78 Load 81(inF0) + 1573: 78 Load 82(inF1) + 1574: 78 ExtInst 1(GLSL.std.450) 26(Pow) 1572 1573 + Store 1571(r032) 1574 + 1576: 78 Load 81(inF0) + 1577: 78 ExtInst 1(GLSL.std.450) 11(Radians) 1576 + Store 1575(r033) 1577 + 1579: 78 Load 81(inF0) + 1580: 78 ExtInst 1(GLSL.std.450) 2(RoundEven) 1579 + Store 1578(r034) 1580 + 1582: 78 Load 81(inF0) + 1583: 78 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1582 + Store 1581(r035) 1583 + 1585: 78 Load 81(inF0) + 1586: 50(fvec4) CompositeConstruct 141 141 141 141 + 1587: 50(fvec4) CompositeConstruct 289 289 289 289 + 1588: 78 ExtInst 1(GLSL.std.450) 43(FClamp) 1585 1586 1587 + Store 1584(r036) 1588 + 1590: 78 Load 81(inF0) + 1591: 78 ExtInst 1(GLSL.std.450) 6(FSign) 1590 + Store 1589(r037) 1591 + 1593: 78 Load 81(inF0) + 1594: 78 ExtInst 1(GLSL.std.450) 13(Sin) 1593 + Store 1592(r038) 1594 + 1595: 78 Load 81(inF0) + 1596: 78 ExtInst 1(GLSL.std.450) 13(Sin) 1595 + Store 82(inF1) 1596 + 1597: 78 Load 81(inF0) + 1598: 78 ExtInst 1(GLSL.std.450) 14(Cos) 1597 + Store 83(inF2) 1598 + 1600: 78 Load 81(inF0) + 1601: 78 ExtInst 1(GLSL.std.450) 19(Sinh) 1600 + Store 1599(r039) 1601 + 1603: 78 Load 81(inF0) + 1604: 78 Load 82(inF1) + 1605: 78 Load 83(inF2) + 1606: 78 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1603 1604 1605 + Store 1602(r049) 1606 + 1608: 78 Load 81(inF0) + 1609: 78 ExtInst 1(GLSL.std.450) 31(Sqrt) 1608 + Store 1607(r041) 1609 + 1611: 78 Load 81(inF0) + 1612: 78 Load 82(inF1) + 1613: 78 ExtInst 1(GLSL.std.450) 48(Step) 1611 1612 + Store 1610(r042) 1613 + 1615: 78 Load 81(inF0) + 1616: 78 ExtInst 1(GLSL.std.450) 15(Tan) 1615 + Store 1614(r043) 1616 + 1618: 78 Load 81(inF0) + 1619: 78 ExtInst 1(GLSL.std.450) 21(Tanh) 1618 + Store 1617(r044) 1619 + 1620: 78 Load 81(inF0) + 1621: 78 Transpose 1620 + 1623: 78 Load 81(inF0) + 1624: 78 ExtInst 1(GLSL.std.450) 3(Trunc) 1623 + Store 1622(r046) 1624 + ReturnValue 1626 + FunctionEnd +93(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 86 + 87(inF0): 7(ptr) FunctionParameter + 88(inF1): 7(ptr) FunctionParameter + 89(inFV0): 27(ptr) FunctionParameter + 90(inFV1): 27(ptr) FunctionParameter + 91(inFM0): 63(ptr) FunctionParameter + 92(inFM1): 63(ptr) FunctionParameter + 94: Label + 1629(r0): 7(ptr) Variable Function + 1633(r1): 27(ptr) Variable Function + 1637(r2): 27(ptr) Variable Function + 1641(r3): 7(ptr) Variable Function + 1645(r4): 27(ptr) Variable Function + 1649(r5): 27(ptr) Variable Function + 1653(r6): 63(ptr) Variable Function + 1657(r7): 63(ptr) Variable Function + 1661(r8): 63(ptr) Variable Function + 1630: 6(float) Load 88(inF1) + 1631: 6(float) Load 87(inF0) + 1632: 6(float) FMul 1630 1631 + Store 1629(r0) 1632 + 1634: 6(float) Load 87(inF0) + 1635: 26(fvec2) Load 89(inFV0) + 1636: 26(fvec2) VectorTimesScalar 1635 1634 + Store 1633(r1) 1636 + 1638: 26(fvec2) Load 89(inFV0) + 1639: 6(float) Load 87(inF0) + 1640: 26(fvec2) VectorTimesScalar 1638 1639 + Store 1637(r2) 1640 + 1642: 26(fvec2) Load 89(inFV0) + 1643: 26(fvec2) Load 90(inFV1) + 1644: 6(float) Dot 1642 1643 + Store 1641(r3) 1644 + 1646: 26(fvec2) Load 89(inFV0) + 1647: 62 Load 91(inFM0) + 1648: 26(fvec2) VectorTimesMatrix 1646 1647 + Store 1645(r4) 1648 + 1650: 62 Load 91(inFM0) + 1651: 26(fvec2) Load 89(inFV0) + 1652: 26(fvec2) MatrixTimesVector 1650 1651 + Store 1649(r5) 1652 + 1654: 6(float) Load 87(inF0) + 1655: 62 Load 91(inFM0) + 1656: 62 MatrixTimesScalar 1655 1654 + Store 1653(r6) 1656 + 1658: 62 Load 91(inFM0) + 1659: 6(float) Load 87(inF0) + 1660: 62 MatrixTimesScalar 1658 1659 + Store 1657(r7) 1660 + 1662: 62 Load 92(inFM1) + 1663: 62 Load 91(inFM0) + 1664: 62 MatrixTimesMatrix 1662 1663 + Store 1661(r8) 1664 + Return + FunctionEnd +102(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 95 + 96(inF0): 7(ptr) FunctionParameter + 97(inF1): 7(ptr) FunctionParameter + 98(inFV0): 39(ptr) FunctionParameter + 99(inFV1): 39(ptr) FunctionParameter + 100(inFM0): 71(ptr) FunctionParameter + 101(inFM1): 71(ptr) FunctionParameter + 103: Label + 1665(r0): 7(ptr) Variable Function + 1669(r1): 39(ptr) Variable Function + 1673(r2): 39(ptr) Variable Function + 1677(r3): 7(ptr) Variable Function + 1681(r4): 39(ptr) Variable Function + 1685(r5): 39(ptr) Variable Function + 1689(r6): 71(ptr) Variable Function + 1693(r7): 71(ptr) Variable Function + 1697(r8): 71(ptr) Variable Function + 1666: 6(float) Load 97(inF1) + 1667: 6(float) Load 96(inF0) + 1668: 6(float) FMul 1666 1667 + Store 1665(r0) 1668 + 1670: 6(float) Load 96(inF0) + 1671: 38(fvec3) Load 98(inFV0) + 1672: 38(fvec3) VectorTimesScalar 1671 1670 + Store 1669(r1) 1672 + 1674: 38(fvec3) Load 98(inFV0) + 1675: 6(float) Load 96(inF0) + 1676: 38(fvec3) VectorTimesScalar 1674 1675 + Store 1673(r2) 1676 + 1678: 38(fvec3) Load 98(inFV0) + 1679: 38(fvec3) Load 99(inFV1) + 1680: 6(float) Dot 1678 1679 + Store 1677(r3) 1680 + 1682: 38(fvec3) Load 98(inFV0) + 1683: 70 Load 100(inFM0) + 1684: 38(fvec3) VectorTimesMatrix 1682 1683 + Store 1681(r4) 1684 + 1686: 70 Load 100(inFM0) + 1687: 38(fvec3) Load 98(inFV0) + 1688: 38(fvec3) MatrixTimesVector 1686 1687 + Store 1685(r5) 1688 + 1690: 6(float) Load 96(inF0) + 1691: 70 Load 100(inFM0) + 1692: 70 MatrixTimesScalar 1691 1690 + Store 1689(r6) 1692 + 1694: 70 Load 100(inFM0) + 1695: 6(float) Load 96(inF0) + 1696: 70 MatrixTimesScalar 1694 1695 + Store 1693(r7) 1696 + 1698: 70 Load 101(inFM1) + 1699: 70 Load 100(inFM0) + 1700: 70 MatrixTimesMatrix 1698 1699 + Store 1697(r8) 1700 + Return + FunctionEnd +111(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 104 + 105(inF0): 7(ptr) FunctionParameter + 106(inF1): 7(ptr) FunctionParameter + 107(inFV0): 51(ptr) FunctionParameter + 108(inFV1): 51(ptr) FunctionParameter + 109(inFM0): 79(ptr) FunctionParameter + 110(inFM1): 79(ptr) FunctionParameter + 112: Label + 1701(r0): 7(ptr) Variable Function + 1705(r1): 51(ptr) Variable Function + 1709(r2): 51(ptr) Variable Function + 1713(r3): 7(ptr) Variable Function + 1717(r4): 51(ptr) Variable Function + 1721(r5): 51(ptr) Variable Function + 1725(r6): 79(ptr) Variable Function + 1729(r7): 79(ptr) Variable Function + 1733(r8): 79(ptr) Variable Function + 1702: 6(float) Load 106(inF1) + 1703: 6(float) Load 105(inF0) + 1704: 6(float) FMul 1702 1703 + Store 1701(r0) 1704 + 1706: 6(float) Load 105(inF0) + 1707: 50(fvec4) Load 107(inFV0) + 1708: 50(fvec4) VectorTimesScalar 1707 1706 + Store 1705(r1) 1708 + 1710: 50(fvec4) Load 107(inFV0) + 1711: 6(float) Load 105(inF0) + 1712: 50(fvec4) VectorTimesScalar 1710 1711 + Store 1709(r2) 1712 + 1714: 50(fvec4) Load 107(inFV0) + 1715: 50(fvec4) Load 108(inFV1) + 1716: 6(float) Dot 1714 1715 + Store 1713(r3) 1716 + 1718: 50(fvec4) Load 107(inFV0) + 1719: 78 Load 109(inFM0) + 1720: 50(fvec4) VectorTimesMatrix 1718 1719 + Store 1717(r4) 1720 + 1722: 78 Load 109(inFM0) + 1723: 50(fvec4) Load 107(inFV0) + 1724: 50(fvec4) MatrixTimesVector 1722 1723 + Store 1721(r5) 1724 + 1726: 6(float) Load 105(inF0) + 1727: 78 Load 109(inFM0) + 1728: 78 MatrixTimesScalar 1727 1726 + Store 1725(r6) 1728 + 1730: 78 Load 109(inFM0) + 1731: 6(float) Load 105(inF0) + 1732: 78 MatrixTimesScalar 1730 1731 + Store 1729(r7) 1732 + 1734: 78 Load 110(inFM1) + 1735: 78 Load 109(inFM0) + 1736: 78 MatrixTimesMatrix 1734 1735 + Store 1733(r8) 1736 + Return + FunctionEnd +131(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 121 + 122(inF0): 7(ptr) FunctionParameter + 123(inF1): 7(ptr) FunctionParameter + 124(inFV2): 27(ptr) FunctionParameter + 125(inFV3): 39(ptr) FunctionParameter + 126(inFM2x3): 114(ptr) FunctionParameter + 127(inFM3x2): 116(ptr) FunctionParameter + 128(inFM3x3): 71(ptr) FunctionParameter + 129(inFM3x4): 118(ptr) FunctionParameter + 130(inFM2x4): 120(ptr) FunctionParameter + 132: Label + 1737(r00): 7(ptr) Variable Function + 1741(r01): 27(ptr) Variable Function + 1745(r02): 39(ptr) Variable Function + 1749(r03): 27(ptr) Variable Function + 1753(r04): 39(ptr) Variable Function + 1757(r05): 7(ptr) Variable Function + 1761(r06): 7(ptr) Variable Function + 1765(r07): 39(ptr) Variable Function + 1769(r08): 27(ptr) Variable Function + 1773(r09): 27(ptr) Variable Function + 1777(r10): 39(ptr) Variable Function + 1781(r11): 114(ptr) Variable Function + 1785(r12): 116(ptr) Variable Function + 1789(r13): 63(ptr) Variable Function + 1793(r14): 114(ptr) Variable Function + 1797(r15): 120(ptr) Variable Function + 1801(r16): 118(ptr) Variable Function + 1738: 6(float) Load 123(inF1) + 1739: 6(float) Load 122(inF0) + 1740: 6(float) FMul 1738 1739 + Store 1737(r00) 1740 + 1742: 6(float) Load 122(inF0) + 1743: 26(fvec2) Load 124(inFV2) + 1744: 26(fvec2) VectorTimesScalar 1743 1742 + Store 1741(r01) 1744 + 1746: 6(float) Load 122(inF0) + 1747: 38(fvec3) Load 125(inFV3) + 1748: 38(fvec3) VectorTimesScalar 1747 1746 + Store 1745(r02) 1748 + 1750: 26(fvec2) Load 124(inFV2) + 1751: 6(float) Load 122(inF0) + 1752: 26(fvec2) VectorTimesScalar 1750 1751 + Store 1749(r03) 1752 + 1754: 38(fvec3) Load 125(inFV3) + 1755: 6(float) Load 122(inF0) + 1756: 38(fvec3) VectorTimesScalar 1754 1755 + Store 1753(r04) 1756 + 1758: 26(fvec2) Load 124(inFV2) + 1759: 26(fvec2) Load 124(inFV2) + 1760: 6(float) Dot 1758 1759 + Store 1757(r05) 1760 + 1762: 38(fvec3) Load 125(inFV3) + 1763: 38(fvec3) Load 125(inFV3) + 1764: 6(float) Dot 1762 1763 + Store 1761(r06) 1764 + 1766: 113 Load 126(inFM2x3) + 1767: 26(fvec2) Load 124(inFV2) + 1768: 38(fvec3) MatrixTimesVector 1766 1767 + Store 1765(r07) 1768 + 1770: 115 Load 127(inFM3x2) + 1771: 38(fvec3) Load 125(inFV3) + 1772: 26(fvec2) MatrixTimesVector 1770 1771 + Store 1769(r08) 1772 + 1774: 38(fvec3) Load 125(inFV3) + 1775: 113 Load 126(inFM2x3) + 1776: 26(fvec2) VectorTimesMatrix 1774 1775 + Store 1773(r09) 1776 + 1778: 26(fvec2) Load 124(inFV2) + 1779: 115 Load 127(inFM3x2) + 1780: 38(fvec3) VectorTimesMatrix 1778 1779 + Store 1777(r10) 1780 + 1782: 6(float) Load 122(inF0) + 1783: 113 Load 126(inFM2x3) + 1784: 113 MatrixTimesScalar 1783 1782 + Store 1781(r11) 1784 + 1786: 6(float) Load 122(inF0) + 1787: 115 Load 127(inFM3x2) + 1788: 115 MatrixTimesScalar 1787 1786 + Store 1785(r12) 1788 + 1790: 115 Load 127(inFM3x2) + 1791: 113 Load 126(inFM2x3) + 1792: 62 MatrixTimesMatrix 1790 1791 + Store 1789(r13) 1792 + 1794: 70 Load 128(inFM3x3) + 1795: 113 Load 126(inFM2x3) + 1796: 113 MatrixTimesMatrix 1794 1795 + Store 1793(r14) 1796 + 1798: 117 Load 129(inFM3x4) + 1799: 113 Load 126(inFM2x3) + 1800: 119 MatrixTimesMatrix 1798 1799 + Store 1797(r15) 1800 + 1802: 119 Load 130(inFM2x4) + 1803: 115 Load 127(inFM3x2) + 1804: 117 MatrixTimesMatrix 1802 1803 + Store 1801(r16) 1804 + Return + FunctionEnd + 135(@main():133(PS_OUTPUT) Function None 134 + 136: Label + 1806(ps_output): 1805(ptr) Variable Function + 1808: 51(ptr) AccessChain 1806(ps_output) 187 + Store 1808 1807 + 1809:133(PS_OUTPUT) Load 1806(ps_output) + ReturnValue 1809 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out new file mode 100644 index 0000000000..8b1454b872 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -0,0 +1,204 @@ +hlsl.intrinsics.lit.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(f1;f1;f1; ( temp void) +0:2 Function Parameters: +0:2 'n_dot_l' ( in float) +0:2 'n_dot_h' ( in float) +0:2 'm' ( in float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:3 'r0' ( temp 4-component vector of float) +0:3 Construct vec4 ( temp 4-component vector of float) +0:3 Constant: +0:3 1.000000 +0:3 max ( temp float) +0:3 'n_dot_l' ( in float) +0:3 Constant: +0:3 0.000000 +0:3 Test condition and select ( temp float): no shortcircuit +0:3 Condition +0:3 Compare Less Than ( temp bool) +0:3 min ( temp float) +0:3 'n_dot_l' ( in float) +0:3 'n_dot_h' ( in float) +0:3 Constant: +0:3 0.000000 +0:3 true case +0:3 Constant: +0:3 0.000000 +0:3 false case +0:3 component-wise multiply ( temp float) +0:3 'n_dot_h' ( in float) +0:3 'm' ( in float) +0:3 Constant: +0:3 1.000000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? 'n_dot_l' ( temp float) +0:? 'n_dot_l' (layout( location=0) in float) +0:2 move second child to first child ( temp float) +0:? 'n_dot_h' ( temp float) +0:? 'n_dot_h' (layout( location=1) in float) +0:2 move second child to first child ( temp float) +0:? 'm' ( temp float) +0:? 'm' (layout( location=2) in float) +0:2 Function Call: @PixelShaderFunction(f1;f1;f1; ( temp void) +0:? 'n_dot_l' ( temp float) +0:? 'n_dot_h' ( temp float) +0:? 'm' ( temp float) +0:? Linker Objects +0:? 'n_dot_l' (layout( location=0) in float) +0:? 'n_dot_h' (layout( location=1) in float) +0:? 'm' (layout( location=2) in float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(f1;f1;f1; ( temp void) +0:2 Function Parameters: +0:2 'n_dot_l' ( in float) +0:2 'n_dot_h' ( in float) +0:2 'm' ( in float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:3 'r0' ( temp 4-component vector of float) +0:3 Construct vec4 ( temp 4-component vector of float) +0:3 Constant: +0:3 1.000000 +0:3 max ( temp float) +0:3 'n_dot_l' ( in float) +0:3 Constant: +0:3 0.000000 +0:3 Test condition and select ( temp float): no shortcircuit +0:3 Condition +0:3 Compare Less Than ( temp bool) +0:3 min ( temp float) +0:3 'n_dot_l' ( in float) +0:3 'n_dot_h' ( in float) +0:3 Constant: +0:3 0.000000 +0:3 true case +0:3 Constant: +0:3 0.000000 +0:3 false case +0:3 component-wise multiply ( temp float) +0:3 'n_dot_h' ( in float) +0:3 'm' ( in float) +0:3 Constant: +0:3 1.000000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? 'n_dot_l' ( temp float) +0:? 'n_dot_l' (layout( location=0) in float) +0:2 move second child to first child ( temp float) +0:? 'n_dot_h' ( temp float) +0:? 'n_dot_h' (layout( location=1) in float) +0:2 move second child to first child ( temp float) +0:? 'm' ( temp float) +0:? 'm' (layout( location=2) in float) +0:2 Function Call: @PixelShaderFunction(f1;f1;f1; ( temp void) +0:? 'n_dot_l' ( temp float) +0:? 'n_dot_h' ( temp float) +0:? 'm' ( temp float) +0:? Linker Objects +0:? 'n_dot_l' (layout( location=0) in float) +0:? 'n_dot_h' (layout( location=1) in float) +0:? 'm' (layout( location=2) in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 48 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 33 36 39 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 12 "@PixelShaderFunction(f1;f1;f1;" + Name 9 "n_dot_l" + Name 10 "n_dot_h" + Name 11 "m" + Name 16 "r0" + Name 31 "n_dot_l" + Name 33 "n_dot_l" + Name 35 "n_dot_h" + Name 36 "n_dot_h" + Name 38 "m" + Name 39 "m" + Name 41 "param" + Name 43 "param" + Name 45 "param" + Decorate 33(n_dot_l) Location 0 + Decorate 36(n_dot_h) Location 1 + Decorate 39(m) Location 2 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) 7(ptr) 7(ptr) + 14: TypeVector 6(float) 4 + 15: TypePointer Function 14(fvec4) + 17: 6(float) Constant 1065353216 + 19: 6(float) Constant 0 + 24: TypeBool + 32: TypePointer Input 6(float) + 33(n_dot_l): 32(ptr) Variable Input + 36(n_dot_h): 32(ptr) Variable Input + 39(m): 32(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 31(n_dot_l): 7(ptr) Variable Function + 35(n_dot_h): 7(ptr) Variable Function + 38(m): 7(ptr) Variable Function + 41(param): 7(ptr) Variable Function + 43(param): 7(ptr) Variable Function + 45(param): 7(ptr) Variable Function + 34: 6(float) Load 33(n_dot_l) + Store 31(n_dot_l) 34 + 37: 6(float) Load 36(n_dot_h) + Store 35(n_dot_h) 37 + 40: 6(float) Load 39(m) + Store 38(m) 40 + 42: 6(float) Load 31(n_dot_l) + Store 41(param) 42 + 44: 6(float) Load 35(n_dot_h) + Store 43(param) 44 + 46: 6(float) Load 38(m) + Store 45(param) 46 + 47: 2 FunctionCall 12(@PixelShaderFunction(f1;f1;f1;) 41(param) 43(param) 45(param) + Return + FunctionEnd +12(@PixelShaderFunction(f1;f1;f1;): 2 Function None 8 + 9(n_dot_l): 7(ptr) FunctionParameter + 10(n_dot_h): 7(ptr) FunctionParameter + 11(m): 7(ptr) FunctionParameter + 13: Label + 16(r0): 15(ptr) Variable Function + 18: 6(float) Load 9(n_dot_l) + 20: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 18 19 + 21: 6(float) Load 9(n_dot_l) + 22: 6(float) Load 10(n_dot_h) + 23: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 21 22 + 25: 24(bool) FOrdLessThan 23 19 + 26: 6(float) Load 10(n_dot_h) + 27: 6(float) Load 11(m) + 28: 6(float) FMul 26 27 + 29: 6(float) Select 25 19 28 + 30: 14(fvec4) CompositeConstruct 17 20 29 17 + Store 16(r0) 30 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out new file mode 100644 index 0000000000..97d67198ea --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -0,0 +1,343 @@ +hlsl.intrinsics.negative.comp +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inI0' ( in int) +0:? Sequence +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) +0:57 Function Parameters: +0:57 'inF0' ( in 1-component vector of float) +0:57 'inF1' ( in 1-component vector of float) +0:57 'inF2' ( in 1-component vector of float) +0:57 'inI0' ( in 1-component vector of int) +0:? Sequence +0:62 Branch: Return with expression +0:62 Constant: +0:62 0.000000 +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) +0:66 Function Parameters: +0:66 'inF0' ( in 2-component vector of float) +0:66 'inF1' ( in 2-component vector of float) +0:66 'inF2' ( in 2-component vector of float) +0:66 'inI0' ( in 2-component vector of int) +0:? Sequence +0:109 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) +0:113 Function Parameters: +0:113 'inF0' ( in 3-component vector of float) +0:113 'inF1' ( in 3-component vector of float) +0:113 'inF2' ( in 3-component vector of float) +0:113 'inI0' ( in 3-component vector of int) +0:? Sequence +0:154 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:158 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 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) +0:158 'inF2' ( in 4-component vector of float) +0:158 'inI0' ( in 4-component vector of int) +0:? Sequence +0:199 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:158 Function Definition: ComputeShaderFunction( ( temp void) +0:158 Function Parameters: +0:? Sequence +0:158 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:158 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:158 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:158 move second child to first child ( temp 4-component vector of int) +0:? 'inI0' ( temp 4-component vector of int) +0:? 'inI0' (layout( location=3) in 4-component vector of int) +0:158 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:158 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) in 4-component vector of int) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inI0' ( in int) +0:? Sequence +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) +0:57 Function Parameters: +0:57 'inF0' ( in 1-component vector of float) +0:57 'inF1' ( in 1-component vector of float) +0:57 'inF2' ( in 1-component vector of float) +0:57 'inI0' ( in 1-component vector of int) +0:? Sequence +0:62 Branch: Return with expression +0:62 Constant: +0:62 0.000000 +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) +0:66 Function Parameters: +0:66 'inF0' ( in 2-component vector of float) +0:66 'inF1' ( in 2-component vector of float) +0:66 'inF2' ( in 2-component vector of float) +0:66 'inI0' ( in 2-component vector of int) +0:? Sequence +0:109 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) +0:113 Function Parameters: +0:113 'inF0' ( in 3-component vector of float) +0:113 'inF1' ( in 3-component vector of float) +0:113 'inF2' ( in 3-component vector of float) +0:113 'inI0' ( in 3-component vector of int) +0:? Sequence +0:154 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:158 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 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) +0:158 'inF2' ( in 4-component vector of float) +0:158 'inI0' ( in 4-component vector of int) +0:? Sequence +0:199 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:158 Function Definition: ComputeShaderFunction( ( temp void) +0:158 Function Parameters: +0:? Sequence +0:158 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:158 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:158 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:158 move second child to first child ( temp 4-component vector of int) +0:? 'inI0' ( temp 4-component vector of int) +0:? 'inI0' (layout( location=3) in 4-component vector of int) +0:158 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:158 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) in 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 99 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" 76 79 82 86 89 + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 + Name 4 "ComputeShaderFunction" + Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inI0" + Name 21 "ComputeShaderFunction1(vf1;vf1;vf1;vi1;" + Name 17 "inF0" + Name 18 "inF1" + Name 19 "inF2" + Name 20 "inI0" + Name 32 "ComputeShaderFunction2(vf2;vf2;vf2;vi2;" + Name 28 "inF0" + Name 29 "inF1" + Name 30 "inF2" + Name 31 "inI0" + Name 43 "ComputeShaderFunction3(vf3;vf3;vf3;vi3;" + Name 39 "inF0" + Name 40 "inF1" + Name 41 "inF2" + Name 42 "inI0" + Name 54 "@ComputeShaderFunction(vf4;vf4;vf4;vi4;" + Name 50 "inF0" + Name 51 "inF1" + Name 52 "inF2" + Name 53 "inI0" + Name 74 "inF0" + Name 76 "inF0" + Name 78 "inF1" + Name 79 "inF1" + Name 81 "inF2" + Name 82 "inF2" + Name 84 "inI0" + Name 86 "inI0" + Name 89 "@entryPointOutput" + Name 90 "param" + Name 92 "param" + Name 94 "param" + Name 96 "param" + Decorate 76(inF0) Location 0 + Decorate 79(inF1) Location 1 + Decorate 82(inF2) Location 2 + Decorate 86(inI0) Location 3 + Decorate 89(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeInt 32 1 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 25: TypeVector 8(int) 2 + 26: TypePointer Function 25(ivec2) + 27: TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr) + 34: TypeVector 6(float) 3 + 35: TypePointer Function 34(fvec3) + 36: TypeVector 8(int) 3 + 37: TypePointer Function 36(ivec3) + 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) + 45: TypeVector 6(float) 4 + 46: TypePointer Function 45(fvec4) + 47: TypeVector 8(int) 4 + 48: TypePointer Function 47(ivec4) + 49: TypeFunction 45(fvec4) 46(ptr) 46(ptr) 46(ptr) 48(ptr) + 56: 6(float) Constant 0 + 61: 6(float) Constant 1065353216 + 62: 6(float) Constant 1073741824 + 63: 23(fvec2) ConstantComposite 61 62 + 66: 6(float) Constant 1077936128 + 67: 34(fvec3) ConstantComposite 61 62 66 + 70: 6(float) Constant 1082130432 + 71: 45(fvec4) ConstantComposite 61 62 66 70 + 75: TypePointer Input 45(fvec4) + 76(inF0): 75(ptr) Variable Input + 79(inF1): 75(ptr) Variable Input + 82(inF2): 75(ptr) Variable Input + 85: TypePointer Input 47(ivec4) + 86(inI0): 85(ptr) Variable Input + 88: TypePointer Output 45(fvec4) +89(@entryPointOutput): 88(ptr) Variable Output +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + 74(inF0): 46(ptr) Variable Function + 78(inF1): 46(ptr) Variable Function + 81(inF2): 46(ptr) Variable Function + 84(inI0): 48(ptr) Variable Function + 90(param): 46(ptr) Variable Function + 92(param): 46(ptr) Variable Function + 94(param): 46(ptr) Variable Function + 96(param): 48(ptr) Variable Function + 77: 45(fvec4) Load 76(inF0) + Store 74(inF0) 77 + 80: 45(fvec4) Load 79(inF1) + Store 78(inF1) 80 + 83: 45(fvec4) Load 82(inF2) + Store 81(inF2) 83 + 87: 47(ivec4) Load 86(inI0) + Store 84(inI0) 87 + 91: 45(fvec4) Load 74(inF0) + Store 90(param) 91 + 93: 45(fvec4) Load 78(inF1) + Store 92(param) 93 + 95: 45(fvec4) Load 81(inF2) + Store 94(param) 95 + 97: 47(ivec4) Load 84(inI0) + Store 96(param) 97 + 98: 45(fvec4) FunctionCall 54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;) 90(param) 92(param) 94(param) 96(param) + Store 89(@entryPointOutput) 98 + Return + FunctionEnd +15(ComputeShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inI0): 9(ptr) FunctionParameter + 16: Label + ReturnValue 56 + FunctionEnd +21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 + 17(inF0): 7(ptr) FunctionParameter + 18(inF1): 7(ptr) FunctionParameter + 19(inF2): 7(ptr) FunctionParameter + 20(inI0): 9(ptr) FunctionParameter + 22: Label + ReturnValue 56 + FunctionEnd +32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 + 28(inF0): 24(ptr) FunctionParameter + 29(inF1): 24(ptr) FunctionParameter + 30(inF2): 24(ptr) FunctionParameter + 31(inI0): 26(ptr) FunctionParameter + 33: Label + ReturnValue 63 + FunctionEnd +43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 + 39(inF0): 35(ptr) FunctionParameter + 40(inF1): 35(ptr) FunctionParameter + 41(inF2): 35(ptr) FunctionParameter + 42(inI0): 37(ptr) FunctionParameter + 44: Label + ReturnValue 67 + FunctionEnd +54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;): 45(fvec4) Function None 49 + 50(inF0): 46(ptr) FunctionParameter + 51(inF1): 46(ptr) FunctionParameter + 52(inF2): 46(ptr) FunctionParameter + 53(inI0): 48(ptr) FunctionParameter + 55: Label + ReturnValue 71 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out new file mode 100644 index 0000000000..980cc96d02 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -0,0 +1,986 @@ +hlsl.intrinsics.negative.frag +ERROR: 0:10: 'determinant' : ambiguous best function under implicit type conversion +ERROR: 0:25: 'normalize' : ambiguous best function under implicit type conversion +ERROR: 0:26: 'reflect' : ambiguous best function under implicit type conversion +ERROR: 0:27: 'refract' : ambiguous best function under implicit type conversion +ERROR: 0:28: 'refract' : no matching overloaded function found +ERROR: 0:30: 'transpose' : ambiguous best function under implicit type conversion +ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found +ERROR: 0:46: 'asdouble' : double2 conversion not implemented +ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:49: 'cross' : no matching overloaded function found +ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:51: 'determinant' : no matching overloaded function found +ERROR: 0:57: 'transpose' : no matching overloaded function found +ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:67: 'determinant' : no matching overloaded function found +ERROR: 0:73: 'transpose' : no matching overloaded function found +ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:84: 'determinant' : no matching overloaded function found +ERROR: 0:90: 'transpose' : no matching overloaded function found +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: 59 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inI0' ( in int) +0:? Sequence +0:5 uint64BitsToDouble ( temp double) +0:5 Construct uvec2 ( temp 2-component vector of uint) +0:5 Convert float to uint ( temp uint) +0:5 'inF0' ( in float) +0:5 Convert float to uint ( temp uint) +0:5 'inF1' ( in float) +0:6 Function Call: CheckAccessFullyMapped(u1; ( temp bool) +0:6 Constant: +0:6 3 (const uint) +0:7 bitCount ( temp uint) +0:7 Convert float to uint ( temp uint) +0:7 'inF0' ( in float) +0:8 cross-product ( temp 3-component vector of float) +0:8 Construct vec3 ( in 3-component vector of float) +0:8 'inF0' ( in float) +0:8 Construct vec3 ( in 3-component vector of float) +0:8 'inF1' ( in float) +0:9 Convert float to int ( temp 4-component vector of int) +0:9 vector-scale ( temp 4-component vector of float) +0:9 Constant: +0:9 255.001953 +0:9 vector swizzle ( temp 4-component vector of float) +0:9 Construct vec4 ( in 4-component vector of float) +0:9 'inF0' ( in float) +0:9 Sequence +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 3 (const int) +0:10 determinant ( temp float) +ERROR: node is still EOpNull! +0:10 'inF0' ( in float) +0:12 direct index ( temp float) +0:12 unpackHalf2x16 ( temp 2-component vector of float) +0:12 Convert float to uint ( temp uint) +0:12 'inF0' ( in float) +0:12 Constant: +0:12 0 (const int) +0:13 findMSB ( temp uint) +0:13 Convert float to uint ( temp uint) +0:13 'inF0' ( in float) +0:14 findLSB ( temp uint) +0:14 Convert float to uint ( temp uint) +0:14 'inF0' ( in float) +0:23 length ( temp float) +0:23 'inF0' ( in float) +0:24 Function Call: msad4(u1;vu2;vu4; ( temp 4-component vector of uint) +0:24 Convert float to uint ( temp uint) +0:24 'inF0' ( in float) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) +0:25 normalize ( temp 2-component vector of float) +0:25 Construct vec2 ( in 2-component vector of float) +0:25 'inF0' ( in float) +0:26 reflect ( temp 2-component vector of float) +0:26 Construct vec2 ( in 2-component vector of float) +0:26 'inF0' ( in float) +0:26 Construct vec2 ( in 2-component vector of float) +0:26 'inF1' ( in float) +0:27 refract ( temp 2-component vector of float) +0:27 Construct vec2 ( in 2-component vector of float) +0:27 'inF0' ( in float) +0:27 Construct vec2 ( in 2-component vector of float) +0:27 'inF1' ( in float) +0:27 'inF2' ( in float) +0:28 Constant: +0:28 0.000000 +0:29 bitFieldReverse ( temp uint) +0:29 Convert float to uint ( temp uint) +0:29 'inF0' ( in float) +0:30 transpose ( temp 1X1 matrix of float) +ERROR: node is still EOpNull! +0:30 'inF0' ( in float) +0:32 Branch: Return with expression +0:32 Constant: +0:32 0.000000 +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) +0:36 Function Parameters: +0:36 'inF0' ( in 1-component vector of float) +0:36 'inF1' ( in 1-component vector of float) +0:36 'inF2' ( in 1-component vector of float) +0:36 'inI0' ( in 1-component vector of int) +0:? Sequence +0:39 Constant: +0:39 0.000000 +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) +0:45 Function Parameters: +0:45 'inF0' ( in 2-component vector of float) +0:45 'inF1' ( in 2-component vector of float) +0:45 'inF2' ( in 2-component vector of float) +0:45 'inI0' ( in 2-component vector of int) +0:? Sequence +0:46 ERROR: Bad aggregation op + ( temp 2-component vector of double) +0:46 Convert float to uint ( temp 2-component vector of uint) +0:46 'inF0' ( in 2-component vector of float) +0:46 Convert float to uint ( temp 2-component vector of uint) +0:46 'inF1' ( in 2-component vector of float) +0:47 Constant: +0:47 0.000000 +0:48 bitCount ( temp 2-component vector of uint) +0:48 Convert float to uint ( temp 2-component vector of uint) +0:48 'inF0' ( in 2-component vector of float) +0:49 Constant: +0:49 0.000000 +0:50 Constant: +0:50 0.000000 +0:51 Constant: +0:51 0.000000 +0:52 Construct vec2 ( temp 2-component vector of float) +0:52 direct index ( temp float) +0:52 unpackHalf2x16 ( temp 2-component vector of float) +0:52 direct index ( temp uint) +0:52 Convert float to uint ( temp 2-component vector of uint) +0:52 'inF0' ( in 2-component vector of float) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp float) +0:52 unpackHalf2x16 ( temp 2-component vector of float) +0:52 direct index ( temp uint) +0:52 Convert float to uint ( temp 2-component vector of uint) +0:52 'inF0' ( in 2-component vector of float) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 0 (const int) +0:53 findMSB ( temp 2-component vector of uint) +0:53 Convert float to uint ( temp 2-component vector of uint) +0:53 'inF0' ( in 2-component vector of float) +0:54 findLSB ( temp 2-component vector of uint) +0:54 Convert float to uint ( temp 2-component vector of uint) +0:54 'inF0' ( in 2-component vector of float) +0:56 bitFieldReverse ( temp 2-component vector of uint) +0:56 Convert float to uint ( temp 2-component vector of uint) +0:56 'inF0' ( in 2-component vector of float) +0:57 Constant: +0:57 0.000000 +0:59 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) +0:63 Function Parameters: +0:63 'inF0' ( in 3-component vector of float) +0:63 'inF1' ( in 3-component vector of float) +0:63 'inF2' ( in 3-component vector of float) +0:63 'inI0' ( in 3-component vector of int) +0:? Sequence +0:64 Constant: +0:64 0.000000 +0:65 bitCount ( temp 3-component vector of uint) +0:65 Convert float to uint ( temp 3-component vector of uint) +0:65 'inF0' ( in 3-component vector of float) +0:66 Constant: +0:66 0.000000 +0:67 Constant: +0:67 0.000000 +0:68 Construct vec3 ( temp 3-component vector of float) +0:68 direct index ( temp float) +0:68 unpackHalf2x16 ( temp 2-component vector of float) +0:68 direct index ( temp uint) +0:68 Convert float to uint ( temp 3-component vector of uint) +0:68 'inF0' ( in 3-component vector of float) +0:68 Constant: +0:68 0 (const int) +0:68 Constant: +0:68 0 (const int) +0:68 direct index ( temp float) +0:68 unpackHalf2x16 ( temp 2-component vector of float) +0:68 direct index ( temp uint) +0:68 Convert float to uint ( temp 3-component vector of uint) +0:68 'inF0' ( in 3-component vector of float) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 0 (const int) +0:68 direct index ( temp float) +0:68 unpackHalf2x16 ( temp 2-component vector of float) +0:68 direct index ( temp uint) +0:68 Convert float to uint ( temp 3-component vector of uint) +0:68 'inF0' ( in 3-component vector of float) +0:68 Constant: +0:68 2 (const int) +0:68 Constant: +0:68 0 (const int) +0:69 findMSB ( temp 3-component vector of uint) +0:69 Convert float to uint ( temp 3-component vector of uint) +0:69 'inF0' ( in 3-component vector of float) +0:70 findLSB ( temp 3-component vector of uint) +0:70 Convert float to uint ( temp 3-component vector of uint) +0:70 'inF0' ( in 3-component vector of float) +0:72 bitFieldReverse ( temp 3-component vector of uint) +0:72 Convert float to uint ( temp 3-component vector of uint) +0:72 'inF0' ( in 3-component vector of float) +0:73 Constant: +0:73 0.000000 +0:76 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:80 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 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) +0:80 'inF2' ( in 4-component vector of float) +0:80 'inI0' ( in 4-component vector of int) +0:? Sequence +0:81 Constant: +0:81 0.000000 +0:82 bitCount ( temp 4-component vector of uint) +0:82 Convert float to uint ( temp 4-component vector of uint) +0:82 'inF0' ( in 4-component vector of float) +0:83 cross-product ( temp 3-component vector of float) +0:83 Construct vec3 ( in 3-component vector of float) +0:83 'inF0' ( in 4-component vector of float) +0:83 Construct vec3 ( in 3-component vector of float) +0:83 'inF1' ( in 4-component vector of float) +0:84 Constant: +0:84 0.000000 +0:85 Construct vec4 ( temp 4-component vector of float) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 1 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 3 (const int) +0:85 Constant: +0:85 0 (const int) +0:86 findMSB ( temp 4-component vector of uint) +0:86 Convert float to uint ( temp 4-component vector of uint) +0:86 'inF0' ( in 4-component vector of float) +0:87 findLSB ( temp 4-component vector of uint) +0:87 Convert float to uint ( temp 4-component vector of uint) +0:87 'inF0' ( in 4-component vector of float) +0:89 bitFieldReverse ( temp 4-component vector of uint) +0:89 Convert float to uint ( temp 4-component vector of uint) +0:89 'inF0' ( in 4-component vector of float) +0:90 Constant: +0:90 0.000000 +0:92 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:80 Function Definition: PixelShaderFunction( ( temp void) +0:80 Function Parameters: +0:? Sequence +0:80 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:80 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:80 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:80 move second child to first child ( temp 4-component vector of int) +0:? 'inI0' ( temp 4-component vector of int) +0:? 'inI0' (layout( location=3) flat in 4-component vector of int) +0:80 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:80 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) +0:115 Function Parameters: +0:115 'inF0' ( in 2X2 matrix of float) +0:115 'inF1' ( in 2X2 matrix of float) +0:115 'inF2' ( in 2X2 matrix of float) +0:? Sequence +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:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) +0:123 Function Parameters: +0:123 'inF0' ( in 3X3 matrix of float) +0:123 'inF1' ( in 3X3 matrix of float) +0:123 'inF2' ( in 3X3 matrix of float) +0:? Sequence +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 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) +0:131 Function Parameters: +0:131 'inF0' ( in 4X4 matrix of float) +0:131 'inF1' ( in 4X4 matrix of float) +0:131 'inF2' ( in 4X4 matrix of float) +0:? Sequence +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 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) flat in 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inI0' ( in int) +0:? Sequence +0:5 uint64BitsToDouble ( temp double) +0:5 Construct uvec2 ( temp 2-component vector of uint) +0:5 Convert float to uint ( temp uint) +0:5 'inF0' ( in float) +0:5 Convert float to uint ( temp uint) +0:5 'inF1' ( in float) +0:6 Function Call: CheckAccessFullyMapped(u1; ( temp bool) +0:6 Constant: +0:6 3 (const uint) +0:7 bitCount ( temp uint) +0:7 Convert float to uint ( temp uint) +0:7 'inF0' ( in float) +0:8 cross-product ( temp 3-component vector of float) +0:8 Construct vec3 ( in 3-component vector of float) +0:8 'inF0' ( in float) +0:8 Construct vec3 ( in 3-component vector of float) +0:8 'inF1' ( in float) +0:9 Convert float to int ( temp 4-component vector of int) +0:9 vector-scale ( temp 4-component vector of float) +0:9 Constant: +0:9 255.001953 +0:9 vector swizzle ( temp 4-component vector of float) +0:9 Construct vec4 ( in 4-component vector of float) +0:9 'inF0' ( in float) +0:9 Sequence +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 3 (const int) +0:10 determinant ( temp float) +ERROR: node is still EOpNull! +0:10 'inF0' ( in float) +0:12 direct index ( temp float) +0:12 unpackHalf2x16 ( temp 2-component vector of float) +0:12 Convert float to uint ( temp uint) +0:12 'inF0' ( in float) +0:12 Constant: +0:12 0 (const int) +0:13 findMSB ( temp uint) +0:13 Convert float to uint ( temp uint) +0:13 'inF0' ( in float) +0:14 findLSB ( temp uint) +0:14 Convert float to uint ( temp uint) +0:14 'inF0' ( in float) +0:23 length ( temp float) +0:23 'inF0' ( in float) +0:24 Function Call: msad4(u1;vu2;vu4; ( temp 4-component vector of uint) +0:24 Convert float to uint ( temp uint) +0:24 'inF0' ( in float) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) +0:25 normalize ( temp 2-component vector of float) +0:25 Construct vec2 ( in 2-component vector of float) +0:25 'inF0' ( in float) +0:26 reflect ( temp 2-component vector of float) +0:26 Construct vec2 ( in 2-component vector of float) +0:26 'inF0' ( in float) +0:26 Construct vec2 ( in 2-component vector of float) +0:26 'inF1' ( in float) +0:27 refract ( temp 2-component vector of float) +0:27 Construct vec2 ( in 2-component vector of float) +0:27 'inF0' ( in float) +0:27 Construct vec2 ( in 2-component vector of float) +0:27 'inF1' ( in float) +0:27 'inF2' ( in float) +0:28 Constant: +0:28 0.000000 +0:29 bitFieldReverse ( temp uint) +0:29 Convert float to uint ( temp uint) +0:29 'inF0' ( in float) +0:30 transpose ( temp 1X1 matrix of float) +ERROR: node is still EOpNull! +0:30 'inF0' ( in float) +0:32 Branch: Return with expression +0:32 Constant: +0:32 0.000000 +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) +0:36 Function Parameters: +0:36 'inF0' ( in 1-component vector of float) +0:36 'inF1' ( in 1-component vector of float) +0:36 'inF2' ( in 1-component vector of float) +0:36 'inI0' ( in 1-component vector of int) +0:? Sequence +0:39 Constant: +0:39 0.000000 +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) +0:45 Function Parameters: +0:45 'inF0' ( in 2-component vector of float) +0:45 'inF1' ( in 2-component vector of float) +0:45 'inF2' ( in 2-component vector of float) +0:45 'inI0' ( in 2-component vector of int) +0:? Sequence +0:46 ERROR: Bad aggregation op + ( temp 2-component vector of double) +0:46 Convert float to uint ( temp 2-component vector of uint) +0:46 'inF0' ( in 2-component vector of float) +0:46 Convert float to uint ( temp 2-component vector of uint) +0:46 'inF1' ( in 2-component vector of float) +0:47 Constant: +0:47 0.000000 +0:48 bitCount ( temp 2-component vector of uint) +0:48 Convert float to uint ( temp 2-component vector of uint) +0:48 'inF0' ( in 2-component vector of float) +0:49 Constant: +0:49 0.000000 +0:50 Constant: +0:50 0.000000 +0:51 Constant: +0:51 0.000000 +0:52 Construct vec2 ( temp 2-component vector of float) +0:52 direct index ( temp float) +0:52 unpackHalf2x16 ( temp 2-component vector of float) +0:52 direct index ( temp uint) +0:52 Convert float to uint ( temp 2-component vector of uint) +0:52 'inF0' ( in 2-component vector of float) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp float) +0:52 unpackHalf2x16 ( temp 2-component vector of float) +0:52 direct index ( temp uint) +0:52 Convert float to uint ( temp 2-component vector of uint) +0:52 'inF0' ( in 2-component vector of float) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 0 (const int) +0:53 findMSB ( temp 2-component vector of uint) +0:53 Convert float to uint ( temp 2-component vector of uint) +0:53 'inF0' ( in 2-component vector of float) +0:54 findLSB ( temp 2-component vector of uint) +0:54 Convert float to uint ( temp 2-component vector of uint) +0:54 'inF0' ( in 2-component vector of float) +0:56 bitFieldReverse ( temp 2-component vector of uint) +0:56 Convert float to uint ( temp 2-component vector of uint) +0:56 'inF0' ( in 2-component vector of float) +0:57 Constant: +0:57 0.000000 +0:59 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) +0:63 Function Parameters: +0:63 'inF0' ( in 3-component vector of float) +0:63 'inF1' ( in 3-component vector of float) +0:63 'inF2' ( in 3-component vector of float) +0:63 'inI0' ( in 3-component vector of int) +0:? Sequence +0:64 Constant: +0:64 0.000000 +0:65 bitCount ( temp 3-component vector of uint) +0:65 Convert float to uint ( temp 3-component vector of uint) +0:65 'inF0' ( in 3-component vector of float) +0:66 Constant: +0:66 0.000000 +0:67 Constant: +0:67 0.000000 +0:68 Construct vec3 ( temp 3-component vector of float) +0:68 direct index ( temp float) +0:68 unpackHalf2x16 ( temp 2-component vector of float) +0:68 direct index ( temp uint) +0:68 Convert float to uint ( temp 3-component vector of uint) +0:68 'inF0' ( in 3-component vector of float) +0:68 Constant: +0:68 0 (const int) +0:68 Constant: +0:68 0 (const int) +0:68 direct index ( temp float) +0:68 unpackHalf2x16 ( temp 2-component vector of float) +0:68 direct index ( temp uint) +0:68 Convert float to uint ( temp 3-component vector of uint) +0:68 'inF0' ( in 3-component vector of float) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 0 (const int) +0:68 direct index ( temp float) +0:68 unpackHalf2x16 ( temp 2-component vector of float) +0:68 direct index ( temp uint) +0:68 Convert float to uint ( temp 3-component vector of uint) +0:68 'inF0' ( in 3-component vector of float) +0:68 Constant: +0:68 2 (const int) +0:68 Constant: +0:68 0 (const int) +0:69 findMSB ( temp 3-component vector of uint) +0:69 Convert float to uint ( temp 3-component vector of uint) +0:69 'inF0' ( in 3-component vector of float) +0:70 findLSB ( temp 3-component vector of uint) +0:70 Convert float to uint ( temp 3-component vector of uint) +0:70 'inF0' ( in 3-component vector of float) +0:72 bitFieldReverse ( temp 3-component vector of uint) +0:72 Convert float to uint ( temp 3-component vector of uint) +0:72 'inF0' ( in 3-component vector of float) +0:73 Constant: +0:73 0.000000 +0:76 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:80 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 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) +0:80 'inF2' ( in 4-component vector of float) +0:80 'inI0' ( in 4-component vector of int) +0:? Sequence +0:81 Constant: +0:81 0.000000 +0:82 bitCount ( temp 4-component vector of uint) +0:82 Convert float to uint ( temp 4-component vector of uint) +0:82 'inF0' ( in 4-component vector of float) +0:83 cross-product ( temp 3-component vector of float) +0:83 Construct vec3 ( in 3-component vector of float) +0:83 'inF0' ( in 4-component vector of float) +0:83 Construct vec3 ( in 3-component vector of float) +0:83 'inF1' ( in 4-component vector of float) +0:84 Constant: +0:84 0.000000 +0:85 Construct vec4 ( temp 4-component vector of float) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 1 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 direct index ( temp float) +0:85 unpackHalf2x16 ( temp 2-component vector of float) +0:85 direct index ( temp uint) +0:85 Convert float to uint ( temp 4-component vector of uint) +0:85 'inF0' ( in 4-component vector of float) +0:85 Constant: +0:85 3 (const int) +0:85 Constant: +0:85 0 (const int) +0:86 findMSB ( temp 4-component vector of uint) +0:86 Convert float to uint ( temp 4-component vector of uint) +0:86 'inF0' ( in 4-component vector of float) +0:87 findLSB ( temp 4-component vector of uint) +0:87 Convert float to uint ( temp 4-component vector of uint) +0:87 'inF0' ( in 4-component vector of float) +0:89 bitFieldReverse ( temp 4-component vector of uint) +0:89 Convert float to uint ( temp 4-component vector of uint) +0:89 'inF0' ( in 4-component vector of float) +0:90 Constant: +0:90 0.000000 +0:92 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:80 Function Definition: PixelShaderFunction( ( temp void) +0:80 Function Parameters: +0:? Sequence +0:80 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:80 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:80 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:80 move second child to first child ( temp 4-component vector of int) +0:? 'inI0' ( temp 4-component vector of int) +0:? 'inI0' (layout( location=3) flat in 4-component vector of int) +0:80 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:80 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) +0:115 Function Parameters: +0:115 'inF0' ( in 2X2 matrix of float) +0:115 'inF1' ( in 2X2 matrix of float) +0:115 'inF2' ( in 2X2 matrix of float) +0:? Sequence +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:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) +0:123 Function Parameters: +0:123 'inF0' ( in 3X3 matrix of float) +0:123 'inF1' ( in 3X3 matrix of float) +0:123 'inF2' ( in 3X3 matrix of float) +0:? Sequence +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 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) +0:131 Function Parameters: +0:131 'inF0' ( in 4X4 matrix of float) +0:131 'inF1' ( in 4X4 matrix of float) +0:131 'inF2' ( in 4X4 matrix of float) +0:? Sequence +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 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) flat in 4-component vector of int) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out new file mode 100644 index 0000000000..c2711c657e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -0,0 +1,550 @@ +hlsl.intrinsics.negative.vert +Shader version: 500 +0:? Sequence +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:15 Function Parameters: +0:15 'inF0' ( in float) +0:15 'inF1' ( in float) +0:15 'inF2' ( in float) +0:15 'inI0' ( in int) +0:? Sequence +0:71 Branch: Return with expression +0:71 Constant: +0:71 0.000000 +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) +0:75 Function Parameters: +0:75 'inF0' ( in 1-component vector of float) +0:75 'inF1' ( in 1-component vector of float) +0:75 'inF2' ( in 1-component vector of float) +0:75 'inI0' ( in 1-component vector of int) +0:? Sequence +0:80 Branch: Return with expression +0:80 Constant: +0:80 0.000000 +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) +0:84 Function Parameters: +0:84 'inF0' ( in 2-component vector of float) +0:84 'inF1' ( in 2-component vector of float) +0:84 'inF2' ( in 2-component vector of float) +0:84 'inI0' ( in 2-component vector of int) +0:? Sequence +0:127 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) +0:131 Function Parameters: +0:131 'inF0' ( in 3-component vector of float) +0:131 'inF1' ( in 3-component vector of float) +0:131 'inF2' ( in 3-component vector of float) +0:131 'inI0' ( in 3-component vector of int) +0:? Sequence +0:172 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:176 Function Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 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) +0:176 'inF2' ( in 4-component vector of float) +0:176 'inI0' ( in 4-component vector of int) +0:? Sequence +0:217 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:176 Function Definition: VertexShaderFunction( ( temp void) +0:176 Function Parameters: +0:? Sequence +0:176 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:176 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:176 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:176 move second child to first child ( temp 4-component vector of int) +0:? 'inI0' ( temp 4-component vector of int) +0:? 'inI0' (layout( location=3) in 4-component vector of int) +0:176 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:176 Function Call: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) +0:226 Function Parameters: +0:226 'inF0' ( in 2X2 matrix of float) +0:226 'inF1' ( in 2X2 matrix of float) +0:226 'inF2' ( in 2X2 matrix of float) +0:? Sequence +0:230 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) +0:234 Function Parameters: +0:234 'inF0' ( in 3X3 matrix of float) +0:234 'inF1' ( in 3X3 matrix of float) +0:234 'inF2' ( in 3X3 matrix of float) +0:? Sequence +0:238 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) +0:242 Function Parameters: +0:242 'inF0' ( in 4X4 matrix of float) +0:242 'inF1' ( in 4X4 matrix of float) +0:242 'inF2' ( in 4X4 matrix of float) +0:? Sequence +0:246 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects +0:? 'gs_ua' ( global uint) +0:? 'gs_ub' ( global uint) +0:? 'gs_uc' ( global uint) +0:? 'gs_ua2' ( global 2-component vector of uint) +0:? 'gs_ub2' ( global 2-component vector of uint) +0:? 'gs_uc2' ( global 2-component vector of uint) +0:? 'gs_ua3' ( global 3-component vector of uint) +0:? 'gs_ub3' ( global 3-component vector of uint) +0:? 'gs_uc3' ( global 3-component vector of uint) +0:? 'gs_ua4' ( global 4-component vector of uint) +0:? 'gs_ub4' ( global 4-component vector of uint) +0:? 'gs_uc4' ( global 4-component vector of uint) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) in 4-component vector of int) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float) +0:15 Function Parameters: +0:15 'inF0' ( in float) +0:15 'inF1' ( in float) +0:15 'inF2' ( in float) +0:15 'inI0' ( in int) +0:? Sequence +0:71 Branch: Return with expression +0:71 Constant: +0:71 0.000000 +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) +0:75 Function Parameters: +0:75 'inF0' ( in 1-component vector of float) +0:75 'inF1' ( in 1-component vector of float) +0:75 'inF2' ( in 1-component vector of float) +0:75 'inI0' ( in 1-component vector of int) +0:? Sequence +0:80 Branch: Return with expression +0:80 Constant: +0:80 0.000000 +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) +0:84 Function Parameters: +0:84 'inF0' ( in 2-component vector of float) +0:84 'inF1' ( in 2-component vector of float) +0:84 'inF2' ( in 2-component vector of float) +0:84 'inI0' ( in 2-component vector of int) +0:? Sequence +0:127 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) +0:131 Function Parameters: +0:131 'inF0' ( in 3-component vector of float) +0:131 'inF1' ( in 3-component vector of float) +0:131 'inF2' ( in 3-component vector of float) +0:131 'inI0' ( in 3-component vector of int) +0:? Sequence +0:172 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:176 Function Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 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) +0:176 'inF2' ( in 4-component vector of float) +0:176 'inI0' ( in 4-component vector of int) +0:? Sequence +0:217 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:176 Function Definition: VertexShaderFunction( ( temp void) +0:176 Function Parameters: +0:? Sequence +0:176 move second child to first child ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:176 move second child to first child ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:176 move second child to first child ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:176 move second child to first child ( temp 4-component vector of int) +0:? 'inI0' ( temp 4-component vector of int) +0:? 'inI0' (layout( location=3) in 4-component vector of int) +0:176 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:176 Function Call: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) +0:? 'inF0' ( temp 4-component vector of float) +0:? 'inF1' ( temp 4-component vector of float) +0:? 'inF2' ( temp 4-component vector of float) +0:? 'inI0' ( temp 4-component vector of int) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) +0:226 Function Parameters: +0:226 'inF0' ( in 2X2 matrix of float) +0:226 'inF1' ( in 2X2 matrix of float) +0:226 'inF2' ( in 2X2 matrix of float) +0:? Sequence +0:230 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) +0:234 Function Parameters: +0:234 'inF0' ( in 3X3 matrix of float) +0:234 'inF1' ( in 3X3 matrix of float) +0:234 'inF2' ( in 3X3 matrix of float) +0:? Sequence +0:238 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) +0:242 Function Parameters: +0:242 'inF0' ( in 4X4 matrix of float) +0:242 'inF1' ( in 4X4 matrix of float) +0:242 'inF2' ( in 4X4 matrix of float) +0:? Sequence +0:246 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects +0:? 'gs_ua' ( global uint) +0:? 'gs_ub' ( global uint) +0:? 'gs_uc' ( global uint) +0:? 'gs_ua2' ( global 2-component vector of uint) +0:? 'gs_ub2' ( global 2-component vector of uint) +0:? 'gs_uc2' ( global 2-component vector of uint) +0:? 'gs_ua3' ( global 3-component vector of uint) +0:? 'gs_ub3' ( global 3-component vector of uint) +0:? 'gs_uc3' ( global 3-component vector of uint) +0:? 'gs_ua4' ( global 4-component vector of uint) +0:? 'gs_ub4' ( global 4-component vector of uint) +0:? 'gs_uc4' ( global 4-component vector of uint) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'inF0' (layout( location=0) in 4-component vector of float) +0:? 'inF1' (layout( location=1) in 4-component vector of float) +0:? 'inF2' (layout( location=2) in 4-component vector of float) +0:? 'inI0' (layout( location=3) in 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 155 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" 100 103 106 110 113 + Source HLSL 500 + Name 4 "VertexShaderFunction" + Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inI0" + Name 21 "VertexShaderFunction1(vf1;vf1;vf1;vi1;" + Name 17 "inF0" + Name 18 "inF1" + Name 19 "inF2" + Name 20 "inI0" + Name 32 "VertexShaderFunction2(vf2;vf2;vf2;vi2;" + Name 28 "inF0" + Name 29 "inF1" + Name 30 "inF2" + Name 31 "inI0" + Name 43 "VertexShaderFunction3(vf3;vf3;vf3;vi3;" + Name 39 "inF0" + Name 40 "inF1" + Name 41 "inF2" + Name 42 "inI0" + Name 54 "@VertexShaderFunction(vf4;vf4;vf4;vi4;" + Name 50 "inF0" + Name 51 "inF1" + Name 52 "inF2" + Name 53 "inI0" + Name 62 "VertexShaderFunction2x2(mf22;mf22;mf22;" + Name 59 "inF0" + Name 60 "inF1" + Name 61 "inF2" + Name 70 "VertexShaderFunction3x3(mf33;mf33;mf33;" + Name 67 "inF0" + Name 68 "inF1" + Name 69 "inF2" + Name 78 "VertexShaderFunction4x4(mf44;mf44;mf44;" + Name 75 "inF0" + Name 76 "inF1" + Name 77 "inF2" + Name 98 "inF0" + Name 100 "inF0" + Name 102 "inF1" + Name 103 "inF1" + Name 105 "inF2" + Name 106 "inF2" + Name 108 "inI0" + Name 110 "inI0" + Name 113 "@entryPointOutput" + Name 114 "param" + Name 116 "param" + Name 118 "param" + Name 120 "param" + Name 137 "gs_ua" + Name 138 "gs_ub" + Name 139 "gs_uc" + Name 142 "gs_ua2" + Name 143 "gs_ub2" + Name 144 "gs_uc2" + Name 147 "gs_ua3" + Name 148 "gs_ub3" + Name 149 "gs_uc3" + Name 152 "gs_ua4" + Name 153 "gs_ub4" + Name 154 "gs_uc4" + Decorate 100(inF0) Location 0 + Decorate 103(inF1) Location 1 + Decorate 106(inF2) Location 2 + Decorate 110(inI0) Location 3 + Decorate 113(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeInt 32 1 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 25: TypeVector 8(int) 2 + 26: TypePointer Function 25(ivec2) + 27: TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr) + 34: TypeVector 6(float) 3 + 35: TypePointer Function 34(fvec3) + 36: TypeVector 8(int) 3 + 37: TypePointer Function 36(ivec3) + 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) + 45: TypeVector 6(float) 4 + 46: TypePointer Function 45(fvec4) + 47: TypeVector 8(int) 4 + 48: TypePointer Function 47(ivec4) + 49: TypeFunction 45(fvec4) 46(ptr) 46(ptr) 46(ptr) 48(ptr) + 56: TypeMatrix 23(fvec2) 2 + 57: TypePointer Function 56 + 58: TypeFunction 56 57(ptr) 57(ptr) 57(ptr) + 64: TypeMatrix 34(fvec3) 3 + 65: TypePointer Function 64 + 66: TypeFunction 64 65(ptr) 65(ptr) 65(ptr) + 72: TypeMatrix 45(fvec4) 4 + 73: TypePointer Function 72 + 74: TypeFunction 72 73(ptr) 73(ptr) 73(ptr) + 80: 6(float) Constant 0 + 85: 6(float) Constant 1065353216 + 86: 6(float) Constant 1073741824 + 87: 23(fvec2) ConstantComposite 85 86 + 90: 6(float) Constant 1077936128 + 91: 34(fvec3) ConstantComposite 85 86 90 + 94: 6(float) Constant 1082130432 + 95: 45(fvec4) ConstantComposite 85 86 90 94 + 99: TypePointer Input 45(fvec4) + 100(inF0): 99(ptr) Variable Input + 103(inF1): 99(ptr) Variable Input + 106(inF2): 99(ptr) Variable Input + 109: TypePointer Input 47(ivec4) + 110(inI0): 109(ptr) Variable Input + 112: TypePointer Output 45(fvec4) +113(@entryPointOutput): 112(ptr) Variable Output + 123: 23(fvec2) ConstantComposite 86 86 + 124: 56 ConstantComposite 123 123 + 127: 34(fvec3) ConstantComposite 90 90 90 + 128: 64 ConstantComposite 127 127 127 + 131: 45(fvec4) ConstantComposite 94 94 94 94 + 132: 72 ConstantComposite 131 131 131 131 + 135: TypeInt 32 0 + 136: TypePointer Private 135(int) + 137(gs_ua): 136(ptr) Variable Private + 138(gs_ub): 136(ptr) Variable Private + 139(gs_uc): 136(ptr) Variable Private + 140: TypeVector 135(int) 2 + 141: TypePointer Private 140(ivec2) + 142(gs_ua2): 141(ptr) Variable Private + 143(gs_ub2): 141(ptr) Variable Private + 144(gs_uc2): 141(ptr) Variable Private + 145: TypeVector 135(int) 3 + 146: TypePointer Private 145(ivec3) + 147(gs_ua3): 146(ptr) Variable Private + 148(gs_ub3): 146(ptr) Variable Private + 149(gs_uc3): 146(ptr) Variable Private + 150: TypeVector 135(int) 4 + 151: TypePointer Private 150(ivec4) + 152(gs_ua4): 151(ptr) Variable Private + 153(gs_ub4): 151(ptr) Variable Private + 154(gs_uc4): 151(ptr) Variable Private +4(VertexShaderFunction): 2 Function None 3 + 5: Label + 98(inF0): 46(ptr) Variable Function + 102(inF1): 46(ptr) Variable Function + 105(inF2): 46(ptr) Variable Function + 108(inI0): 48(ptr) Variable Function + 114(param): 46(ptr) Variable Function + 116(param): 46(ptr) Variable Function + 118(param): 46(ptr) Variable Function + 120(param): 48(ptr) Variable Function + 101: 45(fvec4) Load 100(inF0) + Store 98(inF0) 101 + 104: 45(fvec4) Load 103(inF1) + Store 102(inF1) 104 + 107: 45(fvec4) Load 106(inF2) + Store 105(inF2) 107 + 111: 47(ivec4) Load 110(inI0) + Store 108(inI0) 111 + 115: 45(fvec4) Load 98(inF0) + Store 114(param) 115 + 117: 45(fvec4) Load 102(inF1) + Store 116(param) 117 + 119: 45(fvec4) Load 105(inF2) + Store 118(param) 119 + 121: 47(ivec4) Load 108(inI0) + Store 120(param) 121 + 122: 45(fvec4) FunctionCall 54(@VertexShaderFunction(vf4;vf4;vf4;vi4;) 114(param) 116(param) 118(param) 120(param) + Store 113(@entryPointOutput) 122 + Return + FunctionEnd +15(VertexShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inI0): 9(ptr) FunctionParameter + 16: Label + ReturnValue 80 + FunctionEnd +21(VertexShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 + 17(inF0): 7(ptr) FunctionParameter + 18(inF1): 7(ptr) FunctionParameter + 19(inF2): 7(ptr) FunctionParameter + 20(inI0): 9(ptr) FunctionParameter + 22: Label + ReturnValue 80 + FunctionEnd +32(VertexShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 + 28(inF0): 24(ptr) FunctionParameter + 29(inF1): 24(ptr) FunctionParameter + 30(inF2): 24(ptr) FunctionParameter + 31(inI0): 26(ptr) FunctionParameter + 33: Label + ReturnValue 87 + FunctionEnd +43(VertexShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 + 39(inF0): 35(ptr) FunctionParameter + 40(inF1): 35(ptr) FunctionParameter + 41(inF2): 35(ptr) FunctionParameter + 42(inI0): 37(ptr) FunctionParameter + 44: Label + ReturnValue 91 + FunctionEnd +54(@VertexShaderFunction(vf4;vf4;vf4;vi4;): 45(fvec4) Function None 49 + 50(inF0): 46(ptr) FunctionParameter + 51(inF1): 46(ptr) FunctionParameter + 52(inF2): 46(ptr) FunctionParameter + 53(inI0): 48(ptr) FunctionParameter + 55: Label + ReturnValue 95 + FunctionEnd +62(VertexShaderFunction2x2(mf22;mf22;mf22;): 56 Function None 58 + 59(inF0): 57(ptr) FunctionParameter + 60(inF1): 57(ptr) FunctionParameter + 61(inF2): 57(ptr) FunctionParameter + 63: Label + ReturnValue 124 + FunctionEnd +70(VertexShaderFunction3x3(mf33;mf33;mf33;): 64 Function None 66 + 67(inF0): 65(ptr) FunctionParameter + 68(inF1): 65(ptr) FunctionParameter + 69(inF2): 65(ptr) FunctionParameter + 71: Label + ReturnValue 128 + FunctionEnd +78(VertexShaderFunction4x4(mf44;mf44;mf44;): 72 Function None 74 + 75(inF0): 73(ptr) FunctionParameter + 76(inF1): 73(ptr) FunctionParameter + 77(inF2): 73(ptr) FunctionParameter + 79: Label + ReturnValue 132 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out new file mode 100644 index 0000000000..a561dfe9a0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out @@ -0,0 +1,198 @@ +hlsl.intrinsics.promote.down.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp uint) +0:16 'r00' ( temp uint) +0:16 bitCount ( temp uint) +0:16 Convert float to uint ( temp uint) +0:16 f: direct index for structure ( uniform float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child ( temp 2-component vector of uint) +0:17 'r01' ( temp 2-component vector of uint) +0:17 bitFieldReverse ( temp 2-component vector of uint) +0:17 Convert float to uint ( temp 2-component vector of uint) +0:17 f2: direct index for structure ( uniform 2-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 color: direct index for structure ( temp 4-component vector of float) +0:20 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Branch: Return with expression +0:21 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:15 color: direct index for structure ( temp 4-component vector of float) +0:15 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:15 Constant: +0:15 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp uint) +0:16 'r00' ( temp uint) +0:16 bitCount ( temp uint) +0:16 Convert float to uint ( temp uint) +0:16 f: direct index for structure ( uniform float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child ( temp 2-component vector of uint) +0:17 'r01' ( temp 2-component vector of uint) +0:17 bitFieldReverse ( temp 2-component vector of uint) +0:17 Convert float to uint ( temp 2-component vector of uint) +0:17 f2: direct index for structure ( uniform 2-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 color: direct index for structure ( temp 4-component vector of float) +0:20 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Branch: Return with expression +0:21 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:15 color: direct index for structure ( temp 4-component vector of float) +0:15 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:15 Constant: +0:15 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 47 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 10 "@main(" + Name 14 "r00" + Name 19 "$Global" + MemberName 19($Global) 0 "i" + MemberName 19($Global) 1 "u" + MemberName 19($Global) 2 "f" + MemberName 19($Global) 3 "b" + MemberName 19($Global) 4 "i2" + MemberName 19($Global) 5 "u2" + MemberName 19($Global) 6 "f2" + MemberName 19($Global) 7 "b2" + Name 21 "" + Name 29 "r01" + Name 37 "ps_output" + Name 47 "@entryPointOutput.color" + MemberDecorate 19($Global) 0 Offset 0 + MemberDecorate 19($Global) 1 Offset 4 + MemberDecorate 19($Global) 2 Offset 8 + MemberDecorate 19($Global) 3 Offset 12 + MemberDecorate 19($Global) 4 Offset 16 + MemberDecorate 19($Global) 5 Offset 24 + MemberDecorate 19($Global) 6 Offset 32 + MemberDecorate 19($Global) 7 Offset 40 + Decorate 19($Global) Block + Decorate 21 DescriptorSet 0 + Decorate 47(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 15: TypeInt 32 1 + 16: TypeVector 15(int) 2 + 17: TypeVector 12(int) 2 + 18: TypeVector 6(float) 2 + 19($Global): TypeStruct 15(int) 12(int) 6(float) 12(int) 16(ivec2) 17(ivec2) 18(fvec2) 17(ivec2) + 20: TypePointer Uniform 19($Global) + 21: 20(ptr) Variable Uniform + 22: 15(int) Constant 2 + 23: TypePointer Uniform 6(float) + 28: TypePointer Function 17(ivec2) + 30: 15(int) Constant 6 + 31: TypePointer Uniform 18(fvec2) + 36: TypePointer Function 8(PS_OUTPUT) + 38: 15(int) Constant 0 + 39: 6(float) Constant 0 + 40: 7(fvec4) ConstantComposite 39 39 39 39 + 41: TypePointer Function 7(fvec4) + 46: TypePointer Output 7(fvec4) +47(@entryPointOutput.color): 46(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 48:8(PS_OUTPUT) FunctionCall 10(@main() + 49: 7(fvec4) CompositeExtract 48 0 + Store 47(@entryPointOutput.color) 49 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 14(r00): 13(ptr) Variable Function + 29(r01): 28(ptr) Variable Function + 37(ps_output): 36(ptr) Variable Function + 24: 23(ptr) AccessChain 21 22 + 25: 6(float) Load 24 + 26: 12(int) ConvertFToU 25 + 27: 12(int) BitCount 26 + Store 14(r00) 27 + 32: 31(ptr) AccessChain 21 30 + 33: 18(fvec2) Load 32 + 34: 17(ivec2) ConvertFToU 33 + 35: 17(ivec2) BitReverse 34 + Store 29(r01) 35 + 42: 41(ptr) AccessChain 37(ps_output) 38 + Store 42 40 + 43:8(PS_OUTPUT) Load 37(ps_output) + ReturnValue 43 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out new file mode 100644 index 0000000000..b064295a4e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -0,0 +1,1328 @@ +hlsl.intrinsics.promote.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'r00' ( temp float) +0:23 max ( temp float) +0:23 Convert bool to float ( temp float) +0:23 b: direct index for structure ( uniform bool) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure ( uniform float) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child ( temp uint) +0:24 'r01' ( temp uint) +0:24 max ( temp uint) +0:24 Convert bool to uint ( temp uint) +0:24 b: direct index for structure ( uniform bool) +0:24 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure ( uniform uint) +0:24 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'r02' ( temp int) +0:25 max ( temp int) +0:25 Convert bool to int ( temp int) +0:25 b: direct index for structure ( uniform bool) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure ( uniform int) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'r03' ( temp float) +0:26 max ( temp float) +0:26 Convert int to float ( temp float) +0:26 i: direct index for structure ( uniform int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure ( uniform float) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'r04' ( temp float) +0:27 max ( temp float) +0:27 Convert uint to float ( temp float) +0:27 u: direct index for structure ( uniform uint) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure ( uniform float) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp 2-component vector of float) +0:29 'r10' ( temp 2-component vector of float) +0:29 max ( temp 2-component vector of float) +0:29 Convert bool to float ( temp 2-component vector of float) +0:29 b2: direct index for structure ( uniform 2-component vector of bool) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure ( uniform 2-component vector of float) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child ( temp 2-component vector of uint) +0:30 'r11' ( temp 2-component vector of uint) +0:30 max ( temp 2-component vector of uint) +0:30 Convert bool to uint ( temp 2-component vector of uint) +0:30 b2: direct index for structure ( uniform 2-component vector of bool) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure ( uniform 2-component vector of uint) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child ( temp 2-component vector of int) +0:31 'r12' ( temp 2-component vector of int) +0:31 max ( temp 2-component vector of int) +0:31 Convert bool to int ( temp 2-component vector of int) +0:31 b2: direct index for structure ( uniform 2-component vector of bool) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure ( uniform 2-component vector of int) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child ( temp 2-component vector of float) +0:32 'r13' ( temp 2-component vector of float) +0:32 max ( temp 2-component vector of float) +0:32 Convert int to float ( temp 2-component vector of float) +0:32 i2: direct index for structure ( uniform 2-component vector of int) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure ( uniform 2-component vector of float) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 2-component vector of float) +0:33 'r14' ( temp 2-component vector of float) +0:33 max ( temp 2-component vector of float) +0:33 Convert uint to float ( temp 2-component vector of float) +0:33 u2: direct index for structure ( uniform 2-component vector of uint) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure ( uniform 2-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child ( temp 2-component vector of float) +0:35 'r20' ( temp 2-component vector of float) +0:35 clamp ( temp 2-component vector of float) +0:35 Convert int to float ( temp 2-component vector of float) +0:35 i2: direct index for structure ( uniform 2-component vector of int) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float ( temp 2-component vector of float) +0:35 u2: direct index for structure ( uniform 2-component vector of uint) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure ( uniform 2-component vector of float) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 'r21' ( temp 2-component vector of uint) +0:36 clamp ( temp 2-component vector of uint) +0:36 Convert bool to uint ( temp 2-component vector of uint) +0:36 b2: direct index for structure ( uniform 2-component vector of bool) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure ( uniform 2-component vector of uint) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint ( temp 2-component vector of uint) +0:36 b2: direct index for structure ( uniform 2-component vector of bool) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child ( temp 2-component vector of float) +0:37 'r22' ( temp 2-component vector of float) +0:37 clamp ( temp 2-component vector of float) +0:37 Convert bool to float ( temp 2-component vector of float) +0:37 b2: direct index for structure ( uniform 2-component vector of bool) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure ( uniform 2-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float ( temp 2-component vector of float) +0:37 b2: direct index for structure ( uniform 2-component vector of bool) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child ( temp 2-component vector of float) +0:40 'r30' ( temp 2-component vector of float) +0:40 max ( temp 2-component vector of float) +0:40 Construct vec2 ( in 2-component vector of float) +0:40 Convert bool to float ( temp float) +0:40 b: direct index for structure ( uniform bool) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure ( uniform 2-component vector of float) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of uint) +0:41 'r31' ( temp 2-component vector of uint) +0:41 max ( temp 2-component vector of uint) +0:41 Construct uvec2 ( in 2-component vector of uint) +0:41 Convert bool to uint ( temp uint) +0:41 b: direct index for structure ( uniform bool) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure ( uniform 2-component vector of uint) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child ( temp 2-component vector of int) +0:42 'r32' ( temp 2-component vector of int) +0:42 max ( temp 2-component vector of int) +0:42 Construct ivec2 ( in 2-component vector of int) +0:42 Convert bool to int ( temp int) +0:42 b: direct index for structure ( uniform bool) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure ( uniform 2-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child ( temp 2-component vector of float) +0:43 'r33' ( temp 2-component vector of float) +0:43 max ( temp 2-component vector of float) +0:43 Construct vec2 ( in 2-component vector of float) +0:43 Convert int to float ( temp float) +0:43 i: direct index for structure ( uniform int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure ( uniform 2-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child ( temp 2-component vector of float) +0:44 'r34' ( temp 2-component vector of float) +0:44 max ( temp 2-component vector of float) +0:44 Construct vec2 ( in 2-component vector of float) +0:44 Convert uint to float ( temp float) +0:44 u: direct index for structure ( uniform uint) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure ( uniform 2-component vector of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child ( temp 2-component vector of float) +0:46 'r40' ( temp 2-component vector of float) +0:46 clamp ( temp 2-component vector of float) +0:46 Construct vec2 ( in 2-component vector of float) +0:46 Convert int to float ( temp float) +0:46 i: direct index for structure ( uniform int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float ( temp 2-component vector of float) +0:46 u2: direct index for structure ( uniform 2-component vector of uint) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure ( uniform 2-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child ( temp 2-component vector of uint) +0:47 'r41' ( temp 2-component vector of uint) +0:47 clamp ( temp 2-component vector of uint) +0:47 Convert bool to uint ( temp 2-component vector of uint) +0:47 b2: direct index for structure ( uniform 2-component vector of bool) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 ( in 2-component vector of uint) +0:47 u: direct index for structure ( uniform uint) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint ( temp 2-component vector of uint) +0:47 b2: direct index for structure ( uniform 2-component vector of bool) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child ( temp 2-component vector of float) +0:48 'r42' ( temp 2-component vector of float) +0:48 clamp ( temp 2-component vector of float) +0:48 Convert bool to float ( temp 2-component vector of float) +0:48 b2: direct index for structure ( uniform 2-component vector of bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 ( in 2-component vector of float) +0:48 f: direct index for structure ( uniform float) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 ( in 2-component vector of float) +0:48 Convert bool to float ( temp float) +0:48 b: direct index for structure ( uniform bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child ( temp 2-component vector of int) +0:49 'r43' ( temp 2-component vector of int) +0:49 Convert uint to int ( temp 2-component vector of int) +0:49 clamp ( temp 2-component vector of uint) +0:49 Construct uvec2 ( in 2-component vector of uint) +0:49 Convert int to uint ( temp uint) +0:49 i: direct index for structure ( uniform int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint ( temp 2-component vector of uint) +0:49 i2: direct index for structure ( uniform 2-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure ( uniform 2-component vector of uint) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child ( temp float) +0:51 'r50' ( temp float) +0:51 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:51 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:51 Convert uint to int ( temp int) +0:51 upos: direct index for structure ( uniform uint) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r51' ( temp float) +0:52 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:52 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:52 Convert float to int ( temp int) +0:52 fpos: direct index for structure ( uniform float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 textureSize ( temp uint) +0:70 'g_tTex1df4' ( uniform texture1D) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child ( temp int) +0:70 'WidthI' ( temp int) +0:70 Convert uint to int ( temp int) +0:70 'sizeQueryTemp' ( temp uint) +0:71 Sequence +0:71 move second child to first child ( temp uint) +0:71 'sizeQueryTemp' ( temp uint) +0:71 textureSize ( temp uint) +0:71 'g_tTex1df4' ( uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child ( temp int) +0:71 'WidthI' ( temp int) +0:71 Convert uint to int ( temp int) +0:71 'sizeQueryTemp' ( temp uint) +0:71 move second child to first child ( temp uint) +0:71 'NumberOfLevelsU' ( temp uint) +0:71 textureQueryLevels ( temp uint) +0:71 'g_tTex1df4' ( uniform texture1D) +0:72 Sequence +0:72 move second child to first child ( temp uint) +0:72 'sizeQueryTemp' ( temp uint) +0:72 textureSize ( temp uint) +0:72 'g_tTex1df4' ( uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child ( temp uint) +0:72 'WidthU' ( temp uint) +0:72 'sizeQueryTemp' ( temp uint) +0:72 move second child to first child ( temp int) +0:72 'NumberOfLevelsI' ( temp int) +0:72 Convert uint to int ( temp int) +0:72 textureQueryLevels ( temp uint) +0:72 'g_tTex1df4' ( uniform texture1D) +0:73 Sequence +0:73 move second child to first child ( temp uint) +0:73 'sizeQueryTemp' ( temp uint) +0:73 textureSize ( temp uint) +0:73 'g_tTex1df4' ( uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child ( temp int) +0:73 'WidthI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 'sizeQueryTemp' ( temp uint) +0:73 move second child to first child ( temp int) +0:73 'NumberOfLevelsI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 textureQueryLevels ( temp uint) +0:73 'g_tTex1df4' ( uniform texture1D) +0:77 move second child to first child ( temp 4-component vector of float) +0:77 color: direct index for structure ( temp 4-component vector of float) +0:77 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 ( temp 4-component vector of float) +0:77 'r00' ( temp float) +0:78 Branch: Return with expression +0:78 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:20 color: direct index for structure ( temp 4-component vector of float) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTex1df4' ( uniform texture1D) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'r00' ( temp float) +0:23 max ( temp float) +0:23 Convert bool to float ( temp float) +0:23 b: direct index for structure ( uniform bool) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure ( uniform float) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child ( temp uint) +0:24 'r01' ( temp uint) +0:24 max ( temp uint) +0:24 Convert bool to uint ( temp uint) +0:24 b: direct index for structure ( uniform bool) +0:24 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure ( uniform uint) +0:24 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'r02' ( temp int) +0:25 max ( temp int) +0:25 Convert bool to int ( temp int) +0:25 b: direct index for structure ( uniform bool) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure ( uniform int) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'r03' ( temp float) +0:26 max ( temp float) +0:26 Convert int to float ( temp float) +0:26 i: direct index for structure ( uniform int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure ( uniform float) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'r04' ( temp float) +0:27 max ( temp float) +0:27 Convert uint to float ( temp float) +0:27 u: direct index for structure ( uniform uint) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure ( uniform float) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp 2-component vector of float) +0:29 'r10' ( temp 2-component vector of float) +0:29 max ( temp 2-component vector of float) +0:29 Convert bool to float ( temp 2-component vector of float) +0:29 b2: direct index for structure ( uniform 2-component vector of bool) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure ( uniform 2-component vector of float) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child ( temp 2-component vector of uint) +0:30 'r11' ( temp 2-component vector of uint) +0:30 max ( temp 2-component vector of uint) +0:30 Convert bool to uint ( temp 2-component vector of uint) +0:30 b2: direct index for structure ( uniform 2-component vector of bool) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure ( uniform 2-component vector of uint) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child ( temp 2-component vector of int) +0:31 'r12' ( temp 2-component vector of int) +0:31 max ( temp 2-component vector of int) +0:31 Convert bool to int ( temp 2-component vector of int) +0:31 b2: direct index for structure ( uniform 2-component vector of bool) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure ( uniform 2-component vector of int) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child ( temp 2-component vector of float) +0:32 'r13' ( temp 2-component vector of float) +0:32 max ( temp 2-component vector of float) +0:32 Convert int to float ( temp 2-component vector of float) +0:32 i2: direct index for structure ( uniform 2-component vector of int) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure ( uniform 2-component vector of float) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 2-component vector of float) +0:33 'r14' ( temp 2-component vector of float) +0:33 max ( temp 2-component vector of float) +0:33 Convert uint to float ( temp 2-component vector of float) +0:33 u2: direct index for structure ( uniform 2-component vector of uint) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure ( uniform 2-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child ( temp 2-component vector of float) +0:35 'r20' ( temp 2-component vector of float) +0:35 clamp ( temp 2-component vector of float) +0:35 Convert int to float ( temp 2-component vector of float) +0:35 i2: direct index for structure ( uniform 2-component vector of int) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float ( temp 2-component vector of float) +0:35 u2: direct index for structure ( uniform 2-component vector of uint) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure ( uniform 2-component vector of float) +0:35 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 'r21' ( temp 2-component vector of uint) +0:36 clamp ( temp 2-component vector of uint) +0:36 Convert bool to uint ( temp 2-component vector of uint) +0:36 b2: direct index for structure ( uniform 2-component vector of bool) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure ( uniform 2-component vector of uint) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint ( temp 2-component vector of uint) +0:36 b2: direct index for structure ( uniform 2-component vector of bool) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child ( temp 2-component vector of float) +0:37 'r22' ( temp 2-component vector of float) +0:37 clamp ( temp 2-component vector of float) +0:37 Convert bool to float ( temp 2-component vector of float) +0:37 b2: direct index for structure ( uniform 2-component vector of bool) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure ( uniform 2-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float ( temp 2-component vector of float) +0:37 b2: direct index for structure ( uniform 2-component vector of bool) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child ( temp 2-component vector of float) +0:40 'r30' ( temp 2-component vector of float) +0:40 max ( temp 2-component vector of float) +0:40 Construct vec2 ( in 2-component vector of float) +0:40 Convert bool to float ( temp float) +0:40 b: direct index for structure ( uniform bool) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure ( uniform 2-component vector of float) +0:40 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of uint) +0:41 'r31' ( temp 2-component vector of uint) +0:41 max ( temp 2-component vector of uint) +0:41 Construct uvec2 ( in 2-component vector of uint) +0:41 Convert bool to uint ( temp uint) +0:41 b: direct index for structure ( uniform bool) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure ( uniform 2-component vector of uint) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child ( temp 2-component vector of int) +0:42 'r32' ( temp 2-component vector of int) +0:42 max ( temp 2-component vector of int) +0:42 Construct ivec2 ( in 2-component vector of int) +0:42 Convert bool to int ( temp int) +0:42 b: direct index for structure ( uniform bool) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure ( uniform 2-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child ( temp 2-component vector of float) +0:43 'r33' ( temp 2-component vector of float) +0:43 max ( temp 2-component vector of float) +0:43 Construct vec2 ( in 2-component vector of float) +0:43 Convert int to float ( temp float) +0:43 i: direct index for structure ( uniform int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure ( uniform 2-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child ( temp 2-component vector of float) +0:44 'r34' ( temp 2-component vector of float) +0:44 max ( temp 2-component vector of float) +0:44 Construct vec2 ( in 2-component vector of float) +0:44 Convert uint to float ( temp float) +0:44 u: direct index for structure ( uniform uint) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure ( uniform 2-component vector of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child ( temp 2-component vector of float) +0:46 'r40' ( temp 2-component vector of float) +0:46 clamp ( temp 2-component vector of float) +0:46 Construct vec2 ( in 2-component vector of float) +0:46 Convert int to float ( temp float) +0:46 i: direct index for structure ( uniform int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float ( temp 2-component vector of float) +0:46 u2: direct index for structure ( uniform 2-component vector of uint) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure ( uniform 2-component vector of float) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child ( temp 2-component vector of uint) +0:47 'r41' ( temp 2-component vector of uint) +0:47 clamp ( temp 2-component vector of uint) +0:47 Convert bool to uint ( temp 2-component vector of uint) +0:47 b2: direct index for structure ( uniform 2-component vector of bool) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 ( in 2-component vector of uint) +0:47 u: direct index for structure ( uniform uint) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint ( temp 2-component vector of uint) +0:47 b2: direct index for structure ( uniform 2-component vector of bool) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child ( temp 2-component vector of float) +0:48 'r42' ( temp 2-component vector of float) +0:48 clamp ( temp 2-component vector of float) +0:48 Convert bool to float ( temp 2-component vector of float) +0:48 b2: direct index for structure ( uniform 2-component vector of bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 ( in 2-component vector of float) +0:48 f: direct index for structure ( uniform float) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 ( in 2-component vector of float) +0:48 Convert bool to float ( temp float) +0:48 b: direct index for structure ( uniform bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child ( temp 2-component vector of int) +0:49 'r43' ( temp 2-component vector of int) +0:49 Convert uint to int ( temp 2-component vector of int) +0:49 clamp ( temp 2-component vector of uint) +0:49 Construct uvec2 ( in 2-component vector of uint) +0:49 Convert int to uint ( temp uint) +0:49 i: direct index for structure ( uniform int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint ( temp 2-component vector of uint) +0:49 i2: direct index for structure ( uniform 2-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure ( uniform 2-component vector of uint) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child ( temp float) +0:51 'r50' ( temp float) +0:51 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:51 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:51 Convert uint to int ( temp int) +0:51 upos: direct index for structure ( uniform uint) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r51' ( temp float) +0:52 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:52 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:52 Convert float to int ( temp int) +0:52 fpos: direct index for structure ( uniform float) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp uint) +0:70 'sizeQueryTemp' ( temp uint) +0:70 textureSize ( temp uint) +0:70 'g_tTex1df4' ( uniform texture1D) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child ( temp int) +0:70 'WidthI' ( temp int) +0:70 Convert uint to int ( temp int) +0:70 'sizeQueryTemp' ( temp uint) +0:71 Sequence +0:71 move second child to first child ( temp uint) +0:71 'sizeQueryTemp' ( temp uint) +0:71 textureSize ( temp uint) +0:71 'g_tTex1df4' ( uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child ( temp int) +0:71 'WidthI' ( temp int) +0:71 Convert uint to int ( temp int) +0:71 'sizeQueryTemp' ( temp uint) +0:71 move second child to first child ( temp uint) +0:71 'NumberOfLevelsU' ( temp uint) +0:71 textureQueryLevels ( temp uint) +0:71 'g_tTex1df4' ( uniform texture1D) +0:72 Sequence +0:72 move second child to first child ( temp uint) +0:72 'sizeQueryTemp' ( temp uint) +0:72 textureSize ( temp uint) +0:72 'g_tTex1df4' ( uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child ( temp uint) +0:72 'WidthU' ( temp uint) +0:72 'sizeQueryTemp' ( temp uint) +0:72 move second child to first child ( temp int) +0:72 'NumberOfLevelsI' ( temp int) +0:72 Convert uint to int ( temp int) +0:72 textureQueryLevels ( temp uint) +0:72 'g_tTex1df4' ( uniform texture1D) +0:73 Sequence +0:73 move second child to first child ( temp uint) +0:73 'sizeQueryTemp' ( temp uint) +0:73 textureSize ( temp uint) +0:73 'g_tTex1df4' ( uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child ( temp int) +0:73 'WidthI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 'sizeQueryTemp' ( temp uint) +0:73 move second child to first child ( temp int) +0:73 'NumberOfLevelsI' ( temp int) +0:73 Convert uint to int ( temp int) +0:73 textureQueryLevels ( temp uint) +0:73 'g_tTex1df4' ( uniform texture1D) +0:77 move second child to first child ( temp 4-component vector of float) +0:77 color: direct index for structure ( temp 4-component vector of float) +0:77 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 ( temp 4-component vector of float) +0:77 'r00' ( temp float) +0:78 Branch: Return with expression +0:78 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:20 color: direct index for structure ( temp 4-component vector of float) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTex1df4' ( uniform texture1D) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 322 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 319 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 10 "@main(" + Name 13 "r00" + Name 19 "$Global" + MemberName 19($Global) 0 "i" + MemberName 19($Global) 1 "u" + MemberName 19($Global) 2 "f" + MemberName 19($Global) 3 "b" + MemberName 19($Global) 4 "i2" + MemberName 19($Global) 5 "u2" + MemberName 19($Global) 6 "f2" + MemberName 19($Global) 7 "b2" + MemberName 19($Global) 8 "upos" + MemberName 19($Global) 9 "fpos" + Name 21 "" + Name 38 "r01" + Name 49 "r02" + Name 59 "r03" + Name 66 "r04" + Name 74 "r10" + Name 91 "r11" + Name 102 "r12" + Name 114 "r13" + Name 121 "r14" + Name 128 "r20" + Name 138 "r21" + Name 150 "r22" + Name 162 "r30" + Name 171 "r31" + Name 180 "r32" + Name 189 "r33" + Name 197 "r34" + Name 205 "r40" + Name 216 "r41" + Name 229 "r42" + Name 243 "r43" + Name 255 "r50" + Name 258 "g_tTexbfs" + Name 266 "r51" + Name 274 "sizeQueryTemp" + Name 277 "g_tTex1df4" + Name 280 "WidthI" + Name 283 "sizeQueryTemp" + Name 289 "NumberOfLevelsU" + Name 292 "sizeQueryTemp" + Name 295 "WidthU" + Name 297 "NumberOfLevelsI" + Name 301 "sizeQueryTemp" + Name 310 "ps_output" + Name 319 "@entryPointOutput.color" + MemberDecorate 19($Global) 0 Offset 0 + MemberDecorate 19($Global) 1 Offset 4 + MemberDecorate 19($Global) 2 Offset 8 + MemberDecorate 19($Global) 3 Offset 12 + MemberDecorate 19($Global) 4 Offset 16 + MemberDecorate 19($Global) 5 Offset 24 + MemberDecorate 19($Global) 6 Offset 32 + MemberDecorate 19($Global) 7 Offset 40 + MemberDecorate 19($Global) 8 Offset 48 + MemberDecorate 19($Global) 9 Offset 52 + Decorate 19($Global) Block + Decorate 21 DescriptorSet 0 + Decorate 258(g_tTexbfs) DescriptorSet 0 + Decorate 277(g_tTex1df4) DescriptorSet 0 + Decorate 319(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeInt 32 1 + 15: TypeInt 32 0 + 16: TypeVector 14(int) 2 + 17: TypeVector 15(int) 2 + 18: TypeVector 6(float) 2 + 19($Global): TypeStruct 14(int) 15(int) 6(float) 15(int) 16(ivec2) 17(ivec2) 18(fvec2) 17(ivec2) 15(int) 6(float) + 20: TypePointer Uniform 19($Global) + 21: 20(ptr) Variable Uniform + 22: 14(int) Constant 3 + 23: TypePointer Uniform 15(int) + 26: TypeBool + 27: 15(int) Constant 0 + 29: 6(float) Constant 0 + 30: 6(float) Constant 1065353216 + 32: 14(int) Constant 2 + 33: TypePointer Uniform 6(float) + 37: TypePointer Function 15(int) + 42: 15(int) Constant 1 + 44: 14(int) Constant 1 + 48: TypePointer Function 14(int) + 53: 14(int) Constant 0 + 55: TypePointer Uniform 14(int) + 73: TypePointer Function 18(fvec2) + 75: 14(int) Constant 7 + 76: TypePointer Uniform 17(ivec2) + 79: TypeVector 26(bool) 2 + 80: 17(ivec2) ConstantComposite 27 27 + 82: 18(fvec2) ConstantComposite 29 29 + 83: 18(fvec2) ConstantComposite 30 30 + 85: 14(int) Constant 6 + 86: TypePointer Uniform 18(fvec2) + 90: TypePointer Function 17(ivec2) + 95: 17(ivec2) ConstantComposite 42 42 + 97: 14(int) Constant 5 + 101: TypePointer Function 16(ivec2) + 106: 16(ivec2) ConstantComposite 53 53 + 107: 16(ivec2) ConstantComposite 44 44 + 109: 14(int) Constant 4 + 110: TypePointer Uniform 16(ivec2) + 256: TypeImage 6(float) Buffer sampled format:R32f + 257: TypePointer UniformConstant 256 + 258(g_tTexbfs): 257(ptr) Variable UniformConstant + 260: 14(int) Constant 8 + 268: 14(int) Constant 9 + 275: TypeImage 6(float) 1D sampled format:Unknown + 276: TypePointer UniformConstant 275 + 277(g_tTex1df4): 276(ptr) Variable UniformConstant + 285: 15(int) Constant 6 + 309: TypePointer Function 8(PS_OUTPUT) + 313: TypePointer Function 7(fvec4) + 318: TypePointer Output 7(fvec4) +319(@entryPointOutput.color): 318(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 320:8(PS_OUTPUT) FunctionCall 10(@main() + 321: 7(fvec4) CompositeExtract 320 0 + Store 319(@entryPointOutput.color) 321 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 38(r01): 37(ptr) Variable Function + 49(r02): 48(ptr) Variable Function + 59(r03): 12(ptr) Variable Function + 66(r04): 12(ptr) Variable Function + 74(r10): 73(ptr) Variable Function + 91(r11): 90(ptr) Variable Function + 102(r12): 101(ptr) Variable Function + 114(r13): 73(ptr) Variable Function + 121(r14): 73(ptr) Variable Function + 128(r20): 73(ptr) Variable Function + 138(r21): 90(ptr) Variable Function + 150(r22): 73(ptr) Variable Function + 162(r30): 73(ptr) Variable Function + 171(r31): 90(ptr) Variable Function + 180(r32): 101(ptr) Variable Function + 189(r33): 73(ptr) Variable Function + 197(r34): 73(ptr) Variable Function + 205(r40): 73(ptr) Variable Function + 216(r41): 90(ptr) Variable Function + 229(r42): 73(ptr) Variable Function + 243(r43): 101(ptr) Variable Function + 255(r50): 12(ptr) Variable Function + 266(r51): 12(ptr) Variable Function +274(sizeQueryTemp): 37(ptr) Variable Function + 280(WidthI): 48(ptr) Variable Function +283(sizeQueryTemp): 37(ptr) Variable Function +289(NumberOfLevelsU): 37(ptr) Variable Function +292(sizeQueryTemp): 37(ptr) Variable Function + 295(WidthU): 37(ptr) Variable Function +297(NumberOfLevelsI): 48(ptr) Variable Function +301(sizeQueryTemp): 37(ptr) Variable Function + 310(ps_output): 309(ptr) Variable Function + 24: 23(ptr) AccessChain 21 22 + 25: 15(int) Load 24 + 28: 26(bool) INotEqual 25 27 + 31: 6(float) Select 28 30 29 + 34: 33(ptr) AccessChain 21 32 + 35: 6(float) Load 34 + 36: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 31 35 + Store 13(r00) 36 + 39: 23(ptr) AccessChain 21 22 + 40: 15(int) Load 39 + 41: 26(bool) INotEqual 40 27 + 43: 15(int) Select 41 42 27 + 45: 23(ptr) AccessChain 21 44 + 46: 15(int) Load 45 + 47: 15(int) ExtInst 1(GLSL.std.450) 41(UMax) 43 46 + Store 38(r01) 47 + 50: 23(ptr) AccessChain 21 22 + 51: 15(int) Load 50 + 52: 26(bool) INotEqual 51 27 + 54: 14(int) Select 52 44 53 + 56: 55(ptr) AccessChain 21 53 + 57: 14(int) Load 56 + 58: 14(int) ExtInst 1(GLSL.std.450) 42(SMax) 54 57 + Store 49(r02) 58 + 60: 55(ptr) AccessChain 21 53 + 61: 14(int) Load 60 + 62: 6(float) ConvertSToF 61 + 63: 33(ptr) AccessChain 21 32 + 64: 6(float) Load 63 + 65: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 62 64 + Store 59(r03) 65 + 67: 23(ptr) AccessChain 21 44 + 68: 15(int) Load 67 + 69: 6(float) ConvertUToF 68 + 70: 33(ptr) AccessChain 21 32 + 71: 6(float) Load 70 + 72: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 69 71 + Store 66(r04) 72 + 77: 76(ptr) AccessChain 21 75 + 78: 17(ivec2) Load 77 + 81: 79(bvec2) INotEqual 78 80 + 84: 18(fvec2) Select 81 83 82 + 87: 86(ptr) AccessChain 21 85 + 88: 18(fvec2) Load 87 + 89: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 84 88 + Store 74(r10) 89 + 92: 76(ptr) AccessChain 21 75 + 93: 17(ivec2) Load 92 + 94: 79(bvec2) INotEqual 93 80 + 96: 17(ivec2) Select 94 95 80 + 98: 76(ptr) AccessChain 21 97 + 99: 17(ivec2) Load 98 + 100: 17(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 96 99 + Store 91(r11) 100 + 103: 76(ptr) AccessChain 21 75 + 104: 17(ivec2) Load 103 + 105: 79(bvec2) INotEqual 104 80 + 108: 16(ivec2) Select 105 107 106 + 111: 110(ptr) AccessChain 21 109 + 112: 16(ivec2) Load 111 + 113: 16(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 108 112 + Store 102(r12) 113 + 115: 110(ptr) AccessChain 21 109 + 116: 16(ivec2) Load 115 + 117: 18(fvec2) ConvertSToF 116 + 118: 86(ptr) AccessChain 21 85 + 119: 18(fvec2) Load 118 + 120: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 117 119 + Store 114(r13) 120 + 122: 76(ptr) AccessChain 21 97 + 123: 17(ivec2) Load 122 + 124: 18(fvec2) ConvertUToF 123 + 125: 86(ptr) AccessChain 21 85 + 126: 18(fvec2) Load 125 + 127: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 124 126 + Store 121(r14) 127 + 129: 110(ptr) AccessChain 21 109 + 130: 16(ivec2) Load 129 + 131: 18(fvec2) ConvertSToF 130 + 132: 76(ptr) AccessChain 21 97 + 133: 17(ivec2) Load 132 + 134: 18(fvec2) ConvertUToF 133 + 135: 86(ptr) AccessChain 21 85 + 136: 18(fvec2) Load 135 + 137: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 131 134 136 + Store 128(r20) 137 + 139: 76(ptr) AccessChain 21 75 + 140: 17(ivec2) Load 139 + 141: 79(bvec2) INotEqual 140 80 + 142: 17(ivec2) Select 141 95 80 + 143: 76(ptr) AccessChain 21 97 + 144: 17(ivec2) Load 143 + 145: 76(ptr) AccessChain 21 75 + 146: 17(ivec2) Load 145 + 147: 79(bvec2) INotEqual 146 80 + 148: 17(ivec2) Select 147 95 80 + 149: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 142 144 148 + Store 138(r21) 149 + 151: 76(ptr) AccessChain 21 75 + 152: 17(ivec2) Load 151 + 153: 79(bvec2) INotEqual 152 80 + 154: 18(fvec2) Select 153 83 82 + 155: 86(ptr) AccessChain 21 85 + 156: 18(fvec2) Load 155 + 157: 76(ptr) AccessChain 21 75 + 158: 17(ivec2) Load 157 + 159: 79(bvec2) INotEqual 158 80 + 160: 18(fvec2) Select 159 83 82 + 161: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 154 156 160 + Store 150(r22) 161 + 163: 23(ptr) AccessChain 21 22 + 164: 15(int) Load 163 + 165: 26(bool) INotEqual 164 27 + 166: 6(float) Select 165 30 29 + 167: 18(fvec2) CompositeConstruct 166 166 + 168: 86(ptr) AccessChain 21 85 + 169: 18(fvec2) Load 168 + 170: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 167 169 + Store 162(r30) 170 + 172: 23(ptr) AccessChain 21 22 + 173: 15(int) Load 172 + 174: 26(bool) INotEqual 173 27 + 175: 15(int) Select 174 42 27 + 176: 17(ivec2) CompositeConstruct 175 175 + 177: 76(ptr) AccessChain 21 97 + 178: 17(ivec2) Load 177 + 179: 17(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 176 178 + Store 171(r31) 179 + 181: 23(ptr) AccessChain 21 22 + 182: 15(int) Load 181 + 183: 26(bool) INotEqual 182 27 + 184: 14(int) Select 183 44 53 + 185: 16(ivec2) CompositeConstruct 184 184 + 186: 110(ptr) AccessChain 21 109 + 187: 16(ivec2) Load 186 + 188: 16(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 185 187 + Store 180(r32) 188 + 190: 55(ptr) AccessChain 21 53 + 191: 14(int) Load 190 + 192: 6(float) ConvertSToF 191 + 193: 18(fvec2) CompositeConstruct 192 192 + 194: 86(ptr) AccessChain 21 85 + 195: 18(fvec2) Load 194 + 196: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 193 195 + Store 189(r33) 196 + 198: 23(ptr) AccessChain 21 44 + 199: 15(int) Load 198 + 200: 6(float) ConvertUToF 199 + 201: 18(fvec2) CompositeConstruct 200 200 + 202: 86(ptr) AccessChain 21 85 + 203: 18(fvec2) Load 202 + 204: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 201 203 + Store 197(r34) 204 + 206: 55(ptr) AccessChain 21 53 + 207: 14(int) Load 206 + 208: 6(float) ConvertSToF 207 + 209: 18(fvec2) CompositeConstruct 208 208 + 210: 76(ptr) AccessChain 21 97 + 211: 17(ivec2) Load 210 + 212: 18(fvec2) ConvertUToF 211 + 213: 86(ptr) AccessChain 21 85 + 214: 18(fvec2) Load 213 + 215: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 209 212 214 + Store 205(r40) 215 + 217: 76(ptr) AccessChain 21 75 + 218: 17(ivec2) Load 217 + 219: 79(bvec2) INotEqual 218 80 + 220: 17(ivec2) Select 219 95 80 + 221: 23(ptr) AccessChain 21 44 + 222: 15(int) Load 221 + 223: 17(ivec2) CompositeConstruct 222 222 + 224: 76(ptr) AccessChain 21 75 + 225: 17(ivec2) Load 224 + 226: 79(bvec2) INotEqual 225 80 + 227: 17(ivec2) Select 226 95 80 + 228: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 220 223 227 + Store 216(r41) 228 + 230: 76(ptr) AccessChain 21 75 + 231: 17(ivec2) Load 230 + 232: 79(bvec2) INotEqual 231 80 + 233: 18(fvec2) Select 232 83 82 + 234: 33(ptr) AccessChain 21 32 + 235: 6(float) Load 234 + 236: 18(fvec2) CompositeConstruct 235 235 + 237: 23(ptr) AccessChain 21 22 + 238: 15(int) Load 237 + 239: 26(bool) INotEqual 238 27 + 240: 6(float) Select 239 30 29 + 241: 18(fvec2) CompositeConstruct 240 240 + 242: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 233 236 241 + Store 229(r42) 242 + 244: 55(ptr) AccessChain 21 53 + 245: 14(int) Load 244 + 246: 15(int) Bitcast 245 + 247: 17(ivec2) CompositeConstruct 246 246 + 248: 110(ptr) AccessChain 21 109 + 249: 16(ivec2) Load 248 + 250: 17(ivec2) Bitcast 249 + 251: 76(ptr) AccessChain 21 97 + 252: 17(ivec2) Load 251 + 253: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 247 250 252 + 254: 16(ivec2) Bitcast 253 + Store 243(r43) 254 + 259: 256 Load 258(g_tTexbfs) + 261: 23(ptr) AccessChain 21 260 + 262: 15(int) Load 261 + 263: 14(int) Bitcast 262 + 264: 7(fvec4) ImageFetch 259 263 + 265: 6(float) CompositeExtract 264 0 + Store 255(r50) 265 + 267: 256 Load 258(g_tTexbfs) + 269: 33(ptr) AccessChain 21 268 + 270: 6(float) Load 269 + 271: 14(int) ConvertFToS 270 + 272: 7(fvec4) ImageFetch 267 271 + 273: 6(float) CompositeExtract 272 0 + Store 266(r51) 273 + 278: 275 Load 277(g_tTex1df4) + 279: 15(int) ImageQuerySizeLod 278 53 + Store 274(sizeQueryTemp) 279 + 281: 15(int) Load 274(sizeQueryTemp) + 282: 14(int) Bitcast 281 + Store 280(WidthI) 282 + 284: 275 Load 277(g_tTex1df4) + 286: 15(int) ImageQuerySizeLod 284 285 + Store 283(sizeQueryTemp) 286 + 287: 15(int) Load 283(sizeQueryTemp) + 288: 14(int) Bitcast 287 + Store 280(WidthI) 288 + 290: 275 Load 277(g_tTex1df4) + 291: 15(int) ImageQueryLevels 290 + Store 289(NumberOfLevelsU) 291 + 293: 275 Load 277(g_tTex1df4) + 294: 15(int) ImageQuerySizeLod 293 285 + Store 292(sizeQueryTemp) 294 + 296: 15(int) Load 292(sizeQueryTemp) + Store 295(WidthU) 296 + 298: 275 Load 277(g_tTex1df4) + 299: 15(int) ImageQueryLevels 298 + 300: 14(int) Bitcast 299 + Store 297(NumberOfLevelsI) 300 + 302: 275 Load 277(g_tTex1df4) + 303: 15(int) ImageQuerySizeLod 302 285 + Store 301(sizeQueryTemp) 303 + 304: 15(int) Load 301(sizeQueryTemp) + 305: 14(int) Bitcast 304 + Store 280(WidthI) 305 + 306: 275 Load 277(g_tTex1df4) + 307: 15(int) ImageQueryLevels 306 + 308: 14(int) Bitcast 307 + Store 297(NumberOfLevelsI) 308 + 311: 6(float) Load 13(r00) + 312: 7(fvec4) CompositeConstruct 311 311 311 311 + 314: 313(ptr) AccessChain 310(ps_output) 53 + Store 314 312 + 315:8(PS_OUTPUT) Load 310(ps_output) + ReturnValue 315 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out new file mode 100644 index 0000000000..57dfafc47f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -0,0 +1,354 @@ +hlsl.intrinsics.promote.outputs.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp ( temp float) +0:37 fpos: direct index for structure ( uniform float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child ( temp uint) +0:40 'sizeQueryTemp' ( temp uint) +0:40 textureSize ( temp uint) +0:40 'g_tTex1df4' ( uniform texture1D) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child ( temp int) +0:40 'WidthI' ( temp int) +0:40 Convert uint to int ( temp int) +0:40 'sizeQueryTemp' ( temp uint) +0:41 Sequence +0:41 move second child to first child ( temp uint) +0:41 'sizeQueryTemp' ( temp uint) +0:41 textureSize ( temp uint) +0:41 'g_tTex1df4' ( uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child ( temp int) +0:41 'WidthI' ( temp int) +0:41 Convert uint to int ( temp int) +0:41 'sizeQueryTemp' ( temp uint) +0:41 move second child to first child ( temp uint) +0:41 'NumberOfLevelsU' ( temp uint) +0:41 textureQueryLevels ( temp uint) +0:41 'g_tTex1df4' ( uniform texture1D) +0:42 Sequence +0:42 move second child to first child ( temp uint) +0:42 'sizeQueryTemp' ( temp uint) +0:42 textureSize ( temp uint) +0:42 'g_tTex1df4' ( uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child ( temp uint) +0:42 'WidthU' ( temp uint) +0:42 'sizeQueryTemp' ( temp uint) +0:42 move second child to first child ( temp int) +0:42 'NumberOfLevelsI' ( temp int) +0:42 Convert uint to int ( temp int) +0:42 textureQueryLevels ( temp uint) +0:42 'g_tTex1df4' ( uniform texture1D) +0:43 Sequence +0:43 move second child to first child ( temp uint) +0:43 'sizeQueryTemp' ( temp uint) +0:43 textureSize ( temp uint) +0:43 'g_tTex1df4' ( uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child ( temp int) +0:43 'WidthI' ( temp int) +0:43 Convert uint to int ( temp int) +0:43 'sizeQueryTemp' ( temp uint) +0:43 move second child to first child ( temp int) +0:43 'NumberOfLevelsI' ( temp int) +0:43 Convert uint to int ( temp int) +0:43 textureQueryLevels ( temp uint) +0:43 'g_tTex1df4' ( uniform texture1D) +0:47 move second child to first child ( temp 4-component vector of float) +0:47 color: direct index for structure ( temp 4-component vector of float) +0:47 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Branch: Return with expression +0:48 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:20 color: direct index for structure ( temp 4-component vector of float) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTex1df4' ( uniform texture1D) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp ( temp float) +0:37 fpos: direct index for structure ( uniform float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child ( temp uint) +0:40 'sizeQueryTemp' ( temp uint) +0:40 textureSize ( temp uint) +0:40 'g_tTex1df4' ( uniform texture1D) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child ( temp int) +0:40 'WidthI' ( temp int) +0:40 Convert uint to int ( temp int) +0:40 'sizeQueryTemp' ( temp uint) +0:41 Sequence +0:41 move second child to first child ( temp uint) +0:41 'sizeQueryTemp' ( temp uint) +0:41 textureSize ( temp uint) +0:41 'g_tTex1df4' ( uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child ( temp int) +0:41 'WidthI' ( temp int) +0:41 Convert uint to int ( temp int) +0:41 'sizeQueryTemp' ( temp uint) +0:41 move second child to first child ( temp uint) +0:41 'NumberOfLevelsU' ( temp uint) +0:41 textureQueryLevels ( temp uint) +0:41 'g_tTex1df4' ( uniform texture1D) +0:42 Sequence +0:42 move second child to first child ( temp uint) +0:42 'sizeQueryTemp' ( temp uint) +0:42 textureSize ( temp uint) +0:42 'g_tTex1df4' ( uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child ( temp uint) +0:42 'WidthU' ( temp uint) +0:42 'sizeQueryTemp' ( temp uint) +0:42 move second child to first child ( temp int) +0:42 'NumberOfLevelsI' ( temp int) +0:42 Convert uint to int ( temp int) +0:42 textureQueryLevels ( temp uint) +0:42 'g_tTex1df4' ( uniform texture1D) +0:43 Sequence +0:43 move second child to first child ( temp uint) +0:43 'sizeQueryTemp' ( temp uint) +0:43 textureSize ( temp uint) +0:43 'g_tTex1df4' ( uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child ( temp int) +0:43 'WidthI' ( temp int) +0:43 Convert uint to int ( temp int) +0:43 'sizeQueryTemp' ( temp uint) +0:43 move second child to first child ( temp int) +0:43 'NumberOfLevelsI' ( temp int) +0:43 Convert uint to int ( temp int) +0:43 textureQueryLevels ( temp uint) +0:43 'g_tTex1df4' ( uniform texture1D) +0:47 move second child to first child ( temp 4-component vector of float) +0:47 color: direct index for structure ( temp 4-component vector of float) +0:47 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Branch: Return with expression +0:48 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:20 color: direct index for structure ( temp 4-component vector of float) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTex1df4' ( uniform texture1D) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 80 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 10 "@main(" + Name 17 "$Global" + MemberName 17($Global) 0 "i" + MemberName 17($Global) 1 "u" + MemberName 17($Global) 2 "f" + MemberName 17($Global) 3 "b" + MemberName 17($Global) 4 "i2" + MemberName 17($Global) 5 "u2" + MemberName 17($Global) 6 "f2" + MemberName 17($Global) 7 "b2" + MemberName 17($Global) 8 "upos" + MemberName 17($Global) 9 "fpos" + Name 19 "" + Name 28 "sizeQueryTemp" + Name 31 "g_tTex1df4" + Name 36 "WidthI" + Name 39 "sizeQueryTemp" + Name 45 "NumberOfLevelsU" + Name 48 "sizeQueryTemp" + Name 51 "WidthU" + Name 53 "NumberOfLevelsI" + Name 57 "sizeQueryTemp" + Name 66 "ps_output" + Name 74 "@entryPointOutput.color" + Name 79 "g_tTexbfs" + MemberDecorate 17($Global) 0 Offset 0 + MemberDecorate 17($Global) 1 Offset 4 + MemberDecorate 17($Global) 2 Offset 8 + MemberDecorate 17($Global) 3 Offset 12 + MemberDecorate 17($Global) 4 Offset 16 + MemberDecorate 17($Global) 5 Offset 24 + MemberDecorate 17($Global) 6 Offset 32 + MemberDecorate 17($Global) 7 Offset 40 + MemberDecorate 17($Global) 8 Offset 48 + MemberDecorate 17($Global) 9 Offset 52 + Decorate 17($Global) Block + Decorate 19 DescriptorSet 0 + Decorate 31(g_tTex1df4) DescriptorSet 0 + Decorate 74(@entryPointOutput.color) Location 0 + Decorate 79(g_tTexbfs) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13: TypeInt 32 0 + 14: TypeVector 12(int) 2 + 15: TypeVector 13(int) 2 + 16: TypeVector 6(float) 2 + 17($Global): TypeStruct 12(int) 13(int) 6(float) 13(int) 14(ivec2) 15(ivec2) 16(fvec2) 15(ivec2) 13(int) 6(float) + 18: TypePointer Uniform 17($Global) + 19: 18(ptr) Variable Uniform + 20: 12(int) Constant 9 + 21: TypePointer Uniform 6(float) + 24: 6(float) Constant 0 + 25: 6(float) Constant 1065353216 + 27: TypePointer Function 13(int) + 29: TypeImage 6(float) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1df4): 30(ptr) Variable UniformConstant + 33: 12(int) Constant 0 + 35: TypePointer Function 12(int) + 41: 13(int) Constant 6 + 65: TypePointer Function 8(PS_OUTPUT) + 67: 7(fvec4) ConstantComposite 24 24 24 24 + 68: TypePointer Function 7(fvec4) + 73: TypePointer Output 7(fvec4) +74(@entryPointOutput.color): 73(ptr) Variable Output + 77: TypeImage 6(float) Buffer sampled format:R32f + 78: TypePointer UniformConstant 77 + 79(g_tTexbfs): 78(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 75:8(PS_OUTPUT) FunctionCall 10(@main() + 76: 7(fvec4) CompositeExtract 75 0 + Store 74(@entryPointOutput.color) 76 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label +28(sizeQueryTemp): 27(ptr) Variable Function + 36(WidthI): 35(ptr) Variable Function +39(sizeQueryTemp): 27(ptr) Variable Function +45(NumberOfLevelsU): 27(ptr) Variable Function +48(sizeQueryTemp): 27(ptr) Variable Function + 51(WidthU): 27(ptr) Variable Function +53(NumberOfLevelsI): 35(ptr) Variable Function +57(sizeQueryTemp): 27(ptr) Variable Function + 66(ps_output): 65(ptr) Variable Function + 22: 21(ptr) AccessChain 19 20 + 23: 6(float) Load 22 + 26: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 23 24 25 + 32: 29 Load 31(g_tTex1df4) + 34: 13(int) ImageQuerySizeLod 32 33 + Store 28(sizeQueryTemp) 34 + 37: 13(int) Load 28(sizeQueryTemp) + 38: 12(int) Bitcast 37 + Store 36(WidthI) 38 + 40: 29 Load 31(g_tTex1df4) + 42: 13(int) ImageQuerySizeLod 40 41 + Store 39(sizeQueryTemp) 42 + 43: 13(int) Load 39(sizeQueryTemp) + 44: 12(int) Bitcast 43 + Store 36(WidthI) 44 + 46: 29 Load 31(g_tTex1df4) + 47: 13(int) ImageQueryLevels 46 + Store 45(NumberOfLevelsU) 47 + 49: 29 Load 31(g_tTex1df4) + 50: 13(int) ImageQuerySizeLod 49 41 + Store 48(sizeQueryTemp) 50 + 52: 13(int) Load 48(sizeQueryTemp) + Store 51(WidthU) 52 + 54: 29 Load 31(g_tTex1df4) + 55: 13(int) ImageQueryLevels 54 + 56: 12(int) Bitcast 55 + Store 53(NumberOfLevelsI) 56 + 58: 29 Load 31(g_tTex1df4) + 59: 13(int) ImageQuerySizeLod 58 41 + Store 57(sizeQueryTemp) 59 + 60: 13(int) Load 57(sizeQueryTemp) + 61: 12(int) Bitcast 60 + Store 36(WidthI) 61 + 62: 29 Load 31(g_tTex1df4) + 63: 13(int) ImageQueryLevels 62 + 64: 12(int) Bitcast 63 + Store 53(NumberOfLevelsI) 64 + 69: 68(ptr) AccessChain 66(ps_output) 33 + Store 69 67 + 70:8(PS_OUTPUT) Load 66(ps_output) + ReturnValue 70 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.vert.out new file mode 100644 index 0000000000..8e7e3ec618 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.intrinsics.vert.out @@ -0,0 +1,4196 @@ +hlsl.intrinsics.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inU0' ( in uint) +0:2 'inU1' ( in uint) +0:? Sequence +0:3 all ( temp bool) +0:3 Convert float to bool ( temp bool) +0:3 'inF0' ( in float) +0:4 Absolute value ( temp float) +0:4 'inF0' ( in float) +0:5 arc cosine ( temp float) +0:5 'inF0' ( in float) +0:6 any ( temp bool) +0:6 Convert float to bool ( temp bool) +0:6 'inF0' ( in float) +0:7 arc sine ( temp float) +0:7 'inF0' ( in float) +0:8 floatBitsToInt ( temp int) +0:8 'inF0' ( in float) +0:9 floatBitsToUint ( temp uint) +0:9 'inF0' ( in float) +0:10 intBitsToFloat ( temp float) +0:10 'inU0' ( in uint) +0:12 arc tangent ( temp float) +0:12 'inF0' ( in float) +0:13 arc tangent ( temp float) +0:13 'inF0' ( in float) +0:13 'inF1' ( in float) +0:14 Ceiling ( temp float) +0:14 'inF0' ( in float) +0:15 clamp ( temp float) +0:15 'inF0' ( in float) +0:15 'inF1' ( in float) +0:15 'inF2' ( in float) +0:16 cosine ( temp float) +0:16 'inF0' ( in float) +0:17 hyp. cosine ( temp float) +0:17 'inF0' ( in float) +0:18 bitCount ( temp int) +0:18 Constant: +0:18 7 (const int) +0:19 degrees ( temp float) +0:19 'inF0' ( in float) +0:23 exp ( temp float) +0:23 'inF0' ( in float) +0:24 exp2 ( temp float) +0:24 'inF0' ( in float) +0:25 findMSB ( temp int) +0:25 Constant: +0:25 7 (const int) +0:26 findLSB ( temp int) +0:26 Constant: +0:26 7 (const int) +0:27 Floor ( temp float) +0:27 'inF0' ( in float) +0:29 mod ( temp float) +0:29 'inF0' ( in float) +0:29 'inF1' ( in float) +0:30 Fraction ( temp float) +0:30 'inF0' ( in float) +0:31 isinf ( temp bool) +0:31 'inF0' ( in float) +0:32 isnan ( temp bool) +0:32 'inF0' ( in float) +0:33 ldexp ( temp float) +0:33 'inF0' ( in float) +0:33 'inF1' ( in float) +0:34 mix ( temp float) +0:34 'inF0' ( in float) +0:34 'inF1' ( in float) +0:34 'inF2' ( in float) +0:35 log ( temp 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 ( temp float) +0:37 'inF0' ( in float) +0:38 max ( temp float) +0:38 'inF0' ( in float) +0:38 'inF1' ( in float) +0:39 min ( temp float) +0:39 'inF0' ( in float) +0:39 'inF1' ( in float) +0:41 pow ( temp float) +0:41 'inF0' ( in float) +0:41 'inF1' ( in float) +0:42 radians ( temp float) +0:42 'inF0' ( in float) +0:43 bitFieldReverse ( temp int) +0:43 Constant: +0:43 2 (const int) +0:44 roundEven ( temp float) +0:44 'inF0' ( in float) +0:45 inverse sqrt ( temp float) +0:45 'inF0' ( in float) +0:46 clamp ( temp float) +0:46 'inF0' ( in float) +0:46 Constant: +0:46 0.000000 +0:46 Constant: +0:46 1.000000 +0:47 Sign ( temp float) +0:47 'inF0' ( in float) +0:48 sine ( temp 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 ( temp float) +0:50 'inF0' ( in float) +0:51 smoothstep ( temp float) +0:51 'inF0' ( in float) +0:51 'inF1' ( in float) +0:51 'inF2' ( in float) +0:52 sqrt ( temp float) +0:52 'inF0' ( in float) +0:53 step ( temp float) +0:53 'inF0' ( in float) +0:53 'inF1' ( in float) +0:54 tangent ( temp float) +0:54 'inF0' ( in float) +0:55 hyp. tangent ( temp float) +0:55 'inF0' ( in float) +0:57 trunc ( temp float) +0:57 'inF0' ( in float) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:63 Function Definition: VertexShaderFunction1(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:? Sequence +0:65 Branch: Return with expression +0:65 Constant: +0:65 0.000000 +0:69 Function Definition: VertexShaderFunction2(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:? Sequence +0:70 all ( temp bool) +0:70 Convert float to bool ( temp 2-component vector of bool) +0:70 'inF0' ( in 2-component vector of float) +0:71 Absolute value ( temp 2-component vector of float) +0:71 'inF0' ( in 2-component vector of float) +0:72 arc cosine ( temp 2-component vector of float) +0:72 'inF0' ( in 2-component vector of float) +0:73 any ( temp bool) +0:73 Convert float to bool ( temp 2-component vector of bool) +0:73 'inF0' ( in 2-component vector of float) +0:74 arc sine ( temp 2-component vector of float) +0:74 'inF0' ( in 2-component vector of float) +0:75 floatBitsToInt ( temp 2-component vector of int) +0:75 'inF0' ( in 2-component vector of float) +0:76 floatBitsToUint ( temp 2-component vector of uint) +0:76 'inF0' ( in 2-component vector of float) +0:77 intBitsToFloat ( temp 2-component vector of float) +0:77 'inU0' ( in 2-component vector of uint) +0:79 arc tangent ( temp 2-component vector of float) +0:79 'inF0' ( in 2-component vector of float) +0:80 arc tangent ( temp 2-component vector of float) +0:80 'inF0' ( in 2-component vector of float) +0:80 'inF1' ( in 2-component vector of float) +0:81 Ceiling ( temp 2-component vector of float) +0:81 'inF0' ( in 2-component vector of float) +0:82 clamp ( temp 2-component vector of float) +0:82 'inF0' ( in 2-component vector of float) +0:82 'inF1' ( in 2-component vector of float) +0:82 'inF2' ( in 2-component vector of float) +0:83 cosine ( temp 2-component vector of float) +0:83 'inF0' ( in 2-component vector of float) +0:84 hyp. cosine ( temp 2-component vector of float) +0:84 'inF0' ( in 2-component vector of float) +0:? bitCount ( temp 2-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:86 degrees ( temp 2-component vector of float) +0:86 'inF0' ( in 2-component vector of float) +0:87 distance ( temp float) +0:87 'inF0' ( in 2-component vector of float) +0:87 'inF1' ( in 2-component vector of float) +0:88 dot-product ( temp float) +0:88 'inF0' ( in 2-component vector of float) +0:88 'inF1' ( in 2-component vector of float) +0:92 exp ( temp 2-component vector of float) +0:92 'inF0' ( in 2-component vector of float) +0:93 exp2 ( temp 2-component vector of float) +0:93 'inF0' ( in 2-component vector of float) +0:94 face-forward ( temp 2-component vector of float) +0:94 'inF0' ( in 2-component vector of float) +0:94 'inF1' ( in 2-component vector of float) +0:94 'inF2' ( in 2-component vector of float) +0:95 findMSB ( temp int) +0:95 Constant: +0:95 7 (const int) +0:96 findLSB ( temp int) +0:96 Constant: +0:96 7 (const int) +0:97 Floor ( temp 2-component vector of float) +0:97 'inF0' ( in 2-component vector of float) +0:99 mod ( temp 2-component vector of float) +0:99 'inF0' ( in 2-component vector of float) +0:99 'inF1' ( in 2-component vector of float) +0:100 Fraction ( temp 2-component vector of float) +0:100 'inF0' ( in 2-component vector of float) +0:101 isinf ( temp 2-component vector of bool) +0:101 'inF0' ( in 2-component vector of float) +0:102 isnan ( temp 2-component vector of bool) +0:102 'inF0' ( in 2-component vector of float) +0:103 ldexp ( temp 2-component vector of float) +0:103 'inF0' ( in 2-component vector of float) +0:103 'inF1' ( in 2-component vector of float) +0:104 mix ( temp 2-component vector of float) +0:104 'inF0' ( in 2-component vector of float) +0:104 'inF1' ( in 2-component vector of float) +0:104 'inF2' ( in 2-component vector of float) +0:105 length ( temp float) +0:105 'inF0' ( in 2-component vector of float) +0:106 log ( temp 2-component vector of float) +0:106 'inF0' ( in 2-component vector of float) +0:107 vector-scale ( temp 2-component vector of float) +0:107 log2 ( temp 2-component vector of float) +0:107 'inF0' ( in 2-component vector of float) +0:107 Constant: +0:107 0.301030 +0:108 log2 ( temp 2-component vector of float) +0:108 'inF0' ( in 2-component vector of float) +0:109 max ( temp 2-component vector of float) +0:109 'inF0' ( in 2-component vector of float) +0:109 'inF1' ( in 2-component vector of float) +0:110 min ( temp 2-component vector of float) +0:110 'inF0' ( in 2-component vector of float) +0:110 'inF1' ( in 2-component vector of float) +0:112 normalize ( temp 2-component vector of float) +0:112 'inF0' ( in 2-component vector of float) +0:113 pow ( temp 2-component vector of float) +0:113 'inF0' ( in 2-component vector of float) +0:113 'inF1' ( in 2-component vector of float) +0:114 radians ( temp 2-component vector of float) +0:114 'inF0' ( in 2-component vector of float) +0:115 reflect ( temp 2-component vector of float) +0:115 'inF0' ( in 2-component vector of float) +0:115 'inF1' ( in 2-component vector of float) +0:116 refract ( temp 2-component vector of float) +0:116 'inF0' ( in 2-component vector of float) +0:116 'inF1' ( in 2-component vector of float) +0:116 Constant: +0:116 2.000000 +0:? bitFieldReverse ( temp 2-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:118 roundEven ( temp 2-component vector of float) +0:118 'inF0' ( in 2-component vector of float) +0:119 inverse sqrt ( temp 2-component vector of float) +0:119 'inF0' ( in 2-component vector of float) +0:120 clamp ( temp 2-component vector of float) +0:120 'inF0' ( in 2-component vector of float) +0:120 Constant: +0:120 0.000000 +0:120 Constant: +0:120 1.000000 +0:121 Sign ( temp 2-component vector of float) +0:121 'inF0' ( in 2-component vector of float) +0:122 sine ( 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 ( temp 2-component vector of float) +0:124 'inF0' ( in 2-component vector of float) +0:125 smoothstep ( temp 2-component vector of float) +0:125 'inF0' ( in 2-component vector of float) +0:125 'inF1' ( in 2-component vector of float) +0:125 'inF2' ( in 2-component vector of float) +0:126 sqrt ( temp 2-component vector of float) +0:126 'inF0' ( in 2-component vector of float) +0:127 step ( temp 2-component vector of float) +0:127 'inF0' ( in 2-component vector of float) +0:127 'inF1' ( in 2-component vector of float) +0:128 tangent ( temp 2-component vector of float) +0:128 'inF0' ( in 2-component vector of float) +0:129 hyp. tangent ( temp 2-component vector of float) +0:129 'inF0' ( in 2-component vector of float) +0:131 trunc ( temp 2-component vector of float) +0:131 'inF0' ( in 2-component vector of float) +0:134 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:138 Function Definition: VertexShaderFunction3(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:? Sequence +0:139 all ( temp bool) +0:139 Convert float to bool ( temp 3-component vector of bool) +0:139 'inF0' ( in 3-component vector of float) +0:140 Absolute value ( temp 3-component vector of float) +0:140 'inF0' ( in 3-component vector of float) +0:141 arc cosine ( temp 3-component vector of float) +0:141 'inF0' ( in 3-component vector of float) +0:142 any ( temp bool) +0:142 Convert float to bool ( temp 3-component vector of bool) +0:142 'inF0' ( in 3-component vector of float) +0:143 arc sine ( temp 3-component vector of float) +0:143 'inF0' ( in 3-component vector of float) +0:144 floatBitsToInt ( temp 3-component vector of int) +0:144 'inF0' ( in 3-component vector of float) +0:145 floatBitsToUint ( temp 3-component vector of uint) +0:145 'inF0' ( in 3-component vector of float) +0:146 intBitsToFloat ( temp 3-component vector of float) +0:146 'inU0' ( in 3-component vector of uint) +0:148 arc tangent ( temp 3-component vector of float) +0:148 'inF0' ( in 3-component vector of float) +0:149 arc tangent ( temp 3-component vector of float) +0:149 'inF0' ( in 3-component vector of float) +0:149 'inF1' ( in 3-component vector of float) +0:150 Ceiling ( temp 3-component vector of float) +0:150 'inF0' ( in 3-component vector of float) +0:151 clamp ( temp 3-component vector of float) +0:151 'inF0' ( in 3-component vector of float) +0:151 'inF1' ( in 3-component vector of float) +0:151 'inF2' ( in 3-component vector of float) +0:152 cosine ( temp 3-component vector of float) +0:152 'inF0' ( in 3-component vector of float) +0:153 hyp. cosine ( temp 3-component vector of float) +0:153 'inF0' ( in 3-component vector of float) +0:? bitCount ( temp 3-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:155 cross-product ( temp 3-component vector of float) +0:155 'inF0' ( in 3-component vector of float) +0:155 'inF1' ( in 3-component vector of float) +0:156 degrees ( temp 3-component vector of float) +0:156 'inF0' ( in 3-component vector of float) +0:157 distance ( temp float) +0:157 'inF0' ( in 3-component vector of float) +0:157 'inF1' ( in 3-component vector of float) +0:158 dot-product ( temp float) +0:158 'inF0' ( in 3-component vector of float) +0:158 'inF1' ( in 3-component vector of float) +0:162 exp ( temp 3-component vector of float) +0:162 'inF0' ( in 3-component vector of float) +0:163 exp2 ( temp 3-component vector of float) +0:163 'inF0' ( in 3-component vector of float) +0:164 face-forward ( temp 3-component vector of float) +0:164 'inF0' ( in 3-component vector of float) +0:164 'inF1' ( in 3-component vector of float) +0:164 'inF2' ( in 3-component vector of float) +0:165 findMSB ( temp int) +0:165 Constant: +0:165 7 (const int) +0:166 findLSB ( temp int) +0:166 Constant: +0:166 7 (const int) +0:167 Floor ( temp 3-component vector of float) +0:167 'inF0' ( in 3-component vector of float) +0:169 mod ( temp 3-component vector of float) +0:169 'inF0' ( in 3-component vector of float) +0:169 'inF1' ( in 3-component vector of float) +0:170 Fraction ( temp 3-component vector of float) +0:170 'inF0' ( in 3-component vector of float) +0:171 isinf ( temp 3-component vector of bool) +0:171 'inF0' ( in 3-component vector of float) +0:172 isnan ( temp 3-component vector of bool) +0:172 'inF0' ( in 3-component vector of float) +0:173 ldexp ( temp 3-component vector of float) +0:173 'inF0' ( in 3-component vector of float) +0:173 'inF1' ( in 3-component vector of float) +0:174 mix ( temp 3-component vector of float) +0:174 'inF0' ( in 3-component vector of float) +0:174 'inF1' ( in 3-component vector of float) +0:174 'inF2' ( in 3-component vector of float) +0:175 length ( temp float) +0:175 'inF0' ( in 3-component vector of float) +0:176 log ( temp 3-component vector of float) +0:176 'inF0' ( in 3-component vector of float) +0:177 vector-scale ( temp 3-component vector of float) +0:177 log2 ( temp 3-component vector of float) +0:177 'inF0' ( in 3-component vector of float) +0:177 Constant: +0:177 0.301030 +0:178 log2 ( temp 3-component vector of float) +0:178 'inF0' ( in 3-component vector of float) +0:179 max ( temp 3-component vector of float) +0:179 'inF0' ( in 3-component vector of float) +0:179 'inF1' ( in 3-component vector of float) +0:180 min ( temp 3-component vector of float) +0:180 'inF0' ( in 3-component vector of float) +0:180 'inF1' ( in 3-component vector of float) +0:182 normalize ( temp 3-component vector of float) +0:182 'inF0' ( in 3-component vector of float) +0:183 pow ( temp 3-component vector of float) +0:183 'inF0' ( in 3-component vector of float) +0:183 'inF1' ( in 3-component vector of float) +0:184 radians ( temp 3-component vector of float) +0:184 'inF0' ( in 3-component vector of float) +0:185 reflect ( temp 3-component vector of float) +0:185 'inF0' ( in 3-component vector of float) +0:185 'inF1' ( in 3-component vector of float) +0:186 refract ( temp 3-component vector of float) +0:186 'inF0' ( in 3-component vector of float) +0:186 'inF1' ( in 3-component vector of float) +0:186 Constant: +0:186 2.000000 +0:? bitFieldReverse ( temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:188 roundEven ( temp 3-component vector of float) +0:188 'inF0' ( in 3-component vector of float) +0:189 inverse sqrt ( temp 3-component vector of float) +0:189 'inF0' ( in 3-component vector of float) +0:190 clamp ( temp 3-component vector of float) +0:190 'inF0' ( in 3-component vector of float) +0:190 Constant: +0:190 0.000000 +0:190 Constant: +0:190 1.000000 +0:191 Sign ( temp 3-component vector of float) +0:191 'inF0' ( in 3-component vector of float) +0:192 sine ( temp 3-component vector of float) +0:192 'inF0' ( in 3-component vector of float) +0:193 Sequence +0:193 move second child to first child ( temp 3-component vector of float) +0:193 'inF1' ( 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 ( temp 3-component vector of float) +0:194 'inF0' ( in 3-component vector of float) +0:195 smoothstep ( temp 3-component vector of float) +0:195 'inF0' ( in 3-component vector of float) +0:195 'inF1' ( in 3-component vector of float) +0:195 'inF2' ( in 3-component vector of float) +0:196 sqrt ( temp 3-component vector of float) +0:196 'inF0' ( in 3-component vector of float) +0:197 step ( temp 3-component vector of float) +0:197 'inF0' ( in 3-component vector of float) +0:197 'inF1' ( in 3-component vector of float) +0:198 tangent ( temp 3-component vector of float) +0:198 'inF0' ( in 3-component vector of float) +0:199 hyp. tangent ( temp 3-component vector of float) +0:199 'inF0' ( in 3-component vector of float) +0:201 trunc ( temp 3-component vector of float) +0:201 'inF0' ( in 3-component vector of float) +0:204 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:208 Function Definition: VertexShaderFunction4(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:? Sequence +0:209 all ( temp bool) +0:209 Convert float to bool ( temp 4-component vector of bool) +0:209 'inF0' ( in 4-component vector of float) +0:210 Absolute value ( temp 4-component vector of float) +0:210 'inF0' ( in 4-component vector of float) +0:211 arc cosine ( temp 4-component vector of float) +0:211 'inF0' ( in 4-component vector of float) +0:212 any ( temp bool) +0:212 Convert float to bool ( temp 4-component vector of bool) +0:212 'inF0' ( in 4-component vector of float) +0:213 arc sine ( temp 4-component vector of float) +0:213 'inF0' ( in 4-component vector of float) +0:214 floatBitsToInt ( temp 4-component vector of int) +0:214 'inF0' ( in 4-component vector of float) +0:215 floatBitsToUint ( temp 4-component vector of uint) +0:215 'inF0' ( in 4-component vector of float) +0:216 intBitsToFloat ( temp 4-component vector of float) +0:216 'inU0' ( in 4-component vector of uint) +0:218 arc tangent ( temp 4-component vector of float) +0:218 'inF0' ( in 4-component vector of float) +0:219 arc tangent ( temp 4-component vector of float) +0:219 'inF0' ( in 4-component vector of float) +0:219 'inF1' ( in 4-component vector of float) +0:220 Ceiling ( temp 4-component vector of float) +0:220 'inF0' ( in 4-component vector of float) +0:221 clamp ( temp 4-component vector of float) +0:221 'inF0' ( in 4-component vector of float) +0:221 'inF1' ( in 4-component vector of float) +0:221 'inF2' ( in 4-component vector of float) +0:222 cosine ( temp 4-component vector of float) +0:222 'inF0' ( in 4-component vector of float) +0:223 hyp. cosine ( temp 4-component vector of float) +0:223 'inF0' ( in 4-component vector of float) +0:? bitCount ( temp 4-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:? 2 (const int) +0:225 degrees ( temp 4-component vector of float) +0:225 'inF0' ( in 4-component vector of float) +0:226 distance ( temp float) +0:226 'inF0' ( in 4-component vector of float) +0:226 'inF1' ( in 4-component vector of float) +0:227 dot-product ( temp 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 ( temp 4-component vector of float) +0:232 'inF0' ( in 4-component vector of float) +0:233 exp2 ( temp 4-component vector of float) +0:233 'inF0' ( in 4-component vector of float) +0:234 face-forward ( temp 4-component vector of float) +0:234 'inF0' ( in 4-component vector of float) +0:234 'inF1' ( in 4-component vector of float) +0:234 'inF2' ( in 4-component vector of float) +0:235 findMSB ( temp int) +0:235 Constant: +0:235 7 (const int) +0:236 findLSB ( temp int) +0:236 Constant: +0:236 7 (const int) +0:237 Floor ( temp 4-component vector of float) +0:237 'inF0' ( in 4-component vector of float) +0:239 mod ( temp 4-component vector of float) +0:239 'inF0' ( in 4-component vector of float) +0:239 'inF1' ( in 4-component vector of float) +0:240 Fraction ( temp 4-component vector of float) +0:240 'inF0' ( in 4-component vector of float) +0:241 isinf ( temp 4-component vector of bool) +0:241 'inF0' ( in 4-component vector of float) +0:242 isnan ( temp 4-component vector of bool) +0:242 'inF0' ( in 4-component vector of float) +0:243 ldexp ( temp 4-component vector of float) +0:243 'inF0' ( in 4-component vector of float) +0:243 'inF1' ( in 4-component vector of float) +0:244 mix ( temp 4-component vector of float) +0:244 'inF0' ( in 4-component vector of float) +0:244 'inF1' ( in 4-component vector of float) +0:244 'inF2' ( in 4-component vector of float) +0:245 length ( temp float) +0:245 'inF0' ( in 4-component vector of float) +0:246 log ( temp 4-component vector of float) +0:246 'inF0' ( in 4-component vector of float) +0:247 vector-scale ( temp 4-component vector of float) +0:247 log2 ( temp 4-component vector of float) +0:247 'inF0' ( in 4-component vector of float) +0:247 Constant: +0:247 0.301030 +0:248 log2 ( temp 4-component vector of float) +0:248 'inF0' ( in 4-component vector of float) +0:249 max ( temp 4-component vector of float) +0:249 'inF0' ( in 4-component vector of float) +0:249 'inF1' ( in 4-component vector of float) +0:250 min ( temp 4-component vector of float) +0:250 'inF0' ( in 4-component vector of float) +0:250 'inF1' ( in 4-component vector of float) +0:252 normalize ( temp 4-component vector of float) +0:252 'inF0' ( in 4-component vector of float) +0:253 pow ( temp 4-component vector of float) +0:253 'inF0' ( in 4-component vector of float) +0:253 'inF1' ( in 4-component vector of float) +0:254 radians ( temp 4-component vector of float) +0:254 'inF0' ( in 4-component vector of float) +0:255 reflect ( temp 4-component vector of float) +0:255 'inF0' ( in 4-component vector of float) +0:255 'inF1' ( in 4-component vector of float) +0:256 refract ( temp 4-component vector of float) +0:256 'inF0' ( in 4-component vector of float) +0:256 'inF1' ( in 4-component vector of float) +0:256 Constant: +0:256 2.000000 +0:? bitFieldReverse ( 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:258 roundEven ( temp 4-component vector of float) +0:258 'inF0' ( in 4-component vector of float) +0:259 inverse sqrt ( temp 4-component vector of float) +0:259 'inF0' ( in 4-component vector of float) +0:260 clamp ( temp 4-component vector of float) +0:260 'inF0' ( in 4-component vector of float) +0:260 Constant: +0:260 0.000000 +0:260 Constant: +0:260 1.000000 +0:261 Sign ( temp 4-component vector of float) +0:261 'inF0' ( in 4-component vector of float) +0:262 sine ( temp 4-component vector of float) +0:262 'inF0' ( in 4-component vector of float) +0:263 Sequence +0:263 move second child to first child ( temp 4-component vector of float) +0:263 'inF1' ( 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 ( temp 4-component vector of float) +0:264 'inF0' ( in 4-component vector of float) +0:265 smoothstep ( temp 4-component vector of float) +0:265 'inF0' ( in 4-component vector of float) +0:265 'inF1' ( in 4-component vector of float) +0:265 'inF2' ( in 4-component vector of float) +0:266 sqrt ( temp 4-component vector of float) +0:266 'inF0' ( in 4-component vector of float) +0:267 step ( temp 4-component vector of float) +0:267 'inF0' ( in 4-component vector of float) +0:267 'inF1' ( in 4-component vector of float) +0:268 tangent ( temp 4-component vector of float) +0:268 'inF0' ( in 4-component vector of float) +0:269 hyp. tangent ( temp 4-component vector of float) +0:269 'inF0' ( in 4-component vector of float) +0:271 trunc ( temp 4-component vector of float) +0:271 'inF0' ( in 4-component vector of float) +0:274 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:331 Function Definition: VertexShaderFunction2x2(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:? Sequence +0:333 all ( temp bool) +0:333 Convert float to bool ( temp 2X2 matrix of bool) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 Absolute value ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc cosine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 any ( temp bool) +0:333 Convert float to bool ( temp 2X2 matrix of bool) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc sine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 Ceiling ( temp 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 'inF1' ( in 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. cosine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 degrees ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 determinant ( temp float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 exp ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 exp2 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 findMSB ( temp int) +0:333 Constant: +0:333 7 (const int) +0:333 findLSB ( temp int) +0:333 Constant: +0:333 7 (const int) +0:333 Floor ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 mod ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 Fraction ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 ldexp ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 mix ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 'inF2' ( in 2X2 matrix of float) +0:333 log ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 matrix-scale ( temp 2X2 matrix of float) +0:333 log2 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 Constant: +0:333 0.301030 +0:333 log2 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 max ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 min ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 pow ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 radians ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 roundEven ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 inverse sqrt ( temp 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 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 sine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 Sequence +0:333 move second child to first child ( temp 2X2 matrix of float) +0:333 'inF1' ( 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 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 smoothstep ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 'inF2' ( in 2X2 matrix of float) +0:333 sqrt ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 step ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 hyp. tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 transpose ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 trunc ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:336 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:340 Function Definition: VertexShaderFunction3x3(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:? Sequence +0:342 all ( temp bool) +0:342 Convert float to bool ( temp 3X3 matrix of bool) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 Absolute value ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc cosine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 any ( temp bool) +0:342 Convert float to bool ( temp 3X3 matrix of bool) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc sine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 Ceiling ( temp 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 'inF1' ( in 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. cosine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 degrees ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 determinant ( temp float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 exp ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 exp2 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 findMSB ( temp int) +0:342 Constant: +0:342 7 (const int) +0:342 findLSB ( temp int) +0:342 Constant: +0:342 7 (const int) +0:342 Floor ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 mod ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 Fraction ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 ldexp ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 mix ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 'inF2' ( in 3X3 matrix of float) +0:342 log ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 matrix-scale ( temp 3X3 matrix of float) +0:342 log2 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 Constant: +0:342 0.301030 +0:342 log2 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 max ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 min ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 pow ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 radians ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 roundEven ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 inverse sqrt ( temp 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 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 sine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 Sequence +0:342 move second child to first child ( temp 3X3 matrix of float) +0:342 'inF1' ( 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 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 smoothstep ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 'inF2' ( in 3X3 matrix of float) +0:342 sqrt ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 step ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 hyp. tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 transpose ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 trunc ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:345 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:349 Function Definition: VertexShaderFunction4x4(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:? Sequence +0:351 all ( temp bool) +0:351 Convert float to bool ( temp 4X4 matrix of bool) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 Absolute value ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc cosine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 any ( temp bool) +0:351 Convert float to bool ( temp 4X4 matrix of bool) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc sine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 Ceiling ( temp 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 'inF1' ( in 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. cosine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 degrees ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 determinant ( temp float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 exp ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 exp2 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 findMSB ( temp int) +0:351 Constant: +0:351 7 (const int) +0:351 findLSB ( temp int) +0:351 Constant: +0:351 7 (const int) +0:351 Floor ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 mod ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 Fraction ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 ldexp ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 mix ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 'inF2' ( in 4X4 matrix of float) +0:351 log ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 matrix-scale ( temp 4X4 matrix of float) +0:351 log2 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 Constant: +0:351 0.301030 +0:351 log2 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 max ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 min ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 pow ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 radians ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 roundEven ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 inverse sqrt ( temp 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 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 sine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 Sequence +0:351 move second child to first child ( temp 4X4 matrix of float) +0:351 'inF1' ( 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 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 smoothstep ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 'inF2' ( in 4X4 matrix of float) +0:351 sqrt ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 step ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 hyp. tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 transpose ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 trunc ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:354 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:372 Function Definition: TestGenMul2(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:? Sequence +0:373 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 'inF1' ( in float) +0:373 'inF0' ( in float) +0:373 Sequence +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 'inF0' ( in float) +0:373 'inFV0' ( in 2-component vector of float) +0:373 Sequence +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 'inFV0' ( in 2-component vector of float) +0:373 'inF0' ( in float) +0:373 Sequence +0:373 move second child to first child ( temp float) +0:373 'r3' ( temp float) +0:373 dot-product ( temp float) +0:373 'inFV0' ( in 2-component vector of float) +0:373 'inFV1' ( in 2-component vector of float) +0:373 Sequence +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 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 Sequence +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 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 Sequence +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 'inF0' ( in float) +0:373 'inFM0' ( in 2X2 matrix of float) +0:373 Sequence +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 'inFM0' ( in 2X2 matrix of float) +0:373 'inF0' ( in float) +0:373 Sequence +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 'inFM1' ( in 2X2 matrix of float) +0:373 'inFM0' ( in 2X2 matrix of float) +0:379 Function Definition: TestGenMul3(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:? Sequence +0:380 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 'inF1' ( in float) +0:380 'inF0' ( in float) +0:380 Sequence +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 'inF0' ( in float) +0:380 'inFV0' ( in 3-component vector of float) +0:380 Sequence +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 'inFV0' ( in 3-component vector of float) +0:380 'inF0' ( in float) +0:380 Sequence +0:380 move second child to first child ( temp float) +0:380 'r3' ( temp float) +0:380 dot-product ( temp float) +0:380 'inFV0' ( in 3-component vector of float) +0:380 'inFV1' ( in 3-component vector of float) +0:380 Sequence +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 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 Sequence +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 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 Sequence +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 'inF0' ( in float) +0:380 'inFM0' ( in 3X3 matrix of float) +0:380 Sequence +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 'inFM0' ( in 3X3 matrix of float) +0:380 'inF0' ( in float) +0:380 Sequence +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 'inFM1' ( in 3X3 matrix of float) +0:380 'inFM0' ( in 3X3 matrix of float) +0:386 Function Definition: TestGenMul4(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:? Sequence +0:387 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 'inF1' ( in float) +0:387 'inF0' ( in float) +0:387 Sequence +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 'inF0' ( in float) +0:387 'inFV0' ( in 4-component vector of float) +0:387 Sequence +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 'inFV0' ( in 4-component vector of float) +0:387 'inF0' ( in float) +0:387 Sequence +0:387 move second child to first child ( temp float) +0:387 'r3' ( temp float) +0:387 dot-product ( temp float) +0:387 'inFV0' ( in 4-component vector of float) +0:387 'inFV1' ( in 4-component vector of float) +0:387 Sequence +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 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 Sequence +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 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 Sequence +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 'inF0' ( in float) +0:387 'inFM0' ( in 4X4 matrix of float) +0:387 Sequence +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 'inFM0' ( in 4X4 matrix of float) +0:387 'inF0' ( in float) +0:387 Sequence +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 'inFM1' ( in 4X4 matrix of float) +0:387 'inFM0' ( in 4X4 matrix of float) +0:396 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) +0:396 Function Parameters: +0:396 'inF0' ( in float) +0:396 'inF1' ( in float) +0:396 'inFV2' ( in 2-component vector of float) +0:396 'inFV3' ( in 3-component vector of float) +0:396 'inFM2x3' ( in 2X3 matrix of float) +0:396 'inFM3x2' ( in 3X2 matrix of float) +0:396 'inFM3x3' ( in 3X3 matrix of float) +0:396 'inFM3x4' ( in 3X4 matrix of float) +0:396 'inFM2x4' ( in 2X4 matrix of float) +0:? Sequence +0:397 Sequence +0:397 move second child to first child ( temp float) +0:397 'r00' ( temp float) +0:397 component-wise multiply ( temp float) +0:397 'inF1' ( in float) +0:397 'inF0' ( in float) +0:398 Sequence +0:398 move second child to first child ( temp 2-component vector of float) +0:398 'r01' ( temp 2-component vector of float) +0:398 vector-scale ( temp 2-component vector of float) +0:398 'inF0' ( in float) +0:398 'inFV2' ( in 2-component vector of float) +0:399 Sequence +0:399 move second child to first child ( temp 3-component vector of float) +0:399 'r02' ( temp 3-component vector of float) +0:399 vector-scale ( temp 3-component vector of float) +0:399 'inF0' ( in float) +0:399 'inFV3' ( in 3-component vector of float) +0:400 Sequence +0:400 move second child to first child ( temp 2-component vector of float) +0:400 'r03' ( temp 2-component vector of float) +0:400 vector-scale ( temp 2-component vector of float) +0:400 'inFV2' ( in 2-component vector of float) +0:400 'inF0' ( in float) +0:401 Sequence +0:401 move second child to first child ( temp 3-component vector of float) +0:401 'r04' ( temp 3-component vector of float) +0:401 vector-scale ( temp 3-component vector of float) +0:401 'inFV3' ( in 3-component vector of float) +0:401 'inF0' ( in float) +0:402 Sequence +0:402 move second child to first child ( temp float) +0:402 'r05' ( temp float) +0:402 dot-product ( temp float) +0:402 'inFV2' ( in 2-component vector of float) +0:402 'inFV2' ( in 2-component vector of float) +0:403 Sequence +0:403 move second child to first child ( temp float) +0:403 'r06' ( temp float) +0:403 dot-product ( temp float) +0:403 'inFV3' ( in 3-component vector of float) +0:403 'inFV3' ( in 3-component vector of float) +0:404 Sequence +0:404 move second child to first child ( temp 3-component vector of float) +0:404 'r07' ( temp 3-component vector of float) +0:404 matrix-times-vector ( temp 3-component vector of float) +0:404 'inFM2x3' ( in 2X3 matrix of float) +0:404 'inFV2' ( in 2-component vector of float) +0:405 Sequence +0:405 move second child to first child ( temp 2-component vector of float) +0:405 'r08' ( temp 2-component vector of float) +0:405 matrix-times-vector ( temp 2-component vector of float) +0:405 'inFM3x2' ( in 3X2 matrix of float) +0:405 'inFV3' ( in 3-component vector of float) +0:406 Sequence +0:406 move second child to first child ( temp 2-component vector of float) +0:406 'r09' ( temp 2-component vector of float) +0:406 vector-times-matrix ( temp 2-component vector of float) +0:406 'inFV3' ( in 3-component vector of float) +0:406 'inFM2x3' ( in 2X3 matrix of float) +0:407 Sequence +0:407 move second child to first child ( temp 3-component vector of float) +0:407 'r10' ( temp 3-component vector of float) +0:407 vector-times-matrix ( temp 3-component vector of float) +0:407 'inFV2' ( in 2-component vector of float) +0:407 'inFM3x2' ( in 3X2 matrix of float) +0:408 Sequence +0:408 move second child to first child ( temp 2X3 matrix of float) +0:408 'r11' ( temp 2X3 matrix of float) +0:408 matrix-scale ( temp 2X3 matrix of float) +0:408 'inF0' ( in float) +0:408 'inFM2x3' ( in 2X3 matrix of float) +0:409 Sequence +0:409 move second child to first child ( temp 3X2 matrix of float) +0:409 'r12' ( temp 3X2 matrix of float) +0:409 matrix-scale ( temp 3X2 matrix of float) +0:409 'inF0' ( in float) +0:409 'inFM3x2' ( in 3X2 matrix of float) +0:410 Sequence +0:410 move second child to first child ( temp 2X2 matrix of float) +0:410 'r13' ( temp 2X2 matrix of float) +0:410 matrix-multiply ( temp 2X2 matrix of float) +0:410 'inFM3x2' ( in 3X2 matrix of float) +0:410 'inFM2x3' ( in 2X3 matrix of float) +0:411 Sequence +0:411 move second child to first child ( temp 2X3 matrix of float) +0:411 'r14' ( temp 2X3 matrix of float) +0:411 matrix-multiply ( temp 2X3 matrix of float) +0:411 'inFM3x3' ( in 3X3 matrix of float) +0:411 'inFM2x3' ( in 2X3 matrix of float) +0:412 Sequence +0:412 move second child to first child ( temp 2X4 matrix of float) +0:412 'r15' ( temp 2X4 matrix of float) +0:412 matrix-multiply ( temp 2X4 matrix of float) +0:412 'inFM3x4' ( in 3X4 matrix of float) +0:412 'inFM2x3' ( in 2X3 matrix of float) +0:413 Sequence +0:413 move second child to first child ( temp 3X4 matrix of float) +0:413 'r16' ( temp 3X4 matrix of float) +0:413 matrix-multiply ( temp 3X4 matrix of float) +0:413 'inFM2x4' ( in 2X4 matrix of float) +0:413 'inFM3x2' ( in 3X2 matrix of float) +0:? Linker Objects + + +Linked vertex stage: + +WARNING: Linking vertex stage: Entry point not found + +Shader version: 500 +0:? Sequence +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) +0:2 Function Parameters: +0:2 'inF0' ( in float) +0:2 'inF1' ( in float) +0:2 'inF2' ( in float) +0:2 'inU0' ( in uint) +0:2 'inU1' ( in uint) +0:? Sequence +0:3 all ( temp bool) +0:3 Convert float to bool ( temp bool) +0:3 'inF0' ( in float) +0:4 Absolute value ( temp float) +0:4 'inF0' ( in float) +0:5 arc cosine ( temp float) +0:5 'inF0' ( in float) +0:6 any ( temp bool) +0:6 Convert float to bool ( temp bool) +0:6 'inF0' ( in float) +0:7 arc sine ( temp float) +0:7 'inF0' ( in float) +0:8 floatBitsToInt ( temp int) +0:8 'inF0' ( in float) +0:9 floatBitsToUint ( temp uint) +0:9 'inF0' ( in float) +0:10 intBitsToFloat ( temp float) +0:10 'inU0' ( in uint) +0:12 arc tangent ( temp float) +0:12 'inF0' ( in float) +0:13 arc tangent ( temp float) +0:13 'inF0' ( in float) +0:13 'inF1' ( in float) +0:14 Ceiling ( temp float) +0:14 'inF0' ( in float) +0:15 clamp ( temp float) +0:15 'inF0' ( in float) +0:15 'inF1' ( in float) +0:15 'inF2' ( in float) +0:16 cosine ( temp float) +0:16 'inF0' ( in float) +0:17 hyp. cosine ( temp float) +0:17 'inF0' ( in float) +0:18 bitCount ( temp int) +0:18 Constant: +0:18 7 (const int) +0:19 degrees ( temp float) +0:19 'inF0' ( in float) +0:23 exp ( temp float) +0:23 'inF0' ( in float) +0:24 exp2 ( temp float) +0:24 'inF0' ( in float) +0:25 findMSB ( temp int) +0:25 Constant: +0:25 7 (const int) +0:26 findLSB ( temp int) +0:26 Constant: +0:26 7 (const int) +0:27 Floor ( temp float) +0:27 'inF0' ( in float) +0:29 mod ( temp float) +0:29 'inF0' ( in float) +0:29 'inF1' ( in float) +0:30 Fraction ( temp float) +0:30 'inF0' ( in float) +0:31 isinf ( temp bool) +0:31 'inF0' ( in float) +0:32 isnan ( temp bool) +0:32 'inF0' ( in float) +0:33 ldexp ( temp float) +0:33 'inF0' ( in float) +0:33 'inF1' ( in float) +0:34 mix ( temp float) +0:34 'inF0' ( in float) +0:34 'inF1' ( in float) +0:34 'inF2' ( in float) +0:35 log ( temp 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 ( temp float) +0:37 'inF0' ( in float) +0:38 max ( temp float) +0:38 'inF0' ( in float) +0:38 'inF1' ( in float) +0:39 min ( temp float) +0:39 'inF0' ( in float) +0:39 'inF1' ( in float) +0:41 pow ( temp float) +0:41 'inF0' ( in float) +0:41 'inF1' ( in float) +0:42 radians ( temp float) +0:42 'inF0' ( in float) +0:43 bitFieldReverse ( temp int) +0:43 Constant: +0:43 2 (const int) +0:44 roundEven ( temp float) +0:44 'inF0' ( in float) +0:45 inverse sqrt ( temp float) +0:45 'inF0' ( in float) +0:46 clamp ( temp float) +0:46 'inF0' ( in float) +0:46 Constant: +0:46 0.000000 +0:46 Constant: +0:46 1.000000 +0:47 Sign ( temp float) +0:47 'inF0' ( in float) +0:48 sine ( temp 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 ( temp float) +0:50 'inF0' ( in float) +0:51 smoothstep ( temp float) +0:51 'inF0' ( in float) +0:51 'inF1' ( in float) +0:51 'inF2' ( in float) +0:52 sqrt ( temp float) +0:52 'inF0' ( in float) +0:53 step ( temp float) +0:53 'inF0' ( in float) +0:53 'inF1' ( in float) +0:54 tangent ( temp float) +0:54 'inF0' ( in float) +0:55 hyp. tangent ( temp float) +0:55 'inF0' ( in float) +0:57 trunc ( temp float) +0:57 'inF0' ( in float) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:63 Function Definition: VertexShaderFunction1(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:? Sequence +0:65 Branch: Return with expression +0:65 Constant: +0:65 0.000000 +0:69 Function Definition: VertexShaderFunction2(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:? Sequence +0:70 all ( temp bool) +0:70 Convert float to bool ( temp 2-component vector of bool) +0:70 'inF0' ( in 2-component vector of float) +0:71 Absolute value ( temp 2-component vector of float) +0:71 'inF0' ( in 2-component vector of float) +0:72 arc cosine ( temp 2-component vector of float) +0:72 'inF0' ( in 2-component vector of float) +0:73 any ( temp bool) +0:73 Convert float to bool ( temp 2-component vector of bool) +0:73 'inF0' ( in 2-component vector of float) +0:74 arc sine ( temp 2-component vector of float) +0:74 'inF0' ( in 2-component vector of float) +0:75 floatBitsToInt ( temp 2-component vector of int) +0:75 'inF0' ( in 2-component vector of float) +0:76 floatBitsToUint ( temp 2-component vector of uint) +0:76 'inF0' ( in 2-component vector of float) +0:77 intBitsToFloat ( temp 2-component vector of float) +0:77 'inU0' ( in 2-component vector of uint) +0:79 arc tangent ( temp 2-component vector of float) +0:79 'inF0' ( in 2-component vector of float) +0:80 arc tangent ( temp 2-component vector of float) +0:80 'inF0' ( in 2-component vector of float) +0:80 'inF1' ( in 2-component vector of float) +0:81 Ceiling ( temp 2-component vector of float) +0:81 'inF0' ( in 2-component vector of float) +0:82 clamp ( temp 2-component vector of float) +0:82 'inF0' ( in 2-component vector of float) +0:82 'inF1' ( in 2-component vector of float) +0:82 'inF2' ( in 2-component vector of float) +0:83 cosine ( temp 2-component vector of float) +0:83 'inF0' ( in 2-component vector of float) +0:84 hyp. cosine ( temp 2-component vector of float) +0:84 'inF0' ( in 2-component vector of float) +0:? bitCount ( temp 2-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:86 degrees ( temp 2-component vector of float) +0:86 'inF0' ( in 2-component vector of float) +0:87 distance ( temp float) +0:87 'inF0' ( in 2-component vector of float) +0:87 'inF1' ( in 2-component vector of float) +0:88 dot-product ( temp float) +0:88 'inF0' ( in 2-component vector of float) +0:88 'inF1' ( in 2-component vector of float) +0:92 exp ( temp 2-component vector of float) +0:92 'inF0' ( in 2-component vector of float) +0:93 exp2 ( temp 2-component vector of float) +0:93 'inF0' ( in 2-component vector of float) +0:94 face-forward ( temp 2-component vector of float) +0:94 'inF0' ( in 2-component vector of float) +0:94 'inF1' ( in 2-component vector of float) +0:94 'inF2' ( in 2-component vector of float) +0:95 findMSB ( temp int) +0:95 Constant: +0:95 7 (const int) +0:96 findLSB ( temp int) +0:96 Constant: +0:96 7 (const int) +0:97 Floor ( temp 2-component vector of float) +0:97 'inF0' ( in 2-component vector of float) +0:99 mod ( temp 2-component vector of float) +0:99 'inF0' ( in 2-component vector of float) +0:99 'inF1' ( in 2-component vector of float) +0:100 Fraction ( temp 2-component vector of float) +0:100 'inF0' ( in 2-component vector of float) +0:101 isinf ( temp 2-component vector of bool) +0:101 'inF0' ( in 2-component vector of float) +0:102 isnan ( temp 2-component vector of bool) +0:102 'inF0' ( in 2-component vector of float) +0:103 ldexp ( temp 2-component vector of float) +0:103 'inF0' ( in 2-component vector of float) +0:103 'inF1' ( in 2-component vector of float) +0:104 mix ( temp 2-component vector of float) +0:104 'inF0' ( in 2-component vector of float) +0:104 'inF1' ( in 2-component vector of float) +0:104 'inF2' ( in 2-component vector of float) +0:105 length ( temp float) +0:105 'inF0' ( in 2-component vector of float) +0:106 log ( temp 2-component vector of float) +0:106 'inF0' ( in 2-component vector of float) +0:107 vector-scale ( temp 2-component vector of float) +0:107 log2 ( temp 2-component vector of float) +0:107 'inF0' ( in 2-component vector of float) +0:107 Constant: +0:107 0.301030 +0:108 log2 ( temp 2-component vector of float) +0:108 'inF0' ( in 2-component vector of float) +0:109 max ( temp 2-component vector of float) +0:109 'inF0' ( in 2-component vector of float) +0:109 'inF1' ( in 2-component vector of float) +0:110 min ( temp 2-component vector of float) +0:110 'inF0' ( in 2-component vector of float) +0:110 'inF1' ( in 2-component vector of float) +0:112 normalize ( temp 2-component vector of float) +0:112 'inF0' ( in 2-component vector of float) +0:113 pow ( temp 2-component vector of float) +0:113 'inF0' ( in 2-component vector of float) +0:113 'inF1' ( in 2-component vector of float) +0:114 radians ( temp 2-component vector of float) +0:114 'inF0' ( in 2-component vector of float) +0:115 reflect ( temp 2-component vector of float) +0:115 'inF0' ( in 2-component vector of float) +0:115 'inF1' ( in 2-component vector of float) +0:116 refract ( temp 2-component vector of float) +0:116 'inF0' ( in 2-component vector of float) +0:116 'inF1' ( in 2-component vector of float) +0:116 Constant: +0:116 2.000000 +0:? bitFieldReverse ( temp 2-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:118 roundEven ( temp 2-component vector of float) +0:118 'inF0' ( in 2-component vector of float) +0:119 inverse sqrt ( temp 2-component vector of float) +0:119 'inF0' ( in 2-component vector of float) +0:120 clamp ( temp 2-component vector of float) +0:120 'inF0' ( in 2-component vector of float) +0:120 Constant: +0:120 0.000000 +0:120 Constant: +0:120 1.000000 +0:121 Sign ( temp 2-component vector of float) +0:121 'inF0' ( in 2-component vector of float) +0:122 sine ( 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 ( temp 2-component vector of float) +0:124 'inF0' ( in 2-component vector of float) +0:125 smoothstep ( temp 2-component vector of float) +0:125 'inF0' ( in 2-component vector of float) +0:125 'inF1' ( in 2-component vector of float) +0:125 'inF2' ( in 2-component vector of float) +0:126 sqrt ( temp 2-component vector of float) +0:126 'inF0' ( in 2-component vector of float) +0:127 step ( temp 2-component vector of float) +0:127 'inF0' ( in 2-component vector of float) +0:127 'inF1' ( in 2-component vector of float) +0:128 tangent ( temp 2-component vector of float) +0:128 'inF0' ( in 2-component vector of float) +0:129 hyp. tangent ( temp 2-component vector of float) +0:129 'inF0' ( in 2-component vector of float) +0:131 trunc ( temp 2-component vector of float) +0:131 'inF0' ( in 2-component vector of float) +0:134 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:138 Function Definition: VertexShaderFunction3(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:? Sequence +0:139 all ( temp bool) +0:139 Convert float to bool ( temp 3-component vector of bool) +0:139 'inF0' ( in 3-component vector of float) +0:140 Absolute value ( temp 3-component vector of float) +0:140 'inF0' ( in 3-component vector of float) +0:141 arc cosine ( temp 3-component vector of float) +0:141 'inF0' ( in 3-component vector of float) +0:142 any ( temp bool) +0:142 Convert float to bool ( temp 3-component vector of bool) +0:142 'inF0' ( in 3-component vector of float) +0:143 arc sine ( temp 3-component vector of float) +0:143 'inF0' ( in 3-component vector of float) +0:144 floatBitsToInt ( temp 3-component vector of int) +0:144 'inF0' ( in 3-component vector of float) +0:145 floatBitsToUint ( temp 3-component vector of uint) +0:145 'inF0' ( in 3-component vector of float) +0:146 intBitsToFloat ( temp 3-component vector of float) +0:146 'inU0' ( in 3-component vector of uint) +0:148 arc tangent ( temp 3-component vector of float) +0:148 'inF0' ( in 3-component vector of float) +0:149 arc tangent ( temp 3-component vector of float) +0:149 'inF0' ( in 3-component vector of float) +0:149 'inF1' ( in 3-component vector of float) +0:150 Ceiling ( temp 3-component vector of float) +0:150 'inF0' ( in 3-component vector of float) +0:151 clamp ( temp 3-component vector of float) +0:151 'inF0' ( in 3-component vector of float) +0:151 'inF1' ( in 3-component vector of float) +0:151 'inF2' ( in 3-component vector of float) +0:152 cosine ( temp 3-component vector of float) +0:152 'inF0' ( in 3-component vector of float) +0:153 hyp. cosine ( temp 3-component vector of float) +0:153 'inF0' ( in 3-component vector of float) +0:? bitCount ( temp 3-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:155 cross-product ( temp 3-component vector of float) +0:155 'inF0' ( in 3-component vector of float) +0:155 'inF1' ( in 3-component vector of float) +0:156 degrees ( temp 3-component vector of float) +0:156 'inF0' ( in 3-component vector of float) +0:157 distance ( temp float) +0:157 'inF0' ( in 3-component vector of float) +0:157 'inF1' ( in 3-component vector of float) +0:158 dot-product ( temp float) +0:158 'inF0' ( in 3-component vector of float) +0:158 'inF1' ( in 3-component vector of float) +0:162 exp ( temp 3-component vector of float) +0:162 'inF0' ( in 3-component vector of float) +0:163 exp2 ( temp 3-component vector of float) +0:163 'inF0' ( in 3-component vector of float) +0:164 face-forward ( temp 3-component vector of float) +0:164 'inF0' ( in 3-component vector of float) +0:164 'inF1' ( in 3-component vector of float) +0:164 'inF2' ( in 3-component vector of float) +0:165 findMSB ( temp int) +0:165 Constant: +0:165 7 (const int) +0:166 findLSB ( temp int) +0:166 Constant: +0:166 7 (const int) +0:167 Floor ( temp 3-component vector of float) +0:167 'inF0' ( in 3-component vector of float) +0:169 mod ( temp 3-component vector of float) +0:169 'inF0' ( in 3-component vector of float) +0:169 'inF1' ( in 3-component vector of float) +0:170 Fraction ( temp 3-component vector of float) +0:170 'inF0' ( in 3-component vector of float) +0:171 isinf ( temp 3-component vector of bool) +0:171 'inF0' ( in 3-component vector of float) +0:172 isnan ( temp 3-component vector of bool) +0:172 'inF0' ( in 3-component vector of float) +0:173 ldexp ( temp 3-component vector of float) +0:173 'inF0' ( in 3-component vector of float) +0:173 'inF1' ( in 3-component vector of float) +0:174 mix ( temp 3-component vector of float) +0:174 'inF0' ( in 3-component vector of float) +0:174 'inF1' ( in 3-component vector of float) +0:174 'inF2' ( in 3-component vector of float) +0:175 length ( temp float) +0:175 'inF0' ( in 3-component vector of float) +0:176 log ( temp 3-component vector of float) +0:176 'inF0' ( in 3-component vector of float) +0:177 vector-scale ( temp 3-component vector of float) +0:177 log2 ( temp 3-component vector of float) +0:177 'inF0' ( in 3-component vector of float) +0:177 Constant: +0:177 0.301030 +0:178 log2 ( temp 3-component vector of float) +0:178 'inF0' ( in 3-component vector of float) +0:179 max ( temp 3-component vector of float) +0:179 'inF0' ( in 3-component vector of float) +0:179 'inF1' ( in 3-component vector of float) +0:180 min ( temp 3-component vector of float) +0:180 'inF0' ( in 3-component vector of float) +0:180 'inF1' ( in 3-component vector of float) +0:182 normalize ( temp 3-component vector of float) +0:182 'inF0' ( in 3-component vector of float) +0:183 pow ( temp 3-component vector of float) +0:183 'inF0' ( in 3-component vector of float) +0:183 'inF1' ( in 3-component vector of float) +0:184 radians ( temp 3-component vector of float) +0:184 'inF0' ( in 3-component vector of float) +0:185 reflect ( temp 3-component vector of float) +0:185 'inF0' ( in 3-component vector of float) +0:185 'inF1' ( in 3-component vector of float) +0:186 refract ( temp 3-component vector of float) +0:186 'inF0' ( in 3-component vector of float) +0:186 'inF1' ( in 3-component vector of float) +0:186 Constant: +0:186 2.000000 +0:? bitFieldReverse ( temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:188 roundEven ( temp 3-component vector of float) +0:188 'inF0' ( in 3-component vector of float) +0:189 inverse sqrt ( temp 3-component vector of float) +0:189 'inF0' ( in 3-component vector of float) +0:190 clamp ( temp 3-component vector of float) +0:190 'inF0' ( in 3-component vector of float) +0:190 Constant: +0:190 0.000000 +0:190 Constant: +0:190 1.000000 +0:191 Sign ( temp 3-component vector of float) +0:191 'inF0' ( in 3-component vector of float) +0:192 sine ( temp 3-component vector of float) +0:192 'inF0' ( in 3-component vector of float) +0:193 Sequence +0:193 move second child to first child ( temp 3-component vector of float) +0:193 'inF1' ( 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 ( temp 3-component vector of float) +0:194 'inF0' ( in 3-component vector of float) +0:195 smoothstep ( temp 3-component vector of float) +0:195 'inF0' ( in 3-component vector of float) +0:195 'inF1' ( in 3-component vector of float) +0:195 'inF2' ( in 3-component vector of float) +0:196 sqrt ( temp 3-component vector of float) +0:196 'inF0' ( in 3-component vector of float) +0:197 step ( temp 3-component vector of float) +0:197 'inF0' ( in 3-component vector of float) +0:197 'inF1' ( in 3-component vector of float) +0:198 tangent ( temp 3-component vector of float) +0:198 'inF0' ( in 3-component vector of float) +0:199 hyp. tangent ( temp 3-component vector of float) +0:199 'inF0' ( in 3-component vector of float) +0:201 trunc ( temp 3-component vector of float) +0:201 'inF0' ( in 3-component vector of float) +0:204 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:208 Function Definition: VertexShaderFunction4(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:? Sequence +0:209 all ( temp bool) +0:209 Convert float to bool ( temp 4-component vector of bool) +0:209 'inF0' ( in 4-component vector of float) +0:210 Absolute value ( temp 4-component vector of float) +0:210 'inF0' ( in 4-component vector of float) +0:211 arc cosine ( temp 4-component vector of float) +0:211 'inF0' ( in 4-component vector of float) +0:212 any ( temp bool) +0:212 Convert float to bool ( temp 4-component vector of bool) +0:212 'inF0' ( in 4-component vector of float) +0:213 arc sine ( temp 4-component vector of float) +0:213 'inF0' ( in 4-component vector of float) +0:214 floatBitsToInt ( temp 4-component vector of int) +0:214 'inF0' ( in 4-component vector of float) +0:215 floatBitsToUint ( temp 4-component vector of uint) +0:215 'inF0' ( in 4-component vector of float) +0:216 intBitsToFloat ( temp 4-component vector of float) +0:216 'inU0' ( in 4-component vector of uint) +0:218 arc tangent ( temp 4-component vector of float) +0:218 'inF0' ( in 4-component vector of float) +0:219 arc tangent ( temp 4-component vector of float) +0:219 'inF0' ( in 4-component vector of float) +0:219 'inF1' ( in 4-component vector of float) +0:220 Ceiling ( temp 4-component vector of float) +0:220 'inF0' ( in 4-component vector of float) +0:221 clamp ( temp 4-component vector of float) +0:221 'inF0' ( in 4-component vector of float) +0:221 'inF1' ( in 4-component vector of float) +0:221 'inF2' ( in 4-component vector of float) +0:222 cosine ( temp 4-component vector of float) +0:222 'inF0' ( in 4-component vector of float) +0:223 hyp. cosine ( temp 4-component vector of float) +0:223 'inF0' ( in 4-component vector of float) +0:? bitCount ( temp 4-component vector of int) +0:? Constant: +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:? 2 (const int) +0:225 degrees ( temp 4-component vector of float) +0:225 'inF0' ( in 4-component vector of float) +0:226 distance ( temp float) +0:226 'inF0' ( in 4-component vector of float) +0:226 'inF1' ( in 4-component vector of float) +0:227 dot-product ( temp 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 ( temp 4-component vector of float) +0:232 'inF0' ( in 4-component vector of float) +0:233 exp2 ( temp 4-component vector of float) +0:233 'inF0' ( in 4-component vector of float) +0:234 face-forward ( temp 4-component vector of float) +0:234 'inF0' ( in 4-component vector of float) +0:234 'inF1' ( in 4-component vector of float) +0:234 'inF2' ( in 4-component vector of float) +0:235 findMSB ( temp int) +0:235 Constant: +0:235 7 (const int) +0:236 findLSB ( temp int) +0:236 Constant: +0:236 7 (const int) +0:237 Floor ( temp 4-component vector of float) +0:237 'inF0' ( in 4-component vector of float) +0:239 mod ( temp 4-component vector of float) +0:239 'inF0' ( in 4-component vector of float) +0:239 'inF1' ( in 4-component vector of float) +0:240 Fraction ( temp 4-component vector of float) +0:240 'inF0' ( in 4-component vector of float) +0:241 isinf ( temp 4-component vector of bool) +0:241 'inF0' ( in 4-component vector of float) +0:242 isnan ( temp 4-component vector of bool) +0:242 'inF0' ( in 4-component vector of float) +0:243 ldexp ( temp 4-component vector of float) +0:243 'inF0' ( in 4-component vector of float) +0:243 'inF1' ( in 4-component vector of float) +0:244 mix ( temp 4-component vector of float) +0:244 'inF0' ( in 4-component vector of float) +0:244 'inF1' ( in 4-component vector of float) +0:244 'inF2' ( in 4-component vector of float) +0:245 length ( temp float) +0:245 'inF0' ( in 4-component vector of float) +0:246 log ( temp 4-component vector of float) +0:246 'inF0' ( in 4-component vector of float) +0:247 vector-scale ( temp 4-component vector of float) +0:247 log2 ( temp 4-component vector of float) +0:247 'inF0' ( in 4-component vector of float) +0:247 Constant: +0:247 0.301030 +0:248 log2 ( temp 4-component vector of float) +0:248 'inF0' ( in 4-component vector of float) +0:249 max ( temp 4-component vector of float) +0:249 'inF0' ( in 4-component vector of float) +0:249 'inF1' ( in 4-component vector of float) +0:250 min ( temp 4-component vector of float) +0:250 'inF0' ( in 4-component vector of float) +0:250 'inF1' ( in 4-component vector of float) +0:252 normalize ( temp 4-component vector of float) +0:252 'inF0' ( in 4-component vector of float) +0:253 pow ( temp 4-component vector of float) +0:253 'inF0' ( in 4-component vector of float) +0:253 'inF1' ( in 4-component vector of float) +0:254 radians ( temp 4-component vector of float) +0:254 'inF0' ( in 4-component vector of float) +0:255 reflect ( temp 4-component vector of float) +0:255 'inF0' ( in 4-component vector of float) +0:255 'inF1' ( in 4-component vector of float) +0:256 refract ( temp 4-component vector of float) +0:256 'inF0' ( in 4-component vector of float) +0:256 'inF1' ( in 4-component vector of float) +0:256 Constant: +0:256 2.000000 +0:? bitFieldReverse ( 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:258 roundEven ( temp 4-component vector of float) +0:258 'inF0' ( in 4-component vector of float) +0:259 inverse sqrt ( temp 4-component vector of float) +0:259 'inF0' ( in 4-component vector of float) +0:260 clamp ( temp 4-component vector of float) +0:260 'inF0' ( in 4-component vector of float) +0:260 Constant: +0:260 0.000000 +0:260 Constant: +0:260 1.000000 +0:261 Sign ( temp 4-component vector of float) +0:261 'inF0' ( in 4-component vector of float) +0:262 sine ( temp 4-component vector of float) +0:262 'inF0' ( in 4-component vector of float) +0:263 Sequence +0:263 move second child to first child ( temp 4-component vector of float) +0:263 'inF1' ( 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 ( temp 4-component vector of float) +0:264 'inF0' ( in 4-component vector of float) +0:265 smoothstep ( temp 4-component vector of float) +0:265 'inF0' ( in 4-component vector of float) +0:265 'inF1' ( in 4-component vector of float) +0:265 'inF2' ( in 4-component vector of float) +0:266 sqrt ( temp 4-component vector of float) +0:266 'inF0' ( in 4-component vector of float) +0:267 step ( temp 4-component vector of float) +0:267 'inF0' ( in 4-component vector of float) +0:267 'inF1' ( in 4-component vector of float) +0:268 tangent ( temp 4-component vector of float) +0:268 'inF0' ( in 4-component vector of float) +0:269 hyp. tangent ( temp 4-component vector of float) +0:269 'inF0' ( in 4-component vector of float) +0:271 trunc ( temp 4-component vector of float) +0:271 'inF0' ( in 4-component vector of float) +0:274 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:331 Function Definition: VertexShaderFunction2x2(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:? Sequence +0:333 all ( temp bool) +0:333 Convert float to bool ( temp 2X2 matrix of bool) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 Absolute value ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc cosine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 any ( temp bool) +0:333 Convert float to bool ( temp 2X2 matrix of bool) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc sine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 arc tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 Ceiling ( temp 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 'inF1' ( in 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. cosine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 degrees ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 determinant ( temp float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 exp ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 exp2 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 findMSB ( temp int) +0:333 Constant: +0:333 7 (const int) +0:333 findLSB ( temp int) +0:333 Constant: +0:333 7 (const int) +0:333 Floor ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 mod ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 Fraction ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 ldexp ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 mix ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 'inF2' ( in 2X2 matrix of float) +0:333 log ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 matrix-scale ( temp 2X2 matrix of float) +0:333 log2 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 Constant: +0:333 0.301030 +0:333 log2 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 max ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 min ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 pow ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 radians ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 roundEven ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 inverse sqrt ( temp 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 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 sine ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 Sequence +0:333 move second child to first child ( temp 2X2 matrix of float) +0:333 'inF1' ( 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 ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 smoothstep ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 'inF2' ( in 2X2 matrix of float) +0:333 sqrt ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 step ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 'inF1' ( in 2X2 matrix of float) +0:333 tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 hyp. tangent ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 transpose ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:333 trunc ( temp 2X2 matrix of float) +0:333 'inF0' ( in 2X2 matrix of float) +0:336 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:340 Function Definition: VertexShaderFunction3x3(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:? Sequence +0:342 all ( temp bool) +0:342 Convert float to bool ( temp 3X3 matrix of bool) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 Absolute value ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc cosine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 any ( temp bool) +0:342 Convert float to bool ( temp 3X3 matrix of bool) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc sine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 arc tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 Ceiling ( temp 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 'inF1' ( in 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. cosine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 degrees ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 determinant ( temp float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 exp ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 exp2 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 findMSB ( temp int) +0:342 Constant: +0:342 7 (const int) +0:342 findLSB ( temp int) +0:342 Constant: +0:342 7 (const int) +0:342 Floor ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 mod ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 Fraction ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 ldexp ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 mix ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 'inF2' ( in 3X3 matrix of float) +0:342 log ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 matrix-scale ( temp 3X3 matrix of float) +0:342 log2 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 Constant: +0:342 0.301030 +0:342 log2 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 max ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 min ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 pow ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 radians ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 roundEven ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 inverse sqrt ( temp 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 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 sine ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 Sequence +0:342 move second child to first child ( temp 3X3 matrix of float) +0:342 'inF1' ( 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 ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 smoothstep ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 'inF2' ( in 3X3 matrix of float) +0:342 sqrt ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 step ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 'inF1' ( in 3X3 matrix of float) +0:342 tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 hyp. tangent ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 transpose ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:342 trunc ( temp 3X3 matrix of float) +0:342 'inF0' ( in 3X3 matrix of float) +0:345 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:349 Function Definition: VertexShaderFunction4x4(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:? Sequence +0:351 all ( temp bool) +0:351 Convert float to bool ( temp 4X4 matrix of bool) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 Absolute value ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc cosine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 any ( temp bool) +0:351 Convert float to bool ( temp 4X4 matrix of bool) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc sine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 arc tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 Ceiling ( temp 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 'inF1' ( in 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. cosine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 degrees ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 determinant ( temp float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 exp ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 exp2 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 findMSB ( temp int) +0:351 Constant: +0:351 7 (const int) +0:351 findLSB ( temp int) +0:351 Constant: +0:351 7 (const int) +0:351 Floor ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 mod ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 Fraction ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 ldexp ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 mix ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 'inF2' ( in 4X4 matrix of float) +0:351 log ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 matrix-scale ( temp 4X4 matrix of float) +0:351 log2 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 Constant: +0:351 0.301030 +0:351 log2 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 max ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 min ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 pow ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 radians ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 roundEven ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 inverse sqrt ( temp 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 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 sine ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 Sequence +0:351 move second child to first child ( temp 4X4 matrix of float) +0:351 'inF1' ( 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 ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 smoothstep ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 'inF2' ( in 4X4 matrix of float) +0:351 sqrt ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 step ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 'inF1' ( in 4X4 matrix of float) +0:351 tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 hyp. tangent ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 transpose ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:351 trunc ( temp 4X4 matrix of float) +0:351 'inF0' ( in 4X4 matrix of float) +0:354 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:372 Function Definition: TestGenMul2(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:? Sequence +0:373 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 'inF1' ( in float) +0:373 'inF0' ( in float) +0:373 Sequence +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 'inF0' ( in float) +0:373 'inFV0' ( in 2-component vector of float) +0:373 Sequence +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 'inFV0' ( in 2-component vector of float) +0:373 'inF0' ( in float) +0:373 Sequence +0:373 move second child to first child ( temp float) +0:373 'r3' ( temp float) +0:373 dot-product ( temp float) +0:373 'inFV0' ( in 2-component vector of float) +0:373 'inFV1' ( in 2-component vector of float) +0:373 Sequence +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 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 Sequence +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 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 Sequence +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 'inF0' ( in float) +0:373 'inFM0' ( in 2X2 matrix of float) +0:373 Sequence +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 'inFM0' ( in 2X2 matrix of float) +0:373 'inF0' ( in float) +0:373 Sequence +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 'inFM1' ( in 2X2 matrix of float) +0:373 'inFM0' ( in 2X2 matrix of float) +0:379 Function Definition: TestGenMul3(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:? Sequence +0:380 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 'inF1' ( in float) +0:380 'inF0' ( in float) +0:380 Sequence +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 'inF0' ( in float) +0:380 'inFV0' ( in 3-component vector of float) +0:380 Sequence +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 'inFV0' ( in 3-component vector of float) +0:380 'inF0' ( in float) +0:380 Sequence +0:380 move second child to first child ( temp float) +0:380 'r3' ( temp float) +0:380 dot-product ( temp float) +0:380 'inFV0' ( in 3-component vector of float) +0:380 'inFV1' ( in 3-component vector of float) +0:380 Sequence +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 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 Sequence +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 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 Sequence +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 'inF0' ( in float) +0:380 'inFM0' ( in 3X3 matrix of float) +0:380 Sequence +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 'inFM0' ( in 3X3 matrix of float) +0:380 'inF0' ( in float) +0:380 Sequence +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 'inFM1' ( in 3X3 matrix of float) +0:380 'inFM0' ( in 3X3 matrix of float) +0:386 Function Definition: TestGenMul4(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:? Sequence +0:387 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 'inF1' ( in float) +0:387 'inF0' ( in float) +0:387 Sequence +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 'inF0' ( in float) +0:387 'inFV0' ( in 4-component vector of float) +0:387 Sequence +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 'inFV0' ( in 4-component vector of float) +0:387 'inF0' ( in float) +0:387 Sequence +0:387 move second child to first child ( temp float) +0:387 'r3' ( temp float) +0:387 dot-product ( temp float) +0:387 'inFV0' ( in 4-component vector of float) +0:387 'inFV1' ( in 4-component vector of float) +0:387 Sequence +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 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 Sequence +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 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 Sequence +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 'inF0' ( in float) +0:387 'inFM0' ( in 4X4 matrix of float) +0:387 Sequence +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 'inFM0' ( in 4X4 matrix of float) +0:387 'inF0' ( in float) +0:387 Sequence +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 'inFM1' ( in 4X4 matrix of float) +0:387 'inFM0' ( in 4X4 matrix of float) +0:396 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) +0:396 Function Parameters: +0:396 'inF0' ( in float) +0:396 'inF1' ( in float) +0:396 'inFV2' ( in 2-component vector of float) +0:396 'inFV3' ( in 3-component vector of float) +0:396 'inFM2x3' ( in 2X3 matrix of float) +0:396 'inFM3x2' ( in 3X2 matrix of float) +0:396 'inFM3x3' ( in 3X3 matrix of float) +0:396 'inFM3x4' ( in 3X4 matrix of float) +0:396 'inFM2x4' ( in 2X4 matrix of float) +0:? Sequence +0:397 Sequence +0:397 move second child to first child ( temp float) +0:397 'r00' ( temp float) +0:397 component-wise multiply ( temp float) +0:397 'inF1' ( in float) +0:397 'inF0' ( in float) +0:398 Sequence +0:398 move second child to first child ( temp 2-component vector of float) +0:398 'r01' ( temp 2-component vector of float) +0:398 vector-scale ( temp 2-component vector of float) +0:398 'inF0' ( in float) +0:398 'inFV2' ( in 2-component vector of float) +0:399 Sequence +0:399 move second child to first child ( temp 3-component vector of float) +0:399 'r02' ( temp 3-component vector of float) +0:399 vector-scale ( temp 3-component vector of float) +0:399 'inF0' ( in float) +0:399 'inFV3' ( in 3-component vector of float) +0:400 Sequence +0:400 move second child to first child ( temp 2-component vector of float) +0:400 'r03' ( temp 2-component vector of float) +0:400 vector-scale ( temp 2-component vector of float) +0:400 'inFV2' ( in 2-component vector of float) +0:400 'inF0' ( in float) +0:401 Sequence +0:401 move second child to first child ( temp 3-component vector of float) +0:401 'r04' ( temp 3-component vector of float) +0:401 vector-scale ( temp 3-component vector of float) +0:401 'inFV3' ( in 3-component vector of float) +0:401 'inF0' ( in float) +0:402 Sequence +0:402 move second child to first child ( temp float) +0:402 'r05' ( temp float) +0:402 dot-product ( temp float) +0:402 'inFV2' ( in 2-component vector of float) +0:402 'inFV2' ( in 2-component vector of float) +0:403 Sequence +0:403 move second child to first child ( temp float) +0:403 'r06' ( temp float) +0:403 dot-product ( temp float) +0:403 'inFV3' ( in 3-component vector of float) +0:403 'inFV3' ( in 3-component vector of float) +0:404 Sequence +0:404 move second child to first child ( temp 3-component vector of float) +0:404 'r07' ( temp 3-component vector of float) +0:404 matrix-times-vector ( temp 3-component vector of float) +0:404 'inFM2x3' ( in 2X3 matrix of float) +0:404 'inFV2' ( in 2-component vector of float) +0:405 Sequence +0:405 move second child to first child ( temp 2-component vector of float) +0:405 'r08' ( temp 2-component vector of float) +0:405 matrix-times-vector ( temp 2-component vector of float) +0:405 'inFM3x2' ( in 3X2 matrix of float) +0:405 'inFV3' ( in 3-component vector of float) +0:406 Sequence +0:406 move second child to first child ( temp 2-component vector of float) +0:406 'r09' ( temp 2-component vector of float) +0:406 vector-times-matrix ( temp 2-component vector of float) +0:406 'inFV3' ( in 3-component vector of float) +0:406 'inFM2x3' ( in 2X3 matrix of float) +0:407 Sequence +0:407 move second child to first child ( temp 3-component vector of float) +0:407 'r10' ( temp 3-component vector of float) +0:407 vector-times-matrix ( temp 3-component vector of float) +0:407 'inFV2' ( in 2-component vector of float) +0:407 'inFM3x2' ( in 3X2 matrix of float) +0:408 Sequence +0:408 move second child to first child ( temp 2X3 matrix of float) +0:408 'r11' ( temp 2X3 matrix of float) +0:408 matrix-scale ( temp 2X3 matrix of float) +0:408 'inF0' ( in float) +0:408 'inFM2x3' ( in 2X3 matrix of float) +0:409 Sequence +0:409 move second child to first child ( temp 3X2 matrix of float) +0:409 'r12' ( temp 3X2 matrix of float) +0:409 matrix-scale ( temp 3X2 matrix of float) +0:409 'inF0' ( in float) +0:409 'inFM3x2' ( in 3X2 matrix of float) +0:410 Sequence +0:410 move second child to first child ( temp 2X2 matrix of float) +0:410 'r13' ( temp 2X2 matrix of float) +0:410 matrix-multiply ( temp 2X2 matrix of float) +0:410 'inFM3x2' ( in 3X2 matrix of float) +0:410 'inFM2x3' ( in 2X3 matrix of float) +0:411 Sequence +0:411 move second child to first child ( temp 2X3 matrix of float) +0:411 'r14' ( temp 2X3 matrix of float) +0:411 matrix-multiply ( temp 2X3 matrix of float) +0:411 'inFM3x3' ( in 3X3 matrix of float) +0:411 'inFM2x3' ( in 2X3 matrix of float) +0:412 Sequence +0:412 move second child to first child ( temp 2X4 matrix of float) +0:412 'r15' ( temp 2X4 matrix of float) +0:412 matrix-multiply ( temp 2X4 matrix of float) +0:412 'inFM3x4' ( in 3X4 matrix of float) +0:412 'inFM2x3' ( in 2X3 matrix of float) +0:413 Sequence +0:413 move second child to first child ( temp 3X4 matrix of float) +0:413 'r16' ( temp 3X4 matrix of float) +0:413 matrix-multiply ( temp 3X4 matrix of float) +0:413 'inFM2x4' ( in 2X4 matrix of float) +0:413 'inFM3x2' ( in 3X2 matrix of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 1225 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" + Source HLSL 500 + Name 4 "VertexShaderFunction" + 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;mf23;mf32;mf33;mf34;mf24;" + 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 1049 "r0" + Name 1053 "r1" + Name 1057 "r2" + Name 1061 "r3" + Name 1065 "r4" + Name 1069 "r5" + Name 1073 "r6" + Name 1077 "r7" + Name 1081 "r8" + Name 1085 "r0" + Name 1089 "r1" + Name 1093 "r2" + Name 1097 "r3" + Name 1101 "r4" + Name 1105 "r5" + Name 1109 "r6" + Name 1113 "r7" + Name 1117 "r8" + Name 1121 "r0" + Name 1125 "r1" + Name 1129 "r2" + Name 1133 "r3" + Name 1137 "r4" + Name 1141 "r5" + Name 1145 "r6" + Name 1149 "r7" + Name 1153 "r8" + Name 1157 "r00" + Name 1161 "r01" + Name 1165 "r02" + Name 1169 "r03" + Name 1173 "r04" + Name 1177 "r05" + Name 1181 "r06" + Name 1185 "r07" + Name 1189 "r08" + Name 1193 "r09" + Name 1197 "r10" + Name 1201 "r11" + Name 1205 "r12" + Name 1209 "r13" + Name 1213 "r14" + Name 1217 "r15" + Name 1221 "r16" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 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) + 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 36(fvec3) 2 + 112: TypePointer Function 111 + 113: TypeMatrix 24(fvec2) 3 + 114: TypePointer Function 113 + 115: TypeMatrix 48(fvec4) 3 + 116: TypePointer Function 115 + 117: TypeMatrix 48(fvec4) 2 + 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 + 133: 6(float) Constant 0 + 146: TypeInt 32 1 + 167: 146(int) Constant 7 + 199: 6(float) Constant 1050288283 + 214: 146(int) Constant 2 + 221: 6(float) Constant 1065353216 + 253: TypeVector 132(bool) 2 + 254: 24(fvec2) ConstantComposite 133 133 + 267: TypeVector 146(int) 2 + 288: 146(int) Constant 3 + 289: 267(ivec2) ConstantComposite 167 288 + 354: 6(float) Constant 1073741824 + 356: 146(int) Constant 1 + 357: 267(ivec2) ConstantComposite 356 214 + 392: 24(fvec2) ConstantComposite 221 354 + 396: TypeVector 132(bool) 3 + 397: 36(fvec3) ConstantComposite 133 133 133 + 410: TypeVector 146(int) 3 + 431: 146(int) Constant 5 + 432: 410(ivec3) ConstantComposite 167 288 431 + 501: 410(ivec3) ConstantComposite 356 214 288 + 536: 6(float) Constant 1077936128 + 537: 36(fvec3) ConstantComposite 221 354 536 + 541: TypeVector 132(bool) 4 + 542: 48(fvec4) ConstantComposite 133 133 133 133 + 555: TypeVector 146(int) 4 + 576: 555(ivec4) ConstantComposite 167 288 431 214 + 586: 8(int) Constant 1 + 592: 8(int) Constant 2 + 595: 8(int) Constant 3 + 655: 146(int) Constant 4 + 656: 555(ivec4) ConstantComposite 356 214 288 655 + 691: 6(float) Constant 1082130432 + 692: 48(fvec4) ConstantComposite 221 354 536 691 + 696: TypeMatrix 253(bvec2) 2 + 806: 24(fvec2) ConstantComposite 354 354 + 807: 60 ConstantComposite 806 806 + 811: TypeMatrix 396(bvec3) 3 + 924: 36(fvec3) ConstantComposite 536 536 536 + 925: 68 ConstantComposite 924 924 924 + 929: TypeMatrix 541(bvec4) 4 + 1045: 48(fvec4) ConstantComposite 691 691 691 691 + 1046: 76 ConstantComposite 1045 1045 1045 1045 +4(VertexShaderFunction): 2 Function None 3 + 5: Label + Return + FunctionEnd +16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 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) + 134: 132(bool) FOrdNotEqual 131 133 + 135: 132(bool) All 134 + 136: 6(float) Load 11(inF0) + 137: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 136 + 138: 6(float) Load 11(inF0) + 139: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 138 + 140: 6(float) Load 11(inF0) + 141: 132(bool) FOrdNotEqual 140 133 + 142: 132(bool) Any 141 + 143: 6(float) Load 11(inF0) + 144: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 143 + 145: 6(float) Load 11(inF0) + 147: 146(int) Bitcast 145 + 148: 6(float) Load 11(inF0) + 149: 8(int) Bitcast 148 + 150: 8(int) Load 14(inU0) + 151: 6(float) Bitcast 150 + 152: 6(float) Load 11(inF0) + 153: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 152 + 154: 6(float) Load 11(inF0) + 155: 6(float) Load 12(inF1) + 156: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 154 155 + 157: 6(float) Load 11(inF0) + 158: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 157 + 159: 6(float) Load 11(inF0) + 160: 6(float) Load 12(inF1) + 161: 6(float) Load 13(inF2) + 162: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 159 160 161 + 163: 6(float) Load 11(inF0) + 164: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 163 + 165: 6(float) Load 11(inF0) + 166: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 165 + 168: 146(int) BitCount 167 + 169: 6(float) Load 11(inF0) + 170: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 169 + 171: 6(float) Load 11(inF0) + 172: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 171 + 173: 6(float) Load 11(inF0) + 174: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 173 + 175: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 176: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 177: 6(float) Load 11(inF0) + 178: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 177 + 179: 6(float) Load 11(inF0) + 180: 6(float) Load 12(inF1) + 181: 6(float) FMod 179 180 + 182: 6(float) Load 11(inF0) + 183: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 182 + 184: 6(float) Load 11(inF0) + 185: 132(bool) IsInf 184 + 186: 6(float) Load 11(inF0) + 187: 132(bool) IsNan 186 + 188: 6(float) Load 11(inF0) + 189: 6(float) Load 12(inF1) + 190: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 188 189 + 191: 6(float) Load 11(inF0) + 192: 6(float) Load 12(inF1) + 193: 6(float) Load 13(inF2) + 194: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 191 192 193 + 195: 6(float) Load 11(inF0) + 196: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 195 + 197: 6(float) Load 11(inF0) + 198: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 197 + 200: 6(float) FMul 198 199 + 201: 6(float) Load 11(inF0) + 202: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 201 + 203: 6(float) Load 11(inF0) + 204: 6(float) Load 12(inF1) + 205: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 203 204 + 206: 6(float) Load 11(inF0) + 207: 6(float) Load 12(inF1) + 208: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 206 207 + 209: 6(float) Load 11(inF0) + 210: 6(float) Load 12(inF1) + 211: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 209 210 + 212: 6(float) Load 11(inF0) + 213: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 212 + 215: 146(int) BitReverse 214 + 216: 6(float) Load 11(inF0) + 217: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 216 + 218: 6(float) Load 11(inF0) + 219: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 218 + 220: 6(float) Load 11(inF0) + 222: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 220 133 221 + 223: 6(float) Load 11(inF0) + 224: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 223 + 225: 6(float) Load 11(inF0) + 226: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 225 + 227: 6(float) Load 11(inF0) + 228: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 227 + Store 12(inF1) 228 + 229: 6(float) Load 11(inF0) + 230: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 229 + Store 13(inF2) 230 + 231: 6(float) Load 11(inF0) + 232: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 231 + 233: 6(float) Load 11(inF0) + 234: 6(float) Load 12(inF1) + 235: 6(float) Load 13(inF2) + 236: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 233 234 235 + 237: 6(float) Load 11(inF0) + 238: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 237 + 239: 6(float) Load 11(inF0) + 240: 6(float) Load 12(inF1) + 241: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 239 240 + 242: 6(float) Load 11(inF0) + 243: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 242 + 244: 6(float) Load 11(inF0) + 245: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 244 + 246: 6(float) Load 11(inF0) + 247: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 246 + ReturnValue 133 + 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 133 + 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 + 252: 24(fvec2) Load 29(inF0) + 255: 253(bvec2) FOrdNotEqual 252 254 + 256: 132(bool) All 255 + 257: 24(fvec2) Load 29(inF0) + 258: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 257 + 259: 24(fvec2) Load 29(inF0) + 260: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 259 + 261: 24(fvec2) Load 29(inF0) + 262: 253(bvec2) FOrdNotEqual 261 254 + 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: 267(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: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 308: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 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) + 317: 253(bvec2) IsInf 316 + 318: 24(fvec2) Load 29(inF0) + 319: 253(bvec2) IsNan 318 + 320: 24(fvec2) Load 29(inF0) + 321: 24(fvec2) Load 30(inF1) + 322: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 320 321 + 323: 24(fvec2) Load 29(inF0) + 324: 24(fvec2) Load 30(inF1) + 325: 24(fvec2) Load 31(inF2) + 326: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 323 324 325 + 327: 24(fvec2) Load 29(inF0) + 328: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 327 + 329: 24(fvec2) Load 29(inF0) + 330: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 329 + 331: 24(fvec2) Load 29(inF0) + 332: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 331 + 333: 24(fvec2) VectorTimesScalar 332 199 + 334: 24(fvec2) Load 29(inF0) + 335: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 334 + 336: 24(fvec2) Load 29(inF0) + 337: 24(fvec2) Load 30(inF1) + 338: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 336 337 + 339: 24(fvec2) Load 29(inF0) + 340: 24(fvec2) Load 30(inF1) + 341: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 339 340 + 342: 24(fvec2) Load 29(inF0) + 343: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 342 + 344: 24(fvec2) Load 29(inF0) + 345: 24(fvec2) Load 30(inF1) + 346: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 344 345 + 347: 24(fvec2) Load 29(inF0) + 348: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 347 + 349: 24(fvec2) Load 29(inF0) + 350: 24(fvec2) Load 30(inF1) + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 349 350 + 352: 24(fvec2) Load 29(inF0) + 353: 24(fvec2) Load 30(inF1) + 355: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 352 353 354 + 358: 267(ivec2) BitReverse 357 + 359: 24(fvec2) Load 29(inF0) + 360: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 359 + 361: 24(fvec2) Load 29(inF0) + 362: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 361 + 363: 24(fvec2) Load 29(inF0) + 364: 24(fvec2) CompositeConstruct 133 133 + 365: 24(fvec2) CompositeConstruct 221 221 + 366: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 + 367: 24(fvec2) Load 29(inF0) + 368: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 367 + 369: 24(fvec2) Load 29(inF0) + 370: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 369 + 371: 24(fvec2) Load 29(inF0) + 372: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 371 + Store 30(inF1) 372 + 373: 24(fvec2) Load 29(inF0) + 374: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 373 + Store 31(inF2) 374 + 375: 24(fvec2) Load 29(inF0) + 376: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 375 + 377: 24(fvec2) Load 29(inF0) + 378: 24(fvec2) Load 30(inF1) + 379: 24(fvec2) Load 31(inF2) + 380: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 377 378 379 + 381: 24(fvec2) Load 29(inF0) + 382: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 381 + 383: 24(fvec2) Load 29(inF0) + 384: 24(fvec2) Load 30(inF1) + 385: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 383 384 + 386: 24(fvec2) Load 29(inF0) + 387: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 386 + 388: 24(fvec2) Load 29(inF0) + 389: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 388 + 390: 24(fvec2) Load 29(inF0) + 391: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 390 + ReturnValue 392 + 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 + 395: 36(fvec3) Load 41(inF0) + 398: 396(bvec3) FOrdNotEqual 395 397 + 399: 132(bool) All 398 + 400: 36(fvec3) Load 41(inF0) + 401: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 400 + 402: 36(fvec3) Load 41(inF0) + 403: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 402 + 404: 36(fvec3) Load 41(inF0) + 405: 396(bvec3) FOrdNotEqual 404 397 + 406: 132(bool) Any 405 + 407: 36(fvec3) Load 41(inF0) + 408: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 407 + 409: 36(fvec3) Load 41(inF0) + 411: 410(ivec3) Bitcast 409 + 412: 36(fvec3) Load 41(inF0) + 413: 38(ivec3) Bitcast 412 + 414: 38(ivec3) Load 44(inU0) + 415: 36(fvec3) Bitcast 414 + 416: 36(fvec3) Load 41(inF0) + 417: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 416 + 418: 36(fvec3) Load 41(inF0) + 419: 36(fvec3) Load 42(inF1) + 420: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 418 419 + 421: 36(fvec3) Load 41(inF0) + 422: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 421 + 423: 36(fvec3) Load 41(inF0) + 424: 36(fvec3) Load 42(inF1) + 425: 36(fvec3) Load 43(inF2) + 426: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 423 424 425 + 427: 36(fvec3) Load 41(inF0) + 428: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 427 + 429: 36(fvec3) Load 41(inF0) + 430: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 429 + 433: 410(ivec3) BitCount 432 + 434: 36(fvec3) Load 41(inF0) + 435: 36(fvec3) Load 42(inF1) + 436: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 434 435 + 437: 36(fvec3) Load 41(inF0) + 438: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 437 + 439: 36(fvec3) Load 41(inF0) + 440: 36(fvec3) Load 42(inF1) + 441: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 439 440 + 442: 36(fvec3) Load 41(inF0) + 443: 36(fvec3) Load 42(inF1) + 444: 6(float) Dot 442 443 + 445: 36(fvec3) Load 41(inF0) + 446: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 445 + 447: 36(fvec3) Load 41(inF0) + 448: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 447 + 449: 36(fvec3) Load 41(inF0) + 450: 36(fvec3) Load 42(inF1) + 451: 36(fvec3) Load 43(inF2) + 452: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 449 450 451 + 453: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 454: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 455: 36(fvec3) Load 41(inF0) + 456: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 455 + 457: 36(fvec3) Load 41(inF0) + 458: 36(fvec3) Load 42(inF1) + 459: 36(fvec3) FMod 457 458 + 460: 36(fvec3) Load 41(inF0) + 461: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 460 + 462: 36(fvec3) Load 41(inF0) + 463: 396(bvec3) IsInf 462 + 464: 36(fvec3) Load 41(inF0) + 465: 396(bvec3) IsNan 464 + 466: 36(fvec3) Load 41(inF0) + 467: 36(fvec3) Load 42(inF1) + 468: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 466 467 + 469: 36(fvec3) Load 41(inF0) + 470: 36(fvec3) Load 42(inF1) + 471: 36(fvec3) Load 43(inF2) + 472: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 469 470 471 + 473: 36(fvec3) Load 41(inF0) + 474: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 473 + 475: 36(fvec3) Load 41(inF0) + 476: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 475 + 477: 36(fvec3) Load 41(inF0) + 478: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 477 + 479: 36(fvec3) VectorTimesScalar 478 199 + 480: 36(fvec3) Load 41(inF0) + 481: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 480 + 482: 36(fvec3) Load 41(inF0) + 483: 36(fvec3) Load 42(inF1) + 484: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 482 483 + 485: 36(fvec3) Load 41(inF0) + 486: 36(fvec3) Load 42(inF1) + 487: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 485 486 + 488: 36(fvec3) Load 41(inF0) + 489: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 488 + 490: 36(fvec3) Load 41(inF0) + 491: 36(fvec3) Load 42(inF1) + 492: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 490 491 + 493: 36(fvec3) Load 41(inF0) + 494: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 493 + 495: 36(fvec3) Load 41(inF0) + 496: 36(fvec3) Load 42(inF1) + 497: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 495 496 + 498: 36(fvec3) Load 41(inF0) + 499: 36(fvec3) Load 42(inF1) + 500: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 498 499 354 + 502: 410(ivec3) BitReverse 501 + 503: 36(fvec3) Load 41(inF0) + 504: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 503 + 505: 36(fvec3) Load 41(inF0) + 506: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 505 + 507: 36(fvec3) Load 41(inF0) + 508: 36(fvec3) CompositeConstruct 133 133 133 + 509: 36(fvec3) CompositeConstruct 221 221 221 + 510: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 507 508 509 + 511: 36(fvec3) Load 41(inF0) + 512: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 511 + 513: 36(fvec3) Load 41(inF0) + 514: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 513 + 515: 36(fvec3) Load 41(inF0) + 516: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 515 + Store 42(inF1) 516 + 517: 36(fvec3) Load 41(inF0) + 518: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 517 + Store 43(inF2) 518 + 519: 36(fvec3) Load 41(inF0) + 520: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 519 + 521: 36(fvec3) Load 41(inF0) + 522: 36(fvec3) Load 42(inF1) + 523: 36(fvec3) Load 43(inF2) + 524: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 521 522 523 + 525: 36(fvec3) Load 41(inF0) + 526: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 525 + 527: 36(fvec3) Load 41(inF0) + 528: 36(fvec3) Load 42(inF1) + 529: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 527 528 + 530: 36(fvec3) Load 41(inF0) + 531: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 530 + 532: 36(fvec3) Load 41(inF0) + 533: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 532 + 534: 36(fvec3) Load 41(inF0) + 535: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 534 + ReturnValue 537 + 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 + 540: 48(fvec4) Load 53(inF0) + 543: 541(bvec4) FOrdNotEqual 540 542 + 544: 132(bool) All 543 + 545: 48(fvec4) Load 53(inF0) + 546: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 545 + 547: 48(fvec4) Load 53(inF0) + 548: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 547 + 549: 48(fvec4) Load 53(inF0) + 550: 541(bvec4) FOrdNotEqual 549 542 + 551: 132(bool) Any 550 + 552: 48(fvec4) Load 53(inF0) + 553: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 552 + 554: 48(fvec4) Load 53(inF0) + 556: 555(ivec4) Bitcast 554 + 557: 48(fvec4) Load 53(inF0) + 558: 50(ivec4) Bitcast 557 + 559: 50(ivec4) Load 56(inU0) + 560: 48(fvec4) Bitcast 559 + 561: 48(fvec4) Load 53(inF0) + 562: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 561 + 563: 48(fvec4) Load 53(inF0) + 564: 48(fvec4) Load 54(inF1) + 565: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 563 564 + 566: 48(fvec4) Load 53(inF0) + 567: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 566 + 568: 48(fvec4) Load 53(inF0) + 569: 48(fvec4) Load 54(inF1) + 570: 48(fvec4) Load 55(inF2) + 571: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 568 569 570 + 572: 48(fvec4) Load 53(inF0) + 573: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 572 + 574: 48(fvec4) Load 53(inF0) + 575: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 574 + 577: 555(ivec4) BitCount 576 + 578: 48(fvec4) Load 53(inF0) + 579: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 578 + 580: 48(fvec4) Load 53(inF0) + 581: 48(fvec4) Load 54(inF1) + 582: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 580 581 + 583: 48(fvec4) Load 53(inF0) + 584: 48(fvec4) Load 54(inF1) + 585: 6(float) Dot 583 584 + 587: 7(ptr) AccessChain 53(inF0) 586 + 588: 6(float) Load 587 + 589: 7(ptr) AccessChain 54(inF1) 586 + 590: 6(float) Load 589 + 591: 6(float) FMul 588 590 + 593: 7(ptr) AccessChain 53(inF0) 592 + 594: 6(float) Load 593 + 596: 7(ptr) AccessChain 54(inF1) 595 + 597: 6(float) Load 596 + 598: 48(fvec4) CompositeConstruct 221 591 594 597 + 599: 48(fvec4) Load 53(inF0) + 600: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 599 + 601: 48(fvec4) Load 53(inF0) + 602: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 601 + 603: 48(fvec4) Load 53(inF0) + 604: 48(fvec4) Load 54(inF1) + 605: 48(fvec4) Load 55(inF2) + 606: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 603 604 605 + 607: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 608: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 609: 48(fvec4) Load 53(inF0) + 610: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 609 + 611: 48(fvec4) Load 53(inF0) + 612: 48(fvec4) Load 54(inF1) + 613: 48(fvec4) FMod 611 612 + 614: 48(fvec4) Load 53(inF0) + 615: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 614 + 616: 48(fvec4) Load 53(inF0) + 617: 541(bvec4) IsInf 616 + 618: 48(fvec4) Load 53(inF0) + 619: 541(bvec4) IsNan 618 + 620: 48(fvec4) Load 53(inF0) + 621: 48(fvec4) Load 54(inF1) + 622: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 620 621 + 623: 48(fvec4) Load 53(inF0) + 624: 48(fvec4) Load 54(inF1) + 625: 48(fvec4) Load 55(inF2) + 626: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 623 624 625 + 627: 48(fvec4) Load 53(inF0) + 628: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 627 + 629: 48(fvec4) Load 53(inF0) + 630: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 629 + 631: 48(fvec4) Load 53(inF0) + 632: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 631 + 633: 48(fvec4) VectorTimesScalar 632 199 + 634: 48(fvec4) Load 53(inF0) + 635: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 634 + 636: 48(fvec4) Load 53(inF0) + 637: 48(fvec4) Load 54(inF1) + 638: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 636 637 + 639: 48(fvec4) Load 53(inF0) + 640: 48(fvec4) Load 54(inF1) + 641: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 639 640 + 642: 48(fvec4) Load 53(inF0) + 643: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 642 + 644: 48(fvec4) Load 53(inF0) + 645: 48(fvec4) Load 54(inF1) + 646: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 644 645 + 647: 48(fvec4) Load 53(inF0) + 648: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 647 + 649: 48(fvec4) Load 53(inF0) + 650: 48(fvec4) Load 54(inF1) + 651: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 649 650 + 652: 48(fvec4) Load 53(inF0) + 653: 48(fvec4) Load 54(inF1) + 654: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 652 653 354 + 657: 555(ivec4) BitReverse 656 + 658: 48(fvec4) Load 53(inF0) + 659: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 658 + 660: 48(fvec4) Load 53(inF0) + 661: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 660 + 662: 48(fvec4) Load 53(inF0) + 663: 48(fvec4) CompositeConstruct 133 133 133 133 + 664: 48(fvec4) CompositeConstruct 221 221 221 221 + 665: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 662 663 664 + 666: 48(fvec4) Load 53(inF0) + 667: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 666 + 668: 48(fvec4) Load 53(inF0) + 669: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 668 + 670: 48(fvec4) Load 53(inF0) + 671: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 670 + Store 54(inF1) 671 + 672: 48(fvec4) Load 53(inF0) + 673: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 672 + Store 55(inF2) 673 + 674: 48(fvec4) Load 53(inF0) + 675: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 674 + 676: 48(fvec4) Load 53(inF0) + 677: 48(fvec4) Load 54(inF1) + 678: 48(fvec4) Load 55(inF2) + 679: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 676 677 678 + 680: 48(fvec4) Load 53(inF0) + 681: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 680 + 682: 48(fvec4) Load 53(inF0) + 683: 48(fvec4) Load 54(inF1) + 684: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 682 683 + 685: 48(fvec4) Load 53(inF0) + 686: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 685 + 687: 48(fvec4) Load 53(inF0) + 688: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 687 + 689: 48(fvec4) Load 53(inF0) + 690: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 689 + ReturnValue 692 + 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 + 695: 60 Load 63(inF0) + 697: 696 FOrdNotEqual 695 133 + 698: 132(bool) All 697 + 699: 60 Load 63(inF0) + 700: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 699 + 701: 60 Load 63(inF0) + 702: 60 ExtInst 1(GLSL.std.450) 17(Acos) 701 + 703: 60 Load 63(inF0) + 704: 696 FOrdNotEqual 703 133 + 705: 132(bool) Any 704 + 706: 60 Load 63(inF0) + 707: 60 ExtInst 1(GLSL.std.450) 16(Asin) 706 + 708: 60 Load 63(inF0) + 709: 60 ExtInst 1(GLSL.std.450) 18(Atan) 708 + 710: 60 Load 63(inF0) + 711: 60 Load 64(inF1) + 712: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 710 711 + 713: 60 Load 63(inF0) + 714: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 713 + 715: 60 Load 63(inF0) + 716: 60 Load 64(inF1) + 717: 60 Load 65(inF2) + 718: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 715 716 717 + 719: 60 Load 63(inF0) + 720: 60 ExtInst 1(GLSL.std.450) 14(Cos) 719 + 721: 60 Load 63(inF0) + 722: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 721 + 723: 60 Load 63(inF0) + 724: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 723 + 725: 60 Load 63(inF0) + 726: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 725 + 727: 60 Load 63(inF0) + 728: 60 ExtInst 1(GLSL.std.450) 27(Exp) 727 + 729: 60 Load 63(inF0) + 730: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 729 + 731: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 732: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 733: 60 Load 63(inF0) + 734: 60 ExtInst 1(GLSL.std.450) 8(Floor) 733 + 735: 60 Load 63(inF0) + 736: 60 Load 64(inF1) + 737: 24(fvec2) CompositeExtract 735 0 + 738: 24(fvec2) CompositeExtract 736 0 + 739: 24(fvec2) FMod 737 738 + 740: 24(fvec2) CompositeExtract 735 1 + 741: 24(fvec2) CompositeExtract 736 1 + 742: 24(fvec2) FMod 740 741 + 743: 60 CompositeConstruct 739 742 + 744: 60 Load 63(inF0) + 745: 60 ExtInst 1(GLSL.std.450) 10(Fract) 744 + 746: 60 Load 63(inF0) + 747: 60 Load 64(inF1) + 748: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 746 747 + 749: 60 Load 63(inF0) + 750: 60 Load 64(inF1) + 751: 60 Load 65(inF2) + 752: 60 ExtInst 1(GLSL.std.450) 46(FMix) 749 750 751 + 753: 60 Load 63(inF0) + 754: 60 ExtInst 1(GLSL.std.450) 28(Log) 753 + 755: 60 Load 63(inF0) + 756: 60 ExtInst 1(GLSL.std.450) 30(Log2) 755 + 757: 60 MatrixTimesScalar 756 199 + 758: 60 Load 63(inF0) + 759: 60 ExtInst 1(GLSL.std.450) 30(Log2) 758 + 760: 60 Load 63(inF0) + 761: 60 Load 64(inF1) + 762: 60 ExtInst 1(GLSL.std.450) 40(FMax) 760 761 + 763: 60 Load 63(inF0) + 764: 60 Load 64(inF1) + 765: 60 ExtInst 1(GLSL.std.450) 37(FMin) 763 764 + 766: 60 Load 63(inF0) + 767: 60 Load 64(inF1) + 768: 60 ExtInst 1(GLSL.std.450) 26(Pow) 766 767 + 769: 60 Load 63(inF0) + 770: 60 ExtInst 1(GLSL.std.450) 11(Radians) 769 + 771: 60 Load 63(inF0) + 772: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 771 + 773: 60 Load 63(inF0) + 774: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 773 + 775: 60 Load 63(inF0) + 776: 24(fvec2) CompositeConstruct 133 133 + 777: 24(fvec2) CompositeConstruct 221 221 + 778: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 775 776 777 + 779: 60 Load 63(inF0) + 780: 60 ExtInst 1(GLSL.std.450) 6(FSign) 779 + 781: 60 Load 63(inF0) + 782: 60 ExtInst 1(GLSL.std.450) 13(Sin) 781 + 783: 60 Load 63(inF0) + 784: 60 ExtInst 1(GLSL.std.450) 13(Sin) 783 + Store 64(inF1) 784 + 785: 60 Load 63(inF0) + 786: 60 ExtInst 1(GLSL.std.450) 14(Cos) 785 + Store 65(inF2) 786 + 787: 60 Load 63(inF0) + 788: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 787 + 789: 60 Load 63(inF0) + 790: 60 Load 64(inF1) + 791: 60 Load 65(inF2) + 792: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 789 790 791 + 793: 60 Load 63(inF0) + 794: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 793 + 795: 60 Load 63(inF0) + 796: 60 Load 64(inF1) + 797: 60 ExtInst 1(GLSL.std.450) 48(Step) 795 796 + 798: 60 Load 63(inF0) + 799: 60 ExtInst 1(GLSL.std.450) 15(Tan) 798 + 800: 60 Load 63(inF0) + 801: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 800 + 802: 60 Load 63(inF0) + 803: 60 Transpose 802 + 804: 60 Load 63(inF0) + 805: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 804 + ReturnValue 807 + 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 + 810: 68 Load 71(inF0) + 812: 811 FOrdNotEqual 810 133 + 813: 132(bool) All 812 + 814: 68 Load 71(inF0) + 815: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 814 + 816: 68 Load 71(inF0) + 817: 68 ExtInst 1(GLSL.std.450) 17(Acos) 816 + 818: 68 Load 71(inF0) + 819: 811 FOrdNotEqual 818 133 + 820: 132(bool) Any 819 + 821: 68 Load 71(inF0) + 822: 68 ExtInst 1(GLSL.std.450) 16(Asin) 821 + 823: 68 Load 71(inF0) + 824: 68 ExtInst 1(GLSL.std.450) 18(Atan) 823 + 825: 68 Load 71(inF0) + 826: 68 Load 72(inF1) + 827: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 825 826 + 828: 68 Load 71(inF0) + 829: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 828 + 830: 68 Load 71(inF0) + 831: 68 Load 72(inF1) + 832: 68 Load 73(inF2) + 833: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 830 831 832 + 834: 68 Load 71(inF0) + 835: 68 ExtInst 1(GLSL.std.450) 14(Cos) 834 + 836: 68 Load 71(inF0) + 837: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 836 + 838: 68 Load 71(inF0) + 839: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 838 + 840: 68 Load 71(inF0) + 841: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 840 + 842: 68 Load 71(inF0) + 843: 68 ExtInst 1(GLSL.std.450) 27(Exp) 842 + 844: 68 Load 71(inF0) + 845: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 844 + 846: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 847: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 848: 68 Load 71(inF0) + 849: 68 ExtInst 1(GLSL.std.450) 8(Floor) 848 + 850: 68 Load 71(inF0) + 851: 68 Load 72(inF1) + 852: 36(fvec3) CompositeExtract 850 0 + 853: 36(fvec3) CompositeExtract 851 0 + 854: 36(fvec3) FMod 852 853 + 855: 36(fvec3) CompositeExtract 850 1 + 856: 36(fvec3) CompositeExtract 851 1 + 857: 36(fvec3) FMod 855 856 + 858: 36(fvec3) CompositeExtract 850 2 + 859: 36(fvec3) CompositeExtract 851 2 + 860: 36(fvec3) FMod 858 859 + 861: 68 CompositeConstruct 854 857 860 + 862: 68 Load 71(inF0) + 863: 68 ExtInst 1(GLSL.std.450) 10(Fract) 862 + 864: 68 Load 71(inF0) + 865: 68 Load 72(inF1) + 866: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 864 865 + 867: 68 Load 71(inF0) + 868: 68 Load 72(inF1) + 869: 68 Load 73(inF2) + 870: 68 ExtInst 1(GLSL.std.450) 46(FMix) 867 868 869 + 871: 68 Load 71(inF0) + 872: 68 ExtInst 1(GLSL.std.450) 28(Log) 871 + 873: 68 Load 71(inF0) + 874: 68 ExtInst 1(GLSL.std.450) 30(Log2) 873 + 875: 68 MatrixTimesScalar 874 199 + 876: 68 Load 71(inF0) + 877: 68 ExtInst 1(GLSL.std.450) 30(Log2) 876 + 878: 68 Load 71(inF0) + 879: 68 Load 72(inF1) + 880: 68 ExtInst 1(GLSL.std.450) 40(FMax) 878 879 + 881: 68 Load 71(inF0) + 882: 68 Load 72(inF1) + 883: 68 ExtInst 1(GLSL.std.450) 37(FMin) 881 882 + 884: 68 Load 71(inF0) + 885: 68 Load 72(inF1) + 886: 68 ExtInst 1(GLSL.std.450) 26(Pow) 884 885 + 887: 68 Load 71(inF0) + 888: 68 ExtInst 1(GLSL.std.450) 11(Radians) 887 + 889: 68 Load 71(inF0) + 890: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 889 + 891: 68 Load 71(inF0) + 892: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 891 + 893: 68 Load 71(inF0) + 894: 36(fvec3) CompositeConstruct 133 133 133 + 895: 36(fvec3) CompositeConstruct 221 221 221 + 896: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 893 894 895 + 897: 68 Load 71(inF0) + 898: 68 ExtInst 1(GLSL.std.450) 6(FSign) 897 + 899: 68 Load 71(inF0) + 900: 68 ExtInst 1(GLSL.std.450) 13(Sin) 899 + 901: 68 Load 71(inF0) + 902: 68 ExtInst 1(GLSL.std.450) 13(Sin) 901 + Store 72(inF1) 902 + 903: 68 Load 71(inF0) + 904: 68 ExtInst 1(GLSL.std.450) 14(Cos) 903 + Store 73(inF2) 904 + 905: 68 Load 71(inF0) + 906: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 905 + 907: 68 Load 71(inF0) + 908: 68 Load 72(inF1) + 909: 68 Load 73(inF2) + 910: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 907 908 909 + 911: 68 Load 71(inF0) + 912: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 911 + 913: 68 Load 71(inF0) + 914: 68 Load 72(inF1) + 915: 68 ExtInst 1(GLSL.std.450) 48(Step) 913 914 + 916: 68 Load 71(inF0) + 917: 68 ExtInst 1(GLSL.std.450) 15(Tan) 916 + 918: 68 Load 71(inF0) + 919: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 918 + 920: 68 Load 71(inF0) + 921: 68 Transpose 920 + 922: 68 Load 71(inF0) + 923: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 922 + ReturnValue 925 + 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 + 928: 76 Load 79(inF0) + 930: 929 FOrdNotEqual 928 133 + 931: 132(bool) All 930 + 932: 76 Load 79(inF0) + 933: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 932 + 934: 76 Load 79(inF0) + 935: 76 ExtInst 1(GLSL.std.450) 17(Acos) 934 + 936: 76 Load 79(inF0) + 937: 929 FOrdNotEqual 936 133 + 938: 132(bool) Any 937 + 939: 76 Load 79(inF0) + 940: 76 ExtInst 1(GLSL.std.450) 16(Asin) 939 + 941: 76 Load 79(inF0) + 942: 76 ExtInst 1(GLSL.std.450) 18(Atan) 941 + 943: 76 Load 79(inF0) + 944: 76 Load 80(inF1) + 945: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 943 944 + 946: 76 Load 79(inF0) + 947: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 946 + 948: 76 Load 79(inF0) + 949: 76 Load 80(inF1) + 950: 76 Load 81(inF2) + 951: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 948 949 950 + 952: 76 Load 79(inF0) + 953: 76 ExtInst 1(GLSL.std.450) 14(Cos) 952 + 954: 76 Load 79(inF0) + 955: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 954 + 956: 76 Load 79(inF0) + 957: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 956 + 958: 76 Load 79(inF0) + 959: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 958 + 960: 76 Load 79(inF0) + 961: 76 ExtInst 1(GLSL.std.450) 27(Exp) 960 + 962: 76 Load 79(inF0) + 963: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 962 + 964: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 + 965: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 + 966: 76 Load 79(inF0) + 967: 76 ExtInst 1(GLSL.std.450) 8(Floor) 966 + 968: 76 Load 79(inF0) + 969: 76 Load 80(inF1) + 970: 48(fvec4) CompositeExtract 968 0 + 971: 48(fvec4) CompositeExtract 969 0 + 972: 48(fvec4) FMod 970 971 + 973: 48(fvec4) CompositeExtract 968 1 + 974: 48(fvec4) CompositeExtract 969 1 + 975: 48(fvec4) FMod 973 974 + 976: 48(fvec4) CompositeExtract 968 2 + 977: 48(fvec4) CompositeExtract 969 2 + 978: 48(fvec4) FMod 976 977 + 979: 48(fvec4) CompositeExtract 968 3 + 980: 48(fvec4) CompositeExtract 969 3 + 981: 48(fvec4) FMod 979 980 + 982: 76 CompositeConstruct 972 975 978 981 + 983: 76 Load 79(inF0) + 984: 76 ExtInst 1(GLSL.std.450) 10(Fract) 983 + 985: 76 Load 79(inF0) + 986: 76 Load 80(inF1) + 987: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 985 986 + 988: 76 Load 79(inF0) + 989: 76 Load 80(inF1) + 990: 76 Load 81(inF2) + 991: 76 ExtInst 1(GLSL.std.450) 46(FMix) 988 989 990 + 992: 76 Load 79(inF0) + 993: 76 ExtInst 1(GLSL.std.450) 28(Log) 992 + 994: 76 Load 79(inF0) + 995: 76 ExtInst 1(GLSL.std.450) 30(Log2) 994 + 996: 76 MatrixTimesScalar 995 199 + 997: 76 Load 79(inF0) + 998: 76 ExtInst 1(GLSL.std.450) 30(Log2) 997 + 999: 76 Load 79(inF0) + 1000: 76 Load 80(inF1) + 1001: 76 ExtInst 1(GLSL.std.450) 40(FMax) 999 1000 + 1002: 76 Load 79(inF0) + 1003: 76 Load 80(inF1) + 1004: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1002 1003 + 1005: 76 Load 79(inF0) + 1006: 76 Load 80(inF1) + 1007: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1005 1006 + 1008: 76 Load 79(inF0) + 1009: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1008 + 1010: 76 Load 79(inF0) + 1011: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1010 + 1012: 76 Load 79(inF0) + 1013: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1012 + 1014: 76 Load 79(inF0) + 1015: 48(fvec4) CompositeConstruct 133 133 133 133 + 1016: 48(fvec4) CompositeConstruct 221 221 221 221 + 1017: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1014 1015 1016 + 1018: 76 Load 79(inF0) + 1019: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1018 + 1020: 76 Load 79(inF0) + 1021: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1020 + 1022: 76 Load 79(inF0) + 1023: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1022 + Store 80(inF1) 1023 + 1024: 76 Load 79(inF0) + 1025: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1024 + Store 81(inF2) 1025 + 1026: 76 Load 79(inF0) + 1027: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1026 + 1028: 76 Load 79(inF0) + 1029: 76 Load 80(inF1) + 1030: 76 Load 81(inF2) + 1031: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1028 1029 1030 + 1032: 76 Load 79(inF0) + 1033: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1032 + 1034: 76 Load 79(inF0) + 1035: 76 Load 80(inF1) + 1036: 76 ExtInst 1(GLSL.std.450) 48(Step) 1034 1035 + 1037: 76 Load 79(inF0) + 1038: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1037 + 1039: 76 Load 79(inF0) + 1040: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1039 + 1041: 76 Load 79(inF0) + 1042: 76 Transpose 1041 + 1043: 76 Load 79(inF0) + 1044: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1043 + ReturnValue 1046 + 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 + 1049(r0): 7(ptr) Variable Function + 1053(r1): 25(ptr) Variable Function + 1057(r2): 25(ptr) Variable Function + 1061(r3): 7(ptr) Variable Function + 1065(r4): 25(ptr) Variable Function + 1069(r5): 25(ptr) Variable Function + 1073(r6): 61(ptr) Variable Function + 1077(r7): 61(ptr) Variable Function + 1081(r8): 61(ptr) Variable Function + 1050: 6(float) Load 86(inF1) + 1051: 6(float) Load 85(inF0) + 1052: 6(float) FMul 1050 1051 + Store 1049(r0) 1052 + 1054: 6(float) Load 85(inF0) + 1055: 24(fvec2) Load 87(inFV0) + 1056: 24(fvec2) VectorTimesScalar 1055 1054 + Store 1053(r1) 1056 + 1058: 24(fvec2) Load 87(inFV0) + 1059: 6(float) Load 85(inF0) + 1060: 24(fvec2) VectorTimesScalar 1058 1059 + Store 1057(r2) 1060 + 1062: 24(fvec2) Load 87(inFV0) + 1063: 24(fvec2) Load 88(inFV1) + 1064: 6(float) Dot 1062 1063 + Store 1061(r3) 1064 + 1066: 24(fvec2) Load 87(inFV0) + 1067: 60 Load 89(inFM0) + 1068: 24(fvec2) VectorTimesMatrix 1066 1067 + Store 1065(r4) 1068 + 1070: 60 Load 89(inFM0) + 1071: 24(fvec2) Load 87(inFV0) + 1072: 24(fvec2) MatrixTimesVector 1070 1071 + Store 1069(r5) 1072 + 1074: 6(float) Load 85(inF0) + 1075: 60 Load 89(inFM0) + 1076: 60 MatrixTimesScalar 1075 1074 + Store 1073(r6) 1076 + 1078: 60 Load 89(inFM0) + 1079: 6(float) Load 85(inF0) + 1080: 60 MatrixTimesScalar 1078 1079 + Store 1077(r7) 1080 + 1082: 60 Load 90(inFM1) + 1083: 60 Load 89(inFM0) + 1084: 60 MatrixTimesMatrix 1082 1083 + Store 1081(r8) 1084 + Return + FunctionEnd +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 + 1085(r0): 7(ptr) Variable Function + 1089(r1): 37(ptr) Variable Function + 1093(r2): 37(ptr) Variable Function + 1097(r3): 7(ptr) Variable Function + 1101(r4): 37(ptr) Variable Function + 1105(r5): 37(ptr) Variable Function + 1109(r6): 69(ptr) Variable Function + 1113(r7): 69(ptr) Variable Function + 1117(r8): 69(ptr) Variable Function + 1086: 6(float) Load 95(inF1) + 1087: 6(float) Load 94(inF0) + 1088: 6(float) FMul 1086 1087 + Store 1085(r0) 1088 + 1090: 6(float) Load 94(inF0) + 1091: 36(fvec3) Load 96(inFV0) + 1092: 36(fvec3) VectorTimesScalar 1091 1090 + Store 1089(r1) 1092 + 1094: 36(fvec3) Load 96(inFV0) + 1095: 6(float) Load 94(inF0) + 1096: 36(fvec3) VectorTimesScalar 1094 1095 + Store 1093(r2) 1096 + 1098: 36(fvec3) Load 96(inFV0) + 1099: 36(fvec3) Load 97(inFV1) + 1100: 6(float) Dot 1098 1099 + Store 1097(r3) 1100 + 1102: 36(fvec3) Load 96(inFV0) + 1103: 68 Load 98(inFM0) + 1104: 36(fvec3) VectorTimesMatrix 1102 1103 + Store 1101(r4) 1104 + 1106: 68 Load 98(inFM0) + 1107: 36(fvec3) Load 96(inFV0) + 1108: 36(fvec3) MatrixTimesVector 1106 1107 + Store 1105(r5) 1108 + 1110: 6(float) Load 94(inF0) + 1111: 68 Load 98(inFM0) + 1112: 68 MatrixTimesScalar 1111 1110 + Store 1109(r6) 1112 + 1114: 68 Load 98(inFM0) + 1115: 6(float) Load 94(inF0) + 1116: 68 MatrixTimesScalar 1114 1115 + Store 1113(r7) 1116 + 1118: 68 Load 99(inFM1) + 1119: 68 Load 98(inFM0) + 1120: 68 MatrixTimesMatrix 1118 1119 + Store 1117(r8) 1120 + Return + FunctionEnd +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 + 1121(r0): 7(ptr) Variable Function + 1125(r1): 49(ptr) Variable Function + 1129(r2): 49(ptr) Variable Function + 1133(r3): 7(ptr) Variable Function + 1137(r4): 49(ptr) Variable Function + 1141(r5): 49(ptr) Variable Function + 1145(r6): 77(ptr) Variable Function + 1149(r7): 77(ptr) Variable Function + 1153(r8): 77(ptr) Variable Function + 1122: 6(float) Load 104(inF1) + 1123: 6(float) Load 103(inF0) + 1124: 6(float) FMul 1122 1123 + Store 1121(r0) 1124 + 1126: 6(float) Load 103(inF0) + 1127: 48(fvec4) Load 105(inFV0) + 1128: 48(fvec4) VectorTimesScalar 1127 1126 + Store 1125(r1) 1128 + 1130: 48(fvec4) Load 105(inFV0) + 1131: 6(float) Load 103(inF0) + 1132: 48(fvec4) VectorTimesScalar 1130 1131 + Store 1129(r2) 1132 + 1134: 48(fvec4) Load 105(inFV0) + 1135: 48(fvec4) Load 106(inFV1) + 1136: 6(float) Dot 1134 1135 + Store 1133(r3) 1136 + 1138: 48(fvec4) Load 105(inFV0) + 1139: 76 Load 107(inFM0) + 1140: 48(fvec4) VectorTimesMatrix 1138 1139 + Store 1137(r4) 1140 + 1142: 76 Load 107(inFM0) + 1143: 48(fvec4) Load 105(inFV0) + 1144: 48(fvec4) MatrixTimesVector 1142 1143 + Store 1141(r5) 1144 + 1146: 6(float) Load 103(inF0) + 1147: 76 Load 107(inFM0) + 1148: 76 MatrixTimesScalar 1147 1146 + Store 1145(r6) 1148 + 1150: 76 Load 107(inFM0) + 1151: 6(float) Load 103(inF0) + 1152: 76 MatrixTimesScalar 1150 1151 + Store 1149(r7) 1152 + 1154: 76 Load 108(inFM1) + 1155: 76 Load 107(inFM0) + 1156: 76 MatrixTimesMatrix 1154 1155 + Store 1153(r8) 1156 + Return + FunctionEnd +129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 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 + 1157(r00): 7(ptr) Variable Function + 1161(r01): 25(ptr) Variable Function + 1165(r02): 37(ptr) Variable Function + 1169(r03): 25(ptr) Variable Function + 1173(r04): 37(ptr) Variable Function + 1177(r05): 7(ptr) Variable Function + 1181(r06): 7(ptr) Variable Function + 1185(r07): 37(ptr) Variable Function + 1189(r08): 25(ptr) Variable Function + 1193(r09): 25(ptr) Variable Function + 1197(r10): 37(ptr) Variable Function + 1201(r11): 112(ptr) Variable Function + 1205(r12): 114(ptr) Variable Function + 1209(r13): 61(ptr) Variable Function + 1213(r14): 112(ptr) Variable Function + 1217(r15): 118(ptr) Variable Function + 1221(r16): 116(ptr) Variable Function + 1158: 6(float) Load 121(inF1) + 1159: 6(float) Load 120(inF0) + 1160: 6(float) FMul 1158 1159 + Store 1157(r00) 1160 + 1162: 6(float) Load 120(inF0) + 1163: 24(fvec2) Load 122(inFV2) + 1164: 24(fvec2) VectorTimesScalar 1163 1162 + Store 1161(r01) 1164 + 1166: 6(float) Load 120(inF0) + 1167: 36(fvec3) Load 123(inFV3) + 1168: 36(fvec3) VectorTimesScalar 1167 1166 + Store 1165(r02) 1168 + 1170: 24(fvec2) Load 122(inFV2) + 1171: 6(float) Load 120(inF0) + 1172: 24(fvec2) VectorTimesScalar 1170 1171 + Store 1169(r03) 1172 + 1174: 36(fvec3) Load 123(inFV3) + 1175: 6(float) Load 120(inF0) + 1176: 36(fvec3) VectorTimesScalar 1174 1175 + Store 1173(r04) 1176 + 1178: 24(fvec2) Load 122(inFV2) + 1179: 24(fvec2) Load 122(inFV2) + 1180: 6(float) Dot 1178 1179 + Store 1177(r05) 1180 + 1182: 36(fvec3) Load 123(inFV3) + 1183: 36(fvec3) Load 123(inFV3) + 1184: 6(float) Dot 1182 1183 + Store 1181(r06) 1184 + 1186: 111 Load 124(inFM2x3) + 1187: 24(fvec2) Load 122(inFV2) + 1188: 36(fvec3) MatrixTimesVector 1186 1187 + Store 1185(r07) 1188 + 1190: 113 Load 125(inFM3x2) + 1191: 36(fvec3) Load 123(inFV3) + 1192: 24(fvec2) MatrixTimesVector 1190 1191 + Store 1189(r08) 1192 + 1194: 36(fvec3) Load 123(inFV3) + 1195: 111 Load 124(inFM2x3) + 1196: 24(fvec2) VectorTimesMatrix 1194 1195 + Store 1193(r09) 1196 + 1198: 24(fvec2) Load 122(inFV2) + 1199: 113 Load 125(inFM3x2) + 1200: 36(fvec3) VectorTimesMatrix 1198 1199 + Store 1197(r10) 1200 + 1202: 6(float) Load 120(inF0) + 1203: 111 Load 124(inFM2x3) + 1204: 111 MatrixTimesScalar 1203 1202 + Store 1201(r11) 1204 + 1206: 6(float) Load 120(inF0) + 1207: 113 Load 125(inFM3x2) + 1208: 113 MatrixTimesScalar 1207 1206 + Store 1205(r12) 1208 + 1210: 113 Load 125(inFM3x2) + 1211: 111 Load 124(inFM2x3) + 1212: 60 MatrixTimesMatrix 1210 1211 + Store 1209(r13) 1212 + 1214: 68 Load 126(inFM3x3) + 1215: 111 Load 124(inFM2x3) + 1216: 111 MatrixTimesMatrix 1214 1215 + Store 1213(r14) 1216 + 1218: 115 Load 127(inFM3x4) + 1219: 111 Load 124(inFM2x3) + 1220: 117 MatrixTimesMatrix 1218 1219 + Store 1217(r15) 1220 + 1222: 117 Load 128(inFM2x4) + 1223: 113 Load 125(inFM3x2) + 1224: 115 MatrixTimesMatrix 1222 1223 + Store 1221(r16) 1224 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.isfinite.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.isfinite.frag.out new file mode 100644 index 0000000000..6fee951299 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.isfinite.frag.out @@ -0,0 +1,293 @@ +hlsl.isfinite.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: test1(f1; ( temp bool) +0:7 Function Parameters: +0:7 'v' ( in float) +0:? Sequence +0:8 Branch: Return with expression +0:8 logical-and ( temp bool) +0:8 Negate conditional ( temp bool) +0:8 isnan ( temp bool) +0:8 'v' ( in float) +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 '@finitetmp' ( temp float) +0:8 'v' ( in float) +0:8 logical-and ( temp bool) +0:8 Negate conditional ( temp bool) +0:8 isnan ( temp bool) +0:8 '@finitetmp' ( temp float) +0:8 Negate conditional ( temp bool) +0:8 isinf ( temp bool) +0:8 '@finitetmp' ( temp float) +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 '@finitetmp' ( temp float) +0:13 f: direct index for structure ( uniform float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:13 Constant: +0:13 0 (const uint) +0:13 logical-and ( temp bool) +0:13 Negate conditional ( temp bool) +0:13 isnan ( temp bool) +0:13 '@finitetmp' ( temp float) +0:13 Negate conditional ( temp bool) +0:13 isinf ( temp bool) +0:13 '@finitetmp' ( temp float) +0:14 Sequence +0:14 move second child to first child ( temp 2-component vector of float) +0:14 '@finitetmp' ( temp 2-component vector of float) +0:14 f2: direct index for structure ( uniform 2-component vector of float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:14 Constant: +0:14 1 (const uint) +0:14 logical-and ( temp 2-component vector of bool) +0:14 Negate conditional ( temp 2-component vector of bool) +0:14 isnan ( temp 2-component vector of bool) +0:14 '@finitetmp' ( temp 2-component vector of float) +0:14 Negate conditional ( temp 2-component vector of bool) +0:14 isinf ( temp 2-component vector of bool) +0:14 '@finitetmp' ( temp 2-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp 3-component vector of float) +0:15 '@finitetmp' ( temp 3-component vector of float) +0:15 f3: direct index for structure ( uniform 3-component vector of float) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:15 Constant: +0:15 2 (const uint) +0:15 logical-and ( temp 3-component vector of bool) +0:15 Negate conditional ( temp 3-component vector of bool) +0:15 isnan ( temp 3-component vector of bool) +0:15 '@finitetmp' ( temp 3-component vector of float) +0:15 Negate conditional ( temp 3-component vector of bool) +0:15 isinf ( temp 3-component vector of bool) +0:15 '@finitetmp' ( temp 3-component vector of float) +0:17 Branch: Return with expression +0:17 Constant: +0:17 0.000000 +0:17 0.000000 +0:17 0.000000 +0:17 0.000000 +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: test1(f1; ( temp bool) +0:7 Function Parameters: +0:7 'v' ( in float) +0:? Sequence +0:8 Branch: Return with expression +0:8 logical-and ( temp bool) +0:8 Negate conditional ( temp bool) +0:8 isnan ( temp bool) +0:8 'v' ( in float) +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 '@finitetmp' ( temp float) +0:8 'v' ( in float) +0:8 logical-and ( temp bool) +0:8 Negate conditional ( temp bool) +0:8 isnan ( temp bool) +0:8 '@finitetmp' ( temp float) +0:8 Negate conditional ( temp bool) +0:8 isinf ( temp bool) +0:8 '@finitetmp' ( temp float) +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 '@finitetmp' ( temp float) +0:13 f: direct index for structure ( uniform float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:13 Constant: +0:13 0 (const uint) +0:13 logical-and ( temp bool) +0:13 Negate conditional ( temp bool) +0:13 isnan ( temp bool) +0:13 '@finitetmp' ( temp float) +0:13 Negate conditional ( temp bool) +0:13 isinf ( temp bool) +0:13 '@finitetmp' ( temp float) +0:14 Sequence +0:14 move second child to first child ( temp 2-component vector of float) +0:14 '@finitetmp' ( temp 2-component vector of float) +0:14 f2: direct index for structure ( uniform 2-component vector of float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:14 Constant: +0:14 1 (const uint) +0:14 logical-and ( temp 2-component vector of bool) +0:14 Negate conditional ( temp 2-component vector of bool) +0:14 isnan ( temp 2-component vector of bool) +0:14 '@finitetmp' ( temp 2-component vector of float) +0:14 Negate conditional ( temp 2-component vector of bool) +0:14 isinf ( temp 2-component vector of bool) +0:14 '@finitetmp' ( temp 2-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp 3-component vector of float) +0:15 '@finitetmp' ( temp 3-component vector of float) +0:15 f3: direct index for structure ( uniform 3-component vector of float) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:15 Constant: +0:15 2 (const uint) +0:15 logical-and ( temp 3-component vector of bool) +0:15 Negate conditional ( temp 3-component vector of bool) +0:15 isnan ( temp 3-component vector of bool) +0:15 '@finitetmp' ( temp 3-component vector of float) +0:15 Negate conditional ( temp 3-component vector of bool) +0:15 isinf ( temp 3-component vector of bool) +0:15 '@finitetmp' ( temp 3-component vector of float) +0:17 Branch: Return with expression +0:17 Constant: +0:17 0.000000 +0:17 0.000000 +0:17 0.000000 +0:17 0.000000 +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float f, uniform 2-component vector of float f2, uniform 3-component vector of float f3}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 85 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 83 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "test1(f1;" + Name 10 "v" + Name 15 "@main(" + Name 20 "@finitetmp" + Name 32 "@finitetmp" + Name 35 "$Global" + MemberName 35($Global) 0 "f" + MemberName 35($Global) 1 "f2" + MemberName 35($Global) 2 "f3" + Name 37 "" + Name 51 "@finitetmp" + Name 65 "@finitetmp" + Name 83 "@entryPointOutput" + MemberDecorate 35($Global) 0 Offset 0 + MemberDecorate 35($Global) 1 Offset 8 + MemberDecorate 35($Global) 2 Offset 16 + Decorate 35($Global) Block + Decorate 37 DescriptorSet 0 + Decorate 83(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeBool + 9: TypeFunction 8(bool) 7(ptr) + 13: TypeVector 6(float) 4 + 14: TypeFunction 13(fvec4) + 33: TypeVector 6(float) 2 + 34: TypeVector 6(float) 3 + 35($Global): TypeStruct 6(float) 33(fvec2) 34(fvec3) + 36: TypePointer Uniform 35($Global) + 37: 36(ptr) Variable Uniform + 38: TypeInt 32 1 + 39: 38(int) Constant 0 + 40: TypePointer Uniform 6(float) + 50: TypePointer Function 33(fvec2) + 52: 38(int) Constant 1 + 53: TypePointer Uniform 33(fvec2) + 57: TypeVector 8(bool) 2 + 64: TypePointer Function 34(fvec3) + 66: 38(int) Constant 2 + 67: TypePointer Uniform 34(fvec3) + 71: TypeVector 8(bool) 3 + 78: 6(float) Constant 0 + 79: 13(fvec4) ConstantComposite 78 78 78 78 + 82: TypePointer Output 13(fvec4) +83(@entryPointOutput): 82(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 84: 13(fvec4) FunctionCall 15(@main() + Store 83(@entryPointOutput) 84 + Return + FunctionEnd + 11(test1(f1;): 8(bool) Function None 9 + 10(v): 7(ptr) FunctionParameter + 12: Label + 20(@finitetmp): 7(ptr) Variable Function + 17: 6(float) Load 10(v) + 18: 8(bool) IsNan 17 + 19: 8(bool) LogicalNot 18 + 21: 6(float) Load 10(v) + Store 20(@finitetmp) 21 + 22: 6(float) Load 20(@finitetmp) + 23: 8(bool) IsNan 22 + 24: 8(bool) LogicalNot 23 + 25: 6(float) Load 20(@finitetmp) + 26: 8(bool) IsInf 25 + 27: 8(bool) LogicalNot 26 + 28: 8(bool) LogicalAnd 24 27 + 29: 8(bool) LogicalAnd 19 28 + ReturnValue 29 + FunctionEnd + 15(@main(): 13(fvec4) Function None 14 + 16: Label + 32(@finitetmp): 7(ptr) Variable Function + 51(@finitetmp): 50(ptr) Variable Function + 65(@finitetmp): 64(ptr) Variable Function + 41: 40(ptr) AccessChain 37 39 + 42: 6(float) Load 41 + Store 32(@finitetmp) 42 + 43: 6(float) Load 32(@finitetmp) + 44: 8(bool) IsNan 43 + 45: 8(bool) LogicalNot 44 + 46: 6(float) Load 32(@finitetmp) + 47: 8(bool) IsInf 46 + 48: 8(bool) LogicalNot 47 + 49: 8(bool) LogicalAnd 45 48 + 54: 53(ptr) AccessChain 37 52 + 55: 33(fvec2) Load 54 + Store 51(@finitetmp) 55 + 56: 33(fvec2) Load 51(@finitetmp) + 58: 57(bvec2) IsNan 56 + 59: 57(bvec2) LogicalNot 58 + 60: 33(fvec2) Load 51(@finitetmp) + 61: 57(bvec2) IsInf 60 + 62: 57(bvec2) LogicalNot 61 + 63: 57(bvec2) LogicalAnd 59 62 + 68: 67(ptr) AccessChain 37 66 + 69: 34(fvec3) Load 68 + Store 65(@finitetmp) 69 + 70: 34(fvec3) Load 65(@finitetmp) + 72: 71(bvec3) IsNan 70 + 73: 71(bvec3) LogicalNot 72 + 74: 34(fvec3) Load 65(@finitetmp) + 75: 71(bvec3) IsInf 74 + 76: 71(bvec3) LogicalNot 75 + 77: 71(bvec3) LogicalAnd 73 76 + ReturnValue 79 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out new file mode 100644 index 0000000000..010c2ecd40 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.layout.frag.out @@ -0,0 +1,171 @@ +hlsl.layout.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:16 Function Parameters: +0:16 'input' ( in 4-component vector of float) +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'layout' ( temp 4-component vector of float) +0:17 Constant: +0:17 2.000000 +0:17 2.000000 +0:17 2.000000 +0:17 2.000000 +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 'input' ( in 4-component vector of float) +0:18 v1: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float) +0:18 'anon@0' (layout( set=3 binding=5 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1}) +0:18 Constant: +0:18 0 (const uint) +0:18 v5: direct index for structure (layout( row_major std430 offset=0) buffer 4-component vector of float) +0:18 'anon@1' (layout( row_major std430 push_constant) readonly buffer block{layout( row_major std430 offset=0) buffer 4-component vector of float v5}) +0:18 Constant: +0:18 0 (const uint) +0:18 component-wise multiply ( temp 4-component vector of float) +0:18 v1PostLayout: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float) +0:18 'anon@2' (layout( set=4 binding=7 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1PostLayout}) +0:18 Constant: +0:18 0 (const uint) +0:18 'layout' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( set=3 binding=5 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout( row_major std430 push_constant) readonly buffer block{layout( row_major std430 offset=0) buffer 4-component vector of float v5}) +0:? 'specConst' ( specialization-constant const int) +0:? 10 (const int) +0:? 'anon@2' (layout( set=4 binding=7 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1PostLayout}) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:16 Function Parameters: +0:16 'input' ( in 4-component vector of float) +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'layout' ( temp 4-component vector of float) +0:17 Constant: +0:17 2.000000 +0:17 2.000000 +0:17 2.000000 +0:17 2.000000 +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 'input' ( in 4-component vector of float) +0:18 v1: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float) +0:18 'anon@0' (layout( set=3 binding=5 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1}) +0:18 Constant: +0:18 0 (const uint) +0:18 v5: direct index for structure (layout( row_major std430 offset=0) buffer 4-component vector of float) +0:18 'anon@1' (layout( row_major std430 push_constant) readonly buffer block{layout( row_major std430 offset=0) buffer 4-component vector of float v5}) +0:18 Constant: +0:18 0 (const uint) +0:18 component-wise multiply ( temp 4-component vector of float) +0:18 v1PostLayout: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float) +0:18 'anon@2' (layout( set=4 binding=7 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1PostLayout}) +0:18 Constant: +0:18 0 (const uint) +0:18 'layout' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( set=3 binding=5 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout( row_major std430 push_constant) readonly buffer block{layout( row_major std430 offset=0) buffer 4-component vector of float v5}) +0:? 'specConst' ( specialization-constant const int) +0:? 10 (const int) +0:? 'anon@2' (layout( set=4 binding=7 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v1PostLayout}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "PixelShaderFunction(vf4;" + Name 10 "input" + Name 13 "layout" + Name 17 "tbufName" + MemberName 17(tbufName) 0 "v1" + Name 19 "" + Name 26 "tbufName2" + MemberName 26(tbufName2) 0 "v5" + Name 28 "" + Name 33 "tbufName2" + MemberName 33(tbufName2) 0 "v1PostLayout" + Name 35 "" + Name 43 "specConst" + MemberDecorate 17(tbufName) 0 NonWritable + MemberDecorate 17(tbufName) 0 Offset 16 + Decorate 17(tbufName) BufferBlock + Decorate 19 DescriptorSet 3 + Decorate 19 Binding 5 + MemberDecorate 26(tbufName2) 0 NonWritable + MemberDecorate 26(tbufName2) 0 Offset 0 + Decorate 26(tbufName2) BufferBlock + MemberDecorate 33(tbufName2) 0 NonWritable + MemberDecorate 33(tbufName2) 0 Offset 16 + Decorate 33(tbufName2) BufferBlock + Decorate 35 DescriptorSet 4 + Decorate 35 Binding 7 + Decorate 43(specConst) SpecId 17 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 14: 6(float) Constant 1073741824 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 17(tbufName): TypeStruct 7(fvec4) + 18: TypePointer Uniform 17(tbufName) + 19: 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypePointer Uniform 7(fvec4) + 26(tbufName2): TypeStruct 7(fvec4) + 27: TypePointer PushConstant 26(tbufName2) + 28: 27(ptr) Variable PushConstant + 29: TypePointer PushConstant 7(fvec4) + 33(tbufName2): TypeStruct 7(fvec4) + 34: TypePointer Uniform 33(tbufName2) + 35: 34(ptr) Variable Uniform + 43(specConst): 20(int) SpecConstant 10 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd +11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13(layout): 8(ptr) Variable Function + Store 13(layout) 15 + 16: 7(fvec4) Load 10(input) + 23: 22(ptr) AccessChain 19 21 + 24: 7(fvec4) Load 23 + 25: 7(fvec4) FAdd 16 24 + 30: 29(ptr) AccessChain 28 21 + 31: 7(fvec4) Load 30 + 32: 7(fvec4) FAdd 25 31 + 36: 22(ptr) AccessChain 35 21 + 37: 7(fvec4) Load 36 + 38: 7(fvec4) Load 13(layout) + 39: 7(fvec4) FMul 37 38 + 40: 7(fvec4) FAdd 32 39 + ReturnValue 40 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.layoutOverride.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.layoutOverride.vert.out new file mode 100644 index 0000000000..0db201120a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.layoutOverride.vert.out @@ -0,0 +1,104 @@ +hlsl.layoutOverride.vert +Shader version: 500 +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:6 Branch: Return with expression +0:6 texture ( temp 4-component vector of float) +0:6 Construct combined texture-sampler ( temp sampler2D) +0:6 'tex' (layout( set=2 binding=0) uniform texture2D) +0:6 'samp' ( uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' (layout( set=2 binding=0) uniform texture2D) +0:? 'samp' ( uniform sampler) +0:? '@entryPointOutput' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:6 Branch: Return with expression +0:6 texture ( temp 4-component vector of float) +0:6 Construct combined texture-sampler ( temp sampler2D) +0:6 'tex' (layout( set=2 binding=0) uniform texture2D) +0:6 'samp' ( uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' (layout( set=2 binding=0) uniform texture2D) +0:? 'samp' ( uniform sampler) +0:? '@entryPointOutput' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 30 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "tex" + Name 17 "samp" + Name 30 "@entryPointOutput" + Decorate 13(tex) DescriptorSet 2 + Decorate 13(tex) Binding 0 + Decorate 17(samp) DescriptorSet 0 + Decorate 30(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 2D sampled format:Unknown + 12: TypePointer UniformConstant 11 + 13(tex): 12(ptr) Variable UniformConstant + 15: TypeSampler + 16: TypePointer UniformConstant 15 + 17(samp): 16(ptr) Variable UniformConstant + 19: TypeSampledImage 11 + 21: TypeVector 6(float) 2 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 21(fvec2) ConstantComposite 22 23 + 25: 6(float) Constant 0 + 29: TypePointer Output 7(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 31: 7(fvec4) FunctionCall 9(@main() + Store 30(@entryPointOutput) 31 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 14: 11 Load 13(tex) + 18: 15 Load 17(samp) + 20: 19 SampledImage 14 18 + 26: 7(fvec4) ImageSampleExplicitLod 20 24 Lod 25 + ReturnValue 26 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out new file mode 100644 index 0000000000..2acf3d473d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -0,0 +1,552 @@ +hlsl.load.2dms.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:32 textureFetch ( temp 4-component vector of float) +0:32 'g_tTex2dmsf4' ( uniform texture2DMS) +0:32 c2: direct index for structure ( uniform 2-component vector of int) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 3 (const int) +0:33 textureFetch ( temp 4-component vector of int) +0:33 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:33 c2: direct index for structure ( uniform 2-component vector of int) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) +0:33 Constant: +0:33 3 (const int) +0:34 textureFetch ( temp 4-component vector of uint) +0:34 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:34 c2: direct index for structure ( uniform 2-component vector of int) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) +0:34 Constant: +0:34 3 (const int) +0:37 textureFetchOffset ( temp 4-component vector of float) +0:37 'g_tTex2dmsf4' ( uniform texture2DMS) +0:37 c2: direct index for structure ( uniform 2-component vector of int) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) +0:37 Constant: +0:37 3 (const int) +0:37 o2: direct index for structure ( uniform 2-component vector of int) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) +0:38 textureFetchOffset ( temp 4-component vector of int) +0:38 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:38 c2: direct index for structure ( uniform 2-component vector of int) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 3 (const int) +0:38 o2: direct index for structure ( uniform 2-component vector of int) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) +0:39 textureFetchOffset ( temp 4-component vector of uint) +0:39 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:39 c2: direct index for structure ( uniform 2-component vector of int) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 3 (const int) +0:39 o2: direct index for structure ( uniform 2-component vector of int) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) +0:42 textureFetch ( temp 4-component vector of float) +0:42 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:42 c3: direct index for structure ( uniform 3-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 3 (const int) +0:43 textureFetch ( temp 4-component vector of int) +0:43 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:43 c3: direct index for structure ( uniform 3-component vector of int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 3 (const int) +0:44 textureFetch ( temp 4-component vector of uint) +0:44 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:44 c3: direct index for structure ( uniform 3-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 3 (const int) +0:47 textureFetchOffset ( temp 4-component vector of float) +0:47 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:47 c3: direct index for structure ( uniform 3-component vector of int) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:47 o2: direct index for structure ( uniform 2-component vector of int) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:48 textureFetchOffset ( temp 4-component vector of int) +0:48 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:48 c3: direct index for structure ( uniform 3-component vector of int) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) +0:48 Constant: +0:48 3 (const int) +0:48 o2: direct index for structure ( uniform 2-component vector of int) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:49 textureFetchOffset ( temp 4-component vector of uint) +0:49 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:49 c3: direct index for structure ( uniform 3-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:49 Constant: +0:49 3 (const int) +0:49 o2: direct index for structure ( uniform 2-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) +0:51 move second child to first child ( temp 4-component vector of float) +0:51 Color: direct index for structure ( temp 4-component vector of float) +0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 +0:52 move second child to first child ( temp float) +0:52 Depth: direct index for structure ( temp float) +0:52 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 1.000000 +0:54 Branch: Return with expression +0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:? 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:32 textureFetch ( temp 4-component vector of float) +0:32 'g_tTex2dmsf4' ( uniform texture2DMS) +0:32 c2: direct index for structure ( uniform 2-component vector of int) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 3 (const int) +0:33 textureFetch ( temp 4-component vector of int) +0:33 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:33 c2: direct index for structure ( uniform 2-component vector of int) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) +0:33 Constant: +0:33 3 (const int) +0:34 textureFetch ( temp 4-component vector of uint) +0:34 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:34 c2: direct index for structure ( uniform 2-component vector of int) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) +0:34 Constant: +0:34 3 (const int) +0:37 textureFetchOffset ( temp 4-component vector of float) +0:37 'g_tTex2dmsf4' ( uniform texture2DMS) +0:37 c2: direct index for structure ( uniform 2-component vector of int) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) +0:37 Constant: +0:37 3 (const int) +0:37 o2: direct index for structure ( uniform 2-component vector of int) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) +0:38 textureFetchOffset ( temp 4-component vector of int) +0:38 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:38 c2: direct index for structure ( uniform 2-component vector of int) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 3 (const int) +0:38 o2: direct index for structure ( uniform 2-component vector of int) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) +0:39 textureFetchOffset ( temp 4-component vector of uint) +0:39 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:39 c2: direct index for structure ( uniform 2-component vector of int) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 3 (const int) +0:39 o2: direct index for structure ( uniform 2-component vector of int) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) +0:42 textureFetch ( temp 4-component vector of float) +0:42 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:42 c3: direct index for structure ( uniform 3-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 Constant: +0:42 3 (const int) +0:43 textureFetch ( temp 4-component vector of int) +0:43 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:43 c3: direct index for structure ( uniform 3-component vector of int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) +0:43 Constant: +0:43 3 (const int) +0:44 textureFetch ( temp 4-component vector of uint) +0:44 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:44 c3: direct index for structure ( uniform 3-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 3 (const int) +0:47 textureFetchOffset ( temp 4-component vector of float) +0:47 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:47 c3: direct index for structure ( uniform 3-component vector of int) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) +0:47 Constant: +0:47 3 (const int) +0:47 o2: direct index for structure ( uniform 2-component vector of int) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:48 textureFetchOffset ( temp 4-component vector of int) +0:48 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:48 c3: direct index for structure ( uniform 3-component vector of int) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) +0:48 Constant: +0:48 3 (const int) +0:48 o2: direct index for structure ( uniform 2-component vector of int) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:49 textureFetchOffset ( temp 4-component vector of uint) +0:49 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:49 c3: direct index for structure ( uniform 3-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:49 Constant: +0:49 3 (const int) +0:49 o2: direct index for structure ( uniform 2-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) +0:51 move second child to first child ( temp 4-component vector of float) +0:51 Color: direct index for structure ( temp 4-component vector of float) +0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 +0:52 move second child to first child ( temp float) +0:52 Depth: direct index for structure ( temp float) +0:52 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 1.000000 +0:54 Branch: Return with expression +0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2dmsi4' ( uniform itexture2DMS) +0:? 'g_tTex2dmsu4' ( uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 130 + + Capability Shader + Capability ImageGatherExtended + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 120 124 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex2dmsf4" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 31 "g_tTex2dmsi4" + Name 39 "g_tTex2dmsu4" + Name 66 "g_tTex2dmsf4a" + Name 75 "g_tTex2dmsi4a" + Name 82 "g_tTex2dmsu4a" + Name 106 "psout" + Name 117 "flattenTemp" + Name 120 "@entryPointOutput.Color" + Name 124 "@entryPointOutput.Depth" + Name 129 "g_sSamp" + Decorate 14(g_tTex2dmsf4) DescriptorSet 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 31(g_tTex2dmsi4) DescriptorSet 0 + Decorate 39(g_tTex2dmsu4) DescriptorSet 0 + Decorate 66(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 75(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 82(g_tTex2dmsu4a) DescriptorSet 0 + Decorate 120(@entryPointOutput.Color) Location 0 + Decorate 124(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 129(g_sSamp) DescriptorSet 0 + Decorate 129(g_sSamp) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 13: TypePointer UniformConstant 12 +14(g_tTex2dmsf4): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 1 + 24: TypePointer Uniform 17(ivec2) + 27: 16(int) Constant 3 + 29: TypeImage 16(int) 2D multi-sampled sampled format:Unknown + 30: TypePointer UniformConstant 29 +31(g_tTex2dmsi4): 30(ptr) Variable UniformConstant + 36: TypeInt 32 0 + 37: TypeImage 36(int) 2D multi-sampled sampled format:Unknown + 38: TypePointer UniformConstant 37 +39(g_tTex2dmsu4): 38(ptr) Variable UniformConstant + 43: TypeVector 36(int) 4 + 48: 16(int) Constant 5 + 64: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 65: TypePointer UniformConstant 64 +66(g_tTex2dmsf4a): 65(ptr) Variable UniformConstant + 68: 16(int) Constant 2 + 69: TypePointer Uniform 18(ivec3) + 73: TypeImage 16(int) 2D array multi-sampled sampled format:Unknown + 74: TypePointer UniformConstant 73 +75(g_tTex2dmsi4a): 74(ptr) Variable UniformConstant + 80: TypeImage 36(int) 2D array multi-sampled sampled format:Unknown + 81: TypePointer UniformConstant 80 +82(g_tTex2dmsu4a): 81(ptr) Variable UniformConstant + 105: TypePointer Function 8(PS_OUTPUT) + 107: 16(int) Constant 0 + 108: 6(float) Constant 1065353216 + 109: 7(fvec4) ConstantComposite 108 108 108 108 + 110: TypePointer Function 7(fvec4) + 112: TypePointer Function 6(float) + 119: TypePointer Output 7(fvec4) +120(@entryPointOutput.Color): 119(ptr) Variable Output + 123: TypePointer Output 6(float) +124(@entryPointOutput.Depth): 123(ptr) Variable Output + 127: TypeSampler + 128: TypePointer UniformConstant 127 + 129(g_sSamp): 128(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +117(flattenTemp): 105(ptr) Variable Function + 118:8(PS_OUTPUT) FunctionCall 10(@main() + Store 117(flattenTemp) 118 + 121: 110(ptr) AccessChain 117(flattenTemp) 107 + 122: 7(fvec4) Load 121 + Store 120(@entryPointOutput.Color) 122 + 125: 112(ptr) AccessChain 117(flattenTemp) 23 + 126: 6(float) Load 125 + Store 124(@entryPointOutput.Depth) 126 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 106(psout): 105(ptr) Variable Function + 15: 12 Load 14(g_tTex2dmsf4) + 25: 24(ptr) AccessChain 22 23 + 26: 17(ivec2) Load 25 + 28: 7(fvec4) ImageFetch 15 26 Sample 27 + 32: 29 Load 31(g_tTex2dmsi4) + 33: 24(ptr) AccessChain 22 23 + 34: 17(ivec2) Load 33 + 35: 19(ivec4) ImageFetch 32 34 Sample 27 + 40: 37 Load 39(g_tTex2dmsu4) + 41: 24(ptr) AccessChain 22 23 + 42: 17(ivec2) Load 41 + 44: 43(ivec4) ImageFetch 40 42 Sample 27 + 45: 12 Load 14(g_tTex2dmsf4) + 46: 24(ptr) AccessChain 22 23 + 47: 17(ivec2) Load 46 + 49: 24(ptr) AccessChain 22 48 + 50: 17(ivec2) Load 49 + 51: 7(fvec4) ImageFetch 45 47 Offset Sample 50 27 + 52: 29 Load 31(g_tTex2dmsi4) + 53: 24(ptr) AccessChain 22 23 + 54: 17(ivec2) Load 53 + 55: 24(ptr) AccessChain 22 48 + 56: 17(ivec2) Load 55 + 57: 19(ivec4) ImageFetch 52 54 Offset Sample 56 27 + 58: 37 Load 39(g_tTex2dmsu4) + 59: 24(ptr) AccessChain 22 23 + 60: 17(ivec2) Load 59 + 61: 24(ptr) AccessChain 22 48 + 62: 17(ivec2) Load 61 + 63: 43(ivec4) ImageFetch 58 60 Offset Sample 62 27 + 67: 64 Load 66(g_tTex2dmsf4a) + 70: 69(ptr) AccessChain 22 68 + 71: 18(ivec3) Load 70 + 72: 7(fvec4) ImageFetch 67 71 Sample 27 + 76: 73 Load 75(g_tTex2dmsi4a) + 77: 69(ptr) AccessChain 22 68 + 78: 18(ivec3) Load 77 + 79: 19(ivec4) ImageFetch 76 78 Sample 27 + 83: 80 Load 82(g_tTex2dmsu4a) + 84: 69(ptr) AccessChain 22 68 + 85: 18(ivec3) Load 84 + 86: 43(ivec4) ImageFetch 83 85 Sample 27 + 87: 64 Load 66(g_tTex2dmsf4a) + 88: 69(ptr) AccessChain 22 68 + 89: 18(ivec3) Load 88 + 90: 24(ptr) AccessChain 22 48 + 91: 17(ivec2) Load 90 + 92: 7(fvec4) ImageFetch 87 89 Offset Sample 91 27 + 93: 73 Load 75(g_tTex2dmsi4a) + 94: 69(ptr) AccessChain 22 68 + 95: 18(ivec3) Load 94 + 96: 24(ptr) AccessChain 22 48 + 97: 17(ivec2) Load 96 + 98: 19(ivec4) ImageFetch 93 95 Offset Sample 97 27 + 99: 80 Load 82(g_tTex2dmsu4a) + 100: 69(ptr) AccessChain 22 68 + 101: 18(ivec3) Load 100 + 102: 24(ptr) AccessChain 22 48 + 103: 17(ivec2) Load 102 + 104: 43(ivec4) ImageFetch 99 101 Offset Sample 103 27 + 111: 110(ptr) AccessChain 106(psout) 107 + Store 111 109 + 113: 112(ptr) AccessChain 106(psout) 23 + Store 113 108 + 114:8(PS_OUTPUT) Load 106(psout) + ReturnValue 114 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out new file mode 100644 index 0000000000..dd665edfa9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -0,0 +1,643 @@ +hlsl.load.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch ( temp 4-component vector of float) +0:52 'g_tTex1df4a' ( uniform texture1DArray) +0:52 vector swizzle ( temp 2-component vector of int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index ( temp int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:53 textureFetch ( temp 4-component vector of int) +0:53 'g_tTex1di4a' ( uniform itexture1DArray) +0:53 vector swizzle ( temp 2-component vector of int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index ( temp int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:54 textureFetch ( temp 4-component vector of uint) +0:54 'g_tTex1du4a' ( uniform utexture1DArray) +0:54 vector swizzle ( temp 2-component vector of int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index ( temp int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:57 textureFetch ( temp 4-component vector of float) +0:57 'g_tTex2df4a' ( uniform texture2DArray) +0:57 vector swizzle ( temp 3-component vector of int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index ( temp int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:58 textureFetch ( temp 4-component vector of int) +0:58 'g_tTex2di4a' ( uniform itexture2DArray) +0:58 vector swizzle ( temp 3-component vector of int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index ( temp int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:59 textureFetch ( temp 4-component vector of uint) +0:59 'g_tTex2du4a' ( uniform utexture2DArray) +0:59 vector swizzle ( temp 3-component vector of int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index ( temp int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:67 move second child to first child ( temp 4-component vector of float) +0:67 Color: direct index for structure ( temp 4-component vector of float) +0:67 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:68 move second child to first child ( temp float) +0:68 Depth: direct index for structure ( temp float) +0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch ( temp 4-component vector of float) +0:52 'g_tTex1df4a' ( uniform texture1DArray) +0:52 vector swizzle ( temp 2-component vector of int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index ( temp int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:53 textureFetch ( temp 4-component vector of int) +0:53 'g_tTex1di4a' ( uniform itexture1DArray) +0:53 vector swizzle ( temp 2-component vector of int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index ( temp int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:54 textureFetch ( temp 4-component vector of uint) +0:54 'g_tTex1du4a' ( uniform utexture1DArray) +0:54 vector swizzle ( temp 2-component vector of int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index ( temp int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:57 textureFetch ( temp 4-component vector of float) +0:57 'g_tTex2df4a' ( uniform texture2DArray) +0:57 vector swizzle ( temp 3-component vector of int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index ( temp int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:58 textureFetch ( temp 4-component vector of int) +0:58 'g_tTex2di4a' ( uniform itexture2DArray) +0:58 vector swizzle ( temp 3-component vector of int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index ( temp int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:59 textureFetch ( temp 4-component vector of uint) +0:59 'g_tTex2du4a' ( uniform utexture2DArray) +0:59 vector swizzle ( temp 3-component vector of int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index ( temp int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:67 move second child to first child ( temp 4-component vector of float) +0:67 Color: direct index for structure ( temp 4-component vector of float) +0:67 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:68 move second child to first child ( temp float) +0:68 Depth: direct index for structure ( temp float) +0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 159 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 104 108 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex1df4a" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 36 "g_tTex1di4a" + Name 46 "g_tTex1du4a" + Name 57 "g_tTex2df4a" + Name 70 "g_tTex2di4a" + Name 80 "g_tTex2du4a" + Name 89 "psout" + Name 101 "flattenTemp" + Name 104 "@entryPointOutput.Color" + Name 108 "@entryPointOutput.Depth" + Name 113 "g_sSamp" + Name 116 "g_tTex1df4" + Name 119 "g_tTex1di4" + Name 122 "g_tTex1du4" + Name 125 "g_tTex2df4" + Name 128 "g_tTex2di4" + Name 131 "g_tTex2du4" + Name 134 "g_tTex3df4" + Name 137 "g_tTex3di4" + Name 140 "g_tTex3du4" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" + Name 152 "g_tTexcdf4a" + Name 155 "g_tTexcdi4a" + Name 158 "g_tTexcdu4a" + Decorate 14(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 57(g_tTex2df4a) DescriptorSet 0 + Decorate 70(g_tTex2di4a) DescriptorSet 0 + Decorate 80(g_tTex2du4a) DescriptorSet 0 + Decorate 104(@entryPointOutput.Color) Location 0 + Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 113(g_sSamp) DescriptorSet 0 + Decorate 113(g_sSamp) Binding 0 + Decorate 116(g_tTex1df4) DescriptorSet 0 + Decorate 116(g_tTex1df4) Binding 0 + Decorate 119(g_tTex1di4) DescriptorSet 0 + Decorate 122(g_tTex1du4) DescriptorSet 0 + Decorate 125(g_tTex2df4) DescriptorSet 0 + Decorate 128(g_tTex2di4) DescriptorSet 0 + Decorate 131(g_tTex2du4) DescriptorSet 0 + Decorate 134(g_tTex3df4) DescriptorSet 0 + Decorate 137(g_tTex3di4) DescriptorSet 0 + Decorate 140(g_tTex3du4) DescriptorSet 0 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 152(g_tTexcdf4a) DescriptorSet 0 + Decorate 155(g_tTexcdi4a) DescriptorSet 0 + Decorate 158(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 1D array sampled format:Unknown + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4a): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 2 + 24: TypePointer Uniform 18(ivec3) + 28: TypeInt 32 0 + 29: 28(int) Constant 2 + 30: TypePointer Uniform 16(int) + 34: TypeImage 16(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 44: TypeImage 28(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant + 53: TypeVector 28(int) 4 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4a): 56(ptr) Variable UniformConstant + 59: 16(int) Constant 3 + 60: TypePointer Uniform 19(ivec4) + 64: 28(int) Constant 3 + 68: TypeImage 16(int) 2D array sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTex2di4a): 69(ptr) Variable UniformConstant + 78: TypeImage 28(int) 2D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4a): 79(ptr) Variable UniformConstant + 88: TypePointer Function 8(PS_OUTPUT) + 90: 16(int) Constant 0 + 91: 6(float) Constant 1065353216 + 92: 7(fvec4) ConstantComposite 91 91 91 91 + 93: TypePointer Function 7(fvec4) + 95: 16(int) Constant 1 + 96: TypePointer Function 6(float) + 103: TypePointer Output 7(fvec4) +104(@entryPointOutput.Color): 103(ptr) Variable Output + 107: TypePointer Output 6(float) +108(@entryPointOutput.Depth): 107(ptr) Variable Output + 111: TypeSampler + 112: TypePointer UniformConstant 111 + 113(g_sSamp): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) 1D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex1df4): 115(ptr) Variable UniformConstant + 117: TypeImage 16(int) 1D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex1di4): 118(ptr) Variable UniformConstant + 120: TypeImage 28(int) 1D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex1du4): 121(ptr) Variable UniformConstant + 123: TypeImage 6(float) 2D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex2df4): 124(ptr) Variable UniformConstant + 126: TypeImage 16(int) 2D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex2di4): 127(ptr) Variable UniformConstant + 129: TypeImage 28(int) 2D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex2du4): 130(ptr) Variable UniformConstant + 132: TypeImage 6(float) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3df4): 133(ptr) Variable UniformConstant + 135: TypeImage 16(int) 3D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex3di4): 136(ptr) Variable UniformConstant + 138: TypeImage 28(int) 3D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex3du4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 16(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 28(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) Cube array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTexcdf4a): 151(ptr) Variable UniformConstant + 153: TypeImage 16(int) Cube array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTexcdi4a): 154(ptr) Variable UniformConstant + 156: TypeImage 28(int) Cube array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTexcdu4a): 157(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +101(flattenTemp): 88(ptr) Variable Function + 102:8(PS_OUTPUT) FunctionCall 10(@main() + Store 101(flattenTemp) 102 + 105: 93(ptr) AccessChain 101(flattenTemp) 90 + 106: 7(fvec4) Load 105 + Store 104(@entryPointOutput.Color) 106 + 109: 96(ptr) AccessChain 101(flattenTemp) 95 + 110: 6(float) Load 109 + Store 108(@entryPointOutput.Depth) 110 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 89(psout): 88(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4a) + 25: 24(ptr) AccessChain 22 23 + 26: 18(ivec3) Load 25 + 27: 17(ivec2) VectorShuffle 26 26 0 1 + 31: 30(ptr) AccessChain 22 23 29 + 32: 16(int) Load 31 + 33: 7(fvec4) ImageFetch 15 27 Lod 32 + 37: 34 Load 36(g_tTex1di4a) + 38: 24(ptr) AccessChain 22 23 + 39: 18(ivec3) Load 38 + 40: 17(ivec2) VectorShuffle 39 39 0 1 + 41: 30(ptr) AccessChain 22 23 29 + 42: 16(int) Load 41 + 43: 19(ivec4) ImageFetch 37 40 Lod 42 + 47: 44 Load 46(g_tTex1du4a) + 48: 24(ptr) AccessChain 22 23 + 49: 18(ivec3) Load 48 + 50: 17(ivec2) VectorShuffle 49 49 0 1 + 51: 30(ptr) AccessChain 22 23 29 + 52: 16(int) Load 51 + 54: 53(ivec4) ImageFetch 47 50 Lod 52 + 58: 55 Load 57(g_tTex2df4a) + 61: 60(ptr) AccessChain 22 59 + 62: 19(ivec4) Load 61 + 63: 18(ivec3) VectorShuffle 62 62 0 1 2 + 65: 30(ptr) AccessChain 22 59 64 + 66: 16(int) Load 65 + 67: 7(fvec4) ImageFetch 58 63 Lod 66 + 71: 68 Load 70(g_tTex2di4a) + 72: 60(ptr) AccessChain 22 59 + 73: 19(ivec4) Load 72 + 74: 18(ivec3) VectorShuffle 73 73 0 1 2 + 75: 30(ptr) AccessChain 22 59 64 + 76: 16(int) Load 75 + 77: 19(ivec4) ImageFetch 71 74 Lod 76 + 81: 78 Load 80(g_tTex2du4a) + 82: 60(ptr) AccessChain 22 59 + 83: 19(ivec4) Load 82 + 84: 18(ivec3) VectorShuffle 83 83 0 1 2 + 85: 30(ptr) AccessChain 22 59 64 + 86: 16(int) Load 85 + 87: 53(ivec4) ImageFetch 81 84 Lod 86 + 94: 93(ptr) AccessChain 89(psout) 90 + Store 94 92 + 97: 96(ptr) AccessChain 89(psout) 95 + Store 97 91 + 98:8(PS_OUTPUT) Load 89(psout) + ReturnValue 98 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out new file mode 100644 index 0000000000..bcfb977b19 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -0,0 +1,765 @@ +hlsl.load.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch ( temp 4-component vector of float) +0:52 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:52 vector swizzle ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch ( temp 4-component vector of int) +0:53 'g_tTex1di4' ( uniform itexture1D) +0:53 vector swizzle ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:54 textureFetch ( temp 4-component vector of uint) +0:54 'g_tTex1du4' ( uniform utexture1D) +0:54 vector swizzle ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:57 textureFetch ( temp 4-component vector of float) +0:57 'g_tTex2df4' ( uniform texture2D) +0:57 vector swizzle ( temp 2-component vector of int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index ( temp int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch ( temp 4-component vector of int) +0:58 'g_tTex2di4' ( uniform itexture2D) +0:58 vector swizzle ( temp 2-component vector of int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index ( temp int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:59 textureFetch ( temp 4-component vector of uint) +0:59 'g_tTex2du4' ( uniform utexture2D) +0:59 vector swizzle ( temp 2-component vector of int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index ( temp int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:62 textureFetch ( temp 4-component vector of float) +0:62 'g_tTex3df4' ( uniform texture3D) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index ( temp int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch ( temp 4-component vector of int) +0:63 'g_tTex3di4' ( uniform itexture3D) +0:63 vector swizzle ( temp 3-component vector of int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index ( temp int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 textureFetch ( temp 4-component vector of uint) +0:64 'g_tTex3du4' ( uniform utexture3D) +0:64 vector swizzle ( temp 3-component vector of int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index ( temp int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:72 move second child to first child ( temp 4-component vector of float) +0:72 Color: direct index for structure ( temp 4-component vector of float) +0:72 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:73 move second child to first child ( temp float) +0:73 Depth: direct index for structure ( temp float) +0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch ( temp 4-component vector of float) +0:52 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:52 vector swizzle ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch ( temp 4-component vector of int) +0:53 'g_tTex1di4' ( uniform itexture1D) +0:53 vector swizzle ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:54 textureFetch ( temp 4-component vector of uint) +0:54 'g_tTex1du4' ( uniform utexture1D) +0:54 vector swizzle ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:57 textureFetch ( temp 4-component vector of float) +0:57 'g_tTex2df4' ( uniform texture2D) +0:57 vector swizzle ( temp 2-component vector of int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index ( temp int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch ( temp 4-component vector of int) +0:58 'g_tTex2di4' ( uniform itexture2D) +0:58 vector swizzle ( temp 2-component vector of int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index ( temp int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:59 textureFetch ( temp 4-component vector of uint) +0:59 'g_tTex2du4' ( uniform utexture2D) +0:59 vector swizzle ( temp 2-component vector of int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index ( temp int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:62 textureFetch ( temp 4-component vector of float) +0:62 'g_tTex3df4' ( uniform texture3D) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index ( temp int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch ( temp 4-component vector of int) +0:63 'g_tTex3di4' ( uniform itexture3D) +0:63 vector swizzle ( temp 3-component vector of int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index ( temp int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:64 textureFetch ( temp 4-component vector of uint) +0:64 'g_tTex3du4' ( uniform utexture3D) +0:64 vector swizzle ( temp 3-component vector of int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index ( temp int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:72 move second child to first child ( temp 4-component vector of float) +0:72 Color: direct index for structure ( temp 4-component vector of float) +0:72 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:73 move second child to first child ( temp float) +0:73 Depth: direct index for structure ( temp float) +0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 179 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 133 137 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex1df4" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 35 "g_tTex1di4" + Name 44 "g_tTex1du4" + Name 54 "g_tTex2df4" + Name 67 "g_tTex2di4" + Name 77 "g_tTex2du4" + Name 87 "g_tTex3df4" + Name 100 "g_tTex3di4" + Name 110 "g_tTex3du4" + Name 119 "psout" + Name 130 "flattenTemp" + Name 133 "@entryPointOutput.Color" + Name 137 "@entryPointOutput.Depth" + Name 142 "g_sSamp" + Name 145 "g_tTexcdf4" + Name 148 "g_tTexcdi4" + Name 151 "g_tTexcdu4" + Name 154 "g_tTex1df4a" + Name 157 "g_tTex1di4a" + Name 160 "g_tTex1du4a" + Name 163 "g_tTex2df4a" + Name 166 "g_tTex2di4a" + Name 169 "g_tTex2du4a" + Name 172 "g_tTexcdf4a" + Name 175 "g_tTexcdi4a" + Name 178 "g_tTexcdu4a" + Decorate 14(g_tTex1df4) DescriptorSet 0 + Decorate 14(g_tTex1df4) Binding 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 77(g_tTex2du4) DescriptorSet 0 + Decorate 87(g_tTex3df4) DescriptorSet 0 + Decorate 100(g_tTex3di4) DescriptorSet 0 + Decorate 110(g_tTex3du4) DescriptorSet 0 + Decorate 133(@entryPointOutput.Color) Location 0 + Decorate 137(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 142(g_sSamp) DescriptorSet 0 + Decorate 142(g_sSamp) Binding 0 + Decorate 145(g_tTexcdf4) DescriptorSet 0 + Decorate 148(g_tTexcdi4) DescriptorSet 0 + Decorate 151(g_tTexcdu4) DescriptorSet 0 + Decorate 154(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1di4a) DescriptorSet 0 + Decorate 160(g_tTex1du4a) DescriptorSet 0 + Decorate 163(g_tTex2df4a) DescriptorSet 0 + Decorate 166(g_tTex2di4a) DescriptorSet 0 + Decorate 169(g_tTex2du4a) DescriptorSet 0 + Decorate 172(g_tTexcdf4a) DescriptorSet 0 + Decorate 175(g_tTexcdi4a) DescriptorSet 0 + Decorate 178(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 1D sampled format:Unknown + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 1 + 24: TypeInt 32 0 + 25: 24(int) Constant 0 + 26: TypePointer Uniform 16(int) + 29: 24(int) Constant 1 + 33: TypeImage 16(int) 1D sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 42: TypeImage 24(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 50: TypeVector 24(int) 4 + 52: TypeImage 6(float) 2D sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 56: 16(int) Constant 2 + 57: TypePointer Uniform 18(ivec3) + 61: 24(int) Constant 2 + 65: TypeImage 16(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 75: TypeImage 24(int) 2D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2du4): 76(ptr) Variable UniformConstant + 85: TypeImage 6(float) 3D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex3df4): 86(ptr) Variable UniformConstant + 89: 16(int) Constant 3 + 90: TypePointer Uniform 19(ivec4) + 94: 24(int) Constant 3 + 98: TypeImage 16(int) 3D sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTex3di4): 99(ptr) Variable UniformConstant + 108: TypeImage 24(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3du4): 109(ptr) Variable UniformConstant + 118: TypePointer Function 8(PS_OUTPUT) + 120: 16(int) Constant 0 + 121: 6(float) Constant 1065353216 + 122: 7(fvec4) ConstantComposite 121 121 121 121 + 123: TypePointer Function 7(fvec4) + 125: TypePointer Function 6(float) + 132: TypePointer Output 7(fvec4) +133(@entryPointOutput.Color): 132(ptr) Variable Output + 136: TypePointer Output 6(float) +137(@entryPointOutput.Depth): 136(ptr) Variable Output + 140: TypeSampler + 141: TypePointer UniformConstant 140 + 142(g_sSamp): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdf4): 144(ptr) Variable UniformConstant + 146: TypeImage 16(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdi4): 147(ptr) Variable UniformConstant + 149: TypeImage 24(int) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdu4): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 1D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex1df4a): 153(ptr) Variable UniformConstant + 155: TypeImage 16(int) 1D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex1di4a): 156(ptr) Variable UniformConstant + 158: TypeImage 24(int) 1D array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTex1du4a): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) 2D array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTex2df4a): 162(ptr) Variable UniformConstant + 164: TypeImage 16(int) 2D array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTex2di4a): 165(ptr) Variable UniformConstant + 167: TypeImage 24(int) 2D array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTex2du4a): 168(ptr) Variable UniformConstant + 170: TypeImage 6(float) Cube array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTexcdf4a): 171(ptr) Variable UniformConstant + 173: TypeImage 16(int) Cube array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTexcdi4a): 174(ptr) Variable UniformConstant + 176: TypeImage 24(int) Cube array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTexcdu4a): 177(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +130(flattenTemp): 118(ptr) Variable Function + 131:8(PS_OUTPUT) FunctionCall 10(@main() + Store 130(flattenTemp) 131 + 134: 123(ptr) AccessChain 130(flattenTemp) 120 + 135: 7(fvec4) Load 134 + Store 133(@entryPointOutput.Color) 135 + 138: 125(ptr) AccessChain 130(flattenTemp) 23 + 139: 6(float) Load 138 + Store 137(@entryPointOutput.Depth) 139 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 119(psout): 118(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4) + 27: 26(ptr) AccessChain 22 23 25 + 28: 16(int) Load 27 + 30: 26(ptr) AccessChain 22 23 29 + 31: 16(int) Load 30 + 32: 7(fvec4) ImageFetch 15 28 Lod 31 + 36: 33 Load 35(g_tTex1di4) + 37: 26(ptr) AccessChain 22 23 25 + 38: 16(int) Load 37 + 39: 26(ptr) AccessChain 22 23 29 + 40: 16(int) Load 39 + 41: 19(ivec4) ImageFetch 36 38 Lod 40 + 45: 42 Load 44(g_tTex1du4) + 46: 26(ptr) AccessChain 22 23 25 + 47: 16(int) Load 46 + 48: 26(ptr) AccessChain 22 23 29 + 49: 16(int) Load 48 + 51: 50(ivec4) ImageFetch 45 47 Lod 49 + 55: 52 Load 54(g_tTex2df4) + 58: 57(ptr) AccessChain 22 56 + 59: 18(ivec3) Load 58 + 60: 17(ivec2) VectorShuffle 59 59 0 1 + 62: 26(ptr) AccessChain 22 56 61 + 63: 16(int) Load 62 + 64: 7(fvec4) ImageFetch 55 60 Lod 63 + 68: 65 Load 67(g_tTex2di4) + 69: 57(ptr) AccessChain 22 56 + 70: 18(ivec3) Load 69 + 71: 17(ivec2) VectorShuffle 70 70 0 1 + 72: 26(ptr) AccessChain 22 56 61 + 73: 16(int) Load 72 + 74: 19(ivec4) ImageFetch 68 71 Lod 73 + 78: 75 Load 77(g_tTex2du4) + 79: 57(ptr) AccessChain 22 56 + 80: 18(ivec3) Load 79 + 81: 17(ivec2) VectorShuffle 80 80 0 1 + 82: 26(ptr) AccessChain 22 56 61 + 83: 16(int) Load 82 + 84: 50(ivec4) ImageFetch 78 81 Lod 83 + 88: 85 Load 87(g_tTex3df4) + 91: 90(ptr) AccessChain 22 89 + 92: 19(ivec4) Load 91 + 93: 18(ivec3) VectorShuffle 92 92 0 1 2 + 95: 26(ptr) AccessChain 22 89 94 + 96: 16(int) Load 95 + 97: 7(fvec4) ImageFetch 88 93 Lod 96 + 101: 98 Load 100(g_tTex3di4) + 102: 90(ptr) AccessChain 22 89 + 103: 19(ivec4) Load 102 + 104: 18(ivec3) VectorShuffle 103 103 0 1 2 + 105: 26(ptr) AccessChain 22 89 94 + 106: 16(int) Load 105 + 107: 19(ivec4) ImageFetch 101 104 Lod 106 + 111: 108 Load 110(g_tTex3du4) + 112: 90(ptr) AccessChain 22 89 + 113: 19(ivec4) Load 112 + 114: 18(ivec3) VectorShuffle 113 113 0 1 2 + 115: 26(ptr) AccessChain 22 89 94 + 116: 16(int) Load 115 + 117: 50(ivec4) ImageFetch 111 114 Lod 116 + 124: 123(ptr) AccessChain 119(psout) 120 + Store 124 122 + 126: 125(ptr) AccessChain 119(psout) 23 + Store 126 121 + 127:8(PS_OUTPUT) Load 119(psout) + ReturnValue 127 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out new file mode 100644 index 0000000000..163899168e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -0,0 +1,710 @@ +hlsl.load.basic.dx10.vert +Shader version: 500 +0:? Sequence +0:47 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:47 Function Parameters: +0:? Sequence +0:51 textureFetch ( temp 4-component vector of float) +0:51 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:51 vector swizzle ( temp int) +0:51 c2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 direct index ( temp int) +0:51 c2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 1 (const int) +0:52 textureFetch ( temp 4-component vector of int) +0:52 'g_tTex1di4' ( uniform itexture1D) +0:52 vector swizzle ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch ( temp 4-component vector of uint) +0:53 'g_tTex1du4' ( uniform utexture1D) +0:53 vector swizzle ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:56 textureFetch ( temp 4-component vector of float) +0:56 'g_tTex2df4' ( uniform texture2D) +0:56 vector swizzle ( temp 2-component vector of int) +0:56 c3: direct index for structure ( uniform 3-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 direct index ( temp int) +0:56 c3: direct index for structure ( uniform 3-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Constant: +0:56 2 (const int) +0:57 textureFetch ( temp 4-component vector of int) +0:57 'g_tTex2di4' ( uniform itexture2D) +0:57 vector swizzle ( temp 2-component vector of int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index ( temp int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch ( temp 4-component vector of uint) +0:58 'g_tTex2du4' ( uniform utexture2D) +0:58 vector swizzle ( temp 2-component vector of int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index ( temp int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:61 textureFetch ( temp 4-component vector of float) +0:61 'g_tTex3df4' ( uniform texture3D) +0:61 vector swizzle ( temp 3-component vector of int) +0:61 c4: direct index for structure ( uniform 4-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const int) +0:61 direct index ( temp int) +0:61 c4: direct index for structure ( uniform 4-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 3 (const int) +0:62 textureFetch ( temp 4-component vector of int) +0:62 'g_tTex3di4' ( uniform itexture3D) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index ( temp int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch ( temp 4-component vector of uint) +0:63 'g_tTex3du4' ( uniform utexture3D) +0:63 vector swizzle ( temp 3-component vector of int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index ( temp int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:67 move second child to first child ( temp 4-component vector of float) +0:67 Pos: direct index for structure ( temp 4-component vector of float) +0:67 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:67 Constant: +0:67 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:69 Branch: Return with expression +0:69 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:47 Function Definition: main( ( temp void) +0:47 Function Parameters: +0:? Sequence +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:47 Pos: direct index for structure ( temp 4-component vector of float) +0:47 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:47 Constant: +0:47 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:47 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:47 Function Parameters: +0:? Sequence +0:51 textureFetch ( temp 4-component vector of float) +0:51 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:51 vector swizzle ( temp int) +0:51 c2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 direct index ( temp int) +0:51 c2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:51 Constant: +0:51 1 (const int) +0:52 textureFetch ( temp 4-component vector of int) +0:52 'g_tTex1di4' ( uniform itexture1D) +0:52 vector swizzle ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch ( temp 4-component vector of uint) +0:53 'g_tTex1du4' ( uniform utexture1D) +0:53 vector swizzle ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:56 textureFetch ( temp 4-component vector of float) +0:56 'g_tTex2df4' ( uniform texture2D) +0:56 vector swizzle ( temp 2-component vector of int) +0:56 c3: direct index for structure ( uniform 3-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 direct index ( temp int) +0:56 c3: direct index for structure ( uniform 3-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 Constant: +0:56 2 (const int) +0:57 textureFetch ( temp 4-component vector of int) +0:57 'g_tTex2di4' ( uniform itexture2D) +0:57 vector swizzle ( temp 2-component vector of int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index ( temp int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch ( temp 4-component vector of uint) +0:58 'g_tTex2du4' ( uniform utexture2D) +0:58 vector swizzle ( temp 2-component vector of int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index ( temp int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:61 textureFetch ( temp 4-component vector of float) +0:61 'g_tTex3df4' ( uniform texture3D) +0:61 vector swizzle ( temp 3-component vector of int) +0:61 c4: direct index for structure ( uniform 4-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const int) +0:61 direct index ( temp int) +0:61 c4: direct index for structure ( uniform 4-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) +0:61 Constant: +0:61 3 (const int) +0:62 textureFetch ( temp 4-component vector of int) +0:62 'g_tTex3di4' ( uniform itexture3D) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index ( temp int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch ( temp 4-component vector of uint) +0:63 'g_tTex3du4' ( uniform utexture3D) +0:63 vector swizzle ( temp 3-component vector of int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index ( temp int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:67 move second child to first child ( temp 4-component vector of float) +0:67 Pos: direct index for structure ( temp 4-component vector of float) +0:67 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:67 Constant: +0:67 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:69 Branch: Return with expression +0:69 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:47 Function Definition: main( ( temp void) +0:47 Function Parameters: +0:? Sequence +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:47 Pos: direct index for structure ( temp 4-component vector of float) +0:47 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:47 Constant: +0:47 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 171 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 129 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Pos" + Name 10 "@main(" + Name 14 "g_tTex1df4" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 35 "g_tTex1di4" + Name 44 "g_tTex1du4" + Name 54 "g_tTex2df4" + Name 67 "g_tTex2di4" + Name 77 "g_tTex2du4" + Name 87 "g_tTex3df4" + Name 100 "g_tTex3di4" + Name 110 "g_tTex3du4" + Name 119 "vsout" + Name 129 "@entryPointOutput.Pos" + Name 134 "g_sSamp" + Name 137 "g_tTexcdf4" + Name 140 "g_tTexcdi4" + Name 143 "g_tTexcdu4" + Name 146 "g_tTex1df4a" + Name 149 "g_tTex1di4a" + Name 152 "g_tTex1du4a" + Name 155 "g_tTex2df4a" + Name 158 "g_tTex2di4a" + Name 161 "g_tTex2du4a" + Name 164 "g_tTexcdf4a" + Name 167 "g_tTexcdi4a" + Name 170 "g_tTexcdu4a" + Decorate 14(g_tTex1df4) DescriptorSet 0 + Decorate 14(g_tTex1df4) Binding 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 77(g_tTex2du4) DescriptorSet 0 + Decorate 87(g_tTex3df4) DescriptorSet 0 + Decorate 100(g_tTex3di4) DescriptorSet 0 + Decorate 110(g_tTex3du4) DescriptorSet 0 + Decorate 129(@entryPointOutput.Pos) BuiltIn Position + Decorate 134(g_sSamp) DescriptorSet 0 + Decorate 134(g_sSamp) Binding 0 + Decorate 137(g_tTexcdf4) DescriptorSet 0 + Decorate 140(g_tTexcdi4) DescriptorSet 0 + Decorate 143(g_tTexcdu4) DescriptorSet 0 + Decorate 146(g_tTex1df4a) DescriptorSet 0 + Decorate 149(g_tTex1di4a) DescriptorSet 0 + Decorate 152(g_tTex1du4a) DescriptorSet 0 + Decorate 155(g_tTex2df4a) DescriptorSet 0 + Decorate 158(g_tTex2di4a) DescriptorSet 0 + Decorate 161(g_tTex2du4a) DescriptorSet 0 + Decorate 164(g_tTexcdf4a) DescriptorSet 0 + Decorate 167(g_tTexcdi4a) DescriptorSet 0 + Decorate 170(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(VS_OUTPUT) + 12: TypeImage 6(float) 1D sampled format:Unknown + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 1 + 24: TypeInt 32 0 + 25: 24(int) Constant 0 + 26: TypePointer Uniform 16(int) + 29: 24(int) Constant 1 + 33: TypeImage 16(int) 1D sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 42: TypeImage 24(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 50: TypeVector 24(int) 4 + 52: TypeImage 6(float) 2D sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 56: 16(int) Constant 2 + 57: TypePointer Uniform 18(ivec3) + 61: 24(int) Constant 2 + 65: TypeImage 16(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 75: TypeImage 24(int) 2D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2du4): 76(ptr) Variable UniformConstant + 85: TypeImage 6(float) 3D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex3df4): 86(ptr) Variable UniformConstant + 89: 16(int) Constant 3 + 90: TypePointer Uniform 19(ivec4) + 94: 24(int) Constant 3 + 98: TypeImage 16(int) 3D sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTex3di4): 99(ptr) Variable UniformConstant + 108: TypeImage 24(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3du4): 109(ptr) Variable UniformConstant + 118: TypePointer Function 8(VS_OUTPUT) + 120: 16(int) Constant 0 + 121: 6(float) Constant 0 + 122: 7(fvec4) ConstantComposite 121 121 121 121 + 123: TypePointer Function 7(fvec4) + 128: TypePointer Output 7(fvec4) +129(@entryPointOutput.Pos): 128(ptr) Variable Output + 132: TypeSampler + 133: TypePointer UniformConstant 132 + 134(g_sSamp): 133(ptr) Variable UniformConstant + 135: TypeImage 6(float) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdf4): 136(ptr) Variable UniformConstant + 138: TypeImage 16(int) Cube sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTexcdi4): 139(ptr) Variable UniformConstant + 141: TypeImage 24(int) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdu4): 142(ptr) Variable UniformConstant + 144: TypeImage 6(float) 1D array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTex1df4a): 145(ptr) Variable UniformConstant + 147: TypeImage 16(int) 1D array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTex1di4a): 148(ptr) Variable UniformConstant + 150: TypeImage 24(int) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1du4a): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex2df4a): 154(ptr) Variable UniformConstant + 156: TypeImage 16(int) 2D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex2di4a): 157(ptr) Variable UniformConstant + 159: TypeImage 24(int) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2du4a): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) Cube array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTexcdf4a): 163(ptr) Variable UniformConstant + 165: TypeImage 16(int) Cube array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTexcdi4a): 166(ptr) Variable UniformConstant + 168: TypeImage 24(int) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdu4a): 169(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 130:8(VS_OUTPUT) FunctionCall 10(@main() + 131: 7(fvec4) CompositeExtract 130 0 + Store 129(@entryPointOutput.Pos) 131 + Return + FunctionEnd + 10(@main():8(VS_OUTPUT) Function None 9 + 11: Label + 119(vsout): 118(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4) + 27: 26(ptr) AccessChain 22 23 25 + 28: 16(int) Load 27 + 30: 26(ptr) AccessChain 22 23 29 + 31: 16(int) Load 30 + 32: 7(fvec4) ImageFetch 15 28 Lod 31 + 36: 33 Load 35(g_tTex1di4) + 37: 26(ptr) AccessChain 22 23 25 + 38: 16(int) Load 37 + 39: 26(ptr) AccessChain 22 23 29 + 40: 16(int) Load 39 + 41: 19(ivec4) ImageFetch 36 38 Lod 40 + 45: 42 Load 44(g_tTex1du4) + 46: 26(ptr) AccessChain 22 23 25 + 47: 16(int) Load 46 + 48: 26(ptr) AccessChain 22 23 29 + 49: 16(int) Load 48 + 51: 50(ivec4) ImageFetch 45 47 Lod 49 + 55: 52 Load 54(g_tTex2df4) + 58: 57(ptr) AccessChain 22 56 + 59: 18(ivec3) Load 58 + 60: 17(ivec2) VectorShuffle 59 59 0 1 + 62: 26(ptr) AccessChain 22 56 61 + 63: 16(int) Load 62 + 64: 7(fvec4) ImageFetch 55 60 Lod 63 + 68: 65 Load 67(g_tTex2di4) + 69: 57(ptr) AccessChain 22 56 + 70: 18(ivec3) Load 69 + 71: 17(ivec2) VectorShuffle 70 70 0 1 + 72: 26(ptr) AccessChain 22 56 61 + 73: 16(int) Load 72 + 74: 19(ivec4) ImageFetch 68 71 Lod 73 + 78: 75 Load 77(g_tTex2du4) + 79: 57(ptr) AccessChain 22 56 + 80: 18(ivec3) Load 79 + 81: 17(ivec2) VectorShuffle 80 80 0 1 + 82: 26(ptr) AccessChain 22 56 61 + 83: 16(int) Load 82 + 84: 50(ivec4) ImageFetch 78 81 Lod 83 + 88: 85 Load 87(g_tTex3df4) + 91: 90(ptr) AccessChain 22 89 + 92: 19(ivec4) Load 91 + 93: 18(ivec3) VectorShuffle 92 92 0 1 2 + 95: 26(ptr) AccessChain 22 89 94 + 96: 16(int) Load 95 + 97: 7(fvec4) ImageFetch 88 93 Lod 96 + 101: 98 Load 100(g_tTex3di4) + 102: 90(ptr) AccessChain 22 89 + 103: 19(ivec4) Load 102 + 104: 18(ivec3) VectorShuffle 103 103 0 1 2 + 105: 26(ptr) AccessChain 22 89 94 + 106: 16(int) Load 105 + 107: 19(ivec4) ImageFetch 101 104 Lod 106 + 111: 108 Load 110(g_tTex3du4) + 112: 90(ptr) AccessChain 22 89 + 113: 19(ivec4) Load 112 + 114: 18(ivec3) VectorShuffle 113 113 0 1 2 + 115: 26(ptr) AccessChain 22 89 94 + 116: 16(int) Load 115 + 117: 50(ivec4) ImageFetch 111 114 Lod 116 + 124: 123(ptr) AccessChain 119(vsout) 120 + Store 124 122 + 125:8(VS_OUTPUT) Load 119(vsout) + ReturnValue 125 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out new file mode 100644 index 0000000000..21e5d30402 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -0,0 +1,302 @@ +hlsl.load.buffer.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:28 'r00' ( temp 4-component vector of float) +0:28 textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) +0:28 c1: direct index for structure ( uniform int) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of int) +0:29 'r01' ( temp 4-component vector of int) +0:29 textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) +0:29 c1: direct index for structure ( uniform int) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of uint) +0:30 'r02' ( temp 4-component vector of uint) +0:30 textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) +0:30 c1: direct index for structure ( uniform int) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child ( temp 4-component vector of float) +0:34 Color: direct index for structure ( temp 4-component vector of float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Branch: Return with expression +0:37 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:28 'r00' ( temp 4-component vector of float) +0:28 textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) +0:28 c1: direct index for structure ( uniform int) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of int) +0:29 'r01' ( temp 4-component vector of int) +0:29 textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) +0:29 c1: direct index for structure ( uniform int) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of uint) +0:30 'r02' ( temp 4-component vector of uint) +0:30 textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) +0:30 c1: direct index for structure ( uniform int) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child ( temp 4-component vector of float) +0:34 Color: direct index for structure ( temp 4-component vector of float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Branch: Return with expression +0:37 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer) +0:? 'g_tTexbf4' (layout( rgba32f) uniform textureBuffer) +0:? 'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer) +0:? 'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 72 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 64 68 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r00" + Name 16 "g_tTexbf4" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + MemberName 22($Global) 4 "o1" + MemberName 22($Global) 5 "o2" + MemberName 22($Global) 6 "o3" + MemberName 22($Global) 7 "o4" + Name 24 "" + Name 31 "r01" + Name 34 "g_tTexbi4" + Name 42 "r02" + Name 45 "g_tTexbu4" + Name 51 "psout" + Name 61 "flattenTemp" + Name 64 "@entryPointOutput.Color" + Name 68 "@entryPointOutput.Depth" + Name 71 "g_tTexbf4_test" + Decorate 16(g_tTexbf4) DescriptorSet 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + MemberDecorate 22($Global) 4 Offset 48 + MemberDecorate 22($Global) 5 Offset 56 + MemberDecorate 22($Global) 6 Offset 64 + MemberDecorate 22($Global) 7 Offset 80 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 34(g_tTexbi4) DescriptorSet 0 + Decorate 45(g_tTexbu4) DescriptorSet 0 + Decorate 64(@entryPointOutput.Color) Location 0 + Decorate 68(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 71(g_tTexbf4_test) DescriptorSet 0 + Decorate 71(g_tTexbf4_test) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) Buffer sampled format:Rgba32f + 15: TypePointer UniformConstant 14 + 16(g_tTexbf4): 15(ptr) Variable UniformConstant + 18: TypeInt 32 1 + 19: TypeVector 18(int) 2 + 20: TypeVector 18(int) 3 + 21: TypeVector 18(int) 4 + 22($Global): TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: 18(int) Constant 0 + 26: TypePointer Uniform 18(int) + 30: TypePointer Function 21(ivec4) + 32: TypeImage 18(int) Buffer sampled format:Rgba32i + 33: TypePointer UniformConstant 32 + 34(g_tTexbi4): 33(ptr) Variable UniformConstant + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) Buffer sampled format:Rgba32ui + 44: TypePointer UniformConstant 43 + 45(g_tTexbu4): 44(ptr) Variable UniformConstant + 50: TypePointer Function 8(PS_OUTPUT) + 52: 6(float) Constant 1065353216 + 53: 7(fvec4) ConstantComposite 52 52 52 52 + 55: 18(int) Constant 1 + 56: TypePointer Function 6(float) + 63: TypePointer Output 7(fvec4) +64(@entryPointOutput.Color): 63(ptr) Variable Output + 67: TypePointer Output 6(float) +68(@entryPointOutput.Depth): 67(ptr) Variable Output +71(g_tTexbf4_test): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 61(flattenTemp): 50(ptr) Variable Function + 62:8(PS_OUTPUT) FunctionCall 10(@main() + Store 61(flattenTemp) 62 + 65: 12(ptr) AccessChain 61(flattenTemp) 25 + 66: 7(fvec4) Load 65 + Store 64(@entryPointOutput.Color) 66 + 69: 56(ptr) AccessChain 61(flattenTemp) 55 + 70: 6(float) Load 69 + Store 68(@entryPointOutput.Depth) 70 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 31(r01): 30(ptr) Variable Function + 42(r02): 41(ptr) Variable Function + 51(psout): 50(ptr) Variable Function + 17: 14 Load 16(g_tTexbf4) + 27: 26(ptr) AccessChain 24 25 + 28: 18(int) Load 27 + 29: 7(fvec4) ImageFetch 17 28 + Store 13(r00) 29 + 35: 32 Load 34(g_tTexbi4) + 36: 26(ptr) AccessChain 24 25 + 37: 18(int) Load 36 + 38: 21(ivec4) ImageFetch 35 37 + Store 31(r01) 38 + 46: 43 Load 45(g_tTexbu4) + 47: 26(ptr) AccessChain 24 25 + 48: 18(int) Load 47 + 49: 40(ivec4) ImageFetch 46 48 + Store 42(r02) 49 + 54: 12(ptr) AccessChain 51(psout) 25 + Store 54 53 + 57: 56(ptr) AccessChain 51(psout) 55 + Store 57 52 + 58:8(PS_OUTPUT) Load 51(psout) + ReturnValue 58 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out new file mode 100644 index 0000000000..d951d093b0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -0,0 +1,311 @@ +hlsl.load.buffer.float.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'r00' ( temp float) +0:28 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:28 c1: direct index for structure ( uniform int) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'r01' ( temp int) +0:29 Construct int ( temp int) +0:? textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbis' (layout( r32i) uniform itextureBuffer) +0:29 c1: direct index for structure ( uniform int) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child ( temp uint) +0:30 'r02' ( temp uint) +0:30 Construct uint ( temp uint) +0:? textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) +0:30 c1: direct index for structure ( uniform int) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child ( temp 4-component vector of float) +0:34 Color: direct index for structure ( temp 4-component vector of float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Branch: Return with expression +0:37 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTexbis' (layout( r32i) uniform itextureBuffer) +0:? 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'r00' ( temp float) +0:28 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:28 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:28 c1: direct index for structure ( uniform int) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'r01' ( temp int) +0:29 Construct int ( temp int) +0:? textureFetch ( temp 4-component vector of int) +0:29 'g_tTexbis' (layout( r32i) uniform itextureBuffer) +0:29 c1: direct index for structure ( uniform int) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child ( temp uint) +0:30 'r02' ( temp uint) +0:30 Construct uint ( temp uint) +0:? textureFetch ( temp 4-component vector of uint) +0:30 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) +0:30 c1: direct index for structure ( uniform int) +0:30 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child ( temp 4-component vector of float) +0:34 Color: direct index for structure ( temp 4-component vector of float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child ( temp float) +0:35 Depth: direct index for structure ( temp float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Branch: Return with expression +0:37 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer) +0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer) +0:? 'g_tTexbis' (layout( r32i) uniform itextureBuffer) +0:? 'g_tTexbus' (layout( r32ui) uniform utextureBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 75 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 67 71 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r00" + Name 16 "g_tTexbfs" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + MemberName 22($Global) 4 "o1" + MemberName 22($Global) 5 "o2" + MemberName 22($Global) 6 "o3" + MemberName 22($Global) 7 "o4" + Name 24 "" + Name 32 "r01" + Name 35 "g_tTexbis" + Name 43 "r02" + Name 46 "g_tTexbus" + Name 54 "psout" + Name 64 "flattenTemp" + Name 67 "@entryPointOutput.Color" + Name 71 "@entryPointOutput.Depth" + Name 74 "g_tTexbfs_test" + Decorate 16(g_tTexbfs) DescriptorSet 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + MemberDecorate 22($Global) 4 Offset 48 + MemberDecorate 22($Global) 5 Offset 56 + MemberDecorate 22($Global) 6 Offset 64 + MemberDecorate 22($Global) 7 Offset 80 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 35(g_tTexbis) DescriptorSet 0 + Decorate 46(g_tTexbus) DescriptorSet 0 + Decorate 67(@entryPointOutput.Color) Location 0 + Decorate 71(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 74(g_tTexbfs_test) DescriptorSet 0 + Decorate 74(g_tTexbfs_test) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) Buffer sampled format:R32f + 15: TypePointer UniformConstant 14 + 16(g_tTexbfs): 15(ptr) Variable UniformConstant + 18: TypeInt 32 1 + 19: TypeVector 18(int) 2 + 20: TypeVector 18(int) 3 + 21: TypeVector 18(int) 4 + 22($Global): TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: 18(int) Constant 0 + 26: TypePointer Uniform 18(int) + 31: TypePointer Function 18(int) + 33: TypeImage 18(int) Buffer sampled format:R32i + 34: TypePointer UniformConstant 33 + 35(g_tTexbis): 34(ptr) Variable UniformConstant + 41: TypeInt 32 0 + 42: TypePointer Function 41(int) + 44: TypeImage 41(int) Buffer sampled format:R32ui + 45: TypePointer UniformConstant 44 + 46(g_tTexbus): 45(ptr) Variable UniformConstant + 50: TypeVector 41(int) 4 + 53: TypePointer Function 8(PS_OUTPUT) + 55: 6(float) Constant 1065353216 + 56: 7(fvec4) ConstantComposite 55 55 55 55 + 57: TypePointer Function 7(fvec4) + 59: 18(int) Constant 1 + 66: TypePointer Output 7(fvec4) +67(@entryPointOutput.Color): 66(ptr) Variable Output + 70: TypePointer Output 6(float) +71(@entryPointOutput.Depth): 70(ptr) Variable Output +74(g_tTexbfs_test): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 64(flattenTemp): 53(ptr) Variable Function + 65:8(PS_OUTPUT) FunctionCall 10(@main() + Store 64(flattenTemp) 65 + 68: 57(ptr) AccessChain 64(flattenTemp) 25 + 69: 7(fvec4) Load 68 + Store 67(@entryPointOutput.Color) 69 + 72: 12(ptr) AccessChain 64(flattenTemp) 59 + 73: 6(float) Load 72 + Store 71(@entryPointOutput.Depth) 73 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 32(r01): 31(ptr) Variable Function + 43(r02): 42(ptr) Variable Function + 54(psout): 53(ptr) Variable Function + 17: 14 Load 16(g_tTexbfs) + 27: 26(ptr) AccessChain 24 25 + 28: 18(int) Load 27 + 29: 7(fvec4) ImageFetch 17 28 + 30: 6(float) CompositeExtract 29 0 + Store 13(r00) 30 + 36: 33 Load 35(g_tTexbis) + 37: 26(ptr) AccessChain 24 25 + 38: 18(int) Load 37 + 39: 21(ivec4) ImageFetch 36 38 + 40: 18(int) CompositeExtract 39 0 + Store 32(r01) 40 + 47: 44 Load 46(g_tTexbus) + 48: 26(ptr) AccessChain 24 25 + 49: 18(int) Load 48 + 51: 50(ivec4) ImageFetch 47 49 + 52: 41(int) CompositeExtract 51 0 + Store 43(r02) 52 + 58: 57(ptr) AccessChain 54(psout) 25 + Store 58 56 + 60: 12(ptr) AccessChain 54(psout) 59 + Store 60 55 + 61:8(PS_OUTPUT) Load 54(psout) + ReturnValue 61 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out new file mode 100644 index 0000000000..d59ff6ff45 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -0,0 +1,860 @@ +hlsl.load.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset ( temp 4-component vector of float) +0:52 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:52 vector swizzle ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:52 o1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset ( temp 4-component vector of int) +0:53 'g_tTex1di4' ( uniform itexture1D) +0:53 vector swizzle ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:53 o1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset ( temp 4-component vector of uint) +0:54 'g_tTex1du4' ( uniform utexture1D) +0:54 vector swizzle ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:54 o1: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset ( temp 4-component vector of float) +0:57 'g_tTex2df4' ( uniform texture2D) +0:57 vector swizzle ( temp 2-component vector of int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index ( temp int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:57 o2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset ( temp 4-component vector of int) +0:58 'g_tTex2di4' ( uniform itexture2D) +0:58 vector swizzle ( temp 2-component vector of int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index ( temp int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:58 o2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset ( temp 4-component vector of uint) +0:59 'g_tTex2du4' ( uniform utexture2D) +0:59 vector swizzle ( temp 2-component vector of int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index ( temp int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:59 o2: direct index for structure ( uniform 2-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:62 textureFetchOffset ( temp 4-component vector of float) +0:62 'g_tTex3df4' ( uniform texture3D) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index ( temp int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:62 o3: direct index for structure ( uniform 3-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) +0:63 textureFetchOffset ( temp 4-component vector of int) +0:63 'g_tTex3di4' ( uniform itexture3D) +0:63 vector swizzle ( temp 3-component vector of int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index ( temp int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:63 o3: direct index for structure ( uniform 3-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) +0:64 textureFetchOffset ( temp 4-component vector of uint) +0:64 'g_tTex3du4' ( uniform utexture3D) +0:64 vector swizzle ( temp 3-component vector of int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index ( temp int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:64 o3: direct index for structure ( uniform 3-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) +0:72 move second child to first child ( temp 4-component vector of float) +0:72 Color: direct index for structure ( temp 4-component vector of float) +0:72 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:73 move second child to first child ( temp float) +0:73 Depth: direct index for structure ( temp float) +0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset ( temp 4-component vector of float) +0:52 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:52 vector swizzle ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index ( temp int) +0:52 c2: direct index for structure ( uniform 2-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) +0:52 Constant: +0:52 1 (const int) +0:52 o1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset ( temp 4-component vector of int) +0:53 'g_tTex1di4' ( uniform itexture1D) +0:53 vector swizzle ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index ( temp int) +0:53 c2: direct index for structure ( uniform 2-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) +0:53 Constant: +0:53 1 (const int) +0:53 o1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset ( temp 4-component vector of uint) +0:54 'g_tTex1du4' ( uniform utexture1D) +0:54 vector swizzle ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index ( temp int) +0:54 c2: direct index for structure ( uniform 2-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) +0:54 Constant: +0:54 1 (const int) +0:54 o1: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset ( temp 4-component vector of float) +0:57 'g_tTex2df4' ( uniform texture2D) +0:57 vector swizzle ( temp 2-component vector of int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index ( temp int) +0:57 c3: direct index for structure ( uniform 3-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 Constant: +0:57 2 (const int) +0:57 o2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset ( temp 4-component vector of int) +0:58 'g_tTex2di4' ( uniform itexture2D) +0:58 vector swizzle ( temp 2-component vector of int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index ( temp int) +0:58 c3: direct index for structure ( uniform 3-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 Constant: +0:58 2 (const int) +0:58 o2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset ( temp 4-component vector of uint) +0:59 'g_tTex2du4' ( uniform utexture2D) +0:59 vector swizzle ( temp 2-component vector of int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index ( temp int) +0:59 c3: direct index for structure ( uniform 3-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) +0:59 Constant: +0:59 2 (const int) +0:59 o2: direct index for structure ( uniform 2-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:62 textureFetchOffset ( temp 4-component vector of float) +0:62 'g_tTex3df4' ( uniform texture3D) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index ( temp int) +0:62 c4: direct index for structure ( uniform 4-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) +0:62 Constant: +0:62 3 (const int) +0:62 o3: direct index for structure ( uniform 3-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) +0:63 textureFetchOffset ( temp 4-component vector of int) +0:63 'g_tTex3di4' ( uniform itexture3D) +0:63 vector swizzle ( temp 3-component vector of int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index ( temp int) +0:63 c4: direct index for structure ( uniform 4-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) +0:63 Constant: +0:63 3 (const int) +0:63 o3: direct index for structure ( uniform 3-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) +0:64 textureFetchOffset ( temp 4-component vector of uint) +0:64 'g_tTex3du4' ( uniform utexture3D) +0:64 vector swizzle ( temp 3-component vector of int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index ( temp int) +0:64 c4: direct index for structure ( uniform 4-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) +0:64 Constant: +0:64 3 (const int) +0:64 o3: direct index for structure ( uniform 3-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) +0:72 move second child to first child ( temp 4-component vector of float) +0:72 Color: direct index for structure ( temp 4-component vector of float) +0:72 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:73 move second child to first child ( temp float) +0:73 Depth: direct index for structure ( temp float) +0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 201 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 155 159 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex1df4" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 38 "g_tTex1di4" + Name 49 "g_tTex1du4" + Name 61 "g_tTex2df4" + Name 78 "g_tTex2di4" + Name 90 "g_tTex2du4" + Name 102 "g_tTex3df4" + Name 118 "g_tTex3di4" + Name 130 "g_tTex3du4" + Name 141 "psout" + Name 152 "flattenTemp" + Name 155 "@entryPointOutput.Color" + Name 159 "@entryPointOutput.Depth" + Name 164 "g_sSamp" + Name 167 "g_tTexcdf4" + Name 170 "g_tTexcdi4" + Name 173 "g_tTexcdu4" + Name 176 "g_tTex1df4a" + Name 179 "g_tTex1di4a" + Name 182 "g_tTex1du4a" + Name 185 "g_tTex2df4a" + Name 188 "g_tTex2di4a" + Name 191 "g_tTex2du4a" + Name 194 "g_tTexcdf4a" + Name 197 "g_tTexcdi4a" + Name 200 "g_tTexcdu4a" + Decorate 14(g_tTex1df4) DescriptorSet 0 + Decorate 14(g_tTex1df4) Binding 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 38(g_tTex1di4) DescriptorSet 0 + Decorate 49(g_tTex1du4) DescriptorSet 0 + Decorate 61(g_tTex2df4) DescriptorSet 0 + Decorate 78(g_tTex2di4) DescriptorSet 0 + Decorate 90(g_tTex2du4) DescriptorSet 0 + Decorate 102(g_tTex3df4) DescriptorSet 0 + Decorate 118(g_tTex3di4) DescriptorSet 0 + Decorate 130(g_tTex3du4) DescriptorSet 0 + Decorate 155(@entryPointOutput.Color) Location 0 + Decorate 159(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 164(g_sSamp) DescriptorSet 0 + Decorate 164(g_sSamp) Binding 0 + Decorate 167(g_tTexcdf4) DescriptorSet 0 + Decorate 170(g_tTexcdi4) DescriptorSet 0 + Decorate 173(g_tTexcdu4) DescriptorSet 0 + Decorate 176(g_tTex1df4a) DescriptorSet 0 + Decorate 179(g_tTex1di4a) DescriptorSet 0 + Decorate 182(g_tTex1du4a) DescriptorSet 0 + Decorate 185(g_tTex2df4a) DescriptorSet 0 + Decorate 188(g_tTex2di4a) DescriptorSet 0 + Decorate 191(g_tTex2du4a) DescriptorSet 0 + Decorate 194(g_tTexcdf4a) DescriptorSet 0 + Decorate 197(g_tTexcdi4a) DescriptorSet 0 + Decorate 200(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 1D sampled format:Unknown + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 1 + 24: TypeInt 32 0 + 25: 24(int) Constant 0 + 26: TypePointer Uniform 16(int) + 29: 24(int) Constant 1 + 32: 16(int) Constant 4 + 36: TypeImage 16(int) 1D sampled format:Unknown + 37: TypePointer UniformConstant 36 + 38(g_tTex1di4): 37(ptr) Variable UniformConstant + 47: TypeImage 24(int) 1D sampled format:Unknown + 48: TypePointer UniformConstant 47 + 49(g_tTex1du4): 48(ptr) Variable UniformConstant + 57: TypeVector 24(int) 4 + 59: TypeImage 6(float) 2D sampled format:Unknown + 60: TypePointer UniformConstant 59 + 61(g_tTex2df4): 60(ptr) Variable UniformConstant + 63: 16(int) Constant 2 + 64: TypePointer Uniform 18(ivec3) + 68: 24(int) Constant 2 + 71: 16(int) Constant 5 + 72: TypePointer Uniform 17(ivec2) + 76: TypeImage 16(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2di4): 77(ptr) Variable UniformConstant + 88: TypeImage 24(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2du4): 89(ptr) Variable UniformConstant + 100: TypeImage 6(float) 3D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex3df4): 101(ptr) Variable UniformConstant + 104: 16(int) Constant 3 + 105: TypePointer Uniform 19(ivec4) + 109: 24(int) Constant 3 + 112: 16(int) Constant 6 + 116: TypeImage 16(int) 3D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex3di4): 117(ptr) Variable UniformConstant + 128: TypeImage 24(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3du4): 129(ptr) Variable UniformConstant + 140: TypePointer Function 8(PS_OUTPUT) + 142: 16(int) Constant 0 + 143: 6(float) Constant 1065353216 + 144: 7(fvec4) ConstantComposite 143 143 143 143 + 145: TypePointer Function 7(fvec4) + 147: TypePointer Function 6(float) + 154: TypePointer Output 7(fvec4) +155(@entryPointOutput.Color): 154(ptr) Variable Output + 158: TypePointer Output 6(float) +159(@entryPointOutput.Depth): 158(ptr) Variable Output + 162: TypeSampler + 163: TypePointer UniformConstant 162 + 164(g_sSamp): 163(ptr) Variable UniformConstant + 165: TypeImage 6(float) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdf4): 166(ptr) Variable UniformConstant + 168: TypeImage 16(int) Cube sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTexcdi4): 169(ptr) Variable UniformConstant + 171: TypeImage 24(int) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdu4): 172(ptr) Variable UniformConstant + 174: TypeImage 6(float) 1D array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTex1df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 16(int) 1D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTex1di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 24(int) 1D array sampled format:Unknown + 181: TypePointer UniformConstant 180 +182(g_tTex1du4a): 181(ptr) Variable UniformConstant + 183: TypeImage 6(float) 2D array sampled format:Unknown + 184: TypePointer UniformConstant 183 +185(g_tTex2df4a): 184(ptr) Variable UniformConstant + 186: TypeImage 16(int) 2D array sampled format:Unknown + 187: TypePointer UniformConstant 186 +188(g_tTex2di4a): 187(ptr) Variable UniformConstant + 189: TypeImage 24(int) 2D array sampled format:Unknown + 190: TypePointer UniformConstant 189 +191(g_tTex2du4a): 190(ptr) Variable UniformConstant + 192: TypeImage 6(float) Cube array sampled format:Unknown + 193: TypePointer UniformConstant 192 +194(g_tTexcdf4a): 193(ptr) Variable UniformConstant + 195: TypeImage 16(int) Cube array sampled format:Unknown + 196: TypePointer UniformConstant 195 +197(g_tTexcdi4a): 196(ptr) Variable UniformConstant + 198: TypeImage 24(int) Cube array sampled format:Unknown + 199: TypePointer UniformConstant 198 +200(g_tTexcdu4a): 199(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +152(flattenTemp): 140(ptr) Variable Function + 153:8(PS_OUTPUT) FunctionCall 10(@main() + Store 152(flattenTemp) 153 + 156: 145(ptr) AccessChain 152(flattenTemp) 142 + 157: 7(fvec4) Load 156 + Store 155(@entryPointOutput.Color) 157 + 160: 147(ptr) AccessChain 152(flattenTemp) 23 + 161: 6(float) Load 160 + Store 159(@entryPointOutput.Depth) 161 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 141(psout): 140(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4) + 27: 26(ptr) AccessChain 22 23 25 + 28: 16(int) Load 27 + 30: 26(ptr) AccessChain 22 23 29 + 31: 16(int) Load 30 + 33: 26(ptr) AccessChain 22 32 + 34: 16(int) Load 33 + 35: 7(fvec4) ImageFetch 15 28 Lod Offset 31 34 + 39: 36 Load 38(g_tTex1di4) + 40: 26(ptr) AccessChain 22 23 25 + 41: 16(int) Load 40 + 42: 26(ptr) AccessChain 22 23 29 + 43: 16(int) Load 42 + 44: 26(ptr) AccessChain 22 32 + 45: 16(int) Load 44 + 46: 19(ivec4) ImageFetch 39 41 Lod Offset 43 45 + 50: 47 Load 49(g_tTex1du4) + 51: 26(ptr) AccessChain 22 23 25 + 52: 16(int) Load 51 + 53: 26(ptr) AccessChain 22 23 29 + 54: 16(int) Load 53 + 55: 26(ptr) AccessChain 22 32 + 56: 16(int) Load 55 + 58: 57(ivec4) ImageFetch 50 52 Lod Offset 54 56 + 62: 59 Load 61(g_tTex2df4) + 65: 64(ptr) AccessChain 22 63 + 66: 18(ivec3) Load 65 + 67: 17(ivec2) VectorShuffle 66 66 0 1 + 69: 26(ptr) AccessChain 22 63 68 + 70: 16(int) Load 69 + 73: 72(ptr) AccessChain 22 71 + 74: 17(ivec2) Load 73 + 75: 7(fvec4) ImageFetch 62 67 Lod Offset 70 74 + 79: 76 Load 78(g_tTex2di4) + 80: 64(ptr) AccessChain 22 63 + 81: 18(ivec3) Load 80 + 82: 17(ivec2) VectorShuffle 81 81 0 1 + 83: 26(ptr) AccessChain 22 63 68 + 84: 16(int) Load 83 + 85: 72(ptr) AccessChain 22 71 + 86: 17(ivec2) Load 85 + 87: 19(ivec4) ImageFetch 79 82 Lod Offset 84 86 + 91: 88 Load 90(g_tTex2du4) + 92: 64(ptr) AccessChain 22 63 + 93: 18(ivec3) Load 92 + 94: 17(ivec2) VectorShuffle 93 93 0 1 + 95: 26(ptr) AccessChain 22 63 68 + 96: 16(int) Load 95 + 97: 72(ptr) AccessChain 22 71 + 98: 17(ivec2) Load 97 + 99: 57(ivec4) ImageFetch 91 94 Lod Offset 96 98 + 103: 100 Load 102(g_tTex3df4) + 106: 105(ptr) AccessChain 22 104 + 107: 19(ivec4) Load 106 + 108: 18(ivec3) VectorShuffle 107 107 0 1 2 + 110: 26(ptr) AccessChain 22 104 109 + 111: 16(int) Load 110 + 113: 64(ptr) AccessChain 22 112 + 114: 18(ivec3) Load 113 + 115: 7(fvec4) ImageFetch 103 108 Lod Offset 111 114 + 119: 116 Load 118(g_tTex3di4) + 120: 105(ptr) AccessChain 22 104 + 121: 19(ivec4) Load 120 + 122: 18(ivec3) VectorShuffle 121 121 0 1 2 + 123: 26(ptr) AccessChain 22 104 109 + 124: 16(int) Load 123 + 125: 64(ptr) AccessChain 22 112 + 126: 18(ivec3) Load 125 + 127: 19(ivec4) ImageFetch 119 122 Lod Offset 124 126 + 131: 128 Load 130(g_tTex3du4) + 132: 105(ptr) AccessChain 22 104 + 133: 19(ivec4) Load 132 + 134: 18(ivec3) VectorShuffle 133 133 0 1 2 + 135: 26(ptr) AccessChain 22 104 109 + 136: 16(int) Load 135 + 137: 64(ptr) AccessChain 22 112 + 138: 18(ivec3) Load 137 + 139: 57(ivec4) ImageFetch 131 134 Lod Offset 136 138 + 146: 145(ptr) AccessChain 141(psout) 142 + Store 146 144 + 148: 147(ptr) AccessChain 141(psout) 23 + Store 148 143 + 149:8(PS_OUTPUT) Load 141(psout) + ReturnValue 149 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..b472462aa5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -0,0 +1,707 @@ +hlsl.load.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset ( temp 4-component vector of float) +0:52 'g_tTex1df4a' ( uniform texture1DArray) +0:52 vector swizzle ( temp 2-component vector of int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index ( temp int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:52 o1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset ( temp 4-component vector of int) +0:53 'g_tTex1di4a' ( uniform itexture1DArray) +0:53 vector swizzle ( temp 2-component vector of int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index ( temp int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:53 o1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset ( temp 4-component vector of uint) +0:54 'g_tTex1du4a' ( uniform utexture1DArray) +0:54 vector swizzle ( temp 2-component vector of int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index ( temp int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:54 o1: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset ( temp 4-component vector of float) +0:57 'g_tTex2df4a' ( uniform texture2DArray) +0:57 vector swizzle ( temp 3-component vector of int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index ( temp int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:57 o2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset ( temp 4-component vector of int) +0:58 'g_tTex2di4a' ( uniform itexture2DArray) +0:58 vector swizzle ( temp 3-component vector of int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index ( temp int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:58 o2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset ( temp 4-component vector of uint) +0:59 'g_tTex2du4a' ( uniform utexture2DArray) +0:59 vector swizzle ( temp 3-component vector of int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index ( temp int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:59 o2: direct index for structure ( uniform 2-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:65 move second child to first child ( temp 4-component vector of float) +0:65 Color: direct index for structure ( temp 4-component vector of float) +0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:66 move second child to first child ( temp float) +0:66 Depth: direct index for structure ( temp float) +0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:66 Constant: +0:66 1 (const int) +0:66 Constant: +0:66 1.000000 +0:68 Branch: Return with expression +0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset ( temp 4-component vector of float) +0:52 'g_tTex1df4a' ( uniform texture1DArray) +0:52 vector swizzle ( temp 2-component vector of int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index ( temp int) +0:52 c3: direct index for structure ( uniform 3-component vector of int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) +0:52 Constant: +0:52 2 (const int) +0:52 o1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset ( temp 4-component vector of int) +0:53 'g_tTex1di4a' ( uniform itexture1DArray) +0:53 vector swizzle ( temp 2-component vector of int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index ( temp int) +0:53 c3: direct index for structure ( uniform 3-component vector of int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) +0:53 Constant: +0:53 2 (const int) +0:53 o1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset ( temp 4-component vector of uint) +0:54 'g_tTex1du4a' ( uniform utexture1DArray) +0:54 vector swizzle ( temp 2-component vector of int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index ( temp int) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:54 Constant: +0:54 2 (const int) +0:54 o1: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset ( temp 4-component vector of float) +0:57 'g_tTex2df4a' ( uniform texture2DArray) +0:57 vector swizzle ( temp 3-component vector of int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index ( temp int) +0:57 c4: direct index for structure ( uniform 4-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) +0:57 Constant: +0:57 3 (const int) +0:57 o2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset ( temp 4-component vector of int) +0:58 'g_tTex2di4a' ( uniform itexture2DArray) +0:58 vector swizzle ( temp 3-component vector of int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index ( temp int) +0:58 c4: direct index for structure ( uniform 4-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) +0:58 Constant: +0:58 3 (const int) +0:58 o2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset ( temp 4-component vector of uint) +0:59 'g_tTex2du4a' ( uniform utexture2DArray) +0:59 vector swizzle ( temp 3-component vector of int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index ( temp int) +0:59 c4: direct index for structure ( uniform 4-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) +0:59 Constant: +0:59 3 (const int) +0:59 o2: direct index for structure ( uniform 2-component vector of int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:65 move second child to first child ( temp 4-component vector of float) +0:65 Color: direct index for structure ( temp 4-component vector of float) +0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:66 move second child to first child ( temp float) +0:66 Depth: direct index for structure ( temp float) +0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:66 Constant: +0:66 1 (const int) +0:66 Constant: +0:66 1.000000 +0:68 Branch: Return with expression +0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( ( temp void) +0:48 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:48 Depth: direct index for structure ( temp float) +0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 174 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 119 123 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex1df4a" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 39 "g_tTex1di4a" + Name 51 "g_tTex1du4a" + Name 64 "g_tTex2df4a" + Name 81 "g_tTex2di4a" + Name 93 "g_tTex2du4a" + Name 104 "psout" + Name 116 "flattenTemp" + Name 119 "@entryPointOutput.Color" + Name 123 "@entryPointOutput.Depth" + Name 128 "g_sSamp" + Name 131 "g_tTex1df4" + Name 134 "g_tTex1di4" + Name 137 "g_tTex1du4" + Name 140 "g_tTex2df4" + Name 143 "g_tTex2di4" + Name 146 "g_tTex2du4" + Name 149 "g_tTex3df4" + Name 152 "g_tTex3di4" + Name 155 "g_tTex3du4" + Name 158 "g_tTexcdf4" + Name 161 "g_tTexcdi4" + Name 164 "g_tTexcdu4" + Name 167 "g_tTexcdf4a" + Name 170 "g_tTexcdi4a" + Name 173 "g_tTexcdu4a" + Decorate 14(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 39(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 64(g_tTex2df4a) DescriptorSet 0 + Decorate 81(g_tTex2di4a) DescriptorSet 0 + Decorate 93(g_tTex2du4a) DescriptorSet 0 + Decorate 119(@entryPointOutput.Color) Location 0 + Decorate 123(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 128(g_sSamp) DescriptorSet 0 + Decorate 128(g_sSamp) Binding 0 + Decorate 131(g_tTex1df4) DescriptorSet 0 + Decorate 131(g_tTex1df4) Binding 0 + Decorate 134(g_tTex1di4) DescriptorSet 0 + Decorate 137(g_tTex1du4) DescriptorSet 0 + Decorate 140(g_tTex2df4) DescriptorSet 0 + Decorate 143(g_tTex2di4) DescriptorSet 0 + Decorate 146(g_tTex2du4) DescriptorSet 0 + Decorate 149(g_tTex3df4) DescriptorSet 0 + Decorate 152(g_tTex3di4) DescriptorSet 0 + Decorate 155(g_tTex3du4) DescriptorSet 0 + Decorate 158(g_tTexcdf4) DescriptorSet 0 + Decorate 161(g_tTexcdi4) DescriptorSet 0 + Decorate 164(g_tTexcdu4) DescriptorSet 0 + Decorate 167(g_tTexcdf4a) DescriptorSet 0 + Decorate 170(g_tTexcdi4a) DescriptorSet 0 + Decorate 173(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 1D array sampled format:Unknown + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4a): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 2 + 24: TypePointer Uniform 18(ivec3) + 28: TypeInt 32 0 + 29: 28(int) Constant 2 + 30: TypePointer Uniform 16(int) + 33: 16(int) Constant 4 + 37: TypeImage 16(int) 1D array sampled format:Unknown + 38: TypePointer UniformConstant 37 + 39(g_tTex1di4a): 38(ptr) Variable UniformConstant + 49: TypeImage 28(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 60: TypeVector 28(int) 4 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4a): 63(ptr) Variable UniformConstant + 66: 16(int) Constant 3 + 67: TypePointer Uniform 19(ivec4) + 71: 28(int) Constant 3 + 74: 16(int) Constant 5 + 75: TypePointer Uniform 17(ivec2) + 79: TypeImage 16(int) 2D array sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex2di4a): 80(ptr) Variable UniformConstant + 91: TypeImage 28(int) 2D array sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex2du4a): 92(ptr) Variable UniformConstant + 103: TypePointer Function 8(PS_OUTPUT) + 105: 16(int) Constant 0 + 106: 6(float) Constant 1065353216 + 107: 7(fvec4) ConstantComposite 106 106 106 106 + 108: TypePointer Function 7(fvec4) + 110: 16(int) Constant 1 + 111: TypePointer Function 6(float) + 118: TypePointer Output 7(fvec4) +119(@entryPointOutput.Color): 118(ptr) Variable Output + 122: TypePointer Output 6(float) +123(@entryPointOutput.Depth): 122(ptr) Variable Output + 126: TypeSampler + 127: TypePointer UniformConstant 126 + 128(g_sSamp): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) 1D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex1df4): 130(ptr) Variable UniformConstant + 132: TypeImage 16(int) 1D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex1di4): 133(ptr) Variable UniformConstant + 135: TypeImage 28(int) 1D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex1du4): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) 2D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex2df4): 139(ptr) Variable UniformConstant + 141: TypeImage 16(int) 2D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex2di4): 142(ptr) Variable UniformConstant + 144: TypeImage 28(int) 2D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex2du4): 145(ptr) Variable UniformConstant + 147: TypeImage 6(float) 3D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex3df4): 148(ptr) Variable UniformConstant + 150: TypeImage 16(int) 3D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex3di4): 151(ptr) Variable UniformConstant + 153: TypeImage 28(int) 3D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex3du4): 154(ptr) Variable UniformConstant + 156: TypeImage 6(float) Cube sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTexcdf4): 157(ptr) Variable UniformConstant + 159: TypeImage 16(int) Cube sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTexcdi4): 160(ptr) Variable UniformConstant + 162: TypeImage 28(int) Cube sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTexcdu4): 163(ptr) Variable UniformConstant + 165: TypeImage 6(float) Cube array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTexcdf4a): 166(ptr) Variable UniformConstant + 168: TypeImage 16(int) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdi4a): 169(ptr) Variable UniformConstant + 171: TypeImage 28(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdu4a): 172(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +116(flattenTemp): 103(ptr) Variable Function + 117:8(PS_OUTPUT) FunctionCall 10(@main() + Store 116(flattenTemp) 117 + 120: 108(ptr) AccessChain 116(flattenTemp) 105 + 121: 7(fvec4) Load 120 + Store 119(@entryPointOutput.Color) 121 + 124: 111(ptr) AccessChain 116(flattenTemp) 110 + 125: 6(float) Load 124 + Store 123(@entryPointOutput.Depth) 125 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 104(psout): 103(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4a) + 25: 24(ptr) AccessChain 22 23 + 26: 18(ivec3) Load 25 + 27: 17(ivec2) VectorShuffle 26 26 0 1 + 31: 30(ptr) AccessChain 22 23 29 + 32: 16(int) Load 31 + 34: 30(ptr) AccessChain 22 33 + 35: 16(int) Load 34 + 36: 7(fvec4) ImageFetch 15 27 Lod Offset 32 35 + 40: 37 Load 39(g_tTex1di4a) + 41: 24(ptr) AccessChain 22 23 + 42: 18(ivec3) Load 41 + 43: 17(ivec2) VectorShuffle 42 42 0 1 + 44: 30(ptr) AccessChain 22 23 29 + 45: 16(int) Load 44 + 46: 30(ptr) AccessChain 22 33 + 47: 16(int) Load 46 + 48: 19(ivec4) ImageFetch 40 43 Lod Offset 45 47 + 52: 49 Load 51(g_tTex1du4a) + 53: 24(ptr) AccessChain 22 23 + 54: 18(ivec3) Load 53 + 55: 17(ivec2) VectorShuffle 54 54 0 1 + 56: 30(ptr) AccessChain 22 23 29 + 57: 16(int) Load 56 + 58: 30(ptr) AccessChain 22 33 + 59: 16(int) Load 58 + 61: 60(ivec4) ImageFetch 52 55 Lod Offset 57 59 + 65: 62 Load 64(g_tTex2df4a) + 68: 67(ptr) AccessChain 22 66 + 69: 19(ivec4) Load 68 + 70: 18(ivec3) VectorShuffle 69 69 0 1 2 + 72: 30(ptr) AccessChain 22 66 71 + 73: 16(int) Load 72 + 76: 75(ptr) AccessChain 22 74 + 77: 17(ivec2) Load 76 + 78: 7(fvec4) ImageFetch 65 70 Lod Offset 73 77 + 82: 79 Load 81(g_tTex2di4a) + 83: 67(ptr) AccessChain 22 66 + 84: 19(ivec4) Load 83 + 85: 18(ivec3) VectorShuffle 84 84 0 1 2 + 86: 30(ptr) AccessChain 22 66 71 + 87: 16(int) Load 86 + 88: 75(ptr) AccessChain 22 74 + 89: 17(ivec2) Load 88 + 90: 19(ivec4) ImageFetch 82 85 Lod Offset 87 89 + 94: 91 Load 93(g_tTex2du4a) + 95: 67(ptr) AccessChain 22 66 + 96: 19(ivec4) Load 95 + 97: 18(ivec3) VectorShuffle 96 96 0 1 2 + 98: 30(ptr) AccessChain 22 66 71 + 99: 16(int) Load 98 + 100: 75(ptr) AccessChain 22 74 + 101: 17(ivec2) Load 100 + 102: 60(ivec4) ImageFetch 94 97 Lod Offset 99 101 + 109: 108(ptr) AccessChain 104(psout) 105 + Store 109 107 + 112: 111(ptr) AccessChain 104(psout) 110 + Store 112 106 + 113:8(PS_OUTPUT) Load 104(psout) + ReturnValue 113 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out new file mode 100644 index 0000000000..f134901271 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -0,0 +1,214 @@ +hlsl.load.rwbuffer.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad ( temp 4-component vector of float) +0:25 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:25 c1: direct index for structure ( uniform int) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad ( temp 4-component vector of uint) +0:26 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:26 c1: direct index for structure ( uniform int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad ( temp 4-component vector of int) +0:27 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:27 c1: direct index for structure ( uniform int) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child ( temp 4-component vector of float) +0:29 Color: direct index for structure ( temp 4-component vector of float) +0:29 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Branch: Return with expression +0:31 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:? Linker Objects +0:? 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:? 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:? 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad ( temp 4-component vector of float) +0:25 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:25 c1: direct index for structure ( uniform int) +0:25 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad ( temp 4-component vector of uint) +0:26 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:26 c1: direct index for structure ( uniform int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad ( temp 4-component vector of int) +0:27 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:27 c1: direct index for structure ( uniform int) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child ( temp 4-component vector of float) +0:29 Color: direct index for structure ( temp 4-component vector of float) +0:29 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Branch: Return with expression +0:31 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:? Linker Objects +0:? 'g_tBuffF' (layout( rgba32f) uniform imageBuffer) +0:? 'g_tBuffI' (layout( rgba32i) uniform iimageBuffer) +0:? 'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 57 + + Capability Shader + Capability ImageBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 54 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 14 "g_tBuffF" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 31 "g_tBuffU" + Name 39 "g_tBuffI" + Name 45 "psout" + Name 54 "@entryPointOutput.Color" + Decorate 14(g_tBuffF) DescriptorSet 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 31(g_tBuffU) DescriptorSet 0 + Decorate 39(g_tBuffI) DescriptorSet 0 + Decorate 54(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) Buffer nonsampled format:Rgba32f + 13: TypePointer UniformConstant 12 + 14(g_tBuffF): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 0 + 24: TypePointer Uniform 16(int) + 28: TypeInt 32 0 + 29: TypeImage 28(int) Buffer nonsampled format:Rgba32ui + 30: TypePointer UniformConstant 29 + 31(g_tBuffU): 30(ptr) Variable UniformConstant + 35: TypeVector 28(int) 4 + 37: TypeImage 16(int) Buffer nonsampled format:Rgba32i + 38: TypePointer UniformConstant 37 + 39(g_tBuffI): 38(ptr) Variable UniformConstant + 44: TypePointer Function 8(PS_OUTPUT) + 46: 6(float) Constant 1065353216 + 47: 7(fvec4) ConstantComposite 46 46 46 46 + 48: TypePointer Function 7(fvec4) + 53: TypePointer Output 7(fvec4) +54(@entryPointOutput.Color): 53(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 55:8(PS_OUTPUT) FunctionCall 10(@main() + 56: 7(fvec4) CompositeExtract 55 0 + Store 54(@entryPointOutput.Color) 56 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 45(psout): 44(ptr) Variable Function + 15: 12 Load 14(g_tBuffF) + 25: 24(ptr) AccessChain 22 23 + 26: 16(int) Load 25 + 27: 7(fvec4) ImageRead 15 26 + 32: 29 Load 31(g_tBuffU) + 33: 24(ptr) AccessChain 22 23 + 34: 16(int) Load 33 + 36: 35(ivec4) ImageRead 32 34 + 40: 37 Load 39(g_tBuffI) + 41: 24(ptr) AccessChain 22 23 + 42: 16(int) Load 41 + 43: 19(ivec4) ImageRead 40 42 + 49: 48(ptr) AccessChain 45(psout) 23 + Store 49 47 + 50:8(PS_OUTPUT) Load 45(psout) + ReturnValue 50 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out new file mode 100644 index 0000000000..de31ee0246 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -0,0 +1,410 @@ +hlsl.load.rwtexture.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:40 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad ( temp 4-component vector of float) +0:44 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:44 c2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad ( temp 4-component vector of int) +0:45 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:45 c2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad ( temp 4-component vector of uint) +0:46 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:46 c2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad ( temp 4-component vector of float) +0:49 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:49 c3: direct index for structure ( uniform 3-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad ( temp 4-component vector of int) +0:50 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:50 c3: direct index for structure ( uniform 3-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad ( temp 4-component vector of uint) +0:51 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:51 c3: direct index for structure ( uniform 3-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child ( temp 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child ( temp float) +0:54 Depth: direct index for structure ( temp float) +0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Branch: Return with expression +0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Definition: main( ( temp void) +0:40 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:40 Depth: direct index for structure ( temp float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:40 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad ( temp 4-component vector of float) +0:44 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:44 c2: direct index for structure ( uniform 2-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad ( temp 4-component vector of int) +0:45 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:45 c2: direct index for structure ( uniform 2-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad ( temp 4-component vector of uint) +0:46 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:46 c2: direct index for structure ( uniform 2-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad ( temp 4-component vector of float) +0:49 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:49 c3: direct index for structure ( uniform 3-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad ( temp 4-component vector of int) +0:50 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:50 c3: direct index for structure ( uniform 3-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad ( temp 4-component vector of uint) +0:51 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:51 c3: direct index for structure ( uniform 3-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child ( temp 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child ( temp float) +0:54 Depth: direct index for structure ( temp float) +0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Branch: Return with expression +0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Definition: main( ( temp void) +0:40 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:40 Depth: direct index for structure ( temp float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 119 + + Capability Shader + Capability Image1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 82 86 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex1df4a" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 30 "g_tTex1di4a" + Name 38 "g_tTex1du4a" + Name 46 "g_tTex2df4a" + Name 55 "g_tTex2di4a" + Name 62 "g_tTex2du4a" + Name 68 "psout" + Name 79 "flattenTemp" + Name 82 "@entryPointOutput.Color" + Name 86 "@entryPointOutput.Depth" + Name 91 "g_sSamp" + Name 94 "g_tTex1df4" + Name 97 "g_tTex1di4" + Name 100 "g_tTex1du4" + Name 103 "g_tTex2df4" + Name 106 "g_tTex2di4" + Name 109 "g_tTex2du4" + Name 112 "g_tTex3df4" + Name 115 "g_tTex3di4" + Name 118 "g_tTex3du4" + Decorate 14(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 30(g_tTex1di4a) DescriptorSet 0 + Decorate 38(g_tTex1du4a) DescriptorSet 0 + Decorate 46(g_tTex2df4a) DescriptorSet 0 + Decorate 55(g_tTex2di4a) DescriptorSet 0 + Decorate 62(g_tTex2du4a) DescriptorSet 0 + Decorate 82(@entryPointOutput.Color) Location 0 + Decorate 86(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 91(g_sSamp) DescriptorSet 0 + Decorate 91(g_sSamp) Binding 0 + Decorate 94(g_tTex1df4) DescriptorSet 0 + Decorate 94(g_tTex1df4) Binding 0 + Decorate 97(g_tTex1di4) DescriptorSet 0 + Decorate 100(g_tTex1du4) DescriptorSet 0 + Decorate 103(g_tTex2df4) DescriptorSet 0 + Decorate 106(g_tTex2di4) DescriptorSet 0 + Decorate 109(g_tTex2du4) DescriptorSet 0 + Decorate 112(g_tTex3df4) DescriptorSet 0 + Decorate 115(g_tTex3di4) DescriptorSet 0 + Decorate 118(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4a): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 1 + 24: TypePointer Uniform 17(ivec2) + 28: TypeImage 16(int) 1D array nonsampled format:Rgba32i + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4a): 29(ptr) Variable UniformConstant + 35: TypeInt 32 0 + 36: TypeImage 35(int) 1D array nonsampled format:Rgba32ui + 37: TypePointer UniformConstant 36 + 38(g_tTex1du4a): 37(ptr) Variable UniformConstant + 42: TypeVector 35(int) 4 + 44: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 45: TypePointer UniformConstant 44 + 46(g_tTex2df4a): 45(ptr) Variable UniformConstant + 48: 16(int) Constant 2 + 49: TypePointer Uniform 18(ivec3) + 53: TypeImage 16(int) 2D array nonsampled format:Rgba32i + 54: TypePointer UniformConstant 53 + 55(g_tTex2di4a): 54(ptr) Variable UniformConstant + 60: TypeImage 35(int) 2D array nonsampled format:Rgba32ui + 61: TypePointer UniformConstant 60 + 62(g_tTex2du4a): 61(ptr) Variable UniformConstant + 67: TypePointer Function 8(PS_OUTPUT) + 69: 16(int) Constant 0 + 70: 6(float) Constant 1065353216 + 71: 7(fvec4) ConstantComposite 70 70 70 70 + 72: TypePointer Function 7(fvec4) + 74: TypePointer Function 6(float) + 81: TypePointer Output 7(fvec4) +82(@entryPointOutput.Color): 81(ptr) Variable Output + 85: TypePointer Output 6(float) +86(@entryPointOutput.Depth): 85(ptr) Variable Output + 89: TypeSampler + 90: TypePointer UniformConstant 89 + 91(g_sSamp): 90(ptr) Variable UniformConstant + 92: TypeImage 6(float) 1D nonsampled format:Rgba32f + 93: TypePointer UniformConstant 92 + 94(g_tTex1df4): 93(ptr) Variable UniformConstant + 95: TypeImage 16(int) 1D nonsampled format:Rgba32i + 96: TypePointer UniformConstant 95 + 97(g_tTex1di4): 96(ptr) Variable UniformConstant + 98: TypeImage 35(int) 1D nonsampled format:Rgba32ui + 99: TypePointer UniformConstant 98 + 100(g_tTex1du4): 99(ptr) Variable UniformConstant + 101: TypeImage 6(float) 2D nonsampled format:Rgba32f + 102: TypePointer UniformConstant 101 + 103(g_tTex2df4): 102(ptr) Variable UniformConstant + 104: TypeImage 16(int) 2D nonsampled format:Rgba32i + 105: TypePointer UniformConstant 104 + 106(g_tTex2di4): 105(ptr) Variable UniformConstant + 107: TypeImage 35(int) 2D nonsampled format:Rgba32ui + 108: TypePointer UniformConstant 107 + 109(g_tTex2du4): 108(ptr) Variable UniformConstant + 110: TypeImage 6(float) 3D nonsampled format:Rgba32f + 111: TypePointer UniformConstant 110 + 112(g_tTex3df4): 111(ptr) Variable UniformConstant + 113: TypeImage 16(int) 3D nonsampled format:Rgba32i + 114: TypePointer UniformConstant 113 + 115(g_tTex3di4): 114(ptr) Variable UniformConstant + 116: TypeImage 35(int) 3D nonsampled format:Rgba32ui + 117: TypePointer UniformConstant 116 + 118(g_tTex3du4): 117(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 79(flattenTemp): 67(ptr) Variable Function + 80:8(PS_OUTPUT) FunctionCall 10(@main() + Store 79(flattenTemp) 80 + 83: 72(ptr) AccessChain 79(flattenTemp) 69 + 84: 7(fvec4) Load 83 + Store 82(@entryPointOutput.Color) 84 + 87: 74(ptr) AccessChain 79(flattenTemp) 23 + 88: 6(float) Load 87 + Store 86(@entryPointOutput.Depth) 88 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 68(psout): 67(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4a) + 25: 24(ptr) AccessChain 22 23 + 26: 17(ivec2) Load 25 + 27: 7(fvec4) ImageRead 15 26 + 31: 28 Load 30(g_tTex1di4a) + 32: 24(ptr) AccessChain 22 23 + 33: 17(ivec2) Load 32 + 34: 19(ivec4) ImageRead 31 33 + 39: 36 Load 38(g_tTex1du4a) + 40: 24(ptr) AccessChain 22 23 + 41: 17(ivec2) Load 40 + 43: 42(ivec4) ImageRead 39 41 + 47: 44 Load 46(g_tTex2df4a) + 50: 49(ptr) AccessChain 22 48 + 51: 18(ivec3) Load 50 + 52: 7(fvec4) ImageRead 47 51 + 56: 53 Load 55(g_tTex2di4a) + 57: 49(ptr) AccessChain 22 48 + 58: 18(ivec3) Load 57 + 59: 19(ivec4) ImageRead 56 58 + 63: 60 Load 62(g_tTex2du4a) + 64: 49(ptr) AccessChain 22 48 + 65: 18(ivec3) Load 64 + 66: 42(ivec4) ImageRead 63 65 + 73: 72(ptr) AccessChain 68(psout) 69 + Store 73 71 + 75: 74(ptr) AccessChain 68(psout) 23 + Store 75 70 + 76:8(PS_OUTPUT) Load 68(psout) + ReturnValue 76 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out new file mode 100644 index 0000000000..68044aa587 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -0,0 +1,459 @@ +hlsl.load.rwtexture.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:40 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad ( temp 4-component vector of float) +0:44 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:44 c1: direct index for structure ( uniform int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad ( temp 4-component vector of int) +0:45 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:45 c1: direct index for structure ( uniform int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad ( temp 4-component vector of uint) +0:46 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:46 c1: direct index for structure ( uniform int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad ( temp 4-component vector of float) +0:49 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:49 c2: direct index for structure ( uniform 2-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad ( temp 4-component vector of int) +0:50 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:50 c2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad ( temp 4-component vector of uint) +0:51 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:51 c2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad ( temp 4-component vector of float) +0:54 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad ( temp 4-component vector of int) +0:55 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:55 c3: direct index for structure ( uniform 3-component vector of int) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad ( temp 4-component vector of uint) +0:56 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:56 c3: direct index for structure ( uniform 3-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child ( temp 4-component vector of float) +0:58 Color: direct index for structure ( temp 4-component vector of float) +0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child ( temp float) +0:59 Depth: direct index for structure ( temp float) +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Branch: Return with expression +0:61 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Definition: main( ( temp void) +0:40 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:40 Depth: direct index for structure ( temp float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:40 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad ( temp 4-component vector of float) +0:44 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:44 c1: direct index for structure ( uniform int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad ( temp 4-component vector of int) +0:45 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:45 c1: direct index for structure ( uniform int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad ( temp 4-component vector of uint) +0:46 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:46 c1: direct index for structure ( uniform int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad ( temp 4-component vector of float) +0:49 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:49 c2: direct index for structure ( uniform 2-component vector of int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad ( temp 4-component vector of int) +0:50 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:50 c2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad ( temp 4-component vector of uint) +0:51 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:51 c2: direct index for structure ( uniform 2-component vector of int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad ( temp 4-component vector of float) +0:54 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:54 c3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad ( temp 4-component vector of int) +0:55 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:55 c3: direct index for structure ( uniform 3-component vector of int) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad ( temp 4-component vector of uint) +0:56 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:56 c3: direct index for structure ( uniform 3-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child ( temp 4-component vector of float) +0:58 Color: direct index for structure ( temp 4-component vector of float) +0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child ( temp float) +0:59 Depth: direct index for structure ( temp float) +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Branch: Return with expression +0:61 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Definition: main( ( temp void) +0:40 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:40 Color: direct index for structure ( temp 4-component vector of float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:40 Depth: direct index for structure ( temp float) +0:40 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 132 + + Capability Shader + Capability Image1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 104 108 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "g_tTex1df4" + Name 20 "$Global" + MemberName 20($Global) 0 "c1" + MemberName 20($Global) 1 "c2" + MemberName 20($Global) 2 "c3" + MemberName 20($Global) 3 "c4" + MemberName 20($Global) 4 "o1" + MemberName 20($Global) 5 "o2" + MemberName 20($Global) 6 "o3" + MemberName 20($Global) 7 "o4" + Name 22 "" + Name 30 "g_tTex1di4" + Name 38 "g_tTex1du4" + Name 46 "g_tTex2df4" + Name 55 "g_tTex2di4" + Name 62 "g_tTex2du4" + Name 69 "g_tTex3df4" + Name 78 "g_tTex3di4" + Name 85 "g_tTex3du4" + Name 91 "psout" + Name 101 "flattenTemp" + Name 104 "@entryPointOutput.Color" + Name 108 "@entryPointOutput.Depth" + Name 113 "g_sSamp" + Name 116 "g_tTex1df4a" + Name 119 "g_tTex1di4a" + Name 122 "g_tTex1du4a" + Name 125 "g_tTex2df4a" + Name 128 "g_tTex2di4a" + Name 131 "g_tTex2du4a" + Decorate 14(g_tTex1df4) DescriptorSet 0 + Decorate 14(g_tTex1df4) Binding 0 + MemberDecorate 20($Global) 0 Offset 0 + MemberDecorate 20($Global) 1 Offset 8 + MemberDecorate 20($Global) 2 Offset 16 + MemberDecorate 20($Global) 3 Offset 32 + MemberDecorate 20($Global) 4 Offset 48 + MemberDecorate 20($Global) 5 Offset 56 + MemberDecorate 20($Global) 6 Offset 64 + MemberDecorate 20($Global) 7 Offset 80 + Decorate 20($Global) Block + Decorate 22 DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 38(g_tTex1du4) DescriptorSet 0 + Decorate 46(g_tTex2df4) DescriptorSet 0 + Decorate 55(g_tTex2di4) DescriptorSet 0 + Decorate 62(g_tTex2du4) DescriptorSet 0 + Decorate 69(g_tTex3df4) DescriptorSet 0 + Decorate 78(g_tTex3di4) DescriptorSet 0 + Decorate 85(g_tTex3du4) DescriptorSet 0 + Decorate 104(@entryPointOutput.Color) Location 0 + Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 113(g_sSamp) DescriptorSet 0 + Decorate 113(g_sSamp) Binding 0 + Decorate 116(g_tTex1df4a) DescriptorSet 0 + Decorate 119(g_tTex1di4a) DescriptorSet 0 + Decorate 122(g_tTex1du4a) DescriptorSet 0 + Decorate 125(g_tTex2df4a) DescriptorSet 0 + Decorate 128(g_tTex2di4a) DescriptorSet 0 + Decorate 131(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeImage 6(float) 1D nonsampled format:Rgba32f + 13: TypePointer UniformConstant 12 + 14(g_tTex1df4): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 16(int) 4 + 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) + 21: TypePointer Uniform 20($Global) + 22: 21(ptr) Variable Uniform + 23: 16(int) Constant 0 + 24: TypePointer Uniform 16(int) + 28: TypeImage 16(int) 1D nonsampled format:Rgba32i + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 35: TypeInt 32 0 + 36: TypeImage 35(int) 1D nonsampled format:Rgba32ui + 37: TypePointer UniformConstant 36 + 38(g_tTex1du4): 37(ptr) Variable UniformConstant + 42: TypeVector 35(int) 4 + 44: TypeImage 6(float) 2D nonsampled format:Rgba32f + 45: TypePointer UniformConstant 44 + 46(g_tTex2df4): 45(ptr) Variable UniformConstant + 48: 16(int) Constant 1 + 49: TypePointer Uniform 17(ivec2) + 53: TypeImage 16(int) 2D nonsampled format:Rgba32i + 54: TypePointer UniformConstant 53 + 55(g_tTex2di4): 54(ptr) Variable UniformConstant + 60: TypeImage 35(int) 2D nonsampled format:Rgba32ui + 61: TypePointer UniformConstant 60 + 62(g_tTex2du4): 61(ptr) Variable UniformConstant + 67: TypeImage 6(float) 3D nonsampled format:Rgba32f + 68: TypePointer UniformConstant 67 + 69(g_tTex3df4): 68(ptr) Variable UniformConstant + 71: 16(int) Constant 2 + 72: TypePointer Uniform 18(ivec3) + 76: TypeImage 16(int) 3D nonsampled format:Rgba32i + 77: TypePointer UniformConstant 76 + 78(g_tTex3di4): 77(ptr) Variable UniformConstant + 83: TypeImage 35(int) 3D nonsampled format:Rgba32ui + 84: TypePointer UniformConstant 83 + 85(g_tTex3du4): 84(ptr) Variable UniformConstant + 90: TypePointer Function 8(PS_OUTPUT) + 92: 6(float) Constant 1065353216 + 93: 7(fvec4) ConstantComposite 92 92 92 92 + 94: TypePointer Function 7(fvec4) + 96: TypePointer Function 6(float) + 103: TypePointer Output 7(fvec4) +104(@entryPointOutput.Color): 103(ptr) Variable Output + 107: TypePointer Output 6(float) +108(@entryPointOutput.Depth): 107(ptr) Variable Output + 111: TypeSampler + 112: TypePointer UniformConstant 111 + 113(g_sSamp): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 115: TypePointer UniformConstant 114 +116(g_tTex1df4a): 115(ptr) Variable UniformConstant + 117: TypeImage 16(int) 1D array nonsampled format:Rgba32i + 118: TypePointer UniformConstant 117 +119(g_tTex1di4a): 118(ptr) Variable UniformConstant + 120: TypeImage 35(int) 1D array nonsampled format:Rgba32ui + 121: TypePointer UniformConstant 120 +122(g_tTex1du4a): 121(ptr) Variable UniformConstant + 123: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 124: TypePointer UniformConstant 123 +125(g_tTex2df4a): 124(ptr) Variable UniformConstant + 126: TypeImage 16(int) 2D array nonsampled format:Rgba32i + 127: TypePointer UniformConstant 126 +128(g_tTex2di4a): 127(ptr) Variable UniformConstant + 129: TypeImage 35(int) 2D array nonsampled format:Rgba32ui + 130: TypePointer UniformConstant 129 +131(g_tTex2du4a): 130(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +101(flattenTemp): 90(ptr) Variable Function + 102:8(PS_OUTPUT) FunctionCall 10(@main() + Store 101(flattenTemp) 102 + 105: 94(ptr) AccessChain 101(flattenTemp) 23 + 106: 7(fvec4) Load 105 + Store 104(@entryPointOutput.Color) 106 + 109: 96(ptr) AccessChain 101(flattenTemp) 48 + 110: 6(float) Load 109 + Store 108(@entryPointOutput.Depth) 110 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 91(psout): 90(ptr) Variable Function + 15: 12 Load 14(g_tTex1df4) + 25: 24(ptr) AccessChain 22 23 + 26: 16(int) Load 25 + 27: 7(fvec4) ImageRead 15 26 + 31: 28 Load 30(g_tTex1di4) + 32: 24(ptr) AccessChain 22 23 + 33: 16(int) Load 32 + 34: 19(ivec4) ImageRead 31 33 + 39: 36 Load 38(g_tTex1du4) + 40: 24(ptr) AccessChain 22 23 + 41: 16(int) Load 40 + 43: 42(ivec4) ImageRead 39 41 + 47: 44 Load 46(g_tTex2df4) + 50: 49(ptr) AccessChain 22 48 + 51: 17(ivec2) Load 50 + 52: 7(fvec4) ImageRead 47 51 + 56: 53 Load 55(g_tTex2di4) + 57: 49(ptr) AccessChain 22 48 + 58: 17(ivec2) Load 57 + 59: 19(ivec4) ImageRead 56 58 + 63: 60 Load 62(g_tTex2du4) + 64: 49(ptr) AccessChain 22 48 + 65: 17(ivec2) Load 64 + 66: 42(ivec4) ImageRead 63 65 + 70: 67 Load 69(g_tTex3df4) + 73: 72(ptr) AccessChain 22 71 + 74: 18(ivec3) Load 73 + 75: 7(fvec4) ImageRead 70 74 + 79: 76 Load 78(g_tTex3di4) + 80: 72(ptr) AccessChain 22 71 + 81: 18(ivec3) Load 80 + 82: 19(ivec4) ImageRead 79 81 + 86: 83 Load 85(g_tTex3du4) + 87: 72(ptr) AccessChain 22 71 + 88: 18(ivec3) Load 87 + 89: 42(ivec4) ImageRead 86 88 + 95: 94(ptr) AccessChain 91(psout) 23 + Store 95 93 + 97: 96(ptr) AccessChain 91(psout) 48 + Store 97 92 + 98:8(PS_OUTPUT) Load 91(psout) + ReturnValue 98 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out new file mode 100644 index 0000000000..a2b4db0e84 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.localStructuredBuffer.comp.out @@ -0,0 +1,34 @@ +hlsl.localStructuredBuffer.comp +ERROR: 0:3: 'block initializer' : buffer aliasing not yet supported +ERROR: 1 compilation errors. No code generated. + + +Shader version: 500 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:2 Function Definition: @main( ( temp void) +0:2 Function Parameters: +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:2 Function Definition: @main( ( temp void) +0:2 Function Parameters: +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out new file mode 100644 index 0000000000..b90811bd6a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.frag.out @@ -0,0 +1,218 @@ +hlsl.logical.binary.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select ( temp void) +0:13 Condition +0:13 logical-and ( temp bool) +0:13 Convert int to bool ( temp bool) +0:13 ival: direct index for structure ( uniform int) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert float to bool ( temp bool) +0:13 fval: direct index for structure ( uniform float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select ( temp void) +0:14 Condition +0:14 logical-or ( temp bool) +0:14 Convert int to bool ( temp bool) +0:14 ival: direct index for structure ( uniform int) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert float to bool ( temp bool) +0:14 fval: direct index for structure ( uniform float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child ( temp 4-component vector of float) +0:17 Color: direct index for structure ( temp 4-component vector of float) +0:17 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Branch: Return with expression +0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:12 Color: direct index for structure ( temp 4-component vector of float) +0:12 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Constant: +0:12 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select ( temp void) +0:13 Condition +0:13 logical-and ( temp bool) +0:13 Convert int to bool ( temp bool) +0:13 ival: direct index for structure ( uniform int) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert float to bool ( temp bool) +0:13 fval: direct index for structure ( uniform float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select ( temp void) +0:14 Condition +0:14 logical-or ( temp bool) +0:14 Convert int to bool ( temp bool) +0:14 ival: direct index for structure ( uniform int) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert float to bool ( temp bool) +0:14 fval: direct index for structure ( uniform float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child ( temp 4-component vector of float) +0:17 Color: direct index for structure ( temp 4-component vector of float) +0:17 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Branch: Return with expression +0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:12 Color: direct index for structure ( temp 4-component vector of float) +0:12 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Constant: +0:12 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 56 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 53 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 14 "$Global" + MemberName 14($Global) 0 "ival" + MemberName 14($Global) 1 "ival4" + MemberName 14($Global) 2 "fval" + MemberName 14($Global) 3 "fval4" + Name 16 "" + Name 44 "psout" + Name 53 "@entryPointOutput.Color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 16 + MemberDecorate 14($Global) 2 Offset 32 + MemberDecorate 14($Global) 3 Offset 48 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 53(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13: TypeVector 12(int) 4 + 14($Global): TypeStruct 12(int) 13(ivec4) 6(float) 7(fvec4) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 12(int) Constant 0 + 18: TypePointer Uniform 12(int) + 21: TypeBool + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 25: 12(int) Constant 2 + 26: TypePointer Uniform 6(float) + 29: 6(float) Constant 0 + 43: TypePointer Function 8(PS_OUTPUT) + 45: 6(float) Constant 1065353216 + 46: 7(fvec4) ConstantComposite 45 45 45 45 + 47: TypePointer Function 7(fvec4) + 52: TypePointer Output 7(fvec4) +53(@entryPointOutput.Color): 52(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 54:8(PS_OUTPUT) FunctionCall 10(@main() + 55: 7(fvec4) CompositeExtract 54 0 + Store 53(@entryPointOutput.Color) 55 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 44(psout): 43(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 12(int) Load 19 + 24: 21(bool) INotEqual 20 23 + 27: 26(ptr) AccessChain 16 25 + 28: 6(float) Load 27 + 30: 21(bool) FOrdNotEqual 28 29 + 31: 21(bool) LogicalAnd 24 30 + SelectionMerge 33 None + BranchConditional 31 32 33 + 32: Label + Branch 33 + 33: Label + 34: 18(ptr) AccessChain 16 17 + 35: 12(int) Load 34 + 36: 21(bool) INotEqual 35 23 + 37: 26(ptr) AccessChain 16 25 + 38: 6(float) Load 37 + 39: 21(bool) FOrdNotEqual 38 29 + 40: 21(bool) LogicalOr 36 39 + SelectionMerge 42 None + BranchConditional 40 41 42 + 41: Label + Branch 42 + 42: Label + 48: 47(ptr) AccessChain 44(psout) 17 + Store 48 46 + 49:8(PS_OUTPUT) Load 44(psout) + ReturnValue 49 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out new file mode 100644 index 0000000000..32753e5c2f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -0,0 +1,415 @@ +hlsl.logical.binary.vec.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of bool) +0:11 'r00' ( temp 4-component vector of bool) +0:11 Negate conditional ( temp 4-component vector of bool) +0:11 b4a: direct index for structure ( uniform 4-component vector of bool) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of bool) +0:12 'r01' ( temp 4-component vector of bool) +0:12 logical-and ( temp 4-component vector of bool) +0:12 b4a: direct index for structure ( uniform 4-component vector of bool) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure ( uniform 4-component vector of bool) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of bool) +0:13 'r02' ( temp 4-component vector of bool) +0:13 logical-or ( temp 4-component vector of bool) +0:13 b4a: direct index for structure ( uniform 4-component vector of bool) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure ( uniform 4-component vector of bool) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of bool) +0:15 'r10' ( temp 4-component vector of bool) +0:15 logical-and ( temp 4-component vector of bool) +0:15 Construct bvec4 ( uniform 4-component vector of bool) +0:15 b1a: direct index for structure ( uniform bool) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure ( uniform 4-component vector of bool) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of bool) +0:16 'r11' ( temp 4-component vector of bool) +0:16 logical-or ( temp 4-component vector of bool) +0:16 Construct bvec4 ( uniform 4-component vector of bool) +0:16 b1a: direct index for structure ( uniform bool) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure ( uniform 4-component vector of bool) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of bool) +0:18 'r20' ( temp 4-component vector of bool) +0:18 logical-and ( temp 4-component vector of bool) +0:18 b4a: direct index for structure ( uniform 4-component vector of bool) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 ( uniform 4-component vector of bool) +0:18 b1b: direct index for structure ( uniform bool) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of bool) +0:19 'r21' ( temp 4-component vector of bool) +0:19 logical-or ( temp 4-component vector of bool) +0:19 b4a: direct index for structure ( uniform 4-component vector of bool) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 ( uniform 4-component vector of bool) +0:19 b1b: direct index for structure ( uniform bool) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float ( temp 4-component vector of float) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 'r00' ( temp 4-component vector of bool) +0:22 'r01' ( temp 4-component vector of bool) +0:22 'r02' ( temp 4-component vector of bool) +0:22 'r10' ( temp 4-component vector of bool) +0:22 'r11' ( temp 4-component vector of bool) +0:22 'r20' ( temp 4-component vector of bool) +0:22 'r21' ( temp 4-component vector of bool) +0:23 Branch: Return with expression +0:23 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:10 Color: direct index for structure ( temp 4-component vector of float) +0:10 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Constant: +0:10 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of bool) +0:11 'r00' ( temp 4-component vector of bool) +0:11 Negate conditional ( temp 4-component vector of bool) +0:11 b4a: direct index for structure ( uniform 4-component vector of bool) +0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of bool) +0:12 'r01' ( temp 4-component vector of bool) +0:12 logical-and ( temp 4-component vector of bool) +0:12 b4a: direct index for structure ( uniform 4-component vector of bool) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure ( uniform 4-component vector of bool) +0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of bool) +0:13 'r02' ( temp 4-component vector of bool) +0:13 logical-or ( temp 4-component vector of bool) +0:13 b4a: direct index for structure ( uniform 4-component vector of bool) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure ( uniform 4-component vector of bool) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of bool) +0:15 'r10' ( temp 4-component vector of bool) +0:15 logical-and ( temp 4-component vector of bool) +0:15 Construct bvec4 ( uniform 4-component vector of bool) +0:15 b1a: direct index for structure ( uniform bool) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure ( uniform 4-component vector of bool) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of bool) +0:16 'r11' ( temp 4-component vector of bool) +0:16 logical-or ( temp 4-component vector of bool) +0:16 Construct bvec4 ( uniform 4-component vector of bool) +0:16 b1a: direct index for structure ( uniform bool) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure ( uniform 4-component vector of bool) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of bool) +0:18 'r20' ( temp 4-component vector of bool) +0:18 logical-and ( temp 4-component vector of bool) +0:18 b4a: direct index for structure ( uniform 4-component vector of bool) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 ( uniform 4-component vector of bool) +0:18 b1b: direct index for structure ( uniform bool) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of bool) +0:19 'r21' ( temp 4-component vector of bool) +0:19 logical-or ( temp 4-component vector of bool) +0:19 b4a: direct index for structure ( uniform 4-component vector of bool) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 ( uniform 4-component vector of bool) +0:19 b1b: direct index for structure ( uniform bool) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float ( temp 4-component vector of float) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 logical-or ( temp 4-component vector of bool) +0:22 'r00' ( temp 4-component vector of bool) +0:22 'r01' ( temp 4-component vector of bool) +0:22 'r02' ( temp 4-component vector of bool) +0:22 'r10' ( temp 4-component vector of bool) +0:22 'r11' ( temp 4-component vector of bool) +0:22 'r20' ( temp 4-component vector of bool) +0:22 'r21' ( temp 4-component vector of bool) +0:23 Branch: Return with expression +0:23 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:10 Color: direct index for structure ( temp 4-component vector of float) +0:10 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Constant: +0:10 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a, uniform 4-component vector of bool b4b, uniform bool b1a, uniform bool b1b}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 115 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 112 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 15 "r00" + Name 18 "$Global" + MemberName 18($Global) 0 "b4a" + MemberName 18($Global) 1 "b4b" + MemberName 18($Global) 2 "b1a" + MemberName 18($Global) 3 "b1b" + Name 20 "" + Name 30 "r01" + Name 39 "r02" + Name 47 "r10" + Name 58 "r11" + Name 67 "r20" + Name 77 "r21" + Name 87 "psout" + Name 112 "@entryPointOutput.Color" + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 16 + MemberDecorate 18($Global) 2 Offset 32 + MemberDecorate 18($Global) 3 Offset 36 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 112(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeBool + 13: TypeVector 12(bool) 4 + 14: TypePointer Function 13(bvec4) + 16: TypeInt 32 0 + 17: TypeVector 16(int) 4 + 18($Global): TypeStruct 17(ivec4) 17(ivec4) 16(int) 16(int) + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: TypePointer Uniform 17(ivec4) + 26: 16(int) Constant 0 + 27: 17(ivec4) ConstantComposite 26 26 26 26 + 34: 21(int) Constant 1 + 48: 21(int) Constant 2 + 49: TypePointer Uniform 16(int) + 71: 21(int) Constant 3 + 86: TypePointer Function 8(PS_OUTPUT) + 101: 6(float) Constant 0 + 102: 6(float) Constant 1065353216 + 103: 7(fvec4) ConstantComposite 101 101 101 101 + 104: 7(fvec4) ConstantComposite 102 102 102 102 + 106: TypePointer Function 7(fvec4) + 111: TypePointer Output 7(fvec4) +112(@entryPointOutput.Color): 111(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 113:8(PS_OUTPUT) FunctionCall 10(@main() + 114: 7(fvec4) CompositeExtract 113 0 + Store 112(@entryPointOutput.Color) 114 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 15(r00): 14(ptr) Variable Function + 30(r01): 14(ptr) Variable Function + 39(r02): 14(ptr) Variable Function + 47(r10): 14(ptr) Variable Function + 58(r11): 14(ptr) Variable Function + 67(r20): 14(ptr) Variable Function + 77(r21): 14(ptr) Variable Function + 87(psout): 86(ptr) Variable Function + 24: 23(ptr) AccessChain 20 22 + 25: 17(ivec4) Load 24 + 28: 13(bvec4) INotEqual 25 27 + 29: 13(bvec4) LogicalNot 28 + Store 15(r00) 29 + 31: 23(ptr) AccessChain 20 22 + 32: 17(ivec4) Load 31 + 33: 13(bvec4) INotEqual 32 27 + 35: 23(ptr) AccessChain 20 34 + 36: 17(ivec4) Load 35 + 37: 13(bvec4) INotEqual 36 27 + 38: 13(bvec4) LogicalAnd 33 37 + Store 30(r01) 38 + 40: 23(ptr) AccessChain 20 22 + 41: 17(ivec4) Load 40 + 42: 13(bvec4) INotEqual 41 27 + 43: 23(ptr) AccessChain 20 34 + 44: 17(ivec4) Load 43 + 45: 13(bvec4) INotEqual 44 27 + 46: 13(bvec4) LogicalOr 42 45 + Store 39(r02) 46 + 50: 49(ptr) AccessChain 20 48 + 51: 16(int) Load 50 + 52: 12(bool) INotEqual 51 26 + 53: 13(bvec4) CompositeConstruct 52 52 52 52 + 54: 23(ptr) AccessChain 20 34 + 55: 17(ivec4) Load 54 + 56: 13(bvec4) INotEqual 55 27 + 57: 13(bvec4) LogicalAnd 53 56 + Store 47(r10) 57 + 59: 49(ptr) AccessChain 20 48 + 60: 16(int) Load 59 + 61: 12(bool) INotEqual 60 26 + 62: 13(bvec4) CompositeConstruct 61 61 61 61 + 63: 23(ptr) AccessChain 20 34 + 64: 17(ivec4) Load 63 + 65: 13(bvec4) INotEqual 64 27 + 66: 13(bvec4) LogicalOr 62 65 + Store 58(r11) 66 + 68: 23(ptr) AccessChain 20 22 + 69: 17(ivec4) Load 68 + 70: 13(bvec4) INotEqual 69 27 + 72: 49(ptr) AccessChain 20 71 + 73: 16(int) Load 72 + 74: 12(bool) INotEqual 73 26 + 75: 13(bvec4) CompositeConstruct 74 74 74 74 + 76: 13(bvec4) LogicalAnd 70 75 + Store 67(r20) 76 + 78: 23(ptr) AccessChain 20 22 + 79: 17(ivec4) Load 78 + 80: 13(bvec4) INotEqual 79 27 + 81: 49(ptr) AccessChain 20 71 + 82: 16(int) Load 81 + 83: 12(bool) INotEqual 82 26 + 84: 13(bvec4) CompositeConstruct 83 83 83 83 + 85: 13(bvec4) LogicalOr 80 84 + Store 77(r21) 85 + 88: 13(bvec4) Load 15(r00) + 89: 13(bvec4) Load 30(r01) + 90: 13(bvec4) LogicalOr 88 89 + 91: 13(bvec4) Load 39(r02) + 92: 13(bvec4) LogicalOr 90 91 + 93: 13(bvec4) Load 47(r10) + 94: 13(bvec4) LogicalOr 92 93 + 95: 13(bvec4) Load 58(r11) + 96: 13(bvec4) LogicalOr 94 95 + 97: 13(bvec4) Load 67(r20) + 98: 13(bvec4) LogicalOr 96 97 + 99: 13(bvec4) Load 77(r21) + 100: 13(bvec4) LogicalOr 98 99 + 105: 7(fvec4) Select 100 104 103 + 107: 106(ptr) AccessChain 87(psout) 22 + Store 107 105 + 108:8(PS_OUTPUT) Load 87(psout) + ReturnValue 108 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.logical.unary.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.logical.unary.frag.out new file mode 100644 index 0000000000..25dbc2ad53 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logical.unary.frag.out @@ -0,0 +1,312 @@ +hlsl.logical.unary.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional ( temp bool) +0:13 Convert int to bool ( temp bool) +0:13 ival: direct index for structure ( uniform int) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional ( temp 4-component vector of bool) +0:14 Convert int to bool ( temp 4-component vector of bool) +0:14 ival4: direct index for structure ( uniform 4-component vector of int) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional ( temp bool) +0:16 Convert float to bool ( temp bool) +0:16 fval: direct index for structure ( uniform float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional ( temp 4-component vector of bool) +0:17 Convert float to bool ( temp 4-component vector of bool) +0:17 fval4: direct index for structure ( uniform 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 Convert int to bool ( temp bool) +0:19 ival: direct index for structure ( uniform int) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select ( temp void) +0:20 Condition +0:20 Convert float to bool ( temp bool) +0:20 fval: direct index for structure ( uniform float) +0:20 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 Negate conditional ( temp bool) +0:21 Convert int to bool ( temp bool) +0:21 ival: direct index for structure ( uniform int) +0:21 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Negate conditional ( temp bool) +0:22 Convert float to bool ( temp bool) +0:22 fval: direct index for structure ( uniform float) +0:22 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child ( temp 4-component vector of float) +0:25 Color: direct index for structure ( temp 4-component vector of float) +0:25 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Branch: Return with expression +0:26 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:12 Color: direct index for structure ( temp 4-component vector of float) +0:12 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Constant: +0:12 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional ( temp bool) +0:13 Convert int to bool ( temp bool) +0:13 ival: direct index for structure ( uniform int) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional ( temp 4-component vector of bool) +0:14 Convert int to bool ( temp 4-component vector of bool) +0:14 ival4: direct index for structure ( uniform 4-component vector of int) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional ( temp bool) +0:16 Convert float to bool ( temp bool) +0:16 fval: direct index for structure ( uniform float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional ( temp 4-component vector of bool) +0:17 Convert float to bool ( temp 4-component vector of bool) +0:17 fval4: direct index for structure ( uniform 4-component vector of float) +0:17 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 Convert int to bool ( temp bool) +0:19 ival: direct index for structure ( uniform int) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select ( temp void) +0:20 Condition +0:20 Convert float to bool ( temp bool) +0:20 fval: direct index for structure ( uniform float) +0:20 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 Negate conditional ( temp bool) +0:21 Convert int to bool ( temp bool) +0:21 ival: direct index for structure ( uniform int) +0:21 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select ( temp void) +0:22 Condition +0:22 Negate conditional ( temp bool) +0:22 Convert float to bool ( temp bool) +0:22 fval: direct index for structure ( uniform float) +0:22 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child ( temp 4-component vector of float) +0:25 Color: direct index for structure ( temp 4-component vector of float) +0:25 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Branch: Return with expression +0:26 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:12 Color: direct index for structure ( temp 4-component vector of float) +0:12 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:12 Constant: +0:12 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 84 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 81 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 14 "$Global" + MemberName 14($Global) 0 "ival" + MemberName 14($Global) 1 "ival4" + MemberName 14($Global) 2 "fval" + MemberName 14($Global) 3 "fval4" + Name 16 "" + Name 72 "psout" + Name 81 "@entryPointOutput.Color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 16 + MemberDecorate 14($Global) 2 Offset 32 + MemberDecorate 14($Global) 3 Offset 48 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 81(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13: TypeVector 12(int) 4 + 14($Global): TypeStruct 12(int) 13(ivec4) 6(float) 7(fvec4) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 12(int) Constant 0 + 18: TypePointer Uniform 12(int) + 21: TypeBool + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 26: 12(int) Constant 1 + 27: TypePointer Uniform 13(ivec4) + 30: TypeVector 21(bool) 4 + 31: TypeVector 22(int) 4 + 32: 31(ivec4) ConstantComposite 23 23 23 23 + 35: 12(int) Constant 2 + 36: TypePointer Uniform 6(float) + 39: 6(float) Constant 0 + 42: 12(int) Constant 3 + 43: TypePointer Uniform 7(fvec4) + 46: 7(fvec4) ConstantComposite 39 39 39 39 + 71: TypePointer Function 8(PS_OUTPUT) + 73: 6(float) Constant 1065353216 + 74: 7(fvec4) ConstantComposite 73 73 73 73 + 75: TypePointer Function 7(fvec4) + 80: TypePointer Output 7(fvec4) +81(@entryPointOutput.Color): 80(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 82:8(PS_OUTPUT) FunctionCall 10(@main() + 83: 7(fvec4) CompositeExtract 82 0 + Store 81(@entryPointOutput.Color) 83 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 72(psout): 71(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 12(int) Load 19 + 24: 21(bool) INotEqual 20 23 + 25: 21(bool) LogicalNot 24 + 28: 27(ptr) AccessChain 16 26 + 29: 13(ivec4) Load 28 + 33: 30(bvec4) INotEqual 29 32 + 34: 30(bvec4) LogicalNot 33 + 37: 36(ptr) AccessChain 16 35 + 38: 6(float) Load 37 + 40: 21(bool) FOrdNotEqual 38 39 + 41: 21(bool) LogicalNot 40 + 44: 43(ptr) AccessChain 16 42 + 45: 7(fvec4) Load 44 + 47: 30(bvec4) FOrdNotEqual 45 46 + 48: 30(bvec4) LogicalNot 47 + 49: 18(ptr) AccessChain 16 17 + 50: 12(int) Load 49 + 51: 21(bool) INotEqual 50 23 + SelectionMerge 53 None + BranchConditional 51 52 53 + 52: Label + Branch 53 + 53: Label + 54: 36(ptr) AccessChain 16 35 + 55: 6(float) Load 54 + 56: 21(bool) FOrdNotEqual 55 39 + SelectionMerge 58 None + BranchConditional 56 57 58 + 57: Label + Branch 58 + 58: Label + 59: 18(ptr) AccessChain 16 17 + 60: 12(int) Load 59 + 61: 21(bool) INotEqual 60 23 + 62: 21(bool) LogicalNot 61 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + Branch 64 + 64: Label + 65: 36(ptr) AccessChain 16 35 + 66: 6(float) Load 65 + 67: 21(bool) FOrdNotEqual 66 39 + 68: 21(bool) LogicalNot 67 + SelectionMerge 70 None + BranchConditional 68 69 70 + 69: Label + Branch 70 + 70: Label + 76: 75(ptr) AccessChain 72(psout) 17 + Store 76 74 + 77:8(PS_OUTPUT) Load 72(psout) + ReturnValue 77 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.logicalConvert.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.logicalConvert.frag.out new file mode 100644 index 0000000000..6c595f8ef1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.logicalConvert.frag.out @@ -0,0 +1,342 @@ +hlsl.logicalConvert.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Test condition and select ( temp void) +0:3 Condition +0:3 Constant: +0:3 false (const bool) +0:3 true case +0:4 Branch: Return with expression +0:4 Constant: +0:4 0.000000 +0:4 0.000000 +0:4 0.000000 +0:4 0.000000 +0:5 Test condition and select ( temp void) +0:5 Condition +0:5 Constant: +0:5 false (const bool) +0:5 true case +0:6 Branch: Return with expression +0:6 Constant: +0:6 0.000000 +0:6 0.000000 +0:6 0.000000 +0:6 0.000000 +0:7 Test condition and select ( temp void) +0:7 Condition +0:7 Constant: +0:7 true (const bool) +0:7 true case +0:8 Branch: Return with expression +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 0.000000 +0:8 0.000000 +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Constant: +0:9 true (const bool) +0:9 true case +0:10 Branch: Return with expression +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:11 Test condition and select ( temp void) +0:11 Condition +0:11 Constant: +0:11 false (const bool) +0:11 true case +0:12 Branch: Return with expression +0:12 Constant: +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:13 Test condition and select ( temp void) +0:13 Condition +0:13 Constant: +0:13 false (const bool) +0:13 true case +0:14 Branch: Return with expression +0:14 Constant: +0:14 0.000000 +0:14 0.000000 +0:14 0.000000 +0:14 0.000000 +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Constant: +0:15 true (const bool) +0:15 true case +0:16 Branch: Return with expression +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:17 Test condition and select ( temp void) +0:17 Condition +0:17 Constant: +0:17 false (const bool) +0:17 true case +0:18 Branch: Return with expression +0:18 Constant: +0:18 0.000000 +0:18 0.000000 +0:18 0.000000 +0:18 0.000000 +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 Constant: +0:19 true (const bool) +0:19 true case +0:20 Branch: Return with expression +0:20 Constant: +0:20 0.000000 +0:20 0.000000 +0:20 0.000000 +0:20 0.000000 +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 Constant: +0:21 true (const bool) +0:21 true case +0:22 Branch: Return with expression +0:22 Constant: +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Test condition and select ( temp void) +0:3 Condition +0:3 Constant: +0:3 false (const bool) +0:3 true case +0:4 Branch: Return with expression +0:4 Constant: +0:4 0.000000 +0:4 0.000000 +0:4 0.000000 +0:4 0.000000 +0:5 Test condition and select ( temp void) +0:5 Condition +0:5 Constant: +0:5 false (const bool) +0:5 true case +0:6 Branch: Return with expression +0:6 Constant: +0:6 0.000000 +0:6 0.000000 +0:6 0.000000 +0:6 0.000000 +0:7 Test condition and select ( temp void) +0:7 Condition +0:7 Constant: +0:7 true (const bool) +0:7 true case +0:8 Branch: Return with expression +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 0.000000 +0:8 0.000000 +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Constant: +0:9 true (const bool) +0:9 true case +0:10 Branch: Return with expression +0:10 Constant: +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:10 0.000000 +0:11 Test condition and select ( temp void) +0:11 Condition +0:11 Constant: +0:11 false (const bool) +0:11 true case +0:12 Branch: Return with expression +0:12 Constant: +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:13 Test condition and select ( temp void) +0:13 Condition +0:13 Constant: +0:13 false (const bool) +0:13 true case +0:14 Branch: Return with expression +0:14 Constant: +0:14 0.000000 +0:14 0.000000 +0:14 0.000000 +0:14 0.000000 +0:15 Test condition and select ( temp void) +0:15 Condition +0:15 Constant: +0:15 true (const bool) +0:15 true case +0:16 Branch: Return with expression +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:17 Test condition and select ( temp void) +0:17 Condition +0:17 Constant: +0:17 false (const bool) +0:17 true case +0:18 Branch: Return with expression +0:18 Constant: +0:18 0.000000 +0:18 0.000000 +0:18 0.000000 +0:18 0.000000 +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 Constant: +0:19 true (const bool) +0:19 true case +0:20 Branch: Return with expression +0:20 Constant: +0:20 0.000000 +0:20 0.000000 +0:20 0.000000 +0:20 0.000000 +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 Constant: +0:21 true (const bool) +0:21 true case +0:22 Branch: Return with expression +0:22 Constant: +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 48 "@entryPointOutput" + Decorate 48(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeBool + 12: 11(bool) ConstantFalse + 15: 6(float) Constant 0 + 16: 7(fvec4) ConstantComposite 15 15 15 15 + 21: 11(bool) ConstantTrue + 47: TypePointer Output 7(fvec4) +48(@entryPointOutput): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 49: 7(fvec4) FunctionCall 9(@main() + Store 48(@entryPointOutput) 49 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + SelectionMerge 14 None + BranchConditional 12 13 14 + 13: Label + ReturnValue 16 + 14: Label + SelectionMerge 19 None + BranchConditional 12 18 19 + 18: Label + ReturnValue 16 + 19: Label + SelectionMerge 23 None + BranchConditional 21 22 23 + 22: Label + ReturnValue 16 + 23: Label + SelectionMerge 26 None + BranchConditional 21 25 26 + 25: Label + ReturnValue 16 + 26: Label + SelectionMerge 29 None + BranchConditional 12 28 29 + 28: Label + ReturnValue 16 + 29: Label + SelectionMerge 32 None + BranchConditional 12 31 32 + 31: Label + ReturnValue 16 + 32: Label + SelectionMerge 35 None + BranchConditional 21 34 35 + 34: Label + ReturnValue 16 + 35: Label + SelectionMerge 38 None + BranchConditional 12 37 38 + 37: Label + ReturnValue 16 + 38: Label + SelectionMerge 41 None + BranchConditional 21 40 41 + 40: Label + ReturnValue 16 + 41: Label + SelectionMerge 44 None + BranchConditional 21 43 44 + 43: Label + ReturnValue 16 + 44: Label + 46: 7(fvec4) Undef + ReturnValue 46 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.loopattr.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.loopattr.frag.out new file mode 100644 index 0000000000..cc0073ac43 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.loopattr.frag.out @@ -0,0 +1,233 @@ +hlsl.loopattr.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'x' ( temp int) +0:5 Constant: +0:5 0 (const int) +0:5 Loop with condition tested first: Unroll +0:5 Loop Condition +0:5 Compare Less Than ( temp bool) +0:5 'x' ( temp int) +0:5 Constant: +0:5 5 (const int) +0:5 No loop body +0:5 Loop Terminal Expression +0:5 Pre-Increment ( temp int) +0:5 'x' ( temp int) +0:8 Sequence +0:8 move second child to first child ( temp int) +0:8 'y' ( temp int) +0:8 Constant: +0:8 0 (const int) +0:8 Loop with condition tested first: DontUnroll +0:8 Loop Condition +0:8 Compare Less Than ( temp bool) +0:8 'y' ( temp int) +0:8 Constant: +0:8 5 (const int) +0:8 No loop body +0:8 Loop Terminal Expression +0:8 Pre-Increment ( temp int) +0:8 'y' ( temp int) +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'z' ( temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than ( temp bool) +0:11 'z' ( temp int) +0:11 Constant: +0:11 5 (const int) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment ( temp int) +0:11 'z' ( temp int) +0:13 Branch: Return with expression +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'x' ( temp int) +0:5 Constant: +0:5 0 (const int) +0:5 Loop with condition tested first: Unroll +0:5 Loop Condition +0:5 Compare Less Than ( temp bool) +0:5 'x' ( temp int) +0:5 Constant: +0:5 5 (const int) +0:5 No loop body +0:5 Loop Terminal Expression +0:5 Pre-Increment ( temp int) +0:5 'x' ( temp int) +0:8 Sequence +0:8 move second child to first child ( temp int) +0:8 'y' ( temp int) +0:8 Constant: +0:8 0 (const int) +0:8 Loop with condition tested first: DontUnroll +0:8 Loop Condition +0:8 Compare Less Than ( temp bool) +0:8 'y' ( temp int) +0:8 Constant: +0:8 5 (const int) +0:8 No loop body +0:8 Loop Terminal Expression +0:8 Pre-Increment ( temp int) +0:8 'y' ( temp int) +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'z' ( temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than ( temp bool) +0:11 'z' ( temp int) +0:11 Constant: +0:11 5 (const int) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment ( temp int) +0:11 'z' ( temp int) +0:13 Branch: Return with expression +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 52 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "x" + Name 27 "y" + Name 37 "z" + Name 52 "@entryPointOutput" + Decorate 52(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 1 + 12: TypePointer Function 11(int) + 14: 11(int) Constant 0 + 21: 11(int) Constant 5 + 22: TypeBool + 25: 11(int) Constant 1 + 47: 6(float) Constant 0 + 48: 7(fvec4) ConstantComposite 47 47 47 47 + 51: TypePointer Output 7(fvec4) +52(@entryPointOutput): 51(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 53: 7(fvec4) FunctionCall 9(@main() + Store 52(@entryPointOutput) 53 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 13(x): 12(ptr) Variable Function + 27(y): 12(ptr) Variable Function + 37(z): 12(ptr) Variable Function + Store 13(x) 14 + Branch 15 + 15: Label + LoopMerge 17 18 Unroll + Branch 19 + 19: Label + 20: 11(int) Load 13(x) + 23: 22(bool) SLessThan 20 21 + BranchConditional 23 16 17 + 16: Label + Branch 18 + 18: Label + 24: 11(int) Load 13(x) + 26: 11(int) IAdd 24 25 + Store 13(x) 26 + Branch 15 + 17: Label + Store 27(y) 14 + Branch 28 + 28: Label + LoopMerge 30 31 DontUnroll + Branch 32 + 32: Label + 33: 11(int) Load 27(y) + 34: 22(bool) SLessThan 33 21 + BranchConditional 34 29 30 + 29: Label + Branch 31 + 31: Label + 35: 11(int) Load 27(y) + 36: 11(int) IAdd 35 25 + Store 27(y) 36 + Branch 28 + 30: Label + Store 37(z) 14 + Branch 38 + 38: Label + LoopMerge 40 41 None + Branch 42 + 42: Label + 43: 11(int) Load 37(z) + 44: 22(bool) SLessThan 43 21 + BranchConditional 44 39 40 + 39: Label + Branch 41 + 41: Label + 45: 11(int) Load 37(z) + 46: 11(int) IAdd 45 25 + Store 37(z) 46 + Branch 38 + 40: Label + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out new file mode 100644 index 0000000000..109362e458 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matNx1.frag.out @@ -0,0 +1,275 @@ +hlsl.matNx1.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 1X1 matrix of float) +0:13 'r00' ( temp 1X1 matrix of float) +0:13 transpose ( temp 1X1 matrix of float) +0:13 'f1x1' ( temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child ( temp 1X2 matrix of float) +0:14 'r01' ( temp 1X2 matrix of float) +0:14 transpose ( temp 1X2 matrix of float) +0:14 'f2x1' ( temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child ( temp 1X3 matrix of float) +0:15 'r02' ( temp 1X3 matrix of float) +0:15 transpose ( temp 1X3 matrix of float) +0:15 'f3x1' ( temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child ( temp 1X4 matrix of float) +0:16 'r03' ( temp 1X4 matrix of float) +0:16 transpose ( temp 1X4 matrix of float) +0:16 'f4x1' ( temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child ( temp 1X1 matrix of float) +0:18 'r10' ( temp 1X1 matrix of float) +0:18 transpose ( temp 1X1 matrix of float) +0:18 'f1x1' ( temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child ( temp 2X1 matrix of float) +0:19 'r11' ( temp 2X1 matrix of float) +0:19 transpose ( temp 2X1 matrix of float) +0:19 'f1x2' ( temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child ( temp 3X1 matrix of float) +0:20 'r12' ( temp 3X1 matrix of float) +0:20 transpose ( temp 3X1 matrix of float) +0:20 'f1x3' ( temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child ( temp 4X1 matrix of float) +0:21 'r13' ( temp 4X1 matrix of float) +0:21 transpose ( temp 4X1 matrix of float) +0:21 'f1x4' ( temp 1X4 matrix of float) +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:29 color: direct index for structure ( temp 4-component vector of float) +0:29 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Branch: Return with expression +0:30 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:27 color: direct index for structure ( temp 4-component vector of float) +0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:27 Constant: +0:27 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 1X1 matrix of float) +0:13 'r00' ( temp 1X1 matrix of float) +0:13 transpose ( temp 1X1 matrix of float) +0:13 'f1x1' ( temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child ( temp 1X2 matrix of float) +0:14 'r01' ( temp 1X2 matrix of float) +0:14 transpose ( temp 1X2 matrix of float) +0:14 'f2x1' ( temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child ( temp 1X3 matrix of float) +0:15 'r02' ( temp 1X3 matrix of float) +0:15 transpose ( temp 1X3 matrix of float) +0:15 'f3x1' ( temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child ( temp 1X4 matrix of float) +0:16 'r03' ( temp 1X4 matrix of float) +0:16 transpose ( temp 1X4 matrix of float) +0:16 'f4x1' ( temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child ( temp 1X1 matrix of float) +0:18 'r10' ( temp 1X1 matrix of float) +0:18 transpose ( temp 1X1 matrix of float) +0:18 'f1x1' ( temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child ( temp 2X1 matrix of float) +0:19 'r11' ( temp 2X1 matrix of float) +0:19 transpose ( temp 2X1 matrix of float) +0:19 'f1x2' ( temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child ( temp 3X1 matrix of float) +0:20 'r12' ( temp 3X1 matrix of float) +0:20 transpose ( temp 3X1 matrix of float) +0:20 'f1x3' ( temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child ( temp 4X1 matrix of float) +0:21 'r13' ( temp 4X1 matrix of float) +0:21 transpose ( temp 4X1 matrix of float) +0:21 'f1x4' ( temp 1X4 matrix of float) +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:29 color: direct index for structure ( temp 4-component vector of float) +0:29 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Branch: Return with expression +0:30 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:27 color: direct index for structure ( temp 4-component vector of float) +0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:27 Constant: +0:27 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 77 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "TestMatNx1(" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "color" + Name 12 "@main(" + Name 17 "r00" + Name 18 "f1x1" + Name 24 "r01" + Name 27 "f2x1" + Name 33 "r02" + Name 36 "f3x1" + Name 41 "r03" + Name 44 "f4x1" + Name 47 "r10" + Name 50 "r11" + Name 51 "f1x2" + Name 54 "r12" + Name 55 "f1x3" + Name 58 "r13" + Name 59 "f1x4" + Name 63 "ps_output" + Name 74 "@entryPointOutput.color" + Decorate 74(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) + 11: TypeFunction 10(PS_OUTPUT) + 14: TypeVector 8(float) 1 + 15: TypeMatrix 14(fvec) 1 + 16: TypePointer Function 15 + 21: TypeVector 8(float) 2 + 22: TypeMatrix 21(fvec2) 1 + 23: TypePointer Function 22 + 25: TypeMatrix 14(fvec) 2 + 26: TypePointer Function 25 + 30: TypeVector 8(float) 3 + 31: TypeMatrix 30(fvec3) 1 + 32: TypePointer Function 31 + 34: TypeMatrix 14(fvec) 3 + 35: TypePointer Function 34 + 39: TypeMatrix 9(fvec4) 1 + 40: TypePointer Function 39 + 42: TypeMatrix 14(fvec) 4 + 43: TypePointer Function 42 + 62: TypePointer Function 10(PS_OUTPUT) + 64: TypeInt 32 1 + 65: 64(int) Constant 0 + 66: 8(float) Constant 1065353216 + 67: 9(fvec4) ConstantComposite 66 66 66 66 + 68: TypePointer Function 9(fvec4) + 73: TypePointer Output 9(fvec4) +74(@entryPointOutput.color): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 75:10(PS_OUTPUT) FunctionCall 12(@main() + 76: 9(fvec4) CompositeExtract 75 0 + Store 74(@entryPointOutput.color) 76 + Return + FunctionEnd + 6(TestMatNx1(): 2 Function None 3 + 7: Label + 17(r00): 16(ptr) Variable Function + 18(f1x1): 16(ptr) Variable Function + 24(r01): 23(ptr) Variable Function + 27(f2x1): 26(ptr) Variable Function + 33(r02): 32(ptr) Variable Function + 36(f3x1): 35(ptr) Variable Function + 41(r03): 40(ptr) Variable Function + 44(f4x1): 43(ptr) Variable Function + 47(r10): 16(ptr) Variable Function + 50(r11): 26(ptr) Variable Function + 51(f1x2): 23(ptr) Variable Function + 54(r12): 35(ptr) Variable Function + 55(f1x3): 32(ptr) Variable Function + 58(r13): 43(ptr) Variable Function + 59(f1x4): 40(ptr) Variable Function + 19: 15 Load 18(f1x1) + 20: 15 Transpose 19 + Store 17(r00) 20 + 28: 25 Load 27(f2x1) + 29: 22 Transpose 28 + Store 24(r01) 29 + 37: 34 Load 36(f3x1) + 38: 31 Transpose 37 + Store 33(r02) 38 + 45: 42 Load 44(f4x1) + 46: 39 Transpose 45 + Store 41(r03) 46 + 48: 15 Load 18(f1x1) + 49: 15 Transpose 48 + Store 47(r10) 49 + 52: 22 Load 51(f1x2) + 53: 25 Transpose 52 + Store 50(r11) 53 + 56: 31 Load 55(f1x3) + 57: 34 Transpose 56 + Store 54(r12) 57 + 60: 39 Load 59(f1x4) + 61: 42 Transpose 60 + Store 58(r13) 61 + Return + FunctionEnd + 12(@main():10(PS_OUTPUT) Function None 11 + 13: Label + 63(ps_output): 62(ptr) Variable Function + 69: 68(ptr) AccessChain 63(ps_output) 65 + Store 69 67 + 70:10(PS_OUTPUT) Load 63(ps_output) + ReturnValue 70 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matType.bool.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matType.bool.frag.out new file mode 100644 index 0000000000..82575b04ad --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matType.bool.frag.out @@ -0,0 +1,433 @@ +hlsl.matType.bool.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp 1X1 matrix of bool) +0:25 'r00' ( temp 1X1 matrix of bool) +0:25 transpose ( temp 1X1 matrix of bool) +0:25 'b1x1' ( temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child ( temp 1X2 matrix of bool) +0:26 'r01' ( temp 1X2 matrix of bool) +0:26 transpose ( temp 1X2 matrix of bool) +0:26 'b2x1' ( temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child ( temp 1X3 matrix of bool) +0:27 'r02' ( temp 1X3 matrix of bool) +0:27 transpose ( temp 1X3 matrix of bool) +0:27 'b3x1' ( temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child ( temp 1X4 matrix of bool) +0:28 'r03' ( temp 1X4 matrix of bool) +0:28 transpose ( temp 1X4 matrix of bool) +0:28 'b4x1' ( temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child ( temp 2X1 matrix of bool) +0:30 'r10' ( temp 2X1 matrix of bool) +0:30 transpose ( temp 2X1 matrix of bool) +0:30 'b1x2' ( temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child ( temp 2X2 matrix of bool) +0:31 'r11' ( temp 2X2 matrix of bool) +0:31 transpose ( temp 2X2 matrix of bool) +0:31 'b2x2' ( temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child ( temp 2X3 matrix of bool) +0:32 'r12' ( temp 2X3 matrix of bool) +0:32 transpose ( temp 2X3 matrix of bool) +0:32 'b3x2' ( temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child ( temp 2X4 matrix of bool) +0:33 'r13' ( temp 2X4 matrix of bool) +0:33 transpose ( temp 2X4 matrix of bool) +0:33 'b4x2' ( temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child ( temp 3X1 matrix of bool) +0:35 'r20' ( temp 3X1 matrix of bool) +0:35 transpose ( temp 3X1 matrix of bool) +0:35 'b1x3' ( temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child ( temp 3X2 matrix of bool) +0:36 'r21' ( temp 3X2 matrix of bool) +0:36 transpose ( temp 3X2 matrix of bool) +0:36 'b2x3' ( temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child ( temp 3X3 matrix of bool) +0:37 'r22' ( temp 3X3 matrix of bool) +0:37 transpose ( temp 3X3 matrix of bool) +0:37 'b3x3' ( temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child ( temp 3X4 matrix of bool) +0:38 'r23' ( temp 3X4 matrix of bool) +0:38 transpose ( temp 3X4 matrix of bool) +0:38 'b4x3' ( temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child ( temp 4X1 matrix of bool) +0:40 'r30' ( temp 4X1 matrix of bool) +0:40 transpose ( temp 4X1 matrix of bool) +0:40 'b1x4' ( temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child ( temp 4X2 matrix of bool) +0:41 'r31' ( temp 4X2 matrix of bool) +0:41 transpose ( temp 4X2 matrix of bool) +0:41 'b2x4' ( temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child ( temp 4X3 matrix of bool) +0:42 'r32' ( temp 4X3 matrix of bool) +0:42 transpose ( temp 4X3 matrix of bool) +0:42 'b3x4' ( temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child ( temp 4X4 matrix of bool) +0:43 'r33' ( temp 4X4 matrix of bool) +0:43 transpose ( temp 4X4 matrix of bool) +0:43 'b4x4' ( temp 4X4 matrix of bool) +0:49 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 color: direct index for structure ( temp 4-component vector of float) +0:51 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Branch: Return with expression +0:52 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:49 Function Definition: main( ( temp void) +0:49 Function Parameters: +0:? Sequence +0:49 Sequence +0:49 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:49 color: direct index for structure ( temp 4-component vector of float) +0:49 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:49 Constant: +0:49 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp 1X1 matrix of bool) +0:25 'r00' ( temp 1X1 matrix of bool) +0:25 transpose ( temp 1X1 matrix of bool) +0:25 'b1x1' ( temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child ( temp 1X2 matrix of bool) +0:26 'r01' ( temp 1X2 matrix of bool) +0:26 transpose ( temp 1X2 matrix of bool) +0:26 'b2x1' ( temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child ( temp 1X3 matrix of bool) +0:27 'r02' ( temp 1X3 matrix of bool) +0:27 transpose ( temp 1X3 matrix of bool) +0:27 'b3x1' ( temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child ( temp 1X4 matrix of bool) +0:28 'r03' ( temp 1X4 matrix of bool) +0:28 transpose ( temp 1X4 matrix of bool) +0:28 'b4x1' ( temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child ( temp 2X1 matrix of bool) +0:30 'r10' ( temp 2X1 matrix of bool) +0:30 transpose ( temp 2X1 matrix of bool) +0:30 'b1x2' ( temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child ( temp 2X2 matrix of bool) +0:31 'r11' ( temp 2X2 matrix of bool) +0:31 transpose ( temp 2X2 matrix of bool) +0:31 'b2x2' ( temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child ( temp 2X3 matrix of bool) +0:32 'r12' ( temp 2X3 matrix of bool) +0:32 transpose ( temp 2X3 matrix of bool) +0:32 'b3x2' ( temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child ( temp 2X4 matrix of bool) +0:33 'r13' ( temp 2X4 matrix of bool) +0:33 transpose ( temp 2X4 matrix of bool) +0:33 'b4x2' ( temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child ( temp 3X1 matrix of bool) +0:35 'r20' ( temp 3X1 matrix of bool) +0:35 transpose ( temp 3X1 matrix of bool) +0:35 'b1x3' ( temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child ( temp 3X2 matrix of bool) +0:36 'r21' ( temp 3X2 matrix of bool) +0:36 transpose ( temp 3X2 matrix of bool) +0:36 'b2x3' ( temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child ( temp 3X3 matrix of bool) +0:37 'r22' ( temp 3X3 matrix of bool) +0:37 transpose ( temp 3X3 matrix of bool) +0:37 'b3x3' ( temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child ( temp 3X4 matrix of bool) +0:38 'r23' ( temp 3X4 matrix of bool) +0:38 transpose ( temp 3X4 matrix of bool) +0:38 'b4x3' ( temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child ( temp 4X1 matrix of bool) +0:40 'r30' ( temp 4X1 matrix of bool) +0:40 transpose ( temp 4X1 matrix of bool) +0:40 'b1x4' ( temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child ( temp 4X2 matrix of bool) +0:41 'r31' ( temp 4X2 matrix of bool) +0:41 transpose ( temp 4X2 matrix of bool) +0:41 'b2x4' ( temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child ( temp 4X3 matrix of bool) +0:42 'r32' ( temp 4X3 matrix of bool) +0:42 transpose ( temp 4X3 matrix of bool) +0:42 'b3x4' ( temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child ( temp 4X4 matrix of bool) +0:43 'r33' ( temp 4X4 matrix of bool) +0:43 transpose ( temp 4X4 matrix of bool) +0:43 'b4x4' ( temp 4X4 matrix of bool) +0:49 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 color: direct index for structure ( temp 4-component vector of float) +0:51 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Branch: Return with expression +0:52 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:49 Function Definition: main( ( temp void) +0:49 Function Parameters: +0:? Sequence +0:49 Sequence +0:49 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:49 color: direct index for structure ( temp 4-component vector of float) +0:49 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:49 Constant: +0:49 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 130 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 127 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "TestBoolMatTypes(" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "color" + Name 12 "@main(" + Name 18 "r00" + Name 19 "b1x1" + Name 25 "r01" + Name 28 "b2x1" + Name 34 "r02" + Name 37 "b3x1" + Name 43 "r03" + Name 46 "b4x1" + Name 49 "r10" + Name 50 "b1x2" + Name 55 "r11" + Name 56 "b2x2" + Name 61 "r12" + Name 64 "b3x2" + Name 69 "r13" + Name 72 "b4x2" + Name 75 "r20" + Name 76 "b1x3" + Name 79 "r21" + Name 80 "b2x3" + Name 85 "r22" + Name 86 "b3x3" + Name 91 "r23" + Name 94 "b4x3" + Name 97 "r30" + Name 98 "b1x4" + Name 101 "r31" + Name 102 "b2x4" + Name 105 "r32" + Name 106 "b3x4" + Name 111 "r33" + Name 112 "b4x4" + Name 116 "ps_output" + Name 127 "@entryPointOutput.color" + Decorate 127(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) + 11: TypeFunction 10(PS_OUTPUT) + 14: TypeBool + 15: TypeVector 14(bool) 1 + 16: TypeMatrix 15(bvec) 1 + 17: TypePointer Function 16 + 22: TypeVector 14(bool) 2 + 23: TypeMatrix 22(bvec2) 1 + 24: TypePointer Function 23 + 26: TypeMatrix 15(bvec) 2 + 27: TypePointer Function 26 + 31: TypeVector 14(bool) 3 + 32: TypeMatrix 31(bvec3) 1 + 33: TypePointer Function 32 + 35: TypeMatrix 15(bvec) 3 + 36: TypePointer Function 35 + 40: TypeVector 14(bool) 4 + 41: TypeMatrix 40(bvec4) 1 + 42: TypePointer Function 41 + 44: TypeMatrix 15(bvec) 4 + 45: TypePointer Function 44 + 53: TypeMatrix 22(bvec2) 2 + 54: TypePointer Function 53 + 59: TypeMatrix 31(bvec3) 2 + 60: TypePointer Function 59 + 62: TypeMatrix 22(bvec2) 3 + 63: TypePointer Function 62 + 67: TypeMatrix 40(bvec4) 2 + 68: TypePointer Function 67 + 70: TypeMatrix 22(bvec2) 4 + 71: TypePointer Function 70 + 83: TypeMatrix 31(bvec3) 3 + 84: TypePointer Function 83 + 89: TypeMatrix 40(bvec4) 3 + 90: TypePointer Function 89 + 92: TypeMatrix 31(bvec3) 4 + 93: TypePointer Function 92 + 109: TypeMatrix 40(bvec4) 4 + 110: TypePointer Function 109 + 115: TypePointer Function 10(PS_OUTPUT) + 117: TypeInt 32 1 + 118: 117(int) Constant 0 + 119: 8(float) Constant 0 + 120: 9(fvec4) ConstantComposite 119 119 119 119 + 121: TypePointer Function 9(fvec4) + 126: TypePointer Output 9(fvec4) +127(@entryPointOutput.color): 126(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 128:10(PS_OUTPUT) FunctionCall 12(@main() + 129: 9(fvec4) CompositeExtract 128 0 + Store 127(@entryPointOutput.color) 129 + Return + FunctionEnd +6(TestBoolMatTypes(): 2 Function None 3 + 7: Label + 18(r00): 17(ptr) Variable Function + 19(b1x1): 17(ptr) Variable Function + 25(r01): 24(ptr) Variable Function + 28(b2x1): 27(ptr) Variable Function + 34(r02): 33(ptr) Variable Function + 37(b3x1): 36(ptr) Variable Function + 43(r03): 42(ptr) Variable Function + 46(b4x1): 45(ptr) Variable Function + 49(r10): 27(ptr) Variable Function + 50(b1x2): 24(ptr) Variable Function + 55(r11): 54(ptr) Variable Function + 56(b2x2): 54(ptr) Variable Function + 61(r12): 60(ptr) Variable Function + 64(b3x2): 63(ptr) Variable Function + 69(r13): 68(ptr) Variable Function + 72(b4x2): 71(ptr) Variable Function + 75(r20): 36(ptr) Variable Function + 76(b1x3): 33(ptr) Variable Function + 79(r21): 63(ptr) Variable Function + 80(b2x3): 60(ptr) Variable Function + 85(r22): 84(ptr) Variable Function + 86(b3x3): 84(ptr) Variable Function + 91(r23): 90(ptr) Variable Function + 94(b4x3): 93(ptr) Variable Function + 97(r30): 45(ptr) Variable Function + 98(b1x4): 42(ptr) Variable Function + 101(r31): 71(ptr) Variable Function + 102(b2x4): 68(ptr) Variable Function + 105(r32): 93(ptr) Variable Function + 106(b3x4): 90(ptr) Variable Function + 111(r33): 110(ptr) Variable Function + 112(b4x4): 110(ptr) Variable Function + 20: 16 Load 19(b1x1) + 21: 16 Transpose 20 + Store 18(r00) 21 + 29: 26 Load 28(b2x1) + 30: 23 Transpose 29 + Store 25(r01) 30 + 38: 35 Load 37(b3x1) + 39: 32 Transpose 38 + Store 34(r02) 39 + 47: 44 Load 46(b4x1) + 48: 41 Transpose 47 + Store 43(r03) 48 + 51: 23 Load 50(b1x2) + 52: 26 Transpose 51 + Store 49(r10) 52 + 57: 53 Load 56(b2x2) + 58: 53 Transpose 57 + Store 55(r11) 58 + 65: 62 Load 64(b3x2) + 66: 59 Transpose 65 + Store 61(r12) 66 + 73: 70 Load 72(b4x2) + 74: 67 Transpose 73 + Store 69(r13) 74 + 77: 32 Load 76(b1x3) + 78: 35 Transpose 77 + Store 75(r20) 78 + 81: 59 Load 80(b2x3) + 82: 62 Transpose 81 + Store 79(r21) 82 + 87: 83 Load 86(b3x3) + 88: 83 Transpose 87 + Store 85(r22) 88 + 95: 92 Load 94(b4x3) + 96: 89 Transpose 95 + Store 91(r23) 96 + 99: 41 Load 98(b1x4) + 100: 44 Transpose 99 + Store 97(r30) 100 + 103: 67 Load 102(b2x4) + 104: 70 Transpose 103 + Store 101(r31) 104 + 107: 89 Load 106(b3x4) + 108: 92 Transpose 107 + Store 105(r32) 108 + 113: 109 Load 112(b4x4) + 114: 109 Transpose 113 + Store 111(r33) 114 + Return + FunctionEnd + 12(@main():10(PS_OUTPUT) Function None 11 + 13: Label + 116(ps_output): 115(ptr) Variable Function + 122: 121(ptr) AccessChain 116(ps_output) 118 + Store 122 120 + 123:10(PS_OUTPUT) Load 116(ps_output) + ReturnValue 123 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matType.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matType.frag.out new file mode 100644 index 0000000000..958b37e0d6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matType.frag.out @@ -0,0 +1,103 @@ +hlsl.matType.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) +0:9 Function Parameters: +0:9 'inFloat1' ( in 1-component vector of float) +0:9 'inScalar' ( in float) +0:? Sequence +0:10 Branch: Return with expression +0:10 'inFloat1' ( in 1-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1, uniform 1X1 matrix of float fmat11, uniform 4X1 matrix of float fmat41, uniform 1X2 matrix of float fmat12, uniform 2X3 matrix of double dmat23, uniform 4X4 matrix of int int44}) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float) +0:9 Function Parameters: +0:9 'inFloat1' ( in 1-component vector of float) +0:9 'inScalar' ( in float) +0:? Sequence +0:10 Branch: Return with expression +0:10 'inFloat1' ( in 1-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1, uniform 1X1 matrix of float fmat11, uniform 4X1 matrix of float fmat41, uniform 1X2 matrix of float fmat12, uniform 2X3 matrix of double dmat23, uniform 4X4 matrix of int int44}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "ShaderFunction(vf1;f1;" + Name 9 "inFloat1" + Name 10 "inScalar" + Name 27 "$Global" + MemberName 27($Global) 0 "f1" + MemberName 27($Global) 1 "fmat11" + MemberName 27($Global) 2 "fmat41" + MemberName 27($Global) 3 "fmat12" + MemberName 27($Global) 4 "dmat23" + MemberName 27($Global) 5 "int44" + Name 29 "" + MemberDecorate 27($Global) 0 Offset 0 + MemberDecorate 27($Global) 1 RowMajor + MemberDecorate 27($Global) 1 Offset 16 + MemberDecorate 27($Global) 1 MatrixStride 16 + MemberDecorate 27($Global) 2 RowMajor + MemberDecorate 27($Global) 2 Offset 32 + MemberDecorate 27($Global) 2 MatrixStride 16 + MemberDecorate 27($Global) 3 RowMajor + MemberDecorate 27($Global) 3 Offset 48 + MemberDecorate 27($Global) 3 MatrixStride 16 + MemberDecorate 27($Global) 4 RowMajor + MemberDecorate 27($Global) 4 Offset 80 + MemberDecorate 27($Global) 4 MatrixStride 16 + MemberDecorate 27($Global) 5 RowMajor + MemberDecorate 27($Global) 5 Offset 128 + MemberDecorate 27($Global) 5 MatrixStride 16 + Decorate 27($Global) Block + Decorate 29 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) 7(ptr) + 16: TypeVector 6(float) 1 + 17: TypeMatrix 16(fvec) 1 + 18: TypeMatrix 16(fvec) 4 + 19: TypeVector 6(float) 2 + 20: TypeMatrix 19(fvec2) 1 + 21: TypeFloat 64 + 22: TypeVector 21(float64_t) 3 + 23: TypeMatrix 22(f64vec3) 2 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypeMatrix 25(ivec4) 4 + 27($Global): TypeStruct 6(float) 17 18 20 23 26 + 28: TypePointer Uniform 27($Global) + 29: 28(ptr) Variable Uniform +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Return + FunctionEnd +11(ShaderFunction(vf1;f1;): 6(float) Function None 8 + 9(inFloat1): 7(ptr) FunctionParameter + 10(inScalar): 7(ptr) FunctionParameter + 12: Label + 13: 6(float) Load 9(inFloat1) + ReturnValue 13 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out new file mode 100644 index 0000000000..b8d29ac052 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matType.int.frag.out @@ -0,0 +1,752 @@ +hlsl.matType.int.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp 1X1 matrix of int) +0:25 'r00' ( temp 1X1 matrix of int) +0:25 transpose ( temp 1X1 matrix of int) +0:25 'i1x1' ( temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child ( temp 1X2 matrix of int) +0:26 'r01' ( temp 1X2 matrix of int) +0:26 transpose ( temp 1X2 matrix of int) +0:26 'i2x1' ( temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child ( temp 1X3 matrix of int) +0:27 'r02' ( temp 1X3 matrix of int) +0:27 transpose ( temp 1X3 matrix of int) +0:27 'i3x1' ( temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child ( temp 1X4 matrix of int) +0:28 'r03' ( temp 1X4 matrix of int) +0:28 transpose ( temp 1X4 matrix of int) +0:28 'i4x1' ( temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child ( temp 2X1 matrix of int) +0:30 'r10' ( temp 2X1 matrix of int) +0:30 transpose ( temp 2X1 matrix of int) +0:30 'i1x2' ( temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child ( temp 2X2 matrix of int) +0:31 'r11' ( temp 2X2 matrix of int) +0:31 transpose ( temp 2X2 matrix of int) +0:31 'i2x2' ( temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child ( temp 2X3 matrix of int) +0:32 'r12' ( temp 2X3 matrix of int) +0:32 transpose ( temp 2X3 matrix of int) +0:32 'i3x2' ( temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child ( temp 2X4 matrix of int) +0:33 'r13' ( temp 2X4 matrix of int) +0:33 transpose ( temp 2X4 matrix of int) +0:33 'i4x2' ( temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child ( temp 3X1 matrix of int) +0:35 'r20' ( temp 3X1 matrix of int) +0:35 transpose ( temp 3X1 matrix of int) +0:35 'i1x3' ( temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child ( temp 3X2 matrix of int) +0:36 'r21' ( temp 3X2 matrix of int) +0:36 transpose ( temp 3X2 matrix of int) +0:36 'i2x3' ( temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child ( temp 3X3 matrix of int) +0:37 'r22' ( temp 3X3 matrix of int) +0:37 transpose ( temp 3X3 matrix of int) +0:37 'i3x3' ( temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child ( temp 3X4 matrix of int) +0:38 'r23' ( temp 3X4 matrix of int) +0:38 transpose ( temp 3X4 matrix of int) +0:38 'i4x3' ( temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child ( temp 4X1 matrix of int) +0:40 'r30' ( temp 4X1 matrix of int) +0:40 transpose ( temp 4X1 matrix of int) +0:40 'i1x4' ( temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child ( temp 4X2 matrix of int) +0:41 'r31' ( temp 4X2 matrix of int) +0:41 transpose ( temp 4X2 matrix of int) +0:41 'i2x4' ( temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child ( temp 4X3 matrix of int) +0:42 'r32' ( temp 4X3 matrix of int) +0:42 transpose ( temp 4X3 matrix of int) +0:42 'i3x4' ( temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child ( temp 4X4 matrix of int) +0:43 'r33' ( temp 4X4 matrix of int) +0:43 transpose ( temp 4X4 matrix of int) +0:43 'i4x4' ( temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( ( temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child ( temp 1X1 matrix of uint) +0:69 'r00' ( temp 1X1 matrix of uint) +0:69 transpose ( temp 1X1 matrix of uint) +0:69 'u1x1' ( temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child ( temp 1X2 matrix of uint) +0:70 'r01' ( temp 1X2 matrix of uint) +0:70 transpose ( temp 1X2 matrix of uint) +0:70 'u2x1' ( temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child ( temp 1X3 matrix of uint) +0:71 'r02' ( temp 1X3 matrix of uint) +0:71 transpose ( temp 1X3 matrix of uint) +0:71 'u3x1' ( temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child ( temp 1X4 matrix of uint) +0:72 'r03' ( temp 1X4 matrix of uint) +0:72 transpose ( temp 1X4 matrix of uint) +0:72 'u4x1' ( temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child ( temp 2X1 matrix of uint) +0:74 'r10' ( temp 2X1 matrix of uint) +0:74 transpose ( temp 2X1 matrix of uint) +0:74 'u1x2' ( temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child ( temp 2X2 matrix of uint) +0:75 'r11' ( temp 2X2 matrix of uint) +0:75 transpose ( temp 2X2 matrix of uint) +0:75 'u2x2' ( temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child ( temp 2X3 matrix of uint) +0:76 'r12' ( temp 2X3 matrix of uint) +0:76 transpose ( temp 2X3 matrix of uint) +0:76 'u3x2' ( temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child ( temp 2X4 matrix of uint) +0:77 'r13' ( temp 2X4 matrix of uint) +0:77 transpose ( temp 2X4 matrix of uint) +0:77 'u4x2' ( temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child ( temp 3X1 matrix of uint) +0:79 'r20' ( temp 3X1 matrix of uint) +0:79 transpose ( temp 3X1 matrix of uint) +0:79 'u1x3' ( temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child ( temp 3X2 matrix of uint) +0:80 'r21' ( temp 3X2 matrix of uint) +0:80 transpose ( temp 3X2 matrix of uint) +0:80 'u2x3' ( temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child ( temp 3X3 matrix of uint) +0:81 'r22' ( temp 3X3 matrix of uint) +0:81 transpose ( temp 3X3 matrix of uint) +0:81 'u3x3' ( temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child ( temp 3X4 matrix of uint) +0:82 'r23' ( temp 3X4 matrix of uint) +0:82 transpose ( temp 3X4 matrix of uint) +0:82 'u4x3' ( temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child ( temp 4X1 matrix of uint) +0:84 'r30' ( temp 4X1 matrix of uint) +0:84 transpose ( temp 4X1 matrix of uint) +0:84 'u1x4' ( temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child ( temp 4X2 matrix of uint) +0:85 'r31' ( temp 4X2 matrix of uint) +0:85 transpose ( temp 4X2 matrix of uint) +0:85 'u2x4' ( temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child ( temp 4X3 matrix of uint) +0:86 'r32' ( temp 4X3 matrix of uint) +0:86 transpose ( temp 4X3 matrix of uint) +0:86 'u3x4' ( temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child ( temp 4X4 matrix of uint) +0:87 'r33' ( temp 4X4 matrix of uint) +0:87 transpose ( temp 4X4 matrix of uint) +0:87 'u4x4' ( temp 4X4 matrix of uint) +0:93 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child ( temp 4-component vector of float) +0:95 color: direct index for structure ( temp 4-component vector of float) +0:95 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Branch: Return with expression +0:96 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:93 Function Definition: main( ( temp void) +0:93 Function Parameters: +0:? Sequence +0:93 Sequence +0:93 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:93 color: direct index for structure ( temp 4-component vector of float) +0:93 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:93 Constant: +0:93 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child ( temp 1X1 matrix of int) +0:25 'r00' ( temp 1X1 matrix of int) +0:25 transpose ( temp 1X1 matrix of int) +0:25 'i1x1' ( temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child ( temp 1X2 matrix of int) +0:26 'r01' ( temp 1X2 matrix of int) +0:26 transpose ( temp 1X2 matrix of int) +0:26 'i2x1' ( temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child ( temp 1X3 matrix of int) +0:27 'r02' ( temp 1X3 matrix of int) +0:27 transpose ( temp 1X3 matrix of int) +0:27 'i3x1' ( temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child ( temp 1X4 matrix of int) +0:28 'r03' ( temp 1X4 matrix of int) +0:28 transpose ( temp 1X4 matrix of int) +0:28 'i4x1' ( temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child ( temp 2X1 matrix of int) +0:30 'r10' ( temp 2X1 matrix of int) +0:30 transpose ( temp 2X1 matrix of int) +0:30 'i1x2' ( temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child ( temp 2X2 matrix of int) +0:31 'r11' ( temp 2X2 matrix of int) +0:31 transpose ( temp 2X2 matrix of int) +0:31 'i2x2' ( temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child ( temp 2X3 matrix of int) +0:32 'r12' ( temp 2X3 matrix of int) +0:32 transpose ( temp 2X3 matrix of int) +0:32 'i3x2' ( temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child ( temp 2X4 matrix of int) +0:33 'r13' ( temp 2X4 matrix of int) +0:33 transpose ( temp 2X4 matrix of int) +0:33 'i4x2' ( temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child ( temp 3X1 matrix of int) +0:35 'r20' ( temp 3X1 matrix of int) +0:35 transpose ( temp 3X1 matrix of int) +0:35 'i1x3' ( temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child ( temp 3X2 matrix of int) +0:36 'r21' ( temp 3X2 matrix of int) +0:36 transpose ( temp 3X2 matrix of int) +0:36 'i2x3' ( temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child ( temp 3X3 matrix of int) +0:37 'r22' ( temp 3X3 matrix of int) +0:37 transpose ( temp 3X3 matrix of int) +0:37 'i3x3' ( temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child ( temp 3X4 matrix of int) +0:38 'r23' ( temp 3X4 matrix of int) +0:38 transpose ( temp 3X4 matrix of int) +0:38 'i4x3' ( temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child ( temp 4X1 matrix of int) +0:40 'r30' ( temp 4X1 matrix of int) +0:40 transpose ( temp 4X1 matrix of int) +0:40 'i1x4' ( temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child ( temp 4X2 matrix of int) +0:41 'r31' ( temp 4X2 matrix of int) +0:41 transpose ( temp 4X2 matrix of int) +0:41 'i2x4' ( temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child ( temp 4X3 matrix of int) +0:42 'r32' ( temp 4X3 matrix of int) +0:42 transpose ( temp 4X3 matrix of int) +0:42 'i3x4' ( temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child ( temp 4X4 matrix of int) +0:43 'r33' ( temp 4X4 matrix of int) +0:43 transpose ( temp 4X4 matrix of int) +0:43 'i4x4' ( temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( ( temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child ( temp 1X1 matrix of uint) +0:69 'r00' ( temp 1X1 matrix of uint) +0:69 transpose ( temp 1X1 matrix of uint) +0:69 'u1x1' ( temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child ( temp 1X2 matrix of uint) +0:70 'r01' ( temp 1X2 matrix of uint) +0:70 transpose ( temp 1X2 matrix of uint) +0:70 'u2x1' ( temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child ( temp 1X3 matrix of uint) +0:71 'r02' ( temp 1X3 matrix of uint) +0:71 transpose ( temp 1X3 matrix of uint) +0:71 'u3x1' ( temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child ( temp 1X4 matrix of uint) +0:72 'r03' ( temp 1X4 matrix of uint) +0:72 transpose ( temp 1X4 matrix of uint) +0:72 'u4x1' ( temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child ( temp 2X1 matrix of uint) +0:74 'r10' ( temp 2X1 matrix of uint) +0:74 transpose ( temp 2X1 matrix of uint) +0:74 'u1x2' ( temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child ( temp 2X2 matrix of uint) +0:75 'r11' ( temp 2X2 matrix of uint) +0:75 transpose ( temp 2X2 matrix of uint) +0:75 'u2x2' ( temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child ( temp 2X3 matrix of uint) +0:76 'r12' ( temp 2X3 matrix of uint) +0:76 transpose ( temp 2X3 matrix of uint) +0:76 'u3x2' ( temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child ( temp 2X4 matrix of uint) +0:77 'r13' ( temp 2X4 matrix of uint) +0:77 transpose ( temp 2X4 matrix of uint) +0:77 'u4x2' ( temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child ( temp 3X1 matrix of uint) +0:79 'r20' ( temp 3X1 matrix of uint) +0:79 transpose ( temp 3X1 matrix of uint) +0:79 'u1x3' ( temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child ( temp 3X2 matrix of uint) +0:80 'r21' ( temp 3X2 matrix of uint) +0:80 transpose ( temp 3X2 matrix of uint) +0:80 'u2x3' ( temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child ( temp 3X3 matrix of uint) +0:81 'r22' ( temp 3X3 matrix of uint) +0:81 transpose ( temp 3X3 matrix of uint) +0:81 'u3x3' ( temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child ( temp 3X4 matrix of uint) +0:82 'r23' ( temp 3X4 matrix of uint) +0:82 transpose ( temp 3X4 matrix of uint) +0:82 'u4x3' ( temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child ( temp 4X1 matrix of uint) +0:84 'r30' ( temp 4X1 matrix of uint) +0:84 transpose ( temp 4X1 matrix of uint) +0:84 'u1x4' ( temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child ( temp 4X2 matrix of uint) +0:85 'r31' ( temp 4X2 matrix of uint) +0:85 transpose ( temp 4X2 matrix of uint) +0:85 'u2x4' ( temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child ( temp 4X3 matrix of uint) +0:86 'r32' ( temp 4X3 matrix of uint) +0:86 transpose ( temp 4X3 matrix of uint) +0:86 'u3x4' ( temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child ( temp 4X4 matrix of uint) +0:87 'r33' ( temp 4X4 matrix of uint) +0:87 transpose ( temp 4X4 matrix of uint) +0:87 'u4x4' ( temp 4X4 matrix of uint) +0:93 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child ( temp 4-component vector of float) +0:95 color: direct index for structure ( temp 4-component vector of float) +0:95 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Branch: Return with expression +0:96 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:93 Function Definition: main( ( temp void) +0:93 Function Parameters: +0:? Sequence +0:93 Sequence +0:93 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:93 color: direct index for structure ( temp 4-component vector of float) +0:93 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:93 Constant: +0:93 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 232 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 229 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "TestIntMatTypes(" + Name 8 "TestUintMatTypes(" + Name 12 "PS_OUTPUT" + MemberName 12(PS_OUTPUT) 0 "color" + Name 14 "@main(" + Name 20 "r00" + Name 21 "i1x1" + Name 27 "r01" + Name 30 "i2x1" + Name 36 "r02" + Name 39 "i3x1" + Name 45 "r03" + Name 48 "i4x1" + Name 51 "r10" + Name 52 "i1x2" + Name 57 "r11" + Name 58 "i2x2" + Name 63 "r12" + Name 66 "i3x2" + Name 71 "r13" + Name 74 "i4x2" + Name 77 "r20" + Name 78 "i1x3" + Name 81 "r21" + Name 82 "i2x3" + Name 87 "r22" + Name 88 "i3x3" + Name 93 "r23" + Name 96 "i4x3" + Name 99 "r30" + Name 100 "i1x4" + Name 103 "r31" + Name 104 "i2x4" + Name 107 "r32" + Name 108 "i3x4" + Name 113 "r33" + Name 114 "i4x4" + Name 121 "r00" + Name 122 "u1x1" + Name 128 "r01" + Name 131 "u2x1" + Name 137 "r02" + Name 140 "u3x1" + Name 146 "r03" + Name 149 "u4x1" + Name 152 "r10" + Name 153 "u1x2" + Name 158 "r11" + Name 159 "u2x2" + Name 164 "r12" + Name 167 "u3x2" + Name 172 "r13" + Name 175 "u4x2" + Name 178 "r20" + Name 179 "u1x3" + Name 182 "r21" + Name 183 "u2x3" + Name 188 "r22" + Name 189 "u3x3" + Name 194 "r23" + Name 197 "u4x3" + Name 200 "r30" + Name 201 "u1x4" + Name 204 "r31" + Name 205 "u2x4" + Name 208 "r32" + Name 209 "u3x4" + Name 214 "r33" + Name 215 "u4x4" + Name 219 "ps_output" + Name 229 "@entryPointOutput.color" + Decorate 229(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12(PS_OUTPUT): TypeStruct 11(fvec4) + 13: TypeFunction 12(PS_OUTPUT) + 16: TypeInt 32 1 + 17: TypeVector 16(int) 1 + 18: TypeMatrix 17(ivec) 1 + 19: TypePointer Function 18 + 24: TypeVector 16(int) 2 + 25: TypeMatrix 24(ivec2) 1 + 26: TypePointer Function 25 + 28: TypeMatrix 17(ivec) 2 + 29: TypePointer Function 28 + 33: TypeVector 16(int) 3 + 34: TypeMatrix 33(ivec3) 1 + 35: TypePointer Function 34 + 37: TypeMatrix 17(ivec) 3 + 38: TypePointer Function 37 + 42: TypeVector 16(int) 4 + 43: TypeMatrix 42(ivec4) 1 + 44: TypePointer Function 43 + 46: TypeMatrix 17(ivec) 4 + 47: TypePointer Function 46 + 55: TypeMatrix 24(ivec2) 2 + 56: TypePointer Function 55 + 61: TypeMatrix 33(ivec3) 2 + 62: TypePointer Function 61 + 64: TypeMatrix 24(ivec2) 3 + 65: TypePointer Function 64 + 69: TypeMatrix 42(ivec4) 2 + 70: TypePointer Function 69 + 72: TypeMatrix 24(ivec2) 4 + 73: TypePointer Function 72 + 85: TypeMatrix 33(ivec3) 3 + 86: TypePointer Function 85 + 91: TypeMatrix 42(ivec4) 3 + 92: TypePointer Function 91 + 94: TypeMatrix 33(ivec3) 4 + 95: TypePointer Function 94 + 111: TypeMatrix 42(ivec4) 4 + 112: TypePointer Function 111 + 117: TypeInt 32 0 + 118: TypeVector 117(int) 1 + 119: TypeMatrix 118(ivec) 1 + 120: TypePointer Function 119 + 125: TypeVector 117(int) 2 + 126: TypeMatrix 125(ivec2) 1 + 127: TypePointer Function 126 + 129: TypeMatrix 118(ivec) 2 + 130: TypePointer Function 129 + 134: TypeVector 117(int) 3 + 135: TypeMatrix 134(ivec3) 1 + 136: TypePointer Function 135 + 138: TypeMatrix 118(ivec) 3 + 139: TypePointer Function 138 + 143: TypeVector 117(int) 4 + 144: TypeMatrix 143(ivec4) 1 + 145: TypePointer Function 144 + 147: TypeMatrix 118(ivec) 4 + 148: TypePointer Function 147 + 156: TypeMatrix 125(ivec2) 2 + 157: TypePointer Function 156 + 162: TypeMatrix 134(ivec3) 2 + 163: TypePointer Function 162 + 165: TypeMatrix 125(ivec2) 3 + 166: TypePointer Function 165 + 170: TypeMatrix 143(ivec4) 2 + 171: TypePointer Function 170 + 173: TypeMatrix 125(ivec2) 4 + 174: TypePointer Function 173 + 186: TypeMatrix 134(ivec3) 3 + 187: TypePointer Function 186 + 192: TypeMatrix 143(ivec4) 3 + 193: TypePointer Function 192 + 195: TypeMatrix 134(ivec3) 4 + 196: TypePointer Function 195 + 212: TypeMatrix 143(ivec4) 4 + 213: TypePointer Function 212 + 218: TypePointer Function 12(PS_OUTPUT) + 220: 16(int) Constant 0 + 221: 10(float) Constant 0 + 222: 11(fvec4) ConstantComposite 221 221 221 221 + 223: TypePointer Function 11(fvec4) + 228: TypePointer Output 11(fvec4) +229(@entryPointOutput.color): 228(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 230:12(PS_OUTPUT) FunctionCall 14(@main() + 231: 11(fvec4) CompositeExtract 230 0 + Store 229(@entryPointOutput.color) 231 + Return + FunctionEnd +6(TestIntMatTypes(): 2 Function None 3 + 7: Label + 20(r00): 19(ptr) Variable Function + 21(i1x1): 19(ptr) Variable Function + 27(r01): 26(ptr) Variable Function + 30(i2x1): 29(ptr) Variable Function + 36(r02): 35(ptr) Variable Function + 39(i3x1): 38(ptr) Variable Function + 45(r03): 44(ptr) Variable Function + 48(i4x1): 47(ptr) Variable Function + 51(r10): 29(ptr) Variable Function + 52(i1x2): 26(ptr) Variable Function + 57(r11): 56(ptr) Variable Function + 58(i2x2): 56(ptr) Variable Function + 63(r12): 62(ptr) Variable Function + 66(i3x2): 65(ptr) Variable Function + 71(r13): 70(ptr) Variable Function + 74(i4x2): 73(ptr) Variable Function + 77(r20): 38(ptr) Variable Function + 78(i1x3): 35(ptr) Variable Function + 81(r21): 65(ptr) Variable Function + 82(i2x3): 62(ptr) Variable Function + 87(r22): 86(ptr) Variable Function + 88(i3x3): 86(ptr) Variable Function + 93(r23): 92(ptr) Variable Function + 96(i4x3): 95(ptr) Variable Function + 99(r30): 47(ptr) Variable Function + 100(i1x4): 44(ptr) Variable Function + 103(r31): 73(ptr) Variable Function + 104(i2x4): 70(ptr) Variable Function + 107(r32): 95(ptr) Variable Function + 108(i3x4): 92(ptr) Variable Function + 113(r33): 112(ptr) Variable Function + 114(i4x4): 112(ptr) Variable Function + 22: 18 Load 21(i1x1) + 23: 18 Transpose 22 + Store 20(r00) 23 + 31: 28 Load 30(i2x1) + 32: 25 Transpose 31 + Store 27(r01) 32 + 40: 37 Load 39(i3x1) + 41: 34 Transpose 40 + Store 36(r02) 41 + 49: 46 Load 48(i4x1) + 50: 43 Transpose 49 + Store 45(r03) 50 + 53: 25 Load 52(i1x2) + 54: 28 Transpose 53 + Store 51(r10) 54 + 59: 55 Load 58(i2x2) + 60: 55 Transpose 59 + Store 57(r11) 60 + 67: 64 Load 66(i3x2) + 68: 61 Transpose 67 + Store 63(r12) 68 + 75: 72 Load 74(i4x2) + 76: 69 Transpose 75 + Store 71(r13) 76 + 79: 34 Load 78(i1x3) + 80: 37 Transpose 79 + Store 77(r20) 80 + 83: 61 Load 82(i2x3) + 84: 64 Transpose 83 + Store 81(r21) 84 + 89: 85 Load 88(i3x3) + 90: 85 Transpose 89 + Store 87(r22) 90 + 97: 94 Load 96(i4x3) + 98: 91 Transpose 97 + Store 93(r23) 98 + 101: 43 Load 100(i1x4) + 102: 46 Transpose 101 + Store 99(r30) 102 + 105: 69 Load 104(i2x4) + 106: 72 Transpose 105 + Store 103(r31) 106 + 109: 91 Load 108(i3x4) + 110: 94 Transpose 109 + Store 107(r32) 110 + 115: 111 Load 114(i4x4) + 116: 111 Transpose 115 + Store 113(r33) 116 + Return + FunctionEnd +8(TestUintMatTypes(): 2 Function None 3 + 9: Label + 121(r00): 120(ptr) Variable Function + 122(u1x1): 120(ptr) Variable Function + 128(r01): 127(ptr) Variable Function + 131(u2x1): 130(ptr) Variable Function + 137(r02): 136(ptr) Variable Function + 140(u3x1): 139(ptr) Variable Function + 146(r03): 145(ptr) Variable Function + 149(u4x1): 148(ptr) Variable Function + 152(r10): 130(ptr) Variable Function + 153(u1x2): 127(ptr) Variable Function + 158(r11): 157(ptr) Variable Function + 159(u2x2): 157(ptr) Variable Function + 164(r12): 163(ptr) Variable Function + 167(u3x2): 166(ptr) Variable Function + 172(r13): 171(ptr) Variable Function + 175(u4x2): 174(ptr) Variable Function + 178(r20): 139(ptr) Variable Function + 179(u1x3): 136(ptr) Variable Function + 182(r21): 166(ptr) Variable Function + 183(u2x3): 163(ptr) Variable Function + 188(r22): 187(ptr) Variable Function + 189(u3x3): 187(ptr) Variable Function + 194(r23): 193(ptr) Variable Function + 197(u4x3): 196(ptr) Variable Function + 200(r30): 148(ptr) Variable Function + 201(u1x4): 145(ptr) Variable Function + 204(r31): 174(ptr) Variable Function + 205(u2x4): 171(ptr) Variable Function + 208(r32): 196(ptr) Variable Function + 209(u3x4): 193(ptr) Variable Function + 214(r33): 213(ptr) Variable Function + 215(u4x4): 213(ptr) Variable Function + 123: 119 Load 122(u1x1) + 124: 119 Transpose 123 + Store 121(r00) 124 + 132: 129 Load 131(u2x1) + 133: 126 Transpose 132 + Store 128(r01) 133 + 141: 138 Load 140(u3x1) + 142: 135 Transpose 141 + Store 137(r02) 142 + 150: 147 Load 149(u4x1) + 151: 144 Transpose 150 + Store 146(r03) 151 + 154: 126 Load 153(u1x2) + 155: 129 Transpose 154 + Store 152(r10) 155 + 160: 156 Load 159(u2x2) + 161: 156 Transpose 160 + Store 158(r11) 161 + 168: 165 Load 167(u3x2) + 169: 162 Transpose 168 + Store 164(r12) 169 + 176: 173 Load 175(u4x2) + 177: 170 Transpose 176 + Store 172(r13) 177 + 180: 135 Load 179(u1x3) + 181: 138 Transpose 180 + Store 178(r20) 181 + 184: 162 Load 183(u2x3) + 185: 165 Transpose 184 + Store 182(r21) 185 + 190: 186 Load 189(u3x3) + 191: 186 Transpose 190 + Store 188(r22) 191 + 198: 195 Load 197(u4x3) + 199: 192 Transpose 198 + Store 194(r23) 199 + 202: 144 Load 201(u1x4) + 203: 147 Transpose 202 + Store 200(r30) 203 + 206: 170 Load 205(u2x4) + 207: 173 Transpose 206 + Store 204(r31) 207 + 210: 192 Load 209(u3x4) + 211: 195 Transpose 210 + Store 208(r32) 211 + 216: 212 Load 215(u4x4) + 217: 212 Transpose 216 + Store 214(r33) 217 + Return + FunctionEnd + 14(@main():12(PS_OUTPUT) Function None 13 + 15: Label + 219(ps_output): 218(ptr) Variable Function + 224: 223(ptr) AccessChain 219(ps_output) 220 + Store 224 222 + 225:12(PS_OUTPUT) Load 219(ps_output) + ReturnValue 225 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matpack-1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matpack-1.frag.out new file mode 100644 index 0000000000..b92f79d268 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matpack-1.frag.out @@ -0,0 +1,187 @@ +hlsl.matpack-1.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: @main( ( temp 4-component vector of float) +0:23 Function Parameters: +0:? Sequence +0:25 Branch: Return with expression +0:24 add ( temp 4-component vector of float) +0:24 vector-times-matrix ( temp 4-component vector of float) +0:24 vec1: direct index for structure ( temp 4-component vector of float) +0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:24 Constant: +0:24 0 (const uint) +0:24 Constant: +0:24 2 (const int) +0:24 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:24 Constant: +0:24 0 (const uint) +0:24 Constant: +0:24 0 (const int) +0:25 vector-times-matrix ( temp 4-component vector of float) +0:25 vec1: direct index for structure ( temp 4-component vector of float) +0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:25 Constant: +0:25 1 (const uint) +0:25 Constant: +0:25 1 (const int) +0:25 mat1: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:25 Constant: +0:25 1 (const uint) +0:25 Constant: +0:25 0 (const int) +0:23 Function Definition: main( ( temp void) +0:23 Function Parameters: +0:? Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:23 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: @main( ( temp 4-component vector of float) +0:23 Function Parameters: +0:? Sequence +0:25 Branch: Return with expression +0:24 add ( temp 4-component vector of float) +0:24 vector-times-matrix ( temp 4-component vector of float) +0:24 vec1: direct index for structure ( temp 4-component vector of float) +0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:24 Constant: +0:24 0 (const uint) +0:24 Constant: +0:24 2 (const int) +0:24 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:24 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo}) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:24 Constant: +0:24 0 (const uint) +0:24 Constant: +0:24 0 (const int) +0:25 vector-times-matrix ( temp 4-component vector of float) +0:25 vec1: direct index for structure ( temp 4-component vector of float) +0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:25 Constant: +0:25 1 (const uint) +0:25 Constant: +0:25 1 (const int) +0:25 mat1: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:25 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1}) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:25 Constant: +0:25 1 (const uint) +0:25 Constant: +0:25 0 (const int) +0:23 Function Definition: main( ( temp void) +0:23 Function Parameters: +0:? Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:23 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, temp 4-component vector of float vec1, temp float foo} g_MyBuffer1, layout( row_major std140) uniform structure{layout( column_major) temp 4X4 matrix of float mat1, temp 4-component vector of float vec1} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 37 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "MyBuffer1" + MemberName 12(MyBuffer1) 0 "mat1" + MemberName 12(MyBuffer1) 1 "mat2" + MemberName 12(MyBuffer1) 2 "vec1" + MemberName 12(MyBuffer1) 3 "foo" + Name 13 "MyBuffer2" + MemberName 13(MyBuffer2) 0 "mat1" + MemberName 13(MyBuffer2) 1 "vec1" + Name 14 "Example" + MemberName 14(Example) 0 "g_MyBuffer1" + MemberName 14(Example) 1 "g_MyBuffer2" + MemberName 14(Example) 2 "mat1a" + Name 16 "" + Name 37 "@entryPointOutput" + MemberDecorate 12(MyBuffer1) 0 RowMajor + MemberDecorate 12(MyBuffer1) 0 Offset 0 + MemberDecorate 12(MyBuffer1) 0 MatrixStride 16 + MemberDecorate 12(MyBuffer1) 1 ColMajor + MemberDecorate 12(MyBuffer1) 1 Offset 64 + MemberDecorate 12(MyBuffer1) 1 MatrixStride 16 + MemberDecorate 12(MyBuffer1) 2 Offset 128 + MemberDecorate 12(MyBuffer1) 3 Offset 144 + MemberDecorate 13(MyBuffer2) 0 ColMajor + MemberDecorate 13(MyBuffer2) 0 Offset 0 + MemberDecorate 13(MyBuffer2) 0 MatrixStride 16 + MemberDecorate 13(MyBuffer2) 1 Offset 64 + MemberDecorate 14(Example) 0 Offset 0 + MemberDecorate 14(Example) 1 Offset 160 + MemberDecorate 14(Example) 2 RowMajor + MemberDecorate 14(Example) 2 Offset 240 + MemberDecorate 14(Example) 2 MatrixStride 16 + Decorate 14(Example) Block + Decorate 16 DescriptorSet 0 + Decorate 37(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeMatrix 7(fvec4) 4 + 12(MyBuffer1): TypeStruct 11 11 7(fvec4) 6(float) + 13(MyBuffer2): TypeStruct 11 7(fvec4) + 14(Example): TypeStruct 12(MyBuffer1) 13(MyBuffer2) 11 + 15: TypePointer Uniform 14(Example) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: 17(int) Constant 2 + 20: TypePointer Uniform 7(fvec4) + 23: TypePointer Uniform 11 + 27: 17(int) Constant 1 + 36: TypePointer Output 7(fvec4) +37(@entryPointOutput): 36(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 38: 7(fvec4) FunctionCall 9(@main() + Store 37(@entryPointOutput) 38 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 21: 20(ptr) AccessChain 16 18 19 + 22: 7(fvec4) Load 21 + 24: 23(ptr) AccessChain 16 18 18 + 25: 11 Load 24 + 26: 7(fvec4) VectorTimesMatrix 22 25 + 28: 20(ptr) AccessChain 16 27 27 + 29: 7(fvec4) Load 28 + 30: 23(ptr) AccessChain 16 27 18 + 31: 11 Load 30 + 32: 7(fvec4) VectorTimesMatrix 29 31 + 33: 7(fvec4) FAdd 26 32 + ReturnValue 33 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out new file mode 100644 index 0000000000..2750d76acd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out @@ -0,0 +1,268 @@ +hlsl.matpack-pragma.frag +WARNING: 0:19: 'random_string_foo' : unknown pack_matrix pragma value + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:29 Function Definition: @main( ( temp 4-component vector of float) +0:29 Function Parameters: +0:? Sequence +0:32 Branch: Return with expression +0:32 add ( temp 4-component vector of float) +0:32 add ( temp 4-component vector of float) +0:31 add ( temp 4-component vector of float) +0:31 add ( temp 4-component vector of float) +0:31 add ( temp 4-component vector of float) +0:31 direct index (layout( row_major) temp 4-component vector of float) +0:31 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) +0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:31 Constant: +0:31 0 (const uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 0 (const int) +0:31 direct index (layout( column_major) temp 4-component vector of float) +0:31 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) +0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:31 Constant: +0:31 0 (const uint) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 0 (const int) +0:31 direct index (layout( column_major) temp 4-component vector of float) +0:31 mat3: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) +0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:31 Constant: +0:31 0 (const uint) +0:31 Constant: +0:31 2 (const int) +0:31 Constant: +0:31 0 (const int) +0:32 direct index (layout( row_major) temp 4-component vector of float) +0:32 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0 (const int) +0:32 direct index (layout( column_major) temp 4-component vector of float) +0:32 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:32 direct index (layout( row_major) temp 4-component vector of float) +0:32 mat3: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 2 (const int) +0:32 Constant: +0:32 0 (const int) +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:29 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:29 Function Definition: @main( ( temp 4-component vector of float) +0:29 Function Parameters: +0:? Sequence +0:32 Branch: Return with expression +0:32 add ( temp 4-component vector of float) +0:32 add ( temp 4-component vector of float) +0:31 add ( temp 4-component vector of float) +0:31 add ( temp 4-component vector of float) +0:31 add ( temp 4-component vector of float) +0:31 direct index (layout( row_major) temp 4-component vector of float) +0:31 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) +0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:31 Constant: +0:31 0 (const uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 0 (const int) +0:31 direct index (layout( column_major) temp 4-component vector of float) +0:31 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) +0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:31 Constant: +0:31 0 (const uint) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 0 (const int) +0:31 direct index (layout( column_major) temp 4-component vector of float) +0:31 mat3: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:31 g_MyBuffer1: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3}) +0:31 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:31 Constant: +0:31 0 (const uint) +0:31 Constant: +0:31 2 (const int) +0:31 Constant: +0:31 0 (const int) +0:32 direct index (layout( row_major) temp 4-component vector of float) +0:32 mat1: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0 (const int) +0:32 direct index (layout( column_major) temp 4-component vector of float) +0:32 mat2: direct index for structure (layout( column_major) temp 4X4 matrix of float) +0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:32 direct index (layout( row_major) temp 4-component vector of float) +0:32 mat3: direct index for structure (layout( row_major) temp 4X4 matrix of float) +0:32 g_MyBuffer2: direct index for structure (layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3}) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:32 Constant: +0:32 1 (const uint) +0:32 Constant: +0:32 2 (const int) +0:32 Constant: +0:32 0 (const int) +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:29 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( column_major) temp 4X4 matrix of float mat3} g_MyBuffer1, layout( row_major std140) uniform structure{layout( row_major) temp 4X4 matrix of float mat1, layout( column_major) temp 4X4 matrix of float mat2, layout( row_major) temp 4X4 matrix of float mat3} g_MyBuffer2, layout( row_major std140) uniform 4X4 matrix of float mat1a}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 42 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "MyBuffer1" + MemberName 12(MyBuffer1) 0 "mat1" + MemberName 12(MyBuffer1) 1 "mat2" + MemberName 12(MyBuffer1) 2 "mat3" + Name 13 "MyBuffer2" + MemberName 13(MyBuffer2) 0 "mat1" + MemberName 13(MyBuffer2) 1 "mat2" + MemberName 13(MyBuffer2) 2 "mat3" + Name 14 "Example" + MemberName 14(Example) 0 "g_MyBuffer1" + MemberName 14(Example) 1 "g_MyBuffer2" + MemberName 14(Example) 2 "mat1a" + Name 16 "" + Name 42 "@entryPointOutput" + MemberDecorate 12(MyBuffer1) 0 RowMajor + MemberDecorate 12(MyBuffer1) 0 Offset 0 + MemberDecorate 12(MyBuffer1) 0 MatrixStride 16 + MemberDecorate 12(MyBuffer1) 1 ColMajor + MemberDecorate 12(MyBuffer1) 1 Offset 64 + MemberDecorate 12(MyBuffer1) 1 MatrixStride 16 + MemberDecorate 12(MyBuffer1) 2 ColMajor + MemberDecorate 12(MyBuffer1) 2 Offset 128 + MemberDecorate 12(MyBuffer1) 2 MatrixStride 16 + MemberDecorate 13(MyBuffer2) 0 RowMajor + MemberDecorate 13(MyBuffer2) 0 Offset 0 + MemberDecorate 13(MyBuffer2) 0 MatrixStride 16 + MemberDecorate 13(MyBuffer2) 1 ColMajor + MemberDecorate 13(MyBuffer2) 1 Offset 64 + MemberDecorate 13(MyBuffer2) 1 MatrixStride 16 + MemberDecorate 13(MyBuffer2) 2 RowMajor + MemberDecorate 13(MyBuffer2) 2 Offset 128 + MemberDecorate 13(MyBuffer2) 2 MatrixStride 16 + MemberDecorate 14(Example) 0 Offset 0 + MemberDecorate 14(Example) 1 Offset 192 + MemberDecorate 14(Example) 2 RowMajor + MemberDecorate 14(Example) 2 Offset 384 + MemberDecorate 14(Example) 2 MatrixStride 16 + Decorate 14(Example) Block + Decorate 16 DescriptorSet 0 + Decorate 42(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeMatrix 7(fvec4) 4 + 12(MyBuffer1): TypeStruct 11 11 11 + 13(MyBuffer2): TypeStruct 11 11 11 + 14(Example): TypeStruct 12(MyBuffer1) 13(MyBuffer2) 11 + 15: TypePointer Uniform 14(Example) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 7(fvec4) + 22: 17(int) Constant 1 + 26: 17(int) Constant 2 + 41: TypePointer Output 7(fvec4) +42(@entryPointOutput): 41(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 43: 7(fvec4) FunctionCall 9(@main() + Store 42(@entryPointOutput) 43 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 20: 19(ptr) AccessChain 16 18 18 18 + 21: 7(fvec4) Load 20 + 23: 19(ptr) AccessChain 16 18 22 18 + 24: 7(fvec4) Load 23 + 25: 7(fvec4) FAdd 21 24 + 27: 19(ptr) AccessChain 16 18 26 18 + 28: 7(fvec4) Load 27 + 29: 7(fvec4) FAdd 25 28 + 30: 19(ptr) AccessChain 16 22 18 18 + 31: 7(fvec4) Load 30 + 32: 7(fvec4) FAdd 29 31 + 33: 19(ptr) AccessChain 16 22 22 18 + 34: 7(fvec4) Load 33 + 35: 7(fvec4) FAdd 32 34 + 36: 19(ptr) AccessChain 16 22 26 18 + 37: 7(fvec4) Load 36 + 38: 7(fvec4) FAdd 35 37 + ReturnValue 38 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out new file mode 100644 index 0000000000..9bf7e5604a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out @@ -0,0 +1,852 @@ +hlsl.matrixSwizzle.vert +Shader version: 500 +0:? Sequence +0:2 Function Definition: @ShaderFunction(f1; ( temp void) +0:2 Function Parameters: +0:2 'inf' ( in float) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 4-component vector of float) +0:7 'm' ( temp 3X4 matrix of float) +0:7 Constant: +0:7 2 (const int) +0:7 Constant: +0:7 3 (const int) +0:7 Constant: +0:7 1.000000 +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 direct index ( temp 4-component vector of float) +0:8 'm' ( temp 3X4 matrix of float) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 Constant: +0:8 2.000000 +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float) +0:9 direct index ( temp 4-component vector of float) +0:9 'm' ( temp 3X4 matrix of float) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 3 (const int) +0:9 Constant: +0:9 2.000000 +0:11 move second child to first child ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float) +0:11 'm' ( temp 3X4 matrix of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:12 move second child to first child ( temp 4-component vector of float) +0:12 direct index ( temp 4-component vector of float) +0:12 'm' ( temp 3X4 matrix of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 3.000000 +0:12 3.000000 +0:12 3.000000 +0:12 3.000000 +0:13 move second child to first child ( temp 4-component vector of float) +0:13 direct index ( temp 4-component vector of float) +0:13 'm' ( temp 3X4 matrix of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 3.000000 +0:13 3.000000 +0:13 3.000000 +0:13 3.000000 +0:? Sequence +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 4-component vector of float) +0:18 'm' ( temp 3X4 matrix of float) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 'f3' ( temp 3-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 4-component vector of float) +0:18 'm' ( temp 3X4 matrix of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( temp float) +0:18 'f3' ( temp 3-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 4-component vector of float) +0:18 'm' ( temp 3X4 matrix of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp float) +0:18 'f3' ( temp 3-component vector of float) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 move second child to first child ( temp 3-component vector of float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 5.000000 +0:19 5.000000 +0:19 5.000000 +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 direct index ( temp 4-component vector of float) +0:19 'm' ( temp 3X4 matrix of float) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 0 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 direct index ( temp 4-component vector of float) +0:19 'm' ( temp 3X4 matrix of float) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 direct index ( temp float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 1 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 direct index ( temp 4-component vector of float) +0:19 'm' ( temp 3X4 matrix of float) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 3-component vector of float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 vector-scale ( temp 3-component vector of float) +0:20 Constant: +0:20 2.000000 +0:20 'f3' ( temp 3-component vector of float) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 direct index ( temp 4-component vector of float) +0:20 'm' ( temp 3X4 matrix of float) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 direct index ( temp float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 direct index ( temp 4-component vector of float) +0:20 'm' ( temp 3X4 matrix of float) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 direct index ( temp float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 Constant: +0:20 1 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 direct index ( temp 4-component vector of float) +0:20 'm' ( temp 3X4 matrix of float) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 direct index ( temp float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 Constant: +0:20 2 (const int) +0:23 move second child to first child ( temp 3-component vector of float) +0:23 'f3' ( temp 3-component vector of float) +0:23 matrix swizzle ( temp 3-component vector of float) +0:23 'm' ( temp 3X4 matrix of float) +0:23 Sequence +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0 (const int) +0:2 Function Definition: ShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? 'inf' ( temp float) +0:? 'inf' (layout( location=0) in float) +0:2 Function Call: @ShaderFunction(f1; ( temp void) +0:? 'inf' ( temp float) +0:27 Function Definition: createMat3x3(vf3;vf3;vf3; ( temp 3X3 matrix of float) +0:27 Function Parameters: +0:27 'a' ( in 3-component vector of float) +0:27 'b' ( in 3-component vector of float) +0:27 'c' ( in 3-component vector of float) +0:? Sequence +0:? Sequence +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 direct index ( temp 3-component vector of float) +0:29 'm' ( temp 3X3 matrix of float) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 direct index ( temp float) +0:29 'a' ( in 3-component vector of float) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 direct index ( temp 3-component vector of float) +0:29 'm' ( temp 3X3 matrix of float) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 direct index ( temp float) +0:29 'a' ( in 3-component vector of float) +0:29 Constant: +0:29 1 (const int) +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 direct index ( temp 3-component vector of float) +0:29 'm' ( temp 3X3 matrix of float) +0:29 Constant: +0:29 2 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 direct index ( temp float) +0:29 'a' ( in 3-component vector of float) +0:29 Constant: +0:29 2 (const int) +0:? Sequence +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'm' ( temp 3X3 matrix of float) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 direct index ( temp float) +0:30 'b' ( in 3-component vector of float) +0:30 Constant: +0:30 0 (const int) +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'm' ( temp 3X3 matrix of float) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 direct index ( temp float) +0:30 'b' ( in 3-component vector of float) +0:30 Constant: +0:30 1 (const int) +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'm' ( temp 3X3 matrix of float) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 direct index ( temp float) +0:30 'b' ( in 3-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:? Sequence +0:31 move second child to first child ( temp float) +0:31 direct index ( temp float) +0:31 direct index ( temp 3-component vector of float) +0:31 'm' ( temp 3X3 matrix of float) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 2 (const int) +0:31 direct index ( temp float) +0:31 'c' ( in 3-component vector of float) +0:31 Constant: +0:31 0 (const int) +0:31 move second child to first child ( temp float) +0:31 direct index ( temp float) +0:31 direct index ( temp 3-component vector of float) +0:31 'm' ( temp 3X3 matrix of float) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 2 (const int) +0:31 direct index ( temp float) +0:31 'c' ( in 3-component vector of float) +0:31 Constant: +0:31 1 (const int) +0:31 move second child to first child ( temp float) +0:31 direct index ( temp float) +0:31 direct index ( temp 3-component vector of float) +0:31 'm' ( temp 3X3 matrix of float) +0:31 Constant: +0:31 2 (const int) +0:31 Constant: +0:31 2 (const int) +0:31 direct index ( temp float) +0:31 'c' ( in 3-component vector of float) +0:31 Constant: +0:31 2 (const int) +0:32 Branch: Return with expression +0:32 'm' ( temp 3X3 matrix of float) +0:? Linker Objects +0:? 'inf' (layout( location=0) in float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:2 Function Definition: @ShaderFunction(f1; ( temp void) +0:2 Function Parameters: +0:2 'inf' ( in float) +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 direct index ( temp 4-component vector of float) +0:7 'm' ( temp 3X4 matrix of float) +0:7 Constant: +0:7 2 (const int) +0:7 Constant: +0:7 3 (const int) +0:7 Constant: +0:7 1.000000 +0:8 move second child to first child ( temp float) +0:8 direct index ( temp float) +0:8 direct index ( temp 4-component vector of float) +0:8 'm' ( temp 3X4 matrix of float) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 3 (const int) +0:8 Constant: +0:8 2.000000 +0:9 move second child to first child ( temp float) +0:9 direct index ( temp float) +0:9 direct index ( temp 4-component vector of float) +0:9 'm' ( temp 3X4 matrix of float) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 3 (const int) +0:9 Constant: +0:9 2.000000 +0:11 move second child to first child ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float) +0:11 'm' ( temp 3X4 matrix of float) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:12 move second child to first child ( temp 4-component vector of float) +0:12 direct index ( temp 4-component vector of float) +0:12 'm' ( temp 3X4 matrix of float) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 3.000000 +0:12 3.000000 +0:12 3.000000 +0:12 3.000000 +0:13 move second child to first child ( temp 4-component vector of float) +0:13 direct index ( temp 4-component vector of float) +0:13 'm' ( temp 3X4 matrix of float) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 3.000000 +0:13 3.000000 +0:13 3.000000 +0:13 3.000000 +0:? Sequence +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 4-component vector of float) +0:18 'm' ( temp 3X4 matrix of float) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( temp float) +0:18 'f3' ( temp 3-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 4-component vector of float) +0:18 'm' ( temp 3X4 matrix of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( temp float) +0:18 'f3' ( temp 3-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 direct index ( temp 4-component vector of float) +0:18 'm' ( temp 3X4 matrix of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:18 direct index ( temp float) +0:18 'f3' ( temp 3-component vector of float) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 move second child to first child ( temp 3-component vector of float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 5.000000 +0:19 5.000000 +0:19 5.000000 +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 direct index ( temp 4-component vector of float) +0:19 'm' ( temp 3X4 matrix of float) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 0 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 direct index ( temp 4-component vector of float) +0:19 'm' ( temp 3X4 matrix of float) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 direct index ( temp float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 1 (const int) +0:19 move second child to first child ( temp float) +0:19 direct index ( temp float) +0:19 direct index ( temp 4-component vector of float) +0:19 'm' ( temp 3X4 matrix of float) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 'intermVec' ( temp 3-component vector of float) +0:19 Constant: +0:19 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 3-component vector of float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 vector-scale ( temp 3-component vector of float) +0:20 Constant: +0:20 2.000000 +0:20 'f3' ( temp 3-component vector of float) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 direct index ( temp 4-component vector of float) +0:20 'm' ( temp 3X4 matrix of float) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 direct index ( temp float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 direct index ( temp 4-component vector of float) +0:20 'm' ( temp 3X4 matrix of float) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 direct index ( temp float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 Constant: +0:20 1 (const int) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 direct index ( temp 4-component vector of float) +0:20 'm' ( temp 3X4 matrix of float) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 direct index ( temp float) +0:20 'intermVec' ( temp 3-component vector of float) +0:20 Constant: +0:20 2 (const int) +0:23 move second child to first child ( temp 3-component vector of float) +0:23 'f3' ( temp 3-component vector of float) +0:23 matrix swizzle ( temp 3-component vector of float) +0:23 'm' ( temp 3X4 matrix of float) +0:23 Sequence +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 0 (const int) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0 (const int) +0:2 Function Definition: ShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp float) +0:? 'inf' ( temp float) +0:? 'inf' (layout( location=0) in float) +0:2 Function Call: @ShaderFunction(f1; ( temp void) +0:? 'inf' ( temp float) +0:27 Function Definition: createMat3x3(vf3;vf3;vf3; ( temp 3X3 matrix of float) +0:27 Function Parameters: +0:27 'a' ( in 3-component vector of float) +0:27 'b' ( in 3-component vector of float) +0:27 'c' ( in 3-component vector of float) +0:? Sequence +0:? Sequence +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 direct index ( temp 3-component vector of float) +0:29 'm' ( temp 3X3 matrix of float) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 direct index ( temp float) +0:29 'a' ( in 3-component vector of float) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 direct index ( temp 3-component vector of float) +0:29 'm' ( temp 3X3 matrix of float) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 direct index ( temp float) +0:29 'a' ( in 3-component vector of float) +0:29 Constant: +0:29 1 (const int) +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 direct index ( temp 3-component vector of float) +0:29 'm' ( temp 3X3 matrix of float) +0:29 Constant: +0:29 2 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 direct index ( temp float) +0:29 'a' ( in 3-component vector of float) +0:29 Constant: +0:29 2 (const int) +0:? Sequence +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'm' ( temp 3X3 matrix of float) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 direct index ( temp float) +0:30 'b' ( in 3-component vector of float) +0:30 Constant: +0:30 0 (const int) +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'm' ( temp 3X3 matrix of float) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 direct index ( temp float) +0:30 'b' ( in 3-component vector of float) +0:30 Constant: +0:30 1 (const int) +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'm' ( temp 3X3 matrix of float) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 direct index ( temp float) +0:30 'b' ( in 3-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:? Sequence +0:31 move second child to first child ( temp float) +0:31 direct index ( temp float) +0:31 direct index ( temp 3-component vector of float) +0:31 'm' ( temp 3X3 matrix of float) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 2 (const int) +0:31 direct index ( temp float) +0:31 'c' ( in 3-component vector of float) +0:31 Constant: +0:31 0 (const int) +0:31 move second child to first child ( temp float) +0:31 direct index ( temp float) +0:31 direct index ( temp 3-component vector of float) +0:31 'm' ( temp 3X3 matrix of float) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 2 (const int) +0:31 direct index ( temp float) +0:31 'c' ( in 3-component vector of float) +0:31 Constant: +0:31 1 (const int) +0:31 move second child to first child ( temp float) +0:31 direct index ( temp float) +0:31 direct index ( temp 3-component vector of float) +0:31 'm' ( temp 3X3 matrix of float) +0:31 Constant: +0:31 2 (const int) +0:31 Constant: +0:31 2 (const int) +0:31 direct index ( temp float) +0:31 'c' ( in 3-component vector of float) +0:31 Constant: +0:31 2 (const int) +0:32 Branch: Return with expression +0:32 'm' ( temp 3X3 matrix of float) +0:? Linker Objects +0:? 'inf' (layout( location=0) in float) + +Missing functionality: matrix swizzle +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 118 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "ShaderFunction" 81 + Source HLSL 500 + Name 4 "ShaderFunction" + Name 10 "@ShaderFunction(f1;" + Name 9 "inf" + Name 19 "createMat3x3(vf3;vf3;vf3;" + Name 16 "a" + Name 17 "b" + Name 18 "c" + Name 24 "m" + Name 42 "f3" + Name 55 "intermVec" + Name 67 "intermVec" + Name 79 "inf" + Name 81 "inf" + Name 83 "param" + Name 87 "m" + Decorate 81(inf) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) + 12: TypeVector 6(float) 3 + 13: TypePointer Function 12(fvec3) + 14: TypeMatrix 12(fvec3) 3 + 15: TypeFunction 14 13(ptr) 13(ptr) 13(ptr) + 21: TypeVector 6(float) 4 + 22: TypeMatrix 21(fvec4) 3 + 23: TypePointer Function 22 + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 27: 6(float) Constant 1065353216 + 28: TypeInt 32 0 + 29: 28(int) Constant 3 + 31: 6(float) Constant 1073741824 + 34: 25(int) Constant 0 + 35: 6(float) Constant 1077936128 + 36: 21(fvec4) ConstantComposite 35 35 35 35 + 37: TypePointer Function 21(fvec4) + 39: 25(int) Constant 1 + 43: 28(int) Constant 0 + 47: 28(int) Constant 1 + 51: 28(int) Constant 2 + 56: 6(float) Constant 1084227584 + 57: 12(fvec3) ConstantComposite 56 56 56 + 80: TypePointer Input 6(float) + 81(inf): 80(ptr) Variable Input + 86: TypePointer Function 14 +4(ShaderFunction): 2 Function None 3 + 5: Label + 79(inf): 7(ptr) Variable Function + 83(param): 7(ptr) Variable Function + 82: 6(float) Load 81(inf) + Store 79(inf) 82 + 84: 6(float) Load 79(inf) + Store 83(param) 84 + 85: 2 FunctionCall 10(@ShaderFunction(f1;) 83(param) + Return + FunctionEnd +10(@ShaderFunction(f1;): 2 Function None 8 + 9(inf): 7(ptr) FunctionParameter + 11: Label + 24(m): 23(ptr) Variable Function + 42(f3): 13(ptr) Variable Function + 55(intermVec): 13(ptr) Variable Function + 67(intermVec): 13(ptr) Variable Function + 30: 7(ptr) AccessChain 24(m) 26 29 + Store 30 27 + 32: 7(ptr) AccessChain 24(m) 26 29 + Store 32 31 + 33: 7(ptr) AccessChain 24(m) 26 29 + Store 33 31 + 38: 37(ptr) AccessChain 24(m) 34 + Store 38 36 + 40: 37(ptr) AccessChain 24(m) 39 + Store 40 36 + 41: 37(ptr) AccessChain 24(m) 39 + Store 41 36 + 44: 7(ptr) AccessChain 42(f3) 43 + 45: 6(float) Load 44 + 46: 7(ptr) AccessChain 24(m) 34 43 + Store 46 45 + 48: 7(ptr) AccessChain 42(f3) 47 + 49: 6(float) Load 48 + 50: 7(ptr) AccessChain 24(m) 39 47 + Store 50 49 + 52: 7(ptr) AccessChain 42(f3) 51 + 53: 6(float) Load 52 + 54: 7(ptr) AccessChain 24(m) 39 51 + Store 54 53 + Store 55(intermVec) 57 + 58: 7(ptr) AccessChain 55(intermVec) 43 + 59: 6(float) Load 58 + 60: 7(ptr) AccessChain 24(m) 39 43 + Store 60 59 + 61: 7(ptr) AccessChain 55(intermVec) 47 + 62: 6(float) Load 61 + 63: 7(ptr) AccessChain 24(m) 34 47 + Store 63 62 + 64: 7(ptr) AccessChain 55(intermVec) 51 + 65: 6(float) Load 64 + 66: 7(ptr) AccessChain 24(m) 26 43 + Store 66 65 + 68: 12(fvec3) Load 42(f3) + 69: 12(fvec3) VectorTimesScalar 68 31 + Store 67(intermVec) 69 + 70: 7(ptr) AccessChain 67(intermVec) 43 + 71: 6(float) Load 70 + 72: 7(ptr) AccessChain 24(m) 34 43 + Store 72 71 + 73: 7(ptr) AccessChain 67(intermVec) 47 + 74: 6(float) Load 73 + 75: 7(ptr) AccessChain 24(m) 34 47 + Store 75 74 + 76: 7(ptr) AccessChain 67(intermVec) 51 + 77: 6(float) Load 76 + 78: 7(ptr) AccessChain 24(m) 39 43 + Store 78 77 + Store 42(f3) 34 + Return + FunctionEnd +19(createMat3x3(vf3;vf3;vf3;): 14 Function None 15 + 16(a): 13(ptr) FunctionParameter + 17(b): 13(ptr) FunctionParameter + 18(c): 13(ptr) FunctionParameter + 20: Label + 87(m): 86(ptr) Variable Function + 88: 7(ptr) AccessChain 16(a) 43 + 89: 6(float) Load 88 + 90: 7(ptr) AccessChain 87(m) 34 43 + Store 90 89 + 91: 7(ptr) AccessChain 16(a) 47 + 92: 6(float) Load 91 + 93: 7(ptr) AccessChain 87(m) 39 43 + Store 93 92 + 94: 7(ptr) AccessChain 16(a) 51 + 95: 6(float) Load 94 + 96: 7(ptr) AccessChain 87(m) 26 43 + Store 96 95 + 97: 7(ptr) AccessChain 17(b) 43 + 98: 6(float) Load 97 + 99: 7(ptr) AccessChain 87(m) 34 47 + Store 99 98 + 100: 7(ptr) AccessChain 17(b) 47 + 101: 6(float) Load 100 + 102: 7(ptr) AccessChain 87(m) 39 47 + Store 102 101 + 103: 7(ptr) AccessChain 17(b) 51 + 104: 6(float) Load 103 + 105: 7(ptr) AccessChain 87(m) 26 47 + Store 105 104 + 106: 7(ptr) AccessChain 18(c) 43 + 107: 6(float) Load 106 + 108: 7(ptr) AccessChain 87(m) 34 51 + Store 108 107 + 109: 7(ptr) AccessChain 18(c) 47 + 110: 6(float) Load 109 + 111: 7(ptr) AccessChain 87(m) 39 51 + Store 111 110 + 112: 7(ptr) AccessChain 18(c) 51 + 113: 6(float) Load 112 + 114: 7(ptr) AccessChain 87(m) 26 51 + Store 114 113 + 115: 14 Load 87(m) + ReturnValue 115 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out new file mode 100644 index 0000000000..63e5614ef5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.matrixindex.frag.out @@ -0,0 +1,421 @@ +hlsl.matrixindex.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'e1_00' ( temp float) +0:22 Constant: +0:22 10.000000 +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'e1_01' ( temp float) +0:23 Constant: +0:23 11.000000 +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'e1_10' ( temp float) +0:24 Constant: +0:24 12.000000 +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'e1_11' ( temp float) +0:25 Constant: +0:25 13.000000 +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'e1_20' ( temp float) +0:26 Constant: +0:26 14.000000 +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'e1_21' ( temp float) +0:27 Constant: +0:27 15.000000 +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'e2_00' ( temp float) +0:29 Constant: +0:29 20.000000 +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'e2_01' ( temp float) +0:30 Constant: +0:30 21.000000 +0:31 Sequence +0:31 move second child to first child ( temp float) +0:31 'e2_10' ( temp float) +0:31 Constant: +0:31 22.000000 +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'e2_11' ( temp float) +0:32 Constant: +0:32 23.000000 +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'e2_20' ( temp float) +0:33 Constant: +0:33 24.000000 +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'e2_21' ( temp float) +0:34 Constant: +0:34 25.000000 +0:39 Sequence +0:39 move second child to first child ( temp 2-component vector of float) +0:39 'r0a' ( temp 2-component vector of float) +0:39 Constant: +0:39 10.000000 +0:39 11.000000 +0:40 Sequence +0:40 move second child to first child ( temp 2-component vector of float) +0:40 'r1a' ( temp 2-component vector of float) +0:40 Constant: +0:40 12.000000 +0:40 13.000000 +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of float) +0:41 'r2a' ( temp 2-component vector of float) +0:41 Constant: +0:41 14.000000 +0:41 15.000000 +0:43 Sequence +0:43 move second child to first child ( temp 2-component vector of float) +0:43 'r0b' ( temp 2-component vector of float) +0:43 indirect index ( temp 2-component vector of float) +0:43 Constant: +0:43 20.000000 +0:43 21.000000 +0:43 22.000000 +0:43 23.000000 +0:43 24.000000 +0:43 25.000000 +0:43 idx: direct index for structure ( uniform int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) +0:44 Sequence +0:44 move second child to first child ( temp 2-component vector of float) +0:44 'r0c' ( temp 2-component vector of float) +0:44 indirect index ( temp 2-component vector of float) +0:44 um: direct index for structure ( uniform 3X2 matrix of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure ( uniform int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Construct vec4 ( temp 4-component vector of float) +0:47 'e2_11' ( temp float) +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:10 Color: direct index for structure ( temp 4-component vector of float) +0:10 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Constant: +0:10 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'e1_00' ( temp float) +0:22 Constant: +0:22 10.000000 +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'e1_01' ( temp float) +0:23 Constant: +0:23 11.000000 +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'e1_10' ( temp float) +0:24 Constant: +0:24 12.000000 +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'e1_11' ( temp float) +0:25 Constant: +0:25 13.000000 +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'e1_20' ( temp float) +0:26 Constant: +0:26 14.000000 +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'e1_21' ( temp float) +0:27 Constant: +0:27 15.000000 +0:29 Sequence +0:29 move second child to first child ( temp float) +0:29 'e2_00' ( temp float) +0:29 Constant: +0:29 20.000000 +0:30 Sequence +0:30 move second child to first child ( temp float) +0:30 'e2_01' ( temp float) +0:30 Constant: +0:30 21.000000 +0:31 Sequence +0:31 move second child to first child ( temp float) +0:31 'e2_10' ( temp float) +0:31 Constant: +0:31 22.000000 +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'e2_11' ( temp float) +0:32 Constant: +0:32 23.000000 +0:33 Sequence +0:33 move second child to first child ( temp float) +0:33 'e2_20' ( temp float) +0:33 Constant: +0:33 24.000000 +0:34 Sequence +0:34 move second child to first child ( temp float) +0:34 'e2_21' ( temp float) +0:34 Constant: +0:34 25.000000 +0:39 Sequence +0:39 move second child to first child ( temp 2-component vector of float) +0:39 'r0a' ( temp 2-component vector of float) +0:39 Constant: +0:39 10.000000 +0:39 11.000000 +0:40 Sequence +0:40 move second child to first child ( temp 2-component vector of float) +0:40 'r1a' ( temp 2-component vector of float) +0:40 Constant: +0:40 12.000000 +0:40 13.000000 +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of float) +0:41 'r2a' ( temp 2-component vector of float) +0:41 Constant: +0:41 14.000000 +0:41 15.000000 +0:43 Sequence +0:43 move second child to first child ( temp 2-component vector of float) +0:43 'r0b' ( temp 2-component vector of float) +0:43 indirect index ( temp 2-component vector of float) +0:43 Constant: +0:43 20.000000 +0:43 21.000000 +0:43 22.000000 +0:43 23.000000 +0:43 24.000000 +0:43 25.000000 +0:43 idx: direct index for structure ( uniform int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) +0:44 Sequence +0:44 move second child to first child ( temp 2-component vector of float) +0:44 'r0c' ( temp 2-component vector of float) +0:44 indirect index ( temp 2-component vector of float) +0:44 um: direct index for structure ( uniform 3X2 matrix of float) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure ( uniform int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Construct vec4 ( temp 4-component vector of float) +0:47 'e2_11' ( temp float) +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:10 Color: direct index for structure ( temp 4-component vector of float) +0:10 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:10 Constant: +0:10 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int idx, uniform 3X2 matrix of float um}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 83 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 80 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 13 "e1_00" + Name 15 "e1_01" + Name 17 "e1_10" + Name 19 "e1_11" + Name 21 "e1_20" + Name 23 "e1_21" + Name 25 "e2_00" + Name 27 "e2_01" + Name 29 "e2_10" + Name 31 "e2_11" + Name 33 "e2_20" + Name 35 "e2_21" + Name 39 "r0a" + Name 41 "r1a" + Name 43 "r2a" + Name 45 "r0b" + Name 52 "$Global" + MemberName 52($Global) 0 "idx" + MemberName 52($Global) 1 "um" + Name 54 "" + Name 60 "indexable" + Name 63 "r0c" + Name 71 "psout" + Name 80 "@entryPointOutput.Color" + MemberDecorate 52($Global) 0 Offset 0 + MemberDecorate 52($Global) 1 RowMajor + MemberDecorate 52($Global) 1 Offset 16 + MemberDecorate 52($Global) 1 MatrixStride 16 + Decorate 52($Global) Block + Decorate 54 DescriptorSet 0 + Decorate 80(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: 6(float) Constant 1092616192 + 16: 6(float) Constant 1093664768 + 18: 6(float) Constant 1094713344 + 20: 6(float) Constant 1095761920 + 22: 6(float) Constant 1096810496 + 24: 6(float) Constant 1097859072 + 26: 6(float) Constant 1101004800 + 28: 6(float) Constant 1101529088 + 30: 6(float) Constant 1102053376 + 32: 6(float) Constant 1102577664 + 34: 6(float) Constant 1103101952 + 36: 6(float) Constant 1103626240 + 37: TypeVector 6(float) 2 + 38: TypePointer Function 37(fvec2) + 40: 37(fvec2) ConstantComposite 14 16 + 42: 37(fvec2) ConstantComposite 18 20 + 44: 37(fvec2) ConstantComposite 22 24 + 46: TypeMatrix 37(fvec2) 3 + 47: 37(fvec2) ConstantComposite 26 28 + 48: 37(fvec2) ConstantComposite 30 32 + 49: 37(fvec2) ConstantComposite 34 36 + 50: 46 ConstantComposite 47 48 49 + 51: TypeInt 32 1 + 52($Global): TypeStruct 51(int) 46 + 53: TypePointer Uniform 52($Global) + 54: 53(ptr) Variable Uniform + 55: 51(int) Constant 0 + 56: TypePointer Uniform 51(int) + 59: TypePointer Function 46 + 64: 51(int) Constant 1 + 67: TypePointer Uniform 37(fvec2) + 70: TypePointer Function 8(PS_OUTPUT) + 74: TypePointer Function 7(fvec4) + 79: TypePointer Output 7(fvec4) +80(@entryPointOutput.Color): 79(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 81:8(PS_OUTPUT) FunctionCall 10(@main() + 82: 7(fvec4) CompositeExtract 81 0 + Store 80(@entryPointOutput.Color) 82 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(e1_00): 12(ptr) Variable Function + 15(e1_01): 12(ptr) Variable Function + 17(e1_10): 12(ptr) Variable Function + 19(e1_11): 12(ptr) Variable Function + 21(e1_20): 12(ptr) Variable Function + 23(e1_21): 12(ptr) Variable Function + 25(e2_00): 12(ptr) Variable Function + 27(e2_01): 12(ptr) Variable Function + 29(e2_10): 12(ptr) Variable Function + 31(e2_11): 12(ptr) Variable Function + 33(e2_20): 12(ptr) Variable Function + 35(e2_21): 12(ptr) Variable Function + 39(r0a): 38(ptr) Variable Function + 41(r1a): 38(ptr) Variable Function + 43(r2a): 38(ptr) Variable Function + 45(r0b): 38(ptr) Variable Function + 60(indexable): 59(ptr) Variable Function + 63(r0c): 38(ptr) Variable Function + 71(psout): 70(ptr) Variable Function + Store 13(e1_00) 14 + Store 15(e1_01) 16 + Store 17(e1_10) 18 + Store 19(e1_11) 20 + Store 21(e1_20) 22 + Store 23(e1_21) 24 + Store 25(e2_00) 26 + Store 27(e2_01) 28 + Store 29(e2_10) 30 + Store 31(e2_11) 32 + Store 33(e2_20) 34 + Store 35(e2_21) 36 + Store 39(r0a) 40 + Store 41(r1a) 42 + Store 43(r2a) 44 + 57: 56(ptr) AccessChain 54 55 + 58: 51(int) Load 57 + Store 60(indexable) 50 + 61: 38(ptr) AccessChain 60(indexable) 58 + 62: 37(fvec2) Load 61 + Store 45(r0b) 62 + 65: 56(ptr) AccessChain 54 55 + 66: 51(int) Load 65 + 68: 67(ptr) AccessChain 54 64 66 + 69: 37(fvec2) Load 68 + Store 63(r0c) 69 + 72: 6(float) Load 31(e2_11) + 73: 7(fvec4) CompositeConstruct 72 72 72 72 + 75: 74(ptr) AccessChain 71(psout) 55 + Store 75 73 + 76:8(PS_OUTPUT) Load 71(psout) + ReturnValue 76 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.max.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.max.frag.out new file mode 100644 index 0000000000..db215a2c00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.max.frag.out @@ -0,0 +1,129 @@ +hlsl.max.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4;vf4; ( temp 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) +0:? Sequence +0:3 Branch: Return with expression +0:3 max ( temp 4-component vector of float) +0:3 'input1' ( in 4-component vector of float) +0:3 'input2' ( in 4-component vector of float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input1' ( temp 4-component vector of float) +0:? 'input1' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input2' ( temp 4-component vector of float) +0:? 'input2' (layout( location=1) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) +0:? 'input1' ( temp 4-component vector of float) +0:? 'input2' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input1' (layout( location=0) in 4-component vector of float) +0:? 'input2' (layout( location=1) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4;vf4; ( temp 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) +0:? Sequence +0:3 Branch: Return with expression +0:3 max ( temp 4-component vector of float) +0:3 'input1' ( in 4-component vector of float) +0:3 'input2' ( in 4-component vector of float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input1' ( temp 4-component vector of float) +0:? 'input1' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input2' ( temp 4-component vector of float) +0:? 'input2' (layout( location=1) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) +0:? 'input1' ( temp 4-component vector of float) +0:? 'input2' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input1' (layout( location=0) in 4-component vector of float) +0:? 'input2' (layout( location=1) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 21 24 27 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 12 "@PixelShaderFunction(vf4;vf4;" + Name 10 "input1" + Name 11 "input2" + Name 19 "input1" + Name 21 "input1" + Name 23 "input2" + Name 24 "input2" + Name 27 "@entryPointOutput" + Name 28 "param" + Name 30 "param" + Decorate 21(input1) Location 0 + Decorate 24(input2) Location 1 + Decorate 27(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) 8(ptr) + 20: TypePointer Input 7(fvec4) + 21(input1): 20(ptr) Variable Input + 24(input2): 20(ptr) Variable Input + 26: TypePointer Output 7(fvec4) +27(@entryPointOutput): 26(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 19(input1): 8(ptr) Variable Function + 23(input2): 8(ptr) Variable Function + 28(param): 8(ptr) Variable Function + 30(param): 8(ptr) Variable Function + 22: 7(fvec4) Load 21(input1) + Store 19(input1) 22 + 25: 7(fvec4) Load 24(input2) + Store 23(input2) 25 + 29: 7(fvec4) Load 19(input1) + Store 28(param) 29 + 31: 7(fvec4) Load 23(input2) + Store 30(param) 31 + 32: 7(fvec4) FunctionCall 12(@PixelShaderFunction(vf4;vf4;) 28(param) 30(param) + Store 27(@entryPointOutput) 32 + Return + FunctionEnd +12(@PixelShaderFunction(vf4;vf4;): 7(fvec4) Function None 9 + 10(input1): 8(ptr) FunctionParameter + 11(input2): 8(ptr) FunctionParameter + 13: Label + 14: 7(fvec4) Load 10(input1) + 15: 7(fvec4) Load 11(input2) + 16: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 14 15 + ReturnValue 16 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.memberFunCall.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.memberFunCall.frag.out new file mode 100644 index 0000000000..01cb99adb8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.memberFunCall.frag.out @@ -0,0 +1,264 @@ +hlsl.memberFunCall.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Function Definition: method3(f1; ( temp float) +0:1 Function Parameters: +0:1 'a' ( in float) +0:? Sequence +0:1 Branch: Return with expression +0:1 Constant: +0:1 1.000000 +0:4 Function Definition: myContext::method1( ( temp float) +0:4 Function Parameters: +0:4 '@this' ( temp structure{ temp float f}) +0:? Sequence +0:4 Branch: Return with expression +0:4 Function Call: myContext::method2( ( temp float) +0:? '@this' ( temp structure{ temp float f}) +0:5 Function Definition: myContext::method2( ( temp float) +0:5 Function Parameters: +0:5 '@this' ( temp structure{ temp float f}) +0:? Sequence +0:5 Branch: Return with expression +0:5 Function Call: myContext::method3(f1; ( temp float) +0:? '@this' ( temp structure{ temp float f}) +0:5 Constant: +0:5 1.000000 +0:6 Function Definition: myContext::method3(f1; ( temp float) +0:6 Function Parameters: +0:6 '@this' ( temp structure{ temp float f}) +0:6 'a' ( in float) +0:? Sequence +0:6 Branch: Return with expression +0:6 Function Call: myContext::method4(f1;f1; ( temp float) +0:? '@this' ( temp structure{ temp float f}) +0:6 'a' ( in float) +0:6 'a' ( in float) +0:7 Function Definition: myContext::method4(f1;f1; ( temp float) +0:7 Function Parameters: +0:7 '@this' ( temp structure{ temp float f}) +0:7 'a' ( in float) +0:7 'b' ( in float) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp float) +0:7 add ( temp float) +0:7 'a' ( in float) +0:7 'b' ( in float) +0:7 f: direct index for structure ( temp float) +0:7 '@this' ( temp structure{ temp float f}) +0:7 Constant: +0:7 0 (const uint) +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp float) +0:14 f: direct index for structure ( temp float) +0:14 'context' ( temp structure{ temp float f}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 3.000000 +0:15 Branch: Return with expression +0:15 Construct vec4 ( temp 4-component vector of float) +0:15 Function Call: myContext::method1( ( temp float) +0:15 'context' ( temp structure{ temp float f}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Function Definition: method3(f1; ( temp float) +0:1 Function Parameters: +0:1 'a' ( in float) +0:? Sequence +0:1 Branch: Return with expression +0:1 Constant: +0:1 1.000000 +0:4 Function Definition: myContext::method1( ( temp float) +0:4 Function Parameters: +0:4 '@this' ( temp structure{ temp float f}) +0:? Sequence +0:4 Branch: Return with expression +0:4 Function Call: myContext::method2( ( temp float) +0:? '@this' ( temp structure{ temp float f}) +0:5 Function Definition: myContext::method2( ( temp float) +0:5 Function Parameters: +0:5 '@this' ( temp structure{ temp float f}) +0:? Sequence +0:5 Branch: Return with expression +0:5 Function Call: myContext::method3(f1; ( temp float) +0:? '@this' ( temp structure{ temp float f}) +0:5 Constant: +0:5 1.000000 +0:6 Function Definition: myContext::method3(f1; ( temp float) +0:6 Function Parameters: +0:6 '@this' ( temp structure{ temp float f}) +0:6 'a' ( in float) +0:? Sequence +0:6 Branch: Return with expression +0:6 Function Call: myContext::method4(f1;f1; ( temp float) +0:? '@this' ( temp structure{ temp float f}) +0:6 'a' ( in float) +0:6 'a' ( in float) +0:7 Function Definition: myContext::method4(f1;f1; ( temp float) +0:7 Function Parameters: +0:7 '@this' ( temp structure{ temp float f}) +0:7 'a' ( in float) +0:7 'b' ( in float) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp float) +0:7 add ( temp float) +0:7 'a' ( in float) +0:7 'b' ( in float) +0:7 f: direct index for structure ( temp float) +0:7 '@this' ( temp structure{ temp float f}) +0:7 Constant: +0:7 0 (const uint) +0:12 Function Definition: @main( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp float) +0:14 f: direct index for structure ( temp float) +0:14 'context' ( temp structure{ temp float f}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 3.000000 +0:15 Branch: Return with expression +0:15 Construct vec4 ( temp 4-component vector of float) +0:15 Function Call: myContext::method1( ( temp float) +0:15 'context' ( temp structure{ temp float f}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 73 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 71 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "method3(f1;" + Name 9 "a" + Name 12 "myContext" + MemberName 12(myContext) 0 "f" + Name 16 "myContext::method1(" + Name 15 "@this" + Name 19 "myContext::method2(" + Name 18 "@this" + Name 24 "myContext::method3(f1;" + Name 22 "@this" + Name 23 "a" + Name 30 "myContext::method4(f1;f1;" + Name 27 "@this" + Name 28 "a" + Name 29 "b" + Name 34 "@main(" + Name 42 "param" + Name 46 "param" + Name 48 "param" + Name 63 "context" + Name 71 "@entryPointOutput" + Decorate 71(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) + 12(myContext): TypeStruct 6(float) + 13: TypePointer Function 12(myContext) + 14: TypeFunction 6(float) 13(ptr) + 21: TypeFunction 6(float) 13(ptr) 7(ptr) + 26: TypeFunction 6(float) 13(ptr) 7(ptr) 7(ptr) + 32: TypeVector 6(float) 4 + 33: TypeFunction 32(fvec4) + 36: 6(float) Constant 1065353216 + 56: TypeInt 32 1 + 57: 56(int) Constant 0 + 64: 6(float) Constant 1077936128 + 70: TypePointer Output 32(fvec4) +71(@entryPointOutput): 70(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 72: 32(fvec4) FunctionCall 34(@main() + Store 71(@entryPointOutput) 72 + Return + FunctionEnd + 10(method3(f1;): 6(float) Function None 8 + 9(a): 7(ptr) FunctionParameter + 11: Label + ReturnValue 36 + FunctionEnd +16(myContext::method1(): 6(float) Function None 14 + 15(@this): 13(ptr) FunctionParameter + 17: Label + 39: 6(float) FunctionCall 19(myContext::method2() 15(@this) + ReturnValue 39 + FunctionEnd +19(myContext::method2(): 6(float) Function None 14 + 18(@this): 13(ptr) FunctionParameter + 20: Label + 42(param): 7(ptr) Variable Function + Store 42(param) 36 + 43: 6(float) FunctionCall 24(myContext::method3(f1;) 18(@this) 42(param) + ReturnValue 43 + FunctionEnd +24(myContext::method3(f1;): 6(float) Function None 21 + 22(@this): 13(ptr) FunctionParameter + 23(a): 7(ptr) FunctionParameter + 25: Label + 46(param): 7(ptr) Variable Function + 48(param): 7(ptr) Variable Function + 47: 6(float) Load 23(a) + Store 46(param) 47 + 49: 6(float) Load 23(a) + Store 48(param) 49 + 50: 6(float) FunctionCall 30(myContext::method4(f1;f1;) 22(@this) 46(param) 48(param) + ReturnValue 50 + FunctionEnd +30(myContext::method4(f1;f1;): 6(float) Function None 26 + 27(@this): 13(ptr) FunctionParameter + 28(a): 7(ptr) FunctionParameter + 29(b): 7(ptr) FunctionParameter + 31: Label + 53: 6(float) Load 28(a) + 54: 6(float) Load 29(b) + 55: 6(float) FAdd 53 54 + 58: 7(ptr) AccessChain 27(@this) 57 + 59: 6(float) Load 58 + 60: 6(float) FAdd 55 59 + ReturnValue 60 + FunctionEnd + 34(@main(): 32(fvec4) Function None 33 + 35: Label + 63(context): 13(ptr) Variable Function + 65: 7(ptr) AccessChain 63(context) 57 + Store 65 64 + 66: 6(float) FunctionCall 16(myContext::method1() 63(context) + 67: 32(fvec4) CompositeConstruct 66 66 66 66 + ReturnValue 67 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out new file mode 100644 index 0000000000..8722cf275b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.mintypes.frag.out @@ -0,0 +1,238 @@ +hlsl.mintypes.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add ( temp mediump 2-component vector of float) +0:40 'mf16_2' ( temp mediump 2-component vector of float) +0:40 'mf16' ( temp mediump float) +0:41 add ( temp mediump 2-component vector of float) +0:41 'mf10_2' ( temp mediump 2-component vector of float) +0:41 'mf10' ( temp mediump float) +0:42 add ( temp mediump 2-component vector of int) +0:42 'mi16_2' ( temp mediump 2-component vector of int) +0:42 'mi16' ( temp mediump int) +0:43 add ( temp mediump 2-component vector of int) +0:43 'mi12_2' ( temp mediump 2-component vector of int) +0:43 'mi12' ( temp mediump int) +0:44 add ( temp mediump 2-component vector of uint) +0:44 'mu16_2' ( temp mediump 2-component vector of uint) +0:44 'mu16' ( temp mediump uint) +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:9 Color: direct index for structure ( temp 4-component vector of float) +0:9 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:9 Constant: +0:9 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform mediump float b1a, uniform mediump float b1b}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add ( temp mediump 2-component vector of float) +0:40 'mf16_2' ( temp mediump 2-component vector of float) +0:40 'mf16' ( temp mediump float) +0:41 add ( temp mediump 2-component vector of float) +0:41 'mf10_2' ( temp mediump 2-component vector of float) +0:41 'mf10' ( temp mediump float) +0:42 add ( temp mediump 2-component vector of int) +0:42 'mi16_2' ( temp mediump 2-component vector of int) +0:42 'mi16' ( temp mediump int) +0:43 add ( temp mediump 2-component vector of int) +0:43 'mi12_2' ( temp mediump 2-component vector of int) +0:43 'mi12' ( temp mediump int) +0:44 add ( temp mediump 2-component vector of uint) +0:44 'mu16_2' ( temp mediump 2-component vector of uint) +0:44 'mu16' ( temp mediump uint) +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:9 Color: direct index for structure ( temp 4-component vector of float) +0:9 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:9 Constant: +0:9 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform mediump float b1a, uniform mediump float b1b}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 64 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 14 "mf16_2" + Name 17 "mf16" + Name 21 "mf10_2" + Name 23 "mf10" + Name 30 "mi16_2" + Name 33 "mi16" + Name 37 "mi12_2" + Name 39 "mi12" + Name 46 "mu16_2" + Name 49 "mu16" + Name 54 "psout" + Name 64 "@entryPointOutput.Color" + Name 67 "$Global" + MemberName 67($Global) 0 "b1a" + MemberName 67($Global) 1 "b1b" + Name 69 "" + Decorate 14(mf16_2) RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 17(mf16) RelaxedPrecision + Decorate 18 RelaxedPrecision + Decorate 19 RelaxedPrecision + Decorate 20 RelaxedPrecision + Decorate 21(mf10_2) RelaxedPrecision + Decorate 22 RelaxedPrecision + Decorate 23(mf10) RelaxedPrecision + Decorate 24 RelaxedPrecision + Decorate 25 RelaxedPrecision + Decorate 26 RelaxedPrecision + Decorate 30(mi16_2) RelaxedPrecision + Decorate 31 RelaxedPrecision + Decorate 33(mi16) RelaxedPrecision + Decorate 34 RelaxedPrecision + Decorate 35 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 37(mi12_2) RelaxedPrecision + Decorate 38 RelaxedPrecision + Decorate 39(mi12) RelaxedPrecision + Decorate 40 RelaxedPrecision + Decorate 41 RelaxedPrecision + Decorate 42 RelaxedPrecision + Decorate 46(mu16_2) RelaxedPrecision + Decorate 47 RelaxedPrecision + Decorate 49(mu16) RelaxedPrecision + Decorate 50 RelaxedPrecision + Decorate 51 RelaxedPrecision + Decorate 52 RelaxedPrecision + Decorate 64(@entryPointOutput.Color) Location 0 + MemberDecorate 67($Global) 0 RelaxedPrecision + MemberDecorate 67($Global) 0 Offset 0 + MemberDecorate 67($Global) 1 RelaxedPrecision + MemberDecorate 67($Global) 1 Offset 4 + Decorate 67($Global) Block + Decorate 69 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeVector 6(float) 2 + 13: TypePointer Function 12(fvec2) + 16: TypePointer Function 6(float) + 27: TypeInt 32 1 + 28: TypeVector 27(int) 2 + 29: TypePointer Function 28(ivec2) + 32: TypePointer Function 27(int) + 43: TypeInt 32 0 + 44: TypeVector 43(int) 2 + 45: TypePointer Function 44(ivec2) + 48: TypePointer Function 43(int) + 53: TypePointer Function 8(PS_OUTPUT) + 55: 27(int) Constant 0 + 56: 6(float) Constant 0 + 57: 7(fvec4) ConstantComposite 56 56 56 56 + 58: TypePointer Function 7(fvec4) + 63: TypePointer Output 7(fvec4) +64(@entryPointOutput.Color): 63(ptr) Variable Output + 67($Global): TypeStruct 6(float) 6(float) + 68: TypePointer Uniform 67($Global) + 69: 68(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 65:8(PS_OUTPUT) FunctionCall 10(@main() + 66: 7(fvec4) CompositeExtract 65 0 + Store 64(@entryPointOutput.Color) 66 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 14(mf16_2): 13(ptr) Variable Function + 17(mf16): 16(ptr) Variable Function + 21(mf10_2): 13(ptr) Variable Function + 23(mf10): 16(ptr) Variable Function + 30(mi16_2): 29(ptr) Variable Function + 33(mi16): 32(ptr) Variable Function + 37(mi12_2): 29(ptr) Variable Function + 39(mi12): 32(ptr) Variable Function + 46(mu16_2): 45(ptr) Variable Function + 49(mu16): 48(ptr) Variable Function + 54(psout): 53(ptr) Variable Function + 15: 12(fvec2) Load 14(mf16_2) + 18: 6(float) Load 17(mf16) + 19: 12(fvec2) CompositeConstruct 18 18 + 20: 12(fvec2) FAdd 15 19 + 22: 12(fvec2) Load 21(mf10_2) + 24: 6(float) Load 23(mf10) + 25: 12(fvec2) CompositeConstruct 24 24 + 26: 12(fvec2) FAdd 22 25 + 31: 28(ivec2) Load 30(mi16_2) + 34: 27(int) Load 33(mi16) + 35: 28(ivec2) CompositeConstruct 34 34 + 36: 28(ivec2) IAdd 31 35 + 38: 28(ivec2) Load 37(mi12_2) + 40: 27(int) Load 39(mi12) + 41: 28(ivec2) CompositeConstruct 40 40 + 42: 28(ivec2) IAdd 38 41 + 47: 44(ivec2) Load 46(mu16_2) + 50: 43(int) Load 49(mu16) + 51: 44(ivec2) CompositeConstruct 50 50 + 52: 44(ivec2) IAdd 47 51 + 59: 58(ptr) AccessChain 54(psout) 55 + Store 59 57 + 60:8(PS_OUTPUT) Load 54(psout) + ReturnValue 60 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative.frag.out new file mode 100644 index 0000000000..36f41377d1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative.frag.out @@ -0,0 +1,68 @@ +hlsl.mip.negative.frag +ERROR: 0:5: '' : unterminated mips operator: +ERROR: 1 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:4 Function Definition: @main( ( temp 4-component vector of float) +0:4 Function Parameters: +0:? Sequence +0:? textureFetch ( temp 4-component vector of float) +0:5 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 3 (const uint) +0:? 4 (const uint) +0:5 Constant: +0:5 2 (const int) +0:7 Branch: Return with expression +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2df4' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:4 Function Definition: @main( ( temp 4-component vector of float) +0:4 Function Parameters: +0:? Sequence +0:? textureFetch ( temp 4-component vector of float) +0:5 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 3 (const uint) +0:? 4 (const uint) +0:5 Constant: +0:5 2 (const int) +0:7 Branch: Return with expression +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2df4' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative2.frag.out new file mode 100644 index 0000000000..75cf95fc5a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.mip.negative2.frag.out @@ -0,0 +1,74 @@ +hlsl.mip.negative2.frag +ERROR: 0:5: 'r' : unexpected operator on texture type: uniform texture2D +ERROR: 1 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:4 Function Definition: @main( ( temp 4-component vector of float) +0:4 Function Parameters: +0:? Sequence +0:5 direct index ( temp float) +0:5 textureFetch ( temp 4-component vector of float) +0:5 'g_tTex2df4' ( uniform texture2D) +0:5 Constant: +0:5 2 (const int) +0:5 Constant: +0:5 0 (const int) +0:? Constant: +0:? 3 (const uint) +0:? 4 (const uint) +0:7 Branch: Return with expression +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2df4' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:4 Function Definition: @main( ( temp 4-component vector of float) +0:4 Function Parameters: +0:? Sequence +0:5 direct index ( temp float) +0:5 textureFetch ( temp 4-component vector of float) +0:5 'g_tTex2df4' ( uniform texture2D) +0:5 Constant: +0:5 2 (const int) +0:5 Constant: +0:5 0 (const int) +0:? Constant: +0:? 3 (const uint) +0:? 4 (const uint) +0:7 Branch: Return with expression +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:4 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2df4' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.mip.operator.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mip.operator.frag.out new file mode 100644 index 0000000000..eb884da932 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.mip.operator.frag.out @@ -0,0 +1,209 @@ +hlsl.mip.operator.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:6 add ( temp 4-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:6 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 3 (const uint) +0:? 4 (const uint) +0:6 Constant: +0:6 2 (const int) +0:? textureFetch ( temp 4-component vector of float) +0:9 'g_tTex2df4a' ( uniform texture2DArray) +0:? Constant: +0:? 6 (const uint) +0:? 7 (const uint) +0:? 8 (const uint) +0:9 Constant: +0:9 5 (const uint) +0:13 textureFetch ( temp 4-component vector of float) +0:13 'g_tTex2df4' ( uniform texture2D) +0:13 Convert float to uint ( temp 2-component vector of uint) +0:13 vector swizzle ( temp 2-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:13 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 14 (const uint) +0:? 15 (const uint) +0:13 Constant: +0:13 13 (const int) +0:13 Sequence +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Convert float to uint ( temp uint) +0:13 direct index ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:13 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 10 (const uint) +0:? 11 (const uint) +0:13 Constant: +0:13 9 (const int) +0:13 Constant: +0:13 0 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:9 add ( temp 4-component vector of float) +0:6 add ( temp 4-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:6 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 3 (const uint) +0:? 4 (const uint) +0:6 Constant: +0:6 2 (const int) +0:? textureFetch ( temp 4-component vector of float) +0:9 'g_tTex2df4a' ( uniform texture2DArray) +0:? Constant: +0:? 6 (const uint) +0:? 7 (const uint) +0:? 8 (const uint) +0:9 Constant: +0:9 5 (const uint) +0:13 textureFetch ( temp 4-component vector of float) +0:13 'g_tTex2df4' ( uniform texture2D) +0:13 Convert float to uint ( temp 2-component vector of uint) +0:13 vector swizzle ( temp 2-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:13 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 14 (const uint) +0:? 15 (const uint) +0:13 Constant: +0:13 13 (const int) +0:13 Sequence +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Convert float to uint ( temp uint) +0:13 direct index ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:13 'g_tTex2df4' ( uniform texture2D) +0:? Constant: +0:? 10 (const uint) +0:? 11 (const uint) +0:13 Constant: +0:13 9 (const int) +0:13 Constant: +0:13 0 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 61 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 59 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "g_tTex2df4" + Name 25 "g_tTex2df4a" + Name 59 "@entryPointOutput" + Decorate 13(g_tTex2df4) DescriptorSet 0 + Decorate 25(g_tTex2df4a) DescriptorSet 0 + Decorate 59(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 2D sampled format:Unknown + 12: TypePointer UniformConstant 11 + 13(g_tTex2df4): 12(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: TypeVector 15(int) 2 + 17: 15(int) Constant 3 + 18: 15(int) Constant 4 + 19: 16(ivec2) ConstantComposite 17 18 + 20: TypeInt 32 1 + 21: 20(int) Constant 2 + 23: TypeImage 6(float) 2D array sampled format:Unknown + 24: TypePointer UniformConstant 23 + 25(g_tTex2df4a): 24(ptr) Variable UniformConstant + 27: TypeVector 15(int) 3 + 28: 15(int) Constant 6 + 29: 15(int) Constant 7 + 30: 15(int) Constant 8 + 31: 27(ivec3) ConstantComposite 28 29 30 + 32: 15(int) Constant 5 + 37: 15(int) Constant 14 + 38: 15(int) Constant 15 + 39: 16(ivec2) ConstantComposite 37 38 + 40: 20(int) Constant 13 + 42: TypeVector 6(float) 2 + 46: 15(int) Constant 10 + 47: 15(int) Constant 11 + 48: 16(ivec2) ConstantComposite 46 47 + 49: 20(int) Constant 9 + 51: 15(int) Constant 0 + 58: TypePointer Output 7(fvec4) +59(@entryPointOutput): 58(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 60: 7(fvec4) FunctionCall 9(@main() + Store 59(@entryPointOutput) 60 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 14: 11 Load 13(g_tTex2df4) + 22: 7(fvec4) ImageFetch 14 19 Lod 21 + 26: 23 Load 25(g_tTex2df4a) + 33: 7(fvec4) ImageFetch 26 31 Lod 32 + 34: 7(fvec4) FAdd 22 33 + 35: 11 Load 13(g_tTex2df4) + 36: 11 Load 13(g_tTex2df4) + 41: 7(fvec4) ImageFetch 36 39 Lod 40 + 43: 42(fvec2) VectorShuffle 41 41 0 1 + 44: 16(ivec2) ConvertFToU 43 + 45: 11 Load 13(g_tTex2df4) + 50: 7(fvec4) ImageFetch 45 48 Lod 49 + 52: 6(float) CompositeExtract 50 0 + 53: 15(int) ConvertFToU 52 + 54: 7(fvec4) ImageFetch 35 44 Lod 53 + 55: 7(fvec4) FAdd 34 54 + ReturnValue 55 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.mul-truncate.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.mul-truncate.frag.out new file mode 100644 index 0000000000..80fe1cbdc2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.mul-truncate.frag.out @@ -0,0 +1,684 @@ +hlsl.mul-truncate.frag +WARNING: 0:24: '' : mul() matrix size mismatch +WARNING: 0:25: '' : mul() matrix size mismatch +WARNING: 0:28: '' : mul() matrix size mismatch +WARNING: 0:29: '' : mul() matrix size mismatch +WARNING: 0:32: '' : mul() matrix size mismatch +WARNING: 0:33: '' : mul() matrix size mismatch +WARNING: 0:34: '' : mul() matrix size mismatch +WARNING: 0:35: '' : mul() matrix size mismatch + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:18 Function Definition: @main( ( temp 4-component vector of float) +0:18 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'r00' ( temp float) +0:20 dot-product ( temp float) +0:20 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) +0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:20 Constant: +0:20 8 (const uint) +0:20 Construct vec2 ( in 2-component vector of float) +0:20 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:20 Constant: +0:20 7 (const uint) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'r01' ( temp float) +0:21 dot-product ( temp float) +0:21 Construct vec2 ( in 2-component vector of float) +0:21 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:21 Constant: +0:21 6 (const uint) +0:21 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) +0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:21 Constant: +0:21 8 (const uint) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 'r10' ( temp 4-component vector of float) +0:24 matrix-times-vector ( temp 4-component vector of float) +0:24 Construct mat3x4 ( uniform 3X4 matrix of float) +0:24 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:24 Constant: +0:24 0 (const uint) +0:24 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:24 Constant: +0:24 7 (const uint) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'r11' ( temp 4-component vector of float) +0:25 matrix-times-vector ( temp 4-component vector of float) +0:25 m34: direct index for structure (layout( row_major std140) uniform 3X4 matrix of float) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:25 Constant: +0:25 2 (const uint) +0:25 Construct vec3 ( uniform 3-component vector of float) +0:25 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:25 Constant: +0:25 6 (const uint) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:28 'r20' ( temp 4-component vector of float) +0:28 vector-times-matrix ( temp 4-component vector of float) +0:28 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:28 Constant: +0:28 7 (const uint) +0:28 Construct mat4x3 ( uniform 4X3 matrix of float) +0:28 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:29 'r21' ( temp 4-component vector of float) +0:29 vector-times-matrix ( temp 4-component vector of float) +0:29 Construct vec3 ( uniform 3-component vector of float) +0:29 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:29 Constant: +0:29 6 (const uint) +0:29 m43: direct index for structure (layout( row_major std140) uniform 4X3 matrix of float) +0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:29 Constant: +0:29 1 (const uint) +0:32 Sequence +0:32 move second child to first child ( temp 2X3 matrix of float) +0:32 'r30' ( temp 2X3 matrix of float) +0:32 matrix-multiply ( temp 2X3 matrix of float) +0:32 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:32 Constant: +0:32 3 (const uint) +0:32 Construct mat2x3 ( uniform 2X3 matrix of float) +0:32 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:32 Constant: +0:32 4 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 3X4 matrix of float) +0:33 'r31' ( temp 3X4 matrix of float) +0:33 matrix-multiply ( temp 3X4 matrix of float) +0:33 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) +0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:33 Constant: +0:33 4 (const uint) +0:33 Construct mat3x2 ( uniform 3X2 matrix of float) +0:33 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:33 Constant: +0:33 3 (const uint) +0:34 Sequence +0:34 move second child to first child ( temp 3X2 matrix of float) +0:34 'r32' ( temp 3X2 matrix of float) +0:34 matrix-multiply ( temp 3X2 matrix of float) +0:34 Construct mat3x2 ( uniform 3X2 matrix of float) +0:34 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) +0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:34 Constant: +0:34 5 (const uint) +0:34 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:34 Constant: +0:34 3 (const uint) +0:35 Sequence +0:35 move second child to first child ( temp 4X3 matrix of float) +0:35 'r33' ( temp 4X3 matrix of float) +0:35 matrix-multiply ( temp 4X3 matrix of float) +0:35 Construct mat2x3 ( uniform 2X3 matrix of float) +0:35 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:35 Constant: +0:35 3 (const uint) +0:35 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) +0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:35 Constant: +0:35 5 (const uint) +0:37 Branch: Return with expression +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 'r10' ( temp 4-component vector of float) +0:37 'r11' ( temp 4-component vector of float) +0:37 'r20' ( temp 4-component vector of float) +0:37 'r21' ( temp 4-component vector of float) +0:37 'r00' ( temp float) +0:37 'r01' ( temp float) +0:37 direct index ( temp float) +0:37 direct index ( temp 3-component vector of float) +0:37 'r30' ( temp 2X3 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp 4-component vector of float) +0:37 'r31' ( temp 3X4 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp float) +0:37 direct index ( temp 2-component vector of float) +0:37 'r32' ( temp 3X2 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp 4-component vector of float) +0:37 transpose ( temp 3X4 matrix of float) +0:37 'r33' ( temp 4X3 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:18 Function Definition: main( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:18 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:18 Function Definition: @main( ( temp 4-component vector of float) +0:18 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'r00' ( temp float) +0:20 dot-product ( temp float) +0:20 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) +0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:20 Constant: +0:20 8 (const uint) +0:20 Construct vec2 ( in 2-component vector of float) +0:20 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:20 Constant: +0:20 7 (const uint) +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'r01' ( temp float) +0:21 dot-product ( temp float) +0:21 Construct vec2 ( in 2-component vector of float) +0:21 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:21 Constant: +0:21 6 (const uint) +0:21 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float) +0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:21 Constant: +0:21 8 (const uint) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 'r10' ( temp 4-component vector of float) +0:24 matrix-times-vector ( temp 4-component vector of float) +0:24 Construct mat3x4 ( uniform 3X4 matrix of float) +0:24 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:24 Constant: +0:24 0 (const uint) +0:24 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:24 Constant: +0:24 7 (const uint) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'r11' ( temp 4-component vector of float) +0:25 matrix-times-vector ( temp 4-component vector of float) +0:25 m34: direct index for structure (layout( row_major std140) uniform 3X4 matrix of float) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:25 Constant: +0:25 2 (const uint) +0:25 Construct vec3 ( uniform 3-component vector of float) +0:25 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:25 Constant: +0:25 6 (const uint) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of float) +0:28 'r20' ( temp 4-component vector of float) +0:28 vector-times-matrix ( temp 4-component vector of float) +0:28 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float) +0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:28 Constant: +0:28 7 (const uint) +0:28 Construct mat4x3 ( uniform 4X3 matrix of float) +0:28 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) +0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of float) +0:29 'r21' ( temp 4-component vector of float) +0:29 vector-times-matrix ( temp 4-component vector of float) +0:29 Construct vec3 ( uniform 3-component vector of float) +0:29 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float) +0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:29 Constant: +0:29 6 (const uint) +0:29 m43: direct index for structure (layout( row_major std140) uniform 4X3 matrix of float) +0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:29 Constant: +0:29 1 (const uint) +0:32 Sequence +0:32 move second child to first child ( temp 2X3 matrix of float) +0:32 'r30' ( temp 2X3 matrix of float) +0:32 matrix-multiply ( temp 2X3 matrix of float) +0:32 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:32 Constant: +0:32 3 (const uint) +0:32 Construct mat2x3 ( uniform 2X3 matrix of float) +0:32 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) +0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:32 Constant: +0:32 4 (const uint) +0:33 Sequence +0:33 move second child to first child ( temp 3X4 matrix of float) +0:33 'r31' ( temp 3X4 matrix of float) +0:33 matrix-multiply ( temp 3X4 matrix of float) +0:33 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float) +0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:33 Constant: +0:33 4 (const uint) +0:33 Construct mat3x2 ( uniform 3X2 matrix of float) +0:33 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:33 Constant: +0:33 3 (const uint) +0:34 Sequence +0:34 move second child to first child ( temp 3X2 matrix of float) +0:34 'r32' ( temp 3X2 matrix of float) +0:34 matrix-multiply ( temp 3X2 matrix of float) +0:34 Construct mat3x2 ( uniform 3X2 matrix of float) +0:34 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) +0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:34 Constant: +0:34 5 (const uint) +0:34 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:34 Constant: +0:34 3 (const uint) +0:35 Sequence +0:35 move second child to first child ( temp 4X3 matrix of float) +0:35 'r33' ( temp 4X3 matrix of float) +0:35 matrix-multiply ( temp 4X3 matrix of float) +0:35 Construct mat2x3 ( uniform 2X3 matrix of float) +0:35 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float) +0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:35 Constant: +0:35 3 (const uint) +0:35 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float) +0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:35 Constant: +0:35 5 (const uint) +0:37 Branch: Return with expression +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 add ( temp 4-component vector of float) +0:37 'r10' ( temp 4-component vector of float) +0:37 'r11' ( temp 4-component vector of float) +0:37 'r20' ( temp 4-component vector of float) +0:37 'r21' ( temp 4-component vector of float) +0:37 'r00' ( temp float) +0:37 'r01' ( temp float) +0:37 direct index ( temp float) +0:37 direct index ( temp 3-component vector of float) +0:37 'r30' ( temp 2X3 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp 4-component vector of float) +0:37 'r31' ( temp 3X4 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp float) +0:37 direct index ( temp 2-component vector of float) +0:37 'r32' ( temp 3X2 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp 4-component vector of float) +0:37 transpose ( temp 3X4 matrix of float) +0:37 'r33' ( temp 4X3 matrix of float) +0:37 Constant: +0:37 0 (const int) +0:18 Function Definition: main( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:18 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 231 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 229 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "r00" + Name 21 "Matrix" + MemberName 21(Matrix) 0 "m44" + MemberName 21(Matrix) 1 "m43" + MemberName 21(Matrix) 2 "m34" + MemberName 21(Matrix) 3 "m33" + MemberName 21(Matrix) 4 "m24" + MemberName 21(Matrix) 5 "m42" + MemberName 21(Matrix) 6 "v4" + MemberName 21(Matrix) 7 "v3" + MemberName 21(Matrix) 8 "v2" + Name 23 "" + Name 37 "r01" + Name 49 "r10" + Name 75 "r11" + Name 87 "r20" + Name 110 "r21" + Name 124 "r30" + Name 144 "r31" + Name 162 "r32" + Name 181 "r33" + Name 229 "@entryPointOutput" + MemberDecorate 21(Matrix) 0 RowMajor + MemberDecorate 21(Matrix) 0 Offset 0 + MemberDecorate 21(Matrix) 0 MatrixStride 16 + MemberDecorate 21(Matrix) 1 RowMajor + MemberDecorate 21(Matrix) 1 Offset 64 + MemberDecorate 21(Matrix) 1 MatrixStride 16 + MemberDecorate 21(Matrix) 2 RowMajor + MemberDecorate 21(Matrix) 2 Offset 112 + MemberDecorate 21(Matrix) 2 MatrixStride 16 + MemberDecorate 21(Matrix) 3 RowMajor + MemberDecorate 21(Matrix) 3 Offset 176 + MemberDecorate 21(Matrix) 3 MatrixStride 16 + MemberDecorate 21(Matrix) 4 RowMajor + MemberDecorate 21(Matrix) 4 Offset 224 + MemberDecorate 21(Matrix) 4 MatrixStride 16 + MemberDecorate 21(Matrix) 5 RowMajor + MemberDecorate 21(Matrix) 5 Offset 288 + MemberDecorate 21(Matrix) 5 MatrixStride 16 + MemberDecorate 21(Matrix) 6 Offset 320 + MemberDecorate 21(Matrix) 7 Offset 336 + MemberDecorate 21(Matrix) 8 Offset 352 + Decorate 21(Matrix) Block + Decorate 23 DescriptorSet 0 + Decorate 229(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 6(float) + 13: TypeMatrix 7(fvec4) 4 + 14: TypeVector 6(float) 3 + 15: TypeMatrix 14(fvec3) 4 + 16: TypeMatrix 7(fvec4) 3 + 17: TypeMatrix 14(fvec3) 3 + 18: TypeMatrix 7(fvec4) 2 + 19: TypeVector 6(float) 2 + 20: TypeMatrix 19(fvec2) 4 + 21(Matrix): TypeStruct 13 15 16 17 18 20 7(fvec4) 14(fvec3) 19(fvec2) + 22: TypePointer Uniform 21(Matrix) + 23: 22(ptr) Variable Uniform + 24: TypeInt 32 1 + 25: 24(int) Constant 8 + 26: TypePointer Uniform 19(fvec2) + 29: 24(int) Constant 7 + 30: TypePointer Uniform 14(fvec3) + 38: 24(int) Constant 6 + 39: TypePointer Uniform 7(fvec4) + 48: TypePointer Function 7(fvec4) + 50: 24(int) Constant 0 + 51: TypePointer Uniform 13 + 54: 6(float) Constant 1065353216 + 55: 6(float) Constant 0 + 76: 24(int) Constant 2 + 77: TypePointer Uniform 16 + 117: 24(int) Constant 1 + 118: TypePointer Uniform 15 + 122: TypeMatrix 14(fvec3) 2 + 123: TypePointer Function 122 + 125: 24(int) Constant 3 + 126: TypePointer Uniform 17 + 129: 24(int) Constant 4 + 130: TypePointer Uniform 18 + 143: TypePointer Function 16 + 149: TypeMatrix 19(fvec2) 3 + 161: TypePointer Function 149 + 163: 24(int) Constant 5 + 164: TypePointer Uniform 20 + 180: TypePointer Function 15 + 209: TypeInt 32 0 + 210: 209(int) Constant 0 + 228: TypePointer Output 7(fvec4) +229(@entryPointOutput): 228(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 230: 7(fvec4) FunctionCall 9(@main() + Store 229(@entryPointOutput) 230 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(r00): 11(ptr) Variable Function + 37(r01): 11(ptr) Variable Function + 49(r10): 48(ptr) Variable Function + 75(r11): 48(ptr) Variable Function + 87(r20): 48(ptr) Variable Function + 110(r21): 48(ptr) Variable Function + 124(r30): 123(ptr) Variable Function + 144(r31): 143(ptr) Variable Function + 162(r32): 161(ptr) Variable Function + 181(r33): 180(ptr) Variable Function + 27: 26(ptr) AccessChain 23 25 + 28: 19(fvec2) Load 27 + 31: 30(ptr) AccessChain 23 29 + 32: 14(fvec3) Load 31 + 33: 6(float) CompositeExtract 32 0 + 34: 6(float) CompositeExtract 32 1 + 35: 19(fvec2) CompositeConstruct 33 34 + 36: 6(float) Dot 28 35 + Store 12(r00) 36 + 40: 39(ptr) AccessChain 23 38 + 41: 7(fvec4) Load 40 + 42: 6(float) CompositeExtract 41 0 + 43: 6(float) CompositeExtract 41 1 + 44: 19(fvec2) CompositeConstruct 42 43 + 45: 26(ptr) AccessChain 23 25 + 46: 19(fvec2) Load 45 + 47: 6(float) Dot 44 46 + Store 37(r01) 47 + 52: 51(ptr) AccessChain 23 50 + 53: 13 Load 52 + 56: 6(float) CompositeExtract 53 0 0 + 57: 6(float) CompositeExtract 53 0 1 + 58: 6(float) CompositeExtract 53 0 2 + 59: 6(float) CompositeExtract 53 0 3 + 60: 6(float) CompositeExtract 53 1 0 + 61: 6(float) CompositeExtract 53 1 1 + 62: 6(float) CompositeExtract 53 1 2 + 63: 6(float) CompositeExtract 53 1 3 + 64: 6(float) CompositeExtract 53 2 0 + 65: 6(float) CompositeExtract 53 2 1 + 66: 6(float) CompositeExtract 53 2 2 + 67: 6(float) CompositeExtract 53 2 3 + 68: 7(fvec4) CompositeConstruct 56 57 58 59 + 69: 7(fvec4) CompositeConstruct 60 61 62 63 + 70: 7(fvec4) CompositeConstruct 64 65 66 67 + 71: 16 CompositeConstruct 68 69 70 + 72: 30(ptr) AccessChain 23 29 + 73: 14(fvec3) Load 72 + 74: 7(fvec4) MatrixTimesVector 71 73 + Store 49(r10) 74 + 78: 77(ptr) AccessChain 23 76 + 79: 16 Load 78 + 80: 39(ptr) AccessChain 23 38 + 81: 7(fvec4) Load 80 + 82: 6(float) CompositeExtract 81 0 + 83: 6(float) CompositeExtract 81 1 + 84: 6(float) CompositeExtract 81 2 + 85: 14(fvec3) CompositeConstruct 82 83 84 + 86: 7(fvec4) MatrixTimesVector 79 85 + Store 75(r11) 86 + 88: 30(ptr) AccessChain 23 29 + 89: 14(fvec3) Load 88 + 90: 51(ptr) AccessChain 23 50 + 91: 13 Load 90 + 92: 6(float) CompositeExtract 91 0 0 + 93: 6(float) CompositeExtract 91 0 1 + 94: 6(float) CompositeExtract 91 0 2 + 95: 6(float) CompositeExtract 91 1 0 + 96: 6(float) CompositeExtract 91 1 1 + 97: 6(float) CompositeExtract 91 1 2 + 98: 6(float) CompositeExtract 91 2 0 + 99: 6(float) CompositeExtract 91 2 1 + 100: 6(float) CompositeExtract 91 2 2 + 101: 6(float) CompositeExtract 91 3 0 + 102: 6(float) CompositeExtract 91 3 1 + 103: 6(float) CompositeExtract 91 3 2 + 104: 14(fvec3) CompositeConstruct 92 93 94 + 105: 14(fvec3) CompositeConstruct 95 96 97 + 106: 14(fvec3) CompositeConstruct 98 99 100 + 107: 14(fvec3) CompositeConstruct 101 102 103 + 108: 15 CompositeConstruct 104 105 106 107 + 109: 7(fvec4) VectorTimesMatrix 89 108 + Store 87(r20) 109 + 111: 39(ptr) AccessChain 23 38 + 112: 7(fvec4) Load 111 + 113: 6(float) CompositeExtract 112 0 + 114: 6(float) CompositeExtract 112 1 + 115: 6(float) CompositeExtract 112 2 + 116: 14(fvec3) CompositeConstruct 113 114 115 + 119: 118(ptr) AccessChain 23 117 + 120: 15 Load 119 + 121: 7(fvec4) VectorTimesMatrix 116 120 + Store 110(r21) 121 + 127: 126(ptr) AccessChain 23 125 + 128: 17 Load 127 + 131: 130(ptr) AccessChain 23 129 + 132: 18 Load 131 + 133: 6(float) CompositeExtract 132 0 0 + 134: 6(float) CompositeExtract 132 0 1 + 135: 6(float) CompositeExtract 132 0 2 + 136: 6(float) CompositeExtract 132 1 0 + 137: 6(float) CompositeExtract 132 1 1 + 138: 6(float) CompositeExtract 132 1 2 + 139: 14(fvec3) CompositeConstruct 133 134 135 + 140: 14(fvec3) CompositeConstruct 136 137 138 + 141: 122 CompositeConstruct 139 140 + 142: 122 MatrixTimesMatrix 128 141 + Store 124(r30) 142 + 145: 130(ptr) AccessChain 23 129 + 146: 18 Load 145 + 147: 126(ptr) AccessChain 23 125 + 148: 17 Load 147 + 150: 6(float) CompositeExtract 148 0 0 + 151: 6(float) CompositeExtract 148 0 1 + 152: 6(float) CompositeExtract 148 1 0 + 153: 6(float) CompositeExtract 148 1 1 + 154: 6(float) CompositeExtract 148 2 0 + 155: 6(float) CompositeExtract 148 2 1 + 156: 19(fvec2) CompositeConstruct 150 151 + 157: 19(fvec2) CompositeConstruct 152 153 + 158: 19(fvec2) CompositeConstruct 154 155 + 159: 149 CompositeConstruct 156 157 158 + 160: 16 MatrixTimesMatrix 146 159 + Store 144(r31) 160 + 165: 164(ptr) AccessChain 23 163 + 166: 20 Load 165 + 167: 6(float) CompositeExtract 166 0 0 + 168: 6(float) CompositeExtract 166 0 1 + 169: 6(float) CompositeExtract 166 1 0 + 170: 6(float) CompositeExtract 166 1 1 + 171: 6(float) CompositeExtract 166 2 0 + 172: 6(float) CompositeExtract 166 2 1 + 173: 19(fvec2) CompositeConstruct 167 168 + 174: 19(fvec2) CompositeConstruct 169 170 + 175: 19(fvec2) CompositeConstruct 171 172 + 176: 149 CompositeConstruct 173 174 175 + 177: 126(ptr) AccessChain 23 125 + 178: 17 Load 177 + 179: 149 MatrixTimesMatrix 176 178 + Store 162(r32) 179 + 182: 126(ptr) AccessChain 23 125 + 183: 17 Load 182 + 184: 6(float) CompositeExtract 183 0 0 + 185: 6(float) CompositeExtract 183 0 1 + 186: 6(float) CompositeExtract 183 0 2 + 187: 6(float) CompositeExtract 183 1 0 + 188: 6(float) CompositeExtract 183 1 1 + 189: 6(float) CompositeExtract 183 1 2 + 190: 14(fvec3) CompositeConstruct 184 185 186 + 191: 14(fvec3) CompositeConstruct 187 188 189 + 192: 122 CompositeConstruct 190 191 + 193: 164(ptr) AccessChain 23 163 + 194: 20 Load 193 + 195: 15 MatrixTimesMatrix 192 194 + Store 181(r33) 195 + 196: 7(fvec4) Load 49(r10) + 197: 7(fvec4) Load 75(r11) + 198: 7(fvec4) FAdd 196 197 + 199: 7(fvec4) Load 87(r20) + 200: 7(fvec4) FAdd 198 199 + 201: 7(fvec4) Load 110(r21) + 202: 7(fvec4) FAdd 200 201 + 203: 6(float) Load 12(r00) + 204: 7(fvec4) CompositeConstruct 203 203 203 203 + 205: 7(fvec4) FAdd 202 204 + 206: 6(float) Load 37(r01) + 207: 7(fvec4) CompositeConstruct 206 206 206 206 + 208: 7(fvec4) FAdd 205 207 + 211: 11(ptr) AccessChain 124(r30) 50 210 + 212: 6(float) Load 211 + 213: 7(fvec4) CompositeConstruct 212 212 212 212 + 214: 7(fvec4) FAdd 208 213 + 215: 48(ptr) AccessChain 144(r31) 50 + 216: 7(fvec4) Load 215 + 217: 7(fvec4) FAdd 214 216 + 218: 11(ptr) AccessChain 162(r32) 50 210 + 219: 6(float) Load 218 + 220: 7(fvec4) CompositeConstruct 219 219 219 219 + 221: 7(fvec4) FAdd 217 220 + 222: 15 Load 181(r33) + 223: 16 Transpose 222 + 224: 7(fvec4) CompositeExtract 223 0 + 225: 7(fvec4) FAdd 221 224 + ReturnValue 225 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out new file mode 100644 index 0000000000..8bd1ad855e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out @@ -0,0 +1,168 @@ +hlsl.multiDescriptorSet.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 92 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 78 82 86 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "PS_INPUT" + MemberName 9(PS_INPUT) 0 "Pos" + MemberName 9(PS_INPUT) 1 "Tex" + Name 13 "@main(struct-PS_INPUT-vf4-vf21;" + Name 12 "input" + Name 15 "output" + Name 23 "cbChangesEveryFrame" + MemberName 23(cbChangesEveryFrame) 0 "World" + MemberName 23(cbChangesEveryFrame) 1 "vMeshColor" + Name 25 "" + Name 34 "cbNeverChanges" + MemberName 34(cbNeverChanges) 0 "View" + Name 36 "" + Name 43 "cbChangeOnResize" + MemberName 43(cbChangeOnResize) 0 "Projection" + Name 45 "" + Name 59 "txDiffuseA" + Name 63 "samLinearA" + Name 76 "input" + Name 78 "input.Pos" + Name 82 "input.Tex" + Name 86 "@entryPointOutput" + Name 87 "param" + Name 90 "txDiffuseB" + Name 91 "samLinearB" + MemberDecorate 23(cbChangesEveryFrame) 0 RowMajor + MemberDecorate 23(cbChangesEveryFrame) 0 Offset 0 + MemberDecorate 23(cbChangesEveryFrame) 0 MatrixStride 16 + MemberDecorate 23(cbChangesEveryFrame) 1 Offset 64 + Decorate 23(cbChangesEveryFrame) Block + Decorate 25 DescriptorSet 2 + Decorate 25 Binding 2 + MemberDecorate 34(cbNeverChanges) 0 RowMajor + MemberDecorate 34(cbNeverChanges) 0 Offset 0 + MemberDecorate 34(cbNeverChanges) 0 MatrixStride 16 + Decorate 34(cbNeverChanges) Block + Decorate 36 DescriptorSet 2 + Decorate 36 Binding 0 + MemberDecorate 43(cbChangeOnResize) 0 RowMajor + MemberDecorate 43(cbChangeOnResize) 0 Offset 0 + MemberDecorate 43(cbChangeOnResize) 0 MatrixStride 16 + Decorate 43(cbChangeOnResize) Block + Decorate 45 DescriptorSet 2 + Decorate 45 Binding 1 + Decorate 59(txDiffuseA) DescriptorSet 0 + Decorate 59(txDiffuseA) Binding 0 + Decorate 63(samLinearA) DescriptorSet 0 + Decorate 63(samLinearA) Binding 1 + Decorate 78(input.Pos) BuiltIn FragCoord + Decorate 82(input.Tex) Location 0 + Decorate 86(@entryPointOutput) Location 0 + Decorate 90(txDiffuseB) DescriptorSet 1 + Decorate 90(txDiffuseB) Binding 0 + Decorate 91(samLinearB) DescriptorSet 1 + Decorate 91(samLinearB) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 2 + 9(PS_INPUT): TypeStruct 7(fvec4) 8(fvec2) + 10: TypePointer Function 9(PS_INPUT) + 11: TypeFunction 7(fvec4) 10(ptr) + 16: 6(float) Constant 0 + 17: 7(fvec4) ConstantComposite 16 16 16 16 + 18: 8(fvec2) ConstantComposite 16 16 + 19: 9(PS_INPUT) ConstantComposite 17 18 + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypeMatrix 7(fvec4) 4 +23(cbChangesEveryFrame): TypeStruct 22 7(fvec4) + 24: TypePointer Uniform 23(cbChangesEveryFrame) + 25: 24(ptr) Variable Uniform + 26: TypePointer Uniform 22 + 29: TypePointer Function 7(fvec4) +34(cbNeverChanges): TypeStruct 22 + 35: TypePointer Uniform 34(cbNeverChanges) + 36: 35(ptr) Variable Uniform +43(cbChangeOnResize): TypeStruct 22 + 44: TypePointer Uniform 43(cbChangeOnResize) + 45: 44(ptr) Variable Uniform + 52: 20(int) Constant 1 + 53: TypePointer Function 8(fvec2) + 57: TypeImage 6(float) 2D sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(txDiffuseA): 58(ptr) Variable UniformConstant + 61: TypeSampler + 62: TypePointer UniformConstant 61 + 63(samLinearA): 62(ptr) Variable UniformConstant + 65: TypeSampledImage 57 + 70: TypePointer Uniform 7(fvec4) + 77: TypePointer Input 7(fvec4) + 78(input.Pos): 77(ptr) Variable Input + 81: TypePointer Input 8(fvec2) + 82(input.Tex): 81(ptr) Variable Input + 85: TypePointer Output 7(fvec4) +86(@entryPointOutput): 85(ptr) Variable Output + 90(txDiffuseB): 58(ptr) Variable UniformConstant + 91(samLinearB): 62(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 76(input): 10(ptr) Variable Function + 87(param): 10(ptr) Variable Function + 79: 7(fvec4) Load 78(input.Pos) + 80: 29(ptr) AccessChain 76(input) 21 + Store 80 79 + 83: 8(fvec2) Load 82(input.Tex) + 84: 53(ptr) AccessChain 76(input) 52 + Store 84 83 + 88: 9(PS_INPUT) Load 76(input) + Store 87(param) 88 + 89: 7(fvec4) FunctionCall 13(@main(struct-PS_INPUT-vf4-vf21;) 87(param) + Store 86(@entryPointOutput) 89 + Return + FunctionEnd +13(@main(struct-PS_INPUT-vf4-vf21;): 7(fvec4) Function None 11 + 12(input): 10(ptr) FunctionParameter + 14: Label + 15(output): 10(ptr) Variable Function + Store 15(output) 19 + 27: 26(ptr) AccessChain 25 21 + 28: 22 Load 27 + 30: 29(ptr) AccessChain 12(input) 21 + 31: 7(fvec4) Load 30 + 32: 7(fvec4) MatrixTimesVector 28 31 + 33: 29(ptr) AccessChain 15(output) 21 + Store 33 32 + 37: 26(ptr) AccessChain 36 21 + 38: 22 Load 37 + 39: 29(ptr) AccessChain 15(output) 21 + 40: 7(fvec4) Load 39 + 41: 7(fvec4) MatrixTimesVector 38 40 + 42: 29(ptr) AccessChain 15(output) 21 + Store 42 41 + 46: 26(ptr) AccessChain 45 21 + 47: 22 Load 46 + 48: 29(ptr) AccessChain 15(output) 21 + 49: 7(fvec4) Load 48 + 50: 7(fvec4) MatrixTimesVector 47 49 + 51: 29(ptr) AccessChain 15(output) 21 + Store 51 50 + 54: 53(ptr) AccessChain 12(input) 52 + 55: 8(fvec2) Load 54 + 56: 53(ptr) AccessChain 15(output) 52 + Store 56 55 + 60: 57 Load 59(txDiffuseA) + 64: 61 Load 63(samLinearA) + 66: 65 SampledImage 60 64 + 67: 53(ptr) AccessChain 15(output) 52 + 68: 8(fvec2) Load 67 + 69: 7(fvec4) ImageSampleImplicitLod 66 68 + 71: 70(ptr) AccessChain 25 52 + 72: 7(fvec4) Load 71 + 73: 7(fvec4) FMul 69 72 + ReturnValue 73 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out new file mode 100644 index 0000000000..1c7711882e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.multiEntry.vert.out @@ -0,0 +1,140 @@ +hlsl.multiEntry.vert +Shader version: 500 +0:? Sequence +0:4 Function Definition: FakeEntrypoint(u1; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'Index' ( in uint) +0:? Sequence +0:5 Branch: Return with expression +0:5 textureFetch ( temp 4-component vector of float) +0:5 'Position' (layout( rgba32f) uniform textureBuffer) +0:5 Convert uint to int ( temp int) +0:5 'Index' ( in uint) +0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 'Index' ( in uint) +0:? Sequence +0:10 Branch: Return with expression +0:10 Function Call: FakeEntrypoint(u1; ( temp 4-component vector of float) +0:10 'Index' ( in uint) +0:9 Function Definition: RealEntrypoint( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp uint) +0:? 'Index' ( temp uint) +0:? 'Index' ( in uint VertexIndex) +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) +0:? 'Index' ( temp uint) +0:? Linker Objects +0:? 'Position' (layout( rgba32f) uniform textureBuffer) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:? 'Index' ( in uint VertexIndex) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:4 Function Definition: FakeEntrypoint(u1; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'Index' ( in uint) +0:? Sequence +0:5 Branch: Return with expression +0:5 textureFetch ( temp 4-component vector of float) +0:5 'Position' (layout( rgba32f) uniform textureBuffer) +0:5 Convert uint to int ( temp int) +0:5 'Index' ( in uint) +0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 'Index' ( in uint) +0:? Sequence +0:10 Branch: Return with expression +0:10 Function Call: FakeEntrypoint(u1; ( temp 4-component vector of float) +0:10 'Index' ( in uint) +0:9 Function Definition: RealEntrypoint( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp uint) +0:? 'Index' ( temp uint) +0:? 'Index' ( in uint VertexIndex) +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) +0:? 'Index' ( temp uint) +0:? Linker Objects +0:? 'Position' (layout( rgba32f) uniform textureBuffer) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:? 'Index' ( in uint VertexIndex) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 41 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "RealEntrypoint" 34 37 + Source HLSL 500 + Name 4 "RealEntrypoint" + Name 12 "FakeEntrypoint(u1;" + Name 11 "Index" + Name 15 "@RealEntrypoint(u1;" + Name 14 "Index" + Name 19 "Position" + Name 27 "param" + Name 32 "Index" + Name 34 "Index" + Name 37 "@entryPointOutput" + Name 38 "param" + Decorate 19(Position) DescriptorSet 0 + Decorate 34(Index) BuiltIn VertexIndex + Decorate 37(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 17: TypeImage 8(float) Buffer sampled format:Rgba32f + 18: TypePointer UniformConstant 17 + 19(Position): 18(ptr) Variable UniformConstant + 22: TypeInt 32 1 + 33: TypePointer Input 6(int) + 34(Index): 33(ptr) Variable Input + 36: TypePointer Output 9(fvec4) +37(@entryPointOutput): 36(ptr) Variable Output +4(RealEntrypoint): 2 Function None 3 + 5: Label + 32(Index): 7(ptr) Variable Function + 38(param): 7(ptr) Variable Function + 35: 6(int) Load 34(Index) + Store 32(Index) 35 + 39: 6(int) Load 32(Index) + Store 38(param) 39 + 40: 9(fvec4) FunctionCall 15(@RealEntrypoint(u1;) 38(param) + Store 37(@entryPointOutput) 40 + Return + FunctionEnd +12(FakeEntrypoint(u1;): 9(fvec4) Function None 10 + 11(Index): 7(ptr) FunctionParameter + 13: Label + 20: 17 Load 19(Position) + 21: 6(int) Load 11(Index) + 23: 22(int) Bitcast 21 + 24: 9(fvec4) ImageFetch 20 23 + ReturnValue 24 + FunctionEnd +15(@RealEntrypoint(u1;): 9(fvec4) Function None 10 + 14(Index): 7(ptr) FunctionParameter + 16: Label + 27(param): 7(ptr) Variable Function + 28: 6(int) Load 14(Index) + Store 27(param) 28 + 29: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 27(param) + ReturnValue 29 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.multiReturn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.multiReturn.frag.out new file mode 100644 index 0000000000..695a52c696 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.multiReturn.frag.out @@ -0,0 +1,128 @@ +hlsl.multiReturn.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: @main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: @main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( ( temp structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "S" + MemberName 9(S) 0 "f" + MemberName 9(S) 1 "v" + MemberName 9(S) 2 "m" + Name 11 "foo(" + Name 13 "@main(" + Name 15 "S" + MemberName 15(S) 0 "f" + MemberName 15(S) 1 "v" + MemberName 15(S) 2 "m" + Name 16 "bufName" + MemberName 16(bufName) 0 "s" + Name 18 "" + MemberDecorate 15(S) 0 Offset 0 + MemberDecorate 15(S) 1 Offset 4 + MemberDecorate 15(S) 2 RowMajor + MemberDecorate 15(S) 2 Offset 16 + MemberDecorate 15(S) 2 MatrixStride 16 + MemberDecorate 16(bufName) 0 Offset 0 + Decorate 16(bufName) Block + Decorate 18 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeMatrix 7(fvec3) 3 + 9(S): TypeStruct 6(float) 7(fvec3) 8 + 10: TypeFunction 9(S) + 15(S): TypeStruct 6(float) 7(fvec3) 8 + 16(bufName): TypeStruct 15(S) + 17: TypePointer Uniform 16(bufName) + 18: 17(ptr) Variable Uniform + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 15(S) + 24: TypePointer Function 9(S) + 27: TypePointer Function 6(float) + 30: 19(int) Constant 1 + 31: TypePointer Function 7(fvec3) + 34: 19(int) Constant 2 + 35: TypePointer Function 8 + 4(main): 2 Function None 3 + 5: Label + 41: 2 FunctionCall 13(@main() + Return + FunctionEnd + 11(foo(): 9(S) Function None 10 + 12: Label + 25: 24(ptr) Variable Function + 22: 21(ptr) AccessChain 18 20 + 23: 15(S) Load 22 + 26: 6(float) CompositeExtract 23 0 + 28: 27(ptr) AccessChain 25 20 + Store 28 26 + 29: 7(fvec3) CompositeExtract 23 1 + 32: 31(ptr) AccessChain 25 30 + Store 32 29 + 33: 8 CompositeExtract 23 2 + 36: 35(ptr) AccessChain 25 34 + Store 36 33 + 37: 9(S) Load 25 + ReturnValue 37 + FunctionEnd + 13(@main(): 2 Function None 3 + 14: Label + 40: 9(S) FunctionCall 11(foo() + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.namespace.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.namespace.frag.out new file mode 100644 index 0000000000..bfb82dadca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.namespace.frag.out @@ -0,0 +1,181 @@ +hlsl.namespace.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: N1::getVec( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:5 Branch: Return with expression +0:5 'v1' ( global 4-component vector of float) +0:10 Function Definition: N2::getVec( ( temp 4-component vector of float) +0:10 Function Parameters: +0:? Sequence +0:10 Branch: Return with expression +0:10 'v2' ( global 4-component vector of float) +0:12 Function Definition: N2::N3::getVec( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:12 'v2' ( global 4-component vector of float) +0:15 Function Definition: N2::N3::C1::getVec( ( temp 4-component vector of float) +0:15 Function Parameters: +0:15 '@this' ( temp structure{}) +0:? Sequence +0:15 Branch: Return with expression +0:15 'v2' ( global 4-component vector of float) +0:21 Function Definition: @main( ( temp 4-component vector of float) +0:21 Function Parameters: +0:? Sequence +0:22 Branch: Return with expression +0:22 add ( temp 4-component vector of float) +0:22 add ( temp 4-component vector of float) +0:22 add ( temp 4-component vector of float) +0:22 Function Call: N1::getVec( ( temp 4-component vector of float) +0:22 Function Call: N2::getVec( ( temp 4-component vector of float) +0:22 Function Call: N2::N3::getVec( ( temp 4-component vector of float) +0:22 vector-scale ( temp 4-component vector of float) +0:22 Function Call: N2::N3::C1::getVec( ( temp 4-component vector of float) +0:22 'N2::gf' ( global float) +0:21 Function Definition: main( ( temp void) +0:21 Function Parameters: +0:? Sequence +0:21 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:21 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'v1' ( global 4-component vector of float) +0:? 'v2' ( global 4-component vector of float) +0:? 'N2::gf' ( global float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: N1::getVec( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:5 Branch: Return with expression +0:5 'v1' ( global 4-component vector of float) +0:10 Function Definition: N2::getVec( ( temp 4-component vector of float) +0:10 Function Parameters: +0:? Sequence +0:10 Branch: Return with expression +0:10 'v2' ( global 4-component vector of float) +0:12 Function Definition: N2::N3::getVec( ( temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:12 'v2' ( global 4-component vector of float) +0:15 Function Definition: N2::N3::C1::getVec( ( temp 4-component vector of float) +0:15 Function Parameters: +0:15 '@this' ( temp structure{}) +0:? Sequence +0:15 Branch: Return with expression +0:15 'v2' ( global 4-component vector of float) +0:21 Function Definition: @main( ( temp 4-component vector of float) +0:21 Function Parameters: +0:? Sequence +0:22 Branch: Return with expression +0:22 add ( temp 4-component vector of float) +0:22 add ( temp 4-component vector of float) +0:22 add ( temp 4-component vector of float) +0:22 Function Call: N1::getVec( ( temp 4-component vector of float) +0:22 Function Call: N2::getVec( ( temp 4-component vector of float) +0:22 Function Call: N2::N3::getVec( ( temp 4-component vector of float) +0:22 vector-scale ( temp 4-component vector of float) +0:22 Function Call: N2::N3::C1::getVec( ( temp 4-component vector of float) +0:22 'N2::gf' ( global float) +0:21 Function Definition: main( ( temp void) +0:21 Function Parameters: +0:? Sequence +0:21 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:21 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'v1' ( global 4-component vector of float) +0:? 'v2' ( global 4-component vector of float) +0:? 'N2::gf' ( global float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 52 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "N1::getVec(" + Name 11 "N2::getVec(" + Name 13 "N2::N3::getVec(" + Name 15 "C1" + Name 19 "N2::N3::C1::getVec(" + Name 18 "@this" + Name 21 "@main(" + Name 24 "v1" + Name 28 "v2" + Name 45 "N2::gf" + Name 52 "@entryPointOutput" + Decorate 52(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15(C1): TypeStruct + 16: TypePointer Function 15(C1) + 17: TypeFunction 7(fvec4) 16(ptr) + 23: TypePointer Private 7(fvec4) + 24(v1): 23(ptr) Variable Private + 28(v2): 23(ptr) Variable Private + 44: TypePointer Private 6(float) + 45(N2::gf): 44(ptr) Variable Private + 51: TypePointer Output 7(fvec4) +52(@entryPointOutput): 51(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 53: 7(fvec4) FunctionCall 21(@main() + Store 52(@entryPointOutput) 53 + Return + FunctionEnd + 9(N1::getVec(): 7(fvec4) Function None 8 + 10: Label + 25: 7(fvec4) Load 24(v1) + ReturnValue 25 + FunctionEnd + 11(N2::getVec(): 7(fvec4) Function None 8 + 12: Label + 29: 7(fvec4) Load 28(v2) + ReturnValue 29 + FunctionEnd +13(N2::N3::getVec(): 7(fvec4) Function None 8 + 14: Label + 32: 7(fvec4) Load 28(v2) + ReturnValue 32 + FunctionEnd +19(N2::N3::C1::getVec(): 7(fvec4) Function None 17 + 18(@this): 16(ptr) FunctionParameter + 20: Label + 35: 7(fvec4) Load 28(v2) + ReturnValue 35 + FunctionEnd + 21(@main(): 7(fvec4) Function None 8 + 22: Label + 38: 7(fvec4) FunctionCall 9(N1::getVec() + 39: 7(fvec4) FunctionCall 11(N2::getVec() + 40: 7(fvec4) FAdd 38 39 + 41: 7(fvec4) FunctionCall 13(N2::N3::getVec() + 42: 7(fvec4) FAdd 40 41 + 43: 7(fvec4) FunctionCall 19(N2::N3::C1::getVec() + 46: 6(float) Load 45(N2::gf) + 47: 7(fvec4) VectorTimesScalar 43 46 + 48: 7(fvec4) FAdd 42 47 + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out new file mode 100644 index 0000000000..f00fe744bd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out @@ -0,0 +1,62 @@ +hlsl.noSemantic.functionality1.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + Extension "SPV_GOOGLE_hlsl_functionality1" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 + Name 4 "main" + Name 6 "@main(" + Name 11 "Buf" + MemberName 11(Buf) 0 "@data" + Name 13 "Buf" + Name 17 "Buf@count" + MemberName 17(Buf@count) 0 "@count" + Name 19 "Buf@count" + Decorate 10 ArrayStride 16 + MemberDecorate 11(Buf) 0 Offset 0 + Decorate 11(Buf) BufferBlock + Decorate 13(Buf) DescriptorSet 0 + Decorate 13(Buf) Binding 0 + MemberDecorate 17(Buf@count) 0 Offset 0 + Decorate 17(Buf@count) BufferBlock + Decorate 19(Buf@count) DescriptorSet 0 + DecorateId 13(Buf) DecorationHlslCounterBufferGOOGLE 19(Buf@count) + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeRuntimeArray 9(fvec4) + 11(Buf): TypeStruct 10 + 12: TypePointer Uniform 11(Buf) + 13(Buf): 12(ptr) Variable Uniform + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypeInt 32 0 + 17(Buf@count): TypeStruct 16(int) + 18: TypePointer Uniform 17(Buf@count) + 19(Buf@count): 18(ptr) Variable Uniform + 20: TypePointer Uniform 16(int) + 22: 16(int) Constant 1 + 23: 16(int) Constant 0 + 25: 8(float) Constant 1065353216 + 26: 9(fvec4) ConstantComposite 25 25 25 25 + 27: TypePointer Uniform 9(fvec4) + 4(main): 2 Function None 3 + 5: Label + 29: 2 FunctionCall 6(@main() + Return + FunctionEnd + 6(@main(): 2 Function None 3 + 7: Label + 21: 20(ptr) AccessChain 19(Buf@count) 15 + 24: 16(int) AtomicIAdd 21 22 23 22 + 28: 27(ptr) AccessChain 13(Buf) 15 24 + Store 28 26 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.nonint-index.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.nonint-index.frag.out new file mode 100644 index 0000000000..131c1ec03c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.nonint-index.frag.out @@ -0,0 +1,152 @@ +hlsl.nonint-index.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(f1; ( temp float) +0:4 Function Parameters: +0:4 'input' ( in float) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp float) +0:7 add ( temp float) +0:7 add ( temp float) +0:7 indirect index ( temp float) +0:7 Constant: +0:7 1.000000 +0:7 2.000000 +0:7 3.000000 +0:7 Convert float to uint ( temp uint) +0:7 'input' ( in float) +0:7 Constant: +0:7 3.000000 +0:7 Constant: +0:7 2.000000 +0:7 Constant: +0:7 1.000000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp float) +0:? 'input' ( temp float) +0:? 'input' (layout( location=0) in float) +0:4 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:4 Function Call: @main(f1; ( temp float) +0:? 'input' ( temp float) +0:? Linker Objects +0:? 'array' ( const 3-element array of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'input' (layout( location=0) in float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main(f1; ( temp float) +0:4 Function Parameters: +0:4 'input' ( in float) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp float) +0:7 add ( temp float) +0:7 add ( temp float) +0:7 indirect index ( temp float) +0:7 Constant: +0:7 1.000000 +0:7 2.000000 +0:7 3.000000 +0:7 Convert float to uint ( temp uint) +0:7 'input' ( in float) +0:7 Constant: +0:7 3.000000 +0:7 Constant: +0:7 2.000000 +0:7 Constant: +0:7 1.000000 +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp float) +0:? 'input' ( temp float) +0:? 'input' (layout( location=0) in float) +0:4 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:4 Function Call: @main(f1; ( temp float) +0:? 'input' ( temp float) +0:? Linker Objects +0:? 'array' ( const 3-element array of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'input' (layout( location=0) in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 32 35 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "@main(f1;" + Name 9 "input" + Name 22 "indexable" + Name 30 "input" + Name 32 "input" + Name 35 "@entryPointOutput" + Name 36 "param" + Decorate 32(input) Location 0 + Decorate 35(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 6(float) 13 + 15: 6(float) Constant 1065353216 + 16: 6(float) Constant 1073741824 + 17: 6(float) Constant 1077936128 + 18: 14 ConstantComposite 15 16 17 + 21: TypePointer Function 14 + 31: TypePointer Input 6(float) + 32(input): 31(ptr) Variable Input + 34: TypePointer Output 6(float) +35(@entryPointOutput): 34(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 30(input): 7(ptr) Variable Function + 36(param): 7(ptr) Variable Function + 33: 6(float) Load 32(input) + Store 30(input) 33 + 37: 6(float) Load 30(input) + Store 36(param) 37 + 38: 6(float) FunctionCall 10(@main(f1;) 36(param) + Store 35(@entryPointOutput) 38 + Return + FunctionEnd + 10(@main(f1;): 6(float) Function None 8 + 9(input): 7(ptr) FunctionParameter + 11: Label + 22(indexable): 21(ptr) Variable Function + 19: 6(float) Load 9(input) + 20: 12(int) ConvertFToU 19 + Store 22(indexable) 18 + 23: 7(ptr) AccessChain 22(indexable) 20 + 24: 6(float) Load 23 + 25: 6(float) FAdd 24 17 + 26: 6(float) FAdd 25 16 + 27: 6(float) FAdd 26 15 + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out new file mode 100644 index 0000000000..1927a4cf26 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out @@ -0,0 +1,436 @@ +hlsl.nonstaticMemberFunction.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 2-component vector of float) +0:1 'i' ( global 2-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:5 Function Definition: type1::setmem(vf4; ( temp void) +0:5 Function Parameters: +0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:5 'm' ( in 4-component vector of float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 memVar: direct index for structure ( temp 4-component vector of float) +0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:5 Constant: +0:5 0 (const uint) +0:5 'm' ( in 4-component vector of float) +0:6 Function Definition: type1::seti(i1; ( temp void) +0:6 Function Parameters: +0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:6 'si' ( in int) +0:? Sequence +0:6 move second child to first child ( temp int) +0:6 i: direct index for structure ( temp int) +0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:6 Constant: +0:6 1 (const uint) +0:6 'si' ( in int) +0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:9 'a' ( in 4-component vector of float) +0:? Sequence +0:10 Branch: Return with expression +0:10 add ( temp 4-component vector of float) +0:10 vector-scale ( temp 4-component vector of float) +0:10 Convert int to float ( temp float) +0:10 i: direct index for structure ( temp int) +0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:10 Constant: +0:10 1 (const uint) +0:10 'a' ( in 4-component vector of float) +0:10 memVar: direct index for structure ( temp 4-component vector of float) +0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:10 Constant: +0:10 0 (const uint) +0:13 Function Definition: type1::memFun(i1; ( temp int) +0:13 Function Parameters: +0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:13 'a' ( in int) +0:? Sequence +0:14 Branch: Return with expression +0:14 Convert float to int ( temp int) +0:14 subtract ( temp float) +0:14 Convert int to float ( temp float) +0:14 add ( temp int) +0:14 i: direct index for structure ( temp int) +0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:14 Constant: +0:14 1 (const uint) +0:14 'a' ( in int) +0:14 direct index ( temp float) +0:14 memVar: direct index for structure ( temp 4-component vector of float) +0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:19 Sequence +0:19 move second child to first child ( temp 2-component vector of float) +0:19 'j' ( global 2-component vector of float) +0:19 'i' ( global 2-component vector of float) +0:23 Function Definition: type2::memFun( ( temp 2-component vector of float) +0:23 Function Parameters: +0:23 '@this' ( temp structure{}) +0:? Sequence +0:23 Branch: Return with expression +0:23 'i' ( global 2-component vector of float) +0:27 Function Definition: @main( ( temp 4-component vector of float) +0:27 Function Parameters: +0:? Sequence +0:29 Function Call: type1::setmem(vf4; ( temp void) +0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:30 Function Call: type1::seti(i1; ( temp void) +0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:30 Constant: +0:30 17 (const int) +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'f4' ( temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:32 add second child into first child ( temp 4-component vector of float) +0:32 'f4' ( temp 4-component vector of float) +0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) +0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:? Constant: +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'f4' ( temp 4-component vector of float) +0:33 Convert int to float ( temp float) +0:33 Function Call: type1::memFun(i1; ( temp int) +0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:33 Constant: +0:33 7 (const int) +0:34 Branch: Return with expression +0:34 'f4' ( temp 4-component vector of float) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'i' ( global 2-component vector of float) +0:? 'j' ( global 2-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 2-component vector of float) +0:1 'i' ( global 2-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:5 Function Definition: type1::setmem(vf4; ( temp void) +0:5 Function Parameters: +0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:5 'm' ( in 4-component vector of float) +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:5 memVar: direct index for structure ( temp 4-component vector of float) +0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:5 Constant: +0:5 0 (const uint) +0:5 'm' ( in 4-component vector of float) +0:6 Function Definition: type1::seti(i1; ( temp void) +0:6 Function Parameters: +0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:6 'si' ( in int) +0:? Sequence +0:6 move second child to first child ( temp int) +0:6 i: direct index for structure ( temp int) +0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:6 Constant: +0:6 1 (const uint) +0:6 'si' ( in int) +0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:9 'a' ( in 4-component vector of float) +0:? Sequence +0:10 Branch: Return with expression +0:10 add ( temp 4-component vector of float) +0:10 vector-scale ( temp 4-component vector of float) +0:10 Convert int to float ( temp float) +0:10 i: direct index for structure ( temp int) +0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:10 Constant: +0:10 1 (const uint) +0:10 'a' ( in 4-component vector of float) +0:10 memVar: direct index for structure ( temp 4-component vector of float) +0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:10 Constant: +0:10 0 (const uint) +0:13 Function Definition: type1::memFun(i1; ( temp int) +0:13 Function Parameters: +0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:13 'a' ( in int) +0:? Sequence +0:14 Branch: Return with expression +0:14 Convert float to int ( temp int) +0:14 subtract ( temp float) +0:14 Convert int to float ( temp float) +0:14 add ( temp int) +0:14 i: direct index for structure ( temp int) +0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:14 Constant: +0:14 1 (const uint) +0:14 'a' ( in int) +0:14 direct index ( temp float) +0:14 memVar: direct index for structure ( temp 4-component vector of float) +0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:19 Sequence +0:19 move second child to first child ( temp 2-component vector of float) +0:19 'j' ( global 2-component vector of float) +0:19 'i' ( global 2-component vector of float) +0:23 Function Definition: type2::memFun( ( temp 2-component vector of float) +0:23 Function Parameters: +0:23 '@this' ( temp structure{}) +0:? Sequence +0:23 Branch: Return with expression +0:23 'i' ( global 2-component vector of float) +0:27 Function Definition: @main( ( temp 4-component vector of float) +0:27 Function Parameters: +0:? Sequence +0:29 Function Call: type1::setmem(vf4; ( temp void) +0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:30 Function Call: type1::seti(i1; ( temp void) +0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:30 Constant: +0:30 17 (const int) +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'f4' ( temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:32 add second child into first child ( temp 4-component vector of float) +0:32 'f4' ( temp 4-component vector of float) +0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) +0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:? Constant: +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'f4' ( temp 4-component vector of float) +0:33 Convert int to float ( temp float) +0:33 Function Call: type1::memFun(i1; ( temp int) +0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) +0:33 Constant: +0:33 7 (const int) +0:34 Branch: Return with expression +0:34 'f4' ( temp 4-component vector of float) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:27 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'i' ( global 2-component vector of float) +0:? 'j' ( global 2-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 111 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 109 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "type1" + MemberName 9(type1) 0 "memVar" + MemberName 9(type1) 1 "i" + Name 15 "type1::setmem(vf4;" + Name 13 "@this" + Name 14 "m" + Name 21 "type1::seti(i1;" + Name 19 "@this" + Name 20 "si" + Name 26 "type1::memFun(vf4;" + Name 24 "@this" + Name 25 "a" + Name 31 "type1::memFun(i1;" + Name 29 "@this" + Name 30 "a" + Name 33 "type2" + Name 38 "type2::memFun(" + Name 37 "@this" + Name 41 "@main(" + Name 44 "i" + Name 48 "j" + Name 83 "test" + Name 85 "param" + Name 88 "param" + Name 90 "f4" + Name 94 "param" + Name 99 "param" + Name 109 "@entryPointOutput" + Decorate 109(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 1 + 9(type1): TypeStruct 7(fvec4) 8(int) + 10: TypePointer Function 9(type1) + 11: TypePointer Function 7(fvec4) + 12: TypeFunction 2 10(ptr) 11(ptr) + 17: TypePointer Function 8(int) + 18: TypeFunction 2 10(ptr) 17(ptr) + 23: TypeFunction 7(fvec4) 10(ptr) 11(ptr) + 28: TypeFunction 8(int) 10(ptr) 17(ptr) + 33(type2): TypeStruct + 34: TypePointer Function 33(type2) + 35: TypeVector 6(float) 2 + 36: TypeFunction 35(fvec2) 34(ptr) + 40: TypeFunction 7(fvec4) + 43: TypePointer Private 35(fvec2) + 44(i): 43(ptr) Variable Private + 45: 6(float) Constant 1065353216 + 46: 6(float) Constant 1073741824 + 47: 35(fvec2) ConstantComposite 45 46 + 48(j): 43(ptr) Variable Private + 50: 8(int) Constant 0 + 53: 8(int) Constant 1 + 71: TypeInt 32 0 + 72: 71(int) Constant 2 + 73: TypePointer Function 6(float) + 84: 7(fvec4) ConstantComposite 46 46 46 46 + 87: 8(int) Constant 17 + 91: 7(fvec4) ConstantComposite 45 45 45 45 + 92: 6(float) Constant 1084227584 + 93: 7(fvec4) ConstantComposite 92 92 92 92 + 98: 8(int) Constant 7 + 108: TypePointer Output 7(fvec4) +109(@entryPointOutput): 108(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Store 44(i) 47 + 49: 35(fvec2) Load 44(i) + Store 48(j) 49 + 110: 7(fvec4) FunctionCall 41(@main() + Store 109(@entryPointOutput) 110 + Return + FunctionEnd +15(type1::setmem(vf4;): 2 Function None 12 + 13(@this): 10(ptr) FunctionParameter + 14(m): 11(ptr) FunctionParameter + 16: Label + 51: 7(fvec4) Load 14(m) + 52: 11(ptr) AccessChain 13(@this) 50 + Store 52 51 + Return + FunctionEnd +21(type1::seti(i1;): 2 Function None 18 + 19(@this): 10(ptr) FunctionParameter + 20(si): 17(ptr) FunctionParameter + 22: Label + 54: 8(int) Load 20(si) + 55: 17(ptr) AccessChain 19(@this) 53 + Store 55 54 + Return + FunctionEnd +26(type1::memFun(vf4;): 7(fvec4) Function None 23 + 24(@this): 10(ptr) FunctionParameter + 25(a): 11(ptr) FunctionParameter + 27: Label + 56: 17(ptr) AccessChain 24(@this) 53 + 57: 8(int) Load 56 + 58: 6(float) ConvertSToF 57 + 59: 7(fvec4) Load 25(a) + 60: 7(fvec4) VectorTimesScalar 59 58 + 61: 11(ptr) AccessChain 24(@this) 50 + 62: 7(fvec4) Load 61 + 63: 7(fvec4) FAdd 60 62 + ReturnValue 63 + FunctionEnd +31(type1::memFun(i1;): 8(int) Function None 28 + 29(@this): 10(ptr) FunctionParameter + 30(a): 17(ptr) FunctionParameter + 32: Label + 66: 17(ptr) AccessChain 29(@this) 53 + 67: 8(int) Load 66 + 68: 8(int) Load 30(a) + 69: 8(int) IAdd 67 68 + 70: 6(float) ConvertSToF 69 + 74: 73(ptr) AccessChain 29(@this) 50 72 + 75: 6(float) Load 74 + 76: 6(float) FSub 70 75 + 77: 8(int) ConvertFToS 76 + ReturnValue 77 + FunctionEnd +38(type2::memFun(): 35(fvec2) Function None 36 + 37(@this): 34(ptr) FunctionParameter + 39: Label + 80: 35(fvec2) Load 44(i) + ReturnValue 80 + FunctionEnd + 41(@main(): 7(fvec4) Function None 40 + 42: Label + 83(test): 10(ptr) Variable Function + 85(param): 11(ptr) Variable Function + 88(param): 17(ptr) Variable Function + 90(f4): 11(ptr) Variable Function + 94(param): 11(ptr) Variable Function + 99(param): 17(ptr) Variable Function + Store 85(param) 84 + 86: 2 FunctionCall 15(type1::setmem(vf4;) 83(test) 85(param) + Store 88(param) 87 + 89: 2 FunctionCall 21(type1::seti(i1;) 83(test) 88(param) + Store 90(f4) 91 + Store 94(param) 93 + 95: 7(fvec4) FunctionCall 26(type1::memFun(vf4;) 83(test) 94(param) + 96: 7(fvec4) Load 90(f4) + 97: 7(fvec4) FAdd 96 95 + Store 90(f4) 97 + Store 99(param) 98 + 100: 8(int) FunctionCall 31(type1::memFun(i1;) 83(test) 99(param) + 101: 6(float) ConvertSToF 100 + 102: 7(fvec4) Load 90(f4) + 103: 7(fvec4) CompositeConstruct 101 101 101 101 + 104: 7(fvec4) FAdd 102 103 + Store 90(f4) 104 + 105: 7(fvec4) Load 90(f4) + ReturnValue 105 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out new file mode 100644 index 0000000000..b1fa856faa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -0,0 +1,292 @@ +hlsl.numericsuffixes.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:5 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'r00' ( temp float) +0:7 Constant: +0:7 1.000000 +0:8 Sequence +0:8 move second child to first child ( temp uint) +0:8 'r01' ( temp uint) +0:8 Constant: +0:8 1 (const uint) +0:9 Sequence +0:9 move second child to first child ( temp uint) +0:9 'r02' ( temp uint) +0:9 Constant: +0:9 2 (const uint) +0:10 Sequence +0:10 move second child to first child ( temp uint) +0:10 'r03' ( temp uint) +0:10 Constant: +0:10 2748 (const uint) +0:11 Sequence +0:11 move second child to first child ( temp uint) +0:11 'r04' ( temp uint) +0:11 Constant: +0:11 2748 (const uint) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'r05' ( temp int) +0:12 Constant: +0:12 5 (const int) +0:13 Sequence +0:13 move second child to first child ( temp int) +0:13 'r06' ( temp int) +0:13 Constant: +0:13 6 (const int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'r07' ( temp int) +0:14 Constant: +0:14 57 (const int) +0:15 Sequence +0:15 move second child to first child ( temp uint) +0:15 'r08' ( temp uint) +0:15 Constant: +0:15 58 (const uint) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'r09' ( temp float) +0:16 Constant: +0:16 1.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'r10' ( temp float) +0:17 Constant: +0:17 1.000000 +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'r11' ( temp float) +0:18 Constant: +0:18 1.100000 +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'r12' ( temp float) +0:19 Constant: +0:19 1.100000 +0:22 move second child to first child ( temp 4-component vector of float) +0:22 color: direct index for structure ( temp 4-component vector of float) +0:22 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:22 Constant: +0:22 0 (const int) +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 Convert int to float ( temp float) +0:22 'r07' ( temp int) +0:23 Branch: Return with expression +0:23 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:5 color: direct index for structure ( temp 4-component vector of float) +0:5 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:5 Constant: +0:5 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:5 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'r00' ( temp float) +0:7 Constant: +0:7 1.000000 +0:8 Sequence +0:8 move second child to first child ( temp uint) +0:8 'r01' ( temp uint) +0:8 Constant: +0:8 1 (const uint) +0:9 Sequence +0:9 move second child to first child ( temp uint) +0:9 'r02' ( temp uint) +0:9 Constant: +0:9 2 (const uint) +0:10 Sequence +0:10 move second child to first child ( temp uint) +0:10 'r03' ( temp uint) +0:10 Constant: +0:10 2748 (const uint) +0:11 Sequence +0:11 move second child to first child ( temp uint) +0:11 'r04' ( temp uint) +0:11 Constant: +0:11 2748 (const uint) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'r05' ( temp int) +0:12 Constant: +0:12 5 (const int) +0:13 Sequence +0:13 move second child to first child ( temp int) +0:13 'r06' ( temp int) +0:13 Constant: +0:13 6 (const int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'r07' ( temp int) +0:14 Constant: +0:14 57 (const int) +0:15 Sequence +0:15 move second child to first child ( temp uint) +0:15 'r08' ( temp uint) +0:15 Constant: +0:15 58 (const uint) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'r09' ( temp float) +0:16 Constant: +0:16 1.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'r10' ( temp float) +0:17 Constant: +0:17 1.000000 +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'r11' ( temp float) +0:18 Constant: +0:18 1.100000 +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'r12' ( temp float) +0:19 Constant: +0:19 1.100000 +0:22 move second child to first child ( temp 4-component vector of float) +0:22 color: direct index for structure ( temp 4-component vector of float) +0:22 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:22 Constant: +0:22 0 (const int) +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 Convert int to float ( temp float) +0:22 'r07' ( temp int) +0:23 Branch: Return with expression +0:23 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:5 color: direct index for structure ( temp 4-component vector of float) +0:5 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:5 Constant: +0:5 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 51 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 10 "@main(" + Name 13 "r00" + Name 17 "r01" + Name 19 "r02" + Name 21 "r03" + Name 23 "r04" + Name 26 "r05" + Name 28 "r06" + Name 30 "r07" + Name 32 "r08" + Name 34 "r09" + Name 35 "r10" + Name 36 "r11" + Name 38 "r12" + Name 40 "ps_output" + Name 51 "@entryPointOutput.color" + Decorate 51(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: 6(float) Constant 1065353216 + 15: TypeInt 32 0 + 16: TypePointer Function 15(int) + 18: 15(int) Constant 1 + 20: 15(int) Constant 2 + 22: 15(int) Constant 2748 + 24: TypeInt 32 1 + 25: TypePointer Function 24(int) + 27: 24(int) Constant 5 + 29: 24(int) Constant 6 + 31: 24(int) Constant 57 + 33: 15(int) Constant 58 + 37: 6(float) Constant 1066192077 + 39: TypePointer Function 8(PS_OUTPUT) + 41: 24(int) Constant 0 + 45: TypePointer Function 7(fvec4) + 50: TypePointer Output 7(fvec4) +51(@entryPointOutput.color): 50(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 52:8(PS_OUTPUT) FunctionCall 10(@main() + 53: 7(fvec4) CompositeExtract 52 0 + Store 51(@entryPointOutput.color) 53 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 17(r01): 16(ptr) Variable Function + 19(r02): 16(ptr) Variable Function + 21(r03): 16(ptr) Variable Function + 23(r04): 16(ptr) Variable Function + 26(r05): 25(ptr) Variable Function + 28(r06): 25(ptr) Variable Function + 30(r07): 25(ptr) Variable Function + 32(r08): 16(ptr) Variable Function + 34(r09): 12(ptr) Variable Function + 35(r10): 12(ptr) Variable Function + 36(r11): 12(ptr) Variable Function + 38(r12): 12(ptr) Variable Function + 40(ps_output): 39(ptr) Variable Function + Store 13(r00) 14 + Store 17(r01) 18 + Store 19(r02) 20 + Store 21(r03) 22 + Store 23(r04) 22 + Store 26(r05) 27 + Store 28(r06) 29 + Store 30(r07) 31 + Store 32(r08) 33 + Store 34(r09) 14 + Store 35(r10) 14 + Store 36(r11) 37 + Store 38(r12) 37 + 42: 24(int) Load 30(r07) + 43: 6(float) ConvertSToF 42 + 44: 7(fvec4) CompositeConstruct 43 43 43 43 + 46: 45(ptr) AccessChain 40(ps_output) 41 + Store 46 44 + 47:8(PS_OUTPUT) Load 40(ps_output) + ReturnValue 47 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.numthreads.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.numthreads.comp.out new file mode 100644 index 0000000000..fd7de34b17 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.numthreads.comp.out @@ -0,0 +1,93 @@ +hlsl.numthreads.comp +Shader version: 500 +local_size = (1, 4, 8) +0:? Sequence +0:4 Function Definition: main(vu3; ( temp void) +0:4 Function Parameters: +0:4 'tid' ( in 3-component vector of uint) +0:9 Function Definition: @main_aux2(vu3; ( temp void) +0:9 Function Parameters: +0:9 'tid' ( in 3-component vector of uint) +0:9 Function Definition: main_aux2( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:9 Function Call: @main_aux2(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 4, 8) +0:? Sequence +0:4 Function Definition: main(vu3; ( temp void) +0:4 Function Parameters: +0:4 'tid' ( in 3-component vector of uint) +0:9 Function Definition: @main_aux2(vu3; ( temp void) +0:9 Function Parameters: +0:9 'tid' ( in 3-component vector of uint) +0:9 Function Definition: main_aux2( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:9 Function Call: @main_aux2(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 23 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main_aux2" 18 + ExecutionMode 4 LocalSize 1 4 8 + Source HLSL 500 + Name 4 "main_aux2" + Name 11 "main(vu3;" + Name 10 "tid" + Name 14 "@main_aux2(vu3;" + Name 13 "tid" + Name 16 "tid" + Name 18 "tid" + Name 20 "param" + Decorate 18(tid) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 17: TypePointer Input 7(ivec3) + 18(tid): 17(ptr) Variable Input + 4(main_aux2): 2 Function None 3 + 5: Label + 16(tid): 8(ptr) Variable Function + 20(param): 8(ptr) Variable Function + 19: 7(ivec3) Load 18(tid) + Store 16(tid) 19 + 21: 7(ivec3) Load 16(tid) + Store 20(param) 21 + 22: 2 FunctionCall 14(@main_aux2(vu3;) 20(param) + Return + FunctionEnd + 11(main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + Return + FunctionEnd +14(@main_aux2(vu3;): 2 Function None 9 + 13(tid): 8(ptr) FunctionParameter + 15: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out new file mode 100644 index 0000000000..918b462fb9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out @@ -0,0 +1,112 @@ +hlsl.opaque-type-bug.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: TexFunc(t21;vf3; ( temp void) +0:6 Function Parameters: +0:6 't2D' ( const (read only) texture2D) +0:6 'RGB' ( out 3-component vector of float) +0:? Sequence +0:7 move second child to first child ( temp 3-component vector of float) +0:7 'RGB' ( out 3-component vector of float) +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:12 Function Definition: @main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:15 Function Call: TexFunc(t21;vf3; ( temp void) +0:15 'MyTexture' (layout( binding=0) uniform texture2D) +0:15 'final_RGB' ( temp 3-component vector of float) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'MyTexture' (layout( binding=0) uniform texture2D) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: TexFunc(t21;vf3; ( temp void) +0:6 Function Parameters: +0:6 't2D' ( const (read only) texture2D) +0:6 'RGB' ( out 3-component vector of float) +0:? Sequence +0:7 move second child to first child ( temp 3-component vector of float) +0:7 'RGB' ( out 3-component vector of float) +0:7 Constant: +0:7 0.000000 +0:7 0.000000 +0:7 0.000000 +0:12 Function Definition: @main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:15 Function Call: TexFunc(t21;vf3; ( temp void) +0:15 'MyTexture' (layout( binding=0) uniform texture2D) +0:15 'final_RGB' ( temp 3-component vector of float) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'MyTexture' (layout( binding=0) uniform texture2D) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 13 "TexFunc(t21;vf3;" + Name 11 "t2D" + Name 12 "RGB" + Name 15 "@main(" + Name 20 "MyTexture" + Name 22 "final_RGB" + Name 23 "param" + Decorate 20(MyTexture) DescriptorSet 0 + Decorate 20(MyTexture) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D sampled format:Unknown + 8: TypeVector 6(float) 3 + 9: TypePointer Function 8(fvec3) + 10: TypeFunction 2 7 9(ptr) + 17: 6(float) Constant 0 + 18: 8(fvec3) ConstantComposite 17 17 17 + 19: TypePointer UniformConstant 7 + 20(MyTexture): 19(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 26: 2 FunctionCall 15(@main() + Return + FunctionEnd +13(TexFunc(t21;vf3;): 2 Function None 10 + 11(t2D): 7 FunctionParameter + 12(RGB): 9(ptr) FunctionParameter + 14: Label + Store 12(RGB) 18 + Return + FunctionEnd + 15(@main(): 2 Function None 3 + 16: Label + 22(final_RGB): 9(ptr) Variable Function + 23(param): 9(ptr) Variable Function + 21: 7 Load 20(MyTexture) + 24: 2 FunctionCall 13(TexFunc(t21;vf3;) 21 23(param) + 25: 8(fvec3) Load 23(param) + Store 22(final_RGB) 25 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out new file mode 100644 index 0000000000..5960d3d589 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.overload.frag.out @@ -0,0 +1,1625 @@ +hlsl.overload.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo1(d1;b1; ( temp void) +0:2 Function Parameters: +0:2 'a' ( in double) +0:2 'b' ( in bool) +0:3 Function Definition: foo1(d1;u1; ( temp void) +0:3 Function Parameters: +0:3 'a' ( in double) +0:3 'b' ( in uint) +0:4 Function Definition: foo1(d1;i1; ( temp void) +0:4 Function Parameters: +0:4 'a' ( in double) +0:4 'b' ( in int) +0:5 Function Definition: foo1(d1;f1; ( temp void) +0:5 Function Parameters: +0:5 'a' ( in double) +0:5 'b' ( in float) +0:6 Function Definition: foo1(d1;d1; ( temp void) +0:6 Function Parameters: +0:6 'a' ( in double) +0:6 'b' ( in double) +0:9 Function Definition: foo2(i1;b1; ( temp void) +0:9 Function Parameters: +0:9 'a' ( in int) +0:9 'b' ( in bool) +0:10 Function Definition: foo2(i1;u1; ( temp void) +0:10 Function Parameters: +0:10 'a' ( in int) +0:10 'b' ( in uint) +0:11 Function Definition: foo2(i1;i1; ( temp void) +0:11 Function Parameters: +0:11 'a' ( in int) +0:11 'b' ( in int) +0:12 Function Definition: foo2(i1;f1; ( temp void) +0:12 Function Parameters: +0:12 'a' ( in int) +0:12 'b' ( in float) +0:13 Function Definition: foo2(i1;d1; ( temp void) +0:13 Function Parameters: +0:13 'a' ( in int) +0:13 'b' ( in double) +0:16 Function Definition: foo3(b1; ( temp void) +0:16 Function Parameters: +0:16 'b' ( in bool) +0:17 Function Definition: foo4(u1; ( temp void) +0:17 Function Parameters: +0:17 'b' ( in uint) +0:18 Function Definition: foo5(i1; ( temp void) +0:18 Function Parameters: +0:18 'b' ( in int) +0:19 Function Definition: foo6(f1; ( temp void) +0:19 Function Parameters: +0:19 'b' ( in float) +0:20 Function Definition: foo7(d1; ( temp void) +0:20 Function Parameters: +0:20 'b' ( in double) +0:23 Function Definition: foo8(f1; ( temp void) +0:23 Function Parameters: +0:23 '' ( in float) +0:24 Function Definition: foo8(d1; ( temp void) +0:24 Function Parameters: +0:24 '' ( in double) +0:25 Function Definition: foo9(i1; ( temp void) +0:25 Function Parameters: +0:25 '' ( in int) +0:26 Function Definition: foo9(u1; ( temp void) +0:26 Function Parameters: +0:26 '' ( in uint) +0:27 Function Definition: foo10(b1; ( temp void) +0:27 Function Parameters: +0:27 '' ( in bool) +0:28 Function Definition: foo10(i1; ( temp void) +0:28 Function Parameters: +0:28 '' ( in int) +0:31 Function Definition: foo11(vf3; ( temp void) +0:31 Function Parameters: +0:31 '' ( in 3-component vector of float) +0:32 Function Definition: foo11(d1; ( temp void) +0:32 Function Parameters: +0:32 '' ( in double) +0:33 Function Definition: foo11(vi3; ( temp void) +0:33 Function Parameters: +0:33 '' ( in 3-component vector of int) +0:34 Function Definition: foo11(u1; ( temp void) +0:34 Function Parameters: +0:34 '' ( in uint) +0:35 Function Definition: foo12(vf1; ( temp void) +0:35 Function Parameters: +0:35 '' ( in 1-component vector of float) +0:36 Function Definition: foo12(vd3; ( temp void) +0:36 Function Parameters: +0:36 '' ( in 3-component vector of double) +0:37 Function Definition: foo16(u1; ( temp void) +0:37 Function Parameters: +0:37 '' ( in uint) +0:38 Function Definition: foo16(vu2; ( temp void) +0:38 Function Parameters: +0:38 '' ( in 2-component vector of uint) +0:41 Function Definition: foo13(vf3; ( temp void) +0:41 Function Parameters: +0:41 '' ( in 3-component vector of float) +0:42 Function Definition: foo14(vi1; ( temp void) +0:42 Function Parameters: +0:42 '' ( in 1-component vector of int) +0:43 Function Definition: foo15(vb1; ( temp void) +0:43 Function Parameters: +0:43 '' ( in 1-component vector of bool) +0:46 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:46 Function Parameters: +0:46 'input' ( in 4-component vector of float) +0:? Sequence +0:53 Function Call: foo1(d1;b1; ( temp void) +0:53 'd' ( temp double) +0:53 'b' ( temp bool) +0:54 Function Call: foo1(d1;d1; ( temp void) +0:54 'd' ( temp double) +0:54 'd' ( temp double) +0:55 Function Call: foo1(d1;u1; ( temp void) +0:55 'd' ( temp double) +0:55 'u' ( temp uint) +0:56 Function Call: foo1(d1;i1; ( temp void) +0:56 'd' ( temp double) +0:56 'i' ( temp int) +0:57 Function Call: foo1(d1;f1; ( temp void) +0:57 'd' ( temp double) +0:57 'f' ( temp float) +0:59 Function Call: foo1(d1;b1; ( temp void) +0:59 Convert float to double ( temp double) +0:59 'f' ( temp float) +0:59 'b' ( temp bool) +0:60 Function Call: foo1(d1;d1; ( temp void) +0:60 Convert float to double ( temp double) +0:60 'f' ( temp float) +0:60 'd' ( temp double) +0:61 Function Call: foo1(d1;u1; ( temp void) +0:61 Convert float to double ( temp double) +0:61 'f' ( temp float) +0:61 'u' ( temp uint) +0:62 Function Call: foo1(d1;i1; ( temp void) +0:62 Convert float to double ( temp double) +0:62 'f' ( temp float) +0:62 'i' ( temp int) +0:63 Function Call: foo1(d1;f1; ( temp void) +0:63 Convert float to double ( temp double) +0:63 'f' ( temp float) +0:63 'f' ( temp float) +0:65 Function Call: foo1(d1;b1; ( temp void) +0:65 Convert uint to double ( temp double) +0:65 'u' ( temp uint) +0:65 'b' ( temp bool) +0:66 Function Call: foo1(d1;d1; ( temp void) +0:66 Convert uint to double ( temp double) +0:66 'u' ( temp uint) +0:66 'd' ( temp double) +0:67 Function Call: foo1(d1;u1; ( temp void) +0:67 Convert uint to double ( temp double) +0:67 'u' ( temp uint) +0:67 'u' ( temp uint) +0:68 Function Call: foo1(d1;i1; ( temp void) +0:68 Convert uint to double ( temp double) +0:68 'u' ( temp uint) +0:68 'i' ( temp int) +0:69 Function Call: foo1(d1;f1; ( temp void) +0:69 Convert uint to double ( temp double) +0:69 'u' ( temp uint) +0:69 'f' ( temp float) +0:71 Function Call: foo1(d1;b1; ( temp void) +0:71 Convert int to double ( temp double) +0:71 'i' ( temp int) +0:71 'b' ( temp bool) +0:72 Function Call: foo1(d1;d1; ( temp void) +0:72 Convert int to double ( temp double) +0:72 'i' ( temp int) +0:72 'd' ( temp double) +0:73 Function Call: foo1(d1;u1; ( temp void) +0:73 Convert int to double ( temp double) +0:73 'i' ( temp int) +0:73 'u' ( temp uint) +0:74 Function Call: foo1(d1;i1; ( temp void) +0:74 Convert int to double ( temp double) +0:74 'i' ( temp int) +0:74 'i' ( temp int) +0:75 Function Call: foo1(d1;f1; ( temp void) +0:75 Convert int to double ( temp double) +0:75 'i' ( temp int) +0:75 'f' ( temp float) +0:77 Function Call: foo2(i1;b1; ( temp void) +0:77 Convert uint to int ( temp int) +0:77 'u' ( temp uint) +0:77 'b' ( temp bool) +0:78 Function Call: foo2(i1;d1; ( temp void) +0:78 Convert uint to int ( temp int) +0:78 'u' ( temp uint) +0:78 'd' ( temp double) +0:79 Function Call: foo2(i1;u1; ( temp void) +0:79 Convert uint to int ( temp int) +0:79 'u' ( temp uint) +0:79 'u' ( temp uint) +0:80 Function Call: foo2(i1;i1; ( temp void) +0:80 Convert uint to int ( temp int) +0:80 'u' ( temp uint) +0:80 'i' ( temp int) +0:81 Function Call: foo2(i1;f1; ( temp void) +0:81 Convert uint to int ( temp int) +0:81 'u' ( temp uint) +0:81 'f' ( temp float) +0:83 Function Call: foo2(i1;b1; ( temp void) +0:83 'i' ( temp int) +0:83 'b' ( temp bool) +0:84 Function Call: foo2(i1;d1; ( temp void) +0:84 'i' ( temp int) +0:84 'd' ( temp double) +0:85 Function Call: foo2(i1;u1; ( temp void) +0:85 'i' ( temp int) +0:85 'u' ( temp uint) +0:86 Function Call: foo2(i1;i1; ( temp void) +0:86 'i' ( temp int) +0:86 'i' ( temp int) +0:87 Function Call: foo2(i1;f1; ( temp void) +0:87 'i' ( temp int) +0:87 'f' ( temp float) +0:89 Function Call: foo3(b1; ( temp void) +0:89 'b' ( temp bool) +0:90 Function Call: foo3(b1; ( temp void) +0:90 Convert double to bool ( temp bool) +0:90 'd' ( temp double) +0:91 Function Call: foo3(b1; ( temp void) +0:91 Convert uint to bool ( temp bool) +0:91 'u' ( temp uint) +0:92 Function Call: foo3(b1; ( temp void) +0:92 Convert int to bool ( temp bool) +0:92 'i' ( temp int) +0:93 Function Call: foo3(b1; ( temp void) +0:93 Convert float to bool ( temp bool) +0:93 'f' ( temp float) +0:95 Function Call: foo4(u1; ( temp void) +0:95 Convert bool to uint ( temp uint) +0:95 'b' ( temp bool) +0:96 Function Call: foo4(u1; ( temp void) +0:96 Convert double to uint ( temp uint) +0:96 'd' ( temp double) +0:97 Function Call: foo4(u1; ( temp void) +0:97 'u' ( temp uint) +0:98 Function Call: foo4(u1; ( temp void) +0:98 Convert int to uint ( temp uint) +0:98 'i' ( temp int) +0:99 Function Call: foo4(u1; ( temp void) +0:99 Convert float to uint ( temp uint) +0:99 'f' ( temp float) +0:101 Function Call: foo5(i1; ( temp void) +0:101 Convert bool to int ( temp int) +0:101 'b' ( temp bool) +0:102 Function Call: foo5(i1; ( temp void) +0:102 Convert double to int ( temp int) +0:102 'd' ( temp double) +0:103 Function Call: foo5(i1; ( temp void) +0:103 Convert uint to int ( temp int) +0:103 'u' ( temp uint) +0:104 Function Call: foo5(i1; ( temp void) +0:104 'i' ( temp int) +0:105 Function Call: foo5(i1; ( temp void) +0:105 Convert float to int ( temp int) +0:105 'f' ( temp float) +0:107 Function Call: foo6(f1; ( temp void) +0:107 Convert bool to float ( temp float) +0:107 'b' ( temp bool) +0:108 Function Call: foo6(f1; ( temp void) +0:108 Convert double to float ( temp float) +0:108 'd' ( temp double) +0:109 Function Call: foo6(f1; ( temp void) +0:109 Convert uint to float ( temp float) +0:109 'u' ( temp uint) +0:110 Function Call: foo6(f1; ( temp void) +0:110 Convert int to float ( temp float) +0:110 'i' ( temp int) +0:111 Function Call: foo6(f1; ( temp void) +0:111 'f' ( temp float) +0:113 Function Call: foo7(d1; ( temp void) +0:113 Convert bool to double ( temp double) +0:113 'b' ( temp bool) +0:114 Function Call: foo7(d1; ( temp void) +0:114 'd' ( temp double) +0:115 Function Call: foo7(d1; ( temp void) +0:115 Convert uint to double ( temp double) +0:115 'u' ( temp uint) +0:116 Function Call: foo7(d1; ( temp void) +0:116 Convert int to double ( temp double) +0:116 'i' ( temp int) +0:117 Function Call: foo7(d1; ( temp void) +0:117 Convert float to double ( temp double) +0:117 'f' ( temp float) +0:119 Function Call: foo8(f1; ( temp void) +0:119 Convert bool to float ( temp float) +0:119 'b' ( temp bool) +0:120 Function Call: foo8(f1; ( temp void) +0:120 Convert uint to float ( temp float) +0:120 'u' ( temp uint) +0:121 Function Call: foo8(f1; ( temp void) +0:121 Convert int to float ( temp float) +0:121 'i' ( temp int) +0:123 Function Call: foo9(i1; ( temp void) +0:123 Convert bool to int ( temp int) +0:123 'b' ( temp bool) +0:124 Function Call: foo9(u1; ( temp void) +0:124 Convert float to uint ( temp uint) +0:124 'f' ( temp float) +0:125 Function Call: foo9(u1; ( temp void) +0:125 Convert double to uint ( temp uint) +0:125 'd' ( temp double) +0:127 Function Call: foo10(i1; ( temp void) +0:127 Convert uint to int ( temp int) +0:127 'u' ( temp uint) +0:128 Function Call: foo10(i1; ( temp void) +0:128 Convert float to int ( temp int) +0:128 'f' ( temp float) +0:129 Function Call: foo10(i1; ( temp void) +0:129 Convert double to int ( temp int) +0:129 'd' ( temp double) +0:131 Function Call: foo11(u1; ( temp void) +0:131 Convert bool to uint ( temp uint) +0:131 'b' ( temp bool) +0:132 Function Call: foo11(d1; ( temp void) +0:132 Convert float to double ( temp double) +0:132 'f' ( temp float) +0:133 Function Call: foo12(vd3; ( temp void) +0:133 Convert float to double ( temp 3-component vector of double) +0:133 Construct vec3 ( temp 3-component vector of float) +0:133 'f' ( temp float) +0:134 Function Call: foo16(vu2; ( temp void) +0:? Convert int to uint ( temp 2-component vector of uint) +0:? Construct ivec2 ( temp 2-component vector of int) +0:134 'i' ( temp int) +0:134 'i' ( temp int) +0:136 Function Call: foo13(vf3; ( temp void) +0:136 Construct vec3 ( in 3-component vector of float) +0:136 'f' ( temp float) +0:137 Function Call: foo14(vi1; ( temp void) +0:137 Construct int ( in 1-component vector of int) +0:137 Construct ivec4 ( temp 4-component vector of int) +0:137 'i' ( temp int) +0:138 Function Call: foo15(vb1; ( temp void) +0:138 Construct bool ( in 1-component vector of bool) +0:138 'b' ( temp bool) +0:139 Function Call: foo15(vb1; ( temp void) +0:139 Construct bool ( in 1-component vector of bool) +0:139 Construct bvec3 ( temp 3-component vector of bool) +0:139 'b' ( temp bool) +0:141 Branch: Return with expression +0:141 'input' ( in 4-component vector of float) +0:46 Function Definition: PixelShaderFunction( ( temp void) +0:46 Function Parameters: +0:? Sequence +0:46 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:46 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:46 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo1(d1;b1; ( temp void) +0:2 Function Parameters: +0:2 'a' ( in double) +0:2 'b' ( in bool) +0:3 Function Definition: foo1(d1;u1; ( temp void) +0:3 Function Parameters: +0:3 'a' ( in double) +0:3 'b' ( in uint) +0:4 Function Definition: foo1(d1;i1; ( temp void) +0:4 Function Parameters: +0:4 'a' ( in double) +0:4 'b' ( in int) +0:5 Function Definition: foo1(d1;f1; ( temp void) +0:5 Function Parameters: +0:5 'a' ( in double) +0:5 'b' ( in float) +0:6 Function Definition: foo1(d1;d1; ( temp void) +0:6 Function Parameters: +0:6 'a' ( in double) +0:6 'b' ( in double) +0:9 Function Definition: foo2(i1;b1; ( temp void) +0:9 Function Parameters: +0:9 'a' ( in int) +0:9 'b' ( in bool) +0:10 Function Definition: foo2(i1;u1; ( temp void) +0:10 Function Parameters: +0:10 'a' ( in int) +0:10 'b' ( in uint) +0:11 Function Definition: foo2(i1;i1; ( temp void) +0:11 Function Parameters: +0:11 'a' ( in int) +0:11 'b' ( in int) +0:12 Function Definition: foo2(i1;f1; ( temp void) +0:12 Function Parameters: +0:12 'a' ( in int) +0:12 'b' ( in float) +0:13 Function Definition: foo2(i1;d1; ( temp void) +0:13 Function Parameters: +0:13 'a' ( in int) +0:13 'b' ( in double) +0:16 Function Definition: foo3(b1; ( temp void) +0:16 Function Parameters: +0:16 'b' ( in bool) +0:17 Function Definition: foo4(u1; ( temp void) +0:17 Function Parameters: +0:17 'b' ( in uint) +0:18 Function Definition: foo5(i1; ( temp void) +0:18 Function Parameters: +0:18 'b' ( in int) +0:19 Function Definition: foo6(f1; ( temp void) +0:19 Function Parameters: +0:19 'b' ( in float) +0:20 Function Definition: foo7(d1; ( temp void) +0:20 Function Parameters: +0:20 'b' ( in double) +0:23 Function Definition: foo8(f1; ( temp void) +0:23 Function Parameters: +0:23 '' ( in float) +0:24 Function Definition: foo8(d1; ( temp void) +0:24 Function Parameters: +0:24 '' ( in double) +0:25 Function Definition: foo9(i1; ( temp void) +0:25 Function Parameters: +0:25 '' ( in int) +0:26 Function Definition: foo9(u1; ( temp void) +0:26 Function Parameters: +0:26 '' ( in uint) +0:27 Function Definition: foo10(b1; ( temp void) +0:27 Function Parameters: +0:27 '' ( in bool) +0:28 Function Definition: foo10(i1; ( temp void) +0:28 Function Parameters: +0:28 '' ( in int) +0:31 Function Definition: foo11(vf3; ( temp void) +0:31 Function Parameters: +0:31 '' ( in 3-component vector of float) +0:32 Function Definition: foo11(d1; ( temp void) +0:32 Function Parameters: +0:32 '' ( in double) +0:33 Function Definition: foo11(vi3; ( temp void) +0:33 Function Parameters: +0:33 '' ( in 3-component vector of int) +0:34 Function Definition: foo11(u1; ( temp void) +0:34 Function Parameters: +0:34 '' ( in uint) +0:35 Function Definition: foo12(vf1; ( temp void) +0:35 Function Parameters: +0:35 '' ( in 1-component vector of float) +0:36 Function Definition: foo12(vd3; ( temp void) +0:36 Function Parameters: +0:36 '' ( in 3-component vector of double) +0:37 Function Definition: foo16(u1; ( temp void) +0:37 Function Parameters: +0:37 '' ( in uint) +0:38 Function Definition: foo16(vu2; ( temp void) +0:38 Function Parameters: +0:38 '' ( in 2-component vector of uint) +0:41 Function Definition: foo13(vf3; ( temp void) +0:41 Function Parameters: +0:41 '' ( in 3-component vector of float) +0:42 Function Definition: foo14(vi1; ( temp void) +0:42 Function Parameters: +0:42 '' ( in 1-component vector of int) +0:43 Function Definition: foo15(vb1; ( temp void) +0:43 Function Parameters: +0:43 '' ( in 1-component vector of bool) +0:46 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:46 Function Parameters: +0:46 'input' ( in 4-component vector of float) +0:? Sequence +0:53 Function Call: foo1(d1;b1; ( temp void) +0:53 'd' ( temp double) +0:53 'b' ( temp bool) +0:54 Function Call: foo1(d1;d1; ( temp void) +0:54 'd' ( temp double) +0:54 'd' ( temp double) +0:55 Function Call: foo1(d1;u1; ( temp void) +0:55 'd' ( temp double) +0:55 'u' ( temp uint) +0:56 Function Call: foo1(d1;i1; ( temp void) +0:56 'd' ( temp double) +0:56 'i' ( temp int) +0:57 Function Call: foo1(d1;f1; ( temp void) +0:57 'd' ( temp double) +0:57 'f' ( temp float) +0:59 Function Call: foo1(d1;b1; ( temp void) +0:59 Convert float to double ( temp double) +0:59 'f' ( temp float) +0:59 'b' ( temp bool) +0:60 Function Call: foo1(d1;d1; ( temp void) +0:60 Convert float to double ( temp double) +0:60 'f' ( temp float) +0:60 'd' ( temp double) +0:61 Function Call: foo1(d1;u1; ( temp void) +0:61 Convert float to double ( temp double) +0:61 'f' ( temp float) +0:61 'u' ( temp uint) +0:62 Function Call: foo1(d1;i1; ( temp void) +0:62 Convert float to double ( temp double) +0:62 'f' ( temp float) +0:62 'i' ( temp int) +0:63 Function Call: foo1(d1;f1; ( temp void) +0:63 Convert float to double ( temp double) +0:63 'f' ( temp float) +0:63 'f' ( temp float) +0:65 Function Call: foo1(d1;b1; ( temp void) +0:65 Convert uint to double ( temp double) +0:65 'u' ( temp uint) +0:65 'b' ( temp bool) +0:66 Function Call: foo1(d1;d1; ( temp void) +0:66 Convert uint to double ( temp double) +0:66 'u' ( temp uint) +0:66 'd' ( temp double) +0:67 Function Call: foo1(d1;u1; ( temp void) +0:67 Convert uint to double ( temp double) +0:67 'u' ( temp uint) +0:67 'u' ( temp uint) +0:68 Function Call: foo1(d1;i1; ( temp void) +0:68 Convert uint to double ( temp double) +0:68 'u' ( temp uint) +0:68 'i' ( temp int) +0:69 Function Call: foo1(d1;f1; ( temp void) +0:69 Convert uint to double ( temp double) +0:69 'u' ( temp uint) +0:69 'f' ( temp float) +0:71 Function Call: foo1(d1;b1; ( temp void) +0:71 Convert int to double ( temp double) +0:71 'i' ( temp int) +0:71 'b' ( temp bool) +0:72 Function Call: foo1(d1;d1; ( temp void) +0:72 Convert int to double ( temp double) +0:72 'i' ( temp int) +0:72 'd' ( temp double) +0:73 Function Call: foo1(d1;u1; ( temp void) +0:73 Convert int to double ( temp double) +0:73 'i' ( temp int) +0:73 'u' ( temp uint) +0:74 Function Call: foo1(d1;i1; ( temp void) +0:74 Convert int to double ( temp double) +0:74 'i' ( temp int) +0:74 'i' ( temp int) +0:75 Function Call: foo1(d1;f1; ( temp void) +0:75 Convert int to double ( temp double) +0:75 'i' ( temp int) +0:75 'f' ( temp float) +0:77 Function Call: foo2(i1;b1; ( temp void) +0:77 Convert uint to int ( temp int) +0:77 'u' ( temp uint) +0:77 'b' ( temp bool) +0:78 Function Call: foo2(i1;d1; ( temp void) +0:78 Convert uint to int ( temp int) +0:78 'u' ( temp uint) +0:78 'd' ( temp double) +0:79 Function Call: foo2(i1;u1; ( temp void) +0:79 Convert uint to int ( temp int) +0:79 'u' ( temp uint) +0:79 'u' ( temp uint) +0:80 Function Call: foo2(i1;i1; ( temp void) +0:80 Convert uint to int ( temp int) +0:80 'u' ( temp uint) +0:80 'i' ( temp int) +0:81 Function Call: foo2(i1;f1; ( temp void) +0:81 Convert uint to int ( temp int) +0:81 'u' ( temp uint) +0:81 'f' ( temp float) +0:83 Function Call: foo2(i1;b1; ( temp void) +0:83 'i' ( temp int) +0:83 'b' ( temp bool) +0:84 Function Call: foo2(i1;d1; ( temp void) +0:84 'i' ( temp int) +0:84 'd' ( temp double) +0:85 Function Call: foo2(i1;u1; ( temp void) +0:85 'i' ( temp int) +0:85 'u' ( temp uint) +0:86 Function Call: foo2(i1;i1; ( temp void) +0:86 'i' ( temp int) +0:86 'i' ( temp int) +0:87 Function Call: foo2(i1;f1; ( temp void) +0:87 'i' ( temp int) +0:87 'f' ( temp float) +0:89 Function Call: foo3(b1; ( temp void) +0:89 'b' ( temp bool) +0:90 Function Call: foo3(b1; ( temp void) +0:90 Convert double to bool ( temp bool) +0:90 'd' ( temp double) +0:91 Function Call: foo3(b1; ( temp void) +0:91 Convert uint to bool ( temp bool) +0:91 'u' ( temp uint) +0:92 Function Call: foo3(b1; ( temp void) +0:92 Convert int to bool ( temp bool) +0:92 'i' ( temp int) +0:93 Function Call: foo3(b1; ( temp void) +0:93 Convert float to bool ( temp bool) +0:93 'f' ( temp float) +0:95 Function Call: foo4(u1; ( temp void) +0:95 Convert bool to uint ( temp uint) +0:95 'b' ( temp bool) +0:96 Function Call: foo4(u1; ( temp void) +0:96 Convert double to uint ( temp uint) +0:96 'd' ( temp double) +0:97 Function Call: foo4(u1; ( temp void) +0:97 'u' ( temp uint) +0:98 Function Call: foo4(u1; ( temp void) +0:98 Convert int to uint ( temp uint) +0:98 'i' ( temp int) +0:99 Function Call: foo4(u1; ( temp void) +0:99 Convert float to uint ( temp uint) +0:99 'f' ( temp float) +0:101 Function Call: foo5(i1; ( temp void) +0:101 Convert bool to int ( temp int) +0:101 'b' ( temp bool) +0:102 Function Call: foo5(i1; ( temp void) +0:102 Convert double to int ( temp int) +0:102 'd' ( temp double) +0:103 Function Call: foo5(i1; ( temp void) +0:103 Convert uint to int ( temp int) +0:103 'u' ( temp uint) +0:104 Function Call: foo5(i1; ( temp void) +0:104 'i' ( temp int) +0:105 Function Call: foo5(i1; ( temp void) +0:105 Convert float to int ( temp int) +0:105 'f' ( temp float) +0:107 Function Call: foo6(f1; ( temp void) +0:107 Convert bool to float ( temp float) +0:107 'b' ( temp bool) +0:108 Function Call: foo6(f1; ( temp void) +0:108 Convert double to float ( temp float) +0:108 'd' ( temp double) +0:109 Function Call: foo6(f1; ( temp void) +0:109 Convert uint to float ( temp float) +0:109 'u' ( temp uint) +0:110 Function Call: foo6(f1; ( temp void) +0:110 Convert int to float ( temp float) +0:110 'i' ( temp int) +0:111 Function Call: foo6(f1; ( temp void) +0:111 'f' ( temp float) +0:113 Function Call: foo7(d1; ( temp void) +0:113 Convert bool to double ( temp double) +0:113 'b' ( temp bool) +0:114 Function Call: foo7(d1; ( temp void) +0:114 'd' ( temp double) +0:115 Function Call: foo7(d1; ( temp void) +0:115 Convert uint to double ( temp double) +0:115 'u' ( temp uint) +0:116 Function Call: foo7(d1; ( temp void) +0:116 Convert int to double ( temp double) +0:116 'i' ( temp int) +0:117 Function Call: foo7(d1; ( temp void) +0:117 Convert float to double ( temp double) +0:117 'f' ( temp float) +0:119 Function Call: foo8(f1; ( temp void) +0:119 Convert bool to float ( temp float) +0:119 'b' ( temp bool) +0:120 Function Call: foo8(f1; ( temp void) +0:120 Convert uint to float ( temp float) +0:120 'u' ( temp uint) +0:121 Function Call: foo8(f1; ( temp void) +0:121 Convert int to float ( temp float) +0:121 'i' ( temp int) +0:123 Function Call: foo9(i1; ( temp void) +0:123 Convert bool to int ( temp int) +0:123 'b' ( temp bool) +0:124 Function Call: foo9(u1; ( temp void) +0:124 Convert float to uint ( temp uint) +0:124 'f' ( temp float) +0:125 Function Call: foo9(u1; ( temp void) +0:125 Convert double to uint ( temp uint) +0:125 'd' ( temp double) +0:127 Function Call: foo10(i1; ( temp void) +0:127 Convert uint to int ( temp int) +0:127 'u' ( temp uint) +0:128 Function Call: foo10(i1; ( temp void) +0:128 Convert float to int ( temp int) +0:128 'f' ( temp float) +0:129 Function Call: foo10(i1; ( temp void) +0:129 Convert double to int ( temp int) +0:129 'd' ( temp double) +0:131 Function Call: foo11(u1; ( temp void) +0:131 Convert bool to uint ( temp uint) +0:131 'b' ( temp bool) +0:132 Function Call: foo11(d1; ( temp void) +0:132 Convert float to double ( temp double) +0:132 'f' ( temp float) +0:133 Function Call: foo12(vd3; ( temp void) +0:133 Convert float to double ( temp 3-component vector of double) +0:133 Construct vec3 ( temp 3-component vector of float) +0:133 'f' ( temp float) +0:134 Function Call: foo16(vu2; ( temp void) +0:? Convert int to uint ( temp 2-component vector of uint) +0:? Construct ivec2 ( temp 2-component vector of int) +0:134 'i' ( temp int) +0:134 'i' ( temp int) +0:136 Function Call: foo13(vf3; ( temp void) +0:136 Construct vec3 ( in 3-component vector of float) +0:136 'f' ( temp float) +0:137 Function Call: foo14(vi1; ( temp void) +0:137 Construct int ( in 1-component vector of int) +0:137 Construct ivec4 ( temp 4-component vector of int) +0:137 'i' ( temp int) +0:138 Function Call: foo15(vb1; ( temp void) +0:138 Construct bool ( in 1-component vector of bool) +0:138 'b' ( temp bool) +0:139 Function Call: foo15(vb1; ( temp void) +0:139 Construct bool ( in 1-component vector of bool) +0:139 Construct bvec3 ( temp 3-component vector of bool) +0:139 'b' ( temp bool) +0:141 Branch: Return with expression +0:141 'input' ( in 4-component vector of float) +0:46 Function Definition: PixelShaderFunction( ( temp void) +0:46 Function Parameters: +0:? Sequence +0:46 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:46 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:46 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 520 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 513 516 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 13 "foo1(d1;b1;" + Name 11 "a" + Name 12 "b" + Name 20 "foo1(d1;u1;" + Name 18 "a" + Name 19 "b" + Name 27 "foo1(d1;i1;" + Name 25 "a" + Name 26 "b" + Name 34 "foo1(d1;f1;" + Name 32 "a" + Name 33 "b" + Name 39 "foo1(d1;d1;" + Name 37 "a" + Name 38 "b" + Name 44 "foo2(i1;b1;" + Name 42 "a" + Name 43 "b" + Name 49 "foo2(i1;u1;" + Name 47 "a" + Name 48 "b" + Name 54 "foo2(i1;i1;" + Name 52 "a" + Name 53 "b" + Name 59 "foo2(i1;f1;" + Name 57 "a" + Name 58 "b" + Name 64 "foo2(i1;d1;" + Name 62 "a" + Name 63 "b" + Name 68 "foo3(b1;" + Name 67 "b" + Name 72 "foo4(u1;" + Name 71 "b" + Name 76 "foo5(i1;" + Name 75 "b" + Name 80 "foo6(f1;" + Name 79 "b" + Name 84 "foo7(d1;" + Name 83 "b" + Name 87 "foo8(f1;" + Name 86 "" + Name 90 "foo8(d1;" + Name 89 "" + Name 93 "foo9(i1;" + Name 92 "" + Name 96 "foo9(u1;" + Name 95 "" + Name 99 "foo10(b1;" + Name 98 "" + Name 102 "foo10(i1;" + Name 101 "" + Name 108 "foo11(vf3;" + Name 107 "" + Name 111 "foo11(d1;" + Name 110 "" + Name 117 "foo11(vi3;" + Name 116 "" + Name 120 "foo11(u1;" + Name 119 "" + Name 123 "foo12(vf1;" + Name 122 "" + Name 129 "foo12(vd3;" + Name 128 "" + Name 132 "foo16(u1;" + Name 131 "" + Name 138 "foo16(vu2;" + Name 137 "" + Name 141 "foo13(vf3;" + Name 140 "" + Name 144 "foo14(vi1;" + Name 143 "" + Name 147 "foo15(vb1;" + Name 146 "" + Name 153 "@PixelShaderFunction(vf4;" + Name 152 "input" + Name 155 "d" + Name 156 "b" + Name 157 "param" + Name 159 "param" + Name 162 "param" + Name 164 "param" + Name 167 "u" + Name 168 "param" + Name 170 "param" + Name 173 "i" + Name 174 "param" + Name 176 "param" + Name 179 "f" + Name 180 "param" + Name 182 "param" + Name 187 "param" + Name 188 "param" + Name 193 "param" + Name 194 "param" + Name 199 "param" + Name 200 "param" + Name 205 "param" + Name 206 "param" + Name 211 "param" + Name 212 "param" + Name 217 "param" + Name 218 "param" + Name 223 "param" + Name 224 "param" + Name 229 "param" + Name 230 "param" + Name 235 "param" + Name 236 "param" + Name 241 "param" + Name 242 "param" + Name 247 "param" + Name 248 "param" + Name 253 "param" + Name 254 "param" + Name 259 "param" + Name 260 "param" + Name 265 "param" + Name 266 "param" + Name 271 "param" + Name 272 "param" + Name 277 "param" + Name 278 "param" + Name 283 "param" + Name 284 "param" + Name 289 "param" + Name 290 "param" + Name 295 "param" + Name 296 "param" + Name 301 "param" + Name 302 "param" + Name 305 "param" + Name 307 "param" + Name 310 "param" + Name 312 "param" + Name 315 "param" + Name 317 "param" + Name 320 "param" + Name 322 "param" + Name 325 "param" + Name 327 "param" + Name 330 "param" + Name 336 "param" + Name 341 "param" + Name 345 "param" + Name 350 "param" + Name 355 "param" + Name 359 "param" + Name 361 "param" + Name 366 "param" + Name 370 "param" + Name 376 "param" + Name 380 "param" + Name 384 "param" + Name 386 "param" + Name 391 "param" + Name 396 "param" + Name 400 "param" + Name 404 "param" + Name 408 "param" + Name 410 "param" + Name 416 "param" + Name 418 "param" + Name 423 "param" + Name 427 "param" + Name 431 "param" + Name 435 "param" + Name 439 "param" + Name 443 "param" + Name 447 "param" + Name 451 "param" + Name 455 "param" + Name 459 "param" + Name 463 "param" + Name 467 "param" + Name 471 "param" + Name 475 "param" + Name 480 "param" + Name 487 "param" + Name 491 "param" + Name 497 "param" + Name 500 "param" + Name 506 "param" + Name 511 "input" + Name 513 "input" + Name 516 "@entryPointOutput" + Name 517 "param" + Decorate 513(input) Location 0 + Decorate 516(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 64 + 7: TypePointer Function 6(float64_t) + 8: TypeBool + 9: TypePointer Function 8(bool) + 10: TypeFunction 2 7(ptr) 9(ptr) + 15: TypeInt 32 0 + 16: TypePointer Function 15(int) + 17: TypeFunction 2 7(ptr) 16(ptr) + 22: TypeInt 32 1 + 23: TypePointer Function 22(int) + 24: TypeFunction 2 7(ptr) 23(ptr) + 29: TypeFloat 32 + 30: TypePointer Function 29(float) + 31: TypeFunction 2 7(ptr) 30(ptr) + 36: TypeFunction 2 7(ptr) 7(ptr) + 41: TypeFunction 2 23(ptr) 9(ptr) + 46: TypeFunction 2 23(ptr) 16(ptr) + 51: TypeFunction 2 23(ptr) 23(ptr) + 56: TypeFunction 2 23(ptr) 30(ptr) + 61: TypeFunction 2 23(ptr) 7(ptr) + 66: TypeFunction 2 9(ptr) + 70: TypeFunction 2 16(ptr) + 74: TypeFunction 2 23(ptr) + 78: TypeFunction 2 30(ptr) + 82: TypeFunction 2 7(ptr) + 104: TypeVector 29(float) 3 + 105: TypePointer Function 104(fvec3) + 106: TypeFunction 2 105(ptr) + 113: TypeVector 22(int) 3 + 114: TypePointer Function 113(ivec3) + 115: TypeFunction 2 114(ptr) + 125: TypeVector 6(float64_t) 3 + 126: TypePointer Function 125(f64vec3) + 127: TypeFunction 2 126(ptr) + 134: TypeVector 15(int) 2 + 135: TypePointer Function 134(ivec2) + 136: TypeFunction 2 135(ptr) + 149: TypeVector 29(float) 4 + 150: TypePointer Function 149(fvec4) + 151: TypeFunction 149(fvec4) 150(ptr) + 334:6(float64_t) Constant 0 0 + 339: 15(int) Constant 0 + 348: 29(float) Constant 0 + 353: 15(int) Constant 1 + 373: 22(int) Constant 0 + 374: 22(int) Constant 1 + 394: 29(float) Constant 1065353216 + 414:6(float64_t) Constant 0 1072693248 + 484: TypeVector 22(int) 2 + 494: TypeVector 22(int) 4 + 503: TypeVector 8(bool) 3 + 512: TypePointer Input 149(fvec4) + 513(input): 512(ptr) Variable Input + 515: TypePointer Output 149(fvec4) +516(@entryPointOutput): 515(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 511(input): 150(ptr) Variable Function + 517(param): 150(ptr) Variable Function + 514: 149(fvec4) Load 513(input) + Store 511(input) 514 + 518: 149(fvec4) Load 511(input) + Store 517(param) 518 + 519: 149(fvec4) FunctionCall 153(@PixelShaderFunction(vf4;) 517(param) + Store 516(@entryPointOutput) 519 + Return + FunctionEnd + 13(foo1(d1;b1;): 2 Function None 10 + 11(a): 7(ptr) FunctionParameter + 12(b): 9(ptr) FunctionParameter + 14: Label + Return + FunctionEnd + 20(foo1(d1;u1;): 2 Function None 17 + 18(a): 7(ptr) FunctionParameter + 19(b): 16(ptr) FunctionParameter + 21: Label + Return + FunctionEnd + 27(foo1(d1;i1;): 2 Function None 24 + 25(a): 7(ptr) FunctionParameter + 26(b): 23(ptr) FunctionParameter + 28: Label + Return + FunctionEnd + 34(foo1(d1;f1;): 2 Function None 31 + 32(a): 7(ptr) FunctionParameter + 33(b): 30(ptr) FunctionParameter + 35: Label + Return + FunctionEnd + 39(foo1(d1;d1;): 2 Function None 36 + 37(a): 7(ptr) FunctionParameter + 38(b): 7(ptr) FunctionParameter + 40: Label + Return + FunctionEnd + 44(foo2(i1;b1;): 2 Function None 41 + 42(a): 23(ptr) FunctionParameter + 43(b): 9(ptr) FunctionParameter + 45: Label + Return + FunctionEnd + 49(foo2(i1;u1;): 2 Function None 46 + 47(a): 23(ptr) FunctionParameter + 48(b): 16(ptr) FunctionParameter + 50: Label + Return + FunctionEnd + 54(foo2(i1;i1;): 2 Function None 51 + 52(a): 23(ptr) FunctionParameter + 53(b): 23(ptr) FunctionParameter + 55: Label + Return + FunctionEnd + 59(foo2(i1;f1;): 2 Function None 56 + 57(a): 23(ptr) FunctionParameter + 58(b): 30(ptr) FunctionParameter + 60: Label + Return + FunctionEnd + 64(foo2(i1;d1;): 2 Function None 61 + 62(a): 23(ptr) FunctionParameter + 63(b): 7(ptr) FunctionParameter + 65: Label + Return + FunctionEnd + 68(foo3(b1;): 2 Function None 66 + 67(b): 9(ptr) FunctionParameter + 69: Label + Return + FunctionEnd + 72(foo4(u1;): 2 Function None 70 + 71(b): 16(ptr) FunctionParameter + 73: Label + Return + FunctionEnd + 76(foo5(i1;): 2 Function None 74 + 75(b): 23(ptr) FunctionParameter + 77: Label + Return + FunctionEnd + 80(foo6(f1;): 2 Function None 78 + 79(b): 30(ptr) FunctionParameter + 81: Label + Return + FunctionEnd + 84(foo7(d1;): 2 Function None 82 + 83(b): 7(ptr) FunctionParameter + 85: Label + Return + FunctionEnd + 87(foo8(f1;): 2 Function None 78 + 86: 30(ptr) FunctionParameter + 88: Label + Return + FunctionEnd + 90(foo8(d1;): 2 Function None 82 + 89: 7(ptr) FunctionParameter + 91: Label + Return + FunctionEnd + 93(foo9(i1;): 2 Function None 74 + 92: 23(ptr) FunctionParameter + 94: Label + Return + FunctionEnd + 96(foo9(u1;): 2 Function None 70 + 95: 16(ptr) FunctionParameter + 97: Label + Return + FunctionEnd + 99(foo10(b1;): 2 Function None 66 + 98: 9(ptr) FunctionParameter + 100: Label + Return + FunctionEnd + 102(foo10(i1;): 2 Function None 74 + 101: 23(ptr) FunctionParameter + 103: Label + Return + FunctionEnd + 108(foo11(vf3;): 2 Function None 106 + 107: 105(ptr) FunctionParameter + 109: Label + Return + FunctionEnd + 111(foo11(d1;): 2 Function None 82 + 110: 7(ptr) FunctionParameter + 112: Label + Return + FunctionEnd + 117(foo11(vi3;): 2 Function None 115 + 116: 114(ptr) FunctionParameter + 118: Label + Return + FunctionEnd + 120(foo11(u1;): 2 Function None 70 + 119: 16(ptr) FunctionParameter + 121: Label + Return + FunctionEnd + 123(foo12(vf1;): 2 Function None 78 + 122: 30(ptr) FunctionParameter + 124: Label + Return + FunctionEnd + 129(foo12(vd3;): 2 Function None 127 + 128: 126(ptr) FunctionParameter + 130: Label + Return + FunctionEnd + 132(foo16(u1;): 2 Function None 70 + 131: 16(ptr) FunctionParameter + 133: Label + Return + FunctionEnd + 138(foo16(vu2;): 2 Function None 136 + 137: 135(ptr) FunctionParameter + 139: Label + Return + FunctionEnd + 141(foo13(vf3;): 2 Function None 106 + 140: 105(ptr) FunctionParameter + 142: Label + Return + FunctionEnd + 144(foo14(vi1;): 2 Function None 74 + 143: 23(ptr) FunctionParameter + 145: Label + Return + FunctionEnd + 147(foo15(vb1;): 2 Function None 66 + 146: 9(ptr) FunctionParameter + 148: Label + Return + FunctionEnd +153(@PixelShaderFunction(vf4;): 149(fvec4) Function None 151 + 152(input): 150(ptr) FunctionParameter + 154: Label + 155(d): 7(ptr) Variable Function + 156(b): 9(ptr) Variable Function + 157(param): 7(ptr) Variable Function + 159(param): 9(ptr) Variable Function + 162(param): 7(ptr) Variable Function + 164(param): 7(ptr) Variable Function + 167(u): 16(ptr) Variable Function + 168(param): 7(ptr) Variable Function + 170(param): 16(ptr) Variable Function + 173(i): 23(ptr) Variable Function + 174(param): 7(ptr) Variable Function + 176(param): 23(ptr) Variable Function + 179(f): 30(ptr) Variable Function + 180(param): 7(ptr) Variable Function + 182(param): 30(ptr) Variable Function + 187(param): 7(ptr) Variable Function + 188(param): 9(ptr) Variable Function + 193(param): 7(ptr) Variable Function + 194(param): 7(ptr) Variable Function + 199(param): 7(ptr) Variable Function + 200(param): 16(ptr) Variable Function + 205(param): 7(ptr) Variable Function + 206(param): 23(ptr) Variable Function + 211(param): 7(ptr) Variable Function + 212(param): 30(ptr) Variable Function + 217(param): 7(ptr) Variable Function + 218(param): 9(ptr) Variable Function + 223(param): 7(ptr) Variable Function + 224(param): 7(ptr) Variable Function + 229(param): 7(ptr) Variable Function + 230(param): 16(ptr) Variable Function + 235(param): 7(ptr) Variable Function + 236(param): 23(ptr) Variable Function + 241(param): 7(ptr) Variable Function + 242(param): 30(ptr) Variable Function + 247(param): 7(ptr) Variable Function + 248(param): 9(ptr) Variable Function + 253(param): 7(ptr) Variable Function + 254(param): 7(ptr) Variable Function + 259(param): 7(ptr) Variable Function + 260(param): 16(ptr) Variable Function + 265(param): 7(ptr) Variable Function + 266(param): 23(ptr) Variable Function + 271(param): 7(ptr) Variable Function + 272(param): 30(ptr) Variable Function + 277(param): 23(ptr) Variable Function + 278(param): 9(ptr) Variable Function + 283(param): 23(ptr) Variable Function + 284(param): 7(ptr) Variable Function + 289(param): 23(ptr) Variable Function + 290(param): 16(ptr) Variable Function + 295(param): 23(ptr) Variable Function + 296(param): 23(ptr) Variable Function + 301(param): 23(ptr) Variable Function + 302(param): 30(ptr) Variable Function + 305(param): 23(ptr) Variable Function + 307(param): 9(ptr) Variable Function + 310(param): 23(ptr) Variable Function + 312(param): 7(ptr) Variable Function + 315(param): 23(ptr) Variable Function + 317(param): 16(ptr) Variable Function + 320(param): 23(ptr) Variable Function + 322(param): 23(ptr) Variable Function + 325(param): 23(ptr) Variable Function + 327(param): 30(ptr) Variable Function + 330(param): 9(ptr) Variable Function + 336(param): 9(ptr) Variable Function + 341(param): 9(ptr) Variable Function + 345(param): 9(ptr) Variable Function + 350(param): 9(ptr) Variable Function + 355(param): 16(ptr) Variable Function + 359(param): 16(ptr) Variable Function + 361(param): 16(ptr) Variable Function + 366(param): 16(ptr) Variable Function + 370(param): 16(ptr) Variable Function + 376(param): 23(ptr) Variable Function + 380(param): 23(ptr) Variable Function + 384(param): 23(ptr) Variable Function + 386(param): 23(ptr) Variable Function + 391(param): 23(ptr) Variable Function + 396(param): 30(ptr) Variable Function + 400(param): 30(ptr) Variable Function + 404(param): 30(ptr) Variable Function + 408(param): 30(ptr) Variable Function + 410(param): 30(ptr) Variable Function + 416(param): 7(ptr) Variable Function + 418(param): 7(ptr) Variable Function + 423(param): 7(ptr) Variable Function + 427(param): 7(ptr) Variable Function + 431(param): 7(ptr) Variable Function + 435(param): 30(ptr) Variable Function + 439(param): 30(ptr) Variable Function + 443(param): 30(ptr) Variable Function + 447(param): 23(ptr) Variable Function + 451(param): 16(ptr) Variable Function + 455(param): 16(ptr) Variable Function + 459(param): 23(ptr) Variable Function + 463(param): 23(ptr) Variable Function + 467(param): 23(ptr) Variable Function + 471(param): 16(ptr) Variable Function + 475(param): 7(ptr) Variable Function + 480(param): 126(ptr) Variable Function + 487(param): 135(ptr) Variable Function + 491(param): 105(ptr) Variable Function + 497(param): 23(ptr) Variable Function + 500(param): 9(ptr) Variable Function + 506(param): 9(ptr) Variable Function + 158:6(float64_t) Load 155(d) + Store 157(param) 158 + 160: 8(bool) Load 156(b) + Store 159(param) 160 + 161: 2 FunctionCall 13(foo1(d1;b1;) 157(param) 159(param) + 163:6(float64_t) Load 155(d) + Store 162(param) 163 + 165:6(float64_t) Load 155(d) + Store 164(param) 165 + 166: 2 FunctionCall 39(foo1(d1;d1;) 162(param) 164(param) + 169:6(float64_t) Load 155(d) + Store 168(param) 169 + 171: 15(int) Load 167(u) + Store 170(param) 171 + 172: 2 FunctionCall 20(foo1(d1;u1;) 168(param) 170(param) + 175:6(float64_t) Load 155(d) + Store 174(param) 175 + 177: 22(int) Load 173(i) + Store 176(param) 177 + 178: 2 FunctionCall 27(foo1(d1;i1;) 174(param) 176(param) + 181:6(float64_t) Load 155(d) + Store 180(param) 181 + 183: 29(float) Load 179(f) + Store 182(param) 183 + 184: 2 FunctionCall 34(foo1(d1;f1;) 180(param) 182(param) + 185: 29(float) Load 179(f) + 186:6(float64_t) FConvert 185 + Store 187(param) 186 + 189: 8(bool) Load 156(b) + Store 188(param) 189 + 190: 2 FunctionCall 13(foo1(d1;b1;) 187(param) 188(param) + 191: 29(float) Load 179(f) + 192:6(float64_t) FConvert 191 + Store 193(param) 192 + 195:6(float64_t) Load 155(d) + Store 194(param) 195 + 196: 2 FunctionCall 39(foo1(d1;d1;) 193(param) 194(param) + 197: 29(float) Load 179(f) + 198:6(float64_t) FConvert 197 + Store 199(param) 198 + 201: 15(int) Load 167(u) + Store 200(param) 201 + 202: 2 FunctionCall 20(foo1(d1;u1;) 199(param) 200(param) + 203: 29(float) Load 179(f) + 204:6(float64_t) FConvert 203 + Store 205(param) 204 + 207: 22(int) Load 173(i) + Store 206(param) 207 + 208: 2 FunctionCall 27(foo1(d1;i1;) 205(param) 206(param) + 209: 29(float) Load 179(f) + 210:6(float64_t) FConvert 209 + Store 211(param) 210 + 213: 29(float) Load 179(f) + Store 212(param) 213 + 214: 2 FunctionCall 34(foo1(d1;f1;) 211(param) 212(param) + 215: 15(int) Load 167(u) + 216:6(float64_t) ConvertUToF 215 + Store 217(param) 216 + 219: 8(bool) Load 156(b) + Store 218(param) 219 + 220: 2 FunctionCall 13(foo1(d1;b1;) 217(param) 218(param) + 221: 15(int) Load 167(u) + 222:6(float64_t) ConvertUToF 221 + Store 223(param) 222 + 225:6(float64_t) Load 155(d) + Store 224(param) 225 + 226: 2 FunctionCall 39(foo1(d1;d1;) 223(param) 224(param) + 227: 15(int) Load 167(u) + 228:6(float64_t) ConvertUToF 227 + Store 229(param) 228 + 231: 15(int) Load 167(u) + Store 230(param) 231 + 232: 2 FunctionCall 20(foo1(d1;u1;) 229(param) 230(param) + 233: 15(int) Load 167(u) + 234:6(float64_t) ConvertUToF 233 + Store 235(param) 234 + 237: 22(int) Load 173(i) + Store 236(param) 237 + 238: 2 FunctionCall 27(foo1(d1;i1;) 235(param) 236(param) + 239: 15(int) Load 167(u) + 240:6(float64_t) ConvertUToF 239 + Store 241(param) 240 + 243: 29(float) Load 179(f) + Store 242(param) 243 + 244: 2 FunctionCall 34(foo1(d1;f1;) 241(param) 242(param) + 245: 22(int) Load 173(i) + 246:6(float64_t) ConvertSToF 245 + Store 247(param) 246 + 249: 8(bool) Load 156(b) + Store 248(param) 249 + 250: 2 FunctionCall 13(foo1(d1;b1;) 247(param) 248(param) + 251: 22(int) Load 173(i) + 252:6(float64_t) ConvertSToF 251 + Store 253(param) 252 + 255:6(float64_t) Load 155(d) + Store 254(param) 255 + 256: 2 FunctionCall 39(foo1(d1;d1;) 253(param) 254(param) + 257: 22(int) Load 173(i) + 258:6(float64_t) ConvertSToF 257 + Store 259(param) 258 + 261: 15(int) Load 167(u) + Store 260(param) 261 + 262: 2 FunctionCall 20(foo1(d1;u1;) 259(param) 260(param) + 263: 22(int) Load 173(i) + 264:6(float64_t) ConvertSToF 263 + Store 265(param) 264 + 267: 22(int) Load 173(i) + Store 266(param) 267 + 268: 2 FunctionCall 27(foo1(d1;i1;) 265(param) 266(param) + 269: 22(int) Load 173(i) + 270:6(float64_t) ConvertSToF 269 + Store 271(param) 270 + 273: 29(float) Load 179(f) + Store 272(param) 273 + 274: 2 FunctionCall 34(foo1(d1;f1;) 271(param) 272(param) + 275: 15(int) Load 167(u) + 276: 22(int) Bitcast 275 + Store 277(param) 276 + 279: 8(bool) Load 156(b) + Store 278(param) 279 + 280: 2 FunctionCall 44(foo2(i1;b1;) 277(param) 278(param) + 281: 15(int) Load 167(u) + 282: 22(int) Bitcast 281 + Store 283(param) 282 + 285:6(float64_t) Load 155(d) + Store 284(param) 285 + 286: 2 FunctionCall 64(foo2(i1;d1;) 283(param) 284(param) + 287: 15(int) Load 167(u) + 288: 22(int) Bitcast 287 + Store 289(param) 288 + 291: 15(int) Load 167(u) + Store 290(param) 291 + 292: 2 FunctionCall 49(foo2(i1;u1;) 289(param) 290(param) + 293: 15(int) Load 167(u) + 294: 22(int) Bitcast 293 + Store 295(param) 294 + 297: 22(int) Load 173(i) + Store 296(param) 297 + 298: 2 FunctionCall 54(foo2(i1;i1;) 295(param) 296(param) + 299: 15(int) Load 167(u) + 300: 22(int) Bitcast 299 + Store 301(param) 300 + 303: 29(float) Load 179(f) + Store 302(param) 303 + 304: 2 FunctionCall 59(foo2(i1;f1;) 301(param) 302(param) + 306: 22(int) Load 173(i) + Store 305(param) 306 + 308: 8(bool) Load 156(b) + Store 307(param) 308 + 309: 2 FunctionCall 44(foo2(i1;b1;) 305(param) 307(param) + 311: 22(int) Load 173(i) + Store 310(param) 311 + 313:6(float64_t) Load 155(d) + Store 312(param) 313 + 314: 2 FunctionCall 64(foo2(i1;d1;) 310(param) 312(param) + 316: 22(int) Load 173(i) + Store 315(param) 316 + 318: 15(int) Load 167(u) + Store 317(param) 318 + 319: 2 FunctionCall 49(foo2(i1;u1;) 315(param) 317(param) + 321: 22(int) Load 173(i) + Store 320(param) 321 + 323: 22(int) Load 173(i) + Store 322(param) 323 + 324: 2 FunctionCall 54(foo2(i1;i1;) 320(param) 322(param) + 326: 22(int) Load 173(i) + Store 325(param) 326 + 328: 29(float) Load 179(f) + Store 327(param) 328 + 329: 2 FunctionCall 59(foo2(i1;f1;) 325(param) 327(param) + 331: 8(bool) Load 156(b) + Store 330(param) 331 + 332: 2 FunctionCall 68(foo3(b1;) 330(param) + 333:6(float64_t) Load 155(d) + 335: 8(bool) FOrdNotEqual 333 334 + Store 336(param) 335 + 337: 2 FunctionCall 68(foo3(b1;) 336(param) + 338: 15(int) Load 167(u) + 340: 8(bool) INotEqual 338 339 + Store 341(param) 340 + 342: 2 FunctionCall 68(foo3(b1;) 341(param) + 343: 22(int) Load 173(i) + 344: 8(bool) INotEqual 343 339 + Store 345(param) 344 + 346: 2 FunctionCall 68(foo3(b1;) 345(param) + 347: 29(float) Load 179(f) + 349: 8(bool) FOrdNotEqual 347 348 + Store 350(param) 349 + 351: 2 FunctionCall 68(foo3(b1;) 350(param) + 352: 8(bool) Load 156(b) + 354: 15(int) Select 352 353 339 + Store 355(param) 354 + 356: 2 FunctionCall 72(foo4(u1;) 355(param) + 357:6(float64_t) Load 155(d) + 358: 15(int) ConvertFToU 357 + Store 359(param) 358 + 360: 2 FunctionCall 72(foo4(u1;) 359(param) + 362: 15(int) Load 167(u) + Store 361(param) 362 + 363: 2 FunctionCall 72(foo4(u1;) 361(param) + 364: 22(int) Load 173(i) + 365: 15(int) Bitcast 364 + Store 366(param) 365 + 367: 2 FunctionCall 72(foo4(u1;) 366(param) + 368: 29(float) Load 179(f) + 369: 15(int) ConvertFToU 368 + Store 370(param) 369 + 371: 2 FunctionCall 72(foo4(u1;) 370(param) + 372: 8(bool) Load 156(b) + 375: 22(int) Select 372 374 373 + Store 376(param) 375 + 377: 2 FunctionCall 76(foo5(i1;) 376(param) + 378:6(float64_t) Load 155(d) + 379: 22(int) ConvertFToS 378 + Store 380(param) 379 + 381: 2 FunctionCall 76(foo5(i1;) 380(param) + 382: 15(int) Load 167(u) + 383: 22(int) Bitcast 382 + Store 384(param) 383 + 385: 2 FunctionCall 76(foo5(i1;) 384(param) + 387: 22(int) Load 173(i) + Store 386(param) 387 + 388: 2 FunctionCall 76(foo5(i1;) 386(param) + 389: 29(float) Load 179(f) + 390: 22(int) ConvertFToS 389 + Store 391(param) 390 + 392: 2 FunctionCall 76(foo5(i1;) 391(param) + 393: 8(bool) Load 156(b) + 395: 29(float) Select 393 394 348 + Store 396(param) 395 + 397: 2 FunctionCall 80(foo6(f1;) 396(param) + 398:6(float64_t) Load 155(d) + 399: 29(float) FConvert 398 + Store 400(param) 399 + 401: 2 FunctionCall 80(foo6(f1;) 400(param) + 402: 15(int) Load 167(u) + 403: 29(float) ConvertUToF 402 + Store 404(param) 403 + 405: 2 FunctionCall 80(foo6(f1;) 404(param) + 406: 22(int) Load 173(i) + 407: 29(float) ConvertSToF 406 + Store 408(param) 407 + 409: 2 FunctionCall 80(foo6(f1;) 408(param) + 411: 29(float) Load 179(f) + Store 410(param) 411 + 412: 2 FunctionCall 80(foo6(f1;) 410(param) + 413: 8(bool) Load 156(b) + 415:6(float64_t) Select 413 414 334 + Store 416(param) 415 + 417: 2 FunctionCall 84(foo7(d1;) 416(param) + 419:6(float64_t) Load 155(d) + Store 418(param) 419 + 420: 2 FunctionCall 84(foo7(d1;) 418(param) + 421: 15(int) Load 167(u) + 422:6(float64_t) ConvertUToF 421 + Store 423(param) 422 + 424: 2 FunctionCall 84(foo7(d1;) 423(param) + 425: 22(int) Load 173(i) + 426:6(float64_t) ConvertSToF 425 + Store 427(param) 426 + 428: 2 FunctionCall 84(foo7(d1;) 427(param) + 429: 29(float) Load 179(f) + 430:6(float64_t) FConvert 429 + Store 431(param) 430 + 432: 2 FunctionCall 84(foo7(d1;) 431(param) + 433: 8(bool) Load 156(b) + 434: 29(float) Select 433 394 348 + Store 435(param) 434 + 436: 2 FunctionCall 87(foo8(f1;) 435(param) + 437: 15(int) Load 167(u) + 438: 29(float) ConvertUToF 437 + Store 439(param) 438 + 440: 2 FunctionCall 87(foo8(f1;) 439(param) + 441: 22(int) Load 173(i) + 442: 29(float) ConvertSToF 441 + Store 443(param) 442 + 444: 2 FunctionCall 87(foo8(f1;) 443(param) + 445: 8(bool) Load 156(b) + 446: 22(int) Select 445 374 373 + Store 447(param) 446 + 448: 2 FunctionCall 93(foo9(i1;) 447(param) + 449: 29(float) Load 179(f) + 450: 15(int) ConvertFToU 449 + Store 451(param) 450 + 452: 2 FunctionCall 96(foo9(u1;) 451(param) + 453:6(float64_t) Load 155(d) + 454: 15(int) ConvertFToU 453 + Store 455(param) 454 + 456: 2 FunctionCall 96(foo9(u1;) 455(param) + 457: 15(int) Load 167(u) + 458: 22(int) Bitcast 457 + Store 459(param) 458 + 460: 2 FunctionCall 102(foo10(i1;) 459(param) + 461: 29(float) Load 179(f) + 462: 22(int) ConvertFToS 461 + Store 463(param) 462 + 464: 2 FunctionCall 102(foo10(i1;) 463(param) + 465:6(float64_t) Load 155(d) + 466: 22(int) ConvertFToS 465 + Store 467(param) 466 + 468: 2 FunctionCall 102(foo10(i1;) 467(param) + 469: 8(bool) Load 156(b) + 470: 15(int) Select 469 353 339 + Store 471(param) 470 + 472: 2 FunctionCall 120(foo11(u1;) 471(param) + 473: 29(float) Load 179(f) + 474:6(float64_t) FConvert 473 + Store 475(param) 474 + 476: 2 FunctionCall 111(foo11(d1;) 475(param) + 477: 29(float) Load 179(f) + 478: 104(fvec3) CompositeConstruct 477 477 477 + 479:125(f64vec3) FConvert 478 + Store 480(param) 479 + 481: 2 FunctionCall 129(foo12(vd3;) 480(param) + 482: 22(int) Load 173(i) + 483: 22(int) Load 173(i) + 485: 484(ivec2) CompositeConstruct 482 483 + 486: 134(ivec2) Bitcast 485 + Store 487(param) 486 + 488: 2 FunctionCall 138(foo16(vu2;) 487(param) + 489: 29(float) Load 179(f) + 490: 104(fvec3) CompositeConstruct 489 489 489 + Store 491(param) 490 + 492: 2 FunctionCall 141(foo13(vf3;) 491(param) + 493: 22(int) Load 173(i) + 495: 494(ivec4) CompositeConstruct 493 493 493 493 + 496: 22(int) CompositeExtract 495 0 + Store 497(param) 496 + 498: 2 FunctionCall 144(foo14(vi1;) 497(param) + 499: 8(bool) Load 156(b) + Store 500(param) 499 + 501: 2 FunctionCall 147(foo15(vb1;) 500(param) + 502: 8(bool) Load 156(b) + 504: 503(bvec3) CompositeConstruct 502 502 502 + 505: 8(bool) CompositeExtract 504 0 + Store 506(param) 505 + 507: 2 FunctionCall 147(foo15(vb1;) 506(param) + 508: 149(fvec4) Load 152(input) + ReturnValue 508 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.params.default.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.params.default.frag.out new file mode 100644 index 0000000000..c98e0c64cd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.params.default.frag.out @@ -0,0 +1,653 @@ +hlsl.params.default.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:9 Function Parameters: +0:9 'p0' ( in 4-component vector of int) +0:9 'b1' ( in bool) +0:9 'b2' ( in bool) +0:? Sequence +0:10 Branch: Return with expression +0:10 'p0' ( in 4-component vector of int) +0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:17 Function Parameters: +0:17 'p0' ( in 4-component vector of int) +0:17 'p1' ( in 4-component vector of int) +0:17 'p2' ( in 2-element array of int) +0:17 'p3' ( in int) +0:? Sequence +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 'p0' ( in 4-component vector of int) +0:18 'p1' ( in 4-component vector of int) +0:18 direct index ( temp int) +0:18 'p2' ( in 2-element array of int) +0:18 Constant: +0:18 0 (const int) +0:18 'p3' ( in int) +0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) +0:23 Function Parameters: +0:23 'p0' ( in 4-component vector of int) +0:23 'x' ( in int) +0:? Sequence +0:24 Branch: Return with expression +0:? Constant: +0:? 10 (const int) +0:? 11 (const int) +0:? 12 (const int) +0:? 13 (const int) +0:28 Function Definition: fn2(vi4;f1; ( temp 4-component vector of int) +0:28 Function Parameters: +0:28 'p0' ( in 4-component vector of int) +0:28 'x' ( in float) +0:? Sequence +0:29 Branch: Return with expression +0:29 add ( temp 4-component vector of int) +0:29 'p0' ( in 4-component vector of int) +0:? Constant: +0:? 20 (const int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:32 Function Definition: fn3(i1; ( temp void) +0:32 Function Parameters: +0:32 'p0' ( in int) +0:36 Function Definition: @main( ( temp 4-component vector of int) +0:36 Function Parameters: +0:? Sequence +0:37 Sequence +0:37 move second child to first child ( temp 2-element array of int) +0:37 'myarray' ( temp 2-element array of int) +0:37 Constant: +0:37 30 (const int) +0:37 31 (const int) +0:39 Function Call: fn3(i1; ( temp void) +0:32 Constant: +0:32 3 (const int) +0:40 Function Call: fn3(i1; ( temp void) +0:40 Constant: +0:40 5 (const int) +0:50 Branch: Return with expression +0:49 add ( temp 4-component vector of int) +0:47 add ( temp 4-component vector of int) +0:46 add ( temp 4-component vector of int) +0:45 add ( temp 4-component vector of int) +0:44 add ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:42 add ( temp 4-component vector of int) +0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:42 Constant: +0:42 100 (const int) +0:42 100 (const int) +0:42 100 (const int) +0:42 100 (const int) +0:? Constant: +0:? -1 (const int) +0:? -2 (const int) +0:? -3 (const int) +0:? -4 (const int) +0:15 Constant: +0:15 1 (const int) +0:15 2 (const int) +0:16 Constant: +0:16 42 (const int) +0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:43 Constant: +0:43 101 (const int) +0:43 101 (const int) +0:43 101 (const int) +0:43 101 (const int) +0:43 ui4: direct index for structure ( uniform 4-component vector of int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:43 Constant: +0:43 0 (const uint) +0:15 Constant: +0:15 1 (const int) +0:15 2 (const int) +0:16 Constant: +0:16 42 (const int) +0:44 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:44 Constant: +0:44 102 (const int) +0:44 102 (const int) +0:44 102 (const int) +0:44 102 (const int) +0:44 ui4: direct index for structure ( uniform 4-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:44 Constant: +0:44 0 (const uint) +0:44 'myarray' ( temp 2-element array of int) +0:16 Constant: +0:16 42 (const int) +0:45 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:45 Constant: +0:45 103 (const int) +0:45 103 (const int) +0:45 103 (const int) +0:45 103 (const int) +0:45 ui4: direct index for structure ( uniform 4-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:45 Constant: +0:45 0 (const uint) +0:45 'myarray' ( temp 2-element array of int) +0:45 Constant: +0:45 99 (const int) +0:46 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:46 Constant: +0:46 104 (const int) +0:46 104 (const int) +0:46 104 (const int) +0:46 104 (const int) +0:46 Constant: +0:46 false (const bool) +0:9 Constant: +0:9 false (const bool) +0:47 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:47 Constant: +0:47 105 (const int) +0:47 105 (const int) +0:47 105 (const int) +0:47 105 (const int) +0:47 Constant: +0:47 false (const bool) +0:47 Constant: +0:47 true (const bool) +0:49 Function Call: fn2(vi4;f1; ( temp 4-component vector of int) +0:49 Constant: +0:49 110 (const int) +0:49 110 (const int) +0:49 110 (const int) +0:49 110 (const int) +0:49 Constant: +0:49 11.110000 +0:50 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) +0:50 Constant: +0:50 111 (const int) +0:50 111 (const int) +0:50 111 (const int) +0:50 111 (const int) +0:50 Constant: +0:50 12 (const int) +0:36 Function Definition: main( ( temp void) +0:36 Function Parameters: +0:? Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) +0:36 Function Call: @main( ( temp 4-component vector of int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:? 'cia' ( const int) +0:? -4 (const int) +0:? 'cib' ( const int) +0:? -42 (const int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:9 Function Parameters: +0:9 'p0' ( in 4-component vector of int) +0:9 'b1' ( in bool) +0:9 'b2' ( in bool) +0:? Sequence +0:10 Branch: Return with expression +0:10 'p0' ( in 4-component vector of int) +0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:17 Function Parameters: +0:17 'p0' ( in 4-component vector of int) +0:17 'p1' ( in 4-component vector of int) +0:17 'p2' ( in 2-element array of int) +0:17 'p3' ( in int) +0:? Sequence +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 'p0' ( in 4-component vector of int) +0:18 'p1' ( in 4-component vector of int) +0:18 direct index ( temp int) +0:18 'p2' ( in 2-element array of int) +0:18 Constant: +0:18 0 (const int) +0:18 'p3' ( in int) +0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) +0:23 Function Parameters: +0:23 'p0' ( in 4-component vector of int) +0:23 'x' ( in int) +0:? Sequence +0:24 Branch: Return with expression +0:? Constant: +0:? 10 (const int) +0:? 11 (const int) +0:? 12 (const int) +0:? 13 (const int) +0:28 Function Definition: fn2(vi4;f1; ( temp 4-component vector of int) +0:28 Function Parameters: +0:28 'p0' ( in 4-component vector of int) +0:28 'x' ( in float) +0:? Sequence +0:29 Branch: Return with expression +0:29 add ( temp 4-component vector of int) +0:29 'p0' ( in 4-component vector of int) +0:? Constant: +0:? 20 (const int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:32 Function Definition: fn3(i1; ( temp void) +0:32 Function Parameters: +0:32 'p0' ( in int) +0:36 Function Definition: @main( ( temp 4-component vector of int) +0:36 Function Parameters: +0:? Sequence +0:37 Sequence +0:37 move second child to first child ( temp 2-element array of int) +0:37 'myarray' ( temp 2-element array of int) +0:37 Constant: +0:37 30 (const int) +0:37 31 (const int) +0:39 Function Call: fn3(i1; ( temp void) +0:32 Constant: +0:32 3 (const int) +0:40 Function Call: fn3(i1; ( temp void) +0:40 Constant: +0:40 5 (const int) +0:50 Branch: Return with expression +0:49 add ( temp 4-component vector of int) +0:47 add ( temp 4-component vector of int) +0:46 add ( temp 4-component vector of int) +0:45 add ( temp 4-component vector of int) +0:44 add ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:42 add ( temp 4-component vector of int) +0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:42 Constant: +0:42 100 (const int) +0:42 100 (const int) +0:42 100 (const int) +0:42 100 (const int) +0:? Constant: +0:? -1 (const int) +0:? -2 (const int) +0:? -3 (const int) +0:? -4 (const int) +0:15 Constant: +0:15 1 (const int) +0:15 2 (const int) +0:16 Constant: +0:16 42 (const int) +0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:43 Constant: +0:43 101 (const int) +0:43 101 (const int) +0:43 101 (const int) +0:43 101 (const int) +0:43 ui4: direct index for structure ( uniform 4-component vector of int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:43 Constant: +0:43 0 (const uint) +0:15 Constant: +0:15 1 (const int) +0:15 2 (const int) +0:16 Constant: +0:16 42 (const int) +0:44 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:44 Constant: +0:44 102 (const int) +0:44 102 (const int) +0:44 102 (const int) +0:44 102 (const int) +0:44 ui4: direct index for structure ( uniform 4-component vector of int) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:44 Constant: +0:44 0 (const uint) +0:44 'myarray' ( temp 2-element array of int) +0:16 Constant: +0:16 42 (const int) +0:45 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:45 Constant: +0:45 103 (const int) +0:45 103 (const int) +0:45 103 (const int) +0:45 103 (const int) +0:45 ui4: direct index for structure ( uniform 4-component vector of int) +0:45 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:45 Constant: +0:45 0 (const uint) +0:45 'myarray' ( temp 2-element array of int) +0:45 Constant: +0:45 99 (const int) +0:46 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:46 Constant: +0:46 104 (const int) +0:46 104 (const int) +0:46 104 (const int) +0:46 104 (const int) +0:46 Constant: +0:46 false (const bool) +0:9 Constant: +0:9 false (const bool) +0:47 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:47 Constant: +0:47 105 (const int) +0:47 105 (const int) +0:47 105 (const int) +0:47 105 (const int) +0:47 Constant: +0:47 false (const bool) +0:47 Constant: +0:47 true (const bool) +0:49 Function Call: fn2(vi4;f1; ( temp 4-component vector of int) +0:49 Constant: +0:49 110 (const int) +0:49 110 (const int) +0:49 110 (const int) +0:49 110 (const int) +0:49 Constant: +0:49 11.110000 +0:50 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) +0:50 Constant: +0:50 111 (const int) +0:50 111 (const int) +0:50 111 (const int) +0:50 111 (const int) +0:50 Constant: +0:50 12 (const int) +0:36 Function Definition: main( ( temp void) +0:36 Function Parameters: +0:? Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) +0:36 Function Call: @main( ( temp 4-component vector of int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) +0:? 'cia' ( const int) +0:? -4 (const int) +0:? 'cib' ( const int) +0:? -42 (const int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 178 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 175 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 15 "fn1(vi4;b1;b1;" + Name 12 "p0" + Name 13 "b1" + Name 14 "b2" + Name 27 "fn1(vi4;vi4;i1[2];i1;" + Name 23 "p0" + Name 24 "p1" + Name 25 "p2" + Name 26 "p3" + Name 32 "fn2(vi4;i1;" + Name 30 "p0" + Name 31 "x" + Name 39 "fn2(vi4;f1;" + Name 37 "p0" + Name 38 "x" + Name 43 "fn3(i1;" + Name 42 "p0" + Name 46 "@main(" + Name 80 "myarray" + Name 85 "param" + Name 88 "param" + Name 101 "param" + Name 102 "param" + Name 103 "param" + Name 104 "param" + Name 108 "$Global" + MemberName 108($Global) 0 "ui4" + Name 110 "" + Name 111 "param" + Name 112 "param" + Name 116 "param" + Name 117 "param" + Name 122 "param" + Name 123 "param" + Name 126 "param" + Name 128 "param" + Name 134 "param" + Name 135 "param" + Name 138 "param" + Name 140 "param" + Name 146 "param" + Name 147 "param" + Name 148 "param" + Name 154 "param" + Name 155 "param" + Name 156 "param" + Name 162 "param" + Name 163 "param" + Name 168 "param" + Name 169 "param" + Name 175 "@entryPointOutput" + MemberDecorate 108($Global) 0 Offset 0 + Decorate 108($Global) Block + Decorate 110 DescriptorSet 0 + Decorate 175(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeBool + 10: TypePointer Function 9(bool) + 11: TypeFunction 7(ivec4) 8(ptr) 10(ptr) 10(ptr) + 17: TypeInt 32 0 + 18: 17(int) Constant 2 + 19: TypeArray 6(int) 18 + 20: TypePointer Function 19 + 21: TypePointer Function 6(int) + 22: TypeFunction 7(ivec4) 8(ptr) 8(ptr) 20(ptr) 21(ptr) + 29: TypeFunction 7(ivec4) 8(ptr) 21(ptr) + 34: TypeFloat 32 + 35: TypePointer Function 34(float) + 36: TypeFunction 7(ivec4) 8(ptr) 35(ptr) + 41: TypeFunction 2 21(ptr) + 45: TypeFunction 7(ivec4) + 54: 6(int) Constant 0 + 64: 6(int) Constant 10 + 65: 6(int) Constant 11 + 66: 6(int) Constant 12 + 67: 6(int) Constant 13 + 68: 7(ivec4) ConstantComposite 64 65 66 67 + 72: 6(int) Constant 20 + 73: 6(int) Constant 21 + 74: 6(int) Constant 22 + 75: 6(int) Constant 23 + 76: 7(ivec4) ConstantComposite 72 73 74 75 + 81: 6(int) Constant 30 + 82: 6(int) Constant 31 + 83: 19 ConstantComposite 81 82 + 84: 6(int) Constant 3 + 87: 6(int) Constant 5 + 90: 6(int) Constant 100 + 91: 7(ivec4) ConstantComposite 90 90 90 90 + 92: 6(int) Constant 4294967295 + 93: 6(int) Constant 4294967294 + 94: 6(int) Constant 4294967293 + 95: 6(int) Constant 4294967292 + 96: 7(ivec4) ConstantComposite 92 93 94 95 + 97: 6(int) Constant 1 + 98: 6(int) Constant 2 + 99: 19 ConstantComposite 97 98 + 100: 6(int) Constant 42 + 106: 6(int) Constant 101 + 107: 7(ivec4) ConstantComposite 106 106 106 106 + 108($Global): TypeStruct 7(ivec4) + 109: TypePointer Uniform 108($Global) + 110: 109(ptr) Variable Uniform + 113: TypePointer Uniform 7(ivec4) + 120: 6(int) Constant 102 + 121: 7(ivec4) ConstantComposite 120 120 120 120 + 131: 6(int) Constant 103 + 132: 7(ivec4) ConstantComposite 131 131 131 131 + 133: 6(int) Constant 99 + 143: 6(int) Constant 104 + 144: 7(ivec4) ConstantComposite 143 143 143 143 + 145: 9(bool) ConstantFalse + 151: 6(int) Constant 105 + 152: 7(ivec4) ConstantComposite 151 151 151 151 + 153: 9(bool) ConstantTrue + 159: 6(int) Constant 110 + 160: 7(ivec4) ConstantComposite 159 159 159 159 + 161: 34(float) Constant 1093780111 + 166: 6(int) Constant 111 + 167: 7(ivec4) ConstantComposite 166 166 166 166 + 174: TypePointer Output 7(ivec4) +175(@entryPointOutput): 174(ptr) Variable Output + 177: 6(int) Constant 4294967254 + 4(main): 2 Function None 3 + 5: Label + 176: 7(ivec4) FunctionCall 46(@main() + Store 175(@entryPointOutput) 176 + Return + FunctionEnd +15(fn1(vi4;b1;b1;): 7(ivec4) Function None 11 + 12(p0): 8(ptr) FunctionParameter + 13(b1): 10(ptr) FunctionParameter + 14(b2): 10(ptr) FunctionParameter + 16: Label + 48: 7(ivec4) Load 12(p0) + ReturnValue 48 + FunctionEnd +27(fn1(vi4;vi4;i1[2];i1;): 7(ivec4) Function None 22 + 23(p0): 8(ptr) FunctionParameter + 24(p1): 8(ptr) FunctionParameter + 25(p2): 20(ptr) FunctionParameter + 26(p3): 21(ptr) FunctionParameter + 28: Label + 51: 7(ivec4) Load 23(p0) + 52: 7(ivec4) Load 24(p1) + 53: 7(ivec4) IAdd 51 52 + 55: 21(ptr) AccessChain 25(p2) 54 + 56: 6(int) Load 55 + 57: 7(ivec4) CompositeConstruct 56 56 56 56 + 58: 7(ivec4) IAdd 53 57 + 59: 6(int) Load 26(p3) + 60: 7(ivec4) CompositeConstruct 59 59 59 59 + 61: 7(ivec4) IAdd 58 60 + ReturnValue 61 + FunctionEnd + 32(fn2(vi4;i1;): 7(ivec4) Function None 29 + 30(p0): 8(ptr) FunctionParameter + 31(x): 21(ptr) FunctionParameter + 33: Label + ReturnValue 68 + FunctionEnd + 39(fn2(vi4;f1;): 7(ivec4) Function None 36 + 37(p0): 8(ptr) FunctionParameter + 38(x): 35(ptr) FunctionParameter + 40: Label + 71: 7(ivec4) Load 37(p0) + 77: 7(ivec4) IAdd 71 76 + ReturnValue 77 + FunctionEnd + 43(fn3(i1;): 2 Function None 41 + 42(p0): 21(ptr) FunctionParameter + 44: Label + Return + FunctionEnd + 46(@main(): 7(ivec4) Function None 45 + 47: Label + 80(myarray): 20(ptr) Variable Function + 85(param): 21(ptr) Variable Function + 88(param): 21(ptr) Variable Function + 101(param): 8(ptr) Variable Function + 102(param): 8(ptr) Variable Function + 103(param): 20(ptr) Variable Function + 104(param): 21(ptr) Variable Function + 111(param): 8(ptr) Variable Function + 112(param): 8(ptr) Variable Function + 116(param): 20(ptr) Variable Function + 117(param): 21(ptr) Variable Function + 122(param): 8(ptr) Variable Function + 123(param): 8(ptr) Variable Function + 126(param): 20(ptr) Variable Function + 128(param): 21(ptr) Variable Function + 134(param): 8(ptr) Variable Function + 135(param): 8(ptr) Variable Function + 138(param): 20(ptr) Variable Function + 140(param): 21(ptr) Variable Function + 146(param): 8(ptr) Variable Function + 147(param): 10(ptr) Variable Function + 148(param): 10(ptr) Variable Function + 154(param): 8(ptr) Variable Function + 155(param): 10(ptr) Variable Function + 156(param): 10(ptr) Variable Function + 162(param): 8(ptr) Variable Function + 163(param): 35(ptr) Variable Function + 168(param): 8(ptr) Variable Function + 169(param): 21(ptr) Variable Function + Store 80(myarray) 83 + Store 85(param) 84 + 86: 2 FunctionCall 43(fn3(i1;) 85(param) + Store 88(param) 87 + 89: 2 FunctionCall 43(fn3(i1;) 88(param) + Store 101(param) 91 + Store 102(param) 96 + Store 103(param) 99 + Store 104(param) 100 + 105: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 101(param) 102(param) 103(param) 104(param) + Store 111(param) 107 + 114: 113(ptr) AccessChain 110 54 + 115: 7(ivec4) Load 114 + Store 112(param) 115 + Store 116(param) 99 + Store 117(param) 100 + 118: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 111(param) 112(param) 116(param) 117(param) + 119: 7(ivec4) IAdd 105 118 + Store 122(param) 121 + 124: 113(ptr) AccessChain 110 54 + 125: 7(ivec4) Load 124 + Store 123(param) 125 + 127: 19 Load 80(myarray) + Store 126(param) 127 + Store 128(param) 100 + 129: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 122(param) 123(param) 126(param) 128(param) + 130: 7(ivec4) IAdd 119 129 + Store 134(param) 132 + 136: 113(ptr) AccessChain 110 54 + 137: 7(ivec4) Load 136 + Store 135(param) 137 + 139: 19 Load 80(myarray) + Store 138(param) 139 + Store 140(param) 133 + 141: 7(ivec4) FunctionCall 27(fn1(vi4;vi4;i1[2];i1;) 134(param) 135(param) 138(param) 140(param) + 142: 7(ivec4) IAdd 130 141 + Store 146(param) 144 + Store 147(param) 145 + Store 148(param) 145 + 149: 7(ivec4) FunctionCall 15(fn1(vi4;b1;b1;) 146(param) 147(param) 148(param) + 150: 7(ivec4) IAdd 142 149 + Store 154(param) 152 + Store 155(param) 145 + Store 156(param) 153 + 157: 7(ivec4) FunctionCall 15(fn1(vi4;b1;b1;) 154(param) 155(param) 156(param) + 158: 7(ivec4) IAdd 150 157 + Store 162(param) 160 + Store 163(param) 161 + 164: 7(ivec4) FunctionCall 39(fn2(vi4;f1;) 162(param) 163(param) + 165: 7(ivec4) IAdd 158 164 + Store 168(param) 167 + Store 169(param) 66 + 170: 7(ivec4) FunctionCall 32(fn2(vi4;i1;) 168(param) 169(param) + 171: 7(ivec4) IAdd 165 170 + ReturnValue 171 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.params.default.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.params.default.negative.frag.out new file mode 100644 index 0000000000..f841bd8b6f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.params.default.negative.frag.out @@ -0,0 +1,385 @@ +hlsl.params.default.negative.frag +ERROR: 0:27: '' : invalid default parameter value +ERROR: 0:32: 'p1' : invalid parameter after default value parameters +ERROR: 0:40: 'fn1' : ambiguous best function under implicit type conversion +ERROR: 0:47: 'fn2' : ambiguous best function under implicit type conversion +ERROR: 4 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:7 Function Definition: fn1(vi4; ( temp 4-component vector of int) +0:7 Function Parameters: +0:7 'p0' ( in 4-component vector of int) +0:? Sequence +0:7 Branch: Return with expression +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:9 Function Parameters: +0:9 'p0' ( in 4-component vector of int) +0:9 'b1' ( in bool) +0:9 'b2' ( in bool) +0:? Sequence +0:10 Branch: Return with expression +0:10 'p0' ( in 4-component vector of int) +0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:17 Function Parameters: +0:17 'p0' ( in 4-component vector of int) +0:17 'p1' ( in 4-component vector of int) +0:17 'p2' ( in 2-element array of int) +0:17 'p3' ( in int) +0:? Sequence +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 'p0' ( in 4-component vector of int) +0:18 'p1' ( in 4-component vector of int) +0:18 direct index ( temp int) +0:18 'p2' ( in 2-element array of int) +0:18 Constant: +0:18 0 (const int) +0:18 'p3' ( in int) +0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) +0:23 Function Parameters: +0:23 'p0' ( in 4-component vector of int) +0:23 'x' ( in int) +0:? Sequence +0:24 Branch: Return with expression +0:? Constant: +0:? 10 (const int) +0:? 11 (const int) +0:? 12 (const int) +0:? 13 (const int) +0:28 Function Definition: fn2(vi4; ( temp 4-component vector of int) +0:28 Function Parameters: +0:28 'p0' ( in 4-component vector of int) +0:? Sequence +0:29 Branch: Return with expression +0:29 add ( temp 4-component vector of int) +0:29 'p0' ( in 4-component vector of int) +0:? Constant: +0:? 20 (const int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:33 Function Definition: fn3(i1; ( temp void) +0:33 Function Parameters: +0:33 'p0' ( in int) +0:37 Function Definition: @main( ( temp 4-component vector of int) +0:37 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp 2-element array of int) +0:38 'myarray' ( temp 2-element array of int) +0:38 Constant: +0:38 30 (const int) +0:38 31 (const int) +0:49 Branch: Return with expression +0:48 add ( temp 4-component vector of int) +0:47 add ( temp 4-component vector of int) +0:45 add ( temp 4-component vector of int) +0:44 add ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:42 add ( temp 4-component vector of int) +0:41 add ( temp 4-component vector of int) +0:40 add ( temp 4-component vector of int) +0:40 Function Call: fn1(vi4; ( temp 4-component vector of int) +0:40 Constant: +0:40 100 (const int) +0:40 100 (const int) +0:40 100 (const int) +0:40 100 (const int) +0:41 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:41 Constant: +0:41 101 (const int) +0:41 101 (const int) +0:41 101 (const int) +0:41 101 (const int) +0:41 ui4: direct index for structure ( uniform 4-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:41 Constant: +0:41 0 (const uint) +0:15 Constant: +0:15 1 (const int) +0:15 2 (const int) +0:16 Constant: +0:16 42 (const int) +0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:42 Constant: +0:42 102 (const int) +0:42 102 (const int) +0:42 102 (const int) +0:42 102 (const int) +0:42 ui4: direct index for structure ( uniform 4-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:42 Constant: +0:42 0 (const uint) +0:42 'myarray' ( temp 2-element array of int) +0:16 Constant: +0:16 42 (const int) +0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:43 Constant: +0:43 103 (const int) +0:43 103 (const int) +0:43 103 (const int) +0:43 103 (const int) +0:43 ui4: direct index for structure ( uniform 4-component vector of int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:43 Constant: +0:43 0 (const uint) +0:43 'myarray' ( temp 2-element array of int) +0:43 Constant: +0:43 99 (const int) +0:44 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:44 Constant: +0:44 104 (const int) +0:44 104 (const int) +0:44 104 (const int) +0:44 104 (const int) +0:44 Constant: +0:44 false (const bool) +0:9 Constant: +0:9 false (const bool) +0:45 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:45 Constant: +0:45 105 (const int) +0:45 105 (const int) +0:45 105 (const int) +0:45 105 (const int) +0:45 Constant: +0:45 false (const bool) +0:45 Constant: +0:45 true (const bool) +0:47 Function Call: fn2(vi4; ( temp 4-component vector of int) +0:47 Constant: +0:47 112 (const int) +0:47 112 (const int) +0:47 112 (const int) +0:47 112 (const int) +0:48 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) +0:48 Constant: +0:48 110 (const int) +0:48 110 (const int) +0:48 110 (const int) +0:48 110 (const int) +0:48 Constant: +0:48 11 (const int) +0:49 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) +0:49 Constant: +0:49 111 (const int) +0:49 111 (const int) +0:49 111 (const int) +0:49 111 (const int) +0:49 Constant: +0:49 12 (const int) +0:37 Function Definition: main( ( temp void) +0:37 Function Parameters: +0:? Sequence +0:37 move second child to first child ( temp 4-component vector of int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) +0:37 Function Call: @main( ( temp 4-component vector of int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:? 'cia' ( const int) +0:? -4 (const int) +0:? 'cib' ( const int) +0:? -42 (const int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:7 Function Definition: fn1(vi4; ( temp 4-component vector of int) +0:7 Function Parameters: +0:7 'p0' ( in 4-component vector of int) +0:? Sequence +0:7 Branch: Return with expression +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:9 Function Parameters: +0:9 'p0' ( in 4-component vector of int) +0:9 'b1' ( in bool) +0:9 'b2' ( in bool) +0:? Sequence +0:10 Branch: Return with expression +0:10 'p0' ( in 4-component vector of int) +0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:17 Function Parameters: +0:17 'p0' ( in 4-component vector of int) +0:17 'p1' ( in 4-component vector of int) +0:17 'p2' ( in 2-element array of int) +0:17 'p3' ( in int) +0:? Sequence +0:18 Branch: Return with expression +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 add ( temp 4-component vector of int) +0:18 'p0' ( in 4-component vector of int) +0:18 'p1' ( in 4-component vector of int) +0:18 direct index ( temp int) +0:18 'p2' ( in 2-element array of int) +0:18 Constant: +0:18 0 (const int) +0:18 'p3' ( in int) +0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) +0:23 Function Parameters: +0:23 'p0' ( in 4-component vector of int) +0:23 'x' ( in int) +0:? Sequence +0:24 Branch: Return with expression +0:? Constant: +0:? 10 (const int) +0:? 11 (const int) +0:? 12 (const int) +0:? 13 (const int) +0:28 Function Definition: fn2(vi4; ( temp 4-component vector of int) +0:28 Function Parameters: +0:28 'p0' ( in 4-component vector of int) +0:? Sequence +0:29 Branch: Return with expression +0:29 add ( temp 4-component vector of int) +0:29 'p0' ( in 4-component vector of int) +0:? Constant: +0:? 20 (const int) +0:? 21 (const int) +0:? 22 (const int) +0:? 23 (const int) +0:33 Function Definition: fn3(i1; ( temp void) +0:33 Function Parameters: +0:33 'p0' ( in int) +0:37 Function Definition: @main( ( temp 4-component vector of int) +0:37 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp 2-element array of int) +0:38 'myarray' ( temp 2-element array of int) +0:38 Constant: +0:38 30 (const int) +0:38 31 (const int) +0:49 Branch: Return with expression +0:48 add ( temp 4-component vector of int) +0:47 add ( temp 4-component vector of int) +0:45 add ( temp 4-component vector of int) +0:44 add ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:42 add ( temp 4-component vector of int) +0:41 add ( temp 4-component vector of int) +0:40 add ( temp 4-component vector of int) +0:40 Function Call: fn1(vi4; ( temp 4-component vector of int) +0:40 Constant: +0:40 100 (const int) +0:40 100 (const int) +0:40 100 (const int) +0:40 100 (const int) +0:41 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:41 Constant: +0:41 101 (const int) +0:41 101 (const int) +0:41 101 (const int) +0:41 101 (const int) +0:41 ui4: direct index for structure ( uniform 4-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:41 Constant: +0:41 0 (const uint) +0:15 Constant: +0:15 1 (const int) +0:15 2 (const int) +0:16 Constant: +0:16 42 (const int) +0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:42 Constant: +0:42 102 (const int) +0:42 102 (const int) +0:42 102 (const int) +0:42 102 (const int) +0:42 ui4: direct index for structure ( uniform 4-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:42 Constant: +0:42 0 (const uint) +0:42 'myarray' ( temp 2-element array of int) +0:16 Constant: +0:16 42 (const int) +0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) +0:43 Constant: +0:43 103 (const int) +0:43 103 (const int) +0:43 103 (const int) +0:43 103 (const int) +0:43 ui4: direct index for structure ( uniform 4-component vector of int) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:43 Constant: +0:43 0 (const uint) +0:43 'myarray' ( temp 2-element array of int) +0:43 Constant: +0:43 99 (const int) +0:44 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:44 Constant: +0:44 104 (const int) +0:44 104 (const int) +0:44 104 (const int) +0:44 104 (const int) +0:44 Constant: +0:44 false (const bool) +0:9 Constant: +0:9 false (const bool) +0:45 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) +0:45 Constant: +0:45 105 (const int) +0:45 105 (const int) +0:45 105 (const int) +0:45 105 (const int) +0:45 Constant: +0:45 false (const bool) +0:45 Constant: +0:45 true (const bool) +0:47 Function Call: fn2(vi4; ( temp 4-component vector of int) +0:47 Constant: +0:47 112 (const int) +0:47 112 (const int) +0:47 112 (const int) +0:47 112 (const int) +0:48 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) +0:48 Constant: +0:48 110 (const int) +0:48 110 (const int) +0:48 110 (const int) +0:48 110 (const int) +0:48 Constant: +0:48 11 (const int) +0:49 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) +0:49 Constant: +0:49 111 (const int) +0:49 111 (const int) +0:49 111 (const int) +0:49 111 (const int) +0:49 Constant: +0:49 12 (const int) +0:37 Function Definition: main( ( temp void) +0:37 Function Parameters: +0:? Sequence +0:37 move second child to first child ( temp 4-component vector of int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) +0:37 Function Call: @main( ( temp 4-component vector of int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) +0:? 'cia' ( const int) +0:? -4 (const int) +0:? 'cib' ( const int) +0:? -42 (const int) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out new file mode 100644 index 0000000000..95241189f7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out @@ -0,0 +1,375 @@ +hlsl.partialFlattenLocal.vert +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +0:? Sequence +0:12 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp texture2D) +0:14 tex: direct index for structure ( temp texture2D) +0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:14 Constant: +0:14 0 (const int) +0:14 'tex' ( uniform texture2D) +0:15 move second child to first child ( temp 3-component vector of float) +0:15 direct index ( temp 3-component vector of float) +0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float) +0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:16 move second child to first child ( temp 2-component vector of float) +0:16 direct index ( temp 2-component vector of float) +0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float) +0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 1.000000 +0:17 move second child to first child ( temp float) +0:17 x: direct index for structure ( temp float) +0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:17 Constant: +0:17 3 (const int) +0:17 Constant: +0:17 1.000000 +0:18 move second child to first child ( temp int) +0:18 n: direct index for structure ( temp int) +0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:18 Constant: +0:18 4 (const int) +0:18 Constant: +0:18 3 (const int) +0:20 Sequence +0:20 move second child to first child ( temp int) +0:20 'i' ( temp int) +0:20 Constant: +0:20 0 (const int) +0:20 Loop with condition tested first +0:20 Loop Condition +0:20 Compare Less Than ( temp bool) +0:20 'i' ( temp int) +0:20 Constant: +0:20 1 (const int) +0:20 Loop Body +0:? Sequence +0:21 add second child into first child ( temp 2-component vector of float) +0:21 vector swizzle ( temp 2-component vector of float) +0:21 indirect index ( temp 3-component vector of float) +0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float) +0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:21 Constant: +0:21 1 (const int) +0:21 'i' ( temp int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 indirect index ( temp 2-component vector of float) +0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float) +0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:21 Constant: +0:21 2 (const int) +0:21 'i' ( temp int) +0:20 Loop Terminal Expression +0:20 Pre-Increment ( temp int) +0:20 'i' ( temp int) +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:26 Branch: Return with expression +0:26 add ( temp 4-component vector of float) +0:26 'pos' ( in 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:26 direct index ( temp 3-component vector of float) +0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float) +0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 0.000000 +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' (layout( location=0) in 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:12 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' ( uniform texture2D) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:? 'pos' (layout( location=0) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:12 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp texture2D) +0:14 tex: direct index for structure ( temp texture2D) +0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:14 Constant: +0:14 0 (const int) +0:14 'tex' ( uniform texture2D) +0:15 move second child to first child ( temp 3-component vector of float) +0:15 direct index ( temp 3-component vector of float) +0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float) +0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:16 move second child to first child ( temp 2-component vector of float) +0:16 direct index ( temp 2-component vector of float) +0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float) +0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 1.000000 +0:17 move second child to first child ( temp float) +0:17 x: direct index for structure ( temp float) +0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:17 Constant: +0:17 3 (const int) +0:17 Constant: +0:17 1.000000 +0:18 move second child to first child ( temp int) +0:18 n: direct index for structure ( temp int) +0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:18 Constant: +0:18 4 (const int) +0:18 Constant: +0:18 3 (const int) +0:20 Sequence +0:20 move second child to first child ( temp int) +0:20 'i' ( temp int) +0:20 Constant: +0:20 0 (const int) +0:20 Loop with condition tested first +0:20 Loop Condition +0:20 Compare Less Than ( temp bool) +0:20 'i' ( temp int) +0:20 Constant: +0:20 1 (const int) +0:20 Loop Body +0:? Sequence +0:21 add second child into first child ( temp 2-component vector of float) +0:21 vector swizzle ( temp 2-component vector of float) +0:21 indirect index ( temp 3-component vector of float) +0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float) +0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:21 Constant: +0:21 1 (const int) +0:21 'i' ( temp int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 indirect index ( temp 2-component vector of float) +0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float) +0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:21 Constant: +0:21 2 (const int) +0:21 'i' ( temp int) +0:20 Loop Terminal Expression +0:20 Pre-Increment ( temp int) +0:20 'i' ( temp int) +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:26 Branch: Return with expression +0:26 add ( temp 4-component vector of float) +0:26 'pos' ( in 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:26 direct index ( temp 3-component vector of float) +0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float) +0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 0.000000 +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' (layout( location=0) in 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:12 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex' ( uniform texture2D) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:? 'pos' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 90 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 83 86 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "pos" + Name 22 "Packed" + MemberName 22(Packed) 0 "tex" + MemberName 22(Packed) 1 "pos" + MemberName 22(Packed) 2 "uv" + MemberName 22(Packed) 3 "x" + MemberName 22(Packed) 4 "n" + Name 24 "packed" + Name 27 "tex" + Name 47 "i" + Name 69 "packed2" + Name 81 "pos" + Name 83 "pos" + Name 86 "@entryPointOutput" + Name 87 "param" + Decorate 27(tex) DescriptorSet 0 + Decorate 83(pos) Location 0 + Decorate 86(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypeImage 6(float) 2D sampled format:Unknown + 14: TypeVector 6(float) 3 + 15: TypeInt 32 0 + 16: 15(int) Constant 3 + 17: TypeArray 14(fvec3) 16 + 18: TypeVector 6(float) 2 + 19: 15(int) Constant 2 + 20: TypeArray 18(fvec2) 19 + 21: TypeInt 32 1 + 22(Packed): TypeStruct 13 17 20 6(float) 21(int) + 23: TypePointer Function 22(Packed) + 25: 21(int) Constant 0 + 26: TypePointer UniformConstant 13 + 27(tex): 26(ptr) Variable UniformConstant + 29: TypePointer Function 13 + 31: 21(int) Constant 1 + 32: 6(float) Constant 0 + 33: 14(fvec3) ConstantComposite 32 32 32 + 34: TypePointer Function 14(fvec3) + 36: 21(int) Constant 2 + 37: 6(float) Constant 1065353216 + 38: 18(fvec2) ConstantComposite 32 37 + 39: TypePointer Function 18(fvec2) + 41: 21(int) Constant 3 + 42: TypePointer Function 6(float) + 44: 21(int) Constant 4 + 45: TypePointer Function 21(int) + 54: TypeBool + 82: TypePointer Input 7(fvec4) + 83(pos): 82(ptr) Variable Input + 85: TypePointer Output 7(fvec4) +86(@entryPointOutput): 85(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 81(pos): 8(ptr) Variable Function + 87(param): 8(ptr) Variable Function + 84: 7(fvec4) Load 83(pos) + Store 81(pos) 84 + 88: 7(fvec4) Load 81(pos) + Store 87(param) 88 + 89: 7(fvec4) FunctionCall 11(@main(vf4;) 87(param) + Store 86(@entryPointOutput) 89 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(pos): 8(ptr) FunctionParameter + 12: Label + 24(packed): 23(ptr) Variable Function + 47(i): 45(ptr) Variable Function + 69(packed2): 23(ptr) Variable Function + 28: 13 Load 27(tex) + 30: 29(ptr) AccessChain 24(packed) 25 + Store 30 28 + 35: 34(ptr) AccessChain 24(packed) 31 25 + Store 35 33 + 40: 39(ptr) AccessChain 24(packed) 36 25 + Store 40 38 + 43: 42(ptr) AccessChain 24(packed) 41 + Store 43 37 + 46: 45(ptr) AccessChain 24(packed) 44 + Store 46 41 + Store 47(i) 25 + Branch 48 + 48: Label + LoopMerge 50 51 None + Branch 52 + 52: Label + 53: 21(int) Load 47(i) + 55: 54(bool) SLessThan 53 31 + BranchConditional 55 49 50 + 49: Label + 56: 21(int) Load 47(i) + 57: 21(int) Load 47(i) + 58: 39(ptr) AccessChain 24(packed) 36 57 + 59: 18(fvec2) Load 58 + 60: 34(ptr) AccessChain 24(packed) 31 56 + 61: 14(fvec3) Load 60 + 62: 18(fvec2) VectorShuffle 61 61 0 1 + 63: 18(fvec2) FAdd 62 59 + 64: 34(ptr) AccessChain 24(packed) 31 56 + 65: 14(fvec3) Load 64 + 66: 14(fvec3) VectorShuffle 65 63 3 4 2 + Store 64 66 + Branch 51 + 51: Label + 67: 21(int) Load 47(i) + 68: 21(int) IAdd 67 31 + Store 47(i) 68 + Branch 48 + 50: Label + 70: 22(Packed) Load 24(packed) + Store 69(packed2) 70 + 71: 7(fvec4) Load 10(pos) + 72: 34(ptr) AccessChain 69(packed2) 31 25 + 73: 14(fvec3) Load 72 + 74: 6(float) CompositeExtract 73 0 + 75: 6(float) CompositeExtract 73 1 + 76: 6(float) CompositeExtract 73 2 + 77: 7(fvec4) CompositeConstruct 74 75 76 32 + 78: 7(fvec4) FAdd 71 77 + ReturnValue 78 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out new file mode 100644 index 0000000000..51e4c934a0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out @@ -0,0 +1,167 @@ +hlsl.partialFlattenMixed.vert +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +0:? Sequence +0:10 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:10 Function Parameters: +0:10 'pos' ( in 4-component vector of float) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp texture2D) +0:13 direct index ( temp texture2D) +0:13 membTex: direct index for structure ( temp 2-element array of texture2D) +0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:? 'tex[0]' ( uniform texture2D) +0:13 move second child to first child ( temp texture2D) +0:13 direct index ( temp texture2D) +0:13 membTex: direct index for structure ( temp 2-element array of texture2D) +0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:? 'tex[1]' ( uniform texture2D) +0:15 Branch: Return with expression +0:15 'pos' ( in 4-component vector of float) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' (layout( location=0) in 4-component vector of float) +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:10 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex[0]' ( uniform texture2D) +0:? 'tex[1]' ( uniform texture2D) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:? 'pos' (layout( location=0) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:10 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:10 Function Parameters: +0:10 'pos' ( in 4-component vector of float) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp texture2D) +0:13 direct index ( temp texture2D) +0:13 membTex: direct index for structure ( temp 2-element array of texture2D) +0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:? 'tex[0]' ( uniform texture2D) +0:13 move second child to first child ( temp texture2D) +0:13 direct index ( temp texture2D) +0:13 membTex: direct index for structure ( temp 2-element array of texture2D) +0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 1 (const int) +0:? 'tex[1]' ( uniform texture2D) +0:15 Branch: Return with expression +0:15 'pos' ( in 4-component vector of float) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' (layout( location=0) in 4-component vector of float) +0:10 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:10 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tex[0]' ( uniform texture2D) +0:? 'tex[1]' ( uniform texture2D) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:? 'pos' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 43 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 36 39 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "pos" + Name 18 "Packed" + MemberName 18(Packed) 0 "a" + MemberName 18(Packed) 1 "membTex" + MemberName 18(Packed) 2 "b" + Name 20 "packed" + Name 24 "tex[0]" + Name 28 "tex[1]" + Name 34 "pos" + Name 36 "pos" + Name 39 "@entryPointOutput" + Name 40 "param" + Decorate 24(tex[0]) DescriptorSet 0 + Decorate 28(tex[1]) DescriptorSet 0 + Decorate 36(pos) Location 0 + Decorate 39(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypeInt 32 1 + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypeInt 32 0 + 16: 15(int) Constant 2 + 17: TypeArray 14 16 + 18(Packed): TypeStruct 13(int) 17 13(int) + 19: TypePointer Function 18(Packed) + 21: 13(int) Constant 1 + 22: 13(int) Constant 0 + 23: TypePointer UniformConstant 14 + 24(tex[0]): 23(ptr) Variable UniformConstant + 26: TypePointer Function 14 + 28(tex[1]): 23(ptr) Variable UniformConstant + 35: TypePointer Input 7(fvec4) + 36(pos): 35(ptr) Variable Input + 38: TypePointer Output 7(fvec4) +39(@entryPointOutput): 38(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 34(pos): 8(ptr) Variable Function + 40(param): 8(ptr) Variable Function + 37: 7(fvec4) Load 36(pos) + Store 34(pos) 37 + 41: 7(fvec4) Load 34(pos) + Store 40(param) 41 + 42: 7(fvec4) FunctionCall 11(@main(vf4;) 40(param) + Store 39(@entryPointOutput) 42 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(pos): 8(ptr) FunctionParameter + 12: Label + 20(packed): 19(ptr) Variable Function + 25: 14 Load 24(tex[0]) + 27: 26(ptr) AccessChain 20(packed) 21 22 + Store 27 25 + 29: 14 Load 28(tex[1]) + 30: 26(ptr) AccessChain 20(packed) 21 21 + Store 30 29 + 31: 7(fvec4) Load 10(pos) + ReturnValue 31 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out new file mode 100644 index 0000000000..350a745724 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.partialInit.frag.out @@ -0,0 +1,567 @@ +hlsl.partialInit.frag +WARNING: 0:35: 'cgf2a' : variable with qualifier 'const' not initialized; zero initializing +WARNING: 0:36: 'ci' : variable with qualifier 'const' not initialized; zero initializing + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'gv' ( global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child ( temp 3-element array of float) +0:9 'gfa' ( global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:18 Function Definition: @PixelShaderFunction(vf4; ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' ( in 4-component vector of float) +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child ( temp 4-component vector of float) +0:21 v: direct index for structure ( temp 4-component vector of float) +0:21 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale ( temp 4-component vector of float) +0:21 'gv' ( global 4-component vector of float) +0:21 direct index ( temp float) +0:21 'gfa' ( global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child ( temp bool) +0:25 c: direct index for structure ( temp bool) +0:25 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure ( temp bool) +0:25 'o1' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child ( temp structure{ temp 4X3 matrix of float m, temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' ( temp structure{ temp 4X3 matrix of float m, temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 move second child to first child ( temp 4-element array of 2-component vector of float) +0:28 'gf2a' ( temp 4-element array of 2-component vector of float) +0:28 Constant: +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'cgi' ( temp int) +0:29 Constant: +0:29 0 (const int) +0:30 move second child to first child ( temp float) +0:30 b: direct index for structure ( temp float) +0:30 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:30 Constant: +0:30 1 (const int) +0:30 component-wise multiply ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 2-component vector of float) +0:30 'gf2a' ( temp 4-element array of 2-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 Convert int to float ( temp float) +0:30 'cgi' ( temp int) +0:32 Branch: Return with expression +0:32 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Definition: PixelShaderFunction( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:18 Sequence +0:18 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Call: @PixelShaderFunction(vf4; ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:? 'input' ( temp 4-component vector of float) +0:18 move second child to first child ( temp int) +0:? '@entryPointOutput.a' (layout( location=0) out int) +0:18 a: direct index for structure ( temp int) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:? '@entryPointOutput.b' (layout( location=1) out float) +0:18 b: direct index for structure ( temp float) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 1 (const int) +0:18 move second child to first child ( temp bool) +0:? '@entryPointOutput.c' (layout( location=2) out bool) +0:18 c: direct index for structure ( temp bool) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 2 (const int) +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.v' (layout( location=3) out 4-component vector of float) +0:18 v: direct index for structure ( temp 4-component vector of float) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 3 (const int) +0:? Linker Objects +0:? 'gv' ( global 4-component vector of float) +0:? 'gfa' ( global 3-element array of float) +0:? '@entryPointOutput.a' (layout( location=0) out int) +0:? '@entryPointOutput.b' (layout( location=1) out float) +0:? '@entryPointOutput.c' (layout( location=2) out bool) +0:? '@entryPointOutput.v' (layout( location=3) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'cgf2a' ( const 3-element array of 2-component vector of float) +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 'ci' ( const int) +0:? 0 (const int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'gv' ( global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child ( temp 3-element array of float) +0:9 'gfa' ( global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:18 Function Definition: @PixelShaderFunction(vf4; ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' ( in 4-component vector of float) +0:? Sequence +0:19 Sequence +0:19 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child ( temp 4-component vector of float) +0:21 v: direct index for structure ( temp 4-component vector of float) +0:21 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale ( temp 4-component vector of float) +0:21 'gv' ( global 4-component vector of float) +0:21 direct index ( temp float) +0:21 'gfa' ( global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child ( temp bool) +0:25 c: direct index for structure ( temp bool) +0:25 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure ( temp bool) +0:25 'o1' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child ( temp structure{ temp 4X3 matrix of float m, temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' ( temp structure{ temp 4X3 matrix of float m, temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 move second child to first child ( temp 4-element array of 2-component vector of float) +0:28 'gf2a' ( temp 4-element array of 2-component vector of float) +0:28 Constant: +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:28 0.000000 +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'cgi' ( temp int) +0:29 Constant: +0:29 0 (const int) +0:30 move second child to first child ( temp float) +0:30 b: direct index for structure ( temp float) +0:30 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:30 Constant: +0:30 1 (const int) +0:30 component-wise multiply ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 2-component vector of float) +0:30 'gf2a' ( temp 4-element array of 2-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 Convert int to float ( temp float) +0:30 'cgi' ( temp int) +0:32 Branch: Return with expression +0:32 'o4' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Definition: PixelShaderFunction( ( temp void) +0:18 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:18 Sequence +0:18 move second child to first child ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Call: @PixelShaderFunction(vf4; ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:? 'input' ( temp 4-component vector of float) +0:18 move second child to first child ( temp int) +0:? '@entryPointOutput.a' (layout( location=0) out int) +0:18 a: direct index for structure ( temp int) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 0 (const int) +0:18 move second child to first child ( temp float) +0:? '@entryPointOutput.b' (layout( location=1) out float) +0:18 b: direct index for structure ( temp float) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 1 (const int) +0:18 move second child to first child ( temp bool) +0:? '@entryPointOutput.c' (layout( location=2) out bool) +0:18 c: direct index for structure ( temp bool) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 2 (const int) +0:18 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.v' (layout( location=3) out 4-component vector of float) +0:18 v: direct index for structure ( temp 4-component vector of float) +0:18 'flattenTemp' ( temp structure{ temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Constant: +0:18 3 (const int) +0:? Linker Objects +0:? 'gv' ( global 4-component vector of float) +0:? 'gfa' ( global 3-element array of float) +0:? '@entryPointOutput.a' (layout( location=0) out int) +0:? '@entryPointOutput.b' (layout( location=1) out float) +0:? '@entryPointOutput.c' (layout( location=2) out bool) +0:? '@entryPointOutput.v' (layout( location=3) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'cgf2a' ( const 3-element array of 2-component vector of float) +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 'ci' ( const int) +0:? 0 (const int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 104 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 80 87 91 95 99 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "outs" + MemberName 11(outs) 0 "a" + MemberName 11(outs) 1 "b" + MemberName 11(outs) 2 "c" + MemberName 11(outs) 3 "v" + Name 14 "@PixelShaderFunction(vf4;" + Name 13 "input" + Name 17 "gv" + Name 25 "gfa" + Name 28 "o2" + Name 33 "o4" + Name 41 "o1" + Name 44 "o3" + Name 51 "Nest" + MemberName 51(Nest) 0 "m" + MemberName 51(Nest) 1 "os" + MemberName 51(Nest) 2 "b" + Name 53 "nest" + Name 61 "gf2a" + Name 65 "cgi" + Name 78 "input" + Name 80 "input" + Name 82 "flattenTemp" + Name 83 "param" + Name 87 "@entryPointOutput.a" + Name 91 "@entryPointOutput.b" + Name 95 "@entryPointOutput.c" + Name 99 "@entryPointOutput.v" + Decorate 80(input) Location 0 + Decorate 87(@entryPointOutput.a) Location 0 + Decorate 91(@entryPointOutput.b) Location 1 + Decorate 95(@entryPointOutput.c) Location 2 + Decorate 99(@entryPointOutput.v) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 1 + 10: TypeBool + 11(outs): TypeStruct 9(int) 6(float) 10(bool) 7(fvec4) + 12: TypeFunction 11(outs) 8(ptr) + 16: TypePointer Private 7(fvec4) + 17(gv): 16(ptr) Variable Private + 18: 6(float) Constant 0 + 19: 6(float) Constant 1065353216 + 20: 7(fvec4) ConstantComposite 18 18 19 18 + 21: TypeInt 32 0 + 22: 21(int) Constant 3 + 23: TypeArray 6(float) 22 + 24: TypePointer Private 23 + 25(gfa): 24(ptr) Variable Private + 26: 23 ConstantComposite 18 18 18 + 27: TypePointer Function 11(outs) + 29: 9(int) Constant 3 + 30: 10(bool) ConstantFalse + 31: 7(fvec4) ConstantComposite 18 18 18 18 + 32: 11(outs) ConstantComposite 29 18 30 31 + 35: 9(int) Constant 2 + 36: TypePointer Private 6(float) + 42: 9(int) Constant 0 + 43: 11(outs) ConstantComposite 42 18 30 31 + 45: TypePointer Function 10(bool) + 49: TypeVector 6(float) 3 + 50: TypeMatrix 49(fvec3) 4 + 51(Nest): TypeStruct 50 11(outs) 10(bool) + 52: TypePointer Function 51(Nest) + 54: 49(fvec3) ConstantComposite 18 18 18 + 55: 50 ConstantComposite 54 54 54 54 + 56: 51(Nest) ConstantComposite 55 43 30 + 57: TypeVector 6(float) 2 + 58: 21(int) Constant 4 + 59: TypeArray 57(fvec2) 58 + 60: TypePointer Function 59 + 62: 57(fvec2) ConstantComposite 18 18 + 63: 59 ConstantComposite 62 62 62 62 + 64: TypePointer Function 9(int) + 66: 9(int) Constant 1 + 67: 21(int) Constant 1 + 68: TypePointer Function 6(float) + 79: TypePointer Input 7(fvec4) + 80(input): 79(ptr) Variable Input + 86: TypePointer Output 9(int) +87(@entryPointOutput.a): 86(ptr) Variable Output + 90: TypePointer Output 6(float) +91(@entryPointOutput.b): 90(ptr) Variable Output + 94: TypePointer Output 10(bool) +95(@entryPointOutput.c): 94(ptr) Variable Output + 98: TypePointer Output 7(fvec4) +99(@entryPointOutput.v): 98(ptr) Variable Output + 102: TypeArray 57(fvec2) 22 + 103: 102 ConstantComposite 62 62 62 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 78(input): 8(ptr) Variable Function + 82(flattenTemp): 27(ptr) Variable Function + 83(param): 8(ptr) Variable Function + Store 17(gv) 20 + Store 25(gfa) 26 + 81: 7(fvec4) Load 80(input) + Store 78(input) 81 + 84: 7(fvec4) Load 78(input) + Store 83(param) 84 + 85: 11(outs) FunctionCall 14(@PixelShaderFunction(vf4;) 83(param) + Store 82(flattenTemp) 85 + 88: 64(ptr) AccessChain 82(flattenTemp) 42 + 89: 9(int) Load 88 + Store 87(@entryPointOutput.a) 89 + 92: 68(ptr) AccessChain 82(flattenTemp) 66 + 93: 6(float) Load 92 + Store 91(@entryPointOutput.b) 93 + 96: 45(ptr) AccessChain 82(flattenTemp) 35 + 97: 10(bool) Load 96 + Store 95(@entryPointOutput.c) 97 + 100: 8(ptr) AccessChain 82(flattenTemp) 29 + 101: 7(fvec4) Load 100 + Store 99(@entryPointOutput.v) 101 + Return + FunctionEnd +14(@PixelShaderFunction(vf4;): 11(outs) Function None 12 + 13(input): 8(ptr) FunctionParameter + 15: Label + 28(o2): 27(ptr) Variable Function + 33(o4): 27(ptr) Variable Function + 41(o1): 27(ptr) Variable Function + 44(o3): 27(ptr) Variable Function + 53(nest): 52(ptr) Variable Function + 61(gf2a): 60(ptr) Variable Function + 65(cgi): 64(ptr) Variable Function + Store 28(o2) 32 + 34: 7(fvec4) Load 17(gv) + 37: 36(ptr) AccessChain 25(gfa) 35 + 38: 6(float) Load 37 + 39: 7(fvec4) VectorTimesScalar 34 38 + 40: 8(ptr) AccessChain 33(o4) 29 + Store 40 39 + Store 41(o1) 43 + Store 44(o3) 43 + Store 33(o4) 43 + 46: 45(ptr) AccessChain 41(o1) 35 + 47: 10(bool) Load 46 + 48: 45(ptr) AccessChain 33(o4) 35 + Store 48 47 + Store 53(nest) 56 + Store 61(gf2a) 63 + Store 65(cgi) 42 + 69: 68(ptr) AccessChain 61(gf2a) 35 67 + 70: 6(float) Load 69 + 71: 9(int) Load 65(cgi) + 72: 6(float) ConvertSToF 71 + 73: 6(float) FMul 70 72 + 74: 68(ptr) AccessChain 33(o4) 66 + Store 74 73 + 75: 11(outs) Load 33(o4) + ReturnValue 75 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.pp.line.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.pp.line.frag.out new file mode 100644 index 0000000000..2c06fe91f8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.pp.line.frag.out @@ -0,0 +1,192 @@ +hlsl.pp.line.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Function Parameters: +0:? Sequence +0:124 Sequence +0:124 move second child to first child ( temp int) +0:124 'thisLineIs' ( temp int) +0:124 Constant: +0:124 124 (const int) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 Color: direct index for structure ( temp 4-component vector of float) +0:126 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:126 Constant: +0:126 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:126 Convert int to float ( temp float) +0:126 'thisLineIs' ( temp int) +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 1.000000 +0:127 move second child to first child ( temp float) +0:127 Depth: direct index for structure ( temp float) +0:127 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 1.000000 +0:129 Branch: Return with expression +0:129 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:4 Color: direct index for structure ( temp 4-component vector of float) +0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:4 Depth: direct index for structure ( temp float) +0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Constant: +0:4 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Function Parameters: +0:? Sequence +0:124 Sequence +0:124 move second child to first child ( temp int) +0:124 'thisLineIs' ( temp int) +0:124 Constant: +0:124 124 (const int) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 Color: direct index for structure ( temp 4-component vector of float) +0:126 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:126 Constant: +0:126 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:126 Convert int to float ( temp float) +0:126 'thisLineIs' ( temp int) +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 1.000000 +0:127 move second child to first child ( temp float) +0:127 Depth: direct index for structure ( temp float) +0:127 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 1.000000 +0:129 Branch: Return with expression +0:129 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:4 Color: direct index for structure ( temp 4-component vector of float) +0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Constant: +0:4 0 (const int) +0:4 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:4 Depth: direct index for structure ( temp float) +0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:4 Constant: +0:4 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 35 39 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 14 "thisLineIs" + Name 17 "psout" + Name 32 "flattenTemp" + Name 35 "@entryPointOutput.Color" + Name 39 "@entryPointOutput.Depth" + Decorate 35(@entryPointOutput.Color) Location 0 + Decorate 39(@entryPointOutput.Depth) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13: TypePointer Function 12(int) + 15: 12(int) Constant 124 + 16: TypePointer Function 8(PS_OUTPUT) + 18: 12(int) Constant 0 + 21: 6(float) Constant 0 + 22: 6(float) Constant 1065353216 + 24: TypePointer Function 7(fvec4) + 26: 12(int) Constant 1 + 27: TypePointer Function 6(float) + 34: TypePointer Output 7(fvec4) +35(@entryPointOutput.Color): 34(ptr) Variable Output + 38: TypePointer Output 6(float) +39(@entryPointOutput.Depth): 38(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 32(flattenTemp): 16(ptr) Variable Function + 33:8(PS_OUTPUT) FunctionCall 10(@main() + Store 32(flattenTemp) 33 + 36: 24(ptr) AccessChain 32(flattenTemp) 18 + 37: 7(fvec4) Load 36 + Store 35(@entryPointOutput.Color) 37 + 40: 27(ptr) AccessChain 32(flattenTemp) 26 + 41: 6(float) Load 40 + Store 39(@entryPointOutput.Depth) 41 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 14(thisLineIs): 13(ptr) Variable Function + 17(psout): 16(ptr) Variable Function + Store 14(thisLineIs) 15 + 19: 12(int) Load 14(thisLineIs) + 20: 6(float) ConvertSToF 19 + 23: 7(fvec4) CompositeConstruct 20 21 21 22 + 25: 24(ptr) AccessChain 17(psout) 18 + Store 25 23 + 28: 27(ptr) AccessChain 17(psout) 26 + Store 28 22 + 29:8(PS_OUTPUT) Load 17(psout) + ReturnValue 29 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.pp.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.pp.vert.out new file mode 100644 index 0000000000..817b647107 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.pp.vert.out @@ -0,0 +1,61 @@ +hlsl.pp.vert +Shader version: 500 +0:? Sequence +0:17 Function Definition: @main( ( temp void) +0:17 Function Parameters: +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2}) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:17 Function Definition: @main( ( temp void) +0:17 Function Parameters: +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 Function Call: @main( ( temp void) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 13 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 500 + Name 4 "main" + Name 6 "@main(" + Name 10 "$Global" + MemberName 10($Global) 0 "goodGlobal1" + MemberName 10($Global) 1 "goodGlobal2" + Name 12 "" + MemberDecorate 10($Global) 0 Offset 0 + MemberDecorate 10($Global) 1 Offset 4 + Decorate 10($Global) Block + Decorate 12 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 9: TypeInt 32 1 + 10($Global): TypeStruct 9(int) 9(int) + 11: TypePointer Uniform 10($Global) + 12: 11(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 8: 2 FunctionCall 6(@main() + Return + FunctionEnd + 6(@main(): 2 Function None 3 + 7: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out new file mode 100644 index 0000000000..f4c53389d7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.precedence.frag.out @@ -0,0 +1,257 @@ +hlsl.precedence.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 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) +0:7 'a3' ( in 4-component vector of float) +0:7 'a4' ( in 4-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp 4-component vector of float) +0:8 add ( temp 4-component vector of float) +0:8 add ( temp 4-component vector of float) +0:8 'a1' ( in 4-component vector of float) +0:8 component-wise multiply ( temp 4-component vector of float) +0:8 'a2' ( in 4-component vector of float) +0:8 'a3' ( in 4-component vector of float) +0:8 'a4' ( in 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:8 component-wise multiply ( temp 3-component vector of float) +0:8 vector swizzle ( temp 3-component vector of float) +0:8 'a1' ( in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle ( temp 3-component vector of float) +0:8 'a2' ( in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 'a3' ( in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:7 Function Definition: PixelShaderFunction( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 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) +0:7 'a3' ( in 4-component vector of float) +0:7 'a4' ( in 4-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp 4-component vector of float) +0:8 add ( temp 4-component vector of float) +0:8 add ( temp 4-component vector of float) +0:8 'a1' ( in 4-component vector of float) +0:8 component-wise multiply ( temp 4-component vector of float) +0:8 'a2' ( in 4-component vector of float) +0:8 'a3' ( in 4-component vector of float) +0:8 'a4' ( in 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:8 component-wise multiply ( temp 3-component vector of float) +0:8 vector swizzle ( temp 3-component vector of float) +0:8 'a1' ( in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle ( temp 3-component vector of float) +0:8 'a2' ( in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index ( temp float) +0:8 'a3' ( in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:7 Function Definition: PixelShaderFunction( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) +0:? 'a1' ( temp 4-component vector of float) +0:? 'a2' ( temp 4-component vector of float) +0:? 'a3' ( temp 4-component vector of float) +0:? 'a4' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'a1' (layout( location=0) in 4-component vector of float) +0:? 'a2' (layout( location=1) in 4-component vector of float) +0:? 'a3' (layout( location=2) in 4-component vector of float) +0:? 'a4' (layout( location=3) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 43 46 49 52 55 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 14 "@PixelShaderFunction(vf4;vf4;vf4;vf4;" + Name 10 "a1" + Name 11 "a2" + Name 12 "a3" + Name 13 "a4" + Name 41 "a1" + Name 43 "a1" + Name 45 "a2" + Name 46 "a2" + Name 48 "a3" + Name 49 "a3" + Name 51 "a4" + Name 52 "a4" + Name 55 "@entryPointOutput" + Name 56 "param" + Name 58 "param" + Name 60 "param" + Name 62 "param" + Decorate 43(a1) Location 0 + Decorate 46(a2) Location 1 + Decorate 49(a3) Location 2 + Decorate 52(a4) Location 3 + Decorate 55(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 8(ptr) 8(ptr) + 23: TypeVector 6(float) 3 + 29: TypeInt 32 0 + 30: 29(int) Constant 3 + 31: TypePointer Function 6(float) + 42: TypePointer Input 7(fvec4) + 43(a1): 42(ptr) Variable Input + 46(a2): 42(ptr) Variable Input + 49(a3): 42(ptr) Variable Input + 52(a4): 42(ptr) Variable Input + 54: TypePointer Output 7(fvec4) +55(@entryPointOutput): 54(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 41(a1): 8(ptr) Variable Function + 45(a2): 8(ptr) Variable Function + 48(a3): 8(ptr) Variable Function + 51(a4): 8(ptr) Variable Function + 56(param): 8(ptr) Variable Function + 58(param): 8(ptr) Variable Function + 60(param): 8(ptr) Variable Function + 62(param): 8(ptr) Variable Function + 44: 7(fvec4) Load 43(a1) + Store 41(a1) 44 + 47: 7(fvec4) Load 46(a2) + Store 45(a2) 47 + 50: 7(fvec4) Load 49(a3) + Store 48(a3) 50 + 53: 7(fvec4) Load 52(a4) + Store 51(a4) 53 + 57: 7(fvec4) Load 41(a1) + Store 56(param) 57 + 59: 7(fvec4) Load 45(a2) + Store 58(param) 59 + 61: 7(fvec4) Load 48(a3) + Store 60(param) 61 + 63: 7(fvec4) Load 51(a4) + Store 62(param) 63 + 64: 7(fvec4) FunctionCall 14(@PixelShaderFunction(vf4;vf4;vf4;vf4;) 56(param) 58(param) 60(param) 62(param) + Store 55(@entryPointOutput) 64 + Return + FunctionEnd +14(@PixelShaderFunction(vf4;vf4;vf4;vf4;): 7(fvec4) Function None 9 + 10(a1): 8(ptr) FunctionParameter + 11(a2): 8(ptr) FunctionParameter + 12(a3): 8(ptr) FunctionParameter + 13(a4): 8(ptr) FunctionParameter + 15: Label + 16: 7(fvec4) Load 10(a1) + 17: 7(fvec4) Load 11(a2) + 18: 7(fvec4) Load 12(a3) + 19: 7(fvec4) FMul 17 18 + 20: 7(fvec4) FAdd 16 19 + 21: 7(fvec4) Load 13(a4) + 22: 7(fvec4) FAdd 20 21 + 24: 7(fvec4) Load 10(a1) + 25: 23(fvec3) VectorShuffle 24 24 0 1 2 + 26: 7(fvec4) Load 11(a2) + 27: 23(fvec3) VectorShuffle 26 26 0 1 2 + 28: 23(fvec3) FMul 25 27 + 32: 31(ptr) AccessChain 12(a3) 30 + 33: 6(float) Load 32 + 34: 6(float) CompositeExtract 28 0 + 35: 6(float) CompositeExtract 28 1 + 36: 6(float) CompositeExtract 28 2 + 37: 7(fvec4) CompositeConstruct 34 35 36 33 + 38: 7(fvec4) FAdd 22 37 + ReturnValue 38 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.precedence2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.precedence2.frag.out new file mode 100644 index 0000000000..9ce674d6b9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.precedence2.frag.out @@ -0,0 +1,218 @@ +hlsl.precedence2.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @PixelShaderFunction(i1;i1;i1;i1; ( temp int) +0:7 Function Parameters: +0:7 'a1' ( in int) +0:7 'a2' ( in int) +0:7 'a3' ( in int) +0:7 'a4' ( in int) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp int) +0:8 left-shift ( temp int) +0:8 add ( temp int) +0:8 component-wise multiply ( temp int) +0:8 'a1' ( in int) +0:8 'a2' ( in int) +0:8 'a3' ( in int) +0:8 'a4' ( in int) +0:8 left-shift ( temp int) +0:8 'a1' ( in int) +0:8 add ( temp int) +0:8 'a2' ( in int) +0:8 component-wise multiply ( temp int) +0:8 'a3' ( in int) +0:8 'a4' ( in int) +0:7 Function Definition: PixelShaderFunction( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp int) +0:? 'a1' ( temp int) +0:? 'a1' (layout( location=0) flat in int) +0:7 move second child to first child ( temp int) +0:? 'a2' ( temp int) +0:? 'a2' (layout( location=1) flat in int) +0:7 move second child to first child ( temp int) +0:? 'a3' ( temp int) +0:? 'a3' (layout( location=2) flat in int) +0:7 move second child to first child ( temp int) +0:? 'a4' ( temp int) +0:? 'a4' (layout( location=3) flat in int) +0:7 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:7 Function Call: @PixelShaderFunction(i1;i1;i1;i1; ( temp int) +0:? 'a1' ( temp int) +0:? 'a2' ( temp int) +0:? 'a3' ( temp int) +0:? 'a4' ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) +0:? 'a1' (layout( location=0) flat in int) +0:? 'a2' (layout( location=1) flat in int) +0:? 'a3' (layout( location=2) flat in int) +0:? 'a4' (layout( location=3) flat in int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @PixelShaderFunction(i1;i1;i1;i1; ( temp int) +0:7 Function Parameters: +0:7 'a1' ( in int) +0:7 'a2' ( in int) +0:7 'a3' ( in int) +0:7 'a4' ( in int) +0:? Sequence +0:8 Branch: Return with expression +0:8 add ( temp int) +0:8 left-shift ( temp int) +0:8 add ( temp int) +0:8 component-wise multiply ( temp int) +0:8 'a1' ( in int) +0:8 'a2' ( in int) +0:8 'a3' ( in int) +0:8 'a4' ( in int) +0:8 left-shift ( temp int) +0:8 'a1' ( in int) +0:8 add ( temp int) +0:8 'a2' ( in int) +0:8 component-wise multiply ( temp int) +0:8 'a3' ( in int) +0:8 'a4' ( in int) +0:7 Function Definition: PixelShaderFunction( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp int) +0:? 'a1' ( temp int) +0:? 'a1' (layout( location=0) flat in int) +0:7 move second child to first child ( temp int) +0:? 'a2' ( temp int) +0:? 'a2' (layout( location=1) flat in int) +0:7 move second child to first child ( temp int) +0:? 'a3' ( temp int) +0:? 'a3' (layout( location=2) flat in int) +0:7 move second child to first child ( temp int) +0:? 'a4' ( temp int) +0:? 'a4' (layout( location=3) flat in int) +0:7 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:7 Function Call: @PixelShaderFunction(i1;i1;i1;i1; ( temp int) +0:? 'a1' ( temp int) +0:? 'a2' ( temp int) +0:? 'a3' ( temp int) +0:? 'a4' ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) +0:? 'a1' (layout( location=0) flat in int) +0:? 'a2' (layout( location=1) flat in int) +0:? 'a3' (layout( location=2) flat in int) +0:? 'a4' (layout( location=3) flat in int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 56 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 34 37 40 43 46 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 13 "@PixelShaderFunction(i1;i1;i1;i1;" + Name 9 "a1" + Name 10 "a2" + Name 11 "a3" + Name 12 "a4" + Name 32 "a1" + Name 34 "a1" + Name 36 "a2" + Name 37 "a2" + Name 39 "a3" + Name 40 "a3" + Name 42 "a4" + Name 43 "a4" + Name 46 "@entryPointOutput" + Name 47 "param" + Name 49 "param" + Name 51 "param" + Name 53 "param" + Decorate 34(a1) Flat + Decorate 34(a1) Location 0 + Decorate 37(a2) Flat + Decorate 37(a2) Location 1 + Decorate 40(a3) Flat + Decorate 40(a3) Location 2 + Decorate 43(a4) Flat + Decorate 43(a4) Location 3 + Decorate 46(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) 7(ptr) 7(ptr) 7(ptr) + 33: TypePointer Input 6(int) + 34(a1): 33(ptr) Variable Input + 37(a2): 33(ptr) Variable Input + 40(a3): 33(ptr) Variable Input + 43(a4): 33(ptr) Variable Input + 45: TypePointer Output 6(int) +46(@entryPointOutput): 45(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 32(a1): 7(ptr) Variable Function + 36(a2): 7(ptr) Variable Function + 39(a3): 7(ptr) Variable Function + 42(a4): 7(ptr) Variable Function + 47(param): 7(ptr) Variable Function + 49(param): 7(ptr) Variable Function + 51(param): 7(ptr) Variable Function + 53(param): 7(ptr) Variable Function + 35: 6(int) Load 34(a1) + Store 32(a1) 35 + 38: 6(int) Load 37(a2) + Store 36(a2) 38 + 41: 6(int) Load 40(a3) + Store 39(a3) 41 + 44: 6(int) Load 43(a4) + Store 42(a4) 44 + 48: 6(int) Load 32(a1) + Store 47(param) 48 + 50: 6(int) Load 36(a2) + Store 49(param) 50 + 52: 6(int) Load 39(a3) + Store 51(param) 52 + 54: 6(int) Load 42(a4) + Store 53(param) 54 + 55: 6(int) FunctionCall 13(@PixelShaderFunction(i1;i1;i1;i1;) 47(param) 49(param) 51(param) 53(param) + Store 46(@entryPointOutput) 55 + Return + FunctionEnd +13(@PixelShaderFunction(i1;i1;i1;i1;): 6(int) Function None 8 + 9(a1): 7(ptr) FunctionParameter + 10(a2): 7(ptr) FunctionParameter + 11(a3): 7(ptr) FunctionParameter + 12(a4): 7(ptr) FunctionParameter + 14: Label + 15: 6(int) Load 9(a1) + 16: 6(int) Load 10(a2) + 17: 6(int) IMul 15 16 + 18: 6(int) Load 11(a3) + 19: 6(int) IAdd 17 18 + 20: 6(int) Load 12(a4) + 21: 6(int) ShiftLeftLogical 19 20 + 22: 6(int) Load 9(a1) + 23: 6(int) Load 10(a2) + 24: 6(int) Load 11(a3) + 25: 6(int) Load 12(a4) + 26: 6(int) IMul 24 25 + 27: 6(int) IAdd 23 26 + 28: 6(int) ShiftLeftLogical 22 27 + 29: 6(int) IAdd 21 28 + ReturnValue 29 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.precise.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.precise.frag.out new file mode 100644 index 0000000000..dd450690a0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.precise.frag.out @@ -0,0 +1,139 @@ +hlsl.precise.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: MyFunction(f1;vf3; ( temp void) +0:6 Function Parameters: +0:6 'myfloat' ( noContraction in float) +0:6 'myfloat3' ( noContraction out 3-component vector of float) +0:9 Function Definition: @main( ( temp structure{ noContraction temp 4-component vector of float color}) +0:9 Function Parameters: +0:? Sequence +0:11 move second child to first child ( noContraction temp 4-component vector of float) +0:11 color: direct index for structure ( noContraction temp 4-component vector of float) +0:11 'ps_output' ( temp structure{ noContraction temp 4-component vector of float color}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:12 Branch: Return with expression +0:12 'ps_output' ( temp structure{ noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 Sequence +0:9 move second child to first child ( noContraction temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float) +0:9 color: direct index for structure ( noContraction temp 4-component vector of float) +0:9 Function Call: @main( ( temp structure{ noContraction temp 4-component vector of float color}) +0:9 Constant: +0:9 0 (const int) +0:? Linker Objects +0:? 'precisefloat' ( noContraction global float) +0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: MyFunction(f1;vf3; ( temp void) +0:6 Function Parameters: +0:6 'myfloat' ( noContraction in float) +0:6 'myfloat3' ( noContraction out 3-component vector of float) +0:9 Function Definition: @main( ( temp structure{ noContraction temp 4-component vector of float color}) +0:9 Function Parameters: +0:? Sequence +0:11 move second child to first child ( noContraction temp 4-component vector of float) +0:11 color: direct index for structure ( noContraction temp 4-component vector of float) +0:11 'ps_output' ( temp structure{ noContraction temp 4-component vector of float color}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:12 Branch: Return with expression +0:12 'ps_output' ( temp structure{ noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 Sequence +0:9 move second child to first child ( noContraction temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float) +0:9 color: direct index for structure ( noContraction temp 4-component vector of float) +0:9 Function Call: @main( ( temp structure{ noContraction temp 4-component vector of float color}) +0:9 Constant: +0:9 0 (const int) +0:? Linker Objects +0:? 'precisefloat' ( noContraction global float) +0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 37 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 32 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 13 "MyFunction(f1;vf3;" + Name 11 "myfloat" + Name 12 "myfloat3" + Name 16 "PS_OUTPUT" + MemberName 16(PS_OUTPUT) 0 "color" + Name 18 "@main(" + Name 21 "ps_output" + Name 32 "@entryPointOutput.color" + Name 36 "precisefloat" + Decorate 32(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeVector 6(float) 3 + 9: TypePointer Function 8(fvec3) + 10: TypeFunction 2 7(ptr) 9(ptr) + 15: TypeVector 6(float) 4 + 16(PS_OUTPUT): TypeStruct 15(fvec4) + 17: TypeFunction 16(PS_OUTPUT) + 20: TypePointer Function 16(PS_OUTPUT) + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: 6(float) Constant 1065353216 + 25: 15(fvec4) ConstantComposite 24 24 24 24 + 26: TypePointer Function 15(fvec4) + 31: TypePointer Output 15(fvec4) +32(@entryPointOutput.color): 31(ptr) Variable Output + 35: TypePointer Private 6(float) +36(precisefloat): 35(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 33:16(PS_OUTPUT) FunctionCall 18(@main() + 34: 15(fvec4) CompositeExtract 33 0 + Store 32(@entryPointOutput.color) 34 + Return + FunctionEnd +13(MyFunction(f1;vf3;): 2 Function None 10 + 11(myfloat): 7(ptr) FunctionParameter + 12(myfloat3): 9(ptr) FunctionParameter + 14: Label + Return + FunctionEnd + 18(@main():16(PS_OUTPUT) Function None 17 + 19: Label + 21(ps_output): 20(ptr) Variable Function + 27: 26(ptr) AccessChain 21(ps_output) 23 + Store 27 25 + 28:16(PS_OUTPUT) Load 21(ps_output) + ReturnValue 28 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.preprocessor.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.preprocessor.frag.out new file mode 100644 index 0000000000..c78de3dd06 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.preprocessor.frag.out @@ -0,0 +1,163 @@ +hlsl.preprocessor.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: @main(vf4; ( temp 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 'tex' ( temp 4-component vector of float) +0:10 texture ( temp 4-component vector of float) +0:10 Construct combined texture-sampler ( temp sampler2D) +0:10 'test_texture' ( uniform texture2D) +0:10 'test_texture_ss' ( uniform sampler) +0:10 vector swizzle ( temp 2-component vector of float) +0:10 vector swizzle ( temp 2-component vector of float) +0:10 'input' ( in 4-component vector of float) +0:10 Sequence +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 Sequence +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 1 (const int) +0:11 Branch: Return with expression +0:11 'tex' ( temp 4-component vector of float) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:9 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'test_texture' ( uniform texture2D) +0:? 'test_texture_ss' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: @main(vf4; ( temp 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 'tex' ( temp 4-component vector of float) +0:10 texture ( temp 4-component vector of float) +0:10 Construct combined texture-sampler ( temp sampler2D) +0:10 'test_texture' ( uniform texture2D) +0:10 'test_texture_ss' ( uniform sampler) +0:10 vector swizzle ( temp 2-component vector of float) +0:10 vector swizzle ( temp 2-component vector of float) +0:10 'input' ( in 4-component vector of float) +0:10 Sequence +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 1 (const int) +0:10 Sequence +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 1 (const int) +0:11 Branch: Return with expression +0:11 'tex' ( temp 4-component vector of float) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:9 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'test_texture' ( uniform texture2D) +0:? 'test_texture_ss' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 40 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 36 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "input" + Name 13 "tex" + Name 16 "test_texture" + Name 20 "test_texture_ss" + Name 31 "input" + Name 33 "input" + Name 36 "@entryPointOutput" + Name 37 "param" + Decorate 16(test_texture) DescriptorSet 0 + Decorate 20(test_texture_ss) DescriptorSet 0 + Decorate 33(input) Location 0 + Decorate 36(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 14: TypeImage 6(float) 2D sampled format:Unknown + 15: TypePointer UniformConstant 14 +16(test_texture): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 +20(test_texture_ss): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 32: TypePointer Input 7(fvec4) + 33(input): 32(ptr) Variable Input + 35: TypePointer Output 7(fvec4) +36(@entryPointOutput): 35(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 31(input): 8(ptr) Variable Function + 37(param): 8(ptr) Variable Function + 34: 7(fvec4) Load 33(input) + Store 31(input) 34 + 38: 7(fvec4) Load 31(input) + Store 37(param) 38 + 39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param) + Store 36(@entryPointOutput) 39 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13(tex): 8(ptr) Variable Function + 17: 14 Load 16(test_texture) + 21: 18 Load 20(test_texture_ss) + 23: 22 SampledImage 17 21 + 25: 7(fvec4) Load 10(input) + 26: 24(fvec2) VectorShuffle 25 25 0 1 + 27: 7(fvec4) ImageSampleImplicitLod 23 26 + Store 13(tex) 27 + 28: 7(fvec4) Load 13(tex) + ReturnValue 28 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out new file mode 100644 index 0000000000..ecc188b1c3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promote.atomic.frag.out @@ -0,0 +1,123 @@ +hlsl.promote.atomic.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp int) +0:13 'Orig' ( temp int) +0:13 Convert uint to int ( temp int) +0:13 imageAtomicAdd ( temp uint) +0:13 's_uintbuff' (layout( r32ui) uniform uimageBuffer) +0:13 'Loc' ( temp int) +0:13 Convert int to uint ( temp uint) +0:13 'Inc' ( temp int) +0:15 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 's_uintbuff' (layout( r32ui) uniform uimageBuffer) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp int) +0:13 'Orig' ( temp int) +0:13 Convert uint to int ( temp int) +0:13 imageAtomicAdd ( temp uint) +0:13 's_uintbuff' (layout( r32ui) uniform uimageBuffer) +0:13 'Loc' ( temp int) +0:13 Convert int to uint ( temp uint) +0:13 'Inc' ( temp int) +0:15 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 's_uintbuff' (layout( r32ui) uniform uimageBuffer) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 36 + + Capability Shader + Capability ImageBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 34 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "Orig" + Name 17 "s_uintbuff" + Name 18 "Loc" + Name 20 "Inc" + Name 34 "@entryPointOutput" + Decorate 17(s_uintbuff) DescriptorSet 0 + Decorate 34(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 1 + 12: TypePointer Function 11(int) + 14: TypeInt 32 0 + 15: TypeImage 14(int) Buffer nonsampled format:R32ui + 16: TypePointer UniformConstant 15 + 17(s_uintbuff): 16(ptr) Variable UniformConstant + 23: 14(int) Constant 0 + 24: TypePointer Image 14(int) + 26: 14(int) Constant 1 + 29: 6(float) Constant 0 + 30: 7(fvec4) ConstantComposite 29 29 29 29 + 33: TypePointer Output 7(fvec4) +34(@entryPointOutput): 33(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 35: 7(fvec4) FunctionCall 9(@main() + Store 34(@entryPointOutput) 35 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 13(Orig): 12(ptr) Variable Function + 18(Loc): 12(ptr) Variable Function + 20(Inc): 12(ptr) Variable Function + 19: 11(int) Load 18(Loc) + 21: 11(int) Load 20(Inc) + 22: 14(int) Bitcast 21 + 25: 24(ptr) ImageTexelPointer 17(s_uintbuff) 19 23 + 27: 14(int) AtomicIAdd 25 26 23 22 + 28: 11(int) Bitcast 27 + Store 13(Orig) 28 + ReturnValue 30 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.promote.binary.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.promote.binary.frag.out new file mode 100644 index 0000000000..e1931af1ac --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promote.binary.frag.out @@ -0,0 +1,294 @@ +hlsl.promote.binary.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod ( temp float) +0:15 Convert int to float ( temp float) +0:15 ival: direct index for structure ( uniform int) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure ( uniform float) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod ( temp 4-component vector of float) +0:16 Convert int to float ( temp 4-component vector of float) +0:16 ival4: direct index for structure ( uniform 4-component vector of int) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure ( uniform 4-component vector of float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod ( temp float) +0:18 Convert bool to float ( temp float) +0:18 bval: direct index for structure ( uniform bool) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure ( uniform float) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod ( temp 4-component vector of float) +0:19 Convert bool to float ( temp 4-component vector of float) +0:19 bval4: direct index for structure ( uniform 4-component vector of bool) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure ( uniform 4-component vector of float) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'l_int' ( temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child ( temp int) +0:22 'l_int' ( temp int) +0:22 Convert float to int ( temp int) +0:22 fval: direct index for structure ( uniform float) +0:22 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child ( temp 4-component vector of float) +0:25 Color: direct index for structure ( temp 4-component vector of float) +0:25 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Branch: Return with expression +0:26 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:14 Color: direct index for structure ( temp 4-component vector of float) +0:14 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod ( temp float) +0:15 Convert int to float ( temp float) +0:15 ival: direct index for structure ( uniform int) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure ( uniform float) +0:15 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod ( temp 4-component vector of float) +0:16 Convert int to float ( temp 4-component vector of float) +0:16 ival4: direct index for structure ( uniform 4-component vector of int) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure ( uniform 4-component vector of float) +0:16 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod ( temp float) +0:18 Convert bool to float ( temp float) +0:18 bval: direct index for structure ( uniform bool) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure ( uniform float) +0:18 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod ( temp 4-component vector of float) +0:19 Convert bool to float ( temp 4-component vector of float) +0:19 bval4: direct index for structure ( uniform 4-component vector of bool) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure ( uniform 4-component vector of float) +0:19 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'l_int' ( temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child ( temp int) +0:22 'l_int' ( temp int) +0:22 Convert float to int ( temp int) +0:22 fval: direct index for structure ( uniform float) +0:22 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child ( temp 4-component vector of float) +0:25 Color: direct index for structure ( temp 4-component vector of float) +0:25 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Branch: Return with expression +0:26 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:14 Color: direct index for structure ( temp 4-component vector of float) +0:14 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform bool bval, uniform 4-component vector of bool bval4, uniform int ival, uniform 4-component vector of int ival4, uniform float fval, uniform 4-component vector of float fval4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 83 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 80 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 16 "$Global" + MemberName 16($Global) 0 "bval" + MemberName 16($Global) 1 "bval4" + MemberName 16($Global) 2 "ival" + MemberName 16($Global) 3 "ival4" + MemberName 16($Global) 4 "fval" + MemberName 16($Global) 5 "fval4" + Name 18 "" + Name 66 "l_int" + Name 73 "psout" + Name 80 "@entryPointOutput.Color" + MemberDecorate 16($Global) 0 Offset 0 + MemberDecorate 16($Global) 1 Offset 16 + MemberDecorate 16($Global) 2 Offset 32 + MemberDecorate 16($Global) 3 Offset 48 + MemberDecorate 16($Global) 4 Offset 64 + MemberDecorate 16($Global) 5 Offset 80 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + Decorate 80(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 0 + 13: TypeVector 12(int) 4 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 4 + 16($Global): TypeStruct 12(int) 13(ivec4) 14(int) 15(ivec4) 6(float) 7(fvec4) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: 14(int) Constant 2 + 20: TypePointer Uniform 14(int) + 24: 14(int) Constant 4 + 25: TypePointer Uniform 6(float) + 29: 14(int) Constant 3 + 30: TypePointer Uniform 15(ivec4) + 34: 14(int) Constant 5 + 35: TypePointer Uniform 7(fvec4) + 39: 14(int) Constant 0 + 40: TypePointer Uniform 12(int) + 43: TypeBool + 44: 12(int) Constant 0 + 46: 6(float) Constant 0 + 47: 6(float) Constant 1065353216 + 52: 14(int) Constant 1 + 53: TypePointer Uniform 13(ivec4) + 56: TypeVector 43(bool) 4 + 57: 13(ivec4) ConstantComposite 44 44 44 44 + 59: 7(fvec4) ConstantComposite 46 46 46 46 + 60: 7(fvec4) ConstantComposite 47 47 47 47 + 65: TypePointer Function 14(int) + 72: TypePointer Function 8(PS_OUTPUT) + 74: TypePointer Function 7(fvec4) + 79: TypePointer Output 7(fvec4) +80(@entryPointOutput.Color): 79(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 81:8(PS_OUTPUT) FunctionCall 10(@main() + 82: 7(fvec4) CompositeExtract 81 0 + Store 80(@entryPointOutput.Color) 82 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 66(l_int): 65(ptr) Variable Function + 73(psout): 72(ptr) Variable Function + 21: 20(ptr) AccessChain 18 19 + 22: 14(int) Load 21 + 23: 6(float) ConvertSToF 22 + 26: 25(ptr) AccessChain 18 24 + 27: 6(float) Load 26 + 28: 6(float) FMod 23 27 + 31: 30(ptr) AccessChain 18 29 + 32: 15(ivec4) Load 31 + 33: 7(fvec4) ConvertSToF 32 + 36: 35(ptr) AccessChain 18 34 + 37: 7(fvec4) Load 36 + 38: 7(fvec4) FMod 33 37 + 41: 40(ptr) AccessChain 18 39 + 42: 12(int) Load 41 + 45: 43(bool) INotEqual 42 44 + 48: 6(float) Select 45 47 46 + 49: 25(ptr) AccessChain 18 24 + 50: 6(float) Load 49 + 51: 6(float) FMod 48 50 + 54: 53(ptr) AccessChain 18 52 + 55: 13(ivec4) Load 54 + 58: 56(bvec4) INotEqual 55 57 + 61: 7(fvec4) Select 58 60 59 + 62: 35(ptr) AccessChain 18 34 + 63: 7(fvec4) Load 62 + 64: 7(fvec4) FMod 61 63 + Store 66(l_int) 52 + 67: 25(ptr) AccessChain 18 24 + 68: 6(float) Load 67 + 69: 14(int) ConvertFToS 68 + 70: 14(int) Load 66(l_int) + 71: 14(int) SMod 70 69 + Store 66(l_int) 71 + 75: 74(ptr) AccessChain 73(psout) 39 + Store 75 59 + 76:8(PS_OUTPUT) Load 73(psout) + ReturnValue 76 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.promote.vec1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.promote.vec1.frag.out new file mode 100644 index 0000000000..b92d740904 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promote.vec1.frag.out @@ -0,0 +1,132 @@ +hlsl.promote.vec1.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 'f1a' ( temp float) +0:7 Construct float ( temp float) +0:7 'f1b' ( temp 1-component vector of float) +0:8 move second child to first child ( temp 1-component vector of float) +0:8 'f1b' ( temp 1-component vector of float) +0:8 Construct float ( temp 1-component vector of float) +0:8 'f1a' ( temp float) +0:11 step ( temp 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' ( temp 3-component vector of float) +0:13 sine ( temp float) +0:13 Construct float ( in float) +0:13 'f1b' ( temp 1-component vector of float) +0:15 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp float) +0:7 'f1a' ( temp float) +0:7 Construct float ( temp float) +0:7 'f1b' ( temp 1-component vector of float) +0:8 move second child to first child ( temp 1-component vector of float) +0:8 'f1b' ( temp 1-component vector of float) +0:8 Construct float ( temp 1-component vector of float) +0:8 'f1a' ( temp float) +0:11 step ( temp 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' ( temp 3-component vector of float) +0:13 sine ( temp float) +0:13 Construct float ( in float) +0:13 'f1b' ( temp 1-component vector of float) +0:15 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 29 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "f1a" + Name 13 "f1b" + Name 20 "f3" + Name 29 "@entryPointOutput" + Decorate 29(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 6(float) + 16: TypeVector 6(float) 3 + 17: 6(float) Constant 0 + 18: 16(fvec3) ConstantComposite 17 17 17 + 19: TypePointer Function 16(fvec3) + 25: 7(fvec4) ConstantComposite 17 17 17 17 + 28: TypePointer Output 7(fvec4) +29(@entryPointOutput): 28(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 30: 7(fvec4) FunctionCall 9(@main() + Store 29(@entryPointOutput) 30 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(f1a): 11(ptr) Variable Function + 13(f1b): 11(ptr) Variable Function + 20(f3): 19(ptr) Variable Function + 14: 6(float) Load 13(f1b) + Store 12(f1a) 14 + 15: 6(float) Load 12(f1a) + Store 13(f1b) 15 + 21: 16(fvec3) Load 20(f3) + 22: 16(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 18 21 + 23: 6(float) Load 13(f1b) + 24: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 23 + ReturnValue 25 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.promotions.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.promotions.frag.out new file mode 100644 index 0000000000..9c08948421 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.promotions.frag.out @@ -0,0 +1,2381 @@ +hlsl.promotions.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:19 Function Definition: Fn_F3(vf3; ( temp void) +0:19 Function Parameters: +0:19 'x' ( in 3-component vector of float) +0:20 Function Definition: Fn_I3(vi3; ( temp void) +0:20 Function Parameters: +0:20 'x' ( in 3-component vector of int) +0:21 Function Definition: Fn_U3(vu3; ( temp void) +0:21 Function Parameters: +0:21 'x' ( in 3-component vector of uint) +0:22 Function Definition: Fn_B3(vb3; ( temp void) +0:22 Function Parameters: +0:22 'x' ( in 3-component vector of bool) +0:23 Function Definition: Fn_D3(vd3; ( temp void) +0:23 Function Parameters: +0:23 'x' ( in 3-component vector of double) +0:26 Function Definition: Fn_R_F3I(vf3; ( temp 3-component vector of float) +0:26 Function Parameters: +0:26 'p' ( out 3-component vector of float) +0:? Sequence +0:26 move second child to first child ( temp 3-component vector of float) +0:26 'p' ( out 3-component vector of float) +0:26 Convert int to float ( temp 3-component vector of float) +0:26 i3: direct index for structure ( uniform 3-component vector of int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:26 Branch: Return with expression +0:26 Convert int to float ( temp 3-component vector of float) +0:26 i3: direct index for structure ( uniform 3-component vector of int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; ( temp 3-component vector of float) +0:27 Function Parameters: +0:27 'p' ( out 3-component vector of float) +0:? Sequence +0:27 move second child to first child ( temp 3-component vector of float) +0:27 'p' ( out 3-component vector of float) +0:27 Convert uint to float ( temp 3-component vector of float) +0:27 u3: direct index for structure ( uniform 3-component vector of uint) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:27 Branch: Return with expression +0:27 Convert uint to float ( temp 3-component vector of float) +0:27 u3: direct index for structure ( uniform 3-component vector of uint) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; ( temp 3-component vector of float) +0:28 Function Parameters: +0:28 'p' ( out 3-component vector of float) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 'p' ( out 3-component vector of float) +0:28 Convert bool to float ( temp 3-component vector of float) +0:28 b3: direct index for structure ( uniform 3-component vector of bool) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:28 Branch: Return with expression +0:28 Convert bool to float ( temp 3-component vector of float) +0:28 b3: direct index for structure ( uniform 3-component vector of bool) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; ( temp 3-component vector of float) +0:29 Function Parameters: +0:29 'p' ( out 3-component vector of float) +0:? Sequence +0:29 move second child to first child ( temp 3-component vector of float) +0:29 'p' ( out 3-component vector of float) +0:29 Convert double to float ( temp 3-component vector of float) +0:29 d3: direct index for structure ( uniform 3-component vector of double) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:29 Branch: Return with expression +0:29 Convert double to float ( temp 3-component vector of float) +0:29 d3: direct index for structure ( uniform 3-component vector of double) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; ( temp 3-component vector of int) +0:31 Function Parameters: +0:31 'p' ( out 3-component vector of int) +0:? Sequence +0:31 move second child to first child ( temp 3-component vector of int) +0:31 'p' ( out 3-component vector of int) +0:31 Convert uint to int ( temp 3-component vector of int) +0:31 u3: direct index for structure ( uniform 3-component vector of uint) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:31 Branch: Return with expression +0:31 Convert uint to int ( temp 3-component vector of int) +0:31 u3: direct index for structure ( uniform 3-component vector of uint) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; ( temp 3-component vector of int) +0:32 Function Parameters: +0:32 'p' ( out 3-component vector of int) +0:? Sequence +0:32 move second child to first child ( temp 3-component vector of int) +0:32 'p' ( out 3-component vector of int) +0:32 Convert bool to int ( temp 3-component vector of int) +0:32 b3: direct index for structure ( uniform 3-component vector of bool) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:32 Branch: Return with expression +0:32 Convert bool to int ( temp 3-component vector of int) +0:32 b3: direct index for structure ( uniform 3-component vector of bool) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; ( temp 3-component vector of int) +0:33 Function Parameters: +0:33 'p' ( out 3-component vector of int) +0:? Sequence +0:33 move second child to first child ( temp 3-component vector of int) +0:33 'p' ( out 3-component vector of int) +0:33 Convert float to int ( temp 3-component vector of int) +0:33 f3: direct index for structure ( uniform 3-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:33 Branch: Return with expression +0:33 Convert float to int ( temp 3-component vector of int) +0:33 f3: direct index for structure ( uniform 3-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; ( temp 3-component vector of int) +0:34 Function Parameters: +0:34 'p' ( out 3-component vector of int) +0:? Sequence +0:34 move second child to first child ( temp 3-component vector of int) +0:34 'p' ( out 3-component vector of int) +0:34 Convert double to int ( temp 3-component vector of int) +0:34 d3: direct index for structure ( uniform 3-component vector of double) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:34 Branch: Return with expression +0:34 Convert double to int ( temp 3-component vector of int) +0:34 d3: direct index for structure ( uniform 3-component vector of double) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; ( temp 3-component vector of uint) +0:36 Function Parameters: +0:36 'p' ( out 3-component vector of uint) +0:? Sequence +0:36 move second child to first child ( temp 3-component vector of uint) +0:36 'p' ( out 3-component vector of uint) +0:36 Convert int to uint ( temp 3-component vector of uint) +0:36 i3: direct index for structure ( uniform 3-component vector of int) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:36 Branch: Return with expression +0:36 Convert int to uint ( temp 3-component vector of uint) +0:36 i3: direct index for structure ( uniform 3-component vector of int) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; ( temp 3-component vector of uint) +0:37 Function Parameters: +0:37 'p' ( out 3-component vector of uint) +0:? Sequence +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 'p' ( out 3-component vector of uint) +0:37 Convert float to uint ( temp 3-component vector of uint) +0:37 f3: direct index for structure ( uniform 3-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:37 Branch: Return with expression +0:37 Convert float to uint ( temp 3-component vector of uint) +0:37 f3: direct index for structure ( uniform 3-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; ( temp 3-component vector of uint) +0:38 Function Parameters: +0:38 'p' ( out 3-component vector of uint) +0:? Sequence +0:38 move second child to first child ( temp 3-component vector of uint) +0:38 'p' ( out 3-component vector of uint) +0:38 Convert bool to uint ( temp 3-component vector of uint) +0:38 b3: direct index for structure ( uniform 3-component vector of bool) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:38 Branch: Return with expression +0:38 Convert bool to uint ( temp 3-component vector of uint) +0:38 b3: direct index for structure ( uniform 3-component vector of bool) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; ( temp 3-component vector of uint) +0:39 Function Parameters: +0:39 'p' ( out 3-component vector of uint) +0:? Sequence +0:39 move second child to first child ( temp 3-component vector of uint) +0:39 'p' ( out 3-component vector of uint) +0:39 Convert double to uint ( temp 3-component vector of uint) +0:39 d3: direct index for structure ( uniform 3-component vector of double) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:39 Branch: Return with expression +0:39 Convert double to uint ( temp 3-component vector of uint) +0:39 d3: direct index for structure ( uniform 3-component vector of double) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; ( temp 3-component vector of bool) +0:41 Function Parameters: +0:41 'p' ( out 3-component vector of bool) +0:? Sequence +0:41 move second child to first child ( temp 3-component vector of bool) +0:41 'p' ( out 3-component vector of bool) +0:41 Convert int to bool ( temp 3-component vector of bool) +0:41 i3: direct index for structure ( uniform 3-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:41 Branch: Return with expression +0:41 Convert int to bool ( temp 3-component vector of bool) +0:41 i3: direct index for structure ( uniform 3-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; ( temp 3-component vector of bool) +0:42 Function Parameters: +0:42 'p' ( out 3-component vector of bool) +0:? Sequence +0:42 move second child to first child ( temp 3-component vector of bool) +0:42 'p' ( out 3-component vector of bool) +0:42 Convert uint to bool ( temp 3-component vector of bool) +0:42 u3: direct index for structure ( uniform 3-component vector of uint) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:42 Branch: Return with expression +0:42 Convert uint to bool ( temp 3-component vector of bool) +0:42 u3: direct index for structure ( uniform 3-component vector of uint) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; ( temp 3-component vector of bool) +0:43 Function Parameters: +0:43 'p' ( out 3-component vector of bool) +0:? Sequence +0:43 move second child to first child ( temp 3-component vector of bool) +0:43 'p' ( out 3-component vector of bool) +0:43 Convert float to bool ( temp 3-component vector of bool) +0:43 f3: direct index for structure ( uniform 3-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:43 Branch: Return with expression +0:43 Convert float to bool ( temp 3-component vector of bool) +0:43 f3: direct index for structure ( uniform 3-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; ( temp 3-component vector of bool) +0:44 Function Parameters: +0:44 'p' ( out 3-component vector of bool) +0:? Sequence +0:44 move second child to first child ( temp 3-component vector of bool) +0:44 'p' ( out 3-component vector of bool) +0:44 Convert double to bool ( temp 3-component vector of bool) +0:44 d3: direct index for structure ( uniform 3-component vector of double) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:44 Branch: Return with expression +0:44 Convert double to bool ( temp 3-component vector of bool) +0:44 d3: direct index for structure ( uniform 3-component vector of double) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; ( temp 3-component vector of double) +0:46 Function Parameters: +0:46 'p' ( out 3-component vector of double) +0:? Sequence +0:46 move second child to first child ( temp 3-component vector of double) +0:46 'p' ( out 3-component vector of double) +0:46 Convert int to double ( temp 3-component vector of double) +0:46 i3: direct index for structure ( uniform 3-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:46 Branch: Return with expression +0:46 Convert int to double ( temp 3-component vector of double) +0:46 i3: direct index for structure ( uniform 3-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; ( temp 3-component vector of double) +0:47 Function Parameters: +0:47 'p' ( out 3-component vector of double) +0:? Sequence +0:47 move second child to first child ( temp 3-component vector of double) +0:47 'p' ( out 3-component vector of double) +0:47 Convert uint to double ( temp 3-component vector of double) +0:47 u3: direct index for structure ( uniform 3-component vector of uint) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:47 Branch: Return with expression +0:47 Convert uint to double ( temp 3-component vector of double) +0:47 u3: direct index for structure ( uniform 3-component vector of uint) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; ( temp 3-component vector of double) +0:48 Function Parameters: +0:48 'p' ( out 3-component vector of double) +0:? Sequence +0:48 move second child to first child ( temp 3-component vector of double) +0:48 'p' ( out 3-component vector of double) +0:48 Convert bool to double ( temp 3-component vector of double) +0:48 b3: direct index for structure ( uniform 3-component vector of bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:48 Branch: Return with expression +0:48 Convert bool to double ( temp 3-component vector of double) +0:48 b3: direct index for structure ( uniform 3-component vector of bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; ( temp 3-component vector of double) +0:49 Function Parameters: +0:49 'p' ( out 3-component vector of double) +0:? Sequence +0:49 move second child to first child ( temp 3-component vector of double) +0:49 'p' ( out 3-component vector of double) +0:49 Convert float to double ( temp 3-component vector of double) +0:49 f3: direct index for structure ( uniform 3-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:49 Branch: Return with expression +0:49 Convert float to double ( temp 3-component vector of double) +0:49 f3: direct index for structure ( uniform 3-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:52 Function Parameters: +0:? Sequence +0:54 Sequence +0:54 move second child to first child ( temp 3-component vector of float) +0:54 'r00' ( temp 3-component vector of float) +0:54 Convert int to float ( temp 3-component vector of float) +0:54 i3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:54 Constant: +0:54 0 (const uint) +0:55 Sequence +0:55 move second child to first child ( temp 3-component vector of float) +0:55 'r01' ( temp 3-component vector of float) +0:55 Convert bool to float ( temp 3-component vector of float) +0:55 b3: direct index for structure ( uniform 3-component vector of bool) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:55 Constant: +0:55 1 (const uint) +0:56 Sequence +0:56 move second child to first child ( temp 3-component vector of float) +0:56 'r02' ( temp 3-component vector of float) +0:56 Convert uint to float ( temp 3-component vector of float) +0:56 u3: direct index for structure ( uniform 3-component vector of uint) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:56 Constant: +0:56 3 (const uint) +0:57 Sequence +0:57 move second child to first child ( temp 3-component vector of float) +0:57 'r03' ( temp 3-component vector of float) +0:57 Convert double to float ( temp 3-component vector of float) +0:57 d3: direct index for structure ( uniform 3-component vector of double) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:57 Constant: +0:57 4 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp 3-component vector of int) +0:59 'r10' ( temp 3-component vector of int) +0:59 Convert bool to int ( temp 3-component vector of int) +0:59 b3: direct index for structure ( uniform 3-component vector of bool) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:59 Constant: +0:59 1 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp 3-component vector of int) +0:60 'r11' ( temp 3-component vector of int) +0:60 Convert uint to int ( temp 3-component vector of int) +0:60 u3: direct index for structure ( uniform 3-component vector of uint) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:60 Constant: +0:60 3 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp 3-component vector of int) +0:61 'r12' ( temp 3-component vector of int) +0:61 Convert float to int ( temp 3-component vector of int) +0:61 f3: direct index for structure ( uniform 3-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:61 Constant: +0:61 2 (const uint) +0:62 Sequence +0:62 move second child to first child ( temp 3-component vector of int) +0:62 'r13' ( temp 3-component vector of int) +0:62 Convert double to int ( temp 3-component vector of int) +0:62 d3: direct index for structure ( uniform 3-component vector of double) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:62 Constant: +0:62 4 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp 3-component vector of uint) +0:64 'r20' ( temp 3-component vector of uint) +0:64 Convert bool to uint ( temp 3-component vector of uint) +0:64 b3: direct index for structure ( uniform 3-component vector of bool) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp 3-component vector of uint) +0:65 'r21' ( temp 3-component vector of uint) +0:65 Convert int to uint ( temp 3-component vector of uint) +0:65 i3: direct index for structure ( uniform 3-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:65 Constant: +0:65 0 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp 3-component vector of uint) +0:66 'r22' ( temp 3-component vector of uint) +0:66 Convert float to uint ( temp 3-component vector of uint) +0:66 f3: direct index for structure ( uniform 3-component vector of float) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:66 Constant: +0:66 2 (const uint) +0:67 Sequence +0:67 move second child to first child ( temp 3-component vector of uint) +0:67 'r23' ( temp 3-component vector of uint) +0:67 Convert double to uint ( temp 3-component vector of uint) +0:67 d3: direct index for structure ( uniform 3-component vector of double) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:67 Constant: +0:67 4 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp 3-component vector of bool) +0:69 'r30' ( temp 3-component vector of bool) +0:69 Convert int to bool ( temp 3-component vector of bool) +0:69 i3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:69 Constant: +0:69 0 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp 3-component vector of bool) +0:70 'r31' ( temp 3-component vector of bool) +0:70 Convert uint to bool ( temp 3-component vector of bool) +0:70 u3: direct index for structure ( uniform 3-component vector of uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:70 Constant: +0:70 3 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp 3-component vector of bool) +0:71 'r32' ( temp 3-component vector of bool) +0:71 Convert float to bool ( temp 3-component vector of bool) +0:71 f3: direct index for structure ( uniform 3-component vector of float) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:71 Constant: +0:71 2 (const uint) +0:72 Sequence +0:72 move second child to first child ( temp 3-component vector of bool) +0:72 'r33' ( temp 3-component vector of bool) +0:72 Convert double to bool ( temp 3-component vector of bool) +0:72 d3: direct index for structure ( uniform 3-component vector of double) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:72 Constant: +0:72 4 (const uint) +0:74 Sequence +0:74 move second child to first child ( temp 3-component vector of double) +0:74 'r40' ( temp 3-component vector of double) +0:74 Convert int to double ( temp 3-component vector of double) +0:74 i3: direct index for structure ( uniform 3-component vector of int) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:74 Constant: +0:74 0 (const uint) +0:75 Sequence +0:75 move second child to first child ( temp 3-component vector of double) +0:75 'r41' ( temp 3-component vector of double) +0:75 Convert uint to double ( temp 3-component vector of double) +0:75 u3: direct index for structure ( uniform 3-component vector of uint) +0:75 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:75 Constant: +0:75 3 (const uint) +0:76 Sequence +0:76 move second child to first child ( temp 3-component vector of double) +0:76 'r42' ( temp 3-component vector of double) +0:76 Convert float to double ( temp 3-component vector of double) +0:76 f3: direct index for structure ( uniform 3-component vector of float) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:76 Constant: +0:76 2 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp 3-component vector of double) +0:77 'r43' ( temp 3-component vector of double) +0:77 Convert bool to double ( temp 3-component vector of double) +0:77 b3: direct index for structure ( uniform 3-component vector of bool) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:77 Constant: +0:77 1 (const uint) +0:80 multiply second child into first child ( temp 3-component vector of float) +0:80 'r00' ( temp 3-component vector of float) +0:80 Convert int to float ( temp 3-component vector of float) +0:80 i3: direct index for structure ( uniform 3-component vector of int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:80 Constant: +0:80 0 (const uint) +0:81 multiply second child into first child ( temp 3-component vector of float) +0:81 'r01' ( temp 3-component vector of float) +0:81 Convert bool to float ( temp 3-component vector of float) +0:81 b3: direct index for structure ( uniform 3-component vector of bool) +0:81 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:81 Constant: +0:81 1 (const uint) +0:82 multiply second child into first child ( temp 3-component vector of float) +0:82 'r02' ( temp 3-component vector of float) +0:82 Convert uint to float ( temp 3-component vector of float) +0:82 u3: direct index for structure ( uniform 3-component vector of uint) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:82 Constant: +0:82 3 (const uint) +0:83 multiply second child into first child ( temp 3-component vector of float) +0:83 'r03' ( temp 3-component vector of float) +0:83 Convert double to float ( temp 3-component vector of float) +0:83 d3: direct index for structure ( uniform 3-component vector of double) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:83 Constant: +0:83 4 (const uint) +0:85 multiply second child into first child ( temp 3-component vector of int) +0:85 'r10' ( temp 3-component vector of int) +0:85 Convert bool to int ( temp 3-component vector of int) +0:85 b3: direct index for structure ( uniform 3-component vector of bool) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:85 Constant: +0:85 1 (const uint) +0:86 multiply second child into first child ( temp 3-component vector of int) +0:86 'r11' ( temp 3-component vector of int) +0:86 Convert uint to int ( temp 3-component vector of int) +0:86 u3: direct index for structure ( uniform 3-component vector of uint) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:86 Constant: +0:86 3 (const uint) +0:87 multiply second child into first child ( temp 3-component vector of int) +0:87 'r12' ( temp 3-component vector of int) +0:87 Convert float to int ( temp 3-component vector of int) +0:87 f3: direct index for structure ( uniform 3-component vector of float) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:87 Constant: +0:87 2 (const uint) +0:88 multiply second child into first child ( temp 3-component vector of int) +0:88 'r13' ( temp 3-component vector of int) +0:88 Convert double to int ( temp 3-component vector of int) +0:88 d3: direct index for structure ( uniform 3-component vector of double) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:88 Constant: +0:88 4 (const uint) +0:90 multiply second child into first child ( temp 3-component vector of uint) +0:90 'r20' ( temp 3-component vector of uint) +0:90 Convert bool to uint ( temp 3-component vector of uint) +0:90 b3: direct index for structure ( uniform 3-component vector of bool) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:90 Constant: +0:90 1 (const uint) +0:91 multiply second child into first child ( temp 3-component vector of uint) +0:91 'r21' ( temp 3-component vector of uint) +0:91 Convert int to uint ( temp 3-component vector of uint) +0:91 i3: direct index for structure ( uniform 3-component vector of int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:91 Constant: +0:91 0 (const uint) +0:92 multiply second child into first child ( temp 3-component vector of uint) +0:92 'r22' ( temp 3-component vector of uint) +0:92 Convert float to uint ( temp 3-component vector of uint) +0:92 f3: direct index for structure ( uniform 3-component vector of float) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:92 Constant: +0:92 2 (const uint) +0:93 multiply second child into first child ( temp 3-component vector of uint) +0:93 'r23' ( temp 3-component vector of uint) +0:93 Convert double to uint ( temp 3-component vector of uint) +0:93 d3: direct index for structure ( uniform 3-component vector of double) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:93 Constant: +0:93 4 (const uint) +0:97 multiply second child into first child ( temp 3-component vector of double) +0:97 'r40' ( temp 3-component vector of double) +0:97 Convert int to double ( temp 3-component vector of double) +0:97 i3: direct index for structure ( uniform 3-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:97 Constant: +0:97 0 (const uint) +0:98 multiply second child into first child ( temp 3-component vector of double) +0:98 'r41' ( temp 3-component vector of double) +0:98 Convert uint to double ( temp 3-component vector of double) +0:98 u3: direct index for structure ( uniform 3-component vector of uint) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:98 Constant: +0:98 3 (const uint) +0:99 multiply second child into first child ( temp 3-component vector of double) +0:99 'r42' ( temp 3-component vector of double) +0:99 Convert float to double ( temp 3-component vector of double) +0:99 f3: direct index for structure ( uniform 3-component vector of float) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:99 Constant: +0:99 2 (const uint) +0:100 multiply second child into first child ( temp 3-component vector of double) +0:100 'r43' ( temp 3-component vector of double) +0:100 Convert bool to double ( temp 3-component vector of double) +0:100 b3: direct index for structure ( uniform 3-component vector of bool) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:100 Constant: +0:100 1 (const uint) +0:103 vector scale second child into first child ( temp 3-component vector of float) +0:103 'r00' ( temp 3-component vector of float) +0:103 Convert int to float ( temp float) +0:103 is: direct index for structure ( uniform int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:103 Constant: +0:103 5 (const uint) +0:104 vector scale second child into first child ( temp 3-component vector of float) +0:104 'r01' ( temp 3-component vector of float) +0:104 Convert bool to float ( temp float) +0:104 bs: direct index for structure ( uniform bool) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:104 Constant: +0:104 6 (const uint) +0:105 vector scale second child into first child ( temp 3-component vector of float) +0:105 'r02' ( temp 3-component vector of float) +0:105 Convert uint to float ( temp float) +0:105 us: direct index for structure ( uniform uint) +0:105 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:105 Constant: +0:105 8 (const uint) +0:106 vector scale second child into first child ( temp 3-component vector of float) +0:106 'r03' ( temp 3-component vector of float) +0:106 Convert double to float ( temp float) +0:106 ds: direct index for structure ( uniform double) +0:106 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:106 Constant: +0:106 9 (const uint) +0:108 vector scale second child into first child ( temp 3-component vector of int) +0:108 'r10' ( temp 3-component vector of int) +0:108 Convert bool to int ( temp int) +0:108 bs: direct index for structure ( uniform bool) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:108 Constant: +0:108 6 (const uint) +0:109 vector scale second child into first child ( temp 3-component vector of int) +0:109 'r11' ( temp 3-component vector of int) +0:109 Convert uint to int ( temp int) +0:109 us: direct index for structure ( uniform uint) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:109 Constant: +0:109 8 (const uint) +0:110 vector scale second child into first child ( temp 3-component vector of int) +0:110 'r12' ( temp 3-component vector of int) +0:110 Convert float to int ( temp int) +0:110 fs: direct index for structure ( uniform float) +0:110 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:110 Constant: +0:110 7 (const uint) +0:111 vector scale second child into first child ( temp 3-component vector of int) +0:111 'r13' ( temp 3-component vector of int) +0:111 Convert double to int ( temp int) +0:111 ds: direct index for structure ( uniform double) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:111 Constant: +0:111 9 (const uint) +0:113 vector scale second child into first child ( temp 3-component vector of uint) +0:113 'r20' ( temp 3-component vector of uint) +0:113 Convert bool to uint ( temp uint) +0:113 bs: direct index for structure ( uniform bool) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:113 Constant: +0:113 6 (const uint) +0:114 vector scale second child into first child ( temp 3-component vector of uint) +0:114 'r21' ( temp 3-component vector of uint) +0:114 Convert int to uint ( temp uint) +0:114 is: direct index for structure ( uniform int) +0:114 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:114 Constant: +0:114 5 (const uint) +0:115 vector scale second child into first child ( temp 3-component vector of uint) +0:115 'r22' ( temp 3-component vector of uint) +0:115 Convert float to uint ( temp uint) +0:115 fs: direct index for structure ( uniform float) +0:115 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:115 Constant: +0:115 7 (const uint) +0:116 vector scale second child into first child ( temp 3-component vector of uint) +0:116 'r23' ( temp 3-component vector of uint) +0:116 Convert double to uint ( temp uint) +0:116 ds: direct index for structure ( uniform double) +0:116 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:116 Constant: +0:116 9 (const uint) +0:120 vector scale second child into first child ( temp 3-component vector of double) +0:120 'r40' ( temp 3-component vector of double) +0:120 Convert int to double ( temp double) +0:120 is: direct index for structure ( uniform int) +0:120 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:120 Constant: +0:120 5 (const uint) +0:121 vector scale second child into first child ( temp 3-component vector of double) +0:121 'r41' ( temp 3-component vector of double) +0:121 Convert uint to double ( temp double) +0:121 us: direct index for structure ( uniform uint) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:121 Constant: +0:121 8 (const uint) +0:122 vector scale second child into first child ( temp 3-component vector of double) +0:122 'r42' ( temp 3-component vector of double) +0:122 Convert float to double ( temp double) +0:122 fs: direct index for structure ( uniform float) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:122 Constant: +0:122 7 (const uint) +0:123 vector scale second child into first child ( temp 3-component vector of double) +0:123 'r43' ( temp 3-component vector of double) +0:123 Convert bool to double ( temp double) +0:123 bs: direct index for structure ( uniform bool) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:123 Constant: +0:123 6 (const uint) +0:193 Sequence +0:193 move second child to first child ( temp int) +0:193 'c1' ( temp int) +0:193 Constant: +0:193 3 (const int) +0:194 Sequence +0:194 move second child to first child ( temp int) +0:194 'c2' ( temp int) +0:194 Constant: +0:194 3 (const int) +0:196 Sequence +0:196 move second child to first child ( temp 4-component vector of float) +0:196 'outval' ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:196 Constant: +0:196 3.600000 +0:196 Constant: +0:196 3.600000 +0:196 Convert int to float ( temp float) +0:196 'c1' ( temp int) +0:196 Convert int to float ( temp float) +0:196 'c2' ( temp int) +0:199 move second child to first child ( temp 4-component vector of float) +0:199 Color: direct index for structure ( temp 4-component vector of float) +0:199 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:199 Constant: +0:199 0 (const int) +0:199 'outval' ( temp 4-component vector of float) +0:200 Branch: Return with expression +0:200 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:52 Function Definition: main( ( temp void) +0:52 Function Parameters: +0:? Sequence +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:52 Color: direct index for structure ( temp 4-component vector of float) +0:52 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:52 Constant: +0:52 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:19 Function Definition: Fn_F3(vf3; ( temp void) +0:19 Function Parameters: +0:19 'x' ( in 3-component vector of float) +0:20 Function Definition: Fn_I3(vi3; ( temp void) +0:20 Function Parameters: +0:20 'x' ( in 3-component vector of int) +0:21 Function Definition: Fn_U3(vu3; ( temp void) +0:21 Function Parameters: +0:21 'x' ( in 3-component vector of uint) +0:22 Function Definition: Fn_B3(vb3; ( temp void) +0:22 Function Parameters: +0:22 'x' ( in 3-component vector of bool) +0:23 Function Definition: Fn_D3(vd3; ( temp void) +0:23 Function Parameters: +0:23 'x' ( in 3-component vector of double) +0:26 Function Definition: Fn_R_F3I(vf3; ( temp 3-component vector of float) +0:26 Function Parameters: +0:26 'p' ( out 3-component vector of float) +0:? Sequence +0:26 move second child to first child ( temp 3-component vector of float) +0:26 'p' ( out 3-component vector of float) +0:26 Convert int to float ( temp 3-component vector of float) +0:26 i3: direct index for structure ( uniform 3-component vector of int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:26 Branch: Return with expression +0:26 Convert int to float ( temp 3-component vector of float) +0:26 i3: direct index for structure ( uniform 3-component vector of int) +0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; ( temp 3-component vector of float) +0:27 Function Parameters: +0:27 'p' ( out 3-component vector of float) +0:? Sequence +0:27 move second child to first child ( temp 3-component vector of float) +0:27 'p' ( out 3-component vector of float) +0:27 Convert uint to float ( temp 3-component vector of float) +0:27 u3: direct index for structure ( uniform 3-component vector of uint) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:27 Branch: Return with expression +0:27 Convert uint to float ( temp 3-component vector of float) +0:27 u3: direct index for structure ( uniform 3-component vector of uint) +0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; ( temp 3-component vector of float) +0:28 Function Parameters: +0:28 'p' ( out 3-component vector of float) +0:? Sequence +0:28 move second child to first child ( temp 3-component vector of float) +0:28 'p' ( out 3-component vector of float) +0:28 Convert bool to float ( temp 3-component vector of float) +0:28 b3: direct index for structure ( uniform 3-component vector of bool) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:28 Branch: Return with expression +0:28 Convert bool to float ( temp 3-component vector of float) +0:28 b3: direct index for structure ( uniform 3-component vector of bool) +0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; ( temp 3-component vector of float) +0:29 Function Parameters: +0:29 'p' ( out 3-component vector of float) +0:? Sequence +0:29 move second child to first child ( temp 3-component vector of float) +0:29 'p' ( out 3-component vector of float) +0:29 Convert double to float ( temp 3-component vector of float) +0:29 d3: direct index for structure ( uniform 3-component vector of double) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:29 Branch: Return with expression +0:29 Convert double to float ( temp 3-component vector of float) +0:29 d3: direct index for structure ( uniform 3-component vector of double) +0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; ( temp 3-component vector of int) +0:31 Function Parameters: +0:31 'p' ( out 3-component vector of int) +0:? Sequence +0:31 move second child to first child ( temp 3-component vector of int) +0:31 'p' ( out 3-component vector of int) +0:31 Convert uint to int ( temp 3-component vector of int) +0:31 u3: direct index for structure ( uniform 3-component vector of uint) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:31 Branch: Return with expression +0:31 Convert uint to int ( temp 3-component vector of int) +0:31 u3: direct index for structure ( uniform 3-component vector of uint) +0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; ( temp 3-component vector of int) +0:32 Function Parameters: +0:32 'p' ( out 3-component vector of int) +0:? Sequence +0:32 move second child to first child ( temp 3-component vector of int) +0:32 'p' ( out 3-component vector of int) +0:32 Convert bool to int ( temp 3-component vector of int) +0:32 b3: direct index for structure ( uniform 3-component vector of bool) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:32 Branch: Return with expression +0:32 Convert bool to int ( temp 3-component vector of int) +0:32 b3: direct index for structure ( uniform 3-component vector of bool) +0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; ( temp 3-component vector of int) +0:33 Function Parameters: +0:33 'p' ( out 3-component vector of int) +0:? Sequence +0:33 move second child to first child ( temp 3-component vector of int) +0:33 'p' ( out 3-component vector of int) +0:33 Convert float to int ( temp 3-component vector of int) +0:33 f3: direct index for structure ( uniform 3-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:33 Branch: Return with expression +0:33 Convert float to int ( temp 3-component vector of int) +0:33 f3: direct index for structure ( uniform 3-component vector of float) +0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; ( temp 3-component vector of int) +0:34 Function Parameters: +0:34 'p' ( out 3-component vector of int) +0:? Sequence +0:34 move second child to first child ( temp 3-component vector of int) +0:34 'p' ( out 3-component vector of int) +0:34 Convert double to int ( temp 3-component vector of int) +0:34 d3: direct index for structure ( uniform 3-component vector of double) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:34 Branch: Return with expression +0:34 Convert double to int ( temp 3-component vector of int) +0:34 d3: direct index for structure ( uniform 3-component vector of double) +0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; ( temp 3-component vector of uint) +0:36 Function Parameters: +0:36 'p' ( out 3-component vector of uint) +0:? Sequence +0:36 move second child to first child ( temp 3-component vector of uint) +0:36 'p' ( out 3-component vector of uint) +0:36 Convert int to uint ( temp 3-component vector of uint) +0:36 i3: direct index for structure ( uniform 3-component vector of int) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:36 Branch: Return with expression +0:36 Convert int to uint ( temp 3-component vector of uint) +0:36 i3: direct index for structure ( uniform 3-component vector of int) +0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; ( temp 3-component vector of uint) +0:37 Function Parameters: +0:37 'p' ( out 3-component vector of uint) +0:? Sequence +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 'p' ( out 3-component vector of uint) +0:37 Convert float to uint ( temp 3-component vector of uint) +0:37 f3: direct index for structure ( uniform 3-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:37 Branch: Return with expression +0:37 Convert float to uint ( temp 3-component vector of uint) +0:37 f3: direct index for structure ( uniform 3-component vector of float) +0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; ( temp 3-component vector of uint) +0:38 Function Parameters: +0:38 'p' ( out 3-component vector of uint) +0:? Sequence +0:38 move second child to first child ( temp 3-component vector of uint) +0:38 'p' ( out 3-component vector of uint) +0:38 Convert bool to uint ( temp 3-component vector of uint) +0:38 b3: direct index for structure ( uniform 3-component vector of bool) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:38 Branch: Return with expression +0:38 Convert bool to uint ( temp 3-component vector of uint) +0:38 b3: direct index for structure ( uniform 3-component vector of bool) +0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; ( temp 3-component vector of uint) +0:39 Function Parameters: +0:39 'p' ( out 3-component vector of uint) +0:? Sequence +0:39 move second child to first child ( temp 3-component vector of uint) +0:39 'p' ( out 3-component vector of uint) +0:39 Convert double to uint ( temp 3-component vector of uint) +0:39 d3: direct index for structure ( uniform 3-component vector of double) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:39 Branch: Return with expression +0:39 Convert double to uint ( temp 3-component vector of uint) +0:39 d3: direct index for structure ( uniform 3-component vector of double) +0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; ( temp 3-component vector of bool) +0:41 Function Parameters: +0:41 'p' ( out 3-component vector of bool) +0:? Sequence +0:41 move second child to first child ( temp 3-component vector of bool) +0:41 'p' ( out 3-component vector of bool) +0:41 Convert int to bool ( temp 3-component vector of bool) +0:41 i3: direct index for structure ( uniform 3-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:41 Branch: Return with expression +0:41 Convert int to bool ( temp 3-component vector of bool) +0:41 i3: direct index for structure ( uniform 3-component vector of int) +0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; ( temp 3-component vector of bool) +0:42 Function Parameters: +0:42 'p' ( out 3-component vector of bool) +0:? Sequence +0:42 move second child to first child ( temp 3-component vector of bool) +0:42 'p' ( out 3-component vector of bool) +0:42 Convert uint to bool ( temp 3-component vector of bool) +0:42 u3: direct index for structure ( uniform 3-component vector of uint) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:42 Branch: Return with expression +0:42 Convert uint to bool ( temp 3-component vector of bool) +0:42 u3: direct index for structure ( uniform 3-component vector of uint) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; ( temp 3-component vector of bool) +0:43 Function Parameters: +0:43 'p' ( out 3-component vector of bool) +0:? Sequence +0:43 move second child to first child ( temp 3-component vector of bool) +0:43 'p' ( out 3-component vector of bool) +0:43 Convert float to bool ( temp 3-component vector of bool) +0:43 f3: direct index for structure ( uniform 3-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:43 Branch: Return with expression +0:43 Convert float to bool ( temp 3-component vector of bool) +0:43 f3: direct index for structure ( uniform 3-component vector of float) +0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; ( temp 3-component vector of bool) +0:44 Function Parameters: +0:44 'p' ( out 3-component vector of bool) +0:? Sequence +0:44 move second child to first child ( temp 3-component vector of bool) +0:44 'p' ( out 3-component vector of bool) +0:44 Convert double to bool ( temp 3-component vector of bool) +0:44 d3: direct index for structure ( uniform 3-component vector of double) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:44 Branch: Return with expression +0:44 Convert double to bool ( temp 3-component vector of bool) +0:44 d3: direct index for structure ( uniform 3-component vector of double) +0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; ( temp 3-component vector of double) +0:46 Function Parameters: +0:46 'p' ( out 3-component vector of double) +0:? Sequence +0:46 move second child to first child ( temp 3-component vector of double) +0:46 'p' ( out 3-component vector of double) +0:46 Convert int to double ( temp 3-component vector of double) +0:46 i3: direct index for structure ( uniform 3-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:46 Branch: Return with expression +0:46 Convert int to double ( temp 3-component vector of double) +0:46 i3: direct index for structure ( uniform 3-component vector of int) +0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; ( temp 3-component vector of double) +0:47 Function Parameters: +0:47 'p' ( out 3-component vector of double) +0:? Sequence +0:47 move second child to first child ( temp 3-component vector of double) +0:47 'p' ( out 3-component vector of double) +0:47 Convert uint to double ( temp 3-component vector of double) +0:47 u3: direct index for structure ( uniform 3-component vector of uint) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:47 Branch: Return with expression +0:47 Convert uint to double ( temp 3-component vector of double) +0:47 u3: direct index for structure ( uniform 3-component vector of uint) +0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; ( temp 3-component vector of double) +0:48 Function Parameters: +0:48 'p' ( out 3-component vector of double) +0:? Sequence +0:48 move second child to first child ( temp 3-component vector of double) +0:48 'p' ( out 3-component vector of double) +0:48 Convert bool to double ( temp 3-component vector of double) +0:48 b3: direct index for structure ( uniform 3-component vector of bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:48 Branch: Return with expression +0:48 Convert bool to double ( temp 3-component vector of double) +0:48 b3: direct index for structure ( uniform 3-component vector of bool) +0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; ( temp 3-component vector of double) +0:49 Function Parameters: +0:49 'p' ( out 3-component vector of double) +0:? Sequence +0:49 move second child to first child ( temp 3-component vector of double) +0:49 'p' ( out 3-component vector of double) +0:49 Convert float to double ( temp 3-component vector of double) +0:49 f3: direct index for structure ( uniform 3-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:49 Branch: Return with expression +0:49 Convert float to double ( temp 3-component vector of double) +0:49 f3: direct index for structure ( uniform 3-component vector of float) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:52 Function Parameters: +0:? Sequence +0:54 Sequence +0:54 move second child to first child ( temp 3-component vector of float) +0:54 'r00' ( temp 3-component vector of float) +0:54 Convert int to float ( temp 3-component vector of float) +0:54 i3: direct index for structure ( uniform 3-component vector of int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:54 Constant: +0:54 0 (const uint) +0:55 Sequence +0:55 move second child to first child ( temp 3-component vector of float) +0:55 'r01' ( temp 3-component vector of float) +0:55 Convert bool to float ( temp 3-component vector of float) +0:55 b3: direct index for structure ( uniform 3-component vector of bool) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:55 Constant: +0:55 1 (const uint) +0:56 Sequence +0:56 move second child to first child ( temp 3-component vector of float) +0:56 'r02' ( temp 3-component vector of float) +0:56 Convert uint to float ( temp 3-component vector of float) +0:56 u3: direct index for structure ( uniform 3-component vector of uint) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:56 Constant: +0:56 3 (const uint) +0:57 Sequence +0:57 move second child to first child ( temp 3-component vector of float) +0:57 'r03' ( temp 3-component vector of float) +0:57 Convert double to float ( temp 3-component vector of float) +0:57 d3: direct index for structure ( uniform 3-component vector of double) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:57 Constant: +0:57 4 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp 3-component vector of int) +0:59 'r10' ( temp 3-component vector of int) +0:59 Convert bool to int ( temp 3-component vector of int) +0:59 b3: direct index for structure ( uniform 3-component vector of bool) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:59 Constant: +0:59 1 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp 3-component vector of int) +0:60 'r11' ( temp 3-component vector of int) +0:60 Convert uint to int ( temp 3-component vector of int) +0:60 u3: direct index for structure ( uniform 3-component vector of uint) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:60 Constant: +0:60 3 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp 3-component vector of int) +0:61 'r12' ( temp 3-component vector of int) +0:61 Convert float to int ( temp 3-component vector of int) +0:61 f3: direct index for structure ( uniform 3-component vector of float) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:61 Constant: +0:61 2 (const uint) +0:62 Sequence +0:62 move second child to first child ( temp 3-component vector of int) +0:62 'r13' ( temp 3-component vector of int) +0:62 Convert double to int ( temp 3-component vector of int) +0:62 d3: direct index for structure ( uniform 3-component vector of double) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:62 Constant: +0:62 4 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp 3-component vector of uint) +0:64 'r20' ( temp 3-component vector of uint) +0:64 Convert bool to uint ( temp 3-component vector of uint) +0:64 b3: direct index for structure ( uniform 3-component vector of bool) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp 3-component vector of uint) +0:65 'r21' ( temp 3-component vector of uint) +0:65 Convert int to uint ( temp 3-component vector of uint) +0:65 i3: direct index for structure ( uniform 3-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:65 Constant: +0:65 0 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp 3-component vector of uint) +0:66 'r22' ( temp 3-component vector of uint) +0:66 Convert float to uint ( temp 3-component vector of uint) +0:66 f3: direct index for structure ( uniform 3-component vector of float) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:66 Constant: +0:66 2 (const uint) +0:67 Sequence +0:67 move second child to first child ( temp 3-component vector of uint) +0:67 'r23' ( temp 3-component vector of uint) +0:67 Convert double to uint ( temp 3-component vector of uint) +0:67 d3: direct index for structure ( uniform 3-component vector of double) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:67 Constant: +0:67 4 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp 3-component vector of bool) +0:69 'r30' ( temp 3-component vector of bool) +0:69 Convert int to bool ( temp 3-component vector of bool) +0:69 i3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:69 Constant: +0:69 0 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp 3-component vector of bool) +0:70 'r31' ( temp 3-component vector of bool) +0:70 Convert uint to bool ( temp 3-component vector of bool) +0:70 u3: direct index for structure ( uniform 3-component vector of uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:70 Constant: +0:70 3 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp 3-component vector of bool) +0:71 'r32' ( temp 3-component vector of bool) +0:71 Convert float to bool ( temp 3-component vector of bool) +0:71 f3: direct index for structure ( uniform 3-component vector of float) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:71 Constant: +0:71 2 (const uint) +0:72 Sequence +0:72 move second child to first child ( temp 3-component vector of bool) +0:72 'r33' ( temp 3-component vector of bool) +0:72 Convert double to bool ( temp 3-component vector of bool) +0:72 d3: direct index for structure ( uniform 3-component vector of double) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:72 Constant: +0:72 4 (const uint) +0:74 Sequence +0:74 move second child to first child ( temp 3-component vector of double) +0:74 'r40' ( temp 3-component vector of double) +0:74 Convert int to double ( temp 3-component vector of double) +0:74 i3: direct index for structure ( uniform 3-component vector of int) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:74 Constant: +0:74 0 (const uint) +0:75 Sequence +0:75 move second child to first child ( temp 3-component vector of double) +0:75 'r41' ( temp 3-component vector of double) +0:75 Convert uint to double ( temp 3-component vector of double) +0:75 u3: direct index for structure ( uniform 3-component vector of uint) +0:75 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:75 Constant: +0:75 3 (const uint) +0:76 Sequence +0:76 move second child to first child ( temp 3-component vector of double) +0:76 'r42' ( temp 3-component vector of double) +0:76 Convert float to double ( temp 3-component vector of double) +0:76 f3: direct index for structure ( uniform 3-component vector of float) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:76 Constant: +0:76 2 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp 3-component vector of double) +0:77 'r43' ( temp 3-component vector of double) +0:77 Convert bool to double ( temp 3-component vector of double) +0:77 b3: direct index for structure ( uniform 3-component vector of bool) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:77 Constant: +0:77 1 (const uint) +0:80 multiply second child into first child ( temp 3-component vector of float) +0:80 'r00' ( temp 3-component vector of float) +0:80 Convert int to float ( temp 3-component vector of float) +0:80 i3: direct index for structure ( uniform 3-component vector of int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:80 Constant: +0:80 0 (const uint) +0:81 multiply second child into first child ( temp 3-component vector of float) +0:81 'r01' ( temp 3-component vector of float) +0:81 Convert bool to float ( temp 3-component vector of float) +0:81 b3: direct index for structure ( uniform 3-component vector of bool) +0:81 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:81 Constant: +0:81 1 (const uint) +0:82 multiply second child into first child ( temp 3-component vector of float) +0:82 'r02' ( temp 3-component vector of float) +0:82 Convert uint to float ( temp 3-component vector of float) +0:82 u3: direct index for structure ( uniform 3-component vector of uint) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:82 Constant: +0:82 3 (const uint) +0:83 multiply second child into first child ( temp 3-component vector of float) +0:83 'r03' ( temp 3-component vector of float) +0:83 Convert double to float ( temp 3-component vector of float) +0:83 d3: direct index for structure ( uniform 3-component vector of double) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:83 Constant: +0:83 4 (const uint) +0:85 multiply second child into first child ( temp 3-component vector of int) +0:85 'r10' ( temp 3-component vector of int) +0:85 Convert bool to int ( temp 3-component vector of int) +0:85 b3: direct index for structure ( uniform 3-component vector of bool) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:85 Constant: +0:85 1 (const uint) +0:86 multiply second child into first child ( temp 3-component vector of int) +0:86 'r11' ( temp 3-component vector of int) +0:86 Convert uint to int ( temp 3-component vector of int) +0:86 u3: direct index for structure ( uniform 3-component vector of uint) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:86 Constant: +0:86 3 (const uint) +0:87 multiply second child into first child ( temp 3-component vector of int) +0:87 'r12' ( temp 3-component vector of int) +0:87 Convert float to int ( temp 3-component vector of int) +0:87 f3: direct index for structure ( uniform 3-component vector of float) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:87 Constant: +0:87 2 (const uint) +0:88 multiply second child into first child ( temp 3-component vector of int) +0:88 'r13' ( temp 3-component vector of int) +0:88 Convert double to int ( temp 3-component vector of int) +0:88 d3: direct index for structure ( uniform 3-component vector of double) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:88 Constant: +0:88 4 (const uint) +0:90 multiply second child into first child ( temp 3-component vector of uint) +0:90 'r20' ( temp 3-component vector of uint) +0:90 Convert bool to uint ( temp 3-component vector of uint) +0:90 b3: direct index for structure ( uniform 3-component vector of bool) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:90 Constant: +0:90 1 (const uint) +0:91 multiply second child into first child ( temp 3-component vector of uint) +0:91 'r21' ( temp 3-component vector of uint) +0:91 Convert int to uint ( temp 3-component vector of uint) +0:91 i3: direct index for structure ( uniform 3-component vector of int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:91 Constant: +0:91 0 (const uint) +0:92 multiply second child into first child ( temp 3-component vector of uint) +0:92 'r22' ( temp 3-component vector of uint) +0:92 Convert float to uint ( temp 3-component vector of uint) +0:92 f3: direct index for structure ( uniform 3-component vector of float) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:92 Constant: +0:92 2 (const uint) +0:93 multiply second child into first child ( temp 3-component vector of uint) +0:93 'r23' ( temp 3-component vector of uint) +0:93 Convert double to uint ( temp 3-component vector of uint) +0:93 d3: direct index for structure ( uniform 3-component vector of double) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:93 Constant: +0:93 4 (const uint) +0:97 multiply second child into first child ( temp 3-component vector of double) +0:97 'r40' ( temp 3-component vector of double) +0:97 Convert int to double ( temp 3-component vector of double) +0:97 i3: direct index for structure ( uniform 3-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:97 Constant: +0:97 0 (const uint) +0:98 multiply second child into first child ( temp 3-component vector of double) +0:98 'r41' ( temp 3-component vector of double) +0:98 Convert uint to double ( temp 3-component vector of double) +0:98 u3: direct index for structure ( uniform 3-component vector of uint) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:98 Constant: +0:98 3 (const uint) +0:99 multiply second child into first child ( temp 3-component vector of double) +0:99 'r42' ( temp 3-component vector of double) +0:99 Convert float to double ( temp 3-component vector of double) +0:99 f3: direct index for structure ( uniform 3-component vector of float) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:99 Constant: +0:99 2 (const uint) +0:100 multiply second child into first child ( temp 3-component vector of double) +0:100 'r43' ( temp 3-component vector of double) +0:100 Convert bool to double ( temp 3-component vector of double) +0:100 b3: direct index for structure ( uniform 3-component vector of bool) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:100 Constant: +0:100 1 (const uint) +0:103 vector scale second child into first child ( temp 3-component vector of float) +0:103 'r00' ( temp 3-component vector of float) +0:103 Convert int to float ( temp float) +0:103 is: direct index for structure ( uniform int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:103 Constant: +0:103 5 (const uint) +0:104 vector scale second child into first child ( temp 3-component vector of float) +0:104 'r01' ( temp 3-component vector of float) +0:104 Convert bool to float ( temp float) +0:104 bs: direct index for structure ( uniform bool) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:104 Constant: +0:104 6 (const uint) +0:105 vector scale second child into first child ( temp 3-component vector of float) +0:105 'r02' ( temp 3-component vector of float) +0:105 Convert uint to float ( temp float) +0:105 us: direct index for structure ( uniform uint) +0:105 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:105 Constant: +0:105 8 (const uint) +0:106 vector scale second child into first child ( temp 3-component vector of float) +0:106 'r03' ( temp 3-component vector of float) +0:106 Convert double to float ( temp float) +0:106 ds: direct index for structure ( uniform double) +0:106 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:106 Constant: +0:106 9 (const uint) +0:108 vector scale second child into first child ( temp 3-component vector of int) +0:108 'r10' ( temp 3-component vector of int) +0:108 Convert bool to int ( temp int) +0:108 bs: direct index for structure ( uniform bool) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:108 Constant: +0:108 6 (const uint) +0:109 vector scale second child into first child ( temp 3-component vector of int) +0:109 'r11' ( temp 3-component vector of int) +0:109 Convert uint to int ( temp int) +0:109 us: direct index for structure ( uniform uint) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:109 Constant: +0:109 8 (const uint) +0:110 vector scale second child into first child ( temp 3-component vector of int) +0:110 'r12' ( temp 3-component vector of int) +0:110 Convert float to int ( temp int) +0:110 fs: direct index for structure ( uniform float) +0:110 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:110 Constant: +0:110 7 (const uint) +0:111 vector scale second child into first child ( temp 3-component vector of int) +0:111 'r13' ( temp 3-component vector of int) +0:111 Convert double to int ( temp int) +0:111 ds: direct index for structure ( uniform double) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:111 Constant: +0:111 9 (const uint) +0:113 vector scale second child into first child ( temp 3-component vector of uint) +0:113 'r20' ( temp 3-component vector of uint) +0:113 Convert bool to uint ( temp uint) +0:113 bs: direct index for structure ( uniform bool) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:113 Constant: +0:113 6 (const uint) +0:114 vector scale second child into first child ( temp 3-component vector of uint) +0:114 'r21' ( temp 3-component vector of uint) +0:114 Convert int to uint ( temp uint) +0:114 is: direct index for structure ( uniform int) +0:114 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:114 Constant: +0:114 5 (const uint) +0:115 vector scale second child into first child ( temp 3-component vector of uint) +0:115 'r22' ( temp 3-component vector of uint) +0:115 Convert float to uint ( temp uint) +0:115 fs: direct index for structure ( uniform float) +0:115 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:115 Constant: +0:115 7 (const uint) +0:116 vector scale second child into first child ( temp 3-component vector of uint) +0:116 'r23' ( temp 3-component vector of uint) +0:116 Convert double to uint ( temp uint) +0:116 ds: direct index for structure ( uniform double) +0:116 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:116 Constant: +0:116 9 (const uint) +0:120 vector scale second child into first child ( temp 3-component vector of double) +0:120 'r40' ( temp 3-component vector of double) +0:120 Convert int to double ( temp double) +0:120 is: direct index for structure ( uniform int) +0:120 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:120 Constant: +0:120 5 (const uint) +0:121 vector scale second child into first child ( temp 3-component vector of double) +0:121 'r41' ( temp 3-component vector of double) +0:121 Convert uint to double ( temp double) +0:121 us: direct index for structure ( uniform uint) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:121 Constant: +0:121 8 (const uint) +0:122 vector scale second child into first child ( temp 3-component vector of double) +0:122 'r42' ( temp 3-component vector of double) +0:122 Convert float to double ( temp double) +0:122 fs: direct index for structure ( uniform float) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:122 Constant: +0:122 7 (const uint) +0:123 vector scale second child into first child ( temp 3-component vector of double) +0:123 'r43' ( temp 3-component vector of double) +0:123 Convert bool to double ( temp double) +0:123 bs: direct index for structure ( uniform bool) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:123 Constant: +0:123 6 (const uint) +0:193 Sequence +0:193 move second child to first child ( temp int) +0:193 'c1' ( temp int) +0:193 Constant: +0:193 3 (const int) +0:194 Sequence +0:194 move second child to first child ( temp int) +0:194 'c2' ( temp int) +0:194 Constant: +0:194 3 (const int) +0:196 Sequence +0:196 move second child to first child ( temp 4-component vector of float) +0:196 'outval' ( temp 4-component vector of float) +0:? Construct vec4 ( temp 4-component vector of float) +0:196 Constant: +0:196 3.600000 +0:196 Constant: +0:196 3.600000 +0:196 Convert int to float ( temp float) +0:196 'c1' ( temp int) +0:196 Convert int to float ( temp float) +0:196 'c2' ( temp int) +0:199 move second child to first child ( temp 4-component vector of float) +0:199 Color: direct index for structure ( temp 4-component vector of float) +0:199 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:199 Constant: +0:199 0 (const int) +0:199 'outval' ( temp 4-component vector of float) +0:200 Branch: Return with expression +0:200 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:52 Function Definition: main( ( temp void) +0:52 Function Parameters: +0:? Sequence +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:52 Color: direct index for structure ( temp 4-component vector of float) +0:52 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:52 Constant: +0:52 0 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 596 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 593 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Fn_F3(vf3;" + Name 10 "x" + Name 18 "Fn_I3(vi3;" + Name 17 "x" + Name 25 "Fn_U3(vu3;" + Name 24 "x" + Name 32 "Fn_B3(vb3;" + Name 31 "x" + Name 39 "Fn_D3(vd3;" + Name 38 "x" + Name 43 "Fn_R_F3I(vf3;" + Name 42 "p" + Name 46 "Fn_R_F3U(vf3;" + Name 45 "p" + Name 49 "Fn_R_F3B(vf3;" + Name 48 "p" + Name 52 "Fn_R_F3D(vf3;" + Name 51 "p" + Name 56 "Fn_R_I3U(vi3;" + Name 55 "p" + Name 59 "Fn_R_I3B(vi3;" + Name 58 "p" + Name 62 "Fn_R_I3F(vi3;" + Name 61 "p" + Name 65 "Fn_R_I3D(vi3;" + Name 64 "p" + Name 69 "Fn_R_U3I(vu3;" + Name 68 "p" + Name 72 "Fn_R_U3F(vu3;" + Name 71 "p" + Name 75 "Fn_R_U3B(vu3;" + Name 74 "p" + Name 78 "Fn_R_U3D(vu3;" + Name 77 "p" + Name 82 "Fn_R_B3I(vb3;" + Name 81 "p" + Name 85 "Fn_R_B3U(vb3;" + Name 84 "p" + Name 88 "Fn_R_B3F(vb3;" + Name 87 "p" + Name 91 "Fn_R_B3D(vb3;" + Name 90 "p" + Name 95 "Fn_R_D3I(vd3;" + Name 94 "p" + Name 98 "Fn_R_D3U(vd3;" + Name 97 "p" + Name 101 "Fn_R_D3B(vd3;" + Name 100 "p" + Name 104 "Fn_R_D3F(vd3;" + Name 103 "p" + Name 107 "PS_OUTPUT" + MemberName 107(PS_OUTPUT) 0 "Color" + Name 109 "@main(" + Name 111 "$Global" + MemberName 111($Global) 0 "i3" + MemberName 111($Global) 1 "b3" + MemberName 111($Global) 2 "f3" + MemberName 111($Global) 3 "u3" + MemberName 111($Global) 4 "d3" + MemberName 111($Global) 5 "is" + MemberName 111($Global) 6 "bs" + MemberName 111($Global) 7 "fs" + MemberName 111($Global) 8 "us" + MemberName 111($Global) 9 "ds" + Name 113 "" + Name 305 "r00" + Name 309 "r01" + Name 314 "r02" + Name 318 "r03" + Name 322 "r10" + Name 327 "r11" + Name 331 "r12" + Name 335 "r13" + Name 339 "r20" + Name 344 "r21" + Name 348 "r22" + Name 352 "r23" + Name 356 "r30" + Name 360 "r31" + Name 364 "r32" + Name 368 "r33" + Name 372 "r40" + Name 376 "r41" + Name 380 "r42" + Name 384 "r43" + Name 575 "c1" + Name 576 "c2" + Name 578 "outval" + Name 586 "psout" + Name 593 "@entryPointOutput.Color" + MemberDecorate 111($Global) 0 Offset 0 + MemberDecorate 111($Global) 1 Offset 16 + MemberDecorate 111($Global) 2 Offset 32 + MemberDecorate 111($Global) 3 Offset 48 + MemberDecorate 111($Global) 4 Offset 64 + MemberDecorate 111($Global) 5 Offset 88 + MemberDecorate 111($Global) 6 Offset 92 + MemberDecorate 111($Global) 7 Offset 96 + MemberDecorate 111($Global) 8 Offset 100 + MemberDecorate 111($Global) 9 Offset 104 + Decorate 111($Global) Block + Decorate 113 DescriptorSet 0 + Decorate 593(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 9: TypeFunction 2 8(ptr) + 13: TypeInt 32 1 + 14: TypeVector 13(int) 3 + 15: TypePointer Function 14(ivec3) + 16: TypeFunction 2 15(ptr) + 20: TypeInt 32 0 + 21: TypeVector 20(int) 3 + 22: TypePointer Function 21(ivec3) + 23: TypeFunction 2 22(ptr) + 27: TypeBool + 28: TypeVector 27(bool) 3 + 29: TypePointer Function 28(bvec3) + 30: TypeFunction 2 29(ptr) + 34: TypeFloat 64 + 35: TypeVector 34(float64_t) 3 + 36: TypePointer Function 35(f64vec3) + 37: TypeFunction 2 36(ptr) + 41: TypeFunction 7(fvec3) 8(ptr) + 54: TypeFunction 14(ivec3) 15(ptr) + 67: TypeFunction 21(ivec3) 22(ptr) + 80: TypeFunction 28(bvec3) 29(ptr) + 93: TypeFunction 35(f64vec3) 36(ptr) + 106: TypeVector 6(float) 4 + 107(PS_OUTPUT): TypeStruct 106(fvec4) + 108: TypeFunction 107(PS_OUTPUT) + 111($Global): TypeStruct 14(ivec3) 21(ivec3) 7(fvec3) 21(ivec3) 35(f64vec3) 13(int) 20(int) 6(float) 20(int) 34(float64_t) + 112: TypePointer Uniform 111($Global) + 113: 112(ptr) Variable Uniform + 114: 13(int) Constant 0 + 115: TypePointer Uniform 14(ivec3) + 124: 13(int) Constant 3 + 125: TypePointer Uniform 21(ivec3) + 134: 13(int) Constant 1 + 137: 20(int) Constant 0 + 138: 21(ivec3) ConstantComposite 137 137 137 + 140: 6(float) Constant 0 + 141: 6(float) Constant 1065353216 + 142: 7(fvec3) ConstantComposite 140 140 140 + 143: 7(fvec3) ConstantComposite 141 141 141 + 151: 13(int) Constant 4 + 152: TypePointer Uniform 35(f64vec3) + 172: 14(ivec3) ConstantComposite 114 114 114 + 173: 14(ivec3) ConstantComposite 134 134 134 + 181: 13(int) Constant 2 + 182: TypePointer Uniform 7(fvec3) + 218: 20(int) Constant 1 + 219: 21(ivec3) ConstantComposite 218 218 218 + 261:34(float64_t) Constant 0 0 + 262: 35(f64vec3) ConstantComposite 261 261 261 + 288:34(float64_t) Constant 0 1072693248 + 289: 35(f64vec3) ConstantComposite 288 288 288 + 473: 13(int) Constant 5 + 474: TypePointer Uniform 13(int) + 480: 13(int) Constant 6 + 481: TypePointer Uniform 20(int) + 488: 13(int) Constant 8 + 494: 13(int) Constant 9 + 495: TypePointer Uniform 34(float64_t) + 514: 13(int) Constant 7 + 515: TypePointer Uniform 6(float) + 574: TypePointer Function 13(int) + 577: TypePointer Function 106(fvec4) + 579: 6(float) Constant 1080452710 + 585: TypePointer Function 107(PS_OUTPUT) + 592: TypePointer Output 106(fvec4) +593(@entryPointOutput.Color): 592(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 594:107(PS_OUTPUT) FunctionCall 109(@main() + 595: 106(fvec4) CompositeExtract 594 0 + Store 593(@entryPointOutput.Color) 595 + Return + FunctionEnd + 11(Fn_F3(vf3;): 2 Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + Return + FunctionEnd + 18(Fn_I3(vi3;): 2 Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + Return + FunctionEnd + 25(Fn_U3(vu3;): 2 Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + Return + FunctionEnd + 32(Fn_B3(vb3;): 2 Function None 30 + 31(x): 29(ptr) FunctionParameter + 33: Label + Return + FunctionEnd + 39(Fn_D3(vd3;): 2 Function None 37 + 38(x): 36(ptr) FunctionParameter + 40: Label + Return + FunctionEnd +43(Fn_R_F3I(vf3;): 7(fvec3) Function None 41 + 42(p): 8(ptr) FunctionParameter + 44: Label + 116: 115(ptr) AccessChain 113 114 + 117: 14(ivec3) Load 116 + 118: 7(fvec3) ConvertSToF 117 + Store 42(p) 118 + 119: 115(ptr) AccessChain 113 114 + 120: 14(ivec3) Load 119 + 121: 7(fvec3) ConvertSToF 120 + ReturnValue 121 + FunctionEnd +46(Fn_R_F3U(vf3;): 7(fvec3) Function None 41 + 45(p): 8(ptr) FunctionParameter + 47: Label + 126: 125(ptr) AccessChain 113 124 + 127: 21(ivec3) Load 126 + 128: 7(fvec3) ConvertUToF 127 + Store 45(p) 128 + 129: 125(ptr) AccessChain 113 124 + 130: 21(ivec3) Load 129 + 131: 7(fvec3) ConvertUToF 130 + ReturnValue 131 + FunctionEnd +49(Fn_R_F3B(vf3;): 7(fvec3) Function None 41 + 48(p): 8(ptr) FunctionParameter + 50: Label + 135: 125(ptr) AccessChain 113 134 + 136: 21(ivec3) Load 135 + 139: 28(bvec3) INotEqual 136 138 + 144: 7(fvec3) Select 139 143 142 + Store 48(p) 144 + 145: 125(ptr) AccessChain 113 134 + 146: 21(ivec3) Load 145 + 147: 28(bvec3) INotEqual 146 138 + 148: 7(fvec3) Select 147 143 142 + ReturnValue 148 + FunctionEnd +52(Fn_R_F3D(vf3;): 7(fvec3) Function None 41 + 51(p): 8(ptr) FunctionParameter + 53: Label + 153: 152(ptr) AccessChain 113 151 + 154: 35(f64vec3) Load 153 + 155: 7(fvec3) FConvert 154 + Store 51(p) 155 + 156: 152(ptr) AccessChain 113 151 + 157: 35(f64vec3) Load 156 + 158: 7(fvec3) FConvert 157 + ReturnValue 158 + FunctionEnd +56(Fn_R_I3U(vi3;): 14(ivec3) Function None 54 + 55(p): 15(ptr) FunctionParameter + 57: Label + 161: 125(ptr) AccessChain 113 124 + 162: 21(ivec3) Load 161 + 163: 14(ivec3) Bitcast 162 + Store 55(p) 163 + 164: 125(ptr) AccessChain 113 124 + 165: 21(ivec3) Load 164 + 166: 14(ivec3) Bitcast 165 + ReturnValue 166 + FunctionEnd +59(Fn_R_I3B(vi3;): 14(ivec3) Function None 54 + 58(p): 15(ptr) FunctionParameter + 60: Label + 169: 125(ptr) AccessChain 113 134 + 170: 21(ivec3) Load 169 + 171: 28(bvec3) INotEqual 170 138 + 174: 14(ivec3) Select 171 173 172 + Store 58(p) 174 + 175: 125(ptr) AccessChain 113 134 + 176: 21(ivec3) Load 175 + 177: 28(bvec3) INotEqual 176 138 + 178: 14(ivec3) Select 177 173 172 + ReturnValue 178 + FunctionEnd +62(Fn_R_I3F(vi3;): 14(ivec3) Function None 54 + 61(p): 15(ptr) FunctionParameter + 63: Label + 183: 182(ptr) AccessChain 113 181 + 184: 7(fvec3) Load 183 + 185: 14(ivec3) ConvertFToS 184 + Store 61(p) 185 + 186: 182(ptr) AccessChain 113 181 + 187: 7(fvec3) Load 186 + 188: 14(ivec3) ConvertFToS 187 + ReturnValue 188 + FunctionEnd +65(Fn_R_I3D(vi3;): 14(ivec3) Function None 54 + 64(p): 15(ptr) FunctionParameter + 66: Label + 191: 152(ptr) AccessChain 113 151 + 192: 35(f64vec3) Load 191 + 193: 14(ivec3) ConvertFToS 192 + Store 64(p) 193 + 194: 152(ptr) AccessChain 113 151 + 195: 35(f64vec3) Load 194 + 196: 14(ivec3) ConvertFToS 195 + ReturnValue 196 + FunctionEnd +69(Fn_R_U3I(vu3;): 21(ivec3) Function None 67 + 68(p): 22(ptr) FunctionParameter + 70: Label + 199: 115(ptr) AccessChain 113 114 + 200: 14(ivec3) Load 199 + 201: 21(ivec3) Bitcast 200 + Store 68(p) 201 + 202: 115(ptr) AccessChain 113 114 + 203: 14(ivec3) Load 202 + 204: 21(ivec3) Bitcast 203 + ReturnValue 204 + FunctionEnd +72(Fn_R_U3F(vu3;): 21(ivec3) Function None 67 + 71(p): 22(ptr) FunctionParameter + 73: Label + 207: 182(ptr) AccessChain 113 181 + 208: 7(fvec3) Load 207 + 209: 21(ivec3) ConvertFToU 208 + Store 71(p) 209 + 210: 182(ptr) AccessChain 113 181 + 211: 7(fvec3) Load 210 + 212: 21(ivec3) ConvertFToU 211 + ReturnValue 212 + FunctionEnd +75(Fn_R_U3B(vu3;): 21(ivec3) Function None 67 + 74(p): 22(ptr) FunctionParameter + 76: Label + 215: 125(ptr) AccessChain 113 134 + 216: 21(ivec3) Load 215 + 217: 28(bvec3) INotEqual 216 138 + 220: 21(ivec3) Select 217 219 138 + Store 74(p) 220 + 221: 125(ptr) AccessChain 113 134 + 222: 21(ivec3) Load 221 + 223: 28(bvec3) INotEqual 222 138 + 224: 21(ivec3) Select 223 219 138 + ReturnValue 224 + FunctionEnd +78(Fn_R_U3D(vu3;): 21(ivec3) Function None 67 + 77(p): 22(ptr) FunctionParameter + 79: Label + 227: 152(ptr) AccessChain 113 151 + 228: 35(f64vec3) Load 227 + 229: 21(ivec3) ConvertFToU 228 + Store 77(p) 229 + 230: 152(ptr) AccessChain 113 151 + 231: 35(f64vec3) Load 230 + 232: 21(ivec3) ConvertFToU 231 + ReturnValue 232 + FunctionEnd +82(Fn_R_B3I(vb3;): 28(bvec3) Function None 80 + 81(p): 29(ptr) FunctionParameter + 83: Label + 235: 115(ptr) AccessChain 113 114 + 236: 14(ivec3) Load 235 + 237: 28(bvec3) INotEqual 236 138 + Store 81(p) 237 + 238: 115(ptr) AccessChain 113 114 + 239: 14(ivec3) Load 238 + 240: 28(bvec3) INotEqual 239 138 + ReturnValue 240 + FunctionEnd +85(Fn_R_B3U(vb3;): 28(bvec3) Function None 80 + 84(p): 29(ptr) FunctionParameter + 86: Label + 243: 125(ptr) AccessChain 113 124 + 244: 21(ivec3) Load 243 + 245: 28(bvec3) INotEqual 244 138 + Store 84(p) 245 + 246: 125(ptr) AccessChain 113 124 + 247: 21(ivec3) Load 246 + 248: 28(bvec3) INotEqual 247 138 + ReturnValue 248 + FunctionEnd +88(Fn_R_B3F(vb3;): 28(bvec3) Function None 80 + 87(p): 29(ptr) FunctionParameter + 89: Label + 251: 182(ptr) AccessChain 113 181 + 252: 7(fvec3) Load 251 + 253: 28(bvec3) FOrdNotEqual 252 142 + Store 87(p) 253 + 254: 182(ptr) AccessChain 113 181 + 255: 7(fvec3) Load 254 + 256: 28(bvec3) FOrdNotEqual 255 142 + ReturnValue 256 + FunctionEnd +91(Fn_R_B3D(vb3;): 28(bvec3) Function None 80 + 90(p): 29(ptr) FunctionParameter + 92: Label + 259: 152(ptr) AccessChain 113 151 + 260: 35(f64vec3) Load 259 + 263: 28(bvec3) FOrdNotEqual 260 262 + Store 90(p) 263 + 264: 152(ptr) AccessChain 113 151 + 265: 35(f64vec3) Load 264 + 266: 28(bvec3) FOrdNotEqual 265 262 + ReturnValue 266 + FunctionEnd +95(Fn_R_D3I(vd3;): 35(f64vec3) Function None 93 + 94(p): 36(ptr) FunctionParameter + 96: Label + 269: 115(ptr) AccessChain 113 114 + 270: 14(ivec3) Load 269 + 271: 35(f64vec3) ConvertSToF 270 + Store 94(p) 271 + 272: 115(ptr) AccessChain 113 114 + 273: 14(ivec3) Load 272 + 274: 35(f64vec3) ConvertSToF 273 + ReturnValue 274 + FunctionEnd +98(Fn_R_D3U(vd3;): 35(f64vec3) Function None 93 + 97(p): 36(ptr) FunctionParameter + 99: Label + 277: 125(ptr) AccessChain 113 124 + 278: 21(ivec3) Load 277 + 279: 35(f64vec3) ConvertUToF 278 + Store 97(p) 279 + 280: 125(ptr) AccessChain 113 124 + 281: 21(ivec3) Load 280 + 282: 35(f64vec3) ConvertUToF 281 + ReturnValue 282 + FunctionEnd +101(Fn_R_D3B(vd3;): 35(f64vec3) Function None 93 + 100(p): 36(ptr) FunctionParameter + 102: Label + 285: 125(ptr) AccessChain 113 134 + 286: 21(ivec3) Load 285 + 287: 28(bvec3) INotEqual 286 138 + 290: 35(f64vec3) Select 287 289 262 + Store 100(p) 290 + 291: 125(ptr) AccessChain 113 134 + 292: 21(ivec3) Load 291 + 293: 28(bvec3) INotEqual 292 138 + 294: 35(f64vec3) Select 293 289 262 + ReturnValue 294 + FunctionEnd +104(Fn_R_D3F(vd3;): 35(f64vec3) Function None 93 + 103(p): 36(ptr) FunctionParameter + 105: Label + 297: 182(ptr) AccessChain 113 181 + 298: 7(fvec3) Load 297 + 299: 35(f64vec3) FConvert 298 + Store 103(p) 299 + 300: 182(ptr) AccessChain 113 181 + 301: 7(fvec3) Load 300 + 302: 35(f64vec3) FConvert 301 + ReturnValue 302 + FunctionEnd + 109(@main():107(PS_OUTPUT) Function None 108 + 110: Label + 305(r00): 8(ptr) Variable Function + 309(r01): 8(ptr) Variable Function + 314(r02): 8(ptr) Variable Function + 318(r03): 8(ptr) Variable Function + 322(r10): 15(ptr) Variable Function + 327(r11): 15(ptr) Variable Function + 331(r12): 15(ptr) Variable Function + 335(r13): 15(ptr) Variable Function + 339(r20): 22(ptr) Variable Function + 344(r21): 22(ptr) Variable Function + 348(r22): 22(ptr) Variable Function + 352(r23): 22(ptr) Variable Function + 356(r30): 29(ptr) Variable Function + 360(r31): 29(ptr) Variable Function + 364(r32): 29(ptr) Variable Function + 368(r33): 29(ptr) Variable Function + 372(r40): 36(ptr) Variable Function + 376(r41): 36(ptr) Variable Function + 380(r42): 36(ptr) Variable Function + 384(r43): 36(ptr) Variable Function + 575(c1): 574(ptr) Variable Function + 576(c2): 574(ptr) Variable Function + 578(outval): 577(ptr) Variable Function + 586(psout): 585(ptr) Variable Function + 306: 115(ptr) AccessChain 113 114 + 307: 14(ivec3) Load 306 + 308: 7(fvec3) ConvertSToF 307 + Store 305(r00) 308 + 310: 125(ptr) AccessChain 113 134 + 311: 21(ivec3) Load 310 + 312: 28(bvec3) INotEqual 311 138 + 313: 7(fvec3) Select 312 143 142 + Store 309(r01) 313 + 315: 125(ptr) AccessChain 113 124 + 316: 21(ivec3) Load 315 + 317: 7(fvec3) ConvertUToF 316 + Store 314(r02) 317 + 319: 152(ptr) AccessChain 113 151 + 320: 35(f64vec3) Load 319 + 321: 7(fvec3) FConvert 320 + Store 318(r03) 321 + 323: 125(ptr) AccessChain 113 134 + 324: 21(ivec3) Load 323 + 325: 28(bvec3) INotEqual 324 138 + 326: 14(ivec3) Select 325 173 172 + Store 322(r10) 326 + 328: 125(ptr) AccessChain 113 124 + 329: 21(ivec3) Load 328 + 330: 14(ivec3) Bitcast 329 + Store 327(r11) 330 + 332: 182(ptr) AccessChain 113 181 + 333: 7(fvec3) Load 332 + 334: 14(ivec3) ConvertFToS 333 + Store 331(r12) 334 + 336: 152(ptr) AccessChain 113 151 + 337: 35(f64vec3) Load 336 + 338: 14(ivec3) ConvertFToS 337 + Store 335(r13) 338 + 340: 125(ptr) AccessChain 113 134 + 341: 21(ivec3) Load 340 + 342: 28(bvec3) INotEqual 341 138 + 343: 21(ivec3) Select 342 219 138 + Store 339(r20) 343 + 345: 115(ptr) AccessChain 113 114 + 346: 14(ivec3) Load 345 + 347: 21(ivec3) Bitcast 346 + Store 344(r21) 347 + 349: 182(ptr) AccessChain 113 181 + 350: 7(fvec3) Load 349 + 351: 21(ivec3) ConvertFToU 350 + Store 348(r22) 351 + 353: 152(ptr) AccessChain 113 151 + 354: 35(f64vec3) Load 353 + 355: 21(ivec3) ConvertFToU 354 + Store 352(r23) 355 + 357: 115(ptr) AccessChain 113 114 + 358: 14(ivec3) Load 357 + 359: 28(bvec3) INotEqual 358 138 + Store 356(r30) 359 + 361: 125(ptr) AccessChain 113 124 + 362: 21(ivec3) Load 361 + 363: 28(bvec3) INotEqual 362 138 + Store 360(r31) 363 + 365: 182(ptr) AccessChain 113 181 + 366: 7(fvec3) Load 365 + 367: 28(bvec3) FOrdNotEqual 366 142 + Store 364(r32) 367 + 369: 152(ptr) AccessChain 113 151 + 370: 35(f64vec3) Load 369 + 371: 28(bvec3) FOrdNotEqual 370 262 + Store 368(r33) 371 + 373: 115(ptr) AccessChain 113 114 + 374: 14(ivec3) Load 373 + 375: 35(f64vec3) ConvertSToF 374 + Store 372(r40) 375 + 377: 125(ptr) AccessChain 113 124 + 378: 21(ivec3) Load 377 + 379: 35(f64vec3) ConvertUToF 378 + Store 376(r41) 379 + 381: 182(ptr) AccessChain 113 181 + 382: 7(fvec3) Load 381 + 383: 35(f64vec3) FConvert 382 + Store 380(r42) 383 + 385: 125(ptr) AccessChain 113 134 + 386: 21(ivec3) Load 385 + 387: 28(bvec3) INotEqual 386 138 + 388: 35(f64vec3) Select 387 289 262 + Store 384(r43) 388 + 389: 115(ptr) AccessChain 113 114 + 390: 14(ivec3) Load 389 + 391: 7(fvec3) ConvertSToF 390 + 392: 7(fvec3) Load 305(r00) + 393: 7(fvec3) FMul 392 391 + Store 305(r00) 393 + 394: 125(ptr) AccessChain 113 134 + 395: 21(ivec3) Load 394 + 396: 28(bvec3) INotEqual 395 138 + 397: 7(fvec3) Select 396 143 142 + 398: 7(fvec3) Load 309(r01) + 399: 7(fvec3) FMul 398 397 + Store 309(r01) 399 + 400: 125(ptr) AccessChain 113 124 + 401: 21(ivec3) Load 400 + 402: 7(fvec3) ConvertUToF 401 + 403: 7(fvec3) Load 314(r02) + 404: 7(fvec3) FMul 403 402 + Store 314(r02) 404 + 405: 152(ptr) AccessChain 113 151 + 406: 35(f64vec3) Load 405 + 407: 7(fvec3) FConvert 406 + 408: 7(fvec3) Load 318(r03) + 409: 7(fvec3) FMul 408 407 + Store 318(r03) 409 + 410: 125(ptr) AccessChain 113 134 + 411: 21(ivec3) Load 410 + 412: 28(bvec3) INotEqual 411 138 + 413: 14(ivec3) Select 412 173 172 + 414: 14(ivec3) Load 322(r10) + 415: 14(ivec3) IMul 414 413 + Store 322(r10) 415 + 416: 125(ptr) AccessChain 113 124 + 417: 21(ivec3) Load 416 + 418: 14(ivec3) Bitcast 417 + 419: 14(ivec3) Load 327(r11) + 420: 14(ivec3) IMul 419 418 + Store 327(r11) 420 + 421: 182(ptr) AccessChain 113 181 + 422: 7(fvec3) Load 421 + 423: 14(ivec3) ConvertFToS 422 + 424: 14(ivec3) Load 331(r12) + 425: 14(ivec3) IMul 424 423 + Store 331(r12) 425 + 426: 152(ptr) AccessChain 113 151 + 427: 35(f64vec3) Load 426 + 428: 14(ivec3) ConvertFToS 427 + 429: 14(ivec3) Load 335(r13) + 430: 14(ivec3) IMul 429 428 + Store 335(r13) 430 + 431: 125(ptr) AccessChain 113 134 + 432: 21(ivec3) Load 431 + 433: 28(bvec3) INotEqual 432 138 + 434: 21(ivec3) Select 433 219 138 + 435: 21(ivec3) Load 339(r20) + 436: 21(ivec3) IMul 435 434 + Store 339(r20) 436 + 437: 115(ptr) AccessChain 113 114 + 438: 14(ivec3) Load 437 + 439: 21(ivec3) Bitcast 438 + 440: 21(ivec3) Load 344(r21) + 441: 21(ivec3) IMul 440 439 + Store 344(r21) 441 + 442: 182(ptr) AccessChain 113 181 + 443: 7(fvec3) Load 442 + 444: 21(ivec3) ConvertFToU 443 + 445: 21(ivec3) Load 348(r22) + 446: 21(ivec3) IMul 445 444 + Store 348(r22) 446 + 447: 152(ptr) AccessChain 113 151 + 448: 35(f64vec3) Load 447 + 449: 21(ivec3) ConvertFToU 448 + 450: 21(ivec3) Load 352(r23) + 451: 21(ivec3) IMul 450 449 + Store 352(r23) 451 + 452: 115(ptr) AccessChain 113 114 + 453: 14(ivec3) Load 452 + 454: 35(f64vec3) ConvertSToF 453 + 455: 35(f64vec3) Load 372(r40) + 456: 35(f64vec3) FMul 455 454 + Store 372(r40) 456 + 457: 125(ptr) AccessChain 113 124 + 458: 21(ivec3) Load 457 + 459: 35(f64vec3) ConvertUToF 458 + 460: 35(f64vec3) Load 376(r41) + 461: 35(f64vec3) FMul 460 459 + Store 376(r41) 461 + 462: 182(ptr) AccessChain 113 181 + 463: 7(fvec3) Load 462 + 464: 35(f64vec3) FConvert 463 + 465: 35(f64vec3) Load 380(r42) + 466: 35(f64vec3) FMul 465 464 + Store 380(r42) 466 + 467: 125(ptr) AccessChain 113 134 + 468: 21(ivec3) Load 467 + 469: 28(bvec3) INotEqual 468 138 + 470: 35(f64vec3) Select 469 289 262 + 471: 35(f64vec3) Load 384(r43) + 472: 35(f64vec3) FMul 471 470 + Store 384(r43) 472 + 475: 474(ptr) AccessChain 113 473 + 476: 13(int) Load 475 + 477: 6(float) ConvertSToF 476 + 478: 7(fvec3) Load 305(r00) + 479: 7(fvec3) VectorTimesScalar 478 477 + Store 305(r00) 479 + 482: 481(ptr) AccessChain 113 480 + 483: 20(int) Load 482 + 484: 27(bool) INotEqual 483 137 + 485: 6(float) Select 484 141 140 + 486: 7(fvec3) Load 309(r01) + 487: 7(fvec3) VectorTimesScalar 486 485 + Store 309(r01) 487 + 489: 481(ptr) AccessChain 113 488 + 490: 20(int) Load 489 + 491: 6(float) ConvertUToF 490 + 492: 7(fvec3) Load 314(r02) + 493: 7(fvec3) VectorTimesScalar 492 491 + Store 314(r02) 493 + 496: 495(ptr) AccessChain 113 494 + 497:34(float64_t) Load 496 + 498: 6(float) FConvert 497 + 499: 7(fvec3) Load 318(r03) + 500: 7(fvec3) VectorTimesScalar 499 498 + Store 318(r03) 500 + 501: 481(ptr) AccessChain 113 480 + 502: 20(int) Load 501 + 503: 27(bool) INotEqual 502 137 + 504: 13(int) Select 503 134 114 + 505: 14(ivec3) Load 322(r10) + 506: 14(ivec3) CompositeConstruct 504 504 504 + 507: 14(ivec3) IMul 505 506 + Store 322(r10) 507 + 508: 481(ptr) AccessChain 113 488 + 509: 20(int) Load 508 + 510: 13(int) Bitcast 509 + 511: 14(ivec3) Load 327(r11) + 512: 14(ivec3) CompositeConstruct 510 510 510 + 513: 14(ivec3) IMul 511 512 + Store 327(r11) 513 + 516: 515(ptr) AccessChain 113 514 + 517: 6(float) Load 516 + 518: 13(int) ConvertFToS 517 + 519: 14(ivec3) Load 331(r12) + 520: 14(ivec3) CompositeConstruct 518 518 518 + 521: 14(ivec3) IMul 519 520 + Store 331(r12) 521 + 522: 495(ptr) AccessChain 113 494 + 523:34(float64_t) Load 522 + 524: 13(int) ConvertFToS 523 + 525: 14(ivec3) Load 335(r13) + 526: 14(ivec3) CompositeConstruct 524 524 524 + 527: 14(ivec3) IMul 525 526 + Store 335(r13) 527 + 528: 481(ptr) AccessChain 113 480 + 529: 20(int) Load 528 + 530: 27(bool) INotEqual 529 137 + 531: 20(int) Select 530 218 137 + 532: 21(ivec3) Load 339(r20) + 533: 21(ivec3) CompositeConstruct 531 531 531 + 534: 21(ivec3) IMul 532 533 + Store 339(r20) 534 + 535: 474(ptr) AccessChain 113 473 + 536: 13(int) Load 535 + 537: 20(int) Bitcast 536 + 538: 21(ivec3) Load 344(r21) + 539: 21(ivec3) CompositeConstruct 537 537 537 + 540: 21(ivec3) IMul 538 539 + Store 344(r21) 540 + 541: 515(ptr) AccessChain 113 514 + 542: 6(float) Load 541 + 543: 20(int) ConvertFToU 542 + 544: 21(ivec3) Load 348(r22) + 545: 21(ivec3) CompositeConstruct 543 543 543 + 546: 21(ivec3) IMul 544 545 + Store 348(r22) 546 + 547: 495(ptr) AccessChain 113 494 + 548:34(float64_t) Load 547 + 549: 20(int) ConvertFToU 548 + 550: 21(ivec3) Load 352(r23) + 551: 21(ivec3) CompositeConstruct 549 549 549 + 552: 21(ivec3) IMul 550 551 + Store 352(r23) 552 + 553: 474(ptr) AccessChain 113 473 + 554: 13(int) Load 553 + 555:34(float64_t) ConvertSToF 554 + 556: 35(f64vec3) Load 372(r40) + 557: 35(f64vec3) VectorTimesScalar 556 555 + Store 372(r40) 557 + 558: 481(ptr) AccessChain 113 488 + 559: 20(int) Load 558 + 560:34(float64_t) ConvertUToF 559 + 561: 35(f64vec3) Load 376(r41) + 562: 35(f64vec3) VectorTimesScalar 561 560 + Store 376(r41) 562 + 563: 515(ptr) AccessChain 113 514 + 564: 6(float) Load 563 + 565:34(float64_t) FConvert 564 + 566: 35(f64vec3) Load 380(r42) + 567: 35(f64vec3) VectorTimesScalar 566 565 + Store 380(r42) 567 + 568: 481(ptr) AccessChain 113 480 + 569: 20(int) Load 568 + 570: 27(bool) INotEqual 569 137 + 571:34(float64_t) Select 570 288 261 + 572: 35(f64vec3) Load 384(r43) + 573: 35(f64vec3) VectorTimesScalar 572 571 + Store 384(r43) 573 + Store 575(c1) 124 + Store 576(c2) 124 + 580: 13(int) Load 575(c1) + 581: 6(float) ConvertSToF 580 + 582: 13(int) Load 576(c2) + 583: 6(float) ConvertSToF 582 + 584: 106(fvec4) CompositeConstruct 579 579 581 583 + Store 578(outval) 584 + 587: 106(fvec4) Load 578(outval) + 588: 577(ptr) AccessChain 586(psout) 114 + Store 588 587 + 589:107(PS_OUTPUT) Load 586(psout) + ReturnValue 589 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.reflection.binding.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.binding.frag.out new file mode 100644 index 0000000000..dd19621c3e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.binding.frag.out @@ -0,0 +1,19 @@ +hlsl.reflection.binding.frag +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 15 +s1: offset -1, type 0, size 1, index -1, binding 5 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16 +s1a: offset -1, type 0, size 1, index -1, binding 6 +c1_a: offset 0, type 8b52, size 1, index 0, binding -1 +c1_b: offset 16, type 1404, size 1, index 0, binding -1 +c1_c: offset 20, type 1406, size 1, index 0, binding -1 +c2_a: offset 0, type 8b52, size 1, index 1, binding -1 +c2_b: offset 16, type 1404, size 1, index 1, binding -1 +c2_c: offset 20, type 1406, size 1, index 1, binding -1 + +Uniform block reflection: +cbuff1: offset -1, type ffffffff, size 24, index -1, binding 2 +cbuff2: offset -1, type ffffffff, size 24, index -1, binding 3 + +Vertex attribute reflection: + diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.reflection.binding.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.binding.vert.out new file mode 100644 index 0000000000..f1368df935 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.binding.vert.out @@ -0,0 +1,15 @@ +hlsl.reflection.binding.vert + +Linked vertex stage: + + +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 15 +s1: offset -1, type 0, size 1, index -1, binding 5 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16 +s1a: offset -1, type 0, size 1, index -1, binding 6 + +Uniform block reflection: + +Vertex attribute reflection: + diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.reflection.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.vert.out new file mode 100644 index 0000000000..5f7a033961 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.reflection.vert.out @@ -0,0 +1,76 @@ +hlsl.reflection.vert +Uniform reflection: +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 +s.a: offset 0, type 1404, size 1, index 1, binding -1 +m23: offset 16, type 8b67, size 1, index 0, binding -1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 +c_m23: offset 16, type 8b67, size 1, index 2, binding -1 +c_scalarAfterm23: offset 48, type 1404, size 1, index 2, binding -1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 +m22: offset 208, type 8b5a, size 9, index 0, binding -1 +dm22: offset 32, type 8b5a, size 4, index 1, binding -1 +foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1 +foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1 +foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1 +foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1 +deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepC.iv4: offset 1568, type 8b52, size 1, index 1, binding -1 +deepC.d2.i: offset 1568, type 1404, size 1, index 1, binding -1 +deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.v3: offset 1568, type 8b54, size 1, index 1, binding -1 +deepD[0].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 +deepD[0].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 +deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].v3: offset 2480, type 8b54, size 1, index 1, binding -1 +deepD[1].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 +deepD[1].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 +deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].v3: offset 2480, type 8b54, size 1, index 1, binding -1 +foo1: offset 0, type 1406, size 1, index 4, binding -1 +foo2: offset 0, type 1406, size 1, index 5, binding -1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 +uf1: offset 16, type 1406, size 1, index 1, binding -1 + +Uniform block reflection: +nameless: offset -1, type ffffffff, size 496, index -1, binding -1 +$Global: offset -1, type ffffffff, size 3088, index -1, binding -1 +c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1 +nested: offset -1, type ffffffff, size 32, index -1, binding -1 +abl: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2: offset -1, type ffffffff, size 4, index -1, binding -1 + +Vertex attribute reflection: +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 + diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out new file mode 100644 index 0000000000..c874cd23ce --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.atomics.frag.out @@ -0,0 +1,5275 @@ +hlsl.rw.atomics.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd ( temp int) +0:50 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:50 i1: direct index for structure ( uniform int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure ( uniform int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child ( temp int) +0:51 'out_i1' ( temp int) +0:51 imageAtomicAdd ( temp int) +0:51 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:51 i1: direct index for structure ( uniform int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure ( uniform int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd ( temp int) +0:52 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:52 i1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child ( temp int) +0:53 'out_i1' ( temp int) +0:53 imageAtomicAnd ( temp int) +0:53 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:53 i1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child ( temp int) +0:54 'out_i1' ( temp int) +0:54 imageAtomicCompSwap ( temp int) +0:54 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:54 i1: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child ( temp int) +0:55 'out_i1' ( temp int) +0:55 imageAtomicExchange ( temp int) +0:55 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:55 i1: direct index for structure ( uniform int) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure ( uniform int) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax ( temp int) +0:56 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:56 i1: direct index for structure ( uniform int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure ( uniform int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child ( temp int) +0:57 'out_i1' ( temp int) +0:57 imageAtomicMax ( temp int) +0:57 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:57 i1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin ( temp int) +0:58 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:58 i1: direct index for structure ( uniform int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure ( uniform int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child ( temp int) +0:59 'out_i1' ( temp int) +0:59 imageAtomicMin ( temp int) +0:59 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:59 i1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr ( temp int) +0:60 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:60 i1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child ( temp int) +0:61 'out_i1' ( temp int) +0:61 imageAtomicOr ( temp int) +0:61 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:61 i1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor ( temp int) +0:62 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:62 i1: direct index for structure ( uniform int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure ( uniform int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child ( temp int) +0:63 'out_i1' ( temp int) +0:63 imageAtomicXor ( temp int) +0:63 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:63 i1: direct index for structure ( uniform int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure ( uniform int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd ( temp uint) +0:66 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:66 u1: direct index for structure ( uniform uint) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure ( uniform uint) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child ( temp uint) +0:67 'out_u1' ( temp uint) +0:67 imageAtomicAdd ( temp uint) +0:67 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:67 u1: direct index for structure ( uniform uint) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure ( uniform uint) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd ( temp uint) +0:68 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:68 u1: direct index for structure ( uniform uint) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure ( uniform uint) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child ( temp uint) +0:69 'out_u1' ( temp uint) +0:69 imageAtomicAnd ( temp uint) +0:69 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:69 u1: direct index for structure ( uniform uint) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure ( uniform uint) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child ( temp uint) +0:70 'out_u1' ( temp uint) +0:70 imageAtomicCompSwap ( temp uint) +0:70 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:70 u1: direct index for structure ( uniform uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure ( uniform uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure ( uniform uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child ( temp uint) +0:71 'out_u1' ( temp uint) +0:71 imageAtomicExchange ( temp uint) +0:71 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:71 u1: direct index for structure ( uniform uint) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure ( uniform uint) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax ( temp uint) +0:72 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:72 u1: direct index for structure ( uniform uint) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure ( uniform uint) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child ( temp uint) +0:73 'out_u1' ( temp uint) +0:73 imageAtomicMax ( temp uint) +0:73 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:73 u1: direct index for structure ( uniform uint) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure ( uniform uint) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin ( temp uint) +0:74 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:74 u1: direct index for structure ( uniform uint) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure ( uniform uint) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child ( temp uint) +0:75 'out_u1' ( temp uint) +0:75 imageAtomicMin ( temp uint) +0:75 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:75 u1: direct index for structure ( uniform uint) +0:75 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure ( uniform uint) +0:75 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr ( temp uint) +0:76 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:76 u1: direct index for structure ( uniform uint) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure ( uniform uint) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child ( temp uint) +0:77 'out_u1' ( temp uint) +0:77 imageAtomicOr ( temp uint) +0:77 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:77 u1: direct index for structure ( uniform uint) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure ( uniform uint) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor ( temp uint) +0:78 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:78 u1: direct index for structure ( uniform uint) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure ( uniform uint) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child ( temp uint) +0:79 'out_u1' ( temp uint) +0:79 imageAtomicXor ( temp uint) +0:79 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:79 u1: direct index for structure ( uniform uint) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure ( uniform uint) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd ( temp int) +0:82 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:82 i2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure ( uniform int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child ( temp int) +0:83 'out_i1' ( temp int) +0:83 imageAtomicAdd ( temp int) +0:83 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:83 i2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd ( temp int) +0:84 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:84 i2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child ( temp int) +0:85 'out_i1' ( temp int) +0:85 imageAtomicAnd ( temp int) +0:85 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:85 i2: direct index for structure ( uniform 2-component vector of int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child ( temp int) +0:86 'out_i1' ( temp int) +0:86 imageAtomicCompSwap ( temp int) +0:86 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:86 i2: direct index for structure ( uniform 2-component vector of int) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure ( uniform int) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure ( uniform int) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child ( temp int) +0:87 'out_i1' ( temp int) +0:87 imageAtomicExchange ( temp int) +0:87 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:87 i2: direct index for structure ( uniform 2-component vector of int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax ( temp int) +0:88 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:88 i2: direct index for structure ( uniform 2-component vector of int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child ( temp int) +0:89 'out_i1' ( temp int) +0:89 imageAtomicMax ( temp int) +0:89 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:89 i2: direct index for structure ( uniform 2-component vector of int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin ( temp int) +0:90 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:90 i2: direct index for structure ( uniform 2-component vector of int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child ( temp int) +0:91 'out_i1' ( temp int) +0:91 imageAtomicMin ( temp int) +0:91 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:91 i2: direct index for structure ( uniform 2-component vector of int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr ( temp int) +0:92 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:92 i2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child ( temp int) +0:93 'out_i1' ( temp int) +0:93 imageAtomicOr ( temp int) +0:93 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:93 i2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure ( uniform int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor ( temp int) +0:94 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:94 i2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure ( uniform int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child ( temp int) +0:95 'out_i1' ( temp int) +0:95 imageAtomicXor ( temp int) +0:95 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:95 i2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure ( uniform int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd ( temp uint) +0:98 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:98 u2: direct index for structure ( uniform 2-component vector of uint) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure ( uniform uint) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child ( temp uint) +0:99 'out_u1' ( temp uint) +0:99 imageAtomicAdd ( temp uint) +0:99 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:99 u2: direct index for structure ( uniform 2-component vector of uint) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure ( uniform uint) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd ( temp uint) +0:100 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:100 u2: direct index for structure ( uniform 2-component vector of uint) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure ( uniform uint) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child ( temp uint) +0:101 'out_u1' ( temp uint) +0:101 imageAtomicAnd ( temp uint) +0:101 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:101 u2: direct index for structure ( uniform 2-component vector of uint) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure ( uniform uint) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child ( temp uint) +0:102 'out_u1' ( temp uint) +0:102 imageAtomicCompSwap ( temp uint) +0:102 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:102 u2: direct index for structure ( uniform 2-component vector of uint) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure ( uniform uint) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure ( uniform uint) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child ( temp uint) +0:103 'out_u1' ( temp uint) +0:103 imageAtomicExchange ( temp uint) +0:103 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:103 u2: direct index for structure ( uniform 2-component vector of uint) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure ( uniform uint) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax ( temp uint) +0:104 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:104 u2: direct index for structure ( uniform 2-component vector of uint) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure ( uniform uint) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child ( temp uint) +0:105 'out_u1' ( temp uint) +0:105 imageAtomicMax ( temp uint) +0:105 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:105 u2: direct index for structure ( uniform 2-component vector of uint) +0:105 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure ( uniform uint) +0:105 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin ( temp uint) +0:106 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:106 u2: direct index for structure ( uniform 2-component vector of uint) +0:106 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure ( uniform uint) +0:106 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child ( temp uint) +0:107 'out_u1' ( temp uint) +0:107 imageAtomicMin ( temp uint) +0:107 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:107 u2: direct index for structure ( uniform 2-component vector of uint) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure ( uniform uint) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr ( temp uint) +0:108 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:108 u2: direct index for structure ( uniform 2-component vector of uint) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure ( uniform uint) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child ( temp uint) +0:109 'out_u1' ( temp uint) +0:109 imageAtomicOr ( temp uint) +0:109 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:109 u2: direct index for structure ( uniform 2-component vector of uint) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure ( uniform uint) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor ( temp uint) +0:110 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:110 u2: direct index for structure ( uniform 2-component vector of uint) +0:110 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure ( uniform uint) +0:110 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child ( temp uint) +0:111 'out_u1' ( temp uint) +0:111 imageAtomicXor ( temp uint) +0:111 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:111 u2: direct index for structure ( uniform 2-component vector of uint) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure ( uniform uint) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd ( temp int) +0:114 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:114 i3: direct index for structure ( uniform 3-component vector of int) +0:114 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure ( uniform int) +0:114 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child ( temp int) +0:115 'out_i1' ( temp int) +0:115 imageAtomicAdd ( temp int) +0:115 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:115 i3: direct index for structure ( uniform 3-component vector of int) +0:115 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure ( uniform int) +0:115 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd ( temp int) +0:116 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:116 i3: direct index for structure ( uniform 3-component vector of int) +0:116 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure ( uniform int) +0:116 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child ( temp int) +0:117 'out_i1' ( temp int) +0:117 imageAtomicAnd ( temp int) +0:117 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:117 i3: direct index for structure ( uniform 3-component vector of int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child ( temp int) +0:118 'out_i1' ( temp int) +0:118 imageAtomicCompSwap ( temp int) +0:118 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:118 i3: direct index for structure ( uniform 3-component vector of int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child ( temp int) +0:119 'out_i1' ( temp int) +0:119 imageAtomicExchange ( temp int) +0:119 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:119 i3: direct index for structure ( uniform 3-component vector of int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax ( temp int) +0:120 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:120 i3: direct index for structure ( uniform 3-component vector of int) +0:120 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure ( uniform int) +0:120 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child ( temp int) +0:121 'out_i1' ( temp int) +0:121 imageAtomicMax ( temp int) +0:121 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:121 i3: direct index for structure ( uniform 3-component vector of int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin ( temp int) +0:122 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:122 i3: direct index for structure ( uniform 3-component vector of int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child ( temp int) +0:123 'out_i1' ( temp int) +0:123 imageAtomicMin ( temp int) +0:123 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:123 i3: direct index for structure ( uniform 3-component vector of int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr ( temp int) +0:124 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:124 i3: direct index for structure ( uniform 3-component vector of int) +0:124 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure ( uniform int) +0:124 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child ( temp int) +0:125 'out_i1' ( temp int) +0:125 imageAtomicOr ( temp int) +0:125 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:125 i3: direct index for structure ( uniform 3-component vector of int) +0:125 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure ( uniform int) +0:125 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor ( temp int) +0:126 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:126 i3: direct index for structure ( uniform 3-component vector of int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child ( temp int) +0:127 'out_i1' ( temp int) +0:127 imageAtomicXor ( temp int) +0:127 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:127 i3: direct index for structure ( uniform 3-component vector of int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd ( temp uint) +0:130 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:130 u3: direct index for structure ( uniform 3-component vector of uint) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure ( uniform uint) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child ( temp uint) +0:131 'out_u1' ( temp uint) +0:131 imageAtomicAdd ( temp uint) +0:131 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:131 u3: direct index for structure ( uniform 3-component vector of uint) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure ( uniform uint) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd ( temp uint) +0:132 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:132 u3: direct index for structure ( uniform 3-component vector of uint) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure ( uniform uint) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child ( temp uint) +0:133 'out_u1' ( temp uint) +0:133 imageAtomicAnd ( temp uint) +0:133 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:133 u3: direct index for structure ( uniform 3-component vector of uint) +0:133 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure ( uniform uint) +0:133 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child ( temp uint) +0:134 'out_u1' ( temp uint) +0:134 imageAtomicCompSwap ( temp uint) +0:134 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:134 u3: direct index for structure ( uniform 3-component vector of uint) +0:134 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure ( uniform uint) +0:134 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure ( uniform uint) +0:134 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child ( temp uint) +0:135 'out_u1' ( temp uint) +0:135 imageAtomicExchange ( temp uint) +0:135 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:135 u3: direct index for structure ( uniform 3-component vector of uint) +0:135 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure ( uniform uint) +0:135 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax ( temp uint) +0:136 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:136 u3: direct index for structure ( uniform 3-component vector of uint) +0:136 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure ( uniform uint) +0:136 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child ( temp uint) +0:137 'out_u1' ( temp uint) +0:137 imageAtomicMax ( temp uint) +0:137 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:137 u3: direct index for structure ( uniform 3-component vector of uint) +0:137 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure ( uniform uint) +0:137 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin ( temp uint) +0:138 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:138 u3: direct index for structure ( uniform 3-component vector of uint) +0:138 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure ( uniform uint) +0:138 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child ( temp uint) +0:139 'out_u1' ( temp uint) +0:139 imageAtomicMin ( temp uint) +0:139 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:139 u3: direct index for structure ( uniform 3-component vector of uint) +0:139 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure ( uniform uint) +0:139 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr ( temp uint) +0:140 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:140 u3: direct index for structure ( uniform 3-component vector of uint) +0:140 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure ( uniform uint) +0:140 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child ( temp uint) +0:141 'out_u1' ( temp uint) +0:141 imageAtomicOr ( temp uint) +0:141 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:141 u3: direct index for structure ( uniform 3-component vector of uint) +0:141 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure ( uniform uint) +0:141 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor ( temp uint) +0:142 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:142 u3: direct index for structure ( uniform 3-component vector of uint) +0:142 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure ( uniform uint) +0:142 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child ( temp uint) +0:143 'out_u1' ( temp uint) +0:143 imageAtomicXor ( temp uint) +0:143 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:143 u3: direct index for structure ( uniform 3-component vector of uint) +0:143 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure ( uniform uint) +0:143 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd ( temp int) +0:146 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:146 i2: direct index for structure ( uniform 2-component vector of int) +0:146 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure ( uniform int) +0:146 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child ( temp int) +0:147 'out_i1' ( temp int) +0:147 imageAtomicAdd ( temp int) +0:147 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:147 i2: direct index for structure ( uniform 2-component vector of int) +0:147 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure ( uniform int) +0:147 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd ( temp int) +0:148 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:148 i2: direct index for structure ( uniform 2-component vector of int) +0:148 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure ( uniform int) +0:148 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child ( temp int) +0:149 'out_i1' ( temp int) +0:149 imageAtomicAnd ( temp int) +0:149 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:149 i2: direct index for structure ( uniform 2-component vector of int) +0:149 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure ( uniform int) +0:149 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child ( temp int) +0:150 'out_i1' ( temp int) +0:150 imageAtomicCompSwap ( temp int) +0:150 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:150 i2: direct index for structure ( uniform 2-component vector of int) +0:150 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure ( uniform int) +0:150 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure ( uniform int) +0:150 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child ( temp int) +0:151 'out_i1' ( temp int) +0:151 imageAtomicExchange ( temp int) +0:151 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:151 i2: direct index for structure ( uniform 2-component vector of int) +0:151 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure ( uniform int) +0:151 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax ( temp int) +0:152 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:152 i2: direct index for structure ( uniform 2-component vector of int) +0:152 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure ( uniform int) +0:152 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child ( temp int) +0:153 'out_i1' ( temp int) +0:153 imageAtomicMax ( temp int) +0:153 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:153 i2: direct index for structure ( uniform 2-component vector of int) +0:153 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure ( uniform int) +0:153 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin ( temp int) +0:154 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:154 i2: direct index for structure ( uniform 2-component vector of int) +0:154 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure ( uniform int) +0:154 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child ( temp int) +0:155 'out_i1' ( temp int) +0:155 imageAtomicMin ( temp int) +0:155 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:155 i2: direct index for structure ( uniform 2-component vector of int) +0:155 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure ( uniform int) +0:155 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr ( temp int) +0:156 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:156 i2: direct index for structure ( uniform 2-component vector of int) +0:156 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure ( uniform int) +0:156 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child ( temp int) +0:157 'out_i1' ( temp int) +0:157 imageAtomicOr ( temp int) +0:157 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:157 i2: direct index for structure ( uniform 2-component vector of int) +0:157 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure ( uniform int) +0:157 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor ( temp int) +0:158 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:158 i2: direct index for structure ( uniform 2-component vector of int) +0:158 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure ( uniform int) +0:158 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child ( temp int) +0:159 'out_i1' ( temp int) +0:159 imageAtomicXor ( temp int) +0:159 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:159 i2: direct index for structure ( uniform 2-component vector of int) +0:159 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure ( uniform int) +0:159 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd ( temp uint) +0:162 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:162 u2: direct index for structure ( uniform 2-component vector of uint) +0:162 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure ( uniform uint) +0:162 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child ( temp uint) +0:163 'out_u1' ( temp uint) +0:163 imageAtomicAdd ( temp uint) +0:163 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:163 u2: direct index for structure ( uniform 2-component vector of uint) +0:163 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure ( uniform uint) +0:163 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd ( temp uint) +0:164 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:164 u2: direct index for structure ( uniform 2-component vector of uint) +0:164 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure ( uniform uint) +0:164 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child ( temp uint) +0:165 'out_u1' ( temp uint) +0:165 imageAtomicAnd ( temp uint) +0:165 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:165 u2: direct index for structure ( uniform 2-component vector of uint) +0:165 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure ( uniform uint) +0:165 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child ( temp uint) +0:166 'out_u1' ( temp uint) +0:166 imageAtomicCompSwap ( temp uint) +0:166 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:166 u2: direct index for structure ( uniform 2-component vector of uint) +0:166 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure ( uniform uint) +0:166 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure ( uniform uint) +0:166 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child ( temp uint) +0:167 'out_u1' ( temp uint) +0:167 imageAtomicExchange ( temp uint) +0:167 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:167 u2: direct index for structure ( uniform 2-component vector of uint) +0:167 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure ( uniform uint) +0:167 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax ( temp uint) +0:168 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:168 u2: direct index for structure ( uniform 2-component vector of uint) +0:168 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure ( uniform uint) +0:168 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child ( temp uint) +0:169 'out_u1' ( temp uint) +0:169 imageAtomicMax ( temp uint) +0:169 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:169 u2: direct index for structure ( uniform 2-component vector of uint) +0:169 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure ( uniform uint) +0:169 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin ( temp uint) +0:170 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:170 u2: direct index for structure ( uniform 2-component vector of uint) +0:170 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure ( uniform uint) +0:170 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child ( temp uint) +0:171 'out_u1' ( temp uint) +0:171 imageAtomicMin ( temp uint) +0:171 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:171 u2: direct index for structure ( uniform 2-component vector of uint) +0:171 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure ( uniform uint) +0:171 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr ( temp uint) +0:172 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:172 u2: direct index for structure ( uniform 2-component vector of uint) +0:172 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure ( uniform uint) +0:172 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child ( temp uint) +0:173 'out_u1' ( temp uint) +0:173 imageAtomicOr ( temp uint) +0:173 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:173 u2: direct index for structure ( uniform 2-component vector of uint) +0:173 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure ( uniform uint) +0:173 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor ( temp uint) +0:174 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:174 u2: direct index for structure ( uniform 2-component vector of uint) +0:174 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure ( uniform uint) +0:174 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child ( temp uint) +0:175 'out_u1' ( temp uint) +0:175 imageAtomicXor ( temp uint) +0:175 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:175 u2: direct index for structure ( uniform 2-component vector of uint) +0:175 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure ( uniform uint) +0:175 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd ( temp int) +0:178 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:178 i2: direct index for structure ( uniform 2-component vector of int) +0:178 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure ( uniform int) +0:178 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child ( temp int) +0:179 'out_i1' ( temp int) +0:179 imageAtomicAdd ( temp int) +0:179 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:179 i2: direct index for structure ( uniform 2-component vector of int) +0:179 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure ( uniform int) +0:179 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd ( temp int) +0:180 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:180 i2: direct index for structure ( uniform 2-component vector of int) +0:180 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure ( uniform int) +0:180 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child ( temp int) +0:181 'out_i1' ( temp int) +0:181 imageAtomicAnd ( temp int) +0:181 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:181 i2: direct index for structure ( uniform 2-component vector of int) +0:181 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure ( uniform int) +0:181 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child ( temp int) +0:182 'out_i1' ( temp int) +0:182 imageAtomicCompSwap ( temp int) +0:182 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:182 i2: direct index for structure ( uniform 2-component vector of int) +0:182 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure ( uniform int) +0:182 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure ( uniform int) +0:182 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child ( temp int) +0:183 'out_i1' ( temp int) +0:183 imageAtomicExchange ( temp int) +0:183 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:183 i2: direct index for structure ( uniform 2-component vector of int) +0:183 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure ( uniform int) +0:183 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax ( temp int) +0:184 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:184 i2: direct index for structure ( uniform 2-component vector of int) +0:184 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure ( uniform int) +0:184 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child ( temp int) +0:185 'out_i1' ( temp int) +0:185 imageAtomicMax ( temp int) +0:185 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:185 i2: direct index for structure ( uniform 2-component vector of int) +0:185 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure ( uniform int) +0:185 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin ( temp int) +0:186 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:186 i2: direct index for structure ( uniform 2-component vector of int) +0:186 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure ( uniform int) +0:186 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child ( temp int) +0:187 'out_i1' ( temp int) +0:187 imageAtomicMin ( temp int) +0:187 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:187 i2: direct index for structure ( uniform 2-component vector of int) +0:187 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure ( uniform int) +0:187 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr ( temp int) +0:188 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:188 i2: direct index for structure ( uniform 2-component vector of int) +0:188 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure ( uniform int) +0:188 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child ( temp int) +0:189 'out_i1' ( temp int) +0:189 imageAtomicOr ( temp int) +0:189 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:189 i2: direct index for structure ( uniform 2-component vector of int) +0:189 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure ( uniform int) +0:189 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor ( temp int) +0:190 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:190 i2: direct index for structure ( uniform 2-component vector of int) +0:190 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure ( uniform int) +0:190 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child ( temp int) +0:191 'out_i1' ( temp int) +0:191 imageAtomicXor ( temp int) +0:191 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:191 i2: direct index for structure ( uniform 2-component vector of int) +0:191 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure ( uniform int) +0:191 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd ( temp uint) +0:194 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:194 u2: direct index for structure ( uniform 2-component vector of uint) +0:194 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure ( uniform uint) +0:194 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child ( temp uint) +0:195 'out_u1' ( temp uint) +0:195 imageAtomicAdd ( temp uint) +0:195 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:195 u2: direct index for structure ( uniform 2-component vector of uint) +0:195 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure ( uniform uint) +0:195 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd ( temp uint) +0:196 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:196 u2: direct index for structure ( uniform 2-component vector of uint) +0:196 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure ( uniform uint) +0:196 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child ( temp uint) +0:197 'out_u1' ( temp uint) +0:197 imageAtomicAnd ( temp uint) +0:197 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:197 u2: direct index for structure ( uniform 2-component vector of uint) +0:197 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure ( uniform uint) +0:197 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child ( temp uint) +0:198 'out_u1' ( temp uint) +0:198 imageAtomicCompSwap ( temp uint) +0:198 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:198 u2: direct index for structure ( uniform 2-component vector of uint) +0:198 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure ( uniform uint) +0:198 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure ( uniform uint) +0:198 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child ( temp uint) +0:199 'out_u1' ( temp uint) +0:199 imageAtomicExchange ( temp uint) +0:199 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:199 u2: direct index for structure ( uniform 2-component vector of uint) +0:199 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure ( uniform uint) +0:199 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax ( temp uint) +0:200 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:200 u2: direct index for structure ( uniform 2-component vector of uint) +0:200 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure ( uniform uint) +0:200 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child ( temp uint) +0:201 'out_u1' ( temp uint) +0:201 imageAtomicMax ( temp uint) +0:201 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:201 u2: direct index for structure ( uniform 2-component vector of uint) +0:201 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure ( uniform uint) +0:201 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin ( temp uint) +0:202 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:202 u2: direct index for structure ( uniform 2-component vector of uint) +0:202 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure ( uniform uint) +0:202 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child ( temp uint) +0:203 'out_u1' ( temp uint) +0:203 imageAtomicMin ( temp uint) +0:203 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:203 u2: direct index for structure ( uniform 2-component vector of uint) +0:203 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure ( uniform uint) +0:203 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr ( temp uint) +0:204 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:204 u2: direct index for structure ( uniform 2-component vector of uint) +0:204 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure ( uniform uint) +0:204 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child ( temp uint) +0:205 'out_u1' ( temp uint) +0:205 imageAtomicOr ( temp uint) +0:205 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:205 u2: direct index for structure ( uniform 2-component vector of uint) +0:205 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure ( uniform uint) +0:205 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor ( temp uint) +0:206 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:206 u2: direct index for structure ( uniform 2-component vector of uint) +0:206 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure ( uniform uint) +0:206 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child ( temp uint) +0:207 'out_u1' ( temp uint) +0:207 imageAtomicXor ( temp uint) +0:207 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:207 u2: direct index for structure ( uniform 2-component vector of uint) +0:207 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure ( uniform uint) +0:207 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd ( temp int) +0:210 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:210 i1: direct index for structure ( uniform int) +0:210 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure ( uniform int) +0:210 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child ( temp int) +0:211 'out_i1' ( temp int) +0:211 imageAtomicAdd ( temp int) +0:211 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:211 i1: direct index for structure ( uniform int) +0:211 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure ( uniform int) +0:211 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd ( temp int) +0:212 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:212 i1: direct index for structure ( uniform int) +0:212 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure ( uniform int) +0:212 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child ( temp int) +0:213 'out_i1' ( temp int) +0:213 imageAtomicAnd ( temp int) +0:213 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:213 i1: direct index for structure ( uniform int) +0:213 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure ( uniform int) +0:213 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child ( temp int) +0:214 'out_i1' ( temp int) +0:214 imageAtomicCompSwap ( temp int) +0:214 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:214 i1: direct index for structure ( uniform int) +0:214 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure ( uniform int) +0:214 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure ( uniform int) +0:214 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child ( temp int) +0:215 'out_i1' ( temp int) +0:215 imageAtomicExchange ( temp int) +0:215 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:215 i1: direct index for structure ( uniform int) +0:215 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure ( uniform int) +0:215 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax ( temp int) +0:216 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:216 i1: direct index for structure ( uniform int) +0:216 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure ( uniform int) +0:216 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child ( temp int) +0:217 'out_i1' ( temp int) +0:217 imageAtomicMax ( temp int) +0:217 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:217 i1: direct index for structure ( uniform int) +0:217 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure ( uniform int) +0:217 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin ( temp int) +0:218 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:218 i1: direct index for structure ( uniform int) +0:218 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure ( uniform int) +0:218 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child ( temp int) +0:219 'out_i1' ( temp int) +0:219 imageAtomicMin ( temp int) +0:219 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:219 i1: direct index for structure ( uniform int) +0:219 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure ( uniform int) +0:219 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr ( temp int) +0:220 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:220 i1: direct index for structure ( uniform int) +0:220 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure ( uniform int) +0:220 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child ( temp int) +0:221 'out_i1' ( temp int) +0:221 imageAtomicOr ( temp int) +0:221 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:221 i1: direct index for structure ( uniform int) +0:221 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure ( uniform int) +0:221 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor ( temp int) +0:222 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:222 i1: direct index for structure ( uniform int) +0:222 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure ( uniform int) +0:222 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child ( temp int) +0:223 'out_i1' ( temp int) +0:223 imageAtomicXor ( temp int) +0:223 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:223 i1: direct index for structure ( uniform int) +0:223 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure ( uniform int) +0:223 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd ( temp uint) +0:226 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:226 u1: direct index for structure ( uniform uint) +0:226 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure ( uniform uint) +0:226 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child ( temp uint) +0:227 'out_u1' ( temp uint) +0:227 imageAtomicAdd ( temp uint) +0:227 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:227 u1: direct index for structure ( uniform uint) +0:227 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure ( uniform uint) +0:227 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd ( temp uint) +0:228 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:228 u1: direct index for structure ( uniform uint) +0:228 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure ( uniform uint) +0:228 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child ( temp uint) +0:229 'out_u1' ( temp uint) +0:229 imageAtomicAnd ( temp uint) +0:229 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:229 u1: direct index for structure ( uniform uint) +0:229 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure ( uniform uint) +0:229 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child ( temp uint) +0:230 'out_u1' ( temp uint) +0:230 imageAtomicCompSwap ( temp uint) +0:230 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:230 u1: direct index for structure ( uniform uint) +0:230 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure ( uniform uint) +0:230 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure ( uniform uint) +0:230 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child ( temp uint) +0:231 'out_u1' ( temp uint) +0:231 imageAtomicExchange ( temp uint) +0:231 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:231 u1: direct index for structure ( uniform uint) +0:231 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure ( uniform uint) +0:231 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax ( temp uint) +0:232 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:232 u1: direct index for structure ( uniform uint) +0:232 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure ( uniform uint) +0:232 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child ( temp uint) +0:233 'out_u1' ( temp uint) +0:233 imageAtomicMax ( temp uint) +0:233 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:233 u1: direct index for structure ( uniform uint) +0:233 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure ( uniform uint) +0:233 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin ( temp uint) +0:234 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:234 u1: direct index for structure ( uniform uint) +0:234 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure ( uniform uint) +0:234 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child ( temp uint) +0:235 'out_u1' ( temp uint) +0:235 imageAtomicMin ( temp uint) +0:235 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:235 u1: direct index for structure ( uniform uint) +0:235 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure ( uniform uint) +0:235 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr ( temp uint) +0:236 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:236 u1: direct index for structure ( uniform uint) +0:236 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure ( uniform uint) +0:236 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child ( temp uint) +0:237 'out_u1' ( temp uint) +0:237 imageAtomicOr ( temp uint) +0:237 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:237 u1: direct index for structure ( uniform uint) +0:237 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure ( uniform uint) +0:237 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor ( temp uint) +0:238 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:238 u1: direct index for structure ( uniform uint) +0:238 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure ( uniform uint) +0:238 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child ( temp uint) +0:239 'out_u1' ( temp uint) +0:239 imageAtomicXor ( temp uint) +0:239 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:239 u1: direct index for structure ( uniform uint) +0:239 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure ( uniform uint) +0:239 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child ( temp 4-component vector of float) +0:242 Color: direct index for structure ( temp 4-component vector of float) +0:242 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Branch: Return with expression +0:243 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Definition: main( ( temp void) +0:45 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Constant: +0:45 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' ( uniform sampler) +0:? 'g_tTex1df1' (layout( r32f) uniform image1D) +0:? 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:? 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:? 'g_tTex2df1' (layout( r32f) uniform image2D) +0:? 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:? 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:? 'g_tTex3df1' (layout( r32f) uniform image3D) +0:? 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:? 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:? 'g_tTex1df1a' (layout( r32f) uniform image1DArray) +0:? 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout( r32f) uniform image2DArray) +0:? 'g_tTex2di1a' (layout( r32i) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout( r32ui) uniform uimage2DArray) +0:? 'g_tBuffF' (layout( r32f) uniform imageBuffer) +0:? 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:? 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd ( temp int) +0:50 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:50 i1: direct index for structure ( uniform int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure ( uniform int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child ( temp int) +0:51 'out_i1' ( temp int) +0:51 imageAtomicAdd ( temp int) +0:51 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:51 i1: direct index for structure ( uniform int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure ( uniform int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd ( temp int) +0:52 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:52 i1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child ( temp int) +0:53 'out_i1' ( temp int) +0:53 imageAtomicAnd ( temp int) +0:53 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:53 i1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child ( temp int) +0:54 'out_i1' ( temp int) +0:54 imageAtomicCompSwap ( temp int) +0:54 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:54 i1: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure ( uniform int) +0:54 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child ( temp int) +0:55 'out_i1' ( temp int) +0:55 imageAtomicExchange ( temp int) +0:55 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:55 i1: direct index for structure ( uniform int) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure ( uniform int) +0:55 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax ( temp int) +0:56 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:56 i1: direct index for structure ( uniform int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure ( uniform int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child ( temp int) +0:57 'out_i1' ( temp int) +0:57 imageAtomicMax ( temp int) +0:57 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:57 i1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin ( temp int) +0:58 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:58 i1: direct index for structure ( uniform int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure ( uniform int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child ( temp int) +0:59 'out_i1' ( temp int) +0:59 imageAtomicMin ( temp int) +0:59 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:59 i1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr ( temp int) +0:60 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:60 i1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child ( temp int) +0:61 'out_i1' ( temp int) +0:61 imageAtomicOr ( temp int) +0:61 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:61 i1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor ( temp int) +0:62 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:62 i1: direct index for structure ( uniform int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure ( uniform int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child ( temp int) +0:63 'out_i1' ( temp int) +0:63 imageAtomicXor ( temp int) +0:63 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:63 i1: direct index for structure ( uniform int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure ( uniform int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd ( temp uint) +0:66 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:66 u1: direct index for structure ( uniform uint) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure ( uniform uint) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child ( temp uint) +0:67 'out_u1' ( temp uint) +0:67 imageAtomicAdd ( temp uint) +0:67 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:67 u1: direct index for structure ( uniform uint) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure ( uniform uint) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd ( temp uint) +0:68 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:68 u1: direct index for structure ( uniform uint) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure ( uniform uint) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child ( temp uint) +0:69 'out_u1' ( temp uint) +0:69 imageAtomicAnd ( temp uint) +0:69 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:69 u1: direct index for structure ( uniform uint) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure ( uniform uint) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child ( temp uint) +0:70 'out_u1' ( temp uint) +0:70 imageAtomicCompSwap ( temp uint) +0:70 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:70 u1: direct index for structure ( uniform uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure ( uniform uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure ( uniform uint) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child ( temp uint) +0:71 'out_u1' ( temp uint) +0:71 imageAtomicExchange ( temp uint) +0:71 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:71 u1: direct index for structure ( uniform uint) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure ( uniform uint) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax ( temp uint) +0:72 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:72 u1: direct index for structure ( uniform uint) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure ( uniform uint) +0:72 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child ( temp uint) +0:73 'out_u1' ( temp uint) +0:73 imageAtomicMax ( temp uint) +0:73 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:73 u1: direct index for structure ( uniform uint) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure ( uniform uint) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin ( temp uint) +0:74 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:74 u1: direct index for structure ( uniform uint) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure ( uniform uint) +0:74 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child ( temp uint) +0:75 'out_u1' ( temp uint) +0:75 imageAtomicMin ( temp uint) +0:75 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:75 u1: direct index for structure ( uniform uint) +0:75 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure ( uniform uint) +0:75 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr ( temp uint) +0:76 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:76 u1: direct index for structure ( uniform uint) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure ( uniform uint) +0:76 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child ( temp uint) +0:77 'out_u1' ( temp uint) +0:77 imageAtomicOr ( temp uint) +0:77 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:77 u1: direct index for structure ( uniform uint) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure ( uniform uint) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor ( temp uint) +0:78 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:78 u1: direct index for structure ( uniform uint) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure ( uniform uint) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child ( temp uint) +0:79 'out_u1' ( temp uint) +0:79 imageAtomicXor ( temp uint) +0:79 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:79 u1: direct index for structure ( uniform uint) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure ( uniform uint) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd ( temp int) +0:82 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:82 i2: direct index for structure ( uniform 2-component vector of int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure ( uniform int) +0:82 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child ( temp int) +0:83 'out_i1' ( temp int) +0:83 imageAtomicAdd ( temp int) +0:83 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:83 i2: direct index for structure ( uniform 2-component vector of int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd ( temp int) +0:84 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:84 i2: direct index for structure ( uniform 2-component vector of int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child ( temp int) +0:85 'out_i1' ( temp int) +0:85 imageAtomicAnd ( temp int) +0:85 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:85 i2: direct index for structure ( uniform 2-component vector of int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child ( temp int) +0:86 'out_i1' ( temp int) +0:86 imageAtomicCompSwap ( temp int) +0:86 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:86 i2: direct index for structure ( uniform 2-component vector of int) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure ( uniform int) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure ( uniform int) +0:86 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child ( temp int) +0:87 'out_i1' ( temp int) +0:87 imageAtomicExchange ( temp int) +0:87 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:87 i2: direct index for structure ( uniform 2-component vector of int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax ( temp int) +0:88 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:88 i2: direct index for structure ( uniform 2-component vector of int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child ( temp int) +0:89 'out_i1' ( temp int) +0:89 imageAtomicMax ( temp int) +0:89 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:89 i2: direct index for structure ( uniform 2-component vector of int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin ( temp int) +0:90 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:90 i2: direct index for structure ( uniform 2-component vector of int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child ( temp int) +0:91 'out_i1' ( temp int) +0:91 imageAtomicMin ( temp int) +0:91 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:91 i2: direct index for structure ( uniform 2-component vector of int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr ( temp int) +0:92 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:92 i2: direct index for structure ( uniform 2-component vector of int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child ( temp int) +0:93 'out_i1' ( temp int) +0:93 imageAtomicOr ( temp int) +0:93 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:93 i2: direct index for structure ( uniform 2-component vector of int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure ( uniform int) +0:93 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor ( temp int) +0:94 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:94 i2: direct index for structure ( uniform 2-component vector of int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure ( uniform int) +0:94 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child ( temp int) +0:95 'out_i1' ( temp int) +0:95 imageAtomicXor ( temp int) +0:95 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:95 i2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure ( uniform int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd ( temp uint) +0:98 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:98 u2: direct index for structure ( uniform 2-component vector of uint) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure ( uniform uint) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child ( temp uint) +0:99 'out_u1' ( temp uint) +0:99 imageAtomicAdd ( temp uint) +0:99 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:99 u2: direct index for structure ( uniform 2-component vector of uint) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure ( uniform uint) +0:99 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd ( temp uint) +0:100 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:100 u2: direct index for structure ( uniform 2-component vector of uint) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure ( uniform uint) +0:100 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child ( temp uint) +0:101 'out_u1' ( temp uint) +0:101 imageAtomicAnd ( temp uint) +0:101 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:101 u2: direct index for structure ( uniform 2-component vector of uint) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure ( uniform uint) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child ( temp uint) +0:102 'out_u1' ( temp uint) +0:102 imageAtomicCompSwap ( temp uint) +0:102 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:102 u2: direct index for structure ( uniform 2-component vector of uint) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure ( uniform uint) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure ( uniform uint) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child ( temp uint) +0:103 'out_u1' ( temp uint) +0:103 imageAtomicExchange ( temp uint) +0:103 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:103 u2: direct index for structure ( uniform 2-component vector of uint) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure ( uniform uint) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax ( temp uint) +0:104 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:104 u2: direct index for structure ( uniform 2-component vector of uint) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure ( uniform uint) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child ( temp uint) +0:105 'out_u1' ( temp uint) +0:105 imageAtomicMax ( temp uint) +0:105 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:105 u2: direct index for structure ( uniform 2-component vector of uint) +0:105 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure ( uniform uint) +0:105 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin ( temp uint) +0:106 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:106 u2: direct index for structure ( uniform 2-component vector of uint) +0:106 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure ( uniform uint) +0:106 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child ( temp uint) +0:107 'out_u1' ( temp uint) +0:107 imageAtomicMin ( temp uint) +0:107 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:107 u2: direct index for structure ( uniform 2-component vector of uint) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure ( uniform uint) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr ( temp uint) +0:108 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:108 u2: direct index for structure ( uniform 2-component vector of uint) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure ( uniform uint) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child ( temp uint) +0:109 'out_u1' ( temp uint) +0:109 imageAtomicOr ( temp uint) +0:109 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:109 u2: direct index for structure ( uniform 2-component vector of uint) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure ( uniform uint) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor ( temp uint) +0:110 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:110 u2: direct index for structure ( uniform 2-component vector of uint) +0:110 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure ( uniform uint) +0:110 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child ( temp uint) +0:111 'out_u1' ( temp uint) +0:111 imageAtomicXor ( temp uint) +0:111 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:111 u2: direct index for structure ( uniform 2-component vector of uint) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure ( uniform uint) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd ( temp int) +0:114 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:114 i3: direct index for structure ( uniform 3-component vector of int) +0:114 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure ( uniform int) +0:114 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child ( temp int) +0:115 'out_i1' ( temp int) +0:115 imageAtomicAdd ( temp int) +0:115 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:115 i3: direct index for structure ( uniform 3-component vector of int) +0:115 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure ( uniform int) +0:115 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd ( temp int) +0:116 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:116 i3: direct index for structure ( uniform 3-component vector of int) +0:116 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure ( uniform int) +0:116 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child ( temp int) +0:117 'out_i1' ( temp int) +0:117 imageAtomicAnd ( temp int) +0:117 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:117 i3: direct index for structure ( uniform 3-component vector of int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child ( temp int) +0:118 'out_i1' ( temp int) +0:118 imageAtomicCompSwap ( temp int) +0:118 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:118 i3: direct index for structure ( uniform 3-component vector of int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child ( temp int) +0:119 'out_i1' ( temp int) +0:119 imageAtomicExchange ( temp int) +0:119 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:119 i3: direct index for structure ( uniform 3-component vector of int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax ( temp int) +0:120 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:120 i3: direct index for structure ( uniform 3-component vector of int) +0:120 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure ( uniform int) +0:120 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child ( temp int) +0:121 'out_i1' ( temp int) +0:121 imageAtomicMax ( temp int) +0:121 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:121 i3: direct index for structure ( uniform 3-component vector of int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin ( temp int) +0:122 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:122 i3: direct index for structure ( uniform 3-component vector of int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child ( temp int) +0:123 'out_i1' ( temp int) +0:123 imageAtomicMin ( temp int) +0:123 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:123 i3: direct index for structure ( uniform 3-component vector of int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr ( temp int) +0:124 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:124 i3: direct index for structure ( uniform 3-component vector of int) +0:124 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure ( uniform int) +0:124 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child ( temp int) +0:125 'out_i1' ( temp int) +0:125 imageAtomicOr ( temp int) +0:125 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:125 i3: direct index for structure ( uniform 3-component vector of int) +0:125 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure ( uniform int) +0:125 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor ( temp int) +0:126 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:126 i3: direct index for structure ( uniform 3-component vector of int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child ( temp int) +0:127 'out_i1' ( temp int) +0:127 imageAtomicXor ( temp int) +0:127 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:127 i3: direct index for structure ( uniform 3-component vector of int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd ( temp uint) +0:130 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:130 u3: direct index for structure ( uniform 3-component vector of uint) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure ( uniform uint) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child ( temp uint) +0:131 'out_u1' ( temp uint) +0:131 imageAtomicAdd ( temp uint) +0:131 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:131 u3: direct index for structure ( uniform 3-component vector of uint) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure ( uniform uint) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd ( temp uint) +0:132 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:132 u3: direct index for structure ( uniform 3-component vector of uint) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure ( uniform uint) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child ( temp uint) +0:133 'out_u1' ( temp uint) +0:133 imageAtomicAnd ( temp uint) +0:133 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:133 u3: direct index for structure ( uniform 3-component vector of uint) +0:133 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure ( uniform uint) +0:133 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child ( temp uint) +0:134 'out_u1' ( temp uint) +0:134 imageAtomicCompSwap ( temp uint) +0:134 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:134 u3: direct index for structure ( uniform 3-component vector of uint) +0:134 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure ( uniform uint) +0:134 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure ( uniform uint) +0:134 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child ( temp uint) +0:135 'out_u1' ( temp uint) +0:135 imageAtomicExchange ( temp uint) +0:135 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:135 u3: direct index for structure ( uniform 3-component vector of uint) +0:135 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure ( uniform uint) +0:135 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax ( temp uint) +0:136 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:136 u3: direct index for structure ( uniform 3-component vector of uint) +0:136 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure ( uniform uint) +0:136 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child ( temp uint) +0:137 'out_u1' ( temp uint) +0:137 imageAtomicMax ( temp uint) +0:137 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:137 u3: direct index for structure ( uniform 3-component vector of uint) +0:137 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure ( uniform uint) +0:137 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin ( temp uint) +0:138 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:138 u3: direct index for structure ( uniform 3-component vector of uint) +0:138 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure ( uniform uint) +0:138 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child ( temp uint) +0:139 'out_u1' ( temp uint) +0:139 imageAtomicMin ( temp uint) +0:139 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:139 u3: direct index for structure ( uniform 3-component vector of uint) +0:139 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure ( uniform uint) +0:139 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr ( temp uint) +0:140 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:140 u3: direct index for structure ( uniform 3-component vector of uint) +0:140 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure ( uniform uint) +0:140 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child ( temp uint) +0:141 'out_u1' ( temp uint) +0:141 imageAtomicOr ( temp uint) +0:141 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:141 u3: direct index for structure ( uniform 3-component vector of uint) +0:141 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure ( uniform uint) +0:141 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor ( temp uint) +0:142 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:142 u3: direct index for structure ( uniform 3-component vector of uint) +0:142 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure ( uniform uint) +0:142 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child ( temp uint) +0:143 'out_u1' ( temp uint) +0:143 imageAtomicXor ( temp uint) +0:143 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:143 u3: direct index for structure ( uniform 3-component vector of uint) +0:143 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure ( uniform uint) +0:143 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd ( temp int) +0:146 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:146 i2: direct index for structure ( uniform 2-component vector of int) +0:146 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure ( uniform int) +0:146 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child ( temp int) +0:147 'out_i1' ( temp int) +0:147 imageAtomicAdd ( temp int) +0:147 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:147 i2: direct index for structure ( uniform 2-component vector of int) +0:147 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure ( uniform int) +0:147 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd ( temp int) +0:148 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:148 i2: direct index for structure ( uniform 2-component vector of int) +0:148 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure ( uniform int) +0:148 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child ( temp int) +0:149 'out_i1' ( temp int) +0:149 imageAtomicAnd ( temp int) +0:149 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:149 i2: direct index for structure ( uniform 2-component vector of int) +0:149 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure ( uniform int) +0:149 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child ( temp int) +0:150 'out_i1' ( temp int) +0:150 imageAtomicCompSwap ( temp int) +0:150 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:150 i2: direct index for structure ( uniform 2-component vector of int) +0:150 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure ( uniform int) +0:150 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure ( uniform int) +0:150 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child ( temp int) +0:151 'out_i1' ( temp int) +0:151 imageAtomicExchange ( temp int) +0:151 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:151 i2: direct index for structure ( uniform 2-component vector of int) +0:151 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure ( uniform int) +0:151 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax ( temp int) +0:152 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:152 i2: direct index for structure ( uniform 2-component vector of int) +0:152 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure ( uniform int) +0:152 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child ( temp int) +0:153 'out_i1' ( temp int) +0:153 imageAtomicMax ( temp int) +0:153 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:153 i2: direct index for structure ( uniform 2-component vector of int) +0:153 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure ( uniform int) +0:153 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin ( temp int) +0:154 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:154 i2: direct index for structure ( uniform 2-component vector of int) +0:154 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure ( uniform int) +0:154 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child ( temp int) +0:155 'out_i1' ( temp int) +0:155 imageAtomicMin ( temp int) +0:155 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:155 i2: direct index for structure ( uniform 2-component vector of int) +0:155 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure ( uniform int) +0:155 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr ( temp int) +0:156 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:156 i2: direct index for structure ( uniform 2-component vector of int) +0:156 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure ( uniform int) +0:156 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child ( temp int) +0:157 'out_i1' ( temp int) +0:157 imageAtomicOr ( temp int) +0:157 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:157 i2: direct index for structure ( uniform 2-component vector of int) +0:157 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure ( uniform int) +0:157 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor ( temp int) +0:158 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:158 i2: direct index for structure ( uniform 2-component vector of int) +0:158 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure ( uniform int) +0:158 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child ( temp int) +0:159 'out_i1' ( temp int) +0:159 imageAtomicXor ( temp int) +0:159 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:159 i2: direct index for structure ( uniform 2-component vector of int) +0:159 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure ( uniform int) +0:159 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd ( temp uint) +0:162 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:162 u2: direct index for structure ( uniform 2-component vector of uint) +0:162 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure ( uniform uint) +0:162 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child ( temp uint) +0:163 'out_u1' ( temp uint) +0:163 imageAtomicAdd ( temp uint) +0:163 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:163 u2: direct index for structure ( uniform 2-component vector of uint) +0:163 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure ( uniform uint) +0:163 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd ( temp uint) +0:164 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:164 u2: direct index for structure ( uniform 2-component vector of uint) +0:164 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure ( uniform uint) +0:164 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child ( temp uint) +0:165 'out_u1' ( temp uint) +0:165 imageAtomicAnd ( temp uint) +0:165 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:165 u2: direct index for structure ( uniform 2-component vector of uint) +0:165 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure ( uniform uint) +0:165 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child ( temp uint) +0:166 'out_u1' ( temp uint) +0:166 imageAtomicCompSwap ( temp uint) +0:166 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:166 u2: direct index for structure ( uniform 2-component vector of uint) +0:166 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure ( uniform uint) +0:166 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure ( uniform uint) +0:166 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child ( temp uint) +0:167 'out_u1' ( temp uint) +0:167 imageAtomicExchange ( temp uint) +0:167 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:167 u2: direct index for structure ( uniform 2-component vector of uint) +0:167 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure ( uniform uint) +0:167 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax ( temp uint) +0:168 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:168 u2: direct index for structure ( uniform 2-component vector of uint) +0:168 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure ( uniform uint) +0:168 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child ( temp uint) +0:169 'out_u1' ( temp uint) +0:169 imageAtomicMax ( temp uint) +0:169 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:169 u2: direct index for structure ( uniform 2-component vector of uint) +0:169 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure ( uniform uint) +0:169 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin ( temp uint) +0:170 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:170 u2: direct index for structure ( uniform 2-component vector of uint) +0:170 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure ( uniform uint) +0:170 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child ( temp uint) +0:171 'out_u1' ( temp uint) +0:171 imageAtomicMin ( temp uint) +0:171 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:171 u2: direct index for structure ( uniform 2-component vector of uint) +0:171 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure ( uniform uint) +0:171 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr ( temp uint) +0:172 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:172 u2: direct index for structure ( uniform 2-component vector of uint) +0:172 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure ( uniform uint) +0:172 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child ( temp uint) +0:173 'out_u1' ( temp uint) +0:173 imageAtomicOr ( temp uint) +0:173 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:173 u2: direct index for structure ( uniform 2-component vector of uint) +0:173 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure ( uniform uint) +0:173 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor ( temp uint) +0:174 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:174 u2: direct index for structure ( uniform 2-component vector of uint) +0:174 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure ( uniform uint) +0:174 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child ( temp uint) +0:175 'out_u1' ( temp uint) +0:175 imageAtomicXor ( temp uint) +0:175 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:175 u2: direct index for structure ( uniform 2-component vector of uint) +0:175 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure ( uniform uint) +0:175 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd ( temp int) +0:178 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:178 i2: direct index for structure ( uniform 2-component vector of int) +0:178 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure ( uniform int) +0:178 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child ( temp int) +0:179 'out_i1' ( temp int) +0:179 imageAtomicAdd ( temp int) +0:179 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:179 i2: direct index for structure ( uniform 2-component vector of int) +0:179 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure ( uniform int) +0:179 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd ( temp int) +0:180 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:180 i2: direct index for structure ( uniform 2-component vector of int) +0:180 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure ( uniform int) +0:180 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child ( temp int) +0:181 'out_i1' ( temp int) +0:181 imageAtomicAnd ( temp int) +0:181 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:181 i2: direct index for structure ( uniform 2-component vector of int) +0:181 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure ( uniform int) +0:181 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child ( temp int) +0:182 'out_i1' ( temp int) +0:182 imageAtomicCompSwap ( temp int) +0:182 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:182 i2: direct index for structure ( uniform 2-component vector of int) +0:182 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure ( uniform int) +0:182 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure ( uniform int) +0:182 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child ( temp int) +0:183 'out_i1' ( temp int) +0:183 imageAtomicExchange ( temp int) +0:183 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:183 i2: direct index for structure ( uniform 2-component vector of int) +0:183 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure ( uniform int) +0:183 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax ( temp int) +0:184 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:184 i2: direct index for structure ( uniform 2-component vector of int) +0:184 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure ( uniform int) +0:184 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child ( temp int) +0:185 'out_i1' ( temp int) +0:185 imageAtomicMax ( temp int) +0:185 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:185 i2: direct index for structure ( uniform 2-component vector of int) +0:185 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure ( uniform int) +0:185 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin ( temp int) +0:186 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:186 i2: direct index for structure ( uniform 2-component vector of int) +0:186 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure ( uniform int) +0:186 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child ( temp int) +0:187 'out_i1' ( temp int) +0:187 imageAtomicMin ( temp int) +0:187 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:187 i2: direct index for structure ( uniform 2-component vector of int) +0:187 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure ( uniform int) +0:187 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr ( temp int) +0:188 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:188 i2: direct index for structure ( uniform 2-component vector of int) +0:188 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure ( uniform int) +0:188 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child ( temp int) +0:189 'out_i1' ( temp int) +0:189 imageAtomicOr ( temp int) +0:189 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:189 i2: direct index for structure ( uniform 2-component vector of int) +0:189 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure ( uniform int) +0:189 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor ( temp int) +0:190 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:190 i2: direct index for structure ( uniform 2-component vector of int) +0:190 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure ( uniform int) +0:190 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child ( temp int) +0:191 'out_i1' ( temp int) +0:191 imageAtomicXor ( temp int) +0:191 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:191 i2: direct index for structure ( uniform 2-component vector of int) +0:191 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure ( uniform int) +0:191 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd ( temp uint) +0:194 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:194 u2: direct index for structure ( uniform 2-component vector of uint) +0:194 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure ( uniform uint) +0:194 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child ( temp uint) +0:195 'out_u1' ( temp uint) +0:195 imageAtomicAdd ( temp uint) +0:195 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:195 u2: direct index for structure ( uniform 2-component vector of uint) +0:195 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure ( uniform uint) +0:195 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd ( temp uint) +0:196 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:196 u2: direct index for structure ( uniform 2-component vector of uint) +0:196 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure ( uniform uint) +0:196 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child ( temp uint) +0:197 'out_u1' ( temp uint) +0:197 imageAtomicAnd ( temp uint) +0:197 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:197 u2: direct index for structure ( uniform 2-component vector of uint) +0:197 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure ( uniform uint) +0:197 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child ( temp uint) +0:198 'out_u1' ( temp uint) +0:198 imageAtomicCompSwap ( temp uint) +0:198 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:198 u2: direct index for structure ( uniform 2-component vector of uint) +0:198 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure ( uniform uint) +0:198 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure ( uniform uint) +0:198 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child ( temp uint) +0:199 'out_u1' ( temp uint) +0:199 imageAtomicExchange ( temp uint) +0:199 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:199 u2: direct index for structure ( uniform 2-component vector of uint) +0:199 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure ( uniform uint) +0:199 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax ( temp uint) +0:200 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:200 u2: direct index for structure ( uniform 2-component vector of uint) +0:200 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure ( uniform uint) +0:200 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child ( temp uint) +0:201 'out_u1' ( temp uint) +0:201 imageAtomicMax ( temp uint) +0:201 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:201 u2: direct index for structure ( uniform 2-component vector of uint) +0:201 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure ( uniform uint) +0:201 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin ( temp uint) +0:202 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:202 u2: direct index for structure ( uniform 2-component vector of uint) +0:202 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure ( uniform uint) +0:202 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child ( temp uint) +0:203 'out_u1' ( temp uint) +0:203 imageAtomicMin ( temp uint) +0:203 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:203 u2: direct index for structure ( uniform 2-component vector of uint) +0:203 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure ( uniform uint) +0:203 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr ( temp uint) +0:204 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:204 u2: direct index for structure ( uniform 2-component vector of uint) +0:204 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure ( uniform uint) +0:204 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child ( temp uint) +0:205 'out_u1' ( temp uint) +0:205 imageAtomicOr ( temp uint) +0:205 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:205 u2: direct index for structure ( uniform 2-component vector of uint) +0:205 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure ( uniform uint) +0:205 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor ( temp uint) +0:206 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:206 u2: direct index for structure ( uniform 2-component vector of uint) +0:206 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure ( uniform uint) +0:206 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child ( temp uint) +0:207 'out_u1' ( temp uint) +0:207 imageAtomicXor ( temp uint) +0:207 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:207 u2: direct index for structure ( uniform 2-component vector of uint) +0:207 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure ( uniform uint) +0:207 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd ( temp int) +0:210 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:210 i1: direct index for structure ( uniform int) +0:210 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure ( uniform int) +0:210 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child ( temp int) +0:211 'out_i1' ( temp int) +0:211 imageAtomicAdd ( temp int) +0:211 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:211 i1: direct index for structure ( uniform int) +0:211 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure ( uniform int) +0:211 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd ( temp int) +0:212 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:212 i1: direct index for structure ( uniform int) +0:212 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure ( uniform int) +0:212 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child ( temp int) +0:213 'out_i1' ( temp int) +0:213 imageAtomicAnd ( temp int) +0:213 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:213 i1: direct index for structure ( uniform int) +0:213 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure ( uniform int) +0:213 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child ( temp int) +0:214 'out_i1' ( temp int) +0:214 imageAtomicCompSwap ( temp int) +0:214 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:214 i1: direct index for structure ( uniform int) +0:214 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure ( uniform int) +0:214 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure ( uniform int) +0:214 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child ( temp int) +0:215 'out_i1' ( temp int) +0:215 imageAtomicExchange ( temp int) +0:215 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:215 i1: direct index for structure ( uniform int) +0:215 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure ( uniform int) +0:215 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax ( temp int) +0:216 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:216 i1: direct index for structure ( uniform int) +0:216 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure ( uniform int) +0:216 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child ( temp int) +0:217 'out_i1' ( temp int) +0:217 imageAtomicMax ( temp int) +0:217 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:217 i1: direct index for structure ( uniform int) +0:217 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure ( uniform int) +0:217 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin ( temp int) +0:218 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:218 i1: direct index for structure ( uniform int) +0:218 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure ( uniform int) +0:218 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child ( temp int) +0:219 'out_i1' ( temp int) +0:219 imageAtomicMin ( temp int) +0:219 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:219 i1: direct index for structure ( uniform int) +0:219 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure ( uniform int) +0:219 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr ( temp int) +0:220 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:220 i1: direct index for structure ( uniform int) +0:220 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure ( uniform int) +0:220 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child ( temp int) +0:221 'out_i1' ( temp int) +0:221 imageAtomicOr ( temp int) +0:221 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:221 i1: direct index for structure ( uniform int) +0:221 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure ( uniform int) +0:221 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor ( temp int) +0:222 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:222 i1: direct index for structure ( uniform int) +0:222 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure ( uniform int) +0:222 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child ( temp int) +0:223 'out_i1' ( temp int) +0:223 imageAtomicXor ( temp int) +0:223 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:223 i1: direct index for structure ( uniform int) +0:223 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure ( uniform int) +0:223 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd ( temp uint) +0:226 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:226 u1: direct index for structure ( uniform uint) +0:226 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure ( uniform uint) +0:226 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child ( temp uint) +0:227 'out_u1' ( temp uint) +0:227 imageAtomicAdd ( temp uint) +0:227 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:227 u1: direct index for structure ( uniform uint) +0:227 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure ( uniform uint) +0:227 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd ( temp uint) +0:228 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:228 u1: direct index for structure ( uniform uint) +0:228 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure ( uniform uint) +0:228 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child ( temp uint) +0:229 'out_u1' ( temp uint) +0:229 imageAtomicAnd ( temp uint) +0:229 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:229 u1: direct index for structure ( uniform uint) +0:229 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure ( uniform uint) +0:229 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child ( temp uint) +0:230 'out_u1' ( temp uint) +0:230 imageAtomicCompSwap ( temp uint) +0:230 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:230 u1: direct index for structure ( uniform uint) +0:230 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure ( uniform uint) +0:230 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure ( uniform uint) +0:230 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child ( temp uint) +0:231 'out_u1' ( temp uint) +0:231 imageAtomicExchange ( temp uint) +0:231 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:231 u1: direct index for structure ( uniform uint) +0:231 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure ( uniform uint) +0:231 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax ( temp uint) +0:232 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:232 u1: direct index for structure ( uniform uint) +0:232 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure ( uniform uint) +0:232 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child ( temp uint) +0:233 'out_u1' ( temp uint) +0:233 imageAtomicMax ( temp uint) +0:233 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:233 u1: direct index for structure ( uniform uint) +0:233 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure ( uniform uint) +0:233 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin ( temp uint) +0:234 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:234 u1: direct index for structure ( uniform uint) +0:234 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure ( uniform uint) +0:234 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child ( temp uint) +0:235 'out_u1' ( temp uint) +0:235 imageAtomicMin ( temp uint) +0:235 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:235 u1: direct index for structure ( uniform uint) +0:235 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure ( uniform uint) +0:235 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr ( temp uint) +0:236 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:236 u1: direct index for structure ( uniform uint) +0:236 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure ( uniform uint) +0:236 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child ( temp uint) +0:237 'out_u1' ( temp uint) +0:237 imageAtomicOr ( temp uint) +0:237 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:237 u1: direct index for structure ( uniform uint) +0:237 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure ( uniform uint) +0:237 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor ( temp uint) +0:238 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:238 u1: direct index for structure ( uniform uint) +0:238 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure ( uniform uint) +0:238 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child ( temp uint) +0:239 'out_u1' ( temp uint) +0:239 imageAtomicXor ( temp uint) +0:239 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:239 u1: direct index for structure ( uniform uint) +0:239 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure ( uniform uint) +0:239 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child ( temp 4-component vector of float) +0:242 Color: direct index for structure ( temp 4-component vector of float) +0:242 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Branch: Return with expression +0:243 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Definition: main( ( temp void) +0:45 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Constant: +0:45 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' ( uniform sampler) +0:? 'g_tTex1df1' (layout( r32f) uniform image1D) +0:? 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:? 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:? 'g_tTex2df1' (layout( r32f) uniform image2D) +0:? 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:? 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:? 'g_tTex3df1' (layout( r32f) uniform image3D) +0:? 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:? 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:? 'g_tTex1df1a' (layout( r32f) uniform image1DArray) +0:? 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout( r32f) uniform image2DArray) +0:? 'g_tTex2di1a' (layout( r32i) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout( r32ui) uniform uimage2DArray) +0:? 'g_tBuffF' (layout( r32f) uniform imageBuffer) +0:? 'g_tBuffI' (layout( r32i) uniform iimageBuffer) +0:? 'g_tBuffU' (layout( r32ui) uniform uimageBuffer) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform uint u1, uniform 2-component vector of uint u2, uniform 3-component vector of uint u3, uniform uint u1b, uniform uint u1c, uniform int i1, uniform 2-component vector of int i2, uniform 3-component vector of int i3, uniform int i1b, uniform int i1c}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 1147 + + Capability Shader + Capability Image1D + Capability ImageBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1117 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 15 "g_tTex1di1" + Name 21 "$Global" + MemberName 21($Global) 0 "u1" + MemberName 21($Global) 1 "u2" + MemberName 21($Global) 2 "u3" + MemberName 21($Global) 3 "u1b" + MemberName 21($Global) 4 "u1c" + MemberName 21($Global) 5 "i1" + MemberName 21($Global) 6 "i2" + MemberName 21($Global) 7 "i3" + MemberName 21($Global) 8 "i1b" + MemberName 21($Global) 9 "i1c" + Name 23 "" + Name 37 "out_i1" + Name 121 "g_tTex1du1" + Name 132 "out_u1" + Name 217 "g_tTex2di1" + Name 308 "g_tTex2du1" + Name 399 "g_tTex3di1" + Name 490 "g_tTex3du1" + Name 581 "g_tTex1di1a" + Name 670 "g_tTex1du1a" + Name 931 "g_tBuffI" + Name 1020 "g_tBuffU" + Name 1108 "psout" + Name 1117 "@entryPointOutput.Color" + Name 1122 "g_sSamp" + Name 1125 "g_tTex1df1" + Name 1128 "g_tTex2df1" + Name 1131 "g_tTex3df1" + Name 1134 "g_tTex1df1a" + Name 1137 "g_tTex2df1a" + Name 1140 "g_tTex2di1a" + Name 1143 "g_tTex2du1a" + Name 1146 "g_tBuffF" + Decorate 15(g_tTex1di1) DescriptorSet 0 + MemberDecorate 21($Global) 0 Offset 0 + MemberDecorate 21($Global) 1 Offset 8 + MemberDecorate 21($Global) 2 Offset 16 + MemberDecorate 21($Global) 3 Offset 28 + MemberDecorate 21($Global) 4 Offset 32 + MemberDecorate 21($Global) 5 Offset 36 + MemberDecorate 21($Global) 6 Offset 40 + MemberDecorate 21($Global) 7 Offset 48 + MemberDecorate 21($Global) 8 Offset 60 + MemberDecorate 21($Global) 9 Offset 64 + Decorate 21($Global) Block + Decorate 23 DescriptorSet 0 + Decorate 121(g_tTex1du1) DescriptorSet 0 + Decorate 217(g_tTex2di1) DescriptorSet 0 + Decorate 308(g_tTex2du1) DescriptorSet 0 + Decorate 399(g_tTex3di1) DescriptorSet 0 + Decorate 490(g_tTex3du1) DescriptorSet 0 + Decorate 581(g_tTex1di1a) DescriptorSet 0 + Decorate 670(g_tTex1du1a) DescriptorSet 0 + Decorate 931(g_tBuffI) DescriptorSet 0 + Decorate 1020(g_tBuffU) DescriptorSet 0 + Decorate 1117(@entryPointOutput.Color) Location 0 + Decorate 1122(g_sSamp) DescriptorSet 0 + Decorate 1125(g_tTex1df1) DescriptorSet 0 + Decorate 1128(g_tTex2df1) DescriptorSet 0 + Decorate 1131(g_tTex3df1) DescriptorSet 0 + Decorate 1134(g_tTex1df1a) DescriptorSet 0 + Decorate 1137(g_tTex2df1a) DescriptorSet 0 + Decorate 1140(g_tTex2di1a) DescriptorSet 0 + Decorate 1143(g_tTex2du1a) DescriptorSet 0 + Decorate 1146(g_tBuffF) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13: TypeImage 12(int) 1D nonsampled format:R32i + 14: TypePointer UniformConstant 13 + 15(g_tTex1di1): 14(ptr) Variable UniformConstant + 16: TypeInt 32 0 + 17: TypeVector 16(int) 2 + 18: TypeVector 16(int) 3 + 19: TypeVector 12(int) 2 + 20: TypeVector 12(int) 3 + 21($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 16(int) 16(int) 12(int) 19(ivec2) 20(ivec3) 12(int) 12(int) + 22: TypePointer Uniform 21($Global) + 23: 22(ptr) Variable Uniform + 24: 12(int) Constant 5 + 25: TypePointer Uniform 12(int) + 28: 12(int) Constant 8 + 31: 16(int) Constant 0 + 32: TypePointer Image 12(int) + 34: 16(int) Constant 1 + 36: TypePointer Function 12(int) + 60: 12(int) Constant 9 + 119: TypeImage 16(int) 1D nonsampled format:R32ui + 120: TypePointer UniformConstant 119 + 121(g_tTex1du1): 120(ptr) Variable UniformConstant + 122: 12(int) Constant 0 + 123: TypePointer Uniform 16(int) + 128: TypePointer Image 16(int) + 131: TypePointer Function 16(int) + 153: 12(int) Constant 3 + 156: 12(int) Constant 4 + 215: TypeImage 12(int) 2D nonsampled format:R32i + 216: TypePointer UniformConstant 215 + 217(g_tTex2di1): 216(ptr) Variable UniformConstant + 218: 12(int) Constant 6 + 219: TypePointer Uniform 19(ivec2) + 306: TypeImage 16(int) 2D nonsampled format:R32ui + 307: TypePointer UniformConstant 306 + 308(g_tTex2du1): 307(ptr) Variable UniformConstant + 309: 12(int) Constant 1 + 310: TypePointer Uniform 17(ivec2) + 397: TypeImage 12(int) 3D nonsampled format:R32i + 398: TypePointer UniformConstant 397 + 399(g_tTex3di1): 398(ptr) Variable UniformConstant + 400: 12(int) Constant 7 + 401: TypePointer Uniform 20(ivec3) + 488: TypeImage 16(int) 3D nonsampled format:R32ui + 489: TypePointer UniformConstant 488 + 490(g_tTex3du1): 489(ptr) Variable UniformConstant + 491: 12(int) Constant 2 + 492: TypePointer Uniform 18(ivec3) + 579: TypeImage 12(int) 1D array nonsampled format:R32i + 580: TypePointer UniformConstant 579 +581(g_tTex1di1a): 580(ptr) Variable UniformConstant + 668: TypeImage 16(int) 1D array nonsampled format:R32ui + 669: TypePointer UniformConstant 668 +670(g_tTex1du1a): 669(ptr) Variable UniformConstant + 929: TypeImage 12(int) Buffer nonsampled format:R32i + 930: TypePointer UniformConstant 929 + 931(g_tBuffI): 930(ptr) Variable UniformConstant + 1018: TypeImage 16(int) Buffer nonsampled format:R32ui + 1019: TypePointer UniformConstant 1018 + 1020(g_tBuffU): 1019(ptr) Variable UniformConstant + 1107: TypePointer Function 8(PS_OUTPUT) + 1109: 6(float) Constant 1065353216 + 1110: 7(fvec4) ConstantComposite 1109 1109 1109 1109 + 1111: TypePointer Function 7(fvec4) + 1116: TypePointer Output 7(fvec4) +1117(@entryPointOutput.Color): 1116(ptr) Variable Output + 1120: TypeSampler + 1121: TypePointer UniformConstant 1120 + 1122(g_sSamp): 1121(ptr) Variable UniformConstant + 1123: TypeImage 6(float) 1D nonsampled format:R32f + 1124: TypePointer UniformConstant 1123 +1125(g_tTex1df1): 1124(ptr) Variable UniformConstant + 1126: TypeImage 6(float) 2D nonsampled format:R32f + 1127: TypePointer UniformConstant 1126 +1128(g_tTex2df1): 1127(ptr) Variable UniformConstant + 1129: TypeImage 6(float) 3D nonsampled format:R32f + 1130: TypePointer UniformConstant 1129 +1131(g_tTex3df1): 1130(ptr) Variable UniformConstant + 1132: TypeImage 6(float) 1D array nonsampled format:R32f + 1133: TypePointer UniformConstant 1132 +1134(g_tTex1df1a): 1133(ptr) Variable UniformConstant + 1135: TypeImage 6(float) 2D array nonsampled format:R32f + 1136: TypePointer UniformConstant 1135 +1137(g_tTex2df1a): 1136(ptr) Variable UniformConstant + 1138: TypeImage 12(int) 2D array nonsampled format:R32i + 1139: TypePointer UniformConstant 1138 +1140(g_tTex2di1a): 1139(ptr) Variable UniformConstant + 1141: TypeImage 16(int) 2D array nonsampled format:R32ui + 1142: TypePointer UniformConstant 1141 +1143(g_tTex2du1a): 1142(ptr) Variable UniformConstant + 1144: TypeImage 6(float) Buffer nonsampled format:R32f + 1145: TypePointer UniformConstant 1144 + 1146(g_tBuffF): 1145(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 1118:8(PS_OUTPUT) FunctionCall 10(@main() + 1119: 7(fvec4) CompositeExtract 1118 0 + Store 1117(@entryPointOutput.Color) 1119 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 37(out_i1): 36(ptr) Variable Function + 132(out_u1): 131(ptr) Variable Function + 1108(psout): 1107(ptr) Variable Function + 26: 25(ptr) AccessChain 23 24 + 27: 12(int) Load 26 + 29: 25(ptr) AccessChain 23 28 + 30: 12(int) Load 29 + 33: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 27 31 + 35: 12(int) AtomicIAdd 33 34 31 30 + 38: 25(ptr) AccessChain 23 24 + 39: 12(int) Load 38 + 40: 25(ptr) AccessChain 23 24 + 41: 12(int) Load 40 + 42: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 39 31 + 43: 12(int) AtomicIAdd 42 34 31 41 + Store 37(out_i1) 43 + 44: 25(ptr) AccessChain 23 24 + 45: 12(int) Load 44 + 46: 25(ptr) AccessChain 23 28 + 47: 12(int) Load 46 + 48: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 45 31 + 49: 12(int) AtomicAnd 48 34 31 47 + 50: 25(ptr) AccessChain 23 24 + 51: 12(int) Load 50 + 52: 25(ptr) AccessChain 23 24 + 53: 12(int) Load 52 + 54: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 51 31 + 55: 12(int) AtomicAnd 54 34 31 53 + Store 37(out_i1) 55 + 56: 25(ptr) AccessChain 23 24 + 57: 12(int) Load 56 + 58: 25(ptr) AccessChain 23 28 + 59: 12(int) Load 58 + 61: 25(ptr) AccessChain 23 60 + 62: 12(int) Load 61 + 63: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 57 31 + 64: 12(int) AtomicCompareExchange 63 34 31 31 62 59 + Store 37(out_i1) 64 + 65: 25(ptr) AccessChain 23 24 + 66: 12(int) Load 65 + 67: 25(ptr) AccessChain 23 24 + 68: 12(int) Load 67 + 69: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 66 31 + 70: 12(int) AtomicExchange 69 34 31 68 + Store 37(out_i1) 70 + 71: 25(ptr) AccessChain 23 24 + 72: 12(int) Load 71 + 73: 25(ptr) AccessChain 23 28 + 74: 12(int) Load 73 + 75: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 72 31 + 76: 12(int) AtomicSMax 75 34 31 74 + 77: 25(ptr) AccessChain 23 24 + 78: 12(int) Load 77 + 79: 25(ptr) AccessChain 23 24 + 80: 12(int) Load 79 + 81: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 78 31 + 82: 12(int) AtomicSMax 81 34 31 80 + Store 37(out_i1) 82 + 83: 25(ptr) AccessChain 23 24 + 84: 12(int) Load 83 + 85: 25(ptr) AccessChain 23 28 + 86: 12(int) Load 85 + 87: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 84 31 + 88: 12(int) AtomicSMin 87 34 31 86 + 89: 25(ptr) AccessChain 23 24 + 90: 12(int) Load 89 + 91: 25(ptr) AccessChain 23 24 + 92: 12(int) Load 91 + 93: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 90 31 + 94: 12(int) AtomicSMin 93 34 31 92 + Store 37(out_i1) 94 + 95: 25(ptr) AccessChain 23 24 + 96: 12(int) Load 95 + 97: 25(ptr) AccessChain 23 28 + 98: 12(int) Load 97 + 99: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 96 31 + 100: 12(int) AtomicOr 99 34 31 98 + 101: 25(ptr) AccessChain 23 24 + 102: 12(int) Load 101 + 103: 25(ptr) AccessChain 23 24 + 104: 12(int) Load 103 + 105: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 102 31 + 106: 12(int) AtomicOr 105 34 31 104 + Store 37(out_i1) 106 + 107: 25(ptr) AccessChain 23 24 + 108: 12(int) Load 107 + 109: 25(ptr) AccessChain 23 28 + 110: 12(int) Load 109 + 111: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 108 31 + 112: 12(int) AtomicXor 111 34 31 110 + 113: 25(ptr) AccessChain 23 24 + 114: 12(int) Load 113 + 115: 25(ptr) AccessChain 23 24 + 116: 12(int) Load 115 + 117: 32(ptr) ImageTexelPointer 15(g_tTex1di1) 114 31 + 118: 12(int) AtomicXor 117 34 31 116 + Store 37(out_i1) 118 + 124: 123(ptr) AccessChain 23 122 + 125: 16(int) Load 124 + 126: 123(ptr) AccessChain 23 122 + 127: 16(int) Load 126 + 129: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 125 31 + 130: 16(int) AtomicIAdd 129 34 31 127 + 133: 123(ptr) AccessChain 23 122 + 134: 16(int) Load 133 + 135: 123(ptr) AccessChain 23 122 + 136: 16(int) Load 135 + 137: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 134 31 + 138: 16(int) AtomicIAdd 137 34 31 136 + Store 132(out_u1) 138 + 139: 123(ptr) AccessChain 23 122 + 140: 16(int) Load 139 + 141: 123(ptr) AccessChain 23 122 + 142: 16(int) Load 141 + 143: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 140 31 + 144: 16(int) AtomicAnd 143 34 31 142 + 145: 123(ptr) AccessChain 23 122 + 146: 16(int) Load 145 + 147: 123(ptr) AccessChain 23 122 + 148: 16(int) Load 147 + 149: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 146 31 + 150: 16(int) AtomicAnd 149 34 31 148 + Store 132(out_u1) 150 + 151: 123(ptr) AccessChain 23 122 + 152: 16(int) Load 151 + 154: 123(ptr) AccessChain 23 153 + 155: 16(int) Load 154 + 157: 123(ptr) AccessChain 23 156 + 158: 16(int) Load 157 + 159: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 152 31 + 160: 16(int) AtomicCompareExchange 159 34 31 31 158 155 + Store 132(out_u1) 160 + 161: 123(ptr) AccessChain 23 122 + 162: 16(int) Load 161 + 163: 123(ptr) AccessChain 23 122 + 164: 16(int) Load 163 + 165: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 162 31 + 166: 16(int) AtomicExchange 165 34 31 164 + Store 132(out_u1) 166 + 167: 123(ptr) AccessChain 23 122 + 168: 16(int) Load 167 + 169: 123(ptr) AccessChain 23 122 + 170: 16(int) Load 169 + 171: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 168 31 + 172: 16(int) AtomicUMax 171 34 31 170 + 173: 123(ptr) AccessChain 23 122 + 174: 16(int) Load 173 + 175: 123(ptr) AccessChain 23 122 + 176: 16(int) Load 175 + 177: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 174 31 + 178: 16(int) AtomicUMax 177 34 31 176 + Store 132(out_u1) 178 + 179: 123(ptr) AccessChain 23 122 + 180: 16(int) Load 179 + 181: 123(ptr) AccessChain 23 122 + 182: 16(int) Load 181 + 183: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 180 31 + 184: 16(int) AtomicUMin 183 34 31 182 + 185: 123(ptr) AccessChain 23 122 + 186: 16(int) Load 185 + 187: 123(ptr) AccessChain 23 122 + 188: 16(int) Load 187 + 189: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 186 31 + 190: 16(int) AtomicUMin 189 34 31 188 + Store 132(out_u1) 190 + 191: 123(ptr) AccessChain 23 122 + 192: 16(int) Load 191 + 193: 123(ptr) AccessChain 23 122 + 194: 16(int) Load 193 + 195: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 192 31 + 196: 16(int) AtomicOr 195 34 31 194 + 197: 123(ptr) AccessChain 23 122 + 198: 16(int) Load 197 + 199: 123(ptr) AccessChain 23 122 + 200: 16(int) Load 199 + 201: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 198 31 + 202: 16(int) AtomicOr 201 34 31 200 + Store 132(out_u1) 202 + 203: 123(ptr) AccessChain 23 122 + 204: 16(int) Load 203 + 205: 123(ptr) AccessChain 23 122 + 206: 16(int) Load 205 + 207: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 204 31 + 208: 16(int) AtomicXor 207 34 31 206 + 209: 123(ptr) AccessChain 23 122 + 210: 16(int) Load 209 + 211: 123(ptr) AccessChain 23 122 + 212: 16(int) Load 211 + 213: 128(ptr) ImageTexelPointer 121(g_tTex1du1) 210 31 + 214: 16(int) AtomicXor 213 34 31 212 + Store 132(out_u1) 214 + 220: 219(ptr) AccessChain 23 218 + 221: 19(ivec2) Load 220 + 222: 25(ptr) AccessChain 23 28 + 223: 12(int) Load 222 + 224: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 221 31 + 225: 12(int) AtomicIAdd 224 34 31 223 + 226: 219(ptr) AccessChain 23 218 + 227: 19(ivec2) Load 226 + 228: 25(ptr) AccessChain 23 24 + 229: 12(int) Load 228 + 230: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 227 31 + 231: 12(int) AtomicIAdd 230 34 31 229 + Store 37(out_i1) 231 + 232: 219(ptr) AccessChain 23 218 + 233: 19(ivec2) Load 232 + 234: 25(ptr) AccessChain 23 28 + 235: 12(int) Load 234 + 236: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 233 31 + 237: 12(int) AtomicAnd 236 34 31 235 + 238: 219(ptr) AccessChain 23 218 + 239: 19(ivec2) Load 238 + 240: 25(ptr) AccessChain 23 24 + 241: 12(int) Load 240 + 242: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 239 31 + 243: 12(int) AtomicAnd 242 34 31 241 + Store 37(out_i1) 243 + 244: 219(ptr) AccessChain 23 218 + 245: 19(ivec2) Load 244 + 246: 25(ptr) AccessChain 23 28 + 247: 12(int) Load 246 + 248: 25(ptr) AccessChain 23 60 + 249: 12(int) Load 248 + 250: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 245 31 + 251: 12(int) AtomicCompareExchange 250 34 31 31 249 247 + Store 37(out_i1) 251 + 252: 219(ptr) AccessChain 23 218 + 253: 19(ivec2) Load 252 + 254: 25(ptr) AccessChain 23 24 + 255: 12(int) Load 254 + 256: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 253 31 + 257: 12(int) AtomicExchange 256 34 31 255 + Store 37(out_i1) 257 + 258: 219(ptr) AccessChain 23 218 + 259: 19(ivec2) Load 258 + 260: 25(ptr) AccessChain 23 28 + 261: 12(int) Load 260 + 262: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 259 31 + 263: 12(int) AtomicSMax 262 34 31 261 + 264: 219(ptr) AccessChain 23 218 + 265: 19(ivec2) Load 264 + 266: 25(ptr) AccessChain 23 24 + 267: 12(int) Load 266 + 268: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 265 31 + 269: 12(int) AtomicSMax 268 34 31 267 + Store 37(out_i1) 269 + 270: 219(ptr) AccessChain 23 218 + 271: 19(ivec2) Load 270 + 272: 25(ptr) AccessChain 23 28 + 273: 12(int) Load 272 + 274: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 271 31 + 275: 12(int) AtomicSMin 274 34 31 273 + 276: 219(ptr) AccessChain 23 218 + 277: 19(ivec2) Load 276 + 278: 25(ptr) AccessChain 23 24 + 279: 12(int) Load 278 + 280: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 277 31 + 281: 12(int) AtomicSMin 280 34 31 279 + Store 37(out_i1) 281 + 282: 219(ptr) AccessChain 23 218 + 283: 19(ivec2) Load 282 + 284: 25(ptr) AccessChain 23 28 + 285: 12(int) Load 284 + 286: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 283 31 + 287: 12(int) AtomicOr 286 34 31 285 + 288: 219(ptr) AccessChain 23 218 + 289: 19(ivec2) Load 288 + 290: 25(ptr) AccessChain 23 24 + 291: 12(int) Load 290 + 292: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 289 31 + 293: 12(int) AtomicOr 292 34 31 291 + Store 37(out_i1) 293 + 294: 219(ptr) AccessChain 23 218 + 295: 19(ivec2) Load 294 + 296: 25(ptr) AccessChain 23 28 + 297: 12(int) Load 296 + 298: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 295 31 + 299: 12(int) AtomicXor 298 34 31 297 + 300: 219(ptr) AccessChain 23 218 + 301: 19(ivec2) Load 300 + 302: 25(ptr) AccessChain 23 24 + 303: 12(int) Load 302 + 304: 32(ptr) ImageTexelPointer 217(g_tTex2di1) 301 31 + 305: 12(int) AtomicXor 304 34 31 303 + Store 37(out_i1) 305 + 311: 310(ptr) AccessChain 23 309 + 312: 17(ivec2) Load 311 + 313: 123(ptr) AccessChain 23 122 + 314: 16(int) Load 313 + 315: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 312 31 + 316: 16(int) AtomicIAdd 315 34 31 314 + 317: 310(ptr) AccessChain 23 309 + 318: 17(ivec2) Load 317 + 319: 123(ptr) AccessChain 23 122 + 320: 16(int) Load 319 + 321: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 318 31 + 322: 16(int) AtomicIAdd 321 34 31 320 + Store 132(out_u1) 322 + 323: 310(ptr) AccessChain 23 309 + 324: 17(ivec2) Load 323 + 325: 123(ptr) AccessChain 23 122 + 326: 16(int) Load 325 + 327: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 324 31 + 328: 16(int) AtomicAnd 327 34 31 326 + 329: 310(ptr) AccessChain 23 309 + 330: 17(ivec2) Load 329 + 331: 123(ptr) AccessChain 23 122 + 332: 16(int) Load 331 + 333: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 330 31 + 334: 16(int) AtomicAnd 333 34 31 332 + Store 132(out_u1) 334 + 335: 310(ptr) AccessChain 23 309 + 336: 17(ivec2) Load 335 + 337: 123(ptr) AccessChain 23 153 + 338: 16(int) Load 337 + 339: 123(ptr) AccessChain 23 156 + 340: 16(int) Load 339 + 341: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 336 31 + 342: 16(int) AtomicCompareExchange 341 34 31 31 340 338 + Store 132(out_u1) 342 + 343: 310(ptr) AccessChain 23 309 + 344: 17(ivec2) Load 343 + 345: 123(ptr) AccessChain 23 122 + 346: 16(int) Load 345 + 347: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 344 31 + 348: 16(int) AtomicExchange 347 34 31 346 + Store 132(out_u1) 348 + 349: 310(ptr) AccessChain 23 309 + 350: 17(ivec2) Load 349 + 351: 123(ptr) AccessChain 23 122 + 352: 16(int) Load 351 + 353: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 350 31 + 354: 16(int) AtomicUMax 353 34 31 352 + 355: 310(ptr) AccessChain 23 309 + 356: 17(ivec2) Load 355 + 357: 123(ptr) AccessChain 23 122 + 358: 16(int) Load 357 + 359: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 356 31 + 360: 16(int) AtomicUMax 359 34 31 358 + Store 132(out_u1) 360 + 361: 310(ptr) AccessChain 23 309 + 362: 17(ivec2) Load 361 + 363: 123(ptr) AccessChain 23 122 + 364: 16(int) Load 363 + 365: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 362 31 + 366: 16(int) AtomicUMin 365 34 31 364 + 367: 310(ptr) AccessChain 23 309 + 368: 17(ivec2) Load 367 + 369: 123(ptr) AccessChain 23 122 + 370: 16(int) Load 369 + 371: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 368 31 + 372: 16(int) AtomicUMin 371 34 31 370 + Store 132(out_u1) 372 + 373: 310(ptr) AccessChain 23 309 + 374: 17(ivec2) Load 373 + 375: 123(ptr) AccessChain 23 122 + 376: 16(int) Load 375 + 377: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 374 31 + 378: 16(int) AtomicOr 377 34 31 376 + 379: 310(ptr) AccessChain 23 309 + 380: 17(ivec2) Load 379 + 381: 123(ptr) AccessChain 23 122 + 382: 16(int) Load 381 + 383: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 380 31 + 384: 16(int) AtomicOr 383 34 31 382 + Store 132(out_u1) 384 + 385: 310(ptr) AccessChain 23 309 + 386: 17(ivec2) Load 385 + 387: 123(ptr) AccessChain 23 122 + 388: 16(int) Load 387 + 389: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 386 31 + 390: 16(int) AtomicXor 389 34 31 388 + 391: 310(ptr) AccessChain 23 309 + 392: 17(ivec2) Load 391 + 393: 123(ptr) AccessChain 23 122 + 394: 16(int) Load 393 + 395: 128(ptr) ImageTexelPointer 308(g_tTex2du1) 392 31 + 396: 16(int) AtomicXor 395 34 31 394 + Store 132(out_u1) 396 + 402: 401(ptr) AccessChain 23 400 + 403: 20(ivec3) Load 402 + 404: 25(ptr) AccessChain 23 28 + 405: 12(int) Load 404 + 406: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 403 31 + 407: 12(int) AtomicIAdd 406 34 31 405 + 408: 401(ptr) AccessChain 23 400 + 409: 20(ivec3) Load 408 + 410: 25(ptr) AccessChain 23 24 + 411: 12(int) Load 410 + 412: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 409 31 + 413: 12(int) AtomicIAdd 412 34 31 411 + Store 37(out_i1) 413 + 414: 401(ptr) AccessChain 23 400 + 415: 20(ivec3) Load 414 + 416: 25(ptr) AccessChain 23 28 + 417: 12(int) Load 416 + 418: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 415 31 + 419: 12(int) AtomicAnd 418 34 31 417 + 420: 401(ptr) AccessChain 23 400 + 421: 20(ivec3) Load 420 + 422: 25(ptr) AccessChain 23 24 + 423: 12(int) Load 422 + 424: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 421 31 + 425: 12(int) AtomicAnd 424 34 31 423 + Store 37(out_i1) 425 + 426: 401(ptr) AccessChain 23 400 + 427: 20(ivec3) Load 426 + 428: 25(ptr) AccessChain 23 28 + 429: 12(int) Load 428 + 430: 25(ptr) AccessChain 23 60 + 431: 12(int) Load 430 + 432: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 427 31 + 433: 12(int) AtomicCompareExchange 432 34 31 31 431 429 + Store 37(out_i1) 433 + 434: 401(ptr) AccessChain 23 400 + 435: 20(ivec3) Load 434 + 436: 25(ptr) AccessChain 23 24 + 437: 12(int) Load 436 + 438: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 435 31 + 439: 12(int) AtomicExchange 438 34 31 437 + Store 37(out_i1) 439 + 440: 401(ptr) AccessChain 23 400 + 441: 20(ivec3) Load 440 + 442: 25(ptr) AccessChain 23 28 + 443: 12(int) Load 442 + 444: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 441 31 + 445: 12(int) AtomicSMax 444 34 31 443 + 446: 401(ptr) AccessChain 23 400 + 447: 20(ivec3) Load 446 + 448: 25(ptr) AccessChain 23 24 + 449: 12(int) Load 448 + 450: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 447 31 + 451: 12(int) AtomicSMax 450 34 31 449 + Store 37(out_i1) 451 + 452: 401(ptr) AccessChain 23 400 + 453: 20(ivec3) Load 452 + 454: 25(ptr) AccessChain 23 28 + 455: 12(int) Load 454 + 456: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 453 31 + 457: 12(int) AtomicSMin 456 34 31 455 + 458: 401(ptr) AccessChain 23 400 + 459: 20(ivec3) Load 458 + 460: 25(ptr) AccessChain 23 24 + 461: 12(int) Load 460 + 462: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 459 31 + 463: 12(int) AtomicSMin 462 34 31 461 + Store 37(out_i1) 463 + 464: 401(ptr) AccessChain 23 400 + 465: 20(ivec3) Load 464 + 466: 25(ptr) AccessChain 23 28 + 467: 12(int) Load 466 + 468: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 465 31 + 469: 12(int) AtomicOr 468 34 31 467 + 470: 401(ptr) AccessChain 23 400 + 471: 20(ivec3) Load 470 + 472: 25(ptr) AccessChain 23 24 + 473: 12(int) Load 472 + 474: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 471 31 + 475: 12(int) AtomicOr 474 34 31 473 + Store 37(out_i1) 475 + 476: 401(ptr) AccessChain 23 400 + 477: 20(ivec3) Load 476 + 478: 25(ptr) AccessChain 23 28 + 479: 12(int) Load 478 + 480: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 477 31 + 481: 12(int) AtomicXor 480 34 31 479 + 482: 401(ptr) AccessChain 23 400 + 483: 20(ivec3) Load 482 + 484: 25(ptr) AccessChain 23 24 + 485: 12(int) Load 484 + 486: 32(ptr) ImageTexelPointer 399(g_tTex3di1) 483 31 + 487: 12(int) AtomicXor 486 34 31 485 + Store 37(out_i1) 487 + 493: 492(ptr) AccessChain 23 491 + 494: 18(ivec3) Load 493 + 495: 123(ptr) AccessChain 23 122 + 496: 16(int) Load 495 + 497: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 494 31 + 498: 16(int) AtomicIAdd 497 34 31 496 + 499: 492(ptr) AccessChain 23 491 + 500: 18(ivec3) Load 499 + 501: 123(ptr) AccessChain 23 122 + 502: 16(int) Load 501 + 503: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 500 31 + 504: 16(int) AtomicIAdd 503 34 31 502 + Store 132(out_u1) 504 + 505: 492(ptr) AccessChain 23 491 + 506: 18(ivec3) Load 505 + 507: 123(ptr) AccessChain 23 122 + 508: 16(int) Load 507 + 509: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 506 31 + 510: 16(int) AtomicAnd 509 34 31 508 + 511: 492(ptr) AccessChain 23 491 + 512: 18(ivec3) Load 511 + 513: 123(ptr) AccessChain 23 122 + 514: 16(int) Load 513 + 515: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 512 31 + 516: 16(int) AtomicAnd 515 34 31 514 + Store 132(out_u1) 516 + 517: 492(ptr) AccessChain 23 491 + 518: 18(ivec3) Load 517 + 519: 123(ptr) AccessChain 23 153 + 520: 16(int) Load 519 + 521: 123(ptr) AccessChain 23 156 + 522: 16(int) Load 521 + 523: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 518 31 + 524: 16(int) AtomicCompareExchange 523 34 31 31 522 520 + Store 132(out_u1) 524 + 525: 492(ptr) AccessChain 23 491 + 526: 18(ivec3) Load 525 + 527: 123(ptr) AccessChain 23 122 + 528: 16(int) Load 527 + 529: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 526 31 + 530: 16(int) AtomicExchange 529 34 31 528 + Store 132(out_u1) 530 + 531: 492(ptr) AccessChain 23 491 + 532: 18(ivec3) Load 531 + 533: 123(ptr) AccessChain 23 122 + 534: 16(int) Load 533 + 535: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 532 31 + 536: 16(int) AtomicUMax 535 34 31 534 + 537: 492(ptr) AccessChain 23 491 + 538: 18(ivec3) Load 537 + 539: 123(ptr) AccessChain 23 122 + 540: 16(int) Load 539 + 541: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 538 31 + 542: 16(int) AtomicUMax 541 34 31 540 + Store 132(out_u1) 542 + 543: 492(ptr) AccessChain 23 491 + 544: 18(ivec3) Load 543 + 545: 123(ptr) AccessChain 23 122 + 546: 16(int) Load 545 + 547: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 544 31 + 548: 16(int) AtomicUMin 547 34 31 546 + 549: 492(ptr) AccessChain 23 491 + 550: 18(ivec3) Load 549 + 551: 123(ptr) AccessChain 23 122 + 552: 16(int) Load 551 + 553: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 550 31 + 554: 16(int) AtomicUMin 553 34 31 552 + Store 132(out_u1) 554 + 555: 492(ptr) AccessChain 23 491 + 556: 18(ivec3) Load 555 + 557: 123(ptr) AccessChain 23 122 + 558: 16(int) Load 557 + 559: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 556 31 + 560: 16(int) AtomicOr 559 34 31 558 + 561: 492(ptr) AccessChain 23 491 + 562: 18(ivec3) Load 561 + 563: 123(ptr) AccessChain 23 122 + 564: 16(int) Load 563 + 565: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 562 31 + 566: 16(int) AtomicOr 565 34 31 564 + Store 132(out_u1) 566 + 567: 492(ptr) AccessChain 23 491 + 568: 18(ivec3) Load 567 + 569: 123(ptr) AccessChain 23 122 + 570: 16(int) Load 569 + 571: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 568 31 + 572: 16(int) AtomicXor 571 34 31 570 + 573: 492(ptr) AccessChain 23 491 + 574: 18(ivec3) Load 573 + 575: 123(ptr) AccessChain 23 122 + 576: 16(int) Load 575 + 577: 128(ptr) ImageTexelPointer 490(g_tTex3du1) 574 31 + 578: 16(int) AtomicXor 577 34 31 576 + Store 132(out_u1) 578 + 582: 219(ptr) AccessChain 23 218 + 583: 19(ivec2) Load 582 + 584: 25(ptr) AccessChain 23 28 + 585: 12(int) Load 584 + 586: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 583 31 + 587: 12(int) AtomicIAdd 586 34 31 585 + 588: 219(ptr) AccessChain 23 218 + 589: 19(ivec2) Load 588 + 590: 25(ptr) AccessChain 23 24 + 591: 12(int) Load 590 + 592: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 589 31 + 593: 12(int) AtomicIAdd 592 34 31 591 + Store 37(out_i1) 593 + 594: 219(ptr) AccessChain 23 218 + 595: 19(ivec2) Load 594 + 596: 25(ptr) AccessChain 23 28 + 597: 12(int) Load 596 + 598: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 595 31 + 599: 12(int) AtomicAnd 598 34 31 597 + 600: 219(ptr) AccessChain 23 218 + 601: 19(ivec2) Load 600 + 602: 25(ptr) AccessChain 23 24 + 603: 12(int) Load 602 + 604: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 601 31 + 605: 12(int) AtomicAnd 604 34 31 603 + Store 37(out_i1) 605 + 606: 219(ptr) AccessChain 23 218 + 607: 19(ivec2) Load 606 + 608: 25(ptr) AccessChain 23 28 + 609: 12(int) Load 608 + 610: 25(ptr) AccessChain 23 60 + 611: 12(int) Load 610 + 612: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 607 31 + 613: 12(int) AtomicCompareExchange 612 34 31 31 611 609 + Store 37(out_i1) 613 + 614: 219(ptr) AccessChain 23 218 + 615: 19(ivec2) Load 614 + 616: 25(ptr) AccessChain 23 24 + 617: 12(int) Load 616 + 618: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 615 31 + 619: 12(int) AtomicExchange 618 34 31 617 + Store 37(out_i1) 619 + 620: 219(ptr) AccessChain 23 218 + 621: 19(ivec2) Load 620 + 622: 25(ptr) AccessChain 23 28 + 623: 12(int) Load 622 + 624: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 621 31 + 625: 12(int) AtomicSMax 624 34 31 623 + 626: 219(ptr) AccessChain 23 218 + 627: 19(ivec2) Load 626 + 628: 25(ptr) AccessChain 23 24 + 629: 12(int) Load 628 + 630: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 627 31 + 631: 12(int) AtomicSMax 630 34 31 629 + Store 37(out_i1) 631 + 632: 219(ptr) AccessChain 23 218 + 633: 19(ivec2) Load 632 + 634: 25(ptr) AccessChain 23 28 + 635: 12(int) Load 634 + 636: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 633 31 + 637: 12(int) AtomicSMin 636 34 31 635 + 638: 219(ptr) AccessChain 23 218 + 639: 19(ivec2) Load 638 + 640: 25(ptr) AccessChain 23 24 + 641: 12(int) Load 640 + 642: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 639 31 + 643: 12(int) AtomicSMin 642 34 31 641 + Store 37(out_i1) 643 + 644: 219(ptr) AccessChain 23 218 + 645: 19(ivec2) Load 644 + 646: 25(ptr) AccessChain 23 28 + 647: 12(int) Load 646 + 648: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 645 31 + 649: 12(int) AtomicOr 648 34 31 647 + 650: 219(ptr) AccessChain 23 218 + 651: 19(ivec2) Load 650 + 652: 25(ptr) AccessChain 23 24 + 653: 12(int) Load 652 + 654: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 651 31 + 655: 12(int) AtomicOr 654 34 31 653 + Store 37(out_i1) 655 + 656: 219(ptr) AccessChain 23 218 + 657: 19(ivec2) Load 656 + 658: 25(ptr) AccessChain 23 28 + 659: 12(int) Load 658 + 660: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 657 31 + 661: 12(int) AtomicXor 660 34 31 659 + 662: 219(ptr) AccessChain 23 218 + 663: 19(ivec2) Load 662 + 664: 25(ptr) AccessChain 23 24 + 665: 12(int) Load 664 + 666: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 663 31 + 667: 12(int) AtomicXor 666 34 31 665 + Store 37(out_i1) 667 + 671: 310(ptr) AccessChain 23 309 + 672: 17(ivec2) Load 671 + 673: 123(ptr) AccessChain 23 122 + 674: 16(int) Load 673 + 675: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 672 31 + 676: 16(int) AtomicIAdd 675 34 31 674 + 677: 310(ptr) AccessChain 23 309 + 678: 17(ivec2) Load 677 + 679: 123(ptr) AccessChain 23 122 + 680: 16(int) Load 679 + 681: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 678 31 + 682: 16(int) AtomicIAdd 681 34 31 680 + Store 132(out_u1) 682 + 683: 310(ptr) AccessChain 23 309 + 684: 17(ivec2) Load 683 + 685: 123(ptr) AccessChain 23 122 + 686: 16(int) Load 685 + 687: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 684 31 + 688: 16(int) AtomicAnd 687 34 31 686 + 689: 310(ptr) AccessChain 23 309 + 690: 17(ivec2) Load 689 + 691: 123(ptr) AccessChain 23 122 + 692: 16(int) Load 691 + 693: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 690 31 + 694: 16(int) AtomicAnd 693 34 31 692 + Store 132(out_u1) 694 + 695: 310(ptr) AccessChain 23 309 + 696: 17(ivec2) Load 695 + 697: 123(ptr) AccessChain 23 153 + 698: 16(int) Load 697 + 699: 123(ptr) AccessChain 23 156 + 700: 16(int) Load 699 + 701: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 696 31 + 702: 16(int) AtomicCompareExchange 701 34 31 31 700 698 + Store 132(out_u1) 702 + 703: 310(ptr) AccessChain 23 309 + 704: 17(ivec2) Load 703 + 705: 123(ptr) AccessChain 23 122 + 706: 16(int) Load 705 + 707: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 704 31 + 708: 16(int) AtomicExchange 707 34 31 706 + Store 132(out_u1) 708 + 709: 310(ptr) AccessChain 23 309 + 710: 17(ivec2) Load 709 + 711: 123(ptr) AccessChain 23 122 + 712: 16(int) Load 711 + 713: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 710 31 + 714: 16(int) AtomicUMax 713 34 31 712 + 715: 310(ptr) AccessChain 23 309 + 716: 17(ivec2) Load 715 + 717: 123(ptr) AccessChain 23 122 + 718: 16(int) Load 717 + 719: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 716 31 + 720: 16(int) AtomicUMax 719 34 31 718 + Store 132(out_u1) 720 + 721: 310(ptr) AccessChain 23 309 + 722: 17(ivec2) Load 721 + 723: 123(ptr) AccessChain 23 122 + 724: 16(int) Load 723 + 725: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 722 31 + 726: 16(int) AtomicUMin 725 34 31 724 + 727: 310(ptr) AccessChain 23 309 + 728: 17(ivec2) Load 727 + 729: 123(ptr) AccessChain 23 122 + 730: 16(int) Load 729 + 731: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 728 31 + 732: 16(int) AtomicUMin 731 34 31 730 + Store 132(out_u1) 732 + 733: 310(ptr) AccessChain 23 309 + 734: 17(ivec2) Load 733 + 735: 123(ptr) AccessChain 23 122 + 736: 16(int) Load 735 + 737: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 734 31 + 738: 16(int) AtomicOr 737 34 31 736 + 739: 310(ptr) AccessChain 23 309 + 740: 17(ivec2) Load 739 + 741: 123(ptr) AccessChain 23 122 + 742: 16(int) Load 741 + 743: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 740 31 + 744: 16(int) AtomicOr 743 34 31 742 + Store 132(out_u1) 744 + 745: 310(ptr) AccessChain 23 309 + 746: 17(ivec2) Load 745 + 747: 123(ptr) AccessChain 23 122 + 748: 16(int) Load 747 + 749: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 746 31 + 750: 16(int) AtomicXor 749 34 31 748 + 751: 310(ptr) AccessChain 23 309 + 752: 17(ivec2) Load 751 + 753: 123(ptr) AccessChain 23 122 + 754: 16(int) Load 753 + 755: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 752 31 + 756: 16(int) AtomicXor 755 34 31 754 + Store 132(out_u1) 756 + 757: 219(ptr) AccessChain 23 218 + 758: 19(ivec2) Load 757 + 759: 25(ptr) AccessChain 23 28 + 760: 12(int) Load 759 + 761: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 758 31 + 762: 12(int) AtomicIAdd 761 34 31 760 + 763: 219(ptr) AccessChain 23 218 + 764: 19(ivec2) Load 763 + 765: 25(ptr) AccessChain 23 24 + 766: 12(int) Load 765 + 767: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 764 31 + 768: 12(int) AtomicIAdd 767 34 31 766 + Store 37(out_i1) 768 + 769: 219(ptr) AccessChain 23 218 + 770: 19(ivec2) Load 769 + 771: 25(ptr) AccessChain 23 28 + 772: 12(int) Load 771 + 773: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 770 31 + 774: 12(int) AtomicAnd 773 34 31 772 + 775: 219(ptr) AccessChain 23 218 + 776: 19(ivec2) Load 775 + 777: 25(ptr) AccessChain 23 24 + 778: 12(int) Load 777 + 779: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 776 31 + 780: 12(int) AtomicAnd 779 34 31 778 + Store 37(out_i1) 780 + 781: 219(ptr) AccessChain 23 218 + 782: 19(ivec2) Load 781 + 783: 25(ptr) AccessChain 23 28 + 784: 12(int) Load 783 + 785: 25(ptr) AccessChain 23 60 + 786: 12(int) Load 785 + 787: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 782 31 + 788: 12(int) AtomicCompareExchange 787 34 31 31 786 784 + Store 37(out_i1) 788 + 789: 219(ptr) AccessChain 23 218 + 790: 19(ivec2) Load 789 + 791: 25(ptr) AccessChain 23 24 + 792: 12(int) Load 791 + 793: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 790 31 + 794: 12(int) AtomicExchange 793 34 31 792 + Store 37(out_i1) 794 + 795: 219(ptr) AccessChain 23 218 + 796: 19(ivec2) Load 795 + 797: 25(ptr) AccessChain 23 28 + 798: 12(int) Load 797 + 799: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 796 31 + 800: 12(int) AtomicSMax 799 34 31 798 + 801: 219(ptr) AccessChain 23 218 + 802: 19(ivec2) Load 801 + 803: 25(ptr) AccessChain 23 24 + 804: 12(int) Load 803 + 805: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 802 31 + 806: 12(int) AtomicSMax 805 34 31 804 + Store 37(out_i1) 806 + 807: 219(ptr) AccessChain 23 218 + 808: 19(ivec2) Load 807 + 809: 25(ptr) AccessChain 23 28 + 810: 12(int) Load 809 + 811: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 808 31 + 812: 12(int) AtomicSMin 811 34 31 810 + 813: 219(ptr) AccessChain 23 218 + 814: 19(ivec2) Load 813 + 815: 25(ptr) AccessChain 23 24 + 816: 12(int) Load 815 + 817: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 814 31 + 818: 12(int) AtomicSMin 817 34 31 816 + Store 37(out_i1) 818 + 819: 219(ptr) AccessChain 23 218 + 820: 19(ivec2) Load 819 + 821: 25(ptr) AccessChain 23 28 + 822: 12(int) Load 821 + 823: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 820 31 + 824: 12(int) AtomicOr 823 34 31 822 + 825: 219(ptr) AccessChain 23 218 + 826: 19(ivec2) Load 825 + 827: 25(ptr) AccessChain 23 24 + 828: 12(int) Load 827 + 829: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 826 31 + 830: 12(int) AtomicOr 829 34 31 828 + Store 37(out_i1) 830 + 831: 219(ptr) AccessChain 23 218 + 832: 19(ivec2) Load 831 + 833: 25(ptr) AccessChain 23 28 + 834: 12(int) Load 833 + 835: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 832 31 + 836: 12(int) AtomicXor 835 34 31 834 + 837: 219(ptr) AccessChain 23 218 + 838: 19(ivec2) Load 837 + 839: 25(ptr) AccessChain 23 24 + 840: 12(int) Load 839 + 841: 32(ptr) ImageTexelPointer 581(g_tTex1di1a) 838 31 + 842: 12(int) AtomicXor 841 34 31 840 + Store 37(out_i1) 842 + 843: 310(ptr) AccessChain 23 309 + 844: 17(ivec2) Load 843 + 845: 123(ptr) AccessChain 23 122 + 846: 16(int) Load 845 + 847: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 844 31 + 848: 16(int) AtomicIAdd 847 34 31 846 + 849: 310(ptr) AccessChain 23 309 + 850: 17(ivec2) Load 849 + 851: 123(ptr) AccessChain 23 122 + 852: 16(int) Load 851 + 853: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 850 31 + 854: 16(int) AtomicIAdd 853 34 31 852 + Store 132(out_u1) 854 + 855: 310(ptr) AccessChain 23 309 + 856: 17(ivec2) Load 855 + 857: 123(ptr) AccessChain 23 122 + 858: 16(int) Load 857 + 859: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 856 31 + 860: 16(int) AtomicAnd 859 34 31 858 + 861: 310(ptr) AccessChain 23 309 + 862: 17(ivec2) Load 861 + 863: 123(ptr) AccessChain 23 122 + 864: 16(int) Load 863 + 865: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 862 31 + 866: 16(int) AtomicAnd 865 34 31 864 + Store 132(out_u1) 866 + 867: 310(ptr) AccessChain 23 309 + 868: 17(ivec2) Load 867 + 869: 123(ptr) AccessChain 23 153 + 870: 16(int) Load 869 + 871: 123(ptr) AccessChain 23 156 + 872: 16(int) Load 871 + 873: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 868 31 + 874: 16(int) AtomicCompareExchange 873 34 31 31 872 870 + Store 132(out_u1) 874 + 875: 310(ptr) AccessChain 23 309 + 876: 17(ivec2) Load 875 + 877: 123(ptr) AccessChain 23 122 + 878: 16(int) Load 877 + 879: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 876 31 + 880: 16(int) AtomicExchange 879 34 31 878 + Store 132(out_u1) 880 + 881: 310(ptr) AccessChain 23 309 + 882: 17(ivec2) Load 881 + 883: 123(ptr) AccessChain 23 122 + 884: 16(int) Load 883 + 885: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 882 31 + 886: 16(int) AtomicUMax 885 34 31 884 + 887: 310(ptr) AccessChain 23 309 + 888: 17(ivec2) Load 887 + 889: 123(ptr) AccessChain 23 122 + 890: 16(int) Load 889 + 891: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 888 31 + 892: 16(int) AtomicUMax 891 34 31 890 + Store 132(out_u1) 892 + 893: 310(ptr) AccessChain 23 309 + 894: 17(ivec2) Load 893 + 895: 123(ptr) AccessChain 23 122 + 896: 16(int) Load 895 + 897: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 894 31 + 898: 16(int) AtomicUMin 897 34 31 896 + 899: 310(ptr) AccessChain 23 309 + 900: 17(ivec2) Load 899 + 901: 123(ptr) AccessChain 23 122 + 902: 16(int) Load 901 + 903: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 900 31 + 904: 16(int) AtomicUMin 903 34 31 902 + Store 132(out_u1) 904 + 905: 310(ptr) AccessChain 23 309 + 906: 17(ivec2) Load 905 + 907: 123(ptr) AccessChain 23 122 + 908: 16(int) Load 907 + 909: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 906 31 + 910: 16(int) AtomicOr 909 34 31 908 + 911: 310(ptr) AccessChain 23 309 + 912: 17(ivec2) Load 911 + 913: 123(ptr) AccessChain 23 122 + 914: 16(int) Load 913 + 915: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 912 31 + 916: 16(int) AtomicOr 915 34 31 914 + Store 132(out_u1) 916 + 917: 310(ptr) AccessChain 23 309 + 918: 17(ivec2) Load 917 + 919: 123(ptr) AccessChain 23 122 + 920: 16(int) Load 919 + 921: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 918 31 + 922: 16(int) AtomicXor 921 34 31 920 + 923: 310(ptr) AccessChain 23 309 + 924: 17(ivec2) Load 923 + 925: 123(ptr) AccessChain 23 122 + 926: 16(int) Load 925 + 927: 128(ptr) ImageTexelPointer 670(g_tTex1du1a) 924 31 + 928: 16(int) AtomicXor 927 34 31 926 + Store 132(out_u1) 928 + 932: 25(ptr) AccessChain 23 24 + 933: 12(int) Load 932 + 934: 25(ptr) AccessChain 23 28 + 935: 12(int) Load 934 + 936: 32(ptr) ImageTexelPointer 931(g_tBuffI) 933 31 + 937: 12(int) AtomicIAdd 936 34 31 935 + 938: 25(ptr) AccessChain 23 24 + 939: 12(int) Load 938 + 940: 25(ptr) AccessChain 23 24 + 941: 12(int) Load 940 + 942: 32(ptr) ImageTexelPointer 931(g_tBuffI) 939 31 + 943: 12(int) AtomicIAdd 942 34 31 941 + Store 37(out_i1) 943 + 944: 25(ptr) AccessChain 23 24 + 945: 12(int) Load 944 + 946: 25(ptr) AccessChain 23 28 + 947: 12(int) Load 946 + 948: 32(ptr) ImageTexelPointer 931(g_tBuffI) 945 31 + 949: 12(int) AtomicAnd 948 34 31 947 + 950: 25(ptr) AccessChain 23 24 + 951: 12(int) Load 950 + 952: 25(ptr) AccessChain 23 24 + 953: 12(int) Load 952 + 954: 32(ptr) ImageTexelPointer 931(g_tBuffI) 951 31 + 955: 12(int) AtomicAnd 954 34 31 953 + Store 37(out_i1) 955 + 956: 25(ptr) AccessChain 23 24 + 957: 12(int) Load 956 + 958: 25(ptr) AccessChain 23 28 + 959: 12(int) Load 958 + 960: 25(ptr) AccessChain 23 60 + 961: 12(int) Load 960 + 962: 32(ptr) ImageTexelPointer 931(g_tBuffI) 957 31 + 963: 12(int) AtomicCompareExchange 962 34 31 31 961 959 + Store 37(out_i1) 963 + 964: 25(ptr) AccessChain 23 24 + 965: 12(int) Load 964 + 966: 25(ptr) AccessChain 23 24 + 967: 12(int) Load 966 + 968: 32(ptr) ImageTexelPointer 931(g_tBuffI) 965 31 + 969: 12(int) AtomicExchange 968 34 31 967 + Store 37(out_i1) 969 + 970: 25(ptr) AccessChain 23 24 + 971: 12(int) Load 970 + 972: 25(ptr) AccessChain 23 28 + 973: 12(int) Load 972 + 974: 32(ptr) ImageTexelPointer 931(g_tBuffI) 971 31 + 975: 12(int) AtomicSMax 974 34 31 973 + 976: 25(ptr) AccessChain 23 24 + 977: 12(int) Load 976 + 978: 25(ptr) AccessChain 23 24 + 979: 12(int) Load 978 + 980: 32(ptr) ImageTexelPointer 931(g_tBuffI) 977 31 + 981: 12(int) AtomicSMax 980 34 31 979 + Store 37(out_i1) 981 + 982: 25(ptr) AccessChain 23 24 + 983: 12(int) Load 982 + 984: 25(ptr) AccessChain 23 28 + 985: 12(int) Load 984 + 986: 32(ptr) ImageTexelPointer 931(g_tBuffI) 983 31 + 987: 12(int) AtomicSMin 986 34 31 985 + 988: 25(ptr) AccessChain 23 24 + 989: 12(int) Load 988 + 990: 25(ptr) AccessChain 23 24 + 991: 12(int) Load 990 + 992: 32(ptr) ImageTexelPointer 931(g_tBuffI) 989 31 + 993: 12(int) AtomicSMin 992 34 31 991 + Store 37(out_i1) 993 + 994: 25(ptr) AccessChain 23 24 + 995: 12(int) Load 994 + 996: 25(ptr) AccessChain 23 28 + 997: 12(int) Load 996 + 998: 32(ptr) ImageTexelPointer 931(g_tBuffI) 995 31 + 999: 12(int) AtomicOr 998 34 31 997 + 1000: 25(ptr) AccessChain 23 24 + 1001: 12(int) Load 1000 + 1002: 25(ptr) AccessChain 23 24 + 1003: 12(int) Load 1002 + 1004: 32(ptr) ImageTexelPointer 931(g_tBuffI) 1001 31 + 1005: 12(int) AtomicOr 1004 34 31 1003 + Store 37(out_i1) 1005 + 1006: 25(ptr) AccessChain 23 24 + 1007: 12(int) Load 1006 + 1008: 25(ptr) AccessChain 23 28 + 1009: 12(int) Load 1008 + 1010: 32(ptr) ImageTexelPointer 931(g_tBuffI) 1007 31 + 1011: 12(int) AtomicXor 1010 34 31 1009 + 1012: 25(ptr) AccessChain 23 24 + 1013: 12(int) Load 1012 + 1014: 25(ptr) AccessChain 23 24 + 1015: 12(int) Load 1014 + 1016: 32(ptr) ImageTexelPointer 931(g_tBuffI) 1013 31 + 1017: 12(int) AtomicXor 1016 34 31 1015 + Store 37(out_i1) 1017 + 1021: 123(ptr) AccessChain 23 122 + 1022: 16(int) Load 1021 + 1023: 123(ptr) AccessChain 23 122 + 1024: 16(int) Load 1023 + 1025: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1022 31 + 1026: 16(int) AtomicIAdd 1025 34 31 1024 + 1027: 123(ptr) AccessChain 23 122 + 1028: 16(int) Load 1027 + 1029: 123(ptr) AccessChain 23 122 + 1030: 16(int) Load 1029 + 1031: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1028 31 + 1032: 16(int) AtomicIAdd 1031 34 31 1030 + Store 132(out_u1) 1032 + 1033: 123(ptr) AccessChain 23 122 + 1034: 16(int) Load 1033 + 1035: 123(ptr) AccessChain 23 122 + 1036: 16(int) Load 1035 + 1037: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1034 31 + 1038: 16(int) AtomicAnd 1037 34 31 1036 + 1039: 123(ptr) AccessChain 23 122 + 1040: 16(int) Load 1039 + 1041: 123(ptr) AccessChain 23 122 + 1042: 16(int) Load 1041 + 1043: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1040 31 + 1044: 16(int) AtomicAnd 1043 34 31 1042 + Store 132(out_u1) 1044 + 1045: 123(ptr) AccessChain 23 122 + 1046: 16(int) Load 1045 + 1047: 123(ptr) AccessChain 23 153 + 1048: 16(int) Load 1047 + 1049: 123(ptr) AccessChain 23 156 + 1050: 16(int) Load 1049 + 1051: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1046 31 + 1052: 16(int) AtomicCompareExchange 1051 34 31 31 1050 1048 + Store 132(out_u1) 1052 + 1053: 123(ptr) AccessChain 23 122 + 1054: 16(int) Load 1053 + 1055: 123(ptr) AccessChain 23 122 + 1056: 16(int) Load 1055 + 1057: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1054 31 + 1058: 16(int) AtomicExchange 1057 34 31 1056 + Store 132(out_u1) 1058 + 1059: 123(ptr) AccessChain 23 122 + 1060: 16(int) Load 1059 + 1061: 123(ptr) AccessChain 23 122 + 1062: 16(int) Load 1061 + 1063: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1060 31 + 1064: 16(int) AtomicUMax 1063 34 31 1062 + 1065: 123(ptr) AccessChain 23 122 + 1066: 16(int) Load 1065 + 1067: 123(ptr) AccessChain 23 122 + 1068: 16(int) Load 1067 + 1069: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1066 31 + 1070: 16(int) AtomicUMax 1069 34 31 1068 + Store 132(out_u1) 1070 + 1071: 123(ptr) AccessChain 23 122 + 1072: 16(int) Load 1071 + 1073: 123(ptr) AccessChain 23 122 + 1074: 16(int) Load 1073 + 1075: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1072 31 + 1076: 16(int) AtomicUMin 1075 34 31 1074 + 1077: 123(ptr) AccessChain 23 122 + 1078: 16(int) Load 1077 + 1079: 123(ptr) AccessChain 23 122 + 1080: 16(int) Load 1079 + 1081: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1078 31 + 1082: 16(int) AtomicUMin 1081 34 31 1080 + Store 132(out_u1) 1082 + 1083: 123(ptr) AccessChain 23 122 + 1084: 16(int) Load 1083 + 1085: 123(ptr) AccessChain 23 122 + 1086: 16(int) Load 1085 + 1087: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1084 31 + 1088: 16(int) AtomicOr 1087 34 31 1086 + 1089: 123(ptr) AccessChain 23 122 + 1090: 16(int) Load 1089 + 1091: 123(ptr) AccessChain 23 122 + 1092: 16(int) Load 1091 + 1093: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1090 31 + 1094: 16(int) AtomicOr 1093 34 31 1092 + Store 132(out_u1) 1094 + 1095: 123(ptr) AccessChain 23 122 + 1096: 16(int) Load 1095 + 1097: 123(ptr) AccessChain 23 122 + 1098: 16(int) Load 1097 + 1099: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1096 31 + 1100: 16(int) AtomicXor 1099 34 31 1098 + 1101: 123(ptr) AccessChain 23 122 + 1102: 16(int) Load 1101 + 1103: 123(ptr) AccessChain 23 122 + 1104: 16(int) Load 1103 + 1105: 128(ptr) ImageTexelPointer 1020(g_tBuffU) 1102 31 + 1106: 16(int) AtomicXor 1105 34 31 1104 + Store 132(out_u1) 1106 + 1112: 1111(ptr) AccessChain 1108(psout) 122 + Store 1112 1110 + 1113:8(PS_OUTPUT) Load 1108(psout) + ReturnValue 1113 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.bracket.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.bracket.frag.out new file mode 100644 index 0000000000..d829a7bcd7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.bracket.frag.out @@ -0,0 +1,2665 @@ +hlsl.rw.bracket.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi4; ( temp 4-component vector of int) +0:42 Function Parameters: +0:42 'x' ( in 4-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' ( in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; ( temp 4-component vector of uint) +0:43 Function Parameters: +0:43 'x' ( in 4-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' ( in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; ( temp 4-component vector of float) +0:44 Function Parameters: +0:44 'x' ( in 4-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' ( in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; ( temp void) +0:46 Function Parameters: +0:46 'x' ( out 4-component vector of int) +0:? Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'x' ( out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; ( temp void) +0:47 Function Parameters: +0:47 'x' ( out 4-component vector of uint) +0:? Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 'x' ( out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; ( temp void) +0:48 Function Parameters: +0:48 'x' ( out 4-component vector of float) +0:? Sequence +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'x' ( out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( ( temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float ( temp 4-component vector of float) +0:50 c4: direct index for structure ( uniform 4-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad ( temp 4-component vector of float) +0:57 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:57 c1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp 4-component vector of float) +0:59 'r00' ( temp 4-component vector of float) +0:59 imageLoad ( temp 4-component vector of float) +0:59 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:59 c1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp 4-component vector of int) +0:60 'r01' ( temp 4-component vector of int) +0:60 imageLoad ( temp 4-component vector of int) +0:60 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:60 c1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of uint) +0:61 'r02' ( temp 4-component vector of uint) +0:61 imageLoad ( temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:61 c1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp 4-component vector of float) +0:64 'r10' ( temp 4-component vector of float) +0:64 imageLoad ( temp 4-component vector of float) +0:64 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:64 c2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp 4-component vector of int) +0:65 'r11' ( temp 4-component vector of int) +0:65 imageLoad ( temp 4-component vector of int) +0:65 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:65 c2: direct index for structure ( uniform 2-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp 4-component vector of uint) +0:66 'r12' ( temp 4-component vector of uint) +0:66 imageLoad ( temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:66 c2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'r20' ( temp 4-component vector of float) +0:69 imageLoad ( temp 4-component vector of float) +0:69 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:69 c3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of int) +0:70 'r21' ( temp 4-component vector of int) +0:70 imageLoad ( temp 4-component vector of int) +0:70 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:70 c3: direct index for structure ( uniform 3-component vector of int) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of uint) +0:71 'r22' ( temp 4-component vector of uint) +0:71 imageLoad ( temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:71 c3: direct index for structure ( uniform 3-component vector of int) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child ( temp 4-component vector of float) +0:73 'lf4' ( temp 4-component vector of float) +0:73 uf4: direct index for structure ( uniform 4-component vector of float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp 4-component vector of float) +0:77 'storeTemp' ( temp 4-component vector of float) +0:77 Function Call: SomeValue( ( temp 4-component vector of float) +0:77 imageStore ( temp void) +0:77 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:77 c1: direct index for structure ( uniform int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' ( temp 4-component vector of float) +0:77 'storeTemp' ( temp 4-component vector of float) +0:78 Sequence +0:78 imageStore ( temp void) +0:78 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:78 c1: direct index for structure ( uniform int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' ( temp 4-component vector of float) +0:78 'lf4' ( temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child ( temp 4-component vector of int) +0:79 'storeTemp' ( temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore ( temp void) +0:79 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:79 c1: direct index for structure ( uniform int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' ( temp 4-component vector of int) +0:79 'storeTemp' ( temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child ( temp 4-component vector of uint) +0:80 'storeTemp' ( temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore ( temp void) +0:80 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:80 c1: direct index for structure ( uniform int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' ( temp 4-component vector of uint) +0:80 'storeTemp' ( temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child ( temp 4-component vector of float) +0:83 'val1' ( temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child ( temp int) +0:83 'coordTemp' ( temp int) +0:83 c1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 imageLoad ( temp 4-component vector of float) +0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 vector scale second child into first child ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore ( temp void) +0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child ( temp int) +0:84 'coordTemp' ( temp int) +0:84 c1: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 imageLoad ( temp 4-component vector of float) +0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 subtract second child into first child ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore ( temp void) +0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child ( temp int) +0:85 'coordTemp' ( temp int) +0:85 c1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 imageLoad ( temp 4-component vector of float) +0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 add second child into first child ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore ( temp void) +0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child ( temp int) +0:87 'coordTemp' ( temp int) +0:87 c1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 imageLoad ( temp 4-component vector of int) +0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 divide second child into first child ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore ( temp void) +0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child ( temp int) +0:88 'coordTemp' ( temp int) +0:88 c1: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 imageLoad ( temp 4-component vector of int) +0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 mod second child into first child ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore ( temp void) +0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child ( temp int) +0:89 'coordTemp' ( temp int) +0:89 c1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 imageLoad ( temp 4-component vector of int) +0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 and second child into first child ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore ( temp void) +0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child ( temp int) +0:90 'coordTemp' ( temp int) +0:90 c1: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 imageLoad ( temp 4-component vector of int) +0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 or second child into first child ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore ( temp void) +0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child ( temp int) +0:91 'coordTemp' ( temp int) +0:91 c1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 imageLoad ( temp 4-component vector of int) +0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 left shift second child into first child ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore ( temp void) +0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child ( temp int) +0:92 'coordTemp' ( temp int) +0:92 c1: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 imageLoad ( temp 4-component vector of int) +0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 right shift second child into first child ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore ( temp void) +0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'storeTemp' ( temp 4-component vector of float) +0:95 Function Call: SomeValue( ( temp 4-component vector of float) +0:95 imageStore ( temp void) +0:95 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:95 c2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' ( temp 4-component vector of float) +0:95 'storeTemp' ( temp 4-component vector of float) +0:96 Sequence +0:96 imageStore ( temp void) +0:96 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:96 c2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' ( temp 4-component vector of float) +0:96 'lf4' ( temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child ( temp 4-component vector of int) +0:97 'storeTemp' ( temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore ( temp void) +0:97 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:97 c2: direct index for structure ( uniform 2-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' ( temp 4-component vector of int) +0:97 'storeTemp' ( temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore ( temp void) +0:98 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:98 c2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child ( temp 4-component vector of float) +0:101 'storeTemp' ( temp 4-component vector of float) +0:101 Function Call: SomeValue( ( temp 4-component vector of float) +0:101 imageStore ( temp void) +0:101 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:101 c3: direct index for structure ( uniform 3-component vector of int) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' ( temp 4-component vector of float) +0:101 'storeTemp' ( temp 4-component vector of float) +0:102 Sequence +0:102 imageStore ( temp void) +0:102 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:102 c3: direct index for structure ( uniform 3-component vector of int) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' ( temp 4-component vector of float) +0:102 'lf4' ( temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child ( temp 4-component vector of int) +0:103 'storeTemp' ( temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore ( temp void) +0:103 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:103 c3: direct index for structure ( uniform 3-component vector of int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' ( temp 4-component vector of int) +0:103 'storeTemp' ( temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child ( temp 4-component vector of uint) +0:104 'storeTemp' ( temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore ( temp void) +0:104 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:104 c3: direct index for structure ( uniform 3-component vector of int) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' ( temp 4-component vector of uint) +0:104 'storeTemp' ( temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; ( temp 4-component vector of float) +0:107 imageLoad ( temp 4-component vector of float) +0:107 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:107 c1: direct index for structure ( uniform int) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; ( temp 4-component vector of int) +0:108 imageLoad ( temp 4-component vector of int) +0:108 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:108 c1: direct index for structure ( uniform int) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; ( temp 4-component vector of uint) +0:109 imageLoad ( temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:109 c1: direct index for structure ( uniform int) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma ( temp void) +0:111 Function Call: Fn2(vf4; ( temp void) +0:111 'tempArg' ( temp 4-component vector of float) +0:111 Sequence +0:111 imageStore ( temp void) +0:111 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:111 c1: direct index for structure ( uniform int) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' ( temp 4-component vector of float) +0:111 'tempArg' ( temp 4-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi4; ( temp void) +0:112 'tempArg' ( temp 4-component vector of int) +0:112 Sequence +0:112 imageStore ( temp void) +0:112 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:112 c1: direct index for structure ( uniform int) +0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' ( temp 4-component vector of int) +0:112 'tempArg' ( temp 4-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu4; ( temp void) +0:113 'tempArg' ( temp 4-component vector of uint) +0:113 Sequence +0:113 imageStore ( temp void) +0:113 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:113 c1: direct index for structure ( uniform int) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' ( temp 4-component vector of uint) +0:113 'tempArg' ( temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child ( temp int) +0:117 'coordTemp' ( temp int) +0:117 c1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageLoad ( temp 4-component vector of float) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child ( temp int) +0:118 'coordTemp' ( temp int) +0:118 c1: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageLoad ( temp 4-component vector of int) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child ( temp int) +0:119 'coordTemp' ( temp int) +0:119 c1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageLoad ( temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child ( temp int) +0:121 'coordTemp' ( temp int) +0:121 c1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageLoad ( temp 4-component vector of float) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child ( temp int) +0:122 'coordTemp' ( temp int) +0:122 c1: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageLoad ( temp 4-component vector of int) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child ( temp int) +0:123 'coordTemp' ( temp int) +0:123 c1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageLoad ( temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'coordTemp' ( temp int) +0:126 c1: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 imageLoad ( temp 4-component vector of float) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 Post-Increment ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child ( temp int) +0:127 'coordTemp' ( temp int) +0:127 c1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 imageLoad ( temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 Post-Decrement ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child ( temp int) +0:128 'coordTemp' ( temp int) +0:128 c1: direct index for structure ( uniform int) +0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 imageLoad ( temp 4-component vector of int) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 Post-Increment ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child ( temp int) +0:130 'coordTemp' ( temp int) +0:130 c1: direct index for structure ( uniform int) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 imageLoad ( temp 4-component vector of float) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 Post-Decrement ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'coordTemp' ( temp int) +0:131 c1: direct index for structure ( uniform int) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 imageLoad ( temp 4-component vector of int) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 Post-Increment ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child ( temp int) +0:132 'coordTemp' ( temp int) +0:132 c1: direct index for structure ( uniform int) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child ( temp 4-component vector of uint) +0:132 'storeTempPre' ( temp 4-component vector of uint) +0:132 imageLoad ( temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 move second child to first child ( temp 4-component vector of uint) +0:132 'storeTempPost' ( temp 4-component vector of uint) +0:132 'storeTempPre' ( temp 4-component vector of uint) +0:132 Post-Decrement ( temp 4-component vector of uint) +0:132 'storeTempPost' ( temp 4-component vector of uint) +0:132 imageStore ( temp void) +0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 'storeTempPost' ( temp 4-component vector of uint) +0:132 'storeTempPre' ( temp 4-component vector of uint) +0:135 Sequence +0:135 move second child to first child ( temp 4-component vector of float) +0:135 'storeTemp' ( temp 4-component vector of float) +0:? imageLoad ( temp 4-component vector of float) +0:135 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore ( temp void) +0:135 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' ( temp 4-component vector of float) +0:135 'storeTemp' ( temp 4-component vector of float) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 Color: direct index for structure ( temp 4-component vector of float) +0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Branch: Return with expression +0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Constant: +0:53 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi4; ( temp 4-component vector of int) +0:42 Function Parameters: +0:42 'x' ( in 4-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' ( in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; ( temp 4-component vector of uint) +0:43 Function Parameters: +0:43 'x' ( in 4-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' ( in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; ( temp 4-component vector of float) +0:44 Function Parameters: +0:44 'x' ( in 4-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' ( in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; ( temp void) +0:46 Function Parameters: +0:46 'x' ( out 4-component vector of int) +0:? Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 'x' ( out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; ( temp void) +0:47 Function Parameters: +0:47 'x' ( out 4-component vector of uint) +0:? Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 'x' ( out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; ( temp void) +0:48 Function Parameters: +0:48 'x' ( out 4-component vector of float) +0:? Sequence +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'x' ( out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( ( temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float ( temp 4-component vector of float) +0:50 c4: direct index for structure ( uniform 4-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad ( temp 4-component vector of float) +0:57 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:57 c1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp 4-component vector of float) +0:59 'r00' ( temp 4-component vector of float) +0:59 imageLoad ( temp 4-component vector of float) +0:59 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:59 c1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp 4-component vector of int) +0:60 'r01' ( temp 4-component vector of int) +0:60 imageLoad ( temp 4-component vector of int) +0:60 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:60 c1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of uint) +0:61 'r02' ( temp 4-component vector of uint) +0:61 imageLoad ( temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:61 c1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp 4-component vector of float) +0:64 'r10' ( temp 4-component vector of float) +0:64 imageLoad ( temp 4-component vector of float) +0:64 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:64 c2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp 4-component vector of int) +0:65 'r11' ( temp 4-component vector of int) +0:65 imageLoad ( temp 4-component vector of int) +0:65 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:65 c2: direct index for structure ( uniform 2-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp 4-component vector of uint) +0:66 'r12' ( temp 4-component vector of uint) +0:66 imageLoad ( temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:66 c2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'r20' ( temp 4-component vector of float) +0:69 imageLoad ( temp 4-component vector of float) +0:69 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:69 c3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of int) +0:70 'r21' ( temp 4-component vector of int) +0:70 imageLoad ( temp 4-component vector of int) +0:70 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:70 c3: direct index for structure ( uniform 3-component vector of int) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of uint) +0:71 'r22' ( temp 4-component vector of uint) +0:71 imageLoad ( temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:71 c3: direct index for structure ( uniform 3-component vector of int) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child ( temp 4-component vector of float) +0:73 'lf4' ( temp 4-component vector of float) +0:73 uf4: direct index for structure ( uniform 4-component vector of float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp 4-component vector of float) +0:77 'storeTemp' ( temp 4-component vector of float) +0:77 Function Call: SomeValue( ( temp 4-component vector of float) +0:77 imageStore ( temp void) +0:77 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:77 c1: direct index for structure ( uniform int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' ( temp 4-component vector of float) +0:77 'storeTemp' ( temp 4-component vector of float) +0:78 Sequence +0:78 imageStore ( temp void) +0:78 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:78 c1: direct index for structure ( uniform int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' ( temp 4-component vector of float) +0:78 'lf4' ( temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child ( temp 4-component vector of int) +0:79 'storeTemp' ( temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore ( temp void) +0:79 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:79 c1: direct index for structure ( uniform int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' ( temp 4-component vector of int) +0:79 'storeTemp' ( temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child ( temp 4-component vector of uint) +0:80 'storeTemp' ( temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore ( temp void) +0:80 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:80 c1: direct index for structure ( uniform int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' ( temp 4-component vector of uint) +0:80 'storeTemp' ( temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child ( temp 4-component vector of float) +0:83 'val1' ( temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child ( temp int) +0:83 'coordTemp' ( temp int) +0:83 c1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 imageLoad ( temp 4-component vector of float) +0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 vector scale second child into first child ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore ( temp void) +0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 4-component vector of float) +0:83 'storeTemp' ( temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child ( temp int) +0:84 'coordTemp' ( temp int) +0:84 c1: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 imageLoad ( temp 4-component vector of float) +0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 subtract second child into first child ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore ( temp void) +0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 4-component vector of float) +0:84 'storeTemp' ( temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child ( temp int) +0:85 'coordTemp' ( temp int) +0:85 c1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 imageLoad ( temp 4-component vector of float) +0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 add second child into first child ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore ( temp void) +0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 4-component vector of float) +0:85 'storeTemp' ( temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child ( temp int) +0:87 'coordTemp' ( temp int) +0:87 c1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 imageLoad ( temp 4-component vector of int) +0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 divide second child into first child ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore ( temp void) +0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:87 'storeTemp' ( temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child ( temp int) +0:88 'coordTemp' ( temp int) +0:88 c1: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 imageLoad ( temp 4-component vector of int) +0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 mod second child into first child ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore ( temp void) +0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:88 'storeTemp' ( temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child ( temp int) +0:89 'coordTemp' ( temp int) +0:89 c1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 imageLoad ( temp 4-component vector of int) +0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 and second child into first child ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore ( temp void) +0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:89 'storeTemp' ( temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child ( temp int) +0:90 'coordTemp' ( temp int) +0:90 c1: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 imageLoad ( temp 4-component vector of int) +0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 or second child into first child ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore ( temp void) +0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:90 'storeTemp' ( temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child ( temp int) +0:91 'coordTemp' ( temp int) +0:91 c1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 imageLoad ( temp 4-component vector of int) +0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 left shift second child into first child ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore ( temp void) +0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:91 'storeTemp' ( temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child ( temp int) +0:92 'coordTemp' ( temp int) +0:92 c1: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 imageLoad ( temp 4-component vector of int) +0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 right shift second child into first child ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore ( temp void) +0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:92 'storeTemp' ( temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'storeTemp' ( temp 4-component vector of float) +0:95 Function Call: SomeValue( ( temp 4-component vector of float) +0:95 imageStore ( temp void) +0:95 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:95 c2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' ( temp 4-component vector of float) +0:95 'storeTemp' ( temp 4-component vector of float) +0:96 Sequence +0:96 imageStore ( temp void) +0:96 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:96 c2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' ( temp 4-component vector of float) +0:96 'lf4' ( temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child ( temp 4-component vector of int) +0:97 'storeTemp' ( temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore ( temp void) +0:97 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:97 c2: direct index for structure ( uniform 2-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' ( temp 4-component vector of int) +0:97 'storeTemp' ( temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore ( temp void) +0:98 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:98 c2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' ( temp 4-component vector of uint) +0:98 'storeTemp' ( temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child ( temp 4-component vector of float) +0:101 'storeTemp' ( temp 4-component vector of float) +0:101 Function Call: SomeValue( ( temp 4-component vector of float) +0:101 imageStore ( temp void) +0:101 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:101 c3: direct index for structure ( uniform 3-component vector of int) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' ( temp 4-component vector of float) +0:101 'storeTemp' ( temp 4-component vector of float) +0:102 Sequence +0:102 imageStore ( temp void) +0:102 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:102 c3: direct index for structure ( uniform 3-component vector of int) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' ( temp 4-component vector of float) +0:102 'lf4' ( temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child ( temp 4-component vector of int) +0:103 'storeTemp' ( temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore ( temp void) +0:103 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:103 c3: direct index for structure ( uniform 3-component vector of int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' ( temp 4-component vector of int) +0:103 'storeTemp' ( temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child ( temp 4-component vector of uint) +0:104 'storeTemp' ( temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore ( temp void) +0:104 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:104 c3: direct index for structure ( uniform 3-component vector of int) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' ( temp 4-component vector of uint) +0:104 'storeTemp' ( temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; ( temp 4-component vector of float) +0:107 imageLoad ( temp 4-component vector of float) +0:107 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:107 c1: direct index for structure ( uniform int) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; ( temp 4-component vector of int) +0:108 imageLoad ( temp 4-component vector of int) +0:108 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:108 c1: direct index for structure ( uniform int) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; ( temp 4-component vector of uint) +0:109 imageLoad ( temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:109 c1: direct index for structure ( uniform int) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma ( temp void) +0:111 Function Call: Fn2(vf4; ( temp void) +0:111 'tempArg' ( temp 4-component vector of float) +0:111 Sequence +0:111 imageStore ( temp void) +0:111 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:111 c1: direct index for structure ( uniform int) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' ( temp 4-component vector of float) +0:111 'tempArg' ( temp 4-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi4; ( temp void) +0:112 'tempArg' ( temp 4-component vector of int) +0:112 Sequence +0:112 imageStore ( temp void) +0:112 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:112 c1: direct index for structure ( uniform int) +0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' ( temp 4-component vector of int) +0:112 'tempArg' ( temp 4-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu4; ( temp void) +0:113 'tempArg' ( temp 4-component vector of uint) +0:113 Sequence +0:113 imageStore ( temp void) +0:113 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:113 c1: direct index for structure ( uniform int) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' ( temp 4-component vector of uint) +0:113 'tempArg' ( temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child ( temp int) +0:117 'coordTemp' ( temp int) +0:117 c1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageLoad ( temp 4-component vector of float) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 4-component vector of float) +0:117 'storeTemp' ( temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child ( temp int) +0:118 'coordTemp' ( temp int) +0:118 c1: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageLoad ( temp 4-component vector of int) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:118 'storeTemp' ( temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child ( temp int) +0:119 'coordTemp' ( temp int) +0:119 c1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageLoad ( temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:119 'storeTemp' ( temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child ( temp int) +0:121 'coordTemp' ( temp int) +0:121 c1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageLoad ( temp 4-component vector of float) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 4-component vector of float) +0:121 'storeTemp' ( temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child ( temp int) +0:122 'coordTemp' ( temp int) +0:122 c1: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageLoad ( temp 4-component vector of int) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:122 'storeTemp' ( temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child ( temp int) +0:123 'coordTemp' ( temp int) +0:123 c1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageLoad ( temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:123 'storeTemp' ( temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'coordTemp' ( temp int) +0:126 c1: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 imageLoad ( temp 4-component vector of float) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:126 Post-Increment ( temp 4-component vector of float) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 4-component vector of float) +0:126 'storeTempPre' ( temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child ( temp int) +0:127 'coordTemp' ( temp int) +0:127 c1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 imageLoad ( temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:127 Post-Decrement ( temp 4-component vector of uint) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 4-component vector of uint) +0:127 'storeTempPre' ( temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child ( temp int) +0:128 'coordTemp' ( temp int) +0:128 c1: direct index for structure ( uniform int) +0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 imageLoad ( temp 4-component vector of int) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:128 Post-Increment ( temp 4-component vector of int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 4-component vector of int) +0:128 'storeTempPre' ( temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child ( temp int) +0:130 'coordTemp' ( temp int) +0:130 c1: direct index for structure ( uniform int) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 imageLoad ( temp 4-component vector of float) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:130 Post-Decrement ( temp 4-component vector of float) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 4-component vector of float) +0:130 'storeTempPre' ( temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'coordTemp' ( temp int) +0:131 c1: direct index for structure ( uniform int) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 imageLoad ( temp 4-component vector of int) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:131 Post-Increment ( temp 4-component vector of int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 4-component vector of int) +0:131 'storeTempPre' ( temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child ( temp int) +0:132 'coordTemp' ( temp int) +0:132 c1: direct index for structure ( uniform int) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child ( temp 4-component vector of uint) +0:132 'storeTempPre' ( temp 4-component vector of uint) +0:132 imageLoad ( temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 move second child to first child ( temp 4-component vector of uint) +0:132 'storeTempPost' ( temp 4-component vector of uint) +0:132 'storeTempPre' ( temp 4-component vector of uint) +0:132 Post-Decrement ( temp 4-component vector of uint) +0:132 'storeTempPost' ( temp 4-component vector of uint) +0:132 imageStore ( temp void) +0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 'storeTempPost' ( temp 4-component vector of uint) +0:132 'storeTempPre' ( temp 4-component vector of uint) +0:135 Sequence +0:135 move second child to first child ( temp 4-component vector of float) +0:135 'storeTemp' ( temp 4-component vector of float) +0:? imageLoad ( temp 4-component vector of float) +0:135 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore ( temp void) +0:135 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' ( temp 4-component vector of float) +0:135 'storeTemp' ( temp 4-component vector of float) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 Color: direct index for structure ( temp 4-component vector of float) +0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Branch: Return with expression +0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Constant: +0:53 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) +0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) +0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) +0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) +0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) +0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) +0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) +0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) +0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) +0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) +0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) +0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 607 + + Capability Shader + Capability Image1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 583 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 29 "Fn2(vi4;" + Name 28 "x" + Name 33 "Fn2(vu4;" + Name 32 "x" + Name 37 "Fn2(vf4;" + Name 36 "x" + Name 40 "SomeValue(" + Name 42 "PS_OUTPUT" + MemberName 42(PS_OUTPUT) 0 "Color" + Name 44 "@main(" + Name 63 "$Global" + MemberName 63($Global) 0 "c1" + MemberName 63($Global) 1 "c2" + MemberName 63($Global) 2 "c3" + MemberName 63($Global) 3 "c4" + MemberName 63($Global) 4 "o1" + MemberName 63($Global) 5 "o2" + MemberName 63($Global) 6 "o3" + MemberName 63($Global) 7 "o4" + MemberName 63($Global) 8 "uf4" + MemberName 63($Global) 9 "ui4" + MemberName 63($Global) 10 "uu4" + Name 65 "" + Name 75 "g_tTex1df4" + Name 81 "r00" + Name 86 "r01" + Name 89 "g_tTex1di4" + Name 94 "r02" + Name 97 "g_tTex1du4" + Name 102 "r10" + Name 105 "g_tTex2df4" + Name 112 "r11" + Name 115 "g_tTex2di4" + Name 120 "r12" + Name 123 "g_tTex2du4" + Name 128 "r20" + Name 131 "g_tTex3df4" + Name 138 "r21" + Name 141 "g_tTex3di4" + Name 146 "r22" + Name 149 "g_tTex3du4" + Name 154 "lf4" + Name 159 "storeTemp" + Name 169 "storeTemp" + Name 176 "storeTemp" + Name 185 "val1" + Name 187 "coordTemp" + Name 190 "storeTemp" + Name 201 "coordTemp" + Name 204 "storeTemp" + Name 215 "coordTemp" + Name 218 "storeTemp" + Name 229 "coordTemp" + Name 232 "storeTemp" + Name 242 "coordTemp" + Name 245 "storeTemp" + Name 255 "coordTemp" + Name 258 "storeTemp" + Name 269 "coordTemp" + Name 272 "storeTemp" + Name 283 "coordTemp" + Name 286 "storeTemp" + Name 296 "coordTemp" + Name 299 "storeTemp" + Name 309 "storeTemp" + Name 319 "storeTemp" + Name 326 "storeTemp" + Name 333 "storeTemp" + Name 343 "storeTemp" + Name 351 "storeTemp" + Name 362 "param" + Name 368 "param" + Name 374 "param" + Name 376 "tempArg" + Name 377 "param" + Name 384 "tempArg" + Name 385 "param" + Name 392 "tempArg" + Name 393 "param" + Name 400 "coordTemp" + Name 403 "storeTemp" + Name 414 "coordTemp" + Name 417 "storeTemp" + Name 427 "coordTemp" + Name 430 "storeTemp" + Name 440 "coordTemp" + Name 443 "storeTemp" + Name 453 "coordTemp" + Name 456 "storeTemp" + Name 466 "coordTemp" + Name 469 "storeTemp" + Name 479 "coordTemp" + Name 482 "storeTempPre" + Name 486 "storeTempPost" + Name 494 "coordTemp" + Name 497 "storeTempPre" + Name 501 "storeTempPost" + Name 509 "coordTemp" + Name 512 "storeTempPre" + Name 516 "storeTempPost" + Name 524 "coordTemp" + Name 527 "storeTempPre" + Name 531 "storeTempPost" + Name 539 "coordTemp" + Name 542 "storeTempPre" + Name 546 "storeTempPost" + Name 554 "coordTemp" + Name 557 "storeTempPre" + Name 561 "storeTempPost" + Name 569 "storeTemp" + Name 576 "psout" + Name 583 "@entryPointOutput.Color" + Name 588 "g_sSamp" + Name 591 "g_tTex1df4a" + Name 594 "g_tTex1di4a" + Name 597 "g_tTex1du4a" + Name 600 "g_tTex2df4a" + Name 603 "g_tTex2di4a" + Name 606 "g_tTex2du4a" + MemberDecorate 63($Global) 0 Offset 0 + MemberDecorate 63($Global) 1 Offset 8 + MemberDecorate 63($Global) 2 Offset 16 + MemberDecorate 63($Global) 3 Offset 32 + MemberDecorate 63($Global) 4 Offset 48 + MemberDecorate 63($Global) 5 Offset 56 + MemberDecorate 63($Global) 6 Offset 64 + MemberDecorate 63($Global) 7 Offset 80 + MemberDecorate 63($Global) 8 Offset 96 + MemberDecorate 63($Global) 9 Offset 112 + MemberDecorate 63($Global) 10 Offset 128 + Decorate 63($Global) Block + Decorate 65 DescriptorSet 0 + Decorate 75(g_tTex1df4) DescriptorSet 0 + Decorate 75(g_tTex1df4) Binding 0 + Decorate 89(g_tTex1di4) DescriptorSet 0 + Decorate 97(g_tTex1du4) DescriptorSet 0 + Decorate 105(g_tTex2df4) DescriptorSet 0 + Decorate 115(g_tTex2di4) DescriptorSet 0 + Decorate 123(g_tTex2du4) DescriptorSet 0 + Decorate 131(g_tTex3df4) DescriptorSet 0 + Decorate 141(g_tTex3di4) DescriptorSet 0 + Decorate 149(g_tTex3du4) DescriptorSet 0 + Decorate 583(@entryPointOutput.Color) Location 0 + Decorate 588(g_sSamp) DescriptorSet 0 + Decorate 588(g_sSamp) Binding 0 + Decorate 591(g_tTex1df4a) DescriptorSet 0 + Decorate 594(g_tTex1di4a) DescriptorSet 0 + Decorate 597(g_tTex1du4a) DescriptorSet 0 + Decorate 600(g_tTex2df4a) DescriptorSet 0 + Decorate 603(g_tTex2di4a) DescriptorSet 0 + Decorate 606(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec4) + 42(PS_OUTPUT): TypeStruct 21(fvec4) + 43: TypeFunction 42(PS_OUTPUT) + 55: 6(int) Constant 0 + 56: 7(ivec4) ConstantComposite 55 55 55 55 + 57: 13(int) Constant 0 + 58: 14(ivec4) ConstantComposite 57 57 57 57 + 59: 20(float) Constant 0 + 60: 21(fvec4) ConstantComposite 59 59 59 59 + 61: TypeVector 6(int) 2 + 62: TypeVector 6(int) 3 + 63($Global): TypeStruct 6(int) 61(ivec2) 62(ivec3) 7(ivec4) 6(int) 61(ivec2) 62(ivec3) 7(ivec4) 21(fvec4) 7(ivec4) 14(ivec4) + 64: TypePointer Uniform 63($Global) + 65: 64(ptr) Variable Uniform + 66: 6(int) Constant 3 + 67: TypePointer Uniform 7(ivec4) + 73: TypeImage 20(float) 1D nonsampled format:Rgba32f + 74: TypePointer UniformConstant 73 + 75(g_tTex1df4): 74(ptr) Variable UniformConstant + 77: TypePointer Uniform 6(int) + 87: TypeImage 6(int) 1D nonsampled format:Rgba32i + 88: TypePointer UniformConstant 87 + 89(g_tTex1di4): 88(ptr) Variable UniformConstant + 95: TypeImage 13(int) 1D nonsampled format:Rgba32ui + 96: TypePointer UniformConstant 95 + 97(g_tTex1du4): 96(ptr) Variable UniformConstant + 103: TypeImage 20(float) 2D nonsampled format:Rgba32f + 104: TypePointer UniformConstant 103 + 105(g_tTex2df4): 104(ptr) Variable UniformConstant + 107: 6(int) Constant 1 + 108: TypePointer Uniform 61(ivec2) + 113: TypeImage 6(int) 2D nonsampled format:Rgba32i + 114: TypePointer UniformConstant 113 + 115(g_tTex2di4): 114(ptr) Variable UniformConstant + 121: TypeImage 13(int) 2D nonsampled format:Rgba32ui + 122: TypePointer UniformConstant 121 + 123(g_tTex2du4): 122(ptr) Variable UniformConstant + 129: TypeImage 20(float) 3D nonsampled format:Rgba32f + 130: TypePointer UniformConstant 129 + 131(g_tTex3df4): 130(ptr) Variable UniformConstant + 133: 6(int) Constant 2 + 134: TypePointer Uniform 62(ivec3) + 139: TypeImage 6(int) 3D nonsampled format:Rgba32i + 140: TypePointer UniformConstant 139 + 141(g_tTex3di4): 140(ptr) Variable UniformConstant + 147: TypeImage 13(int) 3D nonsampled format:Rgba32ui + 148: TypePointer UniformConstant 147 + 149(g_tTex3du4): 148(ptr) Variable UniformConstant + 155: 6(int) Constant 8 + 156: TypePointer Uniform 21(fvec4) + 170: 6(int) Constant 4 + 171: 7(ivec4) ConstantComposite 133 133 66 170 + 177: 13(int) Constant 3 + 178: 13(int) Constant 2 + 179: 13(int) Constant 4 + 180: 14(ivec4) ConstantComposite 177 178 177 179 + 186: TypePointer Function 6(int) + 194: 20(float) Constant 1073741824 + 208: 20(float) Constant 1077936128 + 222: 20(float) Constant 1082130432 + 262: 6(int) Constant 65535 + 276: 6(int) Constant 61680 + 320: 6(int) Constant 5 + 321: 7(ivec4) ConstantComposite 320 133 66 170 + 327: 13(int) Constant 6 + 328: 14(ivec4) ConstantComposite 327 178 177 179 + 344: 6(int) Constant 6 + 345: 6(int) Constant 7 + 346: 7(ivec4) ConstantComposite 155 344 345 155 + 352: 13(int) Constant 9 + 353: 14(ivec4) ConstantComposite 352 178 177 179 + 408: 20(float) Constant 1065353216 + 571: 61(ivec2) ConstantComposite 133 66 + 575: TypePointer Function 42(PS_OUTPUT) + 577: 21(fvec4) ConstantComposite 408 408 408 408 + 582: TypePointer Output 21(fvec4) +583(@entryPointOutput.Color): 582(ptr) Variable Output + 586: TypeSampler + 587: TypePointer UniformConstant 586 + 588(g_sSamp): 587(ptr) Variable UniformConstant + 589: TypeImage 20(float) 1D array nonsampled format:Rgba32f + 590: TypePointer UniformConstant 589 +591(g_tTex1df4a): 590(ptr) Variable UniformConstant + 592: TypeImage 6(int) 1D array nonsampled format:Rgba32i + 593: TypePointer UniformConstant 592 +594(g_tTex1di4a): 593(ptr) Variable UniformConstant + 595: TypeImage 13(int) 1D array nonsampled format:Rgba32ui + 596: TypePointer UniformConstant 595 +597(g_tTex1du4a): 596(ptr) Variable UniformConstant + 598: TypeImage 20(float) 2D array nonsampled format:Rgba32f + 599: TypePointer UniformConstant 598 +600(g_tTex2df4a): 599(ptr) Variable UniformConstant + 601: TypeImage 6(int) 2D array nonsampled format:Rgba32i + 602: TypePointer UniformConstant 601 +603(g_tTex2di4a): 602(ptr) Variable UniformConstant + 604: TypeImage 13(int) 2D array nonsampled format:Rgba32ui + 605: TypePointer UniformConstant 604 +606(g_tTex2du4a): 605(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 584:42(PS_OUTPUT) FunctionCall 44(@main() + 585: 21(fvec4) CompositeExtract 584 0 + Store 583(@entryPointOutput.Color) 585 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 46: 7(ivec4) Load 10(x) + ReturnValue 46 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 49: 14(ivec4) Load 17(x) + ReturnValue 49 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 52: 21(fvec4) Load 24(x) + ReturnValue 52 + FunctionEnd + 29(Fn2(vi4;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 56 + Return + FunctionEnd + 33(Fn2(vu4;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 58 + Return + FunctionEnd + 37(Fn2(vf4;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 60 + Return + FunctionEnd + 40(SomeValue(): 21(fvec4) Function None 39 + 41: Label + 68: 67(ptr) AccessChain 65 66 + 69: 7(ivec4) Load 68 + 70: 21(fvec4) ConvertSToF 69 + ReturnValue 70 + FunctionEnd + 44(@main():42(PS_OUTPUT) Function None 43 + 45: Label + 81(r00): 22(ptr) Variable Function + 86(r01): 8(ptr) Variable Function + 94(r02): 15(ptr) Variable Function + 102(r10): 22(ptr) Variable Function + 112(r11): 8(ptr) Variable Function + 120(r12): 15(ptr) Variable Function + 128(r20): 22(ptr) Variable Function + 138(r21): 8(ptr) Variable Function + 146(r22): 15(ptr) Variable Function + 154(lf4): 22(ptr) Variable Function + 159(storeTemp): 22(ptr) Variable Function + 169(storeTemp): 8(ptr) Variable Function + 176(storeTemp): 15(ptr) Variable Function + 185(val1): 22(ptr) Variable Function + 187(coordTemp): 186(ptr) Variable Function + 190(storeTemp): 22(ptr) Variable Function + 201(coordTemp): 186(ptr) Variable Function + 204(storeTemp): 22(ptr) Variable Function + 215(coordTemp): 186(ptr) Variable Function + 218(storeTemp): 22(ptr) Variable Function + 229(coordTemp): 186(ptr) Variable Function + 232(storeTemp): 8(ptr) Variable Function + 242(coordTemp): 186(ptr) Variable Function + 245(storeTemp): 8(ptr) Variable Function + 255(coordTemp): 186(ptr) Variable Function + 258(storeTemp): 8(ptr) Variable Function + 269(coordTemp): 186(ptr) Variable Function + 272(storeTemp): 8(ptr) Variable Function + 283(coordTemp): 186(ptr) Variable Function + 286(storeTemp): 8(ptr) Variable Function + 296(coordTemp): 186(ptr) Variable Function + 299(storeTemp): 8(ptr) Variable Function + 309(storeTemp): 22(ptr) Variable Function + 319(storeTemp): 8(ptr) Variable Function + 326(storeTemp): 15(ptr) Variable Function + 333(storeTemp): 22(ptr) Variable Function + 343(storeTemp): 8(ptr) Variable Function + 351(storeTemp): 15(ptr) Variable Function + 362(param): 22(ptr) Variable Function + 368(param): 8(ptr) Variable Function + 374(param): 15(ptr) Variable Function + 376(tempArg): 22(ptr) Variable Function + 377(param): 22(ptr) Variable Function + 384(tempArg): 8(ptr) Variable Function + 385(param): 8(ptr) Variable Function + 392(tempArg): 15(ptr) Variable Function + 393(param): 15(ptr) Variable Function + 400(coordTemp): 186(ptr) Variable Function + 403(storeTemp): 22(ptr) Variable Function + 414(coordTemp): 186(ptr) Variable Function + 417(storeTemp): 8(ptr) Variable Function + 427(coordTemp): 186(ptr) Variable Function + 430(storeTemp): 15(ptr) Variable Function + 440(coordTemp): 186(ptr) Variable Function + 443(storeTemp): 22(ptr) Variable Function + 453(coordTemp): 186(ptr) Variable Function + 456(storeTemp): 8(ptr) Variable Function + 466(coordTemp): 186(ptr) Variable Function + 469(storeTemp): 15(ptr) Variable Function + 479(coordTemp): 186(ptr) Variable Function +482(storeTempPre): 22(ptr) Variable Function +486(storeTempPost): 22(ptr) Variable Function + 494(coordTemp): 186(ptr) Variable Function +497(storeTempPre): 15(ptr) Variable Function +501(storeTempPost): 15(ptr) Variable Function + 509(coordTemp): 186(ptr) Variable Function +512(storeTempPre): 8(ptr) Variable Function +516(storeTempPost): 8(ptr) Variable Function + 524(coordTemp): 186(ptr) Variable Function +527(storeTempPre): 22(ptr) Variable Function +531(storeTempPost): 22(ptr) Variable Function + 539(coordTemp): 186(ptr) Variable Function +542(storeTempPre): 8(ptr) Variable Function +546(storeTempPost): 8(ptr) Variable Function + 554(coordTemp): 186(ptr) Variable Function +557(storeTempPre): 15(ptr) Variable Function +561(storeTempPost): 15(ptr) Variable Function + 569(storeTemp): 22(ptr) Variable Function + 576(psout): 575(ptr) Variable Function + 76: 73 Load 75(g_tTex1df4) + 78: 77(ptr) AccessChain 65 55 + 79: 6(int) Load 78 + 80: 21(fvec4) ImageRead 76 79 + 82: 73 Load 75(g_tTex1df4) + 83: 77(ptr) AccessChain 65 55 + 84: 6(int) Load 83 + 85: 21(fvec4) ImageRead 82 84 + Store 81(r00) 85 + 90: 87 Load 89(g_tTex1di4) + 91: 77(ptr) AccessChain 65 55 + 92: 6(int) Load 91 + 93: 7(ivec4) ImageRead 90 92 + Store 86(r01) 93 + 98: 95 Load 97(g_tTex1du4) + 99: 77(ptr) AccessChain 65 55 + 100: 6(int) Load 99 + 101: 14(ivec4) ImageRead 98 100 + Store 94(r02) 101 + 106: 103 Load 105(g_tTex2df4) + 109: 108(ptr) AccessChain 65 107 + 110: 61(ivec2) Load 109 + 111: 21(fvec4) ImageRead 106 110 + Store 102(r10) 111 + 116: 113 Load 115(g_tTex2di4) + 117: 108(ptr) AccessChain 65 107 + 118: 61(ivec2) Load 117 + 119: 7(ivec4) ImageRead 116 118 + Store 112(r11) 119 + 124: 121 Load 123(g_tTex2du4) + 125: 108(ptr) AccessChain 65 107 + 126: 61(ivec2) Load 125 + 127: 14(ivec4) ImageRead 124 126 + Store 120(r12) 127 + 132: 129 Load 131(g_tTex3df4) + 135: 134(ptr) AccessChain 65 133 + 136: 62(ivec3) Load 135 + 137: 21(fvec4) ImageRead 132 136 + Store 128(r20) 137 + 142: 139 Load 141(g_tTex3di4) + 143: 134(ptr) AccessChain 65 133 + 144: 62(ivec3) Load 143 + 145: 7(ivec4) ImageRead 142 144 + Store 138(r21) 145 + 150: 147 Load 149(g_tTex3du4) + 151: 134(ptr) AccessChain 65 133 + 152: 62(ivec3) Load 151 + 153: 14(ivec4) ImageRead 150 152 + Store 146(r22) 153 + 157: 156(ptr) AccessChain 65 155 + 158: 21(fvec4) Load 157 + Store 154(lf4) 158 + 160: 21(fvec4) FunctionCall 40(SomeValue() + Store 159(storeTemp) 160 + 161: 73 Load 75(g_tTex1df4) + 162: 77(ptr) AccessChain 65 55 + 163: 6(int) Load 162 + 164: 21(fvec4) Load 159(storeTemp) + ImageWrite 161 163 164 + 165: 73 Load 75(g_tTex1df4) + 166: 77(ptr) AccessChain 65 55 + 167: 6(int) Load 166 + 168: 21(fvec4) Load 154(lf4) + ImageWrite 165 167 168 + Store 169(storeTemp) 171 + 172: 87 Load 89(g_tTex1di4) + 173: 77(ptr) AccessChain 65 55 + 174: 6(int) Load 173 + 175: 7(ivec4) Load 169(storeTemp) + ImageWrite 172 174 175 + Store 176(storeTemp) 180 + 181: 95 Load 97(g_tTex1du4) + 182: 77(ptr) AccessChain 65 55 + 183: 6(int) Load 182 + 184: 14(ivec4) Load 176(storeTemp) + ImageWrite 181 183 184 + 188: 77(ptr) AccessChain 65 55 + 189: 6(int) Load 188 + Store 187(coordTemp) 189 + 191: 73 Load 75(g_tTex1df4) + 192: 6(int) Load 187(coordTemp) + 193: 21(fvec4) ImageRead 191 192 + Store 190(storeTemp) 193 + 195: 21(fvec4) Load 190(storeTemp) + 196: 21(fvec4) VectorTimesScalar 195 194 + Store 190(storeTemp) 196 + 197: 73 Load 75(g_tTex1df4) + 198: 6(int) Load 187(coordTemp) + 199: 21(fvec4) Load 190(storeTemp) + ImageWrite 197 198 199 + 200: 21(fvec4) Load 190(storeTemp) + Store 185(val1) 200 + 202: 77(ptr) AccessChain 65 55 + 203: 6(int) Load 202 + Store 201(coordTemp) 203 + 205: 73 Load 75(g_tTex1df4) + 206: 6(int) Load 201(coordTemp) + 207: 21(fvec4) ImageRead 205 206 + Store 204(storeTemp) 207 + 209: 21(fvec4) Load 204(storeTemp) + 210: 21(fvec4) CompositeConstruct 208 208 208 208 + 211: 21(fvec4) FSub 209 210 + Store 204(storeTemp) 211 + 212: 73 Load 75(g_tTex1df4) + 213: 6(int) Load 201(coordTemp) + 214: 21(fvec4) Load 204(storeTemp) + ImageWrite 212 213 214 + 216: 77(ptr) AccessChain 65 55 + 217: 6(int) Load 216 + Store 215(coordTemp) 217 + 219: 73 Load 75(g_tTex1df4) + 220: 6(int) Load 215(coordTemp) + 221: 21(fvec4) ImageRead 219 220 + Store 218(storeTemp) 221 + 223: 21(fvec4) Load 218(storeTemp) + 224: 21(fvec4) CompositeConstruct 222 222 222 222 + 225: 21(fvec4) FAdd 223 224 + Store 218(storeTemp) 225 + 226: 73 Load 75(g_tTex1df4) + 227: 6(int) Load 215(coordTemp) + 228: 21(fvec4) Load 218(storeTemp) + ImageWrite 226 227 228 + 230: 77(ptr) AccessChain 65 55 + 231: 6(int) Load 230 + Store 229(coordTemp) 231 + 233: 87 Load 89(g_tTex1di4) + 234: 6(int) Load 229(coordTemp) + 235: 7(ivec4) ImageRead 233 234 + Store 232(storeTemp) 235 + 236: 7(ivec4) Load 232(storeTemp) + 237: 7(ivec4) CompositeConstruct 133 133 133 133 + 238: 7(ivec4) SDiv 236 237 + Store 232(storeTemp) 238 + 239: 87 Load 89(g_tTex1di4) + 240: 6(int) Load 229(coordTemp) + 241: 7(ivec4) Load 232(storeTemp) + ImageWrite 239 240 241 + 243: 77(ptr) AccessChain 65 55 + 244: 6(int) Load 243 + Store 242(coordTemp) 244 + 246: 87 Load 89(g_tTex1di4) + 247: 6(int) Load 242(coordTemp) + 248: 7(ivec4) ImageRead 246 247 + Store 245(storeTemp) 248 + 249: 7(ivec4) Load 245(storeTemp) + 250: 7(ivec4) CompositeConstruct 133 133 133 133 + 251: 7(ivec4) SMod 249 250 + Store 245(storeTemp) 251 + 252: 87 Load 89(g_tTex1di4) + 253: 6(int) Load 242(coordTemp) + 254: 7(ivec4) Load 245(storeTemp) + ImageWrite 252 253 254 + 256: 77(ptr) AccessChain 65 55 + 257: 6(int) Load 256 + Store 255(coordTemp) 257 + 259: 87 Load 89(g_tTex1di4) + 260: 6(int) Load 255(coordTemp) + 261: 7(ivec4) ImageRead 259 260 + Store 258(storeTemp) 261 + 263: 7(ivec4) Load 258(storeTemp) + 264: 7(ivec4) CompositeConstruct 262 262 262 262 + 265: 7(ivec4) BitwiseAnd 263 264 + Store 258(storeTemp) 265 + 266: 87 Load 89(g_tTex1di4) + 267: 6(int) Load 255(coordTemp) + 268: 7(ivec4) Load 258(storeTemp) + ImageWrite 266 267 268 + 270: 77(ptr) AccessChain 65 55 + 271: 6(int) Load 270 + Store 269(coordTemp) 271 + 273: 87 Load 89(g_tTex1di4) + 274: 6(int) Load 269(coordTemp) + 275: 7(ivec4) ImageRead 273 274 + Store 272(storeTemp) 275 + 277: 7(ivec4) Load 272(storeTemp) + 278: 7(ivec4) CompositeConstruct 276 276 276 276 + 279: 7(ivec4) BitwiseOr 277 278 + Store 272(storeTemp) 279 + 280: 87 Load 89(g_tTex1di4) + 281: 6(int) Load 269(coordTemp) + 282: 7(ivec4) Load 272(storeTemp) + ImageWrite 280 281 282 + 284: 77(ptr) AccessChain 65 55 + 285: 6(int) Load 284 + Store 283(coordTemp) 285 + 287: 87 Load 89(g_tTex1di4) + 288: 6(int) Load 283(coordTemp) + 289: 7(ivec4) ImageRead 287 288 + Store 286(storeTemp) 289 + 290: 7(ivec4) Load 286(storeTemp) + 291: 7(ivec4) CompositeConstruct 133 133 133 133 + 292: 7(ivec4) ShiftLeftLogical 290 291 + Store 286(storeTemp) 292 + 293: 87 Load 89(g_tTex1di4) + 294: 6(int) Load 283(coordTemp) + 295: 7(ivec4) Load 286(storeTemp) + ImageWrite 293 294 295 + 297: 77(ptr) AccessChain 65 55 + 298: 6(int) Load 297 + Store 296(coordTemp) 298 + 300: 87 Load 89(g_tTex1di4) + 301: 6(int) Load 296(coordTemp) + 302: 7(ivec4) ImageRead 300 301 + Store 299(storeTemp) 302 + 303: 7(ivec4) Load 299(storeTemp) + 304: 7(ivec4) CompositeConstruct 133 133 133 133 + 305: 7(ivec4) ShiftRightArithmetic 303 304 + Store 299(storeTemp) 305 + 306: 87 Load 89(g_tTex1di4) + 307: 6(int) Load 296(coordTemp) + 308: 7(ivec4) Load 299(storeTemp) + ImageWrite 306 307 308 + 310: 21(fvec4) FunctionCall 40(SomeValue() + Store 309(storeTemp) 310 + 311: 103 Load 105(g_tTex2df4) + 312: 108(ptr) AccessChain 65 107 + 313: 61(ivec2) Load 312 + 314: 21(fvec4) Load 309(storeTemp) + ImageWrite 311 313 314 + 315: 103 Load 105(g_tTex2df4) + 316: 108(ptr) AccessChain 65 107 + 317: 61(ivec2) Load 316 + 318: 21(fvec4) Load 154(lf4) + ImageWrite 315 317 318 + Store 319(storeTemp) 321 + 322: 113 Load 115(g_tTex2di4) + 323: 108(ptr) AccessChain 65 107 + 324: 61(ivec2) Load 323 + 325: 7(ivec4) Load 319(storeTemp) + ImageWrite 322 324 325 + Store 326(storeTemp) 328 + 329: 121 Load 123(g_tTex2du4) + 330: 108(ptr) AccessChain 65 107 + 331: 61(ivec2) Load 330 + 332: 14(ivec4) Load 326(storeTemp) + ImageWrite 329 331 332 + 334: 21(fvec4) FunctionCall 40(SomeValue() + Store 333(storeTemp) 334 + 335: 129 Load 131(g_tTex3df4) + 336: 134(ptr) AccessChain 65 133 + 337: 62(ivec3) Load 336 + 338: 21(fvec4) Load 333(storeTemp) + ImageWrite 335 337 338 + 339: 129 Load 131(g_tTex3df4) + 340: 134(ptr) AccessChain 65 133 + 341: 62(ivec3) Load 340 + 342: 21(fvec4) Load 154(lf4) + ImageWrite 339 341 342 + Store 343(storeTemp) 346 + 347: 139 Load 141(g_tTex3di4) + 348: 134(ptr) AccessChain 65 133 + 349: 62(ivec3) Load 348 + 350: 7(ivec4) Load 343(storeTemp) + ImageWrite 347 349 350 + Store 351(storeTemp) 353 + 354: 147 Load 149(g_tTex3du4) + 355: 134(ptr) AccessChain 65 133 + 356: 62(ivec3) Load 355 + 357: 14(ivec4) Load 351(storeTemp) + ImageWrite 354 356 357 + 358: 73 Load 75(g_tTex1df4) + 359: 77(ptr) AccessChain 65 55 + 360: 6(int) Load 359 + 361: 21(fvec4) ImageRead 358 360 + Store 362(param) 361 + 363: 21(fvec4) FunctionCall 25(Fn1(vf4;) 362(param) + 364: 87 Load 89(g_tTex1di4) + 365: 77(ptr) AccessChain 65 55 + 366: 6(int) Load 365 + 367: 7(ivec4) ImageRead 364 366 + Store 368(param) 367 + 369: 7(ivec4) FunctionCall 11(Fn1(vi4;) 368(param) + 370: 95 Load 97(g_tTex1du4) + 371: 77(ptr) AccessChain 65 55 + 372: 6(int) Load 371 + 373: 14(ivec4) ImageRead 370 372 + Store 374(param) 373 + 375: 14(ivec4) FunctionCall 18(Fn1(vu4;) 374(param) + 378: 2 FunctionCall 37(Fn2(vf4;) 377(param) + 379: 21(fvec4) Load 377(param) + Store 376(tempArg) 379 + 380: 73 Load 75(g_tTex1df4) + 381: 77(ptr) AccessChain 65 55 + 382: 6(int) Load 381 + 383: 21(fvec4) Load 376(tempArg) + ImageWrite 380 382 383 + 386: 2 FunctionCall 29(Fn2(vi4;) 385(param) + 387: 7(ivec4) Load 385(param) + Store 384(tempArg) 387 + 388: 87 Load 89(g_tTex1di4) + 389: 77(ptr) AccessChain 65 55 + 390: 6(int) Load 389 + 391: 7(ivec4) Load 384(tempArg) + ImageWrite 388 390 391 + 394: 2 FunctionCall 33(Fn2(vu4;) 393(param) + 395: 14(ivec4) Load 393(param) + Store 392(tempArg) 395 + 396: 95 Load 97(g_tTex1du4) + 397: 77(ptr) AccessChain 65 55 + 398: 6(int) Load 397 + 399: 14(ivec4) Load 392(tempArg) + ImageWrite 396 398 399 + 401: 77(ptr) AccessChain 65 55 + 402: 6(int) Load 401 + Store 400(coordTemp) 402 + 404: 73 Load 75(g_tTex1df4) + 405: 6(int) Load 400(coordTemp) + 406: 21(fvec4) ImageRead 404 405 + Store 403(storeTemp) 406 + 407: 21(fvec4) Load 403(storeTemp) + 409: 21(fvec4) CompositeConstruct 408 408 408 408 + 410: 21(fvec4) FAdd 407 409 + Store 403(storeTemp) 410 + 411: 73 Load 75(g_tTex1df4) + 412: 6(int) Load 400(coordTemp) + 413: 21(fvec4) Load 403(storeTemp) + ImageWrite 411 412 413 + 415: 77(ptr) AccessChain 65 55 + 416: 6(int) Load 415 + Store 414(coordTemp) 416 + 418: 87 Load 89(g_tTex1di4) + 419: 6(int) Load 414(coordTemp) + 420: 7(ivec4) ImageRead 418 419 + Store 417(storeTemp) 420 + 421: 7(ivec4) Load 417(storeTemp) + 422: 7(ivec4) CompositeConstruct 107 107 107 107 + 423: 7(ivec4) IAdd 421 422 + Store 417(storeTemp) 423 + 424: 87 Load 89(g_tTex1di4) + 425: 6(int) Load 414(coordTemp) + 426: 7(ivec4) Load 417(storeTemp) + ImageWrite 424 425 426 + 428: 77(ptr) AccessChain 65 55 + 429: 6(int) Load 428 + Store 427(coordTemp) 429 + 431: 95 Load 97(g_tTex1du4) + 432: 6(int) Load 427(coordTemp) + 433: 14(ivec4) ImageRead 431 432 + Store 430(storeTemp) 433 + 434: 14(ivec4) Load 430(storeTemp) + 435: 7(ivec4) CompositeConstruct 107 107 107 107 + 436: 14(ivec4) IAdd 434 435 + Store 430(storeTemp) 436 + 437: 95 Load 97(g_tTex1du4) + 438: 6(int) Load 427(coordTemp) + 439: 14(ivec4) Load 430(storeTemp) + ImageWrite 437 438 439 + 441: 77(ptr) AccessChain 65 55 + 442: 6(int) Load 441 + Store 440(coordTemp) 442 + 444: 73 Load 75(g_tTex1df4) + 445: 6(int) Load 440(coordTemp) + 446: 21(fvec4) ImageRead 444 445 + Store 443(storeTemp) 446 + 447: 21(fvec4) Load 443(storeTemp) + 448: 21(fvec4) CompositeConstruct 408 408 408 408 + 449: 21(fvec4) FSub 447 448 + Store 443(storeTemp) 449 + 450: 73 Load 75(g_tTex1df4) + 451: 6(int) Load 440(coordTemp) + 452: 21(fvec4) Load 443(storeTemp) + ImageWrite 450 451 452 + 454: 77(ptr) AccessChain 65 55 + 455: 6(int) Load 454 + Store 453(coordTemp) 455 + 457: 87 Load 89(g_tTex1di4) + 458: 6(int) Load 453(coordTemp) + 459: 7(ivec4) ImageRead 457 458 + Store 456(storeTemp) 459 + 460: 7(ivec4) Load 456(storeTemp) + 461: 7(ivec4) CompositeConstruct 107 107 107 107 + 462: 7(ivec4) ISub 460 461 + Store 456(storeTemp) 462 + 463: 87 Load 89(g_tTex1di4) + 464: 6(int) Load 453(coordTemp) + 465: 7(ivec4) Load 456(storeTemp) + ImageWrite 463 464 465 + 467: 77(ptr) AccessChain 65 55 + 468: 6(int) Load 467 + Store 466(coordTemp) 468 + 470: 95 Load 97(g_tTex1du4) + 471: 6(int) Load 466(coordTemp) + 472: 14(ivec4) ImageRead 470 471 + Store 469(storeTemp) 472 + 473: 14(ivec4) Load 469(storeTemp) + 474: 7(ivec4) CompositeConstruct 107 107 107 107 + 475: 14(ivec4) ISub 473 474 + Store 469(storeTemp) 475 + 476: 95 Load 97(g_tTex1du4) + 477: 6(int) Load 466(coordTemp) + 478: 14(ivec4) Load 469(storeTemp) + ImageWrite 476 477 478 + 480: 77(ptr) AccessChain 65 55 + 481: 6(int) Load 480 + Store 479(coordTemp) 481 + 483: 73 Load 75(g_tTex1df4) + 484: 6(int) Load 479(coordTemp) + 485: 21(fvec4) ImageRead 483 484 + Store 482(storeTempPre) 485 + 487: 21(fvec4) Load 482(storeTempPre) + Store 486(storeTempPost) 487 + 488: 21(fvec4) Load 486(storeTempPost) + 489: 21(fvec4) CompositeConstruct 408 408 408 408 + 490: 21(fvec4) FAdd 488 489 + Store 486(storeTempPost) 490 + 491: 73 Load 75(g_tTex1df4) + 492: 6(int) Load 479(coordTemp) + 493: 21(fvec4) Load 486(storeTempPost) + ImageWrite 491 492 493 + 495: 77(ptr) AccessChain 65 55 + 496: 6(int) Load 495 + Store 494(coordTemp) 496 + 498: 95 Load 97(g_tTex1du4) + 499: 6(int) Load 494(coordTemp) + 500: 14(ivec4) ImageRead 498 499 + Store 497(storeTempPre) 500 + 502: 14(ivec4) Load 497(storeTempPre) + Store 501(storeTempPost) 502 + 503: 14(ivec4) Load 501(storeTempPost) + 504: 7(ivec4) CompositeConstruct 107 107 107 107 + 505: 14(ivec4) ISub 503 504 + Store 501(storeTempPost) 505 + 506: 95 Load 97(g_tTex1du4) + 507: 6(int) Load 494(coordTemp) + 508: 14(ivec4) Load 501(storeTempPost) + ImageWrite 506 507 508 + 510: 77(ptr) AccessChain 65 55 + 511: 6(int) Load 510 + Store 509(coordTemp) 511 + 513: 87 Load 89(g_tTex1di4) + 514: 6(int) Load 509(coordTemp) + 515: 7(ivec4) ImageRead 513 514 + Store 512(storeTempPre) 515 + 517: 7(ivec4) Load 512(storeTempPre) + Store 516(storeTempPost) 517 + 518: 7(ivec4) Load 516(storeTempPost) + 519: 7(ivec4) CompositeConstruct 107 107 107 107 + 520: 7(ivec4) IAdd 518 519 + Store 516(storeTempPost) 520 + 521: 87 Load 89(g_tTex1di4) + 522: 6(int) Load 509(coordTemp) + 523: 7(ivec4) Load 516(storeTempPost) + ImageWrite 521 522 523 + 525: 77(ptr) AccessChain 65 55 + 526: 6(int) Load 525 + Store 524(coordTemp) 526 + 528: 73 Load 75(g_tTex1df4) + 529: 6(int) Load 524(coordTemp) + 530: 21(fvec4) ImageRead 528 529 + Store 527(storeTempPre) 530 + 532: 21(fvec4) Load 527(storeTempPre) + Store 531(storeTempPost) 532 + 533: 21(fvec4) Load 531(storeTempPost) + 534: 21(fvec4) CompositeConstruct 408 408 408 408 + 535: 21(fvec4) FSub 533 534 + Store 531(storeTempPost) 535 + 536: 73 Load 75(g_tTex1df4) + 537: 6(int) Load 524(coordTemp) + 538: 21(fvec4) Load 531(storeTempPost) + ImageWrite 536 537 538 + 540: 77(ptr) AccessChain 65 55 + 541: 6(int) Load 540 + Store 539(coordTemp) 541 + 543: 87 Load 89(g_tTex1di4) + 544: 6(int) Load 539(coordTemp) + 545: 7(ivec4) ImageRead 543 544 + Store 542(storeTempPre) 545 + 547: 7(ivec4) Load 542(storeTempPre) + Store 546(storeTempPost) 547 + 548: 7(ivec4) Load 546(storeTempPost) + 549: 7(ivec4) CompositeConstruct 107 107 107 107 + 550: 7(ivec4) IAdd 548 549 + Store 546(storeTempPost) 550 + 551: 87 Load 89(g_tTex1di4) + 552: 6(int) Load 539(coordTemp) + 553: 7(ivec4) Load 546(storeTempPost) + ImageWrite 551 552 553 + 555: 77(ptr) AccessChain 65 55 + 556: 6(int) Load 555 + Store 554(coordTemp) 556 + 558: 95 Load 97(g_tTex1du4) + 559: 6(int) Load 554(coordTemp) + 560: 14(ivec4) ImageRead 558 559 + Store 557(storeTempPre) 560 + 562: 14(ivec4) Load 557(storeTempPre) + Store 561(storeTempPost) 562 + 563: 14(ivec4) Load 561(storeTempPost) + 564: 7(ivec4) CompositeConstruct 107 107 107 107 + 565: 14(ivec4) ISub 563 564 + Store 561(storeTempPost) 565 + 566: 95 Load 97(g_tTex1du4) + 567: 6(int) Load 554(coordTemp) + 568: 14(ivec4) Load 561(storeTempPost) + ImageWrite 566 567 568 + 570: 103 Load 105(g_tTex2df4) + 572: 21(fvec4) ImageRead 570 571 + Store 569(storeTemp) 572 + 573: 73 Load 75(g_tTex1df4) + 574: 21(fvec4) Load 569(storeTemp) + ImageWrite 573 107 574 + 578: 22(ptr) AccessChain 576(psout) 55 + Store 578 577 + 579:42(PS_OUTPUT) Load 576(psout) + ReturnValue 579 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.register.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.register.frag.out new file mode 100644 index 0000000000..01f6c89c45 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.register.frag.out @@ -0,0 +1,172 @@ +hlsl.rw.register.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'r00' ( temp float) +0:12 imageLoad ( temp float) +0:12 'g_tTex1df1' (layout( binding=2 r32f) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child ( temp uint) +0:13 'r01' ( temp uint) +0:13 imageLoad ( temp uint) +0:13 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child ( temp 4-component vector of float) +0:16 Color: direct index for structure ( temp 4-component vector of float) +0:16 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Branch: Return with expression +0:17 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:11 Color: direct index for structure ( temp 4-component vector of float) +0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:11 Constant: +0:11 0 (const int) +0:? Linker Objects +0:? 'g_tTex1df1' (layout( binding=2 r32f) uniform image1D) +0:? 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'r00' ( temp float) +0:12 imageLoad ( temp float) +0:12 'g_tTex1df1' (layout( binding=2 r32f) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child ( temp uint) +0:13 'r01' ( temp uint) +0:13 imageLoad ( temp uint) +0:13 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child ( temp 4-component vector of float) +0:16 Color: direct index for structure ( temp 4-component vector of float) +0:16 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Branch: Return with expression +0:17 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:11 Color: direct index for structure ( temp 4-component vector of float) +0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:11 Constant: +0:11 0 (const int) +0:? Linker Objects +0:? 'g_tTex1df1' (layout( binding=2 r32f) uniform image1D) +0:? 'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + Capability Image1D + Capability ImageBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 39 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 13 "r00" + Name 16 "g_tTex1df1" + Name 23 "r01" + Name 26 "g_tBuf1du1" + Name 30 "psout" + Name 39 "@entryPointOutput.Color" + Decorate 16(g_tTex1df1) DescriptorSet 0 + Decorate 16(g_tTex1df1) Binding 2 + Decorate 26(g_tBuf1du1) DescriptorSet 0 + Decorate 26(g_tBuf1du1) Binding 3 + Decorate 39(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D nonsampled format:R32f + 15: TypePointer UniformConstant 14 + 16(g_tTex1df1): 15(ptr) Variable UniformConstant + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 21: TypeInt 32 0 + 22: TypePointer Function 21(int) + 24: TypeImage 21(int) Buffer nonsampled format:R32ui + 25: TypePointer UniformConstant 24 + 26(g_tBuf1du1): 25(ptr) Variable UniformConstant + 29: TypePointer Function 8(PS_OUTPUT) + 31: 6(float) Constant 1065353216 + 32: 7(fvec4) ConstantComposite 31 31 31 31 + 33: TypePointer Function 7(fvec4) + 38: TypePointer Output 7(fvec4) +39(@entryPointOutput.Color): 38(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 40:8(PS_OUTPUT) FunctionCall 10(@main() + 41: 7(fvec4) CompositeExtract 40 0 + Store 39(@entryPointOutput.Color) 41 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 23(r01): 22(ptr) Variable Function + 30(psout): 29(ptr) Variable Function + 17: 14 Load 16(g_tTex1df1) + 20: 6(float) ImageRead 17 19 + Store 13(r00) 20 + 27: 24 Load 26(g_tBuf1du1) + 28: 21(int) ImageRead 27 19 + Store 23(r01) 28 + 34: 33(ptr) AccessChain 30(psout) 19 + Store 34 32 + 35:8(PS_OUTPUT) Load 30(psout) + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out new file mode 100644 index 0000000000..7fc26cc7cb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -0,0 +1,2574 @@ +hlsl.rw.scalar.bracket.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; ( temp int) +0:42 Function Parameters: +0:42 'x' ( in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' ( in int) +0:43 Function Definition: Fn1(u1; ( temp uint) +0:43 Function Parameters: +0:43 'x' ( in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' ( in uint) +0:44 Function Definition: Fn1(f1; ( temp float) +0:44 Function Parameters: +0:44 'x' ( in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' ( in float) +0:46 Function Definition: Fn2(i1; ( temp void) +0:46 Function Parameters: +0:46 'x' ( out int) +0:? Sequence +0:46 move second child to first child ( temp int) +0:46 'x' ( out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; ( temp void) +0:47 Function Parameters: +0:47 'x' ( out uint) +0:? Sequence +0:47 move second child to first child ( temp uint) +0:47 'x' ( out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; ( temp void) +0:48 Function Parameters: +0:48 'x' ( out float) +0:? Sequence +0:48 move second child to first child ( temp float) +0:48 'x' ( out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( ( temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float ( temp float) +0:50 c1: direct index for structure ( uniform int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad ( temp float) +0:57 'g_tTex1df1' (layout( r32f) uniform image1D) +0:57 c1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 'r00' ( temp float) +0:59 imageLoad ( temp float) +0:59 'g_tTex1df1' (layout( r32f) uniform image1D) +0:59 c1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp int) +0:60 'r01' ( temp int) +0:60 imageLoad ( temp int) +0:60 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:60 c1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp uint) +0:61 'r02' ( temp uint) +0:61 imageLoad ( temp uint) +0:61 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:61 c1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp float) +0:64 'r10' ( temp float) +0:64 imageLoad ( temp float) +0:64 'g_tTex2df1' (layout( r32f) uniform image2D) +0:64 c2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp int) +0:65 'r11' ( temp int) +0:65 imageLoad ( temp int) +0:65 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:65 c2: direct index for structure ( uniform 2-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp uint) +0:66 'r12' ( temp uint) +0:66 imageLoad ( temp uint) +0:66 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:66 c2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp float) +0:69 'r20' ( temp float) +0:69 imageLoad ( temp float) +0:69 'g_tTex3df1' (layout( r32f) uniform image3D) +0:69 c3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp int) +0:70 'r21' ( temp int) +0:70 imageLoad ( temp int) +0:70 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:70 c3: direct index for structure ( uniform 3-component vector of int) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp uint) +0:71 'r22' ( temp uint) +0:71 imageLoad ( temp uint) +0:71 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:71 c3: direct index for structure ( uniform 3-component vector of int) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child ( temp float) +0:73 'lf1' ( temp float) +0:73 uf1: direct index for structure ( uniform float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp float) +0:77 'storeTemp' ( temp float) +0:77 Function Call: SomeValue( ( temp float) +0:77 imageStore ( temp void) +0:77 'g_tTex1df1' (layout( r32f) uniform image1D) +0:77 c1: direct index for structure ( uniform int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' ( temp float) +0:77 'storeTemp' ( temp float) +0:78 Sequence +0:78 imageStore ( temp void) +0:78 'g_tTex1df1' (layout( r32f) uniform image1D) +0:78 c1: direct index for structure ( uniform int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' ( temp float) +0:78 'lf1' ( temp float) +0:79 Sequence +0:79 move second child to first child ( temp int) +0:79 'storeTemp' ( temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore ( temp void) +0:79 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:79 c1: direct index for structure ( uniform int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' ( temp int) +0:79 'storeTemp' ( temp int) +0:80 Sequence +0:80 move second child to first child ( temp uint) +0:80 'storeTemp' ( temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore ( temp void) +0:80 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:80 c1: direct index for structure ( uniform int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' ( temp uint) +0:80 'storeTemp' ( temp uint) +0:83 Sequence +0:83 move second child to first child ( temp float) +0:83 'val1' ( temp float) +0:83 Sequence +0:83 move second child to first child ( temp int) +0:83 'coordTemp' ( temp int) +0:83 c1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child ( temp float) +0:83 'storeTemp' ( temp float) +0:83 imageLoad ( temp float) +0:83 'g_tTex1df1' (layout( r32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 multiply second child into first child ( temp float) +0:83 'storeTemp' ( temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore ( temp void) +0:83 'g_tTex1df1' (layout( r32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp float) +0:83 'storeTemp' ( temp float) +0:84 Sequence +0:84 move second child to first child ( temp int) +0:84 'coordTemp' ( temp int) +0:84 c1: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child ( temp float) +0:84 'storeTemp' ( temp float) +0:84 imageLoad ( temp float) +0:84 'g_tTex1df1' (layout( r32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 subtract second child into first child ( temp float) +0:84 'storeTemp' ( temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore ( temp void) +0:84 'g_tTex1df1' (layout( r32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp float) +0:84 'storeTemp' ( temp float) +0:85 Sequence +0:85 move second child to first child ( temp int) +0:85 'coordTemp' ( temp int) +0:85 c1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child ( temp float) +0:85 'storeTemp' ( temp float) +0:85 imageLoad ( temp float) +0:85 'g_tTex1df1' (layout( r32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 add second child into first child ( temp float) +0:85 'storeTemp' ( temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore ( temp void) +0:85 'g_tTex1df1' (layout( r32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp float) +0:85 'storeTemp' ( temp float) +0:87 Sequence +0:87 move second child to first child ( temp int) +0:87 'coordTemp' ( temp int) +0:87 c1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child ( temp int) +0:87 'storeTemp' ( temp int) +0:87 imageLoad ( temp int) +0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 divide second child into first child ( temp int) +0:87 'storeTemp' ( temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore ( temp void) +0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp int) +0:87 'storeTemp' ( temp int) +0:88 Sequence +0:88 move second child to first child ( temp int) +0:88 'coordTemp' ( temp int) +0:88 c1: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child ( temp int) +0:88 'storeTemp' ( temp int) +0:88 imageLoad ( temp int) +0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 mod second child into first child ( temp int) +0:88 'storeTemp' ( temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore ( temp void) +0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp int) +0:88 'storeTemp' ( temp int) +0:89 Sequence +0:89 move second child to first child ( temp int) +0:89 'coordTemp' ( temp int) +0:89 c1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child ( temp int) +0:89 'storeTemp' ( temp int) +0:89 imageLoad ( temp int) +0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 and second child into first child ( temp int) +0:89 'storeTemp' ( temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore ( temp void) +0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp int) +0:89 'storeTemp' ( temp int) +0:90 Sequence +0:90 move second child to first child ( temp int) +0:90 'coordTemp' ( temp int) +0:90 c1: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child ( temp int) +0:90 'storeTemp' ( temp int) +0:90 imageLoad ( temp int) +0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 or second child into first child ( temp int) +0:90 'storeTemp' ( temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore ( temp void) +0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp int) +0:90 'storeTemp' ( temp int) +0:91 Sequence +0:91 move second child to first child ( temp int) +0:91 'coordTemp' ( temp int) +0:91 c1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child ( temp int) +0:91 'storeTemp' ( temp int) +0:91 imageLoad ( temp int) +0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 left shift second child into first child ( temp int) +0:91 'storeTemp' ( temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore ( temp void) +0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp int) +0:91 'storeTemp' ( temp int) +0:92 Sequence +0:92 move second child to first child ( temp int) +0:92 'coordTemp' ( temp int) +0:92 c1: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child ( temp int) +0:92 'storeTemp' ( temp int) +0:92 imageLoad ( temp int) +0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 right shift second child into first child ( temp int) +0:92 'storeTemp' ( temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore ( temp void) +0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp int) +0:92 'storeTemp' ( temp int) +0:95 Sequence +0:95 move second child to first child ( temp float) +0:95 'storeTemp' ( temp float) +0:95 Function Call: SomeValue( ( temp float) +0:95 imageStore ( temp void) +0:95 'g_tTex2df1' (layout( r32f) uniform image2D) +0:95 c2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' ( temp float) +0:95 'storeTemp' ( temp float) +0:96 Sequence +0:96 imageStore ( temp void) +0:96 'g_tTex2df1' (layout( r32f) uniform image2D) +0:96 c2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' ( temp float) +0:96 'lf1' ( temp float) +0:97 Sequence +0:97 move second child to first child ( temp int) +0:97 'storeTemp' ( temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore ( temp void) +0:97 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:97 c2: direct index for structure ( uniform 2-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' ( temp int) +0:97 'storeTemp' ( temp int) +0:98 Sequence +0:98 move second child to first child ( temp uint) +0:98 'storeTemp' ( temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore ( temp void) +0:98 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:98 c2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' ( temp uint) +0:98 'storeTemp' ( temp uint) +0:101 Sequence +0:101 move second child to first child ( temp float) +0:101 'storeTemp' ( temp float) +0:101 Function Call: SomeValue( ( temp float) +0:101 imageStore ( temp void) +0:101 'g_tTex3df1' (layout( r32f) uniform image3D) +0:101 c3: direct index for structure ( uniform 3-component vector of int) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' ( temp float) +0:101 'storeTemp' ( temp float) +0:102 Sequence +0:102 imageStore ( temp void) +0:102 'g_tTex3df1' (layout( r32f) uniform image3D) +0:102 c3: direct index for structure ( uniform 3-component vector of int) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' ( temp float) +0:102 'lf1' ( temp float) +0:103 Sequence +0:103 move second child to first child ( temp int) +0:103 'storeTemp' ( temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore ( temp void) +0:103 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:103 c3: direct index for structure ( uniform 3-component vector of int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' ( temp int) +0:103 'storeTemp' ( temp int) +0:104 Sequence +0:104 move second child to first child ( temp uint) +0:104 'storeTemp' ( temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore ( temp void) +0:104 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:104 c3: direct index for structure ( uniform 3-component vector of int) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' ( temp uint) +0:104 'storeTemp' ( temp uint) +0:107 Function Call: Fn1(f1; ( temp float) +0:107 imageLoad ( temp float) +0:107 'g_tTex1df1' (layout( r32f) uniform image1D) +0:107 c1: direct index for structure ( uniform int) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; ( temp int) +0:108 imageLoad ( temp int) +0:108 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:108 c1: direct index for structure ( uniform int) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; ( temp uint) +0:109 imageLoad ( temp uint) +0:109 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:109 c1: direct index for structure ( uniform int) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma ( temp void) +0:111 Function Call: Fn2(f1; ( temp void) +0:111 'tempArg' ( temp float) +0:111 Sequence +0:111 imageStore ( temp void) +0:111 'g_tTex1df1' (layout( r32f) uniform image1D) +0:111 c1: direct index for structure ( uniform int) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' ( temp float) +0:111 'tempArg' ( temp float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(i1; ( temp void) +0:112 'tempArg' ( temp int) +0:112 Sequence +0:112 imageStore ( temp void) +0:112 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:112 c1: direct index for structure ( uniform int) +0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' ( temp int) +0:112 'tempArg' ( temp int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(u1; ( temp void) +0:113 'tempArg' ( temp uint) +0:113 Sequence +0:113 imageStore ( temp void) +0:113 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:113 c1: direct index for structure ( uniform int) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' ( temp uint) +0:113 'tempArg' ( temp uint) +0:117 Sequence +0:117 move second child to first child ( temp int) +0:117 'coordTemp' ( temp int) +0:117 c1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageLoad ( temp float) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp float) +0:117 'storeTemp' ( temp float) +0:118 Sequence +0:118 move second child to first child ( temp int) +0:118 'coordTemp' ( temp int) +0:118 c1: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageLoad ( temp int) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp int) +0:118 'storeTemp' ( temp int) +0:119 Sequence +0:119 move second child to first child ( temp int) +0:119 'coordTemp' ( temp int) +0:119 c1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageLoad ( temp uint) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp uint) +0:119 'storeTemp' ( temp uint) +0:121 Sequence +0:121 move second child to first child ( temp int) +0:121 'coordTemp' ( temp int) +0:121 c1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageLoad ( temp float) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp float) +0:121 'storeTemp' ( temp float) +0:122 Sequence +0:122 move second child to first child ( temp int) +0:122 'coordTemp' ( temp int) +0:122 c1: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageLoad ( temp int) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp int) +0:122 'storeTemp' ( temp int) +0:123 Sequence +0:123 move second child to first child ( temp int) +0:123 'coordTemp' ( temp int) +0:123 c1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageLoad ( temp uint) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp uint) +0:123 'storeTemp' ( temp uint) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'coordTemp' ( temp int) +0:126 c1: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 imageLoad ( temp float) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 Post-Increment ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) +0:127 Sequence +0:127 move second child to first child ( temp int) +0:127 'coordTemp' ( temp int) +0:127 c1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 imageLoad ( temp uint) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 Post-Decrement ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:128 Sequence +0:128 move second child to first child ( temp int) +0:128 'coordTemp' ( temp int) +0:128 c1: direct index for structure ( uniform int) +0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 imageLoad ( temp int) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 Post-Increment ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) +0:130 Sequence +0:130 move second child to first child ( temp int) +0:130 'coordTemp' ( temp int) +0:130 c1: direct index for structure ( uniform int) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 imageLoad ( temp float) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 Post-Decrement ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'coordTemp' ( temp int) +0:131 c1: direct index for structure ( uniform int) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 imageLoad ( temp int) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 Post-Increment ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) +0:132 Sequence +0:132 move second child to first child ( temp int) +0:132 'coordTemp' ( temp int) +0:132 c1: direct index for structure ( uniform int) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child ( temp uint) +0:132 'storeTempPre' ( temp uint) +0:132 imageLoad ( temp uint) +0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 move second child to first child ( temp uint) +0:132 'storeTempPost' ( temp uint) +0:132 'storeTempPre' ( temp uint) +0:132 Post-Decrement ( temp uint) +0:132 'storeTempPost' ( temp uint) +0:132 imageStore ( temp void) +0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 'storeTempPost' ( temp uint) +0:132 'storeTempPre' ( temp uint) +0:135 Sequence +0:135 move second child to first child ( temp float) +0:135 'storeTemp' ( temp float) +0:? imageLoad ( temp float) +0:135 'g_tTex2df1' (layout( r32f) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore ( temp void) +0:135 'g_tTex1df1' (layout( r32f) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' ( temp float) +0:135 'storeTemp' ( temp float) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 Color: direct index for structure ( temp 4-component vector of float) +0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Branch: Return with expression +0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Constant: +0:53 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df1' (layout( r32f) uniform image1D) +0:? 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:? 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:? 'g_tTex2df1' (layout( r32f) uniform image2D) +0:? 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:? 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:? 'g_tTex3df1' (layout( r32f) uniform image3D) +0:? 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:? 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:? 'g_tTex1df1a' (layout( r32f) uniform image1DArray) +0:? 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout( r32f) uniform image2DArray) +0:? 'g_tTex2di1a' (layout( r32i) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout( r32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; ( temp int) +0:42 Function Parameters: +0:42 'x' ( in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' ( in int) +0:43 Function Definition: Fn1(u1; ( temp uint) +0:43 Function Parameters: +0:43 'x' ( in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' ( in uint) +0:44 Function Definition: Fn1(f1; ( temp float) +0:44 Function Parameters: +0:44 'x' ( in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' ( in float) +0:46 Function Definition: Fn2(i1; ( temp void) +0:46 Function Parameters: +0:46 'x' ( out int) +0:? Sequence +0:46 move second child to first child ( temp int) +0:46 'x' ( out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; ( temp void) +0:47 Function Parameters: +0:47 'x' ( out uint) +0:? Sequence +0:47 move second child to first child ( temp uint) +0:47 'x' ( out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; ( temp void) +0:48 Function Parameters: +0:48 'x' ( out float) +0:? Sequence +0:48 move second child to first child ( temp float) +0:48 'x' ( out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( ( temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float ( temp float) +0:50 c1: direct index for structure ( uniform int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad ( temp float) +0:57 'g_tTex1df1' (layout( r32f) uniform image1D) +0:57 c1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 'r00' ( temp float) +0:59 imageLoad ( temp float) +0:59 'g_tTex1df1' (layout( r32f) uniform image1D) +0:59 c1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp int) +0:60 'r01' ( temp int) +0:60 imageLoad ( temp int) +0:60 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:60 c1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp uint) +0:61 'r02' ( temp uint) +0:61 imageLoad ( temp uint) +0:61 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:61 c1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp float) +0:64 'r10' ( temp float) +0:64 imageLoad ( temp float) +0:64 'g_tTex2df1' (layout( r32f) uniform image2D) +0:64 c2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp int) +0:65 'r11' ( temp int) +0:65 imageLoad ( temp int) +0:65 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:65 c2: direct index for structure ( uniform 2-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp uint) +0:66 'r12' ( temp uint) +0:66 imageLoad ( temp uint) +0:66 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:66 c2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp float) +0:69 'r20' ( temp float) +0:69 imageLoad ( temp float) +0:69 'g_tTex3df1' (layout( r32f) uniform image3D) +0:69 c3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp int) +0:70 'r21' ( temp int) +0:70 imageLoad ( temp int) +0:70 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:70 c3: direct index for structure ( uniform 3-component vector of int) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp uint) +0:71 'r22' ( temp uint) +0:71 imageLoad ( temp uint) +0:71 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:71 c3: direct index for structure ( uniform 3-component vector of int) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child ( temp float) +0:73 'lf1' ( temp float) +0:73 uf1: direct index for structure ( uniform float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp float) +0:77 'storeTemp' ( temp float) +0:77 Function Call: SomeValue( ( temp float) +0:77 imageStore ( temp void) +0:77 'g_tTex1df1' (layout( r32f) uniform image1D) +0:77 c1: direct index for structure ( uniform int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' ( temp float) +0:77 'storeTemp' ( temp float) +0:78 Sequence +0:78 imageStore ( temp void) +0:78 'g_tTex1df1' (layout( r32f) uniform image1D) +0:78 c1: direct index for structure ( uniform int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' ( temp float) +0:78 'lf1' ( temp float) +0:79 Sequence +0:79 move second child to first child ( temp int) +0:79 'storeTemp' ( temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore ( temp void) +0:79 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:79 c1: direct index for structure ( uniform int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' ( temp int) +0:79 'storeTemp' ( temp int) +0:80 Sequence +0:80 move second child to first child ( temp uint) +0:80 'storeTemp' ( temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore ( temp void) +0:80 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:80 c1: direct index for structure ( uniform int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' ( temp uint) +0:80 'storeTemp' ( temp uint) +0:83 Sequence +0:83 move second child to first child ( temp float) +0:83 'val1' ( temp float) +0:83 Sequence +0:83 move second child to first child ( temp int) +0:83 'coordTemp' ( temp int) +0:83 c1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child ( temp float) +0:83 'storeTemp' ( temp float) +0:83 imageLoad ( temp float) +0:83 'g_tTex1df1' (layout( r32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 multiply second child into first child ( temp float) +0:83 'storeTemp' ( temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore ( temp void) +0:83 'g_tTex1df1' (layout( r32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp float) +0:83 'storeTemp' ( temp float) +0:84 Sequence +0:84 move second child to first child ( temp int) +0:84 'coordTemp' ( temp int) +0:84 c1: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child ( temp float) +0:84 'storeTemp' ( temp float) +0:84 imageLoad ( temp float) +0:84 'g_tTex1df1' (layout( r32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 subtract second child into first child ( temp float) +0:84 'storeTemp' ( temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore ( temp void) +0:84 'g_tTex1df1' (layout( r32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp float) +0:84 'storeTemp' ( temp float) +0:85 Sequence +0:85 move second child to first child ( temp int) +0:85 'coordTemp' ( temp int) +0:85 c1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child ( temp float) +0:85 'storeTemp' ( temp float) +0:85 imageLoad ( temp float) +0:85 'g_tTex1df1' (layout( r32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 add second child into first child ( temp float) +0:85 'storeTemp' ( temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore ( temp void) +0:85 'g_tTex1df1' (layout( r32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp float) +0:85 'storeTemp' ( temp float) +0:87 Sequence +0:87 move second child to first child ( temp int) +0:87 'coordTemp' ( temp int) +0:87 c1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child ( temp int) +0:87 'storeTemp' ( temp int) +0:87 imageLoad ( temp int) +0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 divide second child into first child ( temp int) +0:87 'storeTemp' ( temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore ( temp void) +0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp int) +0:87 'storeTemp' ( temp int) +0:88 Sequence +0:88 move second child to first child ( temp int) +0:88 'coordTemp' ( temp int) +0:88 c1: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child ( temp int) +0:88 'storeTemp' ( temp int) +0:88 imageLoad ( temp int) +0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 mod second child into first child ( temp int) +0:88 'storeTemp' ( temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore ( temp void) +0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp int) +0:88 'storeTemp' ( temp int) +0:89 Sequence +0:89 move second child to first child ( temp int) +0:89 'coordTemp' ( temp int) +0:89 c1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child ( temp int) +0:89 'storeTemp' ( temp int) +0:89 imageLoad ( temp int) +0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 and second child into first child ( temp int) +0:89 'storeTemp' ( temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore ( temp void) +0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp int) +0:89 'storeTemp' ( temp int) +0:90 Sequence +0:90 move second child to first child ( temp int) +0:90 'coordTemp' ( temp int) +0:90 c1: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child ( temp int) +0:90 'storeTemp' ( temp int) +0:90 imageLoad ( temp int) +0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 or second child into first child ( temp int) +0:90 'storeTemp' ( temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore ( temp void) +0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp int) +0:90 'storeTemp' ( temp int) +0:91 Sequence +0:91 move second child to first child ( temp int) +0:91 'coordTemp' ( temp int) +0:91 c1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child ( temp int) +0:91 'storeTemp' ( temp int) +0:91 imageLoad ( temp int) +0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 left shift second child into first child ( temp int) +0:91 'storeTemp' ( temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore ( temp void) +0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp int) +0:91 'storeTemp' ( temp int) +0:92 Sequence +0:92 move second child to first child ( temp int) +0:92 'coordTemp' ( temp int) +0:92 c1: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child ( temp int) +0:92 'storeTemp' ( temp int) +0:92 imageLoad ( temp int) +0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 right shift second child into first child ( temp int) +0:92 'storeTemp' ( temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore ( temp void) +0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp int) +0:92 'storeTemp' ( temp int) +0:95 Sequence +0:95 move second child to first child ( temp float) +0:95 'storeTemp' ( temp float) +0:95 Function Call: SomeValue( ( temp float) +0:95 imageStore ( temp void) +0:95 'g_tTex2df1' (layout( r32f) uniform image2D) +0:95 c2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' ( temp float) +0:95 'storeTemp' ( temp float) +0:96 Sequence +0:96 imageStore ( temp void) +0:96 'g_tTex2df1' (layout( r32f) uniform image2D) +0:96 c2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' ( temp float) +0:96 'lf1' ( temp float) +0:97 Sequence +0:97 move second child to first child ( temp int) +0:97 'storeTemp' ( temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore ( temp void) +0:97 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:97 c2: direct index for structure ( uniform 2-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' ( temp int) +0:97 'storeTemp' ( temp int) +0:98 Sequence +0:98 move second child to first child ( temp uint) +0:98 'storeTemp' ( temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore ( temp void) +0:98 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:98 c2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' ( temp uint) +0:98 'storeTemp' ( temp uint) +0:101 Sequence +0:101 move second child to first child ( temp float) +0:101 'storeTemp' ( temp float) +0:101 Function Call: SomeValue( ( temp float) +0:101 imageStore ( temp void) +0:101 'g_tTex3df1' (layout( r32f) uniform image3D) +0:101 c3: direct index for structure ( uniform 3-component vector of int) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' ( temp float) +0:101 'storeTemp' ( temp float) +0:102 Sequence +0:102 imageStore ( temp void) +0:102 'g_tTex3df1' (layout( r32f) uniform image3D) +0:102 c3: direct index for structure ( uniform 3-component vector of int) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' ( temp float) +0:102 'lf1' ( temp float) +0:103 Sequence +0:103 move second child to first child ( temp int) +0:103 'storeTemp' ( temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore ( temp void) +0:103 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:103 c3: direct index for structure ( uniform 3-component vector of int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' ( temp int) +0:103 'storeTemp' ( temp int) +0:104 Sequence +0:104 move second child to first child ( temp uint) +0:104 'storeTemp' ( temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore ( temp void) +0:104 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:104 c3: direct index for structure ( uniform 3-component vector of int) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' ( temp uint) +0:104 'storeTemp' ( temp uint) +0:107 Function Call: Fn1(f1; ( temp float) +0:107 imageLoad ( temp float) +0:107 'g_tTex1df1' (layout( r32f) uniform image1D) +0:107 c1: direct index for structure ( uniform int) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; ( temp int) +0:108 imageLoad ( temp int) +0:108 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:108 c1: direct index for structure ( uniform int) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; ( temp uint) +0:109 imageLoad ( temp uint) +0:109 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:109 c1: direct index for structure ( uniform int) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma ( temp void) +0:111 Function Call: Fn2(f1; ( temp void) +0:111 'tempArg' ( temp float) +0:111 Sequence +0:111 imageStore ( temp void) +0:111 'g_tTex1df1' (layout( r32f) uniform image1D) +0:111 c1: direct index for structure ( uniform int) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' ( temp float) +0:111 'tempArg' ( temp float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(i1; ( temp void) +0:112 'tempArg' ( temp int) +0:112 Sequence +0:112 imageStore ( temp void) +0:112 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:112 c1: direct index for structure ( uniform int) +0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' ( temp int) +0:112 'tempArg' ( temp int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(u1; ( temp void) +0:113 'tempArg' ( temp uint) +0:113 Sequence +0:113 imageStore ( temp void) +0:113 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:113 c1: direct index for structure ( uniform int) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' ( temp uint) +0:113 'tempArg' ( temp uint) +0:117 Sequence +0:117 move second child to first child ( temp int) +0:117 'coordTemp' ( temp int) +0:117 c1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageLoad ( temp float) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp float) +0:117 'storeTemp' ( temp float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df1' (layout( r32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp float) +0:117 'storeTemp' ( temp float) +0:118 Sequence +0:118 move second child to first child ( temp int) +0:118 'coordTemp' ( temp int) +0:118 c1: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageLoad ( temp int) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp int) +0:118 'storeTemp' ( temp int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp int) +0:118 'storeTemp' ( temp int) +0:119 Sequence +0:119 move second child to first child ( temp int) +0:119 'coordTemp' ( temp int) +0:119 c1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageLoad ( temp uint) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp uint) +0:119 'storeTemp' ( temp uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp uint) +0:119 'storeTemp' ( temp uint) +0:121 Sequence +0:121 move second child to first child ( temp int) +0:121 'coordTemp' ( temp int) +0:121 c1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageLoad ( temp float) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp float) +0:121 'storeTemp' ( temp float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df1' (layout( r32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp float) +0:121 'storeTemp' ( temp float) +0:122 Sequence +0:122 move second child to first child ( temp int) +0:122 'coordTemp' ( temp int) +0:122 c1: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageLoad ( temp int) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp int) +0:122 'storeTemp' ( temp int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp int) +0:122 'storeTemp' ( temp int) +0:123 Sequence +0:123 move second child to first child ( temp int) +0:123 'coordTemp' ( temp int) +0:123 c1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageLoad ( temp uint) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp uint) +0:123 'storeTemp' ( temp uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp uint) +0:123 'storeTemp' ( temp uint) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'coordTemp' ( temp int) +0:126 c1: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 imageLoad ( temp float) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) +0:126 Post-Increment ( temp float) +0:126 'storeTempPost' ( temp float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df1' (layout( r32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp float) +0:126 'storeTempPre' ( temp float) +0:127 Sequence +0:127 move second child to first child ( temp int) +0:127 'coordTemp' ( temp int) +0:127 c1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 imageLoad ( temp uint) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:127 Post-Decrement ( temp uint) +0:127 'storeTempPost' ( temp uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp uint) +0:127 'storeTempPre' ( temp uint) +0:128 Sequence +0:128 move second child to first child ( temp int) +0:128 'coordTemp' ( temp int) +0:128 c1: direct index for structure ( uniform int) +0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 imageLoad ( temp int) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) +0:128 Post-Increment ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp int) +0:128 'storeTempPre' ( temp int) +0:130 Sequence +0:130 move second child to first child ( temp int) +0:130 'coordTemp' ( temp int) +0:130 c1: direct index for structure ( uniform int) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 imageLoad ( temp float) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) +0:130 Post-Decrement ( temp float) +0:130 'storeTempPost' ( temp float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df1' (layout( r32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp float) +0:130 'storeTempPre' ( temp float) +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'coordTemp' ( temp int) +0:131 c1: direct index for structure ( uniform int) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 imageLoad ( temp int) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) +0:131 Post-Increment ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp int) +0:131 'storeTempPre' ( temp int) +0:132 Sequence +0:132 move second child to first child ( temp int) +0:132 'coordTemp' ( temp int) +0:132 c1: direct index for structure ( uniform int) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child ( temp uint) +0:132 'storeTempPre' ( temp uint) +0:132 imageLoad ( temp uint) +0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 move second child to first child ( temp uint) +0:132 'storeTempPost' ( temp uint) +0:132 'storeTempPre' ( temp uint) +0:132 Post-Decrement ( temp uint) +0:132 'storeTempPost' ( temp uint) +0:132 imageStore ( temp void) +0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 'storeTempPost' ( temp uint) +0:132 'storeTempPre' ( temp uint) +0:135 Sequence +0:135 move second child to first child ( temp float) +0:135 'storeTemp' ( temp float) +0:? imageLoad ( temp float) +0:135 'g_tTex2df1' (layout( r32f) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore ( temp void) +0:135 'g_tTex1df1' (layout( r32f) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' ( temp float) +0:135 'storeTemp' ( temp float) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 Color: direct index for structure ( temp 4-component vector of float) +0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Branch: Return with expression +0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Constant: +0:53 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df1' (layout( r32f) uniform image1D) +0:? 'g_tTex1di1' (layout( r32i) uniform iimage1D) +0:? 'g_tTex1du1' (layout( r32ui) uniform uimage1D) +0:? 'g_tTex2df1' (layout( r32f) uniform image2D) +0:? 'g_tTex2di1' (layout( r32i) uniform iimage2D) +0:? 'g_tTex2du1' (layout( r32ui) uniform uimage2D) +0:? 'g_tTex3df1' (layout( r32f) uniform image3D) +0:? 'g_tTex3di1' (layout( r32i) uniform iimage3D) +0:? 'g_tTex3du1' (layout( r32ui) uniform uimage3D) +0:? 'g_tTex1df1a' (layout( r32f) uniform image1DArray) +0:? 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout( r32f) uniform image2DArray) +0:? 'g_tTex2di1a' (layout( r32i) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout( r32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 571 + + Capability Shader + Capability Image1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 547 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "Fn1(i1;" + Name 9 "x" + Name 16 "Fn1(u1;" + Name 15 "x" + Name 22 "Fn1(f1;" + Name 21 "x" + Name 26 "Fn2(i1;" + Name 25 "x" + Name 30 "Fn2(u1;" + Name 29 "x" + Name 34 "Fn2(f1;" + Name 33 "x" + Name 37 "SomeValue(" + Name 40 "PS_OUTPUT" + MemberName 40(PS_OUTPUT) 0 "Color" + Name 42 "@main(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf1" + MemberName 59($Global) 9 "ui1" + MemberName 59($Global) 10 "uu1" + Name 61 "" + Name 70 "g_tTex1df1" + Name 75 "r00" + Name 80 "r01" + Name 83 "g_tTex1di1" + Name 88 "r02" + Name 91 "g_tTex1du1" + Name 96 "r10" + Name 99 "g_tTex2df1" + Name 106 "r11" + Name 109 "g_tTex2di1" + Name 114 "r12" + Name 117 "g_tTex2du1" + Name 122 "r20" + Name 125 "g_tTex3df1" + Name 132 "r21" + Name 135 "g_tTex3di1" + Name 140 "r22" + Name 143 "g_tTex3du1" + Name 148 "lf1" + Name 153 "storeTemp" + Name 163 "storeTemp" + Name 168 "storeTemp" + Name 174 "val1" + Name 175 "coordTemp" + Name 178 "storeTemp" + Name 189 "coordTemp" + Name 192 "storeTemp" + Name 202 "coordTemp" + Name 205 "storeTemp" + Name 215 "coordTemp" + Name 218 "storeTemp" + Name 227 "coordTemp" + Name 230 "storeTemp" + Name 239 "coordTemp" + Name 242 "storeTemp" + Name 252 "coordTemp" + Name 255 "storeTemp" + Name 265 "coordTemp" + Name 268 "storeTemp" + Name 277 "coordTemp" + Name 280 "storeTemp" + Name 289 "storeTemp" + Name 299 "storeTemp" + Name 305 "storeTemp" + Name 311 "storeTemp" + Name 321 "storeTemp" + Name 326 "storeTemp" + Name 336 "param" + Name 342 "param" + Name 348 "param" + Name 350 "tempArg" + Name 351 "param" + Name 358 "tempArg" + Name 359 "param" + Name 366 "tempArg" + Name 367 "param" + Name 374 "coordTemp" + Name 377 "storeTemp" + Name 387 "coordTemp" + Name 390 "storeTemp" + Name 399 "coordTemp" + Name 402 "storeTemp" + Name 411 "coordTemp" + Name 414 "storeTemp" + Name 423 "coordTemp" + Name 426 "storeTemp" + Name 435 "coordTemp" + Name 438 "storeTemp" + Name 447 "coordTemp" + Name 450 "storeTempPre" + Name 454 "storeTempPost" + Name 461 "coordTemp" + Name 464 "storeTempPre" + Name 468 "storeTempPost" + Name 475 "coordTemp" + Name 478 "storeTempPre" + Name 482 "storeTempPost" + Name 489 "coordTemp" + Name 492 "storeTempPre" + Name 496 "storeTempPost" + Name 503 "coordTemp" + Name 506 "storeTempPre" + Name 510 "storeTempPost" + Name 517 "coordTemp" + Name 520 "storeTempPre" + Name 524 "storeTempPost" + Name 531 "storeTemp" + Name 539 "psout" + Name 547 "@entryPointOutput.Color" + Name 552 "g_sSamp" + Name 555 "g_tTex1df1a" + Name 558 "g_tTex1di1a" + Name 561 "g_tTex1du1a" + Name 564 "g_tTex2df1a" + Name 567 "g_tTex2di1a" + Name 570 "g_tTex2du1a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 100 + MemberDecorate 59($Global) 10 Offset 104 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 70(g_tTex1df1) DescriptorSet 0 + Decorate 83(g_tTex1di1) DescriptorSet 0 + Decorate 91(g_tTex1du1) DescriptorSet 0 + Decorate 99(g_tTex2df1) DescriptorSet 0 + Decorate 109(g_tTex2di1) DescriptorSet 0 + Decorate 117(g_tTex2du1) DescriptorSet 0 + Decorate 125(g_tTex3df1) DescriptorSet 0 + Decorate 135(g_tTex3di1) DescriptorSet 0 + Decorate 143(g_tTex3du1) DescriptorSet 0 + Decorate 547(@entryPointOutput.Color) Location 0 + Decorate 552(g_sSamp) DescriptorSet 0 + Decorate 552(g_sSamp) Binding 0 + Decorate 555(g_tTex1df1a) DescriptorSet 0 + Decorate 558(g_tTex1di1a) DescriptorSet 0 + Decorate 561(g_tTex1du1a) DescriptorSet 0 + Decorate 564(g_tTex2df1a) DescriptorSet 0 + Decorate 567(g_tTex2di1a) DescriptorSet 0 + Decorate 570(g_tTex2du1a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 14: TypeFunction 12(int) 13(ptr) + 18: TypeFloat 32 + 19: TypePointer Function 18(float) + 20: TypeFunction 18(float) 19(ptr) + 24: TypeFunction 2 7(ptr) + 28: TypeFunction 2 13(ptr) + 32: TypeFunction 2 19(ptr) + 36: TypeFunction 18(float) + 39: TypeVector 18(float) 4 + 40(PS_OUTPUT): TypeStruct 39(fvec4) + 41: TypeFunction 40(PS_OUTPUT) + 53: 6(int) Constant 0 + 54: 12(int) Constant 0 + 55: 18(float) Constant 0 + 56: TypeVector 6(int) 2 + 57: TypeVector 6(int) 3 + 58: TypeVector 6(int) 4 + 59($Global): TypeStruct 6(int) 56(ivec2) 57(ivec3) 58(ivec4) 6(int) 56(ivec2) 57(ivec3) 58(ivec4) 18(float) 6(int) 12(int) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: TypePointer Uniform 6(int) + 68: TypeImage 18(float) 1D nonsampled format:R32f + 69: TypePointer UniformConstant 68 + 70(g_tTex1df1): 69(ptr) Variable UniformConstant + 81: TypeImage 6(int) 1D nonsampled format:R32i + 82: TypePointer UniformConstant 81 + 83(g_tTex1di1): 82(ptr) Variable UniformConstant + 89: TypeImage 12(int) 1D nonsampled format:R32ui + 90: TypePointer UniformConstant 89 + 91(g_tTex1du1): 90(ptr) Variable UniformConstant + 97: TypeImage 18(float) 2D nonsampled format:R32f + 98: TypePointer UniformConstant 97 + 99(g_tTex2df1): 98(ptr) Variable UniformConstant + 101: 6(int) Constant 1 + 102: TypePointer Uniform 56(ivec2) + 107: TypeImage 6(int) 2D nonsampled format:R32i + 108: TypePointer UniformConstant 107 + 109(g_tTex2di1): 108(ptr) Variable UniformConstant + 115: TypeImage 12(int) 2D nonsampled format:R32ui + 116: TypePointer UniformConstant 115 + 117(g_tTex2du1): 116(ptr) Variable UniformConstant + 123: TypeImage 18(float) 3D nonsampled format:R32f + 124: TypePointer UniformConstant 123 + 125(g_tTex3df1): 124(ptr) Variable UniformConstant + 127: 6(int) Constant 2 + 128: TypePointer Uniform 57(ivec3) + 133: TypeImage 6(int) 3D nonsampled format:R32i + 134: TypePointer UniformConstant 133 + 135(g_tTex3di1): 134(ptr) Variable UniformConstant + 141: TypeImage 12(int) 3D nonsampled format:R32ui + 142: TypePointer UniformConstant 141 + 143(g_tTex3du1): 142(ptr) Variable UniformConstant + 149: 6(int) Constant 8 + 150: TypePointer Uniform 18(float) + 169: 12(int) Constant 3 + 182: 18(float) Constant 1073741824 + 196: 18(float) Constant 1077936128 + 209: 18(float) Constant 1082130432 + 246: 6(int) Constant 65535 + 259: 6(int) Constant 61680 + 300: 6(int) Constant 5 + 306: 12(int) Constant 6 + 327: 12(int) Constant 9 + 382: 18(float) Constant 1065353216 + 533: 6(int) Constant 3 + 534: 56(ivec2) ConstantComposite 127 533 + 538: TypePointer Function 40(PS_OUTPUT) + 540: 39(fvec4) ConstantComposite 382 382 382 382 + 541: TypePointer Function 39(fvec4) + 546: TypePointer Output 39(fvec4) +547(@entryPointOutput.Color): 546(ptr) Variable Output + 550: TypeSampler + 551: TypePointer UniformConstant 550 + 552(g_sSamp): 551(ptr) Variable UniformConstant + 553: TypeImage 18(float) 1D array nonsampled format:R32f + 554: TypePointer UniformConstant 553 +555(g_tTex1df1a): 554(ptr) Variable UniformConstant + 556: TypeImage 6(int) 1D array nonsampled format:R32i + 557: TypePointer UniformConstant 556 +558(g_tTex1di1a): 557(ptr) Variable UniformConstant + 559: TypeImage 12(int) 1D array nonsampled format:R32ui + 560: TypePointer UniformConstant 559 +561(g_tTex1du1a): 560(ptr) Variable UniformConstant + 562: TypeImage 18(float) 2D array nonsampled format:R32f + 563: TypePointer UniformConstant 562 +564(g_tTex2df1a): 563(ptr) Variable UniformConstant + 565: TypeImage 6(int) 2D array nonsampled format:R32i + 566: TypePointer UniformConstant 565 +567(g_tTex2di1a): 566(ptr) Variable UniformConstant + 568: TypeImage 12(int) 2D array nonsampled format:R32ui + 569: TypePointer UniformConstant 568 +570(g_tTex2du1a): 569(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 548:40(PS_OUTPUT) FunctionCall 42(@main() + 549: 39(fvec4) CompositeExtract 548 0 + Store 547(@entryPointOutput.Color) 549 + Return + FunctionEnd + 10(Fn1(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 44: 6(int) Load 9(x) + ReturnValue 44 + FunctionEnd + 16(Fn1(u1;): 12(int) Function None 14 + 15(x): 13(ptr) FunctionParameter + 17: Label + 47: 12(int) Load 15(x) + ReturnValue 47 + FunctionEnd + 22(Fn1(f1;): 18(float) Function None 20 + 21(x): 19(ptr) FunctionParameter + 23: Label + 50: 18(float) Load 21(x) + ReturnValue 50 + FunctionEnd + 26(Fn2(i1;): 2 Function None 24 + 25(x): 7(ptr) FunctionParameter + 27: Label + Store 25(x) 53 + Return + FunctionEnd + 30(Fn2(u1;): 2 Function None 28 + 29(x): 13(ptr) FunctionParameter + 31: Label + Store 29(x) 54 + Return + FunctionEnd + 34(Fn2(f1;): 2 Function None 32 + 33(x): 19(ptr) FunctionParameter + 35: Label + Store 33(x) 55 + Return + FunctionEnd + 37(SomeValue(): 18(float) Function None 36 + 38: Label + 63: 62(ptr) AccessChain 61 53 + 64: 6(int) Load 63 + 65: 18(float) ConvertSToF 64 + ReturnValue 65 + FunctionEnd + 42(@main():40(PS_OUTPUT) Function None 41 + 43: Label + 75(r00): 19(ptr) Variable Function + 80(r01): 7(ptr) Variable Function + 88(r02): 13(ptr) Variable Function + 96(r10): 19(ptr) Variable Function + 106(r11): 7(ptr) Variable Function + 114(r12): 13(ptr) Variable Function + 122(r20): 19(ptr) Variable Function + 132(r21): 7(ptr) Variable Function + 140(r22): 13(ptr) Variable Function + 148(lf1): 19(ptr) Variable Function + 153(storeTemp): 19(ptr) Variable Function + 163(storeTemp): 7(ptr) Variable Function + 168(storeTemp): 13(ptr) Variable Function + 174(val1): 19(ptr) Variable Function + 175(coordTemp): 7(ptr) Variable Function + 178(storeTemp): 19(ptr) Variable Function + 189(coordTemp): 7(ptr) Variable Function + 192(storeTemp): 19(ptr) Variable Function + 202(coordTemp): 7(ptr) Variable Function + 205(storeTemp): 19(ptr) Variable Function + 215(coordTemp): 7(ptr) Variable Function + 218(storeTemp): 7(ptr) Variable Function + 227(coordTemp): 7(ptr) Variable Function + 230(storeTemp): 7(ptr) Variable Function + 239(coordTemp): 7(ptr) Variable Function + 242(storeTemp): 7(ptr) Variable Function + 252(coordTemp): 7(ptr) Variable Function + 255(storeTemp): 7(ptr) Variable Function + 265(coordTemp): 7(ptr) Variable Function + 268(storeTemp): 7(ptr) Variable Function + 277(coordTemp): 7(ptr) Variable Function + 280(storeTemp): 7(ptr) Variable Function + 289(storeTemp): 19(ptr) Variable Function + 299(storeTemp): 7(ptr) Variable Function + 305(storeTemp): 13(ptr) Variable Function + 311(storeTemp): 19(ptr) Variable Function + 321(storeTemp): 7(ptr) Variable Function + 326(storeTemp): 13(ptr) Variable Function + 336(param): 19(ptr) Variable Function + 342(param): 7(ptr) Variable Function + 348(param): 13(ptr) Variable Function + 350(tempArg): 19(ptr) Variable Function + 351(param): 19(ptr) Variable Function + 358(tempArg): 7(ptr) Variable Function + 359(param): 7(ptr) Variable Function + 366(tempArg): 13(ptr) Variable Function + 367(param): 13(ptr) Variable Function + 374(coordTemp): 7(ptr) Variable Function + 377(storeTemp): 19(ptr) Variable Function + 387(coordTemp): 7(ptr) Variable Function + 390(storeTemp): 7(ptr) Variable Function + 399(coordTemp): 7(ptr) Variable Function + 402(storeTemp): 13(ptr) Variable Function + 411(coordTemp): 7(ptr) Variable Function + 414(storeTemp): 19(ptr) Variable Function + 423(coordTemp): 7(ptr) Variable Function + 426(storeTemp): 7(ptr) Variable Function + 435(coordTemp): 7(ptr) Variable Function + 438(storeTemp): 13(ptr) Variable Function + 447(coordTemp): 7(ptr) Variable Function +450(storeTempPre): 19(ptr) Variable Function +454(storeTempPost): 19(ptr) Variable Function + 461(coordTemp): 7(ptr) Variable Function +464(storeTempPre): 13(ptr) Variable Function +468(storeTempPost): 13(ptr) Variable Function + 475(coordTemp): 7(ptr) Variable Function +478(storeTempPre): 7(ptr) Variable Function +482(storeTempPost): 7(ptr) Variable Function + 489(coordTemp): 7(ptr) Variable Function +492(storeTempPre): 19(ptr) Variable Function +496(storeTempPost): 19(ptr) Variable Function + 503(coordTemp): 7(ptr) Variable Function +506(storeTempPre): 7(ptr) Variable Function +510(storeTempPost): 7(ptr) Variable Function + 517(coordTemp): 7(ptr) Variable Function +520(storeTempPre): 13(ptr) Variable Function +524(storeTempPost): 13(ptr) Variable Function + 531(storeTemp): 19(ptr) Variable Function + 539(psout): 538(ptr) Variable Function + 71: 68 Load 70(g_tTex1df1) + 72: 62(ptr) AccessChain 61 53 + 73: 6(int) Load 72 + 74: 18(float) ImageRead 71 73 + 76: 68 Load 70(g_tTex1df1) + 77: 62(ptr) AccessChain 61 53 + 78: 6(int) Load 77 + 79: 18(float) ImageRead 76 78 + Store 75(r00) 79 + 84: 81 Load 83(g_tTex1di1) + 85: 62(ptr) AccessChain 61 53 + 86: 6(int) Load 85 + 87: 6(int) ImageRead 84 86 + Store 80(r01) 87 + 92: 89 Load 91(g_tTex1du1) + 93: 62(ptr) AccessChain 61 53 + 94: 6(int) Load 93 + 95: 12(int) ImageRead 92 94 + Store 88(r02) 95 + 100: 97 Load 99(g_tTex2df1) + 103: 102(ptr) AccessChain 61 101 + 104: 56(ivec2) Load 103 + 105: 18(float) ImageRead 100 104 + Store 96(r10) 105 + 110: 107 Load 109(g_tTex2di1) + 111: 102(ptr) AccessChain 61 101 + 112: 56(ivec2) Load 111 + 113: 6(int) ImageRead 110 112 + Store 106(r11) 113 + 118: 115 Load 117(g_tTex2du1) + 119: 102(ptr) AccessChain 61 101 + 120: 56(ivec2) Load 119 + 121: 12(int) ImageRead 118 120 + Store 114(r12) 121 + 126: 123 Load 125(g_tTex3df1) + 129: 128(ptr) AccessChain 61 127 + 130: 57(ivec3) Load 129 + 131: 18(float) ImageRead 126 130 + Store 122(r20) 131 + 136: 133 Load 135(g_tTex3di1) + 137: 128(ptr) AccessChain 61 127 + 138: 57(ivec3) Load 137 + 139: 6(int) ImageRead 136 138 + Store 132(r21) 139 + 144: 141 Load 143(g_tTex3du1) + 145: 128(ptr) AccessChain 61 127 + 146: 57(ivec3) Load 145 + 147: 12(int) ImageRead 144 146 + Store 140(r22) 147 + 151: 150(ptr) AccessChain 61 149 + 152: 18(float) Load 151 + Store 148(lf1) 152 + 154: 18(float) FunctionCall 37(SomeValue() + Store 153(storeTemp) 154 + 155: 68 Load 70(g_tTex1df1) + 156: 62(ptr) AccessChain 61 53 + 157: 6(int) Load 156 + 158: 18(float) Load 153(storeTemp) + ImageWrite 155 157 158 + 159: 68 Load 70(g_tTex1df1) + 160: 62(ptr) AccessChain 61 53 + 161: 6(int) Load 160 + 162: 18(float) Load 148(lf1) + ImageWrite 159 161 162 + Store 163(storeTemp) 127 + 164: 81 Load 83(g_tTex1di1) + 165: 62(ptr) AccessChain 61 53 + 166: 6(int) Load 165 + 167: 6(int) Load 163(storeTemp) + ImageWrite 164 166 167 + Store 168(storeTemp) 169 + 170: 89 Load 91(g_tTex1du1) + 171: 62(ptr) AccessChain 61 53 + 172: 6(int) Load 171 + 173: 12(int) Load 168(storeTemp) + ImageWrite 170 172 173 + 176: 62(ptr) AccessChain 61 53 + 177: 6(int) Load 176 + Store 175(coordTemp) 177 + 179: 68 Load 70(g_tTex1df1) + 180: 6(int) Load 175(coordTemp) + 181: 18(float) ImageRead 179 180 + Store 178(storeTemp) 181 + 183: 18(float) Load 178(storeTemp) + 184: 18(float) FMul 183 182 + Store 178(storeTemp) 184 + 185: 68 Load 70(g_tTex1df1) + 186: 6(int) Load 175(coordTemp) + 187: 18(float) Load 178(storeTemp) + ImageWrite 185 186 187 + 188: 18(float) Load 178(storeTemp) + Store 174(val1) 188 + 190: 62(ptr) AccessChain 61 53 + 191: 6(int) Load 190 + Store 189(coordTemp) 191 + 193: 68 Load 70(g_tTex1df1) + 194: 6(int) Load 189(coordTemp) + 195: 18(float) ImageRead 193 194 + Store 192(storeTemp) 195 + 197: 18(float) Load 192(storeTemp) + 198: 18(float) FSub 197 196 + Store 192(storeTemp) 198 + 199: 68 Load 70(g_tTex1df1) + 200: 6(int) Load 189(coordTemp) + 201: 18(float) Load 192(storeTemp) + ImageWrite 199 200 201 + 203: 62(ptr) AccessChain 61 53 + 204: 6(int) Load 203 + Store 202(coordTemp) 204 + 206: 68 Load 70(g_tTex1df1) + 207: 6(int) Load 202(coordTemp) + 208: 18(float) ImageRead 206 207 + Store 205(storeTemp) 208 + 210: 18(float) Load 205(storeTemp) + 211: 18(float) FAdd 210 209 + Store 205(storeTemp) 211 + 212: 68 Load 70(g_tTex1df1) + 213: 6(int) Load 202(coordTemp) + 214: 18(float) Load 205(storeTemp) + ImageWrite 212 213 214 + 216: 62(ptr) AccessChain 61 53 + 217: 6(int) Load 216 + Store 215(coordTemp) 217 + 219: 81 Load 83(g_tTex1di1) + 220: 6(int) Load 215(coordTemp) + 221: 6(int) ImageRead 219 220 + Store 218(storeTemp) 221 + 222: 6(int) Load 218(storeTemp) + 223: 6(int) SDiv 222 127 + Store 218(storeTemp) 223 + 224: 81 Load 83(g_tTex1di1) + 225: 6(int) Load 215(coordTemp) + 226: 6(int) Load 218(storeTemp) + ImageWrite 224 225 226 + 228: 62(ptr) AccessChain 61 53 + 229: 6(int) Load 228 + Store 227(coordTemp) 229 + 231: 81 Load 83(g_tTex1di1) + 232: 6(int) Load 227(coordTemp) + 233: 6(int) ImageRead 231 232 + Store 230(storeTemp) 233 + 234: 6(int) Load 230(storeTemp) + 235: 6(int) SMod 234 127 + Store 230(storeTemp) 235 + 236: 81 Load 83(g_tTex1di1) + 237: 6(int) Load 227(coordTemp) + 238: 6(int) Load 230(storeTemp) + ImageWrite 236 237 238 + 240: 62(ptr) AccessChain 61 53 + 241: 6(int) Load 240 + Store 239(coordTemp) 241 + 243: 81 Load 83(g_tTex1di1) + 244: 6(int) Load 239(coordTemp) + 245: 6(int) ImageRead 243 244 + Store 242(storeTemp) 245 + 247: 6(int) Load 242(storeTemp) + 248: 6(int) BitwiseAnd 247 246 + Store 242(storeTemp) 248 + 249: 81 Load 83(g_tTex1di1) + 250: 6(int) Load 239(coordTemp) + 251: 6(int) Load 242(storeTemp) + ImageWrite 249 250 251 + 253: 62(ptr) AccessChain 61 53 + 254: 6(int) Load 253 + Store 252(coordTemp) 254 + 256: 81 Load 83(g_tTex1di1) + 257: 6(int) Load 252(coordTemp) + 258: 6(int) ImageRead 256 257 + Store 255(storeTemp) 258 + 260: 6(int) Load 255(storeTemp) + 261: 6(int) BitwiseOr 260 259 + Store 255(storeTemp) 261 + 262: 81 Load 83(g_tTex1di1) + 263: 6(int) Load 252(coordTemp) + 264: 6(int) Load 255(storeTemp) + ImageWrite 262 263 264 + 266: 62(ptr) AccessChain 61 53 + 267: 6(int) Load 266 + Store 265(coordTemp) 267 + 269: 81 Load 83(g_tTex1di1) + 270: 6(int) Load 265(coordTemp) + 271: 6(int) ImageRead 269 270 + Store 268(storeTemp) 271 + 272: 6(int) Load 268(storeTemp) + 273: 6(int) ShiftLeftLogical 272 127 + Store 268(storeTemp) 273 + 274: 81 Load 83(g_tTex1di1) + 275: 6(int) Load 265(coordTemp) + 276: 6(int) Load 268(storeTemp) + ImageWrite 274 275 276 + 278: 62(ptr) AccessChain 61 53 + 279: 6(int) Load 278 + Store 277(coordTemp) 279 + 281: 81 Load 83(g_tTex1di1) + 282: 6(int) Load 277(coordTemp) + 283: 6(int) ImageRead 281 282 + Store 280(storeTemp) 283 + 284: 6(int) Load 280(storeTemp) + 285: 6(int) ShiftRightArithmetic 284 127 + Store 280(storeTemp) 285 + 286: 81 Load 83(g_tTex1di1) + 287: 6(int) Load 277(coordTemp) + 288: 6(int) Load 280(storeTemp) + ImageWrite 286 287 288 + 290: 18(float) FunctionCall 37(SomeValue() + Store 289(storeTemp) 290 + 291: 97 Load 99(g_tTex2df1) + 292: 102(ptr) AccessChain 61 101 + 293: 56(ivec2) Load 292 + 294: 18(float) Load 289(storeTemp) + ImageWrite 291 293 294 + 295: 97 Load 99(g_tTex2df1) + 296: 102(ptr) AccessChain 61 101 + 297: 56(ivec2) Load 296 + 298: 18(float) Load 148(lf1) + ImageWrite 295 297 298 + Store 299(storeTemp) 300 + 301: 107 Load 109(g_tTex2di1) + 302: 102(ptr) AccessChain 61 101 + 303: 56(ivec2) Load 302 + 304: 6(int) Load 299(storeTemp) + ImageWrite 301 303 304 + Store 305(storeTemp) 306 + 307: 115 Load 117(g_tTex2du1) + 308: 102(ptr) AccessChain 61 101 + 309: 56(ivec2) Load 308 + 310: 12(int) Load 305(storeTemp) + ImageWrite 307 309 310 + 312: 18(float) FunctionCall 37(SomeValue() + Store 311(storeTemp) 312 + 313: 123 Load 125(g_tTex3df1) + 314: 128(ptr) AccessChain 61 127 + 315: 57(ivec3) Load 314 + 316: 18(float) Load 311(storeTemp) + ImageWrite 313 315 316 + 317: 123 Load 125(g_tTex3df1) + 318: 128(ptr) AccessChain 61 127 + 319: 57(ivec3) Load 318 + 320: 18(float) Load 148(lf1) + ImageWrite 317 319 320 + Store 321(storeTemp) 149 + 322: 133 Load 135(g_tTex3di1) + 323: 128(ptr) AccessChain 61 127 + 324: 57(ivec3) Load 323 + 325: 6(int) Load 321(storeTemp) + ImageWrite 322 324 325 + Store 326(storeTemp) 327 + 328: 141 Load 143(g_tTex3du1) + 329: 128(ptr) AccessChain 61 127 + 330: 57(ivec3) Load 329 + 331: 12(int) Load 326(storeTemp) + ImageWrite 328 330 331 + 332: 68 Load 70(g_tTex1df1) + 333: 62(ptr) AccessChain 61 53 + 334: 6(int) Load 333 + 335: 18(float) ImageRead 332 334 + Store 336(param) 335 + 337: 18(float) FunctionCall 22(Fn1(f1;) 336(param) + 338: 81 Load 83(g_tTex1di1) + 339: 62(ptr) AccessChain 61 53 + 340: 6(int) Load 339 + 341: 6(int) ImageRead 338 340 + Store 342(param) 341 + 343: 6(int) FunctionCall 10(Fn1(i1;) 342(param) + 344: 89 Load 91(g_tTex1du1) + 345: 62(ptr) AccessChain 61 53 + 346: 6(int) Load 345 + 347: 12(int) ImageRead 344 346 + Store 348(param) 347 + 349: 12(int) FunctionCall 16(Fn1(u1;) 348(param) + 352: 2 FunctionCall 34(Fn2(f1;) 351(param) + 353: 18(float) Load 351(param) + Store 350(tempArg) 353 + 354: 68 Load 70(g_tTex1df1) + 355: 62(ptr) AccessChain 61 53 + 356: 6(int) Load 355 + 357: 18(float) Load 350(tempArg) + ImageWrite 354 356 357 + 360: 2 FunctionCall 26(Fn2(i1;) 359(param) + 361: 6(int) Load 359(param) + Store 358(tempArg) 361 + 362: 81 Load 83(g_tTex1di1) + 363: 62(ptr) AccessChain 61 53 + 364: 6(int) Load 363 + 365: 6(int) Load 358(tempArg) + ImageWrite 362 364 365 + 368: 2 FunctionCall 30(Fn2(u1;) 367(param) + 369: 12(int) Load 367(param) + Store 366(tempArg) 369 + 370: 89 Load 91(g_tTex1du1) + 371: 62(ptr) AccessChain 61 53 + 372: 6(int) Load 371 + 373: 12(int) Load 366(tempArg) + ImageWrite 370 372 373 + 375: 62(ptr) AccessChain 61 53 + 376: 6(int) Load 375 + Store 374(coordTemp) 376 + 378: 68 Load 70(g_tTex1df1) + 379: 6(int) Load 374(coordTemp) + 380: 18(float) ImageRead 378 379 + Store 377(storeTemp) 380 + 381: 18(float) Load 377(storeTemp) + 383: 18(float) FAdd 381 382 + Store 377(storeTemp) 383 + 384: 68 Load 70(g_tTex1df1) + 385: 6(int) Load 374(coordTemp) + 386: 18(float) Load 377(storeTemp) + ImageWrite 384 385 386 + 388: 62(ptr) AccessChain 61 53 + 389: 6(int) Load 388 + Store 387(coordTemp) 389 + 391: 81 Load 83(g_tTex1di1) + 392: 6(int) Load 387(coordTemp) + 393: 6(int) ImageRead 391 392 + Store 390(storeTemp) 393 + 394: 6(int) Load 390(storeTemp) + 395: 6(int) IAdd 394 101 + Store 390(storeTemp) 395 + 396: 81 Load 83(g_tTex1di1) + 397: 6(int) Load 387(coordTemp) + 398: 6(int) Load 390(storeTemp) + ImageWrite 396 397 398 + 400: 62(ptr) AccessChain 61 53 + 401: 6(int) Load 400 + Store 399(coordTemp) 401 + 403: 89 Load 91(g_tTex1du1) + 404: 6(int) Load 399(coordTemp) + 405: 12(int) ImageRead 403 404 + Store 402(storeTemp) 405 + 406: 12(int) Load 402(storeTemp) + 407: 12(int) IAdd 406 101 + Store 402(storeTemp) 407 + 408: 89 Load 91(g_tTex1du1) + 409: 6(int) Load 399(coordTemp) + 410: 12(int) Load 402(storeTemp) + ImageWrite 408 409 410 + 412: 62(ptr) AccessChain 61 53 + 413: 6(int) Load 412 + Store 411(coordTemp) 413 + 415: 68 Load 70(g_tTex1df1) + 416: 6(int) Load 411(coordTemp) + 417: 18(float) ImageRead 415 416 + Store 414(storeTemp) 417 + 418: 18(float) Load 414(storeTemp) + 419: 18(float) FSub 418 382 + Store 414(storeTemp) 419 + 420: 68 Load 70(g_tTex1df1) + 421: 6(int) Load 411(coordTemp) + 422: 18(float) Load 414(storeTemp) + ImageWrite 420 421 422 + 424: 62(ptr) AccessChain 61 53 + 425: 6(int) Load 424 + Store 423(coordTemp) 425 + 427: 81 Load 83(g_tTex1di1) + 428: 6(int) Load 423(coordTemp) + 429: 6(int) ImageRead 427 428 + Store 426(storeTemp) 429 + 430: 6(int) Load 426(storeTemp) + 431: 6(int) ISub 430 101 + Store 426(storeTemp) 431 + 432: 81 Load 83(g_tTex1di1) + 433: 6(int) Load 423(coordTemp) + 434: 6(int) Load 426(storeTemp) + ImageWrite 432 433 434 + 436: 62(ptr) AccessChain 61 53 + 437: 6(int) Load 436 + Store 435(coordTemp) 437 + 439: 89 Load 91(g_tTex1du1) + 440: 6(int) Load 435(coordTemp) + 441: 12(int) ImageRead 439 440 + Store 438(storeTemp) 441 + 442: 12(int) Load 438(storeTemp) + 443: 12(int) ISub 442 101 + Store 438(storeTemp) 443 + 444: 89 Load 91(g_tTex1du1) + 445: 6(int) Load 435(coordTemp) + 446: 12(int) Load 438(storeTemp) + ImageWrite 444 445 446 + 448: 62(ptr) AccessChain 61 53 + 449: 6(int) Load 448 + Store 447(coordTemp) 449 + 451: 68 Load 70(g_tTex1df1) + 452: 6(int) Load 447(coordTemp) + 453: 18(float) ImageRead 451 452 + Store 450(storeTempPre) 453 + 455: 18(float) Load 450(storeTempPre) + Store 454(storeTempPost) 455 + 456: 18(float) Load 454(storeTempPost) + 457: 18(float) FAdd 456 382 + Store 454(storeTempPost) 457 + 458: 68 Load 70(g_tTex1df1) + 459: 6(int) Load 447(coordTemp) + 460: 18(float) Load 454(storeTempPost) + ImageWrite 458 459 460 + 462: 62(ptr) AccessChain 61 53 + 463: 6(int) Load 462 + Store 461(coordTemp) 463 + 465: 89 Load 91(g_tTex1du1) + 466: 6(int) Load 461(coordTemp) + 467: 12(int) ImageRead 465 466 + Store 464(storeTempPre) 467 + 469: 12(int) Load 464(storeTempPre) + Store 468(storeTempPost) 469 + 470: 12(int) Load 468(storeTempPost) + 471: 12(int) ISub 470 101 + Store 468(storeTempPost) 471 + 472: 89 Load 91(g_tTex1du1) + 473: 6(int) Load 461(coordTemp) + 474: 12(int) Load 468(storeTempPost) + ImageWrite 472 473 474 + 476: 62(ptr) AccessChain 61 53 + 477: 6(int) Load 476 + Store 475(coordTemp) 477 + 479: 81 Load 83(g_tTex1di1) + 480: 6(int) Load 475(coordTemp) + 481: 6(int) ImageRead 479 480 + Store 478(storeTempPre) 481 + 483: 6(int) Load 478(storeTempPre) + Store 482(storeTempPost) 483 + 484: 6(int) Load 482(storeTempPost) + 485: 6(int) IAdd 484 101 + Store 482(storeTempPost) 485 + 486: 81 Load 83(g_tTex1di1) + 487: 6(int) Load 475(coordTemp) + 488: 6(int) Load 482(storeTempPost) + ImageWrite 486 487 488 + 490: 62(ptr) AccessChain 61 53 + 491: 6(int) Load 490 + Store 489(coordTemp) 491 + 493: 68 Load 70(g_tTex1df1) + 494: 6(int) Load 489(coordTemp) + 495: 18(float) ImageRead 493 494 + Store 492(storeTempPre) 495 + 497: 18(float) Load 492(storeTempPre) + Store 496(storeTempPost) 497 + 498: 18(float) Load 496(storeTempPost) + 499: 18(float) FSub 498 382 + Store 496(storeTempPost) 499 + 500: 68 Load 70(g_tTex1df1) + 501: 6(int) Load 489(coordTemp) + 502: 18(float) Load 496(storeTempPost) + ImageWrite 500 501 502 + 504: 62(ptr) AccessChain 61 53 + 505: 6(int) Load 504 + Store 503(coordTemp) 505 + 507: 81 Load 83(g_tTex1di1) + 508: 6(int) Load 503(coordTemp) + 509: 6(int) ImageRead 507 508 + Store 506(storeTempPre) 509 + 511: 6(int) Load 506(storeTempPre) + Store 510(storeTempPost) 511 + 512: 6(int) Load 510(storeTempPost) + 513: 6(int) IAdd 512 101 + Store 510(storeTempPost) 513 + 514: 81 Load 83(g_tTex1di1) + 515: 6(int) Load 503(coordTemp) + 516: 6(int) Load 510(storeTempPost) + ImageWrite 514 515 516 + 518: 62(ptr) AccessChain 61 53 + 519: 6(int) Load 518 + Store 517(coordTemp) 519 + 521: 89 Load 91(g_tTex1du1) + 522: 6(int) Load 517(coordTemp) + 523: 12(int) ImageRead 521 522 + Store 520(storeTempPre) 523 + 525: 12(int) Load 520(storeTempPre) + Store 524(storeTempPost) 525 + 526: 12(int) Load 524(storeTempPost) + 527: 12(int) ISub 526 101 + Store 524(storeTempPost) 527 + 528: 89 Load 91(g_tTex1du1) + 529: 6(int) Load 517(coordTemp) + 530: 12(int) Load 524(storeTempPost) + ImageWrite 528 529 530 + 532: 97 Load 99(g_tTex2df1) + 535: 18(float) ImageRead 532 534 + Store 531(storeTemp) 535 + 536: 68 Load 70(g_tTex1df1) + 537: 18(float) Load 531(storeTemp) + ImageWrite 536 101 537 + 542: 541(ptr) AccessChain 539(psout) 53 + Store 542 540 + 543:40(PS_OUTPUT) Load 539(psout) + ReturnValue 543 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out new file mode 100644 index 0000000000..8fcbb4ba4c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out @@ -0,0 +1,300 @@ +hlsl.rw.swizzle.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: SomeValue( ( temp 3-component vector of float) +0:4 Function Parameters: +0:? Sequence +0:4 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 2-component vector of int) +0:8 'tc2' ( temp 2-component vector of int) +0:8 Constant: +0:8 0 (const int) +0:8 0 (const int) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'tc' ( temp int) +0:9 Constant: +0:9 0 (const int) +0:12 Sequence +0:12 move second child to first child ( temp 3-component vector of float) +0:12 vector swizzle ( temp 3-component vector of float) +0:12 'storeTemp' ( temp 3-component vector of float) +0:12 Sequence +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:12 imageStore ( temp void) +0:12 'rwtx' (layout( rgba32f) uniform image2D) +0:12 'tc2' ( temp 2-component vector of int) +0:12 'storeTemp' ( temp 3-component vector of float) +0:12 'storeTemp' ( temp 3-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 3-component vector of float) +0:13 vector swizzle ( temp 3-component vector of float) +0:13 'storeTemp' ( temp 3-component vector of float) +0:13 Sequence +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Function Call: SomeValue( ( temp 3-component vector of float) +0:13 imageStore ( temp void) +0:13 'rwtx' (layout( rgba32f) uniform image2D) +0:13 'tc2' ( temp 2-component vector of int) +0:13 'storeTemp' ( temp 3-component vector of float) +0:13 'storeTemp' ( temp 3-component vector of float) +0:14 Sequence +0:14 move second child to first child ( temp 3-component vector of float) +0:14 vector swizzle ( temp 3-component vector of float) +0:14 'storeTemp' ( temp 3-component vector of float) +0:14 Sequence +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 2.000000 +0:14 2.000000 +0:14 2.000000 +0:14 imageStore ( temp void) +0:14 'rwtx' (layout( rgba32f) uniform image2D) +0:14 'tc2' ( temp 2-component vector of int) +0:14 'storeTemp' ( temp 3-component vector of float) +0:14 'storeTemp' ( temp 3-component vector of float) +0:27 Branch: Return with expression +0:27 Constant: +0:27 0.000000 +0:27 0.000000 +0:27 0.000000 +0:27 0.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'rwtx' (layout( rgba32f) uniform image2D) +0:? 'buf' (layout( rgba32f) uniform imageBuffer) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: SomeValue( ( temp 3-component vector of float) +0:4 Function Parameters: +0:? Sequence +0:4 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 2-component vector of int) +0:8 'tc2' ( temp 2-component vector of int) +0:8 Constant: +0:8 0 (const int) +0:8 0 (const int) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'tc' ( temp int) +0:9 Constant: +0:9 0 (const int) +0:12 Sequence +0:12 move second child to first child ( temp 3-component vector of float) +0:12 vector swizzle ( temp 3-component vector of float) +0:12 'storeTemp' ( temp 3-component vector of float) +0:12 Sequence +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 0 (const int) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:12 imageStore ( temp void) +0:12 'rwtx' (layout( rgba32f) uniform image2D) +0:12 'tc2' ( temp 2-component vector of int) +0:12 'storeTemp' ( temp 3-component vector of float) +0:12 'storeTemp' ( temp 3-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 3-component vector of float) +0:13 vector swizzle ( temp 3-component vector of float) +0:13 'storeTemp' ( temp 3-component vector of float) +0:13 Sequence +0:13 Constant: +0:13 2 (const int) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Function Call: SomeValue( ( temp 3-component vector of float) +0:13 imageStore ( temp void) +0:13 'rwtx' (layout( rgba32f) uniform image2D) +0:13 'tc2' ( temp 2-component vector of int) +0:13 'storeTemp' ( temp 3-component vector of float) +0:13 'storeTemp' ( temp 3-component vector of float) +0:14 Sequence +0:14 move second child to first child ( temp 3-component vector of float) +0:14 vector swizzle ( temp 3-component vector of float) +0:14 'storeTemp' ( temp 3-component vector of float) +0:14 Sequence +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 2.000000 +0:14 2.000000 +0:14 2.000000 +0:14 imageStore ( temp void) +0:14 'rwtx' (layout( rgba32f) uniform image2D) +0:14 'tc2' ( temp 2-component vector of int) +0:14 'storeTemp' ( temp 3-component vector of float) +0:14 'storeTemp' ( temp 3-component vector of float) +0:27 Branch: Return with expression +0:27 Constant: +0:27 0.000000 +0:27 0.000000 +0:27 0.000000 +0:27 0.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'rwtx' (layout( rgba32f) uniform image2D) +0:? 'buf' (layout( rgba32f) uniform imageBuffer) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 63 + + Capability Shader + Capability ImageBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "SomeValue(" + Name 13 "@main(" + Name 24 "tc2" + Name 28 "tc" + Name 30 "storeTemp" + Name 35 "rwtx" + Name 39 "storeTemp" + Name 46 "storeTemp" + Name 58 "@entryPointOutput" + Name 62 "buf" + Decorate 35(rwtx) DescriptorSet 0 + Decorate 58(@entryPointOutput) Location 0 + Decorate 62(buf) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 11: TypeVector 6(float) 4 + 12: TypeFunction 11(fvec4) + 15: 6(float) Constant 1065353216 + 16: 6(float) Constant 1073741824 + 17: 6(float) Constant 1077936128 + 18: 7(fvec3) ConstantComposite 15 16 17 + 21: TypeInt 32 1 + 22: TypeVector 21(int) 2 + 23: TypePointer Function 22(ivec2) + 25: 21(int) Constant 0 + 26: 22(ivec2) ConstantComposite 25 25 + 27: TypePointer Function 21(int) + 29: TypePointer Function 7(fvec3) + 33: TypeImage 6(float) 2D nonsampled format:Rgba32f + 34: TypePointer UniformConstant 33 + 35(rwtx): 34(ptr) Variable UniformConstant + 47: 7(fvec3) ConstantComposite 16 16 16 + 53: 6(float) Constant 0 + 54: 11(fvec4) ConstantComposite 53 53 53 53 + 57: TypePointer Output 11(fvec4) +58(@entryPointOutput): 57(ptr) Variable Output + 60: TypeImage 6(float) Buffer nonsampled format:Rgba32f + 61: TypePointer UniformConstant 60 + 62(buf): 61(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 59: 11(fvec4) FunctionCall 13(@main() + Store 58(@entryPointOutput) 59 + Return + FunctionEnd + 9(SomeValue(): 7(fvec3) Function None 8 + 10: Label + ReturnValue 18 + FunctionEnd + 13(@main(): 11(fvec4) Function None 12 + 14: Label + 24(tc2): 23(ptr) Variable Function + 28(tc): 27(ptr) Variable Function + 30(storeTemp): 29(ptr) Variable Function + 39(storeTemp): 29(ptr) Variable Function + 46(storeTemp): 29(ptr) Variable Function + Store 24(tc2) 26 + Store 28(tc) 25 + 31: 7(fvec3) Load 30(storeTemp) + 32: 7(fvec3) VectorShuffle 31 18 5 4 3 + Store 30(storeTemp) 32 + 36: 33 Load 35(rwtx) + 37: 22(ivec2) Load 24(tc2) + 38: 7(fvec3) Load 30(storeTemp) + ImageWrite 36 37 38 + 40: 7(fvec3) FunctionCall 9(SomeValue() + 41: 7(fvec3) Load 39(storeTemp) + 42: 7(fvec3) VectorShuffle 41 40 5 4 3 + Store 39(storeTemp) 42 + 43: 33 Load 35(rwtx) + 44: 22(ivec2) Load 24(tc2) + 45: 7(fvec3) Load 39(storeTemp) + ImageWrite 43 44 45 + 48: 7(fvec3) Load 46(storeTemp) + 49: 7(fvec3) VectorShuffle 48 47 5 4 3 + Store 46(storeTemp) 49 + 50: 33 Load 35(rwtx) + 51: 22(ivec2) Load 24(tc2) + 52: 7(fvec3) Load 46(storeTemp) + ImageWrite 50 51 52 + ReturnValue 54 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out new file mode 100644 index 0000000000..bf1fe0889b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -0,0 +1,2627 @@ +hlsl.rw.vec2.bracket.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; ( temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' ( in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' ( in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; ( temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' ( in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' ( in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; ( temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' ( in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' ( in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; ( temp void) +0:46 Function Parameters: +0:46 'x' ( out 2-component vector of int) +0:? Sequence +0:46 move second child to first child ( temp 2-component vector of int) +0:46 'x' ( out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; ( temp void) +0:47 Function Parameters: +0:47 'x' ( out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child ( temp 2-component vector of uint) +0:47 'x' ( out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; ( temp void) +0:48 Function Parameters: +0:48 'x' ( out 2-component vector of float) +0:? Sequence +0:48 move second child to first child ( temp 2-component vector of float) +0:48 'x' ( out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( ( temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float ( temp 2-component vector of float) +0:50 c2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad ( temp 2-component vector of float) +0:57 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:57 c1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp 2-component vector of float) +0:59 'r00' ( temp 2-component vector of float) +0:59 imageLoad ( temp 2-component vector of float) +0:59 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:59 c1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp 2-component vector of int) +0:60 'r01' ( temp 2-component vector of int) +0:60 imageLoad ( temp 2-component vector of int) +0:60 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:60 c1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp 2-component vector of uint) +0:61 'r02' ( temp 2-component vector of uint) +0:61 imageLoad ( temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:61 c1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp 2-component vector of float) +0:64 'r10' ( temp 2-component vector of float) +0:64 imageLoad ( temp 2-component vector of float) +0:64 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:64 c2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp 2-component vector of int) +0:65 'r11' ( temp 2-component vector of int) +0:65 imageLoad ( temp 2-component vector of int) +0:65 'g_tTex2di2' (layout( rg32i) uniform iimage2D) +0:65 c2: direct index for structure ( uniform 2-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp 2-component vector of uint) +0:66 'r12' ( temp 2-component vector of uint) +0:66 imageLoad ( temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) +0:66 c2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp 2-component vector of float) +0:69 'r20' ( temp 2-component vector of float) +0:69 imageLoad ( temp 2-component vector of float) +0:69 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:69 c3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp 2-component vector of int) +0:70 'r21' ( temp 2-component vector of int) +0:70 imageLoad ( temp 2-component vector of int) +0:70 'g_tTex3di2' (layout( rg32i) uniform iimage3D) +0:70 c3: direct index for structure ( uniform 3-component vector of int) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp 2-component vector of uint) +0:71 'r22' ( temp 2-component vector of uint) +0:71 imageLoad ( temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) +0:71 c3: direct index for structure ( uniform 3-component vector of int) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child ( temp 2-component vector of float) +0:73 'lf2' ( temp 2-component vector of float) +0:73 uf2: direct index for structure ( uniform 2-component vector of float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp 2-component vector of float) +0:77 'storeTemp' ( temp 2-component vector of float) +0:77 Function Call: SomeValue( ( temp 2-component vector of float) +0:77 imageStore ( temp void) +0:77 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:77 c1: direct index for structure ( uniform int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' ( temp 2-component vector of float) +0:77 'storeTemp' ( temp 2-component vector of float) +0:78 Sequence +0:78 imageStore ( temp void) +0:78 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:78 c1: direct index for structure ( uniform int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' ( temp 2-component vector of float) +0:78 'lf2' ( temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child ( temp 2-component vector of int) +0:79 'storeTemp' ( temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore ( temp void) +0:79 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:79 c1: direct index for structure ( uniform int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' ( temp 2-component vector of int) +0:79 'storeTemp' ( temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child ( temp 2-component vector of uint) +0:80 'storeTemp' ( temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore ( temp void) +0:80 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:80 c1: direct index for structure ( uniform int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' ( temp 2-component vector of uint) +0:80 'storeTemp' ( temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child ( temp 2-component vector of float) +0:83 'val1' ( temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child ( temp int) +0:83 'coordTemp' ( temp int) +0:83 c1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 imageLoad ( temp 2-component vector of float) +0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 vector scale second child into first child ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore ( temp void) +0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child ( temp int) +0:84 'coordTemp' ( temp int) +0:84 c1: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 imageLoad ( temp 2-component vector of float) +0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 subtract second child into first child ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore ( temp void) +0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child ( temp int) +0:85 'coordTemp' ( temp int) +0:85 c1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 imageLoad ( temp 2-component vector of float) +0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 add second child into first child ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore ( temp void) +0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child ( temp int) +0:87 'coordTemp' ( temp int) +0:87 c1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 imageLoad ( temp 2-component vector of int) +0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 divide second child into first child ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore ( temp void) +0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child ( temp int) +0:88 'coordTemp' ( temp int) +0:88 c1: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 imageLoad ( temp 2-component vector of int) +0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 mod second child into first child ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore ( temp void) +0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child ( temp int) +0:89 'coordTemp' ( temp int) +0:89 c1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 imageLoad ( temp 2-component vector of int) +0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 and second child into first child ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore ( temp void) +0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child ( temp int) +0:90 'coordTemp' ( temp int) +0:90 c1: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 imageLoad ( temp 2-component vector of int) +0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 or second child into first child ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore ( temp void) +0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child ( temp int) +0:91 'coordTemp' ( temp int) +0:91 c1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 imageLoad ( temp 2-component vector of int) +0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 left shift second child into first child ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore ( temp void) +0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child ( temp int) +0:92 'coordTemp' ( temp int) +0:92 c1: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 imageLoad ( temp 2-component vector of int) +0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 right shift second child into first child ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore ( temp void) +0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child ( temp 2-component vector of float) +0:95 'storeTemp' ( temp 2-component vector of float) +0:95 Function Call: SomeValue( ( temp 2-component vector of float) +0:95 imageStore ( temp void) +0:95 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:95 c2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' ( temp 2-component vector of float) +0:95 'storeTemp' ( temp 2-component vector of float) +0:96 Sequence +0:96 imageStore ( temp void) +0:96 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:96 c2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' ( temp 2-component vector of float) +0:96 'lf2' ( temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child ( temp 2-component vector of int) +0:97 'storeTemp' ( temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore ( temp void) +0:97 'g_tTex2di2' (layout( rg32i) uniform iimage2D) +0:97 c2: direct index for structure ( uniform 2-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' ( temp 2-component vector of int) +0:97 'storeTemp' ( temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore ( temp void) +0:98 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) +0:98 c2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child ( temp 2-component vector of float) +0:101 'storeTemp' ( temp 2-component vector of float) +0:101 Function Call: SomeValue( ( temp 2-component vector of float) +0:101 imageStore ( temp void) +0:101 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:101 c3: direct index for structure ( uniform 3-component vector of int) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' ( temp 2-component vector of float) +0:101 'storeTemp' ( temp 2-component vector of float) +0:102 Sequence +0:102 imageStore ( temp void) +0:102 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:102 c3: direct index for structure ( uniform 3-component vector of int) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' ( temp 2-component vector of float) +0:102 'lf2' ( temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child ( temp 2-component vector of int) +0:103 'storeTemp' ( temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore ( temp void) +0:103 'g_tTex3di2' (layout( rg32i) uniform iimage3D) +0:103 c3: direct index for structure ( uniform 3-component vector of int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' ( temp 2-component vector of int) +0:103 'storeTemp' ( temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child ( temp 2-component vector of uint) +0:104 'storeTemp' ( temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore ( temp void) +0:104 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) +0:104 c3: direct index for structure ( uniform 3-component vector of int) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' ( temp 2-component vector of uint) +0:104 'storeTemp' ( temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; ( temp 2-component vector of float) +0:107 imageLoad ( temp 2-component vector of float) +0:107 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:107 c1: direct index for structure ( uniform int) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; ( temp 2-component vector of int) +0:108 imageLoad ( temp 2-component vector of int) +0:108 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:108 c1: direct index for structure ( uniform int) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; ( temp 2-component vector of uint) +0:109 imageLoad ( temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:109 c1: direct index for structure ( uniform int) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma ( temp void) +0:111 Function Call: Fn2(vf2; ( temp void) +0:111 'tempArg' ( temp 2-component vector of float) +0:111 Sequence +0:111 imageStore ( temp void) +0:111 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:111 c1: direct index for structure ( uniform int) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' ( temp 2-component vector of float) +0:111 'tempArg' ( temp 2-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi2; ( temp void) +0:112 'tempArg' ( temp 2-component vector of int) +0:112 Sequence +0:112 imageStore ( temp void) +0:112 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:112 c1: direct index for structure ( uniform int) +0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' ( temp 2-component vector of int) +0:112 'tempArg' ( temp 2-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu2; ( temp void) +0:113 'tempArg' ( temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore ( temp void) +0:113 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:113 c1: direct index for structure ( uniform int) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' ( temp 2-component vector of uint) +0:113 'tempArg' ( temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child ( temp int) +0:117 'coordTemp' ( temp int) +0:117 c1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageLoad ( temp 2-component vector of float) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child ( temp int) +0:118 'coordTemp' ( temp int) +0:118 c1: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageLoad ( temp 2-component vector of int) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child ( temp int) +0:119 'coordTemp' ( temp int) +0:119 c1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageLoad ( temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child ( temp int) +0:121 'coordTemp' ( temp int) +0:121 c1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageLoad ( temp 2-component vector of float) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child ( temp int) +0:122 'coordTemp' ( temp int) +0:122 c1: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageLoad ( temp 2-component vector of int) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child ( temp int) +0:123 'coordTemp' ( temp int) +0:123 c1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageLoad ( temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'coordTemp' ( temp int) +0:126 c1: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 imageLoad ( temp 2-component vector of float) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 Post-Increment ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child ( temp int) +0:127 'coordTemp' ( temp int) +0:127 c1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 imageLoad ( temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 Post-Decrement ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child ( temp int) +0:128 'coordTemp' ( temp int) +0:128 c1: direct index for structure ( uniform int) +0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 imageLoad ( temp 2-component vector of int) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 Post-Increment ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child ( temp int) +0:130 'coordTemp' ( temp int) +0:130 c1: direct index for structure ( uniform int) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 imageLoad ( temp 2-component vector of float) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 Post-Decrement ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'coordTemp' ( temp int) +0:131 c1: direct index for structure ( uniform int) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 imageLoad ( temp 2-component vector of int) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 Post-Increment ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child ( temp int) +0:132 'coordTemp' ( temp int) +0:132 c1: direct index for structure ( uniform int) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child ( temp 2-component vector of uint) +0:132 'storeTempPre' ( temp 2-component vector of uint) +0:132 imageLoad ( temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 move second child to first child ( temp 2-component vector of uint) +0:132 'storeTempPost' ( temp 2-component vector of uint) +0:132 'storeTempPre' ( temp 2-component vector of uint) +0:132 Post-Decrement ( temp 2-component vector of uint) +0:132 'storeTempPost' ( temp 2-component vector of uint) +0:132 imageStore ( temp void) +0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 'storeTempPost' ( temp 2-component vector of uint) +0:132 'storeTempPre' ( temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child ( temp 2-component vector of float) +0:135 'storeTemp' ( temp 2-component vector of float) +0:? imageLoad ( temp 2-component vector of float) +0:135 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore ( temp void) +0:135 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' ( temp 2-component vector of float) +0:135 'storeTemp' ( temp 2-component vector of float) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 Color: direct index for structure ( temp 4-component vector of float) +0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Branch: Return with expression +0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Constant: +0:53 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:? 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:? 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:? 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:? 'g_tTex2di2' (layout( rg32i) uniform iimage2D) +0:? 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) +0:? 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:? 'g_tTex3di2' (layout( rg32i) uniform iimage3D) +0:? 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) +0:? 'g_tTex1df2a' (layout( rg32f) uniform image1DArray) +0:? 'g_tTex1di2a' (layout( rg32i) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout( rg32ui) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout( rg32f) uniform image2DArray) +0:? 'g_tTex2di2a' (layout( rg32i) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout( rg32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; ( temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' ( in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' ( in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; ( temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' ( in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' ( in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; ( temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' ( in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' ( in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; ( temp void) +0:46 Function Parameters: +0:46 'x' ( out 2-component vector of int) +0:? Sequence +0:46 move second child to first child ( temp 2-component vector of int) +0:46 'x' ( out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; ( temp void) +0:47 Function Parameters: +0:47 'x' ( out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child ( temp 2-component vector of uint) +0:47 'x' ( out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; ( temp void) +0:48 Function Parameters: +0:48 'x' ( out 2-component vector of float) +0:? Sequence +0:48 move second child to first child ( temp 2-component vector of float) +0:48 'x' ( out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( ( temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float ( temp 2-component vector of float) +0:50 c2: direct index for structure ( uniform 2-component vector of int) +0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad ( temp 2-component vector of float) +0:57 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:57 c1: direct index for structure ( uniform int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child ( temp 2-component vector of float) +0:59 'r00' ( temp 2-component vector of float) +0:59 imageLoad ( temp 2-component vector of float) +0:59 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:59 c1: direct index for structure ( uniform int) +0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child ( temp 2-component vector of int) +0:60 'r01' ( temp 2-component vector of int) +0:60 imageLoad ( temp 2-component vector of int) +0:60 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:60 c1: direct index for structure ( uniform int) +0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child ( temp 2-component vector of uint) +0:61 'r02' ( temp 2-component vector of uint) +0:61 imageLoad ( temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:61 c1: direct index for structure ( uniform int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child ( temp 2-component vector of float) +0:64 'r10' ( temp 2-component vector of float) +0:64 imageLoad ( temp 2-component vector of float) +0:64 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:64 c2: direct index for structure ( uniform 2-component vector of int) +0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child ( temp 2-component vector of int) +0:65 'r11' ( temp 2-component vector of int) +0:65 imageLoad ( temp 2-component vector of int) +0:65 'g_tTex2di2' (layout( rg32i) uniform iimage2D) +0:65 c2: direct index for structure ( uniform 2-component vector of int) +0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child ( temp 2-component vector of uint) +0:66 'r12' ( temp 2-component vector of uint) +0:66 imageLoad ( temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) +0:66 c2: direct index for structure ( uniform 2-component vector of int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child ( temp 2-component vector of float) +0:69 'r20' ( temp 2-component vector of float) +0:69 imageLoad ( temp 2-component vector of float) +0:69 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:69 c3: direct index for structure ( uniform 3-component vector of int) +0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child ( temp 2-component vector of int) +0:70 'r21' ( temp 2-component vector of int) +0:70 imageLoad ( temp 2-component vector of int) +0:70 'g_tTex3di2' (layout( rg32i) uniform iimage3D) +0:70 c3: direct index for structure ( uniform 3-component vector of int) +0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child ( temp 2-component vector of uint) +0:71 'r22' ( temp 2-component vector of uint) +0:71 imageLoad ( temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) +0:71 c3: direct index for structure ( uniform 3-component vector of int) +0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child ( temp 2-component vector of float) +0:73 'lf2' ( temp 2-component vector of float) +0:73 uf2: direct index for structure ( uniform 2-component vector of float) +0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child ( temp 2-component vector of float) +0:77 'storeTemp' ( temp 2-component vector of float) +0:77 Function Call: SomeValue( ( temp 2-component vector of float) +0:77 imageStore ( temp void) +0:77 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:77 c1: direct index for structure ( uniform int) +0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' ( temp 2-component vector of float) +0:77 'storeTemp' ( temp 2-component vector of float) +0:78 Sequence +0:78 imageStore ( temp void) +0:78 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:78 c1: direct index for structure ( uniform int) +0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' ( temp 2-component vector of float) +0:78 'lf2' ( temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child ( temp 2-component vector of int) +0:79 'storeTemp' ( temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore ( temp void) +0:79 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:79 c1: direct index for structure ( uniform int) +0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' ( temp 2-component vector of int) +0:79 'storeTemp' ( temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child ( temp 2-component vector of uint) +0:80 'storeTemp' ( temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore ( temp void) +0:80 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:80 c1: direct index for structure ( uniform int) +0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' ( temp 2-component vector of uint) +0:80 'storeTemp' ( temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child ( temp 2-component vector of float) +0:83 'val1' ( temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child ( temp int) +0:83 'coordTemp' ( temp int) +0:83 c1: direct index for structure ( uniform int) +0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 imageLoad ( temp 2-component vector of float) +0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 vector scale second child into first child ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore ( temp void) +0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:83 'coordTemp' ( temp int) +0:83 'storeTemp' ( temp 2-component vector of float) +0:83 'storeTemp' ( temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child ( temp int) +0:84 'coordTemp' ( temp int) +0:84 c1: direct index for structure ( uniform int) +0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 imageLoad ( temp 2-component vector of float) +0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 subtract second child into first child ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore ( temp void) +0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:84 'coordTemp' ( temp int) +0:84 'storeTemp' ( temp 2-component vector of float) +0:84 'storeTemp' ( temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child ( temp int) +0:85 'coordTemp' ( temp int) +0:85 c1: direct index for structure ( uniform int) +0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 imageLoad ( temp 2-component vector of float) +0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 add second child into first child ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore ( temp void) +0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:85 'coordTemp' ( temp int) +0:85 'storeTemp' ( temp 2-component vector of float) +0:85 'storeTemp' ( temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child ( temp int) +0:87 'coordTemp' ( temp int) +0:87 c1: direct index for structure ( uniform int) +0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 imageLoad ( temp 2-component vector of int) +0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 divide second child into first child ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore ( temp void) +0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:87 'coordTemp' ( temp int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:87 'storeTemp' ( temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child ( temp int) +0:88 'coordTemp' ( temp int) +0:88 c1: direct index for structure ( uniform int) +0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 imageLoad ( temp 2-component vector of int) +0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 mod second child into first child ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore ( temp void) +0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:88 'coordTemp' ( temp int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:88 'storeTemp' ( temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child ( temp int) +0:89 'coordTemp' ( temp int) +0:89 c1: direct index for structure ( uniform int) +0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 imageLoad ( temp 2-component vector of int) +0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 and second child into first child ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore ( temp void) +0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:89 'coordTemp' ( temp int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:89 'storeTemp' ( temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child ( temp int) +0:90 'coordTemp' ( temp int) +0:90 c1: direct index for structure ( uniform int) +0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 imageLoad ( temp 2-component vector of int) +0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 or second child into first child ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore ( temp void) +0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:90 'coordTemp' ( temp int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:90 'storeTemp' ( temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child ( temp int) +0:91 'coordTemp' ( temp int) +0:91 c1: direct index for structure ( uniform int) +0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 imageLoad ( temp 2-component vector of int) +0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 left shift second child into first child ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore ( temp void) +0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:91 'coordTemp' ( temp int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:91 'storeTemp' ( temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child ( temp int) +0:92 'coordTemp' ( temp int) +0:92 c1: direct index for structure ( uniform int) +0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 imageLoad ( temp 2-component vector of int) +0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 right shift second child into first child ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore ( temp void) +0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:92 'coordTemp' ( temp int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:92 'storeTemp' ( temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child ( temp 2-component vector of float) +0:95 'storeTemp' ( temp 2-component vector of float) +0:95 Function Call: SomeValue( ( temp 2-component vector of float) +0:95 imageStore ( temp void) +0:95 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:95 c2: direct index for structure ( uniform 2-component vector of int) +0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' ( temp 2-component vector of float) +0:95 'storeTemp' ( temp 2-component vector of float) +0:96 Sequence +0:96 imageStore ( temp void) +0:96 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:96 c2: direct index for structure ( uniform 2-component vector of int) +0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' ( temp 2-component vector of float) +0:96 'lf2' ( temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child ( temp 2-component vector of int) +0:97 'storeTemp' ( temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore ( temp void) +0:97 'g_tTex2di2' (layout( rg32i) uniform iimage2D) +0:97 c2: direct index for structure ( uniform 2-component vector of int) +0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' ( temp 2-component vector of int) +0:97 'storeTemp' ( temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore ( temp void) +0:98 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) +0:98 c2: direct index for structure ( uniform 2-component vector of int) +0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' ( temp 2-component vector of uint) +0:98 'storeTemp' ( temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child ( temp 2-component vector of float) +0:101 'storeTemp' ( temp 2-component vector of float) +0:101 Function Call: SomeValue( ( temp 2-component vector of float) +0:101 imageStore ( temp void) +0:101 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:101 c3: direct index for structure ( uniform 3-component vector of int) +0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' ( temp 2-component vector of float) +0:101 'storeTemp' ( temp 2-component vector of float) +0:102 Sequence +0:102 imageStore ( temp void) +0:102 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:102 c3: direct index for structure ( uniform 3-component vector of int) +0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' ( temp 2-component vector of float) +0:102 'lf2' ( temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child ( temp 2-component vector of int) +0:103 'storeTemp' ( temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore ( temp void) +0:103 'g_tTex3di2' (layout( rg32i) uniform iimage3D) +0:103 c3: direct index for structure ( uniform 3-component vector of int) +0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' ( temp 2-component vector of int) +0:103 'storeTemp' ( temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child ( temp 2-component vector of uint) +0:104 'storeTemp' ( temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore ( temp void) +0:104 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) +0:104 c3: direct index for structure ( uniform 3-component vector of int) +0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' ( temp 2-component vector of uint) +0:104 'storeTemp' ( temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; ( temp 2-component vector of float) +0:107 imageLoad ( temp 2-component vector of float) +0:107 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:107 c1: direct index for structure ( uniform int) +0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; ( temp 2-component vector of int) +0:108 imageLoad ( temp 2-component vector of int) +0:108 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:108 c1: direct index for structure ( uniform int) +0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; ( temp 2-component vector of uint) +0:109 imageLoad ( temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:109 c1: direct index for structure ( uniform int) +0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma ( temp void) +0:111 Function Call: Fn2(vf2; ( temp void) +0:111 'tempArg' ( temp 2-component vector of float) +0:111 Sequence +0:111 imageStore ( temp void) +0:111 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:111 c1: direct index for structure ( uniform int) +0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' ( temp 2-component vector of float) +0:111 'tempArg' ( temp 2-component vector of float) +0:112 Comma ( temp void) +0:112 Function Call: Fn2(vi2; ( temp void) +0:112 'tempArg' ( temp 2-component vector of int) +0:112 Sequence +0:112 imageStore ( temp void) +0:112 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:112 c1: direct index for structure ( uniform int) +0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' ( temp 2-component vector of int) +0:112 'tempArg' ( temp 2-component vector of int) +0:113 Comma ( temp void) +0:113 Function Call: Fn2(vu2; ( temp void) +0:113 'tempArg' ( temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore ( temp void) +0:113 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:113 c1: direct index for structure ( uniform int) +0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' ( temp 2-component vector of uint) +0:113 'tempArg' ( temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child ( temp int) +0:117 'coordTemp' ( temp int) +0:117 c1: direct index for structure ( uniform int) +0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageLoad ( temp 2-component vector of float) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 Pre-Increment ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 imageStore ( temp void) +0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:117 'coordTemp' ( temp int) +0:117 'storeTemp' ( temp 2-component vector of float) +0:117 'storeTemp' ( temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child ( temp int) +0:118 'coordTemp' ( temp int) +0:118 c1: direct index for structure ( uniform int) +0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageLoad ( temp 2-component vector of int) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 Pre-Increment ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 imageStore ( temp void) +0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:118 'coordTemp' ( temp int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:118 'storeTemp' ( temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child ( temp int) +0:119 'coordTemp' ( temp int) +0:119 c1: direct index for structure ( uniform int) +0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageLoad ( temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 Pre-Increment ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 imageStore ( temp void) +0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:119 'coordTemp' ( temp int) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:119 'storeTemp' ( temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child ( temp int) +0:121 'coordTemp' ( temp int) +0:121 c1: direct index for structure ( uniform int) +0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageLoad ( temp 2-component vector of float) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 Pre-Decrement ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 imageStore ( temp void) +0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:121 'coordTemp' ( temp int) +0:121 'storeTemp' ( temp 2-component vector of float) +0:121 'storeTemp' ( temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child ( temp int) +0:122 'coordTemp' ( temp int) +0:122 c1: direct index for structure ( uniform int) +0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageLoad ( temp 2-component vector of int) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 Pre-Decrement ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 imageStore ( temp void) +0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:122 'coordTemp' ( temp int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:122 'storeTemp' ( temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child ( temp int) +0:123 'coordTemp' ( temp int) +0:123 c1: direct index for structure ( uniform int) +0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageLoad ( temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 Pre-Decrement ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 imageStore ( temp void) +0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:123 'coordTemp' ( temp int) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:123 'storeTemp' ( temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child ( temp int) +0:126 'coordTemp' ( temp int) +0:126 c1: direct index for structure ( uniform int) +0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 imageLoad ( temp 2-component vector of float) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:126 Post-Increment ( temp 2-component vector of float) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 imageStore ( temp void) +0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:126 'coordTemp' ( temp int) +0:126 'storeTempPost' ( temp 2-component vector of float) +0:126 'storeTempPre' ( temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child ( temp int) +0:127 'coordTemp' ( temp int) +0:127 c1: direct index for structure ( uniform int) +0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 imageLoad ( temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 move second child to first child ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:127 Post-Decrement ( temp 2-component vector of uint) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 imageStore ( temp void) +0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:127 'coordTemp' ( temp int) +0:127 'storeTempPost' ( temp 2-component vector of uint) +0:127 'storeTempPre' ( temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child ( temp int) +0:128 'coordTemp' ( temp int) +0:128 c1: direct index for structure ( uniform int) +0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 imageLoad ( temp 2-component vector of int) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 move second child to first child ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:128 Post-Increment ( temp 2-component vector of int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 imageStore ( temp void) +0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:128 'coordTemp' ( temp int) +0:128 'storeTempPost' ( temp 2-component vector of int) +0:128 'storeTempPre' ( temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child ( temp int) +0:130 'coordTemp' ( temp int) +0:130 c1: direct index for structure ( uniform int) +0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 imageLoad ( temp 2-component vector of float) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 move second child to first child ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:130 Post-Decrement ( temp 2-component vector of float) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 imageStore ( temp void) +0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:130 'coordTemp' ( temp int) +0:130 'storeTempPost' ( temp 2-component vector of float) +0:130 'storeTempPre' ( temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'coordTemp' ( temp int) +0:131 c1: direct index for structure ( uniform int) +0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 imageLoad ( temp 2-component vector of int) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 move second child to first child ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:131 Post-Increment ( temp 2-component vector of int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 imageStore ( temp void) +0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:131 'coordTemp' ( temp int) +0:131 'storeTempPost' ( temp 2-component vector of int) +0:131 'storeTempPre' ( temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child ( temp int) +0:132 'coordTemp' ( temp int) +0:132 c1: direct index for structure ( uniform int) +0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child ( temp 2-component vector of uint) +0:132 'storeTempPre' ( temp 2-component vector of uint) +0:132 imageLoad ( temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 move second child to first child ( temp 2-component vector of uint) +0:132 'storeTempPost' ( temp 2-component vector of uint) +0:132 'storeTempPre' ( temp 2-component vector of uint) +0:132 Post-Decrement ( temp 2-component vector of uint) +0:132 'storeTempPost' ( temp 2-component vector of uint) +0:132 imageStore ( temp void) +0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:132 'coordTemp' ( temp int) +0:132 'storeTempPost' ( temp 2-component vector of uint) +0:132 'storeTempPre' ( temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child ( temp 2-component vector of float) +0:135 'storeTemp' ( temp 2-component vector of float) +0:? imageLoad ( temp 2-component vector of float) +0:135 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore ( temp void) +0:135 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' ( temp 2-component vector of float) +0:135 'storeTemp' ( temp 2-component vector of float) +0:137 move second child to first child ( temp 4-component vector of float) +0:137 Color: direct index for structure ( temp 4-component vector of float) +0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Branch: Return with expression +0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:53 Constant: +0:53 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df2' (layout( rg32f) uniform image1D) +0:? 'g_tTex1di2' (layout( rg32i) uniform iimage1D) +0:? 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) +0:? 'g_tTex2df2' (layout( rg32f) uniform image2D) +0:? 'g_tTex2di2' (layout( rg32i) uniform iimage2D) +0:? 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) +0:? 'g_tTex3df2' (layout( rg32f) uniform image3D) +0:? 'g_tTex3di2' (layout( rg32i) uniform iimage3D) +0:? 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) +0:? 'g_tTex1df2a' (layout( rg32f) uniform image1DArray) +0:? 'g_tTex1di2a' (layout( rg32i) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout( rg32ui) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout( rg32f) uniform image2DArray) +0:? 'g_tTex2di2a' (layout( rg32i) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout( rg32ui) uniform uimage2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 605 + + Capability Shader + Capability Image1D + Capability StorageImageExtendedFormats + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 581 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Fn1(vi2;" + Name 10 "x" + Name 18 "Fn1(vu2;" + Name 17 "x" + Name 25 "Fn1(vf2;" + Name 24 "x" + Name 29 "Fn2(vi2;" + Name 28 "x" + Name 33 "Fn2(vu2;" + Name 32 "x" + Name 37 "Fn2(vf2;" + Name 36 "x" + Name 40 "SomeValue(" + Name 43 "PS_OUTPUT" + MemberName 43(PS_OUTPUT) 0 "Color" + Name 45 "@main(" + Name 64 "$Global" + MemberName 64($Global) 0 "c1" + MemberName 64($Global) 1 "c2" + MemberName 64($Global) 2 "c3" + MemberName 64($Global) 3 "c4" + MemberName 64($Global) 4 "o1" + MemberName 64($Global) 5 "o2" + MemberName 64($Global) 6 "o3" + MemberName 64($Global) 7 "o4" + MemberName 64($Global) 8 "uf2" + MemberName 64($Global) 9 "ui2" + MemberName 64($Global) 10 "uu2" + Name 66 "" + Name 76 "g_tTex1df2" + Name 82 "r00" + Name 87 "r01" + Name 90 "g_tTex1di2" + Name 95 "r02" + Name 98 "g_tTex1du2" + Name 103 "r10" + Name 106 "g_tTex2df2" + Name 111 "r11" + Name 114 "g_tTex2di2" + Name 119 "r12" + Name 122 "g_tTex2du2" + Name 127 "r20" + Name 130 "g_tTex3df2" + Name 137 "r21" + Name 140 "g_tTex3di2" + Name 145 "r22" + Name 148 "g_tTex3du2" + Name 153 "lf2" + Name 158 "storeTemp" + Name 168 "storeTemp" + Name 174 "storeTemp" + Name 182 "val1" + Name 184 "coordTemp" + Name 187 "storeTemp" + Name 198 "coordTemp" + Name 201 "storeTemp" + Name 212 "coordTemp" + Name 215 "storeTemp" + Name 226 "coordTemp" + Name 229 "storeTemp" + Name 239 "coordTemp" + Name 242 "storeTemp" + Name 252 "coordTemp" + Name 255 "storeTemp" + Name 266 "coordTemp" + Name 269 "storeTemp" + Name 280 "coordTemp" + Name 283 "storeTemp" + Name 293 "coordTemp" + Name 296 "storeTemp" + Name 306 "storeTemp" + Name 316 "storeTemp" + Name 323 "storeTemp" + Name 330 "storeTemp" + Name 340 "storeTemp" + Name 347 "storeTemp" + Name 358 "param" + Name 364 "param" + Name 370 "param" + Name 372 "tempArg" + Name 373 "param" + Name 380 "tempArg" + Name 381 "param" + Name 388 "tempArg" + Name 389 "param" + Name 396 "coordTemp" + Name 399 "storeTemp" + Name 410 "coordTemp" + Name 413 "storeTemp" + Name 423 "coordTemp" + Name 426 "storeTemp" + Name 436 "coordTemp" + Name 439 "storeTemp" + Name 449 "coordTemp" + Name 452 "storeTemp" + Name 462 "coordTemp" + Name 465 "storeTemp" + Name 475 "coordTemp" + Name 478 "storeTempPre" + Name 482 "storeTempPost" + Name 490 "coordTemp" + Name 493 "storeTempPre" + Name 497 "storeTempPost" + Name 505 "coordTemp" + Name 508 "storeTempPre" + Name 512 "storeTempPost" + Name 520 "coordTemp" + Name 523 "storeTempPre" + Name 527 "storeTempPost" + Name 535 "coordTemp" + Name 538 "storeTempPre" + Name 542 "storeTempPost" + Name 550 "coordTemp" + Name 553 "storeTempPre" + Name 557 "storeTempPost" + Name 565 "storeTemp" + Name 573 "psout" + Name 581 "@entryPointOutput.Color" + Name 586 "g_sSamp" + Name 589 "g_tTex1df2a" + Name 592 "g_tTex1di2a" + Name 595 "g_tTex1du2a" + Name 598 "g_tTex2df2a" + Name 601 "g_tTex2di2a" + Name 604 "g_tTex2du2a" + MemberDecorate 64($Global) 0 Offset 0 + MemberDecorate 64($Global) 1 Offset 8 + MemberDecorate 64($Global) 2 Offset 16 + MemberDecorate 64($Global) 3 Offset 32 + MemberDecorate 64($Global) 4 Offset 48 + MemberDecorate 64($Global) 5 Offset 56 + MemberDecorate 64($Global) 6 Offset 64 + MemberDecorate 64($Global) 7 Offset 80 + MemberDecorate 64($Global) 8 Offset 96 + MemberDecorate 64($Global) 9 Offset 104 + MemberDecorate 64($Global) 10 Offset 112 + Decorate 64($Global) Block + Decorate 66 DescriptorSet 0 + Decorate 76(g_tTex1df2) DescriptorSet 0 + Decorate 90(g_tTex1di2) DescriptorSet 0 + Decorate 98(g_tTex1du2) DescriptorSet 0 + Decorate 106(g_tTex2df2) DescriptorSet 0 + Decorate 114(g_tTex2di2) DescriptorSet 0 + Decorate 122(g_tTex2du2) DescriptorSet 0 + Decorate 130(g_tTex3df2) DescriptorSet 0 + Decorate 140(g_tTex3di2) DescriptorSet 0 + Decorate 148(g_tTex3du2) DescriptorSet 0 + Decorate 581(@entryPointOutput.Color) Location 0 + Decorate 586(g_sSamp) DescriptorSet 0 + Decorate 586(g_sSamp) Binding 0 + Decorate 589(g_tTex1df2a) DescriptorSet 0 + Decorate 592(g_tTex1di2a) DescriptorSet 0 + Decorate 595(g_tTex1du2a) DescriptorSet 0 + Decorate 598(g_tTex2df2a) DescriptorSet 0 + Decorate 601(g_tTex2di2a) DescriptorSet 0 + Decorate 604(g_tTex2du2a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 9: TypeFunction 7(ivec2) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 2 + 15: TypePointer Function 14(ivec2) + 16: TypeFunction 14(ivec2) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 2 + 22: TypePointer Function 21(fvec2) + 23: TypeFunction 21(fvec2) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec2) + 42: TypeVector 20(float) 4 + 43(PS_OUTPUT): TypeStruct 42(fvec4) + 44: TypeFunction 43(PS_OUTPUT) + 56: 6(int) Constant 0 + 57: 7(ivec2) ConstantComposite 56 56 + 58: 13(int) Constant 0 + 59: 14(ivec2) ConstantComposite 58 58 + 60: 20(float) Constant 0 + 61: 21(fvec2) ConstantComposite 60 60 + 62: TypeVector 6(int) 3 + 63: TypeVector 6(int) 4 + 64($Global): TypeStruct 6(int) 7(ivec2) 62(ivec3) 63(ivec4) 6(int) 7(ivec2) 62(ivec3) 63(ivec4) 21(fvec2) 7(ivec2) 14(ivec2) + 65: TypePointer Uniform 64($Global) + 66: 65(ptr) Variable Uniform + 67: 6(int) Constant 1 + 68: TypePointer Uniform 7(ivec2) + 74: TypeImage 20(float) 1D nonsampled format:Rg32f + 75: TypePointer UniformConstant 74 + 76(g_tTex1df2): 75(ptr) Variable UniformConstant + 78: TypePointer Uniform 6(int) + 88: TypeImage 6(int) 1D nonsampled format:Rg32i + 89: TypePointer UniformConstant 88 + 90(g_tTex1di2): 89(ptr) Variable UniformConstant + 96: TypeImage 13(int) 1D nonsampled format:Rg32ui + 97: TypePointer UniformConstant 96 + 98(g_tTex1du2): 97(ptr) Variable UniformConstant + 104: TypeImage 20(float) 2D nonsampled format:Rg32f + 105: TypePointer UniformConstant 104 + 106(g_tTex2df2): 105(ptr) Variable UniformConstant + 112: TypeImage 6(int) 2D nonsampled format:Rg32i + 113: TypePointer UniformConstant 112 + 114(g_tTex2di2): 113(ptr) Variable UniformConstant + 120: TypeImage 13(int) 2D nonsampled format:Rg32ui + 121: TypePointer UniformConstant 120 + 122(g_tTex2du2): 121(ptr) Variable UniformConstant + 128: TypeImage 20(float) 3D nonsampled format:Rg32f + 129: TypePointer UniformConstant 128 + 130(g_tTex3df2): 129(ptr) Variable UniformConstant + 132: 6(int) Constant 2 + 133: TypePointer Uniform 62(ivec3) + 138: TypeImage 6(int) 3D nonsampled format:Rg32i + 139: TypePointer UniformConstant 138 + 140(g_tTex3di2): 139(ptr) Variable UniformConstant + 146: TypeImage 13(int) 3D nonsampled format:Rg32ui + 147: TypePointer UniformConstant 146 + 148(g_tTex3du2): 147(ptr) Variable UniformConstant + 154: 6(int) Constant 8 + 155: TypePointer Uniform 21(fvec2) + 169: 7(ivec2) ConstantComposite 132 132 + 175: 13(int) Constant 3 + 176: 13(int) Constant 2 + 177: 14(ivec2) ConstantComposite 175 176 + 183: TypePointer Function 6(int) + 191: 20(float) Constant 1073741824 + 205: 20(float) Constant 1077936128 + 219: 20(float) Constant 1082130432 + 259: 6(int) Constant 65535 + 273: 6(int) Constant 61680 + 317: 6(int) Constant 5 + 318: 7(ivec2) ConstantComposite 317 132 + 324: 13(int) Constant 6 + 325: 14(ivec2) ConstantComposite 324 176 + 341: 6(int) Constant 6 + 342: 7(ivec2) ConstantComposite 154 341 + 348: 13(int) Constant 9 + 349: 14(ivec2) ConstantComposite 348 176 + 404: 20(float) Constant 1065353216 + 567: 6(int) Constant 3 + 568: 7(ivec2) ConstantComposite 132 567 + 572: TypePointer Function 43(PS_OUTPUT) + 574: 42(fvec4) ConstantComposite 404 404 404 404 + 575: TypePointer Function 42(fvec4) + 580: TypePointer Output 42(fvec4) +581(@entryPointOutput.Color): 580(ptr) Variable Output + 584: TypeSampler + 585: TypePointer UniformConstant 584 + 586(g_sSamp): 585(ptr) Variable UniformConstant + 587: TypeImage 20(float) 1D array nonsampled format:Rg32f + 588: TypePointer UniformConstant 587 +589(g_tTex1df2a): 588(ptr) Variable UniformConstant + 590: TypeImage 6(int) 1D array nonsampled format:Rg32i + 591: TypePointer UniformConstant 590 +592(g_tTex1di2a): 591(ptr) Variable UniformConstant + 593: TypeImage 13(int) 1D array nonsampled format:Rg32ui + 594: TypePointer UniformConstant 593 +595(g_tTex1du2a): 594(ptr) Variable UniformConstant + 596: TypeImage 20(float) 2D array nonsampled format:Rg32f + 597: TypePointer UniformConstant 596 +598(g_tTex2df2a): 597(ptr) Variable UniformConstant + 599: TypeImage 6(int) 2D array nonsampled format:Rg32i + 600: TypePointer UniformConstant 599 +601(g_tTex2di2a): 600(ptr) Variable UniformConstant + 602: TypeImage 13(int) 2D array nonsampled format:Rg32ui + 603: TypePointer UniformConstant 602 +604(g_tTex2du2a): 603(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 582:43(PS_OUTPUT) FunctionCall 45(@main() + 583: 42(fvec4) CompositeExtract 582 0 + Store 581(@entryPointOutput.Color) 583 + Return + FunctionEnd + 11(Fn1(vi2;): 7(ivec2) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 47: 7(ivec2) Load 10(x) + ReturnValue 47 + FunctionEnd + 18(Fn1(vu2;): 14(ivec2) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 50: 14(ivec2) Load 17(x) + ReturnValue 50 + FunctionEnd + 25(Fn1(vf2;): 21(fvec2) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 53: 21(fvec2) Load 24(x) + ReturnValue 53 + FunctionEnd + 29(Fn2(vi2;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 57 + Return + FunctionEnd + 33(Fn2(vu2;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 59 + Return + FunctionEnd + 37(Fn2(vf2;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 61 + Return + FunctionEnd + 40(SomeValue(): 21(fvec2) Function None 39 + 41: Label + 69: 68(ptr) AccessChain 66 67 + 70: 7(ivec2) Load 69 + 71: 21(fvec2) ConvertSToF 70 + ReturnValue 71 + FunctionEnd + 45(@main():43(PS_OUTPUT) Function None 44 + 46: Label + 82(r00): 22(ptr) Variable Function + 87(r01): 8(ptr) Variable Function + 95(r02): 15(ptr) Variable Function + 103(r10): 22(ptr) Variable Function + 111(r11): 8(ptr) Variable Function + 119(r12): 15(ptr) Variable Function + 127(r20): 22(ptr) Variable Function + 137(r21): 8(ptr) Variable Function + 145(r22): 15(ptr) Variable Function + 153(lf2): 22(ptr) Variable Function + 158(storeTemp): 22(ptr) Variable Function + 168(storeTemp): 8(ptr) Variable Function + 174(storeTemp): 15(ptr) Variable Function + 182(val1): 22(ptr) Variable Function + 184(coordTemp): 183(ptr) Variable Function + 187(storeTemp): 22(ptr) Variable Function + 198(coordTemp): 183(ptr) Variable Function + 201(storeTemp): 22(ptr) Variable Function + 212(coordTemp): 183(ptr) Variable Function + 215(storeTemp): 22(ptr) Variable Function + 226(coordTemp): 183(ptr) Variable Function + 229(storeTemp): 8(ptr) Variable Function + 239(coordTemp): 183(ptr) Variable Function + 242(storeTemp): 8(ptr) Variable Function + 252(coordTemp): 183(ptr) Variable Function + 255(storeTemp): 8(ptr) Variable Function + 266(coordTemp): 183(ptr) Variable Function + 269(storeTemp): 8(ptr) Variable Function + 280(coordTemp): 183(ptr) Variable Function + 283(storeTemp): 8(ptr) Variable Function + 293(coordTemp): 183(ptr) Variable Function + 296(storeTemp): 8(ptr) Variable Function + 306(storeTemp): 22(ptr) Variable Function + 316(storeTemp): 8(ptr) Variable Function + 323(storeTemp): 15(ptr) Variable Function + 330(storeTemp): 22(ptr) Variable Function + 340(storeTemp): 8(ptr) Variable Function + 347(storeTemp): 15(ptr) Variable Function + 358(param): 22(ptr) Variable Function + 364(param): 8(ptr) Variable Function + 370(param): 15(ptr) Variable Function + 372(tempArg): 22(ptr) Variable Function + 373(param): 22(ptr) Variable Function + 380(tempArg): 8(ptr) Variable Function + 381(param): 8(ptr) Variable Function + 388(tempArg): 15(ptr) Variable Function + 389(param): 15(ptr) Variable Function + 396(coordTemp): 183(ptr) Variable Function + 399(storeTemp): 22(ptr) Variable Function + 410(coordTemp): 183(ptr) Variable Function + 413(storeTemp): 8(ptr) Variable Function + 423(coordTemp): 183(ptr) Variable Function + 426(storeTemp): 15(ptr) Variable Function + 436(coordTemp): 183(ptr) Variable Function + 439(storeTemp): 22(ptr) Variable Function + 449(coordTemp): 183(ptr) Variable Function + 452(storeTemp): 8(ptr) Variable Function + 462(coordTemp): 183(ptr) Variable Function + 465(storeTemp): 15(ptr) Variable Function + 475(coordTemp): 183(ptr) Variable Function +478(storeTempPre): 22(ptr) Variable Function +482(storeTempPost): 22(ptr) Variable Function + 490(coordTemp): 183(ptr) Variable Function +493(storeTempPre): 15(ptr) Variable Function +497(storeTempPost): 15(ptr) Variable Function + 505(coordTemp): 183(ptr) Variable Function +508(storeTempPre): 8(ptr) Variable Function +512(storeTempPost): 8(ptr) Variable Function + 520(coordTemp): 183(ptr) Variable Function +523(storeTempPre): 22(ptr) Variable Function +527(storeTempPost): 22(ptr) Variable Function + 535(coordTemp): 183(ptr) Variable Function +538(storeTempPre): 8(ptr) Variable Function +542(storeTempPost): 8(ptr) Variable Function + 550(coordTemp): 183(ptr) Variable Function +553(storeTempPre): 15(ptr) Variable Function +557(storeTempPost): 15(ptr) Variable Function + 565(storeTemp): 22(ptr) Variable Function + 573(psout): 572(ptr) Variable Function + 77: 74 Load 76(g_tTex1df2) + 79: 78(ptr) AccessChain 66 56 + 80: 6(int) Load 79 + 81: 21(fvec2) ImageRead 77 80 + 83: 74 Load 76(g_tTex1df2) + 84: 78(ptr) AccessChain 66 56 + 85: 6(int) Load 84 + 86: 21(fvec2) ImageRead 83 85 + Store 82(r00) 86 + 91: 88 Load 90(g_tTex1di2) + 92: 78(ptr) AccessChain 66 56 + 93: 6(int) Load 92 + 94: 7(ivec2) ImageRead 91 93 + Store 87(r01) 94 + 99: 96 Load 98(g_tTex1du2) + 100: 78(ptr) AccessChain 66 56 + 101: 6(int) Load 100 + 102: 14(ivec2) ImageRead 99 101 + Store 95(r02) 102 + 107: 104 Load 106(g_tTex2df2) + 108: 68(ptr) AccessChain 66 67 + 109: 7(ivec2) Load 108 + 110: 21(fvec2) ImageRead 107 109 + Store 103(r10) 110 + 115: 112 Load 114(g_tTex2di2) + 116: 68(ptr) AccessChain 66 67 + 117: 7(ivec2) Load 116 + 118: 7(ivec2) ImageRead 115 117 + Store 111(r11) 118 + 123: 120 Load 122(g_tTex2du2) + 124: 68(ptr) AccessChain 66 67 + 125: 7(ivec2) Load 124 + 126: 14(ivec2) ImageRead 123 125 + Store 119(r12) 126 + 131: 128 Load 130(g_tTex3df2) + 134: 133(ptr) AccessChain 66 132 + 135: 62(ivec3) Load 134 + 136: 21(fvec2) ImageRead 131 135 + Store 127(r20) 136 + 141: 138 Load 140(g_tTex3di2) + 142: 133(ptr) AccessChain 66 132 + 143: 62(ivec3) Load 142 + 144: 7(ivec2) ImageRead 141 143 + Store 137(r21) 144 + 149: 146 Load 148(g_tTex3du2) + 150: 133(ptr) AccessChain 66 132 + 151: 62(ivec3) Load 150 + 152: 14(ivec2) ImageRead 149 151 + Store 145(r22) 152 + 156: 155(ptr) AccessChain 66 154 + 157: 21(fvec2) Load 156 + Store 153(lf2) 157 + 159: 21(fvec2) FunctionCall 40(SomeValue() + Store 158(storeTemp) 159 + 160: 74 Load 76(g_tTex1df2) + 161: 78(ptr) AccessChain 66 56 + 162: 6(int) Load 161 + 163: 21(fvec2) Load 158(storeTemp) + ImageWrite 160 162 163 + 164: 74 Load 76(g_tTex1df2) + 165: 78(ptr) AccessChain 66 56 + 166: 6(int) Load 165 + 167: 21(fvec2) Load 153(lf2) + ImageWrite 164 166 167 + Store 168(storeTemp) 169 + 170: 88 Load 90(g_tTex1di2) + 171: 78(ptr) AccessChain 66 56 + 172: 6(int) Load 171 + 173: 7(ivec2) Load 168(storeTemp) + ImageWrite 170 172 173 + Store 174(storeTemp) 177 + 178: 96 Load 98(g_tTex1du2) + 179: 78(ptr) AccessChain 66 56 + 180: 6(int) Load 179 + 181: 14(ivec2) Load 174(storeTemp) + ImageWrite 178 180 181 + 185: 78(ptr) AccessChain 66 56 + 186: 6(int) Load 185 + Store 184(coordTemp) 186 + 188: 74 Load 76(g_tTex1df2) + 189: 6(int) Load 184(coordTemp) + 190: 21(fvec2) ImageRead 188 189 + Store 187(storeTemp) 190 + 192: 21(fvec2) Load 187(storeTemp) + 193: 21(fvec2) VectorTimesScalar 192 191 + Store 187(storeTemp) 193 + 194: 74 Load 76(g_tTex1df2) + 195: 6(int) Load 184(coordTemp) + 196: 21(fvec2) Load 187(storeTemp) + ImageWrite 194 195 196 + 197: 21(fvec2) Load 187(storeTemp) + Store 182(val1) 197 + 199: 78(ptr) AccessChain 66 56 + 200: 6(int) Load 199 + Store 198(coordTemp) 200 + 202: 74 Load 76(g_tTex1df2) + 203: 6(int) Load 198(coordTemp) + 204: 21(fvec2) ImageRead 202 203 + Store 201(storeTemp) 204 + 206: 21(fvec2) Load 201(storeTemp) + 207: 21(fvec2) CompositeConstruct 205 205 + 208: 21(fvec2) FSub 206 207 + Store 201(storeTemp) 208 + 209: 74 Load 76(g_tTex1df2) + 210: 6(int) Load 198(coordTemp) + 211: 21(fvec2) Load 201(storeTemp) + ImageWrite 209 210 211 + 213: 78(ptr) AccessChain 66 56 + 214: 6(int) Load 213 + Store 212(coordTemp) 214 + 216: 74 Load 76(g_tTex1df2) + 217: 6(int) Load 212(coordTemp) + 218: 21(fvec2) ImageRead 216 217 + Store 215(storeTemp) 218 + 220: 21(fvec2) Load 215(storeTemp) + 221: 21(fvec2) CompositeConstruct 219 219 + 222: 21(fvec2) FAdd 220 221 + Store 215(storeTemp) 222 + 223: 74 Load 76(g_tTex1df2) + 224: 6(int) Load 212(coordTemp) + 225: 21(fvec2) Load 215(storeTemp) + ImageWrite 223 224 225 + 227: 78(ptr) AccessChain 66 56 + 228: 6(int) Load 227 + Store 226(coordTemp) 228 + 230: 88 Load 90(g_tTex1di2) + 231: 6(int) Load 226(coordTemp) + 232: 7(ivec2) ImageRead 230 231 + Store 229(storeTemp) 232 + 233: 7(ivec2) Load 229(storeTemp) + 234: 7(ivec2) CompositeConstruct 132 132 + 235: 7(ivec2) SDiv 233 234 + Store 229(storeTemp) 235 + 236: 88 Load 90(g_tTex1di2) + 237: 6(int) Load 226(coordTemp) + 238: 7(ivec2) Load 229(storeTemp) + ImageWrite 236 237 238 + 240: 78(ptr) AccessChain 66 56 + 241: 6(int) Load 240 + Store 239(coordTemp) 241 + 243: 88 Load 90(g_tTex1di2) + 244: 6(int) Load 239(coordTemp) + 245: 7(ivec2) ImageRead 243 244 + Store 242(storeTemp) 245 + 246: 7(ivec2) Load 242(storeTemp) + 247: 7(ivec2) CompositeConstruct 132 132 + 248: 7(ivec2) SMod 246 247 + Store 242(storeTemp) 248 + 249: 88 Load 90(g_tTex1di2) + 250: 6(int) Load 239(coordTemp) + 251: 7(ivec2) Load 242(storeTemp) + ImageWrite 249 250 251 + 253: 78(ptr) AccessChain 66 56 + 254: 6(int) Load 253 + Store 252(coordTemp) 254 + 256: 88 Load 90(g_tTex1di2) + 257: 6(int) Load 252(coordTemp) + 258: 7(ivec2) ImageRead 256 257 + Store 255(storeTemp) 258 + 260: 7(ivec2) Load 255(storeTemp) + 261: 7(ivec2) CompositeConstruct 259 259 + 262: 7(ivec2) BitwiseAnd 260 261 + Store 255(storeTemp) 262 + 263: 88 Load 90(g_tTex1di2) + 264: 6(int) Load 252(coordTemp) + 265: 7(ivec2) Load 255(storeTemp) + ImageWrite 263 264 265 + 267: 78(ptr) AccessChain 66 56 + 268: 6(int) Load 267 + Store 266(coordTemp) 268 + 270: 88 Load 90(g_tTex1di2) + 271: 6(int) Load 266(coordTemp) + 272: 7(ivec2) ImageRead 270 271 + Store 269(storeTemp) 272 + 274: 7(ivec2) Load 269(storeTemp) + 275: 7(ivec2) CompositeConstruct 273 273 + 276: 7(ivec2) BitwiseOr 274 275 + Store 269(storeTemp) 276 + 277: 88 Load 90(g_tTex1di2) + 278: 6(int) Load 266(coordTemp) + 279: 7(ivec2) Load 269(storeTemp) + ImageWrite 277 278 279 + 281: 78(ptr) AccessChain 66 56 + 282: 6(int) Load 281 + Store 280(coordTemp) 282 + 284: 88 Load 90(g_tTex1di2) + 285: 6(int) Load 280(coordTemp) + 286: 7(ivec2) ImageRead 284 285 + Store 283(storeTemp) 286 + 287: 7(ivec2) Load 283(storeTemp) + 288: 7(ivec2) CompositeConstruct 132 132 + 289: 7(ivec2) ShiftLeftLogical 287 288 + Store 283(storeTemp) 289 + 290: 88 Load 90(g_tTex1di2) + 291: 6(int) Load 280(coordTemp) + 292: 7(ivec2) Load 283(storeTemp) + ImageWrite 290 291 292 + 294: 78(ptr) AccessChain 66 56 + 295: 6(int) Load 294 + Store 293(coordTemp) 295 + 297: 88 Load 90(g_tTex1di2) + 298: 6(int) Load 293(coordTemp) + 299: 7(ivec2) ImageRead 297 298 + Store 296(storeTemp) 299 + 300: 7(ivec2) Load 296(storeTemp) + 301: 7(ivec2) CompositeConstruct 132 132 + 302: 7(ivec2) ShiftRightArithmetic 300 301 + Store 296(storeTemp) 302 + 303: 88 Load 90(g_tTex1di2) + 304: 6(int) Load 293(coordTemp) + 305: 7(ivec2) Load 296(storeTemp) + ImageWrite 303 304 305 + 307: 21(fvec2) FunctionCall 40(SomeValue() + Store 306(storeTemp) 307 + 308: 104 Load 106(g_tTex2df2) + 309: 68(ptr) AccessChain 66 67 + 310: 7(ivec2) Load 309 + 311: 21(fvec2) Load 306(storeTemp) + ImageWrite 308 310 311 + 312: 104 Load 106(g_tTex2df2) + 313: 68(ptr) AccessChain 66 67 + 314: 7(ivec2) Load 313 + 315: 21(fvec2) Load 153(lf2) + ImageWrite 312 314 315 + Store 316(storeTemp) 318 + 319: 112 Load 114(g_tTex2di2) + 320: 68(ptr) AccessChain 66 67 + 321: 7(ivec2) Load 320 + 322: 7(ivec2) Load 316(storeTemp) + ImageWrite 319 321 322 + Store 323(storeTemp) 325 + 326: 120 Load 122(g_tTex2du2) + 327: 68(ptr) AccessChain 66 67 + 328: 7(ivec2) Load 327 + 329: 14(ivec2) Load 323(storeTemp) + ImageWrite 326 328 329 + 331: 21(fvec2) FunctionCall 40(SomeValue() + Store 330(storeTemp) 331 + 332: 128 Load 130(g_tTex3df2) + 333: 133(ptr) AccessChain 66 132 + 334: 62(ivec3) Load 333 + 335: 21(fvec2) Load 330(storeTemp) + ImageWrite 332 334 335 + 336: 128 Load 130(g_tTex3df2) + 337: 133(ptr) AccessChain 66 132 + 338: 62(ivec3) Load 337 + 339: 21(fvec2) Load 153(lf2) + ImageWrite 336 338 339 + Store 340(storeTemp) 342 + 343: 138 Load 140(g_tTex3di2) + 344: 133(ptr) AccessChain 66 132 + 345: 62(ivec3) Load 344 + 346: 7(ivec2) Load 340(storeTemp) + ImageWrite 343 345 346 + Store 347(storeTemp) 349 + 350: 146 Load 148(g_tTex3du2) + 351: 133(ptr) AccessChain 66 132 + 352: 62(ivec3) Load 351 + 353: 14(ivec2) Load 347(storeTemp) + ImageWrite 350 352 353 + 354: 74 Load 76(g_tTex1df2) + 355: 78(ptr) AccessChain 66 56 + 356: 6(int) Load 355 + 357: 21(fvec2) ImageRead 354 356 + Store 358(param) 357 + 359: 21(fvec2) FunctionCall 25(Fn1(vf2;) 358(param) + 360: 88 Load 90(g_tTex1di2) + 361: 78(ptr) AccessChain 66 56 + 362: 6(int) Load 361 + 363: 7(ivec2) ImageRead 360 362 + Store 364(param) 363 + 365: 7(ivec2) FunctionCall 11(Fn1(vi2;) 364(param) + 366: 96 Load 98(g_tTex1du2) + 367: 78(ptr) AccessChain 66 56 + 368: 6(int) Load 367 + 369: 14(ivec2) ImageRead 366 368 + Store 370(param) 369 + 371: 14(ivec2) FunctionCall 18(Fn1(vu2;) 370(param) + 374: 2 FunctionCall 37(Fn2(vf2;) 373(param) + 375: 21(fvec2) Load 373(param) + Store 372(tempArg) 375 + 376: 74 Load 76(g_tTex1df2) + 377: 78(ptr) AccessChain 66 56 + 378: 6(int) Load 377 + 379: 21(fvec2) Load 372(tempArg) + ImageWrite 376 378 379 + 382: 2 FunctionCall 29(Fn2(vi2;) 381(param) + 383: 7(ivec2) Load 381(param) + Store 380(tempArg) 383 + 384: 88 Load 90(g_tTex1di2) + 385: 78(ptr) AccessChain 66 56 + 386: 6(int) Load 385 + 387: 7(ivec2) Load 380(tempArg) + ImageWrite 384 386 387 + 390: 2 FunctionCall 33(Fn2(vu2;) 389(param) + 391: 14(ivec2) Load 389(param) + Store 388(tempArg) 391 + 392: 96 Load 98(g_tTex1du2) + 393: 78(ptr) AccessChain 66 56 + 394: 6(int) Load 393 + 395: 14(ivec2) Load 388(tempArg) + ImageWrite 392 394 395 + 397: 78(ptr) AccessChain 66 56 + 398: 6(int) Load 397 + Store 396(coordTemp) 398 + 400: 74 Load 76(g_tTex1df2) + 401: 6(int) Load 396(coordTemp) + 402: 21(fvec2) ImageRead 400 401 + Store 399(storeTemp) 402 + 403: 21(fvec2) Load 399(storeTemp) + 405: 21(fvec2) CompositeConstruct 404 404 + 406: 21(fvec2) FAdd 403 405 + Store 399(storeTemp) 406 + 407: 74 Load 76(g_tTex1df2) + 408: 6(int) Load 396(coordTemp) + 409: 21(fvec2) Load 399(storeTemp) + ImageWrite 407 408 409 + 411: 78(ptr) AccessChain 66 56 + 412: 6(int) Load 411 + Store 410(coordTemp) 412 + 414: 88 Load 90(g_tTex1di2) + 415: 6(int) Load 410(coordTemp) + 416: 7(ivec2) ImageRead 414 415 + Store 413(storeTemp) 416 + 417: 7(ivec2) Load 413(storeTemp) + 418: 7(ivec2) CompositeConstruct 67 67 + 419: 7(ivec2) IAdd 417 418 + Store 413(storeTemp) 419 + 420: 88 Load 90(g_tTex1di2) + 421: 6(int) Load 410(coordTemp) + 422: 7(ivec2) Load 413(storeTemp) + ImageWrite 420 421 422 + 424: 78(ptr) AccessChain 66 56 + 425: 6(int) Load 424 + Store 423(coordTemp) 425 + 427: 96 Load 98(g_tTex1du2) + 428: 6(int) Load 423(coordTemp) + 429: 14(ivec2) ImageRead 427 428 + Store 426(storeTemp) 429 + 430: 14(ivec2) Load 426(storeTemp) + 431: 7(ivec2) CompositeConstruct 67 67 + 432: 14(ivec2) IAdd 430 431 + Store 426(storeTemp) 432 + 433: 96 Load 98(g_tTex1du2) + 434: 6(int) Load 423(coordTemp) + 435: 14(ivec2) Load 426(storeTemp) + ImageWrite 433 434 435 + 437: 78(ptr) AccessChain 66 56 + 438: 6(int) Load 437 + Store 436(coordTemp) 438 + 440: 74 Load 76(g_tTex1df2) + 441: 6(int) Load 436(coordTemp) + 442: 21(fvec2) ImageRead 440 441 + Store 439(storeTemp) 442 + 443: 21(fvec2) Load 439(storeTemp) + 444: 21(fvec2) CompositeConstruct 404 404 + 445: 21(fvec2) FSub 443 444 + Store 439(storeTemp) 445 + 446: 74 Load 76(g_tTex1df2) + 447: 6(int) Load 436(coordTemp) + 448: 21(fvec2) Load 439(storeTemp) + ImageWrite 446 447 448 + 450: 78(ptr) AccessChain 66 56 + 451: 6(int) Load 450 + Store 449(coordTemp) 451 + 453: 88 Load 90(g_tTex1di2) + 454: 6(int) Load 449(coordTemp) + 455: 7(ivec2) ImageRead 453 454 + Store 452(storeTemp) 455 + 456: 7(ivec2) Load 452(storeTemp) + 457: 7(ivec2) CompositeConstruct 67 67 + 458: 7(ivec2) ISub 456 457 + Store 452(storeTemp) 458 + 459: 88 Load 90(g_tTex1di2) + 460: 6(int) Load 449(coordTemp) + 461: 7(ivec2) Load 452(storeTemp) + ImageWrite 459 460 461 + 463: 78(ptr) AccessChain 66 56 + 464: 6(int) Load 463 + Store 462(coordTemp) 464 + 466: 96 Load 98(g_tTex1du2) + 467: 6(int) Load 462(coordTemp) + 468: 14(ivec2) ImageRead 466 467 + Store 465(storeTemp) 468 + 469: 14(ivec2) Load 465(storeTemp) + 470: 7(ivec2) CompositeConstruct 67 67 + 471: 14(ivec2) ISub 469 470 + Store 465(storeTemp) 471 + 472: 96 Load 98(g_tTex1du2) + 473: 6(int) Load 462(coordTemp) + 474: 14(ivec2) Load 465(storeTemp) + ImageWrite 472 473 474 + 476: 78(ptr) AccessChain 66 56 + 477: 6(int) Load 476 + Store 475(coordTemp) 477 + 479: 74 Load 76(g_tTex1df2) + 480: 6(int) Load 475(coordTemp) + 481: 21(fvec2) ImageRead 479 480 + Store 478(storeTempPre) 481 + 483: 21(fvec2) Load 478(storeTempPre) + Store 482(storeTempPost) 483 + 484: 21(fvec2) Load 482(storeTempPost) + 485: 21(fvec2) CompositeConstruct 404 404 + 486: 21(fvec2) FAdd 484 485 + Store 482(storeTempPost) 486 + 487: 74 Load 76(g_tTex1df2) + 488: 6(int) Load 475(coordTemp) + 489: 21(fvec2) Load 482(storeTempPost) + ImageWrite 487 488 489 + 491: 78(ptr) AccessChain 66 56 + 492: 6(int) Load 491 + Store 490(coordTemp) 492 + 494: 96 Load 98(g_tTex1du2) + 495: 6(int) Load 490(coordTemp) + 496: 14(ivec2) ImageRead 494 495 + Store 493(storeTempPre) 496 + 498: 14(ivec2) Load 493(storeTempPre) + Store 497(storeTempPost) 498 + 499: 14(ivec2) Load 497(storeTempPost) + 500: 7(ivec2) CompositeConstruct 67 67 + 501: 14(ivec2) ISub 499 500 + Store 497(storeTempPost) 501 + 502: 96 Load 98(g_tTex1du2) + 503: 6(int) Load 490(coordTemp) + 504: 14(ivec2) Load 497(storeTempPost) + ImageWrite 502 503 504 + 506: 78(ptr) AccessChain 66 56 + 507: 6(int) Load 506 + Store 505(coordTemp) 507 + 509: 88 Load 90(g_tTex1di2) + 510: 6(int) Load 505(coordTemp) + 511: 7(ivec2) ImageRead 509 510 + Store 508(storeTempPre) 511 + 513: 7(ivec2) Load 508(storeTempPre) + Store 512(storeTempPost) 513 + 514: 7(ivec2) Load 512(storeTempPost) + 515: 7(ivec2) CompositeConstruct 67 67 + 516: 7(ivec2) IAdd 514 515 + Store 512(storeTempPost) 516 + 517: 88 Load 90(g_tTex1di2) + 518: 6(int) Load 505(coordTemp) + 519: 7(ivec2) Load 512(storeTempPost) + ImageWrite 517 518 519 + 521: 78(ptr) AccessChain 66 56 + 522: 6(int) Load 521 + Store 520(coordTemp) 522 + 524: 74 Load 76(g_tTex1df2) + 525: 6(int) Load 520(coordTemp) + 526: 21(fvec2) ImageRead 524 525 + Store 523(storeTempPre) 526 + 528: 21(fvec2) Load 523(storeTempPre) + Store 527(storeTempPost) 528 + 529: 21(fvec2) Load 527(storeTempPost) + 530: 21(fvec2) CompositeConstruct 404 404 + 531: 21(fvec2) FSub 529 530 + Store 527(storeTempPost) 531 + 532: 74 Load 76(g_tTex1df2) + 533: 6(int) Load 520(coordTemp) + 534: 21(fvec2) Load 527(storeTempPost) + ImageWrite 532 533 534 + 536: 78(ptr) AccessChain 66 56 + 537: 6(int) Load 536 + Store 535(coordTemp) 537 + 539: 88 Load 90(g_tTex1di2) + 540: 6(int) Load 535(coordTemp) + 541: 7(ivec2) ImageRead 539 540 + Store 538(storeTempPre) 541 + 543: 7(ivec2) Load 538(storeTempPre) + Store 542(storeTempPost) 543 + 544: 7(ivec2) Load 542(storeTempPost) + 545: 7(ivec2) CompositeConstruct 67 67 + 546: 7(ivec2) IAdd 544 545 + Store 542(storeTempPost) 546 + 547: 88 Load 90(g_tTex1di2) + 548: 6(int) Load 535(coordTemp) + 549: 7(ivec2) Load 542(storeTempPost) + ImageWrite 547 548 549 + 551: 78(ptr) AccessChain 66 56 + 552: 6(int) Load 551 + Store 550(coordTemp) 552 + 554: 96 Load 98(g_tTex1du2) + 555: 6(int) Load 550(coordTemp) + 556: 14(ivec2) ImageRead 554 555 + Store 553(storeTempPre) 556 + 558: 14(ivec2) Load 553(storeTempPre) + Store 557(storeTempPost) 558 + 559: 14(ivec2) Load 557(storeTempPost) + 560: 7(ivec2) CompositeConstruct 67 67 + 561: 14(ivec2) ISub 559 560 + Store 557(storeTempPost) 561 + 562: 96 Load 98(g_tTex1du2) + 563: 6(int) Load 550(coordTemp) + 564: 14(ivec2) Load 557(storeTempPost) + ImageWrite 562 563 564 + 566: 104 Load 106(g_tTex2df2) + 569: 21(fvec2) ImageRead 566 568 + Store 565(storeTemp) 569 + 570: 74 Load 76(g_tTex1df2) + 571: 21(fvec2) Load 565(storeTemp) + ImageWrite 570 67 571 + 576: 575(ptr) AccessChain 573(psout) 56 + Store 576 574 + 577:43(PS_OUTPUT) Load 573(psout) + ReturnValue 577 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out new file mode 100644 index 0000000000..92e3dd84e7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -0,0 +1,541 @@ +hlsl.sample.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 texture ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 texture ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 texture ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 texture ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 texture ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 texture ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 texture ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 texture ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 texture ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 texture ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 texture ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 texture ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 texture ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 texture ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 146 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 138 142 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 32 "txval11" + Name 35 "g_tTex1di4" + Name 46 "txval12" + Name 49 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 79 "txval22" + Name 82 "g_tTex2du4" + Name 91 "txval40" + Name 94 "g_tTexcdf4" + Name 101 "txval41" + Name 104 "g_tTexcdi4" + Name 111 "txval42" + Name 114 "g_tTexcdu4" + Name 125 "psout" + Name 135 "flattenTemp" + Name 138 "@entryPointOutput.Color" + Name 142 "@entryPointOutput.Depth" + Name 145 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 49(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 82(g_tTex2du4) DescriptorSet 0 + Decorate 94(g_tTexcdf4) DescriptorSet 0 + Decorate 104(g_tTexcdi4) DescriptorSet 0 + Decorate 114(g_tTexcdu4) DescriptorSet 0 + Decorate 138(@entryPointOutput.Color) Location 0 + Decorate 142(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 145(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 29: TypeInt 32 1 + 30: TypeVector 29(int) 4 + 31: TypePointer Function 30(ivec4) + 33: TypeImage 29(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 38: TypeSampledImage 33 + 40: 6(float) Constant 1050253722 + 41: 24(fvec2) ConstantComposite 26 40 + 43: TypeInt 32 0 + 44: TypeVector 43(int) 4 + 45: TypePointer Function 44(ivec4) + 47: TypeImage 43(int) 1D array sampled format:Unknown + 48: TypePointer UniformConstant 47 + 49(g_tTex1du4): 48(ptr) Variable UniformConstant + 52: TypeSampledImage 47 + 54: 6(float) Constant 1053609165 + 55: 24(fvec2) ConstantComposite 40 54 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: TypeVector 6(float) 3 + 66: 65(fvec3) ConstantComposite 25 26 40 + 69: TypeImage 29(int) 2D array sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 76: 6(float) Constant 1056964608 + 77: 65(fvec3) ConstantComposite 40 54 76 + 80: TypeImage 43(int) 2D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2du4): 81(ptr) Variable UniformConstant + 85: TypeSampledImage 80 + 87: 6(float) Constant 1058642330 + 88: 6(float) Constant 1060320051 + 89: 65(fvec3) ConstantComposite 76 87 88 + 92: TypeImage 6(float) Cube array sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTexcdf4): 93(ptr) Variable UniformConstant + 97: TypeSampledImage 92 + 99: 7(fvec4) ConstantComposite 25 26 40 54 + 102: TypeImage 29(int) Cube array sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTexcdi4): 103(ptr) Variable UniformConstant + 107: TypeSampledImage 102 + 109: 7(fvec4) ConstantComposite 54 76 87 88 + 112: TypeImage 43(int) Cube array sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTexcdu4): 113(ptr) Variable UniformConstant + 117: TypeSampledImage 112 + 119: 6(float) Constant 1061997773 + 120: 6(float) Constant 1063675494 + 121: 6(float) Constant 1065353216 + 122: 7(fvec4) ConstantComposite 88 119 120 121 + 124: TypePointer Function 8(PS_OUTPUT) + 126: 29(int) Constant 0 + 127: 7(fvec4) ConstantComposite 121 121 121 121 + 129: 29(int) Constant 1 + 130: TypePointer Function 6(float) + 137: TypePointer Output 7(fvec4) +138(@entryPointOutput.Color): 137(ptr) Variable Output + 141: TypePointer Output 6(float) +142(@entryPointOutput.Depth): 141(ptr) Variable Output +145(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +135(flattenTemp): 124(ptr) Variable Function + 136:8(PS_OUTPUT) FunctionCall 10(@main() + Store 135(flattenTemp) 136 + 139: 12(ptr) AccessChain 135(flattenTemp) 126 + 140: 7(fvec4) Load 139 + Store 138(@entryPointOutput.Color) 140 + 143: 130(ptr) AccessChain 135(flattenTemp) 129 + 144: 6(float) Load 143 + Store 142(@entryPointOutput.Depth) 144 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 32(txval11): 31(ptr) Variable Function + 46(txval12): 45(ptr) Variable Function + 57(txval20): 12(ptr) Variable Function + 68(txval21): 31(ptr) Variable Function + 79(txval22): 45(ptr) Variable Function + 91(txval40): 12(ptr) Variable Function + 101(txval41): 31(ptr) Variable Function + 111(txval42): 45(ptr) Variable Function + 125(psout): 124(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 28: 7(fvec4) ImageSampleImplicitLod 23 27 + Store 13(txval10) 28 + 36: 33 Load 35(g_tTex1di4) + 37: 18 Load 20(g_sSamp) + 39: 38 SampledImage 36 37 + 42: 30(ivec4) ImageSampleImplicitLod 39 41 + Store 32(txval11) 42 + 50: 47 Load 49(g_tTex1du4) + 51: 18 Load 20(g_sSamp) + 53: 52 SampledImage 50 51 + 56: 44(ivec4) ImageSampleImplicitLod 53 55 + Store 46(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 18 Load 20(g_sSamp) + 64: 63 SampledImage 61 62 + 67: 7(fvec4) ImageSampleImplicitLod 64 66 + Store 57(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 18 Load 20(g_sSamp) + 75: 74 SampledImage 72 73 + 78: 30(ivec4) ImageSampleImplicitLod 75 77 + Store 68(txval21) 78 + 83: 80 Load 82(g_tTex2du4) + 84: 18 Load 20(g_sSamp) + 86: 85 SampledImage 83 84 + 90: 44(ivec4) ImageSampleImplicitLod 86 89 + Store 79(txval22) 90 + 95: 92 Load 94(g_tTexcdf4) + 96: 18 Load 20(g_sSamp) + 98: 97 SampledImage 95 96 + 100: 7(fvec4) ImageSampleImplicitLod 98 99 + Store 91(txval40) 100 + 105: 102 Load 104(g_tTexcdi4) + 106: 18 Load 20(g_sSamp) + 108: 107 SampledImage 105 106 + 110: 30(ivec4) ImageSampleImplicitLod 108 109 + Store 101(txval41) 110 + 115: 112 Load 114(g_tTexcdu4) + 116: 18 Load 20(g_sSamp) + 118: 117 SampledImage 115 116 + 123: 44(ivec4) ImageSampleImplicitLod 118 122 + Store 111(txval42) 123 + 128: 12(ptr) AccessChain 125(psout) 126 + Store 128 127 + 131: 130(ptr) AccessChain 125(psout) 129 + Store 131 121 + 132:8(PS_OUTPUT) Load 125(psout) + ReturnValue 132 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out new file mode 100644 index 0000000000..b6915b6aa3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -0,0 +1,862 @@ +hlsl.sample.basic.dx10.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Function Parameters: +0:? Sequence +0:57 move second child to first child ( temp int) +0:57 CalculateLevelOfDetail: direct index for structure ( temp int) +0:57 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1 (const int) +0:58 move second child to first child ( temp int) +0:58 CalculateLevelOfDetailUnclamped: direct index for structure ( temp int) +0:58 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:58 Constant: +0:58 2 (const int) +0:58 Constant: +0:58 1 (const int) +0:59 move second child to first child ( temp int) +0:59 Gather: direct index for structure ( temp int) +0:59 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:59 Constant: +0:59 3 (const int) +0:59 Constant: +0:59 1 (const int) +0:60 move second child to first child ( temp int) +0:60 GetDimensions: direct index for structure ( temp int) +0:60 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:60 Constant: +0:60 4 (const int) +0:60 Constant: +0:60 1 (const int) +0:61 move second child to first child ( temp int) +0:61 GetSamplePosition: direct index for structure ( temp int) +0:61 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:61 Constant: +0:61 5 (const int) +0:61 Constant: +0:61 1 (const int) +0:62 move second child to first child ( temp int) +0:62 Load: direct index for structure ( temp int) +0:62 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:62 Constant: +0:62 6 (const int) +0:62 Constant: +0:62 1 (const int) +0:63 move second child to first child ( temp int) +0:63 Sample: direct index for structure ( temp int) +0:63 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:64 move second child to first child ( temp int) +0:64 SampleBias: direct index for structure ( temp int) +0:64 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:64 Constant: +0:64 7 (const int) +0:64 Constant: +0:64 1 (const int) +0:65 move second child to first child ( temp int) +0:65 SampleCmp: direct index for structure ( temp int) +0:65 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:65 Constant: +0:65 8 (const int) +0:65 Constant: +0:65 1 (const int) +0:66 move second child to first child ( temp int) +0:66 SampleCmpLevelZero: direct index for structure ( temp int) +0:66 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:66 Constant: +0:66 9 (const int) +0:66 Constant: +0:66 1 (const int) +0:67 move second child to first child ( temp int) +0:67 SampleGrad: direct index for structure ( temp int) +0:67 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:67 Constant: +0:67 10 (const int) +0:67 Constant: +0:67 1 (const int) +0:68 move second child to first child ( temp int) +0:68 SampleLevel: direct index for structure ( temp int) +0:68 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:68 Constant: +0:68 11 (const int) +0:68 Constant: +0:68 1 (const int) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of float) +0:70 'txval10' ( temp 4-component vector of float) +0:70 texture ( temp 4-component vector of float) +0:70 Construct combined texture-sampler ( temp sampler1D) +0:70 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:70 'g_sSamp' (layout( binding=0) uniform sampler) +0:70 Constant: +0:70 0.100000 +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of int) +0:71 'txval11' ( temp 4-component vector of int) +0:71 texture ( temp 4-component vector of int) +0:71 Construct combined texture-sampler ( temp isampler1D) +0:71 'g_tTex1di4' ( uniform itexture1D) +0:71 'g_sSamp' (layout( binding=0) uniform sampler) +0:71 Constant: +0:71 0.200000 +0:72 Sequence +0:72 move second child to first child ( temp 4-component vector of uint) +0:72 'txval12' ( temp 4-component vector of uint) +0:72 texture ( temp 4-component vector of uint) +0:72 Construct combined texture-sampler ( temp usampler1D) +0:72 'g_tTex1du4' ( uniform utexture1D) +0:72 'g_sSamp' (layout( binding=0) uniform sampler) +0:72 Constant: +0:72 0.300000 +0:74 Sequence +0:74 move second child to first child ( temp 4-component vector of float) +0:74 'txval20' ( temp 4-component vector of float) +0:74 texture ( temp 4-component vector of float) +0:74 Construct combined texture-sampler ( temp sampler2D) +0:74 'g_tTex2df4' ( uniform texture2D) +0:74 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:75 Sequence +0:75 move second child to first child ( temp 4-component vector of int) +0:75 'txval21' ( temp 4-component vector of int) +0:75 texture ( temp 4-component vector of int) +0:75 Construct combined texture-sampler ( temp isampler2D) +0:75 'g_tTex2di4' ( uniform itexture2D) +0:75 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:76 Sequence +0:76 move second child to first child ( temp 4-component vector of uint) +0:76 'txval22' ( temp 4-component vector of uint) +0:76 texture ( temp 4-component vector of uint) +0:76 Construct combined texture-sampler ( temp usampler2D) +0:76 'g_tTex2du4' ( uniform utexture2D) +0:76 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:78 Sequence +0:78 move second child to first child ( temp 4-component vector of float) +0:78 'txval30' ( temp 4-component vector of float) +0:78 texture ( temp 4-component vector of float) +0:78 Construct combined texture-sampler ( temp sampler3D) +0:78 'g_tTex3df4' ( uniform texture3D) +0:78 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:79 Sequence +0:79 move second child to first child ( temp 4-component vector of int) +0:79 'txval31' ( temp 4-component vector of int) +0:79 texture ( temp 4-component vector of int) +0:79 Construct combined texture-sampler ( temp isampler3D) +0:79 'g_tTex3di4' ( uniform itexture3D) +0:79 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:80 Sequence +0:80 move second child to first child ( temp 4-component vector of uint) +0:80 'txval32' ( temp 4-component vector of uint) +0:80 texture ( temp 4-component vector of uint) +0:80 Construct combined texture-sampler ( temp usampler3D) +0:80 'g_tTex3du4' ( uniform utexture3D) +0:80 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:82 Sequence +0:82 move second child to first child ( temp 4-component vector of float) +0:82 'txval40' ( temp 4-component vector of float) +0:82 texture ( temp 4-component vector of float) +0:82 Construct combined texture-sampler ( temp samplerCube) +0:82 'g_tTexcdf4' ( uniform textureCube) +0:82 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:83 Sequence +0:83 move second child to first child ( temp 4-component vector of int) +0:83 'txval41' ( temp 4-component vector of int) +0:83 texture ( temp 4-component vector of int) +0:83 Construct combined texture-sampler ( temp isamplerCube) +0:83 'g_tTexcdi4' ( uniform itextureCube) +0:83 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:84 Sequence +0:84 move second child to first child ( temp 4-component vector of uint) +0:84 'txval42' ( temp 4-component vector of uint) +0:84 texture ( temp 4-component vector of uint) +0:84 Construct combined texture-sampler ( temp usamplerCube) +0:84 'g_tTexcdu4' ( uniform utextureCube) +0:84 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:86 move second child to first child ( temp 4-component vector of float) +0:86 Color: direct index for structure ( temp 4-component vector of float) +0:86 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 +0:87 move second child to first child ( temp float) +0:87 Depth: direct index for structure ( temp float) +0:87 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 1.000000 +0:89 Branch: Return with expression +0:89 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:53 Depth: direct index for structure ( temp float) +0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_sSamp2D_b' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Function Parameters: +0:? Sequence +0:57 move second child to first child ( temp int) +0:57 CalculateLevelOfDetail: direct index for structure ( temp int) +0:57 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1 (const int) +0:58 move second child to first child ( temp int) +0:58 CalculateLevelOfDetailUnclamped: direct index for structure ( temp int) +0:58 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:58 Constant: +0:58 2 (const int) +0:58 Constant: +0:58 1 (const int) +0:59 move second child to first child ( temp int) +0:59 Gather: direct index for structure ( temp int) +0:59 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:59 Constant: +0:59 3 (const int) +0:59 Constant: +0:59 1 (const int) +0:60 move second child to first child ( temp int) +0:60 GetDimensions: direct index for structure ( temp int) +0:60 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:60 Constant: +0:60 4 (const int) +0:60 Constant: +0:60 1 (const int) +0:61 move second child to first child ( temp int) +0:61 GetSamplePosition: direct index for structure ( temp int) +0:61 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:61 Constant: +0:61 5 (const int) +0:61 Constant: +0:61 1 (const int) +0:62 move second child to first child ( temp int) +0:62 Load: direct index for structure ( temp int) +0:62 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:62 Constant: +0:62 6 (const int) +0:62 Constant: +0:62 1 (const int) +0:63 move second child to first child ( temp int) +0:63 Sample: direct index for structure ( temp int) +0:63 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:64 move second child to first child ( temp int) +0:64 SampleBias: direct index for structure ( temp int) +0:64 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:64 Constant: +0:64 7 (const int) +0:64 Constant: +0:64 1 (const int) +0:65 move second child to first child ( temp int) +0:65 SampleCmp: direct index for structure ( temp int) +0:65 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:65 Constant: +0:65 8 (const int) +0:65 Constant: +0:65 1 (const int) +0:66 move second child to first child ( temp int) +0:66 SampleCmpLevelZero: direct index for structure ( temp int) +0:66 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:66 Constant: +0:66 9 (const int) +0:66 Constant: +0:66 1 (const int) +0:67 move second child to first child ( temp int) +0:67 SampleGrad: direct index for structure ( temp int) +0:67 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:67 Constant: +0:67 10 (const int) +0:67 Constant: +0:67 1 (const int) +0:68 move second child to first child ( temp int) +0:68 SampleLevel: direct index for structure ( temp int) +0:68 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:68 Constant: +0:68 11 (const int) +0:68 Constant: +0:68 1 (const int) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of float) +0:70 'txval10' ( temp 4-component vector of float) +0:70 texture ( temp 4-component vector of float) +0:70 Construct combined texture-sampler ( temp sampler1D) +0:70 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:70 'g_sSamp' (layout( binding=0) uniform sampler) +0:70 Constant: +0:70 0.100000 +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of int) +0:71 'txval11' ( temp 4-component vector of int) +0:71 texture ( temp 4-component vector of int) +0:71 Construct combined texture-sampler ( temp isampler1D) +0:71 'g_tTex1di4' ( uniform itexture1D) +0:71 'g_sSamp' (layout( binding=0) uniform sampler) +0:71 Constant: +0:71 0.200000 +0:72 Sequence +0:72 move second child to first child ( temp 4-component vector of uint) +0:72 'txval12' ( temp 4-component vector of uint) +0:72 texture ( temp 4-component vector of uint) +0:72 Construct combined texture-sampler ( temp usampler1D) +0:72 'g_tTex1du4' ( uniform utexture1D) +0:72 'g_sSamp' (layout( binding=0) uniform sampler) +0:72 Constant: +0:72 0.300000 +0:74 Sequence +0:74 move second child to first child ( temp 4-component vector of float) +0:74 'txval20' ( temp 4-component vector of float) +0:74 texture ( temp 4-component vector of float) +0:74 Construct combined texture-sampler ( temp sampler2D) +0:74 'g_tTex2df4' ( uniform texture2D) +0:74 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:75 Sequence +0:75 move second child to first child ( temp 4-component vector of int) +0:75 'txval21' ( temp 4-component vector of int) +0:75 texture ( temp 4-component vector of int) +0:75 Construct combined texture-sampler ( temp isampler2D) +0:75 'g_tTex2di4' ( uniform itexture2D) +0:75 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:76 Sequence +0:76 move second child to first child ( temp 4-component vector of uint) +0:76 'txval22' ( temp 4-component vector of uint) +0:76 texture ( temp 4-component vector of uint) +0:76 Construct combined texture-sampler ( temp usampler2D) +0:76 'g_tTex2du4' ( uniform utexture2D) +0:76 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:78 Sequence +0:78 move second child to first child ( temp 4-component vector of float) +0:78 'txval30' ( temp 4-component vector of float) +0:78 texture ( temp 4-component vector of float) +0:78 Construct combined texture-sampler ( temp sampler3D) +0:78 'g_tTex3df4' ( uniform texture3D) +0:78 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:79 Sequence +0:79 move second child to first child ( temp 4-component vector of int) +0:79 'txval31' ( temp 4-component vector of int) +0:79 texture ( temp 4-component vector of int) +0:79 Construct combined texture-sampler ( temp isampler3D) +0:79 'g_tTex3di4' ( uniform itexture3D) +0:79 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:80 Sequence +0:80 move second child to first child ( temp 4-component vector of uint) +0:80 'txval32' ( temp 4-component vector of uint) +0:80 texture ( temp 4-component vector of uint) +0:80 Construct combined texture-sampler ( temp usampler3D) +0:80 'g_tTex3du4' ( uniform utexture3D) +0:80 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:82 Sequence +0:82 move second child to first child ( temp 4-component vector of float) +0:82 'txval40' ( temp 4-component vector of float) +0:82 texture ( temp 4-component vector of float) +0:82 Construct combined texture-sampler ( temp samplerCube) +0:82 'g_tTexcdf4' ( uniform textureCube) +0:82 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:83 Sequence +0:83 move second child to first child ( temp 4-component vector of int) +0:83 'txval41' ( temp 4-component vector of int) +0:83 texture ( temp 4-component vector of int) +0:83 Construct combined texture-sampler ( temp isamplerCube) +0:83 'g_tTexcdi4' ( uniform itextureCube) +0:83 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:84 Sequence +0:84 move second child to first child ( temp 4-component vector of uint) +0:84 'txval42' ( temp 4-component vector of uint) +0:84 texture ( temp 4-component vector of uint) +0:84 Construct combined texture-sampler ( temp usamplerCube) +0:84 'g_tTexcdu4' ( uniform utextureCube) +0:84 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:86 move second child to first child ( temp 4-component vector of float) +0:86 Color: direct index for structure ( temp 4-component vector of float) +0:86 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 +0:87 move second child to first child ( temp float) +0:87 Depth: direct index for structure ( temp float) +0:87 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 1.000000 +0:89 Branch: Return with expression +0:89 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Function Definition: main( ( temp void) +0:53 Function Parameters: +0:? Sequence +0:53 Sequence +0:53 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:53 Color: direct index for structure ( temp 4-component vector of float) +0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:53 Depth: direct index for structure ( temp float) +0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_sSamp2D_b' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 198 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 188 192 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "MemberTest" + MemberName 13(MemberTest) 0 "Sample" + MemberName 13(MemberTest) 1 "CalculateLevelOfDetail" + MemberName 13(MemberTest) 2 "CalculateLevelOfDetailUnclamped" + MemberName 13(MemberTest) 3 "Gather" + MemberName 13(MemberTest) 4 "GetDimensions" + MemberName 13(MemberTest) 5 "GetSamplePosition" + MemberName 13(MemberTest) 6 "Load" + MemberName 13(MemberTest) 7 "SampleBias" + MemberName 13(MemberTest) 8 "SampleCmp" + MemberName 13(MemberTest) 9 "SampleCmpLevelZero" + MemberName 13(MemberTest) 10 "SampleGrad" + MemberName 13(MemberTest) 11 "SampleLevel" + Name 15 "mtest" + Name 42 "txval10" + Name 45 "g_tTex1df4" + Name 49 "g_sSamp" + Name 57 "txval11" + Name 60 "g_tTex1di4" + Name 70 "txval12" + Name 73 "g_tTex1du4" + Name 80 "txval20" + Name 83 "g_tTex2df4" + Name 91 "txval21" + Name 94 "g_tTex2di4" + Name 102 "txval22" + Name 105 "g_tTex2du4" + Name 114 "txval30" + Name 117 "g_tTex3df4" + Name 125 "txval31" + Name 128 "g_tTex3di4" + Name 135 "txval32" + Name 138 "g_tTex3du4" + Name 148 "txval40" + Name 151 "g_tTexcdf4" + Name 157 "txval41" + Name 160 "g_tTexcdi4" + Name 166 "txval42" + Name 169 "g_tTexcdu4" + Name 176 "psout" + Name 185 "flattenTemp" + Name 188 "@entryPointOutput.Color" + Name 192 "@entryPointOutput.Depth" + Name 195 "g_sSamp2d" + Name 196 "g_sSamp2D_b" + Name 197 "g_tTex1df4a" + Decorate 45(g_tTex1df4) DescriptorSet 0 + Decorate 45(g_tTex1df4) Binding 0 + Decorate 49(g_sSamp) DescriptorSet 0 + Decorate 49(g_sSamp) Binding 0 + Decorate 60(g_tTex1di4) DescriptorSet 0 + Decorate 73(g_tTex1du4) DescriptorSet 0 + Decorate 83(g_tTex2df4) DescriptorSet 0 + Decorate 94(g_tTex2di4) DescriptorSet 0 + Decorate 105(g_tTex2du4) DescriptorSet 0 + Decorate 117(g_tTex3df4) DescriptorSet 0 + Decorate 128(g_tTex3di4) DescriptorSet 0 + Decorate 138(g_tTex3du4) DescriptorSet 0 + Decorate 151(g_tTexcdf4) DescriptorSet 0 + Decorate 160(g_tTexcdi4) DescriptorSet 0 + Decorate 169(g_tTexcdu4) DescriptorSet 0 + Decorate 188(@entryPointOutput.Color) Location 0 + Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 195(g_sSamp2d) DescriptorSet 0 + Decorate 196(g_sSamp2D_b) DescriptorSet 0 + Decorate 197(g_tTex1df4a) DescriptorSet 0 + Decorate 197(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13(MemberTest): TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) + 14: TypePointer Function 13(MemberTest) + 16: 12(int) Constant 1 + 17: TypePointer Function 12(int) + 19: 12(int) Constant 2 + 21: 12(int) Constant 3 + 23: 12(int) Constant 4 + 25: 12(int) Constant 5 + 27: 12(int) Constant 6 + 29: 12(int) Constant 0 + 31: 12(int) Constant 7 + 33: 12(int) Constant 8 + 35: 12(int) Constant 9 + 37: 12(int) Constant 10 + 39: 12(int) Constant 11 + 41: TypePointer Function 7(fvec4) + 43: TypeImage 6(float) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1df4): 44(ptr) Variable UniformConstant + 47: TypeSampler + 48: TypePointer UniformConstant 47 + 49(g_sSamp): 48(ptr) Variable UniformConstant + 51: TypeSampledImage 43 + 53: 6(float) Constant 1036831949 + 55: TypeVector 12(int) 4 + 56: TypePointer Function 55(ivec4) + 58: TypeImage 12(int) 1D sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex1di4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: 6(float) Constant 1045220557 + 67: TypeInt 32 0 + 68: TypeVector 67(int) 4 + 69: TypePointer Function 68(ivec4) + 71: TypeImage 67(int) 1D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex1du4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1050253722 + 81: TypeImage 6(float) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2df4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: TypeVector 6(float) 2 + 89: 88(fvec2) ConstantComposite 53 65 + 92: TypeImage 12(int) 2D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex2di4): 93(ptr) Variable UniformConstant + 97: TypeSampledImage 92 + 99: 6(float) Constant 1053609165 + 100: 88(fvec2) ConstantComposite 78 99 + 103: TypeImage 67(int) 2D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex2du4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 6(float) Constant 1056964608 + 111: 6(float) Constant 1058642330 + 112: 88(fvec2) ConstantComposite 110 111 + 115: TypeImage 6(float) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3df4): 116(ptr) Variable UniformConstant + 120: TypeSampledImage 115 + 122: TypeVector 6(float) 3 + 123: 122(fvec3) ConstantComposite 53 65 78 + 126: TypeImage 12(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3di4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 133: 122(fvec3) ConstantComposite 99 110 111 + 136: TypeImage 67(int) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3du4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 143: 6(float) Constant 1060320051 + 144: 6(float) Constant 1061997773 + 145: 6(float) Constant 1063675494 + 146: 122(fvec3) ConstantComposite 143 144 145 + 149: TypeImage 6(float) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdf4): 150(ptr) Variable UniformConstant + 154: TypeSampledImage 149 + 158: TypeImage 12(int) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdi4): 159(ptr) Variable UniformConstant + 163: TypeSampledImage 158 + 167: TypeImage 67(int) Cube sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTexcdu4): 168(ptr) Variable UniformConstant + 172: TypeSampledImage 167 + 175: TypePointer Function 8(PS_OUTPUT) + 177: 6(float) Constant 1065353216 + 178: 7(fvec4) ConstantComposite 177 177 177 177 + 180: TypePointer Function 6(float) + 187: TypePointer Output 7(fvec4) +188(@entryPointOutput.Color): 187(ptr) Variable Output + 191: TypePointer Output 6(float) +192(@entryPointOutput.Depth): 191(ptr) Variable Output + 195(g_sSamp2d): 48(ptr) Variable UniformConstant +196(g_sSamp2D_b): 48(ptr) Variable UniformConstant +197(g_tTex1df4a): 44(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +185(flattenTemp): 175(ptr) Variable Function + 186:8(PS_OUTPUT) FunctionCall 10(@main() + Store 185(flattenTemp) 186 + 189: 41(ptr) AccessChain 185(flattenTemp) 29 + 190: 7(fvec4) Load 189 + Store 188(@entryPointOutput.Color) 190 + 193: 180(ptr) AccessChain 185(flattenTemp) 16 + 194: 6(float) Load 193 + Store 192(@entryPointOutput.Depth) 194 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 15(mtest): 14(ptr) Variable Function + 42(txval10): 41(ptr) Variable Function + 57(txval11): 56(ptr) Variable Function + 70(txval12): 69(ptr) Variable Function + 80(txval20): 41(ptr) Variable Function + 91(txval21): 56(ptr) Variable Function + 102(txval22): 69(ptr) Variable Function + 114(txval30): 41(ptr) Variable Function + 125(txval31): 56(ptr) Variable Function + 135(txval32): 69(ptr) Variable Function + 148(txval40): 41(ptr) Variable Function + 157(txval41): 56(ptr) Variable Function + 166(txval42): 69(ptr) Variable Function + 176(psout): 175(ptr) Variable Function + 18: 17(ptr) AccessChain 15(mtest) 16 + Store 18 16 + 20: 17(ptr) AccessChain 15(mtest) 19 + Store 20 16 + 22: 17(ptr) AccessChain 15(mtest) 21 + Store 22 16 + 24: 17(ptr) AccessChain 15(mtest) 23 + Store 24 16 + 26: 17(ptr) AccessChain 15(mtest) 25 + Store 26 16 + 28: 17(ptr) AccessChain 15(mtest) 27 + Store 28 16 + 30: 17(ptr) AccessChain 15(mtest) 29 + Store 30 16 + 32: 17(ptr) AccessChain 15(mtest) 31 + Store 32 16 + 34: 17(ptr) AccessChain 15(mtest) 33 + Store 34 16 + 36: 17(ptr) AccessChain 15(mtest) 35 + Store 36 16 + 38: 17(ptr) AccessChain 15(mtest) 37 + Store 38 16 + 40: 17(ptr) AccessChain 15(mtest) 39 + Store 40 16 + 46: 43 Load 45(g_tTex1df4) + 50: 47 Load 49(g_sSamp) + 52: 51 SampledImage 46 50 + 54: 7(fvec4) ImageSampleImplicitLod 52 53 + Store 42(txval10) 54 + 61: 58 Load 60(g_tTex1di4) + 62: 47 Load 49(g_sSamp) + 64: 63 SampledImage 61 62 + 66: 55(ivec4) ImageSampleImplicitLod 64 65 + Store 57(txval11) 66 + 74: 71 Load 73(g_tTex1du4) + 75: 47 Load 49(g_sSamp) + 77: 76 SampledImage 74 75 + 79: 68(ivec4) ImageSampleImplicitLod 77 78 + Store 70(txval12) 79 + 84: 81 Load 83(g_tTex2df4) + 85: 47 Load 49(g_sSamp) + 87: 86 SampledImage 84 85 + 90: 7(fvec4) ImageSampleImplicitLod 87 89 + Store 80(txval20) 90 + 95: 92 Load 94(g_tTex2di4) + 96: 47 Load 49(g_sSamp) + 98: 97 SampledImage 95 96 + 101: 55(ivec4) ImageSampleImplicitLod 98 100 + Store 91(txval21) 101 + 106: 103 Load 105(g_tTex2du4) + 107: 47 Load 49(g_sSamp) + 109: 108 SampledImage 106 107 + 113: 68(ivec4) ImageSampleImplicitLod 109 112 + Store 102(txval22) 113 + 118: 115 Load 117(g_tTex3df4) + 119: 47 Load 49(g_sSamp) + 121: 120 SampledImage 118 119 + 124: 7(fvec4) ImageSampleImplicitLod 121 123 + Store 114(txval30) 124 + 129: 126 Load 128(g_tTex3di4) + 130: 47 Load 49(g_sSamp) + 132: 131 SampledImage 129 130 + 134: 55(ivec4) ImageSampleImplicitLod 132 133 + Store 125(txval31) 134 + 139: 136 Load 138(g_tTex3du4) + 140: 47 Load 49(g_sSamp) + 142: 141 SampledImage 139 140 + 147: 68(ivec4) ImageSampleImplicitLod 142 146 + Store 135(txval32) 147 + 152: 149 Load 151(g_tTexcdf4) + 153: 47 Load 49(g_sSamp) + 155: 154 SampledImage 152 153 + 156: 7(fvec4) ImageSampleImplicitLod 155 123 + Store 148(txval40) 156 + 161: 158 Load 160(g_tTexcdi4) + 162: 47 Load 49(g_sSamp) + 164: 163 SampledImage 161 162 + 165: 55(ivec4) ImageSampleImplicitLod 164 133 + Store 157(txval41) 165 + 170: 167 Load 169(g_tTexcdu4) + 171: 47 Load 49(g_sSamp) + 173: 172 SampledImage 170 171 + 174: 68(ivec4) ImageSampleImplicitLod 173 146 + Store 166(txval42) 174 + 179: 41(ptr) AccessChain 176(psout) 29 + Store 179 178 + 181: 180(ptr) AccessChain 176(psout) 16 + Store 181 177 + 182:8(PS_OUTPUT) Load 176(psout) + ReturnValue 182 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out new file mode 100644 index 0000000000..bd199a3957 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -0,0 +1,603 @@ +hlsl.sample.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 161 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 144 148 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 53 "txval20" + Name 56 "g_tTex2df4" + Name 67 "txval21" + Name 70 "g_tTex2di4" + Name 79 "txval22" + Name 82 "g_tTex2du4" + Name 93 "txval30" + Name 96 "g_tTex3df4" + Name 106 "txval31" + Name 109 "g_tTex3di4" + Name 117 "txval32" + Name 120 "g_tTex3du4" + Name 132 "psout" + Name 141 "flattenTemp" + Name 144 "@entryPointOutput.Color" + Name 148 "@entryPointOutput.Depth" + Name 151 "g_tTex1df4a" + Name 154 "g_tTexcdf4" + Name 157 "g_tTexcdi4" + Name 160 "g_tTexcdu4" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 70(g_tTex2di4) DescriptorSet 0 + Decorate 82(g_tTex2du4) DescriptorSet 0 + Decorate 96(g_tTex3df4) DescriptorSet 0 + Decorate 109(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 144(@entryPointOutput.Color) Location 0 + Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 151(g_tTex1df4a) DescriptorSet 0 + Decorate 151(g_tTex1df4a) Binding 1 + Decorate 154(g_tTexcdf4) DescriptorSet 0 + Decorate 157(g_tTexcdi4) DescriptorSet 0 + Decorate 160(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: TypeInt 32 1 + 26: 25(int) Constant 1 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1045220557 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1050253722 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: TypeVector 6(float) 2 + 62: 61(fvec2) ConstantComposite 24 38 + 63: TypeVector 25(int) 2 + 64: 25(int) Constant 0 + 65: 63(ivec2) ConstantComposite 26 64 + 68: TypeImage 25(int) 2D sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTex2di4): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 6(float) Constant 1053609165 + 76: 61(fvec2) ConstantComposite 51 75 + 77: 63(ivec2) ConstantComposite 26 26 + 80: TypeImage 40(int) 2D sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2du4): 81(ptr) Variable UniformConstant + 85: TypeSampledImage 80 + 87: 6(float) Constant 1056964608 + 88: 6(float) Constant 1058642330 + 89: 61(fvec2) ConstantComposite 87 88 + 90: 25(int) Constant 4294967295 + 91: 63(ivec2) ConstantComposite 26 90 + 94: TypeImage 6(float) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3df4): 95(ptr) Variable UniformConstant + 99: TypeSampledImage 94 + 101: TypeVector 6(float) 3 + 102: 101(fvec3) ConstantComposite 24 38 51 + 103: TypeVector 25(int) 3 + 104: 103(ivec3) ConstantComposite 26 64 26 + 107: TypeImage 25(int) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3di4): 108(ptr) Variable UniformConstant + 112: TypeSampledImage 107 + 114: 101(fvec3) ConstantComposite 75 87 88 + 115: 103(ivec3) ConstantComposite 26 26 26 + 118: TypeImage 40(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 125: 6(float) Constant 1060320051 + 126: 6(float) Constant 1061997773 + 127: 6(float) Constant 1063675494 + 128: 101(fvec3) ConstantComposite 125 126 127 + 129: 103(ivec3) ConstantComposite 26 64 90 + 131: TypePointer Function 8(PS_OUTPUT) + 133: 6(float) Constant 1065353216 + 134: 7(fvec4) ConstantComposite 133 133 133 133 + 136: TypePointer Function 6(float) + 143: TypePointer Output 7(fvec4) +144(@entryPointOutput.Color): 143(ptr) Variable Output + 147: TypePointer Output 6(float) +148(@entryPointOutput.Depth): 147(ptr) Variable Output +151(g_tTex1df4a): 15(ptr) Variable UniformConstant + 152: TypeImage 6(float) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdf4): 153(ptr) Variable UniformConstant + 155: TypeImage 25(int) Cube sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTexcdi4): 156(ptr) Variable UniformConstant + 158: TypeImage 40(int) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdu4): 159(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +141(flattenTemp): 131(ptr) Variable Function + 142:8(PS_OUTPUT) FunctionCall 10(@main() + Store 141(flattenTemp) 142 + 145: 12(ptr) AccessChain 141(flattenTemp) 64 + 146: 7(fvec4) Load 145 + Store 144(@entryPointOutput.Color) 146 + 149: 136(ptr) AccessChain 141(flattenTemp) 26 + 150: 6(float) Load 149 + Store 148(@entryPointOutput.Depth) 150 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 53(txval20): 12(ptr) Variable Function + 67(txval21): 29(ptr) Variable Function + 79(txval22): 42(ptr) Variable Function + 93(txval30): 12(ptr) Variable Function + 106(txval31): 29(ptr) Variable Function + 117(txval32): 42(ptr) Variable Function + 132(psout): 131(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 7(fvec4) ImageSampleImplicitLod 23 24 ConstOffset 26 + Store 13(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 18 Load 20(g_sSamp) + 37: 36 SampledImage 34 35 + 39: 28(ivec4) ImageSampleImplicitLod 37 38 ConstOffset 26 + Store 30(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 18 Load 20(g_sSamp) + 50: 49 SampledImage 47 48 + 52: 41(ivec4) ImageSampleImplicitLod 50 51 ConstOffset 26 + Store 43(txval12) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 18 Load 20(g_sSamp) + 60: 59 SampledImage 57 58 + 66: 7(fvec4) ImageSampleImplicitLod 60 62 ConstOffset 65 + Store 53(txval20) 66 + 71: 68 Load 70(g_tTex2di4) + 72: 18 Load 20(g_sSamp) + 74: 73 SampledImage 71 72 + 78: 28(ivec4) ImageSampleImplicitLod 74 76 ConstOffset 77 + Store 67(txval21) 78 + 83: 80 Load 82(g_tTex2du4) + 84: 18 Load 20(g_sSamp) + 86: 85 SampledImage 83 84 + 92: 41(ivec4) ImageSampleImplicitLod 86 89 ConstOffset 91 + Store 79(txval22) 92 + 97: 94 Load 96(g_tTex3df4) + 98: 18 Load 20(g_sSamp) + 100: 99 SampledImage 97 98 + 105: 7(fvec4) ImageSampleImplicitLod 100 102 ConstOffset 104 + Store 93(txval30) 105 + 110: 107 Load 109(g_tTex3di4) + 111: 18 Load 20(g_sSamp) + 113: 112 SampledImage 110 111 + 116: 28(ivec4) ImageSampleImplicitLod 113 114 ConstOffset 115 + Store 106(txval31) 116 + 121: 118 Load 120(g_tTex3du4) + 122: 18 Load 20(g_sSamp) + 124: 123 SampledImage 121 122 + 130: 41(ivec4) ImageSampleImplicitLod 124 128 ConstOffset 129 + Store 117(txval32) 130 + 135: 12(ptr) AccessChain 132(psout) 64 + Store 135 134 + 137: 136(ptr) AccessChain 132(psout) 26 + Store 137 133 + 138:8(PS_OUTPUT) Load 132(psout) + ReturnValue 138 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..065cef0585 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -0,0 +1,452 @@ +hlsl.sample.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'txval10' ( temp 4-component vector of float) +0:23 textureOffset ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1DArray) +0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:23 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'txval11' ( temp 4-component vector of int) +0:24 textureOffset ( temp 4-component vector of int) +0:24 Construct combined texture-sampler ( temp isampler1DArray) +0:24 'g_tTex1di4' ( uniform itexture1DArray) +0:24 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of uint) +0:25 'txval12' ( temp 4-component vector of uint) +0:25 textureOffset ( temp 4-component vector of uint) +0:25 Construct combined texture-sampler ( temp usampler1DArray) +0:25 'g_tTex1du4' ( uniform utexture1DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval20' ( temp 4-component vector of float) +0:27 textureOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler2DArray) +0:27 'g_tTex2df4' ( uniform texture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval21' ( temp 4-component vector of int) +0:28 textureOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler2DArray) +0:28 'g_tTex2di4' ( uniform itexture2DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval22' ( temp 4-component vector of uint) +0:29 textureOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler2DArray) +0:29 'g_tTex2du4' ( uniform utexture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:33 move second child to first child ( temp 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:34 move second child to first child ( temp float) +0:34 Depth: direct index for structure ( temp float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'txval10' ( temp 4-component vector of float) +0:23 textureOffset ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1DArray) +0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:23 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'txval11' ( temp 4-component vector of int) +0:24 textureOffset ( temp 4-component vector of int) +0:24 Construct combined texture-sampler ( temp isampler1DArray) +0:24 'g_tTex1di4' ( uniform itexture1DArray) +0:24 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of uint) +0:25 'txval12' ( temp 4-component vector of uint) +0:25 textureOffset ( temp 4-component vector of uint) +0:25 Construct combined texture-sampler ( temp usampler1DArray) +0:25 'g_tTex1du4' ( uniform utexture1DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval20' ( temp 4-component vector of float) +0:27 textureOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler2DArray) +0:27 'g_tTex2df4' ( uniform texture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval21' ( temp 4-component vector of int) +0:28 textureOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler2DArray) +0:28 'g_tTex2di4' ( uniform itexture2DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval22' ( temp 4-component vector of uint) +0:29 textureOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler2DArray) +0:29 'g_tTex2du4' ( uniform utexture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:33 move second child to first child ( temp 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:34 move second child to first child ( temp float) +0:34 Depth: direct index for structure ( temp float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 118 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 110 114 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 33 "txval11" + Name 36 "g_tTex1di4" + Name 48 "txval12" + Name 51 "g_tTex1du4" + Name 60 "txval20" + Name 63 "g_tTex2df4" + Name 73 "txval21" + Name 76 "g_tTex2di4" + Name 84 "txval22" + Name 87 "g_tTex2du4" + Name 98 "psout" + Name 107 "flattenTemp" + Name 110 "@entryPointOutput.Color" + Name 114 "@entryPointOutput.Depth" + Name 117 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 36(g_tTex1di4) DescriptorSet 0 + Decorate 51(g_tTex1du4) DescriptorSet 0 + Decorate 63(g_tTex2df4) DescriptorSet 0 + Decorate 76(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 110(@entryPointOutput.Color) Location 0 + Decorate 114(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 117(g_tTex1df4a) DescriptorSet 0 + Decorate 117(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 31: TypeVector 28(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 28(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1050253722 + 42: 24(fvec2) ConstantComposite 26 41 + 43: 28(int) Constant 1 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 6(float) Constant 1053609165 + 57: 24(fvec2) ConstantComposite 41 56 + 58: 28(int) Constant 2 + 61: TypeImage 6(float) 2D array sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2df4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: TypeVector 6(float) 3 + 69: 68(fvec3) ConstantComposite 25 26 41 + 70: TypeVector 28(int) 2 + 71: 70(ivec2) ConstantComposite 29 29 + 74: TypeImage 28(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 68(fvec3) ConstantComposite 41 56 81 + 85: TypeImage 45(int) 2D array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 92: 6(float) Constant 1058642330 + 93: 6(float) Constant 1060320051 + 94: 68(fvec3) ConstantComposite 81 92 93 + 95: 70(ivec2) ConstantComposite 29 43 + 97: TypePointer Function 8(PS_OUTPUT) + 99: 6(float) Constant 1065353216 + 100: 7(fvec4) ConstantComposite 99 99 99 99 + 102: TypePointer Function 6(float) + 109: TypePointer Output 7(fvec4) +110(@entryPointOutput.Color): 109(ptr) Variable Output + 113: TypePointer Output 6(float) +114(@entryPointOutput.Depth): 113(ptr) Variable Output +117(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +107(flattenTemp): 97(ptr) Variable Function + 108:8(PS_OUTPUT) FunctionCall 10(@main() + Store 107(flattenTemp) 108 + 111: 12(ptr) AccessChain 107(flattenTemp) 29 + 112: 7(fvec4) Load 111 + Store 110(@entryPointOutput.Color) 112 + 115: 102(ptr) AccessChain 107(flattenTemp) 43 + 116: 6(float) Load 115 + Store 114(@entryPointOutput.Depth) 116 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 33(txval11): 32(ptr) Variable Function + 48(txval12): 47(ptr) Variable Function + 60(txval20): 12(ptr) Variable Function + 73(txval21): 32(ptr) Variable Function + 84(txval22): 47(ptr) Variable Function + 98(psout): 97(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 7(fvec4) ImageSampleImplicitLod 23 27 ConstOffset 29 + Store 13(txval10) 30 + 37: 34 Load 36(g_tTex1di4) + 38: 18 Load 20(g_sSamp) + 40: 39 SampledImage 37 38 + 44: 31(ivec4) ImageSampleImplicitLod 40 42 ConstOffset 43 + Store 33(txval11) 44 + 52: 49 Load 51(g_tTex1du4) + 53: 18 Load 20(g_sSamp) + 55: 54 SampledImage 52 53 + 59: 46(ivec4) ImageSampleImplicitLod 55 57 ConstOffset 58 + Store 48(txval12) 59 + 64: 61 Load 63(g_tTex2df4) + 65: 18 Load 20(g_sSamp) + 67: 66 SampledImage 64 65 + 72: 7(fvec4) ImageSampleImplicitLod 67 69 ConstOffset 71 + Store 60(txval20) 72 + 77: 74 Load 76(g_tTex2di4) + 78: 18 Load 20(g_sSamp) + 80: 79 SampledImage 77 78 + 83: 31(ivec4) ImageSampleImplicitLod 80 82 ConstOffset 71 + Store 73(txval21) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 18 Load 20(g_sSamp) + 91: 90 SampledImage 88 89 + 96: 46(ivec4) ImageSampleImplicitLod 91 94 ConstOffset 95 + Store 84(txval22) 96 + 101: 12(ptr) AccessChain 98(psout) 29 + Store 101 100 + 103: 102(ptr) AccessChain 98(psout) 43 + Store 103 99 + 104:8(PS_OUTPUT) Load 98(psout) + ReturnValue 104 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out new file mode 100644 index 0000000000..f24415a982 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -0,0 +1,266 @@ +hlsl.sample.sub-vec4.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'txval10' ( temp float) +0:17 Construct float ( temp float) +0:? texture ( temp 4-component vector of float) +0:17 Construct combined texture-sampler ( temp sampler1D) +0:17 'g_tTex1df1' ( uniform texture1D) +0:17 'g_sSamp' (layout( binding=0) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child ( temp 2-component vector of float) +0:18 'txval11' ( temp 2-component vector of float) +0:18 Construct vec2 ( temp 2-component vector of float) +0:? texture ( temp 4-component vector of float) +0:18 Construct combined texture-sampler ( temp sampler1D) +0:18 'g_tTex1df2' ( uniform texture1D) +0:18 'g_sSamp' (layout( binding=0) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child ( temp 3-component vector of float) +0:19 'txval12' ( temp 3-component vector of float) +0:19 Construct vec3 ( temp 3-component vector of float) +0:? texture ( temp 4-component vector of float) +0:19 Construct combined texture-sampler ( temp sampler1D) +0:19 'g_tTex1df3' ( uniform texture1D) +0:19 'g_sSamp' (layout( binding=0) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'txval13' ( temp 4-component vector of float) +0:20 texture ( temp 4-component vector of float) +0:20 Construct combined texture-sampler ( temp sampler1D) +0:20 'g_tTex1df4' ( uniform texture1D) +0:20 'g_sSamp' (layout( binding=0) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Branch: Return with expression +0:23 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:14 Color: direct index for structure ( temp 4-component vector of float) +0:14 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df1' ( uniform texture1D) +0:? 'g_tTex1df2' ( uniform texture1D) +0:? 'g_tTex1df3' ( uniform texture1D) +0:? 'g_tTex1df4' ( uniform texture1D) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'txval10' ( temp float) +0:17 Construct float ( temp float) +0:? texture ( temp 4-component vector of float) +0:17 Construct combined texture-sampler ( temp sampler1D) +0:17 'g_tTex1df1' ( uniform texture1D) +0:17 'g_sSamp' (layout( binding=0) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child ( temp 2-component vector of float) +0:18 'txval11' ( temp 2-component vector of float) +0:18 Construct vec2 ( temp 2-component vector of float) +0:? texture ( temp 4-component vector of float) +0:18 Construct combined texture-sampler ( temp sampler1D) +0:18 'g_tTex1df2' ( uniform texture1D) +0:18 'g_sSamp' (layout( binding=0) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child ( temp 3-component vector of float) +0:19 'txval12' ( temp 3-component vector of float) +0:19 Construct vec3 ( temp 3-component vector of float) +0:? texture ( temp 4-component vector of float) +0:19 Construct combined texture-sampler ( temp sampler1D) +0:19 'g_tTex1df3' ( uniform texture1D) +0:19 'g_sSamp' (layout( binding=0) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'txval13' ( temp 4-component vector of float) +0:20 texture ( temp 4-component vector of float) +0:20 Construct combined texture-sampler ( temp sampler1D) +0:20 'g_tTex1df4' ( uniform texture1D) +0:20 'g_sSamp' (layout( binding=0) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Color: direct index for structure ( temp 4-component vector of float) +0:22 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Branch: Return with expression +0:23 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:14 Color: direct index for structure ( temp 4-component vector of float) +0:14 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df1' ( uniform texture1D) +0:? 'g_tTex1df2' ( uniform texture1D) +0:? 'g_tTex1df3' ( uniform texture1D) +0:? 'g_tTex1df4' ( uniform texture1D) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 72 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 69 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df1" + Name 20 "g_sSamp" + Name 29 "txval11" + Name 30 "g_tTex1df2" + Name 41 "txval12" + Name 42 "g_tTex1df3" + Name 52 "txval13" + Name 53 "g_tTex1df4" + Name 59 "psout" + Name 69 "@entryPointOutput.Color" + Decorate 16(g_tTex1df1) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 30(g_tTex1df2) DescriptorSet 0 + Decorate 42(g_tTex1df3) DescriptorSet 0 + Decorate 53(g_tTex1df4) DescriptorSet 0 + Decorate 69(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df1): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 27: TypeVector 6(float) 2 + 28: TypePointer Function 27(fvec2) + 30(g_tTex1df2): 15(ptr) Variable UniformConstant + 34: 6(float) Constant 1045220557 + 39: TypeVector 6(float) 3 + 40: TypePointer Function 39(fvec3) + 42(g_tTex1df3): 15(ptr) Variable UniformConstant + 51: TypePointer Function 7(fvec4) + 53(g_tTex1df4): 15(ptr) Variable UniformConstant + 58: TypePointer Function 8(PS_OUTPUT) + 60: TypeInt 32 1 + 61: 60(int) Constant 0 + 62: 6(float) Constant 1065353216 + 63: 7(fvec4) ConstantComposite 62 62 62 62 + 68: TypePointer Output 7(fvec4) +69(@entryPointOutput.Color): 68(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 70:8(PS_OUTPUT) FunctionCall 10(@main() + 71: 7(fvec4) CompositeExtract 70 0 + Store 69(@entryPointOutput.Color) 71 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 41(txval12): 40(ptr) Variable Function + 52(txval13): 51(ptr) Variable Function + 59(psout): 58(ptr) Variable Function + 17: 14 Load 16(g_tTex1df1) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 25: 7(fvec4) ImageSampleImplicitLod 23 24 + 26: 6(float) CompositeExtract 25 0 + Store 13(txval10) 26 + 31: 14 Load 30(g_tTex1df2) + 32: 18 Load 20(g_sSamp) + 33: 22 SampledImage 31 32 + 35: 7(fvec4) ImageSampleImplicitLod 33 34 + 36: 6(float) CompositeExtract 35 0 + 37: 6(float) CompositeExtract 35 1 + 38: 27(fvec2) CompositeConstruct 36 37 + Store 29(txval11) 38 + 43: 14 Load 42(g_tTex1df3) + 44: 18 Load 20(g_sSamp) + 45: 22 SampledImage 43 44 + 46: 7(fvec4) ImageSampleImplicitLod 45 34 + 47: 6(float) CompositeExtract 46 0 + 48: 6(float) CompositeExtract 46 1 + 49: 6(float) CompositeExtract 46 2 + 50: 39(fvec3) CompositeConstruct 47 48 49 + Store 41(txval12) 50 + 54: 14 Load 53(g_tTex1df4) + 55: 18 Load 20(g_sSamp) + 56: 22 SampledImage 54 55 + 57: 7(fvec4) ImageSampleImplicitLod 56 34 + Store 52(txval13) 57 + 64: 51(ptr) AccessChain 59(psout) 61 + Store 64 63 + 65:8(PS_OUTPUT) Load 59(psout) + ReturnValue 65 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out new file mode 100644 index 0000000000..a6fc0a5a2b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -0,0 +1,577 @@ +hlsl.samplebias.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 texture ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.500000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 texture ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.500000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 texture ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.500000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 texture ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 texture ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 texture ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 texture ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.500000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 texture ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.500000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 texture ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.500000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 texture ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.500000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 texture ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 texture ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 texture ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 texture ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.500000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 146 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 138 142 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 33 "txval11" + Name 36 "g_tTex1di4" + Name 47 "txval12" + Name 50 "g_tTex1du4" + Name 58 "txval20" + Name 61 "g_tTex2df4" + Name 69 "txval21" + Name 72 "g_tTex2di4" + Name 79 "txval22" + Name 82 "g_tTex2du4" + Name 91 "txval40" + Name 94 "g_tTexcdf4" + Name 101 "txval41" + Name 104 "g_tTexcdi4" + Name 111 "txval42" + Name 114 "g_tTexcdu4" + Name 125 "psout" + Name 135 "flattenTemp" + Name 138 "@entryPointOutput.Color" + Name 142 "@entryPointOutput.Depth" + Name 145 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 36(g_tTex1di4) DescriptorSet 0 + Decorate 50(g_tTex1du4) DescriptorSet 0 + Decorate 61(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 82(g_tTex2du4) DescriptorSet 0 + Decorate 94(g_tTexcdf4) DescriptorSet 0 + Decorate 104(g_tTexcdi4) DescriptorSet 0 + Decorate 114(g_tTexcdu4) DescriptorSet 0 + Decorate 138(@entryPointOutput.Color) Location 0 + Decorate 142(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 145(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1056964608 + 30: TypeInt 32 1 + 31: TypeVector 30(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 30(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1050253722 + 42: 24(fvec2) ConstantComposite 26 41 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 55: 6(float) Constant 1053609165 + 56: 24(fvec2) ConstantComposite 41 55 + 59: TypeImage 6(float) 2D array sampled format:Unknown + 60: TypePointer UniformConstant 59 + 61(g_tTex2df4): 60(ptr) Variable UniformConstant + 64: TypeSampledImage 59 + 66: TypeVector 6(float) 3 + 67: 66(fvec3) ConstantComposite 25 26 41 + 70: TypeImage 30(int) 2D array sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeSampledImage 70 + 77: 66(fvec3) ConstantComposite 41 55 28 + 80: TypeImage 44(int) 2D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2du4): 81(ptr) Variable UniformConstant + 85: TypeSampledImage 80 + 87: 6(float) Constant 1058642330 + 88: 6(float) Constant 1060320051 + 89: 66(fvec3) ConstantComposite 28 87 88 + 92: TypeImage 6(float) Cube array sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTexcdf4): 93(ptr) Variable UniformConstant + 97: TypeSampledImage 92 + 99: 7(fvec4) ConstantComposite 25 26 41 55 + 102: TypeImage 30(int) Cube array sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTexcdi4): 103(ptr) Variable UniformConstant + 107: TypeSampledImage 102 + 109: 7(fvec4) ConstantComposite 55 28 87 88 + 112: TypeImage 44(int) Cube array sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTexcdu4): 113(ptr) Variable UniformConstant + 117: TypeSampledImage 112 + 119: 6(float) Constant 1061997773 + 120: 6(float) Constant 1063675494 + 121: 6(float) Constant 1065353216 + 122: 7(fvec4) ConstantComposite 88 119 120 121 + 124: TypePointer Function 8(PS_OUTPUT) + 126: 30(int) Constant 0 + 127: 7(fvec4) ConstantComposite 121 121 121 121 + 129: 30(int) Constant 1 + 130: TypePointer Function 6(float) + 137: TypePointer Output 7(fvec4) +138(@entryPointOutput.Color): 137(ptr) Variable Output + 141: TypePointer Output 6(float) +142(@entryPointOutput.Depth): 141(ptr) Variable Output +145(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +135(flattenTemp): 124(ptr) Variable Function + 136:8(PS_OUTPUT) FunctionCall 10(@main() + Store 135(flattenTemp) 136 + 139: 12(ptr) AccessChain 135(flattenTemp) 126 + 140: 7(fvec4) Load 139 + Store 138(@entryPointOutput.Color) 140 + 143: 130(ptr) AccessChain 135(flattenTemp) 129 + 144: 6(float) Load 143 + Store 142(@entryPointOutput.Depth) 144 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 33(txval11): 32(ptr) Variable Function + 47(txval12): 46(ptr) Variable Function + 58(txval20): 12(ptr) Variable Function + 69(txval21): 32(ptr) Variable Function + 79(txval22): 46(ptr) Variable Function + 91(txval40): 12(ptr) Variable Function + 101(txval41): 32(ptr) Variable Function + 111(txval42): 46(ptr) Variable Function + 125(psout): 124(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 29: 7(fvec4) ImageSampleImplicitLod 23 27 Bias 28 + Store 13(txval10) 29 + 37: 34 Load 36(g_tTex1di4) + 38: 18 Load 20(g_sSamp) + 40: 39 SampledImage 37 38 + 43: 31(ivec4) ImageSampleImplicitLod 40 42 Bias 28 + Store 33(txval11) 43 + 51: 48 Load 50(g_tTex1du4) + 52: 18 Load 20(g_sSamp) + 54: 53 SampledImage 51 52 + 57: 45(ivec4) ImageSampleImplicitLod 54 56 Bias 28 + Store 47(txval12) 57 + 62: 59 Load 61(g_tTex2df4) + 63: 18 Load 20(g_sSamp) + 65: 64 SampledImage 62 63 + 68: 7(fvec4) ImageSampleImplicitLod 65 67 Bias 28 + Store 58(txval20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 18 Load 20(g_sSamp) + 76: 75 SampledImage 73 74 + 78: 31(ivec4) ImageSampleImplicitLod 76 77 Bias 28 + Store 69(txval21) 78 + 83: 80 Load 82(g_tTex2du4) + 84: 18 Load 20(g_sSamp) + 86: 85 SampledImage 83 84 + 90: 45(ivec4) ImageSampleImplicitLod 86 89 Bias 28 + Store 79(txval22) 90 + 95: 92 Load 94(g_tTexcdf4) + 96: 18 Load 20(g_sSamp) + 98: 97 SampledImage 95 96 + 100: 7(fvec4) ImageSampleImplicitLod 98 99 Bias 28 + Store 91(txval40) 100 + 105: 102 Load 104(g_tTexcdi4) + 106: 18 Load 20(g_sSamp) + 108: 107 SampledImage 105 106 + 110: 31(ivec4) ImageSampleImplicitLod 108 109 Bias 28 + Store 101(txval41) 110 + 115: 112 Load 114(g_tTexcdu4) + 116: 18 Load 20(g_sSamp) + 118: 117 SampledImage 115 116 + 123: 45(ivec4) ImageSampleImplicitLod 118 122 Bias 28 + Store 111(txval42) 123 + 128: 12(ptr) AccessChain 125(psout) 126 + Store 128 127 + 131: 130(ptr) AccessChain 125(psout) 129 + Store 131 121 + 132:8(PS_OUTPUT) Load 125(psout) + ReturnValue 132 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out new file mode 100644 index 0000000000..21794f9ff6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -0,0 +1,678 @@ +hlsl.samplebias.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 texture ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 texture ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 texture ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 texture ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 texture ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 texture ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 texture ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'txval40' ( temp 4-component vector of float) +0:43 texture ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp samplerCube) +0:43 'g_tTexcdf4' ( uniform textureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:43 Constant: +0:43 0.500000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of int) +0:44 'txval41' ( temp 4-component vector of int) +0:44 texture ( temp 4-component vector of int) +0:44 Construct combined texture-sampler ( temp isamplerCube) +0:44 'g_tTexcdi4' ( uniform itextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:44 Constant: +0:44 0.500000 +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of uint) +0:45 'txval42' ( temp 4-component vector of uint) +0:45 texture ( temp 4-component vector of uint) +0:45 Construct combined texture-sampler ( temp usamplerCube) +0:45 'g_tTexcdu4' ( uniform utextureCube) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 Constant: +0:45 0.500000 +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:48 move second child to first child ( temp float) +0:48 Depth: direct index for structure ( temp float) +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 texture ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 texture ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 texture ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 texture ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 texture ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 texture ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 texture ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 texture ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'txval40' ( temp 4-component vector of float) +0:43 texture ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp samplerCube) +0:43 'g_tTexcdf4' ( uniform textureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:43 Constant: +0:43 0.500000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of int) +0:44 'txval41' ( temp 4-component vector of int) +0:44 texture ( temp 4-component vector of int) +0:44 Construct combined texture-sampler ( temp isamplerCube) +0:44 'g_tTexcdi4' ( uniform itextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:44 Constant: +0:44 0.500000 +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of uint) +0:45 'txval42' ( temp 4-component vector of uint) +0:45 texture ( temp 4-component vector of uint) +0:45 Construct combined texture-sampler ( temp usamplerCube) +0:45 'g_tTexcdu4' ( uniform utextureCube) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 Constant: +0:45 0.500000 +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:48 move second child to first child ( temp float) +0:48 Depth: direct index for structure ( temp float) +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 170 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 162 166 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 53 "txval20" + Name 56 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 86 "txval30" + Name 89 "g_tTex3df4" + Name 97 "txval31" + Name 100 "g_tTex3di4" + Name 107 "txval32" + Name 110 "g_tTex3du4" + Name 120 "txval40" + Name 123 "g_tTexcdf4" + Name 129 "txval41" + Name 132 "g_tTexcdi4" + Name 138 "txval42" + Name 141 "g_tTexcdu4" + Name 148 "psout" + Name 159 "flattenTemp" + Name 162 "@entryPointOutput.Color" + Name 166 "@entryPointOutput.Depth" + Name 169 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 89(g_tTex3df4) DescriptorSet 0 + Decorate 100(g_tTex3di4) DescriptorSet 0 + Decorate 110(g_tTex3du4) DescriptorSet 0 + Decorate 123(g_tTexcdf4) DescriptorSet 0 + Decorate 132(g_tTexcdi4) DescriptorSet 0 + Decorate 141(g_tTexcdu4) DescriptorSet 0 + Decorate 162(@entryPointOutput.Color) Location 0 + Decorate 166(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 169(g_tTex1df4a) DescriptorSet 0 + Decorate 169(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1056964608 + 27: TypeInt 32 1 + 28: TypeVector 27(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 27(int) 1D sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1045220557 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1050253722 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: TypeVector 6(float) 2 + 62: 61(fvec2) ConstantComposite 24 38 + 65: TypeImage 27(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 61(fvec2) ConstantComposite 51 72 + 76: TypeImage 40(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1058642330 + 84: 61(fvec2) ConstantComposite 25 83 + 87: TypeImage 6(float) 3D sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex3df4): 88(ptr) Variable UniformConstant + 92: TypeSampledImage 87 + 94: TypeVector 6(float) 3 + 95: 94(fvec3) ConstantComposite 24 38 51 + 98: TypeImage 27(int) 3D sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTex3di4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 94(fvec3) ConstantComposite 72 25 83 + 108: TypeImage 40(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3du4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1060320051 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 94(fvec3) ConstantComposite 115 116 117 + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdf4): 122(ptr) Variable UniformConstant + 126: TypeSampledImage 121 + 130: TypeImage 27(int) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdi4): 131(ptr) Variable UniformConstant + 135: TypeSampledImage 130 + 139: TypeImage 40(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdu4): 140(ptr) Variable UniformConstant + 144: TypeSampledImage 139 + 147: TypePointer Function 8(PS_OUTPUT) + 149: 27(int) Constant 0 + 150: 6(float) Constant 1065353216 + 151: 7(fvec4) ConstantComposite 150 150 150 150 + 153: 27(int) Constant 1 + 154: TypePointer Function 6(float) + 161: TypePointer Output 7(fvec4) +162(@entryPointOutput.Color): 161(ptr) Variable Output + 165: TypePointer Output 6(float) +166(@entryPointOutput.Depth): 165(ptr) Variable Output +169(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +159(flattenTemp): 147(ptr) Variable Function + 160:8(PS_OUTPUT) FunctionCall 10(@main() + Store 159(flattenTemp) 160 + 163: 12(ptr) AccessChain 159(flattenTemp) 149 + 164: 7(fvec4) Load 163 + Store 162(@entryPointOutput.Color) 164 + 167: 154(ptr) AccessChain 159(flattenTemp) 153 + 168: 6(float) Load 167 + Store 166(@entryPointOutput.Depth) 168 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 53(txval20): 12(ptr) Variable Function + 64(txval21): 29(ptr) Variable Function + 75(txval22): 42(ptr) Variable Function + 86(txval30): 12(ptr) Variable Function + 97(txval31): 29(ptr) Variable Function + 107(txval32): 42(ptr) Variable Function + 120(txval40): 12(ptr) Variable Function + 129(txval41): 29(ptr) Variable Function + 138(txval42): 42(ptr) Variable Function + 148(psout): 147(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 26: 7(fvec4) ImageSampleImplicitLod 23 24 Bias 25 + Store 13(txval10) 26 + 34: 31 Load 33(g_tTex1di4) + 35: 18 Load 20(g_sSamp) + 37: 36 SampledImage 34 35 + 39: 28(ivec4) ImageSampleImplicitLod 37 38 Bias 25 + Store 30(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 18 Load 20(g_sSamp) + 50: 49 SampledImage 47 48 + 52: 41(ivec4) ImageSampleImplicitLod 50 51 Bias 25 + Store 43(txval12) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 18 Load 20(g_sSamp) + 60: 59 SampledImage 57 58 + 63: 7(fvec4) ImageSampleImplicitLod 60 62 Bias 25 + Store 53(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 18 Load 20(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 28(ivec4) ImageSampleImplicitLod 71 73 Bias 25 + Store 64(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 18 Load 20(g_sSamp) + 82: 81 SampledImage 79 80 + 85: 41(ivec4) ImageSampleImplicitLod 82 84 Bias 25 + Store 75(txval22) 85 + 90: 87 Load 89(g_tTex3df4) + 91: 18 Load 20(g_sSamp) + 93: 92 SampledImage 90 91 + 96: 7(fvec4) ImageSampleImplicitLod 93 95 Bias 25 + Store 86(txval30) 96 + 101: 98 Load 100(g_tTex3di4) + 102: 18 Load 20(g_sSamp) + 104: 103 SampledImage 101 102 + 106: 28(ivec4) ImageSampleImplicitLod 104 105 Bias 25 + Store 97(txval31) 106 + 111: 108 Load 110(g_tTex3du4) + 112: 18 Load 20(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 25 + Store 107(txval32) 119 + 124: 121 Load 123(g_tTexcdf4) + 125: 18 Load 20(g_sSamp) + 127: 126 SampledImage 124 125 + 128: 7(fvec4) ImageSampleImplicitLod 127 95 Bias 25 + Store 120(txval40) 128 + 133: 130 Load 132(g_tTexcdi4) + 134: 18 Load 20(g_sSamp) + 136: 135 SampledImage 133 134 + 137: 28(ivec4) ImageSampleImplicitLod 136 105 Bias 25 + Store 129(txval41) 137 + 142: 139 Load 141(g_tTexcdu4) + 143: 18 Load 20(g_sSamp) + 145: 144 SampledImage 142 143 + 146: 41(ivec4) ImageSampleImplicitLod 145 118 Bias 25 + Store 138(txval42) 146 + 152: 12(ptr) AccessChain 148(psout) 149 + Store 152 151 + 155: 154(ptr) AccessChain 148(psout) 153 + Store 155 150 + 156:8(PS_OUTPUT) Load 148(psout) + ReturnValue 156 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out new file mode 100644 index 0000000000..73d69dcb3d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -0,0 +1,639 @@ +hlsl.samplebias.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 161 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 144 148 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 44 "txval12" + Name 47 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 93 "txval30" + Name 96 "g_tTex3df4" + Name 106 "txval31" + Name 109 "g_tTex3di4" + Name 117 "txval32" + Name 120 "g_tTex3du4" + Name 132 "psout" + Name 141 "flattenTemp" + Name 144 "@entryPointOutput.Color" + Name 148 "@entryPointOutput.Depth" + Name 151 "g_tTex1df4a" + Name 154 "g_tTexcdf4" + Name 157 "g_tTexcdi4" + Name 160 "g_tTexcdu4" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + Decorate 96(g_tTex3df4) DescriptorSet 0 + Decorate 109(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 144(@entryPointOutput.Color) Location 0 + Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 151(g_tTex1df4a) DescriptorSet 0 + Decorate 151(g_tTex1df4a) Binding 1 + Decorate 154(g_tTexcdf4) DescriptorSet 0 + Decorate 157(g_tTexcdi4) DescriptorSet 0 + Decorate 160(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1056964608 + 26: TypeInt 32 1 + 27: 26(int) Constant 1 + 29: TypeVector 26(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 26(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 39: 6(float) Constant 1045220557 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 1D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1050253722 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 2 + 63: 62(fvec2) ConstantComposite 24 39 + 64: TypeVector 26(int) 2 + 65: 26(int) Constant 0 + 66: 64(ivec2) ConstantComposite 27 65 + 69: TypeImage 26(int) 2D sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 76: 6(float) Constant 1053609165 + 77: 62(fvec2) ConstantComposite 52 76 + 78: 64(ivec2) ConstantComposite 27 27 + 81: TypeImage 41(int) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 62(fvec2) ConstantComposite 25 88 + 90: 26(int) Constant 4294967295 + 91: 64(ivec2) ConstantComposite 27 90 + 94: TypeImage 6(float) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3df4): 95(ptr) Variable UniformConstant + 99: TypeSampledImage 94 + 101: TypeVector 6(float) 3 + 102: 101(fvec3) ConstantComposite 24 39 52 + 103: TypeVector 26(int) 3 + 104: 103(ivec3) ConstantComposite 27 65 27 + 107: TypeImage 26(int) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3di4): 108(ptr) Variable UniformConstant + 112: TypeSampledImage 107 + 114: 101(fvec3) ConstantComposite 76 25 88 + 115: 103(ivec3) ConstantComposite 27 27 27 + 118: TypeImage 41(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 125: 6(float) Constant 1060320051 + 126: 6(float) Constant 1061997773 + 127: 6(float) Constant 1063675494 + 128: 101(fvec3) ConstantComposite 125 126 127 + 129: 103(ivec3) ConstantComposite 27 65 90 + 131: TypePointer Function 8(PS_OUTPUT) + 133: 6(float) Constant 1065353216 + 134: 7(fvec4) ConstantComposite 133 133 133 133 + 136: TypePointer Function 6(float) + 143: TypePointer Output 7(fvec4) +144(@entryPointOutput.Color): 143(ptr) Variable Output + 147: TypePointer Output 6(float) +148(@entryPointOutput.Depth): 147(ptr) Variable Output +151(g_tTex1df4a): 15(ptr) Variable UniformConstant + 152: TypeImage 6(float) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdf4): 153(ptr) Variable UniformConstant + 155: TypeImage 26(int) Cube sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTexcdi4): 156(ptr) Variable UniformConstant + 158: TypeImage 41(int) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdu4): 159(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +141(flattenTemp): 131(ptr) Variable Function + 142:8(PS_OUTPUT) FunctionCall 10(@main() + Store 141(flattenTemp) 142 + 145: 12(ptr) AccessChain 141(flattenTemp) 65 + 146: 7(fvec4) Load 145 + Store 144(@entryPointOutput.Color) 146 + 149: 136(ptr) AccessChain 141(flattenTemp) 27 + 150: 6(float) Load 149 + Store 148(@entryPointOutput.Depth) 150 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 44(txval12): 43(ptr) Variable Function + 54(txval20): 12(ptr) Variable Function + 68(txval21): 30(ptr) Variable Function + 80(txval22): 43(ptr) Variable Function + 93(txval30): 12(ptr) Variable Function + 106(txval31): 30(ptr) Variable Function + 117(txval32): 43(ptr) Variable Function + 132(psout): 131(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 28: 7(fvec4) ImageSampleImplicitLod 23 24 Bias ConstOffset 27 25 + Store 13(txval10) 28 + 35: 32 Load 34(g_tTex1di4) + 36: 18 Load 20(g_sSamp) + 38: 37 SampledImage 35 36 + 40: 29(ivec4) ImageSampleImplicitLod 38 39 Bias ConstOffset 27 25 + Store 31(txval11) 40 + 48: 45 Load 47(g_tTex1du4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 53: 42(ivec4) ImageSampleImplicitLod 51 52 Bias ConstOffset 27 25 + Store 44(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 18 Load 20(g_sSamp) + 61: 60 SampledImage 58 59 + 67: 7(fvec4) ImageSampleImplicitLod 61 63 Bias ConstOffset 66 25 + Store 54(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 18 Load 20(g_sSamp) + 75: 74 SampledImage 72 73 + 79: 29(ivec4) ImageSampleImplicitLod 75 77 Bias ConstOffset 78 25 + Store 68(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 18 Load 20(g_sSamp) + 87: 86 SampledImage 84 85 + 92: 42(ivec4) ImageSampleImplicitLod 87 89 Bias ConstOffset 91 25 + Store 80(txval22) 92 + 97: 94 Load 96(g_tTex3df4) + 98: 18 Load 20(g_sSamp) + 100: 99 SampledImage 97 98 + 105: 7(fvec4) ImageSampleImplicitLod 100 102 Bias ConstOffset 104 25 + Store 93(txval30) 105 + 110: 107 Load 109(g_tTex3di4) + 111: 18 Load 20(g_sSamp) + 113: 112 SampledImage 110 111 + 116: 29(ivec4) ImageSampleImplicitLod 113 114 Bias ConstOffset 115 25 + Store 106(txval31) 116 + 121: 118 Load 120(g_tTex3du4) + 122: 18 Load 20(g_sSamp) + 124: 123 SampledImage 121 122 + 130: 42(ivec4) ImageSampleImplicitLod 124 128 Bias ConstOffset 129 25 + Store 117(txval32) 130 + 135: 12(ptr) AccessChain 132(psout) 65 + Store 135 134 + 137: 136(ptr) AccessChain 132(psout) 27 + Store 137 133 + 138:8(PS_OUTPUT) Load 132(psout) + ReturnValue 138 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..0a7a66b2e5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -0,0 +1,476 @@ +hlsl.samplebias.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'txval10' ( temp 4-component vector of float) +0:23 textureOffset ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1DArray) +0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:23 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.500000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'txval11' ( temp 4-component vector of int) +0:24 textureOffset ( temp 4-component vector of int) +0:24 Construct combined texture-sampler ( temp isampler1DArray) +0:24 'g_tTex1di4' ( uniform itexture1DArray) +0:24 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.500000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of uint) +0:25 'txval12' ( temp 4-component vector of uint) +0:25 textureOffset ( temp 4-component vector of uint) +0:25 Construct combined texture-sampler ( temp usampler1DArray) +0:25 'g_tTex1du4' ( uniform utexture1DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.500000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval20' ( temp 4-component vector of float) +0:27 textureOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler2DArray) +0:27 'g_tTex2df4' ( uniform texture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval21' ( temp 4-component vector of int) +0:28 textureOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler2DArray) +0:28 'g_tTex2di4' ( uniform itexture2DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval22' ( temp 4-component vector of uint) +0:29 textureOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler2DArray) +0:29 'g_tTex2du4' ( uniform utexture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:33 move second child to first child ( temp 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:34 move second child to first child ( temp float) +0:34 Depth: direct index for structure ( temp float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'txval10' ( temp 4-component vector of float) +0:23 textureOffset ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1DArray) +0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:23 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.500000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'txval11' ( temp 4-component vector of int) +0:24 textureOffset ( temp 4-component vector of int) +0:24 Construct combined texture-sampler ( temp isampler1DArray) +0:24 'g_tTex1di4' ( uniform itexture1DArray) +0:24 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.500000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of uint) +0:25 'txval12' ( temp 4-component vector of uint) +0:25 textureOffset ( temp 4-component vector of uint) +0:25 Construct combined texture-sampler ( temp usampler1DArray) +0:25 'g_tTex1du4' ( uniform utexture1DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.500000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval20' ( temp 4-component vector of float) +0:27 textureOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler2DArray) +0:27 'g_tTex2df4' ( uniform texture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval21' ( temp 4-component vector of int) +0:28 textureOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler2DArray) +0:28 'g_tTex2di4' ( uniform itexture2DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval22' ( temp 4-component vector of uint) +0:29 textureOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler2DArray) +0:29 'g_tTex2du4' ( uniform utexture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:33 move second child to first child ( temp 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:34 move second child to first child ( temp float) +0:34 Depth: direct index for structure ( temp float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 118 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 110 114 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 34 "txval11" + Name 37 "g_tTex1di4" + Name 49 "txval12" + Name 52 "g_tTex1du4" + Name 61 "txval20" + Name 64 "g_tTex2df4" + Name 74 "txval21" + Name 77 "g_tTex2di4" + Name 84 "txval22" + Name 87 "g_tTex2du4" + Name 98 "psout" + Name 107 "flattenTemp" + Name 110 "@entryPointOutput.Color" + Name 114 "@entryPointOutput.Depth" + Name 117 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 37(g_tTex1di4) DescriptorSet 0 + Decorate 52(g_tTex1du4) DescriptorSet 0 + Decorate 64(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 110(@entryPointOutput.Color) Location 0 + Decorate 114(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 117(g_tTex1df4a) DescriptorSet 0 + Decorate 117(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1056964608 + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 32: TypeVector 29(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 29(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 42: 6(float) Constant 1050253722 + 43: 24(fvec2) ConstantComposite 26 42 + 44: 29(int) Constant 1 + 46: TypeInt 32 0 + 47: TypeVector 46(int) 4 + 48: TypePointer Function 47(ivec4) + 50: TypeImage 46(int) 1D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex1du4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: 6(float) Constant 1053609165 + 58: 24(fvec2) ConstantComposite 42 57 + 59: 29(int) Constant 2 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4): 63(ptr) Variable UniformConstant + 67: TypeSampledImage 62 + 69: TypeVector 6(float) 3 + 70: 69(fvec3) ConstantComposite 25 26 42 + 71: TypeVector 29(int) 2 + 72: 71(ivec2) ConstantComposite 30 30 + 75: TypeImage 29(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeSampledImage 75 + 82: 69(fvec3) ConstantComposite 42 57 28 + 85: TypeImage 46(int) 2D array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 92: 6(float) Constant 1058642330 + 93: 6(float) Constant 1060320051 + 94: 69(fvec3) ConstantComposite 28 92 93 + 95: 71(ivec2) ConstantComposite 30 44 + 97: TypePointer Function 8(PS_OUTPUT) + 99: 6(float) Constant 1065353216 + 100: 7(fvec4) ConstantComposite 99 99 99 99 + 102: TypePointer Function 6(float) + 109: TypePointer Output 7(fvec4) +110(@entryPointOutput.Color): 109(ptr) Variable Output + 113: TypePointer Output 6(float) +114(@entryPointOutput.Depth): 113(ptr) Variable Output +117(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +107(flattenTemp): 97(ptr) Variable Function + 108:8(PS_OUTPUT) FunctionCall 10(@main() + Store 107(flattenTemp) 108 + 111: 12(ptr) AccessChain 107(flattenTemp) 30 + 112: 7(fvec4) Load 111 + Store 110(@entryPointOutput.Color) 112 + 115: 102(ptr) AccessChain 107(flattenTemp) 44 + 116: 6(float) Load 115 + Store 114(@entryPointOutput.Depth) 116 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 34(txval11): 33(ptr) Variable Function + 49(txval12): 48(ptr) Variable Function + 61(txval20): 12(ptr) Variable Function + 74(txval21): 33(ptr) Variable Function + 84(txval22): 48(ptr) Variable Function + 98(psout): 97(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 31: 7(fvec4) ImageSampleImplicitLod 23 27 Bias ConstOffset 30 28 + Store 13(txval10) 31 + 38: 35 Load 37(g_tTex1di4) + 39: 18 Load 20(g_sSamp) + 41: 40 SampledImage 38 39 + 45: 32(ivec4) ImageSampleImplicitLod 41 43 Bias ConstOffset 44 28 + Store 34(txval11) 45 + 53: 50 Load 52(g_tTex1du4) + 54: 18 Load 20(g_sSamp) + 56: 55 SampledImage 53 54 + 60: 47(ivec4) ImageSampleImplicitLod 56 58 Bias ConstOffset 59 28 + Store 49(txval12) 60 + 65: 62 Load 64(g_tTex2df4) + 66: 18 Load 20(g_sSamp) + 68: 67 SampledImage 65 66 + 73: 7(fvec4) ImageSampleImplicitLod 68 70 Bias ConstOffset 72 28 + Store 61(txval20) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 18 Load 20(g_sSamp) + 81: 80 SampledImage 78 79 + 83: 32(ivec4) ImageSampleImplicitLod 81 82 Bias ConstOffset 72 28 + Store 74(txval21) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 18 Load 20(g_sSamp) + 91: 90 SampledImage 88 89 + 96: 47(ivec4) ImageSampleImplicitLod 91 94 Bias ConstOffset 95 28 + Store 84(txval22) 96 + 101: 12(ptr) AccessChain 98(psout) 30 + Store 101 100 + 103: 102(ptr) AccessChain 98(psout) 44 + Store 103 99 + 104:8(PS_OUTPUT) Load 98(psout) + ReturnValue 104 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out new file mode 100644 index 0000000000..f8f20ca250 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -0,0 +1,701 @@ +hlsl.samplecmp.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r10' ( temp float) +0:42 texture ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r12' ( temp float) +0:43 texture ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r14' ( temp float) +0:44 texture ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r30' ( temp float) +0:47 texture ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r32' ( temp float) +0:48 texture ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r34' ( temp float) +0:49 texture ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r60' ( temp float) +0:52 texture ( temp float) +0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r62' ( temp float) +0:53 texture ( temp float) +0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r64' ( temp float) +0:54 texture ( temp float) +0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:56 move second child to first child ( temp 4-component vector of float) +0:56 Color: direct index for structure ( temp 4-component vector of float) +0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:57 move second child to first child ( temp float) +0:57 Depth: direct index for structure ( temp float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r10' ( temp float) +0:42 texture ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r12' ( temp float) +0:43 texture ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r14' ( temp float) +0:44 texture ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r30' ( temp float) +0:47 texture ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r32' ( temp float) +0:48 texture ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r34' ( temp float) +0:49 texture ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r60' ( temp float) +0:52 texture ( temp float) +0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r62' ( temp float) +0:53 texture ( temp float) +0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r64' ( temp float) +0:54 texture ( temp float) +0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:56 move second child to first child ( temp 4-component vector of float) +0:56 Color: direct index for structure ( temp 4-component vector of float) +0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:57 move second child to first child ( temp float) +0:57 Depth: direct index for structure ( temp float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 209 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 166 170 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r10" + Name 16 "g_tTex1df4a" + Name 20 "g_sSamp" + Name 35 "r12" + Name 39 "g_tTex1di4a" + Name 49 "r14" + Name 53 "g_tTex1du4a" + Name 63 "r30" + Name 66 "g_tTex2df4a" + Name 79 "r32" + Name 82 "g_tTex2di4a" + Name 93 "r34" + Name 96 "g_tTex2du4a" + Name 107 "r60" + Name 110 "g_tTexcdf4a" + Name 123 "r62" + Name 126 "g_tTexcdi4a" + Name 137 "r64" + Name 140 "g_tTexcdu4a" + Name 152 "psout" + Name 163 "flattenTemp" + Name 166 "@entryPointOutput.Color" + Name 170 "@entryPointOutput.Depth" + Name 175 "g_tTex1df4" + Name 178 "g_tTex1di4" + Name 181 "g_tTex1du4" + Name 184 "g_tTex2df4" + Name 187 "g_tTex2di4" + Name 190 "g_tTex2du4" + Name 193 "g_tTex3df4" + Name 196 "g_tTex3di4" + Name 199 "g_tTex3du4" + Name 202 "g_tTexcdf4" + Name 205 "g_tTexcdi4" + Name 208 "g_tTexcdu4" + Decorate 16(g_tTex1df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 39(g_tTex1di4a) DescriptorSet 0 + Decorate 53(g_tTex1du4a) DescriptorSet 0 + Decorate 66(g_tTex2df4a) DescriptorSet 0 + Decorate 82(g_tTex2di4a) DescriptorSet 0 + Decorate 96(g_tTex2du4a) DescriptorSet 0 + Decorate 110(g_tTexcdf4a) DescriptorSet 0 + Decorate 126(g_tTexcdi4a) DescriptorSet 0 + Decorate 140(g_tTexcdu4a) DescriptorSet 0 + Decorate 166(@entryPointOutput.Color) Location 0 + Decorate 170(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 175(g_tTex1df4) DescriptorSet 0 + Decorate 175(g_tTex1df4) Binding 0 + Decorate 178(g_tTex1di4) DescriptorSet 0 + Decorate 181(g_tTex1du4) DescriptorSet 0 + Decorate 184(g_tTex2df4) DescriptorSet 0 + Decorate 187(g_tTex2di4) DescriptorSet 0 + Decorate 190(g_tTex2du4) DescriptorSet 0 + Decorate 193(g_tTex3df4) DescriptorSet 0 + Decorate 196(g_tTex3di4) DescriptorSet 0 + Decorate 199(g_tTex3du4) DescriptorSet 0 + Decorate 202(g_tTexcdf4) DescriptorSet 0 + Decorate 205(g_tTexcdi4) DescriptorSet 0 + Decorate 208(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1061158912 + 29: TypeVector 6(float) 3 + 36: TypeInt 32 1 + 37: TypeImage 36(int) 1D depth array sampled format:Unknown + 38: TypePointer UniformConstant 37 + 39(g_tTex1di4a): 38(ptr) Variable UniformConstant + 42: TypeSampledImage 37 + 50: TypeInt 32 0 + 51: TypeImage 50(int) 1D depth array sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex1du4a): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 64: TypeImage 6(float) 2D depth array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2df4a): 65(ptr) Variable UniformConstant + 69: TypeSampledImage 64 + 71: 6(float) Constant 1050253722 + 72: 29(fvec3) ConstantComposite 25 26 71 + 80: TypeImage 36(int) 2D depth array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2di4a): 81(ptr) Variable UniformConstant + 85: TypeSampledImage 80 + 94: TypeImage 50(int) 2D depth array sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex2du4a): 95(ptr) Variable UniformConstant + 99: TypeSampledImage 94 + 108: TypeImage 6(float) Cube depth array sampled format:Unknown + 109: TypePointer UniformConstant 108 +110(g_tTexcdf4a): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1053609165 + 116: 7(fvec4) ConstantComposite 25 26 71 115 + 124: TypeImage 36(int) Cube depth array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(g_tTexcdi4a): 125(ptr) Variable UniformConstant + 129: TypeSampledImage 124 + 138: TypeImage 50(int) Cube depth array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTexcdu4a): 139(ptr) Variable UniformConstant + 143: TypeSampledImage 138 + 151: TypePointer Function 8(PS_OUTPUT) + 153: 36(int) Constant 0 + 154: 6(float) Constant 1065353216 + 155: 7(fvec4) ConstantComposite 154 154 154 154 + 156: TypePointer Function 7(fvec4) + 158: 36(int) Constant 1 + 165: TypePointer Output 7(fvec4) +166(@entryPointOutput.Color): 165(ptr) Variable Output + 169: TypePointer Output 6(float) +170(@entryPointOutput.Depth): 169(ptr) Variable Output + 173: TypeImage 6(float) 1D sampled format:Unknown + 174: TypePointer UniformConstant 173 + 175(g_tTex1df4): 174(ptr) Variable UniformConstant + 176: TypeImage 36(int) 1D sampled format:Unknown + 177: TypePointer UniformConstant 176 + 178(g_tTex1di4): 177(ptr) Variable UniformConstant + 179: TypeImage 50(int) 1D sampled format:Unknown + 180: TypePointer UniformConstant 179 + 181(g_tTex1du4): 180(ptr) Variable UniformConstant + 182: TypeImage 6(float) 2D sampled format:Unknown + 183: TypePointer UniformConstant 182 + 184(g_tTex2df4): 183(ptr) Variable UniformConstant + 185: TypeImage 36(int) 2D sampled format:Unknown + 186: TypePointer UniformConstant 185 + 187(g_tTex2di4): 186(ptr) Variable UniformConstant + 188: TypeImage 50(int) 2D sampled format:Unknown + 189: TypePointer UniformConstant 188 + 190(g_tTex2du4): 189(ptr) Variable UniformConstant + 191: TypeImage 6(float) 3D sampled format:Unknown + 192: TypePointer UniformConstant 191 + 193(g_tTex3df4): 192(ptr) Variable UniformConstant + 194: TypeImage 36(int) 3D sampled format:Unknown + 195: TypePointer UniformConstant 194 + 196(g_tTex3di4): 195(ptr) Variable UniformConstant + 197: TypeImage 50(int) 3D sampled format:Unknown + 198: TypePointer UniformConstant 197 + 199(g_tTex3du4): 198(ptr) Variable UniformConstant + 200: TypeImage 6(float) Cube sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTexcdf4): 201(ptr) Variable UniformConstant + 203: TypeImage 36(int) Cube sampled format:Unknown + 204: TypePointer UniformConstant 203 + 205(g_tTexcdi4): 204(ptr) Variable UniformConstant + 206: TypeImage 50(int) Cube sampled format:Unknown + 207: TypePointer UniformConstant 206 + 208(g_tTexcdu4): 207(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +163(flattenTemp): 151(ptr) Variable Function + 164:8(PS_OUTPUT) FunctionCall 10(@main() + Store 163(flattenTemp) 164 + 167: 156(ptr) AccessChain 163(flattenTemp) 153 + 168: 7(fvec4) Load 167 + Store 166(@entryPointOutput.Color) 168 + 171: 12(ptr) AccessChain 163(flattenTemp) 158 + 172: 6(float) Load 171 + Store 170(@entryPointOutput.Depth) 172 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r10): 12(ptr) Variable Function + 35(r12): 12(ptr) Variable Function + 49(r14): 12(ptr) Variable Function + 63(r30): 12(ptr) Variable Function + 79(r32): 12(ptr) Variable Function + 93(r34): 12(ptr) Variable Function + 107(r60): 12(ptr) Variable Function + 123(r62): 12(ptr) Variable Function + 137(r64): 12(ptr) Variable Function + 152(psout): 151(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 6(float) CompositeExtract 27 0 + 31: 6(float) CompositeExtract 27 1 + 32: 29(fvec3) CompositeConstruct 30 31 28 + 33: 6(float) CompositeExtract 32 2 + 34: 6(float) ImageSampleDrefImplicitLod 23 32 33 + Store 13(r10) 34 + 40: 37 Load 39(g_tTex1di4a) + 41: 18 Load 20(g_sSamp) + 43: 42 SampledImage 40 41 + 44: 6(float) CompositeExtract 27 0 + 45: 6(float) CompositeExtract 27 1 + 46: 29(fvec3) CompositeConstruct 44 45 28 + 47: 6(float) CompositeExtract 46 2 + 48: 6(float) ImageSampleDrefImplicitLod 43 46 47 + Store 35(r12) 48 + 54: 51 Load 53(g_tTex1du4a) + 55: 18 Load 20(g_sSamp) + 57: 56 SampledImage 54 55 + 58: 6(float) CompositeExtract 27 0 + 59: 6(float) CompositeExtract 27 1 + 60: 29(fvec3) CompositeConstruct 58 59 28 + 61: 6(float) CompositeExtract 60 2 + 62: 6(float) ImageSampleDrefImplicitLod 57 60 61 + Store 49(r14) 62 + 67: 64 Load 66(g_tTex2df4a) + 68: 18 Load 20(g_sSamp) + 70: 69 SampledImage 67 68 + 73: 6(float) CompositeExtract 72 0 + 74: 6(float) CompositeExtract 72 1 + 75: 6(float) CompositeExtract 72 2 + 76: 7(fvec4) CompositeConstruct 73 74 75 28 + 77: 6(float) CompositeExtract 76 3 + 78: 6(float) ImageSampleDrefImplicitLod 70 76 77 + Store 63(r30) 78 + 83: 80 Load 82(g_tTex2di4a) + 84: 18 Load 20(g_sSamp) + 86: 85 SampledImage 83 84 + 87: 6(float) CompositeExtract 72 0 + 88: 6(float) CompositeExtract 72 1 + 89: 6(float) CompositeExtract 72 2 + 90: 7(fvec4) CompositeConstruct 87 88 89 28 + 91: 6(float) CompositeExtract 90 3 + 92: 6(float) ImageSampleDrefImplicitLod 86 90 91 + Store 79(r32) 92 + 97: 94 Load 96(g_tTex2du4a) + 98: 18 Load 20(g_sSamp) + 100: 99 SampledImage 97 98 + 101: 6(float) CompositeExtract 72 0 + 102: 6(float) CompositeExtract 72 1 + 103: 6(float) CompositeExtract 72 2 + 104: 7(fvec4) CompositeConstruct 101 102 103 28 + 105: 6(float) CompositeExtract 104 3 + 106: 6(float) ImageSampleDrefImplicitLod 100 104 105 + Store 93(r34) 106 + 111: 108 Load 110(g_tTexcdf4a) + 112: 18 Load 20(g_sSamp) + 114: 113 SampledImage 111 112 + 117: 6(float) CompositeExtract 116 0 + 118: 6(float) CompositeExtract 116 1 + 119: 6(float) CompositeExtract 116 2 + 120: 6(float) CompositeExtract 116 3 + 121: 7(fvec4) CompositeConstruct 117 118 119 120 + 122: 6(float) ImageSampleDrefImplicitLod 114 121 28 + Store 107(r60) 122 + 127: 124 Load 126(g_tTexcdi4a) + 128: 18 Load 20(g_sSamp) + 130: 129 SampledImage 127 128 + 131: 6(float) CompositeExtract 116 0 + 132: 6(float) CompositeExtract 116 1 + 133: 6(float) CompositeExtract 116 2 + 134: 6(float) CompositeExtract 116 3 + 135: 7(fvec4) CompositeConstruct 131 132 133 134 + 136: 6(float) ImageSampleDrefImplicitLod 130 135 28 + Store 123(r62) 136 + 141: 138 Load 140(g_tTexcdu4a) + 142: 18 Load 20(g_sSamp) + 144: 143 SampledImage 141 142 + 145: 6(float) CompositeExtract 116 0 + 146: 6(float) CompositeExtract 116 1 + 147: 6(float) CompositeExtract 116 2 + 148: 6(float) CompositeExtract 116 3 + 149: 7(fvec4) CompositeConstruct 145 146 147 148 + 150: 6(float) ImageSampleDrefImplicitLod 144 149 28 + Store 137(r64) 150 + 157: 156(ptr) AccessChain 152(psout) 153 + Store 157 155 + 159: 12(ptr) AccessChain 152(psout) 158 + Store 159 154 + 160:8(PS_OUTPUT) Load 152(psout) + ReturnValue 160 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out new file mode 100644 index 0000000000..9862297fbd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -0,0 +1,672 @@ +hlsl.samplecmp.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r00' ( temp float) +0:42 texture ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r02' ( temp float) +0:43 texture ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r04' ( temp float) +0:44 texture ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r20' ( temp float) +0:47 texture ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r22' ( temp float) +0:48 texture ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r24' ( temp float) +0:49 texture ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r50' ( temp float) +0:53 texture ( temp float) +0:53 Construct combined texture-sampler ( temp samplerCubeShadow) +0:53 'g_tTexcdf4' ( uniform textureCubeShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r52' ( temp float) +0:54 texture ( temp float) +0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) +0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'r54' ( temp float) +0:55 texture ( temp float) +0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) +0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:55 'g_sSamp' (layout( binding=0) uniform sampler) +0:55 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:57 move second child to first child ( temp 4-component vector of float) +0:57 Color: direct index for structure ( temp 4-component vector of float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:58 move second child to first child ( temp float) +0:58 Depth: direct index for structure ( temp float) +0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCubeShadow) +0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r00' ( temp float) +0:42 texture ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r02' ( temp float) +0:43 texture ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r04' ( temp float) +0:44 texture ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r20' ( temp float) +0:47 texture ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r22' ( temp float) +0:48 texture ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r24' ( temp float) +0:49 texture ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r50' ( temp float) +0:53 texture ( temp float) +0:53 Construct combined texture-sampler ( temp samplerCubeShadow) +0:53 'g_tTexcdf4' ( uniform textureCubeShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r52' ( temp float) +0:54 texture ( temp float) +0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) +0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'r54' ( temp float) +0:55 texture ( temp float) +0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) +0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:55 'g_sSamp' (layout( binding=0) uniform sampler) +0:55 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:57 move second child to first child ( temp 4-component vector of float) +0:57 Color: direct index for structure ( temp 4-component vector of float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:58 move second child to first child ( temp float) +0:58 Depth: direct index for structure ( temp float) +0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCubeShadow) +0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 198 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 155 159 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r00" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 30 "r02" + Name 34 "g_tTex1di4" + Name 42 "r04" + Name 46 "g_tTex1du4" + Name 54 "r20" + Name 57 "g_tTex2df4" + Name 70 "r22" + Name 73 "g_tTex2di4" + Name 83 "r24" + Name 86 "g_tTex2du4" + Name 96 "r50" + Name 99 "g_tTexcdf4" + Name 112 "r52" + Name 115 "g_tTexcdi4" + Name 126 "r54" + Name 129 "g_tTexcdu4" + Name 141 "psout" + Name 152 "flattenTemp" + Name 155 "@entryPointOutput.Color" + Name 159 "@entryPointOutput.Depth" + Name 164 "g_tTex3df4" + Name 167 "g_tTex3di4" + Name 170 "g_tTex3du4" + Name 173 "g_tTex1df4a" + Name 176 "g_tTex1di4a" + Name 179 "g_tTex1du4a" + Name 182 "g_tTex2df4a" + Name 185 "g_tTex2di4a" + Name 188 "g_tTex2du4a" + Name 191 "g_tTexcdf4a" + Name 194 "g_tTexcdi4a" + Name 197 "g_tTexcdu4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 99(g_tTexcdf4) DescriptorSet 0 + Decorate 115(g_tTexcdi4) DescriptorSet 0 + Decorate 129(g_tTexcdu4) DescriptorSet 0 + Decorate 155(@entryPointOutput.Color) Location 0 + Decorate 159(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 164(g_tTex3df4) DescriptorSet 0 + Decorate 167(g_tTex3di4) DescriptorSet 0 + Decorate 170(g_tTex3du4) DescriptorSet 0 + Decorate 173(g_tTex1df4a) DescriptorSet 0 + Decorate 176(g_tTex1di4a) DescriptorSet 0 + Decorate 179(g_tTex1du4a) DescriptorSet 0 + Decorate 182(g_tTex2df4a) DescriptorSet 0 + Decorate 185(g_tTex2di4a) DescriptorSet 0 + Decorate 188(g_tTex2du4a) DescriptorSet 0 + Decorate 191(g_tTexcdf4a) DescriptorSet 0 + Decorate 194(g_tTexcdi4a) DescriptorSet 0 + Decorate 197(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 26: TypeVector 6(float) 2 + 31: TypeInt 32 1 + 32: TypeImage 31(int) 1D depth sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 43: TypeInt 32 0 + 44: TypeImage 43(int) 1D depth sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 55: TypeImage 6(float) 2D depth sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: 6(float) Constant 1045220557 + 63: 26(fvec2) ConstantComposite 24 62 + 64: TypeVector 6(float) 3 + 71: TypeImage 31(int) 2D depth sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 84: TypeImage 43(int) 2D depth sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 97: TypeImage 6(float) Cube depth sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdf4): 98(ptr) Variable UniformConstant + 102: TypeSampledImage 97 + 104: 6(float) Constant 1050253722 + 105: 64(fvec3) ConstantComposite 24 62 104 + 113: TypeImage 31(int) Cube depth sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTexcdi4): 114(ptr) Variable UniformConstant + 118: TypeSampledImage 113 + 127: TypeImage 43(int) Cube depth sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdu4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 140: TypePointer Function 8(PS_OUTPUT) + 142: 31(int) Constant 0 + 143: 6(float) Constant 1065353216 + 144: 7(fvec4) ConstantComposite 143 143 143 143 + 145: TypePointer Function 7(fvec4) + 147: 31(int) Constant 1 + 154: TypePointer Output 7(fvec4) +155(@entryPointOutput.Color): 154(ptr) Variable Output + 158: TypePointer Output 6(float) +159(@entryPointOutput.Depth): 158(ptr) Variable Output + 162: TypeImage 6(float) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3df4): 163(ptr) Variable UniformConstant + 165: TypeImage 31(int) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3di4): 166(ptr) Variable UniformConstant + 168: TypeImage 43(int) 3D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex3du4): 169(ptr) Variable UniformConstant + 171: TypeImage 6(float) 1D array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTex1df4a): 172(ptr) Variable UniformConstant + 174: TypeImage 31(int) 1D array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTex1di4a): 175(ptr) Variable UniformConstant + 177: TypeImage 43(int) 1D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTex1du4a): 178(ptr) Variable UniformConstant + 180: TypeImage 6(float) 2D array sampled format:Unknown + 181: TypePointer UniformConstant 180 +182(g_tTex2df4a): 181(ptr) Variable UniformConstant + 183: TypeImage 31(int) 2D array sampled format:Unknown + 184: TypePointer UniformConstant 183 +185(g_tTex2di4a): 184(ptr) Variable UniformConstant + 186: TypeImage 43(int) 2D array sampled format:Unknown + 187: TypePointer UniformConstant 186 +188(g_tTex2du4a): 187(ptr) Variable UniformConstant + 189: TypeImage 6(float) Cube array sampled format:Unknown + 190: TypePointer UniformConstant 189 +191(g_tTexcdf4a): 190(ptr) Variable UniformConstant + 192: TypeImage 31(int) Cube array sampled format:Unknown + 193: TypePointer UniformConstant 192 +194(g_tTexcdi4a): 193(ptr) Variable UniformConstant + 195: TypeImage 43(int) Cube array sampled format:Unknown + 196: TypePointer UniformConstant 195 +197(g_tTexcdu4a): 196(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +152(flattenTemp): 140(ptr) Variable Function + 153:8(PS_OUTPUT) FunctionCall 10(@main() + Store 152(flattenTemp) 153 + 156: 145(ptr) AccessChain 152(flattenTemp) 142 + 157: 7(fvec4) Load 156 + Store 155(@entryPointOutput.Color) 157 + 160: 12(ptr) AccessChain 152(flattenTemp) 147 + 161: 6(float) Load 160 + Store 159(@entryPointOutput.Depth) 161 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 30(r02): 12(ptr) Variable Function + 42(r04): 12(ptr) Variable Function + 54(r20): 12(ptr) Variable Function + 70(r22): 12(ptr) Variable Function + 83(r24): 12(ptr) Variable Function + 96(r50): 12(ptr) Variable Function + 112(r52): 12(ptr) Variable Function + 126(r54): 12(ptr) Variable Function + 141(psout): 140(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 26(fvec2) CompositeConstruct 24 25 + 28: 6(float) CompositeExtract 27 1 + 29: 6(float) ImageSampleDrefImplicitLod 23 27 28 + Store 13(r00) 29 + 35: 32 Load 34(g_tTex1di4) + 36: 18 Load 20(g_sSamp) + 38: 37 SampledImage 35 36 + 39: 26(fvec2) CompositeConstruct 24 25 + 40: 6(float) CompositeExtract 39 1 + 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 + Store 30(r02) 41 + 47: 44 Load 46(g_tTex1du4) + 48: 18 Load 20(g_sSamp) + 50: 49 SampledImage 47 48 + 51: 26(fvec2) CompositeConstruct 24 25 + 52: 6(float) CompositeExtract 51 1 + 53: 6(float) ImageSampleDrefImplicitLod 50 51 52 + Store 42(r04) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 18 Load 20(g_sSamp) + 61: 60 SampledImage 58 59 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 25 + 68: 6(float) CompositeExtract 67 2 + 69: 6(float) ImageSampleDrefImplicitLod 61 67 68 + Store 54(r20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 18 Load 20(g_sSamp) + 77: 76 SampledImage 74 75 + 78: 6(float) CompositeExtract 63 0 + 79: 6(float) CompositeExtract 63 1 + 80: 64(fvec3) CompositeConstruct 78 79 25 + 81: 6(float) CompositeExtract 80 2 + 82: 6(float) ImageSampleDrefImplicitLod 77 80 81 + Store 70(r22) 82 + 87: 84 Load 86(g_tTex2du4) + 88: 18 Load 20(g_sSamp) + 90: 89 SampledImage 87 88 + 91: 6(float) CompositeExtract 63 0 + 92: 6(float) CompositeExtract 63 1 + 93: 64(fvec3) CompositeConstruct 91 92 25 + 94: 6(float) CompositeExtract 93 2 + 95: 6(float) ImageSampleDrefImplicitLod 90 93 94 + Store 83(r24) 95 + 100: 97 Load 99(g_tTexcdf4) + 101: 18 Load 20(g_sSamp) + 103: 102 SampledImage 100 101 + 106: 6(float) CompositeExtract 105 0 + 107: 6(float) CompositeExtract 105 1 + 108: 6(float) CompositeExtract 105 2 + 109: 7(fvec4) CompositeConstruct 106 107 108 25 + 110: 6(float) CompositeExtract 109 3 + 111: 6(float) ImageSampleDrefImplicitLod 103 109 110 + Store 96(r50) 111 + 116: 113 Load 115(g_tTexcdi4) + 117: 18 Load 20(g_sSamp) + 119: 118 SampledImage 116 117 + 120: 6(float) CompositeExtract 105 0 + 121: 6(float) CompositeExtract 105 1 + 122: 6(float) CompositeExtract 105 2 + 123: 7(fvec4) CompositeConstruct 120 121 122 25 + 124: 6(float) CompositeExtract 123 3 + 125: 6(float) ImageSampleDrefImplicitLod 119 123 124 + Store 112(r52) 125 + 130: 127 Load 129(g_tTexcdu4) + 131: 18 Load 20(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 6(float) CompositeExtract 105 0 + 135: 6(float) CompositeExtract 105 1 + 136: 6(float) CompositeExtract 105 2 + 137: 7(fvec4) CompositeConstruct 134 135 136 25 + 138: 6(float) CompositeExtract 137 3 + 139: 6(float) ImageSampleDrefImplicitLod 133 137 138 + Store 126(r54) 139 + 146: 145(ptr) AccessChain 141(psout) 142 + Store 146 144 + 148: 12(ptr) AccessChain 141(psout) 147 + Store 148 143 + 149:8(PS_OUTPUT) Load 141(psout) + ReturnValue 149 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out new file mode 100644 index 0000000000..7bcf085299 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out @@ -0,0 +1,157 @@ +hlsl.samplecmp.dualmode.frag +WARNING: AST will form illegal SPIR-V; need to transform to legalize +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:10 texture ( temp float) +0:10 Construct combined texture-sampler ( temp sampler1DShadow) +0:10 'g_tTex' (layout( binding=3) uniform texture1DShadow) +0:10 'g_sSampCmp' (layout( binding=1) uniform sampler) +0:10 Construct vec2 ( temp 2-component vector of float) +0:10 Constant: +0:10 0.100000 +0:10 Constant: +0:10 0.750000 +0:11 texture ( temp 4-component vector of float) +0:11 Construct combined texture-sampler ( temp sampler1D) +0:11 'g_tTex' (layout( binding=3) uniform texture1D) +0:11 'g_sSamp' (layout( binding=0) uniform sampler) +0:11 Constant: +0:11 0.100000 +0:13 Branch: Return with expression +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSampCmp' (layout( binding=1) uniform sampler) +0:? 'g_tTex' (layout( binding=3) uniform texture1DShadow) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'g_tTex' (layout( binding=3) uniform texture1D) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:10 texture ( temp float) +0:10 Construct combined texture-sampler ( temp sampler1DShadow) +0:10 'g_tTex' (layout( binding=3) uniform texture1DShadow) +0:10 'g_sSampCmp' (layout( binding=1) uniform sampler) +0:10 Construct vec2 ( temp 2-component vector of float) +0:10 Constant: +0:10 0.100000 +0:10 Constant: +0:10 0.750000 +0:11 texture ( temp 4-component vector of float) +0:11 Construct combined texture-sampler ( temp sampler1D) +0:11 'g_tTex' (layout( binding=3) uniform texture1D) +0:11 'g_sSamp' (layout( binding=0) uniform sampler) +0:11 Constant: +0:11 0.100000 +0:13 Branch: Return with expression +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSampCmp' (layout( binding=1) uniform sampler) +0:? 'g_tTex' (layout( binding=3) uniform texture1DShadow) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'g_tTex' (layout( binding=3) uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 43 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "g_tTex" + Name 17 "g_sSampCmp" + Name 29 "g_tTex" + Name 31 "g_sSamp" + Name 41 "@entryPointOutput" + Decorate 13(g_tTex) DescriptorSet 0 + Decorate 13(g_tTex) Binding 3 + Decorate 17(g_sSampCmp) DescriptorSet 0 + Decorate 17(g_sSampCmp) Binding 1 + Decorate 29(g_tTex) DescriptorSet 0 + Decorate 29(g_tTex) Binding 3 + Decorate 31(g_sSamp) DescriptorSet 0 + Decorate 31(g_sSamp) Binding 0 + Decorate 41(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 1D depth sampled format:Unknown + 12: TypePointer UniformConstant 11 + 13(g_tTex): 12(ptr) Variable UniformConstant + 15: TypeSampler + 16: TypePointer UniformConstant 15 + 17(g_sSampCmp): 16(ptr) Variable UniformConstant + 19: TypeSampledImage 11 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1061158912 + 23: TypeVector 6(float) 2 + 27: TypeImage 6(float) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex): 28(ptr) Variable UniformConstant + 31(g_sSamp): 16(ptr) Variable UniformConstant + 33: TypeSampledImage 27 + 36: 6(float) Constant 0 + 37: 7(fvec4) ConstantComposite 36 36 36 36 + 40: TypePointer Output 7(fvec4) +41(@entryPointOutput): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 42: 7(fvec4) FunctionCall 9(@main() + Store 41(@entryPointOutput) 42 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 14: 11 Load 13(g_tTex) + 18: 15 Load 17(g_sSampCmp) + 20: 19 SampledImage 14 18 + 24: 23(fvec2) CompositeConstruct 21 22 + 25: 6(float) CompositeExtract 24 1 + 26: 6(float) ImageSampleDrefImplicitLod 20 24 25 + 30: 27 Load 29(g_tTex) + 32: 15 Load 31(g_sSamp) + 34: 33 SampledImage 30 32 + 35: 7(fvec4) ImageSampleImplicitLod 34 21 + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out new file mode 100644 index 0000000000..65a69e8f10 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative.frag.out @@ -0,0 +1,98 @@ +hlsl.samplecmp.negative.frag +ERROR: 0:10: '' : expected: SamplerComparisonState +ERROR: 1 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:8 Function Definition: @main( ( temp 4-component vector of float) +0:8 Function Parameters: +0:? Sequence +0:9 texture ( temp float) +0:9 Construct combined texture-sampler ( temp sampler2DShadow) +0:9 'g_shadowTex' ( uniform texture2DShadow) +0:9 'g_shadowSamplerComp' ( uniform sampler) +0:9 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 ERROR: Bad aggregation op + ( temp float) +0:10 'g_nonShadowTex' ( uniform texture2D) +0:10 'g_shadowSampler' ( uniform sampler) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:10 Constant: +0:10 0.000000 +0:12 Branch: Return with expression +0:12 Constant: +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_nonShadowTex' ( uniform texture2D) +0:? 'g_shadowTex' ( uniform texture2DShadow) +0:? 'g_shadowSampler' ( uniform sampler) +0:? 'g_shadowSamplerComp' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:8 Function Definition: @main( ( temp 4-component vector of float) +0:8 Function Parameters: +0:? Sequence +0:9 texture ( temp float) +0:9 Construct combined texture-sampler ( temp sampler2DShadow) +0:9 'g_shadowTex' ( uniform texture2DShadow) +0:9 'g_shadowSamplerComp' ( uniform sampler) +0:9 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 ERROR: Bad aggregation op + ( temp float) +0:10 'g_nonShadowTex' ( uniform texture2D) +0:10 'g_shadowSampler' ( uniform sampler) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:10 Constant: +0:10 0.000000 +0:12 Branch: Return with expression +0:12 Constant: +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:8 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_nonShadowTex' ( uniform texture2D) +0:? 'g_shadowTex' ( uniform texture2DShadow) +0:? 'g_shadowSampler' ( uniform sampler) +0:? 'g_shadowSamplerComp' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out new file mode 100644 index 0000000000..996b3f8704 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.negative2.frag.out @@ -0,0 +1,80 @@ +hlsl.samplecmp.negative2.frag +ERROR: 0:7: '' : expected: SamplerComparisonState +ERROR: 1 compilation errors. No code generated. + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:6 Function Definition: @main( ( temp 4-component vector of float) +0:6 Function Parameters: +0:? Sequence +0:7 ERROR: Bad aggregation op + ( temp 4-component vector of float) +0:7 'g_shadowTex' ( uniform texture2D) +0:7 'g_shadowSampler' ( uniform sampler) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:7 Constant: +0:7 0.000000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:9 Branch: Return with expression +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_shadowTex' ( uniform texture2D) +0:? 'g_shadowSampler' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:6 Function Definition: @main( ( temp 4-component vector of float) +0:6 Function Parameters: +0:? Sequence +0:7 ERROR: Bad aggregation op + ( temp 4-component vector of float) +0:7 'g_shadowTex' ( uniform texture2D) +0:7 'g_shadowSampler' ( uniform sampler) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:7 Constant: +0:7 0.000000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:9 Branch: Return with expression +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:6 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_shadowTex' ( uniform texture2D) +0:? 'g_shadowSampler' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out new file mode 100644 index 0000000000..f0ba44492e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -0,0 +1,581 @@ +hlsl.samplecmp.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r01' ( temp float) +0:42 textureOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r03' ( temp float) +0:43 textureOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r05' ( temp float) +0:44 textureOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r21' ( temp float) +0:47 textureOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r23' ( temp float) +0:48 textureOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r25' ( temp float) +0:49 textureOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:62 move second child to first child ( temp 4-component vector of float) +0:62 Color: direct index for structure ( temp 4-component vector of float) +0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:63 move second child to first child ( temp float) +0:63 Depth: direct index for structure ( temp float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r01' ( temp float) +0:42 textureOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r03' ( temp float) +0:43 textureOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r05' ( temp float) +0:44 textureOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r21' ( temp float) +0:47 textureOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r23' ( temp float) +0:48 textureOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r25' ( temp float) +0:49 textureOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:62 move second child to first child ( temp 4-component vector of float) +0:62 Color: direct index for structure ( temp 4-component vector of float) +0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:63 move second child to first child ( temp float) +0:63 Depth: direct index for structure ( temp float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 167 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 115 119 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r01" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 32 "r03" + Name 35 "g_tTex1di4" + Name 43 "r05" + Name 47 "g_tTex1du4" + Name 55 "r21" + Name 58 "g_tTex2df4" + Name 74 "r23" + Name 77 "g_tTex2di4" + Name 87 "r25" + Name 90 "g_tTex2du4" + Name 101 "psout" + Name 112 "flattenTemp" + Name 115 "@entryPointOutput.Color" + Name 119 "@entryPointOutput.Depth" + Name 124 "g_tTex3df4" + Name 127 "g_tTex3di4" + Name 130 "g_tTex3du4" + Name 133 "g_tTexcdf4" + Name 136 "g_tTexcdi4" + Name 139 "g_tTexcdu4" + Name 142 "g_tTex1df4a" + Name 145 "g_tTex1di4a" + Name 148 "g_tTex1du4a" + Name 151 "g_tTex2df4a" + Name 154 "g_tTex2di4a" + Name 157 "g_tTex2du4a" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 58(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 90(g_tTex2du4) DescriptorSet 0 + Decorate 115(@entryPointOutput.Color) Location 0 + Decorate 119(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 124(g_tTex3df4) DescriptorSet 0 + Decorate 127(g_tTex3di4) DescriptorSet 0 + Decorate 130(g_tTex3du4) DescriptorSet 0 + Decorate 133(g_tTexcdf4) DescriptorSet 0 + Decorate 136(g_tTexcdi4) DescriptorSet 0 + Decorate 139(g_tTexcdu4) DescriptorSet 0 + Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1di4a) DescriptorSet 0 + Decorate 148(g_tTex1du4a) DescriptorSet 0 + Decorate 151(g_tTex2df4a) DescriptorSet 0 + Decorate 154(g_tTex2di4a) DescriptorSet 0 + Decorate 157(g_tTex2du4a) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 26: TypeVector 6(float) 2 + 28: TypeInt 32 1 + 29: 28(int) Constant 2 + 33: TypeImage 28(int) 1D depth sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 38: TypeSampledImage 33 + 44: TypeInt 32 0 + 45: TypeImage 44(int) 1D depth sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 56: TypeImage 6(float) 2D depth sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4): 57(ptr) Variable UniformConstant + 61: TypeSampledImage 56 + 63: 6(float) Constant 1045220557 + 64: 26(fvec2) ConstantComposite 24 63 + 65: TypeVector 6(float) 3 + 69: TypeVector 28(int) 2 + 70: 28(int) Constant 3 + 71: 69(ivec2) ConstantComposite 29 70 + 75: TypeImage 28(int) 2D depth sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeSampledImage 75 + 88: TypeImage 44(int) 2D depth sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2du4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 100: TypePointer Function 8(PS_OUTPUT) + 102: 28(int) Constant 0 + 103: 6(float) Constant 1065353216 + 104: 7(fvec4) ConstantComposite 103 103 103 103 + 105: TypePointer Function 7(fvec4) + 107: 28(int) Constant 1 + 114: TypePointer Output 7(fvec4) +115(@entryPointOutput.Color): 114(ptr) Variable Output + 118: TypePointer Output 6(float) +119(@entryPointOutput.Depth): 118(ptr) Variable Output + 122: TypeImage 6(float) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3df4): 123(ptr) Variable UniformConstant + 125: TypeImage 28(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3di4): 126(ptr) Variable UniformConstant + 128: TypeImage 44(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdf4): 132(ptr) Variable UniformConstant + 134: TypeImage 28(int) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdi4): 135(ptr) Variable UniformConstant + 137: TypeImage 44(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdu4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 1D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex1df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 28(int) 1D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex1di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 44(int) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) 2D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex2df4a): 150(ptr) Variable UniformConstant + 152: TypeImage 28(int) 2D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex2di4a): 153(ptr) Variable UniformConstant + 155: TypeImage 44(int) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2du4a): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 28(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 44(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +112(flattenTemp): 100(ptr) Variable Function + 113:8(PS_OUTPUT) FunctionCall 10(@main() + Store 112(flattenTemp) 113 + 116: 105(ptr) AccessChain 112(flattenTemp) 102 + 117: 7(fvec4) Load 116 + Store 115(@entryPointOutput.Color) 117 + 120: 12(ptr) AccessChain 112(flattenTemp) 107 + 121: 6(float) Load 120 + Store 119(@entryPointOutput.Depth) 121 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r01): 12(ptr) Variable Function + 32(r03): 12(ptr) Variable Function + 43(r05): 12(ptr) Variable Function + 55(r21): 12(ptr) Variable Function + 74(r23): 12(ptr) Variable Function + 87(r25): 12(ptr) Variable Function + 101(psout): 100(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 26(fvec2) CompositeConstruct 24 25 + 30: 6(float) CompositeExtract 27 1 + 31: 6(float) ImageSampleDrefImplicitLod 23 27 30 ConstOffset 29 + Store 13(r01) 31 + 36: 33 Load 35(g_tTex1di4) + 37: 18 Load 20(g_sSamp) + 39: 38 SampledImage 36 37 + 40: 26(fvec2) CompositeConstruct 24 25 + 41: 6(float) CompositeExtract 40 1 + 42: 6(float) ImageSampleDrefImplicitLod 39 40 41 ConstOffset 29 + Store 32(r03) 42 + 48: 45 Load 47(g_tTex1du4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 52: 26(fvec2) CompositeConstruct 24 25 + 53: 6(float) CompositeExtract 52 1 + 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 29 + Store 43(r05) 54 + 59: 56 Load 58(g_tTex2df4) + 60: 18 Load 20(g_sSamp) + 62: 61 SampledImage 59 60 + 66: 6(float) CompositeExtract 64 0 + 67: 6(float) CompositeExtract 64 1 + 68: 65(fvec3) CompositeConstruct 66 67 25 + 72: 6(float) CompositeExtract 68 2 + 73: 6(float) ImageSampleDrefImplicitLod 62 68 72 ConstOffset 71 + Store 55(r21) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 18 Load 20(g_sSamp) + 81: 80 SampledImage 78 79 + 82: 6(float) CompositeExtract 64 0 + 83: 6(float) CompositeExtract 64 1 + 84: 65(fvec3) CompositeConstruct 82 83 25 + 85: 6(float) CompositeExtract 84 2 + 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 71 + Store 74(r23) 86 + 91: 88 Load 90(g_tTex2du4) + 92: 18 Load 20(g_sSamp) + 94: 93 SampledImage 91 92 + 95: 6(float) CompositeExtract 64 0 + 96: 6(float) CompositeExtract 64 1 + 97: 65(fvec3) CompositeConstruct 95 96 25 + 98: 6(float) CompositeExtract 97 2 + 99: 6(float) ImageSampleDrefImplicitLod 94 97 98 ConstOffset 71 + Store 87(r25) 99 + 106: 105(ptr) AccessChain 101(psout) 102 + Store 106 104 + 108: 12(ptr) AccessChain 101(psout) 107 + Store 108 103 + 109:8(PS_OUTPUT) Load 101(psout) + ReturnValue 109 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..ae6078cac7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -0,0 +1,604 @@ +hlsl.samplecmp.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r11' ( temp float) +0:42 textureOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r13' ( temp float) +0:43 textureOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r15' ( temp float) +0:44 textureOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r31' ( temp float) +0:47 textureOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r33' ( temp float) +0:48 textureOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r35' ( temp float) +0:49 textureOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child ( temp 4-component vector of float) +0:63 Color: direct index for structure ( temp 4-component vector of float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:64 move second child to first child ( temp float) +0:64 Depth: direct index for structure ( temp float) +0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r11' ( temp float) +0:42 textureOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r13' ( temp float) +0:43 textureOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r15' ( temp float) +0:44 textureOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r31' ( temp float) +0:47 textureOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r33' ( temp float) +0:48 textureOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r35' ( temp float) +0:49 textureOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child ( temp 4-component vector of float) +0:63 Color: direct index for structure ( temp 4-component vector of float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:64 move second child to first child ( temp float) +0:64 Depth: direct index for structure ( temp float) +0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 178 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 126 130 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r11" + Name 16 "g_tTex1df4a" + Name 20 "g_sSamp" + Name 37 "r13" + Name 40 "g_tTex1di4a" + Name 50 "r15" + Name 54 "g_tTex1du4a" + Name 64 "r31" + Name 67 "g_tTex2df4a" + Name 83 "r33" + Name 86 "g_tTex2di4a" + Name 97 "r35" + Name 100 "g_tTex2du4a" + Name 112 "psout" + Name 123 "flattenTemp" + Name 126 "@entryPointOutput.Color" + Name 130 "@entryPointOutput.Depth" + Name 135 "g_tTex1df4" + Name 138 "g_tTex1di4" + Name 141 "g_tTex1du4" + Name 144 "g_tTex2df4" + Name 147 "g_tTex2di4" + Name 150 "g_tTex2du4" + Name 153 "g_tTex3df4" + Name 156 "g_tTex3di4" + Name 159 "g_tTex3du4" + Name 162 "g_tTexcdf4" + Name 165 "g_tTexcdi4" + Name 168 "g_tTexcdu4" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" + Decorate 16(g_tTex1df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 40(g_tTex1di4a) DescriptorSet 0 + Decorate 54(g_tTex1du4a) DescriptorSet 0 + Decorate 67(g_tTex2df4a) DescriptorSet 0 + Decorate 86(g_tTex2di4a) DescriptorSet 0 + Decorate 100(g_tTex2du4a) DescriptorSet 0 + Decorate 126(@entryPointOutput.Color) Location 0 + Decorate 130(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 135(g_tTex1df4) DescriptorSet 0 + Decorate 135(g_tTex1df4) Binding 0 + Decorate 138(g_tTex1di4) DescriptorSet 0 + Decorate 141(g_tTex1du4) DescriptorSet 0 + Decorate 144(g_tTex2df4) DescriptorSet 0 + Decorate 147(g_tTex2di4) DescriptorSet 0 + Decorate 150(g_tTex2du4) DescriptorSet 0 + Decorate 153(g_tTex3df4) DescriptorSet 0 + Decorate 156(g_tTex3di4) DescriptorSet 0 + Decorate 159(g_tTex3du4) DescriptorSet 0 + Decorate 162(g_tTexcdf4) DescriptorSet 0 + Decorate 165(g_tTexcdi4) DescriptorSet 0 + Decorate 168(g_tTexcdu4) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1061158912 + 29: TypeVector 6(float) 3 + 33: TypeInt 32 1 + 34: 33(int) Constant 2 + 38: TypeImage 33(int) 1D depth array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1di4a): 39(ptr) Variable UniformConstant + 43: TypeSampledImage 38 + 51: TypeInt 32 0 + 52: TypeImage 51(int) 1D depth array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex1du4a): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 65: TypeImage 6(float) 2D depth array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2df4a): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1050253722 + 73: 29(fvec3) ConstantComposite 25 26 72 + 78: TypeVector 33(int) 2 + 79: 33(int) Constant 3 + 80: 78(ivec2) ConstantComposite 34 79 + 84: TypeImage 33(int) 2D depth array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2di4a): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 98: TypeImage 51(int) 2D depth array sampled format:Unknown + 99: TypePointer UniformConstant 98 +100(g_tTex2du4a): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 111: TypePointer Function 8(PS_OUTPUT) + 113: 33(int) Constant 0 + 114: 6(float) Constant 1065353216 + 115: 7(fvec4) ConstantComposite 114 114 114 114 + 116: TypePointer Function 7(fvec4) + 118: 33(int) Constant 1 + 125: TypePointer Output 7(fvec4) +126(@entryPointOutput.Color): 125(ptr) Variable Output + 129: TypePointer Output 6(float) +130(@entryPointOutput.Depth): 129(ptr) Variable Output + 133: TypeImage 6(float) 1D sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTex1df4): 134(ptr) Variable UniformConstant + 136: TypeImage 33(int) 1D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex1di4): 137(ptr) Variable UniformConstant + 139: TypeImage 51(int) 1D sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTex1du4): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex2df4): 143(ptr) Variable UniformConstant + 145: TypeImage 33(int) 2D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex2di4): 146(ptr) Variable UniformConstant + 148: TypeImage 51(int) 2D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex2du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 3D sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTex3df4): 152(ptr) Variable UniformConstant + 154: TypeImage 33(int) 3D sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTex3di4): 155(ptr) Variable UniformConstant + 157: TypeImage 51(int) 3D sampled format:Unknown + 158: TypePointer UniformConstant 157 + 159(g_tTex3du4): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) Cube sampled format:Unknown + 161: TypePointer UniformConstant 160 + 162(g_tTexcdf4): 161(ptr) Variable UniformConstant + 163: TypeImage 33(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdi4): 164(ptr) Variable UniformConstant + 166: TypeImage 51(int) Cube sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTexcdu4): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 33(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 51(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +123(flattenTemp): 111(ptr) Variable Function + 124:8(PS_OUTPUT) FunctionCall 10(@main() + Store 123(flattenTemp) 124 + 127: 116(ptr) AccessChain 123(flattenTemp) 113 + 128: 7(fvec4) Load 127 + Store 126(@entryPointOutput.Color) 128 + 131: 12(ptr) AccessChain 123(flattenTemp) 118 + 132: 6(float) Load 131 + Store 130(@entryPointOutput.Depth) 132 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r11): 12(ptr) Variable Function + 37(r13): 12(ptr) Variable Function + 50(r15): 12(ptr) Variable Function + 64(r31): 12(ptr) Variable Function + 83(r33): 12(ptr) Variable Function + 97(r35): 12(ptr) Variable Function + 112(psout): 111(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 6(float) CompositeExtract 27 0 + 31: 6(float) CompositeExtract 27 1 + 32: 29(fvec3) CompositeConstruct 30 31 28 + 35: 6(float) CompositeExtract 32 2 + 36: 6(float) ImageSampleDrefImplicitLod 23 32 35 ConstOffset 34 + Store 13(r11) 36 + 41: 38 Load 40(g_tTex1di4a) + 42: 18 Load 20(g_sSamp) + 44: 43 SampledImage 41 42 + 45: 6(float) CompositeExtract 27 0 + 46: 6(float) CompositeExtract 27 1 + 47: 29(fvec3) CompositeConstruct 45 46 28 + 48: 6(float) CompositeExtract 47 2 + 49: 6(float) ImageSampleDrefImplicitLod 44 47 48 ConstOffset 34 + Store 37(r13) 49 + 55: 52 Load 54(g_tTex1du4a) + 56: 18 Load 20(g_sSamp) + 58: 57 SampledImage 55 56 + 59: 6(float) CompositeExtract 27 0 + 60: 6(float) CompositeExtract 27 1 + 61: 29(fvec3) CompositeConstruct 59 60 28 + 62: 6(float) CompositeExtract 61 2 + 63: 6(float) ImageSampleDrefImplicitLod 58 61 62 ConstOffset 34 + Store 50(r15) 63 + 68: 65 Load 67(g_tTex2df4a) + 69: 18 Load 20(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 6(float) CompositeExtract 73 0 + 75: 6(float) CompositeExtract 73 1 + 76: 6(float) CompositeExtract 73 2 + 77: 7(fvec4) CompositeConstruct 74 75 76 28 + 81: 6(float) CompositeExtract 77 3 + 82: 6(float) ImageSampleDrefImplicitLod 71 77 81 ConstOffset 80 + Store 64(r31) 82 + 87: 84 Load 86(g_tTex2di4a) + 88: 18 Load 20(g_sSamp) + 90: 89 SampledImage 87 88 + 91: 6(float) CompositeExtract 73 0 + 92: 6(float) CompositeExtract 73 1 + 93: 6(float) CompositeExtract 73 2 + 94: 7(fvec4) CompositeConstruct 91 92 93 28 + 95: 6(float) CompositeExtract 94 3 + 96: 6(float) ImageSampleDrefImplicitLod 90 94 95 ConstOffset 80 + Store 83(r33) 96 + 101: 98 Load 100(g_tTex2du4a) + 102: 18 Load 20(g_sSamp) + 104: 103 SampledImage 101 102 + 105: 6(float) CompositeExtract 73 0 + 106: 6(float) CompositeExtract 73 1 + 107: 6(float) CompositeExtract 73 2 + 108: 7(fvec4) CompositeConstruct 105 106 107 28 + 109: 6(float) CompositeExtract 108 3 + 110: 6(float) ImageSampleDrefImplicitLod 104 108 109 ConstOffset 80 + Store 97(r35) 110 + 117: 116(ptr) AccessChain 112(psout) 113 + Store 117 115 + 119: 12(ptr) AccessChain 112(psout) 118 + Store 119 114 + 120:8(PS_OUTPUT) Load 112(psout) + ReturnValue 120 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out new file mode 100644 index 0000000000..ae5b118963 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -0,0 +1,738 @@ +hlsl.samplecmplevelzero.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r10' ( temp float) +0:42 textureLod ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r12' ( temp float) +0:43 textureLod ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r14' ( temp float) +0:44 textureLod ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r30' ( temp float) +0:47 textureLod ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r32' ( temp float) +0:48 textureLod ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r34' ( temp float) +0:49 textureLod ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r60' ( temp float) +0:52 textureLod ( temp float) +0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r62' ( temp float) +0:53 textureLod ( temp float) +0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r64' ( temp float) +0:54 textureLod ( temp float) +0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:56 move second child to first child ( temp 4-component vector of float) +0:56 Color: direct index for structure ( temp 4-component vector of float) +0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:57 move second child to first child ( temp float) +0:57 Depth: direct index for structure ( temp float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r10' ( temp float) +0:42 textureLod ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r12' ( temp float) +0:43 textureLod ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r14' ( temp float) +0:44 textureLod ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r30' ( temp float) +0:47 textureLod ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r32' ( temp float) +0:48 textureLod ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r34' ( temp float) +0:49 textureLod ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'r60' ( temp float) +0:52 textureLod ( temp float) +0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:52 'g_sSamp' (layout( binding=0) uniform sampler) +0:52 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r62' ( temp float) +0:53 textureLod ( temp float) +0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r64' ( temp float) +0:54 textureLod ( temp float) +0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:56 move second child to first child ( temp 4-component vector of float) +0:56 Color: direct index for structure ( temp 4-component vector of float) +0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:57 move second child to first child ( temp float) +0:57 Depth: direct index for structure ( temp float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 210 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 167 171 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r10" + Name 16 "g_tTex1df4a" + Name 20 "g_sSamp" + Name 36 "r12" + Name 40 "g_tTex1di4a" + Name 50 "r14" + Name 54 "g_tTex1du4a" + Name 64 "r30" + Name 67 "g_tTex2df4a" + Name 80 "r32" + Name 83 "g_tTex2di4a" + Name 94 "r34" + Name 97 "g_tTex2du4a" + Name 108 "r60" + Name 111 "g_tTexcdf4a" + Name 124 "r62" + Name 127 "g_tTexcdi4a" + Name 138 "r64" + Name 141 "g_tTexcdu4a" + Name 153 "psout" + Name 164 "flattenTemp" + Name 167 "@entryPointOutput.Color" + Name 171 "@entryPointOutput.Depth" + Name 176 "g_tTex1df4" + Name 179 "g_tTex1di4" + Name 182 "g_tTex1du4" + Name 185 "g_tTex2df4" + Name 188 "g_tTex2di4" + Name 191 "g_tTex2du4" + Name 194 "g_tTex3df4" + Name 197 "g_tTex3di4" + Name 200 "g_tTex3du4" + Name 203 "g_tTexcdf4" + Name 206 "g_tTexcdi4" + Name 209 "g_tTexcdu4" + Decorate 16(g_tTex1df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 40(g_tTex1di4a) DescriptorSet 0 + Decorate 54(g_tTex1du4a) DescriptorSet 0 + Decorate 67(g_tTex2df4a) DescriptorSet 0 + Decorate 83(g_tTex2di4a) DescriptorSet 0 + Decorate 97(g_tTex2du4a) DescriptorSet 0 + Decorate 111(g_tTexcdf4a) DescriptorSet 0 + Decorate 127(g_tTexcdi4a) DescriptorSet 0 + Decorate 141(g_tTexcdu4a) DescriptorSet 0 + Decorate 167(@entryPointOutput.Color) Location 0 + Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 176(g_tTex1df4) DescriptorSet 0 + Decorate 176(g_tTex1df4) Binding 0 + Decorate 179(g_tTex1di4) DescriptorSet 0 + Decorate 182(g_tTex1du4) DescriptorSet 0 + Decorate 185(g_tTex2df4) DescriptorSet 0 + Decorate 188(g_tTex2di4) DescriptorSet 0 + Decorate 191(g_tTex2du4) DescriptorSet 0 + Decorate 194(g_tTex3df4) DescriptorSet 0 + Decorate 197(g_tTex3di4) DescriptorSet 0 + Decorate 200(g_tTex3du4) DescriptorSet 0 + Decorate 203(g_tTexcdf4) DescriptorSet 0 + Decorate 206(g_tTexcdi4) DescriptorSet 0 + Decorate 209(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1061158912 + 29: TypeVector 6(float) 3 + 33: 6(float) Constant 0 + 37: TypeInt 32 1 + 38: TypeImage 37(int) 1D depth array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1di4a): 39(ptr) Variable UniformConstant + 43: TypeSampledImage 38 + 51: TypeInt 32 0 + 52: TypeImage 51(int) 1D depth array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex1du4a): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 65: TypeImage 6(float) 2D depth array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2df4a): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1050253722 + 73: 29(fvec3) ConstantComposite 25 26 72 + 81: TypeImage 37(int) 2D depth array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2di4a): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 95: TypeImage 51(int) 2D depth array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex2du4a): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 109: TypeImage 6(float) Cube depth array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTexcdf4a): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1053609165 + 117: 7(fvec4) ConstantComposite 25 26 72 116 + 125: TypeImage 37(int) Cube depth array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTexcdi4a): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 139: TypeImage 51(int) Cube depth array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTexcdu4a): 140(ptr) Variable UniformConstant + 144: TypeSampledImage 139 + 152: TypePointer Function 8(PS_OUTPUT) + 154: 37(int) Constant 0 + 155: 6(float) Constant 1065353216 + 156: 7(fvec4) ConstantComposite 155 155 155 155 + 157: TypePointer Function 7(fvec4) + 159: 37(int) Constant 1 + 166: TypePointer Output 7(fvec4) +167(@entryPointOutput.Color): 166(ptr) Variable Output + 170: TypePointer Output 6(float) +171(@entryPointOutput.Depth): 170(ptr) Variable Output + 174: TypeImage 6(float) 1D sampled format:Unknown + 175: TypePointer UniformConstant 174 + 176(g_tTex1df4): 175(ptr) Variable UniformConstant + 177: TypeImage 37(int) 1D sampled format:Unknown + 178: TypePointer UniformConstant 177 + 179(g_tTex1di4): 178(ptr) Variable UniformConstant + 180: TypeImage 51(int) 1D sampled format:Unknown + 181: TypePointer UniformConstant 180 + 182(g_tTex1du4): 181(ptr) Variable UniformConstant + 183: TypeImage 6(float) 2D sampled format:Unknown + 184: TypePointer UniformConstant 183 + 185(g_tTex2df4): 184(ptr) Variable UniformConstant + 186: TypeImage 37(int) 2D sampled format:Unknown + 187: TypePointer UniformConstant 186 + 188(g_tTex2di4): 187(ptr) Variable UniformConstant + 189: TypeImage 51(int) 2D sampled format:Unknown + 190: TypePointer UniformConstant 189 + 191(g_tTex2du4): 190(ptr) Variable UniformConstant + 192: TypeImage 6(float) 3D sampled format:Unknown + 193: TypePointer UniformConstant 192 + 194(g_tTex3df4): 193(ptr) Variable UniformConstant + 195: TypeImage 37(int) 3D sampled format:Unknown + 196: TypePointer UniformConstant 195 + 197(g_tTex3di4): 196(ptr) Variable UniformConstant + 198: TypeImage 51(int) 3D sampled format:Unknown + 199: TypePointer UniformConstant 198 + 200(g_tTex3du4): 199(ptr) Variable UniformConstant + 201: TypeImage 6(float) Cube sampled format:Unknown + 202: TypePointer UniformConstant 201 + 203(g_tTexcdf4): 202(ptr) Variable UniformConstant + 204: TypeImage 37(int) Cube sampled format:Unknown + 205: TypePointer UniformConstant 204 + 206(g_tTexcdi4): 205(ptr) Variable UniformConstant + 207: TypeImage 51(int) Cube sampled format:Unknown + 208: TypePointer UniformConstant 207 + 209(g_tTexcdu4): 208(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +164(flattenTemp): 152(ptr) Variable Function + 165:8(PS_OUTPUT) FunctionCall 10(@main() + Store 164(flattenTemp) 165 + 168: 157(ptr) AccessChain 164(flattenTemp) 154 + 169: 7(fvec4) Load 168 + Store 167(@entryPointOutput.Color) 169 + 172: 12(ptr) AccessChain 164(flattenTemp) 159 + 173: 6(float) Load 172 + Store 171(@entryPointOutput.Depth) 173 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r10): 12(ptr) Variable Function + 36(r12): 12(ptr) Variable Function + 50(r14): 12(ptr) Variable Function + 64(r30): 12(ptr) Variable Function + 80(r32): 12(ptr) Variable Function + 94(r34): 12(ptr) Variable Function + 108(r60): 12(ptr) Variable Function + 124(r62): 12(ptr) Variable Function + 138(r64): 12(ptr) Variable Function + 153(psout): 152(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 6(float) CompositeExtract 27 0 + 31: 6(float) CompositeExtract 27 1 + 32: 29(fvec3) CompositeConstruct 30 31 28 + 34: 6(float) CompositeExtract 32 2 + 35: 6(float) ImageSampleDrefExplicitLod 23 32 34 Lod 33 + Store 13(r10) 35 + 41: 38 Load 40(g_tTex1di4a) + 42: 18 Load 20(g_sSamp) + 44: 43 SampledImage 41 42 + 45: 6(float) CompositeExtract 27 0 + 46: 6(float) CompositeExtract 27 1 + 47: 29(fvec3) CompositeConstruct 45 46 28 + 48: 6(float) CompositeExtract 47 2 + 49: 6(float) ImageSampleDrefExplicitLod 44 47 48 Lod 33 + Store 36(r12) 49 + 55: 52 Load 54(g_tTex1du4a) + 56: 18 Load 20(g_sSamp) + 58: 57 SampledImage 55 56 + 59: 6(float) CompositeExtract 27 0 + 60: 6(float) CompositeExtract 27 1 + 61: 29(fvec3) CompositeConstruct 59 60 28 + 62: 6(float) CompositeExtract 61 2 + 63: 6(float) ImageSampleDrefExplicitLod 58 61 62 Lod 33 + Store 50(r14) 63 + 68: 65 Load 67(g_tTex2df4a) + 69: 18 Load 20(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 6(float) CompositeExtract 73 0 + 75: 6(float) CompositeExtract 73 1 + 76: 6(float) CompositeExtract 73 2 + 77: 7(fvec4) CompositeConstruct 74 75 76 28 + 78: 6(float) CompositeExtract 77 3 + 79: 6(float) ImageSampleDrefExplicitLod 71 77 78 Lod 33 + Store 64(r30) 79 + 84: 81 Load 83(g_tTex2di4a) + 85: 18 Load 20(g_sSamp) + 87: 86 SampledImage 84 85 + 88: 6(float) CompositeExtract 73 0 + 89: 6(float) CompositeExtract 73 1 + 90: 6(float) CompositeExtract 73 2 + 91: 7(fvec4) CompositeConstruct 88 89 90 28 + 92: 6(float) CompositeExtract 91 3 + 93: 6(float) ImageSampleDrefExplicitLod 87 91 92 Lod 33 + Store 80(r32) 93 + 98: 95 Load 97(g_tTex2du4a) + 99: 18 Load 20(g_sSamp) + 101: 100 SampledImage 98 99 + 102: 6(float) CompositeExtract 73 0 + 103: 6(float) CompositeExtract 73 1 + 104: 6(float) CompositeExtract 73 2 + 105: 7(fvec4) CompositeConstruct 102 103 104 28 + 106: 6(float) CompositeExtract 105 3 + 107: 6(float) ImageSampleDrefExplicitLod 101 105 106 Lod 33 + Store 94(r34) 107 + 112: 109 Load 111(g_tTexcdf4a) + 113: 18 Load 20(g_sSamp) + 115: 114 SampledImage 112 113 + 118: 6(float) CompositeExtract 117 0 + 119: 6(float) CompositeExtract 117 1 + 120: 6(float) CompositeExtract 117 2 + 121: 6(float) CompositeExtract 117 3 + 122: 7(fvec4) CompositeConstruct 118 119 120 121 + 123: 6(float) ImageSampleDrefExplicitLod 115 122 28 Lod 33 + Store 108(r60) 123 + 128: 125 Load 127(g_tTexcdi4a) + 129: 18 Load 20(g_sSamp) + 131: 130 SampledImage 128 129 + 132: 6(float) CompositeExtract 117 0 + 133: 6(float) CompositeExtract 117 1 + 134: 6(float) CompositeExtract 117 2 + 135: 6(float) CompositeExtract 117 3 + 136: 7(fvec4) CompositeConstruct 132 133 134 135 + 137: 6(float) ImageSampleDrefExplicitLod 131 136 28 Lod 33 + Store 124(r62) 137 + 142: 139 Load 141(g_tTexcdu4a) + 143: 18 Load 20(g_sSamp) + 145: 144 SampledImage 142 143 + 146: 6(float) CompositeExtract 117 0 + 147: 6(float) CompositeExtract 117 1 + 148: 6(float) CompositeExtract 117 2 + 149: 6(float) CompositeExtract 117 3 + 150: 7(fvec4) CompositeConstruct 146 147 148 149 + 151: 6(float) ImageSampleDrefExplicitLod 145 150 28 Lod 33 + Store 138(r64) 151 + 158: 157(ptr) AccessChain 153(psout) 154 + Store 158 156 + 160: 12(ptr) AccessChain 153(psout) 159 + Store 160 155 + 161:8(PS_OUTPUT) Load 153(psout) + ReturnValue 161 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out new file mode 100644 index 0000000000..53ecbf2e06 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -0,0 +1,709 @@ +hlsl.samplecmplevelzero.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r00' ( temp float) +0:42 textureLod ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r02' ( temp float) +0:43 textureLod ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r04' ( temp float) +0:44 textureLod ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r20' ( temp float) +0:47 textureLod ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r22' ( temp float) +0:48 textureLod ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r24' ( temp float) +0:49 textureLod ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r50' ( temp float) +0:53 textureLod ( temp float) +0:53 Construct combined texture-sampler ( temp samplerCubeShadow) +0:53 'g_tTexcdf4' ( uniform textureCubeShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r52' ( temp float) +0:54 textureLod ( temp float) +0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) +0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'r54' ( temp float) +0:55 textureLod ( temp float) +0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) +0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:55 'g_sSamp' (layout( binding=0) uniform sampler) +0:55 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:55 Constant: +0:55 0.000000 +0:57 move second child to first child ( temp 4-component vector of float) +0:57 Color: direct index for structure ( temp 4-component vector of float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:58 move second child to first child ( temp float) +0:58 Depth: direct index for structure ( temp float) +0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCubeShadow) +0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r00' ( temp float) +0:42 textureLod ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r02' ( temp float) +0:43 textureLod ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r04' ( temp float) +0:44 textureLod ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r20' ( temp float) +0:47 textureLod ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r22' ( temp float) +0:48 textureLod ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r24' ( temp float) +0:49 textureLod ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'r50' ( temp float) +0:53 textureLod ( temp float) +0:53 Construct combined texture-sampler ( temp samplerCubeShadow) +0:53 'g_tTexcdf4' ( uniform textureCubeShadow) +0:53 'g_sSamp' (layout( binding=0) uniform sampler) +0:53 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'r52' ( temp float) +0:54 textureLod ( temp float) +0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) +0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:54 'g_sSamp' (layout( binding=0) uniform sampler) +0:54 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'r54' ( temp float) +0:55 textureLod ( temp float) +0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) +0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:55 'g_sSamp' (layout( binding=0) uniform sampler) +0:55 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:55 Constant: +0:55 0.000000 +0:57 move second child to first child ( temp 4-component vector of float) +0:57 Color: direct index for structure ( temp 4-component vector of float) +0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:58 move second child to first child ( temp float) +0:58 Depth: direct index for structure ( temp float) +0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCubeShadow) +0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) +0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 199 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 156 160 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r00" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 31 "r02" + Name 35 "g_tTex1di4" + Name 43 "r04" + Name 47 "g_tTex1du4" + Name 55 "r20" + Name 58 "g_tTex2df4" + Name 71 "r22" + Name 74 "g_tTex2di4" + Name 84 "r24" + Name 87 "g_tTex2du4" + Name 97 "r50" + Name 100 "g_tTexcdf4" + Name 113 "r52" + Name 116 "g_tTexcdi4" + Name 127 "r54" + Name 130 "g_tTexcdu4" + Name 142 "psout" + Name 153 "flattenTemp" + Name 156 "@entryPointOutput.Color" + Name 160 "@entryPointOutput.Depth" + Name 165 "g_tTex3df4" + Name 168 "g_tTex3di4" + Name 171 "g_tTex3du4" + Name 174 "g_tTex1df4a" + Name 177 "g_tTex1di4a" + Name 180 "g_tTex1du4a" + Name 183 "g_tTex2df4a" + Name 186 "g_tTex2di4a" + Name 189 "g_tTex2du4a" + Name 192 "g_tTexcdf4a" + Name 195 "g_tTexcdi4a" + Name 198 "g_tTexcdu4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 58(g_tTex2df4) DescriptorSet 0 + Decorate 74(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 116(g_tTexcdi4) DescriptorSet 0 + Decorate 130(g_tTexcdu4) DescriptorSet 0 + Decorate 156(@entryPointOutput.Color) Location 0 + Decorate 160(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 165(g_tTex3df4) DescriptorSet 0 + Decorate 168(g_tTex3di4) DescriptorSet 0 + Decorate 171(g_tTex3du4) DescriptorSet 0 + Decorate 174(g_tTex1df4a) DescriptorSet 0 + Decorate 177(g_tTex1di4a) DescriptorSet 0 + Decorate 180(g_tTex1du4a) DescriptorSet 0 + Decorate 183(g_tTex2df4a) DescriptorSet 0 + Decorate 186(g_tTex2di4a) DescriptorSet 0 + Decorate 189(g_tTex2du4a) DescriptorSet 0 + Decorate 192(g_tTexcdf4a) DescriptorSet 0 + Decorate 195(g_tTexcdi4a) DescriptorSet 0 + Decorate 198(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 26: TypeVector 6(float) 2 + 28: 6(float) Constant 0 + 32: TypeInt 32 1 + 33: TypeImage 32(int) 1D depth sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 38: TypeSampledImage 33 + 44: TypeInt 32 0 + 45: TypeImage 44(int) 1D depth sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 56: TypeImage 6(float) 2D depth sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4): 57(ptr) Variable UniformConstant + 61: TypeSampledImage 56 + 63: 6(float) Constant 1045220557 + 64: 26(fvec2) ConstantComposite 24 63 + 65: TypeVector 6(float) 3 + 72: TypeImage 32(int) 2D depth sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2di4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 85: TypeImage 44(int) 2D depth sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 98: TypeImage 6(float) Cube depth sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 6(float) Constant 1050253722 + 106: 65(fvec3) ConstantComposite 24 63 105 + 114: TypeImage 32(int) Cube depth sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTexcdi4): 115(ptr) Variable UniformConstant + 119: TypeSampledImage 114 + 128: TypeImage 44(int) Cube depth sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTexcdu4): 129(ptr) Variable UniformConstant + 133: TypeSampledImage 128 + 141: TypePointer Function 8(PS_OUTPUT) + 143: 32(int) Constant 0 + 144: 6(float) Constant 1065353216 + 145: 7(fvec4) ConstantComposite 144 144 144 144 + 146: TypePointer Function 7(fvec4) + 148: 32(int) Constant 1 + 155: TypePointer Output 7(fvec4) +156(@entryPointOutput.Color): 155(ptr) Variable Output + 159: TypePointer Output 6(float) +160(@entryPointOutput.Depth): 159(ptr) Variable Output + 163: TypeImage 6(float) 3D sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTex3df4): 164(ptr) Variable UniformConstant + 166: TypeImage 32(int) 3D sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTex3di4): 167(ptr) Variable UniformConstant + 169: TypeImage 44(int) 3D sampled format:Unknown + 170: TypePointer UniformConstant 169 + 171(g_tTex3du4): 170(ptr) Variable UniformConstant + 172: TypeImage 6(float) 1D array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTex1df4a): 173(ptr) Variable UniformConstant + 175: TypeImage 32(int) 1D array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTex1di4a): 176(ptr) Variable UniformConstant + 178: TypeImage 44(int) 1D array sampled format:Unknown + 179: TypePointer UniformConstant 178 +180(g_tTex1du4a): 179(ptr) Variable UniformConstant + 181: TypeImage 6(float) 2D array sampled format:Unknown + 182: TypePointer UniformConstant 181 +183(g_tTex2df4a): 182(ptr) Variable UniformConstant + 184: TypeImage 32(int) 2D array sampled format:Unknown + 185: TypePointer UniformConstant 184 +186(g_tTex2di4a): 185(ptr) Variable UniformConstant + 187: TypeImage 44(int) 2D array sampled format:Unknown + 188: TypePointer UniformConstant 187 +189(g_tTex2du4a): 188(ptr) Variable UniformConstant + 190: TypeImage 6(float) Cube array sampled format:Unknown + 191: TypePointer UniformConstant 190 +192(g_tTexcdf4a): 191(ptr) Variable UniformConstant + 193: TypeImage 32(int) Cube array sampled format:Unknown + 194: TypePointer UniformConstant 193 +195(g_tTexcdi4a): 194(ptr) Variable UniformConstant + 196: TypeImage 44(int) Cube array sampled format:Unknown + 197: TypePointer UniformConstant 196 +198(g_tTexcdu4a): 197(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +153(flattenTemp): 141(ptr) Variable Function + 154:8(PS_OUTPUT) FunctionCall 10(@main() + Store 153(flattenTemp) 154 + 157: 146(ptr) AccessChain 153(flattenTemp) 143 + 158: 7(fvec4) Load 157 + Store 156(@entryPointOutput.Color) 158 + 161: 12(ptr) AccessChain 153(flattenTemp) 148 + 162: 6(float) Load 161 + Store 160(@entryPointOutput.Depth) 162 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 31(r02): 12(ptr) Variable Function + 43(r04): 12(ptr) Variable Function + 55(r20): 12(ptr) Variable Function + 71(r22): 12(ptr) Variable Function + 84(r24): 12(ptr) Variable Function + 97(r50): 12(ptr) Variable Function + 113(r52): 12(ptr) Variable Function + 127(r54): 12(ptr) Variable Function + 142(psout): 141(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 26(fvec2) CompositeConstruct 24 25 + 29: 6(float) CompositeExtract 27 1 + 30: 6(float) ImageSampleDrefExplicitLod 23 27 29 Lod 28 + Store 13(r00) 30 + 36: 33 Load 35(g_tTex1di4) + 37: 18 Load 20(g_sSamp) + 39: 38 SampledImage 36 37 + 40: 26(fvec2) CompositeConstruct 24 25 + 41: 6(float) CompositeExtract 40 1 + 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod 28 + Store 31(r02) 42 + 48: 45 Load 47(g_tTex1du4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 52: 26(fvec2) CompositeConstruct 24 25 + 53: 6(float) CompositeExtract 52 1 + 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 28 + Store 43(r04) 54 + 59: 56 Load 58(g_tTex2df4) + 60: 18 Load 20(g_sSamp) + 62: 61 SampledImage 59 60 + 66: 6(float) CompositeExtract 64 0 + 67: 6(float) CompositeExtract 64 1 + 68: 65(fvec3) CompositeConstruct 66 67 25 + 69: 6(float) CompositeExtract 68 2 + 70: 6(float) ImageSampleDrefExplicitLod 62 68 69 Lod 28 + Store 55(r20) 70 + 75: 72 Load 74(g_tTex2di4) + 76: 18 Load 20(g_sSamp) + 78: 77 SampledImage 75 76 + 79: 6(float) CompositeExtract 64 0 + 80: 6(float) CompositeExtract 64 1 + 81: 65(fvec3) CompositeConstruct 79 80 25 + 82: 6(float) CompositeExtract 81 2 + 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 28 + Store 71(r22) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 18 Load 20(g_sSamp) + 91: 90 SampledImage 88 89 + 92: 6(float) CompositeExtract 64 0 + 93: 6(float) CompositeExtract 64 1 + 94: 65(fvec3) CompositeConstruct 92 93 25 + 95: 6(float) CompositeExtract 94 2 + 96: 6(float) ImageSampleDrefExplicitLod 91 94 95 Lod 28 + Store 84(r24) 96 + 101: 98 Load 100(g_tTexcdf4) + 102: 18 Load 20(g_sSamp) + 104: 103 SampledImage 101 102 + 107: 6(float) CompositeExtract 106 0 + 108: 6(float) CompositeExtract 106 1 + 109: 6(float) CompositeExtract 106 2 + 110: 7(fvec4) CompositeConstruct 107 108 109 25 + 111: 6(float) CompositeExtract 110 3 + 112: 6(float) ImageSampleDrefExplicitLod 104 110 111 Lod 28 + Store 97(r50) 112 + 117: 114 Load 116(g_tTexcdi4) + 118: 18 Load 20(g_sSamp) + 120: 119 SampledImage 117 118 + 121: 6(float) CompositeExtract 106 0 + 122: 6(float) CompositeExtract 106 1 + 123: 6(float) CompositeExtract 106 2 + 124: 7(fvec4) CompositeConstruct 121 122 123 25 + 125: 6(float) CompositeExtract 124 3 + 126: 6(float) ImageSampleDrefExplicitLod 120 124 125 Lod 28 + Store 113(r52) 126 + 131: 128 Load 130(g_tTexcdu4) + 132: 18 Load 20(g_sSamp) + 134: 133 SampledImage 131 132 + 135: 6(float) CompositeExtract 106 0 + 136: 6(float) CompositeExtract 106 1 + 137: 6(float) CompositeExtract 106 2 + 138: 7(fvec4) CompositeConstruct 135 136 137 25 + 139: 6(float) CompositeExtract 138 3 + 140: 6(float) ImageSampleDrefExplicitLod 134 138 139 Lod 28 + Store 127(r54) 140 + 147: 146(ptr) AccessChain 142(psout) 143 + Store 147 145 + 149: 12(ptr) AccessChain 142(psout) 148 + Store 149 144 + 150:8(PS_OUTPUT) Load 142(psout) + ReturnValue 150 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out new file mode 100644 index 0000000000..1d4f2cdec4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -0,0 +1,606 @@ +hlsl.samplecmplevelzero.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r01' ( temp float) +0:42 textureLodOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r03' ( temp float) +0:43 textureLodOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r05' ( temp float) +0:44 textureLodOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r21' ( temp float) +0:47 textureLodOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r23' ( temp float) +0:48 textureLodOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r25' ( temp float) +0:49 textureLodOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:62 move second child to first child ( temp 4-component vector of float) +0:62 Color: direct index for structure ( temp 4-component vector of float) +0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:63 move second child to first child ( temp float) +0:63 Depth: direct index for structure ( temp float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r01' ( temp float) +0:42 textureLodOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DShadow) +0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec2 ( temp 2-component vector of float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r03' ( temp float) +0:43 textureLodOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DShadow) +0:43 'g_tTex1di4' ( uniform itexture1DShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec2 ( temp 2-component vector of float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r05' ( temp float) +0:44 textureLodOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DShadow) +0:44 'g_tTex1du4' ( uniform utexture1DShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec2 ( temp 2-component vector of float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r21' ( temp float) +0:47 textureLodOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DShadow) +0:47 'g_tTex2df4' ( uniform texture2DShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r23' ( temp float) +0:48 textureLodOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DShadow) +0:48 'g_tTex2di4' ( uniform itexture2DShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r25' ( temp float) +0:49 textureLodOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DShadow) +0:49 'g_tTex2du4' ( uniform utexture2DShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:62 move second child to first child ( temp 4-component vector of float) +0:62 Color: direct index for structure ( temp 4-component vector of float) +0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:63 move second child to first child ( temp float) +0:63 Depth: direct index for structure ( temp float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) +0:? 'g_tTex1di4' ( uniform itexture1DShadow) +0:? 'g_tTex1du4' ( uniform utexture1DShadow) +0:? 'g_tTex2df4' ( uniform texture2DShadow) +0:? 'g_tTex2di4' ( uniform itexture2DShadow) +0:? 'g_tTex2du4' ( uniform utexture2DShadow) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 168 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 116 120 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r01" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 33 "r03" + Name 36 "g_tTex1di4" + Name 44 "r05" + Name 48 "g_tTex1du4" + Name 56 "r21" + Name 59 "g_tTex2df4" + Name 75 "r23" + Name 78 "g_tTex2di4" + Name 88 "r25" + Name 91 "g_tTex2du4" + Name 102 "psout" + Name 113 "flattenTemp" + Name 116 "@entryPointOutput.Color" + Name 120 "@entryPointOutput.Depth" + Name 125 "g_tTex3df4" + Name 128 "g_tTex3di4" + Name 131 "g_tTex3du4" + Name 134 "g_tTexcdf4" + Name 137 "g_tTexcdi4" + Name 140 "g_tTexcdu4" + Name 143 "g_tTex1df4a" + Name 146 "g_tTex1di4a" + Name 149 "g_tTex1du4a" + Name 152 "g_tTex2df4a" + Name 155 "g_tTex2di4a" + Name 158 "g_tTex2du4a" + Name 161 "g_tTexcdf4a" + Name 164 "g_tTexcdi4a" + Name 167 "g_tTexcdu4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 36(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 59(g_tTex2df4) DescriptorSet 0 + Decorate 78(g_tTex2di4) DescriptorSet 0 + Decorate 91(g_tTex2du4) DescriptorSet 0 + Decorate 116(@entryPointOutput.Color) Location 0 + Decorate 120(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 125(g_tTex3df4) DescriptorSet 0 + Decorate 128(g_tTex3di4) DescriptorSet 0 + Decorate 131(g_tTex3du4) DescriptorSet 0 + Decorate 134(g_tTexcdf4) DescriptorSet 0 + Decorate 137(g_tTexcdi4) DescriptorSet 0 + Decorate 140(g_tTexcdu4) DescriptorSet 0 + Decorate 143(g_tTex1df4a) DescriptorSet 0 + Decorate 146(g_tTex1di4a) DescriptorSet 0 + Decorate 149(g_tTex1du4a) DescriptorSet 0 + Decorate 152(g_tTex2df4a) DescriptorSet 0 + Decorate 155(g_tTex2di4a) DescriptorSet 0 + Decorate 158(g_tTex2du4a) DescriptorSet 0 + Decorate 161(g_tTexcdf4a) DescriptorSet 0 + Decorate 164(g_tTexcdi4a) DescriptorSet 0 + Decorate 167(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 26: TypeVector 6(float) 2 + 28: 6(float) Constant 0 + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 34: TypeImage 29(int) 1D depth sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 45: TypeInt 32 0 + 46: TypeImage 45(int) 1D depth sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 57: TypeImage 6(float) 2D depth sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2df4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: 6(float) Constant 1045220557 + 65: 26(fvec2) ConstantComposite 24 64 + 66: TypeVector 6(float) 3 + 70: TypeVector 29(int) 2 + 71: 29(int) Constant 3 + 72: 70(ivec2) ConstantComposite 30 71 + 76: TypeImage 29(int) 2D depth sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2di4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 89: TypeImage 45(int) 2D depth sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex2du4): 90(ptr) Variable UniformConstant + 94: TypeSampledImage 89 + 101: TypePointer Function 8(PS_OUTPUT) + 103: 29(int) Constant 0 + 104: 6(float) Constant 1065353216 + 105: 7(fvec4) ConstantComposite 104 104 104 104 + 106: TypePointer Function 7(fvec4) + 108: 29(int) Constant 1 + 115: TypePointer Output 7(fvec4) +116(@entryPointOutput.Color): 115(ptr) Variable Output + 119: TypePointer Output 6(float) +120(@entryPointOutput.Depth): 119(ptr) Variable Output + 123: TypeImage 6(float) 3D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex3df4): 124(ptr) Variable UniformConstant + 126: TypeImage 29(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3di4): 127(ptr) Variable UniformConstant + 129: TypeImage 45(int) 3D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex3du4): 130(ptr) Variable UniformConstant + 132: TypeImage 6(float) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdf4): 133(ptr) Variable UniformConstant + 135: TypeImage 29(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdi4): 136(ptr) Variable UniformConstant + 138: TypeImage 45(int) Cube sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTexcdu4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) 1D array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTex1df4a): 142(ptr) Variable UniformConstant + 144: TypeImage 29(int) 1D array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTex1di4a): 145(ptr) Variable UniformConstant + 147: TypeImage 45(int) 1D array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTex1du4a): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 2D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex2df4a): 151(ptr) Variable UniformConstant + 153: TypeImage 29(int) 2D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex2di4a): 154(ptr) Variable UniformConstant + 156: TypeImage 45(int) 2D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex2du4a): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) Cube array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTexcdf4a): 160(ptr) Variable UniformConstant + 162: TypeImage 29(int) Cube array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTexcdi4a): 163(ptr) Variable UniformConstant + 165: TypeImage 45(int) Cube array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTexcdu4a): 166(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +113(flattenTemp): 101(ptr) Variable Function + 114:8(PS_OUTPUT) FunctionCall 10(@main() + Store 113(flattenTemp) 114 + 117: 106(ptr) AccessChain 113(flattenTemp) 103 + 118: 7(fvec4) Load 117 + Store 116(@entryPointOutput.Color) 118 + 121: 12(ptr) AccessChain 113(flattenTemp) 108 + 122: 6(float) Load 121 + Store 120(@entryPointOutput.Depth) 122 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r01): 12(ptr) Variable Function + 33(r03): 12(ptr) Variable Function + 44(r05): 12(ptr) Variable Function + 56(r21): 12(ptr) Variable Function + 75(r23): 12(ptr) Variable Function + 88(r25): 12(ptr) Variable Function + 102(psout): 101(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 26(fvec2) CompositeConstruct 24 25 + 31: 6(float) CompositeExtract 27 1 + 32: 6(float) ImageSampleDrefExplicitLod 23 27 31 Lod ConstOffset 28 30 + Store 13(r01) 32 + 37: 34 Load 36(g_tTex1di4) + 38: 18 Load 20(g_sSamp) + 40: 39 SampledImage 37 38 + 41: 26(fvec2) CompositeConstruct 24 25 + 42: 6(float) CompositeExtract 41 1 + 43: 6(float) ImageSampleDrefExplicitLod 40 41 42 Lod ConstOffset 28 30 + Store 33(r03) 43 + 49: 46 Load 48(g_tTex1du4) + 50: 18 Load 20(g_sSamp) + 52: 51 SampledImage 49 50 + 53: 26(fvec2) CompositeConstruct 24 25 + 54: 6(float) CompositeExtract 53 1 + 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 28 30 + Store 44(r05) 55 + 60: 57 Load 59(g_tTex2df4) + 61: 18 Load 20(g_sSamp) + 63: 62 SampledImage 60 61 + 67: 6(float) CompositeExtract 65 0 + 68: 6(float) CompositeExtract 65 1 + 69: 66(fvec3) CompositeConstruct 67 68 25 + 73: 6(float) CompositeExtract 69 2 + 74: 6(float) ImageSampleDrefExplicitLod 63 69 73 Lod ConstOffset 28 72 + Store 56(r21) 74 + 79: 76 Load 78(g_tTex2di4) + 80: 18 Load 20(g_sSamp) + 82: 81 SampledImage 79 80 + 83: 6(float) CompositeExtract 65 0 + 84: 6(float) CompositeExtract 65 1 + 85: 66(fvec3) CompositeConstruct 83 84 25 + 86: 6(float) CompositeExtract 85 2 + 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 28 72 + Store 75(r23) 87 + 92: 89 Load 91(g_tTex2du4) + 93: 18 Load 20(g_sSamp) + 95: 94 SampledImage 92 93 + 96: 6(float) CompositeExtract 65 0 + 97: 6(float) CompositeExtract 65 1 + 98: 66(fvec3) CompositeConstruct 96 97 25 + 99: 6(float) CompositeExtract 98 2 + 100: 6(float) ImageSampleDrefExplicitLod 95 98 99 Lod ConstOffset 28 72 + Store 88(r25) 100 + 107: 106(ptr) AccessChain 102(psout) 103 + Store 107 105 + 109: 12(ptr) AccessChain 102(psout) 108 + Store 109 104 + 110:8(PS_OUTPUT) Load 102(psout) + ReturnValue 110 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..dea6663377 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -0,0 +1,629 @@ +hlsl.samplecmplevelzero.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r11' ( temp float) +0:42 textureLodOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r13' ( temp float) +0:43 textureLodOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r15' ( temp float) +0:44 textureLodOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r31' ( temp float) +0:47 textureLodOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r33' ( temp float) +0:48 textureLodOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r35' ( temp float) +0:49 textureLodOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child ( temp 4-component vector of float) +0:63 Color: direct index for structure ( temp 4-component vector of float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:64 move second child to first child ( temp float) +0:64 Depth: direct index for structure ( temp float) +0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child ( temp float) +0:42 'r11' ( temp float) +0:42 textureLodOffset ( temp float) +0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:42 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child ( temp float) +0:43 'r13' ( temp float) +0:43 textureLodOffset ( temp float) +0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:43 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 'r15' ( temp float) +0:44 textureLodOffset ( temp float) +0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:44 Construct vec3 ( temp 3-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child ( temp float) +0:47 'r31' ( temp float) +0:47 textureLodOffset ( temp float) +0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:47 'g_sSamp' (layout( binding=0) uniform sampler) +0:47 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 'r33' ( temp float) +0:48 textureLodOffset ( temp float) +0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:48 'g_sSamp' (layout( binding=0) uniform sampler) +0:48 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 'r35' ( temp float) +0:49 textureLodOffset ( temp float) +0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:49 'g_sSamp' (layout( binding=0) uniform sampler) +0:49 Construct vec4 ( temp 4-component vector of float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child ( temp 4-component vector of float) +0:63 Color: direct index for structure ( temp 4-component vector of float) +0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:64 move second child to first child ( temp float) +0:64 Depth: direct index for structure ( temp float) +0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( ( temp void) +0:38 Function Parameters: +0:? Sequence +0:38 Sequence +0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:38 Color: direct index for structure ( temp 4-component vector of float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:38 Depth: direct index for structure ( temp float) +0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:38 Constant: +0:38 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) +0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) +0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) +0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) +0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) +0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 179 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 127 131 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "r11" + Name 16 "g_tTex1df4a" + Name 20 "g_sSamp" + Name 38 "r13" + Name 41 "g_tTex1di4a" + Name 51 "r15" + Name 55 "g_tTex1du4a" + Name 65 "r31" + Name 68 "g_tTex2df4a" + Name 84 "r33" + Name 87 "g_tTex2di4a" + Name 98 "r35" + Name 101 "g_tTex2du4a" + Name 113 "psout" + Name 124 "flattenTemp" + Name 127 "@entryPointOutput.Color" + Name 131 "@entryPointOutput.Depth" + Name 136 "g_tTex1df4" + Name 139 "g_tTex1di4" + Name 142 "g_tTex1du4" + Name 145 "g_tTex2df4" + Name 148 "g_tTex2di4" + Name 151 "g_tTex2du4" + Name 154 "g_tTex3df4" + Name 157 "g_tTex3di4" + Name 160 "g_tTex3du4" + Name 163 "g_tTexcdf4" + Name 166 "g_tTexcdi4" + Name 169 "g_tTexcdu4" + Name 172 "g_tTexcdf4a" + Name 175 "g_tTexcdi4a" + Name 178 "g_tTexcdu4a" + Decorate 16(g_tTex1df4a) DescriptorSet 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 41(g_tTex1di4a) DescriptorSet 0 + Decorate 55(g_tTex1du4a) DescriptorSet 0 + Decorate 68(g_tTex2df4a) DescriptorSet 0 + Decorate 87(g_tTex2di4a) DescriptorSet 0 + Decorate 101(g_tTex2du4a) DescriptorSet 0 + Decorate 127(@entryPointOutput.Color) Location 0 + Decorate 131(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 136(g_tTex1df4) DescriptorSet 0 + Decorate 136(g_tTex1df4) Binding 0 + Decorate 139(g_tTex1di4) DescriptorSet 0 + Decorate 142(g_tTex1du4) DescriptorSet 0 + Decorate 145(g_tTex2df4) DescriptorSet 0 + Decorate 148(g_tTex2di4) DescriptorSet 0 + Decorate 151(g_tTex2du4) DescriptorSet 0 + Decorate 154(g_tTex3df4) DescriptorSet 0 + Decorate 157(g_tTex3di4) DescriptorSet 0 + Decorate 160(g_tTex3du4) DescriptorSet 0 + Decorate 163(g_tTexcdf4) DescriptorSet 0 + Decorate 166(g_tTexcdi4) DescriptorSet 0 + Decorate 169(g_tTexcdu4) DescriptorSet 0 + Decorate 172(g_tTexcdf4a) DescriptorSet 0 + Decorate 175(g_tTexcdi4a) DescriptorSet 0 + Decorate 178(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D depth array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1061158912 + 29: TypeVector 6(float) 3 + 33: 6(float) Constant 0 + 34: TypeInt 32 1 + 35: 34(int) Constant 2 + 39: TypeImage 34(int) 1D depth array sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1di4a): 40(ptr) Variable UniformConstant + 44: TypeSampledImage 39 + 52: TypeInt 32 0 + 53: TypeImage 52(int) 1D depth array sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex1du4a): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 66: TypeImage 6(float) 2D depth array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2df4a): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 6(float) Constant 1050253722 + 74: 29(fvec3) ConstantComposite 25 26 73 + 79: TypeVector 34(int) 2 + 80: 34(int) Constant 3 + 81: 79(ivec2) ConstantComposite 35 80 + 85: TypeImage 34(int) 2D depth array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2di4a): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 99: TypeImage 52(int) 2D depth array sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTex2du4a): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 112: TypePointer Function 8(PS_OUTPUT) + 114: 34(int) Constant 0 + 115: 6(float) Constant 1065353216 + 116: 7(fvec4) ConstantComposite 115 115 115 115 + 117: TypePointer Function 7(fvec4) + 119: 34(int) Constant 1 + 126: TypePointer Output 7(fvec4) +127(@entryPointOutput.Color): 126(ptr) Variable Output + 130: TypePointer Output 6(float) +131(@entryPointOutput.Depth): 130(ptr) Variable Output + 134: TypeImage 6(float) 1D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex1df4): 135(ptr) Variable UniformConstant + 137: TypeImage 34(int) 1D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex1di4): 138(ptr) Variable UniformConstant + 140: TypeImage 52(int) 1D sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTex1du4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) 2D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex2df4): 144(ptr) Variable UniformConstant + 146: TypeImage 34(int) 2D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex2di4): 147(ptr) Variable UniformConstant + 149: TypeImage 52(int) 2D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex2du4): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 3D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex3df4): 153(ptr) Variable UniformConstant + 155: TypeImage 34(int) 3D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex3di4): 156(ptr) Variable UniformConstant + 158: TypeImage 52(int) 3D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex3du4): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) Cube sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTexcdf4): 162(ptr) Variable UniformConstant + 164: TypeImage 34(int) Cube sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTexcdi4): 165(ptr) Variable UniformConstant + 167: TypeImage 52(int) Cube sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTexcdu4): 168(ptr) Variable UniformConstant + 170: TypeImage 6(float) Cube array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTexcdf4a): 171(ptr) Variable UniformConstant + 173: TypeImage 34(int) Cube array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTexcdi4a): 174(ptr) Variable UniformConstant + 176: TypeImage 52(int) Cube array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTexcdu4a): 177(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +124(flattenTemp): 112(ptr) Variable Function + 125:8(PS_OUTPUT) FunctionCall 10(@main() + Store 124(flattenTemp) 125 + 128: 117(ptr) AccessChain 124(flattenTemp) 114 + 129: 7(fvec4) Load 128 + Store 127(@entryPointOutput.Color) 129 + 132: 12(ptr) AccessChain 124(flattenTemp) 119 + 133: 6(float) Load 132 + Store 131(@entryPointOutput.Depth) 133 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r11): 12(ptr) Variable Function + 38(r13): 12(ptr) Variable Function + 51(r15): 12(ptr) Variable Function + 65(r31): 12(ptr) Variable Function + 84(r33): 12(ptr) Variable Function + 98(r35): 12(ptr) Variable Function + 113(psout): 112(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 6(float) CompositeExtract 27 0 + 31: 6(float) CompositeExtract 27 1 + 32: 29(fvec3) CompositeConstruct 30 31 28 + 36: 6(float) CompositeExtract 32 2 + 37: 6(float) ImageSampleDrefExplicitLod 23 32 36 Lod ConstOffset 33 35 + Store 13(r11) 37 + 42: 39 Load 41(g_tTex1di4a) + 43: 18 Load 20(g_sSamp) + 45: 44 SampledImage 42 43 + 46: 6(float) CompositeExtract 27 0 + 47: 6(float) CompositeExtract 27 1 + 48: 29(fvec3) CompositeConstruct 46 47 28 + 49: 6(float) CompositeExtract 48 2 + 50: 6(float) ImageSampleDrefExplicitLod 45 48 49 Lod ConstOffset 33 35 + Store 38(r13) 50 + 56: 53 Load 55(g_tTex1du4a) + 57: 18 Load 20(g_sSamp) + 59: 58 SampledImage 56 57 + 60: 6(float) CompositeExtract 27 0 + 61: 6(float) CompositeExtract 27 1 + 62: 29(fvec3) CompositeConstruct 60 61 28 + 63: 6(float) CompositeExtract 62 2 + 64: 6(float) ImageSampleDrefExplicitLod 59 62 63 Lod ConstOffset 33 35 + Store 51(r15) 64 + 69: 66 Load 68(g_tTex2df4a) + 70: 18 Load 20(g_sSamp) + 72: 71 SampledImage 69 70 + 75: 6(float) CompositeExtract 74 0 + 76: 6(float) CompositeExtract 74 1 + 77: 6(float) CompositeExtract 74 2 + 78: 7(fvec4) CompositeConstruct 75 76 77 28 + 82: 6(float) CompositeExtract 78 3 + 83: 6(float) ImageSampleDrefExplicitLod 72 78 82 Lod ConstOffset 33 81 + Store 65(r31) 83 + 88: 85 Load 87(g_tTex2di4a) + 89: 18 Load 20(g_sSamp) + 91: 90 SampledImage 88 89 + 92: 6(float) CompositeExtract 74 0 + 93: 6(float) CompositeExtract 74 1 + 94: 6(float) CompositeExtract 74 2 + 95: 7(fvec4) CompositeConstruct 92 93 94 28 + 96: 6(float) CompositeExtract 95 3 + 97: 6(float) ImageSampleDrefExplicitLod 91 95 96 Lod ConstOffset 33 81 + Store 84(r33) 97 + 102: 99 Load 101(g_tTex2du4a) + 103: 18 Load 20(g_sSamp) + 105: 104 SampledImage 102 103 + 106: 6(float) CompositeExtract 74 0 + 107: 6(float) CompositeExtract 74 1 + 108: 6(float) CompositeExtract 74 2 + 109: 7(fvec4) CompositeConstruct 106 107 108 28 + 110: 6(float) CompositeExtract 109 3 + 111: 6(float) ImageSampleDrefExplicitLod 105 109 110 Lod ConstOffset 33 81 + Store 98(r35) 111 + 118: 117(ptr) AccessChain 113(psout) 114 + Store 118 116 + 120: 12(ptr) AccessChain 113(psout) 119 + Store 120 115 + 121:8(PS_OUTPUT) Load 113(psout) + ReturnValue 121 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out new file mode 100644 index 0000000000..81a92a230a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -0,0 +1,643 @@ +hlsl.samplegrad.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 textureGrad ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 textureGrad ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 textureGrad ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 textureGrad ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 textureGrad ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 textureGrad ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 textureGrad ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 textureGrad ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 textureGrad ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 textureGrad ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 textureGrad ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 textureGrad ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 textureGrad ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 textureGrad ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 textureGrad ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 textureGrad ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 textureGrad ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 textureGrad ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 140 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 132 136 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 34 "txval11" + Name 37 "g_tTex1di4" + Name 46 "txval12" + Name 49 "g_tTex1du4" + Name 55 "txval20" + Name 58 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 77 "txval22" + Name 80 "g_tTex2du4" + Name 86 "txval40" + Name 89 "g_tTexcdf4" + Name 99 "txval41" + Name 102 "g_tTexcdi4" + Name 108 "txval42" + Name 111 "g_tTexcdu4" + Name 118 "psout" + Name 129 "flattenTemp" + Name 132 "@entryPointOutput.Color" + Name 136 "@entryPointOutput.Depth" + Name 139 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 37(g_tTex1di4) DescriptorSet 0 + Decorate 49(g_tTex1du4) DescriptorSet 0 + Decorate 58(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 80(g_tTex2du4) DescriptorSet 0 + Decorate 89(g_tTexcdf4) DescriptorSet 0 + Decorate 102(g_tTexcdi4) DescriptorSet 0 + Decorate 111(g_tTexcdu4) DescriptorSet 0 + Decorate 132(@entryPointOutput.Color) Location 0 + Decorate 136(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1066192077 + 29: 6(float) Constant 1067030938 + 31: TypeInt 32 1 + 32: TypeVector 31(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 31(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 43: TypeInt 32 0 + 44: TypeVector 43(int) 4 + 45: TypePointer Function 44(ivec4) + 47: TypeImage 43(int) 1D array sampled format:Unknown + 48: TypePointer UniformConstant 47 + 49(g_tTex1du4): 48(ptr) Variable UniformConstant + 52: TypeSampledImage 47 + 56: TypeImage 6(float) 2D array sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4): 57(ptr) Variable UniformConstant + 61: TypeSampledImage 56 + 63: TypeVector 6(float) 3 + 64: 6(float) Constant 1050253722 + 65: 63(fvec3) ConstantComposite 25 26 64 + 66: 24(fvec2) ConstantComposite 28 29 + 69: TypeImage 31(int) 2D array sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 78: TypeImage 43(int) 2D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 87: TypeImage 6(float) Cube array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTexcdf4): 88(ptr) Variable UniformConstant + 92: TypeSampledImage 87 + 94: 6(float) Constant 1053609165 + 95: 7(fvec4) ConstantComposite 25 26 64 94 + 96: 6(float) Constant 1067869798 + 97: 63(fvec3) ConstantComposite 28 29 96 + 100: TypeImage 31(int) Cube array sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTexcdi4): 101(ptr) Variable UniformConstant + 105: TypeSampledImage 100 + 109: TypeImage 43(int) Cube array sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTexcdu4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 117: TypePointer Function 8(PS_OUTPUT) + 119: 31(int) Constant 0 + 120: 6(float) Constant 1065353216 + 121: 7(fvec4) ConstantComposite 120 120 120 120 + 123: 31(int) Constant 1 + 124: TypePointer Function 6(float) + 131: TypePointer Output 7(fvec4) +132(@entryPointOutput.Color): 131(ptr) Variable Output + 135: TypePointer Output 6(float) +136(@entryPointOutput.Depth): 135(ptr) Variable Output +139(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +129(flattenTemp): 117(ptr) Variable Function + 130:8(PS_OUTPUT) FunctionCall 10(@main() + Store 129(flattenTemp) 130 + 133: 12(ptr) AccessChain 129(flattenTemp) 119 + 134: 7(fvec4) Load 133 + Store 132(@entryPointOutput.Color) 134 + 137: 124(ptr) AccessChain 129(flattenTemp) 123 + 138: 6(float) Load 137 + Store 136(@entryPointOutput.Depth) 138 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 34(txval11): 33(ptr) Variable Function + 46(txval12): 45(ptr) Variable Function + 55(txval20): 12(ptr) Variable Function + 68(txval21): 33(ptr) Variable Function + 77(txval22): 45(ptr) Variable Function + 86(txval40): 12(ptr) Variable Function + 99(txval41): 33(ptr) Variable Function + 108(txval42): 45(ptr) Variable Function + 118(psout): 117(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 30: 7(fvec4) ImageSampleExplicitLod 23 27 Grad 28 29 + Store 13(txval10) 30 + 38: 35 Load 37(g_tTex1di4) + 39: 18 Load 20(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 32(ivec4) ImageSampleExplicitLod 41 27 Grad 28 29 + Store 34(txval11) 42 + 50: 47 Load 49(g_tTex1du4) + 51: 18 Load 20(g_sSamp) + 53: 52 SampledImage 50 51 + 54: 44(ivec4) ImageSampleExplicitLod 53 27 Grad 28 29 + Store 46(txval12) 54 + 59: 56 Load 58(g_tTex2df4) + 60: 18 Load 20(g_sSamp) + 62: 61 SampledImage 59 60 + 67: 7(fvec4) ImageSampleExplicitLod 62 65 Grad 66 66 + Store 55(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 18 Load 20(g_sSamp) + 75: 74 SampledImage 72 73 + 76: 32(ivec4) ImageSampleExplicitLod 75 65 Grad 66 66 + Store 68(txval21) 76 + 81: 78 Load 80(g_tTex2du4) + 82: 18 Load 20(g_sSamp) + 84: 83 SampledImage 81 82 + 85: 44(ivec4) ImageSampleExplicitLod 84 65 Grad 66 66 + Store 77(txval22) 85 + 90: 87 Load 89(g_tTexcdf4) + 91: 18 Load 20(g_sSamp) + 93: 92 SampledImage 90 91 + 98: 7(fvec4) ImageSampleExplicitLod 93 95 Grad 97 97 + Store 86(txval40) 98 + 103: 100 Load 102(g_tTexcdi4) + 104: 18 Load 20(g_sSamp) + 106: 105 SampledImage 103 104 + 107: 32(ivec4) ImageSampleExplicitLod 106 95 Grad 97 97 + Store 99(txval41) 107 + 112: 109 Load 111(g_tTexcdu4) + 113: 18 Load 20(g_sSamp) + 115: 114 SampledImage 112 113 + 116: 44(ivec4) ImageSampleExplicitLod 115 95 Grad 97 97 + Store 108(txval42) 116 + 122: 12(ptr) AccessChain 118(psout) 119 + Store 122 121 + 125: 124(ptr) AccessChain 118(psout) 123 + Store 125 120 + 126:8(PS_OUTPUT) Load 118(psout) + ReturnValue 126 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out new file mode 100644 index 0000000000..3acd9afe10 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -0,0 +1,791 @@ +hlsl.samplegrad.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureGrad ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureGrad ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureGrad ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureGrad ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureGrad ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureGrad ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureGrad ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureGrad ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureGrad ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'txval40' ( temp 4-component vector of float) +0:43 textureGrad ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp samplerCube) +0:43 'g_tTexcdf4' ( uniform textureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of int) +0:44 'txval41' ( temp 4-component vector of int) +0:44 textureGrad ( temp 4-component vector of int) +0:44 Construct combined texture-sampler ( temp isamplerCube) +0:44 'g_tTexcdi4' ( uniform itextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of uint) +0:45 'txval42' ( temp 4-component vector of uint) +0:45 textureGrad ( temp 4-component vector of uint) +0:45 Construct combined texture-sampler ( temp usamplerCube) +0:45 'g_tTexcdu4' ( uniform utextureCube) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:48 move second child to first child ( temp float) +0:48 Depth: direct index for structure ( temp float) +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureGrad ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureGrad ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureGrad ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureGrad ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureGrad ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureGrad ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureGrad ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureGrad ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureGrad ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'txval40' ( temp 4-component vector of float) +0:43 textureGrad ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp samplerCube) +0:43 'g_tTexcdf4' ( uniform textureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of int) +0:44 'txval41' ( temp 4-component vector of int) +0:44 textureGrad ( temp 4-component vector of int) +0:44 Construct combined texture-sampler ( temp isamplerCube) +0:44 'g_tTexcdi4' ( uniform itextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of uint) +0:45 'txval42' ( temp 4-component vector of uint) +0:45 textureGrad ( temp 4-component vector of uint) +0:45 Construct combined texture-sampler ( temp usamplerCube) +0:45 'g_tTexcdu4' ( uniform utextureCube) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:47 move second child to first child ( temp 4-component vector of float) +0:47 Color: direct index for structure ( temp 4-component vector of float) +0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:48 move second child to first child ( temp float) +0:48 Depth: direct index for structure ( temp float) +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 175 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 167 171 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 44 "txval12" + Name 47 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 66 "txval21" + Name 69 "g_tTex2di4" + Name 77 "txval22" + Name 80 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 112 "txval32" + Name 115 "g_tTex3du4" + Name 125 "txval40" + Name 128 "g_tTexcdf4" + Name 134 "txval41" + Name 137 "g_tTexcdi4" + Name 143 "txval42" + Name 146 "g_tTexcdu4" + Name 153 "psout" + Name 164 "flattenTemp" + Name 167 "@entryPointOutput.Color" + Name 171 "@entryPointOutput.Depth" + Name 174 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 69(g_tTex2di4) DescriptorSet 0 + Decorate 80(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 115(g_tTex3du4) DescriptorSet 0 + Decorate 128(g_tTexcdf4) DescriptorSet 0 + Decorate 137(g_tTexcdi4) DescriptorSet 0 + Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 167(@entryPointOutput.Color) Location 0 + Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 174(g_tTex1df4a) DescriptorSet 0 + Decorate 174(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1066192077 + 26: 6(float) Constant 1067030938 + 28: TypeInt 32 1 + 29: TypeVector 28(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 28(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 39: 6(float) Constant 1045220557 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 1D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1050253722 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 2 + 63: 62(fvec2) ConstantComposite 24 39 + 64: 62(fvec2) ConstantComposite 25 26 + 67: TypeImage 28(int) 2D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex2di4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 6(float) Constant 1053609165 + 75: 62(fvec2) ConstantComposite 52 74 + 78: TypeImage 41(int) 2D sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1056964608 + 86: 6(float) Constant 1058642330 + 87: 62(fvec2) ConstantComposite 85 86 + 90: TypeImage 6(float) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3df4): 91(ptr) Variable UniformConstant + 95: TypeSampledImage 90 + 97: TypeVector 6(float) 3 + 98: 97(fvec3) ConstantComposite 24 39 52 + 99: 6(float) Constant 1067869798 + 100: 97(fvec3) ConstantComposite 25 26 99 + 103: TypeImage 28(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 74 85 86 + 113: TypeImage 41(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3du4): 114(ptr) Variable UniformConstant + 118: TypeSampledImage 113 + 120: 6(float) Constant 1060320051 + 121: 6(float) Constant 1061997773 + 122: 6(float) Constant 1063675494 + 123: 97(fvec3) ConstantComposite 120 121 122 + 126: TypeImage 6(float) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdf4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 135: TypeImage 28(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdi4): 136(ptr) Variable UniformConstant + 140: TypeSampledImage 135 + 144: TypeImage 41(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 149: TypeSampledImage 144 + 152: TypePointer Function 8(PS_OUTPUT) + 154: 28(int) Constant 0 + 155: 6(float) Constant 1065353216 + 156: 7(fvec4) ConstantComposite 155 155 155 155 + 158: 28(int) Constant 1 + 159: TypePointer Function 6(float) + 166: TypePointer Output 7(fvec4) +167(@entryPointOutput.Color): 166(ptr) Variable Output + 170: TypePointer Output 6(float) +171(@entryPointOutput.Depth): 170(ptr) Variable Output +174(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +164(flattenTemp): 152(ptr) Variable Function + 165:8(PS_OUTPUT) FunctionCall 10(@main() + Store 164(flattenTemp) 165 + 168: 12(ptr) AccessChain 164(flattenTemp) 154 + 169: 7(fvec4) Load 168 + Store 167(@entryPointOutput.Color) 169 + 172: 159(ptr) AccessChain 164(flattenTemp) 158 + 173: 6(float) Load 172 + Store 171(@entryPointOutput.Depth) 173 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 44(txval12): 43(ptr) Variable Function + 54(txval20): 12(ptr) Variable Function + 66(txval21): 30(ptr) Variable Function + 77(txval22): 43(ptr) Variable Function + 89(txval30): 12(ptr) Variable Function + 102(txval31): 30(ptr) Variable Function + 112(txval32): 43(ptr) Variable Function + 125(txval40): 12(ptr) Variable Function + 134(txval41): 30(ptr) Variable Function + 143(txval42): 43(ptr) Variable Function + 153(psout): 152(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 7(fvec4) ImageSampleExplicitLod 23 24 Grad 25 26 + Store 13(txval10) 27 + 35: 32 Load 34(g_tTex1di4) + 36: 18 Load 20(g_sSamp) + 38: 37 SampledImage 35 36 + 40: 29(ivec4) ImageSampleExplicitLod 38 39 Grad 25 26 + Store 31(txval11) 40 + 48: 45 Load 47(g_tTex1du4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 53: 42(ivec4) ImageSampleExplicitLod 51 52 Grad 25 26 + Store 44(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 18 Load 20(g_sSamp) + 61: 60 SampledImage 58 59 + 65: 7(fvec4) ImageSampleExplicitLod 61 63 Grad 64 64 + Store 54(txval20) 65 + 70: 67 Load 69(g_tTex2di4) + 71: 18 Load 20(g_sSamp) + 73: 72 SampledImage 70 71 + 76: 29(ivec4) ImageSampleExplicitLod 73 75 Grad 64 64 + Store 66(txval21) 76 + 81: 78 Load 80(g_tTex2du4) + 82: 18 Load 20(g_sSamp) + 84: 83 SampledImage 81 82 + 88: 42(ivec4) ImageSampleExplicitLod 84 87 Grad 64 64 + Store 77(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 18 Load 20(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleExplicitLod 96 98 Grad 100 100 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 18 Load 20(g_sSamp) + 109: 108 SampledImage 106 107 + 111: 29(ivec4) ImageSampleExplicitLod 109 110 Grad 100 100 + Store 102(txval31) 111 + 116: 113 Load 115(g_tTex3du4) + 117: 18 Load 20(g_sSamp) + 119: 118 SampledImage 116 117 + 124: 42(ivec4) ImageSampleExplicitLod 119 123 Grad 100 100 + Store 112(txval32) 124 + 129: 126 Load 128(g_tTexcdf4) + 130: 18 Load 20(g_sSamp) + 132: 131 SampledImage 129 130 + 133: 7(fvec4) ImageSampleExplicitLod 132 98 Grad 100 100 + Store 125(txval40) 133 + 138: 135 Load 137(g_tTexcdi4) + 139: 18 Load 20(g_sSamp) + 141: 140 SampledImage 138 139 + 142: 29(ivec4) ImageSampleExplicitLod 141 110 Grad 100 100 + Store 134(txval41) 142 + 147: 144 Load 146(g_tTexcdu4) + 148: 18 Load 20(g_sSamp) + 150: 149 SampledImage 147 148 + 151: 42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100 + Store 143(txval42) 151 + 157: 12(ptr) AccessChain 153(psout) 154 + Store 157 156 + 160: 159(ptr) AccessChain 153(psout) 158 + Store 160 155 + 161:8(PS_OUTPUT) Load 153(psout) + ReturnValue 161 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out new file mode 100644 index 0000000000..d787939b75 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -0,0 +1,735 @@ +hlsl.samplegrad.basic.dx10.vert +Shader version: 500 +0:? Sequence +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:30 'txval10' ( temp 4-component vector of float) +0:30 textureGrad ( temp 4-component vector of float) +0:30 Construct combined texture-sampler ( temp sampler1D) +0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 1.100000 +0:30 Constant: +0:30 1.200000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of int) +0:31 'txval11' ( temp 4-component vector of int) +0:31 textureGrad ( temp 4-component vector of int) +0:31 Construct combined texture-sampler ( temp isampler1D) +0:31 'g_tTex1di4' ( uniform itexture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of uint) +0:32 'txval12' ( temp 4-component vector of uint) +0:32 textureGrad ( temp 4-component vector of uint) +0:32 Construct combined texture-sampler ( temp usampler1D) +0:32 'g_tTex1du4' ( uniform utexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'txval20' ( temp 4-component vector of float) +0:34 textureGrad ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df4' ( uniform texture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of int) +0:35 'txval21' ( temp 4-component vector of int) +0:35 textureGrad ( temp 4-component vector of int) +0:35 Construct combined texture-sampler ( temp isampler2D) +0:35 'g_tTex2di4' ( uniform itexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of uint) +0:36 'txval22' ( temp 4-component vector of uint) +0:36 textureGrad ( temp 4-component vector of uint) +0:36 Construct combined texture-sampler ( temp usampler2D) +0:36 'g_tTex2du4' ( uniform utexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'txval30' ( temp 4-component vector of float) +0:38 textureGrad ( temp 4-component vector of float) +0:38 Construct combined texture-sampler ( temp sampler3D) +0:38 'g_tTex3df4' ( uniform texture3D) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of int) +0:39 'txval31' ( temp 4-component vector of int) +0:39 textureGrad ( temp 4-component vector of int) +0:39 Construct combined texture-sampler ( temp isampler3D) +0:39 'g_tTex3di4' ( uniform itexture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of uint) +0:40 'txval32' ( temp 4-component vector of uint) +0:40 textureGrad ( temp 4-component vector of uint) +0:40 Construct combined texture-sampler ( temp usampler3D) +0:40 'g_tTex3du4' ( uniform utexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'txval40' ( temp 4-component vector of float) +0:42 textureGrad ( temp 4-component vector of float) +0:42 Construct combined texture-sampler ( temp samplerCube) +0:42 'g_tTexcdf4' ( uniform textureCube) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'txval41' ( temp 4-component vector of int) +0:43 textureGrad ( temp 4-component vector of int) +0:43 Construct combined texture-sampler ( temp isamplerCube) +0:43 'g_tTexcdi4' ( uniform itextureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of uint) +0:44 'txval42' ( temp 4-component vector of uint) +0:44 textureGrad ( temp 4-component vector of uint) +0:44 Construct combined texture-sampler ( temp usamplerCube) +0:44 'g_tTexcdu4' ( uniform utextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:46 move second child to first child ( temp 4-component vector of float) +0:46 Pos: direct index for structure ( temp 4-component vector of float) +0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Constant: +0:27 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:30 'txval10' ( temp 4-component vector of float) +0:30 textureGrad ( temp 4-component vector of float) +0:30 Construct combined texture-sampler ( temp sampler1D) +0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 1.100000 +0:30 Constant: +0:30 1.200000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of int) +0:31 'txval11' ( temp 4-component vector of int) +0:31 textureGrad ( temp 4-component vector of int) +0:31 Construct combined texture-sampler ( temp isampler1D) +0:31 'g_tTex1di4' ( uniform itexture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of uint) +0:32 'txval12' ( temp 4-component vector of uint) +0:32 textureGrad ( temp 4-component vector of uint) +0:32 Construct combined texture-sampler ( temp usampler1D) +0:32 'g_tTex1du4' ( uniform utexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'txval20' ( temp 4-component vector of float) +0:34 textureGrad ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df4' ( uniform texture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of int) +0:35 'txval21' ( temp 4-component vector of int) +0:35 textureGrad ( temp 4-component vector of int) +0:35 Construct combined texture-sampler ( temp isampler2D) +0:35 'g_tTex2di4' ( uniform itexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of uint) +0:36 'txval22' ( temp 4-component vector of uint) +0:36 textureGrad ( temp 4-component vector of uint) +0:36 Construct combined texture-sampler ( temp usampler2D) +0:36 'g_tTex2du4' ( uniform utexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'txval30' ( temp 4-component vector of float) +0:38 textureGrad ( temp 4-component vector of float) +0:38 Construct combined texture-sampler ( temp sampler3D) +0:38 'g_tTex3df4' ( uniform texture3D) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of int) +0:39 'txval31' ( temp 4-component vector of int) +0:39 textureGrad ( temp 4-component vector of int) +0:39 Construct combined texture-sampler ( temp isampler3D) +0:39 'g_tTex3di4' ( uniform itexture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of uint) +0:40 'txval32' ( temp 4-component vector of uint) +0:40 textureGrad ( temp 4-component vector of uint) +0:40 Construct combined texture-sampler ( temp usampler3D) +0:40 'g_tTex3du4' ( uniform utexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'txval40' ( temp 4-component vector of float) +0:42 textureGrad ( temp 4-component vector of float) +0:42 Construct combined texture-sampler ( temp samplerCube) +0:42 'g_tTexcdf4' ( uniform textureCube) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'txval41' ( temp 4-component vector of int) +0:43 textureGrad ( temp 4-component vector of int) +0:43 Construct combined texture-sampler ( temp isamplerCube) +0:43 'g_tTexcdi4' ( uniform itextureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of uint) +0:44 'txval42' ( temp 4-component vector of uint) +0:44 textureGrad ( temp 4-component vector of uint) +0:44 Construct combined texture-sampler ( temp usamplerCube) +0:44 'g_tTexcdu4' ( uniform utextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:46 move second child to first child ( temp 4-component vector of float) +0:46 Pos: direct index for structure ( temp 4-component vector of float) +0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Constant: +0:27 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 166 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 162 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Pos" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 44 "txval12" + Name 47 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 66 "txval21" + Name 69 "g_tTex2di4" + Name 77 "txval22" + Name 80 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 112 "txval32" + Name 115 "g_tTex3du4" + Name 125 "txval40" + Name 128 "g_tTexcdf4" + Name 134 "txval41" + Name 137 "g_tTexcdi4" + Name 143 "txval42" + Name 146 "g_tTexcdu4" + Name 153 "vsout" + Name 162 "@entryPointOutput.Pos" + Name 165 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 69(g_tTex2di4) DescriptorSet 0 + Decorate 80(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 115(g_tTex3du4) DescriptorSet 0 + Decorate 128(g_tTexcdf4) DescriptorSet 0 + Decorate 137(g_tTexcdi4) DescriptorSet 0 + Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 162(@entryPointOutput.Pos) BuiltIn Position + Decorate 165(g_tTex1df4a) DescriptorSet 0 + Decorate 165(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(VS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1066192077 + 26: 6(float) Constant 1067030938 + 28: TypeInt 32 1 + 29: TypeVector 28(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 28(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 39: 6(float) Constant 1045220557 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 1D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1050253722 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 2 + 63: 62(fvec2) ConstantComposite 24 39 + 64: 62(fvec2) ConstantComposite 25 26 + 67: TypeImage 28(int) 2D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex2di4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 6(float) Constant 1053609165 + 75: 62(fvec2) ConstantComposite 52 74 + 78: TypeImage 41(int) 2D sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1056964608 + 86: 6(float) Constant 1058642330 + 87: 62(fvec2) ConstantComposite 85 86 + 90: TypeImage 6(float) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3df4): 91(ptr) Variable UniformConstant + 95: TypeSampledImage 90 + 97: TypeVector 6(float) 3 + 98: 97(fvec3) ConstantComposite 24 39 52 + 99: 6(float) Constant 1067869798 + 100: 97(fvec3) ConstantComposite 25 26 99 + 103: TypeImage 28(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 74 85 86 + 113: TypeImage 41(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3du4): 114(ptr) Variable UniformConstant + 118: TypeSampledImage 113 + 120: 6(float) Constant 1060320051 + 121: 6(float) Constant 1061997773 + 122: 6(float) Constant 1063675494 + 123: 97(fvec3) ConstantComposite 120 121 122 + 126: TypeImage 6(float) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdf4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 135: TypeImage 28(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdi4): 136(ptr) Variable UniformConstant + 140: TypeSampledImage 135 + 144: TypeImage 41(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 149: TypeSampledImage 144 + 152: TypePointer Function 8(VS_OUTPUT) + 154: 28(int) Constant 0 + 155: 6(float) Constant 0 + 156: 7(fvec4) ConstantComposite 155 155 155 155 + 161: TypePointer Output 7(fvec4) +162(@entryPointOutput.Pos): 161(ptr) Variable Output +165(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 163:8(VS_OUTPUT) FunctionCall 10(@main() + 164: 7(fvec4) CompositeExtract 163 0 + Store 162(@entryPointOutput.Pos) 164 + Return + FunctionEnd + 10(@main():8(VS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 44(txval12): 43(ptr) Variable Function + 54(txval20): 12(ptr) Variable Function + 66(txval21): 30(ptr) Variable Function + 77(txval22): 43(ptr) Variable Function + 89(txval30): 12(ptr) Variable Function + 102(txval31): 30(ptr) Variable Function + 112(txval32): 43(ptr) Variable Function + 125(txval40): 12(ptr) Variable Function + 134(txval41): 30(ptr) Variable Function + 143(txval42): 43(ptr) Variable Function + 153(vsout): 152(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 27: 7(fvec4) ImageSampleExplicitLod 23 24 Grad 25 26 + Store 13(txval10) 27 + 35: 32 Load 34(g_tTex1di4) + 36: 18 Load 20(g_sSamp) + 38: 37 SampledImage 35 36 + 40: 29(ivec4) ImageSampleExplicitLod 38 39 Grad 25 26 + Store 31(txval11) 40 + 48: 45 Load 47(g_tTex1du4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 53: 42(ivec4) ImageSampleExplicitLod 51 52 Grad 25 26 + Store 44(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 18 Load 20(g_sSamp) + 61: 60 SampledImage 58 59 + 65: 7(fvec4) ImageSampleExplicitLod 61 63 Grad 64 64 + Store 54(txval20) 65 + 70: 67 Load 69(g_tTex2di4) + 71: 18 Load 20(g_sSamp) + 73: 72 SampledImage 70 71 + 76: 29(ivec4) ImageSampleExplicitLod 73 75 Grad 64 64 + Store 66(txval21) 76 + 81: 78 Load 80(g_tTex2du4) + 82: 18 Load 20(g_sSamp) + 84: 83 SampledImage 81 82 + 88: 42(ivec4) ImageSampleExplicitLod 84 87 Grad 64 64 + Store 77(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 18 Load 20(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleExplicitLod 96 98 Grad 100 100 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 18 Load 20(g_sSamp) + 109: 108 SampledImage 106 107 + 111: 29(ivec4) ImageSampleExplicitLod 109 110 Grad 100 100 + Store 102(txval31) 111 + 116: 113 Load 115(g_tTex3du4) + 117: 18 Load 20(g_sSamp) + 119: 118 SampledImage 116 117 + 124: 42(ivec4) ImageSampleExplicitLod 119 123 Grad 100 100 + Store 112(txval32) 124 + 129: 126 Load 128(g_tTexcdf4) + 130: 18 Load 20(g_sSamp) + 132: 131 SampledImage 129 130 + 133: 7(fvec4) ImageSampleExplicitLod 132 98 Grad 100 100 + Store 125(txval40) 133 + 138: 135 Load 137(g_tTexcdi4) + 139: 18 Load 20(g_sSamp) + 141: 140 SampledImage 138 139 + 142: 29(ivec4) ImageSampleExplicitLod 141 110 Grad 100 100 + Store 134(txval41) 142 + 147: 144 Load 146(g_tTexcdu4) + 148: 18 Load 20(g_sSamp) + 150: 149 SampledImage 147 148 + 151: 42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100 + Store 143(txval42) 151 + 157: 12(ptr) AccessChain 153(vsout) 154 + Store 157 156 + 158:8(VS_OUTPUT) Load 153(vsout) + ReturnValue 158 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out new file mode 100644 index 0000000000..b5a8549334 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -0,0 +1,716 @@ +hlsl.samplegrad.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureGradOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureGradOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureGradOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureGradOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureGradOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureGradOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureGradOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureGradOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureGradOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureGradOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureGradOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureGradOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureGradOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureGradOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureGradOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureGradOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureGradOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureGradOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 166 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 149 153 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 32 "txval11" + Name 35 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 55 "txval20" + Name 58 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 82 "txval22" + Name 85 "g_tTex2du4" + Name 96 "txval30" + Name 99 "g_tTex3df4" + Name 111 "txval31" + Name 114 "g_tTex3di4" + Name 122 "txval32" + Name 125 "g_tTex3du4" + Name 137 "psout" + Name 146 "flattenTemp" + Name 149 "@entryPointOutput.Color" + Name 153 "@entryPointOutput.Depth" + Name 156 "g_tTex1df4a" + Name 159 "g_tTexcdf4" + Name 162 "g_tTexcdi4" + Name 165 "g_tTexcdu4" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 35(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 58(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 85(g_tTex2du4) DescriptorSet 0 + Decorate 99(g_tTex3df4) DescriptorSet 0 + Decorate 114(g_tTex3di4) DescriptorSet 0 + Decorate 125(g_tTex3du4) DescriptorSet 0 + Decorate 149(@entryPointOutput.Color) Location 0 + Decorate 153(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 156(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1df4a) Binding 1 + Decorate 159(g_tTexcdf4) DescriptorSet 0 + Decorate 162(g_tTexcdi4) DescriptorSet 0 + Decorate 165(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1066192077 + 26: 6(float) Constant 1067030938 + 27: TypeInt 32 1 + 28: 27(int) Constant 1 + 30: TypeVector 27(int) 4 + 31: TypePointer Function 30(ivec4) + 33: TypeImage 27(int) 1D sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4): 34(ptr) Variable UniformConstant + 38: TypeSampledImage 33 + 40: 6(float) Constant 1045220557 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1050253722 + 56: TypeImage 6(float) 2D sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4): 57(ptr) Variable UniformConstant + 61: TypeSampledImage 56 + 63: TypeVector 6(float) 2 + 64: 63(fvec2) ConstantComposite 24 40 + 65: 63(fvec2) ConstantComposite 25 26 + 66: TypeVector 27(int) 2 + 67: 27(int) Constant 0 + 68: 66(ivec2) ConstantComposite 28 67 + 71: TypeImage 27(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1053609165 + 79: 63(fvec2) ConstantComposite 53 78 + 80: 66(ivec2) ConstantComposite 28 28 + 83: TypeImage 42(int) 2D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex2du4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: 6(float) Constant 1056964608 + 91: 6(float) Constant 1058642330 + 92: 63(fvec2) ConstantComposite 90 91 + 93: 27(int) Constant 4294967295 + 94: 66(ivec2) ConstantComposite 28 93 + 97: TypeImage 6(float) 3D sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex3df4): 98(ptr) Variable UniformConstant + 102: TypeSampledImage 97 + 104: TypeVector 6(float) 3 + 105: 104(fvec3) ConstantComposite 24 40 53 + 106: 6(float) Constant 1067869798 + 107: 104(fvec3) ConstantComposite 25 26 106 + 108: TypeVector 27(int) 3 + 109: 108(ivec3) ConstantComposite 28 67 28 + 112: TypeImage 27(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3di4): 113(ptr) Variable UniformConstant + 117: TypeSampledImage 112 + 119: 104(fvec3) ConstantComposite 78 90 91 + 120: 108(ivec3) ConstantComposite 28 28 28 + 123: TypeImage 42(int) 3D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex3du4): 124(ptr) Variable UniformConstant + 128: TypeSampledImage 123 + 130: 6(float) Constant 1060320051 + 131: 6(float) Constant 1061997773 + 132: 6(float) Constant 1063675494 + 133: 104(fvec3) ConstantComposite 130 131 132 + 134: 108(ivec3) ConstantComposite 28 67 93 + 136: TypePointer Function 8(PS_OUTPUT) + 138: 6(float) Constant 1065353216 + 139: 7(fvec4) ConstantComposite 138 138 138 138 + 141: TypePointer Function 6(float) + 148: TypePointer Output 7(fvec4) +149(@entryPointOutput.Color): 148(ptr) Variable Output + 152: TypePointer Output 6(float) +153(@entryPointOutput.Depth): 152(ptr) Variable Output +156(g_tTex1df4a): 15(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube sampled format:Unknown + 158: TypePointer UniformConstant 157 + 159(g_tTexcdf4): 158(ptr) Variable UniformConstant + 160: TypeImage 27(int) Cube sampled format:Unknown + 161: TypePointer UniformConstant 160 + 162(g_tTexcdi4): 161(ptr) Variable UniformConstant + 163: TypeImage 42(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdu4): 164(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +146(flattenTemp): 136(ptr) Variable Function + 147:8(PS_OUTPUT) FunctionCall 10(@main() + Store 146(flattenTemp) 147 + 150: 12(ptr) AccessChain 146(flattenTemp) 67 + 151: 7(fvec4) Load 150 + Store 149(@entryPointOutput.Color) 151 + 154: 141(ptr) AccessChain 146(flattenTemp) 28 + 155: 6(float) Load 154 + Store 153(@entryPointOutput.Depth) 155 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 32(txval11): 31(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 55(txval20): 12(ptr) Variable Function + 70(txval21): 31(ptr) Variable Function + 82(txval22): 44(ptr) Variable Function + 96(txval30): 12(ptr) Variable Function + 111(txval31): 31(ptr) Variable Function + 122(txval32): 44(ptr) Variable Function + 137(psout): 136(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 29: 7(fvec4) ImageSampleExplicitLod 23 24 Grad ConstOffset 25 26 28 + Store 13(txval10) 29 + 36: 33 Load 35(g_tTex1di4) + 37: 18 Load 20(g_sSamp) + 39: 38 SampledImage 36 37 + 41: 30(ivec4) ImageSampleExplicitLod 39 40 Grad ConstOffset 25 26 28 + Store 32(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 18 Load 20(g_sSamp) + 52: 51 SampledImage 49 50 + 54: 43(ivec4) ImageSampleExplicitLod 52 53 Grad ConstOffset 25 26 28 + Store 45(txval12) 54 + 59: 56 Load 58(g_tTex2df4) + 60: 18 Load 20(g_sSamp) + 62: 61 SampledImage 59 60 + 69: 7(fvec4) ImageSampleExplicitLod 62 64 Grad ConstOffset 64 65 68 + Store 55(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 18 Load 20(g_sSamp) + 77: 76 SampledImage 74 75 + 81: 30(ivec4) ImageSampleExplicitLod 77 79 Grad ConstOffset 64 65 80 + Store 70(txval21) 81 + 86: 83 Load 85(g_tTex2du4) + 87: 18 Load 20(g_sSamp) + 89: 88 SampledImage 86 87 + 95: 43(ivec4) ImageSampleExplicitLod 89 92 Grad ConstOffset 64 65 94 + Store 82(txval22) 95 + 100: 97 Load 99(g_tTex3df4) + 101: 18 Load 20(g_sSamp) + 103: 102 SampledImage 100 101 + 110: 7(fvec4) ImageSampleExplicitLod 103 105 Grad ConstOffset 107 107 109 + Store 96(txval30) 110 + 115: 112 Load 114(g_tTex3di4) + 116: 18 Load 20(g_sSamp) + 118: 117 SampledImage 115 116 + 121: 30(ivec4) ImageSampleExplicitLod 118 119 Grad ConstOffset 107 107 120 + Store 111(txval31) 121 + 126: 123 Load 125(g_tTex3du4) + 127: 18 Load 20(g_sSamp) + 129: 128 SampledImage 126 127 + 135: 43(ivec4) ImageSampleExplicitLod 129 133 Grad ConstOffset 107 107 134 + Store 122(txval32) 135 + 140: 12(ptr) AccessChain 137(psout) 67 + Store 140 139 + 142: 141(ptr) AccessChain 137(psout) 28 + Store 142 138 + 143:8(PS_OUTPUT) Load 137(psout) + ReturnValue 143 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..39a28389ed --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -0,0 +1,527 @@ +hlsl.samplegrad.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 textureGradOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:27 Constant: +0:27 1 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 textureGradOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 textureGradOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:29 Constant: +0:29 1 (const int) +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 textureGradOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 textureGradOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 textureGradOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:35 move second child to first child ( temp 4-component vector of float) +0:35 Color: direct index for structure ( temp 4-component vector of float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:36 move second child to first child ( temp float) +0:36 Depth: direct index for structure ( temp float) +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.000000 +0:38 Branch: Return with expression +0:38 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 textureGradOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:27 Constant: +0:27 1 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 textureGradOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 textureGradOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:29 Constant: +0:29 1 (const int) +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 textureGradOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 textureGradOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 textureGradOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:35 move second child to first child ( temp 4-component vector of float) +0:35 Color: direct index for structure ( temp 4-component vector of float) +0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:36 move second child to first child ( temp float) +0:36 Depth: direct index for structure ( temp float) +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.000000 +0:38 Branch: Return with expression +0:38 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? 'g_tTexcdf4' ( uniform textureCubeArray) +0:? 'g_tTexcdi4' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 120 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 103 107 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 35 "txval11" + Name 38 "g_tTex1di4" + Name 47 "txval12" + Name 50 "g_tTex1du4" + Name 56 "txval20" + Name 59 "g_tTex2df4" + Name 72 "txval21" + Name 75 "g_tTex2di4" + Name 81 "txval22" + Name 84 "g_tTex2du4" + Name 91 "psout" + Name 100 "flattenTemp" + Name 103 "@entryPointOutput.Color" + Name 107 "@entryPointOutput.Depth" + Name 110 "g_tTex1df4a" + Name 113 "g_tTexcdf4" + Name 116 "g_tTexcdi4" + Name 119 "g_tTexcdu4" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 38(g_tTex1di4) DescriptorSet 0 + Decorate 50(g_tTex1du4) DescriptorSet 0 + Decorate 59(g_tTex2df4) DescriptorSet 0 + Decorate 75(g_tTex2di4) DescriptorSet 0 + Decorate 84(g_tTex2du4) DescriptorSet 0 + Decorate 103(@entryPointOutput.Color) Location 0 + Decorate 107(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 110(g_tTex1df4a) DescriptorSet 0 + Decorate 110(g_tTex1df4a) Binding 1 + Decorate 113(g_tTexcdf4) DescriptorSet 0 + Decorate 116(g_tTexcdi4) DescriptorSet 0 + Decorate 119(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1066192077 + 29: 6(float) Constant 1067030938 + 30: TypeInt 32 1 + 31: 30(int) Constant 1 + 33: TypeVector 30(int) 4 + 34: TypePointer Function 33(ivec4) + 36: TypeImage 30(int) 1D array sampled format:Unknown + 37: TypePointer UniformConstant 36 + 38(g_tTex1di4): 37(ptr) Variable UniformConstant + 41: TypeSampledImage 36 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 57: TypeImage 6(float) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2df4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: TypeVector 6(float) 3 + 65: 6(float) Constant 1050253722 + 66: 64(fvec3) ConstantComposite 25 26 65 + 67: 24(fvec2) ConstantComposite 28 29 + 68: TypeVector 30(int) 2 + 69: 30(int) Constant 0 + 70: 68(ivec2) ConstantComposite 31 69 + 73: TypeImage 30(int) 2D array sampled format:Unknown + 74: TypePointer UniformConstant 73 + 75(g_tTex2di4): 74(ptr) Variable UniformConstant + 78: TypeSampledImage 73 + 82: TypeImage 44(int) 2D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2du4): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 90: TypePointer Function 8(PS_OUTPUT) + 92: 6(float) Constant 1065353216 + 93: 7(fvec4) ConstantComposite 92 92 92 92 + 95: TypePointer Function 6(float) + 102: TypePointer Output 7(fvec4) +103(@entryPointOutput.Color): 102(ptr) Variable Output + 106: TypePointer Output 6(float) +107(@entryPointOutput.Depth): 106(ptr) Variable Output +110(g_tTex1df4a): 15(ptr) Variable UniformConstant + 111: TypeImage 6(float) Cube array sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTexcdf4): 112(ptr) Variable UniformConstant + 114: TypeImage 30(int) Cube array sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTexcdi4): 115(ptr) Variable UniformConstant + 117: TypeImage 44(int) Cube array sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdu4): 118(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +100(flattenTemp): 90(ptr) Variable Function + 101:8(PS_OUTPUT) FunctionCall 10(@main() + Store 100(flattenTemp) 101 + 104: 12(ptr) AccessChain 100(flattenTemp) 69 + 105: 7(fvec4) Load 104 + Store 103(@entryPointOutput.Color) 105 + 108: 95(ptr) AccessChain 100(flattenTemp) 31 + 109: 6(float) Load 108 + Store 107(@entryPointOutput.Depth) 109 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 35(txval11): 34(ptr) Variable Function + 47(txval12): 46(ptr) Variable Function + 56(txval20): 12(ptr) Variable Function + 72(txval21): 34(ptr) Variable Function + 81(txval22): 46(ptr) Variable Function + 91(psout): 90(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 32: 7(fvec4) ImageSampleExplicitLod 23 27 Grad ConstOffset 28 29 31 + Store 13(txval10) 32 + 39: 36 Load 38(g_tTex1di4) + 40: 18 Load 20(g_sSamp) + 42: 41 SampledImage 39 40 + 43: 33(ivec4) ImageSampleExplicitLod 42 27 Grad ConstOffset 28 29 31 + Store 35(txval11) 43 + 51: 48 Load 50(g_tTex1du4) + 52: 18 Load 20(g_sSamp) + 54: 53 SampledImage 51 52 + 55: 45(ivec4) ImageSampleExplicitLod 54 27 Grad ConstOffset 28 29 31 + Store 47(txval12) 55 + 60: 57 Load 59(g_tTex2df4) + 61: 18 Load 20(g_sSamp) + 63: 62 SampledImage 60 61 + 71: 7(fvec4) ImageSampleExplicitLod 63 66 Grad ConstOffset 67 67 70 + Store 56(txval20) 71 + 76: 73 Load 75(g_tTex2di4) + 77: 18 Load 20(g_sSamp) + 79: 78 SampledImage 76 77 + 80: 33(ivec4) ImageSampleExplicitLod 79 66 Grad ConstOffset 67 67 70 + Store 72(txval21) 80 + 85: 82 Load 84(g_tTex2du4) + 86: 18 Load 20(g_sSamp) + 88: 87 SampledImage 85 86 + 89: 45(ivec4) ImageSampleExplicitLod 88 66 Grad ConstOffset 67 67 70 + Store 81(txval22) 89 + 94: 12(ptr) AccessChain 91(psout) 69 + Store 94 93 + 96: 95(ptr) AccessChain 91(psout) 31 + Store 96 92 + 97:8(PS_OUTPUT) Load 91(psout) + ReturnValue 97 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out new file mode 100644 index 0000000000..0151cdd378 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -0,0 +1,578 @@ +hlsl.samplelevel.array.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 textureLod ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.750000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 textureLod ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4a' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.750000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 textureLod ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4a' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.750000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 textureLod ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4a' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 textureLod ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4a' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 textureLod ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4a' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.750000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 textureLod ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4a' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 textureLod ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 textureLod ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.750000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval10' ( temp 4-component vector of float) +0:27 textureLod ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1DArray) +0:27 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.750000 +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval11' ( temp 4-component vector of int) +0:28 textureLod ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler1DArray) +0:28 'g_tTex1di4a' ( uniform itexture1DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.750000 +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval12' ( temp 4-component vector of uint) +0:29 textureLod ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler1DArray) +0:29 'g_tTex1du4a' ( uniform utexture1DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.750000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval20' ( temp 4-component vector of float) +0:31 textureLod ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler2DArray) +0:31 'g_tTex2df4a' ( uniform texture2DArray) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval21' ( temp 4-component vector of int) +0:32 textureLod ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler2DArray) +0:32 'g_tTex2di4a' ( uniform itexture2DArray) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval22' ( temp 4-component vector of uint) +0:33 textureLod ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler2DArray) +0:33 'g_tTex2du4a' ( uniform utexture2DArray) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.750000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval40' ( temp 4-component vector of float) +0:35 textureLod ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp samplerCubeArray) +0:35 'g_tTexcdf4a' ( uniform textureCubeArray) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval41' ( temp 4-component vector of int) +0:36 textureLod ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isamplerCubeArray) +0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval42' ( temp 4-component vector of uint) +0:37 textureLod ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usamplerCubeArray) +0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.750000 +0:39 move second child to first child ( temp 4-component vector of float) +0:39 Color: direct index for structure ( temp 4-component vector of float) +0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:40 move second child to first child ( temp float) +0:40 Depth: direct index for structure ( temp float) +0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:24 Color: direct index for structure ( temp 4-component vector of float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:24 Depth: direct index for structure ( temp float) +0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:24 Constant: +0:24 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'g_tTexcdf4a' ( uniform textureCubeArray) +0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) +0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 147 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 139 143 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4a" + Name 20 "g_sSamp" + Name 33 "txval11" + Name 36 "g_tTex1di4a" + Name 47 "txval12" + Name 50 "g_tTex1du4a" + Name 58 "txval20" + Name 61 "g_tTex2df4a" + Name 69 "txval21" + Name 72 "g_tTex2di4a" + Name 80 "txval22" + Name 83 "g_tTex2du4a" + Name 92 "txval40" + Name 95 "g_tTexcdf4a" + Name 102 "txval41" + Name 105 "g_tTexcdi4a" + Name 112 "txval42" + Name 115 "g_tTexcdu4a" + Name 126 "psout" + Name 136 "flattenTemp" + Name 139 "@entryPointOutput.Color" + Name 143 "@entryPointOutput.Depth" + Name 146 "g_tTex1df4" + Decorate 16(g_tTex1df4a) DescriptorSet 0 + Decorate 16(g_tTex1df4a) Binding 1 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 50(g_tTex1du4a) DescriptorSet 0 + Decorate 61(g_tTex2df4a) DescriptorSet 0 + Decorate 72(g_tTex2di4a) DescriptorSet 0 + Decorate 83(g_tTex2du4a) DescriptorSet 0 + Decorate 95(g_tTexcdf4a) DescriptorSet 0 + Decorate 105(g_tTexcdi4a) DescriptorSet 0 + Decorate 115(g_tTexcdu4a) DescriptorSet 0 + Decorate 139(@entryPointOutput.Color) Location 0 + Decorate 143(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 146(g_tTex1df4) DescriptorSet 0 + Decorate 146(g_tTex1df4) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4a): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1061158912 + 30: TypeInt 32 1 + 31: TypeVector 30(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 30(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1050253722 + 42: 24(fvec2) ConstantComposite 26 41 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4a): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 55: 6(float) Constant 1053609165 + 56: 24(fvec2) ConstantComposite 41 55 + 59: TypeImage 6(float) 2D array sampled format:Unknown + 60: TypePointer UniformConstant 59 + 61(g_tTex2df4a): 60(ptr) Variable UniformConstant + 64: TypeSampledImage 59 + 66: TypeVector 6(float) 3 + 67: 66(fvec3) ConstantComposite 25 26 41 + 70: TypeImage 30(int) 2D array sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4a): 71(ptr) Variable UniformConstant + 75: TypeSampledImage 70 + 77: 6(float) Constant 1056964608 + 78: 66(fvec3) ConstantComposite 41 55 77 + 81: TypeImage 44(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4a): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 6(float) Constant 1060320051 + 90: 66(fvec3) ConstantComposite 77 88 89 + 93: TypeImage 6(float) Cube array sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTexcdf4a): 94(ptr) Variable UniformConstant + 98: TypeSampledImage 93 + 100: 7(fvec4) ConstantComposite 25 26 41 55 + 103: TypeImage 30(int) Cube array sampled format:Unknown + 104: TypePointer UniformConstant 103 +105(g_tTexcdi4a): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 7(fvec4) ConstantComposite 55 77 88 89 + 113: TypeImage 44(int) Cube array sampled format:Unknown + 114: TypePointer UniformConstant 113 +115(g_tTexcdu4a): 114(ptr) Variable UniformConstant + 118: TypeSampledImage 113 + 120: 6(float) Constant 1061997773 + 121: 6(float) Constant 1063675494 + 122: 6(float) Constant 1065353216 + 123: 7(fvec4) ConstantComposite 89 120 121 122 + 125: TypePointer Function 8(PS_OUTPUT) + 127: 30(int) Constant 0 + 128: 7(fvec4) ConstantComposite 122 122 122 122 + 130: 30(int) Constant 1 + 131: TypePointer Function 6(float) + 138: TypePointer Output 7(fvec4) +139(@entryPointOutput.Color): 138(ptr) Variable Output + 142: TypePointer Output 6(float) +143(@entryPointOutput.Depth): 142(ptr) Variable Output + 146(g_tTex1df4): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +136(flattenTemp): 125(ptr) Variable Function + 137:8(PS_OUTPUT) FunctionCall 10(@main() + Store 136(flattenTemp) 137 + 140: 12(ptr) AccessChain 136(flattenTemp) 127 + 141: 7(fvec4) Load 140 + Store 139(@entryPointOutput.Color) 141 + 144: 131(ptr) AccessChain 136(flattenTemp) 130 + 145: 6(float) Load 144 + Store 143(@entryPointOutput.Depth) 145 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 33(txval11): 32(ptr) Variable Function + 47(txval12): 46(ptr) Variable Function + 58(txval20): 12(ptr) Variable Function + 69(txval21): 32(ptr) Variable Function + 80(txval22): 46(ptr) Variable Function + 92(txval40): 12(ptr) Variable Function + 102(txval41): 32(ptr) Variable Function + 112(txval42): 46(ptr) Variable Function + 126(psout): 125(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4a) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 29: 7(fvec4) ImageSampleExplicitLod 23 27 Lod 28 + Store 13(txval10) 29 + 37: 34 Load 36(g_tTex1di4a) + 38: 18 Load 20(g_sSamp) + 40: 39 SampledImage 37 38 + 43: 31(ivec4) ImageSampleExplicitLod 40 42 Lod 28 + Store 33(txval11) 43 + 51: 48 Load 50(g_tTex1du4a) + 52: 18 Load 20(g_sSamp) + 54: 53 SampledImage 51 52 + 57: 45(ivec4) ImageSampleExplicitLod 54 56 Lod 28 + Store 47(txval12) 57 + 62: 59 Load 61(g_tTex2df4a) + 63: 18 Load 20(g_sSamp) + 65: 64 SampledImage 62 63 + 68: 7(fvec4) ImageSampleExplicitLod 65 67 Lod 28 + Store 58(txval20) 68 + 73: 70 Load 72(g_tTex2di4a) + 74: 18 Load 20(g_sSamp) + 76: 75 SampledImage 73 74 + 79: 31(ivec4) ImageSampleExplicitLod 76 78 Lod 28 + Store 69(txval21) 79 + 84: 81 Load 83(g_tTex2du4a) + 85: 18 Load 20(g_sSamp) + 87: 86 SampledImage 84 85 + 91: 45(ivec4) ImageSampleExplicitLod 87 90 Lod 28 + Store 80(txval22) 91 + 96: 93 Load 95(g_tTexcdf4a) + 97: 18 Load 20(g_sSamp) + 99: 98 SampledImage 96 97 + 101: 7(fvec4) ImageSampleExplicitLod 99 100 Lod 28 + Store 92(txval40) 101 + 106: 103 Load 105(g_tTexcdi4a) + 107: 18 Load 20(g_sSamp) + 109: 108 SampledImage 106 107 + 111: 31(ivec4) ImageSampleExplicitLod 109 110 Lod 28 + Store 102(txval41) 111 + 116: 113 Load 115(g_tTexcdu4a) + 117: 18 Load 20(g_sSamp) + 119: 118 SampledImage 116 117 + 124: 45(ivec4) ImageSampleExplicitLod 119 123 Lod 28 + Store 112(txval42) 124 + 129: 12(ptr) AccessChain 126(psout) 127 + Store 129 128 + 132: 131(ptr) AccessChain 126(psout) 130 + Store 132 122 + 133:8(PS_OUTPUT) Load 126(psout) + ReturnValue 133 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out new file mode 100644 index 0000000000..9327b844af --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -0,0 +1,684 @@ +hlsl.samplelevel.basic.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'txval10' ( temp 4-component vector of float) +0:32 textureLod ( temp 4-component vector of float) +0:32 Construct combined texture-sampler ( temp sampler1D) +0:32 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.100000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of int) +0:33 'txval11' ( temp 4-component vector of int) +0:33 textureLod ( temp 4-component vector of int) +0:33 Construct combined texture-sampler ( temp isampler1D) +0:33 'g_tTex1di4' ( uniform itexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.200000 +0:33 Constant: +0:33 0.750000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 'txval12' ( temp 4-component vector of uint) +0:34 textureLod ( temp 4-component vector of uint) +0:34 Construct combined texture-sampler ( temp usampler1D) +0:34 'g_tTex1du4' ( uniform utexture1D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:34 Constant: +0:34 0.300000 +0:34 Constant: +0:34 0.750000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of float) +0:36 'txval20' ( temp 4-component vector of float) +0:36 textureLod ( temp 4-component vector of float) +0:36 Construct combined texture-sampler ( temp sampler2D) +0:36 'g_tTex2df4' ( uniform texture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of int) +0:37 'txval21' ( temp 4-component vector of int) +0:37 textureLod ( temp 4-component vector of int) +0:37 Construct combined texture-sampler ( temp isampler2D) +0:37 'g_tTex2di4' ( uniform itexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:37 Constant: +0:37 0.750000 +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of uint) +0:38 'txval22' ( temp 4-component vector of uint) +0:38 textureLod ( temp 4-component vector of uint) +0:38 Construct combined texture-sampler ( temp usampler2D) +0:38 'g_tTex2du4' ( uniform utexture2D) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:38 Constant: +0:38 0.750000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'txval30' ( temp 4-component vector of float) +0:40 textureLod ( temp 4-component vector of float) +0:40 Construct combined texture-sampler ( temp sampler3D) +0:40 'g_tTex3df4' ( uniform texture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Constant: +0:40 0.750000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of int) +0:41 'txval31' ( temp 4-component vector of int) +0:41 textureLod ( temp 4-component vector of int) +0:41 Construct combined texture-sampler ( temp isampler3D) +0:41 'g_tTex3di4' ( uniform itexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Constant: +0:41 0.750000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of uint) +0:42 'txval32' ( temp 4-component vector of uint) +0:42 textureLod ( temp 4-component vector of uint) +0:42 Construct combined texture-sampler ( temp usampler3D) +0:42 'g_tTex3du4' ( uniform utexture3D) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:42 Constant: +0:42 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'txval40' ( temp 4-component vector of float) +0:44 textureLod ( temp 4-component vector of float) +0:44 Construct combined texture-sampler ( temp samplerCube) +0:44 'g_tTexcdf4' ( uniform textureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:44 Constant: +0:44 0.750000 +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of int) +0:45 'txval41' ( temp 4-component vector of int) +0:45 textureLod ( temp 4-component vector of int) +0:45 Construct combined texture-sampler ( temp isamplerCube) +0:45 'g_tTexcdi4' ( uniform itextureCube) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:45 Constant: +0:45 0.750000 +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of uint) +0:46 'txval42' ( temp 4-component vector of uint) +0:46 textureLod ( temp 4-component vector of uint) +0:46 Construct combined texture-sampler ( temp usamplerCube) +0:46 'g_tTexcdu4' ( uniform utextureCube) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:46 Constant: +0:46 0.750000 +0:48 move second child to first child ( temp 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 +0:49 move second child to first child ( temp float) +0:49 Depth: direct index for structure ( temp float) +0:49 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 1.000000 +0:51 Branch: Return with expression +0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:29 Color: direct index for structure ( temp 4-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:29 Depth: direct index for structure ( temp float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of float) +0:32 'txval10' ( temp 4-component vector of float) +0:32 textureLod ( temp 4-component vector of float) +0:32 Construct combined texture-sampler ( temp sampler1D) +0:32 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.100000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of int) +0:33 'txval11' ( temp 4-component vector of int) +0:33 textureLod ( temp 4-component vector of int) +0:33 Construct combined texture-sampler ( temp isampler1D) +0:33 'g_tTex1di4' ( uniform itexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.200000 +0:33 Constant: +0:33 0.750000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 'txval12' ( temp 4-component vector of uint) +0:34 textureLod ( temp 4-component vector of uint) +0:34 Construct combined texture-sampler ( temp usampler1D) +0:34 'g_tTex1du4' ( uniform utexture1D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:34 Constant: +0:34 0.300000 +0:34 Constant: +0:34 0.750000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of float) +0:36 'txval20' ( temp 4-component vector of float) +0:36 textureLod ( temp 4-component vector of float) +0:36 Construct combined texture-sampler ( temp sampler2D) +0:36 'g_tTex2df4' ( uniform texture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of int) +0:37 'txval21' ( temp 4-component vector of int) +0:37 textureLod ( temp 4-component vector of int) +0:37 Construct combined texture-sampler ( temp isampler2D) +0:37 'g_tTex2di4' ( uniform itexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:37 Constant: +0:37 0.750000 +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of uint) +0:38 'txval22' ( temp 4-component vector of uint) +0:38 textureLod ( temp 4-component vector of uint) +0:38 Construct combined texture-sampler ( temp usampler2D) +0:38 'g_tTex2du4' ( uniform utexture2D) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:38 Constant: +0:38 0.750000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'txval30' ( temp 4-component vector of float) +0:40 textureLod ( temp 4-component vector of float) +0:40 Construct combined texture-sampler ( temp sampler3D) +0:40 'g_tTex3df4' ( uniform texture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Constant: +0:40 0.750000 +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of int) +0:41 'txval31' ( temp 4-component vector of int) +0:41 textureLod ( temp 4-component vector of int) +0:41 Construct combined texture-sampler ( temp isampler3D) +0:41 'g_tTex3di4' ( uniform itexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Constant: +0:41 0.750000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of uint) +0:42 'txval32' ( temp 4-component vector of uint) +0:42 textureLod ( temp 4-component vector of uint) +0:42 Construct combined texture-sampler ( temp usampler3D) +0:42 'g_tTex3du4' ( uniform utexture3D) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:42 Constant: +0:42 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'txval40' ( temp 4-component vector of float) +0:44 textureLod ( temp 4-component vector of float) +0:44 Construct combined texture-sampler ( temp samplerCube) +0:44 'g_tTexcdf4' ( uniform textureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:44 Constant: +0:44 0.750000 +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of int) +0:45 'txval41' ( temp 4-component vector of int) +0:45 textureLod ( temp 4-component vector of int) +0:45 Construct combined texture-sampler ( temp isamplerCube) +0:45 'g_tTexcdi4' ( uniform itextureCube) +0:45 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:45 Constant: +0:45 0.750000 +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of uint) +0:46 'txval42' ( temp 4-component vector of uint) +0:46 textureLod ( temp 4-component vector of uint) +0:46 Construct combined texture-sampler ( temp usamplerCube) +0:46 'g_tTexcdu4' ( uniform utextureCube) +0:46 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:46 Constant: +0:46 0.750000 +0:48 move second child to first child ( temp 4-component vector of float) +0:48 Color: direct index for structure ( temp 4-component vector of float) +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 +0:49 move second child to first child ( temp float) +0:49 Depth: direct index for structure ( temp float) +0:49 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 1.000000 +0:51 Branch: Return with expression +0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:29 Color: direct index for structure ( temp 4-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:29 Depth: direct index for structure ( temp float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:29 Constant: +0:29 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_sSamp2d' ( uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 172 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 163 167 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 53 "txval20" + Name 56 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 87 "txval30" + Name 90 "g_tTex3df4" + Name 98 "txval31" + Name 101 "g_tTex3di4" + Name 108 "txval32" + Name 111 "g_tTex3du4" + Name 121 "txval40" + Name 124 "g_tTexcdf4" + Name 130 "txval41" + Name 133 "g_tTexcdi4" + Name 139 "txval42" + Name 142 "g_tTexcdu4" + Name 149 "psout" + Name 160 "flattenTemp" + Name 163 "@entryPointOutput.Color" + Name 167 "@entryPointOutput.Depth" + Name 170 "g_sSamp2d" + Name 171 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 133(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 163(@entryPointOutput.Color) Location 0 + Decorate 167(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 170(g_sSamp2d) DescriptorSet 0 + Decorate 171(g_tTex1df4a) DescriptorSet 0 + Decorate 171(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 27: TypeInt 32 1 + 28: TypeVector 27(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 27(int) 1D sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1045220557 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1050253722 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: TypeVector 6(float) 2 + 62: 61(fvec2) ConstantComposite 24 38 + 65: TypeImage 27(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 61(fvec2) ConstantComposite 51 72 + 76: TypeImage 40(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1056964608 + 84: 6(float) Constant 1058642330 + 85: 61(fvec2) ConstantComposite 83 84 + 88: TypeImage 6(float) 3D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex3df4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: TypeVector 6(float) 3 + 96: 95(fvec3) ConstantComposite 24 38 51 + 99: TypeImage 27(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 95(fvec3) ConstantComposite 72 83 84 + 109: TypeImage 40(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1060320051 + 117: 6(float) Constant 1061997773 + 118: 6(float) Constant 1063675494 + 119: 95(fvec3) ConstantComposite 116 117 118 + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 131: TypeImage 27(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 40(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148: TypePointer Function 8(PS_OUTPUT) + 150: 27(int) Constant 0 + 151: 6(float) Constant 1065353216 + 152: 7(fvec4) ConstantComposite 151 151 151 151 + 154: 27(int) Constant 1 + 155: TypePointer Function 6(float) + 162: TypePointer Output 7(fvec4) +163(@entryPointOutput.Color): 162(ptr) Variable Output + 166: TypePointer Output 6(float) +167(@entryPointOutput.Depth): 166(ptr) Variable Output + 170(g_sSamp2d): 19(ptr) Variable UniformConstant +171(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +160(flattenTemp): 148(ptr) Variable Function + 161:8(PS_OUTPUT) FunctionCall 10(@main() + Store 160(flattenTemp) 161 + 164: 12(ptr) AccessChain 160(flattenTemp) 150 + 165: 7(fvec4) Load 164 + Store 163(@entryPointOutput.Color) 165 + 168: 155(ptr) AccessChain 160(flattenTemp) 154 + 169: 6(float) Load 168 + Store 167(@entryPointOutput.Depth) 169 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 53(txval20): 12(ptr) Variable Function + 64(txval21): 29(ptr) Variable Function + 75(txval22): 42(ptr) Variable Function + 87(txval30): 12(ptr) Variable Function + 98(txval31): 29(ptr) Variable Function + 108(txval32): 42(ptr) Variable Function + 121(txval40): 12(ptr) Variable Function + 130(txval41): 29(ptr) Variable Function + 139(txval42): 42(ptr) Variable Function + 149(psout): 148(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 26: 7(fvec4) ImageSampleExplicitLod 23 24 Lod 25 + Store 13(txval10) 26 + 34: 31 Load 33(g_tTex1di4) + 35: 18 Load 20(g_sSamp) + 37: 36 SampledImage 34 35 + 39: 28(ivec4) ImageSampleExplicitLod 37 38 Lod 25 + Store 30(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 18 Load 20(g_sSamp) + 50: 49 SampledImage 47 48 + 52: 41(ivec4) ImageSampleExplicitLod 50 51 Lod 25 + Store 43(txval12) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 18 Load 20(g_sSamp) + 60: 59 SampledImage 57 58 + 63: 7(fvec4) ImageSampleExplicitLod 60 62 Lod 25 + Store 53(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 18 Load 20(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 28(ivec4) ImageSampleExplicitLod 71 73 Lod 25 + Store 64(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 18 Load 20(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 41(ivec4) ImageSampleExplicitLod 82 85 Lod 25 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTex3df4) + 92: 18 Load 20(g_sSamp) + 94: 93 SampledImage 91 92 + 97: 7(fvec4) ImageSampleExplicitLod 94 96 Lod 25 + Store 87(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 18 Load 20(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 28(ivec4) ImageSampleExplicitLod 105 106 Lod 25 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 18 Load 20(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 25 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 18 Load 20(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 96 Lod 25 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 18 Load 20(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 28(ivec4) ImageSampleExplicitLod 137 106 Lod 25 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 18 Load 20(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 41(ivec4) ImageSampleExplicitLod 146 119 Lod 25 + Store 139(txval42) 147 + 153: 12(ptr) AccessChain 149(psout) 150 + Store 153 152 + 156: 155(ptr) AccessChain 149(psout) 154 + Store 156 151 + 157:8(PS_OUTPUT) Load 149(psout) + ReturnValue 157 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out new file mode 100644 index 0000000000..d2bd1b8754 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -0,0 +1,623 @@ +hlsl.samplelevel.basic.dx10.vert +Shader version: 500 +0:? Sequence +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:30 'txval10' ( temp 4-component vector of float) +0:30 textureLod ( temp 4-component vector of float) +0:30 Construct combined texture-sampler ( temp sampler1D) +0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 0.750000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of int) +0:31 'txval11' ( temp 4-component vector of int) +0:31 textureLod ( temp 4-component vector of int) +0:31 Construct combined texture-sampler ( temp isampler1D) +0:31 'g_tTex1di4' ( uniform itexture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of uint) +0:32 'txval12' ( temp 4-component vector of uint) +0:32 textureLod ( temp 4-component vector of uint) +0:32 Construct combined texture-sampler ( temp usampler1D) +0:32 'g_tTex1du4' ( uniform utexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 0.750000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'txval20' ( temp 4-component vector of float) +0:34 textureLod ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df4' ( uniform texture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Constant: +0:34 0.750000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of int) +0:35 'txval21' ( temp 4-component vector of int) +0:35 textureLod ( temp 4-component vector of int) +0:35 Construct combined texture-sampler ( temp isampler2D) +0:35 'g_tTex2di4' ( uniform itexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of uint) +0:36 'txval22' ( temp 4-component vector of uint) +0:36 textureLod ( temp 4-component vector of uint) +0:36 Construct combined texture-sampler ( temp usampler2D) +0:36 'g_tTex2du4' ( uniform utexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:36 Constant: +0:36 0.750000 +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'txval30' ( temp 4-component vector of float) +0:38 textureLod ( temp 4-component vector of float) +0:38 Construct combined texture-sampler ( temp sampler3D) +0:38 'g_tTex3df4' ( uniform texture3D) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:38 Constant: +0:38 0.750000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of int) +0:39 'txval31' ( temp 4-component vector of int) +0:39 textureLod ( temp 4-component vector of int) +0:39 Construct combined texture-sampler ( temp isampler3D) +0:39 'g_tTex3di4' ( uniform itexture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:39 Constant: +0:39 0.750000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of uint) +0:40 'txval32' ( temp 4-component vector of uint) +0:40 textureLod ( temp 4-component vector of uint) +0:40 Construct combined texture-sampler ( temp usampler3D) +0:40 'g_tTex3du4' ( uniform utexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:40 Constant: +0:40 0.750000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'txval40' ( temp 4-component vector of float) +0:42 textureLod ( temp 4-component vector of float) +0:42 Construct combined texture-sampler ( temp samplerCube) +0:42 'g_tTexcdf4' ( uniform textureCube) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'txval41' ( temp 4-component vector of int) +0:43 textureLod ( temp 4-component vector of int) +0:43 Construct combined texture-sampler ( temp isamplerCube) +0:43 'g_tTexcdi4' ( uniform itextureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of uint) +0:44 'txval42' ( temp 4-component vector of uint) +0:44 textureLod ( temp 4-component vector of uint) +0:44 Construct combined texture-sampler ( temp usamplerCube) +0:44 'g_tTexcdu4' ( uniform utextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 Constant: +0:44 0.750000 +0:46 move second child to first child ( temp 4-component vector of float) +0:46 Pos: direct index for structure ( temp 4-component vector of float) +0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Constant: +0:27 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp 4-component vector of float) +0:30 'txval10' ( temp 4-component vector of float) +0:30 textureLod ( temp 4-component vector of float) +0:30 Construct combined texture-sampler ( temp sampler1D) +0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:30 'g_sSamp' (layout( binding=0) uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 0.750000 +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of int) +0:31 'txval11' ( temp 4-component vector of int) +0:31 textureLod ( temp 4-component vector of int) +0:31 Construct combined texture-sampler ( temp isampler1D) +0:31 'g_tTex1di4' ( uniform itexture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of uint) +0:32 'txval12' ( temp 4-component vector of uint) +0:32 textureLod ( temp 4-component vector of uint) +0:32 Construct combined texture-sampler ( temp usampler1D) +0:32 'g_tTex1du4' ( uniform utexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 0.750000 +0:34 Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:34 'txval20' ( temp 4-component vector of float) +0:34 textureLod ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df4' ( uniform texture2D) +0:34 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Constant: +0:34 0.750000 +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of int) +0:35 'txval21' ( temp 4-component vector of int) +0:35 textureLod ( temp 4-component vector of int) +0:35 Construct combined texture-sampler ( temp isampler2D) +0:35 'g_tTex2di4' ( uniform itexture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of uint) +0:36 'txval22' ( temp 4-component vector of uint) +0:36 textureLod ( temp 4-component vector of uint) +0:36 Construct combined texture-sampler ( temp usampler2D) +0:36 'g_tTex2du4' ( uniform utexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:36 Constant: +0:36 0.750000 +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'txval30' ( temp 4-component vector of float) +0:38 textureLod ( temp 4-component vector of float) +0:38 Construct combined texture-sampler ( temp sampler3D) +0:38 'g_tTex3df4' ( uniform texture3D) +0:38 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:38 Constant: +0:38 0.750000 +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of int) +0:39 'txval31' ( temp 4-component vector of int) +0:39 textureLod ( temp 4-component vector of int) +0:39 Construct combined texture-sampler ( temp isampler3D) +0:39 'g_tTex3di4' ( uniform itexture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:39 Constant: +0:39 0.750000 +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of uint) +0:40 'txval32' ( temp 4-component vector of uint) +0:40 textureLod ( temp 4-component vector of uint) +0:40 Construct combined texture-sampler ( temp usampler3D) +0:40 'g_tTex3du4' ( uniform utexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:40 Constant: +0:40 0.750000 +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'txval40' ( temp 4-component vector of float) +0:42 textureLod ( temp 4-component vector of float) +0:42 Construct combined texture-sampler ( temp samplerCube) +0:42 'g_tTexcdf4' ( uniform textureCube) +0:42 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'txval41' ( temp 4-component vector of int) +0:43 textureLod ( temp 4-component vector of int) +0:43 Construct combined texture-sampler ( temp isamplerCube) +0:43 'g_tTexcdi4' ( uniform itextureCube) +0:43 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of uint) +0:44 'txval42' ( temp 4-component vector of uint) +0:44 textureLod ( temp 4-component vector of uint) +0:44 Construct combined texture-sampler ( temp usamplerCube) +0:44 'g_tTexcdu4' ( uniform utextureCube) +0:44 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 Constant: +0:44 0.750000 +0:46 move second child to first child ( temp 4-component vector of float) +0:46 Pos: direct index for structure ( temp 4-component vector of float) +0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:27 Function Definition: main( ( temp void) +0:27 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:27 Pos: direct index for structure ( temp 4-component vector of float) +0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) +0:27 Constant: +0:27 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 162 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 158 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_OUTPUT" + MemberName 8(VS_OUTPUT) 0 "Pos" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 53 "txval20" + Name 56 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 87 "txval30" + Name 90 "g_tTex3df4" + Name 98 "txval31" + Name 101 "g_tTex3di4" + Name 108 "txval32" + Name 111 "g_tTex3du4" + Name 121 "txval40" + Name 124 "g_tTexcdf4" + Name 130 "txval41" + Name 133 "g_tTexcdi4" + Name 139 "txval42" + Name 142 "g_tTexcdu4" + Name 149 "vsout" + Name 158 "@entryPointOutput.Pos" + Name 161 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 133(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 158(@entryPointOutput.Pos) BuiltIn Position + Decorate 161(g_tTex1df4a) DescriptorSet 0 + Decorate 161(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(VS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 27: TypeInt 32 1 + 28: TypeVector 27(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 27(int) 1D sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1045220557 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1050253722 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: TypeVector 6(float) 2 + 62: 61(fvec2) ConstantComposite 24 38 + 65: TypeImage 27(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 61(fvec2) ConstantComposite 51 72 + 76: TypeImage 40(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1056964608 + 84: 6(float) Constant 1058642330 + 85: 61(fvec2) ConstantComposite 83 84 + 88: TypeImage 6(float) 3D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex3df4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: TypeVector 6(float) 3 + 96: 95(fvec3) ConstantComposite 24 38 51 + 99: TypeImage 27(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 95(fvec3) ConstantComposite 72 83 84 + 109: TypeImage 40(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1060320051 + 117: 6(float) Constant 1061997773 + 118: 6(float) Constant 1063675494 + 119: 95(fvec3) ConstantComposite 116 117 118 + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 131: TypeImage 27(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 40(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148: TypePointer Function 8(VS_OUTPUT) + 150: 27(int) Constant 0 + 151: 6(float) Constant 0 + 152: 7(fvec4) ConstantComposite 151 151 151 151 + 157: TypePointer Output 7(fvec4) +158(@entryPointOutput.Pos): 157(ptr) Variable Output +161(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 159:8(VS_OUTPUT) FunctionCall 10(@main() + 160: 7(fvec4) CompositeExtract 159 0 + Store 158(@entryPointOutput.Pos) 160 + Return + FunctionEnd + 10(@main():8(VS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 53(txval20): 12(ptr) Variable Function + 64(txval21): 29(ptr) Variable Function + 75(txval22): 42(ptr) Variable Function + 87(txval30): 12(ptr) Variable Function + 98(txval31): 29(ptr) Variable Function + 108(txval32): 42(ptr) Variable Function + 121(txval40): 12(ptr) Variable Function + 130(txval41): 29(ptr) Variable Function + 139(txval42): 42(ptr) Variable Function + 149(vsout): 148(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 26: 7(fvec4) ImageSampleExplicitLod 23 24 Lod 25 + Store 13(txval10) 26 + 34: 31 Load 33(g_tTex1di4) + 35: 18 Load 20(g_sSamp) + 37: 36 SampledImage 34 35 + 39: 28(ivec4) ImageSampleExplicitLod 37 38 Lod 25 + Store 30(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 18 Load 20(g_sSamp) + 50: 49 SampledImage 47 48 + 52: 41(ivec4) ImageSampleExplicitLod 50 51 Lod 25 + Store 43(txval12) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 18 Load 20(g_sSamp) + 60: 59 SampledImage 57 58 + 63: 7(fvec4) ImageSampleExplicitLod 60 62 Lod 25 + Store 53(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 18 Load 20(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 28(ivec4) ImageSampleExplicitLod 71 73 Lod 25 + Store 64(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 18 Load 20(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 41(ivec4) ImageSampleExplicitLod 82 85 Lod 25 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTex3df4) + 92: 18 Load 20(g_sSamp) + 94: 93 SampledImage 91 92 + 97: 7(fvec4) ImageSampleExplicitLod 94 96 Lod 25 + Store 87(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 18 Load 20(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 28(ivec4) ImageSampleExplicitLod 105 106 Lod 25 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 18 Load 20(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 25 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 18 Load 20(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 96 Lod 25 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 18 Load 20(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 28(ivec4) ImageSampleExplicitLod 137 106 Lod 25 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 18 Load 20(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 41(ivec4) ImageSampleExplicitLod 146 119 Lod 25 + Store 139(txval42) 147 + 153: 12(ptr) AccessChain 149(vsout) 150 + Store 153 152 + 154:8(VS_OUTPUT) Load 149(vsout) + ReturnValue 154 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out new file mode 100644 index 0000000000..36c932c838 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -0,0 +1,640 @@ +hlsl.samplelevel.offset.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureLodOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.750000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureLodOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.750000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureLodOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.750000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureLodOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureLodOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureLodOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureLodOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureLodOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureLodOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'txval10' ( temp 4-component vector of float) +0:31 textureLodOffset ( temp 4-component vector of float) +0:31 Construct combined texture-sampler ( temp sampler1D) +0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:31 'g_sSamp' (layout( binding=0) uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.750000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child ( temp 4-component vector of int) +0:32 'txval11' ( temp 4-component vector of int) +0:32 textureLodOffset ( temp 4-component vector of int) +0:32 Construct combined texture-sampler ( temp isampler1D) +0:32 'g_tTex1di4' ( uniform itexture1D) +0:32 'g_sSamp' (layout( binding=0) uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.750000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of uint) +0:33 'txval12' ( temp 4-component vector of uint) +0:33 textureLodOffset ( temp 4-component vector of uint) +0:33 Construct combined texture-sampler ( temp usampler1D) +0:33 'g_tTex1du4' ( uniform utexture1D) +0:33 'g_sSamp' (layout( binding=0) uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.750000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp 4-component vector of float) +0:35 'txval20' ( temp 4-component vector of float) +0:35 textureLodOffset ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df4' ( uniform texture2D) +0:35 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child ( temp 4-component vector of int) +0:36 'txval21' ( temp 4-component vector of int) +0:36 textureLodOffset ( temp 4-component vector of int) +0:36 Construct combined texture-sampler ( temp isampler2D) +0:36 'g_tTex2di4' ( uniform itexture2D) +0:36 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 4-component vector of uint) +0:37 'txval22' ( temp 4-component vector of uint) +0:37 textureLodOffset ( temp 4-component vector of uint) +0:37 Construct combined texture-sampler ( temp usampler2D) +0:37 'g_tTex2du4' ( uniform utexture2D) +0:37 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 'txval30' ( temp 4-component vector of float) +0:39 textureLodOffset ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler3D) +0:39 'g_tTex3df4' ( uniform texture3D) +0:39 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of int) +0:40 'txval31' ( temp 4-component vector of int) +0:40 textureLodOffset ( temp 4-component vector of int) +0:40 Construct combined texture-sampler ( temp isampler3D) +0:40 'g_tTex3di4' ( uniform itexture3D) +0:40 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child ( temp 4-component vector of uint) +0:41 'txval32' ( temp 4-component vector of uint) +0:41 textureLodOffset ( temp 4-component vector of uint) +0:41 Construct combined texture-sampler ( temp usampler3D) +0:41 'g_tTex3du4' ( uniform utexture3D) +0:41 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:45 move second child to first child ( temp 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:46 move second child to first child ( temp float) +0:46 Depth: direct index for structure ( temp float) +0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( ( temp void) +0:28 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:28 Color: direct index for structure ( temp 4-component vector of float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:28 Depth: direct index for structure ( temp float) +0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:28 Constant: +0:28 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTexcdf4' ( uniform textureCube) +0:? 'g_tTexcdi4' ( uniform itextureCube) +0:? 'g_tTexcdu4' ( uniform utextureCube) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 162 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 145 149 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 44 "txval12" + Name 47 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 94 "txval30" + Name 97 "g_tTex3df4" + Name 107 "txval31" + Name 110 "g_tTex3di4" + Name 118 "txval32" + Name 121 "g_tTex3du4" + Name 133 "psout" + Name 142 "flattenTemp" + Name 145 "@entryPointOutput.Color" + Name 149 "@entryPointOutput.Depth" + Name 152 "g_tTex1df4a" + Name 155 "g_tTexcdf4" + Name 158 "g_tTexcdi4" + Name 161 "g_tTexcdu4" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + Decorate 97(g_tTex3df4) DescriptorSet 0 + Decorate 110(g_tTex3di4) DescriptorSet 0 + Decorate 121(g_tTex3du4) DescriptorSet 0 + Decorate 145(@entryPointOutput.Color) Location 0 + Decorate 149(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 152(g_tTex1df4a) DescriptorSet 0 + Decorate 152(g_tTex1df4a) Binding 1 + Decorate 155(g_tTexcdf4) DescriptorSet 0 + Decorate 158(g_tTexcdi4) DescriptorSet 0 + Decorate 161(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: 6(float) Constant 1036831949 + 25: 6(float) Constant 1061158912 + 26: TypeInt 32 1 + 27: 26(int) Constant 1 + 29: TypeVector 26(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 26(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 39: 6(float) Constant 1045220557 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 1D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1050253722 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 2 + 63: 62(fvec2) ConstantComposite 24 39 + 64: TypeVector 26(int) 2 + 65: 26(int) Constant 0 + 66: 64(ivec2) ConstantComposite 27 65 + 69: TypeImage 26(int) 2D sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 76: 6(float) Constant 1053609165 + 77: 62(fvec2) ConstantComposite 52 76 + 78: 64(ivec2) ConstantComposite 27 27 + 81: TypeImage 41(int) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1056964608 + 89: 6(float) Constant 1058642330 + 90: 62(fvec2) ConstantComposite 88 89 + 91: 26(int) Constant 4294967295 + 92: 64(ivec2) ConstantComposite 27 91 + 95: TypeImage 6(float) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3df4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: TypeVector 6(float) 3 + 103: 102(fvec3) ConstantComposite 24 39 52 + 104: TypeVector 26(int) 3 + 105: 104(ivec3) ConstantComposite 27 65 27 + 108: TypeImage 26(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3di4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 102(fvec3) ConstantComposite 76 88 89 + 116: 104(ivec3) ConstantComposite 27 27 27 + 119: TypeImage 41(int) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex3du4): 120(ptr) Variable UniformConstant + 124: TypeSampledImage 119 + 126: 6(float) Constant 1060320051 + 127: 6(float) Constant 1061997773 + 128: 6(float) Constant 1063675494 + 129: 102(fvec3) ConstantComposite 126 127 128 + 130: 104(ivec3) ConstantComposite 27 65 91 + 132: TypePointer Function 8(PS_OUTPUT) + 134: 6(float) Constant 1065353216 + 135: 7(fvec4) ConstantComposite 134 134 134 134 + 137: TypePointer Function 6(float) + 144: TypePointer Output 7(fvec4) +145(@entryPointOutput.Color): 144(ptr) Variable Output + 148: TypePointer Output 6(float) +149(@entryPointOutput.Depth): 148(ptr) Variable Output +152(g_tTex1df4a): 15(ptr) Variable UniformConstant + 153: TypeImage 6(float) Cube sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTexcdf4): 154(ptr) Variable UniformConstant + 156: TypeImage 26(int) Cube sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTexcdi4): 157(ptr) Variable UniformConstant + 159: TypeImage 41(int) Cube sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTexcdu4): 160(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +142(flattenTemp): 132(ptr) Variable Function + 143:8(PS_OUTPUT) FunctionCall 10(@main() + Store 142(flattenTemp) 143 + 146: 12(ptr) AccessChain 142(flattenTemp) 65 + 147: 7(fvec4) Load 146 + Store 145(@entryPointOutput.Color) 147 + 150: 137(ptr) AccessChain 142(flattenTemp) 27 + 151: 6(float) Load 150 + Store 149(@entryPointOutput.Depth) 151 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 44(txval12): 43(ptr) Variable Function + 54(txval20): 12(ptr) Variable Function + 68(txval21): 30(ptr) Variable Function + 80(txval22): 43(ptr) Variable Function + 94(txval30): 12(ptr) Variable Function + 107(txval31): 30(ptr) Variable Function + 118(txval32): 43(ptr) Variable Function + 133(psout): 132(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 28: 7(fvec4) ImageSampleExplicitLod 23 24 Lod ConstOffset 25 27 + Store 13(txval10) 28 + 35: 32 Load 34(g_tTex1di4) + 36: 18 Load 20(g_sSamp) + 38: 37 SampledImage 35 36 + 40: 29(ivec4) ImageSampleExplicitLod 38 39 Lod ConstOffset 25 27 + Store 31(txval11) 40 + 48: 45 Load 47(g_tTex1du4) + 49: 18 Load 20(g_sSamp) + 51: 50 SampledImage 48 49 + 53: 42(ivec4) ImageSampleExplicitLod 51 52 Lod ConstOffset 25 27 + Store 44(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 18 Load 20(g_sSamp) + 61: 60 SampledImage 58 59 + 67: 7(fvec4) ImageSampleExplicitLod 61 63 Lod ConstOffset 25 66 + Store 54(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 18 Load 20(g_sSamp) + 75: 74 SampledImage 72 73 + 79: 29(ivec4) ImageSampleExplicitLod 75 77 Lod ConstOffset 25 78 + Store 68(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 18 Load 20(g_sSamp) + 87: 86 SampledImage 84 85 + 93: 42(ivec4) ImageSampleExplicitLod 87 90 Lod ConstOffset 25 92 + Store 80(txval22) 93 + 98: 95 Load 97(g_tTex3df4) + 99: 18 Load 20(g_sSamp) + 101: 100 SampledImage 98 99 + 106: 7(fvec4) ImageSampleExplicitLod 101 103 Lod ConstOffset 25 105 + Store 94(txval30) 106 + 111: 108 Load 110(g_tTex3di4) + 112: 18 Load 20(g_sSamp) + 114: 113 SampledImage 111 112 + 117: 29(ivec4) ImageSampleExplicitLod 114 115 Lod ConstOffset 25 116 + Store 107(txval31) 117 + 122: 119 Load 121(g_tTex3du4) + 123: 18 Load 20(g_sSamp) + 125: 124 SampledImage 122 123 + 131: 42(ivec4) ImageSampleExplicitLod 125 129 Lod ConstOffset 25 130 + Store 118(txval32) 131 + 136: 12(ptr) AccessChain 133(psout) 65 + Store 136 135 + 138: 137(ptr) AccessChain 133(psout) 27 + Store 138 134 + 139:8(PS_OUTPUT) Load 133(psout) + ReturnValue 139 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out new file mode 100644 index 0000000000..bc6fd6b410 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -0,0 +1,477 @@ +hlsl.samplelevel.offsetarray.dx10.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'txval10' ( temp 4-component vector of float) +0:23 textureLodOffset ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1DArray) +0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:23 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.750000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'txval11' ( temp 4-component vector of int) +0:24 textureLodOffset ( temp 4-component vector of int) +0:24 Construct combined texture-sampler ( temp isampler1DArray) +0:24 'g_tTex1di4' ( uniform itexture1DArray) +0:24 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.750000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of uint) +0:25 'txval12' ( temp 4-component vector of uint) +0:25 textureLodOffset ( temp 4-component vector of uint) +0:25 Construct combined texture-sampler ( temp usampler1DArray) +0:25 'g_tTex1du4' ( uniform utexture1DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.750000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval20' ( temp 4-component vector of float) +0:27 textureLodOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler2DArray) +0:27 'g_tTex2df4' ( uniform texture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval21' ( temp 4-component vector of int) +0:28 textureLodOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler2DArray) +0:28 'g_tTex2di4' ( uniform itexture2DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval22' ( temp 4-component vector of uint) +0:29 textureLodOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler2DArray) +0:29 'g_tTex2du4' ( uniform utexture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:33 move second child to first child ( temp 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:34 move second child to first child ( temp float) +0:34 Depth: direct index for structure ( temp float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_any +0:? Sequence +0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'txval10' ( temp 4-component vector of float) +0:23 textureLodOffset ( temp 4-component vector of float) +0:23 Construct combined texture-sampler ( temp sampler1DArray) +0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:23 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.750000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of int) +0:24 'txval11' ( temp 4-component vector of int) +0:24 textureLodOffset ( temp 4-component vector of int) +0:24 Construct combined texture-sampler ( temp isampler1DArray) +0:24 'g_tTex1di4' ( uniform itexture1DArray) +0:24 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.750000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of uint) +0:25 'txval12' ( temp 4-component vector of uint) +0:25 textureLodOffset ( temp 4-component vector of uint) +0:25 Construct combined texture-sampler ( temp usampler1DArray) +0:25 'g_tTex1du4' ( uniform utexture1DArray) +0:25 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.750000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'txval20' ( temp 4-component vector of float) +0:27 textureLodOffset ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler2DArray) +0:27 'g_tTex2df4' ( uniform texture2DArray) +0:27 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp 4-component vector of int) +0:28 'txval21' ( temp 4-component vector of int) +0:28 textureLodOffset ( temp 4-component vector of int) +0:28 Construct combined texture-sampler ( temp isampler2DArray) +0:28 'g_tTex2di4' ( uniform itexture2DArray) +0:28 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp 4-component vector of uint) +0:29 'txval22' ( temp 4-component vector of uint) +0:29 textureLodOffset ( temp 4-component vector of uint) +0:29 Construct combined texture-sampler ( temp usampler2DArray) +0:29 'g_tTex2du4' ( uniform utexture2DArray) +0:29 'g_sSamp' (layout( binding=0) uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:33 move second child to first child ( temp 4-component vector of float) +0:33 Color: direct index for structure ( temp 4-component vector of float) +0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:34 move second child to first child ( temp float) +0:34 Depth: direct index for structure ( temp float) +0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 Sequence +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:20 Color: direct index for structure ( temp 4-component vector of float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child ( temp float) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:20 Depth: direct index for structure ( temp float) +0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) +0:20 Constant: +0:20 1 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) +0:? 'g_tTex1di4' ( uniform itexture1DArray) +0:? 'g_tTex1du4' ( uniform utexture1DArray) +0:? 'g_tTex2df4' ( uniform texture2DArray) +0:? 'g_tTex2di4' ( uniform itexture2DArray) +0:? 'g_tTex2du4' ( uniform utexture2DArray) +0:? '@entryPointOutput.Depth' ( out float FragDepth) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 119 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 111 115 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "txval10" + Name 16 "g_tTex1df4" + Name 20 "g_sSamp" + Name 34 "txval11" + Name 37 "g_tTex1di4" + Name 49 "txval12" + Name 52 "g_tTex1du4" + Name 61 "txval20" + Name 64 "g_tTex2df4" + Name 74 "txval21" + Name 77 "g_tTex2di4" + Name 85 "txval22" + Name 88 "g_tTex2du4" + Name 99 "psout" + Name 108 "flattenTemp" + Name 111 "@entryPointOutput.Color" + Name 115 "@entryPointOutput.Depth" + Name 118 "g_tTex1df4a" + Decorate 16(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_tTex1df4) Binding 0 + Decorate 20(g_sSamp) DescriptorSet 0 + Decorate 20(g_sSamp) Binding 0 + Decorate 37(g_tTex1di4) DescriptorSet 0 + Decorate 52(g_tTex1du4) DescriptorSet 0 + Decorate 64(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 88(g_tTex2du4) DescriptorSet 0 + Decorate 111(@entryPointOutput.Color) Location 0 + Decorate 115(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 118(g_tTex1df4a) DescriptorSet 0 + Decorate 118(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 7(fvec4) + 14: TypeImage 6(float) 1D array sampled format:Unknown + 15: TypePointer UniformConstant 14 + 16(g_tTex1df4): 15(ptr) Variable UniformConstant + 18: TypeSampler + 19: TypePointer UniformConstant 18 + 20(g_sSamp): 19(ptr) Variable UniformConstant + 22: TypeSampledImage 14 + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1036831949 + 26: 6(float) Constant 1045220557 + 27: 24(fvec2) ConstantComposite 25 26 + 28: 6(float) Constant 1061158912 + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 32: TypeVector 29(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 29(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 42: 6(float) Constant 1050253722 + 43: 24(fvec2) ConstantComposite 26 42 + 44: 29(int) Constant 1 + 46: TypeInt 32 0 + 47: TypeVector 46(int) 4 + 48: TypePointer Function 47(ivec4) + 50: TypeImage 46(int) 1D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex1du4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: 6(float) Constant 1053609165 + 58: 24(fvec2) ConstantComposite 42 57 + 59: 29(int) Constant 2 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4): 63(ptr) Variable UniformConstant + 67: TypeSampledImage 62 + 69: TypeVector 6(float) 3 + 70: 69(fvec3) ConstantComposite 25 26 42 + 71: TypeVector 29(int) 2 + 72: 71(ivec2) ConstantComposite 30 30 + 75: TypeImage 29(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeSampledImage 75 + 82: 6(float) Constant 1056964608 + 83: 69(fvec3) ConstantComposite 42 57 82 + 86: TypeImage 46(int) 2D array sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex2du4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: 6(float) Constant 1058642330 + 94: 6(float) Constant 1060320051 + 95: 69(fvec3) ConstantComposite 82 93 94 + 96: 71(ivec2) ConstantComposite 30 44 + 98: TypePointer Function 8(PS_OUTPUT) + 100: 6(float) Constant 1065353216 + 101: 7(fvec4) ConstantComposite 100 100 100 100 + 103: TypePointer Function 6(float) + 110: TypePointer Output 7(fvec4) +111(@entryPointOutput.Color): 110(ptr) Variable Output + 114: TypePointer Output 6(float) +115(@entryPointOutput.Depth): 114(ptr) Variable Output +118(g_tTex1df4a): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +108(flattenTemp): 98(ptr) Variable Function + 109:8(PS_OUTPUT) FunctionCall 10(@main() + Store 108(flattenTemp) 109 + 112: 12(ptr) AccessChain 108(flattenTemp) 30 + 113: 7(fvec4) Load 112 + Store 111(@entryPointOutput.Color) 113 + 116: 103(ptr) AccessChain 108(flattenTemp) 44 + 117: 6(float) Load 116 + Store 115(@entryPointOutput.Depth) 117 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(txval10): 12(ptr) Variable Function + 34(txval11): 33(ptr) Variable Function + 49(txval12): 48(ptr) Variable Function + 61(txval20): 12(ptr) Variable Function + 74(txval21): 33(ptr) Variable Function + 85(txval22): 48(ptr) Variable Function + 99(psout): 98(ptr) Variable Function + 17: 14 Load 16(g_tTex1df4) + 21: 18 Load 20(g_sSamp) + 23: 22 SampledImage 17 21 + 31: 7(fvec4) ImageSampleExplicitLod 23 27 Lod ConstOffset 28 30 + Store 13(txval10) 31 + 38: 35 Load 37(g_tTex1di4) + 39: 18 Load 20(g_sSamp) + 41: 40 SampledImage 38 39 + 45: 32(ivec4) ImageSampleExplicitLod 41 43 Lod ConstOffset 28 44 + Store 34(txval11) 45 + 53: 50 Load 52(g_tTex1du4) + 54: 18 Load 20(g_sSamp) + 56: 55 SampledImage 53 54 + 60: 47(ivec4) ImageSampleExplicitLod 56 58 Lod ConstOffset 28 59 + Store 49(txval12) 60 + 65: 62 Load 64(g_tTex2df4) + 66: 18 Load 20(g_sSamp) + 68: 67 SampledImage 65 66 + 73: 7(fvec4) ImageSampleExplicitLod 68 70 Lod ConstOffset 28 72 + Store 61(txval20) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 18 Load 20(g_sSamp) + 81: 80 SampledImage 78 79 + 84: 32(ivec4) ImageSampleExplicitLod 81 83 Lod ConstOffset 28 72 + Store 74(txval21) 84 + 89: 86 Load 88(g_tTex2du4) + 90: 18 Load 20(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 47(ivec4) ImageSampleExplicitLod 92 95 Lod ConstOffset 28 96 + Store 85(txval22) 97 + 102: 12(ptr) AccessChain 99(psout) 30 + Store 102 101 + 104: 103(ptr) AccessChain 99(psout) 44 + Store 104 100 + 105:8(PS_OUTPUT) Load 99(psout) + ReturnValue 105 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.scalar-length.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.scalar-length.frag.out new file mode 100644 index 0000000000..aa11af554a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.scalar-length.frag.out @@ -0,0 +1,112 @@ +hlsl.scalar-length.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:3 'test' ( temp 4-component vector of float) +0:3 Constant: +0:3 0.000000 +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:5 Branch: Return with expression +0:5 Construct vec4 ( temp 4-component vector of float) +0:5 length ( temp float) +0:5 direct index ( temp float) +0:5 'test' ( temp 4-component vector of float) +0:5 Constant: +0:5 3 (const int) +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @main( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:3 'test' ( temp 4-component vector of float) +0:3 Constant: +0:3 0.000000 +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:5 Branch: Return with expression +0:5 Construct vec4 ( temp 4-component vector of float) +0:5 length ( temp float) +0:5 direct index ( temp float) +0:5 'test' ( temp 4-component vector of float) +0:5 Constant: +0:5 3 (const int) +0:2 Function Definition: main( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 28 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "test" + Name 28 "@entryPointOutput" + Decorate 28(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 7(fvec4) + 13: 6(float) Constant 0 + 14: 6(float) Constant 1065353216 + 15: 6(float) Constant 1073741824 + 16: 6(float) Constant 1077936128 + 17: 7(fvec4) ConstantComposite 13 14 15 16 + 18: TypeInt 32 0 + 19: 18(int) Constant 3 + 20: TypePointer Function 6(float) + 27: TypePointer Output 7(fvec4) +28(@entryPointOutput): 27(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 29: 7(fvec4) FunctionCall 9(@main() + Store 28(@entryPointOutput) 29 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(test): 11(ptr) Variable Function + Store 12(test) 17 + 21: 20(ptr) AccessChain 12(test) 19 + 22: 6(float) Load 21 + 23: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 22 + 24: 7(fvec4) CompositeConstruct 23 23 23 23 + ReturnValue 24 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out new file mode 100644 index 0000000000..57d250eba2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out @@ -0,0 +1,506 @@ +hlsl.scalar2matrix.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: Fn1(mf44; ( temp void) +0:2 Function Parameters: +0:2 'p' ( in 4X4 matrix of float) +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4X4 matrix of float) +0:10 'mat1' ( temp 4X4 matrix of float) +0:10 Constant: +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:11 Sequence +0:11 move second child to first child ( temp 4X4 matrix of float) +0:11 'mat2' ( temp 4X4 matrix of float) +0:11 Constant: +0:11 3.000000 +0:11 3.100000 +0:11 3.200000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:12 Sequence +0:12 move second child to first child ( temp 4X4 matrix of float) +0:12 'mat3' ( temp 4X4 matrix of float) +0:12 Constant: +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:16 move second child to first child ( temp 4X4 matrix of float) +0:16 'mat4' ( temp 4X4 matrix of float) +0:16 Constant: +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:17 move second child to first child ( temp 4X4 matrix of float) +0:17 'mat4' ( temp 4X4 matrix of float) +0:? Constant: +0:? 4.000000 +0:? 4.100000 +0:? 4.200000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:18 move second child to first child ( temp 4X4 matrix of float) +0:18 'mat4' ( temp 4X4 matrix of float) +0:18 Constant: +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:20 matrix scale second child into first child ( temp 4X4 matrix of float) +0:20 'mat4' ( temp 4X4 matrix of float) +0:20 Constant: +0:20 0.750000 +0:21 add second child into first child ( temp 4X4 matrix of float) +0:21 'mat4' ( temp 4X4 matrix of float) +0:21 Constant: +0:21 0.750000 +0:22 subtract second child into first child ( temp 4X4 matrix of float) +0:22 'mat4' ( temp 4X4 matrix of float) +0:22 Constant: +0:22 0.500000 +0:23 divide second child into first child ( temp 4X4 matrix of float) +0:23 'mat4' ( temp 4X4 matrix of float) +0:23 Constant: +0:23 2.000000 +0:25 Function Call: Fn1(mf44; ( temp void) +0:25 Constant: +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:27 Branch: Return with expression +0:27 add ( temp 4-component vector of float) +0:27 add ( temp 4-component vector of float) +0:27 Constant: +0:27 0.300000 +0:27 0.300000 +0:27 0.300000 +0:27 0.300000 +0:27 direct index ( temp 4-component vector of float) +0:27 'mat1' ( temp 4X4 matrix of float) +0:27 Constant: +0:27 1 (const int) +0:27 direct index ( temp 4-component vector of float) +0:27 'mat4' ( temp 4X4 matrix of float) +0:27 Constant: +0:27 2 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: Fn1(mf44; ( temp void) +0:2 Function Parameters: +0:2 'p' ( in 4X4 matrix of float) +0:5 Function Definition: @main( ( temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp 4X4 matrix of float) +0:10 'mat1' ( temp 4X4 matrix of float) +0:10 Constant: +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:10 0.250000 +0:11 Sequence +0:11 move second child to first child ( temp 4X4 matrix of float) +0:11 'mat2' ( temp 4X4 matrix of float) +0:11 Constant: +0:11 3.000000 +0:11 3.100000 +0:11 3.200000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:12 Sequence +0:12 move second child to first child ( temp 4X4 matrix of float) +0:12 'mat3' ( temp 4X4 matrix of float) +0:12 Constant: +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:12 0.375000 +0:16 move second child to first child ( temp 4X4 matrix of float) +0:16 'mat4' ( temp 4X4 matrix of float) +0:16 Constant: +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:16 0.750000 +0:17 move second child to first child ( temp 4X4 matrix of float) +0:17 'mat4' ( temp 4X4 matrix of float) +0:? Constant: +0:? 4.000000 +0:? 4.100000 +0:? 4.200000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:18 move second child to first child ( temp 4X4 matrix of float) +0:18 'mat4' ( temp 4X4 matrix of float) +0:18 Constant: +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:18 0.500000 +0:20 matrix scale second child into first child ( temp 4X4 matrix of float) +0:20 'mat4' ( temp 4X4 matrix of float) +0:20 Constant: +0:20 0.750000 +0:21 add second child into first child ( temp 4X4 matrix of float) +0:21 'mat4' ( temp 4X4 matrix of float) +0:21 Constant: +0:21 0.750000 +0:22 subtract second child into first child ( temp 4X4 matrix of float) +0:22 'mat4' ( temp 4X4 matrix of float) +0:22 Constant: +0:22 0.500000 +0:23 divide second child into first child ( temp 4X4 matrix of float) +0:23 'mat4' ( temp 4X4 matrix of float) +0:23 Constant: +0:23 2.000000 +0:25 Function Call: Fn1(mf44; ( temp void) +0:25 Constant: +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:25 5.000000 +0:27 Branch: Return with expression +0:27 add ( temp 4-component vector of float) +0:27 add ( temp 4-component vector of float) +0:27 Constant: +0:27 0.300000 +0:27 0.300000 +0:27 0.300000 +0:27 0.300000 +0:27 direct index ( temp 4-component vector of float) +0:27 'mat1' ( temp 4X4 matrix of float) +0:27 Constant: +0:27 1 (const int) +0:27 direct index ( temp 4-component vector of float) +0:27 'mat4' ( temp 4X4 matrix of float) +0:27 Constant: +0:27 2 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 96 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 94 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "Fn1(mf44;" + Name 11 "p" + Name 15 "@main(" + Name 17 "mat1" + Name 21 "mat2" + Name 29 "mat3" + Name 33 "mat4" + Name 77 "param" + Name 94 "@entryPointOutput" + Decorate 94(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeMatrix 7(fvec4) 4 + 9: TypePointer Function 8 + 10: TypeFunction 2 9(ptr) + 14: TypeFunction 7(fvec4) + 18: 6(float) Constant 1048576000 + 19: 7(fvec4) ConstantComposite 18 18 18 18 + 20: 8 ConstantComposite 19 19 19 19 + 22: 6(float) Constant 1077936128 + 23: 6(float) Constant 1078355558 + 24: 6(float) Constant 1078774989 + 25: 6(float) Constant 0 + 26: 7(fvec4) ConstantComposite 22 23 24 25 + 27: 7(fvec4) ConstantComposite 25 25 25 25 + 28: 8 ConstantComposite 26 27 27 27 + 30: 6(float) Constant 1052770304 + 31: 7(fvec4) ConstantComposite 30 30 30 30 + 32: 8 ConstantComposite 31 31 31 31 + 34: 6(float) Constant 1061158912 + 35: 7(fvec4) ConstantComposite 34 34 34 34 + 36: 8 ConstantComposite 35 35 35 35 + 37: 6(float) Constant 1082130432 + 38: 6(float) Constant 1082340147 + 39: 6(float) Constant 1082549862 + 40: 7(fvec4) ConstantComposite 37 38 39 25 + 41: 8 ConstantComposite 40 27 27 27 + 42: 6(float) Constant 1056964608 + 43: 7(fvec4) ConstantComposite 42 42 42 42 + 44: 8 ConstantComposite 43 43 43 43 + 69: 6(float) Constant 1073741824 + 71: 6(float) Constant 1065353216 + 74: 6(float) Constant 1084227584 + 75: 7(fvec4) ConstantComposite 74 74 74 74 + 76: 8 ConstantComposite 75 75 75 75 + 79: 6(float) Constant 1050253722 + 80: 7(fvec4) ConstantComposite 79 79 79 79 + 81: TypeInt 32 1 + 82: 81(int) Constant 1 + 83: TypePointer Function 7(fvec4) + 87: 81(int) Constant 2 + 93: TypePointer Output 7(fvec4) +94(@entryPointOutput): 93(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 95: 7(fvec4) FunctionCall 15(@main() + Store 94(@entryPointOutput) 95 + Return + FunctionEnd + 12(Fn1(mf44;): 2 Function None 10 + 11(p): 9(ptr) FunctionParameter + 13: Label + Return + FunctionEnd + 15(@main(): 7(fvec4) Function None 14 + 16: Label + 17(mat1): 9(ptr) Variable Function + 21(mat2): 9(ptr) Variable Function + 29(mat3): 9(ptr) Variable Function + 33(mat4): 9(ptr) Variable Function + 77(param): 9(ptr) Variable Function + Store 17(mat1) 20 + Store 21(mat2) 28 + Store 29(mat3) 32 + Store 33(mat4) 36 + Store 33(mat4) 41 + Store 33(mat4) 44 + 45: 8 Load 33(mat4) + 46: 8 MatrixTimesScalar 45 34 + Store 33(mat4) 46 + 47: 8 Load 33(mat4) + 48: 7(fvec4) CompositeConstruct 34 34 34 34 + 49: 7(fvec4) CompositeExtract 47 0 + 50: 7(fvec4) FAdd 49 48 + 51: 7(fvec4) CompositeExtract 47 1 + 52: 7(fvec4) FAdd 51 48 + 53: 7(fvec4) CompositeExtract 47 2 + 54: 7(fvec4) FAdd 53 48 + 55: 7(fvec4) CompositeExtract 47 3 + 56: 7(fvec4) FAdd 55 48 + 57: 8 CompositeConstruct 50 52 54 56 + Store 33(mat4) 57 + 58: 8 Load 33(mat4) + 59: 7(fvec4) CompositeConstruct 42 42 42 42 + 60: 7(fvec4) CompositeExtract 58 0 + 61: 7(fvec4) FSub 60 59 + 62: 7(fvec4) CompositeExtract 58 1 + 63: 7(fvec4) FSub 62 59 + 64: 7(fvec4) CompositeExtract 58 2 + 65: 7(fvec4) FSub 64 59 + 66: 7(fvec4) CompositeExtract 58 3 + 67: 7(fvec4) FSub 66 59 + 68: 8 CompositeConstruct 61 63 65 67 + Store 33(mat4) 68 + 70: 8 Load 33(mat4) + 72: 6(float) FDiv 71 69 + 73: 8 MatrixTimesScalar 70 72 + Store 33(mat4) 73 + Store 77(param) 76 + 78: 2 FunctionCall 12(Fn1(mf44;) 77(param) + 84: 83(ptr) AccessChain 17(mat1) 82 + 85: 7(fvec4) Load 84 + 86: 7(fvec4) FAdd 80 85 + 88: 83(ptr) AccessChain 33(mat4) 87 + 89: 7(fvec4) Load 88 + 90: 7(fvec4) FAdd 86 89 + ReturnValue 90 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.scalarCast.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.scalarCast.vert.out new file mode 100644 index 0000000000..0e07c9f662 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.scalarCast.vert.out @@ -0,0 +1,493 @@ +hlsl.scalarCast.vert +Shader version: 500 +0:? Sequence +0:5 Function Definition: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:5 Function Parameters: +0:? Sequence +0:7 Branch: Return with expression +0:7 Constant: +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:9 Function Definition: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:9 Function Parameters: +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:13 Function Definition: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:13 Function Parameters: +0:? Sequence +0:15 Branch: Return with expression +0:15 Constant: +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:17 Function Definition: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:17 Function Parameters: +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'f' ( temp float) +0:18 Constant: +0:18 2.000000 +0:19 Branch: Return with expression +0:19 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:19 Construct vec4 ( temp 4-component vector of float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:19 Construct vec2 ( temp 2-component vector of float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:21 Function Definition: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:21 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'f' ( temp float) +0:22 Constant: +0:22 2.000000 +0:23 Branch: Return with expression +0:23 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:23 move second child to first child ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 add ( temp float) +0:23 'f' ( temp float) +0:23 Constant: +0:23 1.000000 +0:23 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:23 Construct vec4 ( temp 4-component vector of float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:25 Function Definition: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:25 Function Parameters: +0:? Sequence +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'f' ( temp float) +0:26 Constant: +0:26 2.000000 +0:27 Branch: Return with expression +0:27 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:27 move second child to first child ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 sine ( temp float) +0:27 'f' ( temp float) +0:27 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 Construct vec2 ( temp 2-component vector of float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:30 'v0' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:30 Function Call: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:31 Sequence +0:31 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:31 'v1' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:31 Function Call: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:32 Sequence +0:32 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:32 'v2' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:32 Function Call: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:33 Sequence +0:33 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:33 'v3' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:33 Function Call: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:34 Sequence +0:34 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:34 'v4' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:34 Function Call: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:35 Sequence +0:35 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:35 'v5' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:35 Function Call: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:36 Branch: Return with expression +0:36 Constant: +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.position' ( out 4-component vector of float Position) +0:29 position: direct index for structure ( temp 4-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) +0:29 texCoord: direct index for structure ( temp 2-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Constant: +0:29 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:5 Function Definition: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:5 Function Parameters: +0:? Sequence +0:7 Branch: Return with expression +0:7 Constant: +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:7 2.000000 +0:9 Function Definition: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:9 Function Parameters: +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:11 3.000000 +0:13 Function Definition: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:13 Function Parameters: +0:? Sequence +0:15 Branch: Return with expression +0:15 Constant: +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:15 0.909297 +0:17 Function Definition: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:17 Function Parameters: +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'f' ( temp float) +0:18 Constant: +0:18 2.000000 +0:19 Branch: Return with expression +0:19 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:19 Construct vec4 ( temp 4-component vector of float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:19 Construct vec2 ( temp 2-component vector of float) +0:19 'f' ( temp float) +0:19 'f' ( temp float) +0:21 Function Definition: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:21 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'f' ( temp float) +0:22 Constant: +0:22 2.000000 +0:23 Branch: Return with expression +0:23 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:23 move second child to first child ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 add ( temp float) +0:23 'f' ( temp float) +0:23 Constant: +0:23 1.000000 +0:23 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:23 Construct vec4 ( temp 4-component vector of float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:23 Construct vec2 ( temp 2-component vector of float) +0:23 'scalarCopy' ( temp float) +0:23 'scalarCopy' ( temp float) +0:25 Function Definition: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:25 Function Parameters: +0:? Sequence +0:26 Sequence +0:26 move second child to first child ( temp float) +0:26 'f' ( temp float) +0:26 Constant: +0:26 2.000000 +0:27 Branch: Return with expression +0:27 Comma ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:27 move second child to first child ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 sine ( temp float) +0:27 'f' ( temp float) +0:27 Construct structure ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:27 Construct vec2 ( temp 2-component vector of float) +0:27 'scalarCopy' ( temp float) +0:27 'scalarCopy' ( temp float) +0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:30 'v0' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:30 Function Call: r0( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:31 Sequence +0:31 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:31 'v1' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:31 Function Call: r1( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:32 Sequence +0:32 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:32 'v2' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:32 Function Call: r2( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:33 Sequence +0:33 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:33 'v3' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:33 Function Call: r3( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:34 Sequence +0:34 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:34 'v4' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:34 Function Call: r4( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:35 Sequence +0:35 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:35 'v5' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:35 Function Call: r5( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:36 Branch: Return with expression +0:36 Constant: +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:36 1.000000 +0:29 Function Definition: main( ( temp void) +0:29 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.position' ( out 4-component vector of float Position) +0:29 position: direct index for structure ( temp 4-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Constant: +0:29 0 (const int) +0:29 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) +0:29 texCoord: direct index for structure ( temp 2-component vector of float) +0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) +0:29 Constant: +0:29 1 (const int) +0:? Linker Objects +0:? '@entryPointOutput.position' ( out 4-component vector of float Position) +0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 120 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 108 115 + Source HLSL 500 + Name 4 "main" + Name 9 "VertexOut" + MemberName 9(VertexOut) 0 "position" + MemberName 9(VertexOut) 1 "texCoord" + Name 11 "r0(" + Name 13 "r1(" + Name 15 "r2(" + Name 17 "r3(" + Name 19 "r4(" + Name 21 "r5(" + Name 23 "@main(" + Name 44 "f" + Name 56 "f" + Name 57 "scalarCopy" + Name 72 "f" + Name 73 "scalarCopy" + Name 88 "v0" + Name 90 "v1" + Name 92 "v2" + Name 94 "v3" + Name 96 "v4" + Name 98 "v5" + Name 105 "flattenTemp" + Name 108 "@entryPointOutput.position" + Name 115 "@entryPointOutput.texCoord" + Decorate 108(@entryPointOutput.position) BuiltIn Position + Decorate 115(@entryPointOutput.texCoord) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 2 + 9(VertexOut): TypeStruct 7(fvec4) 8(fvec2) + 10: TypeFunction 9(VertexOut) + 25: 6(float) Constant 1073741824 + 26: 7(fvec4) ConstantComposite 25 25 25 25 + 27: 8(fvec2) ConstantComposite 25 25 + 28:9(VertexOut) ConstantComposite 26 27 + 31: 6(float) Constant 1077936128 + 32: 7(fvec4) ConstantComposite 31 31 31 31 + 33: 8(fvec2) ConstantComposite 31 31 + 34:9(VertexOut) ConstantComposite 32 33 + 37: 6(float) Constant 1063831479 + 38: 7(fvec4) ConstantComposite 37 37 37 37 + 39: 8(fvec2) ConstantComposite 37 37 + 40:9(VertexOut) ConstantComposite 38 39 + 43: TypePointer Function 6(float) + 59: 6(float) Constant 1065353216 + 87: TypePointer Function 9(VertexOut) + 100: 7(fvec4) ConstantComposite 59 59 59 59 + 101: 8(fvec2) ConstantComposite 59 59 + 102:9(VertexOut) ConstantComposite 100 101 + 107: TypePointer Output 7(fvec4) +108(@entryPointOutput.position): 107(ptr) Variable Output + 109: TypeInt 32 1 + 110: 109(int) Constant 0 + 111: TypePointer Function 7(fvec4) + 114: TypePointer Output 8(fvec2) +115(@entryPointOutput.texCoord): 114(ptr) Variable Output + 116: 109(int) Constant 1 + 117: TypePointer Function 8(fvec2) + 4(main): 2 Function None 3 + 5: Label +105(flattenTemp): 87(ptr) Variable Function + 106:9(VertexOut) FunctionCall 23(@main() + Store 105(flattenTemp) 106 + 112: 111(ptr) AccessChain 105(flattenTemp) 110 + 113: 7(fvec4) Load 112 + Store 108(@entryPointOutput.position) 113 + 118: 117(ptr) AccessChain 105(flattenTemp) 116 + 119: 8(fvec2) Load 118 + Store 115(@entryPointOutput.texCoord) 119 + Return + FunctionEnd + 11(r0():9(VertexOut) Function None 10 + 12: Label + ReturnValue 28 + FunctionEnd + 13(r1():9(VertexOut) Function None 10 + 14: Label + ReturnValue 34 + FunctionEnd + 15(r2():9(VertexOut) Function None 10 + 16: Label + ReturnValue 40 + FunctionEnd + 17(r3():9(VertexOut) Function None 10 + 18: Label + 44(f): 43(ptr) Variable Function + Store 44(f) 25 + 45: 6(float) Load 44(f) + 46: 6(float) Load 44(f) + 47: 6(float) Load 44(f) + 48: 6(float) Load 44(f) + 49: 7(fvec4) CompositeConstruct 45 46 47 48 + 50: 6(float) Load 44(f) + 51: 6(float) Load 44(f) + 52: 8(fvec2) CompositeConstruct 50 51 + 53:9(VertexOut) CompositeConstruct 49 52 + ReturnValue 53 + FunctionEnd + 19(r4():9(VertexOut) Function None 10 + 20: Label + 56(f): 43(ptr) Variable Function + 57(scalarCopy): 43(ptr) Variable Function + Store 56(f) 25 + 58: 6(float) Load 56(f) + 60: 6(float) FAdd 58 59 + Store 57(scalarCopy) 60 + 61: 6(float) Load 57(scalarCopy) + 62: 6(float) Load 57(scalarCopy) + 63: 6(float) Load 57(scalarCopy) + 64: 6(float) Load 57(scalarCopy) + 65: 7(fvec4) CompositeConstruct 61 62 63 64 + 66: 6(float) Load 57(scalarCopy) + 67: 6(float) Load 57(scalarCopy) + 68: 8(fvec2) CompositeConstruct 66 67 + 69:9(VertexOut) CompositeConstruct 65 68 + ReturnValue 69 + FunctionEnd + 21(r5():9(VertexOut) Function None 10 + 22: Label + 72(f): 43(ptr) Variable Function + 73(scalarCopy): 43(ptr) Variable Function + Store 72(f) 25 + 74: 6(float) Load 72(f) + 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 + Store 73(scalarCopy) 75 + 76: 6(float) Load 73(scalarCopy) + 77: 6(float) Load 73(scalarCopy) + 78: 6(float) Load 73(scalarCopy) + 79: 6(float) Load 73(scalarCopy) + 80: 7(fvec4) CompositeConstruct 76 77 78 79 + 81: 6(float) Load 73(scalarCopy) + 82: 6(float) Load 73(scalarCopy) + 83: 8(fvec2) CompositeConstruct 81 82 + 84:9(VertexOut) CompositeConstruct 80 83 + ReturnValue 84 + FunctionEnd + 23(@main():9(VertexOut) Function None 10 + 24: Label + 88(v0): 87(ptr) Variable Function + 90(v1): 87(ptr) Variable Function + 92(v2): 87(ptr) Variable Function + 94(v3): 87(ptr) Variable Function + 96(v4): 87(ptr) Variable Function + 98(v5): 87(ptr) Variable Function + 89:9(VertexOut) FunctionCall 11(r0() + Store 88(v0) 89 + 91:9(VertexOut) FunctionCall 13(r1() + Store 90(v1) 91 + 93:9(VertexOut) FunctionCall 15(r2() + Store 92(v2) 93 + 95:9(VertexOut) FunctionCall 17(r3() + Store 94(v3) 95 + 97:9(VertexOut) FunctionCall 19(r4() + Store 96(v4) 97 + 99:9(VertexOut) FunctionCall 21(r5() + Store 98(v5) 99 + ReturnValue 102 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out new file mode 100644 index 0000000000..b563380e17 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.scope.frag.out @@ -0,0 +1,191 @@ +hlsl.scope.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:4 'x' ( temp int) +0:? Sequence +0:7 'x' ( temp float) +0:? Sequence +0:10 'x' ( temp bool) +0:? Sequence +0:13 'x' ( temp 3-component vector of float) +0:15 'x' ( temp bool) +0:17 'x' ( temp float) +0:19 'x' ( temp int) +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 Compare Greater Than ( temp bool) +0:21 'x' ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 true case is null +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Greater Than ( temp bool) +0:24 'x' ( temp int) +0:24 Constant: +0:24 0 (const int) +0:24 No loop body +0:27 Loop with condition not tested first +0:27 Loop Condition +0:29 Compare Greater Than ( temp bool) +0:29 'x' ( temp int) +0:29 Constant: +0:29 0 (const int) +0:27 No loop body +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp void) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:4 'x' ( temp int) +0:? Sequence +0:7 'x' ( temp float) +0:? Sequence +0:10 'x' ( temp bool) +0:? Sequence +0:13 'x' ( temp 3-component vector of float) +0:15 'x' ( temp bool) +0:17 'x' ( temp float) +0:19 'x' ( temp int) +0:21 Test condition and select ( temp void) +0:21 Condition +0:21 Compare Greater Than ( temp bool) +0:21 'x' ( temp int) +0:21 Constant: +0:21 0 (const int) +0:21 true case is null +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Greater Than ( temp bool) +0:24 'x' ( temp int) +0:24 Constant: +0:24 0 (const int) +0:24 No loop body +0:27 Loop with condition not tested first +0:27 Loop Condition +0:29 Compare Greater Than ( temp bool) +0:29 'x' ( temp int) +0:29 Constant: +0:29 0 (const int) +0:27 No loop body +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 49 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 44 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 15 "x" + Name 17 "x" + Name 20 "x" + Name 23 "x" + Name 42 "input" + Name 44 "input" + Name 46 "param" + Decorate 44(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 16: TypePointer Function 6(float) + 18: TypeBool + 19: TypePointer Function 18(bool) + 21: TypeVector 6(float) 3 + 22: TypePointer Function 21(fvec3) + 25: 13(int) Constant 0 + 43: TypePointer Input 7(fvec4) + 44(input): 43(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 42(input): 8(ptr) Variable Function + 46(param): 8(ptr) Variable Function + 45: 7(fvec4) Load 44(input) + Store 42(input) 45 + 47: 7(fvec4) Load 42(input) + Store 46(param) 47 + 48: 2 FunctionCall 11(@PixelShaderFunction(vf4;) 46(param) + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 2 Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 15(x): 14(ptr) Variable Function + 17(x): 16(ptr) Variable Function + 20(x): 19(ptr) Variable Function + 23(x): 22(ptr) Variable Function + 24: 13(int) Load 15(x) + 26: 18(bool) SGreaterThan 24 25 + SelectionMerge 28 None + BranchConditional 26 27 28 + 27: Label + Branch 28 + 28: Label + Branch 29 + 29: Label + LoopMerge 31 32 None + Branch 33 + 33: Label + 34: 13(int) Load 15(x) + 35: 18(bool) SGreaterThan 34 25 + BranchConditional 35 30 31 + 30: Label + Branch 32 + 32: Label + Branch 29 + 31: Label + Branch 36 + 36: Label + LoopMerge 38 39 None + Branch 37 + 37: Label + Branch 39 + 39: Label + 40: 13(int) Load 15(x) + 41: 18(bool) SGreaterThan 40 25 + BranchConditional 41 36 38 + 38: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.self_cast.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.self_cast.frag.out new file mode 100644 index 0000000000..9d398ed9c1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.self_cast.frag.out @@ -0,0 +1,130 @@ +hlsl.self_cast.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{}) +0:8 'b' ( temp structure{}) +0:8 'a' ( temp structure{}) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp structure{ temp float f}) +0:13 'b' ( temp structure{ temp float f}) +0:13 'a' ( temp structure{ temp float f}) +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp 2-element array of structure{}) +0:18 'b' ( temp 2-element array of structure{}) +0:18 'a' ( temp 2-element array of structure{}) +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 2-element array of structure{ temp float f}) +0:23 'b' ( temp 2-element array of structure{ temp float f}) +0:23 'a' ( temp 2-element array of structure{ temp float f}) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Function Call: @main( ( temp void) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp structure{}) +0:8 'b' ( temp structure{}) +0:8 'a' ( temp structure{}) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp structure{ temp float f}) +0:13 'b' ( temp structure{ temp float f}) +0:13 'a' ( temp structure{ temp float f}) +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp 2-element array of structure{}) +0:18 'b' ( temp 2-element array of structure{}) +0:18 'a' ( temp 2-element array of structure{}) +0:? Sequence +0:23 Sequence +0:23 move second child to first child ( temp 2-element array of structure{ temp float f}) +0:23 'b' ( temp 2-element array of structure{ temp float f}) +0:23 'a' ( temp 2-element array of structure{ temp float f}) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Function Call: @main( ( temp void) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "@main(" + Name 8 "Test0" + Name 10 "b" + Name 11 "a" + Name 14 "Test1" + MemberName 14(Test1) 0 "f" + Name 16 "b" + Name 17 "a" + Name 23 "b" + Name 24 "a" + Name 28 "b" + Name 29 "a" + 2: TypeVoid + 3: TypeFunction 2 + 8(Test0): TypeStruct + 9: TypePointer Function 8(Test0) + 13: TypeFloat 32 + 14(Test1): TypeStruct 13(float) + 15: TypePointer Function 14(Test1) + 19: TypeInt 32 0 + 20: 19(int) Constant 2 + 21: TypeArray 8(Test0) 20 + 22: TypePointer Function 21 + 26: TypeArray 14(Test1) 20 + 27: TypePointer Function 26 + 4(main): 2 Function None 3 + 5: Label + 31: 2 FunctionCall 6(@main() + Return + FunctionEnd + 6(@main(): 2 Function None 3 + 7: Label + 10(b): 9(ptr) Variable Function + 11(a): 9(ptr) Variable Function + 16(b): 15(ptr) Variable Function + 17(a): 15(ptr) Variable Function + 23(b): 22(ptr) Variable Function + 24(a): 22(ptr) Variable Function + 28(b): 27(ptr) Variable Function + 29(a): 27(ptr) Variable Function + 12: 8(Test0) Load 11(a) + Store 10(b) 12 + 18: 14(Test1) Load 17(a) + Store 16(b) 18 + 25: 21 Load 24(a) + Store 23(b) 25 + 30: 26 Load 29(a) + Store 28(b) 30 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.semantic-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.semantic-1.vert.out new file mode 100644 index 0000000000..b5e4091386 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.semantic-1.vert.out @@ -0,0 +1,374 @@ +hlsl.semantic-1.vert +Shader version: 500 +0:? Sequence +0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Function Parameters: +0:16 'v' ( in 4-component vector of float) +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:18 Constant: +0:18 0 (const int) +0:18 'v' ( in 4-component vector of float) +0:19 move second child to first child ( temp 2-component vector of float) +0:19 UV0: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:19 Constant: +0:19 1 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:19 direct index ( temp float) +0:19 'v' ( in 4-component vector of float) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 'v' ( in 4-component vector of float) +0:19 Constant: +0:19 0 (const int) +0:20 move second child to first child ( temp 2-component vector of float) +0:20 UV1: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:20 Constant: +0:20 2 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:20 direct index ( temp float) +0:20 'v' ( in 4-component vector of float) +0:20 Constant: +0:20 1 (const int) +0:20 direct index ( temp float) +0:20 'v' ( in 4-component vector of float) +0:20 Constant: +0:20 1 (const int) +0:21 move second child to first child ( temp 2-component vector of float) +0:21 UV2: direct index for structure ( temp 2-component vector of float) +0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:21 Constant: +0:21 3 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:21 direct index ( temp float) +0:21 'v' ( in 4-component vector of float) +0:21 Constant: +0:21 2 (const int) +0:21 direct index ( temp float) +0:21 'v' ( in 4-component vector of float) +0:21 Constant: +0:21 2 (const int) +0:22 move second child to first child ( temp 2-component vector of float) +0:22 UV3: direct index for structure ( temp 2-component vector of float) +0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:22 Constant: +0:22 4 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:22 direct index ( temp float) +0:22 'v' ( in 4-component vector of float) +0:22 Constant: +0:22 3 (const int) +0:22 direct index ( temp float) +0:22 'v' ( in 4-component vector of float) +0:22 Constant: +0:22 3 (const int) +0:23 Branch: Return with expression +0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? 'v' ( temp 4-component vector of float) +0:? 'v' (layout( location=0) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:? 'v' ( temp 4-component vector of float) +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:16 pos: direct index for structure ( temp 4-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 0 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) +0:16 UV0: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 1 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) +0:16 UV1: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 2 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) +0:16 UV2: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 3 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) +0:16 UV3: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 4 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) +0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) +0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) +0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) +0:? 'v' (layout( location=0) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Function Parameters: +0:16 'v' ( in 4-component vector of float) +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:18 Constant: +0:18 0 (const int) +0:18 'v' ( in 4-component vector of float) +0:19 move second child to first child ( temp 2-component vector of float) +0:19 UV0: direct index for structure ( temp 2-component vector of float) +0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:19 Constant: +0:19 1 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:19 direct index ( temp float) +0:19 'v' ( in 4-component vector of float) +0:19 Constant: +0:19 0 (const int) +0:19 direct index ( temp float) +0:19 'v' ( in 4-component vector of float) +0:19 Constant: +0:19 0 (const int) +0:20 move second child to first child ( temp 2-component vector of float) +0:20 UV1: direct index for structure ( temp 2-component vector of float) +0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:20 Constant: +0:20 2 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:20 direct index ( temp float) +0:20 'v' ( in 4-component vector of float) +0:20 Constant: +0:20 1 (const int) +0:20 direct index ( temp float) +0:20 'v' ( in 4-component vector of float) +0:20 Constant: +0:20 1 (const int) +0:21 move second child to first child ( temp 2-component vector of float) +0:21 UV2: direct index for structure ( temp 2-component vector of float) +0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:21 Constant: +0:21 3 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:21 direct index ( temp float) +0:21 'v' ( in 4-component vector of float) +0:21 Constant: +0:21 2 (const int) +0:21 direct index ( temp float) +0:21 'v' ( in 4-component vector of float) +0:21 Constant: +0:21 2 (const int) +0:22 move second child to first child ( temp 2-component vector of float) +0:22 UV3: direct index for structure ( temp 2-component vector of float) +0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:22 Constant: +0:22 4 (const int) +0:? Construct vec2 ( temp 2-component vector of float) +0:22 direct index ( temp float) +0:22 'v' ( in 4-component vector of float) +0:22 Constant: +0:22 3 (const int) +0:22 direct index ( temp float) +0:22 'v' ( in 4-component vector of float) +0:22 Constant: +0:22 3 (const int) +0:23 Branch: Return with expression +0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? 'v' ( temp 4-component vector of float) +0:? 'v' (layout( location=0) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:? 'v' ( temp 4-component vector of float) +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:16 pos: direct index for structure ( temp 4-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 0 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) +0:16 UV0: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 1 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) +0:16 UV1: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 2 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) +0:16 UV2: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 3 (const int) +0:16 move second child to first child ( temp 2-component vector of float) +0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) +0:16 UV3: direct index for structure ( temp 2-component vector of float) +0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) +0:16 Constant: +0:16 4 (const int) +0:? Linker Objects +0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) +0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) +0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) +0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) +0:? 'v' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 84 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 61 68 72 75 78 81 + Source HLSL 500 + Name 4 "main" + Name 10 "S" + MemberName 10(S) 0 "pos" + MemberName 10(S) 1 "UV0" + MemberName 10(S) 2 "UV1" + MemberName 10(S) 3 "UV2" + MemberName 10(S) 4 "UV3" + Name 13 "@main(vf4;" + Name 12 "v" + Name 16 "s" + Name 59 "v" + Name 61 "v" + Name 63 "flattenTemp" + Name 64 "param" + Name 68 "@entryPointOutput.pos" + Name 72 "@entryPointOutput.UV0" + Name 75 "@entryPointOutput.UV1" + Name 78 "@entryPointOutput.UV2" + Name 81 "@entryPointOutput.UV3" + Decorate 61(v) Location 0 + Decorate 68(@entryPointOutput.pos) Location 0 + Decorate 72(@entryPointOutput.UV0) Location 1 + Decorate 75(@entryPointOutput.UV1) Location 2 + Decorate 78(@entryPointOutput.UV2) Location 3 + Decorate 81(@entryPointOutput.UV3) Location 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeVector 6(float) 2 + 10(S): TypeStruct 7(fvec4) 9(fvec2) 9(fvec2) 9(fvec2) 9(fvec2) + 11: TypeFunction 10(S) 8(ptr) + 15: TypePointer Function 10(S) + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 21: 17(int) Constant 1 + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 24: TypePointer Function 6(float) + 30: TypePointer Function 9(fvec2) + 32: 17(int) Constant 2 + 33: 22(int) Constant 1 + 40: 17(int) Constant 3 + 41: 22(int) Constant 2 + 48: 17(int) Constant 4 + 49: 22(int) Constant 3 + 60: TypePointer Input 7(fvec4) + 61(v): 60(ptr) Variable Input + 67: TypePointer Output 7(fvec4) +68(@entryPointOutput.pos): 67(ptr) Variable Output + 71: TypePointer Output 9(fvec2) +72(@entryPointOutput.UV0): 71(ptr) Variable Output +75(@entryPointOutput.UV1): 71(ptr) Variable Output +78(@entryPointOutput.UV2): 71(ptr) Variable Output +81(@entryPointOutput.UV3): 71(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 59(v): 8(ptr) Variable Function + 63(flattenTemp): 15(ptr) Variable Function + 64(param): 8(ptr) Variable Function + 62: 7(fvec4) Load 61(v) + Store 59(v) 62 + 65: 7(fvec4) Load 59(v) + Store 64(param) 65 + 66: 10(S) FunctionCall 13(@main(vf4;) 64(param) + Store 63(flattenTemp) 66 + 69: 8(ptr) AccessChain 63(flattenTemp) 18 + 70: 7(fvec4) Load 69 + Store 68(@entryPointOutput.pos) 70 + 73: 30(ptr) AccessChain 63(flattenTemp) 21 + 74: 9(fvec2) Load 73 + Store 72(@entryPointOutput.UV0) 74 + 76: 30(ptr) AccessChain 63(flattenTemp) 32 + 77: 9(fvec2) Load 76 + Store 75(@entryPointOutput.UV1) 77 + 79: 30(ptr) AccessChain 63(flattenTemp) 40 + 80: 9(fvec2) Load 79 + Store 78(@entryPointOutput.UV2) 80 + 82: 30(ptr) AccessChain 63(flattenTemp) 48 + 83: 9(fvec2) Load 82 + Store 81(@entryPointOutput.UV3) 83 + Return + FunctionEnd + 13(@main(vf4;): 10(S) Function None 11 + 12(v): 8(ptr) FunctionParameter + 14: Label + 16(s): 15(ptr) Variable Function + 19: 7(fvec4) Load 12(v) + 20: 8(ptr) AccessChain 16(s) 18 + Store 20 19 + 25: 24(ptr) AccessChain 12(v) 23 + 26: 6(float) Load 25 + 27: 24(ptr) AccessChain 12(v) 23 + 28: 6(float) Load 27 + 29: 9(fvec2) CompositeConstruct 26 28 + 31: 30(ptr) AccessChain 16(s) 21 + Store 31 29 + 34: 24(ptr) AccessChain 12(v) 33 + 35: 6(float) Load 34 + 36: 24(ptr) AccessChain 12(v) 33 + 37: 6(float) Load 36 + 38: 9(fvec2) CompositeConstruct 35 37 + 39: 30(ptr) AccessChain 16(s) 32 + Store 39 38 + 42: 24(ptr) AccessChain 12(v) 41 + 43: 6(float) Load 42 + 44: 24(ptr) AccessChain 12(v) 41 + 45: 6(float) Load 44 + 46: 9(fvec2) CompositeConstruct 43 45 + 47: 30(ptr) AccessChain 16(s) 40 + Store 47 46 + 50: 24(ptr) AccessChain 12(v) 49 + 51: 6(float) Load 50 + 52: 24(ptr) AccessChain 12(v) 49 + 53: 6(float) Load 52 + 54: 9(fvec2) CompositeConstruct 51 53 + 55: 30(ptr) AccessChain 16(s) 48 + Store 55 54 + 56: 10(S) Load 16(s) + ReturnValue 56 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.semantic.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.semantic.geom.out new file mode 100644 index 0000000000..1c1a9c0af3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.semantic.geom.out @@ -0,0 +1,280 @@ +hlsl.semantic.geom +Shader version: 500 +invocations = -1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) +0:13 Function Parameters: +0:13 'VertexID' ( in 3-element array of uint) +0:13 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:? Sequence +0:15 Sequence +0:15 Sequence +0:15 move second child to first child ( temp float) +0:? 'OutputStream.clip0' ( out float Position) +0:15 clip0: direct index for structure ( temp float) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 0 (const int) +0:? Sequence +0:15 move second child to first child ( temp float) +0:15 direct index ( out float ClipDistance) +0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) +0:15 Constant: +0:15 0 (const int) +0:15 clip0: direct index for structure ( temp float) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 1 (const int) +0:? Sequence +0:15 move second child to first child ( temp float) +0:15 direct index ( out float CullDistance) +0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) +0:15 Constant: +0:15 0 (const int) +0:15 cull0: direct index for structure ( temp float) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 2 (const int) +0:15 move second child to first child ( temp uint) +0:? 'OutputStream.vpai' ( out uint ViewportIndex) +0:15 vpai: direct index for structure ( temp uint) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 3 (const int) +0:15 move second child to first child ( temp uint) +0:? 'OutputStream.rtai' ( out uint Layer) +0:15 rtai: direct index for structure ( temp uint) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 4 (const int) +0:15 move second child to first child ( temp int) +0:? 'OutputStream.ii' (layout( location=0) out int) +0:15 ii: direct index for structure ( temp int) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 5 (const int) +0:15 EmitVertex ( temp void) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:13 Function Call: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:? Linker Objects +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.clip0' ( out float Position) +0:? 'OutputStream.vpai' ( out uint ViewportIndex) +0:? 'OutputStream.rtai' ( out uint Layer) +0:? 'OutputStream.ii' (layout( location=0) out int) +0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) +0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) +0:13 Function Parameters: +0:13 'VertexID' ( in 3-element array of uint) +0:13 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:? Sequence +0:15 Sequence +0:15 Sequence +0:15 move second child to first child ( temp float) +0:? 'OutputStream.clip0' ( out float Position) +0:15 clip0: direct index for structure ( temp float) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 0 (const int) +0:? Sequence +0:15 move second child to first child ( temp float) +0:15 direct index ( out float ClipDistance) +0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) +0:15 Constant: +0:15 0 (const int) +0:15 clip0: direct index for structure ( temp float) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 1 (const int) +0:? Sequence +0:15 move second child to first child ( temp float) +0:15 direct index ( out float CullDistance) +0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) +0:15 Constant: +0:15 0 (const int) +0:15 cull0: direct index for structure ( temp float) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 2 (const int) +0:15 move second child to first child ( temp uint) +0:? 'OutputStream.vpai' ( out uint ViewportIndex) +0:15 vpai: direct index for structure ( temp uint) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 3 (const int) +0:15 move second child to first child ( temp uint) +0:? 'OutputStream.rtai' ( out uint Layer) +0:15 rtai: direct index for structure ( temp uint) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 4 (const int) +0:15 move second child to first child ( temp int) +0:? 'OutputStream.ii' (layout( location=0) out int) +0:15 ii: direct index for structure ( temp int) +0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:15 Constant: +0:15 5 (const int) +0:15 EmitVertex ( temp void) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-element array of uint) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:13 Function Call: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) +0:? 'VertexID' ( temp 3-element array of uint) +0:? 'OutputStream' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) +0:? Linker Objects +0:? 'VertexID' (layout( location=0) in 3-element array of uint) +0:? 'OutputStream.clip0' ( out float Position) +0:? 'OutputStream.vpai' ( out uint ViewportIndex) +0:? 'OutputStream.rtai' ( out uint Layer) +0:? 'OutputStream.ii' (layout( location=0) out int) +0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) +0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 65 + + Capability Geometry + Capability ClipDistance + Capability CullDistance + Capability MultiViewport + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 20 29 34 40 45 50 57 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 4 + Source HLSL 500 + Name 4 "main" + Name 12 "S" + MemberName 12(S) 0 "clip0" + MemberName 12(S) 1 "clip0" + MemberName 12(S) 2 "cull0" + MemberName 12(S) 3 "vpai" + MemberName 12(S) 4 "rtai" + MemberName 12(S) 5 "ii" + Name 17 "@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;" + Name 15 "VertexID" + Name 16 "OutputStream" + Name 20 "OutputStream.clip0" + Name 21 "s" + Name 29 "OutputStream.clip0" + Name 34 "OutputStream.cull0" + Name 40 "OutputStream.vpai" + Name 45 "OutputStream.rtai" + Name 50 "OutputStream.ii" + Name 55 "VertexID" + Name 57 "VertexID" + Name 59 "OutputStream" + Name 60 "param" + Name 62 "param" + Decorate 20(OutputStream.clip0) BuiltIn Position + Decorate 29(OutputStream.clip0) BuiltIn ClipDistance + Decorate 34(OutputStream.cull0) BuiltIn CullDistance + Decorate 40(OutputStream.vpai) BuiltIn ViewportIndex + Decorate 45(OutputStream.rtai) BuiltIn Layer + Decorate 50(OutputStream.ii) Location 0 + Decorate 57(VertexID) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 3 + 8: TypeArray 6(int) 7 + 9: TypePointer Function 8 + 10: TypeFloat 32 + 11: TypeInt 32 1 + 12(S): TypeStruct 10(float) 10(float) 10(float) 6(int) 6(int) 11(int) + 13: TypePointer Function 12(S) + 14: TypeFunction 2 9(ptr) 13(ptr) + 19: TypePointer Output 10(float) +20(OutputStream.clip0): 19(ptr) Variable Output + 22: 11(int) Constant 0 + 23: TypePointer Function 10(float) + 26: 6(int) Constant 1 + 27: TypeArray 10(float) 26 + 28: TypePointer Output 27 +29(OutputStream.clip0): 28(ptr) Variable Output + 30: 11(int) Constant 1 +34(OutputStream.cull0): 28(ptr) Variable Output + 35: 11(int) Constant 2 + 39: TypePointer Output 6(int) +40(OutputStream.vpai): 39(ptr) Variable Output + 41: 11(int) Constant 3 + 42: TypePointer Function 6(int) +45(OutputStream.rtai): 39(ptr) Variable Output + 46: 11(int) Constant 4 + 49: TypePointer Output 11(int) +50(OutputStream.ii): 49(ptr) Variable Output + 51: 11(int) Constant 5 + 52: TypePointer Function 11(int) + 56: TypePointer Input 8 + 57(VertexID): 56(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 55(VertexID): 9(ptr) Variable Function +59(OutputStream): 13(ptr) Variable Function + 60(param): 9(ptr) Variable Function + 62(param): 13(ptr) Variable Function + 58: 8 Load 57(VertexID) + Store 55(VertexID) 58 + 61: 8 Load 55(VertexID) + Store 60(param) 61 + 63: 2 FunctionCall 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;) 60(param) 62(param) + 64: 12(S) Load 62(param) + Store 59(OutputStream) 64 + Return + FunctionEnd +17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 14 + 15(VertexID): 9(ptr) FunctionParameter +16(OutputStream): 13(ptr) FunctionParameter + 18: Label + 21(s): 13(ptr) Variable Function + 24: 23(ptr) AccessChain 21(s) 22 + 25: 10(float) Load 24 + Store 20(OutputStream.clip0) 25 + 31: 23(ptr) AccessChain 21(s) 30 + 32: 10(float) Load 31 + 33: 19(ptr) AccessChain 29(OutputStream.clip0) 22 + Store 33 32 + 36: 23(ptr) AccessChain 21(s) 35 + 37: 10(float) Load 36 + 38: 19(ptr) AccessChain 34(OutputStream.cull0) 22 + Store 38 37 + 43: 42(ptr) AccessChain 21(s) 41 + 44: 6(int) Load 43 + Store 40(OutputStream.vpai) 44 + 47: 42(ptr) AccessChain 21(s) 46 + 48: 6(int) Load 47 + Store 45(OutputStream.rtai) 48 + 53: 52(ptr) AccessChain 21(s) 51 + 54: 11(int) Load 53 + Store 50(OutputStream.ii) 54 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.semantic.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.semantic.vert.out new file mode 100644 index 0000000000..2dbcd57ff1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.semantic.vert.out @@ -0,0 +1,333 @@ +hlsl.semantic.vert +Shader version: 500 +0:? Sequence +0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Function Parameters: +0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:? Sequence +0:12 Branch: Return with expression +0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp float) +0:10 clip0: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 0 (const int) +0:? 'ins.clip0' (layout( location=0) in float) +0:10 move second child to first child ( temp float) +0:10 clip1: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 1 (const int) +0:? 'ins.clip1' (layout( location=1) in float) +0:10 move second child to first child ( temp float) +0:10 cull0: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 2 (const int) +0:? 'ins.cull0' (layout( location=0) in float) +0:10 move second child to first child ( temp float) +0:10 cull1: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 3 (const int) +0:? 'ins.cull1' (layout( location=1) in float) +0:10 move second child to first child ( temp int) +0:10 ii: direct index for structure ( temp int) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 4 (const int) +0:? 'ins.ii' ( in int InstanceIndex) +0:10 Sequence +0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) +0:10 Constant: +0:10 0 (const int) +0:10 clip0: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 0 (const int) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) +0:10 Constant: +0:10 1 (const int) +0:10 clip1: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 1 (const int) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float CullDistance) +0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) +0:10 Constant: +0:10 0 (const int) +0:10 cull0: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 2 (const int) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float CullDistance) +0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) +0:10 Constant: +0:10 1 (const int) +0:10 cull1: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 3 (const int) +0:10 move second child to first child ( temp int) +0:? '@entryPointOutput.ii' (layout( location=0) out int) +0:10 ii: direct index for structure ( temp int) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 4 (const int) +0:? Linker Objects +0:? '@entryPointOutput.ii' (layout( location=0) out int) +0:? 'ins.ii' ( in int InstanceIndex) +0:? 'ins.clip0' (layout( location=0) in float) +0:? 'ins.clip1' (layout( location=1) in float) +0:? 'ins.cull0' (layout( location=0) in float) +0:? 'ins.cull1' (layout( location=1) in float) +0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) +0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Function Parameters: +0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:? Sequence +0:12 Branch: Return with expression +0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp float) +0:10 clip0: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 0 (const int) +0:? 'ins.clip0' (layout( location=0) in float) +0:10 move second child to first child ( temp float) +0:10 clip1: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 1 (const int) +0:? 'ins.clip1' (layout( location=1) in float) +0:10 move second child to first child ( temp float) +0:10 cull0: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 2 (const int) +0:? 'ins.cull0' (layout( location=0) in float) +0:10 move second child to first child ( temp float) +0:10 cull1: direct index for structure ( temp float) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 3 (const int) +0:? 'ins.cull1' (layout( location=1) in float) +0:10 move second child to first child ( temp int) +0:10 ii: direct index for structure ( temp int) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 4 (const int) +0:? 'ins.ii' ( in int InstanceIndex) +0:10 Sequence +0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) +0:10 Constant: +0:10 0 (const int) +0:10 clip0: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 0 (const int) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float ClipDistance) +0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) +0:10 Constant: +0:10 1 (const int) +0:10 clip1: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 1 (const int) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float CullDistance) +0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) +0:10 Constant: +0:10 0 (const int) +0:10 cull0: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 2 (const int) +0:? Sequence +0:10 move second child to first child ( temp float) +0:10 direct index ( out float CullDistance) +0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) +0:10 Constant: +0:10 1 (const int) +0:10 cull1: direct index for structure ( temp float) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 3 (const int) +0:10 move second child to first child ( temp int) +0:? '@entryPointOutput.ii' (layout( location=0) out int) +0:10 ii: direct index for structure ( temp int) +0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) +0:10 Constant: +0:10 4 (const int) +0:? Linker Objects +0:? '@entryPointOutput.ii' (layout( location=0) out int) +0:? 'ins.ii' ( in int InstanceIndex) +0:? 'ins.clip0' (layout( location=0) in float) +0:? 'ins.clip1' (layout( location=1) in float) +0:? 'ins.cull0' (layout( location=0) in float) +0:? 'ins.cull1' (layout( location=1) in float) +0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) +0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + Capability ClipDistance + Capability CullDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 21 26 30 34 39 51 59 67 + Source HLSL 500 + Name 4 "main" + Name 8 "S" + MemberName 8(S) 0 "clip0" + MemberName 8(S) 1 "clip1" + MemberName 8(S) 2 "cull0" + MemberName 8(S) 3 "cull1" + MemberName 8(S) 4 "ii" + Name 12 "@main(struct-S-f1-f1-f1-f1-i11;" + Name 11 "ins" + Name 14 "s" + Name 18 "ins" + Name 21 "ins.clip0" + Name 26 "ins.clip1" + Name 30 "ins.cull0" + Name 34 "ins.cull1" + Name 39 "ins.ii" + Name 43 "flattenTemp" + Name 44 "param" + Name 51 "@entryPointOutput.clip1" + Name 59 "@entryPointOutput.cull1" + Name 67 "@entryPointOutput.ii" + Decorate 21(ins.clip0) Location 0 + Decorate 26(ins.clip1) Location 1 + Decorate 30(ins.cull0) Location 0 + Decorate 34(ins.cull1) Location 1 + Decorate 39(ins.ii) BuiltIn InstanceIndex + Decorate 51(@entryPointOutput.clip1) BuiltIn ClipDistance + Decorate 59(@entryPointOutput.cull1) BuiltIn CullDistance + Decorate 67(@entryPointOutput.ii) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 1 + 8(S): TypeStruct 6(float) 6(float) 6(float) 6(float) 7(int) + 9: TypePointer Function 8(S) + 10: TypeFunction 8(S) 9(ptr) + 19: 7(int) Constant 0 + 20: TypePointer Input 6(float) + 21(ins.clip0): 20(ptr) Variable Input + 23: TypePointer Function 6(float) + 25: 7(int) Constant 1 + 26(ins.clip1): 20(ptr) Variable Input + 29: 7(int) Constant 2 + 30(ins.cull0): 20(ptr) Variable Input + 33: 7(int) Constant 3 + 34(ins.cull1): 20(ptr) Variable Input + 37: 7(int) Constant 4 + 38: TypePointer Input 7(int) + 39(ins.ii): 38(ptr) Variable Input + 41: TypePointer Function 7(int) + 47: TypeInt 32 0 + 48: 47(int) Constant 2 + 49: TypeArray 6(float) 48 + 50: TypePointer Output 49 +51(@entryPointOutput.clip1): 50(ptr) Variable Output + 54: TypePointer Output 6(float) +59(@entryPointOutput.cull1): 50(ptr) Variable Output + 66: TypePointer Output 7(int) +67(@entryPointOutput.ii): 66(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 18(ins): 9(ptr) Variable Function + 43(flattenTemp): 9(ptr) Variable Function + 44(param): 9(ptr) Variable Function + 22: 6(float) Load 21(ins.clip0) + 24: 23(ptr) AccessChain 18(ins) 19 + Store 24 22 + 27: 6(float) Load 26(ins.clip1) + 28: 23(ptr) AccessChain 18(ins) 25 + Store 28 27 + 31: 6(float) Load 30(ins.cull0) + 32: 23(ptr) AccessChain 18(ins) 29 + Store 32 31 + 35: 6(float) Load 34(ins.cull1) + 36: 23(ptr) AccessChain 18(ins) 33 + Store 36 35 + 40: 7(int) Load 39(ins.ii) + 42: 41(ptr) AccessChain 18(ins) 37 + Store 42 40 + 45: 8(S) Load 18(ins) + Store 44(param) 45 + 46: 8(S) FunctionCall 12(@main(struct-S-f1-f1-f1-f1-i11;) 44(param) + Store 43(flattenTemp) 46 + 52: 23(ptr) AccessChain 43(flattenTemp) 19 + 53: 6(float) Load 52 + 55: 54(ptr) AccessChain 51(@entryPointOutput.clip1) 19 + Store 55 53 + 56: 23(ptr) AccessChain 43(flattenTemp) 25 + 57: 6(float) Load 56 + 58: 54(ptr) AccessChain 51(@entryPointOutput.clip1) 25 + Store 58 57 + 60: 23(ptr) AccessChain 43(flattenTemp) 29 + 61: 6(float) Load 60 + 62: 54(ptr) AccessChain 59(@entryPointOutput.cull1) 19 + Store 62 61 + 63: 23(ptr) AccessChain 43(flattenTemp) 33 + 64: 6(float) Load 63 + 65: 54(ptr) AccessChain 59(@entryPointOutput.cull1) 25 + Store 65 64 + 68: 41(ptr) AccessChain 43(flattenTemp) 37 + 69: 7(int) Load 68 + Store 67(@entryPointOutput.ii) 69 + Return + FunctionEnd +12(@main(struct-S-f1-f1-f1-f1-i11;): 8(S) Function None 10 + 11(ins): 9(ptr) FunctionParameter + 13: Label + 14(s): 9(ptr) Variable Function + 15: 8(S) Load 14(s) + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out new file mode 100644 index 0000000000..94307a6a61 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.semicolons.frag.out @@ -0,0 +1,131 @@ +hlsl.semicolons.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: MyFunc( ( temp void) +0:2 Function Parameters: +0:8 Function Definition: MyFunc2( ( temp void) +0:8 Function Parameters: +0:13 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:13 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 color: direct index for structure ( temp 4-component vector of float) +0:16 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Branch: Return with expression +0:17 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:13 color: direct index for structure ( temp 4-component vector of float) +0:13 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:13 Constant: +0:13 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: MyFunc( ( temp void) +0:2 Function Parameters: +0:8 Function Definition: MyFunc2( ( temp void) +0:8 Function Parameters: +0:13 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) +0:13 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 color: direct index for structure ( temp 4-component vector of float) +0:16 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Branch: Return with expression +0:17 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) +0:13 color: direct index for structure ( temp 4-component vector of float) +0:13 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) +0:13 Constant: +0:13 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 28 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 6 "MyFunc(" + Name 8 "MyFunc2(" + Name 12 "PS_OUTPUT" + MemberName 12(PS_OUTPUT) 0 "color" + Name 14 "@main(" + Name 17 "ps_output" + Name 28 "@entryPointOutput.color" + Decorate 28(@entryPointOutput.color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12(PS_OUTPUT): TypeStruct 11(fvec4) + 13: TypeFunction 12(PS_OUTPUT) + 16: TypePointer Function 12(PS_OUTPUT) + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: 10(float) Constant 1065353216 + 21: 11(fvec4) ConstantComposite 20 20 20 20 + 22: TypePointer Function 11(fvec4) + 27: TypePointer Output 11(fvec4) +28(@entryPointOutput.color): 27(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 29:12(PS_OUTPUT) FunctionCall 14(@main() + 30: 11(fvec4) CompositeExtract 29 0 + Store 28(@entryPointOutput.color) 30 + Return + FunctionEnd + 6(MyFunc(): 2 Function None 3 + 7: Label + Return + FunctionEnd + 8(MyFunc2(): 2 Function None 3 + 9: Label + Return + FunctionEnd + 14(@main():12(PS_OUTPUT) Function None 13 + 15: Label + 17(ps_output): 16(ptr) Variable Function + 23: 22(ptr) AccessChain 17(ps_output) 19 + Store 23 21 + 24:12(PS_OUTPUT) Load 17(ps_output) + ReturnValue 24 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.shapeConv.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.shapeConv.frag.out new file mode 100644 index 0000000000..d283809925 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.shapeConv.frag.out @@ -0,0 +1,489 @@ +hlsl.shapeConv.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4;f1; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:2 'f' ( in float) +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:4 'v' ( temp 4-component vector of float) +0:4 Constant: +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'v' ( temp 4-component vector of float) +0:5 Constant: +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'v' ( temp 4-component vector of float) +0:6 Construct vec4 ( temp 4-component vector of float) +0:6 'f' ( in float) +0:8 move second child to first child ( temp 3-component vector of float) +0:8 'u' ( temp 3-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:9 move second child to first child ( temp 3-component vector of float) +0:9 'u' ( temp 3-component vector of float) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child ( temp 3-component vector of float) +0:10 'u' ( temp 3-component vector of float) +0:10 Construct vec3 ( temp 3-component vector of float) +0:10 'f' ( in float) +0:11 Sequence +0:11 move second child to first child ( temp 2-component vector of float) +0:11 'w' ( temp 2-component vector of float) +0:11 Constant: +0:11 2.000000 +0:11 2.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'V' ( temp float) +0:12 Constant: +0:12 1.000000 +0:13 Sequence +0:13 move second child to first child ( temp 3-component vector of float) +0:13 'MyVal' ( temp 3-component vector of float) +0:13 Construct vec3 ( temp 3-component vector of float) +0:13 'V' ( temp float) +0:16 Compare Greater Than ( temp 3-component vector of bool) +0:16 'foo' ( temp 3-component vector of float) +0:16 Constant: +0:16 4.000000 +0:16 4.000000 +0:16 4.000000 +0:17 Compare Greater Than or Equal ( temp 3-component vector of bool) +0:17 'foo' ( temp 3-component vector of float) +0:17 Constant: +0:17 5.000000 +0:17 5.000000 +0:17 5.000000 +0:18 Compare Less Than ( temp 3-component vector of bool) +0:18 Constant: +0:18 6.000000 +0:18 6.000000 +0:18 6.000000 +0:18 'foo' ( temp 3-component vector of float) +0:19 Compare Less Than or Equal ( temp 3-component vector of bool) +0:19 Constant: +0:19 7.000000 +0:19 7.000000 +0:19 7.000000 +0:19 'foo' ( temp 3-component vector of float) +0:21 all ( temp bool) +0:21 Equal ( temp 4-component vector of bool) +0:21 Construct vec4 ( temp 4-component vector of float) +0:21 direct index ( temp float) +0:21 'v' ( temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' ( temp 4-component vector of float) +0:22 any ( temp bool) +0:22 NotEqual ( temp 4-component vector of bool) +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 'f' ( in float) +0:22 'v' ( temp 4-component vector of float) +0:26 Equal ( temp 4-component vector of bool) +0:26 Construct vec4 ( temp 4-component vector of float) +0:26 'f1' ( temp 1-component vector of float) +0:26 'v' ( temp 4-component vector of float) +0:27 Compare Less Than ( temp 4-component vector of bool) +0:27 'v' ( temp 4-component vector of float) +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 'f1' ( temp 1-component vector of float) +0:28 Construct float ( temp float) +0:28 'f1' ( temp 1-component vector of float) +0:29 Construct vec3 ( temp 3-component vector of float) +0:29 Construct float ( temp float) +0:29 'f1' ( temp 1-component vector of float) +0:36 right-shift ( temp 3-component vector of uint) +0:36 Construct uvec3 ( temp 3-component vector of uint) +0:36 'ui' ( temp uint) +0:36 'ui3' ( temp 3-component vector of uint) +0:37 right-shift ( temp 3-component vector of uint) +0:37 'ui3' ( temp 3-component vector of uint) +0:37 'ui' ( temp uint) +0:39 multiply second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 'f1' ( temp 1-component vector of float) +0:40 multiply second child into first child ( temp 1-component vector of float) +0:40 'f1' ( temp 1-component vector of float) +0:40 Construct float ( temp 1-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:42 Sequence +0:42 move second child to first child ( temp 3-component vector of float) +0:42 'mixed' ( temp 3-component vector of float) +0:42 component-wise multiply ( temp 3-component vector of float) +0:42 'u' ( temp 3-component vector of float) +0:42 Construct vec3 ( temp 3-component vector of float) +0:42 'v' ( temp 4-component vector of float) +0:43 move second child to first child ( temp float) +0:43 'f' ( in float) +0:43 Construct float ( in float) +0:43 'u' ( temp 3-component vector of float) +0:44 move second child to first child ( temp 1-component vector of float) +0:44 'f1' ( temp 1-component vector of float) +0:44 Construct float ( temp 1-component vector of float) +0:44 'u' ( temp 3-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp float) +0:45 'sf' ( temp float) +0:45 Construct float ( temp float) +0:45 'v' ( temp 4-component vector of float) +0:46 Sequence +0:46 move second child to first child ( temp 1-component vector of float) +0:46 'sf1' ( temp 1-component vector of float) +0:46 Construct float ( temp 1-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:48 Branch: Return with expression +0:48 component-wise multiply ( temp 4-component vector of float) +0:48 'input' ( in 4-component vector of float) +0:48 Constant: +0:48 3.000000 +0:48 3.000000 +0:48 3.000000 +0:48 3.000000 +0:? Linker Objects + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: PixelShaderFunction(vf4;f1; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:2 'f' ( in float) +0:? Sequence +0:4 move second child to first child ( temp 4-component vector of float) +0:4 'v' ( temp 4-component vector of float) +0:4 Constant: +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:5 move second child to first child ( temp 4-component vector of float) +0:5 'v' ( temp 4-component vector of float) +0:5 Constant: +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:6 move second child to first child ( temp 4-component vector of float) +0:6 'v' ( temp 4-component vector of float) +0:6 Construct vec4 ( temp 4-component vector of float) +0:6 'f' ( in float) +0:8 move second child to first child ( temp 3-component vector of float) +0:8 'u' ( temp 3-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:9 move second child to first child ( temp 3-component vector of float) +0:9 'u' ( temp 3-component vector of float) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child ( temp 3-component vector of float) +0:10 'u' ( temp 3-component vector of float) +0:10 Construct vec3 ( temp 3-component vector of float) +0:10 'f' ( in float) +0:11 Sequence +0:11 move second child to first child ( temp 2-component vector of float) +0:11 'w' ( temp 2-component vector of float) +0:11 Constant: +0:11 2.000000 +0:11 2.000000 +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'V' ( temp float) +0:12 Constant: +0:12 1.000000 +0:13 Sequence +0:13 move second child to first child ( temp 3-component vector of float) +0:13 'MyVal' ( temp 3-component vector of float) +0:13 Construct vec3 ( temp 3-component vector of float) +0:13 'V' ( temp float) +0:16 Compare Greater Than ( temp 3-component vector of bool) +0:16 'foo' ( temp 3-component vector of float) +0:16 Constant: +0:16 4.000000 +0:16 4.000000 +0:16 4.000000 +0:17 Compare Greater Than or Equal ( temp 3-component vector of bool) +0:17 'foo' ( temp 3-component vector of float) +0:17 Constant: +0:17 5.000000 +0:17 5.000000 +0:17 5.000000 +0:18 Compare Less Than ( temp 3-component vector of bool) +0:18 Constant: +0:18 6.000000 +0:18 6.000000 +0:18 6.000000 +0:18 'foo' ( temp 3-component vector of float) +0:19 Compare Less Than or Equal ( temp 3-component vector of bool) +0:19 Constant: +0:19 7.000000 +0:19 7.000000 +0:19 7.000000 +0:19 'foo' ( temp 3-component vector of float) +0:21 all ( temp bool) +0:21 Equal ( temp 4-component vector of bool) +0:21 Construct vec4 ( temp 4-component vector of float) +0:21 direct index ( temp float) +0:21 'v' ( temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' ( temp 4-component vector of float) +0:22 any ( temp bool) +0:22 NotEqual ( temp 4-component vector of bool) +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 'f' ( in float) +0:22 'v' ( temp 4-component vector of float) +0:26 Equal ( temp 4-component vector of bool) +0:26 Construct vec4 ( temp 4-component vector of float) +0:26 'f1' ( temp 1-component vector of float) +0:26 'v' ( temp 4-component vector of float) +0:27 Compare Less Than ( temp 4-component vector of bool) +0:27 'v' ( temp 4-component vector of float) +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 'f1' ( temp 1-component vector of float) +0:28 Construct float ( temp float) +0:28 'f1' ( temp 1-component vector of float) +0:29 Construct vec3 ( temp 3-component vector of float) +0:29 Construct float ( temp float) +0:29 'f1' ( temp 1-component vector of float) +0:36 right-shift ( temp 3-component vector of uint) +0:36 Construct uvec3 ( temp 3-component vector of uint) +0:36 'ui' ( temp uint) +0:36 'ui3' ( temp 3-component vector of uint) +0:37 right-shift ( temp 3-component vector of uint) +0:37 'ui3' ( temp 3-component vector of uint) +0:37 'ui' ( temp uint) +0:39 multiply second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 'f1' ( temp 1-component vector of float) +0:40 multiply second child into first child ( temp 1-component vector of float) +0:40 'f1' ( temp 1-component vector of float) +0:40 Construct float ( temp 1-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:42 Sequence +0:42 move second child to first child ( temp 3-component vector of float) +0:42 'mixed' ( temp 3-component vector of float) +0:42 component-wise multiply ( temp 3-component vector of float) +0:42 'u' ( temp 3-component vector of float) +0:42 Construct vec3 ( temp 3-component vector of float) +0:42 'v' ( temp 4-component vector of float) +0:43 move second child to first child ( temp float) +0:43 'f' ( in float) +0:43 Construct float ( in float) +0:43 'u' ( temp 3-component vector of float) +0:44 move second child to first child ( temp 1-component vector of float) +0:44 'f1' ( temp 1-component vector of float) +0:44 Construct float ( temp 1-component vector of float) +0:44 'u' ( temp 3-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp float) +0:45 'sf' ( temp float) +0:45 Construct float ( temp float) +0:45 'v' ( temp 4-component vector of float) +0:46 Sequence +0:46 move second child to first child ( temp 1-component vector of float) +0:46 'sf1' ( temp 1-component vector of float) +0:46 Construct float ( temp 1-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:48 Branch: Return with expression +0:48 component-wise multiply ( temp 4-component vector of float) +0:48 'input' ( in 4-component vector of float) +0:48 Constant: +0:48 3.000000 +0:48 3.000000 +0:48 3.000000 +0:48 3.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 127 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 13 "PixelShaderFunction(vf4;f1;" + Name 11 "input" + Name 12 "f" + Name 15 "v" + Name 24 "u" + Name 31 "w" + Name 33 "V" + Name 34 "MyVal" + Name 37 "foo" + Name 70 "f1" + Name 83 "ui" + Name 88 "ui3" + Name 103 "mixed" + Name 115 "sf" + Name 118 "sf1" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypePointer Function 6(float) + 10: TypeFunction 7(fvec4) 8(ptr) 9(ptr) + 16: 6(float) Constant 1065353216 + 17: 7(fvec4) ConstantComposite 16 16 16 16 + 18: 6(float) Constant 1073741824 + 19: 7(fvec4) ConstantComposite 18 18 18 18 + 22: TypeVector 6(float) 3 + 23: TypePointer Function 22(fvec3) + 25: 22(fvec3) ConstantComposite 16 16 16 + 26: 22(fvec3) ConstantComposite 18 18 18 + 29: TypeVector 6(float) 2 + 30: TypePointer Function 29(fvec2) + 32: 29(fvec2) ConstantComposite 18 18 + 39: 6(float) Constant 1082130432 + 40: 22(fvec3) ConstantComposite 39 39 39 + 41: TypeBool + 42: TypeVector 41(bool) 3 + 45: 6(float) Constant 1084227584 + 46: 22(fvec3) ConstantComposite 45 45 45 + 48: 6(float) Constant 1086324736 + 49: 22(fvec3) ConstantComposite 48 48 48 + 52: 6(float) Constant 1088421888 + 53: 22(fvec3) ConstantComposite 52 52 52 + 56: TypeInt 32 0 + 57: 56(int) Constant 0 + 62: TypeVector 41(bool) 4 + 82: TypePointer Function 56(int) + 85: TypeVector 56(int) 3 + 87: TypePointer Function 85(ivec3) + 122: 6(float) Constant 1077936128 + 123: 7(fvec4) ConstantComposite 122 122 122 122 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd +13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10 + 11(input): 8(ptr) FunctionParameter + 12(f): 9(ptr) FunctionParameter + 14: Label + 15(v): 8(ptr) Variable Function + 24(u): 23(ptr) Variable Function + 31(w): 30(ptr) Variable Function + 33(V): 9(ptr) Variable Function + 34(MyVal): 23(ptr) Variable Function + 37(foo): 23(ptr) Variable Function + 70(f1): 9(ptr) Variable Function + 83(ui): 82(ptr) Variable Function + 88(ui3): 87(ptr) Variable Function + 103(mixed): 23(ptr) Variable Function + 115(sf): 9(ptr) Variable Function + 118(sf1): 9(ptr) Variable Function + Store 15(v) 17 + Store 15(v) 19 + 20: 6(float) Load 12(f) + 21: 7(fvec4) CompositeConstruct 20 20 20 20 + Store 15(v) 21 + Store 24(u) 25 + Store 24(u) 26 + 27: 6(float) Load 12(f) + 28: 22(fvec3) CompositeConstruct 27 27 27 + Store 24(u) 28 + Store 31(w) 32 + Store 33(V) 16 + 35: 6(float) Load 33(V) + 36: 22(fvec3) CompositeConstruct 35 35 35 + Store 34(MyVal) 36 + 38: 22(fvec3) Load 37(foo) + 43: 42(bvec3) FOrdGreaterThan 38 40 + 44: 22(fvec3) Load 37(foo) + 47: 42(bvec3) FOrdGreaterThanEqual 44 46 + 50: 22(fvec3) Load 37(foo) + 51: 42(bvec3) FOrdLessThan 49 50 + 54: 22(fvec3) Load 37(foo) + 55: 42(bvec3) FOrdLessThanEqual 53 54 + 58: 9(ptr) AccessChain 15(v) 57 + 59: 6(float) Load 58 + 60: 7(fvec4) CompositeConstruct 59 59 59 59 + 61: 7(fvec4) Load 15(v) + 63: 62(bvec4) FOrdEqual 60 61 + 64: 41(bool) All 63 + 65: 6(float) Load 12(f) + 66: 7(fvec4) CompositeConstruct 65 65 65 65 + 67: 7(fvec4) Load 15(v) + 68: 62(bvec4) FOrdNotEqual 66 67 + 69: 41(bool) Any 68 + 71: 6(float) Load 70(f1) + 72: 7(fvec4) CompositeConstruct 71 71 71 71 + 73: 7(fvec4) Load 15(v) + 74: 62(bvec4) FOrdEqual 72 73 + 75: 7(fvec4) Load 15(v) + 76: 6(float) Load 70(f1) + 77: 7(fvec4) CompositeConstruct 76 76 76 76 + 78: 62(bvec4) FOrdLessThan 75 77 + 79: 6(float) Load 70(f1) + 80: 6(float) Load 70(f1) + 81: 22(fvec3) CompositeConstruct 80 80 80 + 84: 56(int) Load 83(ui) + 86: 85(ivec3) CompositeConstruct 84 84 84 + 89: 85(ivec3) Load 88(ui3) + 90: 85(ivec3) ShiftRightLogical 86 89 + 91: 85(ivec3) Load 88(ui3) + 92: 56(int) Load 83(ui) + 93: 85(ivec3) CompositeConstruct 92 92 92 + 94: 85(ivec3) ShiftRightLogical 91 93 + 95: 6(float) Load 70(f1) + 96: 7(fvec4) Load 15(v) + 97: 7(fvec4) CompositeConstruct 95 95 95 95 + 98: 7(fvec4) FMul 96 97 + Store 15(v) 98 + 99: 7(fvec4) Load 15(v) + 100: 6(float) CompositeExtract 99 0 + 101: 6(float) Load 70(f1) + 102: 6(float) FMul 101 100 + Store 70(f1) 102 + 104: 22(fvec3) Load 24(u) + 105: 7(fvec4) Load 15(v) + 106: 6(float) CompositeExtract 105 0 + 107: 6(float) CompositeExtract 105 1 + 108: 6(float) CompositeExtract 105 2 + 109: 22(fvec3) CompositeConstruct 106 107 108 + 110: 22(fvec3) FMul 104 109 + Store 103(mixed) 110 + 111: 22(fvec3) Load 24(u) + 112: 6(float) CompositeExtract 111 0 + Store 12(f) 112 + 113: 22(fvec3) Load 24(u) + 114: 6(float) CompositeExtract 113 0 + Store 70(f1) 114 + 116: 7(fvec4) Load 15(v) + 117: 6(float) CompositeExtract 116 0 + Store 115(sf) 117 + 119: 7(fvec4) Load 15(v) + 120: 6(float) CompositeExtract 119 0 + Store 118(sf1) 120 + 121: 7(fvec4) Load 11(input) + 124: 7(fvec4) FMul 121 123 + ReturnValue 124 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out new file mode 100644 index 0000000000..fc12f7f076 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out @@ -0,0 +1,127 @@ +hlsl.shapeConvRet.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( ( temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: @main(f1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' ( in float) +0:? Sequence +0:8 Branch: Return with expression +0:8 Construct vec4 ( temp 4-component vector of float) +0:8 'f' ( in float) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp float) +0:? 'f' ( temp float) +0:? 'f' (layout( location=0) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(f1; ( temp 4-component vector of float) +0:? 'f' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'f' (layout( location=0) in float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( ( temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: @main(f1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' ( in float) +0:? Sequence +0:8 Branch: Return with expression +0:8 Construct vec4 ( temp 4-component vector of float) +0:8 'f' ( in float) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp float) +0:? 'f' ( temp float) +0:? 'f' (layout( location=0) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(f1; ( temp 4-component vector of float) +0:? 'f' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'f' (layout( location=0) in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 28 31 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "foo(" + Name 16 "@main(f1;" + Name 15 "f" + Name 26 "f" + Name 28 "f" + Name 31 "@entryPointOutput" + Name 32 "param" + Decorate 28(f) Location 0 + Decorate 31(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypeFunction 7(ivec3) + 11: TypeFloat 32 + 12: TypePointer Function 11(float) + 13: TypeVector 11(float) 4 + 14: TypeFunction 13(fvec4) 12(ptr) + 18: 6(int) Constant 13 + 19: 7(ivec3) ConstantComposite 18 18 18 + 27: TypePointer Input 11(float) + 28(f): 27(ptr) Variable Input + 30: TypePointer Output 13(fvec4) +31(@entryPointOutput): 30(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 26(f): 12(ptr) Variable Function + 32(param): 12(ptr) Variable Function + 29: 11(float) Load 28(f) + Store 26(f) 29 + 33: 11(float) Load 26(f) + Store 32(param) 33 + 34: 13(fvec4) FunctionCall 16(@main(f1;) 32(param) + Store 31(@entryPointOutput) 34 + Return + FunctionEnd + 9(foo(): 7(ivec3) Function None 8 + 10: Label + ReturnValue 19 + FunctionEnd + 16(@main(f1;): 13(fvec4) Function None 14 + 15(f): 12(ptr) FunctionParameter + 17: Label + 22: 11(float) Load 15(f) + 23: 13(fvec4) CompositeConstruct 22 22 22 22 + ReturnValue 23 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.shift.per-set.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.shift.per-set.frag.out new file mode 100644 index 0000000000..9b06693a77 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.shift.per-set.frag.out @@ -0,0 +1,225 @@ +hlsl.shift.per-set.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:34 Function Definition: @main( ( temp 4-component vector of float) +0:34 Function Parameters: +0:? Sequence +0:35 't1' (layout( set=1 binding=1) uniform texture1D) +0:36 't2' (layout( set=1 binding=2) uniform texture2D) +0:37 't3' (layout( set=2 binding=1) uniform texture3D) +0:38 direct index (layout( row_major std430) buffer 4-component vector of float) +0:38 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:38 Constant: +0:38 0 (const uint) +0:38 Constant: +0:38 0 (const int) +0:39 indirect index (layout( row_major std430) buffer uint) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 right-shift ( temp int) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 2 (const int) +0:40 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) +0:42 's1' (layout( set=1 binding=1) uniform sampler) +0:43 's2' (layout( set=2 binding=2) uniform sampler) +0:45 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) +0:46 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) +0:47 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) +0:49 imageLoad ( temp float) +0:49 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) +0:49 Constant: +0:49 0 (const int) +0:50 indirect index (layout( row_major std430) buffer uint) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 right-shift ( temp int) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 2 (const int) +0:51 direct index (layout( row_major std430) buffer float) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:55 cb1: direct index for structure (layout( row_major std140) uniform int) +0:55 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) +0:55 Constant: +0:55 0 (const uint) +0:56 tb1: direct index for structure (layout( row_major std430) buffer int) +0:56 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) +0:56 Constant: +0:56 0 (const uint) +0:58 Branch: Return with expression +0:58 Constant: +0:58 0.000000 +0:58 0.000000 +0:58 0.000000 +0:58 0.000000 +0:34 Function Definition: main( ( temp void) +0:34 Function Parameters: +0:? Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:34 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 's1' (layout( set=1 binding=1) uniform sampler) +0:? 's2' (layout( set=2 binding=2) uniform sampler) +0:? 't1' (layout( set=1 binding=1) uniform texture1D) +0:? 't2' (layout( set=1 binding=2) uniform texture2D) +0:? 't3' (layout( set=2 binding=1) uniform texture3D) +0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) +0:? 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) +0:? 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) +0:? 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) +0:? 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) +0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) +0:? 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:34 Function Definition: @main( ( temp 4-component vector of float) +0:34 Function Parameters: +0:? Sequence +0:35 't1' (layout( set=1 binding=1) uniform texture1D) +0:36 't2' (layout( set=1 binding=2) uniform texture2D) +0:37 't3' (layout( set=2 binding=1) uniform texture3D) +0:38 direct index (layout( row_major std430) buffer 4-component vector of float) +0:38 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:38 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:38 Constant: +0:38 0 (const uint) +0:38 Constant: +0:38 0 (const int) +0:39 indirect index (layout( row_major std430) buffer uint) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:39 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 right-shift ( temp int) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 2 (const int) +0:40 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) +0:42 's1' (layout( set=1 binding=1) uniform sampler) +0:43 's2' (layout( set=2 binding=2) uniform sampler) +0:45 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) +0:46 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) +0:47 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) +0:49 imageLoad ( temp float) +0:49 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) +0:49 Constant: +0:49 0 (const int) +0:50 indirect index (layout( row_major std430) buffer uint) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:50 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 right-shift ( temp int) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 2 (const int) +0:51 direct index (layout( row_major std430) buffer float) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:51 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:53 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:55 cb1: direct index for structure (layout( row_major std140) uniform int) +0:55 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) +0:55 Constant: +0:55 0 (const uint) +0:56 tb1: direct index for structure (layout( row_major std430) buffer int) +0:56 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) +0:56 Constant: +0:56 0 (const uint) +0:58 Branch: Return with expression +0:58 Constant: +0:58 0.000000 +0:58 0.000000 +0:58 0.000000 +0:58 0.000000 +0:34 Function Definition: main( ( temp void) +0:34 Function Parameters: +0:? Sequence +0:34 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:34 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 's1' (layout( set=1 binding=1) uniform sampler) +0:? 's2' (layout( set=2 binding=2) uniform sampler) +0:? 't1' (layout( set=1 binding=1) uniform texture1D) +0:? 't2' (layout( set=1 binding=2) uniform texture2D) +0:? 't3' (layout( set=2 binding=1) uniform texture3D) +0:? 't4' (layout( set=3 binding=1 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 't5' (layout( set=3 binding=2 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 't6' (layout( set=3 binding=3 rgba32f) uniform textureBuffer) +0:? 'u1' (layout( set=1 binding=1 rgba32f) uniform image1D) +0:? 'u2' (layout( set=2 binding=2 rgba32f) uniform image2D) +0:? 'u3' (layout( set=2 binding=3 rgba32f) uniform image3D) +0:? 'u4' (layout( set=1 binding=4 r32f) uniform imageBuffer) +0:? 'u5' (layout( set=2 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 'u6' (layout( set=3 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? 'u7' (layout( set=4 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? 'u8' (layout( set=5 binding=4 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? 'anon@0' (layout( set=6 binding=1 row_major std140) uniform block{layout( row_major std140) uniform int cb1}) +0:? 'anon@1' (layout( binding=7 row_major std430) readonly buffer block{layout( row_major std430) buffer int tb1}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 21 +t2: offset -1, type 8b5e, size 1, index -1, binding 22 +t3: offset -1, type 8b5f, size 1, index -1, binding 26 +t4.@data: offset 0, type 8b52, size 1, index 0, binding -1 +t5.@data: offset 0, type 1405, size 0, index 1, binding -1 +t6: offset -1, type 8dc2, size 1, index -1, binding 23 +s1: offset -1, type 0, size 1, index -1, binding 11 +s2: offset -1, type 0, size 1, index -1, binding 17 +u1: offset -1, type 904c, size 1, index -1, binding 31 +u2: offset -1, type 904d, size 1, index -1, binding 42 +u3: offset -1, type 904e, size 1, index -1, binding 43 +u4: offset -1, type 9051, size 1, index -1, binding 34 +u5.@data: offset 0, type 1405, size 0, index 2, binding -1 +u6.@data: offset 0, type 1406, size 1, index 3, binding -1 +cb1: offset 0, type 1404, size 1, index 4, binding -1 +tb1: offset 0, type 1404, size 1, index 5, binding -1 + +Uniform block reflection: +t4: offset -1, type ffffffff, size 0, index -1, binding 21 +t5: offset -1, type ffffffff, size 0, index -1, binding 22 +u5: offset -1, type ffffffff, size 0, index -1, binding 44 +u6: offset -1, type ffffffff, size 0, index -1, binding 34 +cb: offset -1, type ffffffff, size 4, index -1, binding 51 +tb: offset -1, type ffffffff, size 4, index -1, binding 27 + +Vertex attribute reflection: + diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out new file mode 100644 index 0000000000..b92085e41d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.sin.frag.out @@ -0,0 +1,101 @@ +hlsl.sin.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Branch: Return with expression +0:3 sine ( temp 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Branch: Return with expression +0:3 sine ( temp 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 19 22 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 17 "input" + Name 19 "input" + Name 22 "@entryPointOutput" + Name 23 "param" + Decorate 19(input) Location 0 + Decorate 22(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 18: TypePointer Input 7(fvec4) + 19(input): 18(ptr) Variable Input + 21: TypePointer Output 7(fvec4) +22(@entryPointOutput): 21(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 17(input): 8(ptr) Variable Function + 23(param): 8(ptr) Variable Function + 20: 7(fvec4) Load 19(input) + Store 17(input) 20 + 24: 7(fvec4) Load 17(input) + Store 23(param) 24 + 25: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 23(param) + Store 22(@entryPointOutput) 25 + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13: 7(fvec4) Load 10(input) + 14: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 13 + ReturnValue 14 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.snorm.uav.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.snorm.uav.comp.out new file mode 100644 index 0000000000..2d6dae7c9f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.snorm.uav.comp.out @@ -0,0 +1,212 @@ +hlsl.snorm.uav.comp +Shader version: 500 +local_size = (16, 16, 1) +0:? Sequence +0:12 Function Definition: @main(vu3; ( temp void) +0:12 Function Parameters: +0:12 'tid' ( in 3-component vector of uint) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'storeTemp' ( temp 4-component vector of float) +0:13 add ( temp 4-component vector of float) +0:13 textureFetch ( temp 4-component vector of float) +0:13 'ResultInS' (layout( binding=1) uniform texture3D) +0:13 'tid' ( in 3-component vector of uint) +0:13 Constant: +0:13 0 (const int) +0:13 uf4: direct index for structure ( uniform 4-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) +0:13 Constant: +0:13 0 (const uint) +0:13 imageStore ( temp void) +0:13 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) +0:13 'tid' ( in 3-component vector of uint) +0:13 'storeTemp' ( temp 4-component vector of float) +0:13 'storeTemp' ( temp 4-component vector of float) +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'storeTemp' ( temp 4-component vector of float) +0:14 textureFetch ( temp 4-component vector of float) +0:14 'ResultInU' (layout( binding=0) uniform texture3D) +0:14 'tid' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 imageStore ( temp void) +0:14 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) +0:14 'tid' ( in 3-component vector of uint) +0:14 'storeTemp' ( temp 4-component vector of float) +0:14 'storeTemp' ( temp 4-component vector of float) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:12 Function Call: @main(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) +0:? 'ResultInU' (layout( binding=0) uniform texture3D) +0:? 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) +0:? 'ResultInS' (layout( binding=1) uniform texture3D) +0:? 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (16, 16, 1) +0:? Sequence +0:12 Function Definition: @main(vu3; ( temp void) +0:12 Function Parameters: +0:12 'tid' ( in 3-component vector of uint) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'storeTemp' ( temp 4-component vector of float) +0:13 add ( temp 4-component vector of float) +0:13 textureFetch ( temp 4-component vector of float) +0:13 'ResultInS' (layout( binding=1) uniform texture3D) +0:13 'tid' ( in 3-component vector of uint) +0:13 Constant: +0:13 0 (const int) +0:13 uf4: direct index for structure ( uniform 4-component vector of float) +0:13 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) +0:13 Constant: +0:13 0 (const uint) +0:13 imageStore ( temp void) +0:13 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) +0:13 'tid' ( in 3-component vector of uint) +0:13 'storeTemp' ( temp 4-component vector of float) +0:13 'storeTemp' ( temp 4-component vector of float) +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'storeTemp' ( temp 4-component vector of float) +0:14 textureFetch ( temp 4-component vector of float) +0:14 'ResultInU' (layout( binding=0) uniform texture3D) +0:14 'tid' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 imageStore ( temp void) +0:14 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) +0:14 'tid' ( in 3-component vector of uint) +0:14 'storeTemp' ( temp 4-component vector of float) +0:14 'storeTemp' ( temp 4-component vector of float) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp 3-component vector of uint) +0:? 'tid' ( temp 3-component vector of uint) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) +0:12 Function Call: @main(vu3; ( temp void) +0:? 'tid' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) +0:? 'ResultInU' (layout( binding=0) uniform texture3D) +0:? 'ResultOutU' (layout( binding=0 rgba32f) uniform image3D) +0:? 'ResultInS' (layout( binding=1) uniform texture3D) +0:? 'ResultOutS' (layout( binding=1 rgba32f) uniform image3D) +0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 49 + ExecutionMode 4 LocalSize 16 16 1 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vu3;" + Name 10 "tid" + Name 16 "storeTemp" + Name 19 "ResultInS" + Name 25 "$Global" + MemberName 25($Global) 0 "uf4" + Name 27 "" + Name 34 "ResultOutS" + Name 38 "storeTemp" + Name 39 "ResultInU" + Name 43 "ResultOutU" + Name 47 "tid" + Name 49 "tid" + Name 51 "param" + Decorate 19(ResultInS) DescriptorSet 0 + Decorate 19(ResultInS) Binding 1 + MemberDecorate 25($Global) 0 Offset 0 + Decorate 25($Global) Block + Decorate 27 DescriptorSet 0 + Decorate 34(ResultOutS) DescriptorSet 0 + Decorate 34(ResultOutS) Binding 1 + Decorate 39(ResultInU) DescriptorSet 0 + Decorate 39(ResultInU) Binding 0 + Decorate 43(ResultOutU) DescriptorSet 0 + Decorate 43(ResultOutU) Binding 0 + Decorate 49(tid) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeFloat 32 + 14: TypeVector 13(float) 4 + 15: TypePointer Function 14(fvec4) + 17: TypeImage 13(float) 3D sampled format:Unknown + 18: TypePointer UniformConstant 17 + 19(ResultInS): 18(ptr) Variable UniformConstant + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 25($Global): TypeStruct 14(fvec4) + 26: TypePointer Uniform 25($Global) + 27: 26(ptr) Variable Uniform + 28: TypePointer Uniform 14(fvec4) + 32: TypeImage 13(float) 3D nonsampled format:Rgba32f + 33: TypePointer UniformConstant 32 + 34(ResultOutS): 33(ptr) Variable UniformConstant + 39(ResultInU): 18(ptr) Variable UniformConstant + 43(ResultOutU): 33(ptr) Variable UniformConstant + 48: TypePointer Input 7(ivec3) + 49(tid): 48(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 47(tid): 8(ptr) Variable Function + 51(param): 8(ptr) Variable Function + 50: 7(ivec3) Load 49(tid) + Store 47(tid) 50 + 52: 7(ivec3) Load 47(tid) + Store 51(param) 52 + 53: 2 FunctionCall 11(@main(vu3;) 51(param) + Return + FunctionEnd + 11(@main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + 16(storeTemp): 15(ptr) Variable Function + 38(storeTemp): 15(ptr) Variable Function + 20: 17 Load 19(ResultInS) + 21: 7(ivec3) Load 10(tid) + 24: 14(fvec4) ImageFetch 20 21 Lod 23 + 29: 28(ptr) AccessChain 27 23 + 30: 14(fvec4) Load 29 + 31: 14(fvec4) FAdd 24 30 + Store 16(storeTemp) 31 + 35: 32 Load 34(ResultOutS) + 36: 7(ivec3) Load 10(tid) + 37: 14(fvec4) Load 16(storeTemp) + ImageWrite 35 36 37 + 40: 17 Load 39(ResultInU) + 41: 7(ivec3) Load 10(tid) + 42: 14(fvec4) ImageFetch 40 41 Lod 23 + Store 38(storeTemp) 42 + 44: 32 Load 43(ResultOutU) + 45: 7(ivec3) Load 10(tid) + 46: 14(fvec4) Load 38(storeTemp) + ImageWrite 44 45 46 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out new file mode 100644 index 0000000000..2c7e418005 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out @@ -0,0 +1,200 @@ +hlsl.staticMemberFunction.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: Test::staticMemFun(vf4; ( global 4-component vector of float) +0:5 Function Parameters: +0:5 'a' ( in 4-component vector of float) +0:? Sequence +0:6 Branch: Return with expression +0:6 vector-scale ( temp 4-component vector of float) +0:6 Constant: +0:6 2.000000 +0:6 'a' ( in 4-component vector of float) +0:9 Function Definition: Test::staticMemFun(i1; ( global int) +0:9 Function Parameters: +0:9 'a' ( in int) +0:? Sequence +0:10 Branch: Return with expression +0:10 add ( temp int) +0:10 Constant: +0:10 2 (const int) +0:10 'a' ( in int) +0:16 Function Definition: @main( ( temp 4-component vector of float) +0:16 Function Parameters: +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'f4' ( temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:19 add second child into first child ( temp 4-component vector of float) +0:19 'f4' ( temp 4-component vector of float) +0:19 Function Call: Test::staticMemFun(vf4; ( global 4-component vector of float) +0:? Constant: +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:20 add second child into first child ( temp 4-component vector of float) +0:20 'f4' ( temp 4-component vector of float) +0:20 Convert int to float ( temp float) +0:20 Function Call: Test::staticMemFun(i1; ( global int) +0:20 Constant: +0:20 7 (const int) +0:21 Branch: Return with expression +0:21 'f4' ( temp 4-component vector of float) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:16 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: Test::staticMemFun(vf4; ( global 4-component vector of float) +0:5 Function Parameters: +0:5 'a' ( in 4-component vector of float) +0:? Sequence +0:6 Branch: Return with expression +0:6 vector-scale ( temp 4-component vector of float) +0:6 Constant: +0:6 2.000000 +0:6 'a' ( in 4-component vector of float) +0:9 Function Definition: Test::staticMemFun(i1; ( global int) +0:9 Function Parameters: +0:9 'a' ( in int) +0:? Sequence +0:10 Branch: Return with expression +0:10 add ( temp int) +0:10 Constant: +0:10 2 (const int) +0:10 'a' ( in int) +0:16 Function Definition: @main( ( temp 4-component vector of float) +0:16 Function Parameters: +0:? Sequence +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'f4' ( temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:19 add second child into first child ( temp 4-component vector of float) +0:19 'f4' ( temp 4-component vector of float) +0:19 Function Call: Test::staticMemFun(vf4; ( global 4-component vector of float) +0:? Constant: +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:? 5.000000 +0:20 add second child into first child ( temp 4-component vector of float) +0:20 'f4' ( temp 4-component vector of float) +0:20 Convert int to float ( temp float) +0:20 Function Call: Test::staticMemFun(i1; ( global int) +0:20 Constant: +0:20 7 (const int) +0:21 Branch: Return with expression +0:21 'f4' ( temp 4-component vector of float) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:16 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 52 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Test::staticMemFun(vf4;" + Name 10 "a" + Name 17 "Test::staticMemFun(i1;" + Name 16 "a" + Name 20 "@main(" + Name 32 "f4" + Name 37 "param" + Name 42 "param" + Name 52 "@entryPointOutput" + Decorate 52(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 15: TypeFunction 13(int) 14(ptr) + 19: TypeFunction 7(fvec4) + 22: 6(float) Constant 1073741824 + 27: 13(int) Constant 2 + 33: 6(float) Constant 1065353216 + 34: 7(fvec4) ConstantComposite 33 33 33 33 + 35: 6(float) Constant 1084227584 + 36: 7(fvec4) ConstantComposite 35 35 35 35 + 41: 13(int) Constant 7 + 51: TypePointer Output 7(fvec4) +52(@entryPointOutput): 51(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 53: 7(fvec4) FunctionCall 20(@main() + Store 52(@entryPointOutput) 53 + Return + FunctionEnd +11(Test::staticMemFun(vf4;): 7(fvec4) Function None 9 + 10(a): 8(ptr) FunctionParameter + 12: Label + 23: 7(fvec4) Load 10(a) + 24: 7(fvec4) VectorTimesScalar 23 22 + ReturnValue 24 + FunctionEnd +17(Test::staticMemFun(i1;): 13(int) Function None 15 + 16(a): 14(ptr) FunctionParameter + 18: Label + 28: 13(int) Load 16(a) + 29: 13(int) IAdd 27 28 + ReturnValue 29 + FunctionEnd + 20(@main(): 7(fvec4) Function None 19 + 21: Label + 32(f4): 8(ptr) Variable Function + 37(param): 8(ptr) Variable Function + 42(param): 14(ptr) Variable Function + Store 32(f4) 34 + Store 37(param) 36 + 38: 7(fvec4) FunctionCall 11(Test::staticMemFun(vf4;) 37(param) + 39: 7(fvec4) Load 32(f4) + 40: 7(fvec4) FAdd 39 38 + Store 32(f4) 40 + Store 42(param) 41 + 43: 13(int) FunctionCall 17(Test::staticMemFun(i1;) 42(param) + 44: 6(float) ConvertSToF 43 + 45: 7(fvec4) Load 32(f4) + 46: 7(fvec4) CompositeConstruct 44 44 44 44 + 47: 7(fvec4) FAdd 45 46 + Store 32(f4) 47 + 48: 7(fvec4) Load 32(f4) + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out new file mode 100644 index 0000000000..6436db7c85 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out @@ -0,0 +1,173 @@ +hlsl.store.rwbyteaddressbuffer.type.comp +Shader version: 500 +local_size = (64, 1, 1) +0:? Sequence +0:5 Function Definition: @main(vu3; ( temp void) +0:5 Function Parameters: +0:5 'dispatchThreadID' ( in 3-component vector of uint) +0:? Sequence +0:6 Test condition and select ( temp void) +0:6 Condition +0:6 Compare Equal ( temp bool) +0:6 direct index ( temp uint) +0:6 'dispatchThreadID' ( in 3-component vector of uint) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const uint) +0:6 true case +0:? Sequence +0:7 move second child to first child ( temp int) +0:7 'byteAddrTemp' ( temp int) +0:7 right-shift ( temp int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp uint) +0:7 indirect index (layout( row_major std430) buffer uint) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:7 Constant: +0:7 0 (const uint) +0:7 'byteAddrTemp' ( temp int) +0:7 Constant: +0:7 2 (const uint) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 3-component vector of uint) +0:? 'dispatchThreadID' ( temp 3-component vector of uint) +0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) +0:5 Function Call: @main(vu3; ( temp void) +0:? 'dispatchThreadID' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (64, 1, 1) +0:? Sequence +0:5 Function Definition: @main(vu3; ( temp void) +0:5 Function Parameters: +0:5 'dispatchThreadID' ( in 3-component vector of uint) +0:? Sequence +0:6 Test condition and select ( temp void) +0:6 Condition +0:6 Compare Equal ( temp bool) +0:6 direct index ( temp uint) +0:6 'dispatchThreadID' ( in 3-component vector of uint) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const uint) +0:6 true case +0:? Sequence +0:7 move second child to first child ( temp int) +0:7 'byteAddrTemp' ( temp int) +0:7 right-shift ( temp int) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp uint) +0:7 indirect index (layout( row_major std430) buffer uint) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:7 Constant: +0:7 0 (const uint) +0:7 'byteAddrTemp' ( temp int) +0:7 Constant: +0:7 2 (const uint) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 3-component vector of uint) +0:? 'dispatchThreadID' ( temp 3-component vector of uint) +0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) +0:5 Function Call: @main(vu3; ( temp void) +0:? 'dispatchThreadID' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 37 + ExecutionMode 4 LocalSize 64 1 1 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vu3;" + Name 10 "dispatchThreadID" + Name 23 "byteAddrTemp" + Name 28 "buffer" + MemberName 28(buffer) 0 "@data" + Name 30 "buffer" + Name 35 "dispatchThreadID" + Name 37 "dispatchThreadID" + Name 39 "param" + Decorate 27 ArrayStride 4 + MemberDecorate 28(buffer) 0 Offset 0 + Decorate 28(buffer) BufferBlock + Decorate 30(buffer) DescriptorSet 0 + Decorate 37(dispatchThreadID) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: 6(int) Constant 0 + 14: TypePointer Function 6(int) + 17: TypeBool + 21: TypeInt 32 1 + 22: TypePointer Function 21(int) + 24: 21(int) Constant 0 + 25: 21(int) Constant 2 + 27: TypeRuntimeArray 6(int) + 28(buffer): TypeStruct 27 + 29: TypePointer Uniform 28(buffer) + 30(buffer): 29(ptr) Variable Uniform + 32: 6(int) Constant 2 + 33: TypePointer Uniform 6(int) + 36: TypePointer Input 7(ivec3) +37(dispatchThreadID): 36(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label +35(dispatchThreadID): 8(ptr) Variable Function + 39(param): 8(ptr) Variable Function + 38: 7(ivec3) Load 37(dispatchThreadID) + Store 35(dispatchThreadID) 38 + 40: 7(ivec3) Load 35(dispatchThreadID) + Store 39(param) 40 + 41: 2 FunctionCall 11(@main(vu3;) 39(param) + Return + FunctionEnd + 11(@main(vu3;): 2 Function None 9 +10(dispatchThreadID): 8(ptr) FunctionParameter + 12: Label +23(byteAddrTemp): 22(ptr) Variable Function + 15: 14(ptr) AccessChain 10(dispatchThreadID) 13 + 16: 6(int) Load 15 + 18: 17(bool) IEqual 16 13 + SelectionMerge 20 None + BranchConditional 18 19 20 + 19: Label + 26: 21(int) ShiftRightArithmetic 24 25 + Store 23(byteAddrTemp) 26 + 31: 21(int) Load 23(byteAddrTemp) + 34: 33(ptr) AccessChain 30(buffer) 24 31 + Store 34 32 + Branch 20 + 20: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out new file mode 100644 index 0000000000..9181b933aa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.string.frag.out @@ -0,0 +1,97 @@ +hlsl.string.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main(f1; ( temp float) +0:10 Function Parameters: +0:10 'f' ( in float) +0:? Sequence +0:11 Branch: Return with expression +0:11 'f' ( in float) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp float) +0:? 'f' ( temp float) +0:? 'f' (layout( location=0) in float) +0:10 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:10 Function Call: @main(f1; ( temp float) +0:? 'f' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'f' (layout( location=0) in float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: @main(f1; ( temp float) +0:10 Function Parameters: +0:10 'f' ( in float) +0:? Sequence +0:11 Branch: Return with expression +0:11 'f' ( in float) +0:10 Function Definition: main( ( temp void) +0:10 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp float) +0:? 'f' ( temp float) +0:? 'f' (layout( location=0) in float) +0:10 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:10 Function Call: @main(f1; ( temp float) +0:? 'f' ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) +0:? 'f' (layout( location=0) in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 20 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "@main(f1;" + Name 9 "f" + Name 15 "f" + Name 17 "f" + Name 20 "@entryPointOutput" + Name 21 "param" + Decorate 17(f) Location 0 + Decorate 20(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) + 16: TypePointer Input 6(float) + 17(f): 16(ptr) Variable Input + 19: TypePointer Output 6(float) +20(@entryPointOutput): 19(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 15(f): 7(ptr) Variable Function + 21(param): 7(ptr) Variable Function + 18: 6(float) Load 17(f) + Store 15(f) 18 + 22: 6(float) Load 15(f) + Store 21(param) 22 + 23: 6(float) FunctionCall 10(@main(f1;) 21(param) + Store 20(@entryPointOutput) 23 + Return + FunctionEnd + 10(@main(f1;): 6(float) Function None 8 + 9(f): 7(ptr) FunctionParameter + 11: Label + 12: 6(float) Load 9(f) + ReturnValue 12 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.stringtoken.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.stringtoken.frag.out new file mode 100644 index 0000000000..82033cf365 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.stringtoken.frag.out @@ -0,0 +1,132 @@ +hlsl.stringtoken.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:16 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 Color: direct index for structure ( temp 4-component vector of float) +0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:19 Branch: Return with expression +0:19 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:16 Color: direct index for structure ( temp 4-component vector of float) +0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:? Linker Objects +0:? 'TestTexture' ( uniform texture2D) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float TestUF}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:16 Function Parameters: +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 Color: direct index for structure ( temp 4-component vector of float) +0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:19 Branch: Return with expression +0:19 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:16 Color: direct index for structure ( temp 4-component vector of float) +0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:? Linker Objects +0:? 'TestTexture' ( uniform texture2D) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float TestUF}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 25 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 13 "psout" + Name 25 "@entryPointOutput.Color" + Name 30 "TestTexture" + Name 31 "$Global" + MemberName 31($Global) 0 "TestUF" + Name 33 "" + Decorate 25(@entryPointOutput.Color) Location 0 + Decorate 30(TestTexture) DescriptorSet 0 + MemberDecorate 31($Global) 0 Offset 0 + Decorate 31($Global) Block + Decorate 33 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 8(PS_OUTPUT) + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: 6(float) Constant 0 + 17: 6(float) Constant 1065353216 + 18: 7(fvec4) ConstantComposite 16 16 16 17 + 19: TypePointer Function 7(fvec4) + 24: TypePointer Output 7(fvec4) +25(@entryPointOutput.Color): 24(ptr) Variable Output + 28: TypeImage 6(float) 2D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(TestTexture): 29(ptr) Variable UniformConstant + 31($Global): TypeStruct 7(fvec4) + 32: TypePointer Uniform 31($Global) + 33: 32(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 26:8(PS_OUTPUT) FunctionCall 10(@main() + 27: 7(fvec4) CompositeExtract 26 0 + Store 25(@entryPointOutput.Color) 27 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(psout): 12(ptr) Variable Function + 20: 19(ptr) AccessChain 13(psout) 15 + Store 20 18 + 21:8(PS_OUTPUT) Load 13(psout) + ReturnValue 21 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.frag.out new file mode 100644 index 0000000000..bd216c8e31 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.frag.out @@ -0,0 +1,413 @@ +hlsl.struct.frag +WARNING: 0:26: 'register' : ignoring shader_profile +WARNING: 0:27: 'register' : ignoring shader_profile +WARNING: 0:30: 'register' : ignoring shader_profile + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float) +0:40 Function Parameters: +0:40 'input' ( in 4-component vector of float) +0:40 's' ( in structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:? Sequence +0:45 Compare Equal ( temp bool) +0:45 's3' ( temp structure{ temp 3-component vector of bool b3}) +0:45 's3' ( temp structure{ temp 3-component vector of bool b3}) +0:46 move second child to first child ( temp 4-component vector of float) +0:46 i: direct index for structure ( temp 4-component vector of float) +0:46 's2' ( global structure{ temp 4-component vector of float i}) +0:46 Constant: +0:46 0 (const int) +0:46 ff4: direct index for structure ( temp 4-component vector of float) +0:46 's' ( in structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:46 Constant: +0:46 7 (const int) +0:50 move second child to first child ( temp structure{}) +0:50 'e' ( temp structure{}) +0:50 e: direct index for structure ( temp structure{}) +0:50 'ce' ( temp structure{ temp structure{} e}) +0:50 Constant: +0:50 0 (const int) +0:52 Branch: Return with expression +0:52 'input' ( in 4-component vector of float) +0:40 Function Definition: PixelShaderFunction( ( temp void) +0:40 Function Parameters: +0:? Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 a: direct index for structure ( temp 4-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 0 (const int) +0:? 's.a' (layout( location=1) smooth in 4-component vector of float) +0:40 move second child to first child ( temp bool) +0:40 b: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 1 (const int) +0:? 's.b' (layout( location=2) flat in bool) +0:40 move second child to first child ( temp 1-component vector of float) +0:40 c: direct index for structure ( temp 1-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 2 (const int) +0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float) +0:40 move second child to first child ( temp 2-component vector of float) +0:40 d: direct index for structure ( temp 2-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 3 (const int) +0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float) +0:40 move second child to first child ( temp bool) +0:40 ff1: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 4 (const int) +0:? 's.ff1' ( flat in bool Face) +0:40 move second child to first child ( temp bool) +0:40 ff2: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 5 (const int) +0:? 's.ff2' (layout( location=5) flat in bool) +0:40 move second child to first child ( temp bool) +0:40 ff3: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 6 (const int) +0:? 's.ff3' (layout( location=6) flat in bool) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 ff4: direct index for structure ( temp 4-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 7 (const int) +0:? 's.ff4' (layout( location=7) in 4-component vector of float) +0:40 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout( binding=5 offset=1620) uniform float ff5, layout( binding=8 offset=1636) uniform float ff6}) +0:? 's2' ( global structure{ temp 4-component vector of float i}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 's.ff1' ( flat in bool Face) +0:? 's.a' (layout( location=1) smooth in 4-component vector of float) +0:? 's.b' (layout( location=2) flat in bool) +0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float) +0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float) +0:? 's.ff2' (layout( location=5) flat in bool) +0:? 's.ff3' (layout( location=6) flat in bool) +0:? 's.ff4' (layout( location=7) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float) +0:40 Function Parameters: +0:40 'input' ( in 4-component vector of float) +0:40 's' ( in structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:? Sequence +0:45 Compare Equal ( temp bool) +0:45 's3' ( temp structure{ temp 3-component vector of bool b3}) +0:45 's3' ( temp structure{ temp 3-component vector of bool b3}) +0:46 move second child to first child ( temp 4-component vector of float) +0:46 i: direct index for structure ( temp 4-component vector of float) +0:46 's2' ( global structure{ temp 4-component vector of float i}) +0:46 Constant: +0:46 0 (const int) +0:46 ff4: direct index for structure ( temp 4-component vector of float) +0:46 's' ( in structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:46 Constant: +0:46 7 (const int) +0:50 move second child to first child ( temp structure{}) +0:50 'e' ( temp structure{}) +0:50 e: direct index for structure ( temp structure{}) +0:50 'ce' ( temp structure{ temp structure{} e}) +0:50 Constant: +0:50 0 (const int) +0:52 Branch: Return with expression +0:52 'input' ( in 4-component vector of float) +0:40 Function Definition: PixelShaderFunction( ( temp void) +0:40 Function Parameters: +0:? Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 a: direct index for structure ( temp 4-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 0 (const int) +0:? 's.a' (layout( location=1) smooth in 4-component vector of float) +0:40 move second child to first child ( temp bool) +0:40 b: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 1 (const int) +0:? 's.b' (layout( location=2) flat in bool) +0:40 move second child to first child ( temp 1-component vector of float) +0:40 c: direct index for structure ( temp 1-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 2 (const int) +0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float) +0:40 move second child to first child ( temp 2-component vector of float) +0:40 d: direct index for structure ( temp 2-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 3 (const int) +0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float) +0:40 move second child to first child ( temp bool) +0:40 ff1: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 4 (const int) +0:? 's.ff1' ( flat in bool Face) +0:40 move second child to first child ( temp bool) +0:40 ff2: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 5 (const int) +0:? 's.ff2' (layout( location=5) flat in bool) +0:40 move second child to first child ( temp bool) +0:40 ff3: direct index for structure ( temp bool) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 6 (const int) +0:? 's.ff3' (layout( location=6) flat in bool) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 ff4: direct index for structure ( temp 4-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:40 Constant: +0:40 7 (const int) +0:? 's.ff4' (layout( location=7) in 4-component vector of float) +0:40 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout( binding=5 offset=1620) uniform float ff5, layout( binding=8 offset=1636) uniform float ff6}) +0:? 's2' ( global structure{ temp 4-component vector of float i}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 's.ff1' ( flat in bool Face) +0:? 's.a' (layout( location=1) smooth in 4-component vector of float) +0:? 's.b' (layout( location=2) flat in bool) +0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float) +0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float) +0:? 's.ff2' (layout( location=5) flat in bool) +0:? 's.ff3' (layout( location=6) flat in bool) +0:? 's.ff4' (layout( location=7) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 102 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 51 54 59 65 71 76 80 84 87 91 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "IN_S" + MemberName 11(IN_S) 0 "a" + MemberName 11(IN_S) 1 "b" + MemberName 11(IN_S) 2 "c" + MemberName 11(IN_S) 3 "d" + MemberName 11(IN_S) 4 "ff1" + MemberName 11(IN_S) 5 "ff2" + MemberName 11(IN_S) 6 "ff3" + MemberName 11(IN_S) 7 "ff4" + Name 16 "@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;" + Name 14 "input" + Name 15 "s" + Name 19 "FS" + MemberName 19(FS) 0 "b3" + Name 21 "s3" + Name 28 "" + MemberName 28 0 "i" + Name 30 "s2" + Name 38 "empty" + Name 40 "e" + Name 41 "containEmpty" + MemberName 41(containEmpty) 0 "e" + Name 43 "ce" + Name 49 "input" + Name 51 "input" + Name 53 "s" + Name 54 "s.a" + Name 59 "s.b" + Name 65 "s.c" + Name 71 "s.d" + Name 76 "s.ff1" + Name 80 "s.ff2" + Name 84 "s.ff3" + Name 87 "s.ff4" + Name 91 "@entryPointOutput" + Name 92 "param" + Name 94 "param" + Name 98 "myS" + MemberName 98(myS) 0 "b" + MemberName 98(myS) 1 "c" + MemberName 98(myS) 2 "a" + MemberName 98(myS) 3 "d" + Name 99 "$Global" + MemberName 99($Global) 0 "s1" + MemberName 99($Global) 1 "ff5" + MemberName 99($Global) 2 "ff6" + Name 101 "" + Decorate 51(input) Location 0 + Decorate 54(s.a) Location 1 + Decorate 59(s.b) Flat + Decorate 59(s.b) Location 2 + Decorate 65(s.c) NoPerspective + Decorate 65(s.c) Centroid + Decorate 65(s.c) Location 3 + Decorate 71(s.d) Centroid + Decorate 71(s.d) Location 4 + Decorate 76(s.ff1) Flat + Decorate 76(s.ff1) BuiltIn FrontFacing + Decorate 80(s.ff2) Flat + Decorate 80(s.ff2) Location 5 + Decorate 84(s.ff3) Flat + Decorate 84(s.ff3) Location 6 + Decorate 87(s.ff4) Location 7 + Decorate 91(@entryPointOutput) Location 0 + MemberDecorate 98(myS) 0 Offset 0 + MemberDecorate 98(myS) 1 Offset 4 + MemberDecorate 98(myS) 2 Offset 16 + MemberDecorate 98(myS) 3 Offset 32 + MemberDecorate 99($Global) 0 Offset 0 + MemberDecorate 99($Global) 1 Offset 1620 + MemberDecorate 99($Global) 2 Offset 1636 + Decorate 99($Global) Block + Decorate 101 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeBool + 10: TypeVector 6(float) 2 + 11(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 9(bool) 7(fvec4) + 12: TypePointer Function 11(IN_S) + 13: TypeFunction 7(fvec4) 8(ptr) 12(ptr) + 18: TypeVector 9(bool) 3 + 19(FS): TypeStruct 18(bvec3) + 20: TypePointer Function 19(FS) + 28: TypeStruct 7(fvec4) + 29: TypePointer Private 28(struct) + 30(s2): 29(ptr) Variable Private + 31: TypeInt 32 1 + 32: 31(int) Constant 0 + 33: 31(int) Constant 7 + 36: TypePointer Private 7(fvec4) + 38(empty): TypeStruct + 39: TypePointer Function 38(empty) +41(containEmpty): TypeStruct 38(empty) + 42: TypePointer Function 41(containEmpty) + 50: TypePointer Input 7(fvec4) + 51(input): 50(ptr) Variable Input + 54(s.a): 50(ptr) Variable Input + 57: 31(int) Constant 1 + 58: TypePointer Input 9(bool) + 59(s.b): 58(ptr) Variable Input + 61: TypePointer Function 9(bool) + 63: 31(int) Constant 2 + 64: TypePointer Input 6(float) + 65(s.c): 64(ptr) Variable Input + 67: TypePointer Function 6(float) + 69: 31(int) Constant 3 + 70: TypePointer Input 10(fvec2) + 71(s.d): 70(ptr) Variable Input + 73: TypePointer Function 10(fvec2) + 75: 31(int) Constant 4 + 76(s.ff1): 58(ptr) Variable Input + 79: 31(int) Constant 5 + 80(s.ff2): 58(ptr) Variable Input + 83: 31(int) Constant 6 + 84(s.ff3): 58(ptr) Variable Input + 87(s.ff4): 50(ptr) Variable Input + 90: TypePointer Output 7(fvec4) +91(@entryPointOutput): 90(ptr) Variable Output + 97: TypeInt 32 0 + 98(myS): TypeStruct 97(int) 97(int) 7(fvec4) 7(fvec4) + 99($Global): TypeStruct 98(myS) 6(float) 6(float) + 100: TypePointer Uniform 99($Global) + 101: 100(ptr) Variable Uniform +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 49(input): 8(ptr) Variable Function + 53(s): 12(ptr) Variable Function + 92(param): 8(ptr) Variable Function + 94(param): 12(ptr) Variable Function + 52: 7(fvec4) Load 51(input) + Store 49(input) 52 + 55: 7(fvec4) Load 54(s.a) + 56: 8(ptr) AccessChain 53(s) 32 + Store 56 55 + 60: 9(bool) Load 59(s.b) + 62: 61(ptr) AccessChain 53(s) 57 + Store 62 60 + 66: 6(float) Load 65(s.c) + 68: 67(ptr) AccessChain 53(s) 63 + Store 68 66 + 72: 10(fvec2) Load 71(s.d) + 74: 73(ptr) AccessChain 53(s) 69 + Store 74 72 + 77: 9(bool) Load 76(s.ff1) + 78: 61(ptr) AccessChain 53(s) 75 + Store 78 77 + 81: 9(bool) Load 80(s.ff2) + 82: 61(ptr) AccessChain 53(s) 79 + Store 82 81 + 85: 9(bool) Load 84(s.ff3) + 86: 61(ptr) AccessChain 53(s) 83 + Store 86 85 + 88: 7(fvec4) Load 87(s.ff4) + 89: 8(ptr) AccessChain 53(s) 33 + Store 89 88 + 93: 7(fvec4) Load 49(input) + Store 92(param) 93 + 95: 11(IN_S) Load 53(s) + Store 94(param) 95 + 96: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 92(param) 94(param) + Store 91(@entryPointOutput) 96 + Return + FunctionEnd +16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13 + 14(input): 8(ptr) FunctionParameter + 15(s): 12(ptr) FunctionParameter + 17: Label + 21(s3): 20(ptr) Variable Function + 40(e): 39(ptr) Variable Function + 43(ce): 42(ptr) Variable Function + 22: 19(FS) Load 21(s3) + 23: 19(FS) Load 21(s3) + 24: 18(bvec3) CompositeExtract 22 0 + 25: 18(bvec3) CompositeExtract 23 0 + 26: 18(bvec3) LogicalEqual 24 25 + 27: 9(bool) All 26 + 34: 8(ptr) AccessChain 15(s) 33 + 35: 7(fvec4) Load 34 + 37: 36(ptr) AccessChain 30(s2) 32 + Store 37 35 + 44: 39(ptr) AccessChain 43(ce) 32 + 45: 38(empty) Load 44 + Store 40(e) 45 + 46: 7(fvec4) Load 14(input) + ReturnValue 46 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split-1.vert.out new file mode 100644 index 0000000000..d7d6e92b12 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split-1.vert.out @@ -0,0 +1,321 @@ +hlsl.struct.split-1.vert +Shader version: 500 +0:? Sequence +0:17 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Function Parameters: +0:17 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 'Pos_loose' ( in 4-component vector of float) +0:? Sequence +0:20 move second child to first child ( temp int) +0:20 x0_out: direct index for structure ( temp int) +0:20 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:20 Constant: +0:20 0 (const int) +0:20 x0_in: direct index for structure ( temp int) +0:20 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:20 Constant: +0:20 0 (const int) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 Pos_out: direct index for structure ( temp 4-component vector of float) +0:21 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:21 Constant: +0:21 1 (const int) +0:21 add ( temp 4-component vector of float) +0:21 Pos_in: direct index for structure ( temp 4-component vector of float) +0:21 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:21 Constant: +0:21 1 (const int) +0:21 'Pos_loose' ( in 4-component vector of float) +0:22 move second child to first child ( temp int) +0:22 x1_out: direct index for structure ( temp int) +0:22 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 2 (const int) +0:22 x1_in: direct index for structure ( temp int) +0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 2 (const int) +0:24 Branch: Return with expression +0:24 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 x0_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 Constant: +0:17 0 (const int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:17 move second child to first child ( temp 4-component vector of float) +0:17 Pos_in: direct index for structure ( temp 4-component vector of float) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 Constant: +0:17 1 (const int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:17 move second child to first child ( temp int) +0:17 x1_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 Constant: +0:17 2 (const int) +0:? 'vsin.x1_in' (layout( location=2) in int) +0:17 move second child to first child ( temp 4-component vector of float) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) +0:17 Sequence +0:17 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Function Call: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:17 move second child to first child ( temp int) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:17 x0_out: direct index for structure ( temp int) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:17 Pos_out: direct index for structure ( temp 4-component vector of float) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child ( temp int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:17 x1_out: direct index for structure ( temp int) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Constant: +0:17 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:? 'vsin.x1_in' (layout( location=2) in int) +0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:17 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Function Parameters: +0:17 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 'Pos_loose' ( in 4-component vector of float) +0:? Sequence +0:20 move second child to first child ( temp int) +0:20 x0_out: direct index for structure ( temp int) +0:20 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:20 Constant: +0:20 0 (const int) +0:20 x0_in: direct index for structure ( temp int) +0:20 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:20 Constant: +0:20 0 (const int) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 Pos_out: direct index for structure ( temp 4-component vector of float) +0:21 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:21 Constant: +0:21 1 (const int) +0:21 add ( temp 4-component vector of float) +0:21 Pos_in: direct index for structure ( temp 4-component vector of float) +0:21 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:21 Constant: +0:21 1 (const int) +0:21 'Pos_loose' ( in 4-component vector of float) +0:22 move second child to first child ( temp int) +0:22 x1_out: direct index for structure ( temp int) +0:22 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 2 (const int) +0:22 x1_in: direct index for structure ( temp int) +0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 2 (const int) +0:24 Branch: Return with expression +0:24 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Function Definition: main( ( temp void) +0:17 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 x0_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 Constant: +0:17 0 (const int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:17 move second child to first child ( temp 4-component vector of float) +0:17 Pos_in: direct index for structure ( temp 4-component vector of float) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 Constant: +0:17 1 (const int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:17 move second child to first child ( temp int) +0:17 x1_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 Constant: +0:17 2 (const int) +0:? 'vsin.x1_in' (layout( location=2) in int) +0:17 move second child to first child ( temp 4-component vector of float) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) +0:17 Sequence +0:17 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Function Call: @main(struct-VS_INPUT-i1-vf4-i11;vf4; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:17 move second child to first child ( temp int) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:17 x0_out: direct index for structure ( temp int) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:17 Pos_out: direct index for structure ( temp 4-component vector of float) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child ( temp int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:17 x1_out: direct index for structure ( temp int) +0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:17 Constant: +0:17 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:? 'vsin.x1_in' (layout( location=2) in int) +0:? 'Pos_loose' (layout( location=3) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 40 44 47 51 60 64 67 + Source HLSL 500 + Name 4 "main" + Name 9 "VS_INPUT" + MemberName 9(VS_INPUT) 0 "x0_in" + MemberName 9(VS_INPUT) 1 "Pos_in" + MemberName 9(VS_INPUT) 2 "x1_in" + Name 12 "VS_OUTPUT" + MemberName 12(VS_OUTPUT) 0 "x0_out" + MemberName 12(VS_OUTPUT) 1 "Pos_out" + MemberName 12(VS_OUTPUT) 2 "x1_out" + Name 16 "@main(struct-VS_INPUT-i1-vf4-i11;vf4;" + Name 14 "vsin" + Name 15 "Pos_loose" + Name 19 "vsout" + Name 38 "vsin" + Name 40 "vsin.x0_in" + Name 44 "vsin.Pos_in" + Name 47 "vsin.x1_in" + Name 50 "Pos_loose" + Name 51 "Pos_loose" + Name 53 "flattenTemp" + Name 54 "param" + Name 56 "param" + Name 60 "@entryPointOutput.x0_out" + Name 64 "@entryPointOutput.Pos_out" + Name 67 "@entryPointOutput.x1_out" + Decorate 40(vsin.x0_in) Location 0 + Decorate 44(vsin.Pos_in) Location 1 + Decorate 47(vsin.x1_in) Location 2 + Decorate 51(Pos_loose) Location 3 + Decorate 60(@entryPointOutput.x0_out) Location 0 + Decorate 64(@entryPointOutput.Pos_out) BuiltIn Position + Decorate 67(@entryPointOutput.x1_out) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8: TypeVector 7(float) 4 + 9(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int) + 10: TypePointer Function 9(VS_INPUT) + 11: TypePointer Function 8(fvec4) + 12(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int) + 13: TypeFunction 12(VS_OUTPUT) 10(ptr) 11(ptr) + 18: TypePointer Function 12(VS_OUTPUT) + 20: 6(int) Constant 0 + 21: TypePointer Function 6(int) + 25: 6(int) Constant 1 + 31: 6(int) Constant 2 + 39: TypePointer Input 6(int) + 40(vsin.x0_in): 39(ptr) Variable Input + 43: TypePointer Input 8(fvec4) + 44(vsin.Pos_in): 43(ptr) Variable Input + 47(vsin.x1_in): 39(ptr) Variable Input + 51(Pos_loose): 43(ptr) Variable Input + 59: TypePointer Output 6(int) +60(@entryPointOutput.x0_out): 59(ptr) Variable Output + 63: TypePointer Output 8(fvec4) +64(@entryPointOutput.Pos_out): 63(ptr) Variable Output +67(@entryPointOutput.x1_out): 59(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 38(vsin): 10(ptr) Variable Function + 50(Pos_loose): 11(ptr) Variable Function + 53(flattenTemp): 18(ptr) Variable Function + 54(param): 10(ptr) Variable Function + 56(param): 11(ptr) Variable Function + 41: 6(int) Load 40(vsin.x0_in) + 42: 21(ptr) AccessChain 38(vsin) 20 + Store 42 41 + 45: 8(fvec4) Load 44(vsin.Pos_in) + 46: 11(ptr) AccessChain 38(vsin) 25 + Store 46 45 + 48: 6(int) Load 47(vsin.x1_in) + 49: 21(ptr) AccessChain 38(vsin) 31 + Store 49 48 + 52: 8(fvec4) Load 51(Pos_loose) + Store 50(Pos_loose) 52 + 55: 9(VS_INPUT) Load 38(vsin) + Store 54(param) 55 + 57: 8(fvec4) Load 50(Pos_loose) + Store 56(param) 57 + 58:12(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;) 54(param) 56(param) + Store 53(flattenTemp) 58 + 61: 21(ptr) AccessChain 53(flattenTemp) 20 + 62: 6(int) Load 61 + Store 60(@entryPointOutput.x0_out) 62 + 65: 11(ptr) AccessChain 53(flattenTemp) 25 + 66: 8(fvec4) Load 65 + Store 64(@entryPointOutput.Pos_out) 66 + 68: 21(ptr) AccessChain 53(flattenTemp) 31 + 69: 6(int) Load 68 + Store 67(@entryPointOutput.x1_out) 69 + Return + FunctionEnd +16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;):12(VS_OUTPUT) Function None 13 + 14(vsin): 10(ptr) FunctionParameter + 15(Pos_loose): 11(ptr) FunctionParameter + 17: Label + 19(vsout): 18(ptr) Variable Function + 22: 21(ptr) AccessChain 14(vsin) 20 + 23: 6(int) Load 22 + 24: 21(ptr) AccessChain 19(vsout) 20 + Store 24 23 + 26: 11(ptr) AccessChain 14(vsin) 25 + 27: 8(fvec4) Load 26 + 28: 8(fvec4) Load 15(Pos_loose) + 29: 8(fvec4) FAdd 27 28 + 30: 11(ptr) AccessChain 19(vsout) 25 + Store 30 29 + 32: 21(ptr) AccessChain 14(vsin) 31 + 33: 6(int) Load 32 + 34: 21(ptr) AccessChain 19(vsout) 31 + Store 34 33 + 35:12(VS_OUTPUT) Load 19(vsout) + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.array.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.array.geom.out new file mode 100644 index 0000000000..081b05cbb6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.array.geom.out @@ -0,0 +1,306 @@ +hlsl.struct.split.array.geom +Shader version: 500 +invocations = -1 +max_vertices = 4 +input primitive = points +output primitive = triangle_strip +0:? Sequence +0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) +0:13 Function Parameters: +0:13 'v' ( in 1-element array of uint) +0:13 'OutputStream' ( out structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:16 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0 (const uint) +0:18 Sequence +0:18 move second child to first child ( temp int) +0:18 'x' ( temp int) +0:18 Constant: +0:18 0 (const int) +0:18 Loop with condition tested first +0:18 Loop Condition +0:18 Compare Less Than ( temp bool) +0:18 'x' ( temp int) +0:18 Constant: +0:18 2 (const int) +0:18 Loop Body +0:19 Sequence +0:19 move second child to first child ( temp int) +0:19 'y' ( temp int) +0:19 Constant: +0:19 0 (const int) +0:19 Loop with condition tested first +0:19 Loop Condition +0:19 Compare Less Than ( temp bool) +0:19 'y' ( temp int) +0:19 Constant: +0:19 2 (const int) +0:19 Loop Body +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 indirect index ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 'x' ( temp int) +0:20 'y' ( temp int) +0:20 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:19 Loop Terminal Expression +0:19 Pre-Increment ( temp int) +0:19 'y' ( temp int) +0:18 Loop Terminal Expression +0:18 Pre-Increment ( temp int) +0:18 'x' ( temp int) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 1-element array of uint) +0:? 'v' ( temp 1-element array of uint) +0:? 'v' (layout( location=0) in 1-element array of uint) +0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) +0:? 'v' ( temp 1-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:? Linker Objects +0:? 'v' (layout( location=0) in 1-element array of uint) +0:? 'OutputStream.Pos' ( out 4-component vector of float Position) +0:? 'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float) +0:? 'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float) +0:? 'OutputStream.VertexID' (layout( location=2) out uint) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 4 +input primitive = points +output primitive = triangle_strip +0:? Sequence +0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) +0:13 Function Parameters: +0:13 'v' ( in 1-element array of uint) +0:13 'OutputStream' ( out structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:16 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0 (const uint) +0:18 Sequence +0:18 move second child to first child ( temp int) +0:18 'x' ( temp int) +0:18 Constant: +0:18 0 (const int) +0:18 Loop with condition tested first +0:18 Loop Condition +0:18 Compare Less Than ( temp bool) +0:18 'x' ( temp int) +0:18 Constant: +0:18 2 (const int) +0:18 Loop Body +0:19 Sequence +0:19 move second child to first child ( temp int) +0:19 'y' ( temp int) +0:19 Constant: +0:19 0 (const int) +0:19 Loop with condition tested first +0:19 Loop Condition +0:19 Compare Less Than ( temp bool) +0:19 'y' ( temp int) +0:19 Constant: +0:19 2 (const int) +0:19 Loop Body +0:20 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 indirect index ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:20 'x' ( temp int) +0:20 'y' ( temp int) +0:20 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:19 Loop Terminal Expression +0:19 Pre-Increment ( temp int) +0:19 'y' ( temp int) +0:18 Loop Terminal Expression +0:18 Pre-Increment ( temp int) +0:18 'x' ( temp int) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 1-element array of uint) +0:? 'v' ( temp 1-element array of uint) +0:? 'v' (layout( location=0) in 1-element array of uint) +0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void) +0:? 'v' ( temp 1-element array of uint) +0:? 'OutputStream' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) +0:? Linker Objects +0:? 'v' (layout( location=0) in 1-element array of uint) +0:? 'OutputStream.Pos' ( out 4-component vector of float Position) +0:? 'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float) +0:? 'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float) +0:? 'OutputStream.VertexID' (layout( location=2) out uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 82 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 66 75 77 79 81 + ExecutionMode 4 InputPoints + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 4 + Source HLSL 500 + Name 4 "main" + Name 14 "PSInput" + MemberName 14(PSInput) 0 "Pos" + MemberName 14(PSInput) 1 "TexCoord" + MemberName 14(PSInput) 2 "TerrainPos" + MemberName 14(PSInput) 3 "VertexID" + Name 19 "@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;" + Name 17 "v" + Name 18 "OutputStream" + Name 21 "Out" + Name 30 "x" + Name 41 "y" + Name 54 "Verts" + Name 64 "v" + Name 66 "v" + Name 68 "OutputStream" + Name 69 "param" + Name 71 "param" + Name 75 "OutputStream.Pos" + Name 77 "OutputStream.TexCoord" + Name 79 "OutputStream.TerrainPos" + Name 81 "OutputStream.VertexID" + Decorate 66(v) Location 0 + Decorate 75(OutputStream.Pos) BuiltIn Position + Decorate 77(OutputStream.TexCoord) Location 0 + Decorate 79(OutputStream.TerrainPos) Location 1 + Decorate 81(OutputStream.VertexID) Location 2 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 1 + 8: TypeArray 6(int) 7 + 9: TypePointer Function 8 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypeVector 10(float) 2 + 13: TypeVector 10(float) 3 + 14(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int) + 15: TypePointer Function 14(PSInput) + 16: TypeFunction 2 9(ptr) 15(ptr) + 22: 10(float) Constant 0 + 23: 11(fvec4) ConstantComposite 22 22 22 22 + 24: 12(fvec2) ConstantComposite 22 22 + 25: 13(fvec3) ConstantComposite 22 22 22 + 26: 6(int) Constant 0 + 27: 14(PSInput) ConstantComposite 23 24 25 26 + 28: TypeInt 32 1 + 29: TypePointer Function 28(int) + 31: 28(int) Constant 0 + 38: 28(int) Constant 2 + 39: TypeBool + 49: 6(int) Constant 3 + 50: TypeArray 14(PSInput) 49 + 51: 6(int) Constant 2 + 52: TypeArray 50 51 + 53: TypePointer Function 52 + 60: 28(int) Constant 1 + 65: TypePointer Input 8 + 66(v): 65(ptr) Variable Input + 74: TypePointer Output 11(fvec4) +75(OutputStream.Pos): 74(ptr) Variable Output + 76: TypePointer Output 12(fvec2) +77(OutputStream.TexCoord): 76(ptr) Variable Output + 78: TypePointer Output 13(fvec3) +79(OutputStream.TerrainPos): 78(ptr) Variable Output + 80: TypePointer Output 6(int) +81(OutputStream.VertexID): 80(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 64(v): 9(ptr) Variable Function +68(OutputStream): 15(ptr) Variable Function + 69(param): 9(ptr) Variable Function + 71(param): 15(ptr) Variable Function + 67: 8 Load 66(v) + Store 64(v) 67 + 70: 8 Load 64(v) + Store 69(param) 70 + 72: 2 FunctionCall 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;) 69(param) 71(param) + 73: 14(PSInput) Load 71(param) + Store 68(OutputStream) 73 + Return + FunctionEnd +19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;): 2 Function None 16 + 17(v): 9(ptr) FunctionParameter +18(OutputStream): 15(ptr) FunctionParameter + 20: Label + 21(Out): 15(ptr) Variable Function + 30(x): 29(ptr) Variable Function + 41(y): 29(ptr) Variable Function + 54(Verts): 53(ptr) Variable Function + Store 21(Out) 27 + Store 30(x) 31 + Branch 32 + 32: Label + LoopMerge 34 35 None + Branch 36 + 36: Label + 37: 28(int) Load 30(x) + 40: 39(bool) SLessThan 37 38 + BranchConditional 40 33 34 + 33: Label + Store 41(y) 31 + Branch 42 + 42: Label + LoopMerge 44 45 None + Branch 46 + 46: Label + 47: 28(int) Load 41(y) + 48: 39(bool) SLessThan 47 38 + BranchConditional 48 43 44 + 43: Label + 55: 28(int) Load 30(x) + 56: 28(int) Load 41(y) + 57: 14(PSInput) Load 21(Out) + 58: 15(ptr) AccessChain 54(Verts) 55 56 + Store 58 57 + Branch 45 + 45: Label + 59: 28(int) Load 41(y) + 61: 28(int) IAdd 59 60 + Store 41(y) 61 + Branch 42 + 44: Label + Branch 35 + 35: Label + 62: 28(int) Load 30(x) + 63: 28(int) IAdd 62 60 + Store 30(x) 63 + Branch 32 + 34: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out new file mode 100644 index 0000000000..3454eb6d51 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out @@ -0,0 +1,321 @@ +hlsl.struct.split.assign.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'i' ( in int) +0:7 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:? Sequence +0:9 move second child to first child ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:9 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:9 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:11 Branch: Return with expression +0:11 pos: direct index for structure ( temp 4-component vector of float) +0:11 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:11 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp int) +0:? 'i' ( temp int) +0:? 'i' (layout( location=0) flat in int) +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 f: direct index for structure ( temp float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 0 (const int) +0:? 'input[0].f' (layout( location=1) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:7 pos: direct index for structure ( temp 4-component vector of float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in 4-component vector of float FragCoord) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 f: direct index for structure ( temp float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:? 'input[1].f' (layout( location=2) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:7 pos: direct index for structure ( temp 4-component vector of float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in 4-component vector of float FragCoord) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 f: direct index for structure ( temp float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 2 (const int) +0:7 Constant: +0:7 0 (const int) +0:? 'input[2].f' (layout( location=3) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:7 pos: direct index for structure ( temp 4-component vector of float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 2 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in 4-component vector of float FragCoord) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) +0:? 'i' ( temp int) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'i' (layout( location=0) flat in int) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:? 'input[0].f' (layout( location=1) in float) +0:? 'input[1].f' (layout( location=2) in float) +0:? 'input[2].f' (layout( location=3) in float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'i' ( in int) +0:7 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:? Sequence +0:9 move second child to first child ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:9 'input' ( in 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:9 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:11 Branch: Return with expression +0:11 pos: direct index for structure ( temp 4-component vector of float) +0:11 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:11 'a' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 1 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp int) +0:? 'i' ( temp int) +0:? 'i' (layout( location=0) flat in int) +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 f: direct index for structure ( temp float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 0 (const int) +0:? 'input[0].f' (layout( location=1) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:7 pos: direct index for structure ( temp 4-component vector of float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 0 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in 4-component vector of float FragCoord) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:7 Constant: +0:7 0 (const int) +0:7 move second child to first child ( temp float) +0:7 f: direct index for structure ( temp float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const int) +0:? 'input[1].f' (layout( location=2) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:7 pos: direct index for structure ( temp 4-component vector of float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in 4-component vector of float FragCoord) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp float) +0:7 f: direct index for structure ( temp float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 2 (const int) +0:7 Constant: +0:7 0 (const int) +0:? 'input[2].f' (layout( location=3) in float) +0:7 move second child to first child ( temp 4-component vector of float) +0:7 pos: direct index for structure ( temp 4-component vector of float) +0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:7 Constant: +0:7 2 (const int) +0:7 Constant: +0:7 1 (const int) +0:7 direct index ( in 4-component vector of float FragCoord) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:7 Constant: +0:7 2 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float) +0:? 'i' ( temp int) +0:? 'input' ( temp 3-element array of structure{ temp float f, temp 4-component vector of float pos}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'i' (layout( location=0) flat in int) +0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) +0:? 'input[0].f' (layout( location=1) in float) +0:? 'input[1].f' (layout( location=2) in float) +0:? 'input[2].f' (layout( location=3) in float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 66 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 30 35 41 46 53 60 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "S" + MemberName 10(S) 0 "f" + MemberName 10(S) 1 "pos" + Name 18 "@main(i1;struct-S-f1-vf41[3];" + Name 16 "i" + Name 17 "input" + Name 20 "a" + Name 28 "i" + Name 30 "i" + Name 32 "input" + Name 35 "input[0].f" + Name 41 "input.pos" + Name 46 "input[1].f" + Name 53 "input[2].f" + Name 60 "@entryPointOutput" + Name 61 "param" + Name 63 "param" + Decorate 30(i) Flat + Decorate 30(i) Location 0 + Decorate 35(input[0].f) Location 1 + Decorate 41(input.pos) BuiltIn FragCoord + Decorate 46(input[1].f) Location 2 + Decorate 53(input[2].f) Location 3 + Decorate 60(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(S): TypeStruct 8(float) 9(fvec4) + 11: TypeInt 32 0 + 12: 11(int) Constant 3 + 13: TypeArray 10(S) 12 + 14: TypePointer Function 13 + 15: TypeFunction 9(fvec4) 7(ptr) 14(ptr) + 22: 6(int) Constant 1 + 23: TypePointer Function 9(fvec4) + 29: TypePointer Input 6(int) + 30(i): 29(ptr) Variable Input + 33: 6(int) Constant 0 + 34: TypePointer Input 8(float) + 35(input[0].f): 34(ptr) Variable Input + 37: TypePointer Function 8(float) + 39: TypeArray 9(fvec4) 12 + 40: TypePointer Input 39 + 41(input.pos): 40(ptr) Variable Input + 42: TypePointer Input 9(fvec4) + 46(input[1].f): 34(ptr) Variable Input + 52: 6(int) Constant 2 + 53(input[2].f): 34(ptr) Variable Input + 59: TypePointer Output 9(fvec4) +60(@entryPointOutput): 59(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 28(i): 7(ptr) Variable Function + 32(input): 14(ptr) Variable Function + 61(param): 7(ptr) Variable Function + 63(param): 14(ptr) Variable Function + 31: 6(int) Load 30(i) + Store 28(i) 31 + 36: 8(float) Load 35(input[0].f) + 38: 37(ptr) AccessChain 32(input) 33 33 + Store 38 36 + 43: 42(ptr) AccessChain 41(input.pos) 33 + 44: 9(fvec4) Load 43 + 45: 23(ptr) AccessChain 32(input) 33 22 + Store 45 44 + 47: 8(float) Load 46(input[1].f) + 48: 37(ptr) AccessChain 32(input) 22 33 + Store 48 47 + 49: 42(ptr) AccessChain 41(input.pos) 22 + 50: 9(fvec4) Load 49 + 51: 23(ptr) AccessChain 32(input) 22 22 + Store 51 50 + 54: 8(float) Load 53(input[2].f) + 55: 37(ptr) AccessChain 32(input) 52 33 + Store 55 54 + 56: 42(ptr) AccessChain 41(input.pos) 52 + 57: 9(fvec4) Load 56 + 58: 23(ptr) AccessChain 32(input) 52 22 + Store 58 57 + 62: 6(int) Load 28(i) + Store 61(param) 62 + 64: 13 Load 32(input) + Store 63(param) 64 + 65: 9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 61(param) 63(param) + Store 60(@entryPointOutput) 65 + Return + FunctionEnd +18(@main(i1;struct-S-f1-vf41[3];): 9(fvec4) Function None 15 + 16(i): 7(ptr) FunctionParameter + 17(input): 14(ptr) FunctionParameter + 19: Label + 20(a): 14(ptr) Variable Function + 21: 13 Load 20(a) + Store 17(input) 21 + 24: 23(ptr) AccessChain 20(a) 22 22 + 25: 9(fvec4) Load 24 + ReturnValue 25 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.call.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.call.vert.out new file mode 100644 index 0000000000..50d1d2b13f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.call.vert.out @@ -0,0 +1,348 @@ +hlsl.struct.split.call.vert +Shader version: 500 +0:? Sequence +0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) +0:17 Function Parameters: +0:17 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:? Sequence +0:18 add ( temp 4-component vector of float) +0:18 Pos_in: direct index for structure ( temp 4-component vector of float) +0:18 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:18 Constant: +0:18 1 (const int) +0:18 Pos_out: direct index for structure ( temp 4-component vector of float) +0:18 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:18 Constant: +0:18 1 (const int) +0:22 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Function Parameters: +0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:? Sequence +0:25 move second child to first child ( temp int) +0:25 x0_out: direct index for structure ( temp int) +0:25 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:25 Constant: +0:25 0 (const int) +0:25 x0_in: direct index for structure ( temp int) +0:25 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:25 Constant: +0:25 0 (const int) +0:26 move second child to first child ( temp 4-component vector of float) +0:26 Pos_out: direct index for structure ( temp 4-component vector of float) +0:26 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:26 Constant: +0:26 1 (const int) +0:26 Pos_in: direct index for structure ( temp 4-component vector of float) +0:26 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:26 Constant: +0:26 1 (const int) +0:27 move second child to first child ( temp int) +0:27 x1_out: direct index for structure ( temp int) +0:27 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:27 Constant: +0:27 2 (const int) +0:27 x1_in: direct index for structure ( temp int) +0:27 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:27 Constant: +0:27 2 (const int) +0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) +0:29 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:29 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:31 Branch: Return with expression +0:31 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 x0_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 0 (const int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Pos_in: direct index for structure ( temp 4-component vector of float) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 1 (const int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:22 move second child to first child ( temp int) +0:22 x1_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 2 (const int) +0:? 'vsin.x1_in' (layout( location=2) in int) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 move second child to first child ( temp int) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:22 x0_out: direct index for structure ( temp int) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:22 Pos_out: direct index for structure ( temp 4-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 1 (const int) +0:22 move second child to first child ( temp int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:22 x1_out: direct index for structure ( temp int) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:? 'vsin.x1_in' (layout( location=2) in int) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) +0:17 Function Parameters: +0:17 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:17 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:? Sequence +0:18 add ( temp 4-component vector of float) +0:18 Pos_in: direct index for structure ( temp 4-component vector of float) +0:18 'fn1_in' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:18 Constant: +0:18 1 (const int) +0:18 Pos_out: direct index for structure ( temp 4-component vector of float) +0:18 'fn1_out' ( in structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:18 Constant: +0:18 1 (const int) +0:22 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Function Parameters: +0:22 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:? Sequence +0:25 move second child to first child ( temp int) +0:25 x0_out: direct index for structure ( temp int) +0:25 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:25 Constant: +0:25 0 (const int) +0:25 x0_in: direct index for structure ( temp int) +0:25 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:25 Constant: +0:25 0 (const int) +0:26 move second child to first child ( temp 4-component vector of float) +0:26 Pos_out: direct index for structure ( temp 4-component vector of float) +0:26 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:26 Constant: +0:26 1 (const int) +0:26 Pos_in: direct index for structure ( temp 4-component vector of float) +0:26 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:26 Constant: +0:26 1 (const int) +0:27 move second child to first child ( temp int) +0:27 x1_out: direct index for structure ( temp int) +0:27 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:27 Constant: +0:27 2 (const int) +0:27 x1_in: direct index for structure ( temp int) +0:27 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:27 Constant: +0:27 2 (const int) +0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; ( temp void) +0:29 'vsin' ( in structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:29 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:31 Branch: Return with expression +0:31 'vsout' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 x0_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 0 (const int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:22 move second child to first child ( temp 4-component vector of float) +0:22 Pos_in: direct index for structure ( temp 4-component vector of float) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 1 (const int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:22 move second child to first child ( temp int) +0:22 x1_in: direct index for structure ( temp int) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 Constant: +0:22 2 (const int) +0:? 'vsin.x1_in' (layout( location=2) in int) +0:22 Sequence +0:22 move second child to first child ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) +0:22 move second child to first child ( temp int) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:22 x0_out: direct index for structure ( temp int) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:22 Pos_out: direct index for structure ( temp 4-component vector of float) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 1 (const int) +0:22 move second child to first child ( temp int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:22 x1_out: direct index for structure ( temp int) +0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) +0:22 Constant: +0:22 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) +0:? '@entryPointOutput.x0_out' (layout( location=0) out int) +0:? '@entryPointOutput.x1_out' (layout( location=1) out int) +0:? 'vsin.x0_in' (layout( location=0) in int) +0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) +0:? 'vsin.x1_in' (layout( location=2) in int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 77 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 52 56 59 67 71 74 + Source HLSL 500 + Name 4 "main" + Name 9 "VS_INPUT" + MemberName 9(VS_INPUT) 0 "x0_in" + MemberName 9(VS_INPUT) 1 "Pos_in" + MemberName 9(VS_INPUT) 2 "x1_in" + Name 11 "VS_OUTPUT" + MemberName 11(VS_OUTPUT) 0 "x0_out" + MemberName 11(VS_OUTPUT) 1 "Pos_out" + MemberName 11(VS_OUTPUT) 2 "x1_out" + Name 16 "Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;" + Name 14 "fn1_in" + Name 15 "fn1_out" + Name 20 "@main(struct-VS_INPUT-i1-vf4-i11;" + Name 19 "vsin" + Name 29 "vsout" + Name 42 "param" + Name 44 "param" + Name 50 "vsin" + Name 52 "vsin.x0_in" + Name 56 "vsin.Pos_in" + Name 59 "vsin.x1_in" + Name 62 "flattenTemp" + Name 63 "param" + Name 67 "@entryPointOutput.x0_out" + Name 71 "@entryPointOutput.Pos_out" + Name 74 "@entryPointOutput.x1_out" + Decorate 52(vsin.x0_in) Location 0 + Decorate 56(vsin.Pos_in) Location 1 + Decorate 59(vsin.x1_in) Location 2 + Decorate 67(@entryPointOutput.x0_out) Location 0 + Decorate 71(@entryPointOutput.Pos_out) BuiltIn Position + Decorate 74(@entryPointOutput.x1_out) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8: TypeVector 7(float) 4 + 9(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int) + 10: TypePointer Function 9(VS_INPUT) + 11(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int) + 12: TypePointer Function 11(VS_OUTPUT) + 13: TypeFunction 2 10(ptr) 12(ptr) + 18: TypeFunction 11(VS_OUTPUT) 10(ptr) + 22: 6(int) Constant 1 + 23: TypePointer Function 8(fvec4) + 30: 6(int) Constant 0 + 31: TypePointer Function 6(int) + 38: 6(int) Constant 2 + 51: TypePointer Input 6(int) + 52(vsin.x0_in): 51(ptr) Variable Input + 55: TypePointer Input 8(fvec4) + 56(vsin.Pos_in): 55(ptr) Variable Input + 59(vsin.x1_in): 51(ptr) Variable Input + 66: TypePointer Output 6(int) +67(@entryPointOutput.x0_out): 66(ptr) Variable Output + 70: TypePointer Output 8(fvec4) +71(@entryPointOutput.Pos_out): 70(ptr) Variable Output +74(@entryPointOutput.x1_out): 66(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 50(vsin): 10(ptr) Variable Function + 62(flattenTemp): 12(ptr) Variable Function + 63(param): 10(ptr) Variable Function + 53: 6(int) Load 52(vsin.x0_in) + 54: 31(ptr) AccessChain 50(vsin) 30 + Store 54 53 + 57: 8(fvec4) Load 56(vsin.Pos_in) + 58: 23(ptr) AccessChain 50(vsin) 22 + Store 58 57 + 60: 6(int) Load 59(vsin.x1_in) + 61: 31(ptr) AccessChain 50(vsin) 38 + Store 61 60 + 64: 9(VS_INPUT) Load 50(vsin) + Store 63(param) 64 + 65:11(VS_OUTPUT) FunctionCall 20(@main(struct-VS_INPUT-i1-vf4-i11;) 63(param) + Store 62(flattenTemp) 65 + 68: 31(ptr) AccessChain 62(flattenTemp) 30 + 69: 6(int) Load 68 + Store 67(@entryPointOutput.x0_out) 69 + 72: 23(ptr) AccessChain 62(flattenTemp) 22 + 73: 8(fvec4) Load 72 + Store 71(@entryPointOutput.Pos_out) 73 + 75: 31(ptr) AccessChain 62(flattenTemp) 38 + 76: 6(int) Load 75 + Store 74(@entryPointOutput.x1_out) 76 + Return + FunctionEnd +16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;): 2 Function None 13 + 14(fn1_in): 10(ptr) FunctionParameter + 15(fn1_out): 12(ptr) FunctionParameter + 17: Label + 24: 23(ptr) AccessChain 14(fn1_in) 22 + 25: 8(fvec4) Load 24 + 26: 23(ptr) AccessChain 15(fn1_out) 22 + 27: 8(fvec4) Load 26 + 28: 8(fvec4) FAdd 25 27 + Return + FunctionEnd +20(@main(struct-VS_INPUT-i1-vf4-i11;):11(VS_OUTPUT) Function None 18 + 19(vsin): 10(ptr) FunctionParameter + 21: Label + 29(vsout): 12(ptr) Variable Function + 42(param): 10(ptr) Variable Function + 44(param): 12(ptr) Variable Function + 32: 31(ptr) AccessChain 19(vsin) 30 + 33: 6(int) Load 32 + 34: 31(ptr) AccessChain 29(vsout) 30 + Store 34 33 + 35: 23(ptr) AccessChain 19(vsin) 22 + 36: 8(fvec4) Load 35 + 37: 23(ptr) AccessChain 29(vsout) 22 + Store 37 36 + 39: 31(ptr) AccessChain 19(vsin) 38 + 40: 6(int) Load 39 + 41: 31(ptr) AccessChain 29(vsout) 38 + Store 41 40 + 43: 9(VS_INPUT) Load 19(vsin) + Store 42(param) 43 + 45:11(VS_OUTPUT) Load 29(vsout) + Store 44(param) 45 + 46: 2 FunctionCall 16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;) 42(param) 44(param) + 47:11(VS_OUTPUT) Load 29(vsout) + ReturnValue 47 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out new file mode 100644 index 0000000000..7a72a3f880 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out @@ -0,0 +1,617 @@ +hlsl.struct.split.nested.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) +0:24 Function Parameters: +0:24 'tin' ( in 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 'ts' ( out structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 pos: direct index for structure ( temp 4-component vector of float) +0:27 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:27 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0 (const int) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:28 move second child to first child ( temp 2-component vector of float) +0:28 tc: direct index for structure ( temp 2-component vector of float) +0:28 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:28 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:? Constant: +0:? 5.000000 +0:? 6.000000 +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 m0_array: direct index for structure ( temp 2-element array of float) +0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 2.300000 +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 m0_array: direct index for structure ( temp 2-element array of float) +0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 2.300000 +0:31 move second child to first child ( temp int) +0:31 m1: direct index for structure ( temp int) +0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 2 (const int) +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:? 'ts.pos' ( out 4-component vector of float Position) +0:33 pos: direct index for structure ( temp 4-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp 2-component vector of float) +0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) +0:33 tc: direct index for structure ( temp 2-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 move second child to first child ( temp float) +0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) +0:33 direct index ( temp float) +0:33 m0_array: direct index for structure ( temp 2-element array of float) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp float) +0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) +0:33 direct index ( temp float) +0:33 m0_array: direct index for structure ( temp 2-element array of float) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 move second child to first child ( temp int) +0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) +0:33 m1: direct index for structure ( temp int) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 EmitVertex ( temp void) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( in 4-component vector of float Position) +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 2-component vector of float) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) +0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( in 4-component vector of float Position) +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:24 Constant: +0:24 1 (const int) +0:24 move second child to first child ( temp 2-component vector of float) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) +0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( in 4-component vector of float Position) +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:24 Constant: +0:24 2 (const int) +0:24 move second child to first child ( temp 2-component vector of float) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) +0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'ts' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:? Linker Objects +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:? 'ts.pos' ( out 4-component vector of float Position) +0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) +0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) +0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) +0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) +0:24 Function Parameters: +0:24 'tin' ( in 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 'ts' ( out structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:? Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 pos: direct index for structure ( temp 4-component vector of float) +0:27 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:27 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0 (const int) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:28 move second child to first child ( temp 2-component vector of float) +0:28 tc: direct index for structure ( temp 2-component vector of float) +0:28 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:28 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 1 (const int) +0:? Constant: +0:? 5.000000 +0:? 6.000000 +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 m0_array: direct index for structure ( temp 2-element array of float) +0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 2.300000 +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 m0_array: direct index for structure ( temp 2-element array of float) +0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 2.300000 +0:31 move second child to first child ( temp int) +0:31 m1: direct index for structure ( temp int) +0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 2 (const int) +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:? 'ts.pos' ( out 4-component vector of float Position) +0:33 pos: direct index for structure ( temp 4-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp 2-component vector of float) +0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) +0:33 tc: direct index for structure ( temp 2-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 move second child to first child ( temp float) +0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) +0:33 direct index ( temp float) +0:33 m0_array: direct index for structure ( temp 2-element array of float) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp float) +0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) +0:33 direct index ( temp float) +0:33 m0_array: direct index for structure ( temp 2-element array of float) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 move second child to first child ( temp int) +0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) +0:33 m1: direct index for structure ( temp int) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 EmitVertex ( temp void) +0:24 Function Definition: main( ( temp void) +0:24 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( in 4-component vector of float Position) +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 2-component vector of float) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) +0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( in 4-component vector of float Position) +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:24 Constant: +0:24 1 (const int) +0:24 move second child to first child ( temp 2-component vector of float) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) +0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 pos: direct index for structure ( temp 4-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 direct index ( in 4-component vector of float Position) +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:24 Constant: +0:24 2 (const int) +0:24 move second child to first child ( temp 2-component vector of float) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 1 (const int) +0:24 tc: direct index for structure ( temp 2-component vector of float) +0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) +0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) +0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:? 'ts' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:? Linker Objects +0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) +0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) +0:? 'ts.pos' ( out 4-component vector of float Position) +0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) +0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) +0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) +0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 100 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 48 52 56 59 63 69 77 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 9 "PS_IN" + MemberName 9(PS_IN) 0 "pos" + MemberName 9(PS_IN) 1 "tc" + Name 17 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO" + MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array" + MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1" + Name 18 "GS_OUT" + MemberName 18(GS_OUT) 0 "psIn" + MemberName 18(GS_OUT) 1 "contains_no_builtin_io" + Name 23 "@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;" + Name 21 "tin" + Name 22 "ts" + Name 25 "o" + Name 48 "ts.pos" + Name 52 "ts.psIn.tc" + Name 56 "ts.contains_no_builtin_io.m0_array[0]" + Name 59 "ts.contains_no_builtin_io.m0_array[1]" + Name 63 "ts.contains_no_builtin_io.m1" + Name 66 "tin" + Name 69 "tin.pos" + Name 74 "PS_IN" + MemberName 74(PS_IN) 0 "tc" + Name 77 "tin" + Name 94 "ts" + Name 95 "param" + Name 97 "param" + Decorate 48(ts.pos) BuiltIn Position + Decorate 52(ts.psIn.tc) Location 0 + Decorate 56(ts.contains_no_builtin_io.m0_array[0]) Location 1 + Decorate 59(ts.contains_no_builtin_io.m0_array[1]) Location 2 + Decorate 63(ts.contains_no_builtin_io.m1) Location 3 + Decorate 69(tin.pos) BuiltIn Position + Decorate 77(tin) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 2 + 9(PS_IN): TypeStruct 7(fvec4) 8(fvec2) + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypeArray 9(PS_IN) 11 + 13: TypePointer Function 12 + 14: 10(int) Constant 2 + 15: TypeArray 6(float) 14 + 16: TypeInt 32 1 +17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int) + 18(GS_OUT): TypeStruct 9(PS_IN) 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) + 19: TypePointer Function 18(GS_OUT) + 20: TypeFunction 2 13(ptr) 19(ptr) + 26: 16(int) Constant 0 + 27: 6(float) Constant 1065353216 + 28: 6(float) Constant 1073741824 + 29: 6(float) Constant 1077936128 + 30: 6(float) Constant 1082130432 + 31: 7(fvec4) ConstantComposite 27 28 29 30 + 32: TypePointer Function 7(fvec4) + 34: 16(int) Constant 1 + 35: 6(float) Constant 1084227584 + 36: 6(float) Constant 1086324736 + 37: 8(fvec2) ConstantComposite 35 36 + 38: TypePointer Function 8(fvec2) + 40: 6(float) Constant 1075000115 + 41: TypePointer Function 6(float) + 44: 16(int) Constant 2 + 45: TypePointer Function 16(int) + 47: TypePointer Output 7(fvec4) + 48(ts.pos): 47(ptr) Variable Output + 51: TypePointer Output 8(fvec2) + 52(ts.psIn.tc): 51(ptr) Variable Output + 55: TypePointer Output 6(float) +56(ts.contains_no_builtin_io.m0_array[0]): 55(ptr) Variable Output +59(ts.contains_no_builtin_io.m0_array[1]): 55(ptr) Variable Output + 62: TypePointer Output 16(int) +63(ts.contains_no_builtin_io.m1): 62(ptr) Variable Output + 67: TypeArray 7(fvec4) 11 + 68: TypePointer Input 67 + 69(tin.pos): 68(ptr) Variable Input + 70: TypePointer Input 7(fvec4) + 74(PS_IN): TypeStruct 8(fvec2) + 75: TypeArray 74(PS_IN) 11 + 76: TypePointer Input 75 + 77(tin): 76(ptr) Variable Input + 78: TypePointer Input 8(fvec2) + 4(main): 2 Function None 3 + 5: Label + 66(tin): 13(ptr) Variable Function + 94(ts): 19(ptr) Variable Function + 95(param): 13(ptr) Variable Function + 97(param): 19(ptr) Variable Function + 71: 70(ptr) AccessChain 69(tin.pos) 26 + 72: 7(fvec4) Load 71 + 73: 32(ptr) AccessChain 66(tin) 26 26 + Store 73 72 + 79: 78(ptr) AccessChain 77(tin) 26 26 + 80: 8(fvec2) Load 79 + 81: 38(ptr) AccessChain 66(tin) 26 34 + Store 81 80 + 82: 70(ptr) AccessChain 69(tin.pos) 34 + 83: 7(fvec4) Load 82 + 84: 32(ptr) AccessChain 66(tin) 34 26 + Store 84 83 + 85: 78(ptr) AccessChain 77(tin) 34 26 + 86: 8(fvec2) Load 85 + 87: 38(ptr) AccessChain 66(tin) 34 34 + Store 87 86 + 88: 70(ptr) AccessChain 69(tin.pos) 44 + 89: 7(fvec4) Load 88 + 90: 32(ptr) AccessChain 66(tin) 44 26 + Store 90 89 + 91: 78(ptr) AccessChain 77(tin) 44 26 + 92: 8(fvec2) Load 91 + 93: 38(ptr) AccessChain 66(tin) 44 34 + Store 93 92 + 96: 12 Load 66(tin) + Store 95(param) 96 + 98: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 95(param) 97(param) + 99: 18(GS_OUT) Load 97(param) + Store 94(ts) 99 + Return + FunctionEnd +23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;): 2 Function None 20 + 21(tin): 13(ptr) FunctionParameter + 22(ts): 19(ptr) FunctionParameter + 24: Label + 25(o): 19(ptr) Variable Function + 33: 32(ptr) AccessChain 25(o) 26 26 + Store 33 31 + 39: 38(ptr) AccessChain 25(o) 26 34 + Store 39 37 + 42: 41(ptr) AccessChain 25(o) 34 26 26 + Store 42 40 + 43: 41(ptr) AccessChain 25(o) 34 26 34 + Store 43 40 + 46: 45(ptr) AccessChain 25(o) 34 34 + Store 46 44 + 49: 32(ptr) AccessChain 25(o) 26 26 + 50: 7(fvec4) Load 49 + Store 48(ts.pos) 50 + 53: 38(ptr) AccessChain 25(o) 26 34 + 54: 8(fvec2) Load 53 + Store 52(ts.psIn.tc) 54 + 57: 41(ptr) AccessChain 25(o) 34 26 26 + 58: 6(float) Load 57 + Store 56(ts.contains_no_builtin_io.m0_array[0]) 58 + 60: 41(ptr) AccessChain 25(o) 34 26 34 + 61: 6(float) Load 60 + Store 59(ts.contains_no_builtin_io.m0_array[1]) 61 + 64: 45(ptr) AccessChain 25(o) 34 34 + 65: 16(int) Load 64 + Store 63(ts.contains_no_builtin_io.m1) 65 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out new file mode 100644 index 0000000000..477fbd2004 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out @@ -0,0 +1,309 @@ +hlsl.struct.split.trivial.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) +0:14 Function Parameters: +0:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) +0:14 'ts' ( out structure{ temp 4-component vector of float pos}) +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'x' ( temp int) +0:17 Constant: +0:17 0 (const int) +0:17 Loop with condition tested first +0:17 Loop Condition +0:17 Compare Less Than ( temp bool) +0:17 'x' ( temp int) +0:17 Constant: +0:17 3 (const int) +0:17 Loop Body +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 'o' ( temp structure{ temp 4-component vector of float pos}) +0:18 Constant: +0:18 0 (const int) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 indirect index ( temp structure{ temp 4-component vector of float pos}) +0:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) +0:18 'x' ( temp int) +0:18 Constant: +0:18 0 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:? 'ts.pos' ( out 4-component vector of float Position) +0:19 pos: direct index for structure ( temp 4-component vector of float) +0:19 'o' ( temp structure{ temp 4-component vector of float pos}) +0:19 Constant: +0:19 0 (const int) +0:19 EmitVertex ( temp void) +0:17 Loop Terminal Expression +0:17 Pre-Increment ( temp int) +0:17 'x' ( temp int) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 direct index ( temp structure{ temp 4-component vector of float pos}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( in 4-component vector of float Position) +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 direct index ( temp structure{ temp 4-component vector of float pos}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( in 4-component vector of float Position) +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:14 Constant: +0:14 1 (const int) +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 direct index ( temp structure{ temp 4-component vector of float pos}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( in 4-component vector of float Position) +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:14 Constant: +0:14 2 (const int) +0:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) +0:? Linker Objects +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:? 'ts.pos' ( out 4-component vector of float Position) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) +0:14 Function Parameters: +0:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) +0:14 'ts' ( out structure{ temp 4-component vector of float pos}) +0:? Sequence +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'x' ( temp int) +0:17 Constant: +0:17 0 (const int) +0:17 Loop with condition tested first +0:17 Loop Condition +0:17 Compare Less Than ( temp bool) +0:17 'x' ( temp int) +0:17 Constant: +0:17 3 (const int) +0:17 Loop Body +0:? Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 'o' ( temp structure{ temp 4-component vector of float pos}) +0:18 Constant: +0:18 0 (const int) +0:18 pos: direct index for structure ( temp 4-component vector of float) +0:18 indirect index ( temp structure{ temp 4-component vector of float pos}) +0:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) +0:18 'x' ( temp int) +0:18 Constant: +0:18 0 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:? 'ts.pos' ( out 4-component vector of float Position) +0:19 pos: direct index for structure ( temp 4-component vector of float) +0:19 'o' ( temp structure{ temp 4-component vector of float pos}) +0:19 Constant: +0:19 0 (const int) +0:19 EmitVertex ( temp void) +0:17 Loop Terminal Expression +0:17 Pre-Increment ( temp int) +0:17 'x' ( temp int) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 direct index ( temp structure{ temp 4-component vector of float pos}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( in 4-component vector of float Position) +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 direct index ( temp structure{ temp 4-component vector of float pos}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( in 4-component vector of float Position) +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:14 Constant: +0:14 1 (const int) +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 direct index ( temp structure{ temp 4-component vector of float pos}) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 direct index ( in 4-component vector of float Position) +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:14 Constant: +0:14 2 (const int) +0:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) +0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) +0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) +0:? Linker Objects +0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) +0:? 'ts.pos' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 67 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 40 49 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 8 "PS_IN" + MemberName 8(PS_IN) 0 "pos" + Name 13 "GS_OUT" + MemberName 13(GS_OUT) 0 "pos" + Name 18 "@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;" + Name 16 "i" + Name 17 "ts" + Name 22 "x" + Name 33 "o" + Name 40 "ts.pos" + Name 46 "i" + Name 49 "i.pos" + Name 61 "ts" + Name 62 "param" + Name 64 "param" + Decorate 40(ts.pos) BuiltIn Position + Decorate 49(i.pos) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_IN): TypeStruct 7(fvec4) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(PS_IN) 10 + 12: TypePointer Function 11 + 13(GS_OUT): TypeStruct 7(fvec4) + 14: TypePointer Function 13(GS_OUT) + 15: TypeFunction 2 12(ptr) 14(ptr) + 20: TypeInt 32 1 + 21: TypePointer Function 20(int) + 23: 20(int) Constant 0 + 30: 20(int) Constant 3 + 31: TypeBool + 35: TypePointer Function 7(fvec4) + 39: TypePointer Output 7(fvec4) + 40(ts.pos): 39(ptr) Variable Output + 44: 20(int) Constant 1 + 47: TypeArray 7(fvec4) 10 + 48: TypePointer Input 47 + 49(i.pos): 48(ptr) Variable Input + 50: TypePointer Input 7(fvec4) + 57: 20(int) Constant 2 + 4(main): 2 Function None 3 + 5: Label + 46(i): 12(ptr) Variable Function + 61(ts): 14(ptr) Variable Function + 62(param): 12(ptr) Variable Function + 64(param): 14(ptr) Variable Function + 51: 50(ptr) AccessChain 49(i.pos) 23 + 52: 7(fvec4) Load 51 + 53: 35(ptr) AccessChain 46(i) 23 23 + Store 53 52 + 54: 50(ptr) AccessChain 49(i.pos) 44 + 55: 7(fvec4) Load 54 + 56: 35(ptr) AccessChain 46(i) 44 23 + Store 56 55 + 58: 50(ptr) AccessChain 49(i.pos) 57 + 59: 7(fvec4) Load 58 + 60: 35(ptr) AccessChain 46(i) 57 23 + Store 60 59 + 63: 11 Load 46(i) + Store 62(param) 63 + 65: 2 FunctionCall 18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;) 62(param) 64(param) + 66: 13(GS_OUT) Load 64(param) + Store 61(ts) 66 + Return + FunctionEnd +18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;): 2 Function None 15 + 16(i): 12(ptr) FunctionParameter + 17(ts): 14(ptr) FunctionParameter + 19: Label + 22(x): 21(ptr) Variable Function + 33(o): 14(ptr) Variable Function + Store 22(x) 23 + Branch 24 + 24: Label + LoopMerge 26 27 None + Branch 28 + 28: Label + 29: 20(int) Load 22(x) + 32: 31(bool) SLessThan 29 30 + BranchConditional 32 25 26 + 25: Label + 34: 20(int) Load 22(x) + 36: 35(ptr) AccessChain 16(i) 34 23 + 37: 7(fvec4) Load 36 + 38: 35(ptr) AccessChain 33(o) 23 + Store 38 37 + 41: 35(ptr) AccessChain 33(o) 23 + 42: 7(fvec4) Load 41 + Store 40(ts.pos) 42 + EmitVertex + Branch 27 + 27: Label + 43: 20(int) Load 22(x) + 45: 20(int) IAdd 43 44 + Store 22(x) 45 + Branch 24 + 26: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out new file mode 100644 index 0000000000..8bf477e691 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out @@ -0,0 +1,178 @@ +hlsl.struct.split.trivial.vert +Shader version: 500 +0:? Sequence +0:16 Function Definition: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) +0:16 Function Parameters: +0:16 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) +0:16 'Pos_loose' ( in 4-component vector of float) +0:? Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:19 Pos: direct index for structure ( temp 4-component vector of float) +0:19 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:19 Constant: +0:19 0 (const int) +0:19 add ( temp 4-component vector of float) +0:19 Pos_in: direct index for structure ( temp 4-component vector of float) +0:19 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) +0:19 Constant: +0:19 0 (const int) +0:19 'Pos_loose' ( in 4-component vector of float) +0:21 Branch: Return with expression +0:21 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 Pos_in: direct index for structure ( temp 4-component vector of float) +0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) +0:16 Constant: +0:16 0 (const int) +0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) +0:16 move second child to first child ( temp 4-component vector of float) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:16 Pos: direct index for structure ( temp 4-component vector of float) +0:16 Function Call: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) +0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) +0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:16 Function Definition: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) +0:16 Function Parameters: +0:16 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) +0:16 'Pos_loose' ( in 4-component vector of float) +0:? Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:19 Pos: direct index for structure ( temp 4-component vector of float) +0:19 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:19 Constant: +0:19 0 (const int) +0:19 add ( temp 4-component vector of float) +0:19 Pos_in: direct index for structure ( temp 4-component vector of float) +0:19 'vsin' ( in structure{ temp 4-component vector of float Pos_in}) +0:19 Constant: +0:19 0 (const int) +0:19 'Pos_loose' ( in 4-component vector of float) +0:21 Branch: Return with expression +0:21 'vsout' ( temp structure{ temp 4-component vector of float Pos}) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 Pos_in: direct index for structure ( temp 4-component vector of float) +0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) +0:16 Constant: +0:16 0 (const int) +0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) +0:16 move second child to first child ( temp 4-component vector of float) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:16 Pos: direct index for structure ( temp 4-component vector of float) +0:16 Function Call: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos}) +0:? 'vsin' ( temp structure{ temp 4-component vector of float Pos_in}) +0:? 'Pos_loose' ( temp 4-component vector of float) +0:16 Constant: +0:16 0 (const int) +0:? Linker Objects +0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) +0:? 'vsin.Pos_in' (layout( location=0) in 4-component vector of float) +0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 31 35 38 + Source HLSL 500 + Name 4 "main" + Name 8 "VS_INPUT" + MemberName 8(VS_INPUT) 0 "Pos_in" + Name 11 "VS_OUTPUT" + MemberName 11(VS_OUTPUT) 0 "Pos" + Name 15 "@main(struct-VS_INPUT-vf41;vf4;" + Name 13 "vsin" + Name 14 "Pos_loose" + Name 18 "vsout" + Name 29 "vsin" + Name 31 "vsin.Pos_in" + Name 34 "Pos_loose" + Name 35 "Pos_loose" + Name 38 "@entryPointOutput.Pos" + Name 39 "param" + Name 41 "param" + Decorate 31(vsin.Pos_in) Location 0 + Decorate 35(Pos_loose) Location 1 + Decorate 38(@entryPointOutput.Pos) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(VS_INPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(VS_INPUT) + 10: TypePointer Function 7(fvec4) + 11(VS_OUTPUT): TypeStruct 7(fvec4) + 12: TypeFunction 11(VS_OUTPUT) 9(ptr) 10(ptr) + 17: TypePointer Function 11(VS_OUTPUT) + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 30: TypePointer Input 7(fvec4) + 31(vsin.Pos_in): 30(ptr) Variable Input + 35(Pos_loose): 30(ptr) Variable Input + 37: TypePointer Output 7(fvec4) +38(@entryPointOutput.Pos): 37(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 29(vsin): 9(ptr) Variable Function + 34(Pos_loose): 10(ptr) Variable Function + 39(param): 9(ptr) Variable Function + 41(param): 10(ptr) Variable Function + 32: 7(fvec4) Load 31(vsin.Pos_in) + 33: 10(ptr) AccessChain 29(vsin) 20 + Store 33 32 + 36: 7(fvec4) Load 35(Pos_loose) + Store 34(Pos_loose) 36 + 40: 8(VS_INPUT) Load 29(vsin) + Store 39(param) 40 + 42: 7(fvec4) Load 34(Pos_loose) + Store 41(param) 42 + 43:11(VS_OUTPUT) FunctionCall 15(@main(struct-VS_INPUT-vf41;vf4;) 39(param) 41(param) + 44: 7(fvec4) CompositeExtract 43 0 + Store 38(@entryPointOutput.Pos) 44 + Return + FunctionEnd +15(@main(struct-VS_INPUT-vf41;vf4;):11(VS_OUTPUT) Function None 12 + 13(vsin): 9(ptr) FunctionParameter + 14(Pos_loose): 10(ptr) FunctionParameter + 16: Label + 18(vsout): 17(ptr) Variable Function + 21: 10(ptr) AccessChain 13(vsin) 20 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) Load 14(Pos_loose) + 24: 7(fvec4) FAdd 22 23 + 25: 10(ptr) AccessChain 18(vsout) 20 + Store 25 24 + 26:11(VS_OUTPUT) Load 18(vsout) + ReturnValue 26 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out new file mode 100644 index 0000000000..f60c80b4b2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out @@ -0,0 +1,300 @@ +hlsl.structIoFourWay.frag +Shader version: 500 +gl_FragCoord origin is upper left +using depth_greater +0:? Sequence +0:15 Function Definition: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Function Parameters: +0:15 't' ( in structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:? Sequence +0:17 Branch: Return with expression +0:17 'local' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 f: direct index for structure ( temp float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 0 (const int) +0:? 't.f' (layout( location=0) in float) +0:15 move second child to first child ( temp float) +0:15 g: direct index for structure ( temp float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 1 (const int) +0:? 't.g' (layout( location=1) centroid in float) +0:15 move second child to first child ( temp float) +0:15 d: direct index for structure ( temp float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 2 (const int) +0:? 't.d' (layout( location=2) in float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 normal: direct index for structure ( temp 4-component vector of float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 3 (const int) +0:? 't.normal' (layout( location=3) in 4-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Function Call: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 move second child to first child ( temp float) +0:? '@entryPointOutput.f' (layout( location=0) out float) +0:15 f: direct index for structure ( temp float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 0 (const int) +0:15 move second child to first child ( temp float) +0:? '@entryPointOutput.g' (layout( location=1) out float) +0:15 g: direct index for structure ( temp float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 1 (const int) +0:15 move second child to first child ( temp float) +0:? '@entryPointOutput.d' ( out float FragDepth) +0:15 d: direct index for structure ( temp float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 2 (const int) +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) +0:15 normal: direct index for structure ( temp 4-component vector of float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 3 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} s}) +0:? 'anon@1' (layout( row_major std140) uniform block{layout( row_major std140 offset=88) uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} t}) +0:? '@entryPointOutput.d' ( out float FragDepth) +0:? '@entryPointOutput.f' (layout( location=0) out float) +0:? '@entryPointOutput.g' (layout( location=1) out float) +0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) +0:? 't.f' (layout( location=0) in float) +0:? 't.g' (layout( location=1) centroid in float) +0:? 't.d' (layout( location=2) in float) +0:? 't.normal' (layout( location=3) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +using depth_greater +0:? Sequence +0:15 Function Definition: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Function Parameters: +0:15 't' ( in structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:? Sequence +0:17 Branch: Return with expression +0:17 'local' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 f: direct index for structure ( temp float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 0 (const int) +0:? 't.f' (layout( location=0) in float) +0:15 move second child to first child ( temp float) +0:15 g: direct index for structure ( temp float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 1 (const int) +0:? 't.g' (layout( location=1) centroid in float) +0:15 move second child to first child ( temp float) +0:15 d: direct index for structure ( temp float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 2 (const int) +0:? 't.d' (layout( location=2) in float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 normal: direct index for structure ( temp 4-component vector of float) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 3 (const int) +0:? 't.normal' (layout( location=3) in 4-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Function Call: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:? 't' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 move second child to first child ( temp float) +0:? '@entryPointOutput.f' (layout( location=0) out float) +0:15 f: direct index for structure ( temp float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 0 (const int) +0:15 move second child to first child ( temp float) +0:? '@entryPointOutput.g' (layout( location=1) out float) +0:15 g: direct index for structure ( temp float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 1 (const int) +0:15 move second child to first child ( temp float) +0:? '@entryPointOutput.d' ( out float FragDepth) +0:15 d: direct index for structure ( temp float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 2 (const int) +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) +0:15 normal: direct index for structure ( temp 4-component vector of float) +0:15 'flattenTemp' ( temp structure{ temp float f, temp float g, temp float d, temp 4-component vector of float normal}) +0:15 Constant: +0:15 3 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} s}) +0:? 'anon@1' (layout( row_major std140) uniform block{layout( row_major std140 offset=88) uniform structure{layout( offset=68) temp float f, temp float g, temp float d, temp 4-component vector of float normal} t}) +0:? '@entryPointOutput.d' ( out float FragDepth) +0:? '@entryPointOutput.f' (layout( location=0) out float) +0:? '@entryPointOutput.g' (layout( location=1) out float) +0:? '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float) +0:? 't.f' (layout( location=0) in float) +0:? 't.g' (layout( location=1) centroid in float) +0:? 't.d' (layout( location=2) in float) +0:? 't.normal' (layout( location=3) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 22 27 31 36 45 48 51 55 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthGreater + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "T" + MemberName 8(T) 0 "f" + MemberName 8(T) 1 "g" + MemberName 8(T) 2 "d" + MemberName 8(T) 3 "normal" + Name 12 "@main(struct-T-f1-f1-f1-vf41;" + Name 11 "t" + Name 14 "local" + Name 18 "t" + Name 22 "t.f" + Name 27 "t.g" + Name 31 "t.d" + Name 36 "t.normal" + Name 40 "flattenTemp" + Name 41 "param" + Name 45 "@entryPointOutput.f" + Name 48 "@entryPointOutput.g" + Name 51 "@entryPointOutput.d" + Name 55 "@entryPointOutput.normal" + Name 58 "T" + MemberName 58(T) 0 "f" + MemberName 58(T) 1 "g" + MemberName 58(T) 2 "d" + MemberName 58(T) 3 "normal" + Name 59 "$Global" + MemberName 59($Global) 0 "s" + Name 61 "" + Name 62 "buff" + MemberName 62(buff) 0 "t" + Name 64 "" + Decorate 22(t.f) Location 0 + Decorate 27(t.g) Centroid + Decorate 27(t.g) Location 1 + Decorate 31(t.d) Location 2 + Decorate 36(t.normal) Location 3 + Decorate 45(@entryPointOutput.f) Location 0 + Decorate 48(@entryPointOutput.g) Location 1 + Decorate 51(@entryPointOutput.d) BuiltIn FragDepth + Decorate 55(@entryPointOutput.normal) Location 2 + MemberDecorate 58(T) 0 Offset 68 + MemberDecorate 58(T) 1 Offset 72 + MemberDecorate 58(T) 2 Offset 76 + MemberDecorate 58(T) 3 Offset 80 + MemberDecorate 59($Global) 0 Offset 0 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + MemberDecorate 62(buff) 0 Offset 96 + Decorate 62(buff) Block + Decorate 64 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(T): TypeStruct 6(float) 6(float) 6(float) 7(fvec4) + 9: TypePointer Function 8(T) + 10: TypeFunction 8(T) 9(ptr) + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 21: TypePointer Input 6(float) + 22(t.f): 21(ptr) Variable Input + 24: TypePointer Function 6(float) + 26: 19(int) Constant 1 + 27(t.g): 21(ptr) Variable Input + 30: 19(int) Constant 2 + 31(t.d): 21(ptr) Variable Input + 34: 19(int) Constant 3 + 35: TypePointer Input 7(fvec4) + 36(t.normal): 35(ptr) Variable Input + 38: TypePointer Function 7(fvec4) + 44: TypePointer Output 6(float) +45(@entryPointOutput.f): 44(ptr) Variable Output +48(@entryPointOutput.g): 44(ptr) Variable Output +51(@entryPointOutput.d): 44(ptr) Variable Output + 54: TypePointer Output 7(fvec4) +55(@entryPointOutput.normal): 54(ptr) Variable Output + 58(T): TypeStruct 6(float) 6(float) 6(float) 7(fvec4) + 59($Global): TypeStruct 58(T) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62(buff): TypeStruct 58(T) + 63: TypePointer Uniform 62(buff) + 64: 63(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 18(t): 9(ptr) Variable Function + 40(flattenTemp): 9(ptr) Variable Function + 41(param): 9(ptr) Variable Function + 23: 6(float) Load 22(t.f) + 25: 24(ptr) AccessChain 18(t) 20 + Store 25 23 + 28: 6(float) Load 27(t.g) + 29: 24(ptr) AccessChain 18(t) 26 + Store 29 28 + 32: 6(float) Load 31(t.d) + 33: 24(ptr) AccessChain 18(t) 30 + Store 33 32 + 37: 7(fvec4) Load 36(t.normal) + 39: 38(ptr) AccessChain 18(t) 34 + Store 39 37 + 42: 8(T) Load 18(t) + Store 41(param) 42 + 43: 8(T) FunctionCall 12(@main(struct-T-f1-f1-f1-vf41;) 41(param) + Store 40(flattenTemp) 43 + 46: 24(ptr) AccessChain 40(flattenTemp) 20 + 47: 6(float) Load 46 + Store 45(@entryPointOutput.f) 47 + 49: 24(ptr) AccessChain 40(flattenTemp) 26 + 50: 6(float) Load 49 + Store 48(@entryPointOutput.g) 50 + 52: 24(ptr) AccessChain 40(flattenTemp) 30 + 53: 6(float) Load 52 + Store 51(@entryPointOutput.d) 53 + 56: 38(ptr) AccessChain 40(flattenTemp) 34 + 57: 7(fvec4) Load 56 + Store 55(@entryPointOutput.normal) 57 + Return + FunctionEnd +12(@main(struct-T-f1-f1-f1-vf41;): 8(T) Function None 10 + 11(t): 9(ptr) FunctionParameter + 13: Label + 14(local): 9(ptr) Variable Function + 15: 8(T) Load 14(local) + ReturnValue 15 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structStructName.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structStructName.frag.out new file mode 100644 index 0000000000..183dcf6397 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structStructName.frag.out @@ -0,0 +1,85 @@ +hlsl.structStructName.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main( ( temp int) +0:4 Function Parameters: +0:? Sequence +0:6 Branch: Return with expression +0:6 s: direct index for structure ( temp int) +0:6 't' ( temp structure{ temp int s}) +0:6 Constant: +0:6 0 (const int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:4 Function Call: @main( ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: @main( ( temp int) +0:4 Function Parameters: +0:? Sequence +0:6 Branch: Return with expression +0:6 s: direct index for structure ( temp int) +0:6 't' ( temp structure{ temp int s}) +0:6 Constant: +0:6 0 (const int) +0:4 Function Definition: main( ( temp void) +0:4 Function Parameters: +0:? Sequence +0:4 move second child to first child ( temp int) +0:? '@entryPointOutput' (layout( location=0) out int) +0:4 Function Call: @main( ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "@main(" + Name 10 "S" + MemberName 10(S) 0 "s" + Name 12 "t" + Name 20 "@entryPointOutput" + Decorate 20(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFunction 6(int) + 10(S): TypeStruct 6(int) + 11: TypePointer Function 10(S) + 13: 6(int) Constant 0 + 14: TypePointer Function 6(int) + 19: TypePointer Output 6(int) +20(@entryPointOutput): 19(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 21: 6(int) FunctionCall 8(@main() + Store 20(@entryPointOutput) 21 + Return + FunctionEnd + 8(@main(): 6(int) Function None 7 + 9: Label + 12(t): 11(ptr) Variable Function + 15: 14(ptr) AccessChain 12(t) 13 + 16: 6(int) Load 15 + ReturnValue 16 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out new file mode 100644 index 0000000000..411f155876 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out @@ -0,0 +1,301 @@ +hlsl.structarray.flatten.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:23 Function Parameters: +0:23 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:? Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 color: direct index for structure ( temp 4-component vector of float) +0:24 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:24 Constant: +0:24 0 (const int) +0:26 add ( temp 4-component vector of float) +0:25 add ( temp 4-component vector of float) +0:25 texture ( temp 4-component vector of float) +0:25 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_texdata.tex' ( uniform texture1D) +0:? 'g_texdata.samp' ( uniform sampler) +0:25 Constant: +0:25 0.500000 +0:26 texture ( temp 4-component vector of float) +0:26 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_texdata_array[1].tex' ( uniform texture1D) +0:? 'g_texdata_array[1].samp' ( uniform sampler) +0:26 Constant: +0:26 0.400000 +0:27 texture ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1D) +0:27 direct index ( temp texture1D) +0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp sampler) +0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0.300000 +0:23 Function Definition: main( ( temp void) +0:23 Function Parameters: +0:? Sequence +0:23 Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) +0:23 color: direct index for structure ( temp 4-component vector of float) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:23 Constant: +0:23 0 (const int) +0:? Linker Objects +0:? 'g_samp' ( uniform sampler) +0:? 'g_tex' ( uniform texture1D) +0:? 'g_texdata.samp' ( uniform sampler) +0:? 'g_texdata.tex' ( uniform texture1D) +0:? 'g_texdata.nonopaque_thing' ( uniform int) +0:? 'g_texdata_array[0].samp' ( uniform sampler) +0:? 'g_texdata_array[0].tex' ( uniform texture1D) +0:? 'g_texdata_array[0].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array[1].samp' ( uniform sampler) +0:? 'g_texdata_array[1].tex' ( uniform texture1D) +0:? 'g_texdata_array[1].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array[2].samp' ( uniform sampler) +0:? 'g_texdata_array[2].tex' ( uniform texture1D) +0:? 'g_texdata_array[2].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array2[0].samp' ( uniform 2-element array of sampler) +0:? 'g_texdata_array2[0].tex' ( uniform 2-element array of texture1D) +0:? 'g_texdata_array2[0].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler) +0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D) +0:? 'g_texdata_array2[1].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array2[2].samp' ( uniform 2-element array of sampler) +0:? 'g_texdata_array2[2].tex' ( uniform 2-element array of texture1D) +0:? 'g_texdata_array2[2].nonopaque_thing' ( uniform int) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:23 Function Parameters: +0:23 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:? Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 color: direct index for structure ( temp 4-component vector of float) +0:24 'ps_output' ( out structure{ temp 4-component vector of float color}) +0:24 Constant: +0:24 0 (const int) +0:26 add ( temp 4-component vector of float) +0:25 add ( temp 4-component vector of float) +0:25 texture ( temp 4-component vector of float) +0:25 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_texdata.tex' ( uniform texture1D) +0:? 'g_texdata.samp' ( uniform sampler) +0:25 Constant: +0:25 0.500000 +0:26 texture ( temp 4-component vector of float) +0:26 Construct combined texture-sampler ( temp sampler1D) +0:? 'g_texdata_array[1].tex' ( uniform texture1D) +0:? 'g_texdata_array[1].samp' ( uniform sampler) +0:26 Constant: +0:26 0.400000 +0:27 texture ( temp 4-component vector of float) +0:27 Construct combined texture-sampler ( temp sampler1D) +0:27 direct index ( temp texture1D) +0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp sampler) +0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0.300000 +0:23 Function Definition: main( ( temp void) +0:23 Function Parameters: +0:? Sequence +0:23 Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) +0:23 color: direct index for structure ( temp 4-component vector of float) +0:? 'ps_output' ( temp structure{ temp 4-component vector of float color}) +0:23 Constant: +0:23 0 (const int) +0:? Linker Objects +0:? 'g_samp' ( uniform sampler) +0:? 'g_tex' ( uniform texture1D) +0:? 'g_texdata.samp' ( uniform sampler) +0:? 'g_texdata.tex' ( uniform texture1D) +0:? 'g_texdata.nonopaque_thing' ( uniform int) +0:? 'g_texdata_array[0].samp' ( uniform sampler) +0:? 'g_texdata_array[0].tex' ( uniform texture1D) +0:? 'g_texdata_array[0].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array[1].samp' ( uniform sampler) +0:? 'g_texdata_array[1].tex' ( uniform texture1D) +0:? 'g_texdata_array[1].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array[2].samp' ( uniform sampler) +0:? 'g_texdata_array[2].tex' ( uniform texture1D) +0:? 'g_texdata_array[2].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array2[0].samp' ( uniform 2-element array of sampler) +0:? 'g_texdata_array2[0].tex' ( uniform 2-element array of texture1D) +0:? 'g_texdata_array2[0].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler) +0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D) +0:? 'g_texdata_array2[1].nonopaque_thing' ( uniform int) +0:? 'g_texdata_array2[2].samp' ( uniform 2-element array of sampler) +0:? 'g_texdata_array2[2].tex' ( uniform 2-element array of texture1D) +0:? 'g_texdata_array2[2].nonopaque_thing' ( uniform int) +0:? 'ps_output.color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 80 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 59 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 12 "@main(struct-PS_OUTPUT-vf41;" + Name 11 "ps_output" + Name 18 "g_texdata.tex" + Name 22 "g_texdata.samp" + Name 28 "g_texdata_array[1].tex" + Name 30 "g_texdata_array[1].samp" + Name 40 "g_texdata_array2[1].tex" + Name 45 "g_texdata_array2[1].samp" + Name 54 "ps_output" + Name 55 "param" + Name 59 "ps_output.color" + Name 62 "g_samp" + Name 63 "g_tex" + Name 65 "g_texdata.nonopaque_thing" + Name 66 "g_texdata_array[0].samp" + Name 67 "g_texdata_array[0].tex" + Name 68 "g_texdata_array[0].nonopaque_thing" + Name 69 "g_texdata_array[1].nonopaque_thing" + Name 70 "g_texdata_array[2].samp" + Name 71 "g_texdata_array[2].tex" + Name 72 "g_texdata_array[2].nonopaque_thing" + Name 73 "g_texdata_array2[0].samp" + Name 74 "g_texdata_array2[0].tex" + Name 75 "g_texdata_array2[0].nonopaque_thing" + Name 76 "g_texdata_array2[1].nonopaque_thing" + Name 77 "g_texdata_array2[2].samp" + Name 78 "g_texdata_array2[2].tex" + Name 79 "g_texdata_array2[2].nonopaque_thing" + Decorate 18(g_texdata.tex) DescriptorSet 0 + Decorate 22(g_texdata.samp) DescriptorSet 0 + Decorate 28(g_texdata_array[1].tex) DescriptorSet 0 + Decorate 30(g_texdata_array[1].samp) DescriptorSet 0 + Decorate 40(g_texdata_array2[1].tex) DescriptorSet 0 + Decorate 45(g_texdata_array2[1].samp) DescriptorSet 0 + Decorate 59(ps_output.color) Location 0 + Decorate 62(g_samp) DescriptorSet 0 + Decorate 63(g_tex) DescriptorSet 0 + Decorate 66(g_texdata_array[0].samp) DescriptorSet 0 + Decorate 67(g_texdata_array[0].tex) DescriptorSet 0 + Decorate 70(g_texdata_array[2].samp) DescriptorSet 0 + Decorate 71(g_texdata_array[2].tex) DescriptorSet 0 + Decorate 73(g_texdata_array2[0].samp) DescriptorSet 0 + Decorate 74(g_texdata_array2[0].tex) DescriptorSet 0 + Decorate 77(g_texdata_array2[2].samp) DescriptorSet 0 + Decorate 78(g_texdata_array2[2].tex) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 10: TypeFunction 2 9(ptr) + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypeImage 6(float) 1D sampled format:Unknown + 17: TypePointer UniformConstant 16 +18(g_texdata.tex): 17(ptr) Variable UniformConstant + 20: TypeSampler + 21: TypePointer UniformConstant 20 +22(g_texdata.samp): 21(ptr) Variable UniformConstant + 24: TypeSampledImage 16 + 26: 6(float) Constant 1056964608 +28(g_texdata_array[1].tex): 17(ptr) Variable UniformConstant +30(g_texdata_array[1].samp): 21(ptr) Variable UniformConstant + 33: 6(float) Constant 1053609165 + 36: TypeInt 32 0 + 37: 36(int) Constant 2 + 38: TypeArray 16 37 + 39: TypePointer UniformConstant 38 +40(g_texdata_array2[1].tex): 39(ptr) Variable UniformConstant + 43: TypeArray 20 37 + 44: TypePointer UniformConstant 43 +45(g_texdata_array2[1].samp): 44(ptr) Variable UniformConstant + 49: 6(float) Constant 1050253722 + 52: TypePointer Function 7(fvec4) + 58: TypePointer Output 7(fvec4) +59(ps_output.color): 58(ptr) Variable Output + 62(g_samp): 21(ptr) Variable UniformConstant + 63(g_tex): 17(ptr) Variable UniformConstant + 64: TypePointer UniformConstant 14(int) +65(g_texdata.nonopaque_thing): 64(ptr) Variable UniformConstant +66(g_texdata_array[0].samp): 21(ptr) Variable UniformConstant +67(g_texdata_array[0].tex): 17(ptr) Variable UniformConstant +68(g_texdata_array[0].nonopaque_thing): 64(ptr) Variable UniformConstant +69(g_texdata_array[1].nonopaque_thing): 64(ptr) Variable UniformConstant +70(g_texdata_array[2].samp): 21(ptr) Variable UniformConstant +71(g_texdata_array[2].tex): 17(ptr) Variable UniformConstant +72(g_texdata_array[2].nonopaque_thing): 64(ptr) Variable UniformConstant +73(g_texdata_array2[0].samp): 44(ptr) Variable UniformConstant +74(g_texdata_array2[0].tex): 39(ptr) Variable UniformConstant +75(g_texdata_array2[0].nonopaque_thing): 64(ptr) Variable UniformConstant +76(g_texdata_array2[1].nonopaque_thing): 64(ptr) Variable UniformConstant +77(g_texdata_array2[2].samp): 44(ptr) Variable UniformConstant +78(g_texdata_array2[2].tex): 39(ptr) Variable UniformConstant +79(g_texdata_array2[2].nonopaque_thing): 64(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 54(ps_output): 9(ptr) Variable Function + 55(param): 9(ptr) Variable Function + 56: 2 FunctionCall 12(@main(struct-PS_OUTPUT-vf41;) 55(param) + 57:8(PS_OUTPUT) Load 55(param) + Store 54(ps_output) 57 + 60: 52(ptr) AccessChain 54(ps_output) 15 + 61: 7(fvec4) Load 60 + Store 59(ps_output.color) 61 + Return + FunctionEnd +12(@main(struct-PS_OUTPUT-vf41;): 2 Function None 10 + 11(ps_output): 9(ptr) FunctionParameter + 13: Label + 19: 16 Load 18(g_texdata.tex) + 23: 20 Load 22(g_texdata.samp) + 25: 24 SampledImage 19 23 + 27: 7(fvec4) ImageSampleImplicitLod 25 26 + 29: 16 Load 28(g_texdata_array[1].tex) + 31: 20 Load 30(g_texdata_array[1].samp) + 32: 24 SampledImage 29 31 + 34: 7(fvec4) ImageSampleImplicitLod 32 33 + 35: 7(fvec4) FAdd 27 34 + 41: 17(ptr) AccessChain 40(g_texdata_array2[1].tex) 15 + 42: 16 Load 41 + 46: 21(ptr) AccessChain 45(g_texdata_array2[1].samp) 15 + 47: 20 Load 46 + 48: 24 SampledImage 42 47 + 50: 7(fvec4) ImageSampleImplicitLod 48 49 + 51: 7(fvec4) FAdd 35 50 + 53: 52(ptr) AccessChain 11(ps_output) 15 + Store 53 51 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out new file mode 100644 index 0000000000..f88118d624 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out @@ -0,0 +1,279 @@ +hlsl.structarray.flatten.geom +Shader version: 500 +invocations = -1 +max_vertices = 4 +input primitive = lines +output primitive = triangle_strip +0:? Sequence +0:16 Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) +0:16 Function Parameters: +0:16 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'outStream' ( out structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:19 color: direct index for structure ( temp 4-component vector of float) +0:19 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:19 Constant: +0:19 1 (const int) +0:19 color: direct index for structure ( temp 4-component vector of float) +0:19 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:19 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp 2-component vector of float) +0:20 uv: direct index for structure ( temp 2-component vector of float) +0:20 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:20 Constant: +0:20 2 (const int) +0:20 uv: direct index for structure ( temp 2-component vector of float) +0:20 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:20 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 2 (const int) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 position: direct index for structure ( temp 4-component vector of float) +0:21 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:21 Constant: +0:21 0 (const int) +0:21 position: direct index for structure ( temp 4-component vector of float) +0:21 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:21 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 0 (const int) +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:? 'outStream.position' ( out 4-component vector of float Position) +0:22 position: direct index for structure ( temp 4-component vector of float) +0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 4-component vector of float) +0:? 'outStream.color' (layout( location=0) out 4-component vector of float) +0:22 color: direct index for structure ( temp 4-component vector of float) +0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:22 Constant: +0:22 1 (const int) +0:22 move second child to first child ( temp 2-component vector of float) +0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) +0:22 uv: direct index for structure ( temp 2-component vector of float) +0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:22 Constant: +0:22 2 (const int) +0:22 EmitVertex ( temp void) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) +0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'outStream' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Linker Objects +0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'outStream.position' ( out 4-component vector of float Position) +0:? 'outStream.color' (layout( location=0) out 4-component vector of float) +0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 4 +input primitive = lines +output primitive = triangle_strip +0:? Sequence +0:16 Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) +0:16 Function Parameters: +0:16 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'outStream' ( out structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:19 color: direct index for structure ( temp 4-component vector of float) +0:19 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:19 Constant: +0:19 1 (const int) +0:19 color: direct index for structure ( temp 4-component vector of float) +0:19 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:19 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp 2-component vector of float) +0:20 uv: direct index for structure ( temp 2-component vector of float) +0:20 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:20 Constant: +0:20 2 (const int) +0:20 uv: direct index for structure ( temp 2-component vector of float) +0:20 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:20 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 2 (const int) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 position: direct index for structure ( temp 4-component vector of float) +0:21 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:21 Constant: +0:21 0 (const int) +0:21 position: direct index for structure ( temp 4-component vector of float) +0:21 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:21 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 0 (const int) +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp 4-component vector of float) +0:? 'outStream.position' ( out 4-component vector of float Position) +0:22 position: direct index for structure ( temp 4-component vector of float) +0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child ( temp 4-component vector of float) +0:? 'outStream.color' (layout( location=0) out 4-component vector of float) +0:22 color: direct index for structure ( temp 4-component vector of float) +0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:22 Constant: +0:22 1 (const int) +0:22 move second child to first child ( temp 2-component vector of float) +0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) +0:22 uv: direct index for structure ( temp 2-component vector of float) +0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:22 Constant: +0:22 2 (const int) +0:22 EmitVertex ( temp void) +0:16 Function Definition: main( ( temp void) +0:16 Function Parameters: +0:? Sequence +0:16 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) +0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'outStream' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Linker Objects +0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? 'outStream.position' ( out 4-component vector of float Position) +0:? 'outStream.color' (layout( location=0) out 4-component vector of float) +0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 58 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 38 41 45 50 + ExecutionMode 4 InputLines + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 4 + Source HLSL 500 + Name 4 "main" + Name 9 "VertexData" + MemberName 9(VertexData) 0 "position" + MemberName 9(VertexData) 1 "color" + MemberName 9(VertexData) 2 "uv" + Name 14 "PS_IN" + MemberName 14(PS_IN) 0 "position" + MemberName 14(PS_IN) 1 "color" + MemberName 14(PS_IN) 2 "uv" + Name 19 "@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;" + Name 17 "vin" + Name 18 "outStream" + Name 21 "vout" + Name 38 "outStream.position" + Name 41 "outStream.color" + Name 45 "outStream.uv" + Name 48 "vin" + Name 50 "vin" + Name 52 "outStream" + Name 53 "param" + Name 55 "param" + Decorate 38(outStream.position) BuiltIn Position + Decorate 41(outStream.color) Location 0 + Decorate 45(outStream.uv) Location 1 + Decorate 50(vin) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeVector 6(float) 2 + 9(VertexData): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2) + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 9(VertexData) 11 + 13: TypePointer Function 12 + 14(PS_IN): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2) + 15: TypePointer Function 14(PS_IN) + 16: TypeFunction 2 13(ptr) 15(ptr) + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 24: TypePointer Function 7(fvec4) + 28: 22(int) Constant 2 + 29: TypePointer Function 8(fvec2) + 33: 22(int) Constant 0 + 37: TypePointer Output 7(fvec4) +38(outStream.position): 37(ptr) Variable Output +41(outStream.color): 37(ptr) Variable Output + 44: TypePointer Output 8(fvec2) +45(outStream.uv): 44(ptr) Variable Output + 49: TypePointer Input 12 + 50(vin): 49(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 48(vin): 13(ptr) Variable Function + 52(outStream): 15(ptr) Variable Function + 53(param): 13(ptr) Variable Function + 55(param): 15(ptr) Variable Function + 51: 12 Load 50(vin) + Store 48(vin) 51 + 54: 12 Load 48(vin) + Store 53(param) 54 + 56: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 53(param) 55(param) + 57: 14(PS_IN) Load 55(param) + Store 52(outStream) 57 + Return + FunctionEnd +19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;): 2 Function None 16 + 17(vin): 13(ptr) FunctionParameter + 18(outStream): 15(ptr) FunctionParameter + 20: Label + 21(vout): 15(ptr) Variable Function + 25: 24(ptr) AccessChain 17(vin) 23 23 + 26: 7(fvec4) Load 25 + 27: 24(ptr) AccessChain 21(vout) 23 + Store 27 26 + 30: 29(ptr) AccessChain 17(vin) 23 28 + 31: 8(fvec2) Load 30 + 32: 29(ptr) AccessChain 21(vout) 28 + Store 32 31 + 34: 24(ptr) AccessChain 17(vin) 23 33 + 35: 7(fvec4) Load 34 + 36: 24(ptr) AccessChain 21(vout) 33 + Store 36 35 + 39: 24(ptr) AccessChain 21(vout) 33 + 40: 7(fvec4) Load 39 + Store 38(outStream.position) 40 + 42: 24(ptr) AccessChain 21(vout) 23 + 43: 7(fvec4) Load 42 + Store 41(outStream.color) 43 + 46: 29(ptr) AccessChain 21(vout) 28 + 47: 8(fvec2) Load 46 + Store 45(outStream.uv) 47 + EmitVertex + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out new file mode 100644 index 0000000000..9beadc722a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out @@ -0,0 +1,276 @@ +hlsl.structbuffer.append.fn.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 indirect index ( buffer 4-component vector of float) +0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) +0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 AtomicAdd ( temp uint) +0:9 @count: direct index for structure ( temp uint) +0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 1 (const uint) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:10 Branch: Return with expression +0:10 indirect index ( buffer 4-component vector of float) +0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) +0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp uint) +0:10 AtomicAdd ( temp uint) +0:10 @count: direct index for structure ( temp uint) +0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 4294967295 (const uint) +0:10 Constant: +0:10 -1 (const int) +0:19 Function Definition: @main(u1; ( temp 4-component vector of float) +0:19 Function Parameters: +0:19 'pos' ( in uint) +0:? Sequence +0:22 Branch: Return with expression +0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) +0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:19 Function Definition: main( ( temp void) +0:19 Function Parameters: +0:? Sequence +0:19 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:19 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:19 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) +0:8 Function Parameters: +0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 indirect index ( buffer 4-component vector of float) +0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) +0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 AtomicAdd ( temp uint) +0:9 @count: direct index for structure ( temp uint) +0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 1 (const uint) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:10 Branch: Return with expression +0:10 indirect index ( buffer 4-component vector of float) +0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) +0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp uint) +0:10 AtomicAdd ( temp uint) +0:10 @count: direct index for structure ( temp uint) +0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 4294967295 (const uint) +0:10 Constant: +0:10 -1 (const int) +0:19 Function Definition: @main(u1; ( temp 4-component vector of float) +0:19 Function Parameters: +0:19 'pos' ( in uint) +0:? Sequence +0:22 Branch: Return with expression +0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) +0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:19 Function Definition: main( ( temp void) +0:19 Function Parameters: +0:? Sequence +0:19 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:19 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:19 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 61 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "" + MemberName 9 0 "@data" + Name 12 "" + MemberName 12 0 "@count" + Name 19 "Fn2(block--vf4[0]1;block--vf4[0]1;" + Name 15 "arg_a" + Name 16 "arg_a@count" + Name 17 "arg_c" + Name 18 "arg_c@count" + Name 24 "@main(u1;" + Name 23 "pos" + Name 49 "sbuf_a" + Name 50 "sbuf_a@count" + Name 51 "sbuf_c" + Name 52 "sbuf_c@count" + Name 56 "pos" + Name 58 "pos" + Name 61 "@entryPointOutput" + Name 62 "param" + Name 65 "sbuf_a@count" + MemberName 65(sbuf_a@count) 0 "@count" + Name 67 "sbuf_a@count" + Name 68 "sbuf_c@count" + Name 69 "sbuf_unused" + Decorate 8 ArrayStride 16 + MemberDecorate 9 0 Offset 0 + Decorate 9 BufferBlock + Decorate 12 BufferBlock + Decorate 49(sbuf_a) DescriptorSet 0 + Decorate 50(sbuf_a@count) DescriptorSet 0 + Decorate 51(sbuf_c) DescriptorSet 0 + Decorate 52(sbuf_c@count) DescriptorSet 0 + Decorate 58(pos) Flat + Decorate 58(pos) Location 0 + Decorate 61(@entryPointOutput) Location 0 + MemberDecorate 65(sbuf_a@count) 0 Offset 0 + Decorate 65(sbuf_a@count) BufferBlock + Decorate 67(sbuf_a@count) DescriptorSet 0 + Decorate 68(sbuf_c@count) DescriptorSet 0 + Decorate 69(sbuf_unused) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeRuntimeArray 7(fvec4) + 9: TypeStruct 8 + 10: TypePointer Uniform 9(struct) + 11: TypeInt 32 0 + 12: TypeStruct 11(int) + 13: TypePointer Uniform 12(struct) + 14: TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr) + 21: TypePointer Function 11(int) + 22: TypeFunction 7(fvec4) 21(ptr) + 26: TypeInt 32 1 + 27: 26(int) Constant 0 + 28: TypePointer Uniform 11(int) + 30: 11(int) Constant 1 + 31: 11(int) Constant 0 + 33: 6(float) Constant 1065353216 + 34: 6(float) Constant 1073741824 + 35: 6(float) Constant 1077936128 + 36: 6(float) Constant 1082130432 + 37: 7(fvec4) ConstantComposite 33 34 35 36 + 38: TypePointer Uniform 7(fvec4) + 41: 11(int) Constant 4294967295 + 43: 26(int) Constant 4294967295 + 49(sbuf_a): 10(ptr) Variable Uniform +50(sbuf_a@count): 13(ptr) Variable Uniform + 51(sbuf_c): 10(ptr) Variable Uniform +52(sbuf_c@count): 13(ptr) Variable Uniform + 57: TypePointer Input 11(int) + 58(pos): 57(ptr) Variable Input + 60: TypePointer Output 7(fvec4) +61(@entryPointOutput): 60(ptr) Variable Output +65(sbuf_a@count): TypeStruct 11(int) + 66: TypePointer Uniform 65(sbuf_a@count) +67(sbuf_a@count): 66(ptr) Variable Uniform +68(sbuf_c@count): 66(ptr) Variable Uniform + 69(sbuf_unused): 10(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 56(pos): 21(ptr) Variable Function + 62(param): 21(ptr) Variable Function + 59: 11(int) Load 58(pos) + Store 56(pos) 59 + 63: 11(int) Load 56(pos) + Store 62(param) 63 + 64: 7(fvec4) FunctionCall 24(@main(u1;) 62(param) + Store 61(@entryPointOutput) 64 + Return + FunctionEnd +19(Fn2(block--vf4[0]1;block--vf4[0]1;): 7(fvec4) Function None 14 + 15(arg_a): 10(ptr) FunctionParameter + 16(arg_a@count): 13(ptr) FunctionParameter + 17(arg_c): 10(ptr) FunctionParameter + 18(arg_c@count): 13(ptr) FunctionParameter + 20: Label + 29: 28(ptr) AccessChain 16(arg_a@count) 27 + 32: 11(int) AtomicIAdd 29 30 31 30 + 39: 38(ptr) AccessChain 15(arg_a) 27 32 + Store 39 37 + 40: 28(ptr) AccessChain 18(arg_c@count) 27 + 42: 11(int) AtomicIAdd 40 30 31 41 + 44: 11(int) IAdd 42 43 + 45: 38(ptr) AccessChain 17(arg_c) 27 44 + 46: 7(fvec4) Load 45 + ReturnValue 46 + FunctionEnd + 24(@main(u1;): 7(fvec4) Function None 22 + 23(pos): 21(ptr) FunctionParameter + 25: Label + 53: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 49(sbuf_a) 50(sbuf_a@count) 51(sbuf_c) 52(sbuf_c@count) + ReturnValue 53 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out new file mode 100644 index 0000000000..dff47f88b6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out @@ -0,0 +1,224 @@ +hlsl.structbuffer.append.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(u1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'pos' ( in uint) +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:8 Constant: +0:8 0 (const uint) +0:8 AtomicAdd ( temp uint) +0:8 @count: direct index for structure ( temp uint) +0:8 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const uint) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:10 Branch: Return with expression +0:10 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp uint) +0:10 AtomicAdd ( temp uint) +0:10 @count: direct index for structure ( temp uint) +0:10 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 4294967295 (const uint) +0:10 Constant: +0:10 -1 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(u1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'pos' ( in uint) +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:8 Constant: +0:8 0 (const uint) +0:8 AtomicAdd ( temp uint) +0:8 @count: direct index for structure ( temp uint) +0:8 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const uint) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:10 Branch: Return with expression +0:10 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp uint) +0:10 AtomicAdd ( temp uint) +0:10 @count: direct index for structure ( temp uint) +0:10 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:10 Constant: +0:10 0 (const int) +0:10 Constant: +0:10 4294967295 (const uint) +0:10 Constant: +0:10 -1 (const int) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 56 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 51 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 15 "sbuf_a" + MemberName 15(sbuf_a) 0 "@data" + Name 17 "sbuf_a" + Name 20 "sbuf_a@count" + MemberName 20(sbuf_a@count) 0 "@count" + Name 22 "sbuf_a@count" + Name 35 "sbuf_c" + Name 36 "sbuf_c@count" + Name 46 "pos" + Name 48 "pos" + Name 51 "@entryPointOutput" + Name 52 "param" + Name 55 "sbuf_unused" + Decorate 14 ArrayStride 16 + MemberDecorate 15(sbuf_a) 0 Offset 0 + Decorate 15(sbuf_a) BufferBlock + Decorate 17(sbuf_a) DescriptorSet 0 + MemberDecorate 20(sbuf_a@count) 0 Offset 0 + Decorate 20(sbuf_a@count) BufferBlock + Decorate 22(sbuf_a@count) DescriptorSet 0 + Decorate 35(sbuf_c) DescriptorSet 0 + Decorate 36(sbuf_c@count) DescriptorSet 0 + Decorate 48(pos) Flat + Decorate 48(pos) Location 0 + Decorate 51(@entryPointOutput) Location 0 + Decorate 55(sbuf_unused) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeRuntimeArray 9(fvec4) + 15(sbuf_a): TypeStruct 14 + 16: TypePointer Uniform 15(sbuf_a) + 17(sbuf_a): 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 +20(sbuf_a@count): TypeStruct 6(int) + 21: TypePointer Uniform 20(sbuf_a@count) +22(sbuf_a@count): 21(ptr) Variable Uniform + 23: TypePointer Uniform 6(int) + 25: 6(int) Constant 1 + 26: 6(int) Constant 0 + 28: 8(float) Constant 1065353216 + 29: 8(float) Constant 1073741824 + 30: 8(float) Constant 1077936128 + 31: 8(float) Constant 1082130432 + 32: 9(fvec4) ConstantComposite 28 29 30 31 + 33: TypePointer Uniform 9(fvec4) + 35(sbuf_c): 16(ptr) Variable Uniform +36(sbuf_c@count): 21(ptr) Variable Uniform + 38: 6(int) Constant 4294967295 + 40: 18(int) Constant 4294967295 + 47: TypePointer Input 6(int) + 48(pos): 47(ptr) Variable Input + 50: TypePointer Output 9(fvec4) +51(@entryPointOutput): 50(ptr) Variable Output + 55(sbuf_unused): 16(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 46(pos): 7(ptr) Variable Function + 52(param): 7(ptr) Variable Function + 49: 6(int) Load 48(pos) + Store 46(pos) 49 + 53: 6(int) Load 46(pos) + Store 52(param) 53 + 54: 9(fvec4) FunctionCall 12(@main(u1;) 52(param) + Store 51(@entryPointOutput) 54 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 24: 23(ptr) AccessChain 22(sbuf_a@count) 19 + 27: 6(int) AtomicIAdd 24 25 26 25 + 34: 33(ptr) AccessChain 17(sbuf_a) 19 27 + Store 34 32 + 37: 23(ptr) AccessChain 36(sbuf_c@count) 19 + 39: 6(int) AtomicIAdd 37 25 26 38 + 41: 6(int) IAdd 39 40 + 42: 33(ptr) AccessChain 35(sbuf_c) 19 41 + 43: 9(fvec4) Load 42 + ReturnValue 43 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out new file mode 100644 index 0000000000..d78f77ed33 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out @@ -0,0 +1,601 @@ +hlsl.structbuffer.atomics.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main(u1; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'pos' ( in uint) +0:? Sequence +0:8 AtomicAdd ( temp uint) +0:8 indirect index (layout( row_major std430) buffer uint) +0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:8 Constant: +0:8 0 (const uint) +0:8 right-shift ( temp int) +0:8 Constant: +0:8 8 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:9 move second child to first child ( temp uint) +0:9 'u' ( temp uint) +0:9 AtomicAdd ( temp uint) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 Constant: +0:9 8 (const int) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 1 (const int) +0:10 AtomicAnd ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 right-shift ( temp int) +0:10 Constant: +0:10 8 (const int) +0:10 Constant: +0:10 2 (const int) +0:10 Constant: +0:10 1 (const int) +0:11 move second child to first child ( temp uint) +0:11 'u' ( temp uint) +0:11 AtomicAnd ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 right-shift ( temp int) +0:11 Constant: +0:11 8 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:12 move second child to first child ( temp uint) +0:12 'u' ( temp uint) +0:12 Convert int to uint ( temp uint) +0:12 AtomicCompSwap ( temp int) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 right-shift ( temp int) +0:12 Constant: +0:12 8 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2 (const int) +0:14 move second child to first child ( temp uint) +0:14 'u' ( temp uint) +0:14 AtomicExchange ( temp uint) +0:14 indirect index (layout( row_major std430) buffer uint) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 right-shift ( temp int) +0:14 Constant: +0:14 8 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 AtomicMax ( temp uint) +0:15 indirect index (layout( row_major std430) buffer uint) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 right-shift ( temp int) +0:15 Constant: +0:15 8 (const int) +0:15 Constant: +0:15 2 (const int) +0:15 Constant: +0:15 1 (const int) +0:16 move second child to first child ( temp uint) +0:16 'u' ( temp uint) +0:16 AtomicMax ( temp uint) +0:16 indirect index (layout( row_major std430) buffer uint) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 right-shift ( temp int) +0:16 Constant: +0:16 8 (const int) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 AtomicMin ( temp uint) +0:17 indirect index (layout( row_major std430) buffer uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 right-shift ( temp int) +0:17 Constant: +0:17 8 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 1 (const int) +0:18 move second child to first child ( temp uint) +0:18 'u' ( temp uint) +0:18 AtomicMin ( temp uint) +0:18 indirect index (layout( row_major std430) buffer uint) +0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:18 Constant: +0:18 0 (const uint) +0:18 right-shift ( temp int) +0:18 Constant: +0:18 8 (const int) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 AtomicOr ( temp uint) +0:19 indirect index (layout( row_major std430) buffer uint) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 right-shift ( temp int) +0:19 Constant: +0:19 8 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp uint) +0:20 'u' ( temp uint) +0:20 AtomicOr ( temp uint) +0:20 indirect index (layout( row_major std430) buffer uint) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 right-shift ( temp int) +0:20 Constant: +0:20 8 (const int) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 1 (const int) +0:21 AtomicXor ( temp uint) +0:21 indirect index (layout( row_major std430) buffer uint) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 right-shift ( temp int) +0:21 Constant: +0:21 8 (const int) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp uint) +0:22 'u' ( temp uint) +0:22 AtomicXor ( temp uint) +0:22 indirect index (layout( row_major std430) buffer uint) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 right-shift ( temp int) +0:22 Constant: +0:22 8 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 1 (const int) +0:24 Branch: Return with expression +0:24 Construct vec4 ( temp 4-component vector of float) +0:24 Convert uint to float ( temp float) +0:24 indirect index (layout( row_major std430) buffer uint) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 right-shift ( temp int) +0:24 'pos' ( in uint) +0:24 Constant: +0:24 2 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main(u1; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'pos' ( in uint) +0:? Sequence +0:8 AtomicAdd ( temp uint) +0:8 indirect index (layout( row_major std430) buffer uint) +0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:8 Constant: +0:8 0 (const uint) +0:8 right-shift ( temp int) +0:8 Constant: +0:8 8 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 1 (const int) +0:9 move second child to first child ( temp uint) +0:9 'u' ( temp uint) +0:9 AtomicAdd ( temp uint) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 Constant: +0:9 8 (const int) +0:9 Constant: +0:9 2 (const int) +0:9 Constant: +0:9 1 (const int) +0:10 AtomicAnd ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 right-shift ( temp int) +0:10 Constant: +0:10 8 (const int) +0:10 Constant: +0:10 2 (const int) +0:10 Constant: +0:10 1 (const int) +0:11 move second child to first child ( temp uint) +0:11 'u' ( temp uint) +0:11 AtomicAnd ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 right-shift ( temp int) +0:11 Constant: +0:11 8 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:12 move second child to first child ( temp uint) +0:12 'u' ( temp uint) +0:12 Convert int to uint ( temp uint) +0:12 AtomicCompSwap ( temp int) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 right-shift ( temp int) +0:12 Constant: +0:12 8 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 2 (const int) +0:14 move second child to first child ( temp uint) +0:14 'u' ( temp uint) +0:14 AtomicExchange ( temp uint) +0:14 indirect index (layout( row_major std430) buffer uint) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 right-shift ( temp int) +0:14 Constant: +0:14 8 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 AtomicMax ( temp uint) +0:15 indirect index (layout( row_major std430) buffer uint) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 right-shift ( temp int) +0:15 Constant: +0:15 8 (const int) +0:15 Constant: +0:15 2 (const int) +0:15 Constant: +0:15 1 (const int) +0:16 move second child to first child ( temp uint) +0:16 'u' ( temp uint) +0:16 AtomicMax ( temp uint) +0:16 indirect index (layout( row_major std430) buffer uint) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 right-shift ( temp int) +0:16 Constant: +0:16 8 (const int) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 AtomicMin ( temp uint) +0:17 indirect index (layout( row_major std430) buffer uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 right-shift ( temp int) +0:17 Constant: +0:17 8 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 1 (const int) +0:18 move second child to first child ( temp uint) +0:18 'u' ( temp uint) +0:18 AtomicMin ( temp uint) +0:18 indirect index (layout( row_major std430) buffer uint) +0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:18 Constant: +0:18 0 (const uint) +0:18 right-shift ( temp int) +0:18 Constant: +0:18 8 (const int) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 AtomicOr ( temp uint) +0:19 indirect index (layout( row_major std430) buffer uint) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 right-shift ( temp int) +0:19 Constant: +0:19 8 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp uint) +0:20 'u' ( temp uint) +0:20 AtomicOr ( temp uint) +0:20 indirect index (layout( row_major std430) buffer uint) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 right-shift ( temp int) +0:20 Constant: +0:20 8 (const int) +0:20 Constant: +0:20 2 (const int) +0:20 Constant: +0:20 1 (const int) +0:21 AtomicXor ( temp uint) +0:21 indirect index (layout( row_major std430) buffer uint) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 right-shift ( temp int) +0:21 Constant: +0:21 8 (const int) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp uint) +0:22 'u' ( temp uint) +0:22 AtomicXor ( temp uint) +0:22 indirect index (layout( row_major std430) buffer uint) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 right-shift ( temp int) +0:22 Constant: +0:22 8 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 1 (const int) +0:24 Branch: Return with expression +0:24 Construct vec4 ( temp 4-component vector of float) +0:24 Convert uint to float ( temp float) +0:24 indirect index (layout( row_major std430) buffer uint) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 right-shift ( temp int) +0:24 'pos' ( in uint) +0:24 Constant: +0:24 2 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 87 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 80 83 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 15 "sbuf" + MemberName 15(sbuf) 0 "@data" + Name 17 "sbuf" + Name 29 "u" + Name 78 "pos" + Name 80 "pos" + Name 83 "@entryPointOutput" + Name 84 "param" + Decorate 14 ArrayStride 4 + MemberDecorate 15(sbuf) 0 Offset 0 + Decorate 15(sbuf) BufferBlock + Decorate 17(sbuf) DescriptorSet 0 + Decorate 80(pos) Flat + Decorate 80(pos) Location 0 + Decorate 83(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeRuntimeArray 6(int) + 15(sbuf): TypeStruct 14 + 16: TypePointer Uniform 15(sbuf) + 17(sbuf): 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: 18(int) Constant 8 + 21: 18(int) Constant 2 + 23: TypePointer Uniform 6(int) + 25: 18(int) Constant 1 + 26: 6(int) Constant 1 + 27: 6(int) Constant 0 + 79: TypePointer Input 6(int) + 80(pos): 79(ptr) Variable Input + 82: TypePointer Output 9(fvec4) +83(@entryPointOutput): 82(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 78(pos): 7(ptr) Variable Function + 84(param): 7(ptr) Variable Function + 81: 6(int) Load 80(pos) + Store 78(pos) 81 + 85: 6(int) Load 78(pos) + Store 84(param) 85 + 86: 9(fvec4) FunctionCall 12(@main(u1;) 84(param) + Store 83(@entryPointOutput) 86 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 29(u): 7(ptr) Variable Function + 22: 18(int) ShiftRightArithmetic 20 21 + 24: 23(ptr) AccessChain 17(sbuf) 19 22 + 28: 6(int) AtomicIAdd 24 26 27 25 + 30: 18(int) ShiftRightArithmetic 20 21 + 31: 23(ptr) AccessChain 17(sbuf) 19 30 + 32: 6(int) AtomicIAdd 31 26 27 25 + Store 29(u) 32 + 33: 18(int) ShiftRightArithmetic 20 21 + 34: 23(ptr) AccessChain 17(sbuf) 19 33 + 35: 6(int) AtomicAnd 34 26 27 25 + 36: 18(int) ShiftRightArithmetic 20 21 + 37: 23(ptr) AccessChain 17(sbuf) 19 36 + 38: 6(int) AtomicAnd 37 26 27 25 + Store 29(u) 38 + 39: 18(int) ShiftRightArithmetic 20 21 + 40: 23(ptr) AccessChain 17(sbuf) 19 39 + 41: 18(int) AtomicCompareExchange 40 26 27 27 21 25 + 42: 6(int) Bitcast 41 + Store 29(u) 42 + 43: 18(int) ShiftRightArithmetic 20 21 + 44: 23(ptr) AccessChain 17(sbuf) 19 43 + 45: 6(int) AtomicExchange 44 26 27 25 + Store 29(u) 45 + 46: 18(int) ShiftRightArithmetic 20 21 + 47: 23(ptr) AccessChain 17(sbuf) 19 46 + 48: 6(int) AtomicUMax 47 26 27 25 + 49: 18(int) ShiftRightArithmetic 20 21 + 50: 23(ptr) AccessChain 17(sbuf) 19 49 + 51: 6(int) AtomicUMax 50 26 27 25 + Store 29(u) 51 + 52: 18(int) ShiftRightArithmetic 20 21 + 53: 23(ptr) AccessChain 17(sbuf) 19 52 + 54: 6(int) AtomicUMin 53 26 27 25 + 55: 18(int) ShiftRightArithmetic 20 21 + 56: 23(ptr) AccessChain 17(sbuf) 19 55 + 57: 6(int) AtomicUMin 56 26 27 25 + Store 29(u) 57 + 58: 18(int) ShiftRightArithmetic 20 21 + 59: 23(ptr) AccessChain 17(sbuf) 19 58 + 60: 6(int) AtomicOr 59 26 27 25 + 61: 18(int) ShiftRightArithmetic 20 21 + 62: 23(ptr) AccessChain 17(sbuf) 19 61 + 63: 6(int) AtomicOr 62 26 27 25 + Store 29(u) 63 + 64: 18(int) ShiftRightArithmetic 20 21 + 65: 23(ptr) AccessChain 17(sbuf) 19 64 + 66: 6(int) AtomicXor 65 26 27 25 + 67: 18(int) ShiftRightArithmetic 20 21 + 68: 23(ptr) AccessChain 17(sbuf) 19 67 + 69: 6(int) AtomicXor 68 26 27 25 + Store 29(u) 69 + 70: 6(int) Load 11(pos) + 71: 18(int) ShiftRightLogical 70 21 + 72: 23(ptr) AccessChain 17(sbuf) 19 71 + 73: 6(int) Load 72 + 74: 8(float) ConvertUToF 73 + 75: 9(fvec4) CompositeConstruct 74 74 74 74 + ReturnValue 75 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out new file mode 100644 index 0000000000..862ebbef08 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out @@ -0,0 +1,478 @@ +hlsl.structbuffer.byte.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main(u1; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'pos' ( in uint) +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'size' ( temp uint) +0:7 array length ( temp uint) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:7 Constant: +0:7 0 (const uint) +0:12 Branch: Return with expression +0:11 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Convert uint to float ( temp float) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:? Convert uint to float ( temp 2-component vector of float) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 add ( temp uint) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 4 (const uint) +0:10 Constant: +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0.000000 +0:10 Constant: +0:10 0.000000 +0:? Construct vec4 ( temp 4-component vector of float) +0:? Convert uint to float ( temp 3-component vector of float) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 add ( temp uint) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 8 (const uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0.000000 +0:? Convert uint to float ( temp 4-component vector of float) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 add ( temp uint) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 12 (const uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main(u1; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'pos' ( in uint) +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'size' ( temp uint) +0:7 array length ( temp uint) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:7 Constant: +0:7 0 (const uint) +0:12 Branch: Return with expression +0:11 add ( temp 4-component vector of float) +0:10 add ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 Convert uint to float ( temp float) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:? Convert uint to float ( temp 2-component vector of float) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 add ( temp uint) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 4 (const uint) +0:10 Constant: +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0.000000 +0:10 Constant: +0:10 0.000000 +0:? Construct vec4 ( temp 4-component vector of float) +0:? Convert uint to float ( temp 3-component vector of float) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 add ( temp uint) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 8 (const uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0.000000 +0:? Convert uint to float ( temp 4-component vector of float) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 add ( temp uint) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 12 (const uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 114 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 107 110 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 14 "size" + Name 16 "sbuf" + MemberName 16(sbuf) 0 "@data" + Name 18 "sbuf" + Name 30 "byteAddrTemp" + Name 53 "byteAddrTemp" + Name 78 "byteAddrTemp" + Name 105 "pos" + Name 107 "pos" + Name 110 "@entryPointOutput" + Name 111 "param" + Decorate 15 ArrayStride 4 + MemberDecorate 16(sbuf) 0 NonWritable + MemberDecorate 16(sbuf) 0 Offset 0 + Decorate 16(sbuf) BufferBlock + Decorate 18(sbuf) DescriptorSet 0 + Decorate 107(pos) Flat + Decorate 107(pos) Location 0 + Decorate 110(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 15: TypeRuntimeArray 6(int) + 16(sbuf): TypeStruct 15 + 17: TypePointer Uniform 16(sbuf) + 18(sbuf): 17(ptr) Variable Uniform + 19: TypeInt 32 1 + 21: 19(int) Constant 0 + 23: 19(int) Constant 2 + 25: TypePointer Uniform 6(int) + 29: TypePointer Function 19(int) + 32: 6(int) Constant 4 + 39: 19(int) Constant 1 + 43: TypeVector 6(int) 2 + 45: TypeVector 8(float) 2 + 47: 8(float) Constant 0 + 55: 6(int) Constant 8 + 69: TypeVector 6(int) 3 + 71: TypeVector 8(float) 3 + 80: 6(int) Constant 12 + 95: 19(int) Constant 3 + 99: TypeVector 6(int) 4 + 106: TypePointer Input 6(int) + 107(pos): 106(ptr) Variable Input + 109: TypePointer Output 9(fvec4) +110(@entryPointOutput): 109(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 105(pos): 7(ptr) Variable Function + 111(param): 7(ptr) Variable Function + 108: 6(int) Load 107(pos) + Store 105(pos) 108 + 112: 6(int) Load 105(pos) + Store 111(param) 112 + 113: 9(fvec4) FunctionCall 12(@main(u1;) 111(param) + Store 110(@entryPointOutput) 113 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 14(size): 7(ptr) Variable Function +30(byteAddrTemp): 29(ptr) Variable Function +53(byteAddrTemp): 29(ptr) Variable Function +78(byteAddrTemp): 29(ptr) Variable Function + 20: 19(int) ArrayLength 18(sbuf) 0 + Store 14(size) 20 + 22: 6(int) Load 11(pos) + 24: 19(int) ShiftRightLogical 22 23 + 26: 25(ptr) AccessChain 18(sbuf) 21 24 + 27: 6(int) Load 26 + 28: 8(float) ConvertUToF 27 + 31: 6(int) Load 11(pos) + 33: 6(int) IAdd 31 32 + 34: 19(int) ShiftRightLogical 33 23 + Store 30(byteAddrTemp) 34 + 35: 19(int) Load 30(byteAddrTemp) + 36: 25(ptr) AccessChain 18(sbuf) 21 35 + 37: 6(int) Load 36 + 38: 19(int) Load 30(byteAddrTemp) + 40: 19(int) IAdd 38 39 + 41: 25(ptr) AccessChain 18(sbuf) 21 40 + 42: 6(int) Load 41 + 44: 43(ivec2) CompositeConstruct 37 42 + 46: 45(fvec2) ConvertUToF 44 + 48: 8(float) CompositeExtract 46 0 + 49: 8(float) CompositeExtract 46 1 + 50: 9(fvec4) CompositeConstruct 48 49 47 47 + 51: 9(fvec4) CompositeConstruct 28 28 28 28 + 52: 9(fvec4) FAdd 51 50 + 54: 6(int) Load 11(pos) + 56: 6(int) IAdd 54 55 + 57: 19(int) ShiftRightLogical 56 23 + Store 53(byteAddrTemp) 57 + 58: 19(int) Load 53(byteAddrTemp) + 59: 25(ptr) AccessChain 18(sbuf) 21 58 + 60: 6(int) Load 59 + 61: 19(int) Load 53(byteAddrTemp) + 62: 19(int) IAdd 61 39 + 63: 25(ptr) AccessChain 18(sbuf) 21 62 + 64: 6(int) Load 63 + 65: 19(int) Load 53(byteAddrTemp) + 66: 19(int) IAdd 65 23 + 67: 25(ptr) AccessChain 18(sbuf) 21 66 + 68: 6(int) Load 67 + 70: 69(ivec3) CompositeConstruct 60 64 68 + 72: 71(fvec3) ConvertUToF 70 + 73: 8(float) CompositeExtract 72 0 + 74: 8(float) CompositeExtract 72 1 + 75: 8(float) CompositeExtract 72 2 + 76: 9(fvec4) CompositeConstruct 73 74 75 47 + 77: 9(fvec4) FAdd 52 76 + 79: 6(int) Load 11(pos) + 81: 6(int) IAdd 79 80 + 82: 19(int) ShiftRightLogical 81 23 + Store 78(byteAddrTemp) 82 + 83: 19(int) Load 78(byteAddrTemp) + 84: 25(ptr) AccessChain 18(sbuf) 21 83 + 85: 6(int) Load 84 + 86: 19(int) Load 78(byteAddrTemp) + 87: 19(int) IAdd 86 39 + 88: 25(ptr) AccessChain 18(sbuf) 21 87 + 89: 6(int) Load 88 + 90: 19(int) Load 78(byteAddrTemp) + 91: 19(int) IAdd 90 23 + 92: 25(ptr) AccessChain 18(sbuf) 21 91 + 93: 6(int) Load 92 + 94: 19(int) Load 78(byteAddrTemp) + 96: 19(int) IAdd 94 95 + 97: 25(ptr) AccessChain 18(sbuf) 21 96 + 98: 6(int) Load 97 + 100: 99(ivec4) CompositeConstruct 85 89 93 98 + 101: 9(fvec4) ConvertUToF 100 + 102: 9(fvec4) FAdd 77 101 + ReturnValue 102 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out new file mode 100644 index 0000000000..18de2a8d55 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out @@ -0,0 +1,308 @@ +hlsl.structbuffer.coherent.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in uint) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 indirect index (layout( row_major std430) buffer float) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 add ( temp uint) +0:13 'pos' ( in uint) +0:13 Constant: +0:13 1 (const uint) +0:13 Constant: +0:13 42.000000 +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 'size' ( temp uint) +0:17 array length ( temp uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 move second child to first child ( temp uint) +0:17 'stride' ( temp uint) +0:17 Constant: +0:17 16 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 test: direct index for structure ( temp bool) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 'pos' ( in uint) +0:19 Constant: +0:19 1 (const int) +0:19 true case +0:20 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:20 add ( temp 3-component vector of float) +0:20 color: direct index for structure ( temp 3-component vector of float) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index (layout( row_major std430) buffer float) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0.000000 +0:19 false case +0:22 Branch: Return with expression +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 Convert uint to float ( temp float) +0:22 add ( temp uint) +0:22 'size' ( temp uint) +0:22 'stride' ( temp uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in uint) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 indirect index (layout( row_major std430) buffer float) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 add ( temp uint) +0:13 'pos' ( in uint) +0:13 Constant: +0:13 1 (const uint) +0:13 Constant: +0:13 42.000000 +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 'size' ( temp uint) +0:17 array length ( temp uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 move second child to first child ( temp uint) +0:17 'stride' ( temp uint) +0:17 Constant: +0:17 16 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 test: direct index for structure ( temp bool) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 'pos' ( in uint) +0:19 Constant: +0:19 1 (const int) +0:19 true case +0:20 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:20 add ( temp 3-component vector of float) +0:20 color: direct index for structure ( temp 3-component vector of float) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index (layout( row_major std430) buffer float) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0.000000 +0:19 false case +0:22 Branch: Return with expression +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 Convert uint to float ( temp float) +0:22 add ( temp uint) +0:22 'size' ( temp uint) +0:22 'stride' ( temp uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 71 74 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 15 "sbuf2" + MemberName 15(sbuf2) 0 "@data" + Name 17 "sbuf2" + Name 26 "size" + Name 28 "sb_t" + MemberName 28(sb_t) 0 "color" + MemberName 28(sb_t) 1 "test" + Name 30 "sbuf" + MemberName 30(sbuf) 0 "@data" + Name 32 "sbuf" + Name 34 "stride" + Name 69 "pos" + Name 71 "pos" + Name 74 "@entryPointOutput" + Name 75 "param" + Decorate 14 ArrayStride 4 + MemberDecorate 15(sbuf2) 0 Coherent + MemberDecorate 15(sbuf2) 0 Offset 0 + Decorate 15(sbuf2) BufferBlock + Decorate 17(sbuf2) DescriptorSet 0 + MemberDecorate 28(sb_t) 0 Offset 0 + MemberDecorate 28(sb_t) 1 Offset 12 + Decorate 29 ArrayStride 16 + MemberDecorate 30(sbuf) 0 Coherent + MemberDecorate 30(sbuf) 0 Offset 0 + Decorate 30(sbuf) BufferBlock + Decorate 32(sbuf) DescriptorSet 0 + Decorate 71(pos) Flat + Decorate 71(pos) Location 0 + Decorate 74(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeRuntimeArray 8(float) + 15(sbuf2): TypeStruct 14 + 16: TypePointer Uniform 15(sbuf2) + 17(sbuf2): 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 21: 6(int) Constant 1 + 23: 8(float) Constant 1109917696 + 24: TypePointer Uniform 8(float) + 27: TypeVector 8(float) 3 + 28(sb_t): TypeStruct 27(fvec3) 6(int) + 29: TypeRuntimeArray 28(sb_t) + 30(sbuf): TypeStruct 29 + 31: TypePointer Uniform 30(sbuf) + 32(sbuf): 31(ptr) Variable Uniform + 35: 6(int) Constant 16 + 37: 18(int) Constant 1 + 38: TypePointer Uniform 6(int) + 41: TypeBool + 42: 6(int) Constant 0 + 47: TypePointer Uniform 27(fvec3) + 55: 8(float) Constant 0 + 70: TypePointer Input 6(int) + 71(pos): 70(ptr) Variable Input + 73: TypePointer Output 9(fvec4) +74(@entryPointOutput): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 69(pos): 7(ptr) Variable Function + 75(param): 7(ptr) Variable Function + 72: 6(int) Load 71(pos) + Store 69(pos) 72 + 76: 6(int) Load 69(pos) + Store 75(param) 76 + 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) + Store 74(@entryPointOutput) 77 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 26(size): 7(ptr) Variable Function + 34(stride): 7(ptr) Variable Function + 20: 6(int) Load 11(pos) + 22: 6(int) IAdd 20 21 + 25: 24(ptr) AccessChain 17(sbuf2) 19 22 + Store 25 23 + 33: 18(int) ArrayLength 32(sbuf) 0 + Store 26(size) 33 + Store 34(stride) 35 + 36: 6(int) Load 11(pos) + 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 + 40: 6(int) Load 39 + 43: 41(bool) INotEqual 40 42 + SelectionMerge 45 None + BranchConditional 43 44 61 + 44: Label + 46: 6(int) Load 11(pos) + 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 + 49: 27(fvec3) Load 48 + 50: 6(int) Load 11(pos) + 51: 24(ptr) AccessChain 17(sbuf2) 19 50 + 52: 8(float) Load 51 + 53: 27(fvec3) CompositeConstruct 52 52 52 + 54: 27(fvec3) FAdd 49 53 + 56: 8(float) CompositeExtract 54 0 + 57: 8(float) CompositeExtract 54 1 + 58: 8(float) CompositeExtract 54 2 + 59: 9(fvec4) CompositeConstruct 56 57 58 55 + ReturnValue 59 + 61: Label + 62: 6(int) Load 26(size) + 63: 6(int) Load 34(stride) + 64: 6(int) IAdd 62 63 + 65: 8(float) ConvertUToF 64 + 66: 9(fvec4) CompositeConstruct 65 65 65 65 + ReturnValue 66 + 45: Label + 68: 9(fvec4) Undef + ReturnValue 68 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out new file mode 100644 index 0000000000..82e307beab --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out @@ -0,0 +1,327 @@ +hlsl.structbuffer.floatidx.comp +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:13 Function Definition: @main(vu3; ( temp void) +0:13 Function Parameters: +0:13 'nThreadId' ( in 3-component vector of uint) +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 add ( temp uint) +0:14 AtomicAdd ( temp uint) +0:14 @count: direct index for structure ( temp uint) +0:14 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 4294967295 (const uint) +0:14 Constant: +0:14 -1 (const int) +0:15 Sequence +0:15 move second child to first child ( temp 2-component vector of float) +0:15 'coord' ( temp 2-component vector of float) +0:15 Convert uint to float ( temp 2-component vector of float) +0:15 vector swizzle ( temp 2-component vector of uint) +0:15 threadId: direct index for structure ( temp 2-component vector of uint) +0:15 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:15 Constant: +0:15 1 (const int) +0:15 Sequence +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1 (const int) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'storeTemp' ( temp 4-component vector of float) +0:16 color: direct index for structure ( temp 4-component vector of float) +0:16 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:16 Constant: +0:16 0 (const int) +0:16 imageStore ( temp void) +0:16 'outtx' (layout( rgba32f) uniform image2D) +0:16 Convert float to uint ( temp 2-component vector of uint) +0:16 'coord' ( temp 2-component vector of float) +0:16 'storeTemp' ( temp 4-component vector of float) +0:16 'storeTemp' ( temp 4-component vector of float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:18 Constant: +0:18 0 (const uint) +0:18 Convert float to uint ( temp uint) +0:18 direct index ( temp float) +0:18 'coord' ( temp 2-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:18 Constant: +0:18 0 (const uint) +0:18 Convert float to uint ( temp uint) +0:18 direct index ( temp float) +0:18 'coord' ( temp 2-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'nThreadId' ( temp 3-component vector of uint) +0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @main(vu3; ( temp void) +0:? 'nThreadId' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'outtx' (layout( rgba32f) uniform image2D) +0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) +0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (1, 1, 1) +0:? Sequence +0:13 Function Definition: @main(vu3; ( temp void) +0:13 Function Parameters: +0:13 'nThreadId' ( in 3-component vector of uint) +0:? Sequence +0:14 Sequence +0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 add ( temp uint) +0:14 AtomicAdd ( temp uint) +0:14 @count: direct index for structure ( temp uint) +0:14 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 4294967295 (const uint) +0:14 Constant: +0:14 -1 (const int) +0:15 Sequence +0:15 move second child to first child ( temp 2-component vector of float) +0:15 'coord' ( temp 2-component vector of float) +0:15 Convert uint to float ( temp 2-component vector of float) +0:15 vector swizzle ( temp 2-component vector of uint) +0:15 threadId: direct index for structure ( temp 2-component vector of uint) +0:15 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:15 Constant: +0:15 1 (const int) +0:15 Sequence +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1 (const int) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'storeTemp' ( temp 4-component vector of float) +0:16 color: direct index for structure ( temp 4-component vector of float) +0:16 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) +0:16 Constant: +0:16 0 (const int) +0:16 imageStore ( temp void) +0:16 'outtx' (layout( rgba32f) uniform image2D) +0:16 Convert float to uint ( temp 2-component vector of uint) +0:16 'coord' ( temp 2-component vector of float) +0:16 'storeTemp' ( temp 4-component vector of float) +0:16 'storeTemp' ( temp 4-component vector of float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:18 Constant: +0:18 0 (const uint) +0:18 Convert float to uint ( temp uint) +0:18 direct index ( temp float) +0:18 'coord' ( temp 2-component vector of float) +0:18 Constant: +0:18 0 (const int) +0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) +0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) +0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:18 Constant: +0:18 0 (const uint) +0:18 Convert float to uint ( temp uint) +0:18 direct index ( temp float) +0:18 'coord' ( temp 2-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:13 Function Definition: main( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'nThreadId' ( temp 3-component vector of uint) +0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @main(vu3; ( temp void) +0:? 'nThreadId' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'outtx' (layout( rgba32f) uniform image2D) +0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) +0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) +0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 85 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 80 + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vu3;" + Name 10 "nThreadId" + Name 16 "sb_t" + MemberName 16(sb_t) 0 "color" + MemberName 16(sb_t) 1 "threadId" + Name 18 "data" + Name 19 "sb_t" + MemberName 19(sb_t) 0 "color" + MemberName 19(sb_t) 1 "threadId" + Name 21 "csb" + MemberName 21(csb) 0 "@data" + Name 23 "csb" + Name 26 "csb@count" + MemberName 26(csb@count) 0 "@count" + Name 28 "csb@count" + Name 49 "coord" + Name 53 "storeTemp" + Name 58 "outtx" + Name 64 "rwsb" + MemberName 64(rwsb) 0 "@data" + Name 66 "rwsb" + Name 78 "nThreadId" + Name 80 "nThreadId" + Name 82 "param" + MemberDecorate 19(sb_t) 0 Offset 0 + MemberDecorate 19(sb_t) 1 Offset 16 + Decorate 20 ArrayStride 32 + MemberDecorate 21(csb) 0 Offset 0 + Decorate 21(csb) BufferBlock + Decorate 23(csb) DescriptorSet 0 + Decorate 23(csb) Binding 1 + MemberDecorate 26(csb@count) 0 Offset 0 + Decorate 26(csb@count) BufferBlock + Decorate 28(csb@count) DescriptorSet 0 + Decorate 58(outtx) DescriptorSet 0 + Decorate 63 ArrayStride 16 + MemberDecorate 64(rwsb) 0 Offset 0 + Decorate 64(rwsb) BufferBlock + Decorate 66(rwsb) DescriptorSet 0 + Decorate 80(nThreadId) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeFloat 32 + 14: TypeVector 13(float) 4 + 15: TypeVector 6(int) 2 + 16(sb_t): TypeStruct 14(fvec4) 15(ivec2) + 17: TypePointer Function 16(sb_t) + 19(sb_t): TypeStruct 14(fvec4) 15(ivec2) + 20: TypeRuntimeArray 19(sb_t) + 21(csb): TypeStruct 20 + 22: TypePointer Uniform 21(csb) + 23(csb): 22(ptr) Variable Uniform + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 26(csb@count): TypeStruct 6(int) + 27: TypePointer Uniform 26(csb@count) + 28(csb@count): 27(ptr) Variable Uniform + 29: TypePointer Uniform 6(int) + 31: 6(int) Constant 4294967295 + 32: 6(int) Constant 1 + 33: 6(int) Constant 0 + 35: 24(int) Constant 4294967295 + 37: TypePointer Uniform 19(sb_t) + 41: TypePointer Function 14(fvec4) + 44: 24(int) Constant 1 + 45: TypePointer Function 15(ivec2) + 47: TypeVector 13(float) 2 + 48: TypePointer Function 47(fvec2) + 56: TypeImage 13(float) 2D nonsampled format:Rgba32f + 57: TypePointer UniformConstant 56 + 58(outtx): 57(ptr) Variable UniformConstant + 63: TypeRuntimeArray 14(fvec4) + 64(rwsb): TypeStruct 63 + 65: TypePointer Uniform 64(rwsb) + 66(rwsb): 65(ptr) Variable Uniform + 67: TypePointer Function 13(float) + 74: TypePointer Uniform 14(fvec4) + 79: TypePointer Input 7(ivec3) + 80(nThreadId): 79(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 78(nThreadId): 8(ptr) Variable Function + 82(param): 8(ptr) Variable Function + 81: 7(ivec3) Load 80(nThreadId) + Store 78(nThreadId) 81 + 83: 7(ivec3) Load 78(nThreadId) + Store 82(param) 83 + 84: 2 FunctionCall 11(@main(vu3;) 82(param) + Return + FunctionEnd + 11(@main(vu3;): 2 Function None 9 + 10(nThreadId): 8(ptr) FunctionParameter + 12: Label + 18(data): 17(ptr) Variable Function + 49(coord): 48(ptr) Variable Function + 53(storeTemp): 41(ptr) Variable Function + 30: 29(ptr) AccessChain 28(csb@count) 25 + 34: 6(int) AtomicIAdd 30 32 33 31 + 36: 6(int) IAdd 34 35 + 38: 37(ptr) AccessChain 23(csb) 25 36 + 39: 19(sb_t) Load 38 + 40: 14(fvec4) CompositeExtract 39 0 + 42: 41(ptr) AccessChain 18(data) 25 + Store 42 40 + 43: 15(ivec2) CompositeExtract 39 1 + 46: 45(ptr) AccessChain 18(data) 44 + Store 46 43 + 50: 45(ptr) AccessChain 18(data) 44 + 51: 15(ivec2) Load 50 + 52: 47(fvec2) ConvertUToF 51 + Store 49(coord) 52 + 54: 41(ptr) AccessChain 18(data) 25 + 55: 14(fvec4) Load 54 + Store 53(storeTemp) 55 + 59: 56 Load 58(outtx) + 60: 47(fvec2) Load 49(coord) + 61: 15(ivec2) ConvertFToU 60 + 62: 14(fvec4) Load 53(storeTemp) + ImageWrite 59 61 62 + 68: 67(ptr) AccessChain 49(coord) 33 + 69: 13(float) Load 68 + 70: 6(int) ConvertFToU 69 + 71: 67(ptr) AccessChain 49(coord) 32 + 72: 13(float) Load 71 + 73: 6(int) ConvertFToU 72 + 75: 74(ptr) AccessChain 66(rwsb) 25 73 + 76: 14(fvec4) Load 75 + 77: 74(ptr) AccessChain 66(rwsb) 25 70 + Store 77 76 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out new file mode 100644 index 0000000000..4bbc550d8c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out @@ -0,0 +1,294 @@ +hlsl.structbuffer.fn.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) +0:5 Function Parameters: +0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:5 'bufferOffset' ( in uint) +0:? Sequence +0:6 Branch: Return with expression +0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 'bufferOffset' ( in uint) +0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) +0:10 Function Parameters: +0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:10 'bufferOffset' ( in uint) +0:10 'data' ( in 4-component vector of uint) +0:? Sequence +0:11 move second child to first child ( temp 4-component vector of uint) +0:11 indirect index ( buffer 4-component vector of uint) +0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) +0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'bufferOffset' ( in uint) +0:11 'data' ( in 4-component vector of uint) +0:20 Function Definition: @main(u1; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 'pos' ( in uint) +0:? Sequence +0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) +0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:21 Constant: +0:21 2 (const uint) +0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) +0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:21 Constant: +0:21 3 (const uint) +0:23 Branch: Return with expression +0:23 Constant: +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:20 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) +0:5 Function Parameters: +0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:5 'bufferOffset' ( in uint) +0:? Sequence +0:6 Branch: Return with expression +0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 'bufferOffset' ( in uint) +0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) +0:10 Function Parameters: +0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:10 'bufferOffset' ( in uint) +0:10 'data' ( in 4-component vector of uint) +0:? Sequence +0:11 move second child to first child ( temp 4-component vector of uint) +0:11 indirect index ( buffer 4-component vector of uint) +0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) +0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'bufferOffset' ( in uint) +0:11 'data' ( in 4-component vector of uint) +0:20 Function Definition: @main(u1; ( temp 4-component vector of float) +0:20 Function Parameters: +0:20 'pos' ( in uint) +0:? Sequence +0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) +0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) +0:21 Constant: +0:21 2 (const uint) +0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) +0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:21 Constant: +0:21 3 (const uint) +0:23 Branch: Return with expression +0:23 Constant: +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:20 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 63 66 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "" + MemberName 9 0 "@data" + Name 15 "get(block--vu4[0]1;u1;" + Name 13 "sb" + Name 14 "bufferOffset" + Name 18 "" + MemberName 18 0 "@data" + Name 20 "" + MemberName 20 0 "@count" + Name 28 "set(block--vu4[0]1;u1;vu4;" + Name 24 "sb" + Name 25 "sb@count" + Name 26 "bufferOffset" + Name 27 "data" + Name 34 "@main(u1;" + Name 33 "pos" + Name 47 "sbuf2" + Name 48 "sbuf2@count" + Name 50 "sbuf" + Name 52 "param" + Name 54 "param" + Name 55 "param" + Name 61 "pos" + Name 63 "pos" + Name 66 "@entryPointOutput" + Name 67 "param" + Name 70 "sbuf2@count" + MemberName 70(sbuf2@count) 0 "@count" + Name 72 "sbuf2@count" + Name 75 "sbuf3" + MemberName 75(sbuf3) 0 "@data" + Name 77 "sbuf3" + Decorate 8 ArrayStride 16 + MemberDecorate 9 0 NonWritable + MemberDecorate 9 0 Offset 0 + Decorate 9 BufferBlock + Decorate 13(sb) NonWritable + Decorate 17 ArrayStride 16 + MemberDecorate 18 0 Offset 0 + Decorate 18 BufferBlock + Decorate 20 BufferBlock + Decorate 47(sbuf2) DescriptorSet 0 + Decorate 48(sbuf2@count) DescriptorSet 0 + Decorate 50(sbuf) DescriptorSet 0 + Decorate 50(sbuf) Binding 10 + Decorate 63(pos) Flat + Decorate 63(pos) Location 0 + Decorate 66(@entryPointOutput) Location 0 + MemberDecorate 70(sbuf2@count) 0 Offset 0 + Decorate 70(sbuf2@count) BufferBlock + Decorate 72(sbuf2@count) DescriptorSet 0 + Decorate 74 ArrayStride 16 + MemberDecorate 75(sbuf3) 0 NonWritable + MemberDecorate 75(sbuf3) 0 Offset 0 + Decorate 75(sbuf3) BufferBlock + Decorate 77(sbuf3) DescriptorSet 0 + Decorate 77(sbuf3) Binding 12 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeRuntimeArray 7(ivec4) + 9: TypeStruct 8 + 10: TypePointer Uniform 9(struct) + 11: TypePointer Function 6(int) + 12: TypeFunction 7(ivec4) 10(ptr) 11(ptr) + 17: TypeRuntimeArray 7(ivec4) + 18: TypeStruct 17 + 19: TypePointer Uniform 18(struct) + 20: TypeStruct 6(int) + 21: TypePointer Uniform 20(struct) + 22: TypePointer Function 7(ivec4) + 23: TypeFunction 2 19(ptr) 21(ptr) 11(ptr) 22(ptr) + 30: TypeFloat 32 + 31: TypeVector 30(float) 4 + 32: TypeFunction 31(fvec4) 11(ptr) + 36: TypeInt 32 1 + 37: 36(int) Constant 0 + 39: TypePointer Uniform 7(ivec4) + 47(sbuf2): 19(ptr) Variable Uniform + 48(sbuf2@count): 21(ptr) Variable Uniform + 49: 6(int) Constant 2 + 50(sbuf): 10(ptr) Variable Uniform + 51: 6(int) Constant 3 + 57: 30(float) Constant 0 + 58: 31(fvec4) ConstantComposite 57 57 57 57 + 62: TypePointer Input 6(int) + 63(pos): 62(ptr) Variable Input + 65: TypePointer Output 31(fvec4) +66(@entryPointOutput): 65(ptr) Variable Output + 70(sbuf2@count): TypeStruct 6(int) + 71: TypePointer Uniform 70(sbuf2@count) + 72(sbuf2@count): 71(ptr) Variable Uniform + 73: TypeVector 6(int) 3 + 74: TypeRuntimeArray 73(ivec3) + 75(sbuf3): TypeStruct 74 + 76: TypePointer Uniform 75(sbuf3) + 77(sbuf3): 76(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 61(pos): 11(ptr) Variable Function + 67(param): 11(ptr) Variable Function + 64: 6(int) Load 63(pos) + Store 61(pos) 64 + 68: 6(int) Load 61(pos) + Store 67(param) 68 + 69: 31(fvec4) FunctionCall 34(@main(u1;) 67(param) + Store 66(@entryPointOutput) 69 + Return + FunctionEnd +15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12 + 13(sb): 10(ptr) FunctionParameter +14(bufferOffset): 11(ptr) FunctionParameter + 16: Label + 38: 6(int) Load 14(bufferOffset) + 40: 39(ptr) AccessChain 13(sb) 37 38 + 41: 7(ivec4) Load 40 + ReturnValue 41 + FunctionEnd +28(set(block--vu4[0]1;u1;vu4;): 2 Function None 23 + 24(sb): 19(ptr) FunctionParameter + 25(sb@count): 21(ptr) FunctionParameter +26(bufferOffset): 11(ptr) FunctionParameter + 27(data): 22(ptr) FunctionParameter + 29: Label + 44: 6(int) Load 26(bufferOffset) + 45: 7(ivec4) Load 27(data) + 46: 39(ptr) AccessChain 24(sb) 37 44 + Store 46 45 + Return + FunctionEnd + 34(@main(u1;): 31(fvec4) Function None 32 + 33(pos): 11(ptr) FunctionParameter + 35: Label + 52(param): 11(ptr) Variable Function + 54(param): 11(ptr) Variable Function + 55(param): 22(ptr) Variable Function + Store 52(param) 51 + 53: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param) + Store 54(param) 49 + Store 55(param) 53 + 56: 2 FunctionCall 28(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) + ReturnValue 58 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out new file mode 100644 index 0000000000..517b48c8db --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out @@ -0,0 +1,248 @@ +hlsl.structbuffer.fn2.comp +Shader version: 500 +local_size = (256, 1, 1) +0:? Sequence +0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) +0:5 Function Parameters: +0:5 'loc' ( in uint) +0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? Sequence +0:6 Sequence +0:6 move second child to first child ( temp 2-component vector of uint) +0:6 'result' ( temp 2-component vector of uint) +0:? Sequence +0:6 move second child to first child ( temp int) +0:6 'byteAddrTemp' ( temp int) +0:6 right-shift ( temp int) +0:6 'loc' ( in uint) +0:6 Constant: +0:6 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:6 indirect index ( temp uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 'byteAddrTemp' ( temp int) +0:6 indirect index ( temp uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 add ( temp int) +0:6 'byteAddrTemp' ( temp int) +0:6 Constant: +0:6 1 (const int) +0:7 Branch: Return with expression +0:7 'result' ( temp 2-component vector of uint) +0:12 Function Definition: @main(u1; ( temp void) +0:12 Function Parameters: +0:12 'dispatchId' ( in uint) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of uint) +0:13 'result' ( temp 2-component vector of uint) +0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) +0:13 'dispatchId' ( in uint) +0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:14 Sequence +0:14 imageStore ( temp void) +0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) +0:14 'dispatchId' ( in uint) +0:14 'result' ( temp 2-component vector of uint) +0:14 'result' ( temp 2-component vector of uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'dispatchId' ( temp uint) +0:? Construct uint ( temp uint) +0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) +0:12 Function Call: @main(u1; ( temp void) +0:? 'dispatchId' ( temp uint) +0:? Linker Objects +0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) +0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (256, 1, 1) +0:? Sequence +0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) +0:5 Function Parameters: +0:5 'loc' ( in uint) +0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? Sequence +0:6 Sequence +0:6 move second child to first child ( temp 2-component vector of uint) +0:6 'result' ( temp 2-component vector of uint) +0:? Sequence +0:6 move second child to first child ( temp int) +0:6 'byteAddrTemp' ( temp int) +0:6 right-shift ( temp int) +0:6 'loc' ( in uint) +0:6 Constant: +0:6 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:6 indirect index ( temp uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 'byteAddrTemp' ( temp int) +0:6 indirect index ( temp uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 add ( temp int) +0:6 'byteAddrTemp' ( temp int) +0:6 Constant: +0:6 1 (const int) +0:7 Branch: Return with expression +0:7 'result' ( temp 2-component vector of uint) +0:12 Function Definition: @main(u1; ( temp void) +0:12 Function Parameters: +0:12 'dispatchId' ( in uint) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp 2-component vector of uint) +0:13 'result' ( temp 2-component vector of uint) +0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) +0:13 'dispatchId' ( in uint) +0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:14 Sequence +0:14 imageStore ( temp void) +0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) +0:14 'dispatchId' ( in uint) +0:14 'result' ( temp 2-component vector of uint) +0:14 'result' ( temp 2-component vector of uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'dispatchId' ( temp uint) +0:? Construct uint ( temp uint) +0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) +0:12 Function Call: @main(u1; ( temp void) +0:? 'dispatchId' ( temp uint) +0:? Linker Objects +0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) +0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 63 + + Capability Shader + Capability ImageBuffer + Capability StorageImageExtendedFormats + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 57 + ExecutionMode 4 LocalSize 256 1 1 + Source HLSL 500 + Name 4 "main" + Name 9 "" + MemberName 9 0 "@data" + Name 15 "testLoad(u1;block--u1[0]1;" + Name 13 "loc" + Name 14 "buffer" + Name 19 "@main(u1;" + Name 18 "dispatchId" + Name 22 "result" + Name 25 "byteAddrTemp" + Name 43 "result" + Name 44 "g_input" + Name 45 "param" + Name 50 "g_output" + Name 54 "dispatchId" + Name 57 "dispatchId" + Name 60 "param" + Decorate 8 ArrayStride 4 + MemberDecorate 9 0 NonWritable + MemberDecorate 9 0 Offset 0 + Decorate 9 BufferBlock + Decorate 14(buffer) NonWritable + Decorate 44(g_input) DescriptorSet 0 + Decorate 44(g_input) Binding 0 + Decorate 50(g_output) DescriptorSet 0 + Decorate 50(g_output) Binding 1 + Decorate 57(dispatchId) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeRuntimeArray 6(int) + 9: TypeStruct 8 + 10: TypePointer Uniform 9(struct) + 11: TypeVector 6(int) 2 + 12: TypeFunction 11(ivec2) 7(ptr) 10(ptr) + 17: TypeFunction 2 7(ptr) + 21: TypePointer Function 11(ivec2) + 23: TypeInt 32 1 + 24: TypePointer Function 23(int) + 27: 23(int) Constant 2 + 29: 23(int) Constant 0 + 31: TypePointer Uniform 6(int) + 35: 23(int) Constant 1 + 44(g_input): 10(ptr) Variable Uniform + 48: TypeImage 6(int) Buffer nonsampled format:Rg32ui + 49: TypePointer UniformConstant 48 + 50(g_output): 49(ptr) Variable UniformConstant + 55: TypeVector 6(int) 3 + 56: TypePointer Input 55(ivec3) + 57(dispatchId): 56(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 54(dispatchId): 7(ptr) Variable Function + 60(param): 7(ptr) Variable Function + 58: 55(ivec3) Load 57(dispatchId) + 59: 6(int) CompositeExtract 58 0 + Store 54(dispatchId) 59 + 61: 6(int) Load 54(dispatchId) + Store 60(param) 61 + 62: 2 FunctionCall 19(@main(u1;) 60(param) + Return + FunctionEnd +15(testLoad(u1;block--u1[0]1;): 11(ivec2) Function None 12 + 13(loc): 7(ptr) FunctionParameter + 14(buffer): 10(ptr) FunctionParameter + 16: Label + 22(result): 21(ptr) Variable Function +25(byteAddrTemp): 24(ptr) Variable Function + 26: 6(int) Load 13(loc) + 28: 23(int) ShiftRightLogical 26 27 + Store 25(byteAddrTemp) 28 + 30: 23(int) Load 25(byteAddrTemp) + 32: 31(ptr) AccessChain 14(buffer) 29 30 + 33: 6(int) Load 32 + 34: 23(int) Load 25(byteAddrTemp) + 36: 23(int) IAdd 34 35 + 37: 31(ptr) AccessChain 14(buffer) 29 36 + 38: 6(int) Load 37 + 39: 11(ivec2) CompositeConstruct 33 38 + Store 22(result) 39 + 40: 11(ivec2) Load 22(result) + ReturnValue 40 + FunctionEnd + 19(@main(u1;): 2 Function None 17 + 18(dispatchId): 7(ptr) FunctionParameter + 20: Label + 43(result): 21(ptr) Variable Function + 45(param): 7(ptr) Variable Function + 46: 6(int) Load 18(dispatchId) + Store 45(param) 46 + 47: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 44(g_input) + Store 43(result) 47 + 51: 48 Load 50(g_output) + 52: 6(int) Load 18(dispatchId) + 53: 11(ivec2) Load 43(result) + ImageWrite 51 52 53 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.frag.out new file mode 100644 index 0000000000..5f6e8eec53 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.frag.out @@ -0,0 +1,348 @@ +hlsl.structbuffer.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in uint) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 'pos' ( in uint) +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 'size' ( temp uint) +0:17 array length ( temp uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 move second child to first child ( temp uint) +0:17 'stride' ( temp uint) +0:17 Constant: +0:17 32 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 test: direct index for structure ( temp bool) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 'pos' ( in uint) +0:19 Constant: +0:19 1 (const int) +0:19 true case +0:20 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:20 add ( temp 3-component vector of float) +0:20 color: direct index for structure ( temp 3-component vector of float) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index (layout( row_major std430) buffer float) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0.000000 +0:19 false case +0:22 Branch: Return with expression +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 add ( temp float) +0:22 add ( temp float) +0:22 direct index ( temp float) +0:22 color: direct index for structure ( temp 3-component vector of float) +0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 0 (const int) +0:22 Convert uint to float ( temp float) +0:22 'size' ( temp uint) +0:22 Convert uint to float ( temp float) +0:22 'stride' ( temp uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in uint) +0:? Sequence +0:13 Sequence +0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 'pos' ( in uint) +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 'size' ( temp uint) +0:17 array length ( temp uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 move second child to first child ( temp uint) +0:17 'stride' ( temp uint) +0:17 Constant: +0:17 32 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 test: direct index for structure ( temp bool) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 'pos' ( in uint) +0:19 Constant: +0:19 1 (const int) +0:19 true case +0:20 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:20 add ( temp 3-component vector of float) +0:20 color: direct index for structure ( temp 3-component vector of float) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index (layout( row_major std430) buffer float) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0.000000 +0:19 false case +0:22 Branch: Return with expression +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 add ( temp float) +0:22 add ( temp float) +0:22 direct index ( temp float) +0:22 color: direct index for structure ( temp 3-component vector of float) +0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 0 (const int) +0:22 Convert uint to float ( temp float) +0:22 'size' ( temp uint) +0:22 Convert uint to float ( temp float) +0:22 'stride' ( temp uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) +0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 96 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 89 92 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 16 "sb_t" + MemberName 16(sb_t) 0 "color" + MemberName 16(sb_t) 1 "test" + MemberName 16(sb_t) 2 "test2" + Name 18 "mydata" + Name 19 "sb_t" + MemberName 19(sb_t) 0 "color" + MemberName 19(sb_t) 1 "test" + MemberName 19(sb_t) 2 "test2" + Name 21 "sbuf" + MemberName 21(sbuf) 0 "@data" + Name 23 "sbuf" + Name 43 "size" + Name 45 "stride" + Name 59 "sbuf2" + MemberName 59(sbuf2) 0 "@data" + Name 61 "sbuf2" + Name 87 "pos" + Name 89 "pos" + Name 92 "@entryPointOutput" + Name 93 "param" + MemberDecorate 19(sb_t) 0 Offset 0 + MemberDecorate 19(sb_t) 1 Offset 12 + MemberDecorate 19(sb_t) 2 Offset 16 + Decorate 20 ArrayStride 32 + MemberDecorate 21(sbuf) 0 NonWritable + MemberDecorate 21(sbuf) 0 Offset 0 + Decorate 21(sbuf) BufferBlock + Decorate 23(sbuf) DescriptorSet 0 + Decorate 23(sbuf) Binding 10 + Decorate 58 ArrayStride 4 + MemberDecorate 59(sbuf2) 0 NonWritable + MemberDecorate 59(sbuf2) 0 Offset 0 + Decorate 59(sbuf2) BufferBlock + Decorate 61(sbuf2) DescriptorSet 0 + Decorate 89(pos) Flat + Decorate 89(pos) Location 0 + Decorate 92(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeVector 8(float) 3 + 15: TypeBool + 16(sb_t): TypeStruct 14(fvec3) 15(bool) 15(bool) + 17: TypePointer Function 16(sb_t) + 19(sb_t): TypeStruct 14(fvec3) 6(int) 6(int) + 20: TypeRuntimeArray 19(sb_t) + 21(sbuf): TypeStruct 20 + 22: TypePointer Uniform 21(sbuf) + 23(sbuf): 22(ptr) Variable Uniform + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypePointer Uniform 19(sb_t) + 31: TypePointer Function 14(fvec3) + 34: 24(int) Constant 1 + 35: 6(int) Constant 0 + 37: TypePointer Function 15(bool) + 40: 24(int) Constant 2 + 46: 6(int) Constant 32 + 48: TypePointer Uniform 6(int) + 55: TypePointer Uniform 14(fvec3) + 58: TypeRuntimeArray 8(float) + 59(sbuf2): TypeStruct 58 + 60: TypePointer Uniform 59(sbuf2) + 61(sbuf2): 60(ptr) Variable Uniform + 63: TypePointer Uniform 8(float) + 68: 8(float) Constant 0 + 75: TypePointer Function 8(float) + 88: TypePointer Input 6(int) + 89(pos): 88(ptr) Variable Input + 91: TypePointer Output 9(fvec4) +92(@entryPointOutput): 91(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 87(pos): 7(ptr) Variable Function + 93(param): 7(ptr) Variable Function + 90: 6(int) Load 89(pos) + Store 87(pos) 90 + 94: 6(int) Load 87(pos) + Store 93(param) 94 + 95: 9(fvec4) FunctionCall 12(@main(u1;) 93(param) + Store 92(@entryPointOutput) 95 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 18(mydata): 17(ptr) Variable Function + 43(size): 7(ptr) Variable Function + 45(stride): 7(ptr) Variable Function + 26: 6(int) Load 11(pos) + 28: 27(ptr) AccessChain 23(sbuf) 25 26 + 29: 19(sb_t) Load 28 + 30: 14(fvec3) CompositeExtract 29 0 + 32: 31(ptr) AccessChain 18(mydata) 25 + Store 32 30 + 33: 6(int) CompositeExtract 29 1 + 36: 15(bool) INotEqual 33 35 + 38: 37(ptr) AccessChain 18(mydata) 34 + Store 38 36 + 39: 6(int) CompositeExtract 29 2 + 41: 15(bool) INotEqual 39 35 + 42: 37(ptr) AccessChain 18(mydata) 40 + Store 42 41 + 44: 24(int) ArrayLength 23(sbuf) 0 + Store 43(size) 44 + Store 45(stride) 46 + 47: 6(int) Load 11(pos) + 49: 48(ptr) AccessChain 23(sbuf) 25 47 34 + 50: 6(int) Load 49 + 51: 15(bool) INotEqual 50 35 + SelectionMerge 53 None + BranchConditional 51 52 74 + 52: Label + 54: 6(int) Load 11(pos) + 56: 55(ptr) AccessChain 23(sbuf) 25 54 25 + 57: 14(fvec3) Load 56 + 62: 6(int) Load 11(pos) + 64: 63(ptr) AccessChain 61(sbuf2) 25 62 + 65: 8(float) Load 64 + 66: 14(fvec3) CompositeConstruct 65 65 65 + 67: 14(fvec3) FAdd 57 66 + 69: 8(float) CompositeExtract 67 0 + 70: 8(float) CompositeExtract 67 1 + 71: 8(float) CompositeExtract 67 2 + 72: 9(fvec4) CompositeConstruct 69 70 71 68 + ReturnValue 72 + 74: Label + 76: 75(ptr) AccessChain 18(mydata) 25 35 + 77: 8(float) Load 76 + 78: 6(int) Load 43(size) + 79: 8(float) ConvertUToF 78 + 80: 8(float) FAdd 77 79 + 81: 6(int) Load 45(stride) + 82: 8(float) ConvertUToF 81 + 83: 8(float) FAdd 80 82 + 84: 9(fvec4) CompositeConstruct 83 83 83 83 + ReturnValue 84 + 53: Label + 86: 9(fvec4) Undef + ReturnValue 86 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out new file mode 100644 index 0000000000..8b84a73161 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out @@ -0,0 +1,125 @@ +hlsl.structbuffer.incdec.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + Extension "SPV_GOOGLE_hlsl_functionality1" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 63 66 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 16 "result" + Name 20 "sbuf_rw_i" + MemberName 20(sbuf_rw_i) 0 "@data" + Name 22 "sbuf_rw_i" + Name 26 "sbuf_rw_d" + Name 27 "sbuf_rw_nocounter" + Name 33 "c1" + Name 34 "sbuf_rw_i@count" + MemberName 34(sbuf_rw_i@count) 0 "@count" + Name 36 "sbuf_rw_i@count" + Name 41 "c2" + Name 42 "sbuf_rw_d@count" + Name 61 "pos" + Name 63 "pos" + Name 66 "@entryPointOutput" + Name 67 "param" + Decorate 19 ArrayStride 16 + MemberDecorate 20(sbuf_rw_i) 0 Offset 0 + Decorate 20(sbuf_rw_i) BufferBlock + Decorate 22(sbuf_rw_i) DescriptorSet 0 + Decorate 26(sbuf_rw_d) DescriptorSet 0 + Decorate 27(sbuf_rw_nocounter) DescriptorSet 0 + MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0 + Decorate 34(sbuf_rw_i@count) BufferBlock + Decorate 36(sbuf_rw_i@count) DescriptorSet 0 + Decorate 42(sbuf_rw_d@count) DescriptorSet 0 + Decorate 63(pos) Flat + Decorate 63(pos) Location 0 + DecorateStringGOOGLE 63(pos) DecorationHlslSemanticGOOGLE "FOO" + Decorate 66(@entryPointOutput) Location 0 + DecorateStringGOOGLE 66(@entryPointOutput) DecorationHlslSemanticGOOGLE "SV_TARGET0" + DecorateId 22(sbuf_rw_i) DecorationHlslCounterBufferGOOGLE 36(sbuf_rw_i@count) + DecorateId 26(sbuf_rw_d) DecorationHlslCounterBufferGOOGLE 42(sbuf_rw_d@count) + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeVector 6(int) 4 + 15: TypePointer Function 14(ivec4) + 17: 6(int) Constant 0 + 18: 14(ivec4) ConstantComposite 17 17 17 17 + 19: TypeRuntimeArray 14(ivec4) + 20(sbuf_rw_i): TypeStruct 19 + 21: TypePointer Uniform 20(sbuf_rw_i) + 22(sbuf_rw_i): 21(ptr) Variable Uniform + 23: TypeInt 32 1 + 24: 23(int) Constant 0 + 25: 23(int) Constant 7 + 26(sbuf_rw_d): 21(ptr) Variable Uniform +27(sbuf_rw_nocounter): 21(ptr) Variable Uniform + 28: 23(int) Constant 5 + 29: 6(int) Constant 2 + 30: 14(ivec4) ConstantComposite 29 29 29 29 + 31: TypePointer Uniform 14(ivec4) +34(sbuf_rw_i@count): TypeStruct 6(int) + 35: TypePointer Uniform 34(sbuf_rw_i@count) +36(sbuf_rw_i@count): 35(ptr) Variable Uniform + 37: TypePointer Uniform 6(int) + 39: 6(int) Constant 1 +42(sbuf_rw_d@count): 35(ptr) Variable Uniform + 44: 6(int) Constant 4294967295 + 46: 23(int) Constant 4294967295 + 62: TypePointer Input 6(int) + 63(pos): 62(ptr) Variable Input + 65: TypePointer Output 9(fvec4) +66(@entryPointOutput): 65(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 61(pos): 7(ptr) Variable Function + 67(param): 7(ptr) Variable Function + 64: 6(int) Load 63(pos) + Store 61(pos) 64 + 68: 6(int) Load 61(pos) + Store 67(param) 68 + 69: 9(fvec4) FunctionCall 12(@main(u1;) 67(param) + Store 66(@entryPointOutput) 69 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 16(result): 15(ptr) Variable Function + 33(c1): 7(ptr) Variable Function + 41(c2): 7(ptr) Variable Function + Store 16(result) 18 + 32: 31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 + Store 32 30 + 38: 37(ptr) AccessChain 36(sbuf_rw_i@count) 24 + 40: 6(int) AtomicIAdd 38 39 17 39 + Store 33(c1) 40 + 43: 37(ptr) AccessChain 42(sbuf_rw_d@count) 24 + 45: 6(int) AtomicIAdd 43 39 17 44 + 47: 6(int) IAdd 45 46 + Store 41(c2) 47 + 48: 7(ptr) AccessChain 16(result) 17 + 49: 6(int) Load 48 + 50: 8(float) ConvertUToF 49 + 51: 7(ptr) AccessChain 16(result) 39 + 52: 6(int) Load 51 + 53: 8(float) ConvertUToF 52 + 54: 6(int) Load 33(c1) + 55: 8(float) ConvertUToF 54 + 56: 6(int) Load 41(c2) + 57: 8(float) ConvertUToF 56 + 58: 9(fvec4) CompositeConstruct 50 53 55 57 + ReturnValue 58 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out new file mode 100644 index 0000000000..5c8afd9dff --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out @@ -0,0 +1,324 @@ +hlsl.structbuffer.incdec.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(u1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'pos' ( in uint) +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of uint) +0:8 'result' ( temp 4-component vector of uint) +0:8 Constant: +0:8 0 (const uint) +0:8 0 (const uint) +0:8 0 (const uint) +0:8 0 (const uint) +0:10 direct index (layout( row_major std430) buffer 4-component vector of uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 Constant: +0:10 7 (const int) +0:11 direct index (layout( row_major std430) buffer 4-component vector of uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 Constant: +0:11 7 (const int) +0:13 move second child to first child ( temp 4-component vector of uint) +0:13 direct index (layout( row_major std430) buffer 4-component vector of uint) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 5 (const int) +0:13 Constant: +0:13 2 (const uint) +0:13 2 (const uint) +0:13 2 (const uint) +0:13 2 (const uint) +0:15 Sequence +0:15 move second child to first child ( temp uint) +0:15 'c1' ( temp uint) +0:15 AtomicAdd ( temp uint) +0:15 @count: direct index for structure ( temp uint) +0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child ( temp uint) +0:16 'c2' ( temp uint) +0:16 add ( temp uint) +0:16 AtomicAdd ( temp uint) +0:16 @count: direct index for structure ( temp uint) +0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 4294967295 (const uint) +0:16 Constant: +0:16 -1 (const int) +0:18 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:18 Convert uint to float ( temp float) +0:18 direct index ( temp uint) +0:18 'result' ( temp 4-component vector of uint) +0:18 Constant: +0:18 0 (const int) +0:18 Convert uint to float ( temp float) +0:18 direct index ( temp uint) +0:18 'result' ( temp 4-component vector of uint) +0:18 Constant: +0:18 1 (const int) +0:18 Convert uint to float ( temp float) +0:18 'c1' ( temp uint) +0:18 Convert uint to float ( temp float) +0:18 'c2' ( temp uint) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(u1; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'pos' ( in uint) +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of uint) +0:8 'result' ( temp 4-component vector of uint) +0:8 Constant: +0:8 0 (const uint) +0:8 0 (const uint) +0:8 0 (const uint) +0:8 0 (const uint) +0:10 direct index (layout( row_major std430) buffer 4-component vector of uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 Constant: +0:10 7 (const int) +0:11 direct index (layout( row_major std430) buffer 4-component vector of uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 Constant: +0:11 7 (const int) +0:13 move second child to first child ( temp 4-component vector of uint) +0:13 direct index (layout( row_major std430) buffer 4-component vector of uint) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) +0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 5 (const int) +0:13 Constant: +0:13 2 (const uint) +0:13 2 (const uint) +0:13 2 (const uint) +0:13 2 (const uint) +0:15 Sequence +0:15 move second child to first child ( temp uint) +0:15 'c1' ( temp uint) +0:15 AtomicAdd ( temp uint) +0:15 @count: direct index for structure ( temp uint) +0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child ( temp uint) +0:16 'c2' ( temp uint) +0:16 add ( temp uint) +0:16 AtomicAdd ( temp uint) +0:16 @count: direct index for structure ( temp uint) +0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 4294967295 (const uint) +0:16 Constant: +0:16 -1 (const int) +0:18 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:18 Convert uint to float ( temp float) +0:18 direct index ( temp uint) +0:18 'result' ( temp 4-component vector of uint) +0:18 Constant: +0:18 0 (const int) +0:18 Convert uint to float ( temp float) +0:18 direct index ( temp uint) +0:18 'result' ( temp 4-component vector of uint) +0:18 Constant: +0:18 1 (const int) +0:18 Convert uint to float ( temp float) +0:18 'c1' ( temp uint) +0:18 Convert uint to float ( temp float) +0:18 'c2' ( temp uint) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) +0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 63 66 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 16 "result" + Name 20 "sbuf_rw_i" + MemberName 20(sbuf_rw_i) 0 "@data" + Name 22 "sbuf_rw_i" + Name 26 "sbuf_rw_d" + Name 27 "sbuf_rw_nocounter" + Name 33 "c1" + Name 34 "sbuf_rw_i@count" + MemberName 34(sbuf_rw_i@count) 0 "@count" + Name 36 "sbuf_rw_i@count" + Name 41 "c2" + Name 42 "sbuf_rw_d@count" + Name 61 "pos" + Name 63 "pos" + Name 66 "@entryPointOutput" + Name 67 "param" + Decorate 19 ArrayStride 16 + MemberDecorate 20(sbuf_rw_i) 0 Offset 0 + Decorate 20(sbuf_rw_i) BufferBlock + Decorate 22(sbuf_rw_i) DescriptorSet 0 + Decorate 26(sbuf_rw_d) DescriptorSet 0 + Decorate 27(sbuf_rw_nocounter) DescriptorSet 0 + MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0 + Decorate 34(sbuf_rw_i@count) BufferBlock + Decorate 36(sbuf_rw_i@count) DescriptorSet 0 + Decorate 42(sbuf_rw_d@count) DescriptorSet 0 + Decorate 63(pos) Flat + Decorate 63(pos) Location 0 + Decorate 66(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeVector 6(int) 4 + 15: TypePointer Function 14(ivec4) + 17: 6(int) Constant 0 + 18: 14(ivec4) ConstantComposite 17 17 17 17 + 19: TypeRuntimeArray 14(ivec4) + 20(sbuf_rw_i): TypeStruct 19 + 21: TypePointer Uniform 20(sbuf_rw_i) + 22(sbuf_rw_i): 21(ptr) Variable Uniform + 23: TypeInt 32 1 + 24: 23(int) Constant 0 + 25: 23(int) Constant 7 + 26(sbuf_rw_d): 21(ptr) Variable Uniform +27(sbuf_rw_nocounter): 21(ptr) Variable Uniform + 28: 23(int) Constant 5 + 29: 6(int) Constant 2 + 30: 14(ivec4) ConstantComposite 29 29 29 29 + 31: TypePointer Uniform 14(ivec4) +34(sbuf_rw_i@count): TypeStruct 6(int) + 35: TypePointer Uniform 34(sbuf_rw_i@count) +36(sbuf_rw_i@count): 35(ptr) Variable Uniform + 37: TypePointer Uniform 6(int) + 39: 6(int) Constant 1 +42(sbuf_rw_d@count): 35(ptr) Variable Uniform + 44: 6(int) Constant 4294967295 + 46: 23(int) Constant 4294967295 + 62: TypePointer Input 6(int) + 63(pos): 62(ptr) Variable Input + 65: TypePointer Output 9(fvec4) +66(@entryPointOutput): 65(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 61(pos): 7(ptr) Variable Function + 67(param): 7(ptr) Variable Function + 64: 6(int) Load 63(pos) + Store 61(pos) 64 + 68: 6(int) Load 61(pos) + Store 67(param) 68 + 69: 9(fvec4) FunctionCall 12(@main(u1;) 67(param) + Store 66(@entryPointOutput) 69 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 16(result): 15(ptr) Variable Function + 33(c1): 7(ptr) Variable Function + 41(c2): 7(ptr) Variable Function + Store 16(result) 18 + 32: 31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 + Store 32 30 + 38: 37(ptr) AccessChain 36(sbuf_rw_i@count) 24 + 40: 6(int) AtomicIAdd 38 39 17 39 + Store 33(c1) 40 + 43: 37(ptr) AccessChain 42(sbuf_rw_d@count) 24 + 45: 6(int) AtomicIAdd 43 39 17 44 + 47: 6(int) IAdd 45 46 + Store 41(c2) 47 + 48: 7(ptr) AccessChain 16(result) 17 + 49: 6(int) Load 48 + 50: 8(float) ConvertUToF 49 + 51: 7(ptr) AccessChain 16(result) 39 + 52: 6(int) Load 51 + 53: 8(float) ConvertUToF 52 + 54: 6(int) Load 33(c1) + 55: 8(float) ConvertUToF 54 + 56: 6(int) Load 41(c2) + 57: 8(float) ConvertUToF 56 + 58: 9(fvec4) CompositeConstruct 50 53 55 57 + ReturnValue 58 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out new file mode 100644 index 0000000000..ccf295bdd5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out @@ -0,0 +1,306 @@ +hlsl.structbuffer.rw.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in uint) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 indirect index (layout( row_major std430) buffer float) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 add ( temp uint) +0:13 'pos' ( in uint) +0:13 Constant: +0:13 1 (const uint) +0:13 Constant: +0:13 42.000000 +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 'size' ( temp uint) +0:17 array length ( temp uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 move second child to first child ( temp uint) +0:17 'stride' ( temp uint) +0:17 Constant: +0:17 16 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 test: direct index for structure ( temp bool) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 'pos' ( in uint) +0:19 Constant: +0:19 1 (const int) +0:19 true case +0:20 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:20 add ( temp 3-component vector of float) +0:20 color: direct index for structure ( temp 3-component vector of float) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index (layout( row_major std430) buffer float) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0.000000 +0:19 false case +0:22 Branch: Return with expression +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 Convert uint to float ( temp float) +0:22 add ( temp uint) +0:22 'size' ( temp uint) +0:22 'stride' ( temp uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(u1; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'pos' ( in uint) +0:? Sequence +0:13 move second child to first child ( temp float) +0:13 indirect index (layout( row_major std430) buffer float) +0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:13 Constant: +0:13 0 (const uint) +0:13 add ( temp uint) +0:13 'pos' ( in uint) +0:13 Constant: +0:13 1 (const uint) +0:13 Constant: +0:13 42.000000 +0:17 Sequence +0:17 move second child to first child ( temp uint) +0:17 'size' ( temp uint) +0:17 array length ( temp uint) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 move second child to first child ( temp uint) +0:17 'stride' ( temp uint) +0:17 Constant: +0:17 16 (const uint) +0:19 Test condition and select ( temp void) +0:19 Condition +0:19 test: direct index for structure ( temp bool) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 'pos' ( in uint) +0:19 Constant: +0:19 1 (const int) +0:19 true case +0:20 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:20 add ( temp 3-component vector of float) +0:20 color: direct index for structure ( temp 3-component vector of float) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) +0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index (layout( row_major std430) buffer float) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) +0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 'pos' ( in uint) +0:20 Constant: +0:20 0.000000 +0:19 false case +0:22 Branch: Return with expression +0:22 Construct vec4 ( temp 4-component vector of float) +0:22 Convert uint to float ( temp float) +0:22 add ( temp uint) +0:22 'size' ( temp uint) +0:22 'stride' ( temp uint) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:12 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) +0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 71 74 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 15 "sbuf2" + MemberName 15(sbuf2) 0 "@data" + Name 17 "sbuf2" + Name 26 "size" + Name 28 "sb_t" + MemberName 28(sb_t) 0 "color" + MemberName 28(sb_t) 1 "test" + Name 30 "sbuf" + MemberName 30(sbuf) 0 "@data" + Name 32 "sbuf" + Name 34 "stride" + Name 69 "pos" + Name 71 "pos" + Name 74 "@entryPointOutput" + Name 75 "param" + Decorate 14 ArrayStride 4 + MemberDecorate 15(sbuf2) 0 Offset 0 + Decorate 15(sbuf2) BufferBlock + Decorate 17(sbuf2) DescriptorSet 0 + MemberDecorate 28(sb_t) 0 Offset 0 + MemberDecorate 28(sb_t) 1 Offset 12 + Decorate 29 ArrayStride 16 + MemberDecorate 30(sbuf) 0 Offset 0 + Decorate 30(sbuf) BufferBlock + Decorate 32(sbuf) DescriptorSet 0 + Decorate 71(pos) Flat + Decorate 71(pos) Location 0 + Decorate 74(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeRuntimeArray 8(float) + 15(sbuf2): TypeStruct 14 + 16: TypePointer Uniform 15(sbuf2) + 17(sbuf2): 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 21: 6(int) Constant 1 + 23: 8(float) Constant 1109917696 + 24: TypePointer Uniform 8(float) + 27: TypeVector 8(float) 3 + 28(sb_t): TypeStruct 27(fvec3) 6(int) + 29: TypeRuntimeArray 28(sb_t) + 30(sbuf): TypeStruct 29 + 31: TypePointer Uniform 30(sbuf) + 32(sbuf): 31(ptr) Variable Uniform + 35: 6(int) Constant 16 + 37: 18(int) Constant 1 + 38: TypePointer Uniform 6(int) + 41: TypeBool + 42: 6(int) Constant 0 + 47: TypePointer Uniform 27(fvec3) + 55: 8(float) Constant 0 + 70: TypePointer Input 6(int) + 71(pos): 70(ptr) Variable Input + 73: TypePointer Output 9(fvec4) +74(@entryPointOutput): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 69(pos): 7(ptr) Variable Function + 75(param): 7(ptr) Variable Function + 72: 6(int) Load 71(pos) + Store 69(pos) 72 + 76: 6(int) Load 69(pos) + Store 75(param) 76 + 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) + Store 74(@entryPointOutput) 77 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 26(size): 7(ptr) Variable Function + 34(stride): 7(ptr) Variable Function + 20: 6(int) Load 11(pos) + 22: 6(int) IAdd 20 21 + 25: 24(ptr) AccessChain 17(sbuf2) 19 22 + Store 25 23 + 33: 18(int) ArrayLength 32(sbuf) 0 + Store 26(size) 33 + Store 34(stride) 35 + 36: 6(int) Load 11(pos) + 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 + 40: 6(int) Load 39 + 43: 41(bool) INotEqual 40 42 + SelectionMerge 45 None + BranchConditional 43 44 61 + 44: Label + 46: 6(int) Load 11(pos) + 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 + 49: 27(fvec3) Load 48 + 50: 6(int) Load 11(pos) + 51: 24(ptr) AccessChain 17(sbuf2) 19 50 + 52: 8(float) Load 51 + 53: 27(fvec3) CompositeConstruct 52 52 52 + 54: 27(fvec3) FAdd 49 53 + 56: 8(float) CompositeExtract 54 0 + 57: 8(float) CompositeExtract 54 1 + 58: 8(float) CompositeExtract 54 2 + 59: 9(fvec4) CompositeConstruct 56 57 58 55 + ReturnValue 59 + 61: Label + 62: 6(int) Load 26(size) + 63: 6(int) Load 34(stride) + 64: 6(int) IAdd 62 63 + 65: 8(float) ConvertUToF 64 + 66: 9(fvec4) CompositeConstruct 65 65 65 65 + ReturnValue 66 + 45: Label + 68: 9(fvec4) Undef + ReturnValue 68 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out new file mode 100644 index 0000000000..9f1b5b3252 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out @@ -0,0 +1,1306 @@ +hlsl.structbuffer.rwbyte.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main(u1; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'pos' ( in uint) +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'size' ( temp uint) +0:7 array length ( temp uint) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:7 Constant: +0:7 0 (const uint) +0:? Sequence +0:9 move second child to first child ( temp int) +0:9 'byteAddrTemp' ( temp int) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) +0:9 move second child to first child ( temp uint) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 'byteAddrTemp' ( temp int) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 2 (const int) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 direct index ( temp uint) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index ( temp uint) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 1 (const int) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 direct index ( temp uint) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp uint) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp uint) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 3 (const int) +0:14 Branch: Return with expression +0:14 Construct vec4 ( temp 4-component vector of float) +0:14 Convert uint to float ( temp float) +0:14 indirect index (layout( row_major std430) buffer uint) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 right-shift ( temp int) +0:14 'pos' ( in uint) +0:14 Constant: +0:14 2 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: @main(u1; ( temp 4-component vector of float) +0:5 Function Parameters: +0:5 'pos' ( in uint) +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'size' ( temp uint) +0:7 array length ( temp uint) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:7 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:7 Constant: +0:7 0 (const uint) +0:? Sequence +0:9 move second child to first child ( temp int) +0:9 'byteAddrTemp' ( temp int) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) +0:9 move second child to first child ( temp uint) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 'byteAddrTemp' ( temp int) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 2 (const int) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 direct index ( temp uint) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 direct index ( temp uint) +0:? Sequence +0:10 move second child to first child ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) +0:10 Constant: +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 'byteAddrTemp' ( temp int) +0:10 indirect index ( temp uint) +0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 1 (const int) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 direct index ( temp uint) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp uint) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 direct index ( temp uint) +0:? Sequence +0:11 move second child to first child ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) +0:11 Constant: +0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp uint) +0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 direct index ( temp uint) +0:? Sequence +0:12 move second child to first child ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) +0:12 Constant: +0:12 2 (const int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 'byteAddrTemp' ( temp int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp uint) +0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 3 (const int) +0:14 Branch: Return with expression +0:14 Construct vec4 ( temp 4-component vector of float) +0:14 Convert uint to float ( temp float) +0:14 indirect index (layout( row_major std430) buffer uint) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 right-shift ( temp int) +0:14 'pos' ( in uint) +0:14 Constant: +0:14 2 (const int) +0:5 Function Definition: main( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp uint) +0:? 'pos' ( temp uint) +0:? 'pos' (layout( location=0) flat in uint) +0:5 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:5 Function Call: @main(u1; ( temp 4-component vector of float) +0:? 'pos' ( temp uint) +0:? Linker Objects +0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' (layout( location=0) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 239 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 232 235 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 12 "@main(u1;" + Name 11 "pos" + Name 14 "size" + Name 16 "sbuf" + MemberName 16(sbuf) 0 "@data" + Name 18 "sbuf" + Name 22 "byteAddrTemp" + Name 34 "byteAddrTemp" + Name 38 "byteAddrTemp" + Name 69 "byteAddrTemp" + Name 73 "byteAddrTemp" + Name 128 "byteAddrTemp" + Name 132 "byteAddrTemp" + Name 230 "pos" + Name 232 "pos" + Name 235 "@entryPointOutput" + Name 236 "param" + Decorate 15 ArrayStride 4 + MemberDecorate 16(sbuf) 0 Offset 0 + Decorate 16(sbuf) BufferBlock + Decorate 18(sbuf) DescriptorSet 0 + Decorate 232(pos) Flat + Decorate 232(pos) Location 0 + Decorate 235(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 15: TypeRuntimeArray 6(int) + 16(sbuf): TypeStruct 15 + 17: TypePointer Uniform 16(sbuf) + 18(sbuf): 17(ptr) Variable Uniform + 19: TypeInt 32 1 + 21: TypePointer Function 19(int) + 24: 19(int) Constant 2 + 26: 19(int) Constant 0 + 30: TypePointer Uniform 6(int) + 45: 19(int) Constant 1 + 49: TypeVector 6(int) 2 + 51: 6(int) Constant 0 + 66: 6(int) Constant 1 + 87: TypeVector 6(int) 3 + 125: 6(int) Constant 2 + 147: 19(int) Constant 3 + 151: TypeVector 6(int) 4 + 219: 6(int) Constant 3 + 231: TypePointer Input 6(int) + 232(pos): 231(ptr) Variable Input + 234: TypePointer Output 9(fvec4) +235(@entryPointOutput): 234(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 230(pos): 7(ptr) Variable Function + 236(param): 7(ptr) Variable Function + 233: 6(int) Load 232(pos) + Store 230(pos) 233 + 237: 6(int) Load 230(pos) + Store 236(param) 237 + 238: 9(fvec4) FunctionCall 12(@main(u1;) 236(param) + Store 235(@entryPointOutput) 238 + Return + FunctionEnd + 12(@main(u1;): 9(fvec4) Function None 10 + 11(pos): 7(ptr) FunctionParameter + 13: Label + 14(size): 7(ptr) Variable Function +22(byteAddrTemp): 21(ptr) Variable Function +34(byteAddrTemp): 21(ptr) Variable Function +38(byteAddrTemp): 21(ptr) Variable Function +69(byteAddrTemp): 21(ptr) Variable Function +73(byteAddrTemp): 21(ptr) Variable Function +128(byteAddrTemp): 21(ptr) Variable Function +132(byteAddrTemp): 21(ptr) Variable Function + 20: 19(int) ArrayLength 18(sbuf) 0 + Store 14(size) 20 + 23: 6(int) Load 11(pos) + 25: 19(int) ShiftRightLogical 23 24 + Store 22(byteAddrTemp) 25 + 27: 19(int) Load 22(byteAddrTemp) + 28: 6(int) Load 11(pos) + 29: 19(int) ShiftRightLogical 28 24 + 31: 30(ptr) AccessChain 18(sbuf) 26 29 + 32: 6(int) Load 31 + 33: 30(ptr) AccessChain 18(sbuf) 26 27 + Store 33 32 + 35: 6(int) Load 11(pos) + 36: 19(int) ShiftRightLogical 35 24 + Store 34(byteAddrTemp) 36 + 37: 19(int) Load 34(byteAddrTemp) + 39: 6(int) Load 11(pos) + 40: 19(int) ShiftRightLogical 39 24 + Store 38(byteAddrTemp) 40 + 41: 19(int) Load 38(byteAddrTemp) + 42: 30(ptr) AccessChain 18(sbuf) 26 41 + 43: 6(int) Load 42 + 44: 19(int) Load 38(byteAddrTemp) + 46: 19(int) IAdd 44 45 + 47: 30(ptr) AccessChain 18(sbuf) 26 46 + 48: 6(int) Load 47 + 50: 49(ivec2) CompositeConstruct 43 48 + 52: 6(int) CompositeExtract 50 0 + 53: 30(ptr) AccessChain 18(sbuf) 26 37 + Store 53 52 + 54: 19(int) Load 34(byteAddrTemp) + 55: 19(int) IAdd 54 45 + 56: 6(int) Load 11(pos) + 57: 19(int) ShiftRightLogical 56 24 + Store 38(byteAddrTemp) 57 + 58: 19(int) Load 38(byteAddrTemp) + 59: 30(ptr) AccessChain 18(sbuf) 26 58 + 60: 6(int) Load 59 + 61: 19(int) Load 38(byteAddrTemp) + 62: 19(int) IAdd 61 45 + 63: 30(ptr) AccessChain 18(sbuf) 26 62 + 64: 6(int) Load 63 + 65: 49(ivec2) CompositeConstruct 60 64 + 67: 6(int) CompositeExtract 65 1 + 68: 30(ptr) AccessChain 18(sbuf) 26 55 + Store 68 67 + 70: 6(int) Load 11(pos) + 71: 19(int) ShiftRightLogical 70 24 + Store 69(byteAddrTemp) 71 + 72: 19(int) Load 69(byteAddrTemp) + 74: 6(int) Load 11(pos) + 75: 19(int) ShiftRightLogical 74 24 + Store 73(byteAddrTemp) 75 + 76: 19(int) Load 73(byteAddrTemp) + 77: 30(ptr) AccessChain 18(sbuf) 26 76 + 78: 6(int) Load 77 + 79: 19(int) Load 73(byteAddrTemp) + 80: 19(int) IAdd 79 45 + 81: 30(ptr) AccessChain 18(sbuf) 26 80 + 82: 6(int) Load 81 + 83: 19(int) Load 73(byteAddrTemp) + 84: 19(int) IAdd 83 24 + 85: 30(ptr) AccessChain 18(sbuf) 26 84 + 86: 6(int) Load 85 + 88: 87(ivec3) CompositeConstruct 78 82 86 + 89: 6(int) CompositeExtract 88 0 + 90: 30(ptr) AccessChain 18(sbuf) 26 72 + Store 90 89 + 91: 19(int) Load 69(byteAddrTemp) + 92: 19(int) IAdd 91 45 + 93: 6(int) Load 11(pos) + 94: 19(int) ShiftRightLogical 93 24 + Store 73(byteAddrTemp) 94 + 95: 19(int) Load 73(byteAddrTemp) + 96: 30(ptr) AccessChain 18(sbuf) 26 95 + 97: 6(int) Load 96 + 98: 19(int) Load 73(byteAddrTemp) + 99: 19(int) IAdd 98 45 + 100: 30(ptr) AccessChain 18(sbuf) 26 99 + 101: 6(int) Load 100 + 102: 19(int) Load 73(byteAddrTemp) + 103: 19(int) IAdd 102 24 + 104: 30(ptr) AccessChain 18(sbuf) 26 103 + 105: 6(int) Load 104 + 106: 87(ivec3) CompositeConstruct 97 101 105 + 107: 6(int) CompositeExtract 106 1 + 108: 30(ptr) AccessChain 18(sbuf) 26 92 + Store 108 107 + 109: 19(int) Load 69(byteAddrTemp) + 110: 19(int) IAdd 109 24 + 111: 6(int) Load 11(pos) + 112: 19(int) ShiftRightLogical 111 24 + Store 73(byteAddrTemp) 112 + 113: 19(int) Load 73(byteAddrTemp) + 114: 30(ptr) AccessChain 18(sbuf) 26 113 + 115: 6(int) Load 114 + 116: 19(int) Load 73(byteAddrTemp) + 117: 19(int) IAdd 116 45 + 118: 30(ptr) AccessChain 18(sbuf) 26 117 + 119: 6(int) Load 118 + 120: 19(int) Load 73(byteAddrTemp) + 121: 19(int) IAdd 120 24 + 122: 30(ptr) AccessChain 18(sbuf) 26 121 + 123: 6(int) Load 122 + 124: 87(ivec3) CompositeConstruct 115 119 123 + 126: 6(int) CompositeExtract 124 2 + 127: 30(ptr) AccessChain 18(sbuf) 26 110 + Store 127 126 + 129: 6(int) Load 11(pos) + 130: 19(int) ShiftRightLogical 129 24 + Store 128(byteAddrTemp) 130 + 131: 19(int) Load 128(byteAddrTemp) + 133: 6(int) Load 11(pos) + 134: 19(int) ShiftRightLogical 133 24 + Store 132(byteAddrTemp) 134 + 135: 19(int) Load 132(byteAddrTemp) + 136: 30(ptr) AccessChain 18(sbuf) 26 135 + 137: 6(int) Load 136 + 138: 19(int) Load 132(byteAddrTemp) + 139: 19(int) IAdd 138 45 + 140: 30(ptr) AccessChain 18(sbuf) 26 139 + 141: 6(int) Load 140 + 142: 19(int) Load 132(byteAddrTemp) + 143: 19(int) IAdd 142 24 + 144: 30(ptr) AccessChain 18(sbuf) 26 143 + 145: 6(int) Load 144 + 146: 19(int) Load 132(byteAddrTemp) + 148: 19(int) IAdd 146 147 + 149: 30(ptr) AccessChain 18(sbuf) 26 148 + 150: 6(int) Load 149 + 152: 151(ivec4) CompositeConstruct 137 141 145 150 + 153: 6(int) CompositeExtract 152 0 + 154: 30(ptr) AccessChain 18(sbuf) 26 131 + Store 154 153 + 155: 19(int) Load 128(byteAddrTemp) + 156: 19(int) IAdd 155 45 + 157: 6(int) Load 11(pos) + 158: 19(int) ShiftRightLogical 157 24 + Store 132(byteAddrTemp) 158 + 159: 19(int) Load 132(byteAddrTemp) + 160: 30(ptr) AccessChain 18(sbuf) 26 159 + 161: 6(int) Load 160 + 162: 19(int) Load 132(byteAddrTemp) + 163: 19(int) IAdd 162 45 + 164: 30(ptr) AccessChain 18(sbuf) 26 163 + 165: 6(int) Load 164 + 166: 19(int) Load 132(byteAddrTemp) + 167: 19(int) IAdd 166 24 + 168: 30(ptr) AccessChain 18(sbuf) 26 167 + 169: 6(int) Load 168 + 170: 19(int) Load 132(byteAddrTemp) + 171: 19(int) IAdd 170 147 + 172: 30(ptr) AccessChain 18(sbuf) 26 171 + 173: 6(int) Load 172 + 174: 151(ivec4) CompositeConstruct 161 165 169 173 + 175: 6(int) CompositeExtract 174 1 + 176: 30(ptr) AccessChain 18(sbuf) 26 156 + Store 176 175 + 177: 19(int) Load 128(byteAddrTemp) + 178: 19(int) IAdd 177 24 + 179: 6(int) Load 11(pos) + 180: 19(int) ShiftRightLogical 179 24 + Store 132(byteAddrTemp) 180 + 181: 19(int) Load 132(byteAddrTemp) + 182: 30(ptr) AccessChain 18(sbuf) 26 181 + 183: 6(int) Load 182 + 184: 19(int) Load 132(byteAddrTemp) + 185: 19(int) IAdd 184 45 + 186: 30(ptr) AccessChain 18(sbuf) 26 185 + 187: 6(int) Load 186 + 188: 19(int) Load 132(byteAddrTemp) + 189: 19(int) IAdd 188 24 + 190: 30(ptr) AccessChain 18(sbuf) 26 189 + 191: 6(int) Load 190 + 192: 19(int) Load 132(byteAddrTemp) + 193: 19(int) IAdd 192 147 + 194: 30(ptr) AccessChain 18(sbuf) 26 193 + 195: 6(int) Load 194 + 196: 151(ivec4) CompositeConstruct 183 187 191 195 + 197: 6(int) CompositeExtract 196 2 + 198: 30(ptr) AccessChain 18(sbuf) 26 178 + Store 198 197 + 199: 19(int) Load 128(byteAddrTemp) + 200: 19(int) IAdd 199 147 + 201: 6(int) Load 11(pos) + 202: 19(int) ShiftRightLogical 201 24 + Store 132(byteAddrTemp) 202 + 203: 19(int) Load 132(byteAddrTemp) + 204: 30(ptr) AccessChain 18(sbuf) 26 203 + 205: 6(int) Load 204 + 206: 19(int) Load 132(byteAddrTemp) + 207: 19(int) IAdd 206 45 + 208: 30(ptr) AccessChain 18(sbuf) 26 207 + 209: 6(int) Load 208 + 210: 19(int) Load 132(byteAddrTemp) + 211: 19(int) IAdd 210 24 + 212: 30(ptr) AccessChain 18(sbuf) 26 211 + 213: 6(int) Load 212 + 214: 19(int) Load 132(byteAddrTemp) + 215: 19(int) IAdd 214 147 + 216: 30(ptr) AccessChain 18(sbuf) 26 215 + 217: 6(int) Load 216 + 218: 151(ivec4) CompositeConstruct 205 209 213 217 + 220: 6(int) CompositeExtract 218 3 + 221: 30(ptr) AccessChain 18(sbuf) 26 200 + Store 221 220 + 222: 6(int) Load 11(pos) + 223: 19(int) ShiftRightLogical 222 24 + 224: 30(ptr) AccessChain 18(sbuf) 26 223 + 225: 6(int) Load 224 + 226: 8(float) ConvertUToF 225 + 227: 9(fvec4) CompositeConstruct 226 226 226 226 + ReturnValue 227 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out new file mode 100644 index 0000000000..d7f539d0c4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.structin.vert.out @@ -0,0 +1,499 @@ +hlsl.structin.vert +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Parameters: +0:8 'd' ( in 4-component vector of float) +0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 'e' ( in 4-component vector of float) +0:? Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 b: direct index for structure ( temp 4-component vector of float) +0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 2 (const int) +0:11 add ( temp 4-component vector of float) +0:11 add ( temp 4-component vector of float) +0:11 add ( temp 4-component vector of float) +0:11 add ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float) +0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp 4-component vector of float) +0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Construct vec4 ( temp 4-component vector of float) +0:11 direct index ( temp float) +0:11 coord: direct index for structure ( temp 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 'd' ( in 4-component vector of float) +0:11 'e' ( in 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:12 coord: direct index for structure ( temp 4-component vector of float) +0:12 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:13 move second child to first child ( temp 4-component vector of float) +0:13 direct index ( temp 4-component vector of float) +0:13 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:14 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:14 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:16 Branch: Return with expression +0:16 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'd' ( temp 4-component vector of float) +0:? 'd' (layout( location=0) in 4-component vector of float) +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0 (const int) +0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 1 (const int) +0:? 'vi.coord' (layout( location=3) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 b: direct index for structure ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 2 (const int) +0:? 'vi.b' (layout( location=4) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'e' ( temp 4-component vector of float) +0:? 'e' (layout( location=5) in 4-component vector of float) +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:? 'd' ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:? 'e' ( temp 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.m[0]' (layout( location=0) out 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.m[1]' (layout( location=1) out 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.coord' ( out 4-component vector of float Position) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.b' (layout( location=2) smooth out 4-component vector of float) +0:8 b: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.coord' ( out 4-component vector of float Position) +0:? '@entryPointOutput.m[0]' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.m[1]' (layout( location=1) out 4-component vector of float) +0:? '@entryPointOutput.b' (layout( location=2) smooth out 4-component vector of float) +0:? 'd' (layout( location=0) in 4-component vector of float) +0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float) +0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float) +0:? 'vi.coord' (layout( location=3) in 4-component vector of float) +0:? 'vi.b' (layout( location=4) in 4-component vector of float) +0:? 'e' (layout( location=5) in 4-component vector of float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Parameters: +0:8 'd' ( in 4-component vector of float) +0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 'e' ( in 4-component vector of float) +0:? Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 b: direct index for structure ( temp 4-component vector of float) +0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 2 (const int) +0:11 add ( temp 4-component vector of float) +0:11 add ( temp 4-component vector of float) +0:11 add ( temp 4-component vector of float) +0:11 add ( temp 4-component vector of float) +0:11 direct index ( temp 4-component vector of float) +0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 direct index ( temp 4-component vector of float) +0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 Construct vec4 ( temp 4-component vector of float) +0:11 direct index ( temp float) +0:11 coord: direct index for structure ( temp 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 'd' ( in 4-component vector of float) +0:11 'e' ( in 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:12 coord: direct index for structure ( temp 4-component vector of float) +0:12 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:13 move second child to first child ( temp 4-component vector of float) +0:13 direct index ( temp 4-component vector of float) +0:13 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:14 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:14 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:16 Branch: Return with expression +0:16 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Definition: main( ( temp void) +0:8 Function Parameters: +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'd' ( temp 4-component vector of float) +0:? 'd' (layout( location=0) in 4-component vector of float) +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0 (const int) +0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 1 (const int) +0:? 'vi.coord' (layout( location=3) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 b: direct index for structure ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 2 (const int) +0:? 'vi.b' (layout( location=4) in 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? 'e' ( temp 4-component vector of float) +0:? 'e' (layout( location=5) in 4-component vector of float) +0:8 Sequence +0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:? 'd' ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:? 'e' ( temp 4-component vector of float) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.m[0]' (layout( location=0) out 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.m[1]' (layout( location=1) out 4-component vector of float) +0:8 direct index ( temp 4-component vector of float) +0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.coord' ( out 4-component vector of float Position) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 1 (const int) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.b' (layout( location=2) smooth out 4-component vector of float) +0:8 b: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Constant: +0:8 2 (const int) +0:? Linker Objects +0:? '@entryPointOutput.coord' ( out 4-component vector of float Position) +0:? '@entryPointOutput.m[0]' (layout( location=0) out 4-component vector of float) +0:? '@entryPointOutput.m[1]' (layout( location=1) out 4-component vector of float) +0:? '@entryPointOutput.b' (layout( location=2) smooth out 4-component vector of float) +0:? 'd' (layout( location=0) in 4-component vector of float) +0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float) +0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float) +0:? 'vi.coord' (layout( location=3) in 4-component vector of float) +0:? 'vi.b' (layout( location=4) in 4-component vector of float) +0:? 'e' (layout( location=5) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 94 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 55 58 61 64 67 71 82 85 88 91 + Source HLSL 500 + Name 4 "main" + Name 12 "VI" + MemberName 12(VI) 0 "m" + MemberName 12(VI) 1 "coord" + MemberName 12(VI) 2 "b" + Name 18 "@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;" + Name 15 "d" + Name 16 "vi" + Name 17 "e" + Name 20 "local" + Name 53 "d" + Name 55 "d" + Name 57 "vi" + Name 58 "vi.m[0]" + Name 61 "vi.m[1]" + Name 64 "vi.coord" + Name 67 "vi.b" + Name 70 "e" + Name 71 "e" + Name 73 "flattenTemp" + Name 74 "param" + Name 76 "param" + Name 78 "param" + Name 82 "@entryPointOutput.m[0]" + Name 85 "@entryPointOutput.m[1]" + Name 88 "@entryPointOutput.coord" + Name 91 "@entryPointOutput.b" + Decorate 55(d) Location 0 + Decorate 58(vi.m[0]) Location 1 + Decorate 61(vi.m[1]) Location 2 + Decorate 64(vi.coord) Location 3 + Decorate 67(vi.b) Location 4 + Decorate 71(e) Location 5 + Decorate 82(@entryPointOutput.m[0]) Location 0 + Decorate 85(@entryPointOutput.m[1]) Location 1 + Decorate 88(@entryPointOutput.coord) BuiltIn Position + Decorate 91(@entryPointOutput.b) Location 2 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 7(fvec4) 10 + 12(VI): TypeStruct 11 7(fvec4) 7(fvec4) + 13: TypePointer Function 12(VI) + 14: TypeFunction 12(VI) 8(ptr) 13(ptr) 8(ptr) + 21: TypeInt 32 1 + 22: 21(int) Constant 2 + 23: 21(int) Constant 0 + 24: 21(int) Constant 1 + 30: 9(int) Constant 0 + 31: TypePointer Function 6(float) + 41: 6(float) Constant 1065353216 + 42: 7(fvec4) ConstantComposite 41 41 41 41 + 44: 6(float) Constant 1073741824 + 45: 7(fvec4) ConstantComposite 44 44 44 44 + 47: 6(float) Constant 1077936128 + 48: 7(fvec4) ConstantComposite 47 47 47 47 + 54: TypePointer Input 7(fvec4) + 55(d): 54(ptr) Variable Input + 58(vi.m[0]): 54(ptr) Variable Input + 61(vi.m[1]): 54(ptr) Variable Input + 64(vi.coord): 54(ptr) Variable Input + 67(vi.b): 54(ptr) Variable Input + 71(e): 54(ptr) Variable Input + 81: TypePointer Output 7(fvec4) +82(@entryPointOutput.m[0]): 81(ptr) Variable Output +85(@entryPointOutput.m[1]): 81(ptr) Variable Output +88(@entryPointOutput.coord): 81(ptr) Variable Output +91(@entryPointOutput.b): 81(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 53(d): 8(ptr) Variable Function + 57(vi): 13(ptr) Variable Function + 70(e): 8(ptr) Variable Function + 73(flattenTemp): 13(ptr) Variable Function + 74(param): 8(ptr) Variable Function + 76(param): 13(ptr) Variable Function + 78(param): 8(ptr) Variable Function + 56: 7(fvec4) Load 55(d) + Store 53(d) 56 + 59: 7(fvec4) Load 58(vi.m[0]) + 60: 8(ptr) AccessChain 57(vi) 23 23 + Store 60 59 + 62: 7(fvec4) Load 61(vi.m[1]) + 63: 8(ptr) AccessChain 57(vi) 23 24 + Store 63 62 + 65: 7(fvec4) Load 64(vi.coord) + 66: 8(ptr) AccessChain 57(vi) 24 + Store 66 65 + 68: 7(fvec4) Load 67(vi.b) + 69: 8(ptr) AccessChain 57(vi) 22 + Store 69 68 + 72: 7(fvec4) Load 71(e) + Store 70(e) 72 + 75: 7(fvec4) Load 53(d) + Store 74(param) 75 + 77: 12(VI) Load 57(vi) + Store 76(param) 77 + 79: 7(fvec4) Load 70(e) + Store 78(param) 79 + 80: 12(VI) FunctionCall 18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;) 74(param) 76(param) 78(param) + Store 73(flattenTemp) 80 + 83: 8(ptr) AccessChain 73(flattenTemp) 23 23 + 84: 7(fvec4) Load 83 + Store 82(@entryPointOutput.m[0]) 84 + 86: 8(ptr) AccessChain 73(flattenTemp) 23 24 + 87: 7(fvec4) Load 86 + Store 85(@entryPointOutput.m[1]) 87 + 89: 8(ptr) AccessChain 73(flattenTemp) 24 + 90: 7(fvec4) Load 89 + Store 88(@entryPointOutput.coord) 90 + 92: 8(ptr) AccessChain 73(flattenTemp) 22 + 93: 7(fvec4) Load 92 + Store 91(@entryPointOutput.b) 93 + Return + FunctionEnd +18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;): 12(VI) Function None 14 + 15(d): 8(ptr) FunctionParameter + 16(vi): 13(ptr) FunctionParameter + 17(e): 8(ptr) FunctionParameter + 19: Label + 20(local): 13(ptr) Variable Function + 25: 8(ptr) AccessChain 16(vi) 23 24 + 26: 7(fvec4) Load 25 + 27: 8(ptr) AccessChain 16(vi) 23 23 + 28: 7(fvec4) Load 27 + 29: 7(fvec4) FAdd 26 28 + 32: 31(ptr) AccessChain 16(vi) 24 30 + 33: 6(float) Load 32 + 34: 7(fvec4) CompositeConstruct 33 33 33 33 + 35: 7(fvec4) FAdd 29 34 + 36: 7(fvec4) Load 15(d) + 37: 7(fvec4) FAdd 35 36 + 38: 7(fvec4) Load 17(e) + 39: 7(fvec4) FAdd 37 38 + 40: 8(ptr) AccessChain 20(local) 22 + Store 40 39 + 43: 8(ptr) AccessChain 20(local) 24 + Store 43 42 + 46: 8(ptr) AccessChain 20(local) 23 23 + Store 46 45 + 49: 8(ptr) AccessChain 20(local) 23 24 + Store 49 48 + 50: 12(VI) Load 20(local) + ReturnValue 50 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.subpass.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.subpass.frag.out new file mode 100644 index 0000000000..99aeb96b92 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.subpass.frag.out @@ -0,0 +1,777 @@ +hlsl.subpass.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: @main( ( temp 4-component vector of float) +0:68 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'result00' ( temp 4-component vector of float) +0:69 subpassLoad ( temp 4-component vector of float) +0:69 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of int) +0:70 'result01' ( temp 4-component vector of int) +0:70 subpassLoad ( temp 4-component vector of int) +0:70 'subpass_i4' ( uniform isubpassInput) +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of uint) +0:71 'result02' ( temp 4-component vector of uint) +0:71 subpassLoad ( temp 4-component vector of uint) +0:71 'subpass_u4' ( uniform usubpassInput) +0:73 Sequence +0:73 move second child to first child ( temp 4-component vector of float) +0:73 'result10' ( temp 4-component vector of float) +0:73 subpassLoadMS ( temp 4-component vector of float) +0:73 'subpass_ms_f4' ( uniform subpassInputMS) +0:73 Constant: +0:73 3 (const int) +0:74 Sequence +0:74 move second child to first child ( temp 4-component vector of int) +0:74 'result11' ( temp 4-component vector of int) +0:74 subpassLoadMS ( temp 4-component vector of int) +0:74 'subpass_ms_i4' ( uniform isubpassInputMS) +0:74 Constant: +0:74 3 (const int) +0:75 Sequence +0:75 move second child to first child ( temp 4-component vector of uint) +0:75 'result12' ( temp 4-component vector of uint) +0:75 subpassLoadMS ( temp 4-component vector of uint) +0:75 'subpass_ms_u4' ( uniform usubpassInputMS) +0:75 Constant: +0:75 3 (const int) +0:77 Sequence +0:77 move second child to first child ( temp 3-component vector of float) +0:77 'result20' ( temp 3-component vector of float) +0:77 Construct vec3 ( temp 3-component vector of float) +0:77 subpassLoad ( temp 4-component vector of float) +0:77 'subpass_f3' ( uniform subpassInput) +0:78 Sequence +0:78 move second child to first child ( temp 3-component vector of int) +0:78 'result21' ( temp 3-component vector of int) +0:78 Construct ivec3 ( temp 3-component vector of int) +0:78 subpassLoad ( temp 4-component vector of int) +0:78 'subpass_i3' ( uniform isubpassInput) +0:79 Sequence +0:79 move second child to first child ( temp 3-component vector of uint) +0:79 'result22' ( temp 3-component vector of uint) +0:79 Construct uvec3 ( temp 3-component vector of uint) +0:79 subpassLoad ( temp 4-component vector of uint) +0:79 'subpass_u3' ( uniform usubpassInput) +0:81 Sequence +0:81 move second child to first child ( temp 3-component vector of float) +0:81 'result30' ( temp 3-component vector of float) +0:81 Construct vec3 ( temp 3-component vector of float) +0:81 subpassLoadMS ( temp 4-component vector of float) +0:81 'subpass_ms_f3' ( uniform subpassInputMS) +0:81 Constant: +0:81 3 (const int) +0:82 Sequence +0:82 move second child to first child ( temp 3-component vector of int) +0:82 'result31' ( temp 3-component vector of int) +0:82 Construct ivec3 ( temp 3-component vector of int) +0:82 subpassLoadMS ( temp 4-component vector of int) +0:82 'subpass_ms_i3' ( uniform isubpassInputMS) +0:82 Constant: +0:82 3 (const int) +0:83 Sequence +0:83 move second child to first child ( temp 3-component vector of uint) +0:83 'result32' ( temp 3-component vector of uint) +0:83 Construct uvec3 ( temp 3-component vector of uint) +0:83 subpassLoadMS ( temp 4-component vector of uint) +0:83 'subpass_ms_u3' ( uniform usubpassInputMS) +0:83 Constant: +0:83 3 (const int) +0:85 Sequence +0:85 move second child to first child ( temp 2-component vector of float) +0:85 'result40' ( temp 2-component vector of float) +0:85 Construct vec2 ( temp 2-component vector of float) +0:85 subpassLoad ( temp 4-component vector of float) +0:85 'subpass_f2' ( uniform subpassInput) +0:86 Sequence +0:86 move second child to first child ( temp 2-component vector of int) +0:86 'result41' ( temp 2-component vector of int) +0:86 Construct ivec2 ( temp 2-component vector of int) +0:86 subpassLoad ( temp 4-component vector of int) +0:86 'subpass_i2' ( uniform isubpassInput) +0:87 Sequence +0:87 move second child to first child ( temp 2-component vector of uint) +0:87 'result42' ( temp 2-component vector of uint) +0:87 Construct uvec2 ( temp 2-component vector of uint) +0:87 subpassLoad ( temp 4-component vector of uint) +0:87 'subpass_u2' ( uniform usubpassInput) +0:89 Sequence +0:89 move second child to first child ( temp 2-component vector of float) +0:89 'result50' ( temp 2-component vector of float) +0:89 Construct vec2 ( temp 2-component vector of float) +0:89 subpassLoadMS ( temp 4-component vector of float) +0:89 'subpass_ms_f2' ( uniform subpassInputMS) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 2-component vector of int) +0:90 'result51' ( temp 2-component vector of int) +0:90 Construct ivec2 ( temp 2-component vector of int) +0:90 subpassLoadMS ( temp 4-component vector of int) +0:90 'subpass_ms_i2' ( uniform isubpassInputMS) +0:90 Constant: +0:90 2 (const int) +0:91 Sequence +0:91 move second child to first child ( temp 2-component vector of uint) +0:91 'result52' ( temp 2-component vector of uint) +0:91 Construct uvec2 ( temp 2-component vector of uint) +0:91 subpassLoadMS ( temp 4-component vector of uint) +0:91 'subpass_ms_u2' ( uniform usubpassInputMS) +0:91 Constant: +0:91 2 (const int) +0:93 Sequence +0:93 move second child to first child ( temp float) +0:93 'result60' ( temp float) +0:93 Construct float ( temp float) +0:93 subpassLoad ( temp 4-component vector of float) +0:93 'subpass_f' ( uniform subpassInput) +0:94 Sequence +0:94 move second child to first child ( temp int) +0:94 'result61' ( temp int) +0:94 Construct int ( temp int) +0:94 subpassLoad ( temp 4-component vector of int) +0:94 'subpass_i' ( uniform isubpassInput) +0:95 Sequence +0:95 move second child to first child ( temp uint) +0:95 'result62' ( temp uint) +0:95 Construct uint ( temp uint) +0:95 subpassLoad ( temp 4-component vector of uint) +0:95 'subpass_u' ( uniform usubpassInput) +0:97 Sequence +0:97 move second child to first child ( temp float) +0:97 'result70' ( temp float) +0:97 Construct float ( temp float) +0:97 subpassLoadMS ( temp 4-component vector of float) +0:97 'subpass_ms_f' ( uniform subpassInputMS) +0:97 Constant: +0:97 2 (const int) +0:98 Sequence +0:98 move second child to first child ( temp int) +0:98 'result71' ( temp int) +0:98 Construct int ( temp int) +0:98 subpassLoadMS ( temp 4-component vector of int) +0:98 'subpass_ms_i' ( uniform isubpassInputMS) +0:98 Constant: +0:98 2 (const int) +0:99 Sequence +0:99 move second child to first child ( temp uint) +0:99 'result72' ( temp uint) +0:99 Construct uint ( temp uint) +0:99 subpassLoadMS ( temp 4-component vector of uint) +0:99 'subpass_ms_u' ( uniform usubpassInputMS) +0:99 Constant: +0:99 2 (const int) +0:101 Sequence +0:101 move second child to first child ( temp 4-component vector of float) +0:101 'result73' ( temp 4-component vector of float) +0:101 subpassLoad ( temp 4-component vector of float) +0:101 'subpass_2' ( uniform subpassInput) +0:112 Branch: Return with expression +0:112 Constant: +0:112 0.000000 +0:112 0.000000 +0:112 0.000000 +0:112 0.000000 +0:68 Function Definition: main( ( temp void) +0:68 Function Parameters: +0:? Sequence +0:68 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:68 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) +0:? 'subpass_i4' ( uniform isubpassInput) +0:? 'subpass_u4' ( uniform usubpassInput) +0:? 'subpass_ms_f4' ( uniform subpassInputMS) +0:? 'subpass_ms_i4' ( uniform isubpassInputMS) +0:? 'subpass_ms_u4' ( uniform usubpassInputMS) +0:? 'subpass_f3' ( uniform subpassInput) +0:? 'subpass_i3' ( uniform isubpassInput) +0:? 'subpass_u3' ( uniform usubpassInput) +0:? 'subpass_ms_f3' ( uniform subpassInputMS) +0:? 'subpass_ms_i3' ( uniform isubpassInputMS) +0:? 'subpass_ms_u3' ( uniform usubpassInputMS) +0:? 'subpass_f2' ( uniform subpassInput) +0:? 'subpass_i2' ( uniform isubpassInput) +0:? 'subpass_u2' ( uniform usubpassInput) +0:? 'subpass_ms_f2' ( uniform subpassInputMS) +0:? 'subpass_ms_i2' ( uniform isubpassInputMS) +0:? 'subpass_ms_u2' ( uniform usubpassInputMS) +0:? 'subpass_f' ( uniform subpassInput) +0:? 'subpass_i' ( uniform isubpassInput) +0:? 'subpass_u' ( uniform usubpassInput) +0:? 'subpass_ms_f' ( uniform subpassInputMS) +0:? 'subpass_ms_i' ( uniform isubpassInputMS) +0:? 'subpass_ms_u' ( uniform usubpassInputMS) +0:? 'subpass_2' ( uniform subpassInput) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: @main( ( temp 4-component vector of float) +0:68 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child ( temp 4-component vector of float) +0:69 'result00' ( temp 4-component vector of float) +0:69 subpassLoad ( temp 4-component vector of float) +0:69 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) +0:70 Sequence +0:70 move second child to first child ( temp 4-component vector of int) +0:70 'result01' ( temp 4-component vector of int) +0:70 subpassLoad ( temp 4-component vector of int) +0:70 'subpass_i4' ( uniform isubpassInput) +0:71 Sequence +0:71 move second child to first child ( temp 4-component vector of uint) +0:71 'result02' ( temp 4-component vector of uint) +0:71 subpassLoad ( temp 4-component vector of uint) +0:71 'subpass_u4' ( uniform usubpassInput) +0:73 Sequence +0:73 move second child to first child ( temp 4-component vector of float) +0:73 'result10' ( temp 4-component vector of float) +0:73 subpassLoadMS ( temp 4-component vector of float) +0:73 'subpass_ms_f4' ( uniform subpassInputMS) +0:73 Constant: +0:73 3 (const int) +0:74 Sequence +0:74 move second child to first child ( temp 4-component vector of int) +0:74 'result11' ( temp 4-component vector of int) +0:74 subpassLoadMS ( temp 4-component vector of int) +0:74 'subpass_ms_i4' ( uniform isubpassInputMS) +0:74 Constant: +0:74 3 (const int) +0:75 Sequence +0:75 move second child to first child ( temp 4-component vector of uint) +0:75 'result12' ( temp 4-component vector of uint) +0:75 subpassLoadMS ( temp 4-component vector of uint) +0:75 'subpass_ms_u4' ( uniform usubpassInputMS) +0:75 Constant: +0:75 3 (const int) +0:77 Sequence +0:77 move second child to first child ( temp 3-component vector of float) +0:77 'result20' ( temp 3-component vector of float) +0:77 Construct vec3 ( temp 3-component vector of float) +0:77 subpassLoad ( temp 4-component vector of float) +0:77 'subpass_f3' ( uniform subpassInput) +0:78 Sequence +0:78 move second child to first child ( temp 3-component vector of int) +0:78 'result21' ( temp 3-component vector of int) +0:78 Construct ivec3 ( temp 3-component vector of int) +0:78 subpassLoad ( temp 4-component vector of int) +0:78 'subpass_i3' ( uniform isubpassInput) +0:79 Sequence +0:79 move second child to first child ( temp 3-component vector of uint) +0:79 'result22' ( temp 3-component vector of uint) +0:79 Construct uvec3 ( temp 3-component vector of uint) +0:79 subpassLoad ( temp 4-component vector of uint) +0:79 'subpass_u3' ( uniform usubpassInput) +0:81 Sequence +0:81 move second child to first child ( temp 3-component vector of float) +0:81 'result30' ( temp 3-component vector of float) +0:81 Construct vec3 ( temp 3-component vector of float) +0:81 subpassLoadMS ( temp 4-component vector of float) +0:81 'subpass_ms_f3' ( uniform subpassInputMS) +0:81 Constant: +0:81 3 (const int) +0:82 Sequence +0:82 move second child to first child ( temp 3-component vector of int) +0:82 'result31' ( temp 3-component vector of int) +0:82 Construct ivec3 ( temp 3-component vector of int) +0:82 subpassLoadMS ( temp 4-component vector of int) +0:82 'subpass_ms_i3' ( uniform isubpassInputMS) +0:82 Constant: +0:82 3 (const int) +0:83 Sequence +0:83 move second child to first child ( temp 3-component vector of uint) +0:83 'result32' ( temp 3-component vector of uint) +0:83 Construct uvec3 ( temp 3-component vector of uint) +0:83 subpassLoadMS ( temp 4-component vector of uint) +0:83 'subpass_ms_u3' ( uniform usubpassInputMS) +0:83 Constant: +0:83 3 (const int) +0:85 Sequence +0:85 move second child to first child ( temp 2-component vector of float) +0:85 'result40' ( temp 2-component vector of float) +0:85 Construct vec2 ( temp 2-component vector of float) +0:85 subpassLoad ( temp 4-component vector of float) +0:85 'subpass_f2' ( uniform subpassInput) +0:86 Sequence +0:86 move second child to first child ( temp 2-component vector of int) +0:86 'result41' ( temp 2-component vector of int) +0:86 Construct ivec2 ( temp 2-component vector of int) +0:86 subpassLoad ( temp 4-component vector of int) +0:86 'subpass_i2' ( uniform isubpassInput) +0:87 Sequence +0:87 move second child to first child ( temp 2-component vector of uint) +0:87 'result42' ( temp 2-component vector of uint) +0:87 Construct uvec2 ( temp 2-component vector of uint) +0:87 subpassLoad ( temp 4-component vector of uint) +0:87 'subpass_u2' ( uniform usubpassInput) +0:89 Sequence +0:89 move second child to first child ( temp 2-component vector of float) +0:89 'result50' ( temp 2-component vector of float) +0:89 Construct vec2 ( temp 2-component vector of float) +0:89 subpassLoadMS ( temp 4-component vector of float) +0:89 'subpass_ms_f2' ( uniform subpassInputMS) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child ( temp 2-component vector of int) +0:90 'result51' ( temp 2-component vector of int) +0:90 Construct ivec2 ( temp 2-component vector of int) +0:90 subpassLoadMS ( temp 4-component vector of int) +0:90 'subpass_ms_i2' ( uniform isubpassInputMS) +0:90 Constant: +0:90 2 (const int) +0:91 Sequence +0:91 move second child to first child ( temp 2-component vector of uint) +0:91 'result52' ( temp 2-component vector of uint) +0:91 Construct uvec2 ( temp 2-component vector of uint) +0:91 subpassLoadMS ( temp 4-component vector of uint) +0:91 'subpass_ms_u2' ( uniform usubpassInputMS) +0:91 Constant: +0:91 2 (const int) +0:93 Sequence +0:93 move second child to first child ( temp float) +0:93 'result60' ( temp float) +0:93 Construct float ( temp float) +0:93 subpassLoad ( temp 4-component vector of float) +0:93 'subpass_f' ( uniform subpassInput) +0:94 Sequence +0:94 move second child to first child ( temp int) +0:94 'result61' ( temp int) +0:94 Construct int ( temp int) +0:94 subpassLoad ( temp 4-component vector of int) +0:94 'subpass_i' ( uniform isubpassInput) +0:95 Sequence +0:95 move second child to first child ( temp uint) +0:95 'result62' ( temp uint) +0:95 Construct uint ( temp uint) +0:95 subpassLoad ( temp 4-component vector of uint) +0:95 'subpass_u' ( uniform usubpassInput) +0:97 Sequence +0:97 move second child to first child ( temp float) +0:97 'result70' ( temp float) +0:97 Construct float ( temp float) +0:97 subpassLoadMS ( temp 4-component vector of float) +0:97 'subpass_ms_f' ( uniform subpassInputMS) +0:97 Constant: +0:97 2 (const int) +0:98 Sequence +0:98 move second child to first child ( temp int) +0:98 'result71' ( temp int) +0:98 Construct int ( temp int) +0:98 subpassLoadMS ( temp 4-component vector of int) +0:98 'subpass_ms_i' ( uniform isubpassInputMS) +0:98 Constant: +0:98 2 (const int) +0:99 Sequence +0:99 move second child to first child ( temp uint) +0:99 'result72' ( temp uint) +0:99 Construct uint ( temp uint) +0:99 subpassLoadMS ( temp 4-component vector of uint) +0:99 'subpass_ms_u' ( uniform usubpassInputMS) +0:99 Constant: +0:99 2 (const int) +0:101 Sequence +0:101 move second child to first child ( temp 4-component vector of float) +0:101 'result73' ( temp 4-component vector of float) +0:101 subpassLoad ( temp 4-component vector of float) +0:101 'subpass_2' ( uniform subpassInput) +0:112 Branch: Return with expression +0:112 Constant: +0:112 0.000000 +0:112 0.000000 +0:112 0.000000 +0:112 0.000000 +0:68 Function Definition: main( ( temp void) +0:68 Function Parameters: +0:? Sequence +0:68 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:68 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'subpass_f4' (layout( binding=1 input_attachment_index=1) uniform subpassInput) +0:? 'subpass_i4' ( uniform isubpassInput) +0:? 'subpass_u4' ( uniform usubpassInput) +0:? 'subpass_ms_f4' ( uniform subpassInputMS) +0:? 'subpass_ms_i4' ( uniform isubpassInputMS) +0:? 'subpass_ms_u4' ( uniform usubpassInputMS) +0:? 'subpass_f3' ( uniform subpassInput) +0:? 'subpass_i3' ( uniform isubpassInput) +0:? 'subpass_u3' ( uniform usubpassInput) +0:? 'subpass_ms_f3' ( uniform subpassInputMS) +0:? 'subpass_ms_i3' ( uniform isubpassInputMS) +0:? 'subpass_ms_u3' ( uniform usubpassInputMS) +0:? 'subpass_f2' ( uniform subpassInput) +0:? 'subpass_i2' ( uniform isubpassInput) +0:? 'subpass_u2' ( uniform usubpassInput) +0:? 'subpass_ms_f2' ( uniform subpassInputMS) +0:? 'subpass_ms_i2' ( uniform isubpassInputMS) +0:? 'subpass_ms_u2' ( uniform usubpassInputMS) +0:? 'subpass_f' ( uniform subpassInput) +0:? 'subpass_i' ( uniform isubpassInput) +0:? 'subpass_u' ( uniform usubpassInput) +0:? 'subpass_ms_f' ( uniform subpassInputMS) +0:? 'subpass_ms_i' ( uniform isubpassInputMS) +0:? 'subpass_ms_u' ( uniform usubpassInputMS) +0:? 'subpass_2' ( uniform subpassInput) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 204 + + Capability Shader + Capability InputAttachment + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 202 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "result00" + Name 15 "subpass_f4" + Name 24 "result01" + Name 27 "subpass_i4" + Name 33 "result02" + Name 36 "subpass_u4" + Name 39 "result10" + Name 42 "subpass_ms_f4" + Name 46 "result11" + Name 49 "subpass_ms_i4" + Name 52 "result12" + Name 55 "subpass_ms_u4" + Name 60 "result20" + Name 61 "subpass_f3" + Name 70 "result21" + Name 71 "subpass_i3" + Name 80 "result22" + Name 81 "subpass_u3" + Name 88 "result30" + Name 89 "subpass_ms_f3" + Name 96 "result31" + Name 97 "subpass_ms_i3" + Name 104 "result32" + Name 105 "subpass_ms_u3" + Name 114 "result40" + Name 115 "subpass_f2" + Name 122 "result41" + Name 123 "subpass_i2" + Name 131 "result42" + Name 132 "subpass_u2" + Name 138 "result50" + Name 139 "subpass_ms_f2" + Name 146 "result51" + Name 147 "subpass_ms_i2" + Name 153 "result52" + Name 154 "subpass_ms_u2" + Name 161 "result60" + Name 162 "subpass_f" + Name 167 "result61" + Name 168 "subpass_i" + Name 173 "result62" + Name 174 "subpass_u" + Name 178 "result70" + Name 179 "subpass_ms_f" + Name 183 "result71" + Name 184 "subpass_ms_i" + Name 188 "result72" + Name 189 "subpass_ms_u" + Name 193 "result73" + Name 194 "subpass_2" + Name 202 "@entryPointOutput" + Decorate 15(subpass_f4) DescriptorSet 0 + Decorate 15(subpass_f4) Binding 1 + Decorate 15(subpass_f4) InputAttachmentIndex 1 + Decorate 27(subpass_i4) DescriptorSet 0 + Decorate 27(subpass_i4) InputAttachmentIndex 2 + Decorate 36(subpass_u4) DescriptorSet 0 + Decorate 36(subpass_u4) InputAttachmentIndex 3 + Decorate 42(subpass_ms_f4) DescriptorSet 0 + Decorate 42(subpass_ms_f4) InputAttachmentIndex 4 + Decorate 49(subpass_ms_i4) DescriptorSet 0 + Decorate 49(subpass_ms_i4) InputAttachmentIndex 5 + Decorate 55(subpass_ms_u4) DescriptorSet 0 + Decorate 55(subpass_ms_u4) InputAttachmentIndex 6 + Decorate 61(subpass_f3) DescriptorSet 0 + Decorate 61(subpass_f3) InputAttachmentIndex 1 + Decorate 71(subpass_i3) DescriptorSet 0 + Decorate 71(subpass_i3) InputAttachmentIndex 2 + Decorate 81(subpass_u3) DescriptorSet 0 + Decorate 81(subpass_u3) InputAttachmentIndex 3 + Decorate 89(subpass_ms_f3) DescriptorSet 0 + Decorate 89(subpass_ms_f3) InputAttachmentIndex 4 + Decorate 97(subpass_ms_i3) DescriptorSet 0 + Decorate 97(subpass_ms_i3) InputAttachmentIndex 5 + Decorate 105(subpass_ms_u3) DescriptorSet 0 + Decorate 105(subpass_ms_u3) InputAttachmentIndex 6 + Decorate 115(subpass_f2) DescriptorSet 0 + Decorate 115(subpass_f2) InputAttachmentIndex 1 + Decorate 123(subpass_i2) DescriptorSet 0 + Decorate 123(subpass_i2) InputAttachmentIndex 2 + Decorate 132(subpass_u2) DescriptorSet 0 + Decorate 132(subpass_u2) InputAttachmentIndex 3 + Decorate 139(subpass_ms_f2) DescriptorSet 0 + Decorate 139(subpass_ms_f2) InputAttachmentIndex 4 + Decorate 147(subpass_ms_i2) DescriptorSet 0 + Decorate 147(subpass_ms_i2) InputAttachmentIndex 5 + Decorate 154(subpass_ms_u2) DescriptorSet 0 + Decorate 154(subpass_ms_u2) InputAttachmentIndex 6 + Decorate 162(subpass_f) DescriptorSet 0 + Decorate 162(subpass_f) InputAttachmentIndex 1 + Decorate 168(subpass_i) DescriptorSet 0 + Decorate 168(subpass_i) InputAttachmentIndex 2 + Decorate 174(subpass_u) DescriptorSet 0 + Decorate 174(subpass_u) InputAttachmentIndex 3 + Decorate 179(subpass_ms_f) DescriptorSet 0 + Decorate 179(subpass_ms_f) InputAttachmentIndex 4 + Decorate 184(subpass_ms_i) DescriptorSet 0 + Decorate 184(subpass_ms_i) InputAttachmentIndex 5 + Decorate 189(subpass_ms_u) DescriptorSet 0 + Decorate 189(subpass_ms_u) InputAttachmentIndex 6 + Decorate 194(subpass_2) DescriptorSet 0 + Decorate 194(subpass_2) InputAttachmentIndex 7 + Decorate 202(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 7(fvec4) + 13: TypeImage 6(float) SubpassData nonsampled format:Unknown + 14: TypePointer UniformConstant 13 + 15(subpass_f4): 14(ptr) Variable UniformConstant + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypeVector 17(int) 2 + 20: 19(ivec2) ConstantComposite 18 18 + 22: TypeVector 17(int) 4 + 23: TypePointer Function 22(ivec4) + 25: TypeImage 17(int) SubpassData nonsampled format:Unknown + 26: TypePointer UniformConstant 25 + 27(subpass_i4): 26(ptr) Variable UniformConstant + 30: TypeInt 32 0 + 31: TypeVector 30(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 30(int) SubpassData nonsampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(subpass_u4): 35(ptr) Variable UniformConstant + 40: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown + 41: TypePointer UniformConstant 40 +42(subpass_ms_f4): 41(ptr) Variable UniformConstant + 44: 17(int) Constant 3 + 47: TypeImage 17(int) SubpassData multi-sampled nonsampled format:Unknown + 48: TypePointer UniformConstant 47 +49(subpass_ms_i4): 48(ptr) Variable UniformConstant + 53: TypeImage 30(int) SubpassData multi-sampled nonsampled format:Unknown + 54: TypePointer UniformConstant 53 +55(subpass_ms_u4): 54(ptr) Variable UniformConstant + 58: TypeVector 6(float) 3 + 59: TypePointer Function 58(fvec3) + 61(subpass_f3): 14(ptr) Variable UniformConstant + 68: TypeVector 17(int) 3 + 69: TypePointer Function 68(ivec3) + 71(subpass_i3): 26(ptr) Variable UniformConstant + 78: TypeVector 30(int) 3 + 79: TypePointer Function 78(ivec3) + 81(subpass_u3): 35(ptr) Variable UniformConstant +89(subpass_ms_f3): 41(ptr) Variable UniformConstant +97(subpass_ms_i3): 48(ptr) Variable UniformConstant +105(subpass_ms_u3): 54(ptr) Variable UniformConstant + 112: TypeVector 6(float) 2 + 113: TypePointer Function 112(fvec2) + 115(subpass_f2): 14(ptr) Variable UniformConstant + 121: TypePointer Function 19(ivec2) + 123(subpass_i2): 26(ptr) Variable UniformConstant + 129: TypeVector 30(int) 2 + 130: TypePointer Function 129(ivec2) + 132(subpass_u2): 35(ptr) Variable UniformConstant +139(subpass_ms_f2): 41(ptr) Variable UniformConstant + 141: 17(int) Constant 2 +147(subpass_ms_i2): 48(ptr) Variable UniformConstant +154(subpass_ms_u2): 54(ptr) Variable UniformConstant + 160: TypePointer Function 6(float) + 162(subpass_f): 14(ptr) Variable UniformConstant + 166: TypePointer Function 17(int) + 168(subpass_i): 26(ptr) Variable UniformConstant + 172: TypePointer Function 30(int) + 174(subpass_u): 35(ptr) Variable UniformConstant +179(subpass_ms_f): 41(ptr) Variable UniformConstant +184(subpass_ms_i): 48(ptr) Variable UniformConstant +189(subpass_ms_u): 54(ptr) Variable UniformConstant + 194(subpass_2): 14(ptr) Variable UniformConstant + 197: 6(float) Constant 0 + 198: 7(fvec4) ConstantComposite 197 197 197 197 + 201: TypePointer Output 7(fvec4) +202(@entryPointOutput): 201(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 203: 7(fvec4) FunctionCall 9(@main() + Store 202(@entryPointOutput) 203 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(result00): 11(ptr) Variable Function + 24(result01): 23(ptr) Variable Function + 33(result02): 32(ptr) Variable Function + 39(result10): 11(ptr) Variable Function + 46(result11): 23(ptr) Variable Function + 52(result12): 32(ptr) Variable Function + 60(result20): 59(ptr) Variable Function + 70(result21): 69(ptr) Variable Function + 80(result22): 79(ptr) Variable Function + 88(result30): 59(ptr) Variable Function + 96(result31): 69(ptr) Variable Function + 104(result32): 79(ptr) Variable Function + 114(result40): 113(ptr) Variable Function + 122(result41): 121(ptr) Variable Function + 131(result42): 130(ptr) Variable Function + 138(result50): 113(ptr) Variable Function + 146(result51): 121(ptr) Variable Function + 153(result52): 130(ptr) Variable Function + 161(result60): 160(ptr) Variable Function + 167(result61): 166(ptr) Variable Function + 173(result62): 172(ptr) Variable Function + 178(result70): 160(ptr) Variable Function + 183(result71): 166(ptr) Variable Function + 188(result72): 172(ptr) Variable Function + 193(result73): 11(ptr) Variable Function + 16: 13 Load 15(subpass_f4) + 21: 7(fvec4) ImageRead 16 20 + Store 12(result00) 21 + 28: 25 Load 27(subpass_i4) + 29: 22(ivec4) ImageRead 28 20 + Store 24(result01) 29 + 37: 34 Load 36(subpass_u4) + 38: 31(ivec4) ImageRead 37 20 + Store 33(result02) 38 + 43: 40 Load 42(subpass_ms_f4) + 45: 7(fvec4) ImageRead 43 20 Sample 44 + Store 39(result10) 45 + 50: 47 Load 49(subpass_ms_i4) + 51: 22(ivec4) ImageRead 50 20 Sample 44 + Store 46(result11) 51 + 56: 53 Load 55(subpass_ms_u4) + 57: 31(ivec4) ImageRead 56 20 Sample 44 + Store 52(result12) 57 + 62: 13 Load 61(subpass_f3) + 63: 7(fvec4) ImageRead 62 20 + 64: 6(float) CompositeExtract 63 0 + 65: 6(float) CompositeExtract 63 1 + 66: 6(float) CompositeExtract 63 2 + 67: 58(fvec3) CompositeConstruct 64 65 66 + Store 60(result20) 67 + 72: 25 Load 71(subpass_i3) + 73: 22(ivec4) ImageRead 72 20 + 74: 17(int) CompositeExtract 73 0 + 75: 17(int) CompositeExtract 73 1 + 76: 17(int) CompositeExtract 73 2 + 77: 68(ivec3) CompositeConstruct 74 75 76 + Store 70(result21) 77 + 82: 34 Load 81(subpass_u3) + 83: 31(ivec4) ImageRead 82 20 + 84: 30(int) CompositeExtract 83 0 + 85: 30(int) CompositeExtract 83 1 + 86: 30(int) CompositeExtract 83 2 + 87: 78(ivec3) CompositeConstruct 84 85 86 + Store 80(result22) 87 + 90: 40 Load 89(subpass_ms_f3) + 91: 7(fvec4) ImageRead 90 20 Sample 44 + 92: 6(float) CompositeExtract 91 0 + 93: 6(float) CompositeExtract 91 1 + 94: 6(float) CompositeExtract 91 2 + 95: 58(fvec3) CompositeConstruct 92 93 94 + Store 88(result30) 95 + 98: 47 Load 97(subpass_ms_i3) + 99: 22(ivec4) ImageRead 98 20 Sample 44 + 100: 17(int) CompositeExtract 99 0 + 101: 17(int) CompositeExtract 99 1 + 102: 17(int) CompositeExtract 99 2 + 103: 68(ivec3) CompositeConstruct 100 101 102 + Store 96(result31) 103 + 106: 53 Load 105(subpass_ms_u3) + 107: 31(ivec4) ImageRead 106 20 Sample 44 + 108: 30(int) CompositeExtract 107 0 + 109: 30(int) CompositeExtract 107 1 + 110: 30(int) CompositeExtract 107 2 + 111: 78(ivec3) CompositeConstruct 108 109 110 + Store 104(result32) 111 + 116: 13 Load 115(subpass_f2) + 117: 7(fvec4) ImageRead 116 20 + 118: 6(float) CompositeExtract 117 0 + 119: 6(float) CompositeExtract 117 1 + 120: 112(fvec2) CompositeConstruct 118 119 + Store 114(result40) 120 + 124: 25 Load 123(subpass_i2) + 125: 22(ivec4) ImageRead 124 20 + 126: 17(int) CompositeExtract 125 0 + 127: 17(int) CompositeExtract 125 1 + 128: 19(ivec2) CompositeConstruct 126 127 + Store 122(result41) 128 + 133: 34 Load 132(subpass_u2) + 134: 31(ivec4) ImageRead 133 20 + 135: 30(int) CompositeExtract 134 0 + 136: 30(int) CompositeExtract 134 1 + 137: 129(ivec2) CompositeConstruct 135 136 + Store 131(result42) 137 + 140: 40 Load 139(subpass_ms_f2) + 142: 7(fvec4) ImageRead 140 20 Sample 141 + 143: 6(float) CompositeExtract 142 0 + 144: 6(float) CompositeExtract 142 1 + 145: 112(fvec2) CompositeConstruct 143 144 + Store 138(result50) 145 + 148: 47 Load 147(subpass_ms_i2) + 149: 22(ivec4) ImageRead 148 20 Sample 141 + 150: 17(int) CompositeExtract 149 0 + 151: 17(int) CompositeExtract 149 1 + 152: 19(ivec2) CompositeConstruct 150 151 + Store 146(result51) 152 + 155: 53 Load 154(subpass_ms_u2) + 156: 31(ivec4) ImageRead 155 20 Sample 141 + 157: 30(int) CompositeExtract 156 0 + 158: 30(int) CompositeExtract 156 1 + 159: 129(ivec2) CompositeConstruct 157 158 + Store 153(result52) 159 + 163: 13 Load 162(subpass_f) + 164: 7(fvec4) ImageRead 163 20 + 165: 6(float) CompositeExtract 164 0 + Store 161(result60) 165 + 169: 25 Load 168(subpass_i) + 170: 22(ivec4) ImageRead 169 20 + 171: 17(int) CompositeExtract 170 0 + Store 167(result61) 171 + 175: 34 Load 174(subpass_u) + 176: 31(ivec4) ImageRead 175 20 + 177: 30(int) CompositeExtract 176 0 + Store 173(result62) 177 + 180: 40 Load 179(subpass_ms_f) + 181: 7(fvec4) ImageRead 180 20 Sample 141 + 182: 6(float) CompositeExtract 181 0 + Store 178(result70) 182 + 185: 47 Load 184(subpass_ms_i) + 186: 22(ivec4) ImageRead 185 20 Sample 141 + 187: 17(int) CompositeExtract 186 0 + Store 183(result71) 187 + 190: 53 Load 189(subpass_ms_u) + 191: 31(ivec4) ImageRead 190 20 Sample 141 + 192: 30(int) CompositeExtract 191 0 + Store 188(result72) 192 + 195: 13 Load 194(subpass_2) + 196: 7(fvec4) ImageRead 195 20 + Store 193(result73) 196 + ReturnValue 198 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out new file mode 100644 index 0000000000..b72891ea5a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.switch.frag.out @@ -0,0 +1,469 @@ +hlsl.switch.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4;i1;i1; ( temp 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: DontFlatten +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:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp int) +0:? 'c' ( temp int) +0:? 'c' (layout( location=1) flat in int) +0:2 move second child to first child ( temp int) +0:? 'd' ( temp int) +0:? 'd' (layout( location=2) flat in int) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4;i1;i1; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'c' ( temp int) +0:? 'd' ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'c' (layout( location=1) flat in int) +0:? 'd' (layout( location=2) flat in int) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4;i1;i1; ( temp 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: DontFlatten +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:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp int) +0:? 'c' ( temp int) +0:? 'c' (layout( location=1) flat in int) +0:2 move second child to first child ( temp int) +0:? 'd' ( temp int) +0:? 'd' (layout( location=2) flat in int) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4;i1;i1; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'c' ( temp int) +0:? 'd' ( temp int) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:? 'c' (layout( location=1) flat in int) +0:? 'd' (layout( location=2) flat in int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 106 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 88 92 95 98 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 15 "@PixelShaderFunction(vf4;i1;i1;" + Name 12 "input" + Name 13 "c" + Name 14 "d" + Name 86 "input" + Name 88 "input" + Name 90 "c" + Name 92 "c" + Name 94 "d" + Name 95 "d" + Name 98 "@entryPointOutput" + Name 99 "param" + Name 101 "param" + Name 103 "param" + Decorate 88(input) Location 0 + Decorate 92(c) Flat + Decorate 92(c) Location 1 + Decorate 95(d) Flat + Decorate 95(d) Location 2 + Decorate 98(@entryPointOutput) Location 0 + 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) 10(ptr) + 27: 6(float) Constant 1065353216 + 49: 6(float) Constant 1073741824 + 54: 6(float) Constant 1077936128 + 61: 6(float) Constant 1082130432 + 87: TypePointer Input 7(fvec4) + 88(input): 87(ptr) Variable Input + 91: TypePointer Input 9(int) + 92(c): 91(ptr) Variable Input + 95(d): 91(ptr) Variable Input + 97: TypePointer Output 7(fvec4) +98(@entryPointOutput): 97(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 86(input): 8(ptr) Variable Function + 90(c): 10(ptr) Variable Function + 94(d): 10(ptr) Variable Function + 99(param): 8(ptr) Variable Function + 101(param): 10(ptr) Variable Function + 103(param): 10(ptr) Variable Function + 89: 7(fvec4) Load 88(input) + Store 86(input) 89 + 93: 9(int) Load 92(c) + Store 90(c) 93 + 96: 9(int) Load 95(d) + Store 94(d) 96 + 100: 7(fvec4) Load 86(input) + Store 99(param) 100 + 102: 9(int) Load 90(c) + Store 101(param) 102 + 104: 9(int) Load 94(d) + Store 103(param) 104 + 105: 7(fvec4) FunctionCall 15(@PixelShaderFunction(vf4;i1;i1;) 99(param) 101(param) 103(param) + Store 98(@entryPointOutput) 105 + Return + FunctionEnd +15(@PixelShaderFunction(vf4;i1;i1;): 7(fvec4) Function None 11 + 12(input): 8(ptr) FunctionParameter + 13(c): 10(ptr) FunctionParameter + 14(d): 10(ptr) FunctionParameter + 16: Label + 17: 9(int) Load 13(c) + SelectionMerge 19 None + Switch 17 18 + 18: Label + Branch 19 + 19: Label + 22: 9(int) Load 13(c) + SelectionMerge 25 None + Switch 22 25 + case 1: 23 + case 2: 24 + 23: Label + 26: 7(fvec4) Load 12(input) + 28: 7(fvec4) CompositeConstruct 27 27 27 27 + 29: 7(fvec4) FAdd 26 28 + Store 12(input) 29 + Branch 25 + 24: Label + 31: 7(fvec4) Load 12(input) + 32: 7(fvec4) CompositeConstruct 27 27 27 27 + 33: 7(fvec4) FSub 31 32 + Store 12(input) 33 + Branch 25 + 25: Label + 36: 9(int) Load 13(c) + SelectionMerge 40 DontFlatten + Switch 36 39 + case 1: 37 + case 2: 38 + 39: Label + 62: 7(fvec4) Load 12(input) + 63: 7(fvec4) CompositeConstruct 61 61 61 61 + 64: 7(fvec4) FAdd 62 63 + Store 12(input) 64 + Branch 40 + 37: Label + 41: 7(fvec4) Load 12(input) + 42: 7(fvec4) CompositeConstruct 27 27 27 27 + 43: 7(fvec4) FAdd 41 42 + Store 12(input) 43 + Branch 40 + 38: Label + 45: 9(int) Load 14(d) + SelectionMerge 48 None + Switch 45 48 + case 2: 46 + case 3: 47 + 46: Label + 50: 7(fvec4) Load 12(input) + 51: 7(fvec4) CompositeConstruct 49 49 49 49 + 52: 7(fvec4) FAdd 50 51 + Store 12(input) 52 + Branch 48 + 47: Label + 55: 7(fvec4) Load 12(input) + 56: 7(fvec4) CompositeConstruct 54 54 54 54 + 57: 7(fvec4) FAdd 55 56 + Store 12(input) 57 + Branch 48 + 48: Label + Branch 40 + 40: Label + 66: 9(int) Load 13(c) + SelectionMerge 68 None + Switch 66 68 + case 1: 67 + 67: Label + Branch 68 + 68: Label + 71: 9(int) Load 13(c) + SelectionMerge 74 None + Switch 71 74 + case 1: 72 + case 2: 72 + case 3: 72 + case 4: 73 + case 5: 73 + 72: Label + 75: 7(fvec4) Load 12(input) + 76: 7(fvec4) CompositeConstruct 27 27 27 27 + 77: 7(fvec4) FAdd 75 76 + Store 12(input) 77 + Branch 74 + 73: Label + 79: 7(fvec4) Load 12(input) + 80: 7(fvec4) CompositeConstruct 27 27 27 27 + 81: 7(fvec4) FSub 79 80 + Store 12(input) 81 + Branch 74 + 74: Label + 83: 7(fvec4) Load 12(input) + ReturnValue 83 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.swizzle.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.swizzle.frag.out new file mode 100644 index 0000000000..c734d50983 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.swizzle.frag.out @@ -0,0 +1,123 @@ +hlsl.swizzle.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 4-component vector of float) +0:1 'AmbientColor' ( global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:4 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'input' ( in 4-component vector of float) +0:? Sequence +0:5 Branch: Return with expression +0:5 component-wise multiply ( temp 4-component vector of float) +0:5 vector swizzle ( temp 4-component vector of float) +0:5 'input' ( in 4-component vector of float) +0:5 Sequence +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 Construct vec4 ( temp 4-component vector of float) +0:5 direct index ( temp float) +0:5 'AmbientColor' ( global 4-component vector of float) +0:5 Constant: +0:5 2 (const int) +0:? Linker Objects +0:? 'AmbientColor' ( global 4-component vector of float) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 4-component vector of float) +0:1 'AmbientColor' ( global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:4 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'input' ( in 4-component vector of float) +0:? Sequence +0:5 Branch: Return with expression +0:5 component-wise multiply ( temp 4-component vector of float) +0:5 vector swizzle ( temp 4-component vector of float) +0:5 'input' ( in 4-component vector of float) +0:5 Sequence +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 Construct vec4 ( temp 4-component vector of float) +0:5 direct index ( temp float) +0:5 'AmbientColor' ( global 4-component vector of float) +0:5 Constant: +0:5 2 (const int) +0:? Linker Objects +0:? 'AmbientColor' ( global 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "ShaderFunction(vf4;" + Name 10 "input" + 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) + 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 + Return + FunctionEnd +11(ShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 19: 7(fvec4) Load 10(input) + 20: 7(fvec4) 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/deps/glslang/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out new file mode 100644 index 0000000000..bbe97434ee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out @@ -0,0 +1,172 @@ +hlsl.synthesizeInput.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:? Sequence +0:8 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:8 Convert uint to float ( temp float) +0:8 no_interp: direct index for structure ( temp uint) +0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:8 Constant: +0:8 1 (const int) +0:8 interp: direct index for structure ( temp float) +0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.000000 +0:8 Constant: +0:8 1.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:7 move second child to first child ( temp uint) +0:7 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) +0:7 Function Parameters: +0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:? Sequence +0:8 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:8 Convert uint to float ( temp float) +0:8 no_interp: direct index for structure ( temp uint) +0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:8 Constant: +0:8 1 (const int) +0:8 interp: direct index for structure ( temp float) +0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.000000 +0:8 Constant: +0:8 1.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:7 move second child to first child ( temp uint) +0:7 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:7 Function Call: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 32 36 40 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "interp" + MemberName 8(PSInput) 1 "no_interp" + Name 13 "@main(struct-PSInput-f1-u11;" + Name 12 "input" + Name 30 "input" + Name 32 "input.interp" + Name 36 "input.no_interp" + Name 40 "@entryPointOutput" + Name 41 "param" + Decorate 32(input.interp) Location 0 + Decorate 36(input.no_interp) Flat + Decorate 36(input.no_interp) Location 1 + Decorate 40(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 10: TypeVector 6(float) 4 + 11: TypeFunction 10(fvec4) 9(ptr) + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Function 7(int) + 21: 15(int) Constant 0 + 22: TypePointer Function 6(float) + 25: 6(float) Constant 0 + 26: 6(float) Constant 1065353216 + 31: TypePointer Input 6(float) +32(input.interp): 31(ptr) Variable Input + 35: TypePointer Input 7(int) +36(input.no_interp): 35(ptr) Variable Input + 39: TypePointer Output 10(fvec4) +40(@entryPointOutput): 39(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 30(input): 9(ptr) Variable Function + 41(param): 9(ptr) Variable Function + 33: 6(float) Load 32(input.interp) + 34: 22(ptr) AccessChain 30(input) 21 + Store 34 33 + 37: 7(int) Load 36(input.no_interp) + 38: 17(ptr) AccessChain 30(input) 16 + Store 38 37 + 42: 8(PSInput) Load 30(input) + Store 41(param) 42 + 43: 10(fvec4) FunctionCall 13(@main(struct-PSInput-f1-u11;) 41(param) + Store 40(@entryPointOutput) 43 + Return + FunctionEnd +13(@main(struct-PSInput-f1-u11;): 10(fvec4) Function None 11 + 12(input): 9(ptr) FunctionParameter + 14: Label + 18: 17(ptr) AccessChain 12(input) 16 + 19: 7(int) Load 18 + 20: 6(float) ConvertUToF 19 + 23: 22(ptr) AccessChain 12(input) 21 + 24: 6(float) Load 23 + 27: 10(fvec4) CompositeConstruct 20 24 25 26 + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.target.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.target.frag.out new file mode 100644 index 0000000000..0001796816 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.target.frag.out @@ -0,0 +1,209 @@ +hlsl.target.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) +0:7 Function Parameters: +0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:7 'out1' ( out 4-component vector of float) +0:7 'out2' ( out 4-component vector of float) +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'out1' ( out 4-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'out2' ( out 4-component vector of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:7 move second child to first child ( temp uint) +0:7 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:7 Function Call: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? 'out1' ( temp 4-component vector of float) +0:? 'out2' ( temp 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out1' ( temp 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'out2' (layout( location=3) out 4-component vector of float) +0:? 'out2' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out2' (layout( location=3) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) +0:7 Function Parameters: +0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:7 'out1' ( out 4-component vector of float) +0:7 'out2' ( out 4-component vector of float) +0:? Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'out1' ( out 4-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'out2' ( out 4-component vector of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:7 move second child to first child ( temp uint) +0:7 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:7 Constant: +0:7 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:7 Function Call: @main(struct-PSInput-f1-u11;vf4;vf4; ( temp void) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? 'out1' ( temp 4-component vector of float) +0:? 'out2' ( temp 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out1' ( temp 4-component vector of float) +0:7 move second child to first child ( temp 4-component vector of float) +0:? 'out2' (layout( location=3) out 4-component vector of float) +0:? 'out2' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:? 'out1' (layout( location=1) out 4-component vector of float) +0:? 'out2' (layout( location=3) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 26 32 46 48 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "interp" + MemberName 8(PSInput) 1 "no_interp" + Name 16 "@main(struct-PSInput-f1-u11;vf4;vf4;" + Name 13 "input" + Name 14 "out1" + Name 15 "out2" + Name 22 "input" + Name 26 "input.interp" + Name 32 "input.no_interp" + Name 36 "out1" + Name 37 "out2" + Name 38 "param" + Name 40 "param" + Name 41 "param" + Name 46 "out1" + Name 48 "out2" + Decorate 26(input.interp) Location 0 + Decorate 32(input.no_interp) Flat + Decorate 32(input.no_interp) Location 1 + Decorate 46(out1) Location 1 + Decorate 48(out2) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 12: TypeFunction 2 9(ptr) 11(ptr) 11(ptr) + 18: 6(float) Constant 1065353216 + 19: 10(fvec4) ConstantComposite 18 18 18 18 + 20: 6(float) Constant 0 + 21: 10(fvec4) ConstantComposite 20 20 20 20 + 23: TypeInt 32 1 + 24: 23(int) Constant 0 + 25: TypePointer Input 6(float) +26(input.interp): 25(ptr) Variable Input + 28: TypePointer Function 6(float) + 30: 23(int) Constant 1 + 31: TypePointer Input 7(int) +32(input.no_interp): 31(ptr) Variable Input + 34: TypePointer Function 7(int) + 45: TypePointer Output 10(fvec4) + 46(out1): 45(ptr) Variable Output + 48(out2): 45(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 22(input): 9(ptr) Variable Function + 36(out1): 11(ptr) Variable Function + 37(out2): 11(ptr) Variable Function + 38(param): 9(ptr) Variable Function + 40(param): 11(ptr) Variable Function + 41(param): 11(ptr) Variable Function + 27: 6(float) Load 26(input.interp) + 29: 28(ptr) AccessChain 22(input) 24 + Store 29 27 + 33: 7(int) Load 32(input.no_interp) + 35: 34(ptr) AccessChain 22(input) 30 + Store 35 33 + 39: 8(PSInput) Load 22(input) + Store 38(param) 39 + 42: 2 FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;vf4;) 38(param) 40(param) 41(param) + 43: 10(fvec4) Load 40(param) + Store 36(out1) 43 + 44: 10(fvec4) Load 41(param) + Store 37(out2) 44 + 47: 10(fvec4) Load 36(out1) + Store 46(out1) 47 + 49: 10(fvec4) Load 37(out2) + Store 48(out2) 49 + Return + FunctionEnd +16(@main(struct-PSInput-f1-u11;vf4;vf4;): 2 Function None 12 + 13(input): 9(ptr) FunctionParameter + 14(out1): 11(ptr) FunctionParameter + 15(out2): 11(ptr) FunctionParameter + 17: Label + Store 14(out1) 19 + Store 15(out2) 21 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct1.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct1.frag.out new file mode 100644 index 0000000000..371ce2a10b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct1.frag.out @@ -0,0 +1,298 @@ +hlsl.targetStruct1.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Parameters: +0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:12 'po' ( out 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 o1: direct index for structure ( temp 4-component vector of float) +0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:14 Constant: +0:14 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:14 Convert uint to float ( temp float) +0:14 no_interp: direct index for structure ( temp uint) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 1 (const int) +0:14 interp: direct index for structure ( temp float) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0.000000 +0:14 Constant: +0:14 1.000000 +0:15 move second child to first child ( temp 4-component vector of float) +0:15 o2: direct index for structure ( temp 4-component vector of float) +0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'po' ( out 4-component vector of float) +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:18 Branch: Return with expression +0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:12 move second child to first child ( temp uint) +0:12 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:12 Sequence +0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? 'po' ( temp 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:12 o1: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) +0:12 o2: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? 'po' (layout( location=0) out 4-component vector of float) +0:? 'po' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:? 'po' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Parameters: +0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:12 'po' ( out 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 o1: direct index for structure ( temp 4-component vector of float) +0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:14 Constant: +0:14 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:14 Convert uint to float ( temp float) +0:14 no_interp: direct index for structure ( temp uint) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 1 (const int) +0:14 interp: direct index for structure ( temp float) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0.000000 +0:14 Constant: +0:14 1.000000 +0:15 move second child to first child ( temp 4-component vector of float) +0:15 o2: direct index for structure ( temp 4-component vector of float) +0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'po' ( out 4-component vector of float) +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:18 Branch: Return with expression +0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:12 move second child to first child ( temp uint) +0:12 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:12 Sequence +0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? 'po' ( temp 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:12 o1: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) +0:12 o2: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? 'po' (layout( location=0) out 4-component vector of float) +0:? 'po' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:? 'po' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 42 46 57 60 63 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "interp" + MemberName 8(PSInput) 1 "no_interp" + Name 12 "PSOutput" + MemberName 12(PSOutput) 0 "o1" + MemberName 12(PSOutput) 1 "o2" + Name 16 "@main(struct-PSInput-f1-u11;vf4;" + Name 14 "input" + Name 15 "po" + Name 19 "pso" + Name 40 "input" + Name 42 "input.interp" + Name 46 "input.no_interp" + Name 49 "flattenTemp" + Name 50 "po" + Name 51 "param" + Name 53 "param" + Name 57 "@entryPointOutput.o1" + Name 60 "@entryPointOutput.o2" + Name 63 "po" + Decorate 42(input.interp) Location 0 + Decorate 46(input.no_interp) Flat + Decorate 46(input.no_interp) Location 1 + Decorate 57(@entryPointOutput.o1) Location 2 + Decorate 60(@entryPointOutput.o2) Location 1 + Decorate 63(po) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 12(PSOutput): TypeStruct 10(fvec4) 10(fvec4) + 13: TypeFunction 12(PSOutput) 9(ptr) 11(ptr) + 18: TypePointer Function 12(PSOutput) + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: 20(int) Constant 1 + 23: TypePointer Function 7(int) + 27: TypePointer Function 6(float) + 30: 6(float) Constant 0 + 31: 6(float) Constant 1065353216 + 34: 10(fvec4) ConstantComposite 31 31 31 31 + 36: 10(fvec4) ConstantComposite 30 30 30 30 + 41: TypePointer Input 6(float) +42(input.interp): 41(ptr) Variable Input + 45: TypePointer Input 7(int) +46(input.no_interp): 45(ptr) Variable Input + 56: TypePointer Output 10(fvec4) +57(@entryPointOutput.o1): 56(ptr) Variable Output +60(@entryPointOutput.o2): 56(ptr) Variable Output + 63(po): 56(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 40(input): 9(ptr) Variable Function + 49(flattenTemp): 18(ptr) Variable Function + 50(po): 11(ptr) Variable Function + 51(param): 9(ptr) Variable Function + 53(param): 11(ptr) Variable Function + 43: 6(float) Load 42(input.interp) + 44: 27(ptr) AccessChain 40(input) 21 + Store 44 43 + 47: 7(int) Load 46(input.no_interp) + 48: 23(ptr) AccessChain 40(input) 22 + Store 48 47 + 52: 8(PSInput) Load 40(input) + Store 51(param) 52 + 54:12(PSOutput) FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;) 51(param) 53(param) + 55: 10(fvec4) Load 53(param) + Store 50(po) 55 + Store 49(flattenTemp) 54 + 58: 11(ptr) AccessChain 49(flattenTemp) 21 + 59: 10(fvec4) Load 58 + Store 57(@entryPointOutput.o1) 59 + 61: 11(ptr) AccessChain 49(flattenTemp) 22 + 62: 10(fvec4) Load 61 + Store 60(@entryPointOutput.o2) 62 + 64: 10(fvec4) Load 50(po) + Store 63(po) 64 + Return + FunctionEnd +16(@main(struct-PSInput-f1-u11;vf4;):12(PSOutput) Function None 13 + 14(input): 9(ptr) FunctionParameter + 15(po): 11(ptr) FunctionParameter + 17: Label + 19(pso): 18(ptr) Variable Function + 24: 23(ptr) AccessChain 14(input) 22 + 25: 7(int) Load 24 + 26: 6(float) ConvertUToF 25 + 28: 27(ptr) AccessChain 14(input) 21 + 29: 6(float) Load 28 + 32: 10(fvec4) CompositeConstruct 26 29 30 31 + 33: 11(ptr) AccessChain 19(pso) 21 + Store 33 32 + 35: 11(ptr) AccessChain 19(pso) 22 + Store 35 34 + Store 15(po) 36 + 37:12(PSOutput) Load 19(pso) + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct2.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct2.frag.out new file mode 100644 index 0000000000..e6099c9eba --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.targetStruct2.frag.out @@ -0,0 +1,298 @@ +hlsl.targetStruct2.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Parameters: +0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:12 'po' ( out 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 o1: direct index for structure ( temp 4-component vector of float) +0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:14 Constant: +0:14 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:14 Convert uint to float ( temp float) +0:14 no_interp: direct index for structure ( temp uint) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 1 (const int) +0:14 interp: direct index for structure ( temp float) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0.000000 +0:14 Constant: +0:14 1.000000 +0:15 move second child to first child ( temp 4-component vector of float) +0:15 o2: direct index for structure ( temp 4-component vector of float) +0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'po' ( out 4-component vector of float) +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:18 Branch: Return with expression +0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:12 move second child to first child ( temp uint) +0:12 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:12 Sequence +0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? 'po' ( temp 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:12 o1: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) +0:12 o2: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? 'po' (layout( location=0) out 4-component vector of float) +0:? 'po' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:? 'po' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Parameters: +0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:12 'po' ( out 4-component vector of float) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 o1: direct index for structure ( temp 4-component vector of float) +0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:14 Constant: +0:14 0 (const int) +0:? Construct vec4 ( temp 4-component vector of float) +0:14 Convert uint to float ( temp float) +0:14 no_interp: direct index for structure ( temp uint) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 1 (const int) +0:14 interp: direct index for structure ( temp float) +0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0.000000 +0:14 Constant: +0:14 1.000000 +0:15 move second child to first child ( temp 4-component vector of float) +0:15 o2: direct index for structure ( temp 4-component vector of float) +0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'po' ( out 4-component vector of float) +0:16 Constant: +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:18 Branch: Return with expression +0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Definition: main( ( temp void) +0:12 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 interp: direct index for structure ( temp float) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 0 (const int) +0:? 'input.interp' (layout( location=0) in float) +0:12 move second child to first child ( temp uint) +0:12 no_interp: direct index for structure ( temp uint) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:12 Constant: +0:12 1 (const int) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:12 Sequence +0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) +0:? 'po' ( temp 4-component vector of float) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:12 o1: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) +0:12 o2: direct index for structure ( temp 4-component vector of float) +0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp 4-component vector of float) +0:? 'po' (layout( location=0) out 4-component vector of float) +0:? 'po' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) +0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) +0:? 'input.interp' (layout( location=0) in float) +0:? 'input.no_interp' (layout( location=1) flat in uint) +0:? 'po' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 42 46 57 60 63 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "interp" + MemberName 8(PSInput) 1 "no_interp" + Name 12 "PSOutput" + MemberName 12(PSOutput) 0 "o1" + MemberName 12(PSOutput) 1 "o2" + Name 16 "@main(struct-PSInput-f1-u11;vf4;" + Name 14 "input" + Name 15 "po" + Name 19 "pso" + Name 40 "input" + Name 42 "input.interp" + Name 46 "input.no_interp" + Name 49 "flattenTemp" + Name 50 "po" + Name 51 "param" + Name 53 "param" + Name 57 "@entryPointOutput.o1" + Name 60 "@entryPointOutput.o2" + Name 63 "po" + Decorate 42(input.interp) Location 0 + Decorate 46(input.no_interp) Flat + Decorate 46(input.no_interp) Location 1 + Decorate 57(@entryPointOutput.o1) Location 2 + Decorate 60(@entryPointOutput.o2) Location 3 + Decorate 63(po) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 12(PSOutput): TypeStruct 10(fvec4) 10(fvec4) + 13: TypeFunction 12(PSOutput) 9(ptr) 11(ptr) + 18: TypePointer Function 12(PSOutput) + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: 20(int) Constant 1 + 23: TypePointer Function 7(int) + 27: TypePointer Function 6(float) + 30: 6(float) Constant 0 + 31: 6(float) Constant 1065353216 + 34: 10(fvec4) ConstantComposite 31 31 31 31 + 36: 10(fvec4) ConstantComposite 30 30 30 30 + 41: TypePointer Input 6(float) +42(input.interp): 41(ptr) Variable Input + 45: TypePointer Input 7(int) +46(input.no_interp): 45(ptr) Variable Input + 56: TypePointer Output 10(fvec4) +57(@entryPointOutput.o1): 56(ptr) Variable Output +60(@entryPointOutput.o2): 56(ptr) Variable Output + 63(po): 56(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 40(input): 9(ptr) Variable Function + 49(flattenTemp): 18(ptr) Variable Function + 50(po): 11(ptr) Variable Function + 51(param): 9(ptr) Variable Function + 53(param): 11(ptr) Variable Function + 43: 6(float) Load 42(input.interp) + 44: 27(ptr) AccessChain 40(input) 21 + Store 44 43 + 47: 7(int) Load 46(input.no_interp) + 48: 23(ptr) AccessChain 40(input) 22 + Store 48 47 + 52: 8(PSInput) Load 40(input) + Store 51(param) 52 + 54:12(PSOutput) FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;) 51(param) 53(param) + 55: 10(fvec4) Load 53(param) + Store 50(po) 55 + Store 49(flattenTemp) 54 + 58: 11(ptr) AccessChain 49(flattenTemp) 21 + 59: 10(fvec4) Load 58 + Store 57(@entryPointOutput.o1) 59 + 61: 11(ptr) AccessChain 49(flattenTemp) 22 + 62: 10(fvec4) Load 61 + Store 60(@entryPointOutput.o2) 62 + 64: 10(fvec4) Load 50(po) + Store 63(po) 64 + Return + FunctionEnd +16(@main(struct-PSInput-f1-u11;vf4;):12(PSOutput) Function None 13 + 14(input): 9(ptr) FunctionParameter + 15(po): 11(ptr) FunctionParameter + 17: Label + 19(pso): 18(ptr) Variable Function + 24: 23(ptr) AccessChain 14(input) 22 + 25: 7(int) Load 24 + 26: 6(float) ConvertUToF 25 + 28: 27(ptr) AccessChain 14(input) 21 + 29: 6(float) Load 28 + 32: 10(fvec4) CompositeConstruct 26 29 30 31 + 33: 11(ptr) AccessChain 19(pso) 21 + Store 33 32 + 35: 11(ptr) AccessChain 19(pso) 22 + Store 35 34 + Store 15(po) 36 + 37:12(PSOutput) Load 19(pso) + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out new file mode 100644 index 0000000000..3fc5846aeb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.templatetypes.frag.out @@ -0,0 +1,734 @@ +hlsl.templatetypes.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @PixelShaderFunction( ( temp 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 2X3 matrix of float) +0:35 'r61' ( 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:36 Sequence +0:36 move second child to first child ( temp 3X2 matrix of float) +0:36 'r62' ( 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:39 Sequence +0:39 move second child to first child ( temp 4X2 matrix of float) +0:39 'r65' ( temp 4X2 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 4X3 matrix of float) +0:40 'r66' ( temp 4X3 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:3 Function Definition: PixelShaderFunction( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:3 Function Call: @PixelShaderFunction( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @PixelShaderFunction( ( temp 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 2X3 matrix of float) +0:35 'r61' ( 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:36 Sequence +0:36 move second child to first child ( temp 3X2 matrix of float) +0:36 'r62' ( 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:39 Sequence +0:39 move second child to first child ( temp 4X2 matrix of float) +0:39 'r65' ( temp 4X2 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 4X3 matrix of float) +0:40 'r66' ( temp 4X3 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:3 Function Definition: PixelShaderFunction( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:3 Function Call: @PixelShaderFunction( ( temp float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 153 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 151 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 8 "@PixelShaderFunction(" + Name 12 "r00" + Name 18 "r01" + Name 23 "r12" + Name 27 "r13" + Name 30 "r14" + Name 33 "r15" + Name 37 "r16" + Name 41 "r20" + Name 46 "r21" + Name 51 "r22" + Name 55 "r23" + Name 60 "r24" + Name 65 "r30" + Name 69 "r31" + Name 74 "r32" + Name 78 "r33" + Name 83 "r34" + Name 88 "r40" + Name 92 "r41" + Name 95 "r42" + Name 98 "r43" + Name 103 "r44" + Name 108 "r50" + Name 125 "r51" + Name 128 "r61" + Name 133 "r62" + Name 139 "r65" + Name 144 "r66" + Name 151 "@entryPointOutput" + Decorate 151(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 13: 6(float) Constant 1065353216 + 14: 6(float) Constant 1073741824 + 15: 6(float) Constant 1077936128 + 16: 6(float) Constant 1082130432 + 17: 10(fvec4) ConstantComposite 13 14 15 16 + 19: 6(float) Constant 1084227584 + 20: 10(fvec4) ConstantComposite 14 15 16 19 + 21: TypeBool + 22: TypePointer Function 21(bool) + 24: 21(bool) ConstantFalse + 25: TypeInt 32 1 + 26: TypePointer Function 25(int) + 28: 25(int) Constant 1 + 29: TypePointer Function 6(float) + 31: TypeFloat 64 + 32: TypePointer Function 31(float64_t) + 34:31(float64_t) Constant 0 1072693248 + 35: TypeInt 32 0 + 36: TypePointer Function 35(int) + 38: 35(int) Constant 1 + 39: TypeVector 21(bool) 2 + 40: TypePointer Function 39(bvec2) + 42: 21(bool) ConstantTrue + 43: 39(bvec2) ConstantComposite 24 42 + 44: TypeVector 25(int) 2 + 45: TypePointer Function 44(ivec2) + 47: 25(int) Constant 2 + 48: 44(ivec2) ConstantComposite 28 47 + 49: TypeVector 6(float) 2 + 50: TypePointer Function 49(fvec2) + 52: 49(fvec2) ConstantComposite 13 14 + 53: TypeVector 31(float64_t) 2 + 54: TypePointer Function 53(f64vec2) + 56:31(float64_t) Constant 0 1073741824 + 57: 53(f64vec2) ConstantComposite 34 56 + 58: TypeVector 35(int) 2 + 59: TypePointer Function 58(ivec2) + 61: 35(int) Constant 2 + 62: 58(ivec2) ConstantComposite 38 61 + 63: TypeVector 21(bool) 3 + 64: TypePointer Function 63(bvec3) + 66: 63(bvec3) ConstantComposite 24 42 42 + 67: TypeVector 25(int) 3 + 68: TypePointer Function 67(ivec3) + 70: 25(int) Constant 3 + 71: 67(ivec3) ConstantComposite 28 47 70 + 72: TypeVector 6(float) 3 + 73: TypePointer Function 72(fvec3) + 75: 72(fvec3) ConstantComposite 13 14 15 + 76: TypeVector 31(float64_t) 3 + 77: TypePointer Function 76(f64vec3) + 79:31(float64_t) Constant 0 1074266112 + 80: 76(f64vec3) ConstantComposite 34 56 79 + 81: TypeVector 35(int) 3 + 82: TypePointer Function 81(ivec3) + 84: 35(int) Constant 3 + 85: 81(ivec3) ConstantComposite 38 61 84 + 86: TypeVector 21(bool) 4 + 87: TypePointer Function 86(bvec4) + 89: 86(bvec4) ConstantComposite 24 42 42 24 + 90: TypeVector 25(int) 4 + 91: TypePointer Function 90(ivec4) + 93: 25(int) Constant 4 + 94: 90(ivec4) ConstantComposite 28 47 70 93 + 96: TypeVector 31(float64_t) 4 + 97: TypePointer Function 96(f64vec4) + 99:31(float64_t) Constant 0 1074790400 + 100: 96(f64vec4) ConstantComposite 34 56 79 99 + 101: TypeVector 35(int) 4 + 102: TypePointer Function 101(ivec4) + 104: 35(int) Constant 4 + 105: 101(ivec4) ConstantComposite 38 61 84 104 + 106: TypeMatrix 10(fvec4) 4 + 107: TypePointer Function 106 + 109: 6(float) Constant 0 + 110: 10(fvec4) ConstantComposite 109 13 14 15 + 111: 6(float) Constant 1086324736 + 112: 6(float) Constant 1088421888 + 113: 10(fvec4) ConstantComposite 16 19 111 112 + 114: 6(float) Constant 1090519040 + 115: 6(float) Constant 1091567616 + 116: 6(float) Constant 1092616192 + 117: 6(float) Constant 1093664768 + 118: 10(fvec4) ConstantComposite 114 115 116 117 + 119: 6(float) Constant 1094713344 + 120: 6(float) Constant 1095761920 + 121: 6(float) Constant 1096810496 + 122: 6(float) Constant 1097859072 + 123: 10(fvec4) ConstantComposite 119 120 121 122 + 124: 106 ConstantComposite 110 113 118 123 + 126: TypeMatrix 72(fvec3) 2 + 127: TypePointer Function 126 + 129: 72(fvec3) ConstantComposite 16 19 111 + 130: 126 ConstantComposite 75 129 + 131: TypeMatrix 49(fvec2) 3 + 132: TypePointer Function 131 + 134: 49(fvec2) ConstantComposite 15 16 + 135: 49(fvec2) ConstantComposite 19 111 + 136: 131 ConstantComposite 52 134 135 + 137: TypeMatrix 49(fvec2) 4 + 138: TypePointer Function 137 + 140: 49(fvec2) ConstantComposite 112 114 + 141: 137 ConstantComposite 52 134 135 140 + 142: TypeMatrix 72(fvec3) 4 + 143: TypePointer Function 142 + 145: 72(fvec3) ConstantComposite 112 114 115 + 146: 72(fvec3) ConstantComposite 116 117 119 + 147: 142 ConstantComposite 75 129 145 146 + 150: TypePointer Output 6(float) +151(@entryPointOutput): 150(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 152: 6(float) FunctionCall 8(@PixelShaderFunction() + Store 151(@entryPointOutput) 152 + Return + FunctionEnd +8(@PixelShaderFunction(): 6(float) Function None 7 + 9: Label + 12(r00): 11(ptr) Variable Function + 18(r01): 11(ptr) Variable Function + 23(r12): 22(ptr) Variable Function + 27(r13): 26(ptr) Variable Function + 30(r14): 29(ptr) Variable Function + 33(r15): 32(ptr) Variable Function + 37(r16): 36(ptr) Variable Function + 41(r20): 40(ptr) Variable Function + 46(r21): 45(ptr) Variable Function + 51(r22): 50(ptr) Variable Function + 55(r23): 54(ptr) Variable Function + 60(r24): 59(ptr) Variable Function + 65(r30): 64(ptr) Variable Function + 69(r31): 68(ptr) Variable Function + 74(r32): 73(ptr) Variable Function + 78(r33): 77(ptr) Variable Function + 83(r34): 82(ptr) Variable Function + 88(r40): 87(ptr) Variable Function + 92(r41): 91(ptr) Variable Function + 95(r42): 11(ptr) Variable Function + 98(r43): 97(ptr) Variable Function + 103(r44): 102(ptr) Variable Function + 108(r50): 107(ptr) Variable Function + 125(r51): 107(ptr) Variable Function + 128(r61): 127(ptr) Variable Function + 133(r62): 132(ptr) Variable Function + 139(r65): 138(ptr) Variable Function + 144(r66): 143(ptr) Variable Function + Store 12(r00) 17 + Store 18(r01) 20 + Store 23(r12) 24 + Store 27(r13) 28 + Store 30(r14) 13 + Store 33(r15) 34 + Store 37(r16) 38 + Store 41(r20) 43 + Store 46(r21) 48 + Store 51(r22) 52 + Store 55(r23) 57 + Store 60(r24) 62 + Store 65(r30) 66 + Store 69(r31) 71 + Store 74(r32) 75 + Store 78(r33) 80 + Store 83(r34) 85 + Store 88(r40) 89 + Store 92(r41) 94 + Store 95(r42) 17 + Store 98(r43) 100 + Store 103(r44) 105 + Store 108(r50) 124 + Store 125(r51) 124 + Store 128(r61) 130 + Store 133(r62) 136 + Store 139(r65) 141 + Store 144(r66) 147 + ReturnValue 109 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.texture.struct.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.texture.struct.frag.out new file mode 100644 index 0000000000..0778f5061f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.texture.struct.frag.out @@ -0,0 +1,1197 @@ +hlsl.texture.struct.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Function Parameters: +0:38 't1' ( in texture2D) +0:? Sequence +0:38 Branch: Return with expression +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:38 Construct combined texture-sampler ( temp sampler2D) +0:38 't1' ( in texture2D) +0:38 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.600000 +0:? 0.610000 +0:38 move second child to first child ( temp float) +0:38 c0: direct index for structure ( temp float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 0 (const uint) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 0 (const uint) +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 c1: direct index for structure ( temp 2-component vector of float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 1 (const uint) +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 c1: direct index for structure ( temp 2-component vector of float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 2 (const uint) +0:38 move second child to first child ( temp float) +0:38 c2: direct index for structure ( temp float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 2 (const uint) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 3 (const uint) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:39 Function Definition: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Function Parameters: +0:39 't2' ( in texture2D) +0:? Sequence +0:39 Branch: Return with expression +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler2D) +0:39 't2' ( in texture2D) +0:39 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.600000 +0:? 0.610000 +0:39 move second child to first child ( temp float) +0:39 c0: direct index for structure ( temp float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 0 (const uint) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 c1: direct index for structure ( temp 3-component vector of float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 1 (const uint) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 c1: direct index for structure ( temp 3-component vector of float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 1 (const int) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 2 (const uint) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 c1: direct index for structure ( temp 3-component vector of float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 2 (const int) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 3 (const uint) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:42 Function Definition: @main( ( temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:43 Sequence +0:43 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 's1' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp sampler2D) +0:43 'g_tTex2s1' ( uniform texture2D) +0:43 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.110000 +0:43 move second child to first child ( temp float) +0:43 c0: direct index for structure ( temp float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 0 (const uint) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 0 (const uint) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 c1: direct index for structure ( temp 2-component vector of float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 0 (const int) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 1 (const uint) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 c1: direct index for structure ( temp 2-component vector of float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 2 (const uint) +0:43 move second child to first child ( temp float) +0:43 c2: direct index for structure ( temp float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 2 (const uint) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 3 (const uint) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:44 Sequence +0:44 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 's2' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:44 Construct combined texture-sampler ( temp sampler2D) +0:44 'g_tTex2s2' ( uniform texture2D) +0:44 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.210000 +0:44 move second child to first child ( temp float) +0:44 c0: direct index for structure ( temp float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 0 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 c1: direct index for structure ( temp 3-component vector of float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 0 (const int) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 1 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 c1: direct index for structure ( temp 3-component vector of float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 1 (const int) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 2 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 c1: direct index for structure ( temp 3-component vector of float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 3 (const uint) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:45 Sequence +0:45 move second child to first child ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 's3' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:45 Construct combined texture-sampler ( temp sampler2D) +0:45 'g_tTex2s3' ( uniform texture2D) +0:45 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.310000 +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 c0: direct index for structure ( temp 2-component vector of float) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Constant: +0:45 0 (const uint) +0:45 Constant: +0:45 0 (const int) +0:45 direct index ( temp float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:45 Constant: +0:45 0 (const uint) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 c0: direct index for structure ( temp 2-component vector of float) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Constant: +0:45 0 (const uint) +0:45 Constant: +0:45 1 (const int) +0:45 direct index ( temp float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:45 Constant: +0:45 1 (const uint) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 c1: direct index for structure ( temp 1-component vector of float) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 0 (const int) +0:45 direct index ( temp float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:45 Constant: +0:45 2 (const uint) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:46 Sequence +0:46 move second child to first child ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 's4' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:? texture ( temp 4-component vector of int) +0:46 Construct combined texture-sampler ( temp isampler2D) +0:46 'g_tTex2s4' ( uniform itexture2D) +0:46 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.410000 +0:46 move second child to first child ( temp int) +0:46 c0: direct index for structure ( temp int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 0 (const uint) +0:46 move second child to first child ( temp float) +0:46 direct index ( temp float) +0:46 c1: direct index for structure ( temp 2-component vector of int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 1 (const uint) +0:46 Constant: +0:46 0 (const int) +0:46 Convert int to float ( temp float) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 1 (const uint) +0:46 move second child to first child ( temp float) +0:46 direct index ( temp float) +0:46 c1: direct index for structure ( temp 2-component vector of int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 1 (const uint) +0:46 Constant: +0:46 1 (const int) +0:46 Convert int to float ( temp float) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 2 (const uint) +0:46 move second child to first child ( temp int) +0:46 c2: direct index for structure ( temp int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 2 (const uint) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 3 (const uint) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:47 Sequence +0:47 move second child to first child ( temp structure{ temp uint c0, temp uint c1}) +0:47 's5' ( temp structure{ temp uint c0, temp uint c1}) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 '@sampleResultShadow' ( temp 4-component vector of uint) +0:? texture ( temp 4-component vector of uint) +0:47 Construct combined texture-sampler ( temp usampler2D) +0:47 'g_tTex2s5' ( uniform utexture2D) +0:47 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.510000 +0:47 move second child to first child ( temp uint) +0:47 c0: direct index for structure ( temp uint) +0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 '@sampleResultShadow' ( temp 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 move second child to first child ( temp uint) +0:47 c1: direct index for structure ( temp uint) +0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) +0:47 Constant: +0:47 1 (const uint) +0:47 direct index ( temp uint) +0:47 '@sampleResultShadow' ( temp 4-component vector of uint) +0:47 Constant: +0:47 1 (const uint) +0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) +0:49 Sequence +0:49 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:49 'r0' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:49 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:49 'g_tTex2s1' ( uniform texture2D) +0:50 Sequence +0:50 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:50 'r1' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:50 Function Call: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:50 'g_tTex2s2' ( uniform texture2D) +0:51 Sequence +0:51 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:51 'r2' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:51 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:51 'g_tTex2s1a' ( uniform texture2D) +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:53 0.000000 +0:53 0.000000 +0:53 0.000000 +0:42 Function Definition: main( ( temp void) +0:42 Function Parameters: +0:? Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:42 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_sSamp' ( uniform sampler) +0:? 'g_tTex2s1' ( uniform texture2D) +0:? 'g_tTex2s2' ( uniform texture2D) +0:? 'g_tTex2s3' ( uniform texture2D) +0:? 'g_tTex2s4' ( uniform itexture2D) +0:? 'g_tTex2s5' ( uniform utexture2D) +0:? 'g_tTex2s1a' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Function Parameters: +0:38 't1' ( in texture2D) +0:? Sequence +0:38 Branch: Return with expression +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:38 Construct combined texture-sampler ( temp sampler2D) +0:38 't1' ( in texture2D) +0:38 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.600000 +0:? 0.610000 +0:38 move second child to first child ( temp float) +0:38 c0: direct index for structure ( temp float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 0 (const uint) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 0 (const uint) +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 c1: direct index for structure ( temp 2-component vector of float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 1 (const uint) +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 c1: direct index for structure ( temp 2-component vector of float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 1 (const uint) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 2 (const uint) +0:38 move second child to first child ( temp float) +0:38 c2: direct index for structure ( temp float) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:38 Constant: +0:38 2 (const uint) +0:38 direct index ( temp float) +0:38 '@sampleResultShadow' ( temp 4-component vector of float) +0:38 Constant: +0:38 3 (const uint) +0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:39 Function Definition: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Function Parameters: +0:39 't2' ( in texture2D) +0:? Sequence +0:39 Branch: Return with expression +0:39 Sequence +0:39 move second child to first child ( temp 4-component vector of float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:39 Construct combined texture-sampler ( temp sampler2D) +0:39 't2' ( in texture2D) +0:39 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.600000 +0:? 0.610000 +0:39 move second child to first child ( temp float) +0:39 c0: direct index for structure ( temp float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 0 (const uint) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 c1: direct index for structure ( temp 3-component vector of float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 0 (const int) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 1 (const uint) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 c1: direct index for structure ( temp 3-component vector of float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 1 (const int) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 2 (const uint) +0:39 move second child to first child ( temp float) +0:39 direct index ( temp float) +0:39 c1: direct index for structure ( temp 3-component vector of float) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:39 Constant: +0:39 1 (const uint) +0:39 Constant: +0:39 2 (const int) +0:39 direct index ( temp float) +0:39 '@sampleResultShadow' ( temp 4-component vector of float) +0:39 Constant: +0:39 3 (const uint) +0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:42 Function Definition: @main( ( temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:43 Sequence +0:43 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 's1' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:43 Construct combined texture-sampler ( temp sampler2D) +0:43 'g_tTex2s1' ( uniform texture2D) +0:43 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.110000 +0:43 move second child to first child ( temp float) +0:43 c0: direct index for structure ( temp float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 0 (const uint) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 0 (const uint) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 c1: direct index for structure ( temp 2-component vector of float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 0 (const int) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 1 (const uint) +0:43 move second child to first child ( temp float) +0:43 direct index ( temp float) +0:43 c1: direct index for structure ( temp 2-component vector of float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 1 (const uint) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 2 (const uint) +0:43 move second child to first child ( temp float) +0:43 c2: direct index for structure ( temp float) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:43 Constant: +0:43 2 (const uint) +0:43 direct index ( temp float) +0:43 '@sampleResultShadow' ( temp 4-component vector of float) +0:43 Constant: +0:43 3 (const uint) +0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:44 Sequence +0:44 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 's2' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:44 Construct combined texture-sampler ( temp sampler2D) +0:44 'g_tTex2s2' ( uniform texture2D) +0:44 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.210000 +0:44 move second child to first child ( temp float) +0:44 c0: direct index for structure ( temp float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 0 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 c1: direct index for structure ( temp 3-component vector of float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 0 (const int) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 1 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 c1: direct index for structure ( temp 3-component vector of float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 1 (const int) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 2 (const uint) +0:44 move second child to first child ( temp float) +0:44 direct index ( temp float) +0:44 c1: direct index for structure ( temp 3-component vector of float) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:44 Constant: +0:44 1 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 '@sampleResultShadow' ( temp 4-component vector of float) +0:44 Constant: +0:44 3 (const uint) +0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:45 Sequence +0:45 move second child to first child ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 's3' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:? texture ( temp 4-component vector of float) +0:45 Construct combined texture-sampler ( temp sampler2D) +0:45 'g_tTex2s3' ( uniform texture2D) +0:45 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.310000 +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 c0: direct index for structure ( temp 2-component vector of float) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Constant: +0:45 0 (const uint) +0:45 Constant: +0:45 0 (const int) +0:45 direct index ( temp float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:45 Constant: +0:45 0 (const uint) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 c0: direct index for structure ( temp 2-component vector of float) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Constant: +0:45 0 (const uint) +0:45 Constant: +0:45 1 (const int) +0:45 direct index ( temp float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:45 Constant: +0:45 1 (const uint) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 c1: direct index for structure ( temp 1-component vector of float) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:45 Constant: +0:45 1 (const uint) +0:45 Constant: +0:45 0 (const int) +0:45 direct index ( temp float) +0:45 '@sampleResultShadow' ( temp 4-component vector of float) +0:45 Constant: +0:45 2 (const uint) +0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) +0:46 Sequence +0:46 move second child to first child ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 's4' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Sequence +0:46 move second child to first child ( temp 4-component vector of int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:? texture ( temp 4-component vector of int) +0:46 Construct combined texture-sampler ( temp isampler2D) +0:46 'g_tTex2s4' ( uniform itexture2D) +0:46 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.410000 +0:46 move second child to first child ( temp int) +0:46 c0: direct index for structure ( temp int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 0 (const uint) +0:46 move second child to first child ( temp float) +0:46 direct index ( temp float) +0:46 c1: direct index for structure ( temp 2-component vector of int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 1 (const uint) +0:46 Constant: +0:46 0 (const int) +0:46 Convert int to float ( temp float) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 1 (const uint) +0:46 move second child to first child ( temp float) +0:46 direct index ( temp float) +0:46 c1: direct index for structure ( temp 2-component vector of int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 1 (const uint) +0:46 Constant: +0:46 1 (const int) +0:46 Convert int to float ( temp float) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 2 (const uint) +0:46 move second child to first child ( temp int) +0:46 c2: direct index for structure ( temp int) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:46 Constant: +0:46 2 (const uint) +0:46 direct index ( temp int) +0:46 '@sampleResultShadow' ( temp 4-component vector of int) +0:46 Constant: +0:46 3 (const uint) +0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) +0:47 Sequence +0:47 move second child to first child ( temp structure{ temp uint c0, temp uint c1}) +0:47 's5' ( temp structure{ temp uint c0, temp uint c1}) +0:47 Sequence +0:47 move second child to first child ( temp 4-component vector of uint) +0:47 '@sampleResultShadow' ( temp 4-component vector of uint) +0:? texture ( temp 4-component vector of uint) +0:47 Construct combined texture-sampler ( temp usampler2D) +0:47 'g_tTex2s5' ( uniform utexture2D) +0:47 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.510000 +0:47 move second child to first child ( temp uint) +0:47 c0: direct index for structure ( temp uint) +0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 '@sampleResultShadow' ( temp 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 move second child to first child ( temp uint) +0:47 c1: direct index for structure ( temp uint) +0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) +0:47 Constant: +0:47 1 (const uint) +0:47 direct index ( temp uint) +0:47 '@sampleResultShadow' ( temp 4-component vector of uint) +0:47 Constant: +0:47 1 (const uint) +0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) +0:49 Sequence +0:49 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:49 'r0' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:49 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:49 'g_tTex2s1' ( uniform texture2D) +0:50 Sequence +0:50 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:50 'r1' ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:50 Function Call: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) +0:50 'g_tTex2s2' ( uniform texture2D) +0:51 Sequence +0:51 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:51 'r2' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:51 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) +0:51 'g_tTex2s1a' ( uniform texture2D) +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:53 0.000000 +0:53 0.000000 +0:53 0.000000 +0:42 Function Definition: main( ( temp void) +0:42 Function Parameters: +0:? Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:42 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_sSamp' ( uniform sampler) +0:? 'g_tTex2s1' ( uniform texture2D) +0:? 'g_tTex2s2' ( uniform texture2D) +0:? 'g_tTex2s3' ( uniform texture2D) +0:? 'g_tTex2s4' ( uniform itexture2D) +0:? 'g_tTex2s5' ( uniform utexture2D) +0:? 'g_tTex2s1a' ( uniform texture2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 240 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 238 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "s1_t" + MemberName 10(s1_t) 0 "c0" + MemberName 10(s1_t) 1 "c1" + MemberName 10(s1_t) 2 "c2" + Name 13 "fn1(t2-tx-struct0-1;" + Name 12 "t1" + Name 16 "s2_t" + MemberName 16(s2_t) 0 "c0" + MemberName 16(s2_t) 1 "c1" + Name 19 "fn1(t2-tx-struct1-1;" + Name 18 "t2" + Name 23 "@main(" + Name 26 "@sampleResultShadow" + Name 30 "g_sSamp" + Name 39 "@sampleStructTemp" + Name 65 "@sampleResultShadow" + Name 71 "@sampleStructTemp" + Name 87 "s1" + Name 88 "@sampleResultShadow" + Name 90 "g_tTex2s1" + Name 98 "@sampleStructTemp" + Name 112 "s2" + Name 113 "@sampleResultShadow" + Name 114 "g_tTex2s2" + Name 122 "@sampleStructTemp" + Name 136 "s3_t" + MemberName 136(s3_t) 0 "c0" + MemberName 136(s3_t) 1 "c1" + Name 138 "s3" + Name 139 "@sampleResultShadow" + Name 140 "g_tTex2s3" + Name 148 "@sampleStructTemp" + Name 160 "s4_t" + MemberName 160(s4_t) 0 "c0" + MemberName 160(s4_t) 1 "c1" + MemberName 160(s4_t) 2 "c2" + Name 162 "s4" + Name 165 "@sampleResultShadow" + Name 168 "g_tTex2s4" + Name 177 "@sampleStructTemp" + Name 194 "s5_t" + MemberName 194(s5_t) 0 "c0" + MemberName 194(s5_t) 1 "c1" + Name 196 "s5" + Name 199 "@sampleResultShadow" + Name 202 "g_tTex2s5" + Name 211 "@sampleStructTemp" + Name 220 "r0" + Name 221 "param" + Name 224 "r1" + Name 225 "param" + Name 228 "r2" + Name 229 "g_tTex2s1a" + Name 230 "param" + Name 238 "@entryPointOutput" + Decorate 30(g_sSamp) DescriptorSet 0 + Decorate 90(g_tTex2s1) DescriptorSet 0 + Decorate 114(g_tTex2s2) DescriptorSet 0 + Decorate 140(g_tTex2s3) DescriptorSet 0 + Decorate 168(g_tTex2s4) DescriptorSet 0 + Decorate 202(g_tTex2s5) DescriptorSet 0 + Decorate 229(g_tTex2s1a) DescriptorSet 0 + Decorate 238(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D sampled format:Unknown + 8: TypePointer Function 7 + 9: TypeVector 6(float) 2 + 10(s1_t): TypeStruct 6(float) 9(fvec2) 6(float) + 11: TypeFunction 10(s1_t) 8(ptr) + 15: TypeVector 6(float) 3 + 16(s2_t): TypeStruct 6(float) 15(fvec3) + 17: TypeFunction 16(s2_t) 8(ptr) + 21: TypeVector 6(float) 4 + 22: TypeFunction 21(fvec4) + 25: TypePointer Function 21(fvec4) + 28: TypeSampler + 29: TypePointer UniformConstant 28 + 30(g_sSamp): 29(ptr) Variable UniformConstant + 32: TypeSampledImage 7 + 34: 6(float) Constant 1058642330 + 35: 6(float) Constant 1058810102 + 36: 9(fvec2) ConstantComposite 34 35 + 38: TypePointer Function 10(s1_t) + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 42: TypeInt 32 0 + 43: 42(int) Constant 0 + 44: TypePointer Function 6(float) + 48: 40(int) Constant 1 + 49: 42(int) Constant 1 + 53: 42(int) Constant 2 + 57: 40(int) Constant 2 + 58: 42(int) Constant 3 + 70: TypePointer Function 16(s2_t) + 89: TypePointer UniformConstant 7 + 90(g_tTex2s1): 89(ptr) Variable UniformConstant + 94: 6(float) Constant 1036831949 + 95: 6(float) Constant 1038174126 + 96: 9(fvec2) ConstantComposite 94 95 + 114(g_tTex2s2): 89(ptr) Variable UniformConstant + 118: 6(float) Constant 1045220557 + 119: 6(float) Constant 1045891645 + 120: 9(fvec2) ConstantComposite 118 119 + 136(s3_t): TypeStruct 9(fvec2) 6(float) + 137: TypePointer Function 136(s3_t) + 140(g_tTex2s3): 89(ptr) Variable UniformConstant + 144: 6(float) Constant 1050253722 + 145: 6(float) Constant 1050589266 + 146: 9(fvec2) ConstantComposite 144 145 + 159: TypeVector 40(int) 2 + 160(s4_t): TypeStruct 40(int) 159(ivec2) 40(int) + 161: TypePointer Function 160(s4_t) + 163: TypeVector 40(int) 4 + 164: TypePointer Function 163(ivec4) + 166: TypeImage 40(int) 2D sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTex2s4): 167(ptr) Variable UniformConstant + 171: TypeSampledImage 166 + 173: 6(float) Constant 1053609165 + 174: 6(float) Constant 1053944709 + 175: 9(fvec2) ConstantComposite 173 174 + 178: TypePointer Function 40(int) + 194(s5_t): TypeStruct 42(int) 42(int) + 195: TypePointer Function 194(s5_t) + 197: TypeVector 42(int) 4 + 198: TypePointer Function 197(ivec4) + 200: TypeImage 42(int) 2D sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTex2s5): 201(ptr) Variable UniformConstant + 205: TypeSampledImage 200 + 207: 6(float) Constant 1056964608 + 208: 6(float) Constant 1057132380 + 209: 9(fvec2) ConstantComposite 207 208 + 212: TypePointer Function 42(int) + 229(g_tTex2s1a): 89(ptr) Variable UniformConstant + 233: 6(float) Constant 0 + 234: 21(fvec4) ConstantComposite 233 233 233 233 + 237: TypePointer Output 21(fvec4) +238(@entryPointOutput): 237(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 239: 21(fvec4) FunctionCall 23(@main() + Store 238(@entryPointOutput) 239 + Return + FunctionEnd +13(fn1(t2-tx-struct0-1;): 10(s1_t) Function None 11 + 12(t1): 8(ptr) FunctionParameter + 14: Label +26(@sampleResultShadow): 25(ptr) Variable Function +39(@sampleStructTemp): 38(ptr) Variable Function + 27: 7 Load 12(t1) + 31: 28 Load 30(g_sSamp) + 33: 32 SampledImage 27 31 + 37: 21(fvec4) ImageSampleImplicitLod 33 36 + Store 26(@sampleResultShadow) 37 + 45: 44(ptr) AccessChain 26(@sampleResultShadow) 43 + 46: 6(float) Load 45 + 47: 44(ptr) AccessChain 39(@sampleStructTemp) 41 + Store 47 46 + 50: 44(ptr) AccessChain 26(@sampleResultShadow) 49 + 51: 6(float) Load 50 + 52: 44(ptr) AccessChain 39(@sampleStructTemp) 48 43 + Store 52 51 + 54: 44(ptr) AccessChain 26(@sampleResultShadow) 53 + 55: 6(float) Load 54 + 56: 44(ptr) AccessChain 39(@sampleStructTemp) 48 49 + Store 56 55 + 59: 44(ptr) AccessChain 26(@sampleResultShadow) 58 + 60: 6(float) Load 59 + 61: 44(ptr) AccessChain 39(@sampleStructTemp) 57 + Store 61 60 + 62: 10(s1_t) Load 39(@sampleStructTemp) + ReturnValue 62 + FunctionEnd +19(fn1(t2-tx-struct1-1;): 16(s2_t) Function None 17 + 18(t2): 8(ptr) FunctionParameter + 20: Label +65(@sampleResultShadow): 25(ptr) Variable Function +71(@sampleStructTemp): 70(ptr) Variable Function + 66: 7 Load 18(t2) + 67: 28 Load 30(g_sSamp) + 68: 32 SampledImage 66 67 + 69: 21(fvec4) ImageSampleImplicitLod 68 36 + Store 65(@sampleResultShadow) 69 + 72: 44(ptr) AccessChain 65(@sampleResultShadow) 43 + 73: 6(float) Load 72 + 74: 44(ptr) AccessChain 71(@sampleStructTemp) 41 + Store 74 73 + 75: 44(ptr) AccessChain 65(@sampleResultShadow) 49 + 76: 6(float) Load 75 + 77: 44(ptr) AccessChain 71(@sampleStructTemp) 48 43 + Store 77 76 + 78: 44(ptr) AccessChain 65(@sampleResultShadow) 53 + 79: 6(float) Load 78 + 80: 44(ptr) AccessChain 71(@sampleStructTemp) 48 49 + Store 80 79 + 81: 44(ptr) AccessChain 65(@sampleResultShadow) 58 + 82: 6(float) Load 81 + 83: 44(ptr) AccessChain 71(@sampleStructTemp) 48 53 + Store 83 82 + 84: 16(s2_t) Load 71(@sampleStructTemp) + ReturnValue 84 + FunctionEnd + 23(@main(): 21(fvec4) Function None 22 + 24: Label + 87(s1): 38(ptr) Variable Function +88(@sampleResultShadow): 25(ptr) Variable Function +98(@sampleStructTemp): 38(ptr) Variable Function + 112(s2): 70(ptr) Variable Function +113(@sampleResultShadow): 25(ptr) Variable Function +122(@sampleStructTemp): 70(ptr) Variable Function + 138(s3): 137(ptr) Variable Function +139(@sampleResultShadow): 25(ptr) Variable Function +148(@sampleStructTemp): 137(ptr) Variable Function + 162(s4): 161(ptr) Variable Function +165(@sampleResultShadow): 164(ptr) Variable Function +177(@sampleStructTemp): 161(ptr) Variable Function + 196(s5): 195(ptr) Variable Function +199(@sampleResultShadow): 198(ptr) Variable Function +211(@sampleStructTemp): 195(ptr) Variable Function + 220(r0): 38(ptr) Variable Function + 221(param): 8(ptr) Variable Function + 224(r1): 70(ptr) Variable Function + 225(param): 8(ptr) Variable Function + 228(r2): 38(ptr) Variable Function + 230(param): 8(ptr) Variable Function + 91: 7 Load 90(g_tTex2s1) + 92: 28 Load 30(g_sSamp) + 93: 32 SampledImage 91 92 + 97: 21(fvec4) ImageSampleImplicitLod 93 96 + Store 88(@sampleResultShadow) 97 + 99: 44(ptr) AccessChain 88(@sampleResultShadow) 43 + 100: 6(float) Load 99 + 101: 44(ptr) AccessChain 98(@sampleStructTemp) 41 + Store 101 100 + 102: 44(ptr) AccessChain 88(@sampleResultShadow) 49 + 103: 6(float) Load 102 + 104: 44(ptr) AccessChain 98(@sampleStructTemp) 48 43 + Store 104 103 + 105: 44(ptr) AccessChain 88(@sampleResultShadow) 53 + 106: 6(float) Load 105 + 107: 44(ptr) AccessChain 98(@sampleStructTemp) 48 49 + Store 107 106 + 108: 44(ptr) AccessChain 88(@sampleResultShadow) 58 + 109: 6(float) Load 108 + 110: 44(ptr) AccessChain 98(@sampleStructTemp) 57 + Store 110 109 + 111: 10(s1_t) Load 98(@sampleStructTemp) + Store 87(s1) 111 + 115: 7 Load 114(g_tTex2s2) + 116: 28 Load 30(g_sSamp) + 117: 32 SampledImage 115 116 + 121: 21(fvec4) ImageSampleImplicitLod 117 120 + Store 113(@sampleResultShadow) 121 + 123: 44(ptr) AccessChain 113(@sampleResultShadow) 43 + 124: 6(float) Load 123 + 125: 44(ptr) AccessChain 122(@sampleStructTemp) 41 + Store 125 124 + 126: 44(ptr) AccessChain 113(@sampleResultShadow) 49 + 127: 6(float) Load 126 + 128: 44(ptr) AccessChain 122(@sampleStructTemp) 48 43 + Store 128 127 + 129: 44(ptr) AccessChain 113(@sampleResultShadow) 53 + 130: 6(float) Load 129 + 131: 44(ptr) AccessChain 122(@sampleStructTemp) 48 49 + Store 131 130 + 132: 44(ptr) AccessChain 113(@sampleResultShadow) 58 + 133: 6(float) Load 132 + 134: 44(ptr) AccessChain 122(@sampleStructTemp) 48 53 + Store 134 133 + 135: 16(s2_t) Load 122(@sampleStructTemp) + Store 112(s2) 135 + 141: 7 Load 140(g_tTex2s3) + 142: 28 Load 30(g_sSamp) + 143: 32 SampledImage 141 142 + 147: 21(fvec4) ImageSampleImplicitLod 143 146 + Store 139(@sampleResultShadow) 147 + 149: 44(ptr) AccessChain 139(@sampleResultShadow) 43 + 150: 6(float) Load 149 + 151: 44(ptr) AccessChain 148(@sampleStructTemp) 41 43 + Store 151 150 + 152: 44(ptr) AccessChain 139(@sampleResultShadow) 49 + 153: 6(float) Load 152 + 154: 44(ptr) AccessChain 148(@sampleStructTemp) 41 49 + Store 154 153 + 155: 44(ptr) AccessChain 139(@sampleResultShadow) 53 + 156: 6(float) Load 155 + 157: 44(ptr) AccessChain 148(@sampleStructTemp) 48 + Store 157 156 + 158: 136(s3_t) Load 148(@sampleStructTemp) + Store 138(s3) 158 + 169: 166 Load 168(g_tTex2s4) + 170: 28 Load 30(g_sSamp) + 172: 171 SampledImage 169 170 + 176: 163(ivec4) ImageSampleImplicitLod 172 175 + Store 165(@sampleResultShadow) 176 + 179: 178(ptr) AccessChain 165(@sampleResultShadow) 43 + 180: 40(int) Load 179 + 181: 178(ptr) AccessChain 177(@sampleStructTemp) 41 + Store 181 180 + 182: 178(ptr) AccessChain 165(@sampleResultShadow) 49 + 183: 40(int) Load 182 + 184: 6(float) ConvertSToF 183 + 185: 178(ptr) AccessChain 177(@sampleStructTemp) 48 43 + Store 185 184 + 186: 178(ptr) AccessChain 165(@sampleResultShadow) 53 + 187: 40(int) Load 186 + 188: 6(float) ConvertSToF 187 + 189: 178(ptr) AccessChain 177(@sampleStructTemp) 48 49 + Store 189 188 + 190: 178(ptr) AccessChain 165(@sampleResultShadow) 58 + 191: 40(int) Load 190 + 192: 178(ptr) AccessChain 177(@sampleStructTemp) 57 + Store 192 191 + 193: 160(s4_t) Load 177(@sampleStructTemp) + Store 162(s4) 193 + 203: 200 Load 202(g_tTex2s5) + 204: 28 Load 30(g_sSamp) + 206: 205 SampledImage 203 204 + 210: 197(ivec4) ImageSampleImplicitLod 206 209 + Store 199(@sampleResultShadow) 210 + 213: 212(ptr) AccessChain 199(@sampleResultShadow) 43 + 214: 42(int) Load 213 + 215: 212(ptr) AccessChain 211(@sampleStructTemp) 41 + Store 215 214 + 216: 212(ptr) AccessChain 199(@sampleResultShadow) 49 + 217: 42(int) Load 216 + 218: 212(ptr) AccessChain 211(@sampleStructTemp) 48 + Store 218 217 + 219: 194(s5_t) Load 211(@sampleStructTemp) + Store 196(s5) 219 + 222: 7 Load 90(g_tTex2s1) + Store 221(param) 222 + 223: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 221(param) + Store 220(r0) 223 + 226: 7 Load 114(g_tTex2s2) + Store 225(param) 226 + 227: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 225(param) + Store 224(r1) 227 + 231: 7 Load 229(g_tTex2s1a) + Store 230(param) 231 + 232: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 230(param) + Store 228(r2) 232 + ReturnValue 234 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out new file mode 100644 index 0000000000..bf0f146ef3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out @@ -0,0 +1,544 @@ +hlsl.texture.subvec4.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main( ( temp 4-component vector of float) +0:15 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp 2-component vector of uint) +0:24 'sizeQueryTemp' ( temp 2-component vector of uint) +0:24 textureSize ( temp 2-component vector of uint) +0:24 'g_tTex2dmsf1' ( uniform texture2DMS) +0:24 move second child to first child ( temp uint) +0:24 'WidthU' ( temp uint) +0:24 direct index ( temp uint) +0:24 'sizeQueryTemp' ( temp 2-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp uint) +0:24 'HeightU' ( temp uint) +0:24 direct index ( temp uint) +0:24 'sizeQueryTemp' ( temp 2-component vector of uint) +0:24 Constant: +0:24 1 (const int) +0:24 move second child to first child ( temp uint) +0:24 'NumberOfSamplesU' ( temp uint) +0:24 imageQuerySamples ( temp uint) +0:24 'g_tTex2dmsf1' ( uniform texture2DMS) +0:25 Sequence +0:25 move second child to first child ( temp 2-component vector of uint) +0:25 'sizeQueryTemp' ( temp 2-component vector of uint) +0:25 textureSize ( temp 2-component vector of uint) +0:25 'g_tTex2dmsf2' ( uniform texture2DMS) +0:25 move second child to first child ( temp uint) +0:25 'WidthU' ( temp uint) +0:25 direct index ( temp uint) +0:25 'sizeQueryTemp' ( temp 2-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp uint) +0:25 'HeightU' ( temp uint) +0:25 direct index ( temp uint) +0:25 'sizeQueryTemp' ( temp 2-component vector of uint) +0:25 Constant: +0:25 1 (const int) +0:25 move second child to first child ( temp uint) +0:25 'NumberOfSamplesU' ( temp uint) +0:25 imageQuerySamples ( temp uint) +0:25 'g_tTex2dmsf2' ( uniform texture2DMS) +0:26 Sequence +0:26 move second child to first child ( temp 2-component vector of uint) +0:26 'sizeQueryTemp' ( temp 2-component vector of uint) +0:26 textureSize ( temp 2-component vector of uint) +0:26 'g_tTex2dmsf3' ( uniform texture2DMS) +0:26 move second child to first child ( temp uint) +0:26 'WidthU' ( temp uint) +0:26 direct index ( temp uint) +0:26 'sizeQueryTemp' ( temp 2-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 move second child to first child ( temp uint) +0:26 'HeightU' ( temp uint) +0:26 direct index ( temp uint) +0:26 'sizeQueryTemp' ( temp 2-component vector of uint) +0:26 Constant: +0:26 1 (const int) +0:26 move second child to first child ( temp uint) +0:26 'NumberOfSamplesU' ( temp uint) +0:26 imageQuerySamples ( temp uint) +0:26 'g_tTex2dmsf3' ( uniform texture2DMS) +0:27 Sequence +0:27 move second child to first child ( temp 2-component vector of uint) +0:27 'sizeQueryTemp' ( temp 2-component vector of uint) +0:27 textureSize ( temp 2-component vector of uint) +0:27 'g_tTex2dmsf4' ( uniform texture2DMS) +0:27 move second child to first child ( temp uint) +0:27 'WidthU' ( temp uint) +0:27 direct index ( temp uint) +0:27 'sizeQueryTemp' ( temp 2-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 move second child to first child ( temp uint) +0:27 'HeightU' ( temp uint) +0:27 direct index ( temp uint) +0:27 'sizeQueryTemp' ( temp 2-component vector of uint) +0:27 Constant: +0:27 1 (const int) +0:27 move second child to first child ( temp uint) +0:27 'NumberOfSamplesU' ( temp uint) +0:27 imageQuerySamples ( temp uint) +0:27 'g_tTex2dmsf4' ( uniform texture2DMS) +0:29 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:29 'g_tTex2dmsf1' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 Construct vec2 ( temp 2-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:30 'g_tTex2dmsf2' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:30 Constant: +0:30 3 (const int) +0:31 Construct vec3 ( temp 3-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:31 'g_tTex2dmsf3' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:31 Constant: +0:31 3 (const int) +0:32 textureFetch ( temp 4-component vector of float) +0:32 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:32 Constant: +0:32 3 (const int) +0:34 Construct float ( temp float) +0:? texture ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df1' ( uniform texture2D) +0:34 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Construct vec2 ( temp 2-component vector of float) +0:? texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df2' ( uniform texture2D) +0:35 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Construct vec3 ( temp 3-component vector of float) +0:? texture ( temp 4-component vector of float) +0:36 Construct combined texture-sampler ( temp sampler2D) +0:36 'g_tTex2df3' ( uniform texture2D) +0:36 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:37 texture ( temp 4-component vector of float) +0:37 Construct combined texture-sampler ( temp sampler2D) +0:37 'g_tTex2df4' ( uniform texture2D) +0:37 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:39 Branch: Return with expression +0:39 Constant: +0:39 0.000000 +0:39 0.000000 +0:39 0.000000 +0:39 0.000000 +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2dmsf1' ( uniform texture2DMS) +0:? 'g_tTex2dmsf2' ( uniform texture2DMS) +0:? 'g_tTex2dmsf3' ( uniform texture2DMS) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2df1' ( uniform texture2D) +0:? 'g_tTex2df2' ( uniform texture2D) +0:? 'g_tTex2df3' ( uniform texture2D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_sSamp' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main( ( temp 4-component vector of float) +0:15 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp 2-component vector of uint) +0:24 'sizeQueryTemp' ( temp 2-component vector of uint) +0:24 textureSize ( temp 2-component vector of uint) +0:24 'g_tTex2dmsf1' ( uniform texture2DMS) +0:24 move second child to first child ( temp uint) +0:24 'WidthU' ( temp uint) +0:24 direct index ( temp uint) +0:24 'sizeQueryTemp' ( temp 2-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child ( temp uint) +0:24 'HeightU' ( temp uint) +0:24 direct index ( temp uint) +0:24 'sizeQueryTemp' ( temp 2-component vector of uint) +0:24 Constant: +0:24 1 (const int) +0:24 move second child to first child ( temp uint) +0:24 'NumberOfSamplesU' ( temp uint) +0:24 imageQuerySamples ( temp uint) +0:24 'g_tTex2dmsf1' ( uniform texture2DMS) +0:25 Sequence +0:25 move second child to first child ( temp 2-component vector of uint) +0:25 'sizeQueryTemp' ( temp 2-component vector of uint) +0:25 textureSize ( temp 2-component vector of uint) +0:25 'g_tTex2dmsf2' ( uniform texture2DMS) +0:25 move second child to first child ( temp uint) +0:25 'WidthU' ( temp uint) +0:25 direct index ( temp uint) +0:25 'sizeQueryTemp' ( temp 2-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 move second child to first child ( temp uint) +0:25 'HeightU' ( temp uint) +0:25 direct index ( temp uint) +0:25 'sizeQueryTemp' ( temp 2-component vector of uint) +0:25 Constant: +0:25 1 (const int) +0:25 move second child to first child ( temp uint) +0:25 'NumberOfSamplesU' ( temp uint) +0:25 imageQuerySamples ( temp uint) +0:25 'g_tTex2dmsf2' ( uniform texture2DMS) +0:26 Sequence +0:26 move second child to first child ( temp 2-component vector of uint) +0:26 'sizeQueryTemp' ( temp 2-component vector of uint) +0:26 textureSize ( temp 2-component vector of uint) +0:26 'g_tTex2dmsf3' ( uniform texture2DMS) +0:26 move second child to first child ( temp uint) +0:26 'WidthU' ( temp uint) +0:26 direct index ( temp uint) +0:26 'sizeQueryTemp' ( temp 2-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 move second child to first child ( temp uint) +0:26 'HeightU' ( temp uint) +0:26 direct index ( temp uint) +0:26 'sizeQueryTemp' ( temp 2-component vector of uint) +0:26 Constant: +0:26 1 (const int) +0:26 move second child to first child ( temp uint) +0:26 'NumberOfSamplesU' ( temp uint) +0:26 imageQuerySamples ( temp uint) +0:26 'g_tTex2dmsf3' ( uniform texture2DMS) +0:27 Sequence +0:27 move second child to first child ( temp 2-component vector of uint) +0:27 'sizeQueryTemp' ( temp 2-component vector of uint) +0:27 textureSize ( temp 2-component vector of uint) +0:27 'g_tTex2dmsf4' ( uniform texture2DMS) +0:27 move second child to first child ( temp uint) +0:27 'WidthU' ( temp uint) +0:27 direct index ( temp uint) +0:27 'sizeQueryTemp' ( temp 2-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 move second child to first child ( temp uint) +0:27 'HeightU' ( temp uint) +0:27 direct index ( temp uint) +0:27 'sizeQueryTemp' ( temp 2-component vector of uint) +0:27 Constant: +0:27 1 (const int) +0:27 move second child to first child ( temp uint) +0:27 'NumberOfSamplesU' ( temp uint) +0:27 imageQuerySamples ( temp uint) +0:27 'g_tTex2dmsf4' ( uniform texture2DMS) +0:29 Construct float ( temp float) +0:? textureFetch ( temp 4-component vector of float) +0:29 'g_tTex2dmsf1' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 Construct vec2 ( temp 2-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:30 'g_tTex2dmsf2' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:30 Constant: +0:30 3 (const int) +0:31 Construct vec3 ( temp 3-component vector of float) +0:? textureFetch ( temp 4-component vector of float) +0:31 'g_tTex2dmsf3' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:31 Constant: +0:31 3 (const int) +0:32 textureFetch ( temp 4-component vector of float) +0:32 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:32 Constant: +0:32 3 (const int) +0:34 Construct float ( temp float) +0:? texture ( temp 4-component vector of float) +0:34 Construct combined texture-sampler ( temp sampler2D) +0:34 'g_tTex2df1' ( uniform texture2D) +0:34 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Construct vec2 ( temp 2-component vector of float) +0:? texture ( temp 4-component vector of float) +0:35 Construct combined texture-sampler ( temp sampler2D) +0:35 'g_tTex2df2' ( uniform texture2D) +0:35 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Construct vec3 ( temp 3-component vector of float) +0:? texture ( temp 4-component vector of float) +0:36 Construct combined texture-sampler ( temp sampler2D) +0:36 'g_tTex2df3' ( uniform texture2D) +0:36 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:37 texture ( temp 4-component vector of float) +0:37 Construct combined texture-sampler ( temp sampler2D) +0:37 'g_tTex2df4' ( uniform texture2D) +0:37 'g_sSamp' ( uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:39 Branch: Return with expression +0:39 Constant: +0:39 0.000000 +0:39 0.000000 +0:39 0.000000 +0:39 0.000000 +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'g_tTex2dmsf1' ( uniform texture2DMS) +0:? 'g_tTex2dmsf2' ( uniform texture2DMS) +0:? 'g_tTex2dmsf3' ( uniform texture2DMS) +0:? 'g_tTex2dmsf4' ( uniform texture2DMS) +0:? 'g_tTex2df1' ( uniform texture2D) +0:? 'g_tTex2df2' ( uniform texture2D) +0:? 'g_tTex2df3' ( uniform texture2D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_sSamp' ( uniform sampler) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 130 + + Capability Shader + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 128 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 14 "sizeQueryTemp" + Name 17 "g_tTex2dmsf1" + Name 21 "WidthU" + Name 25 "HeightU" + Name 29 "NumberOfSamplesU" + Name 32 "sizeQueryTemp" + Name 33 "g_tTex2dmsf2" + Name 42 "sizeQueryTemp" + Name 43 "g_tTex2dmsf3" + Name 52 "sizeQueryTemp" + Name 53 "g_tTex2dmsf4" + Name 88 "g_tTex2df1" + Name 92 "g_sSamp" + Name 101 "g_tTex2df2" + Name 109 "g_tTex2df3" + Name 118 "g_tTex2df4" + Name 128 "@entryPointOutput" + Decorate 17(g_tTex2dmsf1) DescriptorSet 0 + Decorate 33(g_tTex2dmsf2) DescriptorSet 0 + Decorate 43(g_tTex2dmsf3) DescriptorSet 0 + Decorate 53(g_tTex2dmsf4) DescriptorSet 0 + Decorate 88(g_tTex2df1) DescriptorSet 0 + Decorate 92(g_sSamp) DescriptorSet 0 + Decorate 101(g_tTex2df2) DescriptorSet 0 + Decorate 109(g_tTex2df3) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 128(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 0 + 12: TypeVector 11(int) 2 + 13: TypePointer Function 12(ivec2) + 15: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 16: TypePointer UniformConstant 15 +17(g_tTex2dmsf1): 16(ptr) Variable UniformConstant + 20: TypePointer Function 11(int) + 22: 11(int) Constant 0 + 26: 11(int) Constant 1 +33(g_tTex2dmsf2): 16(ptr) Variable UniformConstant +43(g_tTex2dmsf3): 16(ptr) Variable UniformConstant +53(g_tTex2dmsf4): 16(ptr) Variable UniformConstant + 63: TypeInt 32 1 + 64: TypeVector 63(int) 2 + 65: 63(int) Constant 1 + 66: 63(int) Constant 2 + 67: 64(ivec2) ConstantComposite 65 66 + 68: 63(int) Constant 3 + 73: TypeVector 6(float) 2 + 79: TypeVector 6(float) 3 + 86: TypeImage 6(float) 2D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex2df1): 87(ptr) Variable UniformConstant + 90: TypeSampler + 91: TypePointer UniformConstant 90 + 92(g_sSamp): 91(ptr) Variable UniformConstant + 94: TypeSampledImage 86 + 96: 6(float) Constant 1036831949 + 97: 6(float) Constant 1045220557 + 98: 73(fvec2) ConstantComposite 96 97 + 101(g_tTex2df2): 87(ptr) Variable UniformConstant + 109(g_tTex2df3): 87(ptr) Variable UniformConstant + 118(g_tTex2df4): 87(ptr) Variable UniformConstant + 123: 6(float) Constant 0 + 124: 7(fvec4) ConstantComposite 123 123 123 123 + 127: TypePointer Output 7(fvec4) +128(@entryPointOutput): 127(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 129: 7(fvec4) FunctionCall 9(@main() + Store 128(@entryPointOutput) 129 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label +14(sizeQueryTemp): 13(ptr) Variable Function + 21(WidthU): 20(ptr) Variable Function + 25(HeightU): 20(ptr) Variable Function +29(NumberOfSamplesU): 20(ptr) Variable Function +32(sizeQueryTemp): 13(ptr) Variable Function +42(sizeQueryTemp): 13(ptr) Variable Function +52(sizeQueryTemp): 13(ptr) Variable Function + 18: 15 Load 17(g_tTex2dmsf1) + 19: 12(ivec2) ImageQuerySize 18 + Store 14(sizeQueryTemp) 19 + 23: 20(ptr) AccessChain 14(sizeQueryTemp) 22 + 24: 11(int) Load 23 + Store 21(WidthU) 24 + 27: 20(ptr) AccessChain 14(sizeQueryTemp) 26 + 28: 11(int) Load 27 + Store 25(HeightU) 28 + 30: 15 Load 17(g_tTex2dmsf1) + 31: 11(int) ImageQuerySamples 30 + Store 29(NumberOfSamplesU) 31 + 34: 15 Load 33(g_tTex2dmsf2) + 35: 12(ivec2) ImageQuerySize 34 + Store 32(sizeQueryTemp) 35 + 36: 20(ptr) AccessChain 32(sizeQueryTemp) 22 + 37: 11(int) Load 36 + Store 21(WidthU) 37 + 38: 20(ptr) AccessChain 32(sizeQueryTemp) 26 + 39: 11(int) Load 38 + Store 25(HeightU) 39 + 40: 15 Load 33(g_tTex2dmsf2) + 41: 11(int) ImageQuerySamples 40 + Store 29(NumberOfSamplesU) 41 + 44: 15 Load 43(g_tTex2dmsf3) + 45: 12(ivec2) ImageQuerySize 44 + Store 42(sizeQueryTemp) 45 + 46: 20(ptr) AccessChain 42(sizeQueryTemp) 22 + 47: 11(int) Load 46 + Store 21(WidthU) 47 + 48: 20(ptr) AccessChain 42(sizeQueryTemp) 26 + 49: 11(int) Load 48 + Store 25(HeightU) 49 + 50: 15 Load 43(g_tTex2dmsf3) + 51: 11(int) ImageQuerySamples 50 + Store 29(NumberOfSamplesU) 51 + 54: 15 Load 53(g_tTex2dmsf4) + 55: 12(ivec2) ImageQuerySize 54 + Store 52(sizeQueryTemp) 55 + 56: 20(ptr) AccessChain 52(sizeQueryTemp) 22 + 57: 11(int) Load 56 + Store 21(WidthU) 57 + 58: 20(ptr) AccessChain 52(sizeQueryTemp) 26 + 59: 11(int) Load 58 + Store 25(HeightU) 59 + 60: 15 Load 53(g_tTex2dmsf4) + 61: 11(int) ImageQuerySamples 60 + Store 29(NumberOfSamplesU) 61 + 62: 15 Load 17(g_tTex2dmsf1) + 69: 7(fvec4) ImageFetch 62 67 Sample 68 + 70: 6(float) CompositeExtract 69 0 + 71: 15 Load 33(g_tTex2dmsf2) + 72: 7(fvec4) ImageFetch 71 67 Sample 68 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 73(fvec2) CompositeConstruct 74 75 + 77: 15 Load 43(g_tTex2dmsf3) + 78: 7(fvec4) ImageFetch 77 67 Sample 68 + 80: 6(float) CompositeExtract 78 0 + 81: 6(float) CompositeExtract 78 1 + 82: 6(float) CompositeExtract 78 2 + 83: 79(fvec3) CompositeConstruct 80 81 82 + 84: 15 Load 53(g_tTex2dmsf4) + 85: 7(fvec4) ImageFetch 84 67 Sample 68 + 89: 86 Load 88(g_tTex2df1) + 93: 90 Load 92(g_sSamp) + 95: 94 SampledImage 89 93 + 99: 7(fvec4) ImageSampleImplicitLod 95 98 + 100: 6(float) CompositeExtract 99 0 + 102: 86 Load 101(g_tTex2df2) + 103: 90 Load 92(g_sSamp) + 104: 94 SampledImage 102 103 + 105: 7(fvec4) ImageSampleImplicitLod 104 98 + 106: 6(float) CompositeExtract 105 0 + 107: 6(float) CompositeExtract 105 1 + 108: 73(fvec2) CompositeConstruct 106 107 + 110: 86 Load 109(g_tTex2df3) + 111: 90 Load 92(g_sSamp) + 112: 94 SampledImage 110 111 + 113: 7(fvec4) ImageSampleImplicitLod 112 98 + 114: 6(float) CompositeExtract 113 0 + 115: 6(float) CompositeExtract 113 1 + 116: 6(float) CompositeExtract 113 2 + 117: 79(fvec3) CompositeConstruct 114 115 116 + 119: 86 Load 118(g_tTex2df4) + 120: 90 Load 92(g_sSamp) + 121: 94 SampledImage 119 120 + 122: 7(fvec4) ImageSampleImplicitLod 121 98 + ReturnValue 124 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.texturebuffer.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.texturebuffer.frag.out new file mode 100644 index 0000000000..89b5c542fe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.texturebuffer.frag.out @@ -0,0 +1,153 @@ +hlsl.texturebuffer.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:15 Function Parameters: +0:15 'pos' ( in 4-component vector of float) +0:? Sequence +0:16 Branch: Return with expression +0:16 add ( temp 4-component vector of float) +0:16 f: direct index for structure (layout( row_major std430) buffer 4-component vector of float) +0:16 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) +0:16 Constant: +0:16 0 (const int) +0:16 f2: direct index for structure (layout( row_major std430) buffer 4-component vector of float) +0:16 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) +0:16 Constant: +0:16 0 (const uint) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) +0:? 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: @main(vf4; ( temp 4-component vector of float) +0:15 Function Parameters: +0:15 'pos' ( in 4-component vector of float) +0:? Sequence +0:16 Branch: Return with expression +0:16 add ( temp 4-component vector of float) +0:16 f: direct index for structure (layout( row_major std430) buffer 4-component vector of float) +0:16 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) +0:16 Constant: +0:16 0 (const int) +0:16 f2: direct index for structure (layout( row_major std430) buffer 4-component vector of float) +0:16 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) +0:16 Constant: +0:16 0 (const uint) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main(vf4; ( temp 4-component vector of float) +0:? 'pos' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'TextureBuffer_var' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f, layout( row_major std430) buffer 4-component vector of int i}) +0:? 'anon@0' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float f2, layout( row_major std430) buffer 4-component vector of int i2}) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'pos' ( in 4-component vector of float FragCoord) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 32 35 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "pos" + Name 15 "TextureBuffer_var" + MemberName 15(TextureBuffer_var) 0 "f" + MemberName 15(TextureBuffer_var) 1 "i" + Name 17 "TextureBuffer_var" + Name 22 "tbuf2" + MemberName 22(tbuf2) 0 "f2" + MemberName 22(tbuf2) 1 "i2" + Name 24 "" + Name 30 "pos" + Name 32 "pos" + Name 35 "@entryPointOutput" + Name 36 "param" + MemberDecorate 15(TextureBuffer_var) 0 NonWritable + MemberDecorate 15(TextureBuffer_var) 0 Offset 0 + MemberDecorate 15(TextureBuffer_var) 1 NonWritable + MemberDecorate 15(TextureBuffer_var) 1 Offset 16 + Decorate 15(TextureBuffer_var) BufferBlock + Decorate 17(TextureBuffer_var) DescriptorSet 0 + Decorate 17(TextureBuffer_var) Binding 0 + MemberDecorate 22(tbuf2) 0 NonWritable + MemberDecorate 22(tbuf2) 0 Offset 0 + MemberDecorate 22(tbuf2) 1 NonWritable + MemberDecorate 22(tbuf2) 1 Offset 16 + Decorate 22(tbuf2) BufferBlock + Decorate 24 DescriptorSet 0 + Decorate 32(pos) BuiltIn FragCoord + Decorate 35(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 13: TypeInt 32 1 + 14: TypeVector 13(int) 4 +15(TextureBuffer_var): TypeStruct 7(fvec4) 14(ivec4) + 16: TypePointer Uniform 15(TextureBuffer_var) +17(TextureBuffer_var): 16(ptr) Variable Uniform + 18: 13(int) Constant 0 + 19: TypePointer Uniform 7(fvec4) + 22(tbuf2): TypeStruct 7(fvec4) 14(ivec4) + 23: TypePointer Uniform 22(tbuf2) + 24: 23(ptr) Variable Uniform + 31: TypePointer Input 7(fvec4) + 32(pos): 31(ptr) Variable Input + 34: TypePointer Output 7(fvec4) +35(@entryPointOutput): 34(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 30(pos): 8(ptr) Variable Function + 36(param): 8(ptr) Variable Function + 33: 7(fvec4) Load 32(pos) + Store 30(pos) 33 + 37: 7(fvec4) Load 30(pos) + Store 36(param) 37 + 38: 7(fvec4) FunctionCall 11(@main(vf4;) 36(param) + Store 35(@entryPointOutput) 38 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(pos): 8(ptr) FunctionParameter + 12: Label + 20: 19(ptr) AccessChain 17(TextureBuffer_var) 18 + 21: 7(fvec4) Load 20 + 25: 19(ptr) AccessChain 24 18 + 26: 7(fvec4) Load 25 + 27: 7(fvec4) FAdd 21 26 + ReturnValue 27 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.this.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.this.frag.out new file mode 100644 index 0000000000..ac5fde8b95 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.this.frag.out @@ -0,0 +1,379 @@ +hlsl.this.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 2-component vector of float) +0:1 'var' ( global 2-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:6 Function Definition: type1::memFun1(vi3; ( temp int) +0:6 Function Parameters: +0:6 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:6 'var' ( in 3-component vector of int) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp int) +0:7 add ( temp int) +0:7 direct index ( temp int) +0:7 'var' ( in 3-component vector of int) +0:7 Constant: +0:7 2 (const int) +0:7 var: direct index for structure ( temp int) +0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:7 Constant: +0:7 1 (const int) +0:7 var2: direct index for structure ( temp int) +0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:7 Constant: +0:7 2 (const uint) +0:10 Function Definition: type1::memFun2(i1; ( temp int) +0:10 Function Parameters: +0:10 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:10 'a' ( in int) +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 3-component vector of int) +0:11 'var' ( temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:12 Branch: Return with expression +0:12 add ( temp int) +0:12 add ( temp int) +0:12 direct index ( temp int) +0:12 'var' ( temp 3-component vector of int) +0:12 Constant: +0:12 2 (const int) +0:12 Convert float to int ( temp int) +0:12 direct index ( temp float) +0:12 bar: direct index for structure ( temp 2-component vector of float) +0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:12 Constant: +0:12 0 (const uint) +0:12 Constant: +0:12 1 (const int) +0:12 var2: direct index for structure ( temp int) +0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:12 Constant: +0:12 2 (const int) +0:20 Function Definition: @main( ( temp 4-component vector of float) +0:20 Function Parameters: +0:? Sequence +0:22 move second child to first child ( temp 2-component vector of float) +0:22 bar: direct index for structure ( temp 2-component vector of float) +0:22 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:22 Constant: +0:22 0 (const int) +0:22 'var' ( global 2-component vector of float) +0:23 move second child to first child ( temp int) +0:23 var: direct index for structure ( temp int) +0:23 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 7 (const int) +0:24 move second child to first child ( temp int) +0:24 var2: direct index for structure ( temp int) +0:24 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 9 (const int) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'i' ( temp int) +0:25 Function Call: type1::memFun1(vi3; ( temp int) +0:25 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:? Constant: +0:? 10 (const int) +0:? 11 (const int) +0:? 12 (const int) +0:26 add second child into first child ( temp int) +0:26 'i' ( temp int) +0:26 Function Call: type1::memFun2(i1; ( temp int) +0:26 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:26 Constant: +0:26 17 (const int) +0:28 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:20 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'var' ( global 2-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Sequence +0:1 move second child to first child ( temp 2-component vector of float) +0:1 'var' ( global 2-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:6 Function Definition: type1::memFun1(vi3; ( temp int) +0:6 Function Parameters: +0:6 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:6 'var' ( in 3-component vector of int) +0:? Sequence +0:7 Branch: Return with expression +0:7 add ( temp int) +0:7 add ( temp int) +0:7 direct index ( temp int) +0:7 'var' ( in 3-component vector of int) +0:7 Constant: +0:7 2 (const int) +0:7 var: direct index for structure ( temp int) +0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:7 Constant: +0:7 1 (const int) +0:7 var2: direct index for structure ( temp int) +0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:7 Constant: +0:7 2 (const uint) +0:10 Function Definition: type1::memFun2(i1; ( temp int) +0:10 Function Parameters: +0:10 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:10 'a' ( in int) +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp 3-component vector of int) +0:11 'var' ( temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:12 Branch: Return with expression +0:12 add ( temp int) +0:12 add ( temp int) +0:12 direct index ( temp int) +0:12 'var' ( temp 3-component vector of int) +0:12 Constant: +0:12 2 (const int) +0:12 Convert float to int ( temp int) +0:12 direct index ( temp float) +0:12 bar: direct index for structure ( temp 2-component vector of float) +0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:12 Constant: +0:12 0 (const uint) +0:12 Constant: +0:12 1 (const int) +0:12 var2: direct index for structure ( temp int) +0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:12 Constant: +0:12 2 (const int) +0:20 Function Definition: @main( ( temp 4-component vector of float) +0:20 Function Parameters: +0:? Sequence +0:22 move second child to first child ( temp 2-component vector of float) +0:22 bar: direct index for structure ( temp 2-component vector of float) +0:22 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:22 Constant: +0:22 0 (const int) +0:22 'var' ( global 2-component vector of float) +0:23 move second child to first child ( temp int) +0:23 var: direct index for structure ( temp int) +0:23 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 7 (const int) +0:24 move second child to first child ( temp int) +0:24 var2: direct index for structure ( temp int) +0:24 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 9 (const int) +0:25 Sequence +0:25 move second child to first child ( temp int) +0:25 'i' ( temp int) +0:25 Function Call: type1::memFun1(vi3; ( temp int) +0:25 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:? Constant: +0:? 10 (const int) +0:? 11 (const int) +0:? 12 (const int) +0:26 add second child into first child ( temp int) +0:26 'i' ( temp int) +0:26 Function Call: type1::memFun2(i1; ( temp int) +0:26 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) +0:26 Constant: +0:26 17 (const int) +0:28 Branch: Return with expression +0:? Construct vec4 ( temp 4-component vector of float) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:28 Convert int to float ( temp float) +0:28 'i' ( temp int) +0:20 Function Definition: main( ( temp void) +0:20 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:20 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'var' ( global 2-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 98 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "type1" + MemberName 9(type1) 0 "bar" + MemberName 9(type1) 1 "var" + MemberName 9(type1) 2 "var2" + Name 16 "type1::memFun1(vi3;" + Name 14 "@this" + Name 15 "var" + Name 22 "type1::memFun2(i1;" + Name 20 "@this" + Name 21 "a" + Name 26 "@main(" + Name 29 "var" + Name 47 "var" + Name 64 "T" + Name 72 "i" + Name 77 "param" + Name 80 "param" + Name 96 "@entryPointOutput" + Decorate 96(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeInt 32 1 + 9(type1): TypeStruct 7(fvec2) 8(int) 8(int) + 10: TypePointer Function 9(type1) + 11: TypeVector 8(int) 3 + 12: TypePointer Function 11(ivec3) + 13: TypeFunction 8(int) 10(ptr) 12(ptr) + 18: TypePointer Function 8(int) + 19: TypeFunction 8(int) 10(ptr) 18(ptr) + 24: TypeVector 6(float) 4 + 25: TypeFunction 24(fvec4) + 28: TypePointer Private 7(fvec2) + 29(var): 28(ptr) Variable Private + 30: 6(float) Constant 1065353216 + 31: 6(float) Constant 1073741824 + 32: 7(fvec2) ConstantComposite 30 31 + 33: TypeInt 32 0 + 34: 33(int) Constant 2 + 37: 8(int) Constant 1 + 41: 8(int) Constant 2 + 48: 8(int) Constant 3 + 49: 11(ivec3) ConstantComposite 37 41 48 + 52: 8(int) Constant 0 + 53: 33(int) Constant 1 + 54: TypePointer Function 6(float) + 66: TypePointer Function 7(fvec2) + 68: 8(int) Constant 7 + 70: 8(int) Constant 9 + 73: 8(int) Constant 10 + 74: 8(int) Constant 11 + 75: 8(int) Constant 12 + 76: 11(ivec3) ConstantComposite 73 74 75 + 79: 8(int) Constant 17 + 95: TypePointer Output 24(fvec4) +96(@entryPointOutput): 95(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Store 29(var) 32 + 97: 24(fvec4) FunctionCall 26(@main() + Store 96(@entryPointOutput) 97 + Return + FunctionEnd +16(type1::memFun1(vi3;): 8(int) Function None 13 + 14(@this): 10(ptr) FunctionParameter + 15(var): 12(ptr) FunctionParameter + 17: Label + 35: 18(ptr) AccessChain 15(var) 34 + 36: 8(int) Load 35 + 38: 18(ptr) AccessChain 14(@this) 37 + 39: 8(int) Load 38 + 40: 8(int) IAdd 36 39 + 42: 18(ptr) AccessChain 14(@this) 41 + 43: 8(int) Load 42 + 44: 8(int) IAdd 40 43 + ReturnValue 44 + FunctionEnd +22(type1::memFun2(i1;): 8(int) Function None 19 + 20(@this): 10(ptr) FunctionParameter + 21(a): 18(ptr) FunctionParameter + 23: Label + 47(var): 12(ptr) Variable Function + Store 47(var) 49 + 50: 18(ptr) AccessChain 47(var) 34 + 51: 8(int) Load 50 + 55: 54(ptr) AccessChain 20(@this) 52 53 + 56: 6(float) Load 55 + 57: 8(int) ConvertFToS 56 + 58: 8(int) IAdd 51 57 + 59: 18(ptr) AccessChain 20(@this) 41 + 60: 8(int) Load 59 + 61: 8(int) IAdd 58 60 + ReturnValue 61 + FunctionEnd + 26(@main(): 24(fvec4) Function None 25 + 27: Label + 64(T): 10(ptr) Variable Function + 72(i): 18(ptr) Variable Function + 77(param): 12(ptr) Variable Function + 80(param): 18(ptr) Variable Function + 65: 7(fvec2) Load 29(var) + 67: 66(ptr) AccessChain 64(T) 52 + Store 67 65 + 69: 18(ptr) AccessChain 64(T) 37 + Store 69 68 + 71: 18(ptr) AccessChain 64(T) 41 + Store 71 70 + Store 77(param) 76 + 78: 8(int) FunctionCall 16(type1::memFun1(vi3;) 64(T) 77(param) + Store 72(i) 78 + Store 80(param) 79 + 81: 8(int) FunctionCall 22(type1::memFun2(i1;) 64(T) 80(param) + 82: 8(int) Load 72(i) + 83: 8(int) IAdd 82 81 + Store 72(i) 83 + 84: 8(int) Load 72(i) + 85: 6(float) ConvertSToF 84 + 86: 8(int) Load 72(i) + 87: 6(float) ConvertSToF 86 + 88: 8(int) Load 72(i) + 89: 6(float) ConvertSToF 88 + 90: 8(int) Load 72(i) + 91: 6(float) ConvertSToF 90 + 92: 24(fvec4) CompositeConstruct 85 87 89 91 + ReturnValue 92 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.tristream-append.geom.out b/deps/glslang/glslang/Test/baseResults/hlsl.tristream-append.geom.out new file mode 100644 index 0000000000..be6ca9cd6f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.tristream-append.geom.out @@ -0,0 +1,212 @@ +hlsl.tristream-append.geom +Shader version: 500 +invocations = -1 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:8 Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:8 Function Parameters: +0:8 'output' ( in structure{}) +0:8 'TriStream' ( out structure{}) +0:? Sequence +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp structure{}) +0:9 'TriStream' ( out structure{}) +0:9 'output' ( in structure{}) +0:9 EmitVertex ( temp void) +0:14 Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) +0:14 Function Parameters: +0:14 'input' ( in 3-element array of structure{}) +0:14 'TriStream' ( out structure{}) +0:? Sequence +0:15 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:15 direct index ( temp structure{}) +0:15 'input' ( in 3-element array of structure{}) +0:15 Constant: +0:15 0 (const int) +0:15 'TriStream' ( out structure{}) +0:16 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:16 direct index ( temp structure{}) +0:16 'input' ( in 3-element array of structure{}) +0:16 Constant: +0:16 1 (const int) +0:16 'TriStream' ( out structure{}) +0:17 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:17 direct index ( temp structure{}) +0:17 'input' ( in 3-element array of structure{}) +0:17 Constant: +0:17 2 (const int) +0:17 'TriStream' ( out structure{}) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp 3-element array of structure{}) +0:? 'input' ( temp 3-element array of structure{}) +0:? 'input' ( in 3-element array of structure{}) +0:14 Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) +0:? 'input' ( temp 3-element array of structure{}) +0:? 'TriStream' ( temp structure{}) +0:? Linker Objects + + +Linked geometry stage: + + +Shader version: 500 +invocations = 1 +max_vertices = 3 +input primitive = triangles +output primitive = triangle_strip +0:? Sequence +0:8 Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:8 Function Parameters: +0:8 'output' ( in structure{}) +0:8 'TriStream' ( out structure{}) +0:? Sequence +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp structure{}) +0:9 'TriStream' ( out structure{}) +0:9 'output' ( in structure{}) +0:9 EmitVertex ( temp void) +0:14 Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) +0:14 Function Parameters: +0:14 'input' ( in 3-element array of structure{}) +0:14 'TriStream' ( out structure{}) +0:? Sequence +0:15 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:15 direct index ( temp structure{}) +0:15 'input' ( in 3-element array of structure{}) +0:15 Constant: +0:15 0 (const int) +0:15 'TriStream' ( out structure{}) +0:16 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:16 direct index ( temp structure{}) +0:16 'input' ( in 3-element array of structure{}) +0:16 Constant: +0:16 1 (const int) +0:16 'TriStream' ( out structure{}) +0:17 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) +0:17 direct index ( temp structure{}) +0:17 'input' ( in 3-element array of structure{}) +0:17 Constant: +0:17 2 (const int) +0:17 'TriStream' ( out structure{}) +0:14 Function Definition: main( ( temp void) +0:14 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp 3-element array of structure{}) +0:? 'input' ( temp 3-element array of structure{}) +0:? 'input' ( in 3-element array of structure{}) +0:14 Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) +0:? 'input' ( temp 3-element array of structure{}) +0:? 'TriStream' ( temp structure{}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 57 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 3 + Source HLSL 500 + Name 4 "main" + Name 6 "GSPS_INPUT" + Name 11 "EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;" + Name 9 "output" + Name 10 "TriStream" + Name 20 "@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;" + Name 18 "input" + Name 19 "TriStream" + Name 23 "TriStream" + Name 27 "param" + Name 30 "param" + Name 34 "param" + Name 37 "param" + Name 41 "param" + Name 44 "param" + Name 47 "input" + Name 49 "input" + Name 51 "TriStream" + Name 52 "param" + Name 54 "param" + 2: TypeVoid + 3: TypeFunction 2 + 6(GSPS_INPUT): TypeStruct + 7: TypePointer Function 6(GSPS_INPUT) + 8: TypeFunction 2 7(ptr) 7(ptr) + 13: TypeInt 32 0 + 14: 13(int) Constant 3 + 15: TypeArray 6(GSPS_INPUT) 14 + 16: TypePointer Function 15 + 17: TypeFunction 2 16(ptr) 7(ptr) + 22: TypePointer Output 6(GSPS_INPUT) + 23(TriStream): 22(ptr) Variable Output + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 33: 25(int) Constant 1 + 40: 25(int) Constant 2 + 48: TypePointer Input 15 + 49(input): 48(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 47(input): 16(ptr) Variable Function + 51(TriStream): 7(ptr) Variable Function + 52(param): 16(ptr) Variable Function + 54(param): 7(ptr) Variable Function + 50: 15 Load 49(input) + Store 47(input) 50 + 53: 15 Load 47(input) + Store 52(param) 53 + 55: 2 FunctionCall 20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;) 52(param) 54(param) + 56:6(GSPS_INPUT) Load 54(param) + Store 51(TriStream) 56 + Return + FunctionEnd +11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;): 2 Function None 8 + 9(output): 7(ptr) FunctionParameter + 10(TriStream): 7(ptr) FunctionParameter + 12: Label + 24:6(GSPS_INPUT) Load 9(output) + Store 23(TriStream) 24 + EmitVertex + Return + FunctionEnd +20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;): 2 Function None 17 + 18(input): 16(ptr) FunctionParameter + 19(TriStream): 7(ptr) FunctionParameter + 21: Label + 27(param): 7(ptr) Variable Function + 30(param): 7(ptr) Variable Function + 34(param): 7(ptr) Variable Function + 37(param): 7(ptr) Variable Function + 41(param): 7(ptr) Variable Function + 44(param): 7(ptr) Variable Function + 28: 7(ptr) AccessChain 18(input) 26 + 29:6(GSPS_INPUT) Load 28 + Store 27(param) 29 + 31: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 27(param) 30(param) + 32:6(GSPS_INPUT) Load 30(param) + Store 19(TriStream) 32 + 35: 7(ptr) AccessChain 18(input) 33 + 36:6(GSPS_INPUT) Load 35 + Store 34(param) 36 + 38: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 34(param) 37(param) + 39:6(GSPS_INPUT) Load 37(param) + Store 19(TriStream) 39 + 42: 7(ptr) AccessChain 18(input) 40 + 43:6(GSPS_INPUT) Load 42 + Store 41(param) 43 + 45: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 41(param) 44(param) + 46:6(GSPS_INPUT) Load 44(param) + Store 19(TriStream) 46 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out new file mode 100644 index 0000000000..400beb611c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.tx.bracket.frag.out @@ -0,0 +1,716 @@ +hlsl.tx.bracket.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; ( temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' ( in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' ( in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; ( temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' ( in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' ( in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; ( temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' ( in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' ( in 4-component vector of float) +0:42 Function Definition: SomeValue( ( temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float ( temp 4-component vector of float) +0:42 c4: direct index for structure ( uniform 4-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch ( temp 4-component vector of float) +0:49 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:49 c1: direct index for structure ( uniform int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'r00' ( temp 4-component vector of float) +0:51 textureFetch ( temp 4-component vector of float) +0:51 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:51 c1: direct index for structure ( uniform int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'r01' ( temp 4-component vector of int) +0:52 textureFetch ( temp 4-component vector of int) +0:52 'g_tTex1di4' ( uniform itexture1D) +0:52 c1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of uint) +0:53 'r02' ( temp 4-component vector of uint) +0:53 textureFetch ( temp 4-component vector of uint) +0:53 'g_tTex1du4' ( uniform utexture1D) +0:53 c1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child ( temp 4-component vector of float) +0:56 'r10' ( temp 4-component vector of float) +0:56 textureFetch ( temp 4-component vector of float) +0:56 'g_tTex2df4' ( uniform texture2D) +0:56 c2: direct index for structure ( uniform 2-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of int) +0:57 'r11' ( temp 4-component vector of int) +0:57 textureFetch ( temp 4-component vector of int) +0:57 'g_tTex2di4' ( uniform itexture2D) +0:57 c2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child ( temp 4-component vector of uint) +0:58 'r12' ( temp 4-component vector of uint) +0:58 textureFetch ( temp 4-component vector of uint) +0:58 'g_tTex2du4' ( uniform utexture2D) +0:58 c2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of float) +0:61 'r20' ( temp 4-component vector of float) +0:61 textureFetch ( temp 4-component vector of float) +0:61 'g_tTex3df4' ( uniform texture3D) +0:61 c3: direct index for structure ( uniform 3-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of int) +0:62 'r21' ( temp 4-component vector of int) +0:62 textureFetch ( temp 4-component vector of int) +0:62 'g_tTex3di4' ( uniform itexture3D) +0:62 c3: direct index for structure ( uniform 3-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of uint) +0:63 'r22' ( temp 4-component vector of uint) +0:63 textureFetch ( temp 4-component vector of uint) +0:63 'g_tTex3du4' ( uniform utexture3D) +0:63 c3: direct index for structure ( uniform 3-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; ( temp 4-component vector of float) +0:66 textureFetch ( temp 4-component vector of float) +0:66 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:66 c1: direct index for structure ( uniform int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; ( temp 4-component vector of int) +0:67 textureFetch ( temp 4-component vector of int) +0:67 'g_tTex1di4' ( uniform itexture1D) +0:67 c1: direct index for structure ( uniform int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; ( temp 4-component vector of uint) +0:68 textureFetch ( temp 4-component vector of uint) +0:68 'g_tTex1du4' ( uniform utexture1D) +0:68 c1: direct index for structure ( uniform int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child ( temp 4-component vector of float) +0:70 Color: direct index for structure ( temp 4-component vector of float) +0:70 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Branch: Return with expression +0:72 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Definition: main( ( temp void) +0:45 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Constant: +0:45 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; ( temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' ( in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' ( in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; ( temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' ( in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' ( in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; ( temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' ( in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' ( in 4-component vector of float) +0:42 Function Definition: SomeValue( ( temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float ( temp 4-component vector of float) +0:42 c4: direct index for structure ( uniform 4-component vector of int) +0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch ( temp 4-component vector of float) +0:49 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:49 c1: direct index for structure ( uniform int) +0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child ( temp 4-component vector of float) +0:51 'r00' ( temp 4-component vector of float) +0:51 textureFetch ( temp 4-component vector of float) +0:51 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:51 c1: direct index for structure ( uniform int) +0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'r01' ( temp 4-component vector of int) +0:52 textureFetch ( temp 4-component vector of int) +0:52 'g_tTex1di4' ( uniform itexture1D) +0:52 c1: direct index for structure ( uniform int) +0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child ( temp 4-component vector of uint) +0:53 'r02' ( temp 4-component vector of uint) +0:53 textureFetch ( temp 4-component vector of uint) +0:53 'g_tTex1du4' ( uniform utexture1D) +0:53 c1: direct index for structure ( uniform int) +0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child ( temp 4-component vector of float) +0:56 'r10' ( temp 4-component vector of float) +0:56 textureFetch ( temp 4-component vector of float) +0:56 'g_tTex2df4' ( uniform texture2D) +0:56 c2: direct index for structure ( uniform 2-component vector of int) +0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child ( temp 4-component vector of int) +0:57 'r11' ( temp 4-component vector of int) +0:57 textureFetch ( temp 4-component vector of int) +0:57 'g_tTex2di4' ( uniform itexture2D) +0:57 c2: direct index for structure ( uniform 2-component vector of int) +0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child ( temp 4-component vector of uint) +0:58 'r12' ( temp 4-component vector of uint) +0:58 textureFetch ( temp 4-component vector of uint) +0:58 'g_tTex2du4' ( uniform utexture2D) +0:58 c2: direct index for structure ( uniform 2-component vector of int) +0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child ( temp 4-component vector of float) +0:61 'r20' ( temp 4-component vector of float) +0:61 textureFetch ( temp 4-component vector of float) +0:61 'g_tTex3df4' ( uniform texture3D) +0:61 c3: direct index for structure ( uniform 3-component vector of int) +0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child ( temp 4-component vector of int) +0:62 'r21' ( temp 4-component vector of int) +0:62 textureFetch ( temp 4-component vector of int) +0:62 'g_tTex3di4' ( uniform itexture3D) +0:62 c3: direct index for structure ( uniform 3-component vector of int) +0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child ( temp 4-component vector of uint) +0:63 'r22' ( temp 4-component vector of uint) +0:63 textureFetch ( temp 4-component vector of uint) +0:63 'g_tTex3du4' ( uniform utexture3D) +0:63 c3: direct index for structure ( uniform 3-component vector of int) +0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; ( temp 4-component vector of float) +0:66 textureFetch ( temp 4-component vector of float) +0:66 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:66 c1: direct index for structure ( uniform int) +0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; ( temp 4-component vector of int) +0:67 textureFetch ( temp 4-component vector of int) +0:67 'g_tTex1di4' ( uniform itexture1D) +0:67 c1: direct index for structure ( uniform int) +0:67 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; ( temp 4-component vector of uint) +0:68 textureFetch ( temp 4-component vector of uint) +0:68 'g_tTex1du4' ( uniform utexture1D) +0:68 c1: direct index for structure ( uniform int) +0:68 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child ( temp 4-component vector of float) +0:70 Color: direct index for structure ( temp 4-component vector of float) +0:70 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Branch: Return with expression +0:72 'psout' ( temp structure{ temp 4-component vector of float Color}) +0:45 Function Definition: main( ( temp void) +0:45 Function Parameters: +0:? Sequence +0:45 Sequence +0:45 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) +0:45 Color: direct index for structure ( temp 4-component vector of float) +0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) +0:45 Constant: +0:45 0 (const int) +0:? Linker Objects +0:? 'g_sSamp' (layout( binding=0) uniform sampler) +0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) +0:? 'g_tTex1di4' ( uniform itexture1D) +0:? 'g_tTex1du4' ( uniform utexture1D) +0:? 'g_tTex2df4' ( uniform texture2D) +0:? 'g_tTex2di4' ( uniform itexture2D) +0:? 'g_tTex2du4' ( uniform utexture2D) +0:? 'g_tTex3df4' ( uniform texture3D) +0:? 'g_tTex3di4' ( uniform itexture3D) +0:? 'g_tTex3du4' ( uniform utexture3D) +0:? 'g_tTex1df4a' ( uniform texture1DArray) +0:? 'g_tTex1di4a' ( uniform itexture1DArray) +0:? 'g_tTex1du4a' ( uniform utexture1DArray) +0:? 'g_tTex2df4a' ( uniform texture2DArray) +0:? 'g_tTex2di4a' ( uniform itexture2DArray) +0:? 'g_tTex2du4a' ( uniform utexture2DArray) +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) +0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 188 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 164 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 28 "SomeValue(" + Name 30 "PS_OUTPUT" + MemberName 30(PS_OUTPUT) 0 "Color" + Name 32 "@main(" + Name 45 "$Global" + MemberName 45($Global) 0 "c1" + MemberName 45($Global) 1 "c2" + MemberName 45($Global) 2 "c3" + MemberName 45($Global) 3 "c4" + MemberName 45($Global) 4 "o1" + MemberName 45($Global) 5 "o2" + MemberName 45($Global) 6 "o3" + MemberName 45($Global) 7 "o4" + Name 47 "" + Name 57 "g_tTex1df4" + Name 64 "r00" + Name 69 "r01" + Name 72 "g_tTex1di4" + Name 77 "r02" + Name 80 "g_tTex1du4" + Name 85 "r10" + Name 88 "g_tTex2df4" + Name 95 "r11" + Name 98 "g_tTex2di4" + Name 103 "r12" + Name 106 "g_tTex2du4" + Name 111 "r20" + Name 114 "g_tTex3df4" + Name 121 "r21" + Name 124 "g_tTex3di4" + Name 129 "r22" + Name 132 "g_tTex3du4" + Name 141 "param" + Name 147 "param" + Name 153 "param" + Name 156 "psout" + Name 164 "@entryPointOutput.Color" + Name 169 "g_sSamp" + Name 172 "g_tTex1df4a" + Name 175 "g_tTex1di4a" + Name 178 "g_tTex1du4a" + Name 181 "g_tTex2df4a" + Name 184 "g_tTex2di4a" + Name 187 "g_tTex2du4a" + MemberDecorate 45($Global) 0 Offset 0 + MemberDecorate 45($Global) 1 Offset 8 + MemberDecorate 45($Global) 2 Offset 16 + MemberDecorate 45($Global) 3 Offset 32 + MemberDecorate 45($Global) 4 Offset 48 + MemberDecorate 45($Global) 5 Offset 56 + MemberDecorate 45($Global) 6 Offset 64 + MemberDecorate 45($Global) 7 Offset 80 + Decorate 45($Global) Block + Decorate 47 DescriptorSet 0 + Decorate 57(g_tTex1df4) DescriptorSet 0 + Decorate 57(g_tTex1df4) Binding 0 + Decorate 72(g_tTex1di4) DescriptorSet 0 + Decorate 80(g_tTex1du4) DescriptorSet 0 + Decorate 88(g_tTex2df4) DescriptorSet 0 + Decorate 98(g_tTex2di4) DescriptorSet 0 + Decorate 106(g_tTex2du4) DescriptorSet 0 + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 132(g_tTex3du4) DescriptorSet 0 + Decorate 164(@entryPointOutput.Color) Location 0 + Decorate 169(g_sSamp) DescriptorSet 0 + Decorate 169(g_sSamp) Binding 0 + Decorate 172(g_tTex1df4a) DescriptorSet 0 + Decorate 175(g_tTex1di4a) DescriptorSet 0 + Decorate 178(g_tTex1du4a) DescriptorSet 0 + Decorate 181(g_tTex2df4a) DescriptorSet 0 + Decorate 184(g_tTex2di4a) DescriptorSet 0 + Decorate 187(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 21(fvec4) + 30(PS_OUTPUT): TypeStruct 21(fvec4) + 31: TypeFunction 30(PS_OUTPUT) + 43: TypeVector 6(int) 2 + 44: TypeVector 6(int) 3 + 45($Global): TypeStruct 6(int) 43(ivec2) 44(ivec3) 7(ivec4) 6(int) 43(ivec2) 44(ivec3) 7(ivec4) + 46: TypePointer Uniform 45($Global) + 47: 46(ptr) Variable Uniform + 48: 6(int) Constant 3 + 49: TypePointer Uniform 7(ivec4) + 55: TypeImage 20(float) 1D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex1df4): 56(ptr) Variable UniformConstant + 59: 6(int) Constant 0 + 60: TypePointer Uniform 6(int) + 70: TypeImage 6(int) 1D sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex1di4): 71(ptr) Variable UniformConstant + 78: TypeImage 13(int) 1D sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1du4): 79(ptr) Variable UniformConstant + 86: TypeImage 20(float) 2D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex2df4): 87(ptr) Variable UniformConstant + 90: 6(int) Constant 1 + 91: TypePointer Uniform 43(ivec2) + 96: TypeImage 6(int) 2D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex2di4): 97(ptr) Variable UniformConstant + 104: TypeImage 13(int) 2D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex2du4): 105(ptr) Variable UniformConstant + 112: TypeImage 20(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 116: 6(int) Constant 2 + 117: TypePointer Uniform 44(ivec3) + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 130: TypeImage 13(int) 3D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex3du4): 131(ptr) Variable UniformConstant + 155: TypePointer Function 30(PS_OUTPUT) + 157: 20(float) Constant 1065353216 + 158: 21(fvec4) ConstantComposite 157 157 157 157 + 163: TypePointer Output 21(fvec4) +164(@entryPointOutput.Color): 163(ptr) Variable Output + 167: TypeSampler + 168: TypePointer UniformConstant 167 + 169(g_sSamp): 168(ptr) Variable UniformConstant + 170: TypeImage 20(float) 1D array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTex1df4a): 171(ptr) Variable UniformConstant + 173: TypeImage 6(int) 1D array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTex1di4a): 174(ptr) Variable UniformConstant + 176: TypeImage 13(int) 1D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex1du4a): 177(ptr) Variable UniformConstant + 179: TypeImage 20(float) 2D array sampled format:Unknown + 180: TypePointer UniformConstant 179 +181(g_tTex2df4a): 180(ptr) Variable UniformConstant + 182: TypeImage 6(int) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2di4a): 183(ptr) Variable UniformConstant + 185: TypeImage 13(int) 2D array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTex2du4a): 186(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 165:30(PS_OUTPUT) FunctionCall 32(@main() + 166: 21(fvec4) CompositeExtract 165 0 + Store 164(@entryPointOutput.Color) 166 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 34: 7(ivec4) Load 10(x) + ReturnValue 34 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 37: 14(ivec4) Load 17(x) + ReturnValue 37 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 40: 21(fvec4) Load 24(x) + ReturnValue 40 + FunctionEnd + 28(SomeValue(): 21(fvec4) Function None 27 + 29: Label + 50: 49(ptr) AccessChain 47 48 + 51: 7(ivec4) Load 50 + 52: 21(fvec4) ConvertSToF 51 + ReturnValue 52 + FunctionEnd + 32(@main():30(PS_OUTPUT) Function None 31 + 33: Label + 64(r00): 22(ptr) Variable Function + 69(r01): 8(ptr) Variable Function + 77(r02): 15(ptr) Variable Function + 85(r10): 22(ptr) Variable Function + 95(r11): 8(ptr) Variable Function + 103(r12): 15(ptr) Variable Function + 111(r20): 22(ptr) Variable Function + 121(r21): 8(ptr) Variable Function + 129(r22): 15(ptr) Variable Function + 141(param): 22(ptr) Variable Function + 147(param): 8(ptr) Variable Function + 153(param): 15(ptr) Variable Function + 156(psout): 155(ptr) Variable Function + 58: 55 Load 57(g_tTex1df4) + 61: 60(ptr) AccessChain 47 59 + 62: 6(int) Load 61 + 63: 21(fvec4) ImageFetch 58 62 Lod 59 + 65: 55 Load 57(g_tTex1df4) + 66: 60(ptr) AccessChain 47 59 + 67: 6(int) Load 66 + 68: 21(fvec4) ImageFetch 65 67 Lod 59 + Store 64(r00) 68 + 73: 70 Load 72(g_tTex1di4) + 74: 60(ptr) AccessChain 47 59 + 75: 6(int) Load 74 + 76: 7(ivec4) ImageFetch 73 75 Lod 59 + Store 69(r01) 76 + 81: 78 Load 80(g_tTex1du4) + 82: 60(ptr) AccessChain 47 59 + 83: 6(int) Load 82 + 84: 14(ivec4) ImageFetch 81 83 Lod 59 + Store 77(r02) 84 + 89: 86 Load 88(g_tTex2df4) + 92: 91(ptr) AccessChain 47 90 + 93: 43(ivec2) Load 92 + 94: 21(fvec4) ImageFetch 89 93 Lod 59 + Store 85(r10) 94 + 99: 96 Load 98(g_tTex2di4) + 100: 91(ptr) AccessChain 47 90 + 101: 43(ivec2) Load 100 + 102: 7(ivec4) ImageFetch 99 101 Lod 59 + Store 95(r11) 102 + 107: 104 Load 106(g_tTex2du4) + 108: 91(ptr) AccessChain 47 90 + 109: 43(ivec2) Load 108 + 110: 14(ivec4) ImageFetch 107 109 Lod 59 + Store 103(r12) 110 + 115: 112 Load 114(g_tTex3df4) + 118: 117(ptr) AccessChain 47 116 + 119: 44(ivec3) Load 118 + 120: 21(fvec4) ImageFetch 115 119 Lod 59 + Store 111(r20) 120 + 125: 122 Load 124(g_tTex3di4) + 126: 117(ptr) AccessChain 47 116 + 127: 44(ivec3) Load 126 + 128: 7(ivec4) ImageFetch 125 127 Lod 59 + Store 121(r21) 128 + 133: 130 Load 132(g_tTex3du4) + 134: 117(ptr) AccessChain 47 116 + 135: 44(ivec3) Load 134 + 136: 14(ivec4) ImageFetch 133 135 Lod 59 + Store 129(r22) 136 + 137: 55 Load 57(g_tTex1df4) + 138: 60(ptr) AccessChain 47 59 + 139: 6(int) Load 138 + 140: 21(fvec4) ImageFetch 137 139 Lod 59 + Store 141(param) 140 + 142: 21(fvec4) FunctionCall 25(Fn1(vf4;) 141(param) + 143: 70 Load 72(g_tTex1di4) + 144: 60(ptr) AccessChain 47 59 + 145: 6(int) Load 144 + 146: 7(ivec4) ImageFetch 143 145 Lod 59 + Store 147(param) 146 + 148: 7(ivec4) FunctionCall 11(Fn1(vi4;) 147(param) + 149: 78 Load 80(g_tTex1du4) + 150: 60(ptr) AccessChain 47 59 + 151: 6(int) Load 150 + 152: 14(ivec4) ImageFetch 149 151 Lod 59 + Store 153(param) 152 + 154: 14(ivec4) FunctionCall 18(Fn1(vu4;) 153(param) + 159: 22(ptr) AccessChain 156(psout) 59 + Store 159 158 + 160:30(PS_OUTPUT) Load 156(psout) + ReturnValue 160 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.tx.overload.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.tx.overload.frag.out new file mode 100644 index 0000000000..c8d064a33a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.tx.overload.frag.out @@ -0,0 +1,247 @@ +hlsl.tx.overload.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: Func(t211; ( temp float) +0:8 Function Parameters: +0:8 'DummyTex' ( in texture2D) +0:? Sequence +0:8 Branch: Return with expression +0:8 Constant: +0:8 1.000000 +0:9 Function Definition: Func(t21; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 'DummyTex' ( in texture2D) +0:? Sequence +0:9 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:11 Function Definition: Func(I211; ( temp float) +0:11 Function Parameters: +0:11 'DummyTex' (layout( r32f) in image2D) +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 1.000000 +0:12 Function Definition: Func(I21; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'DummyTex' (layout( rgba32f) in image2D) +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Function Definition: @main( ( temp 4-component vector of float) +0:15 Function Parameters: +0:? Sequence +0:16 Branch: Return with expression +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 Function Call: Func(t211; ( temp float) +0:16 'tf1' ( uniform texture2D) +0:16 Function Call: Func(t21; ( temp 4-component vector of float) +0:16 'tf4' ( uniform texture2D) +0:16 Function Call: Func(I211; ( temp float) +0:16 'twf1' (layout( r32f) uniform image2D) +0:16 Function Call: Func(I21; ( temp 4-component vector of float) +0:16 'twf4' (layout( rgba32f) uniform image2D) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tf1' ( uniform texture2D) +0:? 'tf4' ( uniform texture2D) +0:? 'twf1' (layout( r32f) uniform image2D) +0:? 'twf4' (layout( rgba32f) uniform image2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: Func(t211; ( temp float) +0:8 Function Parameters: +0:8 'DummyTex' ( in texture2D) +0:? Sequence +0:8 Branch: Return with expression +0:8 Constant: +0:8 1.000000 +0:9 Function Definition: Func(t21; ( temp 4-component vector of float) +0:9 Function Parameters: +0:9 'DummyTex' ( in texture2D) +0:? Sequence +0:9 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:11 Function Definition: Func(I211; ( temp float) +0:11 Function Parameters: +0:11 'DummyTex' (layout( r32f) in image2D) +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 1.000000 +0:12 Function Definition: Func(I21; ( temp 4-component vector of float) +0:12 Function Parameters: +0:12 'DummyTex' (layout( rgba32f) in image2D) +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Function Definition: @main( ( temp 4-component vector of float) +0:15 Function Parameters: +0:? Sequence +0:16 Branch: Return with expression +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 add ( temp 4-component vector of float) +0:16 Function Call: Func(t211; ( temp float) +0:16 'tf1' ( uniform texture2D) +0:16 Function Call: Func(t21; ( temp 4-component vector of float) +0:16 'tf4' ( uniform texture2D) +0:16 Function Call: Func(I211; ( temp float) +0:16 'twf1' (layout( r32f) uniform image2D) +0:16 Function Call: Func(I21; ( temp 4-component vector of float) +0:16 'twf4' (layout( rgba32f) uniform image2D) +0:15 Function Definition: main( ( temp void) +0:15 Function Parameters: +0:? Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:15 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? 'tf1' ( uniform texture2D) +0:? 'tf4' ( uniform texture2D) +0:? 'twf1' (layout( r32f) uniform image2D) +0:? 'twf4' (layout( rgba32f) uniform image2D) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 73 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 71 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "Func(t211;" + Name 10 "DummyTex" + Name 16 "Func(t21;" + Name 15 "DummyTex" + Name 22 "Func(I211;" + Name 21 "DummyTex" + Name 28 "Func(I21;" + Name 27 "DummyTex" + Name 31 "@main(" + Name 45 "tf1" + Name 46 "param" + Name 49 "tf4" + Name 50 "param" + Name 56 "twf1" + Name 57 "param" + Name 63 "twf4" + Name 64 "param" + Name 71 "@entryPointOutput" + Decorate 45(tf1) DescriptorSet 0 + Decorate 49(tf4) DescriptorSet 0 + Decorate 56(twf1) DescriptorSet 0 + Decorate 63(twf4) DescriptorSet 0 + Decorate 71(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D sampled format:Unknown + 8: TypePointer Function 7 + 9: TypeFunction 6(float) 8(ptr) + 13: TypeVector 6(float) 4 + 14: TypeFunction 13(fvec4) 8(ptr) + 18: TypeImage 6(float) 2D nonsampled format:R32f + 19: TypePointer Function 18 + 20: TypeFunction 6(float) 19(ptr) + 24: TypeImage 6(float) 2D nonsampled format:Rgba32f + 25: TypePointer Function 24 + 26: TypeFunction 13(fvec4) 25(ptr) + 30: TypeFunction 13(fvec4) + 33: 6(float) Constant 1065353216 + 36: 6(float) Constant 0 + 37: 13(fvec4) ConstantComposite 36 36 36 36 + 44: TypePointer UniformConstant 7 + 45(tf1): 44(ptr) Variable UniformConstant + 49(tf4): 44(ptr) Variable UniformConstant + 55: TypePointer UniformConstant 18 + 56(twf1): 55(ptr) Variable UniformConstant + 62: TypePointer UniformConstant 24 + 63(twf4): 62(ptr) Variable UniformConstant + 70: TypePointer Output 13(fvec4) +71(@entryPointOutput): 70(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 72: 13(fvec4) FunctionCall 31(@main() + Store 71(@entryPointOutput) 72 + Return + FunctionEnd + 11(Func(t211;): 6(float) Function None 9 + 10(DummyTex): 8(ptr) FunctionParameter + 12: Label + ReturnValue 33 + FunctionEnd + 16(Func(t21;): 13(fvec4) Function None 14 + 15(DummyTex): 8(ptr) FunctionParameter + 17: Label + ReturnValue 37 + FunctionEnd + 22(Func(I211;): 6(float) Function None 20 + 21(DummyTex): 19(ptr) FunctionParameter + 23: Label + ReturnValue 33 + FunctionEnd + 28(Func(I21;): 13(fvec4) Function None 26 + 27(DummyTex): 25(ptr) FunctionParameter + 29: Label + ReturnValue 37 + FunctionEnd + 31(@main(): 13(fvec4) Function None 30 + 32: Label + 46(param): 8(ptr) Variable Function + 50(param): 8(ptr) Variable Function + 57(param): 19(ptr) Variable Function + 64(param): 25(ptr) Variable Function + 47: 7 Load 45(tf1) + Store 46(param) 47 + 48: 6(float) FunctionCall 11(Func(t211;) 46(param) + 51: 7 Load 49(tf4) + Store 50(param) 51 + 52: 13(fvec4) FunctionCall 16(Func(t21;) 50(param) + 53: 13(fvec4) CompositeConstruct 48 48 48 48 + 54: 13(fvec4) FAdd 53 52 + 58: 18 Load 56(twf1) + Store 57(param) 58 + 59: 6(float) FunctionCall 22(Func(I211;) 57(param) + 60: 13(fvec4) CompositeConstruct 59 59 59 59 + 61: 13(fvec4) FAdd 54 60 + 65: 24 Load 63(twf4) + Store 64(param) 65 + 66: 13(fvec4) FunctionCall 28(Func(I21;) 64(param) + 67: 13(fvec4) FAdd 61 66 + ReturnValue 67 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.type.half.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.type.half.frag.out new file mode 100644 index 0000000000..6b5a945b9d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.type.half.frag.out @@ -0,0 +1,254 @@ +hlsl.type.half.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp float) +0:4 'h0' ( temp float) +0:4 Constant: +0:4 0.000000 +0:5 Sequence +0:5 move second child to first child ( temp 1-component vector of float) +0:5 'h1' ( temp 1-component vector of float) +0:5 Constant: +0:5 1.000000 +0:6 Sequence +0:6 move second child to first child ( temp 2-component vector of float) +0:6 'h2' ( temp 2-component vector of float) +0:6 Constant: +0:6 2.000000 +0:6 2.000000 +0:7 Sequence +0:7 move second child to first child ( temp 3-component vector of float) +0:7 'h3' ( temp 3-component vector of float) +0:7 Constant: +0:7 3.000000 +0:7 3.000000 +0:7 3.000000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'h4' ( temp 4-component vector of float) +0:8 Constant: +0:8 4.000000 +0:8 4.000000 +0:8 4.000000 +0:8 4.000000 +0:15 Sequence +0:15 move second child to first child ( temp 2X2 matrix of float) +0:15 'h22' ( temp 2X2 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Sequence +0:16 move second child to first child ( temp 2X3 matrix of float) +0:16 'h23' ( temp 2X3 matrix of float) +0:16 Constant: +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:27 Branch: Return with expression +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 add ( temp float) +0:27 add ( temp float) +0:27 direct index ( temp float) +0:27 direct index ( temp 3-component vector of float) +0:27 'h23' ( temp 2X3 matrix of float) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp float) +0:27 'h4' ( temp 4-component vector of float) +0:27 Constant: +0:27 1 (const int) +0:27 'h0' ( temp float) +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: @main( ( temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child ( temp float) +0:4 'h0' ( temp float) +0:4 Constant: +0:4 0.000000 +0:5 Sequence +0:5 move second child to first child ( temp 1-component vector of float) +0:5 'h1' ( temp 1-component vector of float) +0:5 Constant: +0:5 1.000000 +0:6 Sequence +0:6 move second child to first child ( temp 2-component vector of float) +0:6 'h2' ( temp 2-component vector of float) +0:6 Constant: +0:6 2.000000 +0:6 2.000000 +0:7 Sequence +0:7 move second child to first child ( temp 3-component vector of float) +0:7 'h3' ( temp 3-component vector of float) +0:7 Constant: +0:7 3.000000 +0:7 3.000000 +0:7 3.000000 +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'h4' ( temp 4-component vector of float) +0:8 Constant: +0:8 4.000000 +0:8 4.000000 +0:8 4.000000 +0:8 4.000000 +0:15 Sequence +0:15 move second child to first child ( temp 2X2 matrix of float) +0:15 'h22' ( temp 2X2 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Sequence +0:16 move second child to first child ( temp 2X3 matrix of float) +0:16 'h23' ( temp 2X3 matrix of float) +0:16 Constant: +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:16 4.900000 +0:27 Branch: Return with expression +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 add ( temp float) +0:27 add ( temp float) +0:27 direct index ( temp float) +0:27 direct index ( temp 3-component vector of float) +0:27 'h23' ( temp 2X3 matrix of float) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 0 (const int) +0:27 direct index ( temp float) +0:27 'h4' ( temp 4-component vector of float) +0:27 Constant: +0:27 1 (const int) +0:27 'h0' ( temp float) +0:3 Function Definition: main( ( temp void) +0:3 Function Parameters: +0:? Sequence +0:3 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:3 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 60 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "h0" + Name 14 "h1" + Name 18 "h2" + Name 23 "h3" + Name 27 "h4" + Name 32 "h22" + Name 38 "h23" + Name 58 "@entryPointOutput" + Decorate 58(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 6(float) + 13: 6(float) Constant 0 + 15: 6(float) Constant 1065353216 + 16: TypeVector 6(float) 2 + 17: TypePointer Function 16(fvec2) + 19: 6(float) Constant 1073741824 + 20: 16(fvec2) ConstantComposite 19 19 + 21: TypeVector 6(float) 3 + 22: TypePointer Function 21(fvec3) + 24: 6(float) Constant 1077936128 + 25: 21(fvec3) ConstantComposite 24 24 24 + 26: TypePointer Function 7(fvec4) + 28: 6(float) Constant 1082130432 + 29: 7(fvec4) ConstantComposite 28 28 28 28 + 30: TypeMatrix 16(fvec2) 2 + 31: TypePointer Function 30 + 33: 16(fvec2) ConstantComposite 15 19 + 34: 16(fvec2) ConstantComposite 24 28 + 35: 30 ConstantComposite 33 34 + 36: TypeMatrix 21(fvec3) 2 + 37: TypePointer Function 36 + 39: 6(float) Constant 1084017869 + 40: 21(fvec3) ConstantComposite 39 39 39 + 41: 36 ConstantComposite 40 40 + 42: TypeInt 32 1 + 43: 42(int) Constant 0 + 44: TypeInt 32 0 + 45: 44(int) Constant 0 + 48: 44(int) Constant 1 + 57: TypePointer Output 7(fvec4) +58(@entryPointOutput): 57(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 59: 7(fvec4) FunctionCall 9(@main() + Store 58(@entryPointOutput) 59 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(h0): 11(ptr) Variable Function + 14(h1): 11(ptr) Variable Function + 18(h2): 17(ptr) Variable Function + 23(h3): 22(ptr) Variable Function + 27(h4): 26(ptr) Variable Function + 32(h22): 31(ptr) Variable Function + 38(h23): 37(ptr) Variable Function + Store 12(h0) 13 + Store 14(h1) 15 + Store 18(h2) 20 + Store 23(h3) 25 + Store 27(h4) 29 + Store 32(h22) 35 + Store 38(h23) 41 + 46: 11(ptr) AccessChain 38(h23) 43 45 + 47: 6(float) Load 46 + 49: 11(ptr) AccessChain 27(h4) 48 + 50: 6(float) Load 49 + 51: 6(float) FAdd 47 50 + 52: 6(float) Load 12(h0) + 53: 6(float) FAdd 51 52 + 54: 7(fvec4) CompositeConstruct 53 53 53 53 + ReturnValue 54 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.type.identifier.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.type.identifier.frag.out new file mode 100644 index 0000000000..2eaa2ae461 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.type.identifier.frag.out @@ -0,0 +1,436 @@ +hlsl.type.identifier.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: fn(f1; ( temp float) +0:6 Function Parameters: +0:6 'float' ( in float) +0:? Sequence +0:6 Branch: Return with expression +0:6 'float' ( in float) +0:9 Function Definition: @main( ( temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp float) +0:10 'float' ( temp float) +0:10 Constant: +0:10 7.000000 +0:11 Sequence +0:11 move second child to first child ( temp 2-element array of bool) +0:11 'bool' ( temp 2-element array of bool) +0:11 Construct bool ( temp 2-element array of bool) +0:11 Convert float to bool ( temp bool) +0:11 'float' ( temp float) +0:11 Convert float to bool ( temp bool) +0:11 'float' ( temp float) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'int' ( temp int) +0:12 Convert bool to int ( temp int) +0:12 direct index ( temp bool) +0:12 'bool' ( temp 2-element array of bool) +0:12 Constant: +0:12 1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp uint) +0:13 'uint' ( temp uint) +0:13 Convert float to uint ( temp uint) +0:13 add ( temp float) +0:13 'float' ( temp float) +0:13 Convert int to float ( temp float) +0:13 'int' ( temp int) +0:14 Sequence +0:14 move second child to first child ( temp mediump float) +0:14 'min16float' ( temp mediump float) +0:14 Convert uint to float ( temp mediump float) +0:14 'uint' ( temp mediump uint) +0:15 Sequence +0:15 move second child to first child ( temp mediump float) +0:15 'min10float' ( temp mediump float) +0:15 'min16float' ( temp mediump float) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'half' ( temp float) +0:16 Constant: +0:16 0.500000 +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 float: direct index for structure ( temp float) +0:20 'float' ( temp structure{ temp float float}) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 42.000000 +0:23 move second child to first child ( temp bool) +0:23 direct index ( temp bool) +0:23 'bool' ( temp 2-element array of bool) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp bool) +0:23 'bool' ( temp 2-element array of bool) +0:23 Constant: +0:23 1 (const int) +0:25 move second child to first child ( temp mediump float) +0:25 'float' ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 'float' ( temp mediump float) +0:25 Convert int to float ( temp mediump float) +0:25 'int' ( temp mediump int) +0:25 Convert uint to float ( temp mediump float) +0:25 'uint' ( temp mediump uint) +0:25 'min16float' ( temp mediump float) +0:25 'min10float' ( temp mediump float) +0:25 Test condition and select ( temp mediump float): no shortcircuit +0:25 Condition +0:25 direct index ( temp bool) +0:25 'bool' ( temp 2-element array of bool) +0:25 Constant: +0:25 0 (const int) +0:25 true case +0:25 Convert int to float ( temp mediump float) +0:25 'int' ( temp mediump int) +0:25 false case +0:25 'float' ( temp mediump float) +0:25 Function Call: fn(f1; ( temp mediump float) +0:25 'float' ( temp mediump float) +0:28 move second child to first child ( temp float) +0:28 direct index ( temp float) +0:28 direct index ( temp 3-component vector of float) +0:28 'half2x3' ( temp 2X3 matrix of float) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 component-wise multiply ( temp float) +0:28 'float' ( temp float) +0:28 'float' ( temp float) +0:30 Branch: Return with expression +0:30 Construct vec4 ( temp 4-component vector of float) +0:30 add ( temp float) +0:30 'float' ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'half2x3' ( temp 2X3 matrix of float) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 0 (const int) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:9 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:6 Function Definition: fn(f1; ( temp float) +0:6 Function Parameters: +0:6 'float' ( in float) +0:? Sequence +0:6 Branch: Return with expression +0:6 'float' ( in float) +0:9 Function Definition: @main( ( temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp float) +0:10 'float' ( temp float) +0:10 Constant: +0:10 7.000000 +0:11 Sequence +0:11 move second child to first child ( temp 2-element array of bool) +0:11 'bool' ( temp 2-element array of bool) +0:11 Construct bool ( temp 2-element array of bool) +0:11 Convert float to bool ( temp bool) +0:11 'float' ( temp float) +0:11 Convert float to bool ( temp bool) +0:11 'float' ( temp float) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'int' ( temp int) +0:12 Convert bool to int ( temp int) +0:12 direct index ( temp bool) +0:12 'bool' ( temp 2-element array of bool) +0:12 Constant: +0:12 1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp uint) +0:13 'uint' ( temp uint) +0:13 Convert float to uint ( temp uint) +0:13 add ( temp float) +0:13 'float' ( temp float) +0:13 Convert int to float ( temp float) +0:13 'int' ( temp int) +0:14 Sequence +0:14 move second child to first child ( temp mediump float) +0:14 'min16float' ( temp mediump float) +0:14 Convert uint to float ( temp mediump float) +0:14 'uint' ( temp mediump uint) +0:15 Sequence +0:15 move second child to first child ( temp mediump float) +0:15 'min10float' ( temp mediump float) +0:15 'min16float' ( temp mediump float) +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'half' ( temp float) +0:16 Constant: +0:16 0.500000 +0:? Sequence +0:20 move second child to first child ( temp float) +0:20 float: direct index for structure ( temp float) +0:20 'float' ( temp structure{ temp float float}) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 42.000000 +0:23 move second child to first child ( temp bool) +0:23 direct index ( temp bool) +0:23 'bool' ( temp 2-element array of bool) +0:23 Constant: +0:23 0 (const int) +0:23 direct index ( temp bool) +0:23 'bool' ( temp 2-element array of bool) +0:23 Constant: +0:23 1 (const int) +0:25 move second child to first child ( temp mediump float) +0:25 'float' ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 add ( temp mediump float) +0:25 'float' ( temp mediump float) +0:25 Convert int to float ( temp mediump float) +0:25 'int' ( temp mediump int) +0:25 Convert uint to float ( temp mediump float) +0:25 'uint' ( temp mediump uint) +0:25 'min16float' ( temp mediump float) +0:25 'min10float' ( temp mediump float) +0:25 Test condition and select ( temp mediump float): no shortcircuit +0:25 Condition +0:25 direct index ( temp bool) +0:25 'bool' ( temp 2-element array of bool) +0:25 Constant: +0:25 0 (const int) +0:25 true case +0:25 Convert int to float ( temp mediump float) +0:25 'int' ( temp mediump int) +0:25 false case +0:25 'float' ( temp mediump float) +0:25 Function Call: fn(f1; ( temp mediump float) +0:25 'float' ( temp mediump float) +0:28 move second child to first child ( temp float) +0:28 direct index ( temp float) +0:28 direct index ( temp 3-component vector of float) +0:28 'half2x3' ( temp 2X3 matrix of float) +0:28 Constant: +0:28 0 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 component-wise multiply ( temp float) +0:28 'float' ( temp float) +0:28 'float' ( temp float) +0:30 Branch: Return with expression +0:30 Construct vec4 ( temp 4-component vector of float) +0:30 add ( temp float) +0:30 'float' ( temp float) +0:30 direct index ( temp float) +0:30 direct index ( temp 3-component vector of float) +0:30 'half2x3' ( temp 2X3 matrix of float) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 0 (const int) +0:9 Function Definition: main( ( temp void) +0:9 Function Parameters: +0:? Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:9 Function Call: @main( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 105 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 103 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 10 "fn(f1;" + Name 9 "float" + Name 14 "@main(" + Name 19 "float" + Name 26 "bool" + Name 35 "int" + Name 43 "uint" + Name 49 "min16float" + Name 52 "min10float" + Name 54 "half" + Name 56 "foo_t" + MemberName 56(foo_t) 0 "float" + Name 58 "float" + Name 82 "param" + Name 89 "half2x3" + Name 103 "@entryPointOutput" + Decorate 49(min16float) RelaxedPrecision + Decorate 50 RelaxedPrecision + Decorate 51 RelaxedPrecision + Decorate 52(min10float) RelaxedPrecision + Decorate 53 RelaxedPrecision + Decorate 64 RelaxedPrecision + Decorate 65 RelaxedPrecision + Decorate 66 RelaxedPrecision + Decorate 67 RelaxedPrecision + Decorate 68 RelaxedPrecision + Decorate 69 RelaxedPrecision + Decorate 70 RelaxedPrecision + Decorate 71 RelaxedPrecision + Decorate 72 RelaxedPrecision + Decorate 73 RelaxedPrecision + Decorate 74 RelaxedPrecision + Decorate 77 RelaxedPrecision + Decorate 78 RelaxedPrecision + Decorate 79 RelaxedPrecision + Decorate 81 RelaxedPrecision + Decorate 83 RelaxedPrecision + Decorate 84 RelaxedPrecision + Decorate 85 RelaxedPrecision + Decorate 103(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) + 12: TypeVector 6(float) 4 + 13: TypeFunction 12(fvec4) + 20: 6(float) Constant 1088421888 + 21: TypeBool + 22: TypeInt 32 0 + 23: 22(int) Constant 2 + 24: TypeArray 21(bool) 23 + 25: TypePointer Function 24 + 28: 6(float) Constant 0 + 33: TypeInt 32 1 + 34: TypePointer Function 33(int) + 36: 33(int) Constant 1 + 37: TypePointer Function 21(bool) + 40: 33(int) Constant 0 + 42: TypePointer Function 22(int) + 55: 6(float) Constant 1056964608 + 56(foo_t): TypeStruct 6(float) + 57: TypePointer Function 56(foo_t) + 59: 6(float) Constant 1109917696 + 86: TypeVector 6(float) 3 + 87: TypeMatrix 86(fvec3) 2 + 88: TypePointer Function 87 + 93: 22(int) Constant 0 + 102: TypePointer Output 12(fvec4) +103(@entryPointOutput): 102(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 104: 12(fvec4) FunctionCall 14(@main() + Store 103(@entryPointOutput) 104 + Return + FunctionEnd + 10(fn(f1;): 6(float) Function None 8 + 9(float): 7(ptr) FunctionParameter + 11: Label + 16: 6(float) Load 9(float) + ReturnValue 16 + FunctionEnd + 14(@main(): 12(fvec4) Function None 13 + 15: Label + 19(float): 7(ptr) Variable Function + 26(bool): 25(ptr) Variable Function + 35(int): 34(ptr) Variable Function + 43(uint): 42(ptr) Variable Function + 49(min16float): 7(ptr) Variable Function + 52(min10float): 7(ptr) Variable Function + 54(half): 7(ptr) Variable Function + 58(float): 57(ptr) Variable Function + 82(param): 7(ptr) Variable Function + 89(half2x3): 88(ptr) Variable Function + Store 19(float) 20 + 27: 6(float) Load 19(float) + 29: 21(bool) FOrdNotEqual 27 28 + 30: 6(float) Load 19(float) + 31: 21(bool) FOrdNotEqual 30 28 + 32: 24 CompositeConstruct 29 31 + Store 26(bool) 32 + 38: 37(ptr) AccessChain 26(bool) 36 + 39: 21(bool) Load 38 + 41: 33(int) Select 39 36 40 + Store 35(int) 41 + 44: 6(float) Load 19(float) + 45: 33(int) Load 35(int) + 46: 6(float) ConvertSToF 45 + 47: 6(float) FAdd 44 46 + 48: 22(int) ConvertFToU 47 + Store 43(uint) 48 + 50: 22(int) Load 43(uint) + 51: 6(float) ConvertUToF 50 + Store 49(min16float) 51 + 53: 6(float) Load 49(min16float) + Store 52(min10float) 53 + Store 54(half) 55 + 60: 7(ptr) AccessChain 58(float) 40 + Store 60 59 + 61: 37(ptr) AccessChain 26(bool) 36 + 62: 21(bool) Load 61 + 63: 37(ptr) AccessChain 26(bool) 40 + Store 63 62 + 64: 6(float) Load 19(float) + 65: 33(int) Load 35(int) + 66: 6(float) ConvertSToF 65 + 67: 6(float) FAdd 64 66 + 68: 22(int) Load 43(uint) + 69: 6(float) ConvertUToF 68 + 70: 6(float) FAdd 67 69 + 71: 6(float) Load 49(min16float) + 72: 6(float) FAdd 70 71 + 73: 6(float) Load 52(min10float) + 74: 6(float) FAdd 72 73 + 75: 37(ptr) AccessChain 26(bool) 40 + 76: 21(bool) Load 75 + 77: 33(int) Load 35(int) + 78: 6(float) ConvertSToF 77 + 79: 6(float) Load 19(float) + 80: 6(float) Select 76 78 79 + 81: 6(float) FAdd 74 80 + 83: 6(float) Load 19(float) + Store 82(param) 83 + 84: 6(float) FunctionCall 10(fn(f1;) 82(param) + 85: 6(float) FAdd 81 84 + Store 19(float) 85 + 90: 6(float) Load 19(float) + 91: 6(float) Load 19(float) + 92: 6(float) FMul 90 91 + 94: 7(ptr) AccessChain 89(half2x3) 40 93 + Store 94 92 + 95: 6(float) Load 19(float) + 96: 7(ptr) AccessChain 89(half2x3) 40 93 + 97: 6(float) Load 96 + 98: 6(float) FAdd 95 97 + 99: 12(fvec4) CompositeConstruct 98 98 98 98 + ReturnValue 99 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out new file mode 100644 index 0000000000..c0c7227b4f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out @@ -0,0 +1,128 @@ +hlsl.typeGraphCopy.vert +Shader version: 500 +0:? Sequence +0:22 Function Definition: @main( ( temp float) +0:22 Function Parameters: +0:? Sequence +0:23 Branch: Return with expression +0:23 b: direct index for structure ( temp float) +0:23 s2: direct index for structure ( temp structure{ temp int a, temp float b}) +0:23 t3: direct index for structure ( temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2}) +0:23 foo: direct index for structure ( uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3}) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) +0:23 Constant: +0:23 0 (const uint) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 1 (const int) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:22 Function Call: @main( ( temp float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) +0:? '@entryPointOutput' (layout( location=0) out float) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:22 Function Definition: @main( ( temp float) +0:22 Function Parameters: +0:? Sequence +0:23 Branch: Return with expression +0:23 b: direct index for structure ( temp float) +0:23 s2: direct index for structure ( temp structure{ temp int a, temp float b}) +0:23 t3: direct index for structure ( temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2}) +0:23 foo: direct index for structure ( uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3}) +0:23 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) +0:23 Constant: +0:23 0 (const uint) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 1 (const int) +0:22 Function Definition: main( ( temp void) +0:22 Function Parameters: +0:? Sequence +0:22 move second child to first child ( temp float) +0:? '@entryPointOutput' (layout( location=0) out float) +0:22 Function Call: @main( ( temp float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t1, temp structure{ temp int a, temp float b} t2, temp structure{ temp structure{ temp int a, temp float b} s1, temp structure{ temp int a, temp float b} s2} t3} foo}) +0:? '@entryPointOutput' (layout( location=0) out float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 28 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 26 + Source HLSL 500 + Name 4 "main" + Name 8 "@main(" + Name 11 "N1" + MemberName 11(N1) 0 "a" + MemberName 11(N1) 1 "b" + Name 12 "N2" + MemberName 12(N2) 0 "s1" + MemberName 12(N2) 1 "s2" + Name 13 "N3" + MemberName 13(N3) 0 "t1" + MemberName 13(N3) 1 "t2" + MemberName 13(N3) 2 "t3" + Name 14 "$Global" + MemberName 14($Global) 0 "foo" + Name 16 "" + Name 26 "@entryPointOutput" + MemberDecorate 11(N1) 0 Offset 0 + MemberDecorate 11(N1) 1 Offset 4 + MemberDecorate 12(N2) 0 Offset 0 + MemberDecorate 12(N2) 1 Offset 16 + MemberDecorate 13(N3) 0 Offset 0 + MemberDecorate 13(N3) 1 Offset 32 + MemberDecorate 13(N3) 2 Offset 48 + MemberDecorate 14($Global) 0 Offset 0 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 26(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypeInt 32 1 + 11(N1): TypeStruct 10(int) 6(float) + 12(N2): TypeStruct 11(N1) 11(N1) + 13(N3): TypeStruct 12(N2) 11(N1) 12(N2) + 14($Global): TypeStruct 13(N3) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 10(int) Constant 0 + 18: 10(int) Constant 2 + 19: 10(int) Constant 1 + 20: TypePointer Uniform 6(float) + 25: TypePointer Output 6(float) +26(@entryPointOutput): 25(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 27: 6(float) FunctionCall 8(@main() + Store 26(@entryPointOutput) 27 + Return + FunctionEnd + 8(@main(): 6(float) Function None 7 + 9: Label + 21: 20(ptr) AccessChain 16 17 18 19 19 + 22: 6(float) Load 21 + ReturnValue 22 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out new file mode 100644 index 0000000000..11fd10741a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.typedef.frag.out @@ -0,0 +1,134 @@ +hlsl.typedef.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'input' ( in 4-component vector of float) +0:4 'ii' ( in int) +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 ( uniform 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: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float) +0:4 Function Parameters: +0:4 'input' ( in 4-component vector of float) +0:4 'ii' ( in int) +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 ( uniform 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): 80007 +// 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 500 + 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 + Return + 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/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out new file mode 100644 index 0000000000..30edd633c8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.void.frag.out @@ -0,0 +1,108 @@ +hlsl.void.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Function Definition: foo1( ( temp void) +0:1 Function Parameters: +0:2 Function Definition: foo2( ( temp void) +0:2 Function Parameters: +0:5 Function Definition: @PixelShaderFunction(vf4; ( temp void) +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:8 Branch: Return +0:5 Function Definition: PixelShaderFunction( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:5 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:1 Function Definition: foo1( ( temp void) +0:1 Function Parameters: +0:2 Function Definition: foo2( ( temp void) +0:2 Function Parameters: +0:5 Function Definition: @PixelShaderFunction(vf4; ( temp void) +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:8 Branch: Return +0:5 Function Definition: PixelShaderFunction( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:5 Function Call: @PixelShaderFunction(vf4; ( temp void) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 22 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 6 "foo1(" + Name 8 "foo2(" + Name 15 "@PixelShaderFunction(vf4;" + Name 14 "input" + Name 20 "input" + Name 22 "input" + Name 24 "param" + Decorate 22(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Function 11(fvec4) + 13: TypeFunction 2 12(ptr) + 21: TypePointer Input 11(fvec4) + 22(input): 21(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 20(input): 12(ptr) Variable Function + 24(param): 12(ptr) Variable Function + 23: 11(fvec4) Load 22(input) + Store 20(input) 23 + 25: 11(fvec4) Load 20(input) + Store 24(param) 25 + 26: 2 FunctionCall 15(@PixelShaderFunction(vf4;) 24(param) + Return + FunctionEnd + 6(foo1(): 2 Function None 3 + 7: Label + Return + FunctionEnd + 8(foo2(): 2 Function None 3 + 9: Label + Return + FunctionEnd +15(@PixelShaderFunction(vf4;): 2 Function None 13 + 14(input): 12(ptr) FunctionParameter + 16: Label + 17: 2 FunctionCall 6(foo1() + 18: 2 FunctionCall 8(foo2() + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out new file mode 100644 index 0000000000..0dfd9ef6be --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out @@ -0,0 +1,2731 @@ +hlsl.wavebroadcast.comp +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupShuffle ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 13 (const uint) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupShuffle ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 13 (const uint) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupShuffle ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 13 (const uint) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupShuffle ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 13 (const uint) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupShuffle ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const uint) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupShuffle ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 13 (const uint) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupShuffle ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 13 (const uint) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupShuffle ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 13 (const uint) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupShuffle ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 13 (const uint) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupShuffle ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 13 (const uint) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupShuffle ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 13 (const uint) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupShuffle ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 13 (const uint) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupBroadcastFirst ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupBroadcastFirst ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupBroadcastFirst ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupBroadcastFirst ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupBroadcastFirst ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupBroadcastFirst ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupBroadcastFirst ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupBroadcastFirst ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupBroadcastFirst ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupBroadcastFirst ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupBroadcastFirst ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupBroadcastFirst ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupBroadcastFirst ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupBroadcastFirst ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupBroadcastFirst ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupBroadcastFirst ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupBroadcastFirst ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupBroadcastFirst ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupBroadcastFirst ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupBroadcastFirst ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupShuffle ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 13 (const uint) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupShuffle ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 13 (const uint) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupShuffle ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 13 (const uint) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupShuffle ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 13 (const uint) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupShuffle ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const uint) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupShuffle ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 13 (const uint) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupShuffle ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 13 (const uint) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupShuffle ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 13 (const uint) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupShuffle ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 13 (const uint) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupShuffle ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 13 (const uint) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupShuffle ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 13 (const uint) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupShuffle ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 13 (const uint) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupBroadcastFirst ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupBroadcastFirst ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupBroadcastFirst ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupBroadcastFirst ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupBroadcastFirst ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupBroadcastFirst ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupBroadcastFirst ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupBroadcastFirst ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupBroadcastFirst ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupBroadcastFirst ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupBroadcastFirst ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupBroadcastFirst ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupBroadcastFirst ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupBroadcastFirst ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupBroadcastFirst ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupBroadcastFirst ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupBroadcastFirst ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupBroadcastFirst ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupBroadcastFirst ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupBroadcastFirst ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 359 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformBallot + Capability GroupNonUniformShuffle + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "CSMain" 354 + ExecutionMode 4 LocalSize 32 16 1 + Source HLSL 500 + Name 4 "CSMain" + Name 11 "@CSMain(vu3;" + Name 10 "dti" + Name 20 "Types" + MemberName 20(Types) 0 "u" + MemberName 20(Types) 1 "i" + MemberName 20(Types) 2 "f" + MemberName 20(Types) 3 "d" + Name 22 "data" + MemberName 22(data) 0 "@data" + Name 24 "data" + Name 352 "dti" + Name 354 "dti" + Name 356 "param" + MemberDecorate 20(Types) 0 Offset 0 + MemberDecorate 20(Types) 1 Offset 16 + MemberDecorate 20(Types) 2 Offset 32 + MemberDecorate 20(Types) 3 Offset 64 + Decorate 21 ArrayStride 96 + MemberDecorate 22(data) 0 Offset 0 + Decorate 22(data) BufferBlock + Decorate 24(data) DescriptorSet 0 + Decorate 354(dti) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeVector 6(int) 4 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 4 + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypeFloat 64 + 19: TypeVector 18(float64_t) 4 + 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) + 21: TypeRuntimeArray 20(Types) + 22(data): TypeStruct 21 + 23: TypePointer Uniform 22(data) + 24(data): 23(ptr) Variable Uniform + 25: 14(int) Constant 0 + 26: 6(int) Constant 0 + 27: TypePointer Function 6(int) + 32: TypePointer Uniform 13(ivec4) + 35: 6(int) Constant 13 + 36: 6(int) Constant 3 + 43: TypePointer Uniform 6(int) + 52: TypeVector 6(int) 2 + 73: 14(int) Constant 1 + 76: TypePointer Uniform 15(ivec4) + 85: TypePointer Uniform 14(int) + 94: TypeVector 14(int) 2 + 106: TypeVector 14(int) 3 + 116: 14(int) Constant 2 + 119: TypePointer Uniform 17(fvec4) + 128: TypePointer Uniform 16(float) + 137: TypeVector 16(float) 2 + 149: TypeVector 16(float) 3 + 159: 14(int) Constant 3 + 162: TypePointer Uniform 19(f64vec4) + 171: TypePointer Uniform 18(float64_t) + 180: TypeVector 18(float64_t) 2 + 192: TypeVector 18(float64_t) 3 + 353: TypePointer Input 7(ivec3) + 354(dti): 353(ptr) Variable Input + 4(CSMain): 2 Function None 3 + 5: Label + 352(dti): 8(ptr) Variable Function + 356(param): 8(ptr) Variable Function + 355: 7(ivec3) Load 354(dti) + Store 352(dti) 355 + 357: 7(ivec3) Load 352(dti) + Store 356(param) 357 + 358: 2 FunctionCall 11(@CSMain(vu3;) 356(param) + Return + FunctionEnd +11(@CSMain(vu3;): 2 Function None 9 + 10(dti): 8(ptr) FunctionParameter + 12: Label + 28: 27(ptr) AccessChain 10(dti) 26 + 29: 6(int) Load 28 + 30: 27(ptr) AccessChain 10(dti) 26 + 31: 6(int) Load 30 + 33: 32(ptr) AccessChain 24(data) 25 31 25 + 34: 13(ivec4) Load 33 + 37: 13(ivec4) GroupNonUniformShuffle 36 34 35 + 38: 32(ptr) AccessChain 24(data) 25 29 25 + Store 38 37 + 39: 27(ptr) AccessChain 10(dti) 26 + 40: 6(int) Load 39 + 41: 27(ptr) AccessChain 10(dti) 26 + 42: 6(int) Load 41 + 44: 43(ptr) AccessChain 24(data) 25 42 25 26 + 45: 6(int) Load 44 + 46: 6(int) GroupNonUniformShuffle 36 45 35 + 47: 43(ptr) AccessChain 24(data) 25 40 25 26 + Store 47 46 + 48: 27(ptr) AccessChain 10(dti) 26 + 49: 6(int) Load 48 + 50: 27(ptr) AccessChain 10(dti) 26 + 51: 6(int) Load 50 + 53: 32(ptr) AccessChain 24(data) 25 51 25 + 54: 13(ivec4) Load 53 + 55: 52(ivec2) VectorShuffle 54 54 0 1 + 56: 52(ivec2) GroupNonUniformShuffle 36 55 35 + 57: 32(ptr) AccessChain 24(data) 25 49 25 + 58: 13(ivec4) Load 57 + 59: 13(ivec4) VectorShuffle 58 56 4 5 2 3 + Store 57 59 + 60: 27(ptr) AccessChain 10(dti) 26 + 61: 6(int) Load 60 + 62: 27(ptr) AccessChain 10(dti) 26 + 63: 6(int) Load 62 + 64: 32(ptr) AccessChain 24(data) 25 63 25 + 65: 13(ivec4) Load 64 + 66: 7(ivec3) VectorShuffle 65 65 0 1 2 + 67: 7(ivec3) GroupNonUniformShuffle 36 66 35 + 68: 32(ptr) AccessChain 24(data) 25 61 25 + 69: 13(ivec4) Load 68 + 70: 13(ivec4) VectorShuffle 69 67 4 5 6 3 + Store 68 70 + 71: 27(ptr) AccessChain 10(dti) 26 + 72: 6(int) Load 71 + 74: 27(ptr) AccessChain 10(dti) 26 + 75: 6(int) Load 74 + 77: 76(ptr) AccessChain 24(data) 25 75 73 + 78: 15(ivec4) Load 77 + 79: 15(ivec4) GroupNonUniformShuffle 36 78 35 + 80: 76(ptr) AccessChain 24(data) 25 72 73 + Store 80 79 + 81: 27(ptr) AccessChain 10(dti) 26 + 82: 6(int) Load 81 + 83: 27(ptr) AccessChain 10(dti) 26 + 84: 6(int) Load 83 + 86: 85(ptr) AccessChain 24(data) 25 84 73 26 + 87: 14(int) Load 86 + 88: 14(int) GroupNonUniformShuffle 36 87 35 + 89: 85(ptr) AccessChain 24(data) 25 82 73 26 + Store 89 88 + 90: 27(ptr) AccessChain 10(dti) 26 + 91: 6(int) Load 90 + 92: 27(ptr) AccessChain 10(dti) 26 + 93: 6(int) Load 92 + 95: 76(ptr) AccessChain 24(data) 25 93 73 + 96: 15(ivec4) Load 95 + 97: 94(ivec2) VectorShuffle 96 96 0 1 + 98: 94(ivec2) GroupNonUniformShuffle 36 97 35 + 99: 76(ptr) AccessChain 24(data) 25 91 73 + 100: 15(ivec4) Load 99 + 101: 15(ivec4) VectorShuffle 100 98 4 5 2 3 + Store 99 101 + 102: 27(ptr) AccessChain 10(dti) 26 + 103: 6(int) Load 102 + 104: 27(ptr) AccessChain 10(dti) 26 + 105: 6(int) Load 104 + 107: 76(ptr) AccessChain 24(data) 25 105 73 + 108: 15(ivec4) Load 107 + 109: 106(ivec3) VectorShuffle 108 108 0 1 2 + 110: 106(ivec3) GroupNonUniformShuffle 36 109 35 + 111: 76(ptr) AccessChain 24(data) 25 103 73 + 112: 15(ivec4) Load 111 + 113: 15(ivec4) VectorShuffle 112 110 4 5 6 3 + Store 111 113 + 114: 27(ptr) AccessChain 10(dti) 26 + 115: 6(int) Load 114 + 117: 27(ptr) AccessChain 10(dti) 26 + 118: 6(int) Load 117 + 120: 119(ptr) AccessChain 24(data) 25 118 116 + 121: 17(fvec4) Load 120 + 122: 17(fvec4) GroupNonUniformShuffle 36 121 35 + 123: 119(ptr) AccessChain 24(data) 25 115 116 + Store 123 122 + 124: 27(ptr) AccessChain 10(dti) 26 + 125: 6(int) Load 124 + 126: 27(ptr) AccessChain 10(dti) 26 + 127: 6(int) Load 126 + 129: 128(ptr) AccessChain 24(data) 25 127 116 26 + 130: 16(float) Load 129 + 131: 16(float) GroupNonUniformShuffle 36 130 35 + 132: 128(ptr) AccessChain 24(data) 25 125 116 26 + Store 132 131 + 133: 27(ptr) AccessChain 10(dti) 26 + 134: 6(int) Load 133 + 135: 27(ptr) AccessChain 10(dti) 26 + 136: 6(int) Load 135 + 138: 119(ptr) AccessChain 24(data) 25 136 116 + 139: 17(fvec4) Load 138 + 140: 137(fvec2) VectorShuffle 139 139 0 1 + 141: 137(fvec2) GroupNonUniformShuffle 36 140 35 + 142: 119(ptr) AccessChain 24(data) 25 134 116 + 143: 17(fvec4) Load 142 + 144: 17(fvec4) VectorShuffle 143 141 4 5 2 3 + Store 142 144 + 145: 27(ptr) AccessChain 10(dti) 26 + 146: 6(int) Load 145 + 147: 27(ptr) AccessChain 10(dti) 26 + 148: 6(int) Load 147 + 150: 119(ptr) AccessChain 24(data) 25 148 116 + 151: 17(fvec4) Load 150 + 152: 149(fvec3) VectorShuffle 151 151 0 1 2 + 153: 149(fvec3) GroupNonUniformShuffle 36 152 35 + 154: 119(ptr) AccessChain 24(data) 25 146 116 + 155: 17(fvec4) Load 154 + 156: 17(fvec4) VectorShuffle 155 153 4 5 6 3 + Store 154 156 + 157: 27(ptr) AccessChain 10(dti) 26 + 158: 6(int) Load 157 + 160: 27(ptr) AccessChain 10(dti) 26 + 161: 6(int) Load 160 + 163: 162(ptr) AccessChain 24(data) 25 161 159 + 164: 19(f64vec4) Load 163 + 165: 19(f64vec4) GroupNonUniformBroadcastFirst 36 164 + 166: 162(ptr) AccessChain 24(data) 25 158 159 + Store 166 165 + 167: 27(ptr) AccessChain 10(dti) 26 + 168: 6(int) Load 167 + 169: 27(ptr) AccessChain 10(dti) 26 + 170: 6(int) Load 169 + 172: 171(ptr) AccessChain 24(data) 25 170 159 26 + 173:18(float64_t) Load 172 + 174:18(float64_t) GroupNonUniformBroadcastFirst 36 173 + 175: 171(ptr) AccessChain 24(data) 25 168 159 26 + Store 175 174 + 176: 27(ptr) AccessChain 10(dti) 26 + 177: 6(int) Load 176 + 178: 27(ptr) AccessChain 10(dti) 26 + 179: 6(int) Load 178 + 181: 162(ptr) AccessChain 24(data) 25 179 159 + 182: 19(f64vec4) Load 181 + 183:180(f64vec2) VectorShuffle 182 182 0 1 + 184:180(f64vec2) GroupNonUniformBroadcastFirst 36 183 + 185: 162(ptr) AccessChain 24(data) 25 177 159 + 186: 19(f64vec4) Load 185 + 187: 19(f64vec4) VectorShuffle 186 184 4 5 2 3 + Store 185 187 + 188: 27(ptr) AccessChain 10(dti) 26 + 189: 6(int) Load 188 + 190: 27(ptr) AccessChain 10(dti) 26 + 191: 6(int) Load 190 + 193: 162(ptr) AccessChain 24(data) 25 191 159 + 194: 19(f64vec4) Load 193 + 195:192(f64vec3) VectorShuffle 194 194 0 1 2 + 196:192(f64vec3) GroupNonUniformBroadcastFirst 36 195 + 197: 162(ptr) AccessChain 24(data) 25 189 159 + 198: 19(f64vec4) Load 197 + 199: 19(f64vec4) VectorShuffle 198 196 4 5 6 3 + Store 197 199 + 200: 27(ptr) AccessChain 10(dti) 26 + 201: 6(int) Load 200 + 202: 27(ptr) AccessChain 10(dti) 26 + 203: 6(int) Load 202 + 204: 32(ptr) AccessChain 24(data) 25 203 25 + 205: 13(ivec4) Load 204 + 206: 13(ivec4) GroupNonUniformBroadcastFirst 36 205 + 207: 32(ptr) AccessChain 24(data) 25 201 25 + Store 207 206 + 208: 27(ptr) AccessChain 10(dti) 26 + 209: 6(int) Load 208 + 210: 27(ptr) AccessChain 10(dti) 26 + 211: 6(int) Load 210 + 212: 43(ptr) AccessChain 24(data) 25 211 25 26 + 213: 6(int) Load 212 + 214: 6(int) GroupNonUniformBroadcastFirst 36 213 + 215: 43(ptr) AccessChain 24(data) 25 209 25 26 + Store 215 214 + 216: 27(ptr) AccessChain 10(dti) 26 + 217: 6(int) Load 216 + 218: 27(ptr) AccessChain 10(dti) 26 + 219: 6(int) Load 218 + 220: 32(ptr) AccessChain 24(data) 25 219 25 + 221: 13(ivec4) Load 220 + 222: 52(ivec2) VectorShuffle 221 221 0 1 + 223: 52(ivec2) GroupNonUniformBroadcastFirst 36 222 + 224: 32(ptr) AccessChain 24(data) 25 217 25 + 225: 13(ivec4) Load 224 + 226: 13(ivec4) VectorShuffle 225 223 4 5 2 3 + Store 224 226 + 227: 27(ptr) AccessChain 10(dti) 26 + 228: 6(int) Load 227 + 229: 27(ptr) AccessChain 10(dti) 26 + 230: 6(int) Load 229 + 231: 32(ptr) AccessChain 24(data) 25 230 25 + 232: 13(ivec4) Load 231 + 233: 7(ivec3) VectorShuffle 232 232 0 1 2 + 234: 7(ivec3) GroupNonUniformBroadcastFirst 36 233 + 235: 32(ptr) AccessChain 24(data) 25 228 25 + 236: 13(ivec4) Load 235 + 237: 13(ivec4) VectorShuffle 236 234 4 5 6 3 + Store 235 237 + 238: 27(ptr) AccessChain 10(dti) 26 + 239: 6(int) Load 238 + 240: 27(ptr) AccessChain 10(dti) 26 + 241: 6(int) Load 240 + 242: 76(ptr) AccessChain 24(data) 25 241 73 + 243: 15(ivec4) Load 242 + 244: 15(ivec4) GroupNonUniformBroadcastFirst 36 243 + 245: 76(ptr) AccessChain 24(data) 25 239 73 + Store 245 244 + 246: 27(ptr) AccessChain 10(dti) 26 + 247: 6(int) Load 246 + 248: 27(ptr) AccessChain 10(dti) 26 + 249: 6(int) Load 248 + 250: 85(ptr) AccessChain 24(data) 25 249 73 26 + 251: 14(int) Load 250 + 252: 14(int) GroupNonUniformBroadcastFirst 36 251 + 253: 85(ptr) AccessChain 24(data) 25 247 73 26 + Store 253 252 + 254: 27(ptr) AccessChain 10(dti) 26 + 255: 6(int) Load 254 + 256: 27(ptr) AccessChain 10(dti) 26 + 257: 6(int) Load 256 + 258: 76(ptr) AccessChain 24(data) 25 257 73 + 259: 15(ivec4) Load 258 + 260: 94(ivec2) VectorShuffle 259 259 0 1 + 261: 94(ivec2) GroupNonUniformBroadcastFirst 36 260 + 262: 76(ptr) AccessChain 24(data) 25 255 73 + 263: 15(ivec4) Load 262 + 264: 15(ivec4) VectorShuffle 263 261 4 5 2 3 + Store 262 264 + 265: 27(ptr) AccessChain 10(dti) 26 + 266: 6(int) Load 265 + 267: 27(ptr) AccessChain 10(dti) 26 + 268: 6(int) Load 267 + 269: 76(ptr) AccessChain 24(data) 25 268 73 + 270: 15(ivec4) Load 269 + 271: 106(ivec3) VectorShuffle 270 270 0 1 2 + 272: 106(ivec3) GroupNonUniformBroadcastFirst 36 271 + 273: 76(ptr) AccessChain 24(data) 25 266 73 + 274: 15(ivec4) Load 273 + 275: 15(ivec4) VectorShuffle 274 272 4 5 6 3 + Store 273 275 + 276: 27(ptr) AccessChain 10(dti) 26 + 277: 6(int) Load 276 + 278: 27(ptr) AccessChain 10(dti) 26 + 279: 6(int) Load 278 + 280: 119(ptr) AccessChain 24(data) 25 279 116 + 281: 17(fvec4) Load 280 + 282: 17(fvec4) GroupNonUniformBroadcastFirst 36 281 + 283: 119(ptr) AccessChain 24(data) 25 277 116 + Store 283 282 + 284: 27(ptr) AccessChain 10(dti) 26 + 285: 6(int) Load 284 + 286: 27(ptr) AccessChain 10(dti) 26 + 287: 6(int) Load 286 + 288: 128(ptr) AccessChain 24(data) 25 287 116 26 + 289: 16(float) Load 288 + 290: 16(float) GroupNonUniformBroadcastFirst 36 289 + 291: 128(ptr) AccessChain 24(data) 25 285 116 26 + Store 291 290 + 292: 27(ptr) AccessChain 10(dti) 26 + 293: 6(int) Load 292 + 294: 27(ptr) AccessChain 10(dti) 26 + 295: 6(int) Load 294 + 296: 119(ptr) AccessChain 24(data) 25 295 116 + 297: 17(fvec4) Load 296 + 298: 137(fvec2) VectorShuffle 297 297 0 1 + 299: 137(fvec2) GroupNonUniformBroadcastFirst 36 298 + 300: 119(ptr) AccessChain 24(data) 25 293 116 + 301: 17(fvec4) Load 300 + 302: 17(fvec4) VectorShuffle 301 299 4 5 2 3 + Store 300 302 + 303: 27(ptr) AccessChain 10(dti) 26 + 304: 6(int) Load 303 + 305: 27(ptr) AccessChain 10(dti) 26 + 306: 6(int) Load 305 + 307: 119(ptr) AccessChain 24(data) 25 306 116 + 308: 17(fvec4) Load 307 + 309: 149(fvec3) VectorShuffle 308 308 0 1 2 + 310: 149(fvec3) GroupNonUniformBroadcastFirst 36 309 + 311: 119(ptr) AccessChain 24(data) 25 304 116 + 312: 17(fvec4) Load 311 + 313: 17(fvec4) VectorShuffle 312 310 4 5 6 3 + Store 311 313 + 314: 27(ptr) AccessChain 10(dti) 26 + 315: 6(int) Load 314 + 316: 27(ptr) AccessChain 10(dti) 26 + 317: 6(int) Load 316 + 318: 162(ptr) AccessChain 24(data) 25 317 159 + 319: 19(f64vec4) Load 318 + 320: 19(f64vec4) GroupNonUniformBroadcastFirst 36 319 + 321: 162(ptr) AccessChain 24(data) 25 315 159 + Store 321 320 + 322: 27(ptr) AccessChain 10(dti) 26 + 323: 6(int) Load 322 + 324: 27(ptr) AccessChain 10(dti) 26 + 325: 6(int) Load 324 + 326: 171(ptr) AccessChain 24(data) 25 325 159 26 + 327:18(float64_t) Load 326 + 328:18(float64_t) GroupNonUniformBroadcastFirst 36 327 + 329: 171(ptr) AccessChain 24(data) 25 323 159 26 + Store 329 328 + 330: 27(ptr) AccessChain 10(dti) 26 + 331: 6(int) Load 330 + 332: 27(ptr) AccessChain 10(dti) 26 + 333: 6(int) Load 332 + 334: 162(ptr) AccessChain 24(data) 25 333 159 + 335: 19(f64vec4) Load 334 + 336:180(f64vec2) VectorShuffle 335 335 0 1 + 337:180(f64vec2) GroupNonUniformBroadcastFirst 36 336 + 338: 162(ptr) AccessChain 24(data) 25 331 159 + 339: 19(f64vec4) Load 338 + 340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3 + Store 338 340 + 341: 27(ptr) AccessChain 10(dti) 26 + 342: 6(int) Load 341 + 343: 27(ptr) AccessChain 10(dti) 26 + 344: 6(int) Load 343 + 345: 162(ptr) AccessChain 24(data) 25 344 159 + 346: 19(f64vec4) Load 345 + 347:192(f64vec3) VectorShuffle 346 346 0 1 2 + 348:192(f64vec3) GroupNonUniformBroadcastFirst 36 347 + 349: 162(ptr) AccessChain 24(data) 25 342 159 + 350: 19(f64vec4) Load 349 + 351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3 + Store 349 351 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.waveprefix.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.waveprefix.comp.out new file mode 100644 index 0000000000..9736b4e0e8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.waveprefix.comp.out @@ -0,0 +1,2766 @@ +hlsl.waveprefix.comp +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupInclusiveAdd ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupInclusiveAdd ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupInclusiveAdd ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupInclusiveAdd ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupInclusiveAdd ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupInclusiveAdd ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupInclusiveAdd ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupInclusiveAdd ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupInclusiveAdd ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupInclusiveAdd ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupInclusiveAdd ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupInclusiveAdd ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupInclusiveAdd ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupInclusiveAdd ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupInclusiveAdd ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupInclusiveAdd ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupInclusiveMul ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupInclusiveMul ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupInclusiveMul ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupInclusiveMul ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupInclusiveMul ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupInclusiveMul ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupInclusiveMul ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupInclusiveMul ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupInclusiveMul ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupInclusiveMul ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupInclusiveMul ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupInclusiveMul ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupInclusiveMul ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupInclusiveMul ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupInclusiveMul ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupInclusiveMul ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:54 move second child to first child ( temp uint) +0:54 direct index ( temp uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 subgroupBallotInclusiveBitCount ( temp uint) +0:54 subgroupBallot ( temp 4-component vector of uint) +0:54 Compare Equal ( temp bool) +0:54 direct index ( temp uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const uint) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupInclusiveAdd ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupInclusiveAdd ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupInclusiveAdd ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupInclusiveAdd ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupInclusiveAdd ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupInclusiveAdd ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupInclusiveAdd ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupInclusiveAdd ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupInclusiveAdd ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupInclusiveAdd ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupInclusiveAdd ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupInclusiveAdd ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupInclusiveAdd ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupInclusiveAdd ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupInclusiveAdd ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupInclusiveAdd ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupInclusiveMul ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupInclusiveMul ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupInclusiveMul ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupInclusiveMul ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupInclusiveMul ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupInclusiveMul ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupInclusiveMul ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupInclusiveMul ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupInclusiveMul ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupInclusiveMul ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupInclusiveMul ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupInclusiveMul ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupInclusiveMul ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupInclusiveMul ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupInclusiveMul ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupInclusiveMul ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:54 move second child to first child ( temp uint) +0:54 direct index ( temp uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 subgroupBallotInclusiveBitCount ( temp uint) +0:54 subgroupBallot ( temp 4-component vector of uint) +0:54 Compare Equal ( temp bool) +0:54 direct index ( temp uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const uint) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 369 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformArithmetic + Capability GroupNonUniformBallot + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "CSMain" 364 + ExecutionMode 4 LocalSize 32 16 1 + Source HLSL 500 + Name 4 "CSMain" + Name 11 "@CSMain(vu3;" + Name 10 "dti" + Name 20 "Types" + MemberName 20(Types) 0 "u" + MemberName 20(Types) 1 "i" + MemberName 20(Types) 2 "f" + MemberName 20(Types) 3 "d" + Name 22 "data" + MemberName 22(data) 0 "@data" + Name 24 "data" + Name 362 "dti" + Name 364 "dti" + Name 366 "param" + MemberDecorate 20(Types) 0 Offset 0 + MemberDecorate 20(Types) 1 Offset 16 + MemberDecorate 20(Types) 2 Offset 32 + MemberDecorate 20(Types) 3 Offset 64 + Decorate 21 ArrayStride 96 + MemberDecorate 22(data) 0 Offset 0 + Decorate 22(data) BufferBlock + Decorate 24(data) DescriptorSet 0 + Decorate 364(dti) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeVector 6(int) 4 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 4 + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypeFloat 64 + 19: TypeVector 18(float64_t) 4 + 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) + 21: TypeRuntimeArray 20(Types) + 22(data): TypeStruct 21 + 23: TypePointer Uniform 22(data) + 24(data): 23(ptr) Variable Uniform + 25: 14(int) Constant 0 + 26: 6(int) Constant 0 + 27: TypePointer Function 6(int) + 32: TypePointer Uniform 13(ivec4) + 35: 6(int) Constant 3 + 42: TypePointer Uniform 6(int) + 51: TypeVector 6(int) 2 + 72: 14(int) Constant 1 + 75: TypePointer Uniform 15(ivec4) + 84: TypePointer Uniform 14(int) + 93: TypeVector 14(int) 2 + 105: TypeVector 14(int) 3 + 115: 14(int) Constant 2 + 118: TypePointer Uniform 17(fvec4) + 127: TypePointer Uniform 16(float) + 136: TypeVector 16(float) 2 + 148: TypeVector 16(float) 3 + 158: 14(int) Constant 3 + 161: TypePointer Uniform 19(f64vec4) + 170: TypePointer Uniform 18(float64_t) + 179: TypeVector 18(float64_t) 2 + 191: TypeVector 18(float64_t) 3 + 357: TypeBool + 363: TypePointer Input 7(ivec3) + 364(dti): 363(ptr) Variable Input + 4(CSMain): 2 Function None 3 + 5: Label + 362(dti): 8(ptr) Variable Function + 366(param): 8(ptr) Variable Function + 365: 7(ivec3) Load 364(dti) + Store 362(dti) 365 + 367: 7(ivec3) Load 362(dti) + Store 366(param) 367 + 368: 2 FunctionCall 11(@CSMain(vu3;) 366(param) + Return + FunctionEnd +11(@CSMain(vu3;): 2 Function None 9 + 10(dti): 8(ptr) FunctionParameter + 12: Label + 28: 27(ptr) AccessChain 10(dti) 26 + 29: 6(int) Load 28 + 30: 27(ptr) AccessChain 10(dti) 26 + 31: 6(int) Load 30 + 33: 32(ptr) AccessChain 24(data) 25 31 25 + 34: 13(ivec4) Load 33 + 36: 13(ivec4) GroupNonUniformIAdd 35 InclusiveScan 34 + 37: 32(ptr) AccessChain 24(data) 25 29 25 + Store 37 36 + 38: 27(ptr) AccessChain 10(dti) 26 + 39: 6(int) Load 38 + 40: 27(ptr) AccessChain 10(dti) 26 + 41: 6(int) Load 40 + 43: 42(ptr) AccessChain 24(data) 25 41 25 26 + 44: 6(int) Load 43 + 45: 6(int) GroupNonUniformIAdd 35 InclusiveScan 44 + 46: 42(ptr) AccessChain 24(data) 25 39 25 26 + Store 46 45 + 47: 27(ptr) AccessChain 10(dti) 26 + 48: 6(int) Load 47 + 49: 27(ptr) AccessChain 10(dti) 26 + 50: 6(int) Load 49 + 52: 32(ptr) AccessChain 24(data) 25 50 25 + 53: 13(ivec4) Load 52 + 54: 51(ivec2) VectorShuffle 53 53 0 1 + 55: 51(ivec2) GroupNonUniformIAdd 35 InclusiveScan 54 + 56: 32(ptr) AccessChain 24(data) 25 48 25 + 57: 13(ivec4) Load 56 + 58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 + Store 56 58 + 59: 27(ptr) AccessChain 10(dti) 26 + 60: 6(int) Load 59 + 61: 27(ptr) AccessChain 10(dti) 26 + 62: 6(int) Load 61 + 63: 32(ptr) AccessChain 24(data) 25 62 25 + 64: 13(ivec4) Load 63 + 65: 7(ivec3) VectorShuffle 64 64 0 1 2 + 66: 7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 65 + 67: 32(ptr) AccessChain 24(data) 25 60 25 + 68: 13(ivec4) Load 67 + 69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 + Store 67 69 + 70: 27(ptr) AccessChain 10(dti) 26 + 71: 6(int) Load 70 + 73: 27(ptr) AccessChain 10(dti) 26 + 74: 6(int) Load 73 + 76: 75(ptr) AccessChain 24(data) 25 74 72 + 77: 15(ivec4) Load 76 + 78: 15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 77 + 79: 75(ptr) AccessChain 24(data) 25 71 72 + Store 79 78 + 80: 27(ptr) AccessChain 10(dti) 26 + 81: 6(int) Load 80 + 82: 27(ptr) AccessChain 10(dti) 26 + 83: 6(int) Load 82 + 85: 84(ptr) AccessChain 24(data) 25 83 72 26 + 86: 14(int) Load 85 + 87: 14(int) GroupNonUniformIAdd 35 InclusiveScan 86 + 88: 84(ptr) AccessChain 24(data) 25 81 72 26 + Store 88 87 + 89: 27(ptr) AccessChain 10(dti) 26 + 90: 6(int) Load 89 + 91: 27(ptr) AccessChain 10(dti) 26 + 92: 6(int) Load 91 + 94: 75(ptr) AccessChain 24(data) 25 92 72 + 95: 15(ivec4) Load 94 + 96: 93(ivec2) VectorShuffle 95 95 0 1 + 97: 93(ivec2) GroupNonUniformIAdd 35 InclusiveScan 96 + 98: 75(ptr) AccessChain 24(data) 25 90 72 + 99: 15(ivec4) Load 98 + 100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 + Store 98 100 + 101: 27(ptr) AccessChain 10(dti) 26 + 102: 6(int) Load 101 + 103: 27(ptr) AccessChain 10(dti) 26 + 104: 6(int) Load 103 + 106: 75(ptr) AccessChain 24(data) 25 104 72 + 107: 15(ivec4) Load 106 + 108: 105(ivec3) VectorShuffle 107 107 0 1 2 + 109: 105(ivec3) GroupNonUniformIAdd 35 InclusiveScan 108 + 110: 75(ptr) AccessChain 24(data) 25 102 72 + 111: 15(ivec4) Load 110 + 112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 + Store 110 112 + 113: 27(ptr) AccessChain 10(dti) 26 + 114: 6(int) Load 113 + 116: 27(ptr) AccessChain 10(dti) 26 + 117: 6(int) Load 116 + 119: 118(ptr) AccessChain 24(data) 25 117 115 + 120: 17(fvec4) Load 119 + 121: 17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 120 + 122: 118(ptr) AccessChain 24(data) 25 114 115 + Store 122 121 + 123: 27(ptr) AccessChain 10(dti) 26 + 124: 6(int) Load 123 + 125: 27(ptr) AccessChain 10(dti) 26 + 126: 6(int) Load 125 + 128: 127(ptr) AccessChain 24(data) 25 126 115 26 + 129: 16(float) Load 128 + 130: 16(float) GroupNonUniformFAdd 35 InclusiveScan 129 + 131: 127(ptr) AccessChain 24(data) 25 124 115 26 + Store 131 130 + 132: 27(ptr) AccessChain 10(dti) 26 + 133: 6(int) Load 132 + 134: 27(ptr) AccessChain 10(dti) 26 + 135: 6(int) Load 134 + 137: 118(ptr) AccessChain 24(data) 25 135 115 + 138: 17(fvec4) Load 137 + 139: 136(fvec2) VectorShuffle 138 138 0 1 + 140: 136(fvec2) GroupNonUniformFAdd 35 InclusiveScan 139 + 141: 118(ptr) AccessChain 24(data) 25 133 115 + 142: 17(fvec4) Load 141 + 143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 + Store 141 143 + 144: 27(ptr) AccessChain 10(dti) 26 + 145: 6(int) Load 144 + 146: 27(ptr) AccessChain 10(dti) 26 + 147: 6(int) Load 146 + 149: 118(ptr) AccessChain 24(data) 25 147 115 + 150: 17(fvec4) Load 149 + 151: 148(fvec3) VectorShuffle 150 150 0 1 2 + 152: 148(fvec3) GroupNonUniformFAdd 35 InclusiveScan 151 + 153: 118(ptr) AccessChain 24(data) 25 145 115 + 154: 17(fvec4) Load 153 + 155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 + Store 153 155 + 156: 27(ptr) AccessChain 10(dti) 26 + 157: 6(int) Load 156 + 159: 27(ptr) AccessChain 10(dti) 26 + 160: 6(int) Load 159 + 162: 161(ptr) AccessChain 24(data) 25 160 158 + 163: 19(f64vec4) Load 162 + 164: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 163 + 165: 161(ptr) AccessChain 24(data) 25 157 158 + Store 165 164 + 166: 27(ptr) AccessChain 10(dti) 26 + 167: 6(int) Load 166 + 168: 27(ptr) AccessChain 10(dti) 26 + 169: 6(int) Load 168 + 171: 170(ptr) AccessChain 24(data) 25 169 158 26 + 172:18(float64_t) Load 171 + 173:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 172 + 174: 170(ptr) AccessChain 24(data) 25 167 158 26 + Store 174 173 + 175: 27(ptr) AccessChain 10(dti) 26 + 176: 6(int) Load 175 + 177: 27(ptr) AccessChain 10(dti) 26 + 178: 6(int) Load 177 + 180: 161(ptr) AccessChain 24(data) 25 178 158 + 181: 19(f64vec4) Load 180 + 182:179(f64vec2) VectorShuffle 181 181 0 1 + 183:179(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 182 + 184: 161(ptr) AccessChain 24(data) 25 176 158 + 185: 19(f64vec4) Load 184 + 186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 + Store 184 186 + 187: 27(ptr) AccessChain 10(dti) 26 + 188: 6(int) Load 187 + 189: 27(ptr) AccessChain 10(dti) 26 + 190: 6(int) Load 189 + 192: 161(ptr) AccessChain 24(data) 25 190 158 + 193: 19(f64vec4) Load 192 + 194:191(f64vec3) VectorShuffle 193 193 0 1 2 + 195:191(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 194 + 196: 161(ptr) AccessChain 24(data) 25 188 158 + 197: 19(f64vec4) Load 196 + 198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 + Store 196 198 + 199: 27(ptr) AccessChain 10(dti) 26 + 200: 6(int) Load 199 + 201: 27(ptr) AccessChain 10(dti) 26 + 202: 6(int) Load 201 + 203: 32(ptr) AccessChain 24(data) 25 202 25 + 204: 13(ivec4) Load 203 + 205: 13(ivec4) GroupNonUniformIMul 35 InclusiveScan 204 + 206: 32(ptr) AccessChain 24(data) 25 200 25 + Store 206 205 + 207: 27(ptr) AccessChain 10(dti) 26 + 208: 6(int) Load 207 + 209: 27(ptr) AccessChain 10(dti) 26 + 210: 6(int) Load 209 + 211: 42(ptr) AccessChain 24(data) 25 210 25 26 + 212: 6(int) Load 211 + 213: 6(int) GroupNonUniformIMul 35 InclusiveScan 212 + 214: 42(ptr) AccessChain 24(data) 25 208 25 26 + Store 214 213 + 215: 27(ptr) AccessChain 10(dti) 26 + 216: 6(int) Load 215 + 217: 27(ptr) AccessChain 10(dti) 26 + 218: 6(int) Load 217 + 219: 32(ptr) AccessChain 24(data) 25 218 25 + 220: 13(ivec4) Load 219 + 221: 51(ivec2) VectorShuffle 220 220 0 1 + 222: 51(ivec2) GroupNonUniformIMul 35 InclusiveScan 221 + 223: 32(ptr) AccessChain 24(data) 25 216 25 + 224: 13(ivec4) Load 223 + 225: 13(ivec4) VectorShuffle 224 222 4 5 2 3 + Store 223 225 + 226: 27(ptr) AccessChain 10(dti) 26 + 227: 6(int) Load 226 + 228: 27(ptr) AccessChain 10(dti) 26 + 229: 6(int) Load 228 + 230: 32(ptr) AccessChain 24(data) 25 229 25 + 231: 13(ivec4) Load 230 + 232: 7(ivec3) VectorShuffle 231 231 0 1 2 + 233: 7(ivec3) GroupNonUniformIMul 35 InclusiveScan 232 + 234: 32(ptr) AccessChain 24(data) 25 227 25 + 235: 13(ivec4) Load 234 + 236: 13(ivec4) VectorShuffle 235 233 4 5 6 3 + Store 234 236 + 237: 27(ptr) AccessChain 10(dti) 26 + 238: 6(int) Load 237 + 239: 27(ptr) AccessChain 10(dti) 26 + 240: 6(int) Load 239 + 241: 75(ptr) AccessChain 24(data) 25 240 72 + 242: 15(ivec4) Load 241 + 243: 15(ivec4) GroupNonUniformIMul 35 InclusiveScan 242 + 244: 75(ptr) AccessChain 24(data) 25 238 72 + Store 244 243 + 245: 27(ptr) AccessChain 10(dti) 26 + 246: 6(int) Load 245 + 247: 27(ptr) AccessChain 10(dti) 26 + 248: 6(int) Load 247 + 249: 84(ptr) AccessChain 24(data) 25 248 72 26 + 250: 14(int) Load 249 + 251: 14(int) GroupNonUniformIMul 35 InclusiveScan 250 + 252: 84(ptr) AccessChain 24(data) 25 246 72 26 + Store 252 251 + 253: 27(ptr) AccessChain 10(dti) 26 + 254: 6(int) Load 253 + 255: 27(ptr) AccessChain 10(dti) 26 + 256: 6(int) Load 255 + 257: 75(ptr) AccessChain 24(data) 25 256 72 + 258: 15(ivec4) Load 257 + 259: 93(ivec2) VectorShuffle 258 258 0 1 + 260: 93(ivec2) GroupNonUniformIMul 35 InclusiveScan 259 + 261: 75(ptr) AccessChain 24(data) 25 254 72 + 262: 15(ivec4) Load 261 + 263: 15(ivec4) VectorShuffle 262 260 4 5 2 3 + Store 261 263 + 264: 27(ptr) AccessChain 10(dti) 26 + 265: 6(int) Load 264 + 266: 27(ptr) AccessChain 10(dti) 26 + 267: 6(int) Load 266 + 268: 75(ptr) AccessChain 24(data) 25 267 72 + 269: 15(ivec4) Load 268 + 270: 105(ivec3) VectorShuffle 269 269 0 1 2 + 271: 105(ivec3) GroupNonUniformIMul 35 InclusiveScan 270 + 272: 75(ptr) AccessChain 24(data) 25 265 72 + 273: 15(ivec4) Load 272 + 274: 15(ivec4) VectorShuffle 273 271 4 5 6 3 + Store 272 274 + 275: 27(ptr) AccessChain 10(dti) 26 + 276: 6(int) Load 275 + 277: 27(ptr) AccessChain 10(dti) 26 + 278: 6(int) Load 277 + 279: 118(ptr) AccessChain 24(data) 25 278 115 + 280: 17(fvec4) Load 279 + 281: 17(fvec4) GroupNonUniformFMul 35 InclusiveScan 280 + 282: 118(ptr) AccessChain 24(data) 25 276 115 + Store 282 281 + 283: 27(ptr) AccessChain 10(dti) 26 + 284: 6(int) Load 283 + 285: 27(ptr) AccessChain 10(dti) 26 + 286: 6(int) Load 285 + 287: 127(ptr) AccessChain 24(data) 25 286 115 26 + 288: 16(float) Load 287 + 289: 16(float) GroupNonUniformFMul 35 InclusiveScan 288 + 290: 127(ptr) AccessChain 24(data) 25 284 115 26 + Store 290 289 + 291: 27(ptr) AccessChain 10(dti) 26 + 292: 6(int) Load 291 + 293: 27(ptr) AccessChain 10(dti) 26 + 294: 6(int) Load 293 + 295: 118(ptr) AccessChain 24(data) 25 294 115 + 296: 17(fvec4) Load 295 + 297: 136(fvec2) VectorShuffle 296 296 0 1 + 298: 136(fvec2) GroupNonUniformFMul 35 InclusiveScan 297 + 299: 118(ptr) AccessChain 24(data) 25 292 115 + 300: 17(fvec4) Load 299 + 301: 17(fvec4) VectorShuffle 300 298 4 5 2 3 + Store 299 301 + 302: 27(ptr) AccessChain 10(dti) 26 + 303: 6(int) Load 302 + 304: 27(ptr) AccessChain 10(dti) 26 + 305: 6(int) Load 304 + 306: 118(ptr) AccessChain 24(data) 25 305 115 + 307: 17(fvec4) Load 306 + 308: 148(fvec3) VectorShuffle 307 307 0 1 2 + 309: 148(fvec3) GroupNonUniformFMul 35 InclusiveScan 308 + 310: 118(ptr) AccessChain 24(data) 25 303 115 + 311: 17(fvec4) Load 310 + 312: 17(fvec4) VectorShuffle 311 309 4 5 6 3 + Store 310 312 + 313: 27(ptr) AccessChain 10(dti) 26 + 314: 6(int) Load 313 + 315: 27(ptr) AccessChain 10(dti) 26 + 316: 6(int) Load 315 + 317: 161(ptr) AccessChain 24(data) 25 316 158 + 318: 19(f64vec4) Load 317 + 319: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 318 + 320: 161(ptr) AccessChain 24(data) 25 314 158 + Store 320 319 + 321: 27(ptr) AccessChain 10(dti) 26 + 322: 6(int) Load 321 + 323: 27(ptr) AccessChain 10(dti) 26 + 324: 6(int) Load 323 + 325: 170(ptr) AccessChain 24(data) 25 324 158 26 + 326:18(float64_t) Load 325 + 327:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 326 + 328: 170(ptr) AccessChain 24(data) 25 322 158 26 + Store 328 327 + 329: 27(ptr) AccessChain 10(dti) 26 + 330: 6(int) Load 329 + 331: 27(ptr) AccessChain 10(dti) 26 + 332: 6(int) Load 331 + 333: 161(ptr) AccessChain 24(data) 25 332 158 + 334: 19(f64vec4) Load 333 + 335:179(f64vec2) VectorShuffle 334 334 0 1 + 336:179(f64vec2) GroupNonUniformFMul 35 InclusiveScan 335 + 337: 161(ptr) AccessChain 24(data) 25 330 158 + 338: 19(f64vec4) Load 337 + 339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3 + Store 337 339 + 340: 27(ptr) AccessChain 10(dti) 26 + 341: 6(int) Load 340 + 342: 27(ptr) AccessChain 10(dti) 26 + 343: 6(int) Load 342 + 344: 161(ptr) AccessChain 24(data) 25 343 158 + 345: 19(f64vec4) Load 344 + 346:191(f64vec3) VectorShuffle 345 345 0 1 2 + 347:191(f64vec3) GroupNonUniformFMul 35 InclusiveScan 346 + 348: 161(ptr) AccessChain 24(data) 25 341 158 + 349: 19(f64vec4) Load 348 + 350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3 + Store 348 350 + 351: 27(ptr) AccessChain 10(dti) 26 + 352: 6(int) Load 351 + 353: 27(ptr) AccessChain 10(dti) 26 + 354: 6(int) Load 353 + 355: 42(ptr) AccessChain 24(data) 25 354 25 26 + 356: 6(int) Load 355 + 358: 357(bool) IEqual 356 26 + 359: 13(ivec4) GroupNonUniformBallot 35 358 + 360: 6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 359 + 361: 42(ptr) AccessChain 24(data) 25 352 25 26 + Store 361 360 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.wavequad.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavequad.comp.out new file mode 100644 index 0000000000..56ef6d740f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.wavequad.comp.out @@ -0,0 +1,9299 @@ +hlsl.wavequad.comp +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const uint) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupQuadBroadcast ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const uint) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 0 (const uint) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const uint) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupQuadBroadcast ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 0 (const uint) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupQuadBroadcast ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 0 (const uint) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupQuadBroadcast ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 0 (const uint) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupQuadBroadcast ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 0 (const uint) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupQuadBroadcast ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 0 (const uint) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupQuadBroadcast ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0 (const uint) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupQuadBroadcast ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const uint) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupQuadBroadcast ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupQuadBroadcast ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 Constant: +0:29 0 (const uint) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupQuadBroadcast ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 0 (const uint) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupQuadBroadcast ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 0 (const uint) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupQuadBroadcast ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 Constant: +0:32 0 (const uint) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1 (const uint) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupQuadBroadcast ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1 (const uint) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1 (const uint) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 Constant: +0:37 1 (const uint) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupQuadBroadcast ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 1 (const uint) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupQuadBroadcast ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const uint) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupQuadBroadcast ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1 (const uint) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupQuadBroadcast ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 Constant: +0:42 1 (const uint) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupQuadBroadcast ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 1 (const uint) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupQuadBroadcast ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1 (const uint) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupQuadBroadcast ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1 (const uint) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupQuadBroadcast ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Constant: +0:47 1 (const uint) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupQuadBroadcast ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 Constant: +0:49 1 (const uint) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupQuadBroadcast ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 1 (const uint) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupQuadBroadcast ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 Constant: +0:51 1 (const uint) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupQuadBroadcast ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 Constant: +0:52 1 (const uint) +0:54 move second child to first child ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 2 (const uint) +0:55 move second child to first child ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 subgroupQuadBroadcast ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 2 (const uint) +0:56 move second child to first child ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 Constant: +0:56 2 (const uint) +0:57 move second child to first child ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 Constant: +0:57 2 (const uint) +0:59 move second child to first child ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 subgroupQuadBroadcast ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const uint) +0:60 move second child to first child ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:60 subgroupQuadBroadcast ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 2 (const uint) +0:61 move second child to first child ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 subgroupQuadBroadcast ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const uint) +0:62 move second child to first child ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 subgroupQuadBroadcast ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 Constant: +0:62 2 (const uint) +0:64 move second child to first child ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 subgroupQuadBroadcast ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 Constant: +0:64 2 (const uint) +0:65 move second child to first child ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:65 subgroupQuadBroadcast ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const uint) +0:66 move second child to first child ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:66 subgroupQuadBroadcast ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:66 Constant: +0:66 2 (const uint) +0:67 move second child to first child ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 subgroupQuadBroadcast ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Constant: +0:67 2 (const uint) +0:69 move second child to first child ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:69 subgroupQuadBroadcast ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:69 Constant: +0:69 2 (const uint) +0:70 move second child to first child ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:70 subgroupQuadBroadcast ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 2 (const uint) +0:71 move second child to first child ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 subgroupQuadBroadcast ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 Constant: +0:71 2 (const uint) +0:72 move second child to first child ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:72 subgroupQuadBroadcast ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:72 Constant: +0:72 2 (const uint) +0:74 move second child to first child ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:74 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 3 (const uint) +0:75 move second child to first child ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 subgroupQuadBroadcast ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 3 (const uint) +0:76 move second child to first child ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:76 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:76 Constant: +0:76 3 (const uint) +0:77 move second child to first child ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:77 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:77 Constant: +0:77 3 (const uint) +0:79 move second child to first child ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 subgroupQuadBroadcast ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 Constant: +0:79 3 (const uint) +0:80 move second child to first child ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:80 subgroupQuadBroadcast ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 3 (const uint) +0:81 move second child to first child ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 subgroupQuadBroadcast ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Constant: +0:81 3 (const uint) +0:82 move second child to first child ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 subgroupQuadBroadcast ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 3 (const uint) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 subgroupQuadBroadcast ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 Constant: +0:84 3 (const uint) +0:85 move second child to first child ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 subgroupQuadBroadcast ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 3 (const uint) +0:86 move second child to first child ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 subgroupQuadBroadcast ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 Constant: +0:86 3 (const uint) +0:87 move second child to first child ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 subgroupQuadBroadcast ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Constant: +0:87 3 (const uint) +0:89 move second child to first child ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:89 subgroupQuadBroadcast ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:89 Constant: +0:89 3 (const uint) +0:90 move second child to first child ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:90 subgroupQuadBroadcast ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const uint) +0:91 move second child to first child ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:91 subgroupQuadBroadcast ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:91 Constant: +0:91 3 (const uint) +0:92 move second child to first child ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:92 subgroupQuadBroadcast ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:92 Constant: +0:92 3 (const uint) +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:94 subgroupQuadSwapHorizontal ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:95 move second child to first child ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 subgroupQuadSwapHorizontal ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:96 move second child to first child ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:96 subgroupQuadSwapHorizontal ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:97 move second child to first child ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:97 subgroupQuadSwapHorizontal ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:99 move second child to first child ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:99 subgroupQuadSwapHorizontal ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:100 move second child to first child ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:100 subgroupQuadSwapHorizontal ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:101 move second child to first child ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 subgroupQuadSwapHorizontal ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:102 move second child to first child ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:102 subgroupQuadSwapHorizontal ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:104 move second child to first child ( temp 4-component vector of float) +0:104 f: direct index for structure ( temp 4-component vector of float) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 2 (const int) +0:104 subgroupQuadSwapHorizontal ( temp 4-component vector of float) +0:104 f: direct index for structure ( temp 4-component vector of float) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 2 (const int) +0:105 move second child to first child ( temp float) +0:105 direct index ( temp float) +0:105 f: direct index for structure ( temp 4-component vector of float) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 2 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 subgroupQuadSwapHorizontal ( temp float) +0:105 direct index ( temp float) +0:105 f: direct index for structure ( temp 4-component vector of float) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 2 (const int) +0:105 Constant: +0:105 0 (const int) +0:106 move second child to first child ( temp 2-component vector of float) +0:106 vector swizzle ( temp 2-component vector of float) +0:106 f: direct index for structure ( temp 4-component vector of float) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 2 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:106 subgroupQuadSwapHorizontal ( temp 2-component vector of float) +0:106 vector swizzle ( temp 2-component vector of float) +0:106 f: direct index for structure ( temp 4-component vector of float) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 2 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:107 move second child to first child ( temp 3-component vector of float) +0:107 vector swizzle ( temp 3-component vector of float) +0:107 f: direct index for structure ( temp 4-component vector of float) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 subgroupQuadSwapHorizontal ( temp 3-component vector of float) +0:107 vector swizzle ( temp 3-component vector of float) +0:107 f: direct index for structure ( temp 4-component vector of float) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:109 move second child to first child ( temp 4-component vector of double) +0:109 d: direct index for structure ( temp 4-component vector of double) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 3 (const int) +0:109 subgroupQuadSwapHorizontal ( temp 4-component vector of double) +0:109 d: direct index for structure ( temp 4-component vector of double) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 3 (const int) +0:110 move second child to first child ( temp double) +0:110 direct index ( temp double) +0:110 d: direct index for structure ( temp 4-component vector of double) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 3 (const int) +0:110 Constant: +0:110 0 (const int) +0:110 subgroupQuadSwapHorizontal ( temp double) +0:110 direct index ( temp double) +0:110 d: direct index for structure ( temp 4-component vector of double) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 3 (const int) +0:110 Constant: +0:110 0 (const int) +0:111 move second child to first child ( temp 2-component vector of double) +0:111 vector swizzle ( temp 2-component vector of double) +0:111 d: direct index for structure ( temp 4-component vector of double) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 3 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 subgroupQuadSwapHorizontal ( temp 2-component vector of double) +0:111 vector swizzle ( temp 2-component vector of double) +0:111 d: direct index for structure ( temp 4-component vector of double) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 3 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:112 move second child to first child ( temp 3-component vector of double) +0:112 vector swizzle ( temp 3-component vector of double) +0:112 d: direct index for structure ( temp 4-component vector of double) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 3 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:112 subgroupQuadSwapHorizontal ( temp 3-component vector of double) +0:112 vector swizzle ( temp 3-component vector of double) +0:112 d: direct index for structure ( temp 4-component vector of double) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 3 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:114 move second child to first child ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:114 subgroupQuadSwapVertical ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:115 move second child to first child ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 subgroupQuadSwapVertical ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:116 move second child to first child ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:116 subgroupQuadSwapVertical ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:117 move second child to first child ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:117 subgroupQuadSwapVertical ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:119 move second child to first child ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:119 subgroupQuadSwapVertical ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:120 move second child to first child ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:120 subgroupQuadSwapVertical ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:121 move second child to first child ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 subgroupQuadSwapVertical ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:122 move second child to first child ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:122 subgroupQuadSwapVertical ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:124 move second child to first child ( temp 4-component vector of float) +0:124 f: direct index for structure ( temp 4-component vector of float) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 2 (const int) +0:124 subgroupQuadSwapVertical ( temp 4-component vector of float) +0:124 f: direct index for structure ( temp 4-component vector of float) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 2 (const int) +0:125 move second child to first child ( temp float) +0:125 direct index ( temp float) +0:125 f: direct index for structure ( temp 4-component vector of float) +0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:125 Constant: +0:125 0 (const uint) +0:125 direct index ( temp uint) +0:125 'dti' ( in 3-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 Constant: +0:125 2 (const int) +0:125 Constant: +0:125 0 (const int) +0:125 subgroupQuadSwapVertical ( temp float) +0:125 direct index ( temp float) +0:125 f: direct index for structure ( temp 4-component vector of float) +0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:125 Constant: +0:125 0 (const uint) +0:125 direct index ( temp uint) +0:125 'dti' ( in 3-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 Constant: +0:125 2 (const int) +0:125 Constant: +0:125 0 (const int) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 vector swizzle ( temp 2-component vector of float) +0:126 f: direct index for structure ( temp 4-component vector of float) +0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:126 Constant: +0:126 0 (const uint) +0:126 direct index ( temp uint) +0:126 'dti' ( in 3-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 2 (const int) +0:126 Sequence +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 1 (const int) +0:126 subgroupQuadSwapVertical ( temp 2-component vector of float) +0:126 vector swizzle ( temp 2-component vector of float) +0:126 f: direct index for structure ( temp 4-component vector of float) +0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:126 Constant: +0:126 0 (const uint) +0:126 direct index ( temp uint) +0:126 'dti' ( in 3-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 2 (const int) +0:126 Sequence +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 1 (const int) +0:127 move second child to first child ( temp 3-component vector of float) +0:127 vector swizzle ( temp 3-component vector of float) +0:127 f: direct index for structure ( temp 4-component vector of float) +0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:127 Constant: +0:127 0 (const uint) +0:127 direct index ( temp uint) +0:127 'dti' ( in 3-component vector of uint) +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 2 (const int) +0:127 Sequence +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 2 (const int) +0:127 subgroupQuadSwapVertical ( temp 3-component vector of float) +0:127 vector swizzle ( temp 3-component vector of float) +0:127 f: direct index for structure ( temp 4-component vector of float) +0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:127 Constant: +0:127 0 (const uint) +0:127 direct index ( temp uint) +0:127 'dti' ( in 3-component vector of uint) +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 2 (const int) +0:127 Sequence +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 2 (const int) +0:129 move second child to first child ( temp 4-component vector of double) +0:129 d: direct index for structure ( temp 4-component vector of double) +0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:129 Constant: +0:129 0 (const uint) +0:129 direct index ( temp uint) +0:129 'dti' ( in 3-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 Constant: +0:129 3 (const int) +0:129 subgroupQuadSwapVertical ( temp 4-component vector of double) +0:129 d: direct index for structure ( temp 4-component vector of double) +0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:129 Constant: +0:129 0 (const uint) +0:129 direct index ( temp uint) +0:129 'dti' ( in 3-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 Constant: +0:129 3 (const int) +0:130 move second child to first child ( temp double) +0:130 direct index ( temp double) +0:130 d: direct index for structure ( temp 4-component vector of double) +0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:130 Constant: +0:130 0 (const uint) +0:130 direct index ( temp uint) +0:130 'dti' ( in 3-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 Constant: +0:130 3 (const int) +0:130 Constant: +0:130 0 (const int) +0:130 subgroupQuadSwapVertical ( temp double) +0:130 direct index ( temp double) +0:130 d: direct index for structure ( temp 4-component vector of double) +0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:130 Constant: +0:130 0 (const uint) +0:130 direct index ( temp uint) +0:130 'dti' ( in 3-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 Constant: +0:130 3 (const int) +0:130 Constant: +0:130 0 (const int) +0:131 move second child to first child ( temp 2-component vector of double) +0:131 vector swizzle ( temp 2-component vector of double) +0:131 d: direct index for structure ( temp 4-component vector of double) +0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:131 Constant: +0:131 0 (const uint) +0:131 direct index ( temp uint) +0:131 'dti' ( in 3-component vector of uint) +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 3 (const int) +0:131 Sequence +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 1 (const int) +0:131 subgroupQuadSwapVertical ( temp 2-component vector of double) +0:131 vector swizzle ( temp 2-component vector of double) +0:131 d: direct index for structure ( temp 4-component vector of double) +0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:131 Constant: +0:131 0 (const uint) +0:131 direct index ( temp uint) +0:131 'dti' ( in 3-component vector of uint) +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 3 (const int) +0:131 Sequence +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 1 (const int) +0:132 move second child to first child ( temp 3-component vector of double) +0:132 vector swizzle ( temp 3-component vector of double) +0:132 d: direct index for structure ( temp 4-component vector of double) +0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:132 Constant: +0:132 0 (const uint) +0:132 direct index ( temp uint) +0:132 'dti' ( in 3-component vector of uint) +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 3 (const int) +0:132 Sequence +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 1 (const int) +0:132 Constant: +0:132 2 (const int) +0:132 subgroupQuadSwapVertical ( temp 3-component vector of double) +0:132 vector swizzle ( temp 3-component vector of double) +0:132 d: direct index for structure ( temp 4-component vector of double) +0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:132 Constant: +0:132 0 (const uint) +0:132 direct index ( temp uint) +0:132 'dti' ( in 3-component vector of uint) +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 3 (const int) +0:132 Sequence +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 1 (const int) +0:132 Constant: +0:132 2 (const int) +0:134 move second child to first child ( temp 4-component vector of uint) +0:134 u: direct index for structure ( temp 4-component vector of uint) +0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:134 Constant: +0:134 0 (const uint) +0:134 direct index ( temp uint) +0:134 'dti' ( in 3-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 0 (const int) +0:134 subgroupQuadSwapDiagonal ( temp 4-component vector of uint) +0:134 u: direct index for structure ( temp 4-component vector of uint) +0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:134 Constant: +0:134 0 (const uint) +0:134 direct index ( temp uint) +0:134 'dti' ( in 3-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 0 (const int) +0:135 move second child to first child ( temp uint) +0:135 direct index ( temp uint) +0:135 u: direct index for structure ( temp 4-component vector of uint) +0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:135 Constant: +0:135 0 (const uint) +0:135 direct index ( temp uint) +0:135 'dti' ( in 3-component vector of uint) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:135 subgroupQuadSwapDiagonal ( temp uint) +0:135 direct index ( temp uint) +0:135 u: direct index for structure ( temp 4-component vector of uint) +0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:135 Constant: +0:135 0 (const uint) +0:135 direct index ( temp uint) +0:135 'dti' ( in 3-component vector of uint) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:136 move second child to first child ( temp 2-component vector of uint) +0:136 vector swizzle ( temp 2-component vector of uint) +0:136 u: direct index for structure ( temp 4-component vector of uint) +0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:136 Constant: +0:136 0 (const uint) +0:136 direct index ( temp uint) +0:136 'dti' ( in 3-component vector of uint) +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 0 (const int) +0:136 Sequence +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 1 (const int) +0:136 subgroupQuadSwapDiagonal ( temp 2-component vector of uint) +0:136 vector swizzle ( temp 2-component vector of uint) +0:136 u: direct index for structure ( temp 4-component vector of uint) +0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:136 Constant: +0:136 0 (const uint) +0:136 direct index ( temp uint) +0:136 'dti' ( in 3-component vector of uint) +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 0 (const int) +0:136 Sequence +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 1 (const int) +0:137 move second child to first child ( temp 3-component vector of uint) +0:137 vector swizzle ( temp 3-component vector of uint) +0:137 u: direct index for structure ( temp 4-component vector of uint) +0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:137 Constant: +0:137 0 (const uint) +0:137 direct index ( temp uint) +0:137 'dti' ( in 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 0 (const int) +0:137 Sequence +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1 (const int) +0:137 Constant: +0:137 2 (const int) +0:137 subgroupQuadSwapDiagonal ( temp 3-component vector of uint) +0:137 vector swizzle ( temp 3-component vector of uint) +0:137 u: direct index for structure ( temp 4-component vector of uint) +0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:137 Constant: +0:137 0 (const uint) +0:137 direct index ( temp uint) +0:137 'dti' ( in 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 0 (const int) +0:137 Sequence +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1 (const int) +0:137 Constant: +0:137 2 (const int) +0:139 move second child to first child ( temp 4-component vector of int) +0:139 i: direct index for structure ( temp 4-component vector of int) +0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:139 Constant: +0:139 0 (const uint) +0:139 direct index ( temp uint) +0:139 'dti' ( in 3-component vector of uint) +0:139 Constant: +0:139 0 (const int) +0:139 Constant: +0:139 1 (const int) +0:139 subgroupQuadSwapDiagonal ( temp 4-component vector of int) +0:139 i: direct index for structure ( temp 4-component vector of int) +0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:139 Constant: +0:139 0 (const uint) +0:139 direct index ( temp uint) +0:139 'dti' ( in 3-component vector of uint) +0:139 Constant: +0:139 0 (const int) +0:139 Constant: +0:139 1 (const int) +0:140 move second child to first child ( temp int) +0:140 direct index ( temp int) +0:140 i: direct index for structure ( temp 4-component vector of int) +0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:140 Constant: +0:140 0 (const uint) +0:140 direct index ( temp uint) +0:140 'dti' ( in 3-component vector of uint) +0:140 Constant: +0:140 0 (const int) +0:140 Constant: +0:140 1 (const int) +0:140 Constant: +0:140 0 (const int) +0:140 subgroupQuadSwapDiagonal ( temp int) +0:140 direct index ( temp int) +0:140 i: direct index for structure ( temp 4-component vector of int) +0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:140 Constant: +0:140 0 (const uint) +0:140 direct index ( temp uint) +0:140 'dti' ( in 3-component vector of uint) +0:140 Constant: +0:140 0 (const int) +0:140 Constant: +0:140 1 (const int) +0:140 Constant: +0:140 0 (const int) +0:141 move second child to first child ( temp 2-component vector of int) +0:141 vector swizzle ( temp 2-component vector of int) +0:141 i: direct index for structure ( temp 4-component vector of int) +0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:141 Constant: +0:141 0 (const uint) +0:141 direct index ( temp uint) +0:141 'dti' ( in 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:141 Sequence +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:141 subgroupQuadSwapDiagonal ( temp 2-component vector of int) +0:141 vector swizzle ( temp 2-component vector of int) +0:141 i: direct index for structure ( temp 4-component vector of int) +0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:141 Constant: +0:141 0 (const uint) +0:141 direct index ( temp uint) +0:141 'dti' ( in 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:141 Sequence +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:142 move second child to first child ( temp 3-component vector of int) +0:142 vector swizzle ( temp 3-component vector of int) +0:142 i: direct index for structure ( temp 4-component vector of int) +0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:142 Constant: +0:142 0 (const uint) +0:142 direct index ( temp uint) +0:142 'dti' ( in 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Sequence +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Constant: +0:142 2 (const int) +0:142 subgroupQuadSwapDiagonal ( temp 3-component vector of int) +0:142 vector swizzle ( temp 3-component vector of int) +0:142 i: direct index for structure ( temp 4-component vector of int) +0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:142 Constant: +0:142 0 (const uint) +0:142 direct index ( temp uint) +0:142 'dti' ( in 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Sequence +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Constant: +0:142 2 (const int) +0:144 move second child to first child ( temp 4-component vector of float) +0:144 f: direct index for structure ( temp 4-component vector of float) +0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:144 Constant: +0:144 0 (const uint) +0:144 direct index ( temp uint) +0:144 'dti' ( in 3-component vector of uint) +0:144 Constant: +0:144 0 (const int) +0:144 Constant: +0:144 2 (const int) +0:144 subgroupQuadSwapDiagonal ( temp 4-component vector of float) +0:144 f: direct index for structure ( temp 4-component vector of float) +0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:144 Constant: +0:144 0 (const uint) +0:144 direct index ( temp uint) +0:144 'dti' ( in 3-component vector of uint) +0:144 Constant: +0:144 0 (const int) +0:144 Constant: +0:144 2 (const int) +0:145 move second child to first child ( temp float) +0:145 direct index ( temp float) +0:145 f: direct index for structure ( temp 4-component vector of float) +0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:145 Constant: +0:145 0 (const uint) +0:145 direct index ( temp uint) +0:145 'dti' ( in 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 Constant: +0:145 2 (const int) +0:145 Constant: +0:145 0 (const int) +0:145 subgroupQuadSwapDiagonal ( temp float) +0:145 direct index ( temp float) +0:145 f: direct index for structure ( temp 4-component vector of float) +0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:145 Constant: +0:145 0 (const uint) +0:145 direct index ( temp uint) +0:145 'dti' ( in 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 Constant: +0:145 2 (const int) +0:145 Constant: +0:145 0 (const int) +0:146 move second child to first child ( temp 2-component vector of float) +0:146 vector swizzle ( temp 2-component vector of float) +0:146 f: direct index for structure ( temp 4-component vector of float) +0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:146 Constant: +0:146 0 (const uint) +0:146 direct index ( temp uint) +0:146 'dti' ( in 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 2 (const int) +0:146 Sequence +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 1 (const int) +0:146 subgroupQuadSwapDiagonal ( temp 2-component vector of float) +0:146 vector swizzle ( temp 2-component vector of float) +0:146 f: direct index for structure ( temp 4-component vector of float) +0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:146 Constant: +0:146 0 (const uint) +0:146 direct index ( temp uint) +0:146 'dti' ( in 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 2 (const int) +0:146 Sequence +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 1 (const int) +0:147 move second child to first child ( temp 3-component vector of float) +0:147 vector swizzle ( temp 3-component vector of float) +0:147 f: direct index for structure ( temp 4-component vector of float) +0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:147 Constant: +0:147 0 (const uint) +0:147 direct index ( temp uint) +0:147 'dti' ( in 3-component vector of uint) +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 2 (const int) +0:147 Sequence +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 1 (const int) +0:147 Constant: +0:147 2 (const int) +0:147 subgroupQuadSwapDiagonal ( temp 3-component vector of float) +0:147 vector swizzle ( temp 3-component vector of float) +0:147 f: direct index for structure ( temp 4-component vector of float) +0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:147 Constant: +0:147 0 (const uint) +0:147 direct index ( temp uint) +0:147 'dti' ( in 3-component vector of uint) +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 2 (const int) +0:147 Sequence +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 1 (const int) +0:147 Constant: +0:147 2 (const int) +0:149 move second child to first child ( temp 4-component vector of double) +0:149 d: direct index for structure ( temp 4-component vector of double) +0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:149 Constant: +0:149 0 (const uint) +0:149 direct index ( temp uint) +0:149 'dti' ( in 3-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 Constant: +0:149 3 (const int) +0:149 subgroupQuadSwapDiagonal ( temp 4-component vector of double) +0:149 d: direct index for structure ( temp 4-component vector of double) +0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:149 Constant: +0:149 0 (const uint) +0:149 direct index ( temp uint) +0:149 'dti' ( in 3-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 Constant: +0:149 3 (const int) +0:150 move second child to first child ( temp double) +0:150 direct index ( temp double) +0:150 d: direct index for structure ( temp 4-component vector of double) +0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:150 Constant: +0:150 0 (const uint) +0:150 direct index ( temp uint) +0:150 'dti' ( in 3-component vector of uint) +0:150 Constant: +0:150 0 (const int) +0:150 Constant: +0:150 3 (const int) +0:150 Constant: +0:150 0 (const int) +0:150 subgroupQuadSwapDiagonal ( temp double) +0:150 direct index ( temp double) +0:150 d: direct index for structure ( temp 4-component vector of double) +0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:150 Constant: +0:150 0 (const uint) +0:150 direct index ( temp uint) +0:150 'dti' ( in 3-component vector of uint) +0:150 Constant: +0:150 0 (const int) +0:150 Constant: +0:150 3 (const int) +0:150 Constant: +0:150 0 (const int) +0:151 move second child to first child ( temp 2-component vector of double) +0:151 vector swizzle ( temp 2-component vector of double) +0:151 d: direct index for structure ( temp 4-component vector of double) +0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:151 Constant: +0:151 0 (const uint) +0:151 direct index ( temp uint) +0:151 'dti' ( in 3-component vector of uint) +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 3 (const int) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:151 subgroupQuadSwapDiagonal ( temp 2-component vector of double) +0:151 vector swizzle ( temp 2-component vector of double) +0:151 d: direct index for structure ( temp 4-component vector of double) +0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:151 Constant: +0:151 0 (const uint) +0:151 direct index ( temp uint) +0:151 'dti' ( in 3-component vector of uint) +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 3 (const int) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:152 move second child to first child ( temp 3-component vector of double) +0:152 vector swizzle ( temp 3-component vector of double) +0:152 d: direct index for structure ( temp 4-component vector of double) +0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:152 Constant: +0:152 0 (const uint) +0:152 direct index ( temp uint) +0:152 'dti' ( in 3-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 3 (const int) +0:152 Sequence +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 1 (const int) +0:152 Constant: +0:152 2 (const int) +0:152 subgroupQuadSwapDiagonal ( temp 3-component vector of double) +0:152 vector swizzle ( temp 3-component vector of double) +0:152 d: direct index for structure ( temp 4-component vector of double) +0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:152 Constant: +0:152 0 (const uint) +0:152 direct index ( temp uint) +0:152 'dti' ( in 3-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 3 (const int) +0:152 Sequence +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 1 (const int) +0:152 Constant: +0:152 2 (const int) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const uint) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupQuadBroadcast ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const uint) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 Constant: +0:16 0 (const uint) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 0 (const uint) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupQuadBroadcast ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 0 (const uint) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupQuadBroadcast ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 0 (const uint) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupQuadBroadcast ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 0 (const uint) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupQuadBroadcast ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 0 (const uint) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupQuadBroadcast ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 0 (const uint) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupQuadBroadcast ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0 (const uint) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupQuadBroadcast ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 0 (const uint) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupQuadBroadcast ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupQuadBroadcast ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 Constant: +0:29 0 (const uint) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupQuadBroadcast ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 0 (const uint) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupQuadBroadcast ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 0 (const uint) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupQuadBroadcast ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 Constant: +0:32 0 (const uint) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1 (const uint) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupQuadBroadcast ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1 (const uint) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1 (const uint) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 Constant: +0:37 1 (const uint) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupQuadBroadcast ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 Constant: +0:39 1 (const uint) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupQuadBroadcast ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const uint) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupQuadBroadcast ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1 (const uint) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupQuadBroadcast ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 Constant: +0:42 1 (const uint) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupQuadBroadcast ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 1 (const uint) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupQuadBroadcast ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1 (const uint) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupQuadBroadcast ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1 (const uint) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupQuadBroadcast ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Constant: +0:47 1 (const uint) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupQuadBroadcast ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 Constant: +0:49 1 (const uint) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupQuadBroadcast ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 1 (const uint) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupQuadBroadcast ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 Constant: +0:51 1 (const uint) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupQuadBroadcast ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 Constant: +0:52 1 (const uint) +0:54 move second child to first child ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 2 (const uint) +0:55 move second child to first child ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 subgroupQuadBroadcast ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 2 (const uint) +0:56 move second child to first child ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 Constant: +0:56 2 (const uint) +0:57 move second child to first child ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 Constant: +0:57 2 (const uint) +0:59 move second child to first child ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 subgroupQuadBroadcast ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const uint) +0:60 move second child to first child ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:60 subgroupQuadBroadcast ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 2 (const uint) +0:61 move second child to first child ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 subgroupQuadBroadcast ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const uint) +0:62 move second child to first child ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 subgroupQuadBroadcast ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 Constant: +0:62 2 (const uint) +0:64 move second child to first child ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 subgroupQuadBroadcast ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 Constant: +0:64 2 (const uint) +0:65 move second child to first child ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:65 subgroupQuadBroadcast ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const uint) +0:66 move second child to first child ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:66 subgroupQuadBroadcast ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:66 Constant: +0:66 2 (const uint) +0:67 move second child to first child ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 subgroupQuadBroadcast ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Constant: +0:67 2 (const uint) +0:69 move second child to first child ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:69 subgroupQuadBroadcast ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:69 Constant: +0:69 2 (const uint) +0:70 move second child to first child ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:70 subgroupQuadBroadcast ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 2 (const uint) +0:71 move second child to first child ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 subgroupQuadBroadcast ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 Constant: +0:71 2 (const uint) +0:72 move second child to first child ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:72 subgroupQuadBroadcast ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:72 Constant: +0:72 2 (const uint) +0:74 move second child to first child ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:74 subgroupQuadBroadcast ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 3 (const uint) +0:75 move second child to first child ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 subgroupQuadBroadcast ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 3 (const uint) +0:76 move second child to first child ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:76 subgroupQuadBroadcast ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:76 Constant: +0:76 3 (const uint) +0:77 move second child to first child ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:77 subgroupQuadBroadcast ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:77 Constant: +0:77 3 (const uint) +0:79 move second child to first child ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 subgroupQuadBroadcast ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 Constant: +0:79 3 (const uint) +0:80 move second child to first child ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:80 subgroupQuadBroadcast ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 3 (const uint) +0:81 move second child to first child ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 subgroupQuadBroadcast ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Constant: +0:81 3 (const uint) +0:82 move second child to first child ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 subgroupQuadBroadcast ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 3 (const uint) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 subgroupQuadBroadcast ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 Constant: +0:84 3 (const uint) +0:85 move second child to first child ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 subgroupQuadBroadcast ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 3 (const uint) +0:86 move second child to first child ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 subgroupQuadBroadcast ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 Constant: +0:86 3 (const uint) +0:87 move second child to first child ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 subgroupQuadBroadcast ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Constant: +0:87 3 (const uint) +0:89 move second child to first child ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:89 subgroupQuadBroadcast ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:89 Constant: +0:89 3 (const uint) +0:90 move second child to first child ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:90 subgroupQuadBroadcast ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const uint) +0:91 move second child to first child ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:91 subgroupQuadBroadcast ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:91 Constant: +0:91 3 (const uint) +0:92 move second child to first child ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:92 subgroupQuadBroadcast ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:92 Constant: +0:92 3 (const uint) +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:94 subgroupQuadSwapHorizontal ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:95 move second child to first child ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 subgroupQuadSwapHorizontal ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:96 move second child to first child ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:96 subgroupQuadSwapHorizontal ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:97 move second child to first child ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:97 subgroupQuadSwapHorizontal ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:99 move second child to first child ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:99 subgroupQuadSwapHorizontal ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:100 move second child to first child ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:100 subgroupQuadSwapHorizontal ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:101 move second child to first child ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 subgroupQuadSwapHorizontal ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:102 move second child to first child ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:102 subgroupQuadSwapHorizontal ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:104 move second child to first child ( temp 4-component vector of float) +0:104 f: direct index for structure ( temp 4-component vector of float) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 2 (const int) +0:104 subgroupQuadSwapHorizontal ( temp 4-component vector of float) +0:104 f: direct index for structure ( temp 4-component vector of float) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 2 (const int) +0:105 move second child to first child ( temp float) +0:105 direct index ( temp float) +0:105 f: direct index for structure ( temp 4-component vector of float) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 2 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 subgroupQuadSwapHorizontal ( temp float) +0:105 direct index ( temp float) +0:105 f: direct index for structure ( temp 4-component vector of float) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 2 (const int) +0:105 Constant: +0:105 0 (const int) +0:106 move second child to first child ( temp 2-component vector of float) +0:106 vector swizzle ( temp 2-component vector of float) +0:106 f: direct index for structure ( temp 4-component vector of float) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 2 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:106 subgroupQuadSwapHorizontal ( temp 2-component vector of float) +0:106 vector swizzle ( temp 2-component vector of float) +0:106 f: direct index for structure ( temp 4-component vector of float) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 2 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:107 move second child to first child ( temp 3-component vector of float) +0:107 vector swizzle ( temp 3-component vector of float) +0:107 f: direct index for structure ( temp 4-component vector of float) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 subgroupQuadSwapHorizontal ( temp 3-component vector of float) +0:107 vector swizzle ( temp 3-component vector of float) +0:107 f: direct index for structure ( temp 4-component vector of float) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:109 move second child to first child ( temp 4-component vector of double) +0:109 d: direct index for structure ( temp 4-component vector of double) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 3 (const int) +0:109 subgroupQuadSwapHorizontal ( temp 4-component vector of double) +0:109 d: direct index for structure ( temp 4-component vector of double) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 3 (const int) +0:110 move second child to first child ( temp double) +0:110 direct index ( temp double) +0:110 d: direct index for structure ( temp 4-component vector of double) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 3 (const int) +0:110 Constant: +0:110 0 (const int) +0:110 subgroupQuadSwapHorizontal ( temp double) +0:110 direct index ( temp double) +0:110 d: direct index for structure ( temp 4-component vector of double) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 3 (const int) +0:110 Constant: +0:110 0 (const int) +0:111 move second child to first child ( temp 2-component vector of double) +0:111 vector swizzle ( temp 2-component vector of double) +0:111 d: direct index for structure ( temp 4-component vector of double) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 3 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 subgroupQuadSwapHorizontal ( temp 2-component vector of double) +0:111 vector swizzle ( temp 2-component vector of double) +0:111 d: direct index for structure ( temp 4-component vector of double) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 3 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:112 move second child to first child ( temp 3-component vector of double) +0:112 vector swizzle ( temp 3-component vector of double) +0:112 d: direct index for structure ( temp 4-component vector of double) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 3 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:112 subgroupQuadSwapHorizontal ( temp 3-component vector of double) +0:112 vector swizzle ( temp 3-component vector of double) +0:112 d: direct index for structure ( temp 4-component vector of double) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 3 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:114 move second child to first child ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:114 subgroupQuadSwapVertical ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:115 move second child to first child ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 subgroupQuadSwapVertical ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:116 move second child to first child ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:116 subgroupQuadSwapVertical ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:117 move second child to first child ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:117 subgroupQuadSwapVertical ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:119 move second child to first child ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:119 subgroupQuadSwapVertical ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:120 move second child to first child ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:120 subgroupQuadSwapVertical ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:121 move second child to first child ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 subgroupQuadSwapVertical ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:122 move second child to first child ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:122 subgroupQuadSwapVertical ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:124 move second child to first child ( temp 4-component vector of float) +0:124 f: direct index for structure ( temp 4-component vector of float) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 2 (const int) +0:124 subgroupQuadSwapVertical ( temp 4-component vector of float) +0:124 f: direct index for structure ( temp 4-component vector of float) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 2 (const int) +0:125 move second child to first child ( temp float) +0:125 direct index ( temp float) +0:125 f: direct index for structure ( temp 4-component vector of float) +0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:125 Constant: +0:125 0 (const uint) +0:125 direct index ( temp uint) +0:125 'dti' ( in 3-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 Constant: +0:125 2 (const int) +0:125 Constant: +0:125 0 (const int) +0:125 subgroupQuadSwapVertical ( temp float) +0:125 direct index ( temp float) +0:125 f: direct index for structure ( temp 4-component vector of float) +0:125 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:125 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:125 Constant: +0:125 0 (const uint) +0:125 direct index ( temp uint) +0:125 'dti' ( in 3-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 Constant: +0:125 2 (const int) +0:125 Constant: +0:125 0 (const int) +0:126 move second child to first child ( temp 2-component vector of float) +0:126 vector swizzle ( temp 2-component vector of float) +0:126 f: direct index for structure ( temp 4-component vector of float) +0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:126 Constant: +0:126 0 (const uint) +0:126 direct index ( temp uint) +0:126 'dti' ( in 3-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 2 (const int) +0:126 Sequence +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 1 (const int) +0:126 subgroupQuadSwapVertical ( temp 2-component vector of float) +0:126 vector swizzle ( temp 2-component vector of float) +0:126 f: direct index for structure ( temp 4-component vector of float) +0:126 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:126 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:126 Constant: +0:126 0 (const uint) +0:126 direct index ( temp uint) +0:126 'dti' ( in 3-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 2 (const int) +0:126 Sequence +0:126 Constant: +0:126 0 (const int) +0:126 Constant: +0:126 1 (const int) +0:127 move second child to first child ( temp 3-component vector of float) +0:127 vector swizzle ( temp 3-component vector of float) +0:127 f: direct index for structure ( temp 4-component vector of float) +0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:127 Constant: +0:127 0 (const uint) +0:127 direct index ( temp uint) +0:127 'dti' ( in 3-component vector of uint) +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 2 (const int) +0:127 Sequence +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 2 (const int) +0:127 subgroupQuadSwapVertical ( temp 3-component vector of float) +0:127 vector swizzle ( temp 3-component vector of float) +0:127 f: direct index for structure ( temp 4-component vector of float) +0:127 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:127 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:127 Constant: +0:127 0 (const uint) +0:127 direct index ( temp uint) +0:127 'dti' ( in 3-component vector of uint) +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 2 (const int) +0:127 Sequence +0:127 Constant: +0:127 0 (const int) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 2 (const int) +0:129 move second child to first child ( temp 4-component vector of double) +0:129 d: direct index for structure ( temp 4-component vector of double) +0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:129 Constant: +0:129 0 (const uint) +0:129 direct index ( temp uint) +0:129 'dti' ( in 3-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 Constant: +0:129 3 (const int) +0:129 subgroupQuadSwapVertical ( temp 4-component vector of double) +0:129 d: direct index for structure ( temp 4-component vector of double) +0:129 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:129 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:129 Constant: +0:129 0 (const uint) +0:129 direct index ( temp uint) +0:129 'dti' ( in 3-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 Constant: +0:129 3 (const int) +0:130 move second child to first child ( temp double) +0:130 direct index ( temp double) +0:130 d: direct index for structure ( temp 4-component vector of double) +0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:130 Constant: +0:130 0 (const uint) +0:130 direct index ( temp uint) +0:130 'dti' ( in 3-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 Constant: +0:130 3 (const int) +0:130 Constant: +0:130 0 (const int) +0:130 subgroupQuadSwapVertical ( temp double) +0:130 direct index ( temp double) +0:130 d: direct index for structure ( temp 4-component vector of double) +0:130 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:130 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:130 Constant: +0:130 0 (const uint) +0:130 direct index ( temp uint) +0:130 'dti' ( in 3-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 Constant: +0:130 3 (const int) +0:130 Constant: +0:130 0 (const int) +0:131 move second child to first child ( temp 2-component vector of double) +0:131 vector swizzle ( temp 2-component vector of double) +0:131 d: direct index for structure ( temp 4-component vector of double) +0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:131 Constant: +0:131 0 (const uint) +0:131 direct index ( temp uint) +0:131 'dti' ( in 3-component vector of uint) +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 3 (const int) +0:131 Sequence +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 1 (const int) +0:131 subgroupQuadSwapVertical ( temp 2-component vector of double) +0:131 vector swizzle ( temp 2-component vector of double) +0:131 d: direct index for structure ( temp 4-component vector of double) +0:131 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:131 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:131 Constant: +0:131 0 (const uint) +0:131 direct index ( temp uint) +0:131 'dti' ( in 3-component vector of uint) +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 3 (const int) +0:131 Sequence +0:131 Constant: +0:131 0 (const int) +0:131 Constant: +0:131 1 (const int) +0:132 move second child to first child ( temp 3-component vector of double) +0:132 vector swizzle ( temp 3-component vector of double) +0:132 d: direct index for structure ( temp 4-component vector of double) +0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:132 Constant: +0:132 0 (const uint) +0:132 direct index ( temp uint) +0:132 'dti' ( in 3-component vector of uint) +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 3 (const int) +0:132 Sequence +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 1 (const int) +0:132 Constant: +0:132 2 (const int) +0:132 subgroupQuadSwapVertical ( temp 3-component vector of double) +0:132 vector swizzle ( temp 3-component vector of double) +0:132 d: direct index for structure ( temp 4-component vector of double) +0:132 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:132 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:132 Constant: +0:132 0 (const uint) +0:132 direct index ( temp uint) +0:132 'dti' ( in 3-component vector of uint) +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 3 (const int) +0:132 Sequence +0:132 Constant: +0:132 0 (const int) +0:132 Constant: +0:132 1 (const int) +0:132 Constant: +0:132 2 (const int) +0:134 move second child to first child ( temp 4-component vector of uint) +0:134 u: direct index for structure ( temp 4-component vector of uint) +0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:134 Constant: +0:134 0 (const uint) +0:134 direct index ( temp uint) +0:134 'dti' ( in 3-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 0 (const int) +0:134 subgroupQuadSwapDiagonal ( temp 4-component vector of uint) +0:134 u: direct index for structure ( temp 4-component vector of uint) +0:134 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:134 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:134 Constant: +0:134 0 (const uint) +0:134 direct index ( temp uint) +0:134 'dti' ( in 3-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 0 (const int) +0:135 move second child to first child ( temp uint) +0:135 direct index ( temp uint) +0:135 u: direct index for structure ( temp 4-component vector of uint) +0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:135 Constant: +0:135 0 (const uint) +0:135 direct index ( temp uint) +0:135 'dti' ( in 3-component vector of uint) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:135 subgroupQuadSwapDiagonal ( temp uint) +0:135 direct index ( temp uint) +0:135 u: direct index for structure ( temp 4-component vector of uint) +0:135 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:135 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:135 Constant: +0:135 0 (const uint) +0:135 direct index ( temp uint) +0:135 'dti' ( in 3-component vector of uint) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:135 Constant: +0:135 0 (const int) +0:136 move second child to first child ( temp 2-component vector of uint) +0:136 vector swizzle ( temp 2-component vector of uint) +0:136 u: direct index for structure ( temp 4-component vector of uint) +0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:136 Constant: +0:136 0 (const uint) +0:136 direct index ( temp uint) +0:136 'dti' ( in 3-component vector of uint) +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 0 (const int) +0:136 Sequence +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 1 (const int) +0:136 subgroupQuadSwapDiagonal ( temp 2-component vector of uint) +0:136 vector swizzle ( temp 2-component vector of uint) +0:136 u: direct index for structure ( temp 4-component vector of uint) +0:136 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:136 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:136 Constant: +0:136 0 (const uint) +0:136 direct index ( temp uint) +0:136 'dti' ( in 3-component vector of uint) +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 0 (const int) +0:136 Sequence +0:136 Constant: +0:136 0 (const int) +0:136 Constant: +0:136 1 (const int) +0:137 move second child to first child ( temp 3-component vector of uint) +0:137 vector swizzle ( temp 3-component vector of uint) +0:137 u: direct index for structure ( temp 4-component vector of uint) +0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:137 Constant: +0:137 0 (const uint) +0:137 direct index ( temp uint) +0:137 'dti' ( in 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 0 (const int) +0:137 Sequence +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1 (const int) +0:137 Constant: +0:137 2 (const int) +0:137 subgroupQuadSwapDiagonal ( temp 3-component vector of uint) +0:137 vector swizzle ( temp 3-component vector of uint) +0:137 u: direct index for structure ( temp 4-component vector of uint) +0:137 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:137 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:137 Constant: +0:137 0 (const uint) +0:137 direct index ( temp uint) +0:137 'dti' ( in 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 0 (const int) +0:137 Sequence +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1 (const int) +0:137 Constant: +0:137 2 (const int) +0:139 move second child to first child ( temp 4-component vector of int) +0:139 i: direct index for structure ( temp 4-component vector of int) +0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:139 Constant: +0:139 0 (const uint) +0:139 direct index ( temp uint) +0:139 'dti' ( in 3-component vector of uint) +0:139 Constant: +0:139 0 (const int) +0:139 Constant: +0:139 1 (const int) +0:139 subgroupQuadSwapDiagonal ( temp 4-component vector of int) +0:139 i: direct index for structure ( temp 4-component vector of int) +0:139 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:139 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:139 Constant: +0:139 0 (const uint) +0:139 direct index ( temp uint) +0:139 'dti' ( in 3-component vector of uint) +0:139 Constant: +0:139 0 (const int) +0:139 Constant: +0:139 1 (const int) +0:140 move second child to first child ( temp int) +0:140 direct index ( temp int) +0:140 i: direct index for structure ( temp 4-component vector of int) +0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:140 Constant: +0:140 0 (const uint) +0:140 direct index ( temp uint) +0:140 'dti' ( in 3-component vector of uint) +0:140 Constant: +0:140 0 (const int) +0:140 Constant: +0:140 1 (const int) +0:140 Constant: +0:140 0 (const int) +0:140 subgroupQuadSwapDiagonal ( temp int) +0:140 direct index ( temp int) +0:140 i: direct index for structure ( temp 4-component vector of int) +0:140 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:140 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:140 Constant: +0:140 0 (const uint) +0:140 direct index ( temp uint) +0:140 'dti' ( in 3-component vector of uint) +0:140 Constant: +0:140 0 (const int) +0:140 Constant: +0:140 1 (const int) +0:140 Constant: +0:140 0 (const int) +0:141 move second child to first child ( temp 2-component vector of int) +0:141 vector swizzle ( temp 2-component vector of int) +0:141 i: direct index for structure ( temp 4-component vector of int) +0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:141 Constant: +0:141 0 (const uint) +0:141 direct index ( temp uint) +0:141 'dti' ( in 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:141 Sequence +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:141 subgroupQuadSwapDiagonal ( temp 2-component vector of int) +0:141 vector swizzle ( temp 2-component vector of int) +0:141 i: direct index for structure ( temp 4-component vector of int) +0:141 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:141 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:141 Constant: +0:141 0 (const uint) +0:141 direct index ( temp uint) +0:141 'dti' ( in 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:141 Sequence +0:141 Constant: +0:141 0 (const int) +0:141 Constant: +0:141 1 (const int) +0:142 move second child to first child ( temp 3-component vector of int) +0:142 vector swizzle ( temp 3-component vector of int) +0:142 i: direct index for structure ( temp 4-component vector of int) +0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:142 Constant: +0:142 0 (const uint) +0:142 direct index ( temp uint) +0:142 'dti' ( in 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Sequence +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Constant: +0:142 2 (const int) +0:142 subgroupQuadSwapDiagonal ( temp 3-component vector of int) +0:142 vector swizzle ( temp 3-component vector of int) +0:142 i: direct index for structure ( temp 4-component vector of int) +0:142 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:142 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:142 Constant: +0:142 0 (const uint) +0:142 direct index ( temp uint) +0:142 'dti' ( in 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Sequence +0:142 Constant: +0:142 0 (const int) +0:142 Constant: +0:142 1 (const int) +0:142 Constant: +0:142 2 (const int) +0:144 move second child to first child ( temp 4-component vector of float) +0:144 f: direct index for structure ( temp 4-component vector of float) +0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:144 Constant: +0:144 0 (const uint) +0:144 direct index ( temp uint) +0:144 'dti' ( in 3-component vector of uint) +0:144 Constant: +0:144 0 (const int) +0:144 Constant: +0:144 2 (const int) +0:144 subgroupQuadSwapDiagonal ( temp 4-component vector of float) +0:144 f: direct index for structure ( temp 4-component vector of float) +0:144 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:144 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:144 Constant: +0:144 0 (const uint) +0:144 direct index ( temp uint) +0:144 'dti' ( in 3-component vector of uint) +0:144 Constant: +0:144 0 (const int) +0:144 Constant: +0:144 2 (const int) +0:145 move second child to first child ( temp float) +0:145 direct index ( temp float) +0:145 f: direct index for structure ( temp 4-component vector of float) +0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:145 Constant: +0:145 0 (const uint) +0:145 direct index ( temp uint) +0:145 'dti' ( in 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 Constant: +0:145 2 (const int) +0:145 Constant: +0:145 0 (const int) +0:145 subgroupQuadSwapDiagonal ( temp float) +0:145 direct index ( temp float) +0:145 f: direct index for structure ( temp 4-component vector of float) +0:145 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:145 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:145 Constant: +0:145 0 (const uint) +0:145 direct index ( temp uint) +0:145 'dti' ( in 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 Constant: +0:145 2 (const int) +0:145 Constant: +0:145 0 (const int) +0:146 move second child to first child ( temp 2-component vector of float) +0:146 vector swizzle ( temp 2-component vector of float) +0:146 f: direct index for structure ( temp 4-component vector of float) +0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:146 Constant: +0:146 0 (const uint) +0:146 direct index ( temp uint) +0:146 'dti' ( in 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 2 (const int) +0:146 Sequence +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 1 (const int) +0:146 subgroupQuadSwapDiagonal ( temp 2-component vector of float) +0:146 vector swizzle ( temp 2-component vector of float) +0:146 f: direct index for structure ( temp 4-component vector of float) +0:146 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:146 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:146 Constant: +0:146 0 (const uint) +0:146 direct index ( temp uint) +0:146 'dti' ( in 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 2 (const int) +0:146 Sequence +0:146 Constant: +0:146 0 (const int) +0:146 Constant: +0:146 1 (const int) +0:147 move second child to first child ( temp 3-component vector of float) +0:147 vector swizzle ( temp 3-component vector of float) +0:147 f: direct index for structure ( temp 4-component vector of float) +0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:147 Constant: +0:147 0 (const uint) +0:147 direct index ( temp uint) +0:147 'dti' ( in 3-component vector of uint) +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 2 (const int) +0:147 Sequence +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 1 (const int) +0:147 Constant: +0:147 2 (const int) +0:147 subgroupQuadSwapDiagonal ( temp 3-component vector of float) +0:147 vector swizzle ( temp 3-component vector of float) +0:147 f: direct index for structure ( temp 4-component vector of float) +0:147 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:147 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:147 Constant: +0:147 0 (const uint) +0:147 direct index ( temp uint) +0:147 'dti' ( in 3-component vector of uint) +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 2 (const int) +0:147 Sequence +0:147 Constant: +0:147 0 (const int) +0:147 Constant: +0:147 1 (const int) +0:147 Constant: +0:147 2 (const int) +0:149 move second child to first child ( temp 4-component vector of double) +0:149 d: direct index for structure ( temp 4-component vector of double) +0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:149 Constant: +0:149 0 (const uint) +0:149 direct index ( temp uint) +0:149 'dti' ( in 3-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 Constant: +0:149 3 (const int) +0:149 subgroupQuadSwapDiagonal ( temp 4-component vector of double) +0:149 d: direct index for structure ( temp 4-component vector of double) +0:149 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:149 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:149 Constant: +0:149 0 (const uint) +0:149 direct index ( temp uint) +0:149 'dti' ( in 3-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 Constant: +0:149 3 (const int) +0:150 move second child to first child ( temp double) +0:150 direct index ( temp double) +0:150 d: direct index for structure ( temp 4-component vector of double) +0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:150 Constant: +0:150 0 (const uint) +0:150 direct index ( temp uint) +0:150 'dti' ( in 3-component vector of uint) +0:150 Constant: +0:150 0 (const int) +0:150 Constant: +0:150 3 (const int) +0:150 Constant: +0:150 0 (const int) +0:150 subgroupQuadSwapDiagonal ( temp double) +0:150 direct index ( temp double) +0:150 d: direct index for structure ( temp 4-component vector of double) +0:150 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:150 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:150 Constant: +0:150 0 (const uint) +0:150 direct index ( temp uint) +0:150 'dti' ( in 3-component vector of uint) +0:150 Constant: +0:150 0 (const int) +0:150 Constant: +0:150 3 (const int) +0:150 Constant: +0:150 0 (const int) +0:151 move second child to first child ( temp 2-component vector of double) +0:151 vector swizzle ( temp 2-component vector of double) +0:151 d: direct index for structure ( temp 4-component vector of double) +0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:151 Constant: +0:151 0 (const uint) +0:151 direct index ( temp uint) +0:151 'dti' ( in 3-component vector of uint) +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 3 (const int) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:151 subgroupQuadSwapDiagonal ( temp 2-component vector of double) +0:151 vector swizzle ( temp 2-component vector of double) +0:151 d: direct index for structure ( temp 4-component vector of double) +0:151 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:151 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:151 Constant: +0:151 0 (const uint) +0:151 direct index ( temp uint) +0:151 'dti' ( in 3-component vector of uint) +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 3 (const int) +0:151 Sequence +0:151 Constant: +0:151 0 (const int) +0:151 Constant: +0:151 1 (const int) +0:152 move second child to first child ( temp 3-component vector of double) +0:152 vector swizzle ( temp 3-component vector of double) +0:152 d: direct index for structure ( temp 4-component vector of double) +0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:152 Constant: +0:152 0 (const uint) +0:152 direct index ( temp uint) +0:152 'dti' ( in 3-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 3 (const int) +0:152 Sequence +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 1 (const int) +0:152 Constant: +0:152 2 (const int) +0:152 subgroupQuadSwapDiagonal ( temp 3-component vector of double) +0:152 vector swizzle ( temp 3-component vector of double) +0:152 d: direct index for structure ( temp 4-component vector of double) +0:152 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:152 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:152 Constant: +0:152 0 (const uint) +0:152 direct index ( temp uint) +0:152 'dti' ( in 3-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 3 (const int) +0:152 Sequence +0:152 Constant: +0:152 0 (const int) +0:152 Constant: +0:152 1 (const int) +0:152 Constant: +0:152 2 (const int) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 1120 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformQuad + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "CSMain" 1115 + ExecutionMode 4 LocalSize 32 16 1 + Source HLSL 500 + Name 4 "CSMain" + Name 11 "@CSMain(vu3;" + Name 10 "dti" + Name 20 "Types" + MemberName 20(Types) 0 "u" + MemberName 20(Types) 1 "i" + MemberName 20(Types) 2 "f" + MemberName 20(Types) 3 "d" + Name 22 "data" + MemberName 22(data) 0 "@data" + Name 24 "data" + Name 1113 "dti" + Name 1115 "dti" + Name 1117 "param" + MemberDecorate 20(Types) 0 Offset 0 + MemberDecorate 20(Types) 1 Offset 16 + MemberDecorate 20(Types) 2 Offset 32 + MemberDecorate 20(Types) 3 Offset 64 + Decorate 21 ArrayStride 96 + MemberDecorate 22(data) 0 Offset 0 + Decorate 22(data) BufferBlock + Decorate 24(data) DescriptorSet 0 + Decorate 1115(dti) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeVector 6(int) 4 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 4 + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypeFloat 64 + 19: TypeVector 18(float64_t) 4 + 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) + 21: TypeRuntimeArray 20(Types) + 22(data): TypeStruct 21 + 23: TypePointer Uniform 22(data) + 24(data): 23(ptr) Variable Uniform + 25: 14(int) Constant 0 + 26: 6(int) Constant 0 + 27: TypePointer Function 6(int) + 32: TypePointer Uniform 13(ivec4) + 35: 6(int) Constant 3 + 42: TypePointer Uniform 6(int) + 51: TypeVector 6(int) 2 + 72: 14(int) Constant 1 + 75: TypePointer Uniform 15(ivec4) + 84: TypePointer Uniform 14(int) + 93: TypeVector 14(int) 2 + 105: TypeVector 14(int) 3 + 115: 14(int) Constant 2 + 118: TypePointer Uniform 17(fvec4) + 127: TypePointer Uniform 16(float) + 136: TypeVector 16(float) 2 + 148: TypeVector 16(float) 3 + 158: 14(int) Constant 3 + 161: TypePointer Uniform 19(f64vec4) + 170: TypePointer Uniform 18(float64_t) + 179: TypeVector 18(float64_t) 2 + 191: TypeVector 18(float64_t) 3 + 205: 6(int) Constant 1 + 358: 6(int) Constant 2 + 1114: TypePointer Input 7(ivec3) + 1115(dti): 1114(ptr) Variable Input + 4(CSMain): 2 Function None 3 + 5: Label + 1113(dti): 8(ptr) Variable Function + 1117(param): 8(ptr) Variable Function + 1116: 7(ivec3) Load 1115(dti) + Store 1113(dti) 1116 + 1118: 7(ivec3) Load 1113(dti) + Store 1117(param) 1118 + 1119: 2 FunctionCall 11(@CSMain(vu3;) 1117(param) + Return + FunctionEnd +11(@CSMain(vu3;): 2 Function None 9 + 10(dti): 8(ptr) FunctionParameter + 12: Label + 28: 27(ptr) AccessChain 10(dti) 26 + 29: 6(int) Load 28 + 30: 27(ptr) AccessChain 10(dti) 26 + 31: 6(int) Load 30 + 33: 32(ptr) AccessChain 24(data) 25 31 25 + 34: 13(ivec4) Load 33 + 36: 13(ivec4) GroupNonUniformQuadBroadcast 35 34 26 + 37: 32(ptr) AccessChain 24(data) 25 29 25 + Store 37 36 + 38: 27(ptr) AccessChain 10(dti) 26 + 39: 6(int) Load 38 + 40: 27(ptr) AccessChain 10(dti) 26 + 41: 6(int) Load 40 + 43: 42(ptr) AccessChain 24(data) 25 41 25 26 + 44: 6(int) Load 43 + 45: 6(int) GroupNonUniformQuadBroadcast 35 44 26 + 46: 42(ptr) AccessChain 24(data) 25 39 25 26 + Store 46 45 + 47: 27(ptr) AccessChain 10(dti) 26 + 48: 6(int) Load 47 + 49: 27(ptr) AccessChain 10(dti) 26 + 50: 6(int) Load 49 + 52: 32(ptr) AccessChain 24(data) 25 50 25 + 53: 13(ivec4) Load 52 + 54: 51(ivec2) VectorShuffle 53 53 0 1 + 55: 51(ivec2) GroupNonUniformQuadBroadcast 35 54 26 + 56: 32(ptr) AccessChain 24(data) 25 48 25 + 57: 13(ivec4) Load 56 + 58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 + Store 56 58 + 59: 27(ptr) AccessChain 10(dti) 26 + 60: 6(int) Load 59 + 61: 27(ptr) AccessChain 10(dti) 26 + 62: 6(int) Load 61 + 63: 32(ptr) AccessChain 24(data) 25 62 25 + 64: 13(ivec4) Load 63 + 65: 7(ivec3) VectorShuffle 64 64 0 1 2 + 66: 7(ivec3) GroupNonUniformQuadBroadcast 35 65 26 + 67: 32(ptr) AccessChain 24(data) 25 60 25 + 68: 13(ivec4) Load 67 + 69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 + Store 67 69 + 70: 27(ptr) AccessChain 10(dti) 26 + 71: 6(int) Load 70 + 73: 27(ptr) AccessChain 10(dti) 26 + 74: 6(int) Load 73 + 76: 75(ptr) AccessChain 24(data) 25 74 72 + 77: 15(ivec4) Load 76 + 78: 15(ivec4) GroupNonUniformQuadBroadcast 35 77 26 + 79: 75(ptr) AccessChain 24(data) 25 71 72 + Store 79 78 + 80: 27(ptr) AccessChain 10(dti) 26 + 81: 6(int) Load 80 + 82: 27(ptr) AccessChain 10(dti) 26 + 83: 6(int) Load 82 + 85: 84(ptr) AccessChain 24(data) 25 83 72 26 + 86: 14(int) Load 85 + 87: 14(int) GroupNonUniformQuadBroadcast 35 86 26 + 88: 84(ptr) AccessChain 24(data) 25 81 72 26 + Store 88 87 + 89: 27(ptr) AccessChain 10(dti) 26 + 90: 6(int) Load 89 + 91: 27(ptr) AccessChain 10(dti) 26 + 92: 6(int) Load 91 + 94: 75(ptr) AccessChain 24(data) 25 92 72 + 95: 15(ivec4) Load 94 + 96: 93(ivec2) VectorShuffle 95 95 0 1 + 97: 93(ivec2) GroupNonUniformQuadBroadcast 35 96 26 + 98: 75(ptr) AccessChain 24(data) 25 90 72 + 99: 15(ivec4) Load 98 + 100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 + Store 98 100 + 101: 27(ptr) AccessChain 10(dti) 26 + 102: 6(int) Load 101 + 103: 27(ptr) AccessChain 10(dti) 26 + 104: 6(int) Load 103 + 106: 75(ptr) AccessChain 24(data) 25 104 72 + 107: 15(ivec4) Load 106 + 108: 105(ivec3) VectorShuffle 107 107 0 1 2 + 109: 105(ivec3) GroupNonUniformQuadBroadcast 35 108 26 + 110: 75(ptr) AccessChain 24(data) 25 102 72 + 111: 15(ivec4) Load 110 + 112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 + Store 110 112 + 113: 27(ptr) AccessChain 10(dti) 26 + 114: 6(int) Load 113 + 116: 27(ptr) AccessChain 10(dti) 26 + 117: 6(int) Load 116 + 119: 118(ptr) AccessChain 24(data) 25 117 115 + 120: 17(fvec4) Load 119 + 121: 17(fvec4) GroupNonUniformQuadBroadcast 35 120 26 + 122: 118(ptr) AccessChain 24(data) 25 114 115 + Store 122 121 + 123: 27(ptr) AccessChain 10(dti) 26 + 124: 6(int) Load 123 + 125: 27(ptr) AccessChain 10(dti) 26 + 126: 6(int) Load 125 + 128: 127(ptr) AccessChain 24(data) 25 126 115 26 + 129: 16(float) Load 128 + 130: 16(float) GroupNonUniformQuadBroadcast 35 129 26 + 131: 127(ptr) AccessChain 24(data) 25 124 115 26 + Store 131 130 + 132: 27(ptr) AccessChain 10(dti) 26 + 133: 6(int) Load 132 + 134: 27(ptr) AccessChain 10(dti) 26 + 135: 6(int) Load 134 + 137: 118(ptr) AccessChain 24(data) 25 135 115 + 138: 17(fvec4) Load 137 + 139: 136(fvec2) VectorShuffle 138 138 0 1 + 140: 136(fvec2) GroupNonUniformQuadBroadcast 35 139 26 + 141: 118(ptr) AccessChain 24(data) 25 133 115 + 142: 17(fvec4) Load 141 + 143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 + Store 141 143 + 144: 27(ptr) AccessChain 10(dti) 26 + 145: 6(int) Load 144 + 146: 27(ptr) AccessChain 10(dti) 26 + 147: 6(int) Load 146 + 149: 118(ptr) AccessChain 24(data) 25 147 115 + 150: 17(fvec4) Load 149 + 151: 148(fvec3) VectorShuffle 150 150 0 1 2 + 152: 148(fvec3) GroupNonUniformQuadBroadcast 35 151 26 + 153: 118(ptr) AccessChain 24(data) 25 145 115 + 154: 17(fvec4) Load 153 + 155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 + Store 153 155 + 156: 27(ptr) AccessChain 10(dti) 26 + 157: 6(int) Load 156 + 159: 27(ptr) AccessChain 10(dti) 26 + 160: 6(int) Load 159 + 162: 161(ptr) AccessChain 24(data) 25 160 158 + 163: 19(f64vec4) Load 162 + 164: 19(f64vec4) GroupNonUniformQuadBroadcast 35 163 26 + 165: 161(ptr) AccessChain 24(data) 25 157 158 + Store 165 164 + 166: 27(ptr) AccessChain 10(dti) 26 + 167: 6(int) Load 166 + 168: 27(ptr) AccessChain 10(dti) 26 + 169: 6(int) Load 168 + 171: 170(ptr) AccessChain 24(data) 25 169 158 26 + 172:18(float64_t) Load 171 + 173:18(float64_t) GroupNonUniformQuadBroadcast 35 172 26 + 174: 170(ptr) AccessChain 24(data) 25 167 158 26 + Store 174 173 + 175: 27(ptr) AccessChain 10(dti) 26 + 176: 6(int) Load 175 + 177: 27(ptr) AccessChain 10(dti) 26 + 178: 6(int) Load 177 + 180: 161(ptr) AccessChain 24(data) 25 178 158 + 181: 19(f64vec4) Load 180 + 182:179(f64vec2) VectorShuffle 181 181 0 1 + 183:179(f64vec2) GroupNonUniformQuadBroadcast 35 182 26 + 184: 161(ptr) AccessChain 24(data) 25 176 158 + 185: 19(f64vec4) Load 184 + 186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 + Store 184 186 + 187: 27(ptr) AccessChain 10(dti) 26 + 188: 6(int) Load 187 + 189: 27(ptr) AccessChain 10(dti) 26 + 190: 6(int) Load 189 + 192: 161(ptr) AccessChain 24(data) 25 190 158 + 193: 19(f64vec4) Load 192 + 194:191(f64vec3) VectorShuffle 193 193 0 1 2 + 195:191(f64vec3) GroupNonUniformQuadBroadcast 35 194 26 + 196: 161(ptr) AccessChain 24(data) 25 188 158 + 197: 19(f64vec4) Load 196 + 198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 + Store 196 198 + 199: 27(ptr) AccessChain 10(dti) 26 + 200: 6(int) Load 199 + 201: 27(ptr) AccessChain 10(dti) 26 + 202: 6(int) Load 201 + 203: 32(ptr) AccessChain 24(data) 25 202 25 + 204: 13(ivec4) Load 203 + 206: 13(ivec4) GroupNonUniformQuadBroadcast 35 204 205 + 207: 32(ptr) AccessChain 24(data) 25 200 25 + Store 207 206 + 208: 27(ptr) AccessChain 10(dti) 26 + 209: 6(int) Load 208 + 210: 27(ptr) AccessChain 10(dti) 26 + 211: 6(int) Load 210 + 212: 42(ptr) AccessChain 24(data) 25 211 25 26 + 213: 6(int) Load 212 + 214: 6(int) GroupNonUniformQuadBroadcast 35 213 205 + 215: 42(ptr) AccessChain 24(data) 25 209 25 26 + Store 215 214 + 216: 27(ptr) AccessChain 10(dti) 26 + 217: 6(int) Load 216 + 218: 27(ptr) AccessChain 10(dti) 26 + 219: 6(int) Load 218 + 220: 32(ptr) AccessChain 24(data) 25 219 25 + 221: 13(ivec4) Load 220 + 222: 51(ivec2) VectorShuffle 221 221 0 1 + 223: 51(ivec2) GroupNonUniformQuadBroadcast 35 222 205 + 224: 32(ptr) AccessChain 24(data) 25 217 25 + 225: 13(ivec4) Load 224 + 226: 13(ivec4) VectorShuffle 225 223 4 5 2 3 + Store 224 226 + 227: 27(ptr) AccessChain 10(dti) 26 + 228: 6(int) Load 227 + 229: 27(ptr) AccessChain 10(dti) 26 + 230: 6(int) Load 229 + 231: 32(ptr) AccessChain 24(data) 25 230 25 + 232: 13(ivec4) Load 231 + 233: 7(ivec3) VectorShuffle 232 232 0 1 2 + 234: 7(ivec3) GroupNonUniformQuadBroadcast 35 233 205 + 235: 32(ptr) AccessChain 24(data) 25 228 25 + 236: 13(ivec4) Load 235 + 237: 13(ivec4) VectorShuffle 236 234 4 5 6 3 + Store 235 237 + 238: 27(ptr) AccessChain 10(dti) 26 + 239: 6(int) Load 238 + 240: 27(ptr) AccessChain 10(dti) 26 + 241: 6(int) Load 240 + 242: 75(ptr) AccessChain 24(data) 25 241 72 + 243: 15(ivec4) Load 242 + 244: 15(ivec4) GroupNonUniformQuadBroadcast 35 243 205 + 245: 75(ptr) AccessChain 24(data) 25 239 72 + Store 245 244 + 246: 27(ptr) AccessChain 10(dti) 26 + 247: 6(int) Load 246 + 248: 27(ptr) AccessChain 10(dti) 26 + 249: 6(int) Load 248 + 250: 84(ptr) AccessChain 24(data) 25 249 72 26 + 251: 14(int) Load 250 + 252: 14(int) GroupNonUniformQuadBroadcast 35 251 205 + 253: 84(ptr) AccessChain 24(data) 25 247 72 26 + Store 253 252 + 254: 27(ptr) AccessChain 10(dti) 26 + 255: 6(int) Load 254 + 256: 27(ptr) AccessChain 10(dti) 26 + 257: 6(int) Load 256 + 258: 75(ptr) AccessChain 24(data) 25 257 72 + 259: 15(ivec4) Load 258 + 260: 93(ivec2) VectorShuffle 259 259 0 1 + 261: 93(ivec2) GroupNonUniformQuadBroadcast 35 260 205 + 262: 75(ptr) AccessChain 24(data) 25 255 72 + 263: 15(ivec4) Load 262 + 264: 15(ivec4) VectorShuffle 263 261 4 5 2 3 + Store 262 264 + 265: 27(ptr) AccessChain 10(dti) 26 + 266: 6(int) Load 265 + 267: 27(ptr) AccessChain 10(dti) 26 + 268: 6(int) Load 267 + 269: 75(ptr) AccessChain 24(data) 25 268 72 + 270: 15(ivec4) Load 269 + 271: 105(ivec3) VectorShuffle 270 270 0 1 2 + 272: 105(ivec3) GroupNonUniformQuadBroadcast 35 271 205 + 273: 75(ptr) AccessChain 24(data) 25 266 72 + 274: 15(ivec4) Load 273 + 275: 15(ivec4) VectorShuffle 274 272 4 5 6 3 + Store 273 275 + 276: 27(ptr) AccessChain 10(dti) 26 + 277: 6(int) Load 276 + 278: 27(ptr) AccessChain 10(dti) 26 + 279: 6(int) Load 278 + 280: 118(ptr) AccessChain 24(data) 25 279 115 + 281: 17(fvec4) Load 280 + 282: 17(fvec4) GroupNonUniformQuadBroadcast 35 281 205 + 283: 118(ptr) AccessChain 24(data) 25 277 115 + Store 283 282 + 284: 27(ptr) AccessChain 10(dti) 26 + 285: 6(int) Load 284 + 286: 27(ptr) AccessChain 10(dti) 26 + 287: 6(int) Load 286 + 288: 127(ptr) AccessChain 24(data) 25 287 115 26 + 289: 16(float) Load 288 + 290: 16(float) GroupNonUniformQuadBroadcast 35 289 205 + 291: 127(ptr) AccessChain 24(data) 25 285 115 26 + Store 291 290 + 292: 27(ptr) AccessChain 10(dti) 26 + 293: 6(int) Load 292 + 294: 27(ptr) AccessChain 10(dti) 26 + 295: 6(int) Load 294 + 296: 118(ptr) AccessChain 24(data) 25 295 115 + 297: 17(fvec4) Load 296 + 298: 136(fvec2) VectorShuffle 297 297 0 1 + 299: 136(fvec2) GroupNonUniformQuadBroadcast 35 298 205 + 300: 118(ptr) AccessChain 24(data) 25 293 115 + 301: 17(fvec4) Load 300 + 302: 17(fvec4) VectorShuffle 301 299 4 5 2 3 + Store 300 302 + 303: 27(ptr) AccessChain 10(dti) 26 + 304: 6(int) Load 303 + 305: 27(ptr) AccessChain 10(dti) 26 + 306: 6(int) Load 305 + 307: 118(ptr) AccessChain 24(data) 25 306 115 + 308: 17(fvec4) Load 307 + 309: 148(fvec3) VectorShuffle 308 308 0 1 2 + 310: 148(fvec3) GroupNonUniformQuadBroadcast 35 309 205 + 311: 118(ptr) AccessChain 24(data) 25 304 115 + 312: 17(fvec4) Load 311 + 313: 17(fvec4) VectorShuffle 312 310 4 5 6 3 + Store 311 313 + 314: 27(ptr) AccessChain 10(dti) 26 + 315: 6(int) Load 314 + 316: 27(ptr) AccessChain 10(dti) 26 + 317: 6(int) Load 316 + 318: 161(ptr) AccessChain 24(data) 25 317 158 + 319: 19(f64vec4) Load 318 + 320: 19(f64vec4) GroupNonUniformQuadBroadcast 35 319 205 + 321: 161(ptr) AccessChain 24(data) 25 315 158 + Store 321 320 + 322: 27(ptr) AccessChain 10(dti) 26 + 323: 6(int) Load 322 + 324: 27(ptr) AccessChain 10(dti) 26 + 325: 6(int) Load 324 + 326: 170(ptr) AccessChain 24(data) 25 325 158 26 + 327:18(float64_t) Load 326 + 328:18(float64_t) GroupNonUniformQuadBroadcast 35 327 205 + 329: 170(ptr) AccessChain 24(data) 25 323 158 26 + Store 329 328 + 330: 27(ptr) AccessChain 10(dti) 26 + 331: 6(int) Load 330 + 332: 27(ptr) AccessChain 10(dti) 26 + 333: 6(int) Load 332 + 334: 161(ptr) AccessChain 24(data) 25 333 158 + 335: 19(f64vec4) Load 334 + 336:179(f64vec2) VectorShuffle 335 335 0 1 + 337:179(f64vec2) GroupNonUniformQuadBroadcast 35 336 205 + 338: 161(ptr) AccessChain 24(data) 25 331 158 + 339: 19(f64vec4) Load 338 + 340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3 + Store 338 340 + 341: 27(ptr) AccessChain 10(dti) 26 + 342: 6(int) Load 341 + 343: 27(ptr) AccessChain 10(dti) 26 + 344: 6(int) Load 343 + 345: 161(ptr) AccessChain 24(data) 25 344 158 + 346: 19(f64vec4) Load 345 + 347:191(f64vec3) VectorShuffle 346 346 0 1 2 + 348:191(f64vec3) GroupNonUniformQuadBroadcast 35 347 205 + 349: 161(ptr) AccessChain 24(data) 25 342 158 + 350: 19(f64vec4) Load 349 + 351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3 + Store 349 351 + 352: 27(ptr) AccessChain 10(dti) 26 + 353: 6(int) Load 352 + 354: 27(ptr) AccessChain 10(dti) 26 + 355: 6(int) Load 354 + 356: 32(ptr) AccessChain 24(data) 25 355 25 + 357: 13(ivec4) Load 356 + 359: 13(ivec4) GroupNonUniformQuadBroadcast 35 357 358 + 360: 32(ptr) AccessChain 24(data) 25 353 25 + Store 360 359 + 361: 27(ptr) AccessChain 10(dti) 26 + 362: 6(int) Load 361 + 363: 27(ptr) AccessChain 10(dti) 26 + 364: 6(int) Load 363 + 365: 42(ptr) AccessChain 24(data) 25 364 25 26 + 366: 6(int) Load 365 + 367: 6(int) GroupNonUniformQuadBroadcast 35 366 358 + 368: 42(ptr) AccessChain 24(data) 25 362 25 26 + Store 368 367 + 369: 27(ptr) AccessChain 10(dti) 26 + 370: 6(int) Load 369 + 371: 27(ptr) AccessChain 10(dti) 26 + 372: 6(int) Load 371 + 373: 32(ptr) AccessChain 24(data) 25 372 25 + 374: 13(ivec4) Load 373 + 375: 51(ivec2) VectorShuffle 374 374 0 1 + 376: 51(ivec2) GroupNonUniformQuadBroadcast 35 375 358 + 377: 32(ptr) AccessChain 24(data) 25 370 25 + 378: 13(ivec4) Load 377 + 379: 13(ivec4) VectorShuffle 378 376 4 5 2 3 + Store 377 379 + 380: 27(ptr) AccessChain 10(dti) 26 + 381: 6(int) Load 380 + 382: 27(ptr) AccessChain 10(dti) 26 + 383: 6(int) Load 382 + 384: 32(ptr) AccessChain 24(data) 25 383 25 + 385: 13(ivec4) Load 384 + 386: 7(ivec3) VectorShuffle 385 385 0 1 2 + 387: 7(ivec3) GroupNonUniformQuadBroadcast 35 386 358 + 388: 32(ptr) AccessChain 24(data) 25 381 25 + 389: 13(ivec4) Load 388 + 390: 13(ivec4) VectorShuffle 389 387 4 5 6 3 + Store 388 390 + 391: 27(ptr) AccessChain 10(dti) 26 + 392: 6(int) Load 391 + 393: 27(ptr) AccessChain 10(dti) 26 + 394: 6(int) Load 393 + 395: 75(ptr) AccessChain 24(data) 25 394 72 + 396: 15(ivec4) Load 395 + 397: 15(ivec4) GroupNonUniformQuadBroadcast 35 396 358 + 398: 75(ptr) AccessChain 24(data) 25 392 72 + Store 398 397 + 399: 27(ptr) AccessChain 10(dti) 26 + 400: 6(int) Load 399 + 401: 27(ptr) AccessChain 10(dti) 26 + 402: 6(int) Load 401 + 403: 84(ptr) AccessChain 24(data) 25 402 72 26 + 404: 14(int) Load 403 + 405: 14(int) GroupNonUniformQuadBroadcast 35 404 358 + 406: 84(ptr) AccessChain 24(data) 25 400 72 26 + Store 406 405 + 407: 27(ptr) AccessChain 10(dti) 26 + 408: 6(int) Load 407 + 409: 27(ptr) AccessChain 10(dti) 26 + 410: 6(int) Load 409 + 411: 75(ptr) AccessChain 24(data) 25 410 72 + 412: 15(ivec4) Load 411 + 413: 93(ivec2) VectorShuffle 412 412 0 1 + 414: 93(ivec2) GroupNonUniformQuadBroadcast 35 413 358 + 415: 75(ptr) AccessChain 24(data) 25 408 72 + 416: 15(ivec4) Load 415 + 417: 15(ivec4) VectorShuffle 416 414 4 5 2 3 + Store 415 417 + 418: 27(ptr) AccessChain 10(dti) 26 + 419: 6(int) Load 418 + 420: 27(ptr) AccessChain 10(dti) 26 + 421: 6(int) Load 420 + 422: 75(ptr) AccessChain 24(data) 25 421 72 + 423: 15(ivec4) Load 422 + 424: 105(ivec3) VectorShuffle 423 423 0 1 2 + 425: 105(ivec3) GroupNonUniformQuadBroadcast 35 424 358 + 426: 75(ptr) AccessChain 24(data) 25 419 72 + 427: 15(ivec4) Load 426 + 428: 15(ivec4) VectorShuffle 427 425 4 5 6 3 + Store 426 428 + 429: 27(ptr) AccessChain 10(dti) 26 + 430: 6(int) Load 429 + 431: 27(ptr) AccessChain 10(dti) 26 + 432: 6(int) Load 431 + 433: 118(ptr) AccessChain 24(data) 25 432 115 + 434: 17(fvec4) Load 433 + 435: 17(fvec4) GroupNonUniformQuadBroadcast 35 434 358 + 436: 118(ptr) AccessChain 24(data) 25 430 115 + Store 436 435 + 437: 27(ptr) AccessChain 10(dti) 26 + 438: 6(int) Load 437 + 439: 27(ptr) AccessChain 10(dti) 26 + 440: 6(int) Load 439 + 441: 127(ptr) AccessChain 24(data) 25 440 115 26 + 442: 16(float) Load 441 + 443: 16(float) GroupNonUniformQuadBroadcast 35 442 358 + 444: 127(ptr) AccessChain 24(data) 25 438 115 26 + Store 444 443 + 445: 27(ptr) AccessChain 10(dti) 26 + 446: 6(int) Load 445 + 447: 27(ptr) AccessChain 10(dti) 26 + 448: 6(int) Load 447 + 449: 118(ptr) AccessChain 24(data) 25 448 115 + 450: 17(fvec4) Load 449 + 451: 136(fvec2) VectorShuffle 450 450 0 1 + 452: 136(fvec2) GroupNonUniformQuadBroadcast 35 451 358 + 453: 118(ptr) AccessChain 24(data) 25 446 115 + 454: 17(fvec4) Load 453 + 455: 17(fvec4) VectorShuffle 454 452 4 5 2 3 + Store 453 455 + 456: 27(ptr) AccessChain 10(dti) 26 + 457: 6(int) Load 456 + 458: 27(ptr) AccessChain 10(dti) 26 + 459: 6(int) Load 458 + 460: 118(ptr) AccessChain 24(data) 25 459 115 + 461: 17(fvec4) Load 460 + 462: 148(fvec3) VectorShuffle 461 461 0 1 2 + 463: 148(fvec3) GroupNonUniformQuadBroadcast 35 462 358 + 464: 118(ptr) AccessChain 24(data) 25 457 115 + 465: 17(fvec4) Load 464 + 466: 17(fvec4) VectorShuffle 465 463 4 5 6 3 + Store 464 466 + 467: 27(ptr) AccessChain 10(dti) 26 + 468: 6(int) Load 467 + 469: 27(ptr) AccessChain 10(dti) 26 + 470: 6(int) Load 469 + 471: 161(ptr) AccessChain 24(data) 25 470 158 + 472: 19(f64vec4) Load 471 + 473: 19(f64vec4) GroupNonUniformQuadBroadcast 35 472 358 + 474: 161(ptr) AccessChain 24(data) 25 468 158 + Store 474 473 + 475: 27(ptr) AccessChain 10(dti) 26 + 476: 6(int) Load 475 + 477: 27(ptr) AccessChain 10(dti) 26 + 478: 6(int) Load 477 + 479: 170(ptr) AccessChain 24(data) 25 478 158 26 + 480:18(float64_t) Load 479 + 481:18(float64_t) GroupNonUniformQuadBroadcast 35 480 358 + 482: 170(ptr) AccessChain 24(data) 25 476 158 26 + Store 482 481 + 483: 27(ptr) AccessChain 10(dti) 26 + 484: 6(int) Load 483 + 485: 27(ptr) AccessChain 10(dti) 26 + 486: 6(int) Load 485 + 487: 161(ptr) AccessChain 24(data) 25 486 158 + 488: 19(f64vec4) Load 487 + 489:179(f64vec2) VectorShuffle 488 488 0 1 + 490:179(f64vec2) GroupNonUniformQuadBroadcast 35 489 358 + 491: 161(ptr) AccessChain 24(data) 25 484 158 + 492: 19(f64vec4) Load 491 + 493: 19(f64vec4) VectorShuffle 492 490 4 5 2 3 + Store 491 493 + 494: 27(ptr) AccessChain 10(dti) 26 + 495: 6(int) Load 494 + 496: 27(ptr) AccessChain 10(dti) 26 + 497: 6(int) Load 496 + 498: 161(ptr) AccessChain 24(data) 25 497 158 + 499: 19(f64vec4) Load 498 + 500:191(f64vec3) VectorShuffle 499 499 0 1 2 + 501:191(f64vec3) GroupNonUniformQuadBroadcast 35 500 358 + 502: 161(ptr) AccessChain 24(data) 25 495 158 + 503: 19(f64vec4) Load 502 + 504: 19(f64vec4) VectorShuffle 503 501 4 5 6 3 + Store 502 504 + 505: 27(ptr) AccessChain 10(dti) 26 + 506: 6(int) Load 505 + 507: 27(ptr) AccessChain 10(dti) 26 + 508: 6(int) Load 507 + 509: 32(ptr) AccessChain 24(data) 25 508 25 + 510: 13(ivec4) Load 509 + 511: 13(ivec4) GroupNonUniformQuadBroadcast 35 510 35 + 512: 32(ptr) AccessChain 24(data) 25 506 25 + Store 512 511 + 513: 27(ptr) AccessChain 10(dti) 26 + 514: 6(int) Load 513 + 515: 27(ptr) AccessChain 10(dti) 26 + 516: 6(int) Load 515 + 517: 42(ptr) AccessChain 24(data) 25 516 25 26 + 518: 6(int) Load 517 + 519: 6(int) GroupNonUniformQuadBroadcast 35 518 35 + 520: 42(ptr) AccessChain 24(data) 25 514 25 26 + Store 520 519 + 521: 27(ptr) AccessChain 10(dti) 26 + 522: 6(int) Load 521 + 523: 27(ptr) AccessChain 10(dti) 26 + 524: 6(int) Load 523 + 525: 32(ptr) AccessChain 24(data) 25 524 25 + 526: 13(ivec4) Load 525 + 527: 51(ivec2) VectorShuffle 526 526 0 1 + 528: 51(ivec2) GroupNonUniformQuadBroadcast 35 527 35 + 529: 32(ptr) AccessChain 24(data) 25 522 25 + 530: 13(ivec4) Load 529 + 531: 13(ivec4) VectorShuffle 530 528 4 5 2 3 + Store 529 531 + 532: 27(ptr) AccessChain 10(dti) 26 + 533: 6(int) Load 532 + 534: 27(ptr) AccessChain 10(dti) 26 + 535: 6(int) Load 534 + 536: 32(ptr) AccessChain 24(data) 25 535 25 + 537: 13(ivec4) Load 536 + 538: 7(ivec3) VectorShuffle 537 537 0 1 2 + 539: 7(ivec3) GroupNonUniformQuadBroadcast 35 538 35 + 540: 32(ptr) AccessChain 24(data) 25 533 25 + 541: 13(ivec4) Load 540 + 542: 13(ivec4) VectorShuffle 541 539 4 5 6 3 + Store 540 542 + 543: 27(ptr) AccessChain 10(dti) 26 + 544: 6(int) Load 543 + 545: 27(ptr) AccessChain 10(dti) 26 + 546: 6(int) Load 545 + 547: 75(ptr) AccessChain 24(data) 25 546 72 + 548: 15(ivec4) Load 547 + 549: 15(ivec4) GroupNonUniformQuadBroadcast 35 548 35 + 550: 75(ptr) AccessChain 24(data) 25 544 72 + Store 550 549 + 551: 27(ptr) AccessChain 10(dti) 26 + 552: 6(int) Load 551 + 553: 27(ptr) AccessChain 10(dti) 26 + 554: 6(int) Load 553 + 555: 84(ptr) AccessChain 24(data) 25 554 72 26 + 556: 14(int) Load 555 + 557: 14(int) GroupNonUniformQuadBroadcast 35 556 35 + 558: 84(ptr) AccessChain 24(data) 25 552 72 26 + Store 558 557 + 559: 27(ptr) AccessChain 10(dti) 26 + 560: 6(int) Load 559 + 561: 27(ptr) AccessChain 10(dti) 26 + 562: 6(int) Load 561 + 563: 75(ptr) AccessChain 24(data) 25 562 72 + 564: 15(ivec4) Load 563 + 565: 93(ivec2) VectorShuffle 564 564 0 1 + 566: 93(ivec2) GroupNonUniformQuadBroadcast 35 565 35 + 567: 75(ptr) AccessChain 24(data) 25 560 72 + 568: 15(ivec4) Load 567 + 569: 15(ivec4) VectorShuffle 568 566 4 5 2 3 + Store 567 569 + 570: 27(ptr) AccessChain 10(dti) 26 + 571: 6(int) Load 570 + 572: 27(ptr) AccessChain 10(dti) 26 + 573: 6(int) Load 572 + 574: 75(ptr) AccessChain 24(data) 25 573 72 + 575: 15(ivec4) Load 574 + 576: 105(ivec3) VectorShuffle 575 575 0 1 2 + 577: 105(ivec3) GroupNonUniformQuadBroadcast 35 576 35 + 578: 75(ptr) AccessChain 24(data) 25 571 72 + 579: 15(ivec4) Load 578 + 580: 15(ivec4) VectorShuffle 579 577 4 5 6 3 + Store 578 580 + 581: 27(ptr) AccessChain 10(dti) 26 + 582: 6(int) Load 581 + 583: 27(ptr) AccessChain 10(dti) 26 + 584: 6(int) Load 583 + 585: 118(ptr) AccessChain 24(data) 25 584 115 + 586: 17(fvec4) Load 585 + 587: 17(fvec4) GroupNonUniformQuadBroadcast 35 586 35 + 588: 118(ptr) AccessChain 24(data) 25 582 115 + Store 588 587 + 589: 27(ptr) AccessChain 10(dti) 26 + 590: 6(int) Load 589 + 591: 27(ptr) AccessChain 10(dti) 26 + 592: 6(int) Load 591 + 593: 127(ptr) AccessChain 24(data) 25 592 115 26 + 594: 16(float) Load 593 + 595: 16(float) GroupNonUniformQuadBroadcast 35 594 35 + 596: 127(ptr) AccessChain 24(data) 25 590 115 26 + Store 596 595 + 597: 27(ptr) AccessChain 10(dti) 26 + 598: 6(int) Load 597 + 599: 27(ptr) AccessChain 10(dti) 26 + 600: 6(int) Load 599 + 601: 118(ptr) AccessChain 24(data) 25 600 115 + 602: 17(fvec4) Load 601 + 603: 136(fvec2) VectorShuffle 602 602 0 1 + 604: 136(fvec2) GroupNonUniformQuadBroadcast 35 603 35 + 605: 118(ptr) AccessChain 24(data) 25 598 115 + 606: 17(fvec4) Load 605 + 607: 17(fvec4) VectorShuffle 606 604 4 5 2 3 + Store 605 607 + 608: 27(ptr) AccessChain 10(dti) 26 + 609: 6(int) Load 608 + 610: 27(ptr) AccessChain 10(dti) 26 + 611: 6(int) Load 610 + 612: 118(ptr) AccessChain 24(data) 25 611 115 + 613: 17(fvec4) Load 612 + 614: 148(fvec3) VectorShuffle 613 613 0 1 2 + 615: 148(fvec3) GroupNonUniformQuadBroadcast 35 614 35 + 616: 118(ptr) AccessChain 24(data) 25 609 115 + 617: 17(fvec4) Load 616 + 618: 17(fvec4) VectorShuffle 617 615 4 5 6 3 + Store 616 618 + 619: 27(ptr) AccessChain 10(dti) 26 + 620: 6(int) Load 619 + 621: 27(ptr) AccessChain 10(dti) 26 + 622: 6(int) Load 621 + 623: 161(ptr) AccessChain 24(data) 25 622 158 + 624: 19(f64vec4) Load 623 + 625: 19(f64vec4) GroupNonUniformQuadBroadcast 35 624 35 + 626: 161(ptr) AccessChain 24(data) 25 620 158 + Store 626 625 + 627: 27(ptr) AccessChain 10(dti) 26 + 628: 6(int) Load 627 + 629: 27(ptr) AccessChain 10(dti) 26 + 630: 6(int) Load 629 + 631: 170(ptr) AccessChain 24(data) 25 630 158 26 + 632:18(float64_t) Load 631 + 633:18(float64_t) GroupNonUniformQuadBroadcast 35 632 35 + 634: 170(ptr) AccessChain 24(data) 25 628 158 26 + Store 634 633 + 635: 27(ptr) AccessChain 10(dti) 26 + 636: 6(int) Load 635 + 637: 27(ptr) AccessChain 10(dti) 26 + 638: 6(int) Load 637 + 639: 161(ptr) AccessChain 24(data) 25 638 158 + 640: 19(f64vec4) Load 639 + 641:179(f64vec2) VectorShuffle 640 640 0 1 + 642:179(f64vec2) GroupNonUniformQuadBroadcast 35 641 35 + 643: 161(ptr) AccessChain 24(data) 25 636 158 + 644: 19(f64vec4) Load 643 + 645: 19(f64vec4) VectorShuffle 644 642 4 5 2 3 + Store 643 645 + 646: 27(ptr) AccessChain 10(dti) 26 + 647: 6(int) Load 646 + 648: 27(ptr) AccessChain 10(dti) 26 + 649: 6(int) Load 648 + 650: 161(ptr) AccessChain 24(data) 25 649 158 + 651: 19(f64vec4) Load 650 + 652:191(f64vec3) VectorShuffle 651 651 0 1 2 + 653:191(f64vec3) GroupNonUniformQuadBroadcast 35 652 35 + 654: 161(ptr) AccessChain 24(data) 25 647 158 + 655: 19(f64vec4) Load 654 + 656: 19(f64vec4) VectorShuffle 655 653 4 5 6 3 + Store 654 656 + 657: 27(ptr) AccessChain 10(dti) 26 + 658: 6(int) Load 657 + 659: 27(ptr) AccessChain 10(dti) 26 + 660: 6(int) Load 659 + 661: 32(ptr) AccessChain 24(data) 25 660 25 + 662: 13(ivec4) Load 661 + 663: 13(ivec4) GroupNonUniformQuadSwap 35 662 26 + 664: 32(ptr) AccessChain 24(data) 25 658 25 + Store 664 663 + 665: 27(ptr) AccessChain 10(dti) 26 + 666: 6(int) Load 665 + 667: 27(ptr) AccessChain 10(dti) 26 + 668: 6(int) Load 667 + 669: 42(ptr) AccessChain 24(data) 25 668 25 26 + 670: 6(int) Load 669 + 671: 6(int) GroupNonUniformQuadSwap 35 670 26 + 672: 42(ptr) AccessChain 24(data) 25 666 25 26 + Store 672 671 + 673: 27(ptr) AccessChain 10(dti) 26 + 674: 6(int) Load 673 + 675: 27(ptr) AccessChain 10(dti) 26 + 676: 6(int) Load 675 + 677: 32(ptr) AccessChain 24(data) 25 676 25 + 678: 13(ivec4) Load 677 + 679: 51(ivec2) VectorShuffle 678 678 0 1 + 680: 51(ivec2) GroupNonUniformQuadSwap 35 679 26 + 681: 32(ptr) AccessChain 24(data) 25 674 25 + 682: 13(ivec4) Load 681 + 683: 13(ivec4) VectorShuffle 682 680 4 5 2 3 + Store 681 683 + 684: 27(ptr) AccessChain 10(dti) 26 + 685: 6(int) Load 684 + 686: 27(ptr) AccessChain 10(dti) 26 + 687: 6(int) Load 686 + 688: 32(ptr) AccessChain 24(data) 25 687 25 + 689: 13(ivec4) Load 688 + 690: 7(ivec3) VectorShuffle 689 689 0 1 2 + 691: 7(ivec3) GroupNonUniformQuadSwap 35 690 26 + 692: 32(ptr) AccessChain 24(data) 25 685 25 + 693: 13(ivec4) Load 692 + 694: 13(ivec4) VectorShuffle 693 691 4 5 6 3 + Store 692 694 + 695: 27(ptr) AccessChain 10(dti) 26 + 696: 6(int) Load 695 + 697: 27(ptr) AccessChain 10(dti) 26 + 698: 6(int) Load 697 + 699: 75(ptr) AccessChain 24(data) 25 698 72 + 700: 15(ivec4) Load 699 + 701: 15(ivec4) GroupNonUniformQuadSwap 35 700 26 + 702: 75(ptr) AccessChain 24(data) 25 696 72 + Store 702 701 + 703: 27(ptr) AccessChain 10(dti) 26 + 704: 6(int) Load 703 + 705: 27(ptr) AccessChain 10(dti) 26 + 706: 6(int) Load 705 + 707: 84(ptr) AccessChain 24(data) 25 706 72 26 + 708: 14(int) Load 707 + 709: 14(int) GroupNonUniformQuadSwap 35 708 26 + 710: 84(ptr) AccessChain 24(data) 25 704 72 26 + Store 710 709 + 711: 27(ptr) AccessChain 10(dti) 26 + 712: 6(int) Load 711 + 713: 27(ptr) AccessChain 10(dti) 26 + 714: 6(int) Load 713 + 715: 75(ptr) AccessChain 24(data) 25 714 72 + 716: 15(ivec4) Load 715 + 717: 93(ivec2) VectorShuffle 716 716 0 1 + 718: 93(ivec2) GroupNonUniformQuadSwap 35 717 26 + 719: 75(ptr) AccessChain 24(data) 25 712 72 + 720: 15(ivec4) Load 719 + 721: 15(ivec4) VectorShuffle 720 718 4 5 2 3 + Store 719 721 + 722: 27(ptr) AccessChain 10(dti) 26 + 723: 6(int) Load 722 + 724: 27(ptr) AccessChain 10(dti) 26 + 725: 6(int) Load 724 + 726: 75(ptr) AccessChain 24(data) 25 725 72 + 727: 15(ivec4) Load 726 + 728: 105(ivec3) VectorShuffle 727 727 0 1 2 + 729: 105(ivec3) GroupNonUniformQuadSwap 35 728 26 + 730: 75(ptr) AccessChain 24(data) 25 723 72 + 731: 15(ivec4) Load 730 + 732: 15(ivec4) VectorShuffle 731 729 4 5 6 3 + Store 730 732 + 733: 27(ptr) AccessChain 10(dti) 26 + 734: 6(int) Load 733 + 735: 27(ptr) AccessChain 10(dti) 26 + 736: 6(int) Load 735 + 737: 118(ptr) AccessChain 24(data) 25 736 115 + 738: 17(fvec4) Load 737 + 739: 17(fvec4) GroupNonUniformQuadSwap 35 738 26 + 740: 118(ptr) AccessChain 24(data) 25 734 115 + Store 740 739 + 741: 27(ptr) AccessChain 10(dti) 26 + 742: 6(int) Load 741 + 743: 27(ptr) AccessChain 10(dti) 26 + 744: 6(int) Load 743 + 745: 127(ptr) AccessChain 24(data) 25 744 115 26 + 746: 16(float) Load 745 + 747: 16(float) GroupNonUniformQuadSwap 35 746 26 + 748: 127(ptr) AccessChain 24(data) 25 742 115 26 + Store 748 747 + 749: 27(ptr) AccessChain 10(dti) 26 + 750: 6(int) Load 749 + 751: 27(ptr) AccessChain 10(dti) 26 + 752: 6(int) Load 751 + 753: 118(ptr) AccessChain 24(data) 25 752 115 + 754: 17(fvec4) Load 753 + 755: 136(fvec2) VectorShuffle 754 754 0 1 + 756: 136(fvec2) GroupNonUniformQuadSwap 35 755 26 + 757: 118(ptr) AccessChain 24(data) 25 750 115 + 758: 17(fvec4) Load 757 + 759: 17(fvec4) VectorShuffle 758 756 4 5 2 3 + Store 757 759 + 760: 27(ptr) AccessChain 10(dti) 26 + 761: 6(int) Load 760 + 762: 27(ptr) AccessChain 10(dti) 26 + 763: 6(int) Load 762 + 764: 118(ptr) AccessChain 24(data) 25 763 115 + 765: 17(fvec4) Load 764 + 766: 148(fvec3) VectorShuffle 765 765 0 1 2 + 767: 148(fvec3) GroupNonUniformQuadSwap 35 766 26 + 768: 118(ptr) AccessChain 24(data) 25 761 115 + 769: 17(fvec4) Load 768 + 770: 17(fvec4) VectorShuffle 769 767 4 5 6 3 + Store 768 770 + 771: 27(ptr) AccessChain 10(dti) 26 + 772: 6(int) Load 771 + 773: 27(ptr) AccessChain 10(dti) 26 + 774: 6(int) Load 773 + 775: 161(ptr) AccessChain 24(data) 25 774 158 + 776: 19(f64vec4) Load 775 + 777: 19(f64vec4) GroupNonUniformQuadSwap 35 776 26 + 778: 161(ptr) AccessChain 24(data) 25 772 158 + Store 778 777 + 779: 27(ptr) AccessChain 10(dti) 26 + 780: 6(int) Load 779 + 781: 27(ptr) AccessChain 10(dti) 26 + 782: 6(int) Load 781 + 783: 170(ptr) AccessChain 24(data) 25 782 158 26 + 784:18(float64_t) Load 783 + 785:18(float64_t) GroupNonUniformQuadSwap 35 784 26 + 786: 170(ptr) AccessChain 24(data) 25 780 158 26 + Store 786 785 + 787: 27(ptr) AccessChain 10(dti) 26 + 788: 6(int) Load 787 + 789: 27(ptr) AccessChain 10(dti) 26 + 790: 6(int) Load 789 + 791: 161(ptr) AccessChain 24(data) 25 790 158 + 792: 19(f64vec4) Load 791 + 793:179(f64vec2) VectorShuffle 792 792 0 1 + 794:179(f64vec2) GroupNonUniformQuadSwap 35 793 26 + 795: 161(ptr) AccessChain 24(data) 25 788 158 + 796: 19(f64vec4) Load 795 + 797: 19(f64vec4) VectorShuffle 796 794 4 5 2 3 + Store 795 797 + 798: 27(ptr) AccessChain 10(dti) 26 + 799: 6(int) Load 798 + 800: 27(ptr) AccessChain 10(dti) 26 + 801: 6(int) Load 800 + 802: 161(ptr) AccessChain 24(data) 25 801 158 + 803: 19(f64vec4) Load 802 + 804:191(f64vec3) VectorShuffle 803 803 0 1 2 + 805:191(f64vec3) GroupNonUniformQuadSwap 35 804 26 + 806: 161(ptr) AccessChain 24(data) 25 799 158 + 807: 19(f64vec4) Load 806 + 808: 19(f64vec4) VectorShuffle 807 805 4 5 6 3 + Store 806 808 + 809: 27(ptr) AccessChain 10(dti) 26 + 810: 6(int) Load 809 + 811: 27(ptr) AccessChain 10(dti) 26 + 812: 6(int) Load 811 + 813: 32(ptr) AccessChain 24(data) 25 812 25 + 814: 13(ivec4) Load 813 + 815: 13(ivec4) GroupNonUniformQuadSwap 35 814 205 + 816: 32(ptr) AccessChain 24(data) 25 810 25 + Store 816 815 + 817: 27(ptr) AccessChain 10(dti) 26 + 818: 6(int) Load 817 + 819: 27(ptr) AccessChain 10(dti) 26 + 820: 6(int) Load 819 + 821: 42(ptr) AccessChain 24(data) 25 820 25 26 + 822: 6(int) Load 821 + 823: 6(int) GroupNonUniformQuadSwap 35 822 205 + 824: 42(ptr) AccessChain 24(data) 25 818 25 26 + Store 824 823 + 825: 27(ptr) AccessChain 10(dti) 26 + 826: 6(int) Load 825 + 827: 27(ptr) AccessChain 10(dti) 26 + 828: 6(int) Load 827 + 829: 32(ptr) AccessChain 24(data) 25 828 25 + 830: 13(ivec4) Load 829 + 831: 51(ivec2) VectorShuffle 830 830 0 1 + 832: 51(ivec2) GroupNonUniformQuadSwap 35 831 205 + 833: 32(ptr) AccessChain 24(data) 25 826 25 + 834: 13(ivec4) Load 833 + 835: 13(ivec4) VectorShuffle 834 832 4 5 2 3 + Store 833 835 + 836: 27(ptr) AccessChain 10(dti) 26 + 837: 6(int) Load 836 + 838: 27(ptr) AccessChain 10(dti) 26 + 839: 6(int) Load 838 + 840: 32(ptr) AccessChain 24(data) 25 839 25 + 841: 13(ivec4) Load 840 + 842: 7(ivec3) VectorShuffle 841 841 0 1 2 + 843: 7(ivec3) GroupNonUniformQuadSwap 35 842 205 + 844: 32(ptr) AccessChain 24(data) 25 837 25 + 845: 13(ivec4) Load 844 + 846: 13(ivec4) VectorShuffle 845 843 4 5 6 3 + Store 844 846 + 847: 27(ptr) AccessChain 10(dti) 26 + 848: 6(int) Load 847 + 849: 27(ptr) AccessChain 10(dti) 26 + 850: 6(int) Load 849 + 851: 75(ptr) AccessChain 24(data) 25 850 72 + 852: 15(ivec4) Load 851 + 853: 15(ivec4) GroupNonUniformQuadSwap 35 852 205 + 854: 75(ptr) AccessChain 24(data) 25 848 72 + Store 854 853 + 855: 27(ptr) AccessChain 10(dti) 26 + 856: 6(int) Load 855 + 857: 27(ptr) AccessChain 10(dti) 26 + 858: 6(int) Load 857 + 859: 84(ptr) AccessChain 24(data) 25 858 72 26 + 860: 14(int) Load 859 + 861: 14(int) GroupNonUniformQuadSwap 35 860 205 + 862: 84(ptr) AccessChain 24(data) 25 856 72 26 + Store 862 861 + 863: 27(ptr) AccessChain 10(dti) 26 + 864: 6(int) Load 863 + 865: 27(ptr) AccessChain 10(dti) 26 + 866: 6(int) Load 865 + 867: 75(ptr) AccessChain 24(data) 25 866 72 + 868: 15(ivec4) Load 867 + 869: 93(ivec2) VectorShuffle 868 868 0 1 + 870: 93(ivec2) GroupNonUniformQuadSwap 35 869 205 + 871: 75(ptr) AccessChain 24(data) 25 864 72 + 872: 15(ivec4) Load 871 + 873: 15(ivec4) VectorShuffle 872 870 4 5 2 3 + Store 871 873 + 874: 27(ptr) AccessChain 10(dti) 26 + 875: 6(int) Load 874 + 876: 27(ptr) AccessChain 10(dti) 26 + 877: 6(int) Load 876 + 878: 75(ptr) AccessChain 24(data) 25 877 72 + 879: 15(ivec4) Load 878 + 880: 105(ivec3) VectorShuffle 879 879 0 1 2 + 881: 105(ivec3) GroupNonUniformQuadSwap 35 880 205 + 882: 75(ptr) AccessChain 24(data) 25 875 72 + 883: 15(ivec4) Load 882 + 884: 15(ivec4) VectorShuffle 883 881 4 5 6 3 + Store 882 884 + 885: 27(ptr) AccessChain 10(dti) 26 + 886: 6(int) Load 885 + 887: 27(ptr) AccessChain 10(dti) 26 + 888: 6(int) Load 887 + 889: 118(ptr) AccessChain 24(data) 25 888 115 + 890: 17(fvec4) Load 889 + 891: 17(fvec4) GroupNonUniformQuadSwap 35 890 205 + 892: 118(ptr) AccessChain 24(data) 25 886 115 + Store 892 891 + 893: 27(ptr) AccessChain 10(dti) 26 + 894: 6(int) Load 893 + 895: 27(ptr) AccessChain 10(dti) 26 + 896: 6(int) Load 895 + 897: 127(ptr) AccessChain 24(data) 25 896 115 26 + 898: 16(float) Load 897 + 899: 16(float) GroupNonUniformQuadSwap 35 898 205 + 900: 127(ptr) AccessChain 24(data) 25 894 115 26 + Store 900 899 + 901: 27(ptr) AccessChain 10(dti) 26 + 902: 6(int) Load 901 + 903: 27(ptr) AccessChain 10(dti) 26 + 904: 6(int) Load 903 + 905: 118(ptr) AccessChain 24(data) 25 904 115 + 906: 17(fvec4) Load 905 + 907: 136(fvec2) VectorShuffle 906 906 0 1 + 908: 136(fvec2) GroupNonUniformQuadSwap 35 907 205 + 909: 118(ptr) AccessChain 24(data) 25 902 115 + 910: 17(fvec4) Load 909 + 911: 17(fvec4) VectorShuffle 910 908 4 5 2 3 + Store 909 911 + 912: 27(ptr) AccessChain 10(dti) 26 + 913: 6(int) Load 912 + 914: 27(ptr) AccessChain 10(dti) 26 + 915: 6(int) Load 914 + 916: 118(ptr) AccessChain 24(data) 25 915 115 + 917: 17(fvec4) Load 916 + 918: 148(fvec3) VectorShuffle 917 917 0 1 2 + 919: 148(fvec3) GroupNonUniformQuadSwap 35 918 205 + 920: 118(ptr) AccessChain 24(data) 25 913 115 + 921: 17(fvec4) Load 920 + 922: 17(fvec4) VectorShuffle 921 919 4 5 6 3 + Store 920 922 + 923: 27(ptr) AccessChain 10(dti) 26 + 924: 6(int) Load 923 + 925: 27(ptr) AccessChain 10(dti) 26 + 926: 6(int) Load 925 + 927: 161(ptr) AccessChain 24(data) 25 926 158 + 928: 19(f64vec4) Load 927 + 929: 19(f64vec4) GroupNonUniformQuadSwap 35 928 205 + 930: 161(ptr) AccessChain 24(data) 25 924 158 + Store 930 929 + 931: 27(ptr) AccessChain 10(dti) 26 + 932: 6(int) Load 931 + 933: 27(ptr) AccessChain 10(dti) 26 + 934: 6(int) Load 933 + 935: 170(ptr) AccessChain 24(data) 25 934 158 26 + 936:18(float64_t) Load 935 + 937:18(float64_t) GroupNonUniformQuadSwap 35 936 205 + 938: 170(ptr) AccessChain 24(data) 25 932 158 26 + Store 938 937 + 939: 27(ptr) AccessChain 10(dti) 26 + 940: 6(int) Load 939 + 941: 27(ptr) AccessChain 10(dti) 26 + 942: 6(int) Load 941 + 943: 161(ptr) AccessChain 24(data) 25 942 158 + 944: 19(f64vec4) Load 943 + 945:179(f64vec2) VectorShuffle 944 944 0 1 + 946:179(f64vec2) GroupNonUniformQuadSwap 35 945 205 + 947: 161(ptr) AccessChain 24(data) 25 940 158 + 948: 19(f64vec4) Load 947 + 949: 19(f64vec4) VectorShuffle 948 946 4 5 2 3 + Store 947 949 + 950: 27(ptr) AccessChain 10(dti) 26 + 951: 6(int) Load 950 + 952: 27(ptr) AccessChain 10(dti) 26 + 953: 6(int) Load 952 + 954: 161(ptr) AccessChain 24(data) 25 953 158 + 955: 19(f64vec4) Load 954 + 956:191(f64vec3) VectorShuffle 955 955 0 1 2 + 957:191(f64vec3) GroupNonUniformQuadSwap 35 956 205 + 958: 161(ptr) AccessChain 24(data) 25 951 158 + 959: 19(f64vec4) Load 958 + 960: 19(f64vec4) VectorShuffle 959 957 4 5 6 3 + Store 958 960 + 961: 27(ptr) AccessChain 10(dti) 26 + 962: 6(int) Load 961 + 963: 27(ptr) AccessChain 10(dti) 26 + 964: 6(int) Load 963 + 965: 32(ptr) AccessChain 24(data) 25 964 25 + 966: 13(ivec4) Load 965 + 967: 13(ivec4) GroupNonUniformQuadSwap 35 966 358 + 968: 32(ptr) AccessChain 24(data) 25 962 25 + Store 968 967 + 969: 27(ptr) AccessChain 10(dti) 26 + 970: 6(int) Load 969 + 971: 27(ptr) AccessChain 10(dti) 26 + 972: 6(int) Load 971 + 973: 42(ptr) AccessChain 24(data) 25 972 25 26 + 974: 6(int) Load 973 + 975: 6(int) GroupNonUniformQuadSwap 35 974 358 + 976: 42(ptr) AccessChain 24(data) 25 970 25 26 + Store 976 975 + 977: 27(ptr) AccessChain 10(dti) 26 + 978: 6(int) Load 977 + 979: 27(ptr) AccessChain 10(dti) 26 + 980: 6(int) Load 979 + 981: 32(ptr) AccessChain 24(data) 25 980 25 + 982: 13(ivec4) Load 981 + 983: 51(ivec2) VectorShuffle 982 982 0 1 + 984: 51(ivec2) GroupNonUniformQuadSwap 35 983 358 + 985: 32(ptr) AccessChain 24(data) 25 978 25 + 986: 13(ivec4) Load 985 + 987: 13(ivec4) VectorShuffle 986 984 4 5 2 3 + Store 985 987 + 988: 27(ptr) AccessChain 10(dti) 26 + 989: 6(int) Load 988 + 990: 27(ptr) AccessChain 10(dti) 26 + 991: 6(int) Load 990 + 992: 32(ptr) AccessChain 24(data) 25 991 25 + 993: 13(ivec4) Load 992 + 994: 7(ivec3) VectorShuffle 993 993 0 1 2 + 995: 7(ivec3) GroupNonUniformQuadSwap 35 994 358 + 996: 32(ptr) AccessChain 24(data) 25 989 25 + 997: 13(ivec4) Load 996 + 998: 13(ivec4) VectorShuffle 997 995 4 5 6 3 + Store 996 998 + 999: 27(ptr) AccessChain 10(dti) 26 + 1000: 6(int) Load 999 + 1001: 27(ptr) AccessChain 10(dti) 26 + 1002: 6(int) Load 1001 + 1003: 75(ptr) AccessChain 24(data) 25 1002 72 + 1004: 15(ivec4) Load 1003 + 1005: 15(ivec4) GroupNonUniformQuadSwap 35 1004 358 + 1006: 75(ptr) AccessChain 24(data) 25 1000 72 + Store 1006 1005 + 1007: 27(ptr) AccessChain 10(dti) 26 + 1008: 6(int) Load 1007 + 1009: 27(ptr) AccessChain 10(dti) 26 + 1010: 6(int) Load 1009 + 1011: 84(ptr) AccessChain 24(data) 25 1010 72 26 + 1012: 14(int) Load 1011 + 1013: 14(int) GroupNonUniformQuadSwap 35 1012 358 + 1014: 84(ptr) AccessChain 24(data) 25 1008 72 26 + Store 1014 1013 + 1015: 27(ptr) AccessChain 10(dti) 26 + 1016: 6(int) Load 1015 + 1017: 27(ptr) AccessChain 10(dti) 26 + 1018: 6(int) Load 1017 + 1019: 75(ptr) AccessChain 24(data) 25 1018 72 + 1020: 15(ivec4) Load 1019 + 1021: 93(ivec2) VectorShuffle 1020 1020 0 1 + 1022: 93(ivec2) GroupNonUniformQuadSwap 35 1021 358 + 1023: 75(ptr) AccessChain 24(data) 25 1016 72 + 1024: 15(ivec4) Load 1023 + 1025: 15(ivec4) VectorShuffle 1024 1022 4 5 2 3 + Store 1023 1025 + 1026: 27(ptr) AccessChain 10(dti) 26 + 1027: 6(int) Load 1026 + 1028: 27(ptr) AccessChain 10(dti) 26 + 1029: 6(int) Load 1028 + 1030: 75(ptr) AccessChain 24(data) 25 1029 72 + 1031: 15(ivec4) Load 1030 + 1032: 105(ivec3) VectorShuffle 1031 1031 0 1 2 + 1033: 105(ivec3) GroupNonUniformQuadSwap 35 1032 358 + 1034: 75(ptr) AccessChain 24(data) 25 1027 72 + 1035: 15(ivec4) Load 1034 + 1036: 15(ivec4) VectorShuffle 1035 1033 4 5 6 3 + Store 1034 1036 + 1037: 27(ptr) AccessChain 10(dti) 26 + 1038: 6(int) Load 1037 + 1039: 27(ptr) AccessChain 10(dti) 26 + 1040: 6(int) Load 1039 + 1041: 118(ptr) AccessChain 24(data) 25 1040 115 + 1042: 17(fvec4) Load 1041 + 1043: 17(fvec4) GroupNonUniformQuadSwap 35 1042 358 + 1044: 118(ptr) AccessChain 24(data) 25 1038 115 + Store 1044 1043 + 1045: 27(ptr) AccessChain 10(dti) 26 + 1046: 6(int) Load 1045 + 1047: 27(ptr) AccessChain 10(dti) 26 + 1048: 6(int) Load 1047 + 1049: 127(ptr) AccessChain 24(data) 25 1048 115 26 + 1050: 16(float) Load 1049 + 1051: 16(float) GroupNonUniformQuadSwap 35 1050 358 + 1052: 127(ptr) AccessChain 24(data) 25 1046 115 26 + Store 1052 1051 + 1053: 27(ptr) AccessChain 10(dti) 26 + 1054: 6(int) Load 1053 + 1055: 27(ptr) AccessChain 10(dti) 26 + 1056: 6(int) Load 1055 + 1057: 118(ptr) AccessChain 24(data) 25 1056 115 + 1058: 17(fvec4) Load 1057 + 1059: 136(fvec2) VectorShuffle 1058 1058 0 1 + 1060: 136(fvec2) GroupNonUniformQuadSwap 35 1059 358 + 1061: 118(ptr) AccessChain 24(data) 25 1054 115 + 1062: 17(fvec4) Load 1061 + 1063: 17(fvec4) VectorShuffle 1062 1060 4 5 2 3 + Store 1061 1063 + 1064: 27(ptr) AccessChain 10(dti) 26 + 1065: 6(int) Load 1064 + 1066: 27(ptr) AccessChain 10(dti) 26 + 1067: 6(int) Load 1066 + 1068: 118(ptr) AccessChain 24(data) 25 1067 115 + 1069: 17(fvec4) Load 1068 + 1070: 148(fvec3) VectorShuffle 1069 1069 0 1 2 + 1071: 148(fvec3) GroupNonUniformQuadSwap 35 1070 358 + 1072: 118(ptr) AccessChain 24(data) 25 1065 115 + 1073: 17(fvec4) Load 1072 + 1074: 17(fvec4) VectorShuffle 1073 1071 4 5 6 3 + Store 1072 1074 + 1075: 27(ptr) AccessChain 10(dti) 26 + 1076: 6(int) Load 1075 + 1077: 27(ptr) AccessChain 10(dti) 26 + 1078: 6(int) Load 1077 + 1079: 161(ptr) AccessChain 24(data) 25 1078 158 + 1080: 19(f64vec4) Load 1079 + 1081: 19(f64vec4) GroupNonUniformQuadSwap 35 1080 358 + 1082: 161(ptr) AccessChain 24(data) 25 1076 158 + Store 1082 1081 + 1083: 27(ptr) AccessChain 10(dti) 26 + 1084: 6(int) Load 1083 + 1085: 27(ptr) AccessChain 10(dti) 26 + 1086: 6(int) Load 1085 + 1087: 170(ptr) AccessChain 24(data) 25 1086 158 26 + 1088:18(float64_t) Load 1087 + 1089:18(float64_t) GroupNonUniformQuadSwap 35 1088 358 + 1090: 170(ptr) AccessChain 24(data) 25 1084 158 26 + Store 1090 1089 + 1091: 27(ptr) AccessChain 10(dti) 26 + 1092: 6(int) Load 1091 + 1093: 27(ptr) AccessChain 10(dti) 26 + 1094: 6(int) Load 1093 + 1095: 161(ptr) AccessChain 24(data) 25 1094 158 + 1096: 19(f64vec4) Load 1095 + 1097:179(f64vec2) VectorShuffle 1096 1096 0 1 + 1098:179(f64vec2) GroupNonUniformQuadSwap 35 1097 358 + 1099: 161(ptr) AccessChain 24(data) 25 1092 158 + 1100: 19(f64vec4) Load 1099 + 1101: 19(f64vec4) VectorShuffle 1100 1098 4 5 2 3 + Store 1099 1101 + 1102: 27(ptr) AccessChain 10(dti) 26 + 1103: 6(int) Load 1102 + 1104: 27(ptr) AccessChain 10(dti) 26 + 1105: 6(int) Load 1104 + 1106: 161(ptr) AccessChain 24(data) 25 1105 158 + 1107: 19(f64vec4) Load 1106 + 1108:191(f64vec3) VectorShuffle 1107 1107 0 1 2 + 1109:191(f64vec3) GroupNonUniformQuadSwap 35 1108 358 + 1110: 161(ptr) AccessChain 24(data) 25 1103 158 + 1111: 19(f64vec4) Load 1110 + 1112: 19(f64vec4) VectorShuffle 1111 1109 4 5 6 3 + Store 1110 1112 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.comp.out new file mode 100644 index 0000000000..5f70124e4f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.comp.out @@ -0,0 +1,116 @@ +hlsl.wavequery.comp +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:5 Function Definition: @CSMain( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp uint) +0:6 indirect index (layout( row_major std430) buffer uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable) +0:6 Test condition and select ( temp uint): no shortcircuit +0:6 Condition +0:6 subgroupElect ( temp bool) +0:6 true case +0:6 '@gl_SubgroupSize' ( in uint unknown built-in variable) +0:6 false case +0:6 Constant: +0:6 0 (const uint) +0:5 Function Definition: CSMain( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Function Call: @CSMain( ( temp void) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) + + +Linked compute stage: + + +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:5 Function Definition: @CSMain( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:6 move second child to first child ( temp uint) +0:6 indirect index (layout( row_major std430) buffer uint) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) +0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 '@gl_SubgroupInvocationID' ( in uint unknown built-in variable) +0:6 Test condition and select ( temp uint): no shortcircuit +0:6 Condition +0:6 subgroupElect ( temp bool) +0:6 true case +0:6 '@gl_SubgroupSize' ( in uint unknown built-in variable) +0:6 false case +0:6 Constant: +0:6 0 (const uint) +0:5 Function Definition: CSMain( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 Function Call: @CSMain( ( temp void) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 28 + + Capability Shader + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "CSMain" 16 21 + ExecutionMode 4 LocalSize 32 16 1 + Source HLSL 500 + Name 4 "CSMain" + Name 6 "@CSMain(" + Name 10 "data" + MemberName 10(data) 0 "@data" + Name 12 "data" + Name 16 "@gl_SubgroupInvocationID" + Name 21 "@gl_SubgroupSize" + Decorate 9 ArrayStride 4 + MemberDecorate 10(data) 0 Offset 0 + Decorate 10(data) BufferBlock + Decorate 12(data) DescriptorSet 0 + Decorate 16(@gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 21(@gl_SubgroupSize) BuiltIn SubgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeInt 32 0 + 9: TypeRuntimeArray 8(int) + 10(data): TypeStruct 9 + 11: TypePointer Uniform 10(data) + 12(data): 11(ptr) Variable Uniform + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: TypePointer Input 8(int) +16(@gl_SubgroupInvocationID): 15(ptr) Variable Input + 18: TypeBool + 19: 8(int) Constant 3 +21(@gl_SubgroupSize): 15(ptr) Variable Input + 23: 8(int) Constant 0 + 25: TypePointer Uniform 8(int) + 4(CSMain): 2 Function None 3 + 5: Label + 27: 2 FunctionCall 6(@CSMain() + Return + FunctionEnd + 6(@CSMain(): 2 Function None 3 + 7: Label + 17: 8(int) Load 16(@gl_SubgroupInvocationID) + 20: 18(bool) GroupNonUniformElect 19 + 22: 8(int) Load 21(@gl_SubgroupSize) + 24: 8(int) Select 20 22 23 + 26: 25(ptr) AccessChain 12(data) 14 17 + Store 26 24 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.frag.out new file mode 100644 index 0000000000..52304a6c63 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.wavequery.frag.out @@ -0,0 +1,123 @@ +hlsl.wavequery.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Test condition and select ( temp void) +0:3 Condition +0:3 subgroupElect ( temp bool) +0:3 true case +0:? Sequence +0:5 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:3 false case +0:? Sequence +0:9 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 3.000000 +0:? 2.000000 +0:? 1.000000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction( ( temp 4-component vector of float) +0:2 Function Parameters: +0:? Sequence +0:3 Test condition and select ( temp void) +0:3 Condition +0:3 subgroupElect ( temp bool) +0:3 true case +0:? Sequence +0:5 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:3 false case +0:? Sequence +0:9 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 3.000000 +0:? 2.000000 +0:? 1.000000 +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction( ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 28 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 9 "@PixelShaderFunction(" + Name 28 "@entryPointOutput" + Decorate 28(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeBool + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 17: 6(float) Constant 1065353216 + 18: 6(float) Constant 1073741824 + 19: 6(float) Constant 1077936128 + 20: 6(float) Constant 1082130432 + 21: 7(fvec4) ConstantComposite 17 18 19 20 + 24: 7(fvec4) ConstantComposite 20 19 18 17 + 27: TypePointer Output 7(fvec4) +28(@entryPointOutput): 27(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 29: 7(fvec4) FunctionCall 9(@PixelShaderFunction() + Store 28(@entryPointOutput) 29 + Return + FunctionEnd +9(@PixelShaderFunction(): 7(fvec4) Function None 8 + 10: Label + 14: 11(bool) GroupNonUniformElect 13 + SelectionMerge 16 None + BranchConditional 14 15 23 + 15: Label + ReturnValue 21 + 23: Label + ReturnValue 24 + 16: Label + 26: 7(fvec4) Undef + ReturnValue 26 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.wavereduction.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavereduction.comp.out new file mode 100644 index 0000000000..f922f3dc6d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.wavereduction.comp.out @@ -0,0 +1,7218 @@ +hlsl.wavereduction.comp +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupAdd ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupAdd ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupAdd ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupAdd ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupAdd ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupAdd ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupAdd ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupAdd ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupAdd ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupAdd ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupAdd ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupAdd ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupAdd ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupAdd ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupAdd ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupAdd ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupMul ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupMul ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupMul ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupMul ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupMul ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupMul ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupMul ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupMul ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupMul ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupMul ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupMul ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupMul ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupMul ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupMul ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupMul ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupMul ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:54 move second child to first child ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 subgroupMin ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:55 move second child to first child ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 subgroupMin ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:56 move second child to first child ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 subgroupMin ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:57 move second child to first child ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 subgroupMin ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:59 move second child to first child ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 subgroupMin ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:60 move second child to first child ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:60 subgroupMin ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:61 move second child to first child ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 subgroupMin ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:62 move second child to first child ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 subgroupMin ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:64 move second child to first child ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 subgroupMin ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:65 move second child to first child ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:65 subgroupMin ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:66 move second child to first child ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:66 subgroupMin ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:67 move second child to first child ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 subgroupMin ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:69 move second child to first child ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:69 subgroupMin ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:70 move second child to first child ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:70 subgroupMin ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:71 move second child to first child ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 subgroupMin ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:72 move second child to first child ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:72 subgroupMin ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:74 move second child to first child ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:74 subgroupMax ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:75 move second child to first child ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 subgroupMax ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:76 move second child to first child ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:76 subgroupMax ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:77 move second child to first child ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:77 subgroupMax ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:79 move second child to first child ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 subgroupMax ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:80 move second child to first child ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:80 subgroupMax ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:81 move second child to first child ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 subgroupMax ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:82 move second child to first child ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 subgroupMax ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 subgroupMax ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:85 move second child to first child ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 subgroupMax ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:86 move second child to first child ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 subgroupMax ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:87 move second child to first child ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 subgroupMax ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:89 move second child to first child ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:89 subgroupMax ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:90 move second child to first child ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:90 subgroupMax ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:91 move second child to first child ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:91 subgroupMax ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:92 move second child to first child ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:92 subgroupMax ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:94 subgroupAnd ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:95 move second child to first child ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 subgroupAnd ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:96 move second child to first child ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:96 subgroupAnd ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:97 move second child to first child ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:97 subgroupAnd ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:99 move second child to first child ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:99 subgroupAnd ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:100 move second child to first child ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:100 subgroupAnd ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:101 move second child to first child ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 subgroupAnd ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:102 move second child to first child ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:102 subgroupAnd ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:104 move second child to first child ( temp 4-component vector of uint) +0:104 u: direct index for structure ( temp 4-component vector of uint) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 0 (const int) +0:104 subgroupOr ( temp 4-component vector of uint) +0:104 u: direct index for structure ( temp 4-component vector of uint) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 0 (const int) +0:105 move second child to first child ( temp uint) +0:105 direct index ( temp uint) +0:105 u: direct index for structure ( temp 4-component vector of uint) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 subgroupOr ( temp uint) +0:105 direct index ( temp uint) +0:105 u: direct index for structure ( temp 4-component vector of uint) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:106 move second child to first child ( temp 2-component vector of uint) +0:106 vector swizzle ( temp 2-component vector of uint) +0:106 u: direct index for structure ( temp 4-component vector of uint) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 0 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:106 subgroupOr ( temp 2-component vector of uint) +0:106 vector swizzle ( temp 2-component vector of uint) +0:106 u: direct index for structure ( temp 4-component vector of uint) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 0 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:107 move second child to first child ( temp 3-component vector of uint) +0:107 vector swizzle ( temp 3-component vector of uint) +0:107 u: direct index for structure ( temp 4-component vector of uint) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 0 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 subgroupOr ( temp 3-component vector of uint) +0:107 vector swizzle ( temp 3-component vector of uint) +0:107 u: direct index for structure ( temp 4-component vector of uint) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 0 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:109 move second child to first child ( temp 4-component vector of int) +0:109 i: direct index for structure ( temp 4-component vector of int) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 1 (const int) +0:109 subgroupOr ( temp 4-component vector of int) +0:109 i: direct index for structure ( temp 4-component vector of int) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 1 (const int) +0:110 move second child to first child ( temp int) +0:110 direct index ( temp int) +0:110 i: direct index for structure ( temp 4-component vector of int) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 1 (const int) +0:110 Constant: +0:110 0 (const int) +0:110 subgroupOr ( temp int) +0:110 direct index ( temp int) +0:110 i: direct index for structure ( temp 4-component vector of int) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 1 (const int) +0:110 Constant: +0:110 0 (const int) +0:111 move second child to first child ( temp 2-component vector of int) +0:111 vector swizzle ( temp 2-component vector of int) +0:111 i: direct index for structure ( temp 4-component vector of int) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 subgroupOr ( temp 2-component vector of int) +0:111 vector swizzle ( temp 2-component vector of int) +0:111 i: direct index for structure ( temp 4-component vector of int) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:112 move second child to first child ( temp 3-component vector of int) +0:112 vector swizzle ( temp 3-component vector of int) +0:112 i: direct index for structure ( temp 4-component vector of int) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:112 subgroupOr ( temp 3-component vector of int) +0:112 vector swizzle ( temp 3-component vector of int) +0:112 i: direct index for structure ( temp 4-component vector of int) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:114 move second child to first child ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:114 subgroupXor ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:115 move second child to first child ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 subgroupXor ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:116 move second child to first child ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:116 subgroupXor ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:117 move second child to first child ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:117 subgroupXor ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:119 move second child to first child ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:119 subgroupXor ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:120 move second child to first child ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:120 subgroupXor ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:121 move second child to first child ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 subgroupXor ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:122 move second child to first child ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:122 subgroupXor ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:124 move second child to first child ( temp uint) +0:124 direct index ( temp uint) +0:124 u: direct index for structure ( temp 4-component vector of uint) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 subgroupBallotBitCount ( temp uint) +0:124 subgroupBallot ( temp 4-component vector of uint) +0:124 Compare Equal ( temp bool) +0:124 direct index ( temp uint) +0:124 u: direct index for structure ( temp 4-component vector of uint) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const uint) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:13 Function Definition: @CSMain(vu3; ( temp void) +0:13 Function Parameters: +0:13 'dti' ( in 3-component vector of uint) +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:14 subgroupAdd ( temp 4-component vector of uint) +0:14 u: direct index for structure ( temp 4-component vector of uint) +0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:14 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:14 Constant: +0:14 0 (const uint) +0:14 direct index ( temp uint) +0:14 'dti' ( in 3-component vector of uint) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 0 (const int) +0:15 move second child to first child ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 subgroupAdd ( temp uint) +0:15 direct index ( temp uint) +0:15 u: direct index for structure ( temp 4-component vector of uint) +0:15 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:15 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:15 Constant: +0:15 0 (const uint) +0:15 direct index ( temp uint) +0:15 'dti' ( in 3-component vector of uint) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 0 (const int) +0:16 move second child to first child ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:16 subgroupAdd ( temp 2-component vector of uint) +0:16 vector swizzle ( temp 2-component vector of uint) +0:16 u: direct index for structure ( temp 4-component vector of uint) +0:16 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:16 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:16 Constant: +0:16 0 (const uint) +0:16 direct index ( temp uint) +0:16 'dti' ( in 3-component vector of uint) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 0 (const int) +0:16 Sequence +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 subgroupAdd ( temp 3-component vector of uint) +0:17 vector swizzle ( temp 3-component vector of uint) +0:17 u: direct index for structure ( temp 4-component vector of uint) +0:17 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:17 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:17 Constant: +0:17 0 (const uint) +0:17 direct index ( temp uint) +0:17 'dti' ( in 3-component vector of uint) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 0 (const int) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:19 move second child to first child ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:19 subgroupAdd ( temp 4-component vector of int) +0:19 i: direct index for structure ( temp 4-component vector of int) +0:19 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:19 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:19 Constant: +0:19 0 (const uint) +0:19 direct index ( temp uint) +0:19 'dti' ( in 3-component vector of uint) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:20 subgroupAdd ( temp int) +0:20 direct index ( temp int) +0:20 i: direct index for structure ( temp 4-component vector of int) +0:20 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:20 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:20 Constant: +0:20 0 (const uint) +0:20 direct index ( temp uint) +0:20 'dti' ( in 3-component vector of uint) +0:20 Constant: +0:20 0 (const int) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 move second child to first child ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 subgroupAdd ( temp 2-component vector of int) +0:21 vector swizzle ( temp 2-component vector of int) +0:21 i: direct index for structure ( temp 4-component vector of int) +0:21 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:21 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:21 Constant: +0:21 0 (const uint) +0:21 direct index ( temp uint) +0:21 'dti' ( in 3-component vector of uint) +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:21 Sequence +0:21 Constant: +0:21 0 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 subgroupAdd ( temp 3-component vector of int) +0:22 vector swizzle ( temp 3-component vector of int) +0:22 i: direct index for structure ( temp 4-component vector of int) +0:22 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:22 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:22 Constant: +0:22 0 (const uint) +0:22 direct index ( temp uint) +0:22 'dti' ( in 3-component vector of uint) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Sequence +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 move second child to first child ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 subgroupAdd ( temp 4-component vector of float) +0:24 f: direct index for structure ( temp 4-component vector of float) +0:24 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:24 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:24 Constant: +0:24 0 (const uint) +0:24 direct index ( temp uint) +0:24 'dti' ( in 3-component vector of uint) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 2 (const int) +0:25 move second child to first child ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 subgroupAdd ( temp float) +0:25 direct index ( temp float) +0:25 f: direct index for structure ( temp 4-component vector of float) +0:25 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:25 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:25 Constant: +0:25 0 (const uint) +0:25 direct index ( temp uint) +0:25 'dti' ( in 3-component vector of uint) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 0 (const int) +0:26 move second child to first child ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 subgroupAdd ( temp 2-component vector of float) +0:26 vector swizzle ( temp 2-component vector of float) +0:26 f: direct index for structure ( temp 4-component vector of float) +0:26 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:26 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:26 Constant: +0:26 0 (const uint) +0:26 direct index ( temp uint) +0:26 'dti' ( in 3-component vector of uint) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:27 move second child to first child ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 subgroupAdd ( temp 3-component vector of float) +0:27 vector swizzle ( temp 3-component vector of float) +0:27 f: direct index for structure ( temp 4-component vector of float) +0:27 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:27 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:27 Constant: +0:27 0 (const uint) +0:27 direct index ( temp uint) +0:27 'dti' ( in 3-component vector of uint) +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Sequence +0:27 Constant: +0:27 0 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 2 (const int) +0:29 move second child to first child ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:29 subgroupAdd ( temp 4-component vector of double) +0:29 d: direct index for structure ( temp 4-component vector of double) +0:29 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:29 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:29 Constant: +0:29 0 (const uint) +0:29 direct index ( temp uint) +0:29 'dti' ( in 3-component vector of uint) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 3 (const int) +0:30 move second child to first child ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:30 subgroupAdd ( temp double) +0:30 direct index ( temp double) +0:30 d: direct index for structure ( temp 4-component vector of double) +0:30 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:30 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:30 Constant: +0:30 0 (const uint) +0:30 direct index ( temp uint) +0:30 'dti' ( in 3-component vector of uint) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 3 (const int) +0:30 Constant: +0:30 0 (const int) +0:31 move second child to first child ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 subgroupAdd ( temp 2-component vector of double) +0:31 vector swizzle ( temp 2-component vector of double) +0:31 d: direct index for structure ( temp 4-component vector of double) +0:31 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:31 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:31 Constant: +0:31 0 (const uint) +0:31 direct index ( temp uint) +0:31 'dti' ( in 3-component vector of uint) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 Sequence +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:32 move second child to first child ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:32 subgroupAdd ( temp 3-component vector of double) +0:32 vector swizzle ( temp 3-component vector of double) +0:32 d: direct index for structure ( temp 4-component vector of double) +0:32 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:32 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:32 Constant: +0:32 0 (const uint) +0:32 direct index ( temp uint) +0:32 'dti' ( in 3-component vector of uint) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 3 (const int) +0:32 Sequence +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 2 (const int) +0:34 move second child to first child ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 subgroupMul ( temp 4-component vector of uint) +0:34 u: direct index for structure ( temp 4-component vector of uint) +0:34 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:34 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:34 Constant: +0:34 0 (const uint) +0:34 direct index ( temp uint) +0:34 'dti' ( in 3-component vector of uint) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:35 move second child to first child ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 subgroupMul ( temp uint) +0:35 direct index ( temp uint) +0:35 u: direct index for structure ( temp 4-component vector of uint) +0:35 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:35 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:35 Constant: +0:35 0 (const uint) +0:35 direct index ( temp uint) +0:35 'dti' ( in 3-component vector of uint) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:36 move second child to first child ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:36 subgroupMul ( temp 2-component vector of uint) +0:36 vector swizzle ( temp 2-component vector of uint) +0:36 u: direct index for structure ( temp 4-component vector of uint) +0:36 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:36 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:36 Constant: +0:36 0 (const uint) +0:36 direct index ( temp uint) +0:36 'dti' ( in 3-component vector of uint) +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 0 (const int) +0:36 Sequence +0:36 Constant: +0:36 0 (const int) +0:36 Constant: +0:36 1 (const int) +0:37 move second child to first child ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 subgroupMul ( temp 3-component vector of uint) +0:37 vector swizzle ( temp 3-component vector of uint) +0:37 u: direct index for structure ( temp 4-component vector of uint) +0:37 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:37 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:37 Constant: +0:37 0 (const uint) +0:37 direct index ( temp uint) +0:37 'dti' ( in 3-component vector of uint) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Sequence +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 1 (const int) +0:37 Constant: +0:37 2 (const int) +0:39 move second child to first child ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:39 subgroupMul ( temp 4-component vector of int) +0:39 i: direct index for structure ( temp 4-component vector of int) +0:39 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:39 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:39 Constant: +0:39 0 (const uint) +0:39 direct index ( temp uint) +0:39 'dti' ( in 3-component vector of uint) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1 (const int) +0:40 move second child to first child ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:40 subgroupMul ( temp int) +0:40 direct index ( temp int) +0:40 i: direct index for structure ( temp 4-component vector of int) +0:40 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:40 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:40 Constant: +0:40 0 (const uint) +0:40 direct index ( temp uint) +0:40 'dti' ( in 3-component vector of uint) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 0 (const int) +0:41 move second child to first child ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 subgroupMul ( temp 2-component vector of int) +0:41 vector swizzle ( temp 2-component vector of int) +0:41 i: direct index for structure ( temp 4-component vector of int) +0:41 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:41 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:41 Constant: +0:41 0 (const uint) +0:41 direct index ( temp uint) +0:41 'dti' ( in 3-component vector of uint) +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:41 Sequence +0:41 Constant: +0:41 0 (const int) +0:41 Constant: +0:41 1 (const int) +0:42 move second child to first child ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:42 subgroupMul ( temp 3-component vector of int) +0:42 vector swizzle ( temp 3-component vector of int) +0:42 i: direct index for structure ( temp 4-component vector of int) +0:42 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:42 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:42 Constant: +0:42 0 (const uint) +0:42 direct index ( temp uint) +0:42 'dti' ( in 3-component vector of uint) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Sequence +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 2 (const int) +0:44 move second child to first child ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:44 subgroupMul ( temp 4-component vector of float) +0:44 f: direct index for structure ( temp 4-component vector of float) +0:44 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:44 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:44 Constant: +0:44 0 (const uint) +0:44 direct index ( temp uint) +0:44 'dti' ( in 3-component vector of uint) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 2 (const int) +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:45 subgroupMul ( temp float) +0:45 direct index ( temp float) +0:45 f: direct index for structure ( temp 4-component vector of float) +0:45 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:45 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:45 Constant: +0:45 0 (const uint) +0:45 direct index ( temp uint) +0:45 'dti' ( in 3-component vector of uint) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 2 (const int) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:46 subgroupMul ( temp 2-component vector of float) +0:46 vector swizzle ( temp 2-component vector of float) +0:46 f: direct index for structure ( temp 4-component vector of float) +0:46 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:46 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:46 Constant: +0:46 0 (const uint) +0:46 direct index ( temp uint) +0:46 'dti' ( in 3-component vector of uint) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 2 (const int) +0:46 Sequence +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 1 (const int) +0:47 move second child to first child ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 subgroupMul ( temp 3-component vector of float) +0:47 vector swizzle ( temp 3-component vector of float) +0:47 f: direct index for structure ( temp 4-component vector of float) +0:47 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:47 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:47 Constant: +0:47 0 (const uint) +0:47 direct index ( temp uint) +0:47 'dti' ( in 3-component vector of uint) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 2 (const int) +0:47 Sequence +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 2 (const int) +0:49 move second child to first child ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:49 subgroupMul ( temp 4-component vector of double) +0:49 d: direct index for structure ( temp 4-component vector of double) +0:49 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:49 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:49 Constant: +0:49 0 (const uint) +0:49 direct index ( temp uint) +0:49 'dti' ( in 3-component vector of uint) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3 (const int) +0:50 move second child to first child ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:50 subgroupMul ( temp double) +0:50 direct index ( temp double) +0:50 d: direct index for structure ( temp 4-component vector of double) +0:50 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:50 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:50 Constant: +0:50 0 (const uint) +0:50 direct index ( temp uint) +0:50 'dti' ( in 3-component vector of uint) +0:50 Constant: +0:50 0 (const int) +0:50 Constant: +0:50 3 (const int) +0:50 Constant: +0:50 0 (const int) +0:51 move second child to first child ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:51 subgroupMul ( temp 2-component vector of double) +0:51 vector swizzle ( temp 2-component vector of double) +0:51 d: direct index for structure ( temp 4-component vector of double) +0:51 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:51 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:51 Constant: +0:51 0 (const uint) +0:51 direct index ( temp uint) +0:51 'dti' ( in 3-component vector of uint) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1 (const int) +0:52 move second child to first child ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:52 subgroupMul ( temp 3-component vector of double) +0:52 vector swizzle ( temp 3-component vector of double) +0:52 d: direct index for structure ( temp 4-component vector of double) +0:52 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:52 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:52 Constant: +0:52 0 (const uint) +0:52 direct index ( temp uint) +0:52 'dti' ( in 3-component vector of uint) +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 3 (const int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 2 (const int) +0:54 move second child to first child ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:54 subgroupMin ( temp 4-component vector of uint) +0:54 u: direct index for structure ( temp 4-component vector of uint) +0:54 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:54 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:54 Constant: +0:54 0 (const uint) +0:54 direct index ( temp uint) +0:54 'dti' ( in 3-component vector of uint) +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 0 (const int) +0:55 move second child to first child ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 subgroupMin ( temp uint) +0:55 direct index ( temp uint) +0:55 u: direct index for structure ( temp 4-component vector of uint) +0:55 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:55 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:55 Constant: +0:55 0 (const uint) +0:55 direct index ( temp uint) +0:55 'dti' ( in 3-component vector of uint) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:55 Constant: +0:55 0 (const int) +0:56 move second child to first child ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 subgroupMin ( temp 2-component vector of uint) +0:56 vector swizzle ( temp 2-component vector of uint) +0:56 u: direct index for structure ( temp 4-component vector of uint) +0:56 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:56 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:56 Constant: +0:56 0 (const uint) +0:56 direct index ( temp uint) +0:56 'dti' ( in 3-component vector of uint) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 0 (const int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:57 move second child to first child ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 subgroupMin ( temp 3-component vector of uint) +0:57 vector swizzle ( temp 3-component vector of uint) +0:57 u: direct index for structure ( temp 4-component vector of uint) +0:57 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:57 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:57 Constant: +0:57 0 (const uint) +0:57 direct index ( temp uint) +0:57 'dti' ( in 3-component vector of uint) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 0 (const int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:59 move second child to first child ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 subgroupMin ( temp 4-component vector of int) +0:59 i: direct index for structure ( temp 4-component vector of int) +0:59 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:59 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:59 Constant: +0:59 0 (const uint) +0:59 direct index ( temp uint) +0:59 'dti' ( in 3-component vector of uint) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:60 move second child to first child ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:60 subgroupMin ( temp int) +0:60 direct index ( temp int) +0:60 i: direct index for structure ( temp 4-component vector of int) +0:60 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:60 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:60 Constant: +0:60 0 (const uint) +0:60 direct index ( temp uint) +0:60 'dti' ( in 3-component vector of uint) +0:60 Constant: +0:60 0 (const int) +0:60 Constant: +0:60 1 (const int) +0:60 Constant: +0:60 0 (const int) +0:61 move second child to first child ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 subgroupMin ( temp 2-component vector of int) +0:61 vector swizzle ( temp 2-component vector of int) +0:61 i: direct index for structure ( temp 4-component vector of int) +0:61 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:61 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:61 Constant: +0:61 0 (const uint) +0:61 direct index ( temp uint) +0:61 'dti' ( in 3-component vector of uint) +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:62 move second child to first child ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 subgroupMin ( temp 3-component vector of int) +0:62 vector swizzle ( temp 3-component vector of int) +0:62 i: direct index for structure ( temp 4-component vector of int) +0:62 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:62 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:62 Constant: +0:62 0 (const uint) +0:62 direct index ( temp uint) +0:62 'dti' ( in 3-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:64 move second child to first child ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 subgroupMin ( temp 4-component vector of float) +0:64 f: direct index for structure ( temp 4-component vector of float) +0:64 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:64 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:64 Constant: +0:64 0 (const uint) +0:64 direct index ( temp uint) +0:64 'dti' ( in 3-component vector of uint) +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 2 (const int) +0:65 move second child to first child ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:65 subgroupMin ( temp float) +0:65 direct index ( temp float) +0:65 f: direct index for structure ( temp 4-component vector of float) +0:65 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:65 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:65 Constant: +0:65 0 (const uint) +0:65 direct index ( temp uint) +0:65 'dti' ( in 3-component vector of uint) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 Constant: +0:65 0 (const int) +0:66 move second child to first child ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:66 subgroupMin ( temp 2-component vector of float) +0:66 vector swizzle ( temp 2-component vector of float) +0:66 f: direct index for structure ( temp 4-component vector of float) +0:66 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:66 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:66 Constant: +0:66 0 (const uint) +0:66 direct index ( temp uint) +0:66 'dti' ( in 3-component vector of uint) +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 2 (const int) +0:66 Sequence +0:66 Constant: +0:66 0 (const int) +0:66 Constant: +0:66 1 (const int) +0:67 move second child to first child ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 subgroupMin ( temp 3-component vector of float) +0:67 vector swizzle ( temp 3-component vector of float) +0:67 f: direct index for structure ( temp 4-component vector of float) +0:67 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:67 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:67 Constant: +0:67 0 (const uint) +0:67 direct index ( temp uint) +0:67 'dti' ( in 3-component vector of uint) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 2 (const int) +0:67 Sequence +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1 (const int) +0:67 Constant: +0:67 2 (const int) +0:69 move second child to first child ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:69 subgroupMin ( temp 4-component vector of double) +0:69 d: direct index for structure ( temp 4-component vector of double) +0:69 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:69 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:69 Constant: +0:69 0 (const uint) +0:69 direct index ( temp uint) +0:69 'dti' ( in 3-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 3 (const int) +0:70 move second child to first child ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:70 subgroupMin ( temp double) +0:70 direct index ( temp double) +0:70 d: direct index for structure ( temp 4-component vector of double) +0:70 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:70 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:70 Constant: +0:70 0 (const uint) +0:70 direct index ( temp uint) +0:70 'dti' ( in 3-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 3 (const int) +0:70 Constant: +0:70 0 (const int) +0:71 move second child to first child ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 subgroupMin ( temp 2-component vector of double) +0:71 vector swizzle ( temp 2-component vector of double) +0:71 d: direct index for structure ( temp 4-component vector of double) +0:71 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:71 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:71 Constant: +0:71 0 (const uint) +0:71 direct index ( temp uint) +0:71 'dti' ( in 3-component vector of uint) +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 3 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:72 move second child to first child ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:72 subgroupMin ( temp 3-component vector of double) +0:72 vector swizzle ( temp 3-component vector of double) +0:72 d: direct index for structure ( temp 4-component vector of double) +0:72 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:72 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:72 Constant: +0:72 0 (const uint) +0:72 direct index ( temp uint) +0:72 'dti' ( in 3-component vector of uint) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 3 (const int) +0:72 Sequence +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 2 (const int) +0:74 move second child to first child ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:74 subgroupMax ( temp 4-component vector of uint) +0:74 u: direct index for structure ( temp 4-component vector of uint) +0:74 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:74 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:74 Constant: +0:74 0 (const uint) +0:74 direct index ( temp uint) +0:74 'dti' ( in 3-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 Constant: +0:74 0 (const int) +0:75 move second child to first child ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 subgroupMax ( temp uint) +0:75 direct index ( temp uint) +0:75 u: direct index for structure ( temp 4-component vector of uint) +0:75 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:75 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:75 Constant: +0:75 0 (const uint) +0:75 direct index ( temp uint) +0:75 'dti' ( in 3-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:75 Constant: +0:75 0 (const int) +0:76 move second child to first child ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:76 subgroupMax ( temp 2-component vector of uint) +0:76 vector swizzle ( temp 2-component vector of uint) +0:76 u: direct index for structure ( temp 4-component vector of uint) +0:76 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:76 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:76 Constant: +0:76 0 (const uint) +0:76 direct index ( temp uint) +0:76 'dti' ( in 3-component vector of uint) +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 0 (const int) +0:76 Sequence +0:76 Constant: +0:76 0 (const int) +0:76 Constant: +0:76 1 (const int) +0:77 move second child to first child ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:77 subgroupMax ( temp 3-component vector of uint) +0:77 vector swizzle ( temp 3-component vector of uint) +0:77 u: direct index for structure ( temp 4-component vector of uint) +0:77 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:77 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:77 Constant: +0:77 0 (const uint) +0:77 direct index ( temp uint) +0:77 'dti' ( in 3-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 0 (const int) +0:77 Sequence +0:77 Constant: +0:77 0 (const int) +0:77 Constant: +0:77 1 (const int) +0:77 Constant: +0:77 2 (const int) +0:79 move second child to first child ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 subgroupMax ( temp 4-component vector of int) +0:79 i: direct index for structure ( temp 4-component vector of int) +0:79 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:79 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:79 Constant: +0:79 0 (const uint) +0:79 direct index ( temp uint) +0:79 'dti' ( in 3-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:80 move second child to first child ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:80 subgroupMax ( temp int) +0:80 direct index ( temp int) +0:80 i: direct index for structure ( temp 4-component vector of int) +0:80 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:80 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:80 Constant: +0:80 0 (const uint) +0:80 direct index ( temp uint) +0:80 'dti' ( in 3-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 Constant: +0:80 1 (const int) +0:80 Constant: +0:80 0 (const int) +0:81 move second child to first child ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 subgroupMax ( temp 2-component vector of int) +0:81 vector swizzle ( temp 2-component vector of int) +0:81 i: direct index for structure ( temp 4-component vector of int) +0:81 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:81 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:81 Constant: +0:81 0 (const uint) +0:81 direct index ( temp uint) +0:81 'dti' ( in 3-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:81 Sequence +0:81 Constant: +0:81 0 (const int) +0:81 Constant: +0:81 1 (const int) +0:82 move second child to first child ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:82 subgroupMax ( temp 3-component vector of int) +0:82 vector swizzle ( temp 3-component vector of int) +0:82 i: direct index for structure ( temp 4-component vector of int) +0:82 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:82 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:82 Constant: +0:82 0 (const uint) +0:82 direct index ( temp uint) +0:82 'dti' ( in 3-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Sequence +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 1 (const int) +0:82 Constant: +0:82 2 (const int) +0:84 move second child to first child ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:84 subgroupMax ( temp 4-component vector of float) +0:84 f: direct index for structure ( temp 4-component vector of float) +0:84 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:84 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:84 Constant: +0:84 0 (const uint) +0:84 direct index ( temp uint) +0:84 'dti' ( in 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 Constant: +0:84 2 (const int) +0:85 move second child to first child ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:85 subgroupMax ( temp float) +0:85 direct index ( temp float) +0:85 f: direct index for structure ( temp 4-component vector of float) +0:85 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:85 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:85 Constant: +0:85 0 (const uint) +0:85 direct index ( temp uint) +0:85 'dti' ( in 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 Constant: +0:85 2 (const int) +0:85 Constant: +0:85 0 (const int) +0:86 move second child to first child ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:86 subgroupMax ( temp 2-component vector of float) +0:86 vector swizzle ( temp 2-component vector of float) +0:86 f: direct index for structure ( temp 4-component vector of float) +0:86 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:86 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:86 Constant: +0:86 0 (const uint) +0:86 direct index ( temp uint) +0:86 'dti' ( in 3-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 2 (const int) +0:86 Sequence +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1 (const int) +0:87 move second child to first child ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 subgroupMax ( temp 3-component vector of float) +0:87 vector swizzle ( temp 3-component vector of float) +0:87 f: direct index for structure ( temp 4-component vector of float) +0:87 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:87 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:87 Constant: +0:87 0 (const uint) +0:87 direct index ( temp uint) +0:87 'dti' ( in 3-component vector of uint) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 2 (const int) +0:87 Sequence +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 2 (const int) +0:89 move second child to first child ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:89 subgroupMax ( temp 4-component vector of double) +0:89 d: direct index for structure ( temp 4-component vector of double) +0:89 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:89 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:89 Constant: +0:89 0 (const uint) +0:89 direct index ( temp uint) +0:89 'dti' ( in 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 Constant: +0:89 3 (const int) +0:90 move second child to first child ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:90 subgroupMax ( temp double) +0:90 direct index ( temp double) +0:90 d: direct index for structure ( temp 4-component vector of double) +0:90 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:90 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:90 Constant: +0:90 0 (const uint) +0:90 direct index ( temp uint) +0:90 'dti' ( in 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 Constant: +0:90 3 (const int) +0:90 Constant: +0:90 0 (const int) +0:91 move second child to first child ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:91 subgroupMax ( temp 2-component vector of double) +0:91 vector swizzle ( temp 2-component vector of double) +0:91 d: direct index for structure ( temp 4-component vector of double) +0:91 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:91 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:91 Constant: +0:91 0 (const uint) +0:91 direct index ( temp uint) +0:91 'dti' ( in 3-component vector of uint) +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 3 (const int) +0:91 Sequence +0:91 Constant: +0:91 0 (const int) +0:91 Constant: +0:91 1 (const int) +0:92 move second child to first child ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:92 subgroupMax ( temp 3-component vector of double) +0:92 vector swizzle ( temp 3-component vector of double) +0:92 d: direct index for structure ( temp 4-component vector of double) +0:92 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:92 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:92 Constant: +0:92 0 (const uint) +0:92 direct index ( temp uint) +0:92 'dti' ( in 3-component vector of uint) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 3 (const int) +0:92 Sequence +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1 (const int) +0:92 Constant: +0:92 2 (const int) +0:94 move second child to first child ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:94 subgroupAnd ( temp 4-component vector of uint) +0:94 u: direct index for structure ( temp 4-component vector of uint) +0:94 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:94 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:94 Constant: +0:94 0 (const uint) +0:94 direct index ( temp uint) +0:94 'dti' ( in 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 Constant: +0:94 0 (const int) +0:95 move second child to first child ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 subgroupAnd ( temp uint) +0:95 direct index ( temp uint) +0:95 u: direct index for structure ( temp 4-component vector of uint) +0:95 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:95 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:95 Constant: +0:95 0 (const uint) +0:95 direct index ( temp uint) +0:95 'dti' ( in 3-component vector of uint) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:95 Constant: +0:95 0 (const int) +0:96 move second child to first child ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:96 subgroupAnd ( temp 2-component vector of uint) +0:96 vector swizzle ( temp 2-component vector of uint) +0:96 u: direct index for structure ( temp 4-component vector of uint) +0:96 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:96 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:96 Constant: +0:96 0 (const uint) +0:96 direct index ( temp uint) +0:96 'dti' ( in 3-component vector of uint) +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 0 (const int) +0:96 Sequence +0:96 Constant: +0:96 0 (const int) +0:96 Constant: +0:96 1 (const int) +0:97 move second child to first child ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:97 subgroupAnd ( temp 3-component vector of uint) +0:97 vector swizzle ( temp 3-component vector of uint) +0:97 u: direct index for structure ( temp 4-component vector of uint) +0:97 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:97 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:97 Constant: +0:97 0 (const uint) +0:97 direct index ( temp uint) +0:97 'dti' ( in 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 0 (const int) +0:97 Sequence +0:97 Constant: +0:97 0 (const int) +0:97 Constant: +0:97 1 (const int) +0:97 Constant: +0:97 2 (const int) +0:99 move second child to first child ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:99 subgroupAnd ( temp 4-component vector of int) +0:99 i: direct index for structure ( temp 4-component vector of int) +0:99 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:99 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:99 Constant: +0:99 0 (const uint) +0:99 direct index ( temp uint) +0:99 'dti' ( in 3-component vector of uint) +0:99 Constant: +0:99 0 (const int) +0:99 Constant: +0:99 1 (const int) +0:100 move second child to first child ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:100 subgroupAnd ( temp int) +0:100 direct index ( temp int) +0:100 i: direct index for structure ( temp 4-component vector of int) +0:100 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:100 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:100 Constant: +0:100 0 (const uint) +0:100 direct index ( temp uint) +0:100 'dti' ( in 3-component vector of uint) +0:100 Constant: +0:100 0 (const int) +0:100 Constant: +0:100 1 (const int) +0:100 Constant: +0:100 0 (const int) +0:101 move second child to first child ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 subgroupAnd ( temp 2-component vector of int) +0:101 vector swizzle ( temp 2-component vector of int) +0:101 i: direct index for structure ( temp 4-component vector of int) +0:101 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:101 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:101 Constant: +0:101 0 (const uint) +0:101 direct index ( temp uint) +0:101 'dti' ( in 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:101 Sequence +0:101 Constant: +0:101 0 (const int) +0:101 Constant: +0:101 1 (const int) +0:102 move second child to first child ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:102 subgroupAnd ( temp 3-component vector of int) +0:102 vector swizzle ( temp 3-component vector of int) +0:102 i: direct index for structure ( temp 4-component vector of int) +0:102 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:102 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:102 Constant: +0:102 0 (const uint) +0:102 direct index ( temp uint) +0:102 'dti' ( in 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Sequence +0:102 Constant: +0:102 0 (const int) +0:102 Constant: +0:102 1 (const int) +0:102 Constant: +0:102 2 (const int) +0:104 move second child to first child ( temp 4-component vector of uint) +0:104 u: direct index for structure ( temp 4-component vector of uint) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 0 (const int) +0:104 subgroupOr ( temp 4-component vector of uint) +0:104 u: direct index for structure ( temp 4-component vector of uint) +0:104 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:104 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:104 Constant: +0:104 0 (const uint) +0:104 direct index ( temp uint) +0:104 'dti' ( in 3-component vector of uint) +0:104 Constant: +0:104 0 (const int) +0:104 Constant: +0:104 0 (const int) +0:105 move second child to first child ( temp uint) +0:105 direct index ( temp uint) +0:105 u: direct index for structure ( temp 4-component vector of uint) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 subgroupOr ( temp uint) +0:105 direct index ( temp uint) +0:105 u: direct index for structure ( temp 4-component vector of uint) +0:105 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:105 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:105 Constant: +0:105 0 (const uint) +0:105 direct index ( temp uint) +0:105 'dti' ( in 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:105 Constant: +0:105 0 (const int) +0:106 move second child to first child ( temp 2-component vector of uint) +0:106 vector swizzle ( temp 2-component vector of uint) +0:106 u: direct index for structure ( temp 4-component vector of uint) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 0 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:106 subgroupOr ( temp 2-component vector of uint) +0:106 vector swizzle ( temp 2-component vector of uint) +0:106 u: direct index for structure ( temp 4-component vector of uint) +0:106 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:106 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:106 Constant: +0:106 0 (const uint) +0:106 direct index ( temp uint) +0:106 'dti' ( in 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 0 (const int) +0:106 Sequence +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1 (const int) +0:107 move second child to first child ( temp 3-component vector of uint) +0:107 vector swizzle ( temp 3-component vector of uint) +0:107 u: direct index for structure ( temp 4-component vector of uint) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 0 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:107 subgroupOr ( temp 3-component vector of uint) +0:107 vector swizzle ( temp 3-component vector of uint) +0:107 u: direct index for structure ( temp 4-component vector of uint) +0:107 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:107 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:107 Constant: +0:107 0 (const uint) +0:107 direct index ( temp uint) +0:107 'dti' ( in 3-component vector of uint) +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 0 (const int) +0:107 Sequence +0:107 Constant: +0:107 0 (const int) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 2 (const int) +0:109 move second child to first child ( temp 4-component vector of int) +0:109 i: direct index for structure ( temp 4-component vector of int) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 1 (const int) +0:109 subgroupOr ( temp 4-component vector of int) +0:109 i: direct index for structure ( temp 4-component vector of int) +0:109 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:109 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:109 Constant: +0:109 0 (const uint) +0:109 direct index ( temp uint) +0:109 'dti' ( in 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 Constant: +0:109 1 (const int) +0:110 move second child to first child ( temp int) +0:110 direct index ( temp int) +0:110 i: direct index for structure ( temp 4-component vector of int) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 1 (const int) +0:110 Constant: +0:110 0 (const int) +0:110 subgroupOr ( temp int) +0:110 direct index ( temp int) +0:110 i: direct index for structure ( temp 4-component vector of int) +0:110 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:110 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:110 Constant: +0:110 0 (const uint) +0:110 direct index ( temp uint) +0:110 'dti' ( in 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 Constant: +0:110 1 (const int) +0:110 Constant: +0:110 0 (const int) +0:111 move second child to first child ( temp 2-component vector of int) +0:111 vector swizzle ( temp 2-component vector of int) +0:111 i: direct index for structure ( temp 4-component vector of int) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 subgroupOr ( temp 2-component vector of int) +0:111 vector swizzle ( temp 2-component vector of int) +0:111 i: direct index for structure ( temp 4-component vector of int) +0:111 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:111 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:111 Constant: +0:111 0 (const uint) +0:111 direct index ( temp uint) +0:111 'dti' ( in 3-component vector of uint) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:111 Sequence +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1 (const int) +0:112 move second child to first child ( temp 3-component vector of int) +0:112 vector swizzle ( temp 3-component vector of int) +0:112 i: direct index for structure ( temp 4-component vector of int) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:112 subgroupOr ( temp 3-component vector of int) +0:112 vector swizzle ( temp 3-component vector of int) +0:112 i: direct index for structure ( temp 4-component vector of int) +0:112 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:112 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:112 Constant: +0:112 0 (const uint) +0:112 direct index ( temp uint) +0:112 'dti' ( in 3-component vector of uint) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Sequence +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1 (const int) +0:112 Constant: +0:112 2 (const int) +0:114 move second child to first child ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:114 subgroupXor ( temp 4-component vector of uint) +0:114 u: direct index for structure ( temp 4-component vector of uint) +0:114 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:114 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:114 Constant: +0:114 0 (const uint) +0:114 direct index ( temp uint) +0:114 'dti' ( in 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 Constant: +0:114 0 (const int) +0:115 move second child to first child ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 subgroupXor ( temp uint) +0:115 direct index ( temp uint) +0:115 u: direct index for structure ( temp 4-component vector of uint) +0:115 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:115 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:115 Constant: +0:115 0 (const uint) +0:115 direct index ( temp uint) +0:115 'dti' ( in 3-component vector of uint) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:115 Constant: +0:115 0 (const int) +0:116 move second child to first child ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:116 subgroupXor ( temp 2-component vector of uint) +0:116 vector swizzle ( temp 2-component vector of uint) +0:116 u: direct index for structure ( temp 4-component vector of uint) +0:116 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:116 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:116 Constant: +0:116 0 (const uint) +0:116 direct index ( temp uint) +0:116 'dti' ( in 3-component vector of uint) +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 0 (const int) +0:116 Sequence +0:116 Constant: +0:116 0 (const int) +0:116 Constant: +0:116 1 (const int) +0:117 move second child to first child ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:117 subgroupXor ( temp 3-component vector of uint) +0:117 vector swizzle ( temp 3-component vector of uint) +0:117 u: direct index for structure ( temp 4-component vector of uint) +0:117 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:117 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:117 Constant: +0:117 0 (const uint) +0:117 direct index ( temp uint) +0:117 'dti' ( in 3-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 0 (const int) +0:117 Sequence +0:117 Constant: +0:117 0 (const int) +0:117 Constant: +0:117 1 (const int) +0:117 Constant: +0:117 2 (const int) +0:119 move second child to first child ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:119 subgroupXor ( temp 4-component vector of int) +0:119 i: direct index for structure ( temp 4-component vector of int) +0:119 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:119 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:119 Constant: +0:119 0 (const uint) +0:119 direct index ( temp uint) +0:119 'dti' ( in 3-component vector of uint) +0:119 Constant: +0:119 0 (const int) +0:119 Constant: +0:119 1 (const int) +0:120 move second child to first child ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:120 subgroupXor ( temp int) +0:120 direct index ( temp int) +0:120 i: direct index for structure ( temp 4-component vector of int) +0:120 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:120 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:120 Constant: +0:120 0 (const uint) +0:120 direct index ( temp uint) +0:120 'dti' ( in 3-component vector of uint) +0:120 Constant: +0:120 0 (const int) +0:120 Constant: +0:120 1 (const int) +0:120 Constant: +0:120 0 (const int) +0:121 move second child to first child ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 subgroupXor ( temp 2-component vector of int) +0:121 vector swizzle ( temp 2-component vector of int) +0:121 i: direct index for structure ( temp 4-component vector of int) +0:121 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:121 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:121 Constant: +0:121 0 (const uint) +0:121 direct index ( temp uint) +0:121 'dti' ( in 3-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:121 Sequence +0:121 Constant: +0:121 0 (const int) +0:121 Constant: +0:121 1 (const int) +0:122 move second child to first child ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:122 subgroupXor ( temp 3-component vector of int) +0:122 vector swizzle ( temp 3-component vector of int) +0:122 i: direct index for structure ( temp 4-component vector of int) +0:122 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:122 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:122 Constant: +0:122 0 (const uint) +0:122 direct index ( temp uint) +0:122 'dti' ( in 3-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Sequence +0:122 Constant: +0:122 0 (const int) +0:122 Constant: +0:122 1 (const int) +0:122 Constant: +0:122 2 (const int) +0:124 move second child to first child ( temp uint) +0:124 direct index ( temp uint) +0:124 u: direct index for structure ( temp 4-component vector of uint) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 subgroupBallotBitCount ( temp uint) +0:124 subgroupBallot ( temp 4-component vector of uint) +0:124 Compare Equal ( temp bool) +0:124 direct index ( temp uint) +0:124 u: direct index for structure ( temp 4-component vector of uint) +0:124 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d}) +0:124 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:124 Constant: +0:124 0 (const uint) +0:124 direct index ( temp uint) +0:124 'dti' ( in 3-component vector of uint) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const int) +0:124 Constant: +0:124 0 (const uint) +0:13 Function Definition: CSMain( ( temp void) +0:13 Function Parameters: +0:? Sequence +0:13 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:13 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of uint u, temp 4-component vector of int i, temp 4-component vector of float f, temp 4-component vector of double d} @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 901 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformArithmetic + Capability GroupNonUniformBallot + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "CSMain" 896 + ExecutionMode 4 LocalSize 32 16 1 + Source HLSL 500 + Name 4 "CSMain" + Name 11 "@CSMain(vu3;" + Name 10 "dti" + Name 20 "Types" + MemberName 20(Types) 0 "u" + MemberName 20(Types) 1 "i" + MemberName 20(Types) 2 "f" + MemberName 20(Types) 3 "d" + Name 22 "data" + MemberName 22(data) 0 "@data" + Name 24 "data" + Name 894 "dti" + Name 896 "dti" + Name 898 "param" + MemberDecorate 20(Types) 0 Offset 0 + MemberDecorate 20(Types) 1 Offset 16 + MemberDecorate 20(Types) 2 Offset 32 + MemberDecorate 20(Types) 3 Offset 64 + Decorate 21 ArrayStride 96 + MemberDecorate 22(data) 0 Offset 0 + Decorate 22(data) BufferBlock + Decorate 24(data) DescriptorSet 0 + Decorate 896(dti) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeVector 6(int) 4 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 4 + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypeFloat 64 + 19: TypeVector 18(float64_t) 4 + 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) + 21: TypeRuntimeArray 20(Types) + 22(data): TypeStruct 21 + 23: TypePointer Uniform 22(data) + 24(data): 23(ptr) Variable Uniform + 25: 14(int) Constant 0 + 26: 6(int) Constant 0 + 27: TypePointer Function 6(int) + 32: TypePointer Uniform 13(ivec4) + 35: 6(int) Constant 3 + 42: TypePointer Uniform 6(int) + 51: TypeVector 6(int) 2 + 72: 14(int) Constant 1 + 75: TypePointer Uniform 15(ivec4) + 84: TypePointer Uniform 14(int) + 93: TypeVector 14(int) 2 + 105: TypeVector 14(int) 3 + 115: 14(int) Constant 2 + 118: TypePointer Uniform 17(fvec4) + 127: TypePointer Uniform 16(float) + 136: TypeVector 16(float) 2 + 148: TypeVector 16(float) 3 + 158: 14(int) Constant 3 + 161: TypePointer Uniform 19(f64vec4) + 170: TypePointer Uniform 18(float64_t) + 179: TypeVector 18(float64_t) 2 + 191: TypeVector 18(float64_t) 3 + 889: TypeBool + 895: TypePointer Input 7(ivec3) + 896(dti): 895(ptr) Variable Input + 4(CSMain): 2 Function None 3 + 5: Label + 894(dti): 8(ptr) Variable Function + 898(param): 8(ptr) Variable Function + 897: 7(ivec3) Load 896(dti) + Store 894(dti) 897 + 899: 7(ivec3) Load 894(dti) + Store 898(param) 899 + 900: 2 FunctionCall 11(@CSMain(vu3;) 898(param) + Return + FunctionEnd +11(@CSMain(vu3;): 2 Function None 9 + 10(dti): 8(ptr) FunctionParameter + 12: Label + 28: 27(ptr) AccessChain 10(dti) 26 + 29: 6(int) Load 28 + 30: 27(ptr) AccessChain 10(dti) 26 + 31: 6(int) Load 30 + 33: 32(ptr) AccessChain 24(data) 25 31 25 + 34: 13(ivec4) Load 33 + 36: 13(ivec4) GroupNonUniformIAdd 35 Reduce 34 + 37: 32(ptr) AccessChain 24(data) 25 29 25 + Store 37 36 + 38: 27(ptr) AccessChain 10(dti) 26 + 39: 6(int) Load 38 + 40: 27(ptr) AccessChain 10(dti) 26 + 41: 6(int) Load 40 + 43: 42(ptr) AccessChain 24(data) 25 41 25 26 + 44: 6(int) Load 43 + 45: 6(int) GroupNonUniformIAdd 35 Reduce 44 + 46: 42(ptr) AccessChain 24(data) 25 39 25 26 + Store 46 45 + 47: 27(ptr) AccessChain 10(dti) 26 + 48: 6(int) Load 47 + 49: 27(ptr) AccessChain 10(dti) 26 + 50: 6(int) Load 49 + 52: 32(ptr) AccessChain 24(data) 25 50 25 + 53: 13(ivec4) Load 52 + 54: 51(ivec2) VectorShuffle 53 53 0 1 + 55: 51(ivec2) GroupNonUniformIAdd 35 Reduce 54 + 56: 32(ptr) AccessChain 24(data) 25 48 25 + 57: 13(ivec4) Load 56 + 58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 + Store 56 58 + 59: 27(ptr) AccessChain 10(dti) 26 + 60: 6(int) Load 59 + 61: 27(ptr) AccessChain 10(dti) 26 + 62: 6(int) Load 61 + 63: 32(ptr) AccessChain 24(data) 25 62 25 + 64: 13(ivec4) Load 63 + 65: 7(ivec3) VectorShuffle 64 64 0 1 2 + 66: 7(ivec3) GroupNonUniformIAdd 35 Reduce 65 + 67: 32(ptr) AccessChain 24(data) 25 60 25 + 68: 13(ivec4) Load 67 + 69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 + Store 67 69 + 70: 27(ptr) AccessChain 10(dti) 26 + 71: 6(int) Load 70 + 73: 27(ptr) AccessChain 10(dti) 26 + 74: 6(int) Load 73 + 76: 75(ptr) AccessChain 24(data) 25 74 72 + 77: 15(ivec4) Load 76 + 78: 15(ivec4) GroupNonUniformIAdd 35 Reduce 77 + 79: 75(ptr) AccessChain 24(data) 25 71 72 + Store 79 78 + 80: 27(ptr) AccessChain 10(dti) 26 + 81: 6(int) Load 80 + 82: 27(ptr) AccessChain 10(dti) 26 + 83: 6(int) Load 82 + 85: 84(ptr) AccessChain 24(data) 25 83 72 26 + 86: 14(int) Load 85 + 87: 14(int) GroupNonUniformIAdd 35 Reduce 86 + 88: 84(ptr) AccessChain 24(data) 25 81 72 26 + Store 88 87 + 89: 27(ptr) AccessChain 10(dti) 26 + 90: 6(int) Load 89 + 91: 27(ptr) AccessChain 10(dti) 26 + 92: 6(int) Load 91 + 94: 75(ptr) AccessChain 24(data) 25 92 72 + 95: 15(ivec4) Load 94 + 96: 93(ivec2) VectorShuffle 95 95 0 1 + 97: 93(ivec2) GroupNonUniformIAdd 35 Reduce 96 + 98: 75(ptr) AccessChain 24(data) 25 90 72 + 99: 15(ivec4) Load 98 + 100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 + Store 98 100 + 101: 27(ptr) AccessChain 10(dti) 26 + 102: 6(int) Load 101 + 103: 27(ptr) AccessChain 10(dti) 26 + 104: 6(int) Load 103 + 106: 75(ptr) AccessChain 24(data) 25 104 72 + 107: 15(ivec4) Load 106 + 108: 105(ivec3) VectorShuffle 107 107 0 1 2 + 109: 105(ivec3) GroupNonUniformIAdd 35 Reduce 108 + 110: 75(ptr) AccessChain 24(data) 25 102 72 + 111: 15(ivec4) Load 110 + 112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 + Store 110 112 + 113: 27(ptr) AccessChain 10(dti) 26 + 114: 6(int) Load 113 + 116: 27(ptr) AccessChain 10(dti) 26 + 117: 6(int) Load 116 + 119: 118(ptr) AccessChain 24(data) 25 117 115 + 120: 17(fvec4) Load 119 + 121: 17(fvec4) GroupNonUniformFAdd 35 Reduce 120 + 122: 118(ptr) AccessChain 24(data) 25 114 115 + Store 122 121 + 123: 27(ptr) AccessChain 10(dti) 26 + 124: 6(int) Load 123 + 125: 27(ptr) AccessChain 10(dti) 26 + 126: 6(int) Load 125 + 128: 127(ptr) AccessChain 24(data) 25 126 115 26 + 129: 16(float) Load 128 + 130: 16(float) GroupNonUniformFAdd 35 Reduce 129 + 131: 127(ptr) AccessChain 24(data) 25 124 115 26 + Store 131 130 + 132: 27(ptr) AccessChain 10(dti) 26 + 133: 6(int) Load 132 + 134: 27(ptr) AccessChain 10(dti) 26 + 135: 6(int) Load 134 + 137: 118(ptr) AccessChain 24(data) 25 135 115 + 138: 17(fvec4) Load 137 + 139: 136(fvec2) VectorShuffle 138 138 0 1 + 140: 136(fvec2) GroupNonUniformFAdd 35 Reduce 139 + 141: 118(ptr) AccessChain 24(data) 25 133 115 + 142: 17(fvec4) Load 141 + 143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 + Store 141 143 + 144: 27(ptr) AccessChain 10(dti) 26 + 145: 6(int) Load 144 + 146: 27(ptr) AccessChain 10(dti) 26 + 147: 6(int) Load 146 + 149: 118(ptr) AccessChain 24(data) 25 147 115 + 150: 17(fvec4) Load 149 + 151: 148(fvec3) VectorShuffle 150 150 0 1 2 + 152: 148(fvec3) GroupNonUniformFAdd 35 Reduce 151 + 153: 118(ptr) AccessChain 24(data) 25 145 115 + 154: 17(fvec4) Load 153 + 155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 + Store 153 155 + 156: 27(ptr) AccessChain 10(dti) 26 + 157: 6(int) Load 156 + 159: 27(ptr) AccessChain 10(dti) 26 + 160: 6(int) Load 159 + 162: 161(ptr) AccessChain 24(data) 25 160 158 + 163: 19(f64vec4) Load 162 + 164: 19(f64vec4) GroupNonUniformFAdd 35 Reduce 163 + 165: 161(ptr) AccessChain 24(data) 25 157 158 + Store 165 164 + 166: 27(ptr) AccessChain 10(dti) 26 + 167: 6(int) Load 166 + 168: 27(ptr) AccessChain 10(dti) 26 + 169: 6(int) Load 168 + 171: 170(ptr) AccessChain 24(data) 25 169 158 26 + 172:18(float64_t) Load 171 + 173:18(float64_t) GroupNonUniformFAdd 35 Reduce 172 + 174: 170(ptr) AccessChain 24(data) 25 167 158 26 + Store 174 173 + 175: 27(ptr) AccessChain 10(dti) 26 + 176: 6(int) Load 175 + 177: 27(ptr) AccessChain 10(dti) 26 + 178: 6(int) Load 177 + 180: 161(ptr) AccessChain 24(data) 25 178 158 + 181: 19(f64vec4) Load 180 + 182:179(f64vec2) VectorShuffle 181 181 0 1 + 183:179(f64vec2) GroupNonUniformFAdd 35 Reduce 182 + 184: 161(ptr) AccessChain 24(data) 25 176 158 + 185: 19(f64vec4) Load 184 + 186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 + Store 184 186 + 187: 27(ptr) AccessChain 10(dti) 26 + 188: 6(int) Load 187 + 189: 27(ptr) AccessChain 10(dti) 26 + 190: 6(int) Load 189 + 192: 161(ptr) AccessChain 24(data) 25 190 158 + 193: 19(f64vec4) Load 192 + 194:191(f64vec3) VectorShuffle 193 193 0 1 2 + 195:191(f64vec3) GroupNonUniformFAdd 35 Reduce 194 + 196: 161(ptr) AccessChain 24(data) 25 188 158 + 197: 19(f64vec4) Load 196 + 198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 + Store 196 198 + 199: 27(ptr) AccessChain 10(dti) 26 + 200: 6(int) Load 199 + 201: 27(ptr) AccessChain 10(dti) 26 + 202: 6(int) Load 201 + 203: 32(ptr) AccessChain 24(data) 25 202 25 + 204: 13(ivec4) Load 203 + 205: 13(ivec4) GroupNonUniformIMul 35 Reduce 204 + 206: 32(ptr) AccessChain 24(data) 25 200 25 + Store 206 205 + 207: 27(ptr) AccessChain 10(dti) 26 + 208: 6(int) Load 207 + 209: 27(ptr) AccessChain 10(dti) 26 + 210: 6(int) Load 209 + 211: 42(ptr) AccessChain 24(data) 25 210 25 26 + 212: 6(int) Load 211 + 213: 6(int) GroupNonUniformIMul 35 Reduce 212 + 214: 42(ptr) AccessChain 24(data) 25 208 25 26 + Store 214 213 + 215: 27(ptr) AccessChain 10(dti) 26 + 216: 6(int) Load 215 + 217: 27(ptr) AccessChain 10(dti) 26 + 218: 6(int) Load 217 + 219: 32(ptr) AccessChain 24(data) 25 218 25 + 220: 13(ivec4) Load 219 + 221: 51(ivec2) VectorShuffle 220 220 0 1 + 222: 51(ivec2) GroupNonUniformIMul 35 Reduce 221 + 223: 32(ptr) AccessChain 24(data) 25 216 25 + 224: 13(ivec4) Load 223 + 225: 13(ivec4) VectorShuffle 224 222 4 5 2 3 + Store 223 225 + 226: 27(ptr) AccessChain 10(dti) 26 + 227: 6(int) Load 226 + 228: 27(ptr) AccessChain 10(dti) 26 + 229: 6(int) Load 228 + 230: 32(ptr) AccessChain 24(data) 25 229 25 + 231: 13(ivec4) Load 230 + 232: 7(ivec3) VectorShuffle 231 231 0 1 2 + 233: 7(ivec3) GroupNonUniformIMul 35 Reduce 232 + 234: 32(ptr) AccessChain 24(data) 25 227 25 + 235: 13(ivec4) Load 234 + 236: 13(ivec4) VectorShuffle 235 233 4 5 6 3 + Store 234 236 + 237: 27(ptr) AccessChain 10(dti) 26 + 238: 6(int) Load 237 + 239: 27(ptr) AccessChain 10(dti) 26 + 240: 6(int) Load 239 + 241: 75(ptr) AccessChain 24(data) 25 240 72 + 242: 15(ivec4) Load 241 + 243: 15(ivec4) GroupNonUniformIMul 35 Reduce 242 + 244: 75(ptr) AccessChain 24(data) 25 238 72 + Store 244 243 + 245: 27(ptr) AccessChain 10(dti) 26 + 246: 6(int) Load 245 + 247: 27(ptr) AccessChain 10(dti) 26 + 248: 6(int) Load 247 + 249: 84(ptr) AccessChain 24(data) 25 248 72 26 + 250: 14(int) Load 249 + 251: 14(int) GroupNonUniformIMul 35 Reduce 250 + 252: 84(ptr) AccessChain 24(data) 25 246 72 26 + Store 252 251 + 253: 27(ptr) AccessChain 10(dti) 26 + 254: 6(int) Load 253 + 255: 27(ptr) AccessChain 10(dti) 26 + 256: 6(int) Load 255 + 257: 75(ptr) AccessChain 24(data) 25 256 72 + 258: 15(ivec4) Load 257 + 259: 93(ivec2) VectorShuffle 258 258 0 1 + 260: 93(ivec2) GroupNonUniformIMul 35 Reduce 259 + 261: 75(ptr) AccessChain 24(data) 25 254 72 + 262: 15(ivec4) Load 261 + 263: 15(ivec4) VectorShuffle 262 260 4 5 2 3 + Store 261 263 + 264: 27(ptr) AccessChain 10(dti) 26 + 265: 6(int) Load 264 + 266: 27(ptr) AccessChain 10(dti) 26 + 267: 6(int) Load 266 + 268: 75(ptr) AccessChain 24(data) 25 267 72 + 269: 15(ivec4) Load 268 + 270: 105(ivec3) VectorShuffle 269 269 0 1 2 + 271: 105(ivec3) GroupNonUniformIMul 35 Reduce 270 + 272: 75(ptr) AccessChain 24(data) 25 265 72 + 273: 15(ivec4) Load 272 + 274: 15(ivec4) VectorShuffle 273 271 4 5 6 3 + Store 272 274 + 275: 27(ptr) AccessChain 10(dti) 26 + 276: 6(int) Load 275 + 277: 27(ptr) AccessChain 10(dti) 26 + 278: 6(int) Load 277 + 279: 118(ptr) AccessChain 24(data) 25 278 115 + 280: 17(fvec4) Load 279 + 281: 17(fvec4) GroupNonUniformFMul 35 Reduce 280 + 282: 118(ptr) AccessChain 24(data) 25 276 115 + Store 282 281 + 283: 27(ptr) AccessChain 10(dti) 26 + 284: 6(int) Load 283 + 285: 27(ptr) AccessChain 10(dti) 26 + 286: 6(int) Load 285 + 287: 127(ptr) AccessChain 24(data) 25 286 115 26 + 288: 16(float) Load 287 + 289: 16(float) GroupNonUniformFMul 35 Reduce 288 + 290: 127(ptr) AccessChain 24(data) 25 284 115 26 + Store 290 289 + 291: 27(ptr) AccessChain 10(dti) 26 + 292: 6(int) Load 291 + 293: 27(ptr) AccessChain 10(dti) 26 + 294: 6(int) Load 293 + 295: 118(ptr) AccessChain 24(data) 25 294 115 + 296: 17(fvec4) Load 295 + 297: 136(fvec2) VectorShuffle 296 296 0 1 + 298: 136(fvec2) GroupNonUniformFMul 35 Reduce 297 + 299: 118(ptr) AccessChain 24(data) 25 292 115 + 300: 17(fvec4) Load 299 + 301: 17(fvec4) VectorShuffle 300 298 4 5 2 3 + Store 299 301 + 302: 27(ptr) AccessChain 10(dti) 26 + 303: 6(int) Load 302 + 304: 27(ptr) AccessChain 10(dti) 26 + 305: 6(int) Load 304 + 306: 118(ptr) AccessChain 24(data) 25 305 115 + 307: 17(fvec4) Load 306 + 308: 148(fvec3) VectorShuffle 307 307 0 1 2 + 309: 148(fvec3) GroupNonUniformFMul 35 Reduce 308 + 310: 118(ptr) AccessChain 24(data) 25 303 115 + 311: 17(fvec4) Load 310 + 312: 17(fvec4) VectorShuffle 311 309 4 5 6 3 + Store 310 312 + 313: 27(ptr) AccessChain 10(dti) 26 + 314: 6(int) Load 313 + 315: 27(ptr) AccessChain 10(dti) 26 + 316: 6(int) Load 315 + 317: 161(ptr) AccessChain 24(data) 25 316 158 + 318: 19(f64vec4) Load 317 + 319: 19(f64vec4) GroupNonUniformFMul 35 Reduce 318 + 320: 161(ptr) AccessChain 24(data) 25 314 158 + Store 320 319 + 321: 27(ptr) AccessChain 10(dti) 26 + 322: 6(int) Load 321 + 323: 27(ptr) AccessChain 10(dti) 26 + 324: 6(int) Load 323 + 325: 170(ptr) AccessChain 24(data) 25 324 158 26 + 326:18(float64_t) Load 325 + 327:18(float64_t) GroupNonUniformFMul 35 Reduce 326 + 328: 170(ptr) AccessChain 24(data) 25 322 158 26 + Store 328 327 + 329: 27(ptr) AccessChain 10(dti) 26 + 330: 6(int) Load 329 + 331: 27(ptr) AccessChain 10(dti) 26 + 332: 6(int) Load 331 + 333: 161(ptr) AccessChain 24(data) 25 332 158 + 334: 19(f64vec4) Load 333 + 335:179(f64vec2) VectorShuffle 334 334 0 1 + 336:179(f64vec2) GroupNonUniformFMul 35 Reduce 335 + 337: 161(ptr) AccessChain 24(data) 25 330 158 + 338: 19(f64vec4) Load 337 + 339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3 + Store 337 339 + 340: 27(ptr) AccessChain 10(dti) 26 + 341: 6(int) Load 340 + 342: 27(ptr) AccessChain 10(dti) 26 + 343: 6(int) Load 342 + 344: 161(ptr) AccessChain 24(data) 25 343 158 + 345: 19(f64vec4) Load 344 + 346:191(f64vec3) VectorShuffle 345 345 0 1 2 + 347:191(f64vec3) GroupNonUniformFMul 35 Reduce 346 + 348: 161(ptr) AccessChain 24(data) 25 341 158 + 349: 19(f64vec4) Load 348 + 350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3 + Store 348 350 + 351: 27(ptr) AccessChain 10(dti) 26 + 352: 6(int) Load 351 + 353: 27(ptr) AccessChain 10(dti) 26 + 354: 6(int) Load 353 + 355: 32(ptr) AccessChain 24(data) 25 354 25 + 356: 13(ivec4) Load 355 + 357: 13(ivec4) GroupNonUniformUMin 35 Reduce 356 + 358: 32(ptr) AccessChain 24(data) 25 352 25 + Store 358 357 + 359: 27(ptr) AccessChain 10(dti) 26 + 360: 6(int) Load 359 + 361: 27(ptr) AccessChain 10(dti) 26 + 362: 6(int) Load 361 + 363: 42(ptr) AccessChain 24(data) 25 362 25 26 + 364: 6(int) Load 363 + 365: 6(int) GroupNonUniformUMin 35 Reduce 364 + 366: 42(ptr) AccessChain 24(data) 25 360 25 26 + Store 366 365 + 367: 27(ptr) AccessChain 10(dti) 26 + 368: 6(int) Load 367 + 369: 27(ptr) AccessChain 10(dti) 26 + 370: 6(int) Load 369 + 371: 32(ptr) AccessChain 24(data) 25 370 25 + 372: 13(ivec4) Load 371 + 373: 51(ivec2) VectorShuffle 372 372 0 1 + 374: 51(ivec2) GroupNonUniformUMin 35 Reduce 373 + 375: 32(ptr) AccessChain 24(data) 25 368 25 + 376: 13(ivec4) Load 375 + 377: 13(ivec4) VectorShuffle 376 374 4 5 2 3 + Store 375 377 + 378: 27(ptr) AccessChain 10(dti) 26 + 379: 6(int) Load 378 + 380: 27(ptr) AccessChain 10(dti) 26 + 381: 6(int) Load 380 + 382: 32(ptr) AccessChain 24(data) 25 381 25 + 383: 13(ivec4) Load 382 + 384: 7(ivec3) VectorShuffle 383 383 0 1 2 + 385: 7(ivec3) GroupNonUniformUMin 35 Reduce 384 + 386: 32(ptr) AccessChain 24(data) 25 379 25 + 387: 13(ivec4) Load 386 + 388: 13(ivec4) VectorShuffle 387 385 4 5 6 3 + Store 386 388 + 389: 27(ptr) AccessChain 10(dti) 26 + 390: 6(int) Load 389 + 391: 27(ptr) AccessChain 10(dti) 26 + 392: 6(int) Load 391 + 393: 75(ptr) AccessChain 24(data) 25 392 72 + 394: 15(ivec4) Load 393 + 395: 15(ivec4) GroupNonUniformSMin 35 Reduce 394 + 396: 75(ptr) AccessChain 24(data) 25 390 72 + Store 396 395 + 397: 27(ptr) AccessChain 10(dti) 26 + 398: 6(int) Load 397 + 399: 27(ptr) AccessChain 10(dti) 26 + 400: 6(int) Load 399 + 401: 84(ptr) AccessChain 24(data) 25 400 72 26 + 402: 14(int) Load 401 + 403: 14(int) GroupNonUniformSMin 35 Reduce 402 + 404: 84(ptr) AccessChain 24(data) 25 398 72 26 + Store 404 403 + 405: 27(ptr) AccessChain 10(dti) 26 + 406: 6(int) Load 405 + 407: 27(ptr) AccessChain 10(dti) 26 + 408: 6(int) Load 407 + 409: 75(ptr) AccessChain 24(data) 25 408 72 + 410: 15(ivec4) Load 409 + 411: 93(ivec2) VectorShuffle 410 410 0 1 + 412: 93(ivec2) GroupNonUniformSMin 35 Reduce 411 + 413: 75(ptr) AccessChain 24(data) 25 406 72 + 414: 15(ivec4) Load 413 + 415: 15(ivec4) VectorShuffle 414 412 4 5 2 3 + Store 413 415 + 416: 27(ptr) AccessChain 10(dti) 26 + 417: 6(int) Load 416 + 418: 27(ptr) AccessChain 10(dti) 26 + 419: 6(int) Load 418 + 420: 75(ptr) AccessChain 24(data) 25 419 72 + 421: 15(ivec4) Load 420 + 422: 105(ivec3) VectorShuffle 421 421 0 1 2 + 423: 105(ivec3) GroupNonUniformSMin 35 Reduce 422 + 424: 75(ptr) AccessChain 24(data) 25 417 72 + 425: 15(ivec4) Load 424 + 426: 15(ivec4) VectorShuffle 425 423 4 5 6 3 + Store 424 426 + 427: 27(ptr) AccessChain 10(dti) 26 + 428: 6(int) Load 427 + 429: 27(ptr) AccessChain 10(dti) 26 + 430: 6(int) Load 429 + 431: 118(ptr) AccessChain 24(data) 25 430 115 + 432: 17(fvec4) Load 431 + 433: 17(fvec4) GroupNonUniformFMin 35 Reduce 432 + 434: 118(ptr) AccessChain 24(data) 25 428 115 + Store 434 433 + 435: 27(ptr) AccessChain 10(dti) 26 + 436: 6(int) Load 435 + 437: 27(ptr) AccessChain 10(dti) 26 + 438: 6(int) Load 437 + 439: 127(ptr) AccessChain 24(data) 25 438 115 26 + 440: 16(float) Load 439 + 441: 16(float) GroupNonUniformFMin 35 Reduce 440 + 442: 127(ptr) AccessChain 24(data) 25 436 115 26 + Store 442 441 + 443: 27(ptr) AccessChain 10(dti) 26 + 444: 6(int) Load 443 + 445: 27(ptr) AccessChain 10(dti) 26 + 446: 6(int) Load 445 + 447: 118(ptr) AccessChain 24(data) 25 446 115 + 448: 17(fvec4) Load 447 + 449: 136(fvec2) VectorShuffle 448 448 0 1 + 450: 136(fvec2) GroupNonUniformFMin 35 Reduce 449 + 451: 118(ptr) AccessChain 24(data) 25 444 115 + 452: 17(fvec4) Load 451 + 453: 17(fvec4) VectorShuffle 452 450 4 5 2 3 + Store 451 453 + 454: 27(ptr) AccessChain 10(dti) 26 + 455: 6(int) Load 454 + 456: 27(ptr) AccessChain 10(dti) 26 + 457: 6(int) Load 456 + 458: 118(ptr) AccessChain 24(data) 25 457 115 + 459: 17(fvec4) Load 458 + 460: 148(fvec3) VectorShuffle 459 459 0 1 2 + 461: 148(fvec3) GroupNonUniformFMin 35 Reduce 460 + 462: 118(ptr) AccessChain 24(data) 25 455 115 + 463: 17(fvec4) Load 462 + 464: 17(fvec4) VectorShuffle 463 461 4 5 6 3 + Store 462 464 + 465: 27(ptr) AccessChain 10(dti) 26 + 466: 6(int) Load 465 + 467: 27(ptr) AccessChain 10(dti) 26 + 468: 6(int) Load 467 + 469: 161(ptr) AccessChain 24(data) 25 468 158 + 470: 19(f64vec4) Load 469 + 471: 19(f64vec4) GroupNonUniformFMin 35 Reduce 470 + 472: 161(ptr) AccessChain 24(data) 25 466 158 + Store 472 471 + 473: 27(ptr) AccessChain 10(dti) 26 + 474: 6(int) Load 473 + 475: 27(ptr) AccessChain 10(dti) 26 + 476: 6(int) Load 475 + 477: 170(ptr) AccessChain 24(data) 25 476 158 26 + 478:18(float64_t) Load 477 + 479:18(float64_t) GroupNonUniformFMin 35 Reduce 478 + 480: 170(ptr) AccessChain 24(data) 25 474 158 26 + Store 480 479 + 481: 27(ptr) AccessChain 10(dti) 26 + 482: 6(int) Load 481 + 483: 27(ptr) AccessChain 10(dti) 26 + 484: 6(int) Load 483 + 485: 161(ptr) AccessChain 24(data) 25 484 158 + 486: 19(f64vec4) Load 485 + 487:179(f64vec2) VectorShuffle 486 486 0 1 + 488:179(f64vec2) GroupNonUniformFMin 35 Reduce 487 + 489: 161(ptr) AccessChain 24(data) 25 482 158 + 490: 19(f64vec4) Load 489 + 491: 19(f64vec4) VectorShuffle 490 488 4 5 2 3 + Store 489 491 + 492: 27(ptr) AccessChain 10(dti) 26 + 493: 6(int) Load 492 + 494: 27(ptr) AccessChain 10(dti) 26 + 495: 6(int) Load 494 + 496: 161(ptr) AccessChain 24(data) 25 495 158 + 497: 19(f64vec4) Load 496 + 498:191(f64vec3) VectorShuffle 497 497 0 1 2 + 499:191(f64vec3) GroupNonUniformFMin 35 Reduce 498 + 500: 161(ptr) AccessChain 24(data) 25 493 158 + 501: 19(f64vec4) Load 500 + 502: 19(f64vec4) VectorShuffle 501 499 4 5 6 3 + Store 500 502 + 503: 27(ptr) AccessChain 10(dti) 26 + 504: 6(int) Load 503 + 505: 27(ptr) AccessChain 10(dti) 26 + 506: 6(int) Load 505 + 507: 32(ptr) AccessChain 24(data) 25 506 25 + 508: 13(ivec4) Load 507 + 509: 13(ivec4) GroupNonUniformUMax 35 Reduce 508 + 510: 32(ptr) AccessChain 24(data) 25 504 25 + Store 510 509 + 511: 27(ptr) AccessChain 10(dti) 26 + 512: 6(int) Load 511 + 513: 27(ptr) AccessChain 10(dti) 26 + 514: 6(int) Load 513 + 515: 42(ptr) AccessChain 24(data) 25 514 25 26 + 516: 6(int) Load 515 + 517: 6(int) GroupNonUniformUMax 35 Reduce 516 + 518: 42(ptr) AccessChain 24(data) 25 512 25 26 + Store 518 517 + 519: 27(ptr) AccessChain 10(dti) 26 + 520: 6(int) Load 519 + 521: 27(ptr) AccessChain 10(dti) 26 + 522: 6(int) Load 521 + 523: 32(ptr) AccessChain 24(data) 25 522 25 + 524: 13(ivec4) Load 523 + 525: 51(ivec2) VectorShuffle 524 524 0 1 + 526: 51(ivec2) GroupNonUniformUMax 35 Reduce 525 + 527: 32(ptr) AccessChain 24(data) 25 520 25 + 528: 13(ivec4) Load 527 + 529: 13(ivec4) VectorShuffle 528 526 4 5 2 3 + Store 527 529 + 530: 27(ptr) AccessChain 10(dti) 26 + 531: 6(int) Load 530 + 532: 27(ptr) AccessChain 10(dti) 26 + 533: 6(int) Load 532 + 534: 32(ptr) AccessChain 24(data) 25 533 25 + 535: 13(ivec4) Load 534 + 536: 7(ivec3) VectorShuffle 535 535 0 1 2 + 537: 7(ivec3) GroupNonUniformUMax 35 Reduce 536 + 538: 32(ptr) AccessChain 24(data) 25 531 25 + 539: 13(ivec4) Load 538 + 540: 13(ivec4) VectorShuffle 539 537 4 5 6 3 + Store 538 540 + 541: 27(ptr) AccessChain 10(dti) 26 + 542: 6(int) Load 541 + 543: 27(ptr) AccessChain 10(dti) 26 + 544: 6(int) Load 543 + 545: 75(ptr) AccessChain 24(data) 25 544 72 + 546: 15(ivec4) Load 545 + 547: 15(ivec4) GroupNonUniformSMax 35 Reduce 546 + 548: 75(ptr) AccessChain 24(data) 25 542 72 + Store 548 547 + 549: 27(ptr) AccessChain 10(dti) 26 + 550: 6(int) Load 549 + 551: 27(ptr) AccessChain 10(dti) 26 + 552: 6(int) Load 551 + 553: 84(ptr) AccessChain 24(data) 25 552 72 26 + 554: 14(int) Load 553 + 555: 14(int) GroupNonUniformSMax 35 Reduce 554 + 556: 84(ptr) AccessChain 24(data) 25 550 72 26 + Store 556 555 + 557: 27(ptr) AccessChain 10(dti) 26 + 558: 6(int) Load 557 + 559: 27(ptr) AccessChain 10(dti) 26 + 560: 6(int) Load 559 + 561: 75(ptr) AccessChain 24(data) 25 560 72 + 562: 15(ivec4) Load 561 + 563: 93(ivec2) VectorShuffle 562 562 0 1 + 564: 93(ivec2) GroupNonUniformSMax 35 Reduce 563 + 565: 75(ptr) AccessChain 24(data) 25 558 72 + 566: 15(ivec4) Load 565 + 567: 15(ivec4) VectorShuffle 566 564 4 5 2 3 + Store 565 567 + 568: 27(ptr) AccessChain 10(dti) 26 + 569: 6(int) Load 568 + 570: 27(ptr) AccessChain 10(dti) 26 + 571: 6(int) Load 570 + 572: 75(ptr) AccessChain 24(data) 25 571 72 + 573: 15(ivec4) Load 572 + 574: 105(ivec3) VectorShuffle 573 573 0 1 2 + 575: 105(ivec3) GroupNonUniformSMax 35 Reduce 574 + 576: 75(ptr) AccessChain 24(data) 25 569 72 + 577: 15(ivec4) Load 576 + 578: 15(ivec4) VectorShuffle 577 575 4 5 6 3 + Store 576 578 + 579: 27(ptr) AccessChain 10(dti) 26 + 580: 6(int) Load 579 + 581: 27(ptr) AccessChain 10(dti) 26 + 582: 6(int) Load 581 + 583: 118(ptr) AccessChain 24(data) 25 582 115 + 584: 17(fvec4) Load 583 + 585: 17(fvec4) GroupNonUniformFMax 35 Reduce 584 + 586: 118(ptr) AccessChain 24(data) 25 580 115 + Store 586 585 + 587: 27(ptr) AccessChain 10(dti) 26 + 588: 6(int) Load 587 + 589: 27(ptr) AccessChain 10(dti) 26 + 590: 6(int) Load 589 + 591: 127(ptr) AccessChain 24(data) 25 590 115 26 + 592: 16(float) Load 591 + 593: 16(float) GroupNonUniformFMax 35 Reduce 592 + 594: 127(ptr) AccessChain 24(data) 25 588 115 26 + Store 594 593 + 595: 27(ptr) AccessChain 10(dti) 26 + 596: 6(int) Load 595 + 597: 27(ptr) AccessChain 10(dti) 26 + 598: 6(int) Load 597 + 599: 118(ptr) AccessChain 24(data) 25 598 115 + 600: 17(fvec4) Load 599 + 601: 136(fvec2) VectorShuffle 600 600 0 1 + 602: 136(fvec2) GroupNonUniformFMax 35 Reduce 601 + 603: 118(ptr) AccessChain 24(data) 25 596 115 + 604: 17(fvec4) Load 603 + 605: 17(fvec4) VectorShuffle 604 602 4 5 2 3 + Store 603 605 + 606: 27(ptr) AccessChain 10(dti) 26 + 607: 6(int) Load 606 + 608: 27(ptr) AccessChain 10(dti) 26 + 609: 6(int) Load 608 + 610: 118(ptr) AccessChain 24(data) 25 609 115 + 611: 17(fvec4) Load 610 + 612: 148(fvec3) VectorShuffle 611 611 0 1 2 + 613: 148(fvec3) GroupNonUniformFMax 35 Reduce 612 + 614: 118(ptr) AccessChain 24(data) 25 607 115 + 615: 17(fvec4) Load 614 + 616: 17(fvec4) VectorShuffle 615 613 4 5 6 3 + Store 614 616 + 617: 27(ptr) AccessChain 10(dti) 26 + 618: 6(int) Load 617 + 619: 27(ptr) AccessChain 10(dti) 26 + 620: 6(int) Load 619 + 621: 161(ptr) AccessChain 24(data) 25 620 158 + 622: 19(f64vec4) Load 621 + 623: 19(f64vec4) GroupNonUniformFMax 35 Reduce 622 + 624: 161(ptr) AccessChain 24(data) 25 618 158 + Store 624 623 + 625: 27(ptr) AccessChain 10(dti) 26 + 626: 6(int) Load 625 + 627: 27(ptr) AccessChain 10(dti) 26 + 628: 6(int) Load 627 + 629: 170(ptr) AccessChain 24(data) 25 628 158 26 + 630:18(float64_t) Load 629 + 631:18(float64_t) GroupNonUniformFMax 35 Reduce 630 + 632: 170(ptr) AccessChain 24(data) 25 626 158 26 + Store 632 631 + 633: 27(ptr) AccessChain 10(dti) 26 + 634: 6(int) Load 633 + 635: 27(ptr) AccessChain 10(dti) 26 + 636: 6(int) Load 635 + 637: 161(ptr) AccessChain 24(data) 25 636 158 + 638: 19(f64vec4) Load 637 + 639:179(f64vec2) VectorShuffle 638 638 0 1 + 640:179(f64vec2) GroupNonUniformFMax 35 Reduce 639 + 641: 161(ptr) AccessChain 24(data) 25 634 158 + 642: 19(f64vec4) Load 641 + 643: 19(f64vec4) VectorShuffle 642 640 4 5 2 3 + Store 641 643 + 644: 27(ptr) AccessChain 10(dti) 26 + 645: 6(int) Load 644 + 646: 27(ptr) AccessChain 10(dti) 26 + 647: 6(int) Load 646 + 648: 161(ptr) AccessChain 24(data) 25 647 158 + 649: 19(f64vec4) Load 648 + 650:191(f64vec3) VectorShuffle 649 649 0 1 2 + 651:191(f64vec3) GroupNonUniformFMax 35 Reduce 650 + 652: 161(ptr) AccessChain 24(data) 25 645 158 + 653: 19(f64vec4) Load 652 + 654: 19(f64vec4) VectorShuffle 653 651 4 5 6 3 + Store 652 654 + 655: 27(ptr) AccessChain 10(dti) 26 + 656: 6(int) Load 655 + 657: 27(ptr) AccessChain 10(dti) 26 + 658: 6(int) Load 657 + 659: 32(ptr) AccessChain 24(data) 25 658 25 + 660: 13(ivec4) Load 659 + 661: 13(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 660 + 662: 32(ptr) AccessChain 24(data) 25 656 25 + Store 662 661 + 663: 27(ptr) AccessChain 10(dti) 26 + 664: 6(int) Load 663 + 665: 27(ptr) AccessChain 10(dti) 26 + 666: 6(int) Load 665 + 667: 42(ptr) AccessChain 24(data) 25 666 25 26 + 668: 6(int) Load 667 + 669: 6(int) GroupNonUniformBitwiseAnd 35 Reduce 668 + 670: 42(ptr) AccessChain 24(data) 25 664 25 26 + Store 670 669 + 671: 27(ptr) AccessChain 10(dti) 26 + 672: 6(int) Load 671 + 673: 27(ptr) AccessChain 10(dti) 26 + 674: 6(int) Load 673 + 675: 32(ptr) AccessChain 24(data) 25 674 25 + 676: 13(ivec4) Load 675 + 677: 51(ivec2) VectorShuffle 676 676 0 1 + 678: 51(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 677 + 679: 32(ptr) AccessChain 24(data) 25 672 25 + 680: 13(ivec4) Load 679 + 681: 13(ivec4) VectorShuffle 680 678 4 5 2 3 + Store 679 681 + 682: 27(ptr) AccessChain 10(dti) 26 + 683: 6(int) Load 682 + 684: 27(ptr) AccessChain 10(dti) 26 + 685: 6(int) Load 684 + 686: 32(ptr) AccessChain 24(data) 25 685 25 + 687: 13(ivec4) Load 686 + 688: 7(ivec3) VectorShuffle 687 687 0 1 2 + 689: 7(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 688 + 690: 32(ptr) AccessChain 24(data) 25 683 25 + 691: 13(ivec4) Load 690 + 692: 13(ivec4) VectorShuffle 691 689 4 5 6 3 + Store 690 692 + 693: 27(ptr) AccessChain 10(dti) 26 + 694: 6(int) Load 693 + 695: 27(ptr) AccessChain 10(dti) 26 + 696: 6(int) Load 695 + 697: 75(ptr) AccessChain 24(data) 25 696 72 + 698: 15(ivec4) Load 697 + 699: 15(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 698 + 700: 75(ptr) AccessChain 24(data) 25 694 72 + Store 700 699 + 701: 27(ptr) AccessChain 10(dti) 26 + 702: 6(int) Load 701 + 703: 27(ptr) AccessChain 10(dti) 26 + 704: 6(int) Load 703 + 705: 84(ptr) AccessChain 24(data) 25 704 72 26 + 706: 14(int) Load 705 + 707: 14(int) GroupNonUniformBitwiseAnd 35 Reduce 706 + 708: 84(ptr) AccessChain 24(data) 25 702 72 26 + Store 708 707 + 709: 27(ptr) AccessChain 10(dti) 26 + 710: 6(int) Load 709 + 711: 27(ptr) AccessChain 10(dti) 26 + 712: 6(int) Load 711 + 713: 75(ptr) AccessChain 24(data) 25 712 72 + 714: 15(ivec4) Load 713 + 715: 93(ivec2) VectorShuffle 714 714 0 1 + 716: 93(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 715 + 717: 75(ptr) AccessChain 24(data) 25 710 72 + 718: 15(ivec4) Load 717 + 719: 15(ivec4) VectorShuffle 718 716 4 5 2 3 + Store 717 719 + 720: 27(ptr) AccessChain 10(dti) 26 + 721: 6(int) Load 720 + 722: 27(ptr) AccessChain 10(dti) 26 + 723: 6(int) Load 722 + 724: 75(ptr) AccessChain 24(data) 25 723 72 + 725: 15(ivec4) Load 724 + 726: 105(ivec3) VectorShuffle 725 725 0 1 2 + 727: 105(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 726 + 728: 75(ptr) AccessChain 24(data) 25 721 72 + 729: 15(ivec4) Load 728 + 730: 15(ivec4) VectorShuffle 729 727 4 5 6 3 + Store 728 730 + 731: 27(ptr) AccessChain 10(dti) 26 + 732: 6(int) Load 731 + 733: 27(ptr) AccessChain 10(dti) 26 + 734: 6(int) Load 733 + 735: 32(ptr) AccessChain 24(data) 25 734 25 + 736: 13(ivec4) Load 735 + 737: 13(ivec4) GroupNonUniformBitwiseOr 35 Reduce 736 + 738: 32(ptr) AccessChain 24(data) 25 732 25 + Store 738 737 + 739: 27(ptr) AccessChain 10(dti) 26 + 740: 6(int) Load 739 + 741: 27(ptr) AccessChain 10(dti) 26 + 742: 6(int) Load 741 + 743: 42(ptr) AccessChain 24(data) 25 742 25 26 + 744: 6(int) Load 743 + 745: 6(int) GroupNonUniformBitwiseOr 35 Reduce 744 + 746: 42(ptr) AccessChain 24(data) 25 740 25 26 + Store 746 745 + 747: 27(ptr) AccessChain 10(dti) 26 + 748: 6(int) Load 747 + 749: 27(ptr) AccessChain 10(dti) 26 + 750: 6(int) Load 749 + 751: 32(ptr) AccessChain 24(data) 25 750 25 + 752: 13(ivec4) Load 751 + 753: 51(ivec2) VectorShuffle 752 752 0 1 + 754: 51(ivec2) GroupNonUniformBitwiseOr 35 Reduce 753 + 755: 32(ptr) AccessChain 24(data) 25 748 25 + 756: 13(ivec4) Load 755 + 757: 13(ivec4) VectorShuffle 756 754 4 5 2 3 + Store 755 757 + 758: 27(ptr) AccessChain 10(dti) 26 + 759: 6(int) Load 758 + 760: 27(ptr) AccessChain 10(dti) 26 + 761: 6(int) Load 760 + 762: 32(ptr) AccessChain 24(data) 25 761 25 + 763: 13(ivec4) Load 762 + 764: 7(ivec3) VectorShuffle 763 763 0 1 2 + 765: 7(ivec3) GroupNonUniformBitwiseOr 35 Reduce 764 + 766: 32(ptr) AccessChain 24(data) 25 759 25 + 767: 13(ivec4) Load 766 + 768: 13(ivec4) VectorShuffle 767 765 4 5 6 3 + Store 766 768 + 769: 27(ptr) AccessChain 10(dti) 26 + 770: 6(int) Load 769 + 771: 27(ptr) AccessChain 10(dti) 26 + 772: 6(int) Load 771 + 773: 75(ptr) AccessChain 24(data) 25 772 72 + 774: 15(ivec4) Load 773 + 775: 15(ivec4) GroupNonUniformBitwiseOr 35 Reduce 774 + 776: 75(ptr) AccessChain 24(data) 25 770 72 + Store 776 775 + 777: 27(ptr) AccessChain 10(dti) 26 + 778: 6(int) Load 777 + 779: 27(ptr) AccessChain 10(dti) 26 + 780: 6(int) Load 779 + 781: 84(ptr) AccessChain 24(data) 25 780 72 26 + 782: 14(int) Load 781 + 783: 14(int) GroupNonUniformBitwiseOr 35 Reduce 782 + 784: 84(ptr) AccessChain 24(data) 25 778 72 26 + Store 784 783 + 785: 27(ptr) AccessChain 10(dti) 26 + 786: 6(int) Load 785 + 787: 27(ptr) AccessChain 10(dti) 26 + 788: 6(int) Load 787 + 789: 75(ptr) AccessChain 24(data) 25 788 72 + 790: 15(ivec4) Load 789 + 791: 93(ivec2) VectorShuffle 790 790 0 1 + 792: 93(ivec2) GroupNonUniformBitwiseOr 35 Reduce 791 + 793: 75(ptr) AccessChain 24(data) 25 786 72 + 794: 15(ivec4) Load 793 + 795: 15(ivec4) VectorShuffle 794 792 4 5 2 3 + Store 793 795 + 796: 27(ptr) AccessChain 10(dti) 26 + 797: 6(int) Load 796 + 798: 27(ptr) AccessChain 10(dti) 26 + 799: 6(int) Load 798 + 800: 75(ptr) AccessChain 24(data) 25 799 72 + 801: 15(ivec4) Load 800 + 802: 105(ivec3) VectorShuffle 801 801 0 1 2 + 803: 105(ivec3) GroupNonUniformBitwiseOr 35 Reduce 802 + 804: 75(ptr) AccessChain 24(data) 25 797 72 + 805: 15(ivec4) Load 804 + 806: 15(ivec4) VectorShuffle 805 803 4 5 6 3 + Store 804 806 + 807: 27(ptr) AccessChain 10(dti) 26 + 808: 6(int) Load 807 + 809: 27(ptr) AccessChain 10(dti) 26 + 810: 6(int) Load 809 + 811: 32(ptr) AccessChain 24(data) 25 810 25 + 812: 13(ivec4) Load 811 + 813: 13(ivec4) GroupNonUniformBitwiseXor 35 Reduce 812 + 814: 32(ptr) AccessChain 24(data) 25 808 25 + Store 814 813 + 815: 27(ptr) AccessChain 10(dti) 26 + 816: 6(int) Load 815 + 817: 27(ptr) AccessChain 10(dti) 26 + 818: 6(int) Load 817 + 819: 42(ptr) AccessChain 24(data) 25 818 25 26 + 820: 6(int) Load 819 + 821: 6(int) GroupNonUniformBitwiseXor 35 Reduce 820 + 822: 42(ptr) AccessChain 24(data) 25 816 25 26 + Store 822 821 + 823: 27(ptr) AccessChain 10(dti) 26 + 824: 6(int) Load 823 + 825: 27(ptr) AccessChain 10(dti) 26 + 826: 6(int) Load 825 + 827: 32(ptr) AccessChain 24(data) 25 826 25 + 828: 13(ivec4) Load 827 + 829: 51(ivec2) VectorShuffle 828 828 0 1 + 830: 51(ivec2) GroupNonUniformBitwiseXor 35 Reduce 829 + 831: 32(ptr) AccessChain 24(data) 25 824 25 + 832: 13(ivec4) Load 831 + 833: 13(ivec4) VectorShuffle 832 830 4 5 2 3 + Store 831 833 + 834: 27(ptr) AccessChain 10(dti) 26 + 835: 6(int) Load 834 + 836: 27(ptr) AccessChain 10(dti) 26 + 837: 6(int) Load 836 + 838: 32(ptr) AccessChain 24(data) 25 837 25 + 839: 13(ivec4) Load 838 + 840: 7(ivec3) VectorShuffle 839 839 0 1 2 + 841: 7(ivec3) GroupNonUniformBitwiseXor 35 Reduce 840 + 842: 32(ptr) AccessChain 24(data) 25 835 25 + 843: 13(ivec4) Load 842 + 844: 13(ivec4) VectorShuffle 843 841 4 5 6 3 + Store 842 844 + 845: 27(ptr) AccessChain 10(dti) 26 + 846: 6(int) Load 845 + 847: 27(ptr) AccessChain 10(dti) 26 + 848: 6(int) Load 847 + 849: 75(ptr) AccessChain 24(data) 25 848 72 + 850: 15(ivec4) Load 849 + 851: 15(ivec4) GroupNonUniformBitwiseXor 35 Reduce 850 + 852: 75(ptr) AccessChain 24(data) 25 846 72 + Store 852 851 + 853: 27(ptr) AccessChain 10(dti) 26 + 854: 6(int) Load 853 + 855: 27(ptr) AccessChain 10(dti) 26 + 856: 6(int) Load 855 + 857: 84(ptr) AccessChain 24(data) 25 856 72 26 + 858: 14(int) Load 857 + 859: 14(int) GroupNonUniformBitwiseXor 35 Reduce 858 + 860: 84(ptr) AccessChain 24(data) 25 854 72 26 + Store 860 859 + 861: 27(ptr) AccessChain 10(dti) 26 + 862: 6(int) Load 861 + 863: 27(ptr) AccessChain 10(dti) 26 + 864: 6(int) Load 863 + 865: 75(ptr) AccessChain 24(data) 25 864 72 + 866: 15(ivec4) Load 865 + 867: 93(ivec2) VectorShuffle 866 866 0 1 + 868: 93(ivec2) GroupNonUniformBitwiseXor 35 Reduce 867 + 869: 75(ptr) AccessChain 24(data) 25 862 72 + 870: 15(ivec4) Load 869 + 871: 15(ivec4) VectorShuffle 870 868 4 5 2 3 + Store 869 871 + 872: 27(ptr) AccessChain 10(dti) 26 + 873: 6(int) Load 872 + 874: 27(ptr) AccessChain 10(dti) 26 + 875: 6(int) Load 874 + 876: 75(ptr) AccessChain 24(data) 25 875 72 + 877: 15(ivec4) Load 876 + 878: 105(ivec3) VectorShuffle 877 877 0 1 2 + 879: 105(ivec3) GroupNonUniformBitwiseXor 35 Reduce 878 + 880: 75(ptr) AccessChain 24(data) 25 873 72 + 881: 15(ivec4) Load 880 + 882: 15(ivec4) VectorShuffle 881 879 4 5 6 3 + Store 880 882 + 883: 27(ptr) AccessChain 10(dti) 26 + 884: 6(int) Load 883 + 885: 27(ptr) AccessChain 10(dti) 26 + 886: 6(int) Load 885 + 887: 42(ptr) AccessChain 24(data) 25 886 25 26 + 888: 6(int) Load 887 + 890: 889(bool) IEqual 888 26 + 891: 13(ivec4) GroupNonUniformBallot 35 890 + 892: 6(int) GroupNonUniformBallotBitCount 35 Reduce 891 + 893: 42(ptr) AccessChain 24(data) 25 884 25 26 + Store 893 892 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.wavevote.comp.out b/deps/glslang/glslang/Test/baseResults/hlsl.wavevote.comp.out new file mode 100644 index 0000000000..04f2f98437 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.wavevote.comp.out @@ -0,0 +1,316 @@ +hlsl.wavevote.comp +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:5 Function Definition: @CSMain(vu3; ( temp void) +0:5 Function Parameters: +0:5 'dti' ( in 3-component vector of uint) +0:? Sequence +0:6 move second child to first child ( temp uint64_t) +0:6 indirect index (layout( row_major std430) buffer uint64_t) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 direct index ( temp uint) +0:6 'dti' ( in 3-component vector of uint) +0:6 Constant: +0:6 0 (const int) +0:6 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:6 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:6 subgroupBallot ( temp 4-component vector of uint) +0:6 subgroupAny ( temp bool) +0:6 Compare Equal ( temp bool) +0:6 direct index ( temp uint) +0:6 'dti' ( in 3-component vector of uint) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const uint) +0:7 move second child to first child ( temp uint64_t) +0:7 indirect index (layout( row_major std430) buffer uint64_t) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:7 Constant: +0:7 0 (const uint) +0:7 direct index ( temp uint) +0:7 'dti' ( in 3-component vector of uint) +0:7 Constant: +0:7 1 (const int) +0:7 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:7 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:7 subgroupBallot ( temp 4-component vector of uint) +0:7 subgroupAll ( temp bool) +0:7 Compare Equal ( temp bool) +0:7 direct index ( temp uint) +0:7 'dti' ( in 3-component vector of uint) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const uint) +0:8 move second child to first child ( temp uint64_t) +0:8 indirect index (layout( row_major std430) buffer uint64_t) +0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:8 Constant: +0:8 0 (const uint) +0:8 direct index ( temp uint) +0:8 'dti' ( in 3-component vector of uint) +0:8 Constant: +0:8 2 (const int) +0:8 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:8 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:8 subgroupBallot ( temp 4-component vector of uint) +0:8 subgroupAllEqual ( temp bool) +0:8 Compare Equal ( temp bool) +0:8 direct index ( temp uint) +0:8 'dti' ( in 3-component vector of uint) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const uint) +0:9 move second child to first child ( temp uint64_t) +0:9 indirect index (layout( row_major std430) buffer uint64_t) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 direct index ( temp uint) +0:9 'dti' ( in 3-component vector of uint) +0:9 Constant: +0:9 2 (const int) +0:9 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:9 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:9 subgroupBallot ( temp 4-component vector of uint) +0:9 subgroupAllEqual ( temp bool) +0:9 direct index ( temp uint) +0:9 'dti' ( in 3-component vector of uint) +0:9 Constant: +0:9 2 (const int) +0:5 Function Definition: CSMain( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:5 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + + +Linked compute stage: + + +Shader version: 500 +local_size = (32, 16, 1) +0:? Sequence +0:5 Function Definition: @CSMain(vu3; ( temp void) +0:5 Function Parameters: +0:5 'dti' ( in 3-component vector of uint) +0:? Sequence +0:6 move second child to first child ( temp uint64_t) +0:6 indirect index (layout( row_major std430) buffer uint64_t) +0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:6 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:6 Constant: +0:6 0 (const uint) +0:6 direct index ( temp uint) +0:6 'dti' ( in 3-component vector of uint) +0:6 Constant: +0:6 0 (const int) +0:6 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:6 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:6 subgroupBallot ( temp 4-component vector of uint) +0:6 subgroupAny ( temp bool) +0:6 Compare Equal ( temp bool) +0:6 direct index ( temp uint) +0:6 'dti' ( in 3-component vector of uint) +0:6 Constant: +0:6 0 (const int) +0:6 Constant: +0:6 0 (const uint) +0:7 move second child to first child ( temp uint64_t) +0:7 indirect index (layout( row_major std430) buffer uint64_t) +0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:7 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:7 Constant: +0:7 0 (const uint) +0:7 direct index ( temp uint) +0:7 'dti' ( in 3-component vector of uint) +0:7 Constant: +0:7 1 (const int) +0:7 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:7 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:7 subgroupBallot ( temp 4-component vector of uint) +0:7 subgroupAll ( temp bool) +0:7 Compare Equal ( temp bool) +0:7 direct index ( temp uint) +0:7 'dti' ( in 3-component vector of uint) +0:7 Constant: +0:7 1 (const int) +0:7 Constant: +0:7 0 (const uint) +0:8 move second child to first child ( temp uint64_t) +0:8 indirect index (layout( row_major std430) buffer uint64_t) +0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:8 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:8 Constant: +0:8 0 (const uint) +0:8 direct index ( temp uint) +0:8 'dti' ( in 3-component vector of uint) +0:8 Constant: +0:8 2 (const int) +0:8 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:8 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:8 subgroupBallot ( temp 4-component vector of uint) +0:8 subgroupAllEqual ( temp bool) +0:8 Compare Equal ( temp bool) +0:8 direct index ( temp uint) +0:8 'dti' ( in 3-component vector of uint) +0:8 Constant: +0:8 2 (const int) +0:8 Constant: +0:8 0 (const uint) +0:9 move second child to first child ( temp uint64_t) +0:9 indirect index (layout( row_major std430) buffer uint64_t) +0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint64_t) +0:9 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 direct index ( temp uint) +0:9 'dti' ( in 3-component vector of uint) +0:9 Constant: +0:9 2 (const int) +0:9 Construct uint64 (layout( row_major std430) buffer uint64_t) +0:9 Convert uint to uint64 ( temp 4-component vector of uint64_t) +0:9 subgroupBallot ( temp 4-component vector of uint) +0:9 subgroupAllEqual ( temp bool) +0:9 direct index ( temp uint) +0:9 'dti' ( in 3-component vector of uint) +0:9 Constant: +0:9 2 (const int) +0:5 Function Definition: CSMain( ( temp void) +0:5 Function Parameters: +0:? Sequence +0:5 move second child to first child ( temp 3-component vector of uint) +0:? 'dti' ( temp 3-component vector of uint) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) +0:5 Function Call: @CSMain(vu3; ( temp void) +0:? 'dti' ( temp 3-component vector of uint) +0:? Linker Objects +0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint64_t @data}) +0:? 'dti' ( in 3-component vector of uint GlobalInvocationID) + +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 75 + + Capability Shader + Capability Int64 + Capability GroupNonUniform + Capability GroupNonUniformVote + Capability GroupNonUniformBallot + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "CSMain" 70 + ExecutionMode 4 LocalSize 32 16 1 + Source HLSL 500 + Name 4 "CSMain" + Name 11 "@CSMain(vu3;" + Name 10 "dti" + Name 15 "data" + MemberName 15(data) 0 "@data" + Name 17 "data" + Name 68 "dti" + Name 70 "dti" + Name 72 "param" + Decorate 14 ArrayStride 8 + MemberDecorate 15(data) 0 Offset 0 + Decorate 15(data) BufferBlock + Decorate 17(data) DescriptorSet 0 + Decorate 70(dti) BuiltIn GlobalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypeInt 64 0 + 14: TypeRuntimeArray 13(int64_t) + 15(data): TypeStruct 14 + 16: TypePointer Uniform 15(data) + 17(data): 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: 6(int) Constant 0 + 21: TypePointer Function 6(int) + 26: TypeBool + 28: 6(int) Constant 3 + 30: TypeVector 6(int) 4 + 32: TypeVector 13(int64_t) 4 + 35: TypePointer Uniform 13(int64_t) + 37: 6(int) Constant 1 + 48: 6(int) Constant 2 + 69: TypePointer Input 7(ivec3) + 70(dti): 69(ptr) Variable Input + 4(CSMain): 2 Function None 3 + 5: Label + 68(dti): 8(ptr) Variable Function + 72(param): 8(ptr) Variable Function + 71: 7(ivec3) Load 70(dti) + Store 68(dti) 71 + 73: 7(ivec3) Load 68(dti) + Store 72(param) 73 + 74: 2 FunctionCall 11(@CSMain(vu3;) 72(param) + Return + FunctionEnd +11(@CSMain(vu3;): 2 Function None 9 + 10(dti): 8(ptr) FunctionParameter + 12: Label + 22: 21(ptr) AccessChain 10(dti) 20 + 23: 6(int) Load 22 + 24: 21(ptr) AccessChain 10(dti) 20 + 25: 6(int) Load 24 + 27: 26(bool) IEqual 25 20 + 29: 26(bool) GroupNonUniformAny 28 27 + 31: 30(ivec4) GroupNonUniformBallot 28 29 + 33: 32(i64vec4) UConvert 31 + 34: 13(int64_t) CompositeExtract 33 0 + 36: 35(ptr) AccessChain 17(data) 19 23 + Store 36 34 + 38: 21(ptr) AccessChain 10(dti) 37 + 39: 6(int) Load 38 + 40: 21(ptr) AccessChain 10(dti) 37 + 41: 6(int) Load 40 + 42: 26(bool) IEqual 41 20 + 43: 26(bool) GroupNonUniformAll 28 42 + 44: 30(ivec4) GroupNonUniformBallot 28 43 + 45: 32(i64vec4) UConvert 44 + 46: 13(int64_t) CompositeExtract 45 0 + 47: 35(ptr) AccessChain 17(data) 19 39 + Store 47 46 + 49: 21(ptr) AccessChain 10(dti) 48 + 50: 6(int) Load 49 + 51: 21(ptr) AccessChain 10(dti) 48 + 52: 6(int) Load 51 + 53: 26(bool) IEqual 52 20 + 54: 26(bool) GroupNonUniformAllEqual 28 53 + 55: 30(ivec4) GroupNonUniformBallot 28 54 + 56: 32(i64vec4) UConvert 55 + 57: 13(int64_t) CompositeExtract 56 0 + 58: 35(ptr) AccessChain 17(data) 19 50 + Store 58 57 + 59: 21(ptr) AccessChain 10(dti) 48 + 60: 6(int) Load 59 + 61: 21(ptr) AccessChain 10(dti) 48 + 62: 6(int) Load 61 + 63: 26(bool) GroupNonUniformAllEqual 28 62 + 64: 30(ivec4) GroupNonUniformBallot 28 63 + 65: 32(i64vec4) UConvert 64 + 66: 13(int64_t) CompositeExtract 65 0 + 67: 35(ptr) AccessChain 17(data) 19 60 + Store 67 66 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out new file mode 100644 index 0000000000..babc77dfd7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.whileLoop.frag.out @@ -0,0 +1,196 @@ +hlsl.whileLoop.frag +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Loop with condition tested first +0:3 Loop Condition +0:3 any ( temp bool) +0:3 NotEqual ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:3 Loop Body +0:? Sequence +0:3 Branch: Return with expression +0:3 'input' ( in 4-component vector of float) +0:4 Loop with condition tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition tested first: Unroll +0:5 Loop Condition +0:5 Constant: +0:5 false (const bool) +0:5 No loop body +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Constant: +0:6 false (const bool) +0:6 No loop body +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 500 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' ( in 4-component vector of float) +0:? Sequence +0:3 Loop with condition tested first +0:3 Loop Condition +0:3 any ( temp bool) +0:3 NotEqual ( temp 4-component vector of bool) +0:3 'input' ( in 4-component vector of float) +0:3 'input' ( in 4-component vector of float) +0:3 Loop Body +0:? Sequence +0:3 Branch: Return with expression +0:3 'input' ( in 4-component vector of float) +0:4 Loop with condition tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition tested first: Unroll +0:5 Loop Condition +0:5 Constant: +0:5 false (const bool) +0:5 No loop body +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Constant: +0:6 false (const bool) +0:6 No loop body +0:2 Function Definition: PixelShaderFunction( ( temp void) +0:2 Function Parameters: +0:? Sequence +0:2 move second child to first child ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) +0:2 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) +0:? 'input' ( temp 4-component vector of float) +0:? Linker Objects +0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) +0:? 'input' (layout( location=0) in 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 52 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 45 48 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "PixelShaderFunction" + Name 11 "@PixelShaderFunction(vf4;" + Name 10 "input" + Name 43 "input" + Name 45 "input" + Name 48 "@entryPointOutput" + Name 49 "param" + Decorate 45(input) Location 0 + Decorate 48(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 20: TypeBool + 21: TypeVector 20(bool) 4 + 31: 20(bool) ConstantFalse + 44: TypePointer Input 7(fvec4) + 45(input): 44(ptr) Variable Input + 47: TypePointer Output 7(fvec4) +48(@entryPointOutput): 47(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 43(input): 8(ptr) Variable Function + 49(param): 8(ptr) Variable Function + 46: 7(fvec4) Load 45(input) + Store 43(input) 46 + 50: 7(fvec4) Load 43(input) + Store 49(param) 50 + 51: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 49(param) + Store 48(@entryPointOutput) 51 + Return + FunctionEnd +11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 17 + 17: Label + 18: 7(fvec4) Load 10(input) + 19: 7(fvec4) Load 10(input) + 22: 21(bvec4) FOrdNotEqual 18 19 + 23: 20(bool) Any 22 + BranchConditional 23 14 15 + 14: Label + 24: 7(fvec4) Load 10(input) + ReturnValue 24 + 16: Label + Branch 13 + 15: Label + Branch 26 + 26: Label + LoopMerge 28 29 None + Branch 30 + 30: Label + BranchConditional 31 27 28 + 27: Label + Branch 29 + 29: Label + Branch 26 + 28: Label + Branch 32 + 32: Label + LoopMerge 34 35 Unroll + Branch 36 + 36: Label + BranchConditional 31 33 34 + 33: Label + Branch 35 + 35: Label + Branch 32 + 34: Label + Branch 37 + 37: Label + LoopMerge 39 40 None + Branch 41 + 41: Label + BranchConditional 31 38 39 + 38: Label + Branch 40 + 40: Label + Branch 37 + 39: Label + 42: 7(fvec4) Undef + ReturnValue 42 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-1.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-1.vert.out new file mode 100644 index 0000000000..257d56c708 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-1.vert.out @@ -0,0 +1,130 @@ +hlsl.y-negate-1.vert +Shader version: 500 +0:? Sequence +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:8 Branch: Return with expression +0:8 pos: direct index for structure ( uniform 4-component vector of float) +0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:8 Constant: +0:8 0 (const uint) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 '@position' ( temp 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 '@position' ( temp 4-component vector of float) +0:7 Constant: +0:7 1 (const int) +0:7 Negate value ( temp float) +0:7 direct index ( temp float) +0:7 '@position' ( temp 4-component vector of float) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:7 '@position' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:? '@entryPointOutput' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:7 Function Definition: @main( ( temp 4-component vector of float) +0:7 Function Parameters: +0:? Sequence +0:8 Branch: Return with expression +0:8 pos: direct index for structure ( uniform 4-component vector of float) +0:8 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:8 Constant: +0:8 0 (const uint) +0:7 Function Definition: main( ( temp void) +0:7 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 '@position' ( temp 4-component vector of float) +0:7 Function Call: @main( ( temp 4-component vector of float) +0:7 move second child to first child ( temp float) +0:7 direct index ( temp float) +0:7 '@position' ( temp 4-component vector of float) +0:7 Constant: +0:7 1 (const int) +0:7 Negate value ( temp float) +0:7 direct index ( temp float) +0:7 '@position' ( temp 4-component vector of float) +0:7 Constant: +0:7 1 (const int) +0:7 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput' ( out 4-component vector of float Position) +0:7 '@position' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:? '@entryPointOutput' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 32 + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 11 "$Global" + MemberName 11($Global) 0 "pos" + Name 13 "" + Name 22 "@position" + Name 32 "@entryPointOutput" + MemberDecorate 11($Global) 0 Offset 0 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 32(@entryPointOutput) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11($Global): TypeStruct 7(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Uniform 7(fvec4) + 21: TypePointer Function 7(fvec4) + 24: TypeInt 32 0 + 25: 24(int) Constant 1 + 26: TypePointer Function 6(float) + 31: TypePointer Output 7(fvec4) +32(@entryPointOutput): 31(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 22(@position): 21(ptr) Variable Function + 23: 7(fvec4) FunctionCall 9(@main() + Store 22(@position) 23 + 27: 26(ptr) AccessChain 22(@position) 25 + 28: 6(float) Load 27 + 29: 6(float) FNegate 28 + 30: 26(ptr) AccessChain 22(@position) 25 + Store 30 29 + 33: 7(fvec4) Load 22(@position) + Store 32(@entryPointOutput) 33 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 17: 16(ptr) AccessChain 13 15 + 18: 7(fvec4) Load 17 + ReturnValue 18 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-2.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-2.vert.out new file mode 100644 index 0000000000..a234a2e99c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-2.vert.out @@ -0,0 +1,148 @@ +hlsl.y-negate-2.vert +Shader version: 500 +0:? Sequence +0:6 Function Definition: @main(vf4; ( temp void) +0:6 Function Parameters: +0:6 'position' ( out 4-component vector of float) +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 'position' ( out 4-component vector of float) +0:7 pos: direct index for structure ( uniform 4-component vector of float) +0:7 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:7 Constant: +0:7 0 (const uint) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 Function Call: @main(vf4; ( temp void) +0:? 'position' ( temp 4-component vector of float) +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 '@position' ( temp 4-component vector of float) +0:? 'position' ( temp 4-component vector of float) +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:6 '@position' ( temp 4-component vector of float) +0:6 Constant: +0:6 1 (const int) +0:6 Negate value ( temp float) +0:6 direct index ( temp float) +0:6 '@position' ( temp 4-component vector of float) +0:6 Constant: +0:6 1 (const int) +0:6 move second child to first child ( temp 4-component vector of float) +0:? 'position' ( out 4-component vector of float Position) +0:6 '@position' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:? 'position' ( out 4-component vector of float Position) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:6 Function Definition: @main(vf4; ( temp void) +0:6 Function Parameters: +0:6 'position' ( out 4-component vector of float) +0:? Sequence +0:7 move second child to first child ( temp 4-component vector of float) +0:7 'position' ( out 4-component vector of float) +0:7 pos: direct index for structure ( uniform 4-component vector of float) +0:7 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:7 Constant: +0:7 0 (const uint) +0:6 Function Definition: main( ( temp void) +0:6 Function Parameters: +0:? Sequence +0:6 Function Call: @main(vf4; ( temp void) +0:? 'position' ( temp 4-component vector of float) +0:6 Sequence +0:6 move second child to first child ( temp 4-component vector of float) +0:6 '@position' ( temp 4-component vector of float) +0:? 'position' ( temp 4-component vector of float) +0:6 move second child to first child ( temp float) +0:6 direct index ( temp float) +0:6 '@position' ( temp 4-component vector of float) +0:6 Constant: +0:6 1 (const int) +0:6 Negate value ( temp float) +0:6 direct index ( temp float) +0:6 '@position' ( temp 4-component vector of float) +0:6 Constant: +0:6 1 (const int) +0:6 move second child to first child ( temp 4-component vector of float) +0:? 'position' ( out 4-component vector of float Position) +0:6 '@position' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos}) +0:? 'position' ( out 4-component vector of float Position) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 37 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 35 + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "position" + Name 13 "$Global" + MemberName 13($Global) 0 "pos" + Name 15 "" + Name 21 "position" + Name 22 "param" + Name 25 "@position" + Name 35 "position" + MemberDecorate 13($Global) 0 Offset 0 + Decorate 13($Global) Block + Decorate 15 DescriptorSet 0 + Decorate 35(position) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 13($Global): TypeStruct 7(fvec4) + 14: TypePointer Uniform 13($Global) + 15: 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Uniform 7(fvec4) + 27: TypeInt 32 0 + 28: 27(int) Constant 1 + 29: TypePointer Function 6(float) + 34: TypePointer Output 7(fvec4) + 35(position): 34(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 21(position): 8(ptr) Variable Function + 22(param): 8(ptr) Variable Function + 25(@position): 8(ptr) Variable Function + 23: 2 FunctionCall 11(@main(vf4;) 22(param) + 24: 7(fvec4) Load 22(param) + Store 21(position) 24 + 26: 7(fvec4) Load 21(position) + Store 25(@position) 26 + 30: 29(ptr) AccessChain 25(@position) 28 + 31: 6(float) Load 30 + 32: 6(float) FNegate 31 + 33: 29(ptr) AccessChain 25(@position) 28 + Store 33 32 + 36: 7(fvec4) Load 25(@position) + Store 35(position) 36 + Return + FunctionEnd + 11(@main(vf4;): 2 Function None 9 + 10(position): 8(ptr) FunctionParameter + 12: Label + 19: 18(ptr) AccessChain 15 17 + 20: 7(fvec4) Load 19 + Store 10(position) 20 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-3.vert.out b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-3.vert.out new file mode 100644 index 0000000000..34bf8f9b40 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/hlsl.y-negate-3.vert.out @@ -0,0 +1,211 @@ +hlsl.y-negate-3.vert +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:14 Constant: +0:14 0 (const int) +0:14 position: direct index for structure ( uniform 4-component vector of float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) +0:14 Constant: +0:14 0 (const uint) +0:15 move second child to first child ( temp int) +0:15 somethingelse: direct index for structure ( temp int) +0:15 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 42 (const int) +0:17 Branch: Return with expression +0:17 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 '@position' ( temp 4-component vector of float) +0:11 pos: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 '@position' ( temp 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Negate value ( temp float) +0:11 direct index ( temp float) +0:11 '@position' ( temp 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) +0:11 '@position' ( temp 4-component vector of float) +0:11 move second child to first child ( temp int) +0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) +0:11 somethingelse: direct index for structure ( temp int) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Constant: +0:11 1 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) +0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) +0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) + + +Linked vertex stage: + + +Shader version: 500 +0:? Sequence +0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Function Parameters: +0:? Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 pos: direct index for structure ( temp 4-component vector of float) +0:14 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:14 Constant: +0:14 0 (const int) +0:14 position: direct index for structure ( uniform 4-component vector of float) +0:14 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) +0:14 Constant: +0:14 0 (const uint) +0:15 move second child to first child ( temp int) +0:15 somethingelse: direct index for structure ( temp int) +0:15 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:15 Constant: +0:15 1 (const int) +0:15 Constant: +0:15 42 (const int) +0:17 Branch: Return with expression +0:17 'vsout' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Function Definition: main( ( temp void) +0:11 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Sequence +0:11 move second child to first child ( temp 4-component vector of float) +0:11 '@position' ( temp 4-component vector of float) +0:11 pos: direct index for structure ( temp 4-component vector of float) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp float) +0:11 direct index ( temp float) +0:11 '@position' ( temp 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 Negate value ( temp float) +0:11 direct index ( temp float) +0:11 '@position' ( temp 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) +0:11 '@position' ( temp 4-component vector of float) +0:11 move second child to first child ( temp int) +0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) +0:11 somethingelse: direct index for structure ( temp int) +0:11 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp int somethingelse}) +0:11 Constant: +0:11 1 (const int) +0:? Linker Objects +0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position}) +0:? '@entryPointOutput.pos' ( out 4-component vector of float Position) +0:? '@entryPointOutput.somethingelse' (layout( location=0) out int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 44 47 + Source HLSL 500 + Name 4 "main" + Name 9 "VS_OUT" + MemberName 9(VS_OUT) 0 "pos" + MemberName 9(VS_OUT) 1 "somethingelse" + Name 11 "@main(" + Name 14 "vsout" + Name 16 "$Global" + MemberName 16($Global) 0 "position" + Name 18 "" + Name 31 "flattenTemp" + Name 33 "@position" + Name 44 "@entryPointOutput.pos" + Name 47 "@entryPointOutput.somethingelse" + MemberDecorate 16($Global) 0 Offset 0 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + Decorate 44(@entryPointOutput.pos) BuiltIn Position + Decorate 47(@entryPointOutput.somethingelse) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 1 + 9(VS_OUT): TypeStruct 7(fvec4) 8(int) + 10: TypeFunction 9(VS_OUT) + 13: TypePointer Function 9(VS_OUT) + 15: 8(int) Constant 0 + 16($Global): TypeStruct 7(fvec4) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: TypePointer Uniform 7(fvec4) + 22: TypePointer Function 7(fvec4) + 24: 8(int) Constant 1 + 25: 8(int) Constant 42 + 26: TypePointer Function 8(int) + 36: TypeInt 32 0 + 37: 36(int) Constant 1 + 38: TypePointer Function 6(float) + 43: TypePointer Output 7(fvec4) +44(@entryPointOutput.pos): 43(ptr) Variable Output + 46: TypePointer Output 8(int) +47(@entryPointOutput.somethingelse): 46(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 31(flattenTemp): 13(ptr) Variable Function + 33(@position): 22(ptr) Variable Function + 32: 9(VS_OUT) FunctionCall 11(@main() + Store 31(flattenTemp) 32 + 34: 22(ptr) AccessChain 31(flattenTemp) 15 + 35: 7(fvec4) Load 34 + Store 33(@position) 35 + 39: 38(ptr) AccessChain 33(@position) 37 + 40: 6(float) Load 39 + 41: 6(float) FNegate 40 + 42: 38(ptr) AccessChain 33(@position) 37 + Store 42 41 + 45: 7(fvec4) Load 33(@position) + Store 44(@entryPointOutput.pos) 45 + 48: 26(ptr) AccessChain 31(flattenTemp) 24 + 49: 8(int) Load 48 + Store 47(@entryPointOutput.somethingelse) 49 + Return + FunctionEnd + 11(@main(): 9(VS_OUT) Function None 10 + 12: Label + 14(vsout): 13(ptr) Variable Function + 20: 19(ptr) AccessChain 18 15 + 21: 7(fvec4) Load 20 + 23: 22(ptr) AccessChain 14(vsout) 15 + Store 23 21 + 27: 26(ptr) AccessChain 14(vsout) 24 + Store 27 25 + 28: 9(VS_OUT) Load 14(vsout) + ReturnValue 28 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out b/deps/glslang/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out new file mode 100644 index 0000000000..ed9771e7ca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/implicitInnerAtomicUint.frag.out @@ -0,0 +1,20 @@ +implicitInnerAtomicUint.frag +ERROR: 0:2: '[]' : only outermost dimension of an array of arrays can be implicitly sized +ERROR: 1 compilation errors. No code generated. + + +Shader version: 460 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of 1-element array of atomic_uint) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 460 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'c' (layout( binding=0 offset=0) uniform 1-element array of 1-element array of atomic_uint) + diff --git a/deps/glslang/glslang/Test/baseResults/include.vert.out b/deps/glslang/glslang/Test/baseResults/include.vert.out new file mode 100644 index 0000000000..42f10323a5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/include.vert.out @@ -0,0 +1,67 @@ +include.vert +Shader version: 450 +Requested GL_GOOGLE_cpp_style_line_directive +Requested GL_GOOGLE_include_directive +0:? Sequence +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'color' ( smooth out 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 'i1' ( global 4-component vector of float) +0:15 'i2' ( global 4-component vector of float) +0:15 'i3' ( global 4-component vector of float) +0:15 'i4' ( global 4-component vector of float) +0:15 'i5' ( global 4-component vector of float) +0:15 'i6' ( global 4-component vector of float) +0:? Linker Objects +0:? 'i1' ( global 4-component vector of float) +0:? 'i2' ( global 4-component vector of float) +0:? 'i4' ( global 4-component vector of float) +0:? 'i3' ( global 4-component vector of float) +0:? 'i6' ( global 4-component vector of float) +0:? 'i5' ( global 4-component vector of float) +0:? 'color' ( smooth out 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 450 +Requested GL_GOOGLE_cpp_style_line_directive +Requested GL_GOOGLE_include_directive +0:? Sequence +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'color' ( smooth out 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 add ( temp 4-component vector of float) +0:15 'i1' ( global 4-component vector of float) +0:15 'i2' ( global 4-component vector of float) +0:15 'i3' ( global 4-component vector of float) +0:15 'i4' ( global 4-component vector of float) +0:15 'i5' ( global 4-component vector of float) +0:15 'i6' ( global 4-component vector of float) +0:? Linker Objects +0:? 'i1' ( global 4-component vector of float) +0:? 'i2' ( global 4-component vector of float) +0:? 'i4' ( global 4-component vector of float) +0:? 'i3' ( global 4-component vector of float) +0:? 'i6' ( global 4-component vector of float) +0:? 'i5' ( global 4-component vector of float) +0:? 'color' ( smooth out 4-component vector of float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/invalidSwizzle.vert.out b/deps/glslang/glslang/Test/baseResults/invalidSwizzle.vert.out new file mode 100644 index 0000000000..5104fdcdcc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/invalidSwizzle.vert.out @@ -0,0 +1,38 @@ +invalidSwizzle.vert +ERROR: 0:7: 'rr' : does not apply to this type: uniform sampler2D +ERROR: 0:7: '=' : cannot convert from ' uniform sampler2D' to ' temp 2-component vector of float' +ERROR: 0:8: 'xx' : does not apply to this type: global void +ERROR: 0:9: 'xy' : does not apply to this type: global void +ERROR: 4 compilation errors. No code generated. + + +Shader version: 420 +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:? Sequence +0:8 Function Call: f( ( global void) +0:9 Function Call: f( ( global void) +0:? Linker Objects +0:? 's' ( uniform sampler2D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + f( + +Shader version: 420 +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:? Sequence +0:8 Function Call: f( ( global void) +0:9 Function Call: f( ( global void) +0:? Linker Objects +0:? 's' ( uniform sampler2D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/length.frag.out b/deps/glslang/glslang/Test/baseResults/length.frag.out new file mode 100644 index 0000000000..bfd5bf0ef1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/length.frag.out @@ -0,0 +1,61 @@ +length.frag +Shader version: 120 +0:? Sequence +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 2-component vector of float) +0:15 't' ( temp 2-component vector of float) +0:15 add ( temp 2-component vector of float) +0:15 direct index ( smooth temp 2-component vector of float) +0:15 'v' ( smooth in 2-element array of 2-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:15 direct index ( smooth temp 2-component vector of float) +0:15 'v' ( smooth in 2-element array of 2-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:17 Constant: +0:17 30.000000 +0:17 30.000000 +0:17 30.000000 +0:17 30.000000 +0:? Linker Objects +0:? 'u' ( uniform 3-element array of 4-component vector of float) +0:? 'v' ( smooth in 2-element array of 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 120 +0:? Sequence +0:11 Function Definition: main( ( global void) +0:11 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child ( temp 2-component vector of float) +0:15 't' ( temp 2-component vector of float) +0:15 add ( temp 2-component vector of float) +0:15 direct index ( smooth temp 2-component vector of float) +0:15 'v' ( smooth in 2-element array of 2-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:15 direct index ( smooth temp 2-component vector of float) +0:15 'v' ( smooth in 2-element array of 2-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:17 Constant: +0:17 30.000000 +0:17 30.000000 +0:17 30.000000 +0:17 30.000000 +0:? Linker Objects +0:? 'u' ( uniform 3-element array of 4-component vector of float) +0:? 'v' ( smooth in 2-element array of 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/lineContinuation.vert.out b/deps/glslang/glslang/Test/baseResults/lineContinuation.vert.out new file mode 100644 index 0000000000..9faa420b36 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/lineContinuation.vert.out @@ -0,0 +1,280 @@ +lineContinuation.vert +WARNING: 0:3: 'line continuation' : used at end of comment; the following line is still part of the comment +ERROR: 0:6: '#error' : e1 +ERROR: 0:11: '#error' : e2 +ERROR: 0:18: '#error' : e3 +ERROR: 0:42: '\' : illegal use of escape character +ERROR: 0:43: '@' : unexpected token +ERROR: 0:44: '$' : unexpected token +ERROR: 0:45: '\' : illegal use of escape character +ERROR: 0:47: '\' : illegal use of escape character +ERROR: 0:48: '\' : illegal use of escape character +ERROR: 0:49: '$' : unexpected token +ERROR: 0:50: '@' : unexpected token +ERROR: 0:55: '#error' : good continuation +WARNING: 0:62: 'line continuation' : used at end of comment; the following line is still part of the comment +ERROR: 0:111: 'macro expansion' : End of line in macro substitution: FOOM +ERROR: 0:112: 'preprocessor evaluation' : can't evaluate expression +ERROR: 0:112: '#if' : unexpected tokens following directive +ERROR: 0:117: 'macro expansion' : End of line in macro substitution: FOOM +ERROR: 0:118: 'preprocessor evaluation' : can't evaluate expression +ERROR: 0:118: '#if' : unexpected tokens following directive +ERROR: 0:150: '' : syntax error, unexpected EQUAL +ERROR: 19 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:20 Sequence +0:20 move second child to first child ( temp highp 4-component vector of float) +0:20 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:20 Construct vec4 ( temp highp 4-component vector of float) +0:20 'foo' ( global highp float) +0:22 Function Definition: foo2(vf4; ( global highp 4-component vector of float) +0:22 Function Parameters: +0:22 'a' ( in highp 4-component vector of float) +0:24 Sequence +0:24 Sequence +0:24 move second child to first child ( temp highp 4-component vector of float) +0:24 'b' ( temp highp 4-component vector of float) +0:24 'a' ( in highp 4-component vector of float) +0:25 Branch: Return with expression +0:25 'b' ( temp highp 4-component vector of float) +0:47 Sequence +0:47 move second child to first child ( temp highp int) +0:47 'q1' ( global highp int) +0:47 Constant: +0:47 1 (const int) +0:48 Sequence +0:48 move second child to first child ( temp highp int) +0:48 'q2' ( global highp int) +0:48 Constant: +0:48 1 (const int) +0:49 Sequence +0:49 move second child to first child ( temp highp int) +0:49 'q3' ( global highp int) +0:49 Constant: +0:49 1 (const int) +0:50 Sequence +0:50 move second child to first child ( temp highp int) +0:50 'q4' ( global highp int) +0:50 Constant: +0:50 1 (const int) +0:74 Sequence +0:74 move second child to first child ( temp highp float) +0:74 'funkyf' ( global highp float) +0:75 Constant: +0:75 1.2300000000000e+16 +0:85 Sequence +0:84 move second child to first child ( temp highp int) +0:84 'funkyh' ( global highp int) +0:86 Constant: +0:86 244 (const int) +0:91 Sequence +0:91 move second child to first child ( temp highp int) +0:91 'funkyo' ( global highp int) +0:92 Constant: +0:92 34 (const int) +0:96 Sequence +0:96 move second child to first child ( temp highp int) +0:96 'c' ( global highp int) +0:97 Constant: +0:97 11 (const int) +0:98 Sequence +0:98 move second child to first child ( temp highp int) +0:98 'd' ( global highp int) +0:98 Constant: +0:98 12 (const int) +0:107 Sequence +0:107 move second child to first child ( temp highp int) +0:107 'bar103' ( global highp int) +0:107 Constant: +0:107 17 (const int) +0:113 Sequence +0:113 move second child to first child ( temp highp int) +0:113 'bar104' ( global highp int) +0:113 Constant: +0:113 19 (const int) +0:119 Sequence +0:119 move second child to first child ( temp highp int) +0:119 'bar105' ( global highp int) +0:119 Constant: +0:119 19 (const int) +0:122 Sequence +0:122 move second child to first child ( temp highp int) +0:122 'bar106' ( global highp int) +0:122 Constant: +0:122 12 (const int) +0:123 Sequence +0:123 move second child to first child ( temp highp int) +0:123 'bar107' ( global highp int) +0:128 Constant: +0:128 5 (const int) +0:131 Function Definition: foo203209409( ( global void) +0:131 Function Parameters: +0:134 Sequence +0:134 add second child into first child ( temp highp int) +0:133 'bar107' ( global highp int) +0:134 Constant: +0:134 37 (const int) +0:135 multiply second child into first child ( temp highp int) +0:135 'bar107' ( global highp int) +0:136 Constant: +0:136 38 (const int) +0:137 divide second child into first child ( temp highp int) +0:137 'bar107' ( global highp int) +0:138 Constant: +0:138 39 (const int) +0:139 add ( temp highp int) +0:139 'bar107' ( global highp int) +0:140 Constant: +0:140 41 (const int) +0:? Linker Objects +0:? 'foo' ( global highp float) +0:? 'goodDecl' ( global highp int) +0:? 'a1' ( const highp int) +0:? 4 (const int) +0:? 'a2' ( const highp int) +0:? 3 (const int) +0:? 'a3' ( const highp int) +0:? 4 (const int) +0:? 'a4' ( const highp int) +0:? 3 (const int) +0:? 'q1' ( global highp int) +0:? 'q2' ( global highp int) +0:? 'q3' ( global highp int) +0:? 'q4' ( global highp int) +0:? 'abdece' ( const highp int) +0:? 10 (const int) +0:? 'aoeuntaoehu' ( const highp int) +0:? 10 (const int) +0:? 'funkyf' ( global highp float) +0:? 'funkyh' ( global highp int) +0:? 'funkyo' ( global highp int) +0:? 'c' ( global highp int) +0:? 'd' ( global highp int) +0:? 'bar103' ( global highp int) +0:? 'bar104' ( global highp int) +0:? 'bar105' ( global highp int) +0:? 'bar106' ( global highp int) +0:? 'bar107' ( global highp int) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:20 Sequence +0:20 move second child to first child ( temp highp 4-component vector of float) +0:20 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:20 Construct vec4 ( temp highp 4-component vector of float) +0:20 'foo' ( global highp float) +0:47 Sequence +0:47 move second child to first child ( temp highp int) +0:47 'q1' ( global highp int) +0:47 Constant: +0:47 1 (const int) +0:48 Sequence +0:48 move second child to first child ( temp highp int) +0:48 'q2' ( global highp int) +0:48 Constant: +0:48 1 (const int) +0:49 Sequence +0:49 move second child to first child ( temp highp int) +0:49 'q3' ( global highp int) +0:49 Constant: +0:49 1 (const int) +0:50 Sequence +0:50 move second child to first child ( temp highp int) +0:50 'q4' ( global highp int) +0:50 Constant: +0:50 1 (const int) +0:74 Sequence +0:74 move second child to first child ( temp highp float) +0:74 'funkyf' ( global highp float) +0:75 Constant: +0:75 1.2300000000000e+16 +0:85 Sequence +0:84 move second child to first child ( temp highp int) +0:84 'funkyh' ( global highp int) +0:86 Constant: +0:86 244 (const int) +0:91 Sequence +0:91 move second child to first child ( temp highp int) +0:91 'funkyo' ( global highp int) +0:92 Constant: +0:92 34 (const int) +0:96 Sequence +0:96 move second child to first child ( temp highp int) +0:96 'c' ( global highp int) +0:97 Constant: +0:97 11 (const int) +0:98 Sequence +0:98 move second child to first child ( temp highp int) +0:98 'd' ( global highp int) +0:98 Constant: +0:98 12 (const int) +0:107 Sequence +0:107 move second child to first child ( temp highp int) +0:107 'bar103' ( global highp int) +0:107 Constant: +0:107 17 (const int) +0:113 Sequence +0:113 move second child to first child ( temp highp int) +0:113 'bar104' ( global highp int) +0:113 Constant: +0:113 19 (const int) +0:119 Sequence +0:119 move second child to first child ( temp highp int) +0:119 'bar105' ( global highp int) +0:119 Constant: +0:119 19 (const int) +0:122 Sequence +0:122 move second child to first child ( temp highp int) +0:122 'bar106' ( global highp int) +0:122 Constant: +0:122 12 (const int) +0:123 Sequence +0:123 move second child to first child ( temp highp int) +0:123 'bar107' ( global highp int) +0:128 Constant: +0:128 5 (const int) +0:? Linker Objects +0:? 'foo' ( global highp float) +0:? 'goodDecl' ( global highp int) +0:? 'a1' ( const highp int) +0:? 4 (const int) +0:? 'a2' ( const highp int) +0:? 3 (const int) +0:? 'a3' ( const highp int) +0:? 4 (const int) +0:? 'a4' ( const highp int) +0:? 3 (const int) +0:? 'q1' ( global highp int) +0:? 'q2' ( global highp int) +0:? 'q3' ( global highp int) +0:? 'q4' ( global highp int) +0:? 'abdece' ( const highp int) +0:? 10 (const int) +0:? 'aoeuntaoehu' ( const highp int) +0:? 10 (const int) +0:? 'funkyf' ( global highp float) +0:? 'funkyh' ( global highp int) +0:? 'funkyo' ( global highp int) +0:? 'c' ( global highp int) +0:? 'd' ( global highp int) +0:? 'bar103' ( global highp int) +0:? 'bar104' ( global highp int) +0:? 'bar105' ( global highp int) +0:? 'bar106' ( global highp int) +0:? 'bar107' ( global highp int) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/lineContinuation100.vert.out b/deps/glslang/glslang/Test/baseResults/lineContinuation100.vert.out new file mode 100644 index 0000000000..c86b52bf91 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/lineContinuation100.vert.out @@ -0,0 +1,127 @@ +lineContinuation100.vert +WARNING: 0:3: 'line continuation' : used at end of comment, but this version does not provide line continuation +ERROR: 0:4: '#error' : good error +ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:11: '#error' : e2 +ERROR: 0:13: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:14: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:15: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:18: '#error' : e3 +ERROR: 0:24: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:40: '\' : illegal use of escape character +ERROR: 0:41: '@' : unexpected token +ERROR: 0:42: '$' : unexpected token +ERROR: 0:43: '\' : illegal use of escape character +ERROR: 0:45: '\' : illegal use of escape character +ERROR: 0:46: '\' : illegal use of escape character +ERROR: 0:47: '$' : unexpected token +ERROR: 0:48: '@' : unexpected token +ERROR: 0:50: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:52: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:53: '#error' : bad continuation +ERROR: 0:55: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 20 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:20 Sequence +0:20 move second child to first child ( temp highp 4-component vector of float) +0:20 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:20 Construct vec4 ( temp highp 4-component vector of float) +0:20 'foo' ( global highp float) +0:22 Function Definition: foo2(vf4; ( global highp 4-component vector of float) +0:22 Function Parameters: +0:22 'a' ( in highp 4-component vector of float) +0:24 Sequence +0:24 Sequence +0:24 move second child to first child ( temp highp 4-component vector of float) +0:24 'b' ( temp highp 4-component vector of float) +0:24 'a' ( in highp 4-component vector of float) +0:25 Branch: Return with expression +0:25 'b' ( temp highp 4-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp highp int) +0:45 'q1' ( global highp int) +0:45 Constant: +0:45 1 (const int) +0:46 Sequence +0:46 move second child to first child ( temp highp int) +0:46 'q2' ( global highp int) +0:46 Constant: +0:46 1 (const int) +0:47 Sequence +0:47 move second child to first child ( temp highp int) +0:47 'q3' ( global highp int) +0:47 Constant: +0:47 1 (const int) +0:48 Sequence +0:48 move second child to first child ( temp highp int) +0:48 'q4' ( global highp int) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'foo' ( global highp float) +0:? 'a1' ( const highp int) +0:? 4 (const int) +0:? 'a2' ( const highp int) +0:? 3 (const int) +0:? 'a3' ( const highp int) +0:? 4 (const int) +0:? 'a4' ( const highp int) +0:? 3 (const int) +0:? 'q1' ( global highp int) +0:? 'q2' ( global highp int) +0:? 'q3' ( global highp int) +0:? 'q4' ( global highp int) + + +Linked vertex stage: + + +Shader version: 100 +ERROR: node is still EOpNull! +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:20 Sequence +0:20 move second child to first child ( temp highp 4-component vector of float) +0:20 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:20 Construct vec4 ( temp highp 4-component vector of float) +0:20 'foo' ( global highp float) +0:45 Sequence +0:45 move second child to first child ( temp highp int) +0:45 'q1' ( global highp int) +0:45 Constant: +0:45 1 (const int) +0:46 Sequence +0:46 move second child to first child ( temp highp int) +0:46 'q2' ( global highp int) +0:46 Constant: +0:46 1 (const int) +0:47 Sequence +0:47 move second child to first child ( temp highp int) +0:47 'q3' ( global highp int) +0:47 Constant: +0:47 1 (const int) +0:48 Sequence +0:48 move second child to first child ( temp highp int) +0:48 'q4' ( global highp int) +0:48 Constant: +0:48 1 (const int) +0:? Linker Objects +0:? 'foo' ( global highp float) +0:? 'a1' ( const highp int) +0:? 4 (const int) +0:? 'a2' ( const highp int) +0:? 3 (const int) +0:? 'a3' ( const highp int) +0:? 4 (const int) +0:? 'a4' ( const highp int) +0:? 3 (const int) +0:? 'q1' ( global highp int) +0:? 'q2' ( global highp int) +0:? 'q3' ( global highp int) +0:? 'q4' ( global highp int) + diff --git a/deps/glslang/glslang/Test/baseResults/link1.frag.out b/deps/glslang/glslang/Test/baseResults/link1.frag.out new file mode 100644 index 0000000000..2ea63ad5fb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/link1.frag.out @@ -0,0 +1,162 @@ +link1.frag +Shader version: 130 +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'a' ( global 4-component vector of float) +0:8 vector-scale ( temp 4-component vector of float) +0:8 Constant: +0:8 8.000000 +0:8 'uv4' ( uniform 4-component vector of float) +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'b' ( global 4-component vector of float) +0:17 vector-scale ( temp 4-component vector of float) +0:17 Constant: +0:17 8.000000 +0:17 'a' ( global 4-component vector of float) +0:19 Function Definition: foo(mf22; ( global 2-component vector of int) +0:19 Function Parameters: +0:19 'm' ( in 2X2 matrix of float) +0:21 Sequence +0:21 Branch: Return with expression +0:21 Convert float to int ( temp 2-component vector of int) +0:21 direct index ( temp 2-component vector of float) +0:21 'm' ( in 2X2 matrix of float) +0:21 Constant: +0:21 0 (const int) +0:24 Sequence +0:24 move second child to first child ( temp 4-component vector of float) +0:24 'c' ( global 4-component vector of float) +0:24 component-wise multiply ( temp 4-component vector of float) +0:24 'b' ( global 4-component vector of float) +0:24 'b' ( global 4-component vector of float) +0:? Linker Objects +0:? 'uv4' ( uniform 4-component vector of float) +0:? 'glass' ( uniform 3-component vector of float) +0:? 'ci' ( const int) +0:? 8 (const int) +0:? 'a' ( global 4-component vector of float) +0:? 'iv3' ( smooth in 3-component vector of float) +0:? 'cup' ( smooth in 4-component vector of float) +0:? 'b' ( global 4-component vector of float) +0:? 'c' ( global 4-component vector of float) +0:? 'cv3' ( const 3-component vector of float) +0:? 43.000000 +0:? 0.340000 +0:? 9.900000 +0:? 'cv3n' ( const 3-component vector of float) +0:? 43.000000 +0:? 0.340000 +0:? 9.900000 +0:? 'cv3e' ( const 3-component vector of float) +0:? 43.000000 +0:? 0.340000 +0:? 9.900000 +0:? 'um2' ( uniform 2X2 matrix of float) +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 'um2n' ( uniform 2X2 matrix of float) +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 'um2e' ( uniform 2X2 matrix of float) +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 's' ( uniform structure{ global int a, global float b}) +0:? 82 (const int) +0:? 3.900000 +0:? 'sn' ( uniform structure{ global int a, global float b}) +0:? 'se' ( uniform structure{ global int a, global float b}) +0:? 82 (const int) +0:? 3.900000 + +link2.frag +Shader version: 130 +Requested GL_OES_standard_derivatives +Requested GL_OES_texture_3D +0:? Sequence +0:8 Sequence +0:8 move second child to first child ( temp 4-component vector of float) +0:8 'd' ( global 4-component vector of float) +0:8 vector-scale ( temp 4-component vector of float) +0:8 Constant: +0:8 8.000000 +0:8 'uv4' ( uniform 4-component vector of float) +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'e' ( global 4-component vector of float) +0:13 vector-scale ( temp 4-component vector of float) +0:13 Constant: +0:13 8.000000 +0:13 'd' ( global 4-component vector of float) +0:15 Function Definition: foo( ( global 2-component vector of int) +0:15 Function Parameters: +0:17 Sequence +0:17 Branch: Return with expression +0:17 Constant: +0:17 2 (const int) +0:17 2 (const int) +0:20 Sequence +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'f' ( global 4-component vector of float) +0:20 component-wise multiply ( temp 4-component vector of float) +0:20 'e' ( global 4-component vector of float) +0:20 'e' ( global 4-component vector of float) +0:? Linker Objects +0:? 'uv4' ( uniform 4-component vector of float) +0:? 'glass' ( uniform 2-component vector of float) +0:? 'ci' ( const int) +0:? 8 (const int) +0:? 'd' ( global 4-component vector of float) +0:? 'iv3' ( smooth in 3-component vector of float) +0:? 'cup' ( flat in 4-component vector of float) +0:? 'e' ( global 4-component vector of float) +0:? 'f' ( global 4-component vector of float) +0:? 'cv3' ( const 3-component vector of float) +0:? 43.000000 +0:? 0.340000 +0:? 9.900000 +0:? 'cv3e' ( const 3-component vector of float) +0:? 43.000000 +0:? 0.340000 +0:? 2.900000 +0:? 'um2' ( uniform 2X2 matrix of float) +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 'um2n' ( uniform 2X2 matrix of float) +0:? 'um2e' ( uniform 2X2 matrix of float) +0:? 3.000000 +0:? 0.000000 +0:? 0.000000 +0:? 3.000000 +0:? 's' ( uniform structure{ global int a, global float b}) +0:? 82 (const int) +0:? 3.900000 +0:? 'sn' ( uniform structure{ global int a, global float b}) +0:? 82 (const int) +0:? 3.900000 +0:? 'se' ( uniform structure{ global int a, global float b}) +0:? 81 (const int) +0:? 3.900000 + +link3.frag +Shader version: 300 +Requested GL_OES_EGL_image_external +Requested GL_OES_standard_derivatives +Requested GL_OES_texture_3D +0:? Sequence +0:? Linker Objects +0:? 'iv3' ( smooth in highp 2-component vector of float) + +ERROR: Cannot mix ES profile with non-ES profile shaders + diff --git a/deps/glslang/glslang/Test/baseResults/link1.vk.frag.out b/deps/glslang/glslang/Test/baseResults/link1.vk.frag.out new file mode 100644 index 0000000000..63660db14d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/link1.vk.frag.out @@ -0,0 +1,315 @@ +link1.vk.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 move second child to first child ( temp highp 4-component vector of float) +0:18 'color' (layout( location=0) out highp 4-component vector of float) +0:18 Function Call: getColor( ( global highp 4-component vector of float) +0:20 move second child to first child ( temp highp int) +0:20 direct index ( temp highp int) +0:20 'a1' ( global unsized 9-element array of highp int) +0:20 Constant: +0:20 8 (const int) +0:20 Constant: +0:20 1 (const int) +0:21 move second child to first child ( temp highp int) +0:21 direct index ( temp highp int) +0:21 'a2' ( global unsized 2-element array of highp int) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp highp int) +0:22 indirect index ( temp highp int) +0:22 'b' ( global 5-element array of highp int) +0:22 'i' ( global highp int) +0:22 Constant: +0:22 1 (const int) +0:23 move second child to first child ( temp highp int) +0:23 direct index ( temp highp int) +0:23 'c' ( global unsized 4-element array of highp int) +0:23 Constant: +0:23 3 (const int) +0:23 Constant: +0:23 1 (const int) +0:? Linker Objects +0:? 'color' (layout( location=0) out highp 4-component vector of float) +0:? 'a1' ( global unsized 9-element array of highp int) +0:? 'a2' ( global unsized 2-element array of highp int) +0:? 'b' ( global 5-element array of highp int) +0:? 'c' ( global unsized 4-element array of highp int) +0:? 'i' ( global highp int) +0:? 'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r}) +0:? 'anon@1' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float m}) + +link2.vk.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: getColor( ( global highp 4-component vector of float) +0:14 Function Parameters: +0:16 Sequence +0:16 move second child to first child ( temp highp int) +0:16 direct index ( temp highp int) +0:16 'a1' ( global unsized 3-element array of highp int) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp highp int) +0:17 direct index ( temp highp int) +0:17 'a2' ( global unsized 10-element array of highp int) +0:17 Constant: +0:17 9 (const int) +0:17 Constant: +0:17 1 (const int) +0:18 move second child to first child ( temp highp int) +0:18 direct index ( temp highp int) +0:18 'b' ( global unsized 3-element array of highp int) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 move second child to first child ( temp highp int) +0:19 direct index ( temp highp int) +0:19 'c' ( global 7-element array of highp int) +0:19 Constant: +0:19 3 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp highp int) +0:20 indirect index ( temp highp int) +0:20 'c' ( global 7-element array of highp int) +0:20 'i' ( global highp int) +0:20 Constant: +0:20 1 (const int) +0:22 Branch: Return with expression +0:22 texture ( global highp 4-component vector of float) +0:22 's2D' (layout( binding=1) uniform highp sampler2D) +0:22 Constant: +0:22 0.500000 +0:22 0.500000 +0:? Linker Objects +0:? 's2D' (layout( binding=1) uniform highp sampler2D) +0:? 'a1' ( global unsized 3-element array of highp int) +0:? 'a2' ( global unsized 10-element array of highp int) +0:? 'b' ( global unsized 3-element array of highp int) +0:? 'c' ( global 7-element array of highp int) +0:? 'i' ( global highp int) +0:? 'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r}) +0:? 'anon@1' (layout( column_major std430) buffer block{layout( column_major std430) buffer 4-element array of highp float m}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:16 Function Definition: main( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 move second child to first child ( temp highp 4-component vector of float) +0:18 'color' (layout( location=0) out highp 4-component vector of float) +0:18 Function Call: getColor( ( global highp 4-component vector of float) +0:20 move second child to first child ( temp highp int) +0:20 direct index ( temp highp int) +0:20 'a1' ( global 9-element array of highp int) +0:20 Constant: +0:20 8 (const int) +0:20 Constant: +0:20 1 (const int) +0:21 move second child to first child ( temp highp int) +0:21 direct index ( temp highp int) +0:21 'a2' ( global 10-element array of highp int) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 move second child to first child ( temp highp int) +0:22 indirect index ( temp highp int) +0:22 'b' ( global 5-element array of highp int) +0:22 'i' ( global highp int) +0:22 Constant: +0:22 1 (const int) +0:23 move second child to first child ( temp highp int) +0:23 direct index ( temp highp int) +0:23 'c' ( global 7-element array of highp int) +0:23 Constant: +0:23 3 (const int) +0:23 Constant: +0:23 1 (const int) +0:14 Function Definition: getColor( ( global highp 4-component vector of float) +0:14 Function Parameters: +0:16 Sequence +0:16 move second child to first child ( temp highp int) +0:16 direct index ( temp highp int) +0:16 'a1' ( global 3-element array of highp int) +0:16 Constant: +0:16 2 (const int) +0:16 Constant: +0:16 1 (const int) +0:17 move second child to first child ( temp highp int) +0:17 direct index ( temp highp int) +0:17 'a2' ( global 10-element array of highp int) +0:17 Constant: +0:17 9 (const int) +0:17 Constant: +0:17 1 (const int) +0:18 move second child to first child ( temp highp int) +0:18 direct index ( temp highp int) +0:18 'b' ( global 3-element array of highp int) +0:18 Constant: +0:18 2 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 move second child to first child ( temp highp int) +0:19 direct index ( temp highp int) +0:19 'c' ( global 7-element array of highp int) +0:19 Constant: +0:19 3 (const int) +0:19 Constant: +0:19 1 (const int) +0:20 move second child to first child ( temp highp int) +0:20 indirect index ( temp highp int) +0:20 'c' ( global 7-element array of highp int) +0:20 'i' ( global highp int) +0:20 Constant: +0:20 1 (const int) +0:22 Branch: Return with expression +0:22 texture ( global highp 4-component vector of float) +0:22 's2D' (layout( binding=1) uniform highp sampler2D) +0:22 Constant: +0:22 0.500000 +0:22 0.500000 +0:? Linker Objects +0:? 'color' (layout( location=0) out highp 4-component vector of float) +0:? 'a1' ( global 9-element array of highp int) +0:? 'a2' ( global 10-element array of highp int) +0:? 'b' ( global 5-element array of highp int) +0:? 'c' ( global 7-element array of highp int) +0:? 'i' ( global highp int) +0:? 'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer unsized 1-element array of highp float r}) +0:? 'anon@1' (layout( column_major std430) buffer block{layout( column_major std430) buffer 4-element array of highp float m}) +0:? 's2D' (layout( binding=1) uniform highp sampler2D) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 71 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "getColor(" + Name 12 "color" + Name 19 "a1" + Name 27 "a2" + Name 32 "b" + Name 33 "i" + Name 39 "c" + Name 54 "s2D" + Name 63 "bnameRuntime" + MemberName 63(bnameRuntime) 0 "r" + Name 65 "" + Name 68 "bnameImplicit" + MemberName 68(bnameImplicit) 0 "m" + Name 70 "" + Decorate 12(color) Location 0 + Decorate 54(s2D) DescriptorSet 0 + Decorate 54(s2D) Binding 1 + Decorate 62 ArrayStride 4 + MemberDecorate 63(bnameRuntime) 0 Offset 0 + Decorate 63(bnameRuntime) BufferBlock + Decorate 65 DescriptorSet 0 + Decorate 67 ArrayStride 4 + MemberDecorate 68(bnameImplicit) 0 Offset 0 + Decorate 68(bnameImplicit) BufferBlock + Decorate 70 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Output 7(fvec4) + 12(color): 11(ptr) Variable Output + 14: TypeInt 32 1 + 15: TypeInt 32 0 + 16: 15(int) Constant 9 + 17: TypeArray 14(int) 16 + 18: TypePointer Private 17 + 19(a1): 18(ptr) Variable Private + 20: 14(int) Constant 8 + 21: 14(int) Constant 1 + 22: TypePointer Private 14(int) + 24: 15(int) Constant 10 + 25: TypeArray 14(int) 24 + 26: TypePointer Private 25 + 27(a2): 26(ptr) Variable Private + 29: 15(int) Constant 5 + 30: TypeArray 14(int) 29 + 31: TypePointer Private 30 + 32(b): 31(ptr) Variable Private + 33(i): 22(ptr) Variable Private + 36: 15(int) Constant 7 + 37: TypeArray 14(int) 36 + 38: TypePointer Private 37 + 39(c): 38(ptr) Variable Private + 40: 14(int) Constant 3 + 42: 14(int) Constant 2 + 43: TypePointer Output 6(float) + 45: 14(int) Constant 9 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypeSampledImage 51 + 53: TypePointer UniformConstant 52 + 54(s2D): 53(ptr) Variable UniformConstant + 56: TypeVector 6(float) 2 + 57: 6(float) Constant 1056964608 + 58: 56(fvec2) ConstantComposite 57 57 + 62: TypeRuntimeArray 6(float) +63(bnameRuntime): TypeStruct 62 + 64: TypePointer Uniform 63(bnameRuntime) + 65: 64(ptr) Variable Uniform + 66: 15(int) Constant 4 + 67: TypeArray 6(float) 66 +68(bnameImplicit): TypeStruct 67 + 69: TypePointer Uniform 68(bnameImplicit) + 70: 69(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 13: 7(fvec4) FunctionCall 9(getColor() + Store 12(color) 13 + 23: 22(ptr) AccessChain 19(a1) 20 + Store 23 21 + 28: 22(ptr) AccessChain 27(a2) 21 + Store 28 21 + 34: 14(int) Load 33(i) + 35: 22(ptr) AccessChain 32(b) 34 + Store 35 21 + 41: 22(ptr) AccessChain 39(c) 40 + Store 41 21 + Return + FunctionEnd + 9(getColor(): 7(fvec4) Function None 8 + 10: Label + 44: 43(ptr) AccessChain 12(color) 42 + Store 44 21 + 46: 22(ptr) AccessChain 19(a1) 45 + Store 46 21 + 47: 22(ptr) AccessChain 27(a2) 42 + Store 47 21 + 48: 22(ptr) AccessChain 32(b) 40 + Store 48 21 + 49: 37 Load 39(c) + 50: 22(ptr) AccessChain 32(b) 49 + Store 50 21 + 55: 52 Load 54(s2D) + 59: 7(fvec4) ImageSampleImplicitLod 55 58 + ReturnValue 59 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out b/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out new file mode 100644 index 0000000000..ca445bccd3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/localAggregates.frag.out @@ -0,0 +1,414 @@ +localAggregates.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:5: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:34 Function Definition: main( ( global void) +0:34 Function Parameters: +0:? Sequence +0:41 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:41 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:41 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:41 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:41 Constant: +0:41 0 (const int) +0:43 Test condition and select ( temp void) +0:43 Condition +0:43 Compare Greater Than ( temp bool) +0:43 i: direct index for structure ( global int) +0:43 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:43 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 0 (const int) +0:43 true case +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 f: direct index for structure ( global float) +0:44 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:44 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 1.000000 +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 'localFArray' ( temp 16-element array of float) +0:45 Constant: +0:45 4 (const int) +0:45 direct index ( temp float) +0:45 'coord' ( smooth in 2-component vector of float) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp int) +0:46 direct index ( temp int) +0:46 'localIArray' ( temp 8-element array of int) +0:46 Constant: +0:46 2 (const int) +0:46 i: direct index for structure ( global int) +0:46 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:46 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 0 (const int) +0:43 false case +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 f: direct index for structure ( global float) +0:48 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:48 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:48 Constant: +0:48 2 (const int) +0:48 Constant: +0:48 1 (const int) +0:48 direct index ( temp float) +0:48 'coord' ( smooth in 2-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:49 move second child to first child ( temp float) +0:49 direct index ( temp float) +0:49 'localFArray' ( temp 16-element array of float) +0:49 Constant: +0:49 4 (const int) +0:49 Constant: +0:49 1.000000 +0:50 move second child to first child ( temp int) +0:50 direct index ( temp int) +0:50 'localIArray' ( temp 8-element array of int) +0:50 Constant: +0:50 2 (const int) +0:50 Constant: +0:50 0 (const int) +0:53 Test condition and select ( temp void) +0:53 Condition +0:53 Compare Equal ( temp bool) +0:53 direct index ( temp int) +0:53 'localIArray' ( temp 8-element array of int) +0:53 Constant: +0:53 2 (const int) +0:53 Constant: +0:53 0 (const int) +0:53 true case +0:54 Pre-Increment ( temp float) +0:54 direct index ( temp float) +0:54 'localFArray' ( temp 16-element array of float) +0:54 Constant: +0:54 4 (const int) +0:57 Sequence +0:57 move second child to first child ( temp int) +0:57 'x' ( temp int) +0:57 Constant: +0:57 5 (const int) +0:58 move second child to first child ( temp float) +0:58 indirect index ( temp float) +0:58 'localArray' ( temp 16-element array of float) +0:58 'x' ( temp int) +0:58 direct index ( temp float) +0:58 'coord' ( smooth in 2-component vector of float) +0:58 Constant: +0:58 0 (const int) +0:62 Sequence +0:62 Sequence +0:62 move second child to first child ( temp int) +0:62 'i' ( temp int) +0:62 Constant: +0:62 0 (const int) +0:62 Loop with condition tested first +0:62 Loop Condition +0:62 Compare Less Than ( temp bool) +0:62 'i' ( temp int) +0:62 Constant: +0:62 16 (const int) +0:62 Loop Body +0:63 move second child to first child ( temp float) +0:63 indirect index ( temp float) +0:63 'a' ( temp 16-element array of float) +0:63 'i' ( temp int) +0:63 Constant: +0:63 0.000000 +0:62 Loop Terminal Expression +0:62 Post-Increment ( temp int) +0:62 'i' ( temp int) +0:65 Test condition and select ( temp void) +0:65 Condition +0:65 Compare Equal ( temp bool) +0:65 'condition' ( uniform int) +0:65 Constant: +0:65 1 (const int) +0:65 true case +0:66 move second child to first child ( temp 16-element array of float) +0:66 'a' ( temp 16-element array of float) +0:66 'localArray' ( temp 16-element array of float) +0:68 move second child to first child ( temp 4-component vector of float) +0:68 bleh: direct index for structure ( global 4-component vector of float) +0:68 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:68 Constant: +0:68 3 (const int) +0:68 'color' ( smooth in 4-component vector of float) +0:69 move second child to first child ( temp float) +0:69 direct index ( temp float) +0:69 bleh: direct index for structure ( global 4-component vector of float) +0:69 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:69 Constant: +0:69 3 (const int) +0:69 Constant: +0:69 2 (const int) +0:69 direct index ( temp float) +0:69 'coord' ( smooth in 2-component vector of float) +0:69 Constant: +0:69 1 (const int) +0:71 move second child to first child ( temp 4-component vector of float) +0:71 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:71 component-wise multiply ( temp 4-component vector of float) +0:71 vector-scale ( temp 4-component vector of float) +0:71 bleh: direct index for structure ( global 4-component vector of float) +0:71 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:71 Constant: +0:71 3 (const int) +0:71 add ( temp float) +0:71 add ( temp float) +0:71 add ( temp float) +0:71 direct index ( temp float) +0:71 'localFArray' ( temp 16-element array of float) +0:71 Constant: +0:71 4 (const int) +0:71 f: direct index for structure ( global float) +0:71 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:71 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:71 Constant: +0:71 2 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 indirect index ( temp float) +0:71 'localArray' ( temp 16-element array of float) +0:71 'x' ( temp int) +0:71 indirect index ( temp float) +0:71 'a' ( temp 16-element array of float) +0:71 'x' ( temp int) +0:71 texture ( global 4-component vector of float) +0:71 'sampler' ( uniform sampler2D) +0:71 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'color' ( smooth in 4-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global float f}) +0:? 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:? 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'uFloatArray' ( uniform 16-element array of float) +0:? 'condition' ( uniform int) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:34 Function Definition: main( ( global void) +0:34 Function Parameters: +0:? Sequence +0:41 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:41 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:41 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:41 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:41 Constant: +0:41 0 (const int) +0:43 Test condition and select ( temp void) +0:43 Condition +0:43 Compare Greater Than ( temp bool) +0:43 i: direct index for structure ( global int) +0:43 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:43 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 0 (const int) +0:43 Constant: +0:43 0 (const int) +0:43 true case +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 f: direct index for structure ( global float) +0:44 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:44 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 1 (const int) +0:44 Constant: +0:44 1.000000 +0:45 move second child to first child ( temp float) +0:45 direct index ( temp float) +0:45 'localFArray' ( temp 16-element array of float) +0:45 Constant: +0:45 4 (const int) +0:45 direct index ( temp float) +0:45 'coord' ( smooth in 2-component vector of float) +0:45 Constant: +0:45 0 (const int) +0:46 move second child to first child ( temp int) +0:46 direct index ( temp int) +0:46 'localIArray' ( temp 8-element array of int) +0:46 Constant: +0:46 2 (const int) +0:46 i: direct index for structure ( global int) +0:46 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:46 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 0 (const int) +0:43 false case +0:48 Sequence +0:48 move second child to first child ( temp float) +0:48 f: direct index for structure ( global float) +0:48 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:48 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:48 Constant: +0:48 2 (const int) +0:48 Constant: +0:48 1 (const int) +0:48 direct index ( temp float) +0:48 'coord' ( smooth in 2-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:49 move second child to first child ( temp float) +0:49 direct index ( temp float) +0:49 'localFArray' ( temp 16-element array of float) +0:49 Constant: +0:49 4 (const int) +0:49 Constant: +0:49 1.000000 +0:50 move second child to first child ( temp int) +0:50 direct index ( temp int) +0:50 'localIArray' ( temp 8-element array of int) +0:50 Constant: +0:50 2 (const int) +0:50 Constant: +0:50 0 (const int) +0:53 Test condition and select ( temp void) +0:53 Condition +0:53 Compare Equal ( temp bool) +0:53 direct index ( temp int) +0:53 'localIArray' ( temp 8-element array of int) +0:53 Constant: +0:53 2 (const int) +0:53 Constant: +0:53 0 (const int) +0:53 true case +0:54 Pre-Increment ( temp float) +0:54 direct index ( temp float) +0:54 'localFArray' ( temp 16-element array of float) +0:54 Constant: +0:54 4 (const int) +0:57 Sequence +0:57 move second child to first child ( temp int) +0:57 'x' ( temp int) +0:57 Constant: +0:57 5 (const int) +0:58 move second child to first child ( temp float) +0:58 indirect index ( temp float) +0:58 'localArray' ( temp 16-element array of float) +0:58 'x' ( temp int) +0:58 direct index ( temp float) +0:58 'coord' ( smooth in 2-component vector of float) +0:58 Constant: +0:58 0 (const int) +0:62 Sequence +0:62 Sequence +0:62 move second child to first child ( temp int) +0:62 'i' ( temp int) +0:62 Constant: +0:62 0 (const int) +0:62 Loop with condition tested first +0:62 Loop Condition +0:62 Compare Less Than ( temp bool) +0:62 'i' ( temp int) +0:62 Constant: +0:62 16 (const int) +0:62 Loop Body +0:63 move second child to first child ( temp float) +0:63 indirect index ( temp float) +0:63 'a' ( temp 16-element array of float) +0:63 'i' ( temp int) +0:63 Constant: +0:63 0.000000 +0:62 Loop Terminal Expression +0:62 Post-Increment ( temp int) +0:62 'i' ( temp int) +0:65 Test condition and select ( temp void) +0:65 Condition +0:65 Compare Equal ( temp bool) +0:65 'condition' ( uniform int) +0:65 Constant: +0:65 1 (const int) +0:65 true case +0:66 move second child to first child ( temp 16-element array of float) +0:66 'a' ( temp 16-element array of float) +0:66 'localArray' ( temp 16-element array of float) +0:68 move second child to first child ( temp 4-component vector of float) +0:68 bleh: direct index for structure ( global 4-component vector of float) +0:68 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:68 Constant: +0:68 3 (const int) +0:68 'color' ( smooth in 4-component vector of float) +0:69 move second child to first child ( temp float) +0:69 direct index ( temp float) +0:69 bleh: direct index for structure ( global 4-component vector of float) +0:69 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:69 Constant: +0:69 3 (const int) +0:69 Constant: +0:69 2 (const int) +0:69 direct index ( temp float) +0:69 'coord' ( smooth in 2-component vector of float) +0:69 Constant: +0:69 1 (const int) +0:71 move second child to first child ( temp 4-component vector of float) +0:71 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:71 component-wise multiply ( temp 4-component vector of float) +0:71 vector-scale ( temp 4-component vector of float) +0:71 bleh: direct index for structure ( global 4-component vector of float) +0:71 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:71 Constant: +0:71 3 (const int) +0:71 add ( temp float) +0:71 add ( temp float) +0:71 add ( temp float) +0:71 direct index ( temp float) +0:71 'localFArray' ( temp 16-element array of float) +0:71 Constant: +0:71 4 (const int) +0:71 f: direct index for structure ( global float) +0:71 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:71 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:71 Constant: +0:71 2 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 indirect index ( temp float) +0:71 'localArray' ( temp 16-element array of float) +0:71 'x' ( temp int) +0:71 indirect index ( temp float) +0:71 'a' ( temp 16-element array of float) +0:71 'x' ( temp int) +0:71 texture ( global 4-component vector of float) +0:71 'sampler' ( uniform sampler2D) +0:71 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'color' ( smooth in 4-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global float f}) +0:? 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh}) +0:? 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1, global 4-component vector of float bleh} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'uFloatArray' ( uniform 16-element array of float) +0:? 'condition' ( uniform int) + diff --git a/deps/glslang/glslang/Test/baseResults/loops.frag.out b/deps/glslang/glslang/Test/baseResults/loops.frag.out new file mode 100644 index 0000000000..cf382995d1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/loops.frag.out @@ -0,0 +1,1935 @@ +loops.frag +WARNING: 0:14: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:53 Function Definition: main( ( global void) +0:53 Function Parameters: +0:55 Sequence +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of float) +0:55 'color' ( temp 4-component vector of float) +0:55 'BaseColor' ( smooth in 4-component vector of float) +0:58 Loop with condition tested first +0:58 Loop Condition +0:58 Constant: +0:58 true (const bool) +0:58 Loop Body +0:59 Sequence +0:59 Test condition and select ( temp void) +0:59 Condition +0:59 Compare Less Than ( temp bool) +0:59 direct index ( temp float) +0:59 'color' ( temp 4-component vector of float) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 0.330000 +0:59 true case +0:60 Sequence +0:60 add second child into first child ( temp 4-component vector of float) +0:60 'color' ( temp 4-component vector of float) +0:60 Constant: +0:60 0.330000 +0:60 0.330000 +0:60 0.330000 +0:60 0.330000 +0:61 Branch: Break +0:63 Test condition and select ( temp void) +0:63 Condition +0:63 Compare Less Than ( temp bool) +0:63 direct index ( temp float) +0:63 'color' ( temp 4-component vector of float) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 0.660000 +0:63 true case +0:64 Sequence +0:64 add second child into first child ( temp 4-component vector of float) +0:64 'color' ( temp 4-component vector of float) +0:64 Constant: +0:64 0.660000 +0:64 0.660000 +0:64 0.660000 +0:64 0.660000 +0:65 Branch: Break +0:68 add second child into first child ( temp 4-component vector of float) +0:68 'color' ( temp 4-component vector of float) +0:68 Constant: +0:68 0.330000 +0:68 0.330000 +0:68 0.330000 +0:68 0.330000 +0:69 Branch: Break +0:73 Loop with condition tested first +0:73 Loop Condition +0:73 Compare Less Than ( temp bool) +0:73 direct index ( temp float) +0:73 'color' ( temp 4-component vector of float) +0:73 Constant: +0:73 0 (const int) +0:73 'd' ( uniform float) +0:73 Loop Body +0:74 Sequence +0:74 add second child into first child ( temp 4-component vector of float) +0:74 'color' ( temp 4-component vector of float) +0:74 'bigColor' ( uniform 4-component vector of float) +0:78 Loop with condition tested first +0:78 Loop Condition +0:78 Compare Less Than ( temp bool) +0:78 direct index ( temp float) +0:78 'color' ( temp 4-component vector of float) +0:78 Constant: +0:78 2 (const int) +0:78 'd' ( uniform float) +0:78 Loop Body +0:79 Sequence +0:79 add second child into first child ( temp 4-component vector of float) +0:79 'color' ( temp 4-component vector of float) +0:79 'bigColor1_1' ( uniform 4-component vector of float) +0:80 Test condition and select ( temp void) +0:80 Condition +0:80 Compare Less Than ( temp bool) +0:80 direct index ( temp float) +0:80 'color' ( temp 4-component vector of float) +0:80 Constant: +0:80 3 (const int) +0:80 'd' ( uniform float) +0:80 true case +0:81 Branch: Continue +0:83 add second child into first child ( temp 4-component vector of float) +0:83 'color' ( temp 4-component vector of float) +0:83 'bigColor1_1' ( uniform 4-component vector of float) +0:87 Loop with condition tested first +0:87 Loop Condition +0:87 Compare Less Than ( temp bool) +0:87 direct index ( temp float) +0:87 'color' ( temp 4-component vector of float) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 42.000000 +0:87 Loop Body +0:88 Sequence +0:88 Pre-Increment ( temp 4-component vector of float) +0:88 'color' ( temp 4-component vector of float) +0:92 Loop with condition tested first +0:92 Loop Condition +0:92 logical-and ( temp bool) +0:92 Compare Less Than ( temp bool) +0:92 direct index ( temp float) +0:92 'color' ( temp 4-component vector of float) +0:92 Constant: +0:92 3 (const int) +0:92 'd2' ( uniform float) +0:92 Compare Less Than ( temp bool) +0:92 direct index ( temp float) +0:92 'color' ( temp 4-component vector of float) +0:92 Constant: +0:92 1 (const int) +0:92 'd3' ( uniform float) +0:92 Loop Body +0:93 Sequence +0:93 add second child into first child ( temp 4-component vector of float) +0:93 'color' ( temp 4-component vector of float) +0:93 'bigColor1_2' ( uniform 4-component vector of float) +0:97 Loop with condition tested first +0:97 Loop Condition +0:97 Compare Less Than ( temp bool) +0:97 direct index ( temp float) +0:97 'color' ( temp 4-component vector of float) +0:97 Constant: +0:97 2 (const int) +0:97 'd3' ( uniform float) +0:97 Loop Body +0:98 Sequence +0:98 add second child into first child ( temp 4-component vector of float) +0:98 'color' ( temp 4-component vector of float) +0:98 'bigColor1_3' ( uniform 4-component vector of float) +0:99 Test condition and select ( temp void) +0:99 Condition +0:99 Compare Less Than ( temp bool) +0:99 direct index ( temp float) +0:99 'color' ( temp 4-component vector of float) +0:99 Constant: +0:99 1 (const int) +0:99 'd4' ( uniform float) +0:99 true case +0:100 Branch: Break +0:101 add second child into first child ( temp 4-component vector of float) +0:101 'color' ( temp 4-component vector of float) +0:101 'bigColor1_3' ( uniform 4-component vector of float) +0:105 Sequence +0:105 Sequence +0:105 move second child to first child ( temp int) +0:105 'i' ( temp int) +0:105 Constant: +0:105 0 (const int) +0:105 Loop with condition tested first +0:105 Loop Condition +0:105 Compare Less Than ( temp bool) +0:105 'i' ( temp int) +0:105 'Count' ( uniform int) +0:105 Loop Body +0:106 Sequence +0:106 add second child into first child ( temp 4-component vector of float) +0:106 'color' ( temp 4-component vector of float) +0:106 'bigColor2' ( uniform 4-component vector of float) +0:105 Loop Terminal Expression +0:105 Pre-Increment ( temp int) +0:105 'i' ( temp int) +0:112 Loop with condition not tested first +0:112 Loop Condition +0:112 Compare Less Than ( temp bool) +0:112 direct index ( temp float) +0:112 'color' ( temp 4-component vector of float) +0:112 Constant: +0:112 0 (const int) +0:112 'd2' ( uniform float) +0:112 Loop Body +0:111 Sequence +0:111 add second child into first child ( temp 4-component vector of float) +0:111 'color' ( temp 4-component vector of float) +0:111 'bigColor3' ( uniform 4-component vector of float) +0:115 Sequence +0:115 Sequence +0:115 move second child to first child ( temp int) +0:115 'i' ( temp int) +0:115 Constant: +0:115 0 (const int) +0:115 Loop with condition tested first +0:115 Loop Condition +0:115 Compare Less Than ( temp bool) +0:115 'i' ( temp int) +0:115 Constant: +0:115 42 (const int) +0:115 Loop Body +0:116 Sequence +0:116 add second child into first child ( temp float) +0:116 direct index ( temp float) +0:116 'color' ( temp 4-component vector of float) +0:116 Constant: +0:116 2 (const int) +0:116 'd3' ( uniform float) +0:115 Loop Terminal Expression +0:115 Pre-Increment ( temp int) +0:115 'i' ( temp int) +0:120 Sequence +0:120 Sequence +0:120 move second child to first child ( temp int) +0:120 'i' ( temp int) +0:120 Constant: +0:120 0 (const int) +0:120 Loop with condition tested first +0:120 Loop Condition +0:120 Compare Less Than ( temp bool) +0:120 'i' ( temp int) +0:120 Constant: +0:120 100 (const int) +0:120 Loop Body +0:121 Sequence +0:121 Test condition and select ( temp void) +0:121 Condition +0:121 Compare Less Than ( temp bool) +0:121 direct index ( temp float) +0:121 'color' ( temp 4-component vector of float) +0:121 Constant: +0:121 2 (const int) +0:121 Constant: +0:121 20.000000 +0:121 true case +0:122 Post-Increment ( temp float) +0:122 direct index ( temp float) +0:122 'color' ( temp 4-component vector of float) +0:122 Constant: +0:122 0 (const int) +0:121 false case +0:124 Post-Increment ( temp float) +0:124 direct index ( temp float) +0:124 'color' ( temp 4-component vector of float) +0:124 Constant: +0:124 1 (const int) +0:125 Test condition and select ( temp void) +0:125 Condition +0:125 Compare Less Than ( temp bool) +0:125 direct index ( temp float) +0:125 'color' ( temp 4-component vector of float) +0:125 Constant: +0:125 3 (const int) +0:125 Constant: +0:125 20.000000 +0:125 true case +0:126 Test condition and select ( temp void) +0:126 Condition +0:126 Compare Greater Than ( temp bool) +0:126 direct index ( temp float) +0:126 'color' ( temp 4-component vector of float) +0:126 Constant: +0:126 2 (const int) +0:126 direct index ( temp float) +0:126 'color' ( temp 4-component vector of float) +0:126 Constant: +0:126 1 (const int) +0:126 true case +0:127 Constant: +0:127 0 (const int) +0:120 Loop Terminal Expression +0:120 Pre-Increment ( temp int) +0:120 'i' ( temp int) +0:131 Sequence +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'i' ( temp int) +0:131 Constant: +0:131 0 (const int) +0:131 Loop with condition tested first +0:131 Loop Condition +0:131 Compare Less Than ( temp bool) +0:131 'i' ( temp int) +0:131 Constant: +0:131 120 (const int) +0:131 Loop Body +0:132 Sequence +0:132 Test condition and select ( temp void) +0:132 Condition +0:132 Compare Less Than ( temp bool) +0:132 direct index ( temp float) +0:132 'color' ( temp 4-component vector of float) +0:132 Constant: +0:132 2 (const int) +0:132 Constant: +0:132 20.000000 +0:132 true case +0:133 Post-Increment ( temp float) +0:133 direct index ( temp float) +0:133 'color' ( temp 4-component vector of float) +0:133 Constant: +0:133 0 (const int) +0:132 false case +0:135 Post-Increment ( temp float) +0:135 direct index ( temp float) +0:135 'color' ( temp 4-component vector of float) +0:135 Constant: +0:135 1 (const int) +0:131 Loop Terminal Expression +0:131 Pre-Increment ( temp int) +0:131 'i' ( temp int) +0:139 Sequence +0:139 Sequence +0:139 move second child to first child ( temp int) +0:139 'i' ( temp int) +0:139 Constant: +0:139 0 (const int) +0:139 Loop with condition tested first +0:139 Loop Condition +0:139 Compare Less Than ( temp bool) +0:139 'i' ( temp int) +0:139 Constant: +0:139 42 (const int) +0:139 Loop Body +0:140 Sequence +0:140 add second child into first child ( temp float) +0:140 direct index ( temp float) +0:140 'color' ( temp 4-component vector of float) +0:140 Constant: +0:140 2 (const int) +0:140 'd3' ( uniform float) +0:141 Test condition and select ( temp void) +0:141 Condition +0:141 Compare Less Than ( temp bool) +0:141 direct index ( temp float) +0:141 'color' ( temp 4-component vector of float) +0:141 Constant: +0:141 0 (const int) +0:141 'd4' ( uniform float) +0:141 true case +0:142 Branch: Continue +0:143 Pre-Increment ( temp float) +0:143 direct index ( temp float) +0:143 'color' ( temp 4-component vector of float) +0:143 Constant: +0:143 3 (const int) +0:139 Loop Terminal Expression +0:139 Pre-Increment ( temp int) +0:139 'i' ( temp int) +0:147 Sequence +0:147 Sequence +0:147 move second child to first child ( temp int) +0:147 'i' ( temp int) +0:147 Constant: +0:147 0 (const int) +0:147 Loop with condition tested first +0:147 Loop Condition +0:147 Compare Less Than ( temp bool) +0:147 'i' ( temp int) +0:147 Constant: +0:147 42 (const int) +0:147 Loop Body +0:148 Sequence +0:148 add second child into first child ( temp float) +0:148 direct index ( temp float) +0:148 'color' ( temp 4-component vector of float) +0:148 Constant: +0:148 2 (const int) +0:148 'd3' ( uniform float) +0:149 Test condition and select ( temp void) +0:149 Condition +0:149 Compare Less Than ( temp bool) +0:149 direct index ( temp float) +0:149 'color' ( temp 4-component vector of float) +0:149 Constant: +0:149 0 (const int) +0:149 'd4' ( uniform float) +0:149 true case +0:150 Branch: Break +0:151 Pre-Increment ( temp float) +0:151 direct index ( temp float) +0:151 'color' ( temp 4-component vector of float) +0:151 Constant: +0:151 3 (const int) +0:147 Loop Terminal Expression +0:147 Pre-Increment ( temp int) +0:147 'i' ( temp int) +0:163 Loop with condition not tested first +0:163 Loop Condition +0:163 Compare Less Than ( temp bool) +0:163 direct index ( temp float) +0:163 'color' ( temp 4-component vector of float) +0:163 Constant: +0:163 2 (const int) +0:163 'd4' ( uniform float) +0:163 Loop Body +0:156 Sequence +0:156 add second child into first child ( temp 4-component vector of float) +0:156 'color' ( temp 4-component vector of float) +0:156 'bigColor4' ( uniform 4-component vector of float) +0:157 Test condition and select ( temp void) +0:157 Condition +0:157 Compare Less Than ( temp bool) +0:157 direct index ( temp float) +0:157 'color' ( temp 4-component vector of float) +0:157 Constant: +0:157 0 (const int) +0:157 'd4' ( uniform float) +0:157 true case +0:158 Branch: Continue +0:159 Test condition and select ( temp void) +0:159 Condition +0:159 Compare Less Than ( temp bool) +0:159 direct index ( temp float) +0:159 'color' ( temp 4-component vector of float) +0:159 Constant: +0:159 1 (const int) +0:159 'd4' ( uniform float) +0:159 true case +0:160 add second child into first child ( temp float) +0:160 direct index ( temp float) +0:160 'color' ( temp 4-component vector of float) +0:160 Constant: +0:160 1 (const int) +0:160 'd4' ( uniform float) +0:159 false case +0:162 add second child into first child ( temp float) +0:162 direct index ( temp float) +0:162 'color' ( temp 4-component vector of float) +0:162 Constant: +0:162 0 (const int) +0:162 'd4' ( uniform float) +0:170 Loop with condition not tested first +0:170 Loop Condition +0:170 Compare Less Than ( temp bool) +0:170 direct index ( temp float) +0:170 'color' ( temp 4-component vector of float) +0:170 Constant: +0:170 0 (const int) +0:170 'd5' ( uniform float) +0:170 Loop Body +0:167 Sequence +0:167 add second child into first child ( temp 4-component vector of float) +0:167 'color' ( temp 4-component vector of float) +0:167 'bigColor5' ( uniform 4-component vector of float) +0:168 Test condition and select ( temp void) +0:168 Condition +0:168 Compare Less Than ( temp bool) +0:168 direct index ( temp float) +0:168 'color' ( temp 4-component vector of float) +0:168 Constant: +0:168 1 (const int) +0:168 'd5' ( uniform float) +0:168 true case +0:169 add second child into first child ( temp float) +0:169 direct index ( temp float) +0:169 'color' ( temp 4-component vector of float) +0:169 Constant: +0:169 1 (const int) +0:169 'd5' ( uniform float) +0:173 Test condition and select ( temp void) +0:173 Condition +0:173 Compare Less Than ( temp bool) +0:173 direct index ( temp float) +0:173 'color' ( temp 4-component vector of float) +0:173 Constant: +0:173 0 (const int) +0:173 'd6' ( uniform float) +0:173 true case +0:174 Sequence +0:174 Loop with condition tested first +0:174 Loop Condition +0:174 Compare Less Than ( temp bool) +0:174 direct index ( temp float) +0:174 'color' ( temp 4-component vector of float) +0:174 Constant: +0:174 1 (const int) +0:174 'd6' ( uniform float) +0:174 Loop Body +0:175 add second child into first child ( temp 4-component vector of float) +0:175 'color' ( temp 4-component vector of float) +0:175 'bigColor6' ( uniform 4-component vector of float) +0:173 false case +0:177 Sequence +0:177 Loop with condition tested first +0:177 Loop Condition +0:177 Compare Less Than ( temp bool) +0:177 direct index ( temp float) +0:177 'color' ( temp 4-component vector of float) +0:177 Constant: +0:177 2 (const int) +0:177 'd6' ( uniform float) +0:177 Loop Body +0:178 add second child into first child ( temp float) +0:178 direct index ( temp float) +0:178 'color' ( temp 4-component vector of float) +0:178 Constant: +0:178 2 (const int) +0:178 direct index ( temp float) +0:178 'bigColor6' ( uniform 4-component vector of float) +0:178 Constant: +0:178 2 (const int) +0:182 Test condition and select ( temp void) +0:182 Condition +0:182 Compare Less Than ( temp bool) +0:182 direct index ( temp float) +0:182 'color' ( temp 4-component vector of float) +0:182 Constant: +0:182 0 (const int) +0:182 'd6' ( uniform float) +0:182 true case +0:183 Sequence +0:183 Loop with condition tested first +0:183 Loop Condition +0:183 Compare Less Than ( temp bool) +0:183 direct index ( temp float) +0:183 'color' ( temp 4-component vector of float) +0:183 Constant: +0:183 1 (const int) +0:183 'd6' ( uniform float) +0:183 Loop Body +0:184 Sequence +0:184 add second child into first child ( temp 4-component vector of float) +0:184 'color' ( temp 4-component vector of float) +0:184 'bigColor6' ( uniform 4-component vector of float) +0:185 Test condition and select ( temp void) +0:185 Condition +0:185 Compare Less Than ( temp bool) +0:185 'd7' ( uniform float) +0:185 Constant: +0:185 1.000000 +0:185 true case +0:186 Branch: Break +0:182 false case +0:190 Sequence +0:190 Loop with condition tested first +0:190 Loop Condition +0:190 Compare Less Than ( temp bool) +0:190 direct index ( temp float) +0:190 'color' ( temp 4-component vector of float) +0:190 Constant: +0:190 2 (const int) +0:190 'd6' ( uniform float) +0:190 Loop Body +0:191 add second child into first child ( temp float) +0:191 direct index ( temp float) +0:191 'color' ( temp 4-component vector of float) +0:191 Constant: +0:191 2 (const int) +0:191 direct index ( temp float) +0:191 'bigColor6' ( uniform 4-component vector of float) +0:191 Constant: +0:191 2 (const int) +0:209 Loop with condition not tested first +0:209 Loop Condition +0:209 Constant: +0:209 true (const bool) +0:209 Loop Body +0:197 Sequence +0:197 Test condition and select ( temp void) +0:197 Condition +0:197 Compare Less Than ( temp bool) +0:197 'd7' ( uniform float) +0:197 Constant: +0:197 0.000000 +0:197 true case +0:198 Branch: Break +0:200 add second child into first child ( temp 4-component vector of float) +0:200 'color' ( temp 4-component vector of float) +0:200 'bigColor7' ( uniform 4-component vector of float) +0:202 Test condition and select ( temp void) +0:202 Condition +0:202 Compare Less Than ( temp bool) +0:202 'd7' ( uniform float) +0:202 Constant: +0:202 1.000000 +0:202 true case +0:203 Sequence +0:203 Post-Increment ( temp float) +0:203 direct index ( temp float) +0:203 'color' ( temp 4-component vector of float) +0:203 Constant: +0:203 2 (const int) +0:204 Branch: Break +0:207 add second child into first child ( temp 4-component vector of float) +0:207 'color' ( temp 4-component vector of float) +0:207 'BaseColor' ( smooth in 4-component vector of float) +0:234 Loop with condition not tested first +0:234 Loop Condition +0:234 Compare Less Than ( temp bool) +0:234 direct index ( temp float) +0:234 'color' ( temp 4-component vector of float) +0:234 Constant: +0:234 2 (const int) +0:234 'd8' ( uniform float) +0:234 Loop Body +0:217 Sequence +0:217 Test condition and select ( temp void) +0:217 Condition +0:217 Compare Less Than ( temp bool) +0:217 'd8' ( uniform float) +0:217 Constant: +0:217 0.000000 +0:217 true case +0:218 Branch: Break +0:220 add second child into first child ( temp 4-component vector of float) +0:220 'color' ( temp 4-component vector of float) +0:220 'bigColor7' ( uniform 4-component vector of float) +0:222 Test condition and select ( temp void) +0:222 Condition +0:222 Compare Less Than ( temp bool) +0:222 'd8' ( uniform float) +0:222 Constant: +0:222 1.000000 +0:222 true case +0:223 Sequence +0:223 Post-Increment ( temp float) +0:223 direct index ( temp float) +0:223 'color' ( temp 4-component vector of float) +0:223 Constant: +0:223 2 (const int) +0:224 Test condition and select ( temp void) +0:224 Condition +0:224 Compare Less Than ( temp bool) +0:224 'd8' ( uniform float) +0:224 Constant: +0:224 2.000000 +0:224 true case +0:225 Sequence +0:225 Post-Increment ( temp float) +0:225 direct index ( temp float) +0:225 'color' ( temp 4-component vector of float) +0:225 Constant: +0:225 1 (const int) +0:224 false case +0:227 Sequence +0:227 Post-Increment ( temp float) +0:227 direct index ( temp float) +0:227 'color' ( temp 4-component vector of float) +0:227 Constant: +0:227 0 (const int) +0:229 Branch: Break +0:232 add second child into first child ( temp 4-component vector of float) +0:232 'color' ( temp 4-component vector of float) +0:232 'BaseColor' ( smooth in 4-component vector of float) +0:237 Loop with condition tested first +0:237 Loop Condition +0:237 Compare Less Than ( temp bool) +0:237 direct index ( temp float) +0:237 'color' ( temp 4-component vector of float) +0:237 Constant: +0:237 3 (const int) +0:237 'd9' ( uniform float) +0:237 Loop Body +0:238 Sequence +0:238 Test condition and select ( temp void) +0:238 Condition +0:238 Compare Greater Than ( temp bool) +0:238 'd9' ( uniform float) +0:238 'd8' ( uniform float) +0:238 true case +0:239 Sequence +0:239 Test condition and select ( temp void) +0:239 Condition +0:239 Compare Less Than or Equal ( temp bool) +0:239 direct index ( temp float) +0:239 'color' ( temp 4-component vector of float) +0:239 Constant: +0:239 0 (const int) +0:239 'd7' ( uniform float) +0:239 true case +0:240 Sequence +0:240 Test condition and select ( temp void) +0:240 Condition +0:240 Compare Equal ( temp bool) +0:240 direct index ( temp float) +0:240 'color' ( temp 4-component vector of float) +0:240 Constant: +0:240 2 (const int) +0:240 Constant: +0:240 5.000000 +0:240 true case +0:241 Post-Increment ( temp float) +0:241 direct index ( temp float) +0:241 'color' ( temp 4-component vector of float) +0:241 Constant: +0:241 3 (const int) +0:240 false case +0:243 Branch: Break +0:250 Loop with condition tested first +0:250 Loop Condition +0:250 Compare Less Than ( temp bool) +0:250 direct index ( temp float) +0:250 'color' ( temp 4-component vector of float) +0:250 Constant: +0:250 2 (const int) +0:250 'd10' ( uniform float) +0:250 Loop Body +0:251 Sequence +0:251 Post-Increment ( temp float) +0:251 direct index ( temp float) +0:251 'color' ( temp 4-component vector of float) +0:251 Constant: +0:251 1 (const int) +0:252 Test condition and select ( temp void) +0:252 Condition +0:252 Compare Less Than ( temp bool) +0:252 direct index ( temp float) +0:252 'color' ( temp 4-component vector of float) +0:252 Constant: +0:252 1 (const int) +0:252 'd11' ( uniform float) +0:252 true case +0:253 Sequence +0:253 Post-Increment ( temp float) +0:253 direct index ( temp float) +0:253 'color' ( temp 4-component vector of float) +0:253 Constant: +0:253 2 (const int) +0:254 Test condition and select ( temp void) +0:254 Condition +0:254 Compare Less Than ( temp bool) +0:254 direct index ( temp float) +0:254 'color' ( temp 4-component vector of float) +0:254 Constant: +0:254 3 (const int) +0:254 'd12' ( uniform float) +0:254 true case +0:255 Post-Increment ( temp float) +0:255 direct index ( temp float) +0:255 'color' ( temp 4-component vector of float) +0:255 Constant: +0:255 3 (const int) +0:254 false case +0:257 Post-Increment ( temp float) +0:257 direct index ( temp float) +0:257 'color' ( temp 4-component vector of float) +0:257 Constant: +0:257 0 (const int) +0:258 Branch: Continue +0:261 Post-Increment ( temp 4-component vector of float) +0:261 'color' ( temp 4-component vector of float) +0:262 Branch: Break +0:266 Loop with condition tested first +0:266 Loop Condition +0:266 Compare Less Than ( temp bool) +0:266 direct index ( temp float) +0:266 'color' ( temp 4-component vector of float) +0:266 Constant: +0:266 0 (const int) +0:266 Constant: +0:266 10.000000 +0:266 Loop Body +0:267 Sequence +0:267 add second child into first child ( temp 4-component vector of float) +0:267 'color' ( temp 4-component vector of float) +0:267 'bigColor8' ( uniform 4-component vector of float) +0:269 Test condition and select ( temp void) +0:269 Condition +0:269 Compare Less Than ( temp bool) +0:269 direct index ( temp float) +0:269 'color' ( temp 4-component vector of float) +0:269 Constant: +0:269 2 (const int) +0:269 'd8' ( uniform float) +0:269 true case +0:270 Test condition and select ( temp void) +0:270 Condition +0:270 Compare Less Than ( temp bool) +0:270 direct index ( temp float) +0:270 'color' ( temp 4-component vector of float) +0:270 Constant: +0:270 3 (const int) +0:270 'd6' ( uniform float) +0:270 true case +0:271 Branch: Continue +0:273 add second child into first child ( temp float) +0:273 direct index ( temp float) +0:273 'color' ( temp 4-component vector of float) +0:273 Constant: +0:273 1 (const int) +0:273 direct index ( temp float) +0:273 'bigColor8' ( uniform 4-component vector of float) +0:273 Constant: +0:273 0 (const int) +0:276 Post-Increment ( temp 4-component vector of float) +0:276 'color' ( temp 4-component vector of float) +0:277 move second child to first child ( temp 4-component vector of float) +0:277 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:277 'color' ( temp 4-component vector of float) +0:280 Loop with condition tested first +0:280 Loop Condition +0:280 Compare Less Than ( temp bool) +0:280 direct index ( temp float) +0:280 'color' ( temp 4-component vector of float) +0:280 Constant: +0:280 0 (const int) +0:280 'd14' ( uniform float) +0:280 Loop Body +0:281 Sequence +0:281 Test condition and select ( temp void) +0:281 Condition +0:281 Compare Less Than ( temp bool) +0:281 direct index ( temp float) +0:281 'color' ( temp 4-component vector of float) +0:281 Constant: +0:281 1 (const int) +0:281 'd15' ( uniform float) +0:281 true case +0:282 Sequence +0:282 Branch: Return +0:281 false case +0:285 Post-Increment ( temp 4-component vector of float) +0:285 'color' ( temp 4-component vector of float) +0:288 Post-Increment ( temp 4-component vector of float) +0:288 'color' ( temp 4-component vector of float) +0:290 Loop with condition tested first +0:290 Loop Condition +0:290 Compare Less Than ( temp bool) +0:290 direct index ( temp float) +0:290 'color' ( temp 4-component vector of float) +0:290 Constant: +0:290 3 (const int) +0:290 'd16' ( uniform float) +0:290 Loop Body +0:291 Sequence +0:291 Post-Increment ( temp float) +0:291 direct index ( temp float) +0:291 'color' ( temp 4-component vector of float) +0:291 Constant: +0:291 3 (const int) +0:296 Loop with condition tested first +0:296 Loop Condition +0:296 logical-and ( temp bool) +0:296 Compare Less Than ( temp bool) +0:296 direct index ( temp float) +0:296 'color' ( temp 4-component vector of float) +0:296 Constant: +0:296 3 (const int) +0:296 'd2' ( uniform float) +0:296 Compare Less Than ( temp bool) +0:296 direct index ( temp float) +0:296 'color' ( temp 4-component vector of float) +0:296 Constant: +0:296 1 (const int) +0:296 'd3' ( uniform float) +0:296 Loop Body +0:297 Sequence +0:297 add second child into first child ( temp 4-component vector of float) +0:297 'color' ( temp 4-component vector of float) +0:297 'bigColor1_2' ( uniform 4-component vector of float) +0:298 Test condition and select ( temp void) +0:298 Condition +0:298 Compare Less Than ( temp bool) +0:298 direct index ( temp float) +0:298 'color' ( temp 4-component vector of float) +0:298 Constant: +0:298 2 (const int) +0:298 'd3' ( uniform float) +0:298 true case +0:299 Branch: Return +0:307 Loop with condition not tested first +0:307 Loop Condition +0:307 Compare Less Than ( temp bool) +0:307 direct index ( temp float) +0:307 'color' ( temp 4-component vector of float) +0:307 Constant: +0:307 0 (const int) +0:307 'd17' ( uniform float) +0:307 Loop Body +0:304 Sequence +0:304 Test condition and select ( temp void) +0:304 Condition +0:304 Compare Less Than ( temp bool) +0:304 direct index ( temp float) +0:304 'color' ( temp 4-component vector of float) +0:304 Constant: +0:304 1 (const int) +0:304 'd18' ( uniform float) +0:304 true case +0:305 Branch: Return +0:306 Post-Increment ( temp 4-component vector of float) +0:306 'color' ( temp 4-component vector of float) +0:310 Loop with condition tested first +0:310 Loop Condition +0:310 Compare Less Than ( temp bool) +0:310 direct index ( temp float) +0:310 'color' ( temp 4-component vector of float) +0:310 Constant: +0:310 1 (const int) +0:310 'd16' ( uniform float) +0:310 Loop Body +0:311 Sequence +0:311 Test condition and select ( temp void) +0:311 Condition +0:311 Compare Less Than ( temp bool) +0:311 direct index ( temp float) +0:311 'color' ( temp 4-component vector of float) +0:311 Constant: +0:311 3 (const int) +0:311 'd16' ( uniform float) +0:311 true case +0:312 Sequence +0:312 Branch: Kill +0:311 false case +0:314 Post-Increment ( temp 4-component vector of float) +0:314 'color' ( temp 4-component vector of float) +0:317 Post-Increment ( temp 4-component vector of float) +0:317 'color' ( temp 4-component vector of float) +0:319 move second child to first child ( temp 4-component vector of float) +0:319 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:319 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'bigColor1_1' ( uniform 4-component vector of float) +0:? 'bigColor1_2' ( uniform 4-component vector of float) +0:? 'bigColor1_3' ( uniform 4-component vector of float) +0:? 'bigColor2' ( uniform 4-component vector of float) +0:? 'bigColor3' ( uniform 4-component vector of float) +0:? 'bigColor4' ( uniform 4-component vector of float) +0:? 'bigColor5' ( uniform 4-component vector of float) +0:? 'bigColor6' ( uniform 4-component vector of float) +0:? 'bigColor7' ( uniform 4-component vector of float) +0:? 'bigColor8' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'd2' ( uniform float) +0:? 'd3' ( uniform float) +0:? 'd4' ( uniform float) +0:? 'd5' ( uniform float) +0:? 'd6' ( uniform float) +0:? 'd7' ( uniform float) +0:? 'd8' ( uniform float) +0:? 'd9' ( uniform float) +0:? 'd10' ( uniform float) +0:? 'd11' ( uniform float) +0:? 'd12' ( uniform float) +0:? 'd13' ( uniform float) +0:? 'd14' ( uniform float) +0:? 'd15' ( uniform float) +0:? 'd16' ( uniform float) +0:? 'd17' ( uniform float) +0:? 'd18' ( uniform float) +0:? 'd19' ( uniform float) +0:? 'd20' ( uniform float) +0:? 'd21' ( uniform float) +0:? 'd22' ( uniform float) +0:? 'd23' ( uniform float) +0:? 'd24' ( uniform float) +0:? 'd25' ( uniform float) +0:? 'd26' ( uniform float) +0:? 'd27' ( uniform float) +0:? 'd28' ( uniform float) +0:? 'd29' ( uniform float) +0:? 'd30' ( uniform float) +0:? 'd31' ( uniform float) +0:? 'd32' ( uniform float) +0:? 'd33' ( uniform float) +0:? 'd34' ( uniform float) +0:? 'Count' ( uniform int) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:53 Function Definition: main( ( global void) +0:53 Function Parameters: +0:55 Sequence +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of float) +0:55 'color' ( temp 4-component vector of float) +0:55 'BaseColor' ( smooth in 4-component vector of float) +0:58 Loop with condition tested first +0:58 Loop Condition +0:58 Constant: +0:58 true (const bool) +0:58 Loop Body +0:59 Sequence +0:59 Test condition and select ( temp void) +0:59 Condition +0:59 Compare Less Than ( temp bool) +0:59 direct index ( temp float) +0:59 'color' ( temp 4-component vector of float) +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 0.330000 +0:59 true case +0:60 Sequence +0:60 add second child into first child ( temp 4-component vector of float) +0:60 'color' ( temp 4-component vector of float) +0:60 Constant: +0:60 0.330000 +0:60 0.330000 +0:60 0.330000 +0:60 0.330000 +0:61 Branch: Break +0:63 Test condition and select ( temp void) +0:63 Condition +0:63 Compare Less Than ( temp bool) +0:63 direct index ( temp float) +0:63 'color' ( temp 4-component vector of float) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 0.660000 +0:63 true case +0:64 Sequence +0:64 add second child into first child ( temp 4-component vector of float) +0:64 'color' ( temp 4-component vector of float) +0:64 Constant: +0:64 0.660000 +0:64 0.660000 +0:64 0.660000 +0:64 0.660000 +0:65 Branch: Break +0:68 add second child into first child ( temp 4-component vector of float) +0:68 'color' ( temp 4-component vector of float) +0:68 Constant: +0:68 0.330000 +0:68 0.330000 +0:68 0.330000 +0:68 0.330000 +0:69 Branch: Break +0:73 Loop with condition tested first +0:73 Loop Condition +0:73 Compare Less Than ( temp bool) +0:73 direct index ( temp float) +0:73 'color' ( temp 4-component vector of float) +0:73 Constant: +0:73 0 (const int) +0:73 'd' ( uniform float) +0:73 Loop Body +0:74 Sequence +0:74 add second child into first child ( temp 4-component vector of float) +0:74 'color' ( temp 4-component vector of float) +0:74 'bigColor' ( uniform 4-component vector of float) +0:78 Loop with condition tested first +0:78 Loop Condition +0:78 Compare Less Than ( temp bool) +0:78 direct index ( temp float) +0:78 'color' ( temp 4-component vector of float) +0:78 Constant: +0:78 2 (const int) +0:78 'd' ( uniform float) +0:78 Loop Body +0:79 Sequence +0:79 add second child into first child ( temp 4-component vector of float) +0:79 'color' ( temp 4-component vector of float) +0:79 'bigColor1_1' ( uniform 4-component vector of float) +0:80 Test condition and select ( temp void) +0:80 Condition +0:80 Compare Less Than ( temp bool) +0:80 direct index ( temp float) +0:80 'color' ( temp 4-component vector of float) +0:80 Constant: +0:80 3 (const int) +0:80 'd' ( uniform float) +0:80 true case +0:81 Branch: Continue +0:83 add second child into first child ( temp 4-component vector of float) +0:83 'color' ( temp 4-component vector of float) +0:83 'bigColor1_1' ( uniform 4-component vector of float) +0:87 Loop with condition tested first +0:87 Loop Condition +0:87 Compare Less Than ( temp bool) +0:87 direct index ( temp float) +0:87 'color' ( temp 4-component vector of float) +0:87 Constant: +0:87 0 (const int) +0:87 Constant: +0:87 42.000000 +0:87 Loop Body +0:88 Sequence +0:88 Pre-Increment ( temp 4-component vector of float) +0:88 'color' ( temp 4-component vector of float) +0:92 Loop with condition tested first +0:92 Loop Condition +0:92 logical-and ( temp bool) +0:92 Compare Less Than ( temp bool) +0:92 direct index ( temp float) +0:92 'color' ( temp 4-component vector of float) +0:92 Constant: +0:92 3 (const int) +0:92 'd2' ( uniform float) +0:92 Compare Less Than ( temp bool) +0:92 direct index ( temp float) +0:92 'color' ( temp 4-component vector of float) +0:92 Constant: +0:92 1 (const int) +0:92 'd3' ( uniform float) +0:92 Loop Body +0:93 Sequence +0:93 add second child into first child ( temp 4-component vector of float) +0:93 'color' ( temp 4-component vector of float) +0:93 'bigColor1_2' ( uniform 4-component vector of float) +0:97 Loop with condition tested first +0:97 Loop Condition +0:97 Compare Less Than ( temp bool) +0:97 direct index ( temp float) +0:97 'color' ( temp 4-component vector of float) +0:97 Constant: +0:97 2 (const int) +0:97 'd3' ( uniform float) +0:97 Loop Body +0:98 Sequence +0:98 add second child into first child ( temp 4-component vector of float) +0:98 'color' ( temp 4-component vector of float) +0:98 'bigColor1_3' ( uniform 4-component vector of float) +0:99 Test condition and select ( temp void) +0:99 Condition +0:99 Compare Less Than ( temp bool) +0:99 direct index ( temp float) +0:99 'color' ( temp 4-component vector of float) +0:99 Constant: +0:99 1 (const int) +0:99 'd4' ( uniform float) +0:99 true case +0:100 Branch: Break +0:101 add second child into first child ( temp 4-component vector of float) +0:101 'color' ( temp 4-component vector of float) +0:101 'bigColor1_3' ( uniform 4-component vector of float) +0:105 Sequence +0:105 Sequence +0:105 move second child to first child ( temp int) +0:105 'i' ( temp int) +0:105 Constant: +0:105 0 (const int) +0:105 Loop with condition tested first +0:105 Loop Condition +0:105 Compare Less Than ( temp bool) +0:105 'i' ( temp int) +0:105 'Count' ( uniform int) +0:105 Loop Body +0:106 Sequence +0:106 add second child into first child ( temp 4-component vector of float) +0:106 'color' ( temp 4-component vector of float) +0:106 'bigColor2' ( uniform 4-component vector of float) +0:105 Loop Terminal Expression +0:105 Pre-Increment ( temp int) +0:105 'i' ( temp int) +0:112 Loop with condition not tested first +0:112 Loop Condition +0:112 Compare Less Than ( temp bool) +0:112 direct index ( temp float) +0:112 'color' ( temp 4-component vector of float) +0:112 Constant: +0:112 0 (const int) +0:112 'd2' ( uniform float) +0:112 Loop Body +0:111 Sequence +0:111 add second child into first child ( temp 4-component vector of float) +0:111 'color' ( temp 4-component vector of float) +0:111 'bigColor3' ( uniform 4-component vector of float) +0:115 Sequence +0:115 Sequence +0:115 move second child to first child ( temp int) +0:115 'i' ( temp int) +0:115 Constant: +0:115 0 (const int) +0:115 Loop with condition tested first +0:115 Loop Condition +0:115 Compare Less Than ( temp bool) +0:115 'i' ( temp int) +0:115 Constant: +0:115 42 (const int) +0:115 Loop Body +0:116 Sequence +0:116 add second child into first child ( temp float) +0:116 direct index ( temp float) +0:116 'color' ( temp 4-component vector of float) +0:116 Constant: +0:116 2 (const int) +0:116 'd3' ( uniform float) +0:115 Loop Terminal Expression +0:115 Pre-Increment ( temp int) +0:115 'i' ( temp int) +0:120 Sequence +0:120 Sequence +0:120 move second child to first child ( temp int) +0:120 'i' ( temp int) +0:120 Constant: +0:120 0 (const int) +0:120 Loop with condition tested first +0:120 Loop Condition +0:120 Compare Less Than ( temp bool) +0:120 'i' ( temp int) +0:120 Constant: +0:120 100 (const int) +0:120 Loop Body +0:121 Sequence +0:121 Test condition and select ( temp void) +0:121 Condition +0:121 Compare Less Than ( temp bool) +0:121 direct index ( temp float) +0:121 'color' ( temp 4-component vector of float) +0:121 Constant: +0:121 2 (const int) +0:121 Constant: +0:121 20.000000 +0:121 true case +0:122 Post-Increment ( temp float) +0:122 direct index ( temp float) +0:122 'color' ( temp 4-component vector of float) +0:122 Constant: +0:122 0 (const int) +0:121 false case +0:124 Post-Increment ( temp float) +0:124 direct index ( temp float) +0:124 'color' ( temp 4-component vector of float) +0:124 Constant: +0:124 1 (const int) +0:125 Test condition and select ( temp void) +0:125 Condition +0:125 Compare Less Than ( temp bool) +0:125 direct index ( temp float) +0:125 'color' ( temp 4-component vector of float) +0:125 Constant: +0:125 3 (const int) +0:125 Constant: +0:125 20.000000 +0:125 true case +0:126 Test condition and select ( temp void) +0:126 Condition +0:126 Compare Greater Than ( temp bool) +0:126 direct index ( temp float) +0:126 'color' ( temp 4-component vector of float) +0:126 Constant: +0:126 2 (const int) +0:126 direct index ( temp float) +0:126 'color' ( temp 4-component vector of float) +0:126 Constant: +0:126 1 (const int) +0:126 true case +0:127 Constant: +0:127 0 (const int) +0:120 Loop Terminal Expression +0:120 Pre-Increment ( temp int) +0:120 'i' ( temp int) +0:131 Sequence +0:131 Sequence +0:131 move second child to first child ( temp int) +0:131 'i' ( temp int) +0:131 Constant: +0:131 0 (const int) +0:131 Loop with condition tested first +0:131 Loop Condition +0:131 Compare Less Than ( temp bool) +0:131 'i' ( temp int) +0:131 Constant: +0:131 120 (const int) +0:131 Loop Body +0:132 Sequence +0:132 Test condition and select ( temp void) +0:132 Condition +0:132 Compare Less Than ( temp bool) +0:132 direct index ( temp float) +0:132 'color' ( temp 4-component vector of float) +0:132 Constant: +0:132 2 (const int) +0:132 Constant: +0:132 20.000000 +0:132 true case +0:133 Post-Increment ( temp float) +0:133 direct index ( temp float) +0:133 'color' ( temp 4-component vector of float) +0:133 Constant: +0:133 0 (const int) +0:132 false case +0:135 Post-Increment ( temp float) +0:135 direct index ( temp float) +0:135 'color' ( temp 4-component vector of float) +0:135 Constant: +0:135 1 (const int) +0:131 Loop Terminal Expression +0:131 Pre-Increment ( temp int) +0:131 'i' ( temp int) +0:139 Sequence +0:139 Sequence +0:139 move second child to first child ( temp int) +0:139 'i' ( temp int) +0:139 Constant: +0:139 0 (const int) +0:139 Loop with condition tested first +0:139 Loop Condition +0:139 Compare Less Than ( temp bool) +0:139 'i' ( temp int) +0:139 Constant: +0:139 42 (const int) +0:139 Loop Body +0:140 Sequence +0:140 add second child into first child ( temp float) +0:140 direct index ( temp float) +0:140 'color' ( temp 4-component vector of float) +0:140 Constant: +0:140 2 (const int) +0:140 'd3' ( uniform float) +0:141 Test condition and select ( temp void) +0:141 Condition +0:141 Compare Less Than ( temp bool) +0:141 direct index ( temp float) +0:141 'color' ( temp 4-component vector of float) +0:141 Constant: +0:141 0 (const int) +0:141 'd4' ( uniform float) +0:141 true case +0:142 Branch: Continue +0:143 Pre-Increment ( temp float) +0:143 direct index ( temp float) +0:143 'color' ( temp 4-component vector of float) +0:143 Constant: +0:143 3 (const int) +0:139 Loop Terminal Expression +0:139 Pre-Increment ( temp int) +0:139 'i' ( temp int) +0:147 Sequence +0:147 Sequence +0:147 move second child to first child ( temp int) +0:147 'i' ( temp int) +0:147 Constant: +0:147 0 (const int) +0:147 Loop with condition tested first +0:147 Loop Condition +0:147 Compare Less Than ( temp bool) +0:147 'i' ( temp int) +0:147 Constant: +0:147 42 (const int) +0:147 Loop Body +0:148 Sequence +0:148 add second child into first child ( temp float) +0:148 direct index ( temp float) +0:148 'color' ( temp 4-component vector of float) +0:148 Constant: +0:148 2 (const int) +0:148 'd3' ( uniform float) +0:149 Test condition and select ( temp void) +0:149 Condition +0:149 Compare Less Than ( temp bool) +0:149 direct index ( temp float) +0:149 'color' ( temp 4-component vector of float) +0:149 Constant: +0:149 0 (const int) +0:149 'd4' ( uniform float) +0:149 true case +0:150 Branch: Break +0:151 Pre-Increment ( temp float) +0:151 direct index ( temp float) +0:151 'color' ( temp 4-component vector of float) +0:151 Constant: +0:151 3 (const int) +0:147 Loop Terminal Expression +0:147 Pre-Increment ( temp int) +0:147 'i' ( temp int) +0:163 Loop with condition not tested first +0:163 Loop Condition +0:163 Compare Less Than ( temp bool) +0:163 direct index ( temp float) +0:163 'color' ( temp 4-component vector of float) +0:163 Constant: +0:163 2 (const int) +0:163 'd4' ( uniform float) +0:163 Loop Body +0:156 Sequence +0:156 add second child into first child ( temp 4-component vector of float) +0:156 'color' ( temp 4-component vector of float) +0:156 'bigColor4' ( uniform 4-component vector of float) +0:157 Test condition and select ( temp void) +0:157 Condition +0:157 Compare Less Than ( temp bool) +0:157 direct index ( temp float) +0:157 'color' ( temp 4-component vector of float) +0:157 Constant: +0:157 0 (const int) +0:157 'd4' ( uniform float) +0:157 true case +0:158 Branch: Continue +0:159 Test condition and select ( temp void) +0:159 Condition +0:159 Compare Less Than ( temp bool) +0:159 direct index ( temp float) +0:159 'color' ( temp 4-component vector of float) +0:159 Constant: +0:159 1 (const int) +0:159 'd4' ( uniform float) +0:159 true case +0:160 add second child into first child ( temp float) +0:160 direct index ( temp float) +0:160 'color' ( temp 4-component vector of float) +0:160 Constant: +0:160 1 (const int) +0:160 'd4' ( uniform float) +0:159 false case +0:162 add second child into first child ( temp float) +0:162 direct index ( temp float) +0:162 'color' ( temp 4-component vector of float) +0:162 Constant: +0:162 0 (const int) +0:162 'd4' ( uniform float) +0:170 Loop with condition not tested first +0:170 Loop Condition +0:170 Compare Less Than ( temp bool) +0:170 direct index ( temp float) +0:170 'color' ( temp 4-component vector of float) +0:170 Constant: +0:170 0 (const int) +0:170 'd5' ( uniform float) +0:170 Loop Body +0:167 Sequence +0:167 add second child into first child ( temp 4-component vector of float) +0:167 'color' ( temp 4-component vector of float) +0:167 'bigColor5' ( uniform 4-component vector of float) +0:168 Test condition and select ( temp void) +0:168 Condition +0:168 Compare Less Than ( temp bool) +0:168 direct index ( temp float) +0:168 'color' ( temp 4-component vector of float) +0:168 Constant: +0:168 1 (const int) +0:168 'd5' ( uniform float) +0:168 true case +0:169 add second child into first child ( temp float) +0:169 direct index ( temp float) +0:169 'color' ( temp 4-component vector of float) +0:169 Constant: +0:169 1 (const int) +0:169 'd5' ( uniform float) +0:173 Test condition and select ( temp void) +0:173 Condition +0:173 Compare Less Than ( temp bool) +0:173 direct index ( temp float) +0:173 'color' ( temp 4-component vector of float) +0:173 Constant: +0:173 0 (const int) +0:173 'd6' ( uniform float) +0:173 true case +0:174 Sequence +0:174 Loop with condition tested first +0:174 Loop Condition +0:174 Compare Less Than ( temp bool) +0:174 direct index ( temp float) +0:174 'color' ( temp 4-component vector of float) +0:174 Constant: +0:174 1 (const int) +0:174 'd6' ( uniform float) +0:174 Loop Body +0:175 add second child into first child ( temp 4-component vector of float) +0:175 'color' ( temp 4-component vector of float) +0:175 'bigColor6' ( uniform 4-component vector of float) +0:173 false case +0:177 Sequence +0:177 Loop with condition tested first +0:177 Loop Condition +0:177 Compare Less Than ( temp bool) +0:177 direct index ( temp float) +0:177 'color' ( temp 4-component vector of float) +0:177 Constant: +0:177 2 (const int) +0:177 'd6' ( uniform float) +0:177 Loop Body +0:178 add second child into first child ( temp float) +0:178 direct index ( temp float) +0:178 'color' ( temp 4-component vector of float) +0:178 Constant: +0:178 2 (const int) +0:178 direct index ( temp float) +0:178 'bigColor6' ( uniform 4-component vector of float) +0:178 Constant: +0:178 2 (const int) +0:182 Test condition and select ( temp void) +0:182 Condition +0:182 Compare Less Than ( temp bool) +0:182 direct index ( temp float) +0:182 'color' ( temp 4-component vector of float) +0:182 Constant: +0:182 0 (const int) +0:182 'd6' ( uniform float) +0:182 true case +0:183 Sequence +0:183 Loop with condition tested first +0:183 Loop Condition +0:183 Compare Less Than ( temp bool) +0:183 direct index ( temp float) +0:183 'color' ( temp 4-component vector of float) +0:183 Constant: +0:183 1 (const int) +0:183 'd6' ( uniform float) +0:183 Loop Body +0:184 Sequence +0:184 add second child into first child ( temp 4-component vector of float) +0:184 'color' ( temp 4-component vector of float) +0:184 'bigColor6' ( uniform 4-component vector of float) +0:185 Test condition and select ( temp void) +0:185 Condition +0:185 Compare Less Than ( temp bool) +0:185 'd7' ( uniform float) +0:185 Constant: +0:185 1.000000 +0:185 true case +0:186 Branch: Break +0:182 false case +0:190 Sequence +0:190 Loop with condition tested first +0:190 Loop Condition +0:190 Compare Less Than ( temp bool) +0:190 direct index ( temp float) +0:190 'color' ( temp 4-component vector of float) +0:190 Constant: +0:190 2 (const int) +0:190 'd6' ( uniform float) +0:190 Loop Body +0:191 add second child into first child ( temp float) +0:191 direct index ( temp float) +0:191 'color' ( temp 4-component vector of float) +0:191 Constant: +0:191 2 (const int) +0:191 direct index ( temp float) +0:191 'bigColor6' ( uniform 4-component vector of float) +0:191 Constant: +0:191 2 (const int) +0:209 Loop with condition not tested first +0:209 Loop Condition +0:209 Constant: +0:209 true (const bool) +0:209 Loop Body +0:197 Sequence +0:197 Test condition and select ( temp void) +0:197 Condition +0:197 Compare Less Than ( temp bool) +0:197 'd7' ( uniform float) +0:197 Constant: +0:197 0.000000 +0:197 true case +0:198 Branch: Break +0:200 add second child into first child ( temp 4-component vector of float) +0:200 'color' ( temp 4-component vector of float) +0:200 'bigColor7' ( uniform 4-component vector of float) +0:202 Test condition and select ( temp void) +0:202 Condition +0:202 Compare Less Than ( temp bool) +0:202 'd7' ( uniform float) +0:202 Constant: +0:202 1.000000 +0:202 true case +0:203 Sequence +0:203 Post-Increment ( temp float) +0:203 direct index ( temp float) +0:203 'color' ( temp 4-component vector of float) +0:203 Constant: +0:203 2 (const int) +0:204 Branch: Break +0:207 add second child into first child ( temp 4-component vector of float) +0:207 'color' ( temp 4-component vector of float) +0:207 'BaseColor' ( smooth in 4-component vector of float) +0:234 Loop with condition not tested first +0:234 Loop Condition +0:234 Compare Less Than ( temp bool) +0:234 direct index ( temp float) +0:234 'color' ( temp 4-component vector of float) +0:234 Constant: +0:234 2 (const int) +0:234 'd8' ( uniform float) +0:234 Loop Body +0:217 Sequence +0:217 Test condition and select ( temp void) +0:217 Condition +0:217 Compare Less Than ( temp bool) +0:217 'd8' ( uniform float) +0:217 Constant: +0:217 0.000000 +0:217 true case +0:218 Branch: Break +0:220 add second child into first child ( temp 4-component vector of float) +0:220 'color' ( temp 4-component vector of float) +0:220 'bigColor7' ( uniform 4-component vector of float) +0:222 Test condition and select ( temp void) +0:222 Condition +0:222 Compare Less Than ( temp bool) +0:222 'd8' ( uniform float) +0:222 Constant: +0:222 1.000000 +0:222 true case +0:223 Sequence +0:223 Post-Increment ( temp float) +0:223 direct index ( temp float) +0:223 'color' ( temp 4-component vector of float) +0:223 Constant: +0:223 2 (const int) +0:224 Test condition and select ( temp void) +0:224 Condition +0:224 Compare Less Than ( temp bool) +0:224 'd8' ( uniform float) +0:224 Constant: +0:224 2.000000 +0:224 true case +0:225 Sequence +0:225 Post-Increment ( temp float) +0:225 direct index ( temp float) +0:225 'color' ( temp 4-component vector of float) +0:225 Constant: +0:225 1 (const int) +0:224 false case +0:227 Sequence +0:227 Post-Increment ( temp float) +0:227 direct index ( temp float) +0:227 'color' ( temp 4-component vector of float) +0:227 Constant: +0:227 0 (const int) +0:229 Branch: Break +0:232 add second child into first child ( temp 4-component vector of float) +0:232 'color' ( temp 4-component vector of float) +0:232 'BaseColor' ( smooth in 4-component vector of float) +0:237 Loop with condition tested first +0:237 Loop Condition +0:237 Compare Less Than ( temp bool) +0:237 direct index ( temp float) +0:237 'color' ( temp 4-component vector of float) +0:237 Constant: +0:237 3 (const int) +0:237 'd9' ( uniform float) +0:237 Loop Body +0:238 Sequence +0:238 Test condition and select ( temp void) +0:238 Condition +0:238 Compare Greater Than ( temp bool) +0:238 'd9' ( uniform float) +0:238 'd8' ( uniform float) +0:238 true case +0:239 Sequence +0:239 Test condition and select ( temp void) +0:239 Condition +0:239 Compare Less Than or Equal ( temp bool) +0:239 direct index ( temp float) +0:239 'color' ( temp 4-component vector of float) +0:239 Constant: +0:239 0 (const int) +0:239 'd7' ( uniform float) +0:239 true case +0:240 Sequence +0:240 Test condition and select ( temp void) +0:240 Condition +0:240 Compare Equal ( temp bool) +0:240 direct index ( temp float) +0:240 'color' ( temp 4-component vector of float) +0:240 Constant: +0:240 2 (const int) +0:240 Constant: +0:240 5.000000 +0:240 true case +0:241 Post-Increment ( temp float) +0:241 direct index ( temp float) +0:241 'color' ( temp 4-component vector of float) +0:241 Constant: +0:241 3 (const int) +0:240 false case +0:243 Branch: Break +0:250 Loop with condition tested first +0:250 Loop Condition +0:250 Compare Less Than ( temp bool) +0:250 direct index ( temp float) +0:250 'color' ( temp 4-component vector of float) +0:250 Constant: +0:250 2 (const int) +0:250 'd10' ( uniform float) +0:250 Loop Body +0:251 Sequence +0:251 Post-Increment ( temp float) +0:251 direct index ( temp float) +0:251 'color' ( temp 4-component vector of float) +0:251 Constant: +0:251 1 (const int) +0:252 Test condition and select ( temp void) +0:252 Condition +0:252 Compare Less Than ( temp bool) +0:252 direct index ( temp float) +0:252 'color' ( temp 4-component vector of float) +0:252 Constant: +0:252 1 (const int) +0:252 'd11' ( uniform float) +0:252 true case +0:253 Sequence +0:253 Post-Increment ( temp float) +0:253 direct index ( temp float) +0:253 'color' ( temp 4-component vector of float) +0:253 Constant: +0:253 2 (const int) +0:254 Test condition and select ( temp void) +0:254 Condition +0:254 Compare Less Than ( temp bool) +0:254 direct index ( temp float) +0:254 'color' ( temp 4-component vector of float) +0:254 Constant: +0:254 3 (const int) +0:254 'd12' ( uniform float) +0:254 true case +0:255 Post-Increment ( temp float) +0:255 direct index ( temp float) +0:255 'color' ( temp 4-component vector of float) +0:255 Constant: +0:255 3 (const int) +0:254 false case +0:257 Post-Increment ( temp float) +0:257 direct index ( temp float) +0:257 'color' ( temp 4-component vector of float) +0:257 Constant: +0:257 0 (const int) +0:258 Branch: Continue +0:261 Post-Increment ( temp 4-component vector of float) +0:261 'color' ( temp 4-component vector of float) +0:262 Branch: Break +0:266 Loop with condition tested first +0:266 Loop Condition +0:266 Compare Less Than ( temp bool) +0:266 direct index ( temp float) +0:266 'color' ( temp 4-component vector of float) +0:266 Constant: +0:266 0 (const int) +0:266 Constant: +0:266 10.000000 +0:266 Loop Body +0:267 Sequence +0:267 add second child into first child ( temp 4-component vector of float) +0:267 'color' ( temp 4-component vector of float) +0:267 'bigColor8' ( uniform 4-component vector of float) +0:269 Test condition and select ( temp void) +0:269 Condition +0:269 Compare Less Than ( temp bool) +0:269 direct index ( temp float) +0:269 'color' ( temp 4-component vector of float) +0:269 Constant: +0:269 2 (const int) +0:269 'd8' ( uniform float) +0:269 true case +0:270 Test condition and select ( temp void) +0:270 Condition +0:270 Compare Less Than ( temp bool) +0:270 direct index ( temp float) +0:270 'color' ( temp 4-component vector of float) +0:270 Constant: +0:270 3 (const int) +0:270 'd6' ( uniform float) +0:270 true case +0:271 Branch: Continue +0:273 add second child into first child ( temp float) +0:273 direct index ( temp float) +0:273 'color' ( temp 4-component vector of float) +0:273 Constant: +0:273 1 (const int) +0:273 direct index ( temp float) +0:273 'bigColor8' ( uniform 4-component vector of float) +0:273 Constant: +0:273 0 (const int) +0:276 Post-Increment ( temp 4-component vector of float) +0:276 'color' ( temp 4-component vector of float) +0:277 move second child to first child ( temp 4-component vector of float) +0:277 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:277 'color' ( temp 4-component vector of float) +0:280 Loop with condition tested first +0:280 Loop Condition +0:280 Compare Less Than ( temp bool) +0:280 direct index ( temp float) +0:280 'color' ( temp 4-component vector of float) +0:280 Constant: +0:280 0 (const int) +0:280 'd14' ( uniform float) +0:280 Loop Body +0:281 Sequence +0:281 Test condition and select ( temp void) +0:281 Condition +0:281 Compare Less Than ( temp bool) +0:281 direct index ( temp float) +0:281 'color' ( temp 4-component vector of float) +0:281 Constant: +0:281 1 (const int) +0:281 'd15' ( uniform float) +0:281 true case +0:282 Sequence +0:282 Branch: Return +0:281 false case +0:285 Post-Increment ( temp 4-component vector of float) +0:285 'color' ( temp 4-component vector of float) +0:288 Post-Increment ( temp 4-component vector of float) +0:288 'color' ( temp 4-component vector of float) +0:290 Loop with condition tested first +0:290 Loop Condition +0:290 Compare Less Than ( temp bool) +0:290 direct index ( temp float) +0:290 'color' ( temp 4-component vector of float) +0:290 Constant: +0:290 3 (const int) +0:290 'd16' ( uniform float) +0:290 Loop Body +0:291 Sequence +0:291 Post-Increment ( temp float) +0:291 direct index ( temp float) +0:291 'color' ( temp 4-component vector of float) +0:291 Constant: +0:291 3 (const int) +0:296 Loop with condition tested first +0:296 Loop Condition +0:296 logical-and ( temp bool) +0:296 Compare Less Than ( temp bool) +0:296 direct index ( temp float) +0:296 'color' ( temp 4-component vector of float) +0:296 Constant: +0:296 3 (const int) +0:296 'd2' ( uniform float) +0:296 Compare Less Than ( temp bool) +0:296 direct index ( temp float) +0:296 'color' ( temp 4-component vector of float) +0:296 Constant: +0:296 1 (const int) +0:296 'd3' ( uniform float) +0:296 Loop Body +0:297 Sequence +0:297 add second child into first child ( temp 4-component vector of float) +0:297 'color' ( temp 4-component vector of float) +0:297 'bigColor1_2' ( uniform 4-component vector of float) +0:298 Test condition and select ( temp void) +0:298 Condition +0:298 Compare Less Than ( temp bool) +0:298 direct index ( temp float) +0:298 'color' ( temp 4-component vector of float) +0:298 Constant: +0:298 2 (const int) +0:298 'd3' ( uniform float) +0:298 true case +0:299 Branch: Return +0:307 Loop with condition not tested first +0:307 Loop Condition +0:307 Compare Less Than ( temp bool) +0:307 direct index ( temp float) +0:307 'color' ( temp 4-component vector of float) +0:307 Constant: +0:307 0 (const int) +0:307 'd17' ( uniform float) +0:307 Loop Body +0:304 Sequence +0:304 Test condition and select ( temp void) +0:304 Condition +0:304 Compare Less Than ( temp bool) +0:304 direct index ( temp float) +0:304 'color' ( temp 4-component vector of float) +0:304 Constant: +0:304 1 (const int) +0:304 'd18' ( uniform float) +0:304 true case +0:305 Branch: Return +0:306 Post-Increment ( temp 4-component vector of float) +0:306 'color' ( temp 4-component vector of float) +0:310 Loop with condition tested first +0:310 Loop Condition +0:310 Compare Less Than ( temp bool) +0:310 direct index ( temp float) +0:310 'color' ( temp 4-component vector of float) +0:310 Constant: +0:310 1 (const int) +0:310 'd16' ( uniform float) +0:310 Loop Body +0:311 Sequence +0:311 Test condition and select ( temp void) +0:311 Condition +0:311 Compare Less Than ( temp bool) +0:311 direct index ( temp float) +0:311 'color' ( temp 4-component vector of float) +0:311 Constant: +0:311 3 (const int) +0:311 'd16' ( uniform float) +0:311 true case +0:312 Sequence +0:312 Branch: Kill +0:311 false case +0:314 Post-Increment ( temp 4-component vector of float) +0:314 'color' ( temp 4-component vector of float) +0:317 Post-Increment ( temp 4-component vector of float) +0:317 'color' ( temp 4-component vector of float) +0:319 move second child to first child ( temp 4-component vector of float) +0:319 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:319 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'bigColor1_1' ( uniform 4-component vector of float) +0:? 'bigColor1_2' ( uniform 4-component vector of float) +0:? 'bigColor1_3' ( uniform 4-component vector of float) +0:? 'bigColor2' ( uniform 4-component vector of float) +0:? 'bigColor3' ( uniform 4-component vector of float) +0:? 'bigColor4' ( uniform 4-component vector of float) +0:? 'bigColor5' ( uniform 4-component vector of float) +0:? 'bigColor6' ( uniform 4-component vector of float) +0:? 'bigColor7' ( uniform 4-component vector of float) +0:? 'bigColor8' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'd2' ( uniform float) +0:? 'd3' ( uniform float) +0:? 'd4' ( uniform float) +0:? 'd5' ( uniform float) +0:? 'd6' ( uniform float) +0:? 'd7' ( uniform float) +0:? 'd8' ( uniform float) +0:? 'd9' ( uniform float) +0:? 'd10' ( uniform float) +0:? 'd11' ( uniform float) +0:? 'd12' ( uniform float) +0:? 'd13' ( uniform float) +0:? 'd14' ( uniform float) +0:? 'd15' ( uniform float) +0:? 'd16' ( uniform float) +0:? 'd17' ( uniform float) +0:? 'd18' ( uniform float) +0:? 'd19' ( uniform float) +0:? 'd20' ( uniform float) +0:? 'd21' ( uniform float) +0:? 'd22' ( uniform float) +0:? 'd23' ( uniform float) +0:? 'd24' ( uniform float) +0:? 'd25' ( uniform float) +0:? 'd26' ( uniform float) +0:? 'd27' ( uniform float) +0:? 'd28' ( uniform float) +0:? 'd29' ( uniform float) +0:? 'd30' ( uniform float) +0:? 'd31' ( uniform float) +0:? 'd32' ( uniform float) +0:? 'd33' ( uniform float) +0:? 'd34' ( uniform float) +0:? 'Count' ( uniform int) + diff --git a/deps/glslang/glslang/Test/baseResults/loopsArtificial.frag.out b/deps/glslang/glslang/Test/baseResults/loopsArtificial.frag.out new file mode 100644 index 0000000000..0bb61c9a4b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/loopsArtificial.frag.out @@ -0,0 +1,433 @@ +loopsArtificial.frag +WARNING: 0:14: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:53 Function Definition: main( ( global void) +0:53 Function Parameters: +0:55 Sequence +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of float) +0:55 'color' ( temp 4-component vector of float) +0:55 'BaseColor' ( smooth in 4-component vector of float) +0:71 Loop with condition not tested first +0:71 Loop Condition +0:71 Compare Less Than ( temp bool) +0:71 direct index ( temp float) +0:71 'color' ( temp 4-component vector of float) +0:71 Constant: +0:71 2 (const int) +0:71 'd4' ( uniform float) +0:71 Loop Body +0:59 Sequence +0:59 add second child into first child ( temp 4-component vector of float) +0:59 'color' ( temp 4-component vector of float) +0:59 'bigColor4' ( uniform 4-component vector of float) +0:60 Test condition and select ( temp void) +0:60 Condition +0:60 Compare Less Than ( temp bool) +0:60 direct index ( temp float) +0:60 'color' ( temp 4-component vector of float) +0:60 Constant: +0:60 0 (const int) +0:60 'd4' ( uniform float) +0:60 true case +0:61 Sequence +0:61 add second child into first child ( temp float) +0:61 direct index ( temp float) +0:61 'color' ( temp 4-component vector of float) +0:61 Constant: +0:61 2 (const int) +0:61 Constant: +0:61 2.000000 +0:62 Test condition and select ( temp void) +0:62 Condition +0:62 Compare Less Than ( temp bool) +0:62 direct index ( temp float) +0:62 'color' ( temp 4-component vector of float) +0:62 Constant: +0:62 2 (const int) +0:62 'd4' ( uniform float) +0:62 true case +0:63 Sequence +0:63 Post-Increment ( temp float) +0:63 direct index ( temp float) +0:63 'color' ( temp 4-component vector of float) +0:63 Constant: +0:63 0 (const int) +0:64 Branch: Continue +0:67 Test condition and select ( temp void) +0:67 Condition +0:67 Compare Less Than ( temp bool) +0:67 direct index ( temp float) +0:67 'color' ( temp 4-component vector of float) +0:67 Constant: +0:67 1 (const int) +0:67 'd4' ( uniform float) +0:67 true case +0:68 add second child into first child ( temp float) +0:68 direct index ( temp float) +0:68 'color' ( temp 4-component vector of float) +0:68 Constant: +0:68 1 (const int) +0:68 'd4' ( uniform float) +0:67 false case +0:70 add second child into first child ( temp float) +0:70 direct index ( temp float) +0:70 'color' ( temp 4-component vector of float) +0:70 Constant: +0:70 0 (const int) +0:70 'd4' ( uniform float) +0:74 Loop with condition tested first +0:74 Loop Condition +0:74 Compare Less Than ( temp bool) +0:74 direct index ( temp float) +0:74 'color' ( temp 4-component vector of float) +0:74 Constant: +0:74 3 (const int) +0:74 'd13' ( uniform float) +0:74 Loop Body +0:75 Sequence +0:75 Test condition and select ( temp void) +0:75 Condition +0:75 Compare Less Than ( temp bool) +0:75 direct index ( temp float) +0:75 'color' ( temp 4-component vector of float) +0:75 Constant: +0:75 2 (const int) +0:75 'd13' ( uniform float) +0:75 true case +0:76 Post-Increment ( temp 4-component vector of float) +0:76 'color' ( temp 4-component vector of float) +0:75 false case +0:78 Post-Decrement ( temp 4-component vector of float) +0:78 'color' ( temp 4-component vector of float) +0:80 add second child into first child ( temp 4-component vector of float) +0:80 'color' ( temp 4-component vector of float) +0:80 'bigColor4' ( uniform 4-component vector of float) +0:81 Test condition and select ( temp void) +0:81 Condition +0:81 Compare Less Than ( temp bool) +0:81 direct index ( temp float) +0:81 'color' ( temp 4-component vector of float) +0:81 Constant: +0:81 0 (const int) +0:81 'd4' ( uniform float) +0:81 true case +0:82 Sequence +0:82 add second child into first child ( temp float) +0:82 direct index ( temp float) +0:82 'color' ( temp 4-component vector of float) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 2.000000 +0:83 Test condition and select ( temp void) +0:83 Condition +0:83 Compare Less Than ( temp bool) +0:83 direct index ( temp float) +0:83 'color' ( temp 4-component vector of float) +0:83 Constant: +0:83 2 (const int) +0:83 'd4' ( uniform float) +0:83 true case +0:84 Sequence +0:84 Post-Increment ( temp float) +0:84 direct index ( temp float) +0:84 'color' ( temp 4-component vector of float) +0:84 Constant: +0:84 0 (const int) +0:85 Branch: Continue +0:88 Test condition and select ( temp void) +0:88 Condition +0:88 Compare Less Than ( temp bool) +0:88 direct index ( temp float) +0:88 'color' ( temp 4-component vector of float) +0:88 Constant: +0:88 1 (const int) +0:88 'd4' ( uniform float) +0:88 true case +0:89 add second child into first child ( temp float) +0:89 direct index ( temp float) +0:89 'color' ( temp 4-component vector of float) +0:89 Constant: +0:89 1 (const int) +0:89 'd4' ( uniform float) +0:88 false case +0:91 add second child into first child ( temp float) +0:91 direct index ( temp float) +0:91 'color' ( temp 4-component vector of float) +0:91 Constant: +0:91 0 (const int) +0:91 'd4' ( uniform float) +0:94 Post-Increment ( temp 4-component vector of float) +0:94 'color' ( temp 4-component vector of float) +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:95 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'bigColor1_1' ( uniform 4-component vector of float) +0:? 'bigColor1_2' ( uniform 4-component vector of float) +0:? 'bigColor1_3' ( uniform 4-component vector of float) +0:? 'bigColor2' ( uniform 4-component vector of float) +0:? 'bigColor3' ( uniform 4-component vector of float) +0:? 'bigColor4' ( uniform 4-component vector of float) +0:? 'bigColor5' ( uniform 4-component vector of float) +0:? 'bigColor6' ( uniform 4-component vector of float) +0:? 'bigColor7' ( uniform 4-component vector of float) +0:? 'bigColor8' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'd2' ( uniform float) +0:? 'd3' ( uniform float) +0:? 'd4' ( uniform float) +0:? 'd5' ( uniform float) +0:? 'd6' ( uniform float) +0:? 'd7' ( uniform float) +0:? 'd8' ( uniform float) +0:? 'd9' ( uniform float) +0:? 'd10' ( uniform float) +0:? 'd11' ( uniform float) +0:? 'd12' ( uniform float) +0:? 'd13' ( uniform float) +0:? 'd14' ( uniform float) +0:? 'd15' ( uniform float) +0:? 'd16' ( uniform float) +0:? 'd17' ( uniform float) +0:? 'd18' ( uniform float) +0:? 'd19' ( uniform float) +0:? 'd20' ( uniform float) +0:? 'd21' ( uniform float) +0:? 'd22' ( uniform float) +0:? 'd23' ( uniform float) +0:? 'd24' ( uniform float) +0:? 'd25' ( uniform float) +0:? 'd26' ( uniform float) +0:? 'd27' ( uniform float) +0:? 'd28' ( uniform float) +0:? 'd29' ( uniform float) +0:? 'd30' ( uniform float) +0:? 'd31' ( uniform float) +0:? 'd32' ( uniform float) +0:? 'd33' ( uniform float) +0:? 'd34' ( uniform float) +0:? 'Count' ( uniform int) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:53 Function Definition: main( ( global void) +0:53 Function Parameters: +0:55 Sequence +0:55 Sequence +0:55 move second child to first child ( temp 4-component vector of float) +0:55 'color' ( temp 4-component vector of float) +0:55 'BaseColor' ( smooth in 4-component vector of float) +0:71 Loop with condition not tested first +0:71 Loop Condition +0:71 Compare Less Than ( temp bool) +0:71 direct index ( temp float) +0:71 'color' ( temp 4-component vector of float) +0:71 Constant: +0:71 2 (const int) +0:71 'd4' ( uniform float) +0:71 Loop Body +0:59 Sequence +0:59 add second child into first child ( temp 4-component vector of float) +0:59 'color' ( temp 4-component vector of float) +0:59 'bigColor4' ( uniform 4-component vector of float) +0:60 Test condition and select ( temp void) +0:60 Condition +0:60 Compare Less Than ( temp bool) +0:60 direct index ( temp float) +0:60 'color' ( temp 4-component vector of float) +0:60 Constant: +0:60 0 (const int) +0:60 'd4' ( uniform float) +0:60 true case +0:61 Sequence +0:61 add second child into first child ( temp float) +0:61 direct index ( temp float) +0:61 'color' ( temp 4-component vector of float) +0:61 Constant: +0:61 2 (const int) +0:61 Constant: +0:61 2.000000 +0:62 Test condition and select ( temp void) +0:62 Condition +0:62 Compare Less Than ( temp bool) +0:62 direct index ( temp float) +0:62 'color' ( temp 4-component vector of float) +0:62 Constant: +0:62 2 (const int) +0:62 'd4' ( uniform float) +0:62 true case +0:63 Sequence +0:63 Post-Increment ( temp float) +0:63 direct index ( temp float) +0:63 'color' ( temp 4-component vector of float) +0:63 Constant: +0:63 0 (const int) +0:64 Branch: Continue +0:67 Test condition and select ( temp void) +0:67 Condition +0:67 Compare Less Than ( temp bool) +0:67 direct index ( temp float) +0:67 'color' ( temp 4-component vector of float) +0:67 Constant: +0:67 1 (const int) +0:67 'd4' ( uniform float) +0:67 true case +0:68 add second child into first child ( temp float) +0:68 direct index ( temp float) +0:68 'color' ( temp 4-component vector of float) +0:68 Constant: +0:68 1 (const int) +0:68 'd4' ( uniform float) +0:67 false case +0:70 add second child into first child ( temp float) +0:70 direct index ( temp float) +0:70 'color' ( temp 4-component vector of float) +0:70 Constant: +0:70 0 (const int) +0:70 'd4' ( uniform float) +0:74 Loop with condition tested first +0:74 Loop Condition +0:74 Compare Less Than ( temp bool) +0:74 direct index ( temp float) +0:74 'color' ( temp 4-component vector of float) +0:74 Constant: +0:74 3 (const int) +0:74 'd13' ( uniform float) +0:74 Loop Body +0:75 Sequence +0:75 Test condition and select ( temp void) +0:75 Condition +0:75 Compare Less Than ( temp bool) +0:75 direct index ( temp float) +0:75 'color' ( temp 4-component vector of float) +0:75 Constant: +0:75 2 (const int) +0:75 'd13' ( uniform float) +0:75 true case +0:76 Post-Increment ( temp 4-component vector of float) +0:76 'color' ( temp 4-component vector of float) +0:75 false case +0:78 Post-Decrement ( temp 4-component vector of float) +0:78 'color' ( temp 4-component vector of float) +0:80 add second child into first child ( temp 4-component vector of float) +0:80 'color' ( temp 4-component vector of float) +0:80 'bigColor4' ( uniform 4-component vector of float) +0:81 Test condition and select ( temp void) +0:81 Condition +0:81 Compare Less Than ( temp bool) +0:81 direct index ( temp float) +0:81 'color' ( temp 4-component vector of float) +0:81 Constant: +0:81 0 (const int) +0:81 'd4' ( uniform float) +0:81 true case +0:82 Sequence +0:82 add second child into first child ( temp float) +0:82 direct index ( temp float) +0:82 'color' ( temp 4-component vector of float) +0:82 Constant: +0:82 2 (const int) +0:82 Constant: +0:82 2.000000 +0:83 Test condition and select ( temp void) +0:83 Condition +0:83 Compare Less Than ( temp bool) +0:83 direct index ( temp float) +0:83 'color' ( temp 4-component vector of float) +0:83 Constant: +0:83 2 (const int) +0:83 'd4' ( uniform float) +0:83 true case +0:84 Sequence +0:84 Post-Increment ( temp float) +0:84 direct index ( temp float) +0:84 'color' ( temp 4-component vector of float) +0:84 Constant: +0:84 0 (const int) +0:85 Branch: Continue +0:88 Test condition and select ( temp void) +0:88 Condition +0:88 Compare Less Than ( temp bool) +0:88 direct index ( temp float) +0:88 'color' ( temp 4-component vector of float) +0:88 Constant: +0:88 1 (const int) +0:88 'd4' ( uniform float) +0:88 true case +0:89 add second child into first child ( temp float) +0:89 direct index ( temp float) +0:89 'color' ( temp 4-component vector of float) +0:89 Constant: +0:89 1 (const int) +0:89 'd4' ( uniform float) +0:88 false case +0:91 add second child into first child ( temp float) +0:91 direct index ( temp float) +0:91 'color' ( temp 4-component vector of float) +0:91 Constant: +0:91 0 (const int) +0:91 'd4' ( uniform float) +0:94 Post-Increment ( temp 4-component vector of float) +0:94 'color' ( temp 4-component vector of float) +0:95 move second child to first child ( temp 4-component vector of float) +0:95 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:95 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'bigColor1_1' ( uniform 4-component vector of float) +0:? 'bigColor1_2' ( uniform 4-component vector of float) +0:? 'bigColor1_3' ( uniform 4-component vector of float) +0:? 'bigColor2' ( uniform 4-component vector of float) +0:? 'bigColor3' ( uniform 4-component vector of float) +0:? 'bigColor4' ( uniform 4-component vector of float) +0:? 'bigColor5' ( uniform 4-component vector of float) +0:? 'bigColor6' ( uniform 4-component vector of float) +0:? 'bigColor7' ( uniform 4-component vector of float) +0:? 'bigColor8' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'd2' ( uniform float) +0:? 'd3' ( uniform float) +0:? 'd4' ( uniform float) +0:? 'd5' ( uniform float) +0:? 'd6' ( uniform float) +0:? 'd7' ( uniform float) +0:? 'd8' ( uniform float) +0:? 'd9' ( uniform float) +0:? 'd10' ( uniform float) +0:? 'd11' ( uniform float) +0:? 'd12' ( uniform float) +0:? 'd13' ( uniform float) +0:? 'd14' ( uniform float) +0:? 'd15' ( uniform float) +0:? 'd16' ( uniform float) +0:? 'd17' ( uniform float) +0:? 'd18' ( uniform float) +0:? 'd19' ( uniform float) +0:? 'd20' ( uniform float) +0:? 'd21' ( uniform float) +0:? 'd22' ( uniform float) +0:? 'd23' ( uniform float) +0:? 'd24' ( uniform float) +0:? 'd25' ( uniform float) +0:? 'd26' ( uniform float) +0:? 'd27' ( uniform float) +0:? 'd28' ( uniform float) +0:? 'd29' ( uniform float) +0:? 'd30' ( uniform float) +0:? 'd31' ( uniform float) +0:? 'd32' ( uniform float) +0:? 'd33' ( uniform float) +0:? 'd34' ( uniform float) +0:? 'Count' ( uniform int) + diff --git a/deps/glslang/glslang/Test/baseResults/mains1.frag.out b/deps/glslang/glslang/Test/baseResults/mains1.frag.out new file mode 100644 index 0000000000..3b318b6260 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/mains1.frag.out @@ -0,0 +1,69 @@ +mains1.frag +Shader version: 110 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + +mains2.frag +Shader version: 110 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + +noMain1.geom +ERROR: #version: geometry shaders require es profile with version 310 or non-es profile with version 150 or above +ERROR: 1 compilation errors. No code generated. + + +Shader version: 150 +invocations = -1 +max_vertices = -1 +input primitive = none +output primitive = points +ERROR: node is still EOpNull! +0:3 Function Definition: foo( ( global void) +0:3 Function Parameters: +0:? Linker Objects + +noMain2.geom +Shader version: 150 +invocations = -1 +max_vertices = -1 +input primitive = none +output primitive = line_strip +0:? Sequence +0:3 Function Definition: bar( ( global void) +0:3 Function Parameters: +0:? Linker Objects + + +Linked geometry stage: + +ERROR: Linking geometry stage: Contradictory output layout primitives +ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point +ERROR: Linking geometry stage: At least one shader must specify an input layout primitive +ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) + +Linked fragment stage: + +ERROR: Linking fragment stage: can't handle multiple entry points per stage +ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( + +Shader version: 150 +invocations = 1 +max_vertices = -1 +input primitive = none +output primitive = points +ERROR: node is still EOpNull! +0:? Linker Objects +Shader version: 110 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/matrix.frag.out b/deps/glslang/glslang/Test/baseResults/matrix.frag.out new file mode 100644 index 0000000000..f3bea4b226 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/matrix.frag.out @@ -0,0 +1,507 @@ +matrix.frag +WARNING: 0:6: varying deprecated in version 130; may be removed in future release +WARNING: 0:17: varying deprecated in version 130; may be removed in future release +WARNING: 0:22: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 direct index ( temp 4-component vector of float) +0:27 'un34' ( uniform 4X4 matrix of float) +0:27 Constant: +0:27 1 (const int) +0:28 add second child into first child ( temp 4-component vector of float) +0:28 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:28 Construct vec4 ( temp 4-component vector of float) +0:28 vector-times-matrix ( temp 3-component vector of float) +0:28 'Color' ( smooth in 3-component vector of float) +0:28 'colorTransform' ( uniform 3X3 matrix of float) +0:28 Constant: +0:28 1.000000 +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Compare Not Equal ( temp bool) +0:30 'm' ( uniform 4X4 matrix of float) +0:30 'n' ( uniform 4X4 matrix of float) +0:30 true case +0:31 add second child into first child ( temp 4-component vector of float) +0:31 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:31 'v' ( smooth in 4-component vector of float) +0:30 false case +0:33 Sequence +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:33 matrix-times-vector ( temp 4-component vector of float) +0:33 'm' ( uniform 4X4 matrix of float) +0:33 'v' ( smooth in 4-component vector of float) +0:34 add second child into first child ( temp 4-component vector of float) +0:34 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:34 vector-times-matrix ( temp 4-component vector of float) +0:34 'v' ( smooth in 4-component vector of float) +0:34 subtract ( temp 4X4 matrix of float) +0:34 'm' ( uniform 4X4 matrix of float) +0:34 'n' ( uniform 4X4 matrix of float) +0:42 Sequence +0:42 move second child to first child ( temp 4X4 matrix of float) +0:42 'm34' ( temp 4X4 matrix of float) +0:45 Construct mat4 ( temp 4X4 matrix of float) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 1 (const int) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 2 (const int) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 3 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 0 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 2 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 3 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 0 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 1 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 3 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 0 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 2 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:46 add second child into first child ( temp 4X4 matrix of float) +0:46 'm34' ( temp 4X4 matrix of float) +0:46 Construct mat4 ( temp 4X4 matrix of float) +0:46 direct index ( temp float) +0:46 'v' ( smooth in 4-component vector of float) +0:46 Constant: +0:46 0 (const int) +0:47 add second child into first child ( temp 4X4 matrix of float) +0:47 'm34' ( temp 4X4 matrix of float) +0:47 Construct mat4 ( temp 4X4 matrix of float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:47 'u' ( smooth in 4-component vector of float) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:47 'u' ( smooth in 4-component vector of float) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:51 Test condition and select ( temp void) +0:51 Condition +0:51 Compare Equal ( temp bool) +0:51 'm34' ( temp 4X4 matrix of float) +0:51 'un34' ( uniform 4X4 matrix of float) +0:51 true case +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:52 matrix-times-vector ( temp 4-component vector of float) +0:52 'm34' ( temp 4X4 matrix of float) +0:52 'u' ( smooth in 4-component vector of float) +0:51 false case +0:54 add second child into first child ( temp 4-component vector of float) +0:54 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:54 matrix-times-vector ( temp 4-component vector of float) +0:54 matrix-multiply ( temp 4X4 matrix of float) +0:54 'un34' ( uniform 4X4 matrix of float) +0:54 'um43' ( uniform 4X4 matrix of float) +0:54 'v' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'colorTransform' ( uniform 3X3 matrix of float) +0:? 'Color' ( smooth in 3-component vector of float) +0:? 'm' ( uniform 4X4 matrix of float) +0:? 'n' ( uniform 4X4 matrix of float) +0:? 'um43' ( uniform 4X4 matrix of float) +0:? 'un34' ( uniform 4X4 matrix of float) +0:? 'v' ( smooth in 4-component vector of float) +0:? 'u' ( smooth in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 move second child to first child ( temp 4-component vector of float) +0:27 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:27 Construct vec4 ( temp 4-component vector of float) +0:27 direct index ( temp 4-component vector of float) +0:27 'un34' ( uniform 4X4 matrix of float) +0:27 Constant: +0:27 1 (const int) +0:28 add second child into first child ( temp 4-component vector of float) +0:28 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:28 Construct vec4 ( temp 4-component vector of float) +0:28 vector-times-matrix ( temp 3-component vector of float) +0:28 'Color' ( smooth in 3-component vector of float) +0:28 'colorTransform' ( uniform 3X3 matrix of float) +0:28 Constant: +0:28 1.000000 +0:30 Test condition and select ( temp void) +0:30 Condition +0:30 Compare Not Equal ( temp bool) +0:30 'm' ( uniform 4X4 matrix of float) +0:30 'n' ( uniform 4X4 matrix of float) +0:30 true case +0:31 add second child into first child ( temp 4-component vector of float) +0:31 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:31 'v' ( smooth in 4-component vector of float) +0:30 false case +0:33 Sequence +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:33 matrix-times-vector ( temp 4-component vector of float) +0:33 'm' ( uniform 4X4 matrix of float) +0:33 'v' ( smooth in 4-component vector of float) +0:34 add second child into first child ( temp 4-component vector of float) +0:34 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:34 vector-times-matrix ( temp 4-component vector of float) +0:34 'v' ( smooth in 4-component vector of float) +0:34 subtract ( temp 4X4 matrix of float) +0:34 'm' ( uniform 4X4 matrix of float) +0:34 'n' ( uniform 4X4 matrix of float) +0:42 Sequence +0:42 move second child to first child ( temp 4X4 matrix of float) +0:42 'm34' ( temp 4X4 matrix of float) +0:45 Construct mat4 ( temp 4X4 matrix of float) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 1 (const int) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 2 (const int) +0:42 component-wise multiply ( temp float) +0:42 direct index ( temp float) +0:42 'v' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 'u' ( smooth in 4-component vector of float) +0:42 Constant: +0:42 3 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 0 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 2 (const int) +0:43 component-wise multiply ( temp float) +0:43 direct index ( temp float) +0:43 'v' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:43 direct index ( temp float) +0:43 'u' ( smooth in 4-component vector of float) +0:43 Constant: +0:43 3 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 0 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 1 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 component-wise multiply ( temp float) +0:44 direct index ( temp float) +0:44 'v' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 2 (const int) +0:44 direct index ( temp float) +0:44 'u' ( smooth in 4-component vector of float) +0:44 Constant: +0:44 3 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 0 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 2 (const int) +0:45 component-wise multiply ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:45 direct index ( temp float) +0:45 'u' ( smooth in 4-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:46 add second child into first child ( temp 4X4 matrix of float) +0:46 'm34' ( temp 4X4 matrix of float) +0:46 Construct mat4 ( temp 4X4 matrix of float) +0:46 direct index ( temp float) +0:46 'v' ( smooth in 4-component vector of float) +0:46 Constant: +0:46 0 (const int) +0:47 add second child into first child ( temp 4X4 matrix of float) +0:47 'm34' ( temp 4X4 matrix of float) +0:47 Construct mat4 ( temp 4X4 matrix of float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:47 'u' ( smooth in 4-component vector of float) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:47 'u' ( smooth in 4-component vector of float) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:47 direct index ( temp float) +0:47 'u' ( smooth in 4-component vector of float) +0:47 Constant: +0:47 0 (const int) +0:51 Test condition and select ( temp void) +0:51 Condition +0:51 Compare Equal ( temp bool) +0:51 'm34' ( temp 4X4 matrix of float) +0:51 'un34' ( uniform 4X4 matrix of float) +0:51 true case +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:52 matrix-times-vector ( temp 4-component vector of float) +0:52 'm34' ( temp 4X4 matrix of float) +0:52 'u' ( smooth in 4-component vector of float) +0:51 false case +0:54 add second child into first child ( temp 4-component vector of float) +0:54 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:54 matrix-times-vector ( temp 4-component vector of float) +0:54 matrix-multiply ( temp 4X4 matrix of float) +0:54 'un34' ( uniform 4X4 matrix of float) +0:54 'um43' ( uniform 4X4 matrix of float) +0:54 'v' ( smooth in 4-component vector of float) +0:? Linker Objects +0:? 'colorTransform' ( uniform 3X3 matrix of float) +0:? 'Color' ( smooth in 3-component vector of float) +0:? 'm' ( uniform 4X4 matrix of float) +0:? 'n' ( uniform 4X4 matrix of float) +0:? 'um43' ( uniform 4X4 matrix of float) +0:? 'un34' ( uniform 4X4 matrix of float) +0:? 'v' ( smooth in 4-component vector of float) +0:? 'u' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/matrix2.frag.out b/deps/glslang/glslang/Test/baseResults/matrix2.frag.out new file mode 100644 index 0000000000..3e3b3f06a3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/matrix2.frag.out @@ -0,0 +1,353 @@ +matrix2.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:13: varying deprecated in version 130; may be removed in future release +WARNING: 0:15: varying deprecated in version 130; may be removed in future release + +Shader version: 150 +0:? Sequence +0:19 Function Definition: main( ( global void) +0:19 Function Parameters: +0:21 Sequence +0:21 Sequence +0:21 move second child to first child ( temp 3X4 matrix of float) +0:21 'm34' ( temp 3X4 matrix of float) +0:21 outer product ( global 3X4 matrix of float) +0:21 'v' ( smooth in 4-component vector of float) +0:21 'u' ( smooth in 3-component vector of float) +0:23 add second child into first child ( temp 3X4 matrix of float) +0:23 'm34' ( temp 3X4 matrix of float) +0:23 Constant: +0:23 4.300000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 4.300000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 4.300000 +0:23 0.000000 +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'FragColor' ( out 4-component vector of float) +0:25 Construct vec4 ( temp 4-component vector of float) +0:25 'Color' ( smooth in 3-component vector of float) +0:25 Constant: +0:25 1.000000 +0:26 multiply second child into first child ( temp 4-component vector of float) +0:26 'FragColor' ( out 4-component vector of float) +0:26 Construct vec4 ( temp 4-component vector of float) +0:26 vector-times-matrix ( temp 3-component vector of float) +0:26 'FragColor' ( out 4-component vector of float) +0:26 'm34' ( temp 3X4 matrix of float) +0:26 Constant: +0:26 1.000000 +0:28 matrix scale second child into first child ( temp 3X4 matrix of float) +0:28 'm34' ( temp 3X4 matrix of float) +0:28 direct index ( temp float) +0:28 'v' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 0 (const int) +0:30 Sequence +0:30 move second child to first child ( temp 4X4 matrix of float) +0:30 'm44' ( temp 4X4 matrix of float) +0:30 Construct mat4 ( temp 4X4 matrix of float) +0:30 'un34' ( uniform 3X4 matrix of float) +0:32 add second child into first child ( temp 4X4 matrix of float) +0:32 'm44' ( temp 4X4 matrix of float) +0:32 matrix-multiply ( temp 4X4 matrix of float) +0:32 'm34' ( temp 3X4 matrix of float) +0:32 'um43' ( uniform 4X3 matrix of float) +0:34 add second child into first child ( temp 4-component vector of float) +0:34 'FragColor' ( out 4-component vector of float) +0:34 matrix-times-vector ( temp 4-component vector of float) +0:34 Negate value ( temp 4X4 matrix of float) +0:34 'm44' ( temp 4X4 matrix of float) +0:34 'v' ( smooth in 4-component vector of float) +0:36 matrix mult second child into first child ( temp 4-component vector of float) +0:36 'FragColor' ( out 4-component vector of float) +0:36 component-wise multiply ( global 4X4 matrix of float) +0:36 'm44' ( temp 4X4 matrix of float) +0:36 'm44' ( temp 4X4 matrix of float) +0:38 move second child to first child ( temp 3X4 matrix of float) +0:38 'm34' ( temp 3X4 matrix of float) +0:38 transpose ( global 3X4 matrix of float) +0:38 'um43' ( uniform 4X3 matrix of float) +0:39 multiply second child into first child ( temp 4-component vector of float) +0:39 'FragColor' ( out 4-component vector of float) +0:39 Construct vec4 ( temp 4-component vector of float) +0:39 vector-times-matrix ( temp 3-component vector of float) +0:39 'FragColor' ( out 4-component vector of float) +0:39 'm34' ( temp 3X4 matrix of float) +0:39 Constant: +0:39 1.000000 +0:40 multiply second child into first child ( temp 4-component vector of float) +0:40 'FragColor' ( out 4-component vector of float) +0:40 Construct vec4 ( temp 4-component vector of float) +0:40 determinant ( global float) +0:40 'um4' ( uniform 4X4 matrix of float) +0:41 Sequence +0:41 move second child to first child ( temp 2X2 matrix of float) +0:41 'inv' ( temp 2X2 matrix of float) +0:41 inverse ( global 2X2 matrix of float) +0:41 'um2' ( uniform 2X2 matrix of float) +0:42 multiply second child into first child ( temp 4-component vector of float) +0:42 'FragColor' ( out 4-component vector of float) +0:42 Construct vec4 ( temp 4-component vector of float) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 1 (const int) +0:43 Sequence +0:43 move second child to first child ( temp 3X3 matrix of float) +0:43 'inv3' ( temp 3X3 matrix of float) +0:43 inverse ( global 3X3 matrix of float) +0:43 'um3' ( uniform 3X3 matrix of float) +0:44 multiply second child into first child ( temp 4-component vector of float) +0:44 'FragColor' ( out 4-component vector of float) +0:44 Construct vec4 ( temp 4-component vector of float) +0:44 direct index ( temp float) +0:44 direct index ( temp 3-component vector of float) +0:44 'inv3' ( temp 3X3 matrix of float) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 1 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4X4 matrix of float) +0:46 'inv4' ( temp 4X4 matrix of float) +0:46 inverse ( global 4X4 matrix of float) +0:46 'um4' ( uniform 4X4 matrix of float) +0:47 matrix mult second child into first child ( temp 4-component vector of float) +0:47 'FragColor' ( out 4-component vector of float) +0:47 'inv4' ( temp 4X4 matrix of float) +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'FragColor' ( out 4-component vector of float) +0:49 Construct vec4 ( temp 4-component vector of float) +0:49 vector-times-matrix ( temp 3-component vector of float) +0:49 'FragColor' ( out 4-component vector of float) +0:49 component-wise multiply ( global 3X4 matrix of float) +0:49 'un34' ( uniform 3X4 matrix of float) +0:49 'un34' ( uniform 3X4 matrix of float) +0:49 direct index ( temp float) +0:49 'FragColor' ( out 4-component vector of float) +0:49 Constant: +0:49 3 (const int) +0:50 matrix mult second child into first child ( temp 3X4 matrix of float) +0:50 'm34' ( temp 3X4 matrix of float) +0:50 'colorTransform' ( uniform 3X3 matrix of float) +0:? Linker Objects +0:? 'colorTransform' ( uniform 3X3 matrix of float) +0:? 'Color' ( smooth in 3-component vector of float) +0:? 'm' ( uniform 4X4 matrix of float) +0:? 'n' ( uniform 4X4 matrix of float) +0:? 'um43' ( uniform 4X3 matrix of float) +0:? 'un34' ( uniform 3X4 matrix of float) +0:? 'um2' ( uniform 2X2 matrix of float) +0:? 'um3' ( uniform 3X3 matrix of float) +0:? 'um4' ( uniform 4X4 matrix of float) +0:? 'v' ( smooth in 4-component vector of float) +0:? 'u' ( smooth in 3-component vector of float) +0:? 'FragColor' ( out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 150 +0:? Sequence +0:19 Function Definition: main( ( global void) +0:19 Function Parameters: +0:21 Sequence +0:21 Sequence +0:21 move second child to first child ( temp 3X4 matrix of float) +0:21 'm34' ( temp 3X4 matrix of float) +0:21 outer product ( global 3X4 matrix of float) +0:21 'v' ( smooth in 4-component vector of float) +0:21 'u' ( smooth in 3-component vector of float) +0:23 add second child into first child ( temp 3X4 matrix of float) +0:23 'm34' ( temp 3X4 matrix of float) +0:23 Constant: +0:23 4.300000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 4.300000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 4.300000 +0:23 0.000000 +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'FragColor' ( out 4-component vector of float) +0:25 Construct vec4 ( temp 4-component vector of float) +0:25 'Color' ( smooth in 3-component vector of float) +0:25 Constant: +0:25 1.000000 +0:26 multiply second child into first child ( temp 4-component vector of float) +0:26 'FragColor' ( out 4-component vector of float) +0:26 Construct vec4 ( temp 4-component vector of float) +0:26 vector-times-matrix ( temp 3-component vector of float) +0:26 'FragColor' ( out 4-component vector of float) +0:26 'm34' ( temp 3X4 matrix of float) +0:26 Constant: +0:26 1.000000 +0:28 matrix scale second child into first child ( temp 3X4 matrix of float) +0:28 'm34' ( temp 3X4 matrix of float) +0:28 direct index ( temp float) +0:28 'v' ( smooth in 4-component vector of float) +0:28 Constant: +0:28 0 (const int) +0:30 Sequence +0:30 move second child to first child ( temp 4X4 matrix of float) +0:30 'm44' ( temp 4X4 matrix of float) +0:30 Construct mat4 ( temp 4X4 matrix of float) +0:30 'un34' ( uniform 3X4 matrix of float) +0:32 add second child into first child ( temp 4X4 matrix of float) +0:32 'm44' ( temp 4X4 matrix of float) +0:32 matrix-multiply ( temp 4X4 matrix of float) +0:32 'm34' ( temp 3X4 matrix of float) +0:32 'um43' ( uniform 4X3 matrix of float) +0:34 add second child into first child ( temp 4-component vector of float) +0:34 'FragColor' ( out 4-component vector of float) +0:34 matrix-times-vector ( temp 4-component vector of float) +0:34 Negate value ( temp 4X4 matrix of float) +0:34 'm44' ( temp 4X4 matrix of float) +0:34 'v' ( smooth in 4-component vector of float) +0:36 matrix mult second child into first child ( temp 4-component vector of float) +0:36 'FragColor' ( out 4-component vector of float) +0:36 component-wise multiply ( global 4X4 matrix of float) +0:36 'm44' ( temp 4X4 matrix of float) +0:36 'm44' ( temp 4X4 matrix of float) +0:38 move second child to first child ( temp 3X4 matrix of float) +0:38 'm34' ( temp 3X4 matrix of float) +0:38 transpose ( global 3X4 matrix of float) +0:38 'um43' ( uniform 4X3 matrix of float) +0:39 multiply second child into first child ( temp 4-component vector of float) +0:39 'FragColor' ( out 4-component vector of float) +0:39 Construct vec4 ( temp 4-component vector of float) +0:39 vector-times-matrix ( temp 3-component vector of float) +0:39 'FragColor' ( out 4-component vector of float) +0:39 'm34' ( temp 3X4 matrix of float) +0:39 Constant: +0:39 1.000000 +0:40 multiply second child into first child ( temp 4-component vector of float) +0:40 'FragColor' ( out 4-component vector of float) +0:40 Construct vec4 ( temp 4-component vector of float) +0:40 determinant ( global float) +0:40 'um4' ( uniform 4X4 matrix of float) +0:41 Sequence +0:41 move second child to first child ( temp 2X2 matrix of float) +0:41 'inv' ( temp 2X2 matrix of float) +0:41 inverse ( global 2X2 matrix of float) +0:41 'um2' ( uniform 2X2 matrix of float) +0:42 multiply second child into first child ( temp 4-component vector of float) +0:42 'FragColor' ( out 4-component vector of float) +0:42 Construct vec4 ( temp 4-component vector of float) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 0 (const int) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 0 (const int) +0:42 Constant: +0:42 1 (const int) +0:42 direct index ( temp float) +0:42 direct index ( temp 2-component vector of float) +0:42 'inv' ( temp 2X2 matrix of float) +0:42 Constant: +0:42 1 (const int) +0:42 Constant: +0:42 1 (const int) +0:43 Sequence +0:43 move second child to first child ( temp 3X3 matrix of float) +0:43 'inv3' ( temp 3X3 matrix of float) +0:43 inverse ( global 3X3 matrix of float) +0:43 'um3' ( uniform 3X3 matrix of float) +0:44 multiply second child into first child ( temp 4-component vector of float) +0:44 'FragColor' ( out 4-component vector of float) +0:44 Construct vec4 ( temp 4-component vector of float) +0:44 direct index ( temp float) +0:44 direct index ( temp 3-component vector of float) +0:44 'inv3' ( temp 3X3 matrix of float) +0:44 Constant: +0:44 2 (const int) +0:44 Constant: +0:44 1 (const int) +0:46 Sequence +0:46 move second child to first child ( temp 4X4 matrix of float) +0:46 'inv4' ( temp 4X4 matrix of float) +0:46 inverse ( global 4X4 matrix of float) +0:46 'um4' ( uniform 4X4 matrix of float) +0:47 matrix mult second child into first child ( temp 4-component vector of float) +0:47 'FragColor' ( out 4-component vector of float) +0:47 'inv4' ( temp 4X4 matrix of float) +0:49 move second child to first child ( temp 4-component vector of float) +0:49 'FragColor' ( out 4-component vector of float) +0:49 Construct vec4 ( temp 4-component vector of float) +0:49 vector-times-matrix ( temp 3-component vector of float) +0:49 'FragColor' ( out 4-component vector of float) +0:49 component-wise multiply ( global 3X4 matrix of float) +0:49 'un34' ( uniform 3X4 matrix of float) +0:49 'un34' ( uniform 3X4 matrix of float) +0:49 direct index ( temp float) +0:49 'FragColor' ( out 4-component vector of float) +0:49 Constant: +0:49 3 (const int) +0:50 matrix mult second child into first child ( temp 3X4 matrix of float) +0:50 'm34' ( temp 3X4 matrix of float) +0:50 'colorTransform' ( uniform 3X3 matrix of float) +0:? Linker Objects +0:? 'colorTransform' ( uniform 3X3 matrix of float) +0:? 'Color' ( smooth in 3-component vector of float) +0:? 'm' ( uniform 4X4 matrix of float) +0:? 'n' ( uniform 4X4 matrix of float) +0:? 'um43' ( uniform 4X3 matrix of float) +0:? 'un34' ( uniform 3X4 matrix of float) +0:? 'um2' ( uniform 2X2 matrix of float) +0:? 'um3' ( uniform 3X3 matrix of float) +0:? 'um4' ( uniform 4X4 matrix of float) +0:? 'v' ( smooth in 4-component vector of float) +0:? 'u' ( smooth in 3-component vector of float) +0:? 'FragColor' ( out 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/matrixError.vert.out b/deps/glslang/glslang/Test/baseResults/matrixError.vert.out new file mode 100644 index 0000000000..0a0d1e4022 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/matrixError.vert.out @@ -0,0 +1,77 @@ +matrixError.vert +ERROR: 0:10: 'constructor' : too many arguments +ERROR: 0:7: 'const' : non-matching or non-convertible constant type for const initializer +ERROR: 0:17: 'assign' : cannot convert from ' temp 2-component vector of float' to ' temp 3-component vector of float' +ERROR: 0:18: 'assign' : cannot convert from ' temp 2-component vector of float' to ' temp 3-component vector of float' +ERROR: 0:19: 'xy' : does not apply to this type: temp 2X3 matrix of float +ERROR: 0:21: '[' : matrix index out of range '2' +ERROR: 0:21: '[' : vector index out of range '4' +ERROR: 0:22: 'assign' : cannot convert from ' temp 2X3 matrix of float' to ' temp 2X3 matrix of float' +ERROR: 0:23: 'assign' : cannot convert from ' uniform 3X2 matrix of float' to ' temp 2X3 matrix of float' +ERROR: 9 compilation errors. No code generated. + + +Shader version: 120 +ERROR: node is still EOpNull! +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:? Sequence +0:17 'a' ( temp 3-component vector of float) +0:18 'b' ( temp 3-component vector of float) +0:19 'm23' ( temp 2X3 matrix of float) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 'gl_Position' ( gl_Position 4-component vector of float Position) +0:21 Construct vec4 ( temp 4-component vector of float) +0:21 matrix-times-vector ( temp 3-component vector of float) +0:21 matrix-multiply ( temp 3X3 matrix of float) +0:21 'm23' ( temp 2X3 matrix of float) +0:21 'm32' ( uniform 3X2 matrix of float) +0:21 'v3' ( in 3-component vector of float) +0:21 direct index ( temp float) +0:21 direct index ( temp 4-component vector of float) +0:21 'm24' ( temp 2X4 matrix of float) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 4 (const int) +0:22 'm23' ( temp 2X3 matrix of float) +0:23 'm23' ( temp 2X3 matrix of float) +0:? Linker Objects +0:? 'v3' ( in 3-component vector of float) +0:? 'm32' ( uniform 3X2 matrix of float) +0:? 'm24' ( temp 2X4 matrix of float) + + +Linked vertex stage: + + +Shader version: 120 +ERROR: node is still EOpNull! +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:? Sequence +0:17 'a' ( temp 3-component vector of float) +0:18 'b' ( temp 3-component vector of float) +0:19 'm23' ( temp 2X3 matrix of float) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 'gl_Position' ( gl_Position 4-component vector of float Position) +0:21 Construct vec4 ( temp 4-component vector of float) +0:21 matrix-times-vector ( temp 3-component vector of float) +0:21 matrix-multiply ( temp 3X3 matrix of float) +0:21 'm23' ( temp 2X3 matrix of float) +0:21 'm32' ( uniform 3X2 matrix of float) +0:21 'v3' ( in 3-component vector of float) +0:21 direct index ( temp float) +0:21 direct index ( temp 4-component vector of float) +0:21 'm24' ( temp 2X4 matrix of float) +0:21 Constant: +0:21 2 (const int) +0:21 Constant: +0:21 4 (const int) +0:22 'm23' ( temp 2X3 matrix of float) +0:23 'm23' ( temp 2X3 matrix of float) +0:? Linker Objects +0:? 'v3' ( in 3-component vector of float) +0:? 'm32' ( uniform 3X2 matrix of float) +0:? 'm24' ( temp 2X4 matrix of float) + diff --git a/deps/glslang/glslang/Test/baseResults/maxClipDistances.vert.out b/deps/glslang/glslang/Test/baseResults/maxClipDistances.vert.out new file mode 100644 index 0000000000..8086d52475 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/maxClipDistances.vert.out @@ -0,0 +1,21 @@ +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_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_VertexID' ( gl_VertexId int VertexId) + diff --git a/deps/glslang/glslang/Test/baseResults/max_vertices_0.geom.out b/deps/glslang/glslang/Test/baseResults/max_vertices_0.geom.out new file mode 100644 index 0000000000..d3bb4eee4b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/max_vertices_0.geom.out @@ -0,0 +1,35 @@ +max_vertices_0.geom +Shader version: 330 +invocations = -1 +max_vertices = 0 +input primitive = points +output primitive = triangle_strip +0:? Sequence +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 EndPrimitive ( global void) +0:11 EndPrimitive ( global void) +0:? Linker Objects +0:? 'v_geom_FragColor' ( in 1-element array of 4-component vector of float) +0:? 'v_frag_FragColor' (layout( stream=0) out 4-component vector of float) + + +Linked geometry stage: + + +Shader version: 330 +invocations = 1 +max_vertices = 0 +input primitive = points +output primitive = triangle_strip +0:? Sequence +0:8 Function Definition: main( ( global void) +0:8 Function Parameters: +0:10 Sequence +0:10 EndPrimitive ( global void) +0:11 EndPrimitive ( global void) +0:? Linker Objects +0:? 'v_geom_FragColor' ( in 1-element array of 4-component vector of float) +0:? 'v_frag_FragColor' (layout( stream=0) out 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/missingBodies.vert.out b/deps/glslang/glslang/Test/baseResults/missingBodies.vert.out new file mode 100644 index 0000000000..3a9a99f6c2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/missingBodies.vert.out @@ -0,0 +1,96 @@ +missingBodies.vert +Shader version: 450 +0:? Sequence +0:4 Function Definition: foo( ( global void) +0:4 Function Parameters: +0:4 Sequence +0:4 Function Call: bar( ( global void) +0:8 Function Definition: C(i1;i1; ( global void) +0:8 Function Parameters: +0:8 '' ( in int) +0:8 '' ( in int) +0:10 Function Definition: A( ( global void) +0:10 Function Parameters: +0:10 Sequence +0:10 Function Call: B( ( global void) +0:10 Function Call: C(i1; ( global void) +0:10 Constant: +0:10 1 (const int) +0:10 Function Call: C(b1; ( global void) +0:10 Constant: +0:10 true (const bool) +0:10 Function Call: C(i1;i1; ( global void) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 2 (const int) +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Function Call: foo( ( global void) +0:15 Function Call: C(b1; ( global void) +0:15 Constant: +0:15 true (const bool) +0:20 Sequence +0:20 move second child to first child ( temp int) +0:20 'f1' ( global int) +0:20 Function Call: ret1( ( global int) +0:22 Function Definition: ret2( ( global int) +0:22 Function Parameters: +0:22 Sequence +0:22 Branch: Return with expression +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'f2' ( global int) +0:24 Function Call: ret2( ( global int) +0:? Linker Objects +0:? 'f1' ( global int) +0:? 'f2' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + ret1( +ERROR: Linking vertex stage: No function definition (body) found: + C(b1; +ERROR: Linking vertex stage: No function definition (body) found: + bar( + +Shader version: 450 +0:? Sequence +0:4 Function Definition: foo( ( global void) +0:4 Function Parameters: +0:4 Sequence +0:4 Function Call: bar( ( global void) +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Function Call: foo( ( global void) +0:15 Function Call: C(b1; ( global void) +0:15 Constant: +0:15 true (const bool) +0:20 Sequence +0:20 move second child to first child ( temp int) +0:20 'f1' ( global int) +0:20 Function Call: ret1( ( global int) +0:22 Function Definition: ret2( ( global int) +0:22 Function Parameters: +0:22 Sequence +0:22 Branch: Return with expression +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 move second child to first child ( temp int) +0:24 'f2' ( global int) +0:24 Function Call: ret2( ( global int) +0:? Linker Objects +0:? 'f1' ( global int) +0:? 'f2' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/mixedArrayDecls.frag.out b/deps/glslang/glslang/Test/baseResults/mixedArrayDecls.frag.out new file mode 100644 index 0000000000..598b828120 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/mixedArrayDecls.frag.out @@ -0,0 +1,68 @@ +mixedArrayDecls.frag +ERROR: 0:30: '' : syntax error, unexpected LEFT_PAREN, expecting COMMA or SEMICOLON +ERROR: 1 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:16 Function Definition: foo(i1[14][15][6]; ( global 14-element array of 15-element array of 6-element array of int) +0:16 Function Parameters: +0:16 'p' ( in 14-element array of 15-element array of 6-element array of int) +0:16 Sequence +0:16 Branch: Return with expression +0:16 'p' ( in 14-element array of 15-element array of 6-element array of int) +0:18 Function Definition: main( ( global void) +0:18 Function Parameters: +0:20 Sequence +0:20 direct index ( temp 14-element array of int) +0:20 'g' ( global unsized 4-element array of 14-element array of int) +0:20 Constant: +0:20 3 (const int) +0:21 direct index ( temp 14-element array of int) +0:21 'h' ( global unsized 3-element array of 14-element array of int) +0:21 Constant: +0:21 2 (const int) +0:24 Function Definition: bar( ( global 4-element array of 3-element array of 2-element array of float) +0:24 Function Parameters: +0:? Sequence +0:24 Branch: Return with expression +0:24 'a' ( temp 4-element array of 3-element array of 2-element array of float) +0:? Linker Objects +0:? 's' ( global structure{ global 2-element array of 3-element array of int a, global 5-element array of 3-element array of int b}) +0:? 'c' ( global 4-element array of 5-element array of int) +0:? 'd' ( global 8-element array of 5-element array of int) +0:? 'e' ( global 11-element array of 9-element array of int) +0:? 'f' ( global 13-element array of 9-element array of int) +0:? 'g' ( global unsized 4-element array of 14-element array of int) +0:? 'h' ( global unsized 3-element array of 14-element array of int) +0:? 'inbinst' ( in 4-element array of 5-element array of 6-element array of block{ in 8-element array of 9-element array of 7-element array of float f}) +0:? 'barm' ( global 4-element array of 3-element array of 2-element array of float) + + +Linked fragment stage: + + +Shader version: 450 +ERROR: node is still EOpNull! +0:18 Function Definition: main( ( global void) +0:18 Function Parameters: +0:20 Sequence +0:20 direct index ( temp 14-element array of int) +0:20 'g' ( global 4-element array of 14-element array of int) +0:20 Constant: +0:20 3 (const int) +0:21 direct index ( temp 14-element array of int) +0:21 'h' ( global 3-element array of 14-element array of int) +0:21 Constant: +0:21 2 (const int) +0:? Linker Objects +0:? 's' ( global structure{ global 2-element array of 3-element array of int a, global 5-element array of 3-element array of int b}) +0:? 'c' ( global 4-element array of 5-element array of int) +0:? 'd' ( global 8-element array of 5-element array of int) +0:? 'e' ( global 11-element array of 9-element array of int) +0:? 'f' ( global 13-element array of 9-element array of int) +0:? 'g' ( global 4-element array of 14-element array of int) +0:? 'h' ( global 3-element array of 14-element array of int) +0:? 'inbinst' ( in 4-element array of 5-element array of 6-element array of block{ in 8-element array of 9-element array of 7-element array of float f}) +0:? 'barm' ( global 4-element array of 3-element array of 2-element array of float) + diff --git a/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out b/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out new file mode 100644 index 0000000000..0a5ba310fb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/negativeArraySize.comp.out @@ -0,0 +1,23 @@ +negativeArraySize.comp +ERROR: 0:9: '' : array size must be a positive integer +ERROR: 1 compilation errors. No code generated. + + +Shader version: 310 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects + + +Linked compute stage: + + +Shader version: 310 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/newTexture.frag.out b/deps/glslang/glslang/Test/baseResults/newTexture.frag.out new file mode 100644 index 0000000000..52921e8fc1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/newTexture.frag.out @@ -0,0 +1,521 @@ +newTexture.frag +Shader version: 430 +0:? Sequence +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:38 Sequence +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:38 texture ( global 4-component vector of float) +0:38 's2D' ( uniform sampler2D) +0:38 'c2D' ( smooth in 2-component vector of float) +0:39 add second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 textureProj ( global 4-component vector of float) +0:39 's3D' ( uniform sampler3D) +0:39 'c4D' ( smooth in 4-component vector of float) +0:40 add second child into first child ( temp 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:40 textureLod ( global 4-component vector of float) +0:40 's2DArray' ( uniform sampler2DArray) +0:40 'c3D' ( smooth in 3-component vector of float) +0:40 Constant: +0:40 1.200000 +0:41 add second child into first child ( temp float) +0:41 direct index ( temp float) +0:41 'v' ( temp 4-component vector of float) +0:41 Constant: +0:41 1 (const int) +0:41 textureOffset ( global float) +0:41 's2DShadow' ( uniform sampler2DShadow) +0:41 'c3D' ( smooth in 3-component vector of float) +0:41 Constant: +0:41 3 (const int) +0:41 3 (const int) +0:41 'c1D' ( smooth in float) +0:42 add second child into first child ( temp 4-component vector of float) +0:42 'v' ( temp 4-component vector of float) +0:42 textureFetch ( global 4-component vector of float) +0:42 's3D' ( uniform sampler3D) +0:42 'ic3D' ( flat in 3-component vector of int) +0:42 'ic1D' ( flat in int) +0:43 add second child into first child ( temp 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:43 textureFetchOffset ( global 4-component vector of float) +0:43 's2D' ( uniform sampler2D) +0:43 'ic2D' ( flat in 2-component vector of int) +0:43 Constant: +0:43 4 (const int) +0:43 Constant: +0:43 3 (const int) +0:43 3 (const int) +0:44 add second child into first child ( temp 4-component vector of float) +0:44 'v' ( temp 4-component vector of float) +0:44 textureFetchOffset ( global 4-component vector of float) +0:44 'sr' ( uniform sampler2DRect) +0:44 'ic2D' ( flat in 2-component vector of int) +0:44 Constant: +0:44 4 (const int) +0:44 4 (const int) +0:45 add second child into first child ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( temp 4-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:45 textureLodOffset ( global float) +0:45 's2DShadow' ( uniform sampler2DShadow) +0:45 'c3D' ( smooth in 3-component vector of float) +0:45 'c1D' ( smooth in float) +0:45 Constant: +0:45 3 (const int) +0:45 3 (const int) +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:46 textureProjLodOffset ( global 4-component vector of float) +0:46 's2D' ( uniform sampler2D) +0:46 'c3D' ( smooth in 3-component vector of float) +0:46 'c1D' ( smooth in float) +0:46 Constant: +0:46 3 (const int) +0:46 3 (const int) +0:47 add second child into first child ( temp 4-component vector of float) +0:47 'v' ( temp 4-component vector of float) +0:47 textureGrad ( global 4-component vector of float) +0:47 'sCube' ( uniform samplerCube) +0:47 'c3D' ( smooth in 3-component vector of float) +0:47 'c3D' ( smooth in 3-component vector of float) +0:47 'c3D' ( smooth in 3-component vector of float) +0:48 add second child into first child ( temp float) +0:48 direct index ( temp float) +0:48 'v' ( temp 4-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 textureGradOffset ( global float) +0:48 's2DArrayShadow' ( uniform sampler2DArrayShadow) +0:48 'c4D' ( smooth in 4-component vector of float) +0:48 'c2D' ( smooth in 2-component vector of float) +0:48 'c2D' ( smooth in 2-component vector of float) +0:48 Constant: +0:48 3 (const int) +0:48 3 (const int) +0:49 add second child into first child ( temp 4-component vector of float) +0:49 'v' ( temp 4-component vector of float) +0:49 textureProjGrad ( global 4-component vector of float) +0:49 's3D' ( uniform sampler3D) +0:49 'c4D' ( smooth in 4-component vector of float) +0:49 'c3D' ( smooth in 3-component vector of float) +0:49 'c3D' ( smooth in 3-component vector of float) +0:50 add second child into first child ( temp 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:50 textureProjGradOffset ( global 4-component vector of float) +0:50 's2D' ( uniform sampler2D) +0:50 'c3D' ( smooth in 3-component vector of float) +0:50 'c2D' ( smooth in 2-component vector of float) +0:50 'c2D' ( smooth in 2-component vector of float) +0:50 Constant: +0:50 3 (const int) +0:50 3 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'iv' ( temp 4-component vector of int) +0:52 texture ( global 4-component vector of int) +0:52 'is2D' ( uniform isampler2D) +0:52 'c2D' ( smooth in 2-component vector of float) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'v' ( temp 4-component vector of float) +0:53 Convert int to float ( temp 4-component vector of float) +0:53 'iv' ( temp 4-component vector of int) +0:54 move second child to first child ( temp 4-component vector of int) +0:54 'iv' ( temp 4-component vector of int) +0:54 textureProjOffset ( global 4-component vector of int) +0:54 'is2D' ( uniform isampler2D) +0:54 'c4D' ( smooth in 4-component vector of float) +0:54 Constant: +0:54 3 (const int) +0:54 3 (const int) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:55 Convert int to float ( temp 4-component vector of float) +0:55 'iv' ( temp 4-component vector of int) +0:56 move second child to first child ( temp 4-component vector of int) +0:56 'iv' ( temp 4-component vector of int) +0:56 textureProjLod ( global 4-component vector of int) +0:56 'is2D' ( uniform isampler2D) +0:56 'c3D' ( smooth in 3-component vector of float) +0:56 'c1D' ( smooth in float) +0:57 add second child into first child ( temp 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:57 Convert int to float ( temp 4-component vector of float) +0:57 'iv' ( temp 4-component vector of int) +0:58 move second child to first child ( temp 4-component vector of int) +0:58 'iv' ( temp 4-component vector of int) +0:58 textureProjGrad ( global 4-component vector of int) +0:58 'is2D' ( uniform isampler2D) +0:58 'c3D' ( smooth in 3-component vector of float) +0:58 'c2D' ( smooth in 2-component vector of float) +0:58 'c2D' ( smooth in 2-component vector of float) +0:59 add second child into first child ( temp 4-component vector of float) +0:59 'v' ( temp 4-component vector of float) +0:59 Convert int to float ( temp 4-component vector of float) +0:59 'iv' ( temp 4-component vector of int) +0:60 move second child to first child ( temp 4-component vector of int) +0:60 'iv' ( temp 4-component vector of int) +0:60 texture ( global 4-component vector of int) +0:60 'is3D' ( uniform isampler3D) +0:60 'c3D' ( smooth in 3-component vector of float) +0:60 Constant: +0:60 4.200000 +0:61 add second child into first child ( temp 4-component vector of float) +0:61 'v' ( temp 4-component vector of float) +0:61 Convert int to float ( temp 4-component vector of float) +0:61 'iv' ( temp 4-component vector of int) +0:62 move second child to first child ( temp 4-component vector of int) +0:62 'iv' ( temp 4-component vector of int) +0:62 textureLod ( global 4-component vector of int) +0:62 'isCube' ( uniform isamplerCube) +0:62 'c3D' ( smooth in 3-component vector of float) +0:62 'c1D' ( smooth in float) +0:63 add second child into first child ( temp 4-component vector of float) +0:63 'v' ( temp 4-component vector of float) +0:63 Convert int to float ( temp 4-component vector of float) +0:63 'iv' ( temp 4-component vector of int) +0:64 move second child to first child ( temp 4-component vector of int) +0:64 'iv' ( temp 4-component vector of int) +0:64 textureFetch ( global 4-component vector of int) +0:64 'is2DArray' ( uniform isampler2DArray) +0:64 'ic3D' ( flat in 3-component vector of int) +0:64 'ic1D' ( flat in int) +0:65 add second child into first child ( temp 4-component vector of float) +0:65 'v' ( temp 4-component vector of float) +0:65 Convert int to float ( temp 4-component vector of float) +0:65 'iv' ( temp 4-component vector of int) +0:66 add second child into first child ( temp 4-component vector of int) +0:66 'iv' ( temp 4-component vector of int) +0:66 textureFetch ( global 4-component vector of int) +0:66 'is2Dms' ( uniform isampler2DMS) +0:66 'ic2D' ( flat in 2-component vector of int) +0:66 'ic1D' ( flat in int) +0:67 add second child into first child ( temp 4-component vector of float) +0:67 'v' ( temp 4-component vector of float) +0:67 Convert int to float ( temp 4-component vector of float) +0:67 'iv' ( temp 4-component vector of int) +0:68 add second child into first child ( temp 4-component vector of float) +0:68 'v' ( temp 4-component vector of float) +0:68 textureFetch ( global 4-component vector of float) +0:68 'sb' ( uniform samplerBuffer) +0:68 'ic1D' ( flat in int) +0:69 add second child into first child ( temp 4-component vector of float) +0:69 'v' ( temp 4-component vector of float) +0:69 textureFetch ( global 4-component vector of float) +0:69 'sr' ( uniform sampler2DRect) +0:69 'ic2D' ( flat in 2-component vector of int) +0:71 Sequence +0:71 move second child to first child ( temp 2-component vector of int) +0:71 'iv2' ( temp 2-component vector of int) +0:71 textureSize ( global 2-component vector of int) +0:71 'sCubeShadow' ( uniform samplerCubeShadow) +0:71 Constant: +0:71 2 (const int) +0:74 move second child to first child ( temp 4-component vector of float) +0:74 'FragData' ( out 4-component vector of float) +0:74 add ( temp 4-component vector of float) +0:74 'v' ( temp 4-component vector of float) +0:74 Construct vec4 ( temp 4-component vector of float) +0:74 Convert int to float ( temp 2-component vector of float) +0:74 'iv2' ( temp 2-component vector of int) +0:74 Constant: +0:74 0.000000 +0:74 Constant: +0:74 0.000000 +0:? Linker Objects +0:? 'sb' ( uniform samplerBuffer) +0:? 'sr' ( uniform sampler2DRect) +0:? 's2D' ( uniform sampler2D) +0:? 's3D' ( uniform sampler3D) +0:? 'sCube' ( uniform samplerCube) +0:? 'sCubeShadow' ( uniform samplerCubeShadow) +0:? 's2DShadow' ( uniform sampler2DShadow) +0:? 's2DArray' ( uniform sampler2DArray) +0:? 's2DArrayShadow' ( uniform sampler2DArrayShadow) +0:? 'is2D' ( uniform isampler2D) +0:? 'is3D' ( uniform isampler3D) +0:? 'isCube' ( uniform isamplerCube) +0:? 'is2DArray' ( uniform isampler2DArray) +0:? 'is2Dms' ( uniform isampler2DMS) +0:? 'us2D' ( uniform usampler2D) +0:? 'us3D' ( uniform usampler3D) +0:? 'usCube' ( uniform usamplerCube) +0:? 'us2DArray' ( uniform usampler2DArray) +0:? 'c1D' ( smooth in float) +0:? 'c2D' ( smooth in 2-component vector of float) +0:? 'c3D' ( smooth in 3-component vector of float) +0:? 'c4D' ( smooth in 4-component vector of float) +0:? 'ic1D' ( flat in int) +0:? 'ic2D' ( flat in 2-component vector of int) +0:? 'ic3D' ( flat in 3-component vector of int) +0:? 'ic4D' ( flat in 4-component vector of int) +0:? 'FragData' ( out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 430 +0:? Sequence +0:36 Function Definition: main( ( global void) +0:36 Function Parameters: +0:38 Sequence +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'v' ( temp 4-component vector of float) +0:38 texture ( global 4-component vector of float) +0:38 's2D' ( uniform sampler2D) +0:38 'c2D' ( smooth in 2-component vector of float) +0:39 add second child into first child ( temp 4-component vector of float) +0:39 'v' ( temp 4-component vector of float) +0:39 textureProj ( global 4-component vector of float) +0:39 's3D' ( uniform sampler3D) +0:39 'c4D' ( smooth in 4-component vector of float) +0:40 add second child into first child ( temp 4-component vector of float) +0:40 'v' ( temp 4-component vector of float) +0:40 textureLod ( global 4-component vector of float) +0:40 's2DArray' ( uniform sampler2DArray) +0:40 'c3D' ( smooth in 3-component vector of float) +0:40 Constant: +0:40 1.200000 +0:41 add second child into first child ( temp float) +0:41 direct index ( temp float) +0:41 'v' ( temp 4-component vector of float) +0:41 Constant: +0:41 1 (const int) +0:41 textureOffset ( global float) +0:41 's2DShadow' ( uniform sampler2DShadow) +0:41 'c3D' ( smooth in 3-component vector of float) +0:41 Constant: +0:41 3 (const int) +0:41 3 (const int) +0:41 'c1D' ( smooth in float) +0:42 add second child into first child ( temp 4-component vector of float) +0:42 'v' ( temp 4-component vector of float) +0:42 textureFetch ( global 4-component vector of float) +0:42 's3D' ( uniform sampler3D) +0:42 'ic3D' ( flat in 3-component vector of int) +0:42 'ic1D' ( flat in int) +0:43 add second child into first child ( temp 4-component vector of float) +0:43 'v' ( temp 4-component vector of float) +0:43 textureFetchOffset ( global 4-component vector of float) +0:43 's2D' ( uniform sampler2D) +0:43 'ic2D' ( flat in 2-component vector of int) +0:43 Constant: +0:43 4 (const int) +0:43 Constant: +0:43 3 (const int) +0:43 3 (const int) +0:44 add second child into first child ( temp 4-component vector of float) +0:44 'v' ( temp 4-component vector of float) +0:44 textureFetchOffset ( global 4-component vector of float) +0:44 'sr' ( uniform sampler2DRect) +0:44 'ic2D' ( flat in 2-component vector of int) +0:44 Constant: +0:44 4 (const int) +0:44 4 (const int) +0:45 add second child into first child ( temp float) +0:45 direct index ( temp float) +0:45 'v' ( temp 4-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:45 textureLodOffset ( global float) +0:45 's2DShadow' ( uniform sampler2DShadow) +0:45 'c3D' ( smooth in 3-component vector of float) +0:45 'c1D' ( smooth in float) +0:45 Constant: +0:45 3 (const int) +0:45 3 (const int) +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'v' ( temp 4-component vector of float) +0:46 textureProjLodOffset ( global 4-component vector of float) +0:46 's2D' ( uniform sampler2D) +0:46 'c3D' ( smooth in 3-component vector of float) +0:46 'c1D' ( smooth in float) +0:46 Constant: +0:46 3 (const int) +0:46 3 (const int) +0:47 add second child into first child ( temp 4-component vector of float) +0:47 'v' ( temp 4-component vector of float) +0:47 textureGrad ( global 4-component vector of float) +0:47 'sCube' ( uniform samplerCube) +0:47 'c3D' ( smooth in 3-component vector of float) +0:47 'c3D' ( smooth in 3-component vector of float) +0:47 'c3D' ( smooth in 3-component vector of float) +0:48 add second child into first child ( temp float) +0:48 direct index ( temp float) +0:48 'v' ( temp 4-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 textureGradOffset ( global float) +0:48 's2DArrayShadow' ( uniform sampler2DArrayShadow) +0:48 'c4D' ( smooth in 4-component vector of float) +0:48 'c2D' ( smooth in 2-component vector of float) +0:48 'c2D' ( smooth in 2-component vector of float) +0:48 Constant: +0:48 3 (const int) +0:48 3 (const int) +0:49 add second child into first child ( temp 4-component vector of float) +0:49 'v' ( temp 4-component vector of float) +0:49 textureProjGrad ( global 4-component vector of float) +0:49 's3D' ( uniform sampler3D) +0:49 'c4D' ( smooth in 4-component vector of float) +0:49 'c3D' ( smooth in 3-component vector of float) +0:49 'c3D' ( smooth in 3-component vector of float) +0:50 add second child into first child ( temp 4-component vector of float) +0:50 'v' ( temp 4-component vector of float) +0:50 textureProjGradOffset ( global 4-component vector of float) +0:50 's2D' ( uniform sampler2D) +0:50 'c3D' ( smooth in 3-component vector of float) +0:50 'c2D' ( smooth in 2-component vector of float) +0:50 'c2D' ( smooth in 2-component vector of float) +0:50 Constant: +0:50 3 (const int) +0:50 3 (const int) +0:52 Sequence +0:52 move second child to first child ( temp 4-component vector of int) +0:52 'iv' ( temp 4-component vector of int) +0:52 texture ( global 4-component vector of int) +0:52 'is2D' ( uniform isampler2D) +0:52 'c2D' ( smooth in 2-component vector of float) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'v' ( temp 4-component vector of float) +0:53 Convert int to float ( temp 4-component vector of float) +0:53 'iv' ( temp 4-component vector of int) +0:54 move second child to first child ( temp 4-component vector of int) +0:54 'iv' ( temp 4-component vector of int) +0:54 textureProjOffset ( global 4-component vector of int) +0:54 'is2D' ( uniform isampler2D) +0:54 'c4D' ( smooth in 4-component vector of float) +0:54 Constant: +0:54 3 (const int) +0:54 3 (const int) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'v' ( temp 4-component vector of float) +0:55 Convert int to float ( temp 4-component vector of float) +0:55 'iv' ( temp 4-component vector of int) +0:56 move second child to first child ( temp 4-component vector of int) +0:56 'iv' ( temp 4-component vector of int) +0:56 textureProjLod ( global 4-component vector of int) +0:56 'is2D' ( uniform isampler2D) +0:56 'c3D' ( smooth in 3-component vector of float) +0:56 'c1D' ( smooth in float) +0:57 add second child into first child ( temp 4-component vector of float) +0:57 'v' ( temp 4-component vector of float) +0:57 Convert int to float ( temp 4-component vector of float) +0:57 'iv' ( temp 4-component vector of int) +0:58 move second child to first child ( temp 4-component vector of int) +0:58 'iv' ( temp 4-component vector of int) +0:58 textureProjGrad ( global 4-component vector of int) +0:58 'is2D' ( uniform isampler2D) +0:58 'c3D' ( smooth in 3-component vector of float) +0:58 'c2D' ( smooth in 2-component vector of float) +0:58 'c2D' ( smooth in 2-component vector of float) +0:59 add second child into first child ( temp 4-component vector of float) +0:59 'v' ( temp 4-component vector of float) +0:59 Convert int to float ( temp 4-component vector of float) +0:59 'iv' ( temp 4-component vector of int) +0:60 move second child to first child ( temp 4-component vector of int) +0:60 'iv' ( temp 4-component vector of int) +0:60 texture ( global 4-component vector of int) +0:60 'is3D' ( uniform isampler3D) +0:60 'c3D' ( smooth in 3-component vector of float) +0:60 Constant: +0:60 4.200000 +0:61 add second child into first child ( temp 4-component vector of float) +0:61 'v' ( temp 4-component vector of float) +0:61 Convert int to float ( temp 4-component vector of float) +0:61 'iv' ( temp 4-component vector of int) +0:62 move second child to first child ( temp 4-component vector of int) +0:62 'iv' ( temp 4-component vector of int) +0:62 textureLod ( global 4-component vector of int) +0:62 'isCube' ( uniform isamplerCube) +0:62 'c3D' ( smooth in 3-component vector of float) +0:62 'c1D' ( smooth in float) +0:63 add second child into first child ( temp 4-component vector of float) +0:63 'v' ( temp 4-component vector of float) +0:63 Convert int to float ( temp 4-component vector of float) +0:63 'iv' ( temp 4-component vector of int) +0:64 move second child to first child ( temp 4-component vector of int) +0:64 'iv' ( temp 4-component vector of int) +0:64 textureFetch ( global 4-component vector of int) +0:64 'is2DArray' ( uniform isampler2DArray) +0:64 'ic3D' ( flat in 3-component vector of int) +0:64 'ic1D' ( flat in int) +0:65 add second child into first child ( temp 4-component vector of float) +0:65 'v' ( temp 4-component vector of float) +0:65 Convert int to float ( temp 4-component vector of float) +0:65 'iv' ( temp 4-component vector of int) +0:66 add second child into first child ( temp 4-component vector of int) +0:66 'iv' ( temp 4-component vector of int) +0:66 textureFetch ( global 4-component vector of int) +0:66 'is2Dms' ( uniform isampler2DMS) +0:66 'ic2D' ( flat in 2-component vector of int) +0:66 'ic1D' ( flat in int) +0:67 add second child into first child ( temp 4-component vector of float) +0:67 'v' ( temp 4-component vector of float) +0:67 Convert int to float ( temp 4-component vector of float) +0:67 'iv' ( temp 4-component vector of int) +0:68 add second child into first child ( temp 4-component vector of float) +0:68 'v' ( temp 4-component vector of float) +0:68 textureFetch ( global 4-component vector of float) +0:68 'sb' ( uniform samplerBuffer) +0:68 'ic1D' ( flat in int) +0:69 add second child into first child ( temp 4-component vector of float) +0:69 'v' ( temp 4-component vector of float) +0:69 textureFetch ( global 4-component vector of float) +0:69 'sr' ( uniform sampler2DRect) +0:69 'ic2D' ( flat in 2-component vector of int) +0:71 Sequence +0:71 move second child to first child ( temp 2-component vector of int) +0:71 'iv2' ( temp 2-component vector of int) +0:71 textureSize ( global 2-component vector of int) +0:71 'sCubeShadow' ( uniform samplerCubeShadow) +0:71 Constant: +0:71 2 (const int) +0:74 move second child to first child ( temp 4-component vector of float) +0:74 'FragData' ( out 4-component vector of float) +0:74 add ( temp 4-component vector of float) +0:74 'v' ( temp 4-component vector of float) +0:74 Construct vec4 ( temp 4-component vector of float) +0:74 Convert int to float ( temp 2-component vector of float) +0:74 'iv2' ( temp 2-component vector of int) +0:74 Constant: +0:74 0.000000 +0:74 Constant: +0:74 0.000000 +0:? Linker Objects +0:? 'sb' ( uniform samplerBuffer) +0:? 'sr' ( uniform sampler2DRect) +0:? 's2D' ( uniform sampler2D) +0:? 's3D' ( uniform sampler3D) +0:? 'sCube' ( uniform samplerCube) +0:? 'sCubeShadow' ( uniform samplerCubeShadow) +0:? 's2DShadow' ( uniform sampler2DShadow) +0:? 's2DArray' ( uniform sampler2DArray) +0:? 's2DArrayShadow' ( uniform sampler2DArrayShadow) +0:? 'is2D' ( uniform isampler2D) +0:? 'is3D' ( uniform isampler3D) +0:? 'isCube' ( uniform isamplerCube) +0:? 'is2DArray' ( uniform isampler2DArray) +0:? 'is2Dms' ( uniform isampler2DMS) +0:? 'us2D' ( uniform usampler2D) +0:? 'us3D' ( uniform usampler3D) +0:? 'usCube' ( uniform usamplerCube) +0:? 'us2DArray' ( uniform usampler2DArray) +0:? 'c1D' ( smooth in float) +0:? 'c2D' ( smooth in 2-component vector of float) +0:? 'c3D' ( smooth in 3-component vector of float) +0:? 'c4D' ( smooth in 4-component vector of float) +0:? 'ic1D' ( flat in int) +0:? 'ic2D' ( flat in 2-component vector of int) +0:? 'ic3D' ( flat in 3-component vector of int) +0:? 'ic4D' ( flat in 4-component vector of int) +0:? 'FragData' ( out 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/noMain.vert.out b/deps/glslang/glslang/Test/baseResults/noMain.vert.out new file mode 100644 index 0000000000..dd26243856 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/noMain.vert.out @@ -0,0 +1,43 @@ +noMain.vert +Shader version: 300 +0:? Sequence +0:3 Function Definition: foo( ( global void) +0:3 Function Parameters: +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + +mains.frag +ERROR: 0:7: 'main' : function already has a body +ERROR: 1 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +Linked fragment stage: + + +Shader version: 300 +0:? Sequence +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) +Shader version: 300 +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/nonSquare.vert.out b/deps/glslang/glslang/Test/baseResults/nonSquare.vert.out new file mode 100644 index 0000000000..aa8a8273ba --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/nonSquare.vert.out @@ -0,0 +1,183 @@ +nonSquare.vert +Shader version: 120 +0:? Sequence +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 2-component vector of float) +0:20 'a' ( temp 2-component vector of float) +0:20 vector-times-matrix ( temp 2-component vector of float) +0:20 'v3' ( in 3-component vector of float) +0:20 'm23' ( temp 2X3 matrix of float) +0:21 move second child to first child ( temp 2-component vector of float) +0:21 'b' ( temp 2-component vector of float) +0:21 matrix-times-vector ( temp 2-component vector of float) +0:21 'm32' ( uniform 3X2 matrix of float) +0:21 'v3' ( in 3-component vector of float) +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'gl_Position' ( gl_Position 4-component vector of float Position) +0:24 add ( temp 4-component vector of float) +0:24 add ( temp 4-component vector of float) +0:24 add ( temp 4-component vector of float) +0:23 add ( temp 4-component vector of float) +0:23 Construct vec4 ( temp 4-component vector of float) +0:23 matrix-times-vector ( temp 3-component vector of float) +0:23 matrix-multiply ( temp 3X3 matrix of float) +0:23 'm23' ( temp 2X3 matrix of float) +0:23 'm32' ( uniform 3X2 matrix of float) +0:23 'v3' ( in 3-component vector of float) +0:23 Constant: +0:23 0.000000 +0:24 matrix-times-vector ( temp 4-component vector of float) +0:24 Constant: +0:24 3.000000 +0:24 6.000000 +0:24 0.000000 +0:24 0.000000 +0:24 9.000000 +0:24 12.000000 +0:24 0.000000 +0:24 0.000000 +0:24 15.000000 +0:24 18.000000 +0:24 0.000000 +0:24 0.000000 +0:24 21.000000 +0:24 24.000000 +0:24 0.000000 +0:24 0.000000 +0:24 'v4' ( in 4-component vector of float) +0:24 Constant: +0:24 50.000000 +0:24 110.000000 +0:24 170.000000 +0:24 230.000000 +0:24 Constant: +0:24 30.000000 +0:24 60.000000 +0:24 0.000000 +0:24 0.000000 +0:24 Constant: +0:24 20.000000 +0:24 10.000000 +0:24 6.000000 +0:24 5.000000 +0:? Linker Objects +0:? 'v3' ( in 3-component vector of float) +0:? 'v4' ( in 4-component vector of float) +0:? 'm32' ( uniform 3X2 matrix of float) +0:? 'cv2' ( const 2-component vector of float) +0:? 10.000000 +0:? 20.000000 +0:? 'm24' ( const 2X4 matrix of float) +0:? 3.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 3.000000 +0:? 0.000000 +0:? 0.000000 +0:? 'm42' ( const 4X2 matrix of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 + + +Linked vertex stage: + + +Shader version: 120 +0:? Sequence +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:? Sequence +0:20 move second child to first child ( temp 2-component vector of float) +0:20 'a' ( temp 2-component vector of float) +0:20 vector-times-matrix ( temp 2-component vector of float) +0:20 'v3' ( in 3-component vector of float) +0:20 'm23' ( temp 2X3 matrix of float) +0:21 move second child to first child ( temp 2-component vector of float) +0:21 'b' ( temp 2-component vector of float) +0:21 matrix-times-vector ( temp 2-component vector of float) +0:21 'm32' ( uniform 3X2 matrix of float) +0:21 'v3' ( in 3-component vector of float) +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'gl_Position' ( gl_Position 4-component vector of float Position) +0:24 add ( temp 4-component vector of float) +0:24 add ( temp 4-component vector of float) +0:24 add ( temp 4-component vector of float) +0:23 add ( temp 4-component vector of float) +0:23 Construct vec4 ( temp 4-component vector of float) +0:23 matrix-times-vector ( temp 3-component vector of float) +0:23 matrix-multiply ( temp 3X3 matrix of float) +0:23 'm23' ( temp 2X3 matrix of float) +0:23 'm32' ( uniform 3X2 matrix of float) +0:23 'v3' ( in 3-component vector of float) +0:23 Constant: +0:23 0.000000 +0:24 matrix-times-vector ( temp 4-component vector of float) +0:24 Constant: +0:24 3.000000 +0:24 6.000000 +0:24 0.000000 +0:24 0.000000 +0:24 9.000000 +0:24 12.000000 +0:24 0.000000 +0:24 0.000000 +0:24 15.000000 +0:24 18.000000 +0:24 0.000000 +0:24 0.000000 +0:24 21.000000 +0:24 24.000000 +0:24 0.000000 +0:24 0.000000 +0:24 'v4' ( in 4-component vector of float) +0:24 Constant: +0:24 50.000000 +0:24 110.000000 +0:24 170.000000 +0:24 230.000000 +0:24 Constant: +0:24 30.000000 +0:24 60.000000 +0:24 0.000000 +0:24 0.000000 +0:24 Constant: +0:24 20.000000 +0:24 10.000000 +0:24 6.000000 +0:24 5.000000 +0:? Linker Objects +0:? 'v3' ( in 3-component vector of float) +0:? 'v4' ( in 4-component vector of float) +0:? 'm32' ( uniform 3X2 matrix of float) +0:? 'cv2' ( const 2-component vector of float) +0:? 10.000000 +0:? 20.000000 +0:? 'm24' ( const 2X4 matrix of float) +0:? 3.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 3.000000 +0:? 0.000000 +0:? 0.000000 +0:? 'm42' ( const 4X2 matrix of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 + diff --git a/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out b/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out new file mode 100644 index 0000000000..2b8b6a0ce3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/nonVulkan.frag.out @@ -0,0 +1,29 @@ +nonVulkan.frag +ERROR: 0:3: 'constant_id' : only allowed when generating SPIR-V +ERROR: 0:4: 'input_attachment_index' : only allowed when using GLSL for Vulkan +ERROR: 0:4: 'input_attachment_index' : can only be used with a subpass +ERROR: 0:5: 'push_constant' : only allowed when using GLSL for Vulkan +ERROR: 4 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'arraySize' ( specialization-constant const int) +0:? 12 (const int) +0:? 'foo' ( temp int) +0:? 'ubi' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform int a}) + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 450 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'arraySize' ( specialization-constant const int) +0:? 12 (const int) +0:? 'foo' ( temp int) +0:? 'ubi' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform int a}) + diff --git a/deps/glslang/glslang/Test/baseResults/nonuniform.frag.out b/deps/glslang/glslang/Test/baseResults/nonuniform.frag.out new file mode 100644 index 0000000000..2d4e9b011a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/nonuniform.frag.out @@ -0,0 +1,92 @@ +nonuniform.frag +ERROR: 0:10: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier +ERROR: 0:11: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier +ERROR: 0:12: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier +ERROR: 0:22: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier +ERROR: 0:28: 'constructor' : too many arguments +ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' nonuniform temp int' +ERROR: 0:29: 'constructor' : not enough data provided for construction +ERROR: 0:29: 'assign' : cannot convert from ' const float' to ' nonuniform temp int' +ERROR: 0:32: 'nonuniformEXT' : not allowed on block or structure members +ERROR: 0:33: 'nonuniformEXT' : not allowed on block or structure members +ERROR: 10 compilation errors. No code generated. + + +Shader version: 450 +Requested GL_EXT_nonuniform_qualifier +ERROR: node is still EOpNull! +0:14 Function Definition: foo(i1;i1; ( nonuniform temp int) +0:14 Function Parameters: +0:14 'nupi' ( nonuniform in int) +0:14 'f' ( nonuniform out int) +0:16 Sequence +0:16 Branch: Return with expression +0:16 'nupi' ( nonuniform in int) +0:19 Function Definition: main( ( global void) +0:19 Function Parameters: +0:? Sequence +0:24 Function Call: foo(i1;i1; ( nonuniform temp int) +0:24 'nu_li' ( nonuniform temp int) +0:24 'nu_li' ( nonuniform temp int) +0:27 move second child to first child ( temp int) +0:27 'nu_li' ( nonuniform temp int) +0:27 add ( nonuniform temp int) +0:27 'a' ( nonuniform temp int) +0:27 component-wise multiply ( nonuniform temp int) +0:27 'a' ( temp int) +0:27 Constant: +0:27 2 (const int) +0:28 'nu_li' ( nonuniform temp int) +0:29 'nu_li' ( nonuniform temp int) +0:? Linker Objects +0:? 'nonuniformEXT' ( global int) +0:? 'nu_inv4' ( smooth nonuniform in 4-component vector of float) +0:? 'nu_gf' ( nonuniform temp float) +0:? 'nu_outv4' ( nonuniform out 4-component vector of float) +0:? 'nu_uv4' ( nonuniform uniform 4-component vector of float) +0:? 'nu_constf' ( nonuniform const float) +0:? 1.000000 +0:? 'ins' (layout( location=1) smooth in structure{ global float a, temp float b}) +0:? 'inb' (layout( location=3) in block{ in float a, in float b}) + + +Linked fragment stage: + + +Shader version: 450 +Requested GL_EXT_nonuniform_qualifier +ERROR: node is still EOpNull! +0:14 Function Definition: foo(i1;i1; ( nonuniform temp int) +0:14 Function Parameters: +0:14 'nupi' ( nonuniform in int) +0:14 'f' ( nonuniform out int) +0:16 Sequence +0:16 Branch: Return with expression +0:16 'nupi' ( nonuniform in int) +0:19 Function Definition: main( ( global void) +0:19 Function Parameters: +0:? Sequence +0:24 Function Call: foo(i1;i1; ( nonuniform temp int) +0:24 'nu_li' ( nonuniform temp int) +0:24 'nu_li' ( nonuniform temp int) +0:27 move second child to first child ( temp int) +0:27 'nu_li' ( nonuniform temp int) +0:27 add ( nonuniform temp int) +0:27 'a' ( nonuniform temp int) +0:27 component-wise multiply ( nonuniform temp int) +0:27 'a' ( temp int) +0:27 Constant: +0:27 2 (const int) +0:28 'nu_li' ( nonuniform temp int) +0:29 'nu_li' ( nonuniform temp int) +0:? Linker Objects +0:? 'nonuniformEXT' ( global int) +0:? 'nu_inv4' ( smooth nonuniform in 4-component vector of float) +0:? 'nu_gf' ( nonuniform temp float) +0:? 'nu_outv4' ( nonuniform out 4-component vector of float) +0:? 'nu_uv4' ( nonuniform uniform 4-component vector of float) +0:? 'nu_constf' ( nonuniform const float) +0:? 1.000000 +0:? 'ins' (layout( location=1) smooth in structure{ global float a, temp float b}) +0:? 'inb' (layout( location=3) in block{ in float a, in float b}) + diff --git a/deps/glslang/glslang/Test/baseResults/nosuffix.out b/deps/glslang/glslang/Test/baseResults/nosuffix.out new file mode 100644 index 0000000000..d881c5b872 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/nosuffix.out @@ -0,0 +1,15 @@ +nosuffix +Shader version: 100 +0:? Sequence +0:1 Function Definition: main( ( global void) +0:1 Function Parameters: +0:3 Sequence +0:3 move second child to first child ( temp highp 4-component vector of float) +0:3 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:3 Constant: +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:3 1.000000 +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/numeral.frag.out b/deps/glslang/glslang/Test/baseResults/numeral.frag.out new file mode 100644 index 0000000000..b7c0a78b72 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/numeral.frag.out @@ -0,0 +1,832 @@ +numeral.frag +ERROR: 0:14: '' : octal literal digit too large +ERROR: 0:15: '' : octal literal digit too large +ERROR: 0:16: '' : octal literal digit too large +ERROR: 0:17: '' : octal literal too big +ERROR: 0:18: '' : octal literal too big +ERROR: 0:23: '' : octal literal digit too large +ERROR: 0:24: '' : octal literal digit too large +ERROR: 0:49: '' : bad digit in hexadecimal literal +ERROR: 0:50: '' : hexadecimal literal too big +ERROR: 0:88: '' : float literal needs a decimal point or exponent +ERROR: 0:98: '' : numeric literal too big +ERROR: 0:101: '' : numeric literal too big +ERROR: 0:104: '#' : preprocessor directive cannot be preceded by another token +ERROR: 0:104: '' : syntax error, unexpected $end, expecting COMMA or SEMICOLON +ERROR: 14 compilation errors. No code generated. + + +Shader version: 400 +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'o00' ( temp int) +0:5 Constant: +0:5 0 (const int) +0:6 Sequence +0:6 move second child to first child ( temp int) +0:6 'o000' ( temp int) +0:6 Constant: +0:6 0 (const int) +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'o0000' ( temp int) +0:7 Constant: +0:7 0 (const int) +0:8 Sequence +0:8 move second child to first child ( temp int) +0:8 'o5' ( temp int) +0:8 Constant: +0:8 5 (const int) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'o05' ( temp int) +0:9 Constant: +0:9 5 (const int) +0:10 Sequence +0:10 move second child to first child ( temp int) +0:10 'o006' ( temp int) +0:10 Constant: +0:10 6 (const int) +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'o7' ( temp int) +0:11 Constant: +0:11 7 (const int) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'o58' ( temp int) +0:12 Constant: +0:12 58 (const int) +0:13 Sequence +0:13 move second child to first child ( temp int) +0:13 'omax' ( temp int) +0:13 Constant: +0:13 -1 (const int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'o8' ( temp int) +0:14 Constant: +0:14 0 (const int) +0:15 Sequence +0:15 move second child to first child ( temp int) +0:15 'o08' ( temp int) +0:15 Constant: +0:15 0 (const int) +0:16 Sequence +0:16 move second child to first child ( temp int) +0:16 'o009' ( temp int) +0:16 Constant: +0:16 0 (const int) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'obig' ( temp int) +0:17 Constant: +0:17 -1662398820 (const int) +0:18 Sequence +0:18 move second child to first child ( temp int) +0:18 'omax1' ( temp int) +0:18 Constant: +0:18 0 (const int) +0:20 Sequence +0:20 move second child to first child ( temp uint) +0:20 'uo5' ( temp uint) +0:20 Constant: +0:20 5 (const uint) +0:21 Sequence +0:21 move second child to first child ( temp uint) +0:21 'uo6' ( temp uint) +0:21 Constant: +0:21 6 (const uint) +0:22 Sequence +0:22 move second child to first child ( temp uint) +0:22 'uo7' ( temp uint) +0:22 Constant: +0:22 7 (const uint) +0:23 Sequence +0:23 move second child to first child ( temp uint) +0:23 'uo8' ( temp uint) +0:23 Constant: +0:23 0 (const uint) +0:24 Sequence +0:24 move second child to first child ( temp uint) +0:24 'uo9' ( temp uint) +0:24 Constant: +0:24 0 (const uint) +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'h0' ( temp int) +0:26 Constant: +0:26 0 (const int) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'h00' ( temp int) +0:27 Constant: +0:27 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'h000' ( temp int) +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'h1' ( temp int) +0:29 Constant: +0:29 1 (const int) +0:30 Sequence +0:30 move second child to first child ( temp int) +0:30 'h2' ( temp int) +0:30 Constant: +0:30 2 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'h300' ( temp int) +0:31 Constant: +0:31 768 (const int) +0:32 Sequence +0:32 move second child to first child ( temp int) +0:32 'hABCDEF' ( temp int) +0:32 Constant: +0:32 11259375 (const int) +0:33 Sequence +0:33 move second child to first child ( temp int) +0:33 'hFFFFFFFF' ( temp int) +0:33 Constant: +0:33 -1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'h12345678' ( temp int) +0:34 Constant: +0:34 12345678 (const int) +0:35 Sequence +0:35 move second child to first child ( temp int) +0:35 'hToBeOrNotToBe' ( temp int) +0:35 Constant: +0:35 -1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp uint) +0:37 'uh0' ( temp uint) +0:37 Constant: +0:37 0 (const uint) +0:38 Sequence +0:38 move second child to first child ( temp uint) +0:38 'uhg' ( temp uint) +0:38 Constant: +0:38 12 (const uint) +0:39 Sequence +0:39 move second child to first child ( temp uint) +0:39 'uh000' ( temp uint) +0:39 Constant: +0:39 0 (const uint) +0:40 Sequence +0:40 move second child to first child ( temp uint) +0:40 'uh1' ( temp uint) +0:40 Constant: +0:40 1 (const uint) +0:41 Sequence +0:41 move second child to first child ( temp uint) +0:41 'uh2' ( temp uint) +0:41 Constant: +0:41 2 (const uint) +0:42 Sequence +0:42 move second child to first child ( temp uint) +0:42 'uh300' ( temp uint) +0:42 Constant: +0:42 768 (const uint) +0:43 Sequence +0:43 move second child to first child ( temp uint) +0:43 'uhABCDEF' ( temp uint) +0:43 Constant: +0:43 11259375 (const uint) +0:44 Sequence +0:44 move second child to first child ( temp uint) +0:44 'uhFFFFFFFF' ( temp uint) +0:44 Constant: +0:44 4294967295 (const uint) +0:45 Sequence +0:45 move second child to first child ( temp uint) +0:45 'uh12345678' ( temp uint) +0:45 Constant: +0:45 12345678 (const uint) +0:46 Sequence +0:46 move second child to first child ( temp uint) +0:46 'uhToBeOrNotToBe' ( temp uint) +0:46 Constant: +0:46 4294967295 (const uint) +0:49 Sequence +0:49 move second child to first child ( temp int) +0:49 'he2' ( temp int) +0:49 Constant: +0:49 0 (const int) +0:50 Sequence +0:50 move second child to first child ( temp int) +0:50 'hbig' ( temp int) +0:50 Constant: +0:50 -15 (const int) +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'f1' ( temp float) +0:52 Constant: +0:52 1.000000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'f2' ( temp float) +0:53 Constant: +0:53 2.000000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'f3' ( temp float) +0:54 Constant: +0:54 3.000000 +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'f4' ( temp float) +0:55 Constant: +0:55 4.000000 +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'f5' ( temp float) +0:56 Constant: +0:56 5.000000 +0:57 Sequence +0:57 move second child to first child ( temp float) +0:57 'f6' ( temp float) +0:57 Constant: +0:57 6.000000 +0:58 Sequence +0:58 move second child to first child ( temp float) +0:58 'f7' ( temp float) +0:58 Constant: +0:58 7.000000 +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 'f8' ( temp float) +0:59 Constant: +0:59 8.000000 +0:60 Sequence +0:60 move second child to first child ( temp float) +0:60 'f9' ( temp float) +0:60 Constant: +0:60 9.000000 +0:61 Sequence +0:61 move second child to first child ( temp float) +0:61 'f10' ( temp float) +0:61 Constant: +0:61 10.000000 +0:62 Sequence +0:62 move second child to first child ( temp float) +0:62 'f11' ( temp float) +0:62 Constant: +0:62 11.000000 +0:63 Sequence +0:63 move second child to first child ( temp float) +0:63 'f12' ( temp float) +0:63 Constant: +0:63 12.000000 +0:64 Sequence +0:64 move second child to first child ( temp float) +0:64 'f543' ( temp float) +0:64 Constant: +0:64 543.000000 +0:65 Sequence +0:65 move second child to first child ( temp float) +0:65 'f6789' ( temp float) +0:65 Constant: +0:65 6789.000000 +0:66 Sequence +0:66 move second child to first child ( temp float) +0:66 'f88' ( temp float) +0:66 Constant: +0:66 88.000000 +0:68 Sequence +0:68 move second child to first child ( temp float) +0:68 'g1' ( temp float) +0:68 Constant: +0:68 53876.000000 +0:69 Sequence +0:69 move second child to first child ( temp float) +0:69 'g2' ( temp float) +0:69 Constant: +0:69 0.040000 +0:70 Sequence +0:70 move second child to first child ( temp float) +0:70 'g3' ( temp float) +0:70 Constant: +0:70 100000.000000 +0:71 Sequence +0:71 move second child to first child ( temp float) +0:71 'g4' ( temp float) +0:71 Constant: +0:71 0.007321 +0:72 Sequence +0:72 move second child to first child ( temp float) +0:72 'g5' ( temp float) +0:72 Constant: +0:72 32000.000000 +0:73 Sequence +0:73 move second child to first child ( temp float) +0:73 'g6' ( temp float) +0:73 Constant: +0:73 5.0000000000000e-06 +0:74 Sequence +0:74 move second child to first child ( temp float) +0:74 'g7' ( temp float) +0:74 Constant: +0:74 0.450000 +0:75 Sequence +0:75 move second child to first child ( temp float) +0:75 'g8' ( temp float) +0:75 Constant: +0:75 60000000000.000000 +0:77 Sequence +0:77 move second child to first child ( temp double) +0:77 'gf1' ( temp double) +0:77 Constant: +0:77 1.000000 +0:78 Sequence +0:78 move second child to first child ( temp double) +0:78 'gf2' ( temp double) +0:78 Constant: +0:78 2.000000 +0:79 Sequence +0:79 move second child to first child ( temp double) +0:79 'gf3' ( temp double) +0:79 Constant: +0:79 3.000000 +0:80 Sequence +0:80 move second child to first child ( temp double) +0:80 'gf4' ( temp double) +0:80 Constant: +0:80 4.000000 +0:81 Sequence +0:81 move second child to first child ( temp float) +0:81 'gf5' ( temp float) +0:81 Constant: +0:81 5.000000 +0:82 Sequence +0:82 move second child to first child ( temp float) +0:82 'gf6' ( temp float) +0:82 Constant: +0:82 6.000000 +0:88 Sequence +0:88 move second child to first child ( temp float) +0:88 'e5' ( temp float) +0:88 Constant: +0:88 5.000000 +0:98 Sequence +0:98 move second child to first child ( temp uint) +0:98 'g1' ( global uint) +0:98 Constant: +0:98 4294967295 (const uint) +0:99 Sequence +0:99 move second child to first child ( temp uint) +0:99 'g2' ( global uint) +0:99 Constant: +0:99 4294967295 (const uint) +0:100 Sequence +0:100 move second child to first child ( temp uint) +0:100 'g3' ( global uint) +0:100 Constant: +0:100 4294967294 (const uint) +0:101 Sequence +0:101 move second child to first child ( temp int) +0:101 'g4' ( global int) +0:101 Constant: +0:101 -1 (const int) +0:102 Sequence +0:102 move second child to first child ( temp int) +0:102 'g5' ( global int) +0:102 Constant: +0:102 -1 (const int) +0:103 Sequence +0:103 move second child to first child ( temp int) +0:103 'g6' ( global int) +0:103 Constant: +0:103 -2 (const int) +0:? Linker Objects +0:? 'c2' (layout( location=2) out 4-component vector of float) +0:? 'c3' (layout( location=3) out 4-component vector of float) +0:? 'c4' (layout( location=4) out 4-component vector of float) +0:? 'c5' (layout( location=5) out 4-component vector of float) +0:? 'c6' (layout( location=6) out 4-component vector of float) +0:? 'c7' (layout( location=7) out 4-component vector of float) +0:? 'g1' ( global uint) +0:? 'g2' ( global uint) +0:? 'g3' ( global uint) +0:? 'g4' ( global int) +0:? 'g5' ( global int) +0:? 'g6' ( global int) +0:? 'inf1' ( global float) + + +Linked fragment stage: + + +Shader version: 400 +ERROR: node is still EOpNull! +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'o00' ( temp int) +0:5 Constant: +0:5 0 (const int) +0:6 Sequence +0:6 move second child to first child ( temp int) +0:6 'o000' ( temp int) +0:6 Constant: +0:6 0 (const int) +0:7 Sequence +0:7 move second child to first child ( temp int) +0:7 'o0000' ( temp int) +0:7 Constant: +0:7 0 (const int) +0:8 Sequence +0:8 move second child to first child ( temp int) +0:8 'o5' ( temp int) +0:8 Constant: +0:8 5 (const int) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'o05' ( temp int) +0:9 Constant: +0:9 5 (const int) +0:10 Sequence +0:10 move second child to first child ( temp int) +0:10 'o006' ( temp int) +0:10 Constant: +0:10 6 (const int) +0:11 Sequence +0:11 move second child to first child ( temp int) +0:11 'o7' ( temp int) +0:11 Constant: +0:11 7 (const int) +0:12 Sequence +0:12 move second child to first child ( temp int) +0:12 'o58' ( temp int) +0:12 Constant: +0:12 58 (const int) +0:13 Sequence +0:13 move second child to first child ( temp int) +0:13 'omax' ( temp int) +0:13 Constant: +0:13 -1 (const int) +0:14 Sequence +0:14 move second child to first child ( temp int) +0:14 'o8' ( temp int) +0:14 Constant: +0:14 0 (const int) +0:15 Sequence +0:15 move second child to first child ( temp int) +0:15 'o08' ( temp int) +0:15 Constant: +0:15 0 (const int) +0:16 Sequence +0:16 move second child to first child ( temp int) +0:16 'o009' ( temp int) +0:16 Constant: +0:16 0 (const int) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'obig' ( temp int) +0:17 Constant: +0:17 -1662398820 (const int) +0:18 Sequence +0:18 move second child to first child ( temp int) +0:18 'omax1' ( temp int) +0:18 Constant: +0:18 0 (const int) +0:20 Sequence +0:20 move second child to first child ( temp uint) +0:20 'uo5' ( temp uint) +0:20 Constant: +0:20 5 (const uint) +0:21 Sequence +0:21 move second child to first child ( temp uint) +0:21 'uo6' ( temp uint) +0:21 Constant: +0:21 6 (const uint) +0:22 Sequence +0:22 move second child to first child ( temp uint) +0:22 'uo7' ( temp uint) +0:22 Constant: +0:22 7 (const uint) +0:23 Sequence +0:23 move second child to first child ( temp uint) +0:23 'uo8' ( temp uint) +0:23 Constant: +0:23 0 (const uint) +0:24 Sequence +0:24 move second child to first child ( temp uint) +0:24 'uo9' ( temp uint) +0:24 Constant: +0:24 0 (const uint) +0:26 Sequence +0:26 move second child to first child ( temp int) +0:26 'h0' ( temp int) +0:26 Constant: +0:26 0 (const int) +0:27 Sequence +0:27 move second child to first child ( temp int) +0:27 'h00' ( temp int) +0:27 Constant: +0:27 0 (const int) +0:28 Sequence +0:28 move second child to first child ( temp int) +0:28 'h000' ( temp int) +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child ( temp int) +0:29 'h1' ( temp int) +0:29 Constant: +0:29 1 (const int) +0:30 Sequence +0:30 move second child to first child ( temp int) +0:30 'h2' ( temp int) +0:30 Constant: +0:30 2 (const int) +0:31 Sequence +0:31 move second child to first child ( temp int) +0:31 'h300' ( temp int) +0:31 Constant: +0:31 768 (const int) +0:32 Sequence +0:32 move second child to first child ( temp int) +0:32 'hABCDEF' ( temp int) +0:32 Constant: +0:32 11259375 (const int) +0:33 Sequence +0:33 move second child to first child ( temp int) +0:33 'hFFFFFFFF' ( temp int) +0:33 Constant: +0:33 -1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'h12345678' ( temp int) +0:34 Constant: +0:34 12345678 (const int) +0:35 Sequence +0:35 move second child to first child ( temp int) +0:35 'hToBeOrNotToBe' ( temp int) +0:35 Constant: +0:35 -1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp uint) +0:37 'uh0' ( temp uint) +0:37 Constant: +0:37 0 (const uint) +0:38 Sequence +0:38 move second child to first child ( temp uint) +0:38 'uhg' ( temp uint) +0:38 Constant: +0:38 12 (const uint) +0:39 Sequence +0:39 move second child to first child ( temp uint) +0:39 'uh000' ( temp uint) +0:39 Constant: +0:39 0 (const uint) +0:40 Sequence +0:40 move second child to first child ( temp uint) +0:40 'uh1' ( temp uint) +0:40 Constant: +0:40 1 (const uint) +0:41 Sequence +0:41 move second child to first child ( temp uint) +0:41 'uh2' ( temp uint) +0:41 Constant: +0:41 2 (const uint) +0:42 Sequence +0:42 move second child to first child ( temp uint) +0:42 'uh300' ( temp uint) +0:42 Constant: +0:42 768 (const uint) +0:43 Sequence +0:43 move second child to first child ( temp uint) +0:43 'uhABCDEF' ( temp uint) +0:43 Constant: +0:43 11259375 (const uint) +0:44 Sequence +0:44 move second child to first child ( temp uint) +0:44 'uhFFFFFFFF' ( temp uint) +0:44 Constant: +0:44 4294967295 (const uint) +0:45 Sequence +0:45 move second child to first child ( temp uint) +0:45 'uh12345678' ( temp uint) +0:45 Constant: +0:45 12345678 (const uint) +0:46 Sequence +0:46 move second child to first child ( temp uint) +0:46 'uhToBeOrNotToBe' ( temp uint) +0:46 Constant: +0:46 4294967295 (const uint) +0:49 Sequence +0:49 move second child to first child ( temp int) +0:49 'he2' ( temp int) +0:49 Constant: +0:49 0 (const int) +0:50 Sequence +0:50 move second child to first child ( temp int) +0:50 'hbig' ( temp int) +0:50 Constant: +0:50 -15 (const int) +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 'f1' ( temp float) +0:52 Constant: +0:52 1.000000 +0:53 Sequence +0:53 move second child to first child ( temp float) +0:53 'f2' ( temp float) +0:53 Constant: +0:53 2.000000 +0:54 Sequence +0:54 move second child to first child ( temp float) +0:54 'f3' ( temp float) +0:54 Constant: +0:54 3.000000 +0:55 Sequence +0:55 move second child to first child ( temp float) +0:55 'f4' ( temp float) +0:55 Constant: +0:55 4.000000 +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 'f5' ( temp float) +0:56 Constant: +0:56 5.000000 +0:57 Sequence +0:57 move second child to first child ( temp float) +0:57 'f6' ( temp float) +0:57 Constant: +0:57 6.000000 +0:58 Sequence +0:58 move second child to first child ( temp float) +0:58 'f7' ( temp float) +0:58 Constant: +0:58 7.000000 +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 'f8' ( temp float) +0:59 Constant: +0:59 8.000000 +0:60 Sequence +0:60 move second child to first child ( temp float) +0:60 'f9' ( temp float) +0:60 Constant: +0:60 9.000000 +0:61 Sequence +0:61 move second child to first child ( temp float) +0:61 'f10' ( temp float) +0:61 Constant: +0:61 10.000000 +0:62 Sequence +0:62 move second child to first child ( temp float) +0:62 'f11' ( temp float) +0:62 Constant: +0:62 11.000000 +0:63 Sequence +0:63 move second child to first child ( temp float) +0:63 'f12' ( temp float) +0:63 Constant: +0:63 12.000000 +0:64 Sequence +0:64 move second child to first child ( temp float) +0:64 'f543' ( temp float) +0:64 Constant: +0:64 543.000000 +0:65 Sequence +0:65 move second child to first child ( temp float) +0:65 'f6789' ( temp float) +0:65 Constant: +0:65 6789.000000 +0:66 Sequence +0:66 move second child to first child ( temp float) +0:66 'f88' ( temp float) +0:66 Constant: +0:66 88.000000 +0:68 Sequence +0:68 move second child to first child ( temp float) +0:68 'g1' ( temp float) +0:68 Constant: +0:68 53876.000000 +0:69 Sequence +0:69 move second child to first child ( temp float) +0:69 'g2' ( temp float) +0:69 Constant: +0:69 0.040000 +0:70 Sequence +0:70 move second child to first child ( temp float) +0:70 'g3' ( temp float) +0:70 Constant: +0:70 100000.000000 +0:71 Sequence +0:71 move second child to first child ( temp float) +0:71 'g4' ( temp float) +0:71 Constant: +0:71 0.007321 +0:72 Sequence +0:72 move second child to first child ( temp float) +0:72 'g5' ( temp float) +0:72 Constant: +0:72 32000.000000 +0:73 Sequence +0:73 move second child to first child ( temp float) +0:73 'g6' ( temp float) +0:73 Constant: +0:73 5.0000000000000e-06 +0:74 Sequence +0:74 move second child to first child ( temp float) +0:74 'g7' ( temp float) +0:74 Constant: +0:74 0.450000 +0:75 Sequence +0:75 move second child to first child ( temp float) +0:75 'g8' ( temp float) +0:75 Constant: +0:75 60000000000.000000 +0:77 Sequence +0:77 move second child to first child ( temp double) +0:77 'gf1' ( temp double) +0:77 Constant: +0:77 1.000000 +0:78 Sequence +0:78 move second child to first child ( temp double) +0:78 'gf2' ( temp double) +0:78 Constant: +0:78 2.000000 +0:79 Sequence +0:79 move second child to first child ( temp double) +0:79 'gf3' ( temp double) +0:79 Constant: +0:79 3.000000 +0:80 Sequence +0:80 move second child to first child ( temp double) +0:80 'gf4' ( temp double) +0:80 Constant: +0:80 4.000000 +0:81 Sequence +0:81 move second child to first child ( temp float) +0:81 'gf5' ( temp float) +0:81 Constant: +0:81 5.000000 +0:82 Sequence +0:82 move second child to first child ( temp float) +0:82 'gf6' ( temp float) +0:82 Constant: +0:82 6.000000 +0:88 Sequence +0:88 move second child to first child ( temp float) +0:88 'e5' ( temp float) +0:88 Constant: +0:88 5.000000 +0:98 Sequence +0:98 move second child to first child ( temp uint) +0:98 'g1' ( global uint) +0:98 Constant: +0:98 4294967295 (const uint) +0:99 Sequence +0:99 move second child to first child ( temp uint) +0:99 'g2' ( global uint) +0:99 Constant: +0:99 4294967295 (const uint) +0:100 Sequence +0:100 move second child to first child ( temp uint) +0:100 'g3' ( global uint) +0:100 Constant: +0:100 4294967294 (const uint) +0:101 Sequence +0:101 move second child to first child ( temp int) +0:101 'g4' ( global int) +0:101 Constant: +0:101 -1 (const int) +0:102 Sequence +0:102 move second child to first child ( temp int) +0:102 'g5' ( global int) +0:102 Constant: +0:102 -1 (const int) +0:103 Sequence +0:103 move second child to first child ( temp int) +0:103 'g6' ( global int) +0:103 Constant: +0:103 -2 (const int) +0:? Linker Objects +0:? 'c2' (layout( location=2) out 4-component vector of float) +0:? 'c3' (layout( location=3) out 4-component vector of float) +0:? 'c4' (layout( location=4) out 4-component vector of float) +0:? 'c5' (layout( location=5) out 4-component vector of float) +0:? 'c6' (layout( location=6) out 4-component vector of float) +0:? 'c7' (layout( location=7) out 4-component vector of float) +0:? 'g1' ( global uint) +0:? 'g2' ( global uint) +0:? 'g3' ( global uint) +0:? 'g4' ( global int) +0:? 'g5' ( global int) +0:? 'g6' ( global int) +0:? 'inf1' ( global float) + diff --git a/deps/glslang/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out b/deps/glslang/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out new file mode 100644 index 0000000000..ae004c64d4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out @@ -0,0 +1,38 @@ +nvShaderNoperspectiveInterpolation.frag +ERROR: 0:5: 'noperspective' : Reserved word. +ERROR: 0:5: 'noperspective' : not supported for this version or the enabled extensions +ERROR: 2 compilation errors. No code generated. + + +Shader version: 300 +Requested GL_NV_shader_noperspective_interpolation +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:14 Sequence +0:14 move second child to first child ( temp mediump 4-component vector of float) +0:14 'fragColor' ( out mediump 4-component vector of float) +0:14 'color' ( noperspective in mediump 4-component vector of float) +0:? Linker Objects +0:? 'bad' ( noperspective in mediump 4-component vector of float) +0:? 'color' ( noperspective in mediump 4-component vector of float) +0:? 'fragColor' ( out mediump 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 300 +Requested GL_NV_shader_noperspective_interpolation +ERROR: node is still EOpNull! +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:14 Sequence +0:14 move second child to first child ( temp mediump 4-component vector of float) +0:14 'fragColor' ( out mediump 4-component vector of float) +0:14 'color' ( noperspective in mediump 4-component vector of float) +0:? Linker Objects +0:? 'bad' ( noperspective in mediump 4-component vector of float) +0:? 'color' ( noperspective in mediump 4-component vector of float) +0:? 'fragColor' ( out mediump 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/overlongLiteral.frag.out b/deps/glslang/glslang/Test/baseResults/overlongLiteral.frag.out new file mode 100644 index 0000000000..372d777754 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/overlongLiteral.frag.out @@ -0,0 +1,19 @@ +overlongLiteral.frag +ERROR: 0:1: '' : hexadecimal literal too long +ERROR: 0:1: '' : syntax error, unexpected INTCONSTANT +ERROR: 2 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out b/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out new file mode 100644 index 0000000000..f55f9bc44c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/pointCoord.frag.out @@ -0,0 +1,69 @@ +pointCoord.frag +Shader version: 100 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:? Sequence +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Compare Less Than ( temp bool) +0:9 length ( global mediump float) +0:9 'gl_PointCoord' ( gl_PointCoord mediump 2-component vector of float PointCoord) +0:9 Constant: +0:9 0.300000 +0:9 true case +0:10 move second child to first child ( temp highp 4-component vector of float) +0:10 'color' ( temp highp 4-component vector of float) +0:10 texture ( global lowp 4-component vector of float, operation at mediump) +0:10 'sampler' ( uniform lowp sampler2D) +0:10 'gl_PointCoord' ( gl_PointCoord mediump 2-component vector of float PointCoord) +0:9 false case +0:12 move second child to first child ( temp highp 4-component vector of float) +0:12 'color' ( temp highp 4-component vector of float) +0:12 Constant: +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:14 move second child to first child ( temp highp 4-component vector of float) +0:14 'gl_FragColor' ( fragColor mediump 4-component vector of float FragColor) +0:14 'color' ( temp highp 4-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform lowp sampler2D) + + +Linked fragment stage: + + +Shader version: 100 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:? Sequence +0:9 Test condition and select ( temp void) +0:9 Condition +0:9 Compare Less Than ( temp bool) +0:9 length ( global mediump float) +0:9 'gl_PointCoord' ( gl_PointCoord mediump 2-component vector of float PointCoord) +0:9 Constant: +0:9 0.300000 +0:9 true case +0:10 move second child to first child ( temp highp 4-component vector of float) +0:10 'color' ( temp highp 4-component vector of float) +0:10 texture ( global lowp 4-component vector of float, operation at mediump) +0:10 'sampler' ( uniform lowp sampler2D) +0:10 'gl_PointCoord' ( gl_PointCoord mediump 2-component vector of float PointCoord) +0:9 false case +0:12 move second child to first child ( temp highp 4-component vector of float) +0:12 'color' ( temp highp 4-component vector of float) +0:12 Constant: +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:12 0.000000 +0:14 move second child to first child ( temp highp 4-component vector of float) +0:14 'gl_FragColor' ( fragColor mediump 4-component vector of float FragColor) +0:14 'color' ( temp highp 4-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform lowp sampler2D) + diff --git a/deps/glslang/glslang/Test/baseResults/precise.tesc.out b/deps/glslang/glslang/Test/baseResults/precise.tesc.out new file mode 100644 index 0000000000..abe56f7509 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/precise.tesc.out @@ -0,0 +1,396 @@ +precise.tesc +Shader version: 450 +Requested GL_EXT_gpu_shader5 +Requested GL_EXT_shader_io_blocks +Requested GL_EXT_tessellation_shader +vertices = -1 +0:? Sequence +0:5 Function Definition: minimal( ( global float) +0:5 Function Parameters: +0:6 Sequence +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'result' ( noContraction temp float) +0:6 Constant: +0:6 5.000000 +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'a' ( noContraction temp float) +0:7 Constant: +0:7 10.000000 +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'b' ( noContraction temp float) +0:8 Constant: +0:8 20.000000 +0:9 Sequence +0:9 move second child to first child ( temp float) +0:9 'c' ( noContraction temp float) +0:9 Constant: +0:9 30.000000 +0:10 Sequence +0:10 move second child to first child ( temp float) +0:10 'd' ( noContraction temp float) +0:10 Constant: +0:10 40.000000 +0:11 move second child to first child ( temp float) +0:11 'result' ( noContraction temp float) +0:11 add ( noContraction temp float) +0:11 component-wise multiply ( noContraction temp float) +0:11 'a' ( noContraction temp float) +0:11 'b' ( noContraction temp float) +0:11 component-wise multiply ( noContraction temp float) +0:11 'c' ( noContraction temp float) +0:11 'd' ( noContraction temp float) +0:12 Branch: Return with expression +0:12 'result' ( noContraction temp float) +0:15 Function Definition: continuous_assignment( ( global void) +0:15 Function Parameters: +0:16 Sequence +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'result' ( noContraction temp float) +0:16 Constant: +0:16 5.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'a' ( noContraction temp float) +0:17 Constant: +0:17 10.000000 +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'b' ( noContraction temp float) +0:18 Constant: +0:18 20.000000 +0:19 move second child to first child ( temp float) +0:19 'result' ( noContraction temp float) +0:19 move second child to first child ( temp float) +0:19 'a' ( noContraction temp float) +0:19 add ( noContraction temp float) +0:19 'b' ( noContraction temp float) +0:19 Constant: +0:19 4.000000 +0:22 Function Definition: convert( ( global void) +0:22 Function Parameters: +0:? Sequence +0:24 Sequence +0:24 move second child to first child ( temp float) +0:24 'a' ( noContraction temp float) +0:24 Constant: +0:24 10.000000 +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'b' ( noContraction temp float) +0:25 Constant: +0:25 20.000000 +0:26 move second child to first child ( temp float) +0:26 'b' ( noContraction temp float) +0:26 add ( noContraction temp float) +0:26 'a' ( noContraction temp float) +0:26 'b' ( noContraction temp float) +0:27 move second child to first child ( temp double) +0:27 'result' ( noContraction temp double) +0:27 Convert float to double ( temp double) +0:27 'b' ( noContraction temp float) +0:30 Function Definition: loop_for( ( global float) +0:30 Function Parameters: +0:31 Sequence +0:31 Sequence +0:31 move second child to first child ( temp float) +0:31 'r1' ( noContraction temp float) +0:31 Constant: +0:31 5.000000 +0:32 Sequence +0:32 move second child to first child ( temp float) +0:32 'r2' ( noContraction temp float) +0:32 Constant: +0:32 10.000000 +0:33 Sequence +0:33 move second child to first child ( temp int) +0:33 'a' ( temp int) +0:33 Constant: +0:33 10 (const int) +0:34 Sequence +0:34 move second child to first child ( temp int) +0:34 'b' ( noContraction temp int) +0:34 Constant: +0:34 20 (const int) +0:35 Sequence +0:35 move second child to first child ( temp int) +0:35 'c' ( noContraction temp int) +0:35 Constant: +0:35 30 (const int) +0:36 Sequence +0:36 Sequence +0:36 move second child to first child ( temp int) +0:36 'i' ( noContraction temp int) +0:36 Constant: +0:36 0 (const int) +0:36 Loop with condition tested first +0:36 Loop Condition +0:36 Compare Less Than ( temp bool) +0:36 'i' ( temp int) +0:36 'a' ( temp int) +0:36 Loop Body +0:37 Sequence +0:37 add second child into first child ( noContraction temp float) +0:37 'r1' ( noContraction temp float) +0:37 add ( noContraction temp float) +0:37 add ( noContraction temp float) +0:37 Constant: +0:37 3.120000 +0:37 Convert int to float ( temp float) +0:37 'b' ( noContraction temp int) +0:37 Convert int to float ( temp float) +0:37 'i' ( noContraction temp int) +0:38 add second child into first child ( noContraction temp int) +0:38 'c' ( noContraction temp int) +0:38 Constant: +0:38 1 (const int) +0:36 Loop Terminal Expression +0:36 Post-Increment ( noContraction temp int) +0:36 'i' ( noContraction temp int) +0:40 add second child into first child ( temp int) +0:40 'a' ( temp int) +0:40 Constant: +0:40 1 (const int) +0:41 move second child to first child ( temp float) +0:41 'r2' ( noContraction temp float) +0:41 Convert int to float ( temp float) +0:41 'c' ( noContraction temp int) +0:42 Branch: Return with expression +0:42 Construct float ( temp float) +0:42 add ( temp float) +0:42 'r1' ( noContraction temp float) +0:42 'r2' ( noContraction temp float) +0:45 Function Definition: loop_array( ( global void) +0:45 Function Parameters: +0:? Sequence +0:48 Sequence +0:48 move second child to first child ( temp int) +0:48 'x' ( noContraction temp int) +0:48 Constant: +0:48 22 (const int) +0:49 Sequence +0:49 move second child to first child ( temp int) +0:49 'y' ( noContraction temp int) +0:49 Constant: +0:49 33 (const int) +0:52 add second child into first child ( noContraction temp float) +0:52 'result' ( noContraction temp float) +0:52 add ( noContraction temp float) +0:52 Convert int to float ( temp float) +0:52 'x' ( noContraction temp int) +0:52 Convert int to float ( temp float) +0:52 'y' ( noContraction temp int) +0:54 Sequence +0:54 Sequence +0:54 move second child to first child ( temp int) +0:54 'i' ( temp int) +0:54 Constant: +0:54 0 (const int) +0:54 Loop with condition tested first +0:54 Loop Condition +0:54 Compare Less Than ( temp bool) +0:54 'i' ( temp int) +0:54 Constant: +0:54 3 (const int) +0:54 Loop Body +0:56 Sequence +0:56 add second child into first child ( noContraction temp float) +0:56 'result' ( noContraction temp float) +0:56 add ( noContraction temp float) +0:56 indirect index ( noContraction temp float) +0:56 'a0' ( temp 3-element array of float) +0:56 'i' ( temp int) +0:56 Constant: +0:56 2.000000 +0:58 move second child to first child ( temp float) +0:58 indirect index ( noContraction temp float) +0:58 'a0' ( noContraction temp 3-element array of float) +0:58 'i' ( temp int) +0:58 subtract ( noContraction temp float) +0:58 Constant: +0:58 3.000000 +0:58 Post-Increment ( noContraction temp float) +0:58 'result' ( noContraction temp float) +0:54 Loop Terminal Expression +0:54 Pre-Increment ( temp int) +0:54 'i' ( temp int) +0:62 Function Definition: loop_while( ( global void) +0:62 Function Parameters: +0:63 Sequence +0:63 Sequence +0:63 move second child to first child ( temp float) +0:63 'result' ( noContraction temp float) +0:63 Constant: +0:63 5.000000 +0:64 Sequence +0:64 move second child to first child ( temp int) +0:64 'a' ( noContraction temp int) +0:64 Constant: +0:64 10 (const int) +0:65 Sequence +0:65 move second child to first child ( temp int) +0:65 'b' ( noContraction temp int) +0:65 Constant: +0:65 20 (const int) +0:66 Loop with condition tested first +0:66 Loop Condition +0:66 Compare Less Than ( temp bool) +0:66 'result' ( noContraction temp float) +0:66 Constant: +0:66 10.000000 +0:66 Loop Body +0:67 Sequence +0:67 add second child into first child ( noContraction temp float) +0:67 'result' ( noContraction temp float) +0:67 add ( noContraction temp float) +0:67 Constant: +0:67 3.120000 +0:67 Convert int to float ( temp float) +0:67 'b' ( noContraction temp int) +0:69 move second child to first child ( temp float) +0:69 'result' ( noContraction temp float) +0:69 Convert int to float ( temp float) +0:69 add ( temp int) +0:69 add ( temp int) +0:69 'a' ( noContraction temp int) +0:69 'b' ( noContraction temp int) +0:69 Constant: +0:69 5 (const int) +0:70 move second child to first child ( temp float) +0:70 'result' ( noContraction temp float) +0:70 Constant: +0:70 11.100000 +0:73 Function Definition: fma_not_decorated( ( global float) +0:73 Function Parameters: +0:? Sequence +0:75 Sequence +0:75 move second child to first child ( temp float) +0:75 'a' ( noContraction temp float) +0:75 Constant: +0:75 1.000000 +0:76 Sequence +0:76 move second child to first child ( temp float) +0:76 'b' ( noContraction temp float) +0:76 Constant: +0:76 2.000000 +0:77 Sequence +0:77 move second child to first child ( temp float) +0:77 'c' ( noContraction temp float) +0:77 Constant: +0:77 3.000000 +0:78 move second child to first child ( temp float) +0:78 'b' ( noContraction temp float) +0:78 add ( noContraction temp float) +0:78 'b' ( noContraction temp float) +0:78 'c' ( noContraction temp float) +0:79 move second child to first child ( temp float) +0:79 'result' ( noContraction temp float) +0:79 fma ( global float) +0:79 'a' ( noContraction temp float) +0:79 'b' ( noContraction temp float) +0:79 'c' ( noContraction temp float) +0:80 Branch: Return with expression +0:80 'result' ( noContraction temp float) +0:83 Function Definition: precise_return_exp_func( ( noContraction temp float) +0:83 Function Parameters: +0:84 Sequence +0:84 Sequence +0:84 move second child to first child ( temp float) +0:84 'a' ( noContraction temp float) +0:84 Constant: +0:84 1.000000 +0:85 Sequence +0:85 move second child to first child ( temp float) +0:85 'b' ( noContraction temp float) +0:85 Constant: +0:85 2.000000 +0:86 Branch: Return with expression +0:86 add ( noContraction temp float) +0:86 'a' ( noContraction temp float) +0:86 'b' ( noContraction temp float) +0:89 Function Definition: precise_return_val_func( ( noContraction temp float) +0:89 Function Parameters: +0:90 Sequence +0:90 Sequence +0:90 move second child to first child ( temp float) +0:90 'a' ( noContraction temp float) +0:90 Constant: +0:90 1.000000 +0:91 Sequence +0:91 move second child to first child ( temp float) +0:91 'b' ( noContraction temp float) +0:91 Constant: +0:91 2.000000 +0:92 Sequence +0:92 move second child to first child ( temp float) +0:92 'result' ( noContraction temp float) +0:92 add ( noContraction temp float) +0:92 'a' ( noContraction temp float) +0:92 'b' ( noContraction temp float) +0:93 Branch: Return with expression +0:93 'result' ( noContraction temp float) +0:96 Function Definition: precise_func_parameter(f1;f1; ( global float) +0:96 Function Parameters: +0:96 'b' ( in float) +0:96 'c' ( noContraction out float) +0:97 Sequence +0:97 Sequence +0:97 move second child to first child ( temp float) +0:97 'a' ( noContraction temp float) +0:97 Constant: +0:97 0.500000 +0:98 move second child to first child ( temp float) +0:98 'c' ( noContraction out float) +0:98 add ( noContraction temp float) +0:98 'a' ( noContraction temp float) +0:98 'b' ( noContraction in float) +0:99 Branch: Return with expression +0:99 subtract ( temp float) +0:99 'a' ( temp float) +0:99 'b' ( in float) +0:102 Function Definition: matrix(mf23;mf32; ( global 3X3 matrix of float) +0:102 Function Parameters: +0:102 'a' ( in 2X3 matrix of float) +0:102 'b' ( in 3X2 matrix of float) +0:103 Sequence +0:103 Sequence +0:103 move second child to first child ( temp 2X3 matrix of float) +0:103 'c' ( noContraction temp 2X3 matrix of float) +0:103 Constant: +0:103 1.000000 +0:103 2.000000 +0:103 3.000000 +0:103 4.000000 +0:103 5.000000 +0:103 6.000000 +0:105 move second child to first child ( temp 3X3 matrix of float) +0:105 'result' ( noContraction temp 3X3 matrix of float) +0:105 matrix-multiply ( noContraction temp 3X3 matrix of float) +0:105 add ( noContraction temp 2X3 matrix of float) +0:105 'a' ( noContraction in 2X3 matrix of float) +0:105 'c' ( noContraction temp 2X3 matrix of float) +0:105 'b' ( noContraction in 3X2 matrix of float) +0:106 Branch: Return with expression +0:106 'result' ( noContraction temp 3X3 matrix of float) +0:109 Function Definition: main( ( global void) +0:109 Function Parameters: +0:? Linker Objects + + +Linked tessellation control stage: + +ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...) + +Shader version: 450 +Requested GL_EXT_gpu_shader5 +Requested GL_EXT_shader_io_blocks +Requested GL_EXT_tessellation_shader +vertices = -1 +0:? Sequence +0:109 Function Definition: main( ( global void) +0:109 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/precise_struct_block.vert.out b/deps/glslang/glslang/Test/baseResults/precise_struct_block.vert.out new file mode 100644 index 0000000000..a239e95de2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/precise_struct_block.vert.out @@ -0,0 +1,534 @@ +precise_struct_block.vert +Shader version: 450 +0:? Sequence +0:11 Function Definition: struct_member( ( global float) +0:11 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp float) +0:12 'a' ( noContraction temp float) +0:12 Constant: +0:12 1.000000 +0:13 Sequence +0:13 move second child to first child ( temp float) +0:13 'b' ( temp float) +0:13 Constant: +0:13 2.000000 +0:14 Sequence +0:14 move second child to first child ( temp float) +0:14 'c' ( temp float) +0:14 Constant: +0:14 3.000000 +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'd' ( temp float) +0:15 Constant: +0:15 4.000000 +0:21 move second child to first child ( temp float) +0:21 f1: direct index for structure ( noContraction global float) +0:21 'S2' ( temp structure{ global float f1, global float f2}) +0:21 Constant: +0:21 0 (const int) +0:21 add ( noContraction temp float) +0:21 'a' ( noContraction temp float) +0:21 Constant: +0:21 0.200000 +0:22 move second child to first child ( temp float) +0:22 f2: direct index for structure ( global float) +0:22 'S2' ( temp structure{ global float f1, global float f2}) +0:22 Constant: +0:22 1 (const int) +0:22 add ( temp float) +0:22 'b' ( temp float) +0:22 Constant: +0:22 0.200000 +0:23 move second child to first child ( temp float) +0:23 f1: direct index for structure ( global float) +0:23 'S3' ( temp structure{ global float f1, global float f2}) +0:23 Constant: +0:23 0 (const int) +0:23 add ( temp float) +0:23 'a' ( temp float) +0:23 'b' ( temp float) +0:24 move second child to first child ( temp structure{ global float f1, global float f2}) +0:24 'S' ( temp structure{ global float f1, global float f2}) +0:24 'S2' ( temp structure{ global float f1, global float f2}) +0:25 move second child to first child ( temp float) +0:25 'result' ( noContraction temp float) +0:25 add ( noContraction temp float) +0:25 f1: direct index for structure ( noContraction global float) +0:25 'S' ( temp structure{ global float f1, global float f2}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.100000 +0:27 Branch: Return with expression +0:27 'result' ( noContraction temp float) +0:30 Function Definition: complex_array_struct( ( global float) +0:30 Function Parameters: +0:? Sequence +0:43 Sequence +0:43 Sequence +0:43 move second child to first child ( temp int) +0:43 'i' ( noContraction temp int) +0:43 Constant: +0:43 0 (const int) +0:43 Loop with condition tested first +0:43 Loop Condition +0:43 Compare Less Than ( temp bool) +0:43 'i' ( temp int) +0:43 Constant: +0:43 10 (const int) +0:43 Loop Body +0:44 Sequence +0:44 move second child to first child ( temp float) +0:44 f: direct index for structure ( temp float) +0:44 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:44 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:44 'i' ( temp int) +0:44 Constant: +0:44 0 (const int) +0:44 divide ( temp float) +0:44 Convert int to float ( temp float) +0:44 'i' ( temp int) +0:44 Constant: +0:44 3.000000 +0:45 move second child to first child ( temp 4-component vector of float) +0:45 v: direct index for structure ( noContraction temp 4-component vector of float) +0:45 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:45 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:45 'i' ( temp int) +0:45 Constant: +0:45 2 (const int) +0:45 Construct vec4 ( temp 4-component vector of float) +0:45 component-wise multiply ( noContraction temp float) +0:45 Convert int to float ( temp float) +0:45 'i' ( noContraction temp int) +0:45 Constant: +0:45 1.500000 +0:46 move second child to first child ( temp int) +0:46 p: direct index for structure ( temp int) +0:46 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:46 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:46 'i' ( temp int) +0:46 Constant: +0:46 3 (const int) +0:46 add ( temp int) +0:46 'i' ( temp int) +0:46 Constant: +0:46 1 (const int) +0:47 Sequence +0:47 Sequence +0:47 move second child to first child ( temp int) +0:47 'j' ( temp int) +0:47 Constant: +0:47 0 (const int) +0:47 Loop with condition tested first +0:47 Loop Condition +0:47 Compare Less Than ( temp bool) +0:47 'j' ( temp int) +0:47 Constant: +0:47 5 (const int) +0:47 Loop Body +0:48 Sequence +0:48 Sequence +0:48 Sequence +0:48 move second child to first child ( temp int) +0:48 'k' ( temp int) +0:48 Constant: +0:48 0 (const int) +0:48 Loop with condition tested first +0:48 Loop Condition +0:48 Compare Less Than ( temp bool) +0:48 'k' ( temp int) +0:48 Constant: +0:48 3 (const int) +0:48 Loop Body +0:49 Sequence +0:49 move second child to first child ( temp float) +0:49 indirect index ( temp float) +0:49 t1_array: direct index for structure ( temp 3-element array of float) +0:49 indirect index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:49 t1a: direct index for structure ( temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:49 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:49 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:49 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:49 'i' ( temp int) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 0 (const int) +0:49 'j' ( temp int) +0:49 Constant: +0:49 0 (const int) +0:49 'k' ( temp int) +0:49 Convert int to float ( temp float) +0:49 add ( temp int) +0:49 component-wise multiply ( temp int) +0:49 'i' ( temp int) +0:49 'j' ( temp int) +0:49 'k' ( temp int) +0:48 Loop Terminal Expression +0:48 Post-Increment ( temp int) +0:48 'k' ( temp int) +0:51 move second child to first child ( temp float) +0:51 t1_scalar: direct index for structure ( temp float) +0:51 indirect index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:51 t1a: direct index for structure ( temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:51 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:51 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:51 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:51 'i' ( temp int) +0:51 Constant: +0:51 1 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 'j' ( temp int) +0:51 Constant: +0:51 1 (const int) +0:51 divide ( temp float) +0:51 component-wise multiply ( temp float) +0:51 Convert int to float ( temp float) +0:51 'j' ( temp int) +0:51 Constant: +0:51 2.000000 +0:51 Convert int to float ( temp float) +0:51 'i' ( temp int) +0:47 Loop Terminal Expression +0:47 Post-Increment ( temp int) +0:47 'j' ( temp int) +0:54 Sequence +0:54 Sequence +0:54 move second child to first child ( temp int) +0:54 'j' ( noContraction temp int) +0:54 Constant: +0:54 0 (const int) +0:54 Loop with condition tested first +0:54 Loop Condition +0:54 Compare Less Than ( temp bool) +0:54 'j' ( temp int) +0:54 Constant: +0:54 6 (const int) +0:54 Loop Body +0:55 Sequence +0:55 Sequence +0:55 Sequence +0:55 move second child to first child ( temp int) +0:55 'k' ( temp int) +0:55 Constant: +0:55 0 (const int) +0:55 Loop with condition tested first +0:55 Loop Condition +0:55 Compare Less Than ( temp bool) +0:55 'k' ( temp int) +0:55 Constant: +0:55 3 (const int) +0:55 Loop Body +0:56 Sequence +0:56 move second child to first child ( temp float) +0:56 indirect index ( temp float) +0:56 t1_array: direct index for structure ( temp 3-element array of float) +0:56 indirect index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:56 t1b: direct index for structure ( temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:56 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:56 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:56 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:56 'i' ( temp int) +0:56 Constant: +0:56 1 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 'j' ( temp int) +0:56 Constant: +0:56 0 (const int) +0:56 'k' ( temp int) +0:56 Convert int to float ( temp float) +0:56 add ( temp int) +0:56 component-wise multiply ( temp int) +0:56 'i' ( temp int) +0:56 'j' ( temp int) +0:56 'k' ( temp int) +0:55 Loop Terminal Expression +0:55 Post-Increment ( temp int) +0:55 'k' ( temp int) +0:58 move second child to first child ( temp float) +0:58 t1_scalar: direct index for structure ( noContraction temp float) +0:58 indirect index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:58 t1b: direct index for structure ( temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:58 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:58 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:58 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:58 'i' ( temp int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 'j' ( temp int) +0:58 Constant: +0:58 1 (const int) +0:58 divide ( noContraction temp float) +0:58 component-wise multiply ( noContraction temp float) +0:58 Convert int to float ( temp float) +0:58 'j' ( noContraction temp int) +0:58 Constant: +0:58 2.000000 +0:58 Convert int to float ( temp float) +0:58 'i' ( noContraction temp int) +0:54 Loop Terminal Expression +0:54 Post-Increment ( noContraction temp int) +0:54 'j' ( noContraction temp int) +0:61 Sequence +0:61 Sequence +0:61 move second child to first child ( temp int) +0:61 'j' ( noContraction temp int) +0:61 Constant: +0:61 0 (const int) +0:61 Loop with condition tested first +0:61 Loop Condition +0:61 Compare Less Than ( temp bool) +0:61 'j' ( temp int) +0:61 Constant: +0:61 6 (const int) +0:61 Loop Body +0:62 Sequence +0:62 Sequence +0:62 Sequence +0:62 move second child to first child ( temp int) +0:62 'k' ( noContraction temp int) +0:62 Constant: +0:62 0 (const int) +0:62 Loop with condition tested first +0:62 Loop Condition +0:62 Compare Less Than ( temp bool) +0:62 'k' ( temp int) +0:62 Constant: +0:62 3 (const int) +0:62 Loop Body +0:63 Sequence +0:63 move second child to first child ( temp float) +0:63 indirect index ( noContraction temp float) +0:63 t1_array: direct index for structure ( noContraction temp 3-element array of float) +0:63 indirect index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:63 t1c: direct index for structure ( temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:63 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:63 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:63 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:63 'i' ( temp int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 'j' ( temp int) +0:63 Constant: +0:63 0 (const int) +0:63 'k' ( temp int) +0:63 Convert int to float ( temp float) +0:63 add ( temp int) +0:63 component-wise multiply ( temp int) +0:63 'i' ( noContraction temp int) +0:63 'j' ( noContraction temp int) +0:63 'k' ( noContraction temp int) +0:62 Loop Terminal Expression +0:62 Post-Increment ( noContraction temp int) +0:62 'k' ( noContraction temp int) +0:65 move second child to first child ( temp float) +0:65 t1_scalar: direct index for structure ( temp float) +0:65 indirect index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:65 t1c: direct index for structure ( temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:65 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:65 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:65 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:65 'i' ( temp int) +0:65 Constant: +0:65 1 (const int) +0:65 Constant: +0:65 2 (const int) +0:65 'j' ( temp int) +0:65 Constant: +0:65 1 (const int) +0:65 divide ( temp float) +0:65 component-wise multiply ( temp float) +0:65 Convert int to float ( temp float) +0:65 'j' ( temp int) +0:65 Constant: +0:65 2.000000 +0:65 Convert int to float ( temp float) +0:65 'i' ( temp int) +0:61 Loop Terminal Expression +0:61 Post-Increment ( noContraction temp int) +0:61 'j' ( noContraction temp int) +0:43 Loop Terminal Expression +0:43 Post-Increment ( noContraction temp int) +0:43 'i' ( noContraction temp int) +0:68 Sequence +0:68 move second child to first child ( temp int) +0:68 'i' ( temp int) +0:68 Constant: +0:68 2 (const int) +0:69 move second child to first child ( temp float) +0:69 'result' ( noContraction temp float) +0:71 add ( noContraction temp float) +0:70 add ( noContraction temp float) +0:69 direct index ( noContraction temp float) +0:69 t1_array: direct index for structure ( temp 3-element array of float) +0:69 direct index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:69 t1c: direct index for structure ( temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:69 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:69 direct index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:69 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:69 Constant: +0:69 5 (const int) +0:69 Constant: +0:69 1 (const int) +0:69 Constant: +0:69 2 (const int) +0:69 Constant: +0:69 6 (const int) +0:69 Constant: +0:69 0 (const int) +0:69 Constant: +0:69 1 (const int) +0:70 t1_scalar: direct index for structure ( noContraction temp float) +0:70 direct index ( temp structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:70 t1b: direct index for structure ( temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar}) +0:70 t2: direct index for structure ( temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c}) +0:70 direct index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:70 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:70 Constant: +0:70 2 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 Constant: +0:70 1 (const int) +0:71 direct index ( noContraction temp float) +0:71 vector swizzle ( temp 2-component vector of float) +0:71 v: direct index for structure ( temp 4-component vector of float) +0:71 indirect index ( temp structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:71 't3' ( temp 10-element array of structure{ temp float f, temp structure{ temp 5-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{ temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) +0:71 subtract ( temp int) +0:71 'i' ( temp int) +0:71 Constant: +0:71 1 (const int) +0:71 Constant: +0:71 2 (const int) +0:71 Sequence +0:71 Constant: +0:71 0 (const int) +0:71 Constant: +0:71 1 (const int) +0:71 Constant: +0:71 0 (const int) +0:72 Branch: Return with expression +0:72 'result' ( noContraction temp float) +0:75 Function Definition: out_block( ( global float) +0:75 Function Parameters: +0:76 Sequence +0:76 Sequence +0:76 move second child to first child ( temp float) +0:76 'a' ( noContraction temp float) +0:76 Constant: +0:76 0.100000 +0:77 Sequence +0:77 move second child to first child ( temp float) +0:77 'b' ( noContraction temp float) +0:77 Constant: +0:77 0.200000 +0:78 move second child to first child ( temp float) +0:78 f1: direct index for structure ( noContraction global float) +0:78 s: direct index for structure ( noContraction out structure{ global float f1, global float f2}) +0:78 'partial_precise_block' ( out block{ noContraction out structure{ global float f1, global float f2} s, out float x}) +0:78 Constant: +0:78 0 (const int) +0:78 Constant: +0:78 0 (const int) +0:78 add ( noContraction temp float) +0:78 'a' ( noContraction temp float) +0:78 'b' ( noContraction temp float) +0:79 move second child to first child ( temp float) +0:79 f2: direct index for structure ( noContraction global float) +0:79 s: direct index for structure ( noContraction out structure{ global float f1, global float f2}) +0:79 'partial_precise_block' ( out block{ noContraction out structure{ global float f1, global float f2} s, out float x}) +0:79 Constant: +0:79 0 (const int) +0:79 Constant: +0:79 1 (const int) +0:79 subtract ( noContraction temp float) +0:79 'a' ( noContraction temp float) +0:79 'b' ( noContraction temp float) +0:80 move second child to first child ( temp float) +0:80 x: direct index for structure ( out float) +0:80 'partial_precise_block' ( out block{ noContraction out structure{ global float f1, global float f2} s, out float x}) +0:80 Constant: +0:80 1 (const int) +0:80 component-wise multiply ( temp float) +0:80 'a' ( temp float) +0:80 'b' ( temp float) +0:82 move second child to first child ( temp float) +0:82 f1: direct index for structure ( noContraction global float) +0:82 s: direct index for structure ( noContraction out structure{ global float f1, global float f2}) +0:82 'all_precise_block' ( noContraction out block{ out structure{ global float f1, global float f2} s, out float x}) +0:82 Constant: +0:82 0 (const int) +0:82 Constant: +0:82 0 (const int) +0:82 add ( noContraction temp float) +0:82 add ( noContraction temp float) +0:82 'a' ( noContraction temp float) +0:82 'b' ( noContraction temp float) +0:82 Constant: +0:82 1.000000 +0:83 move second child to first child ( temp float) +0:83 f2: direct index for structure ( noContraction global float) +0:83 s: direct index for structure ( noContraction out structure{ global float f1, global float f2}) +0:83 'all_precise_block' ( noContraction out block{ out structure{ global float f1, global float f2} s, out float x}) +0:83 Constant: +0:83 0 (const int) +0:83 Constant: +0:83 1 (const int) +0:83 subtract ( noContraction temp float) +0:83 subtract ( noContraction temp float) +0:83 'a' ( noContraction temp float) +0:83 'b' ( noContraction temp float) +0:83 Constant: +0:83 1.000000 +0:84 move second child to first child ( temp float) +0:84 x: direct index for structure ( noContraction out float) +0:84 'all_precise_block' ( noContraction out block{ out structure{ global float f1, global float f2} s, out float x}) +0:84 Constant: +0:84 1 (const int) +0:84 component-wise multiply ( noContraction temp float) +0:84 component-wise multiply ( noContraction temp float) +0:84 'a' ( noContraction temp float) +0:84 'b' ( noContraction temp float) +0:84 Constant: +0:84 2.000000 +0:86 Branch: Return with expression +0:86 add ( temp float) +0:86 'a' ( temp float) +0:86 'b' ( temp float) +0:89 Function Definition: main( ( global void) +0:89 Function Parameters: +0:? Linker Objects +0:? 'partial_precise_block' ( out block{ noContraction out structure{ global float f1, global float f2} s, out float x}) +0:? 'all_precise_block' ( noContraction out block{ out structure{ global float f1, global float f2} s, out float x}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:89 Function Definition: main( ( global void) +0:89 Function Parameters: +0:? Linker Objects +0:? 'partial_precise_block' ( out block{ noContraction out structure{ global float f1, global float f2} s, out float x}) +0:? 'all_precise_block' ( noContraction out block{ out structure{ global float f1, global float f2} s, out float x}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/precision.frag.out b/deps/glslang/glslang/Test/baseResults/precision.frag.out new file mode 100644 index 0000000000..7174049fca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/precision.frag.out @@ -0,0 +1,233 @@ +precision.frag +ERROR: 0:3: 'float' : type requires declaration of default precision qualifier +ERROR: 0:18: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:19: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:21: 'float' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:72: 'bool' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:75: 'structure' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type +ERROR: 0:76: 'bool' : type cannot have precision qualifier +ERROR: 7 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:5 Function Definition: foo(vf3; ( global lowp 2-component vector of float) +0:5 Function Parameters: +0:5 'mv3' ( in mediump 3-component vector of float) +0:? Sequence +0:8 Branch: Return with expression +0:8 vector swizzle ( temp highp 2-component vector of float) +0:8 'hv4' ( temp highp 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 Sequence +0:27 move second child to first child ( temp highp int) +0:27 'sum' ( temp lowp int) +0:27 add ( temp highp int) +0:27 'global_medium' ( global mediump int) +0:27 'global_high' ( global highp int) +0:29 move second child to first child ( temp mediump 4-component vector of float) +0:29 'gl_FragColor' ( fragColor mediump 4-component vector of float FragColor) +0:29 Construct vec4 ( temp mediump 4-component vector of float) +0:29 'color' ( smooth in mediump 3-component vector of float) +0:29 Constant: +0:29 1.000000 +0:32 add second child into first child ( temp highp int) +0:32 'sum' ( temp lowp int) +0:32 'level1_high' ( temp highp int) +0:36 add second child into first child ( temp lowp int) +0:36 'sum' ( temp lowp int) +0:36 'level1_low' ( temp lowp int) +0:41 Sequence +0:41 move second child to first child ( temp mediump float) +0:41 'd' ( temp lowp float) +0:41 distance ( global mediump float) +0:41 'arg1' ( temp lowp float) +0:41 'arg2' ( temp mediump float) +0:? Sequence +0:45 add second child into first child ( temp lowp int) +0:45 'sum' ( temp lowp int) +0:45 'level2_low' ( temp lowp int) +0:49 add second child into first child ( temp highp int) +0:49 'sum' ( temp lowp int) +0:49 'level2_high' ( temp highp int) +0:58 Loop with condition not tested first +0:58 Loop Condition +0:58 Constant: +0:58 true (const bool) +0:58 Loop Body +0:51 Sequence +0:51 Test condition and select ( temp void) +0:51 Condition +0:51 Constant: +0:51 true (const bool) +0:51 true case +0:? Sequence +0:54 add second child into first child ( temp mediump int) +0:54 'sum' ( temp lowp int) +0:54 'level4_medium' ( temp mediump int) +0:57 add second child into first child ( temp highp int) +0:57 'sum' ( temp lowp int) +0:57 'level3_high' ( temp highp int) +0:60 add second child into first child ( temp highp int) +0:60 'sum' ( temp lowp int) +0:60 'level2_high2' ( temp highp int) +0:63 add second child into first child ( temp lowp int) +0:63 'sum' ( temp lowp int) +0:63 'level1_low3' ( temp lowp int) +0:65 add second child into first child ( temp lowp int) +0:65 'sum' ( temp lowp int) +0:65 add ( temp lowp int) +0:65 Constant: +0:65 4 (const int) +0:65 direct index ( temp lowp int) +0:65 add ( temp lowp 2-component vector of int) +0:65 component-wise multiply ( temp lowp 2-component vector of int) +0:65 Construct ivec2 ( temp lowp 2-component vector of int) +0:65 'level1_low3' ( temp lowp int) +0:65 Construct ivec2 ( temp lowp 2-component vector of int) +0:65 'level1_high' ( temp highp int) +0:65 Construct ivec2 ( temp lowp 2-component vector of int) +0:65 Comma ( temp highp int) +0:65 'level1_low3' ( temp lowp int) +0:65 'level1_high' ( temp highp int) +0:65 Constant: +0:65 0 (const int) +0:67 texture ( global lowp 4-component vector of float) +0:67 'samplerLow' ( uniform lowp sampler2D) +0:67 Constant: +0:67 0.100000 +0:67 0.200000 +0:68 texture ( global mediump 4-component vector of float) +0:68 'samplerMed' ( uniform mediump sampler2D) +0:68 Constant: +0:68 0.100000 +0:68 0.200000 +0:69 texture ( global highp 4-component vector of float) +0:69 'samplerHigh' ( uniform highp sampler2D) +0:69 Constant: +0:69 0.100000 +0:69 0.200000 +0:? Linker Objects +0:? 'color' ( smooth in mediump 3-component vector of float) +0:? 'global_medium' ( global mediump int) +0:? 'samplerLow' ( uniform lowp sampler2D) +0:? 'samplerMed' ( uniform mediump sampler2D) +0:? 'samplerHigh' ( uniform highp sampler2D) +0:? 'uint' ( global mediump 4-component vector of float) +0:? 'global_high' ( global highp int) +0:? 'b2' ( global mediump 2-component vector of bool) + + +Linked fragment stage: + + +Shader version: 100 +ERROR: node is still EOpNull! +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 Sequence +0:27 move second child to first child ( temp highp int) +0:27 'sum' ( temp lowp int) +0:27 add ( temp highp int) +0:27 'global_medium' ( global mediump int) +0:27 'global_high' ( global highp int) +0:29 move second child to first child ( temp mediump 4-component vector of float) +0:29 'gl_FragColor' ( fragColor mediump 4-component vector of float FragColor) +0:29 Construct vec4 ( temp mediump 4-component vector of float) +0:29 'color' ( smooth in mediump 3-component vector of float) +0:29 Constant: +0:29 1.000000 +0:32 add second child into first child ( temp highp int) +0:32 'sum' ( temp lowp int) +0:32 'level1_high' ( temp highp int) +0:36 add second child into first child ( temp lowp int) +0:36 'sum' ( temp lowp int) +0:36 'level1_low' ( temp lowp int) +0:41 Sequence +0:41 move second child to first child ( temp mediump float) +0:41 'd' ( temp lowp float) +0:41 distance ( global mediump float) +0:41 'arg1' ( temp lowp float) +0:41 'arg2' ( temp mediump float) +0:? Sequence +0:45 add second child into first child ( temp lowp int) +0:45 'sum' ( temp lowp int) +0:45 'level2_low' ( temp lowp int) +0:49 add second child into first child ( temp highp int) +0:49 'sum' ( temp lowp int) +0:49 'level2_high' ( temp highp int) +0:58 Loop with condition not tested first +0:58 Loop Condition +0:58 Constant: +0:58 true (const bool) +0:58 Loop Body +0:51 Sequence +0:51 Test condition and select ( temp void) +0:51 Condition +0:51 Constant: +0:51 true (const bool) +0:51 true case +0:? Sequence +0:54 add second child into first child ( temp mediump int) +0:54 'sum' ( temp lowp int) +0:54 'level4_medium' ( temp mediump int) +0:57 add second child into first child ( temp highp int) +0:57 'sum' ( temp lowp int) +0:57 'level3_high' ( temp highp int) +0:60 add second child into first child ( temp highp int) +0:60 'sum' ( temp lowp int) +0:60 'level2_high2' ( temp highp int) +0:63 add second child into first child ( temp lowp int) +0:63 'sum' ( temp lowp int) +0:63 'level1_low3' ( temp lowp int) +0:65 add second child into first child ( temp lowp int) +0:65 'sum' ( temp lowp int) +0:65 add ( temp lowp int) +0:65 Constant: +0:65 4 (const int) +0:65 direct index ( temp lowp int) +0:65 add ( temp lowp 2-component vector of int) +0:65 component-wise multiply ( temp lowp 2-component vector of int) +0:65 Construct ivec2 ( temp lowp 2-component vector of int) +0:65 'level1_low3' ( temp lowp int) +0:65 Construct ivec2 ( temp lowp 2-component vector of int) +0:65 'level1_high' ( temp highp int) +0:65 Construct ivec2 ( temp lowp 2-component vector of int) +0:65 Comma ( temp highp int) +0:65 'level1_low3' ( temp lowp int) +0:65 'level1_high' ( temp highp int) +0:65 Constant: +0:65 0 (const int) +0:67 texture ( global lowp 4-component vector of float) +0:67 'samplerLow' ( uniform lowp sampler2D) +0:67 Constant: +0:67 0.100000 +0:67 0.200000 +0:68 texture ( global mediump 4-component vector of float) +0:68 'samplerMed' ( uniform mediump sampler2D) +0:68 Constant: +0:68 0.100000 +0:68 0.200000 +0:69 texture ( global highp 4-component vector of float) +0:69 'samplerHigh' ( uniform highp sampler2D) +0:69 Constant: +0:69 0.100000 +0:69 0.200000 +0:? Linker Objects +0:? 'color' ( smooth in mediump 3-component vector of float) +0:? 'global_medium' ( global mediump int) +0:? 'samplerLow' ( uniform lowp sampler2D) +0:? 'samplerMed' ( uniform mediump sampler2D) +0:? 'samplerHigh' ( uniform highp sampler2D) +0:? 'uint' ( global mediump 4-component vector of float) +0:? 'global_high' ( global highp int) +0:? 'b2' ( global mediump 2-component vector of bool) + diff --git a/deps/glslang/glslang/Test/baseResults/precision.vert.out b/deps/glslang/glslang/Test/baseResults/precision.vert.out new file mode 100644 index 0000000000..04ceb3a63f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/precision.vert.out @@ -0,0 +1,99 @@ +precision.vert +ERROR: 0:7: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:8: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:14: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 3 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:18 Function Definition: main( ( global void) +0:18 Function Parameters: +0:20 Sequence +0:20 Sequence +0:20 move second child to first child ( temp highp 4-component vector of float) +0:20 't' ( temp highp 4-component vector of float) +0:20 texture ( global lowp 4-component vector of float) +0:20 's2D' ( uniform lowp sampler2D) +0:20 Constant: +0:20 0.100000 +0:20 0.200000 +0:21 add second child into first child ( temp highp 4-component vector of float) +0:21 't' ( temp highp 4-component vector of float) +0:21 texture ( global highp 4-component vector of float) +0:21 's2Dhigh' ( uniform highp sampler2D) +0:21 Constant: +0:21 0.100000 +0:21 0.200000 +0:22 add second child into first child ( temp highp 4-component vector of float) +0:22 't' ( temp highp 4-component vector of float) +0:22 texture ( global mediump float) +0:22 's2dAS' ( uniform mediump sampler2DArrayShadow) +0:22 Constant: +0:22 0.500000 +0:22 0.500000 +0:22 0.500000 +0:22 0.500000 +0:24 move second child to first child ( temp highp 4-component vector of float) +0:24 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:24 'pos' ( in highp 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( in highp 4-component vector of float) +0:? 's2D' ( uniform lowp sampler2D) +0:? 'sCube' ( uniform lowp samplerCube) +0:? 'is2DAbad' ( uniform mediump isampler2DArray) +0:? 's2dASbad' ( uniform mediump sampler2DArrayShadow) +0:? 's2dAS' ( uniform mediump sampler2DArrayShadow) +0:? 'is2DAbad2' ( uniform mediump isampler2DArray) +0:? 's2Dhigh' ( uniform highp sampler2D) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:18 Function Definition: main( ( global void) +0:18 Function Parameters: +0:20 Sequence +0:20 Sequence +0:20 move second child to first child ( temp highp 4-component vector of float) +0:20 't' ( temp highp 4-component vector of float) +0:20 texture ( global lowp 4-component vector of float) +0:20 's2D' ( uniform lowp sampler2D) +0:20 Constant: +0:20 0.100000 +0:20 0.200000 +0:21 add second child into first child ( temp highp 4-component vector of float) +0:21 't' ( temp highp 4-component vector of float) +0:21 texture ( global highp 4-component vector of float) +0:21 's2Dhigh' ( uniform highp sampler2D) +0:21 Constant: +0:21 0.100000 +0:21 0.200000 +0:22 add second child into first child ( temp highp 4-component vector of float) +0:22 't' ( temp highp 4-component vector of float) +0:22 texture ( global mediump float) +0:22 's2dAS' ( uniform mediump sampler2DArrayShadow) +0:22 Constant: +0:22 0.500000 +0:22 0.500000 +0:22 0.500000 +0:22 0.500000 +0:24 move second child to first child ( temp highp 4-component vector of float) +0:24 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:24 'pos' ( in highp 4-component vector of float) +0:? Linker Objects +0:? 'pos' ( in highp 4-component vector of float) +0:? 's2D' ( uniform lowp sampler2D) +0:? 'sCube' ( uniform lowp samplerCube) +0:? 'is2DAbad' ( uniform mediump isampler2DArray) +0:? 's2dASbad' ( uniform mediump sampler2DArrayShadow) +0:? 's2dAS' ( uniform mediump sampler2DArrayShadow) +0:? 'is2DAbad2' ( uniform mediump isampler2DArray) +0:? 's2Dhigh' ( uniform highp sampler2D) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/prepost.frag.out b/deps/glslang/glslang/Test/baseResults/prepost.frag.out new file mode 100644 index 0000000000..d5f73b6d7a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/prepost.frag.out @@ -0,0 +1,271 @@ +prepost.frag +Shader version: 140 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp int) +0:10 'index' ( temp int) +0:10 Constant: +0:10 5 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 y: direct index for structure ( temp 5-element array of float) +0:12 'str' ( temp structure{ temp 5-element array of float y}) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 4 (const int) +0:12 Constant: +0:12 2.000000 +0:13 move second child to first child ( temp float) +0:13 't' ( temp float) +0:13 Pre-Increment ( temp float) +0:13 indirect index ( temp float) +0:13 y: direct index for structure ( temp 5-element array of float) +0:13 'str' ( temp structure{ temp 5-element array of float y}) +0:13 Constant: +0:13 0 (const int) +0:13 Pre-Decrement ( temp int) +0:13 'index' ( temp int) +0:14 add second child into first child ( temp float) +0:14 direct index ( temp float) +0:14 y: direct index for structure ( temp 5-element array of float) +0:14 'str' ( temp structure{ temp 5-element array of float y}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 4 (const int) +0:14 't' ( temp float) +0:15 move second child to first child ( temp float) +0:15 't' ( temp float) +0:15 Post-Decrement ( temp float) +0:15 direct index ( temp float) +0:15 y: direct index for structure ( temp 5-element array of float) +0:15 'str' ( temp structure{ temp 5-element array of float y}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 4 (const int) +0:16 add second child into first child ( temp float) +0:16 indirect index ( temp float) +0:16 y: direct index for structure ( temp 5-element array of float) +0:16 'str' ( temp structure{ temp 5-element array of float y}) +0:16 Constant: +0:16 0 (const int) +0:16 Post-Increment ( temp int) +0:16 'index' ( temp int) +0:16 't' ( temp float) +0:17 Pre-Decrement ( temp float) +0:17 indirect index ( temp float) +0:17 y: direct index for structure ( temp 5-element array of float) +0:17 'str' ( temp structure{ temp 5-element array of float y}) +0:17 Constant: +0:17 0 (const int) +0:17 Pre-Decrement ( temp int) +0:17 'index' ( temp int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'x' ( temp float) +0:19 direct index ( temp float) +0:19 y: direct index for structure ( temp 5-element array of float) +0:19 'str' ( temp structure{ temp 5-element array of float y}) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 4 (const int) +0:20 Pre-Increment ( temp float) +0:20 'x' ( temp float) +0:21 Pre-Decrement ( temp float) +0:21 'x' ( temp float) +0:22 Post-Increment ( temp float) +0:22 'x' ( temp float) +0:23 Post-Decrement ( temp float) +0:23 'x' ( temp float) +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'y' ( temp float) +0:27 component-wise multiply ( temp float) +0:27 'x' ( temp float) +0:27 Pre-Increment ( temp float) +0:27 'x' ( temp float) +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'z' ( temp float) +0:28 component-wise multiply ( temp float) +0:28 'y' ( temp float) +0:28 Post-Decrement ( temp float) +0:28 'x' ( temp float) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:33 Constant: +0:33 1.000000 +0:33 2.000000 +0:33 3.000000 +0:33 4.000000 +0:34 move second child to first child ( temp float) +0:34 direct index ( temp float) +0:34 'v' ( temp 4-component vector of float) +0:34 Constant: +0:34 1 (const int) +0:34 Post-Decrement ( temp float) +0:34 direct index ( temp float) +0:34 'v' ( temp 4-component vector of float) +0:34 Constant: +0:34 2 (const int) +0:35 move second child to first child ( temp float) +0:35 direct index ( temp float) +0:35 'v' ( temp 4-component vector of float) +0:35 Constant: +0:35 0 (const int) +0:35 Pre-Decrement ( temp float) +0:35 direct index ( temp float) +0:35 'v' ( temp 4-component vector of float) +0:35 Constant: +0:35 3 (const int) +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:37 vector-scale ( temp 4-component vector of float) +0:37 'z' ( temp float) +0:37 'v' ( temp 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 140 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Sequence +0:10 Sequence +0:10 move second child to first child ( temp int) +0:10 'index' ( temp int) +0:10 Constant: +0:10 5 (const int) +0:12 move second child to first child ( temp float) +0:12 direct index ( temp float) +0:12 y: direct index for structure ( temp 5-element array of float) +0:12 'str' ( temp structure{ temp 5-element array of float y}) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 4 (const int) +0:12 Constant: +0:12 2.000000 +0:13 move second child to first child ( temp float) +0:13 't' ( temp float) +0:13 Pre-Increment ( temp float) +0:13 indirect index ( temp float) +0:13 y: direct index for structure ( temp 5-element array of float) +0:13 'str' ( temp structure{ temp 5-element array of float y}) +0:13 Constant: +0:13 0 (const int) +0:13 Pre-Decrement ( temp int) +0:13 'index' ( temp int) +0:14 add second child into first child ( temp float) +0:14 direct index ( temp float) +0:14 y: direct index for structure ( temp 5-element array of float) +0:14 'str' ( temp structure{ temp 5-element array of float y}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 4 (const int) +0:14 't' ( temp float) +0:15 move second child to first child ( temp float) +0:15 't' ( temp float) +0:15 Post-Decrement ( temp float) +0:15 direct index ( temp float) +0:15 y: direct index for structure ( temp 5-element array of float) +0:15 'str' ( temp structure{ temp 5-element array of float y}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 4 (const int) +0:16 add second child into first child ( temp float) +0:16 indirect index ( temp float) +0:16 y: direct index for structure ( temp 5-element array of float) +0:16 'str' ( temp structure{ temp 5-element array of float y}) +0:16 Constant: +0:16 0 (const int) +0:16 Post-Increment ( temp int) +0:16 'index' ( temp int) +0:16 't' ( temp float) +0:17 Pre-Decrement ( temp float) +0:17 indirect index ( temp float) +0:17 y: direct index for structure ( temp 5-element array of float) +0:17 'str' ( temp structure{ temp 5-element array of float y}) +0:17 Constant: +0:17 0 (const int) +0:17 Pre-Decrement ( temp int) +0:17 'index' ( temp int) +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'x' ( temp float) +0:19 direct index ( temp float) +0:19 y: direct index for structure ( temp 5-element array of float) +0:19 'str' ( temp structure{ temp 5-element array of float y}) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 4 (const int) +0:20 Pre-Increment ( temp float) +0:20 'x' ( temp float) +0:21 Pre-Decrement ( temp float) +0:21 'x' ( temp float) +0:22 Post-Increment ( temp float) +0:22 'x' ( temp float) +0:23 Post-Decrement ( temp float) +0:23 'x' ( temp float) +0:27 Sequence +0:27 move second child to first child ( temp float) +0:27 'y' ( temp float) +0:27 component-wise multiply ( temp float) +0:27 'x' ( temp float) +0:27 Pre-Increment ( temp float) +0:27 'x' ( temp float) +0:28 Sequence +0:28 move second child to first child ( temp float) +0:28 'z' ( temp float) +0:28 component-wise multiply ( temp float) +0:28 'y' ( temp float) +0:28 Post-Decrement ( temp float) +0:28 'x' ( temp float) +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:33 'v' ( temp 4-component vector of float) +0:33 Constant: +0:33 1.000000 +0:33 2.000000 +0:33 3.000000 +0:33 4.000000 +0:34 move second child to first child ( temp float) +0:34 direct index ( temp float) +0:34 'v' ( temp 4-component vector of float) +0:34 Constant: +0:34 1 (const int) +0:34 Post-Decrement ( temp float) +0:34 direct index ( temp float) +0:34 'v' ( temp 4-component vector of float) +0:34 Constant: +0:34 2 (const int) +0:35 move second child to first child ( temp float) +0:35 direct index ( temp float) +0:35 'v' ( temp 4-component vector of float) +0:35 Constant: +0:35 0 (const int) +0:35 Pre-Decrement ( temp float) +0:35 direct index ( temp float) +0:35 'v' ( temp 4-component vector of float) +0:35 Constant: +0:35 3 (const int) +0:37 move second child to first child ( temp 4-component vector of float) +0:37 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:37 vector-scale ( temp 4-component vector of float) +0:37 'z' ( temp float) +0:37 'v' ( temp 4-component vector of float) +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out new file mode 100644 index 0000000000..e63d81a61d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out @@ -0,0 +1,37 @@ +#extension GL_GOOGLE_cpp_style_line_directive : enable + +0 + +#line 150 "a.h" + "a.h" + +#line 24 + "a.h" + +#line 42 + "a.h" + +#line 30 "b.cc" + "b.cc" + +#line 10 3 + 3 + +#line 48 + 3 + +#line 4 + 3 + +#line 55 100 + 100 + +#line 1000 "c" + "c" + +#line 42 1 + 1 + +#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it" + "this-is-a-quite-long-name-maybe-i-should-shorten-it" + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err new file mode 100644 index 0000000000..794ded806b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err @@ -0,0 +1,15 @@ +ERROR: 0:3: '#error' : at 0:3 +ERROR: a.h:150: '#error' : at a.h:150 +ERROR: a.h:24: '#error' : at a.h:24 +ERROR: a.h:42: '#error' : at a.h:42 +ERROR: b.cc:30: '#error' : at b.cc:30 +ERROR: 3:10: '#error' : at 3:10 +ERROR: 3:48: '#error' : at 3:48 +ERROR: 3:4: '#error' : at 3:4 +ERROR: 100:55: '#error' : at 100:55 +ERROR: c:1000: '#error' : at c:1000 +ERROR: 1:42: '#error' : at 1:42 +ERROR: this-is-a-quite-long-name-maybe-i-should-shorten-it:42: '#error' : at this-is-a-quite-long-name-maybe-i-should-shorten-it:42 +ERROR: 12 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.defined.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.defined.vert.err new file mode 100644 index 0000000000..8dddabca00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.defined.vert.err @@ -0,0 +1,4 @@ +ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined +ERROR: 1 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.defined.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.defined.vert.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.out new file mode 100644 index 0000000000..17d9049bfd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.edge_cases.vert.out @@ -0,0 +1,16 @@ +#version 310 es + + + + + + + + + + + +void main(){ + gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2); +} + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.eof_missing.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.eof_missing.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.eof_missing.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.eof_missing.vert.out new file mode 100644 index 0000000000..bf09d53e0a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.eof_missing.vert.out @@ -0,0 +1,2 @@ +noEOF + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err new file mode 100644 index 0000000000..bc588958fe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.err @@ -0,0 +1,7 @@ +ERROR: 0:9: '#error' : This should show up in pp output . +ERROR: 0:14: '#' : invalid directive: def +ERROR: 0:15: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile Y +ERROR: 0:21: '' : missing #endif +ERROR: 4 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.errors.vert.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err new file mode 100644 index 0000000000..35db303419 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.err @@ -0,0 +1,2 @@ +WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.out new file mode 100644 index 0000000000..57d2e199fb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.extensions.vert.out @@ -0,0 +1,12 @@ +#version 310 es + +#extension GL_EXT_geometry_shader : enable +#extension GL_EXT_frag_depth : disable +#extension GL_EXT_gpu_shader5 : require +#extension GL_EXT_shader_texture_image_samples : warn + +#extension unknown_extension : require + +int main(){ +} + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.out new file mode 100644 index 0000000000..1280ddf644 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.function_macro.vert.out @@ -0,0 +1,21 @@ +#version 310 es + + + + + + + + + + + + + + +int main(){ + gl_Position = vec4(3 + 1, 3 + 4, 3 + 1); + gl_Position = vec4(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12); + gl_Position = vec4(4 + 3 + 3); +} + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err new file mode 100644 index 0000000000..14192046a8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.err @@ -0,0 +1,13 @@ +ERROR: 0:8000: '#include' : required extension not requested: GL_GOOGLE_include_directive +ERROR: 0:8000: '#include' : must be followed by a header name +ERROR: 0:8001: '#include' : required extension not requested: GL_GOOGLE_include_directive +ERROR: 0:8001: '#include' : must be followed by a header name +ERROR: 0:8002: '#include' : required extension not requested: GL_GOOGLE_include_directive +ERROR: 0:8002: '#include' : Could not process include directive for header name: foo +ERROR: 0:8003: '#include' : required extension not requested: GL_GOOGLE_include_directive +ERROR: 0:8003: '#include' : extra content after header name: foo +ERROR: 0:8004: '#include' : required extension not requested: GL_GOOGLE_include_directive +ERROR: 0:8004: '#include' : expected newline after header name: no-eol +ERROR: 10 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.include.disabled.vert.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.err new file mode 100644 index 0000000000..252e661f09 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.err @@ -0,0 +1,20 @@ +ERROR: 0:8000: '#include' : must be followed by a header name +ERROR: 0:8001: '#include' : must be followed by a header name +ERROR: 0:8002: '#include' : Could not process include directive for header name: foo.oeu +ERROR: 0:8003: '#include' : Could not process include directive for header name: foo.oeu/ao eu/ao.h +ERROR: 0:8004: '#include' : Could not process include directive for header name: foo +ERROR: 0:8006: '#include' : Could not process include directive for header name: foo.oe +ERROR: 0:8007: '#include' : Could not process include directive for header name: foo"bar" +ERROR: 0:8008: '#include' : Could not process include directive for header name: foo\bar +ERROR: 0:8009: '#include' : Could not process include directive for header name: foo.oe> +ERROR: 0:8010: '#include' : Could not process include directive for header name: foo +ERROR: 0:8011: '#include' : extra content after header name: foo2.h +ERROR: 0:8012: '#include' : extra content after header name: foo.h +ERROR: 0:8014: '#include' : Could not process include directive for header name: ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789 +ERROR: 0:8016: '' : header name too long +ERROR: 0:8016: '#include' : Could not process include directive for header name: ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789 +ERROR: 0:8017: '#include' : expected newline after header name: no-eol +ERROR: 17 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.include.enabled.vert.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.err b/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.out b/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.out new file mode 100644 index 0000000000..3e2206f888 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.line.frag.out @@ -0,0 +1,5 @@ +#version 310 es +#line 1 2 +#pragma something +void main(){ } + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.line.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.line.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.line.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.line.vert.out new file mode 100644 index 0000000000..2bf0903277 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.line.vert.out @@ -0,0 +1,39 @@ +#line 300 + +#line 2 + + + + + +#line 10 + + +#line 2 + +#line 0 + + + +#line 4 + + + + + +#line 8 + +void main(){ + gl_Position = vec4(10); +} + +#line 8 4 + + + + +#line 12 3 + +#line 1 + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.many.endif.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.many.endif.vert.err new file mode 100644 index 0000000000..49aafc5ab5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.many.endif.vert.err @@ -0,0 +1,12 @@ +ERROR: 0:1: '#endif' : mismatched statements +ERROR: 0:2: '#endif' : mismatched statements +ERROR: 0:3: '#endif' : mismatched statements +ERROR: 0:4: '#endif' : mismatched statements +ERROR: 0:5: '#endif' : mismatched statements +ERROR: 0:6: '#endif' : mismatched statements +ERROR: 0:7: '#endif' : mismatched statements +ERROR: 0:10: 'preprocessor evaluation' : bad expression +ERROR: 0:11: '' : missing #endif +ERROR: 9 compilation errors. No code generated. + + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.many.endif.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.many.endif.vert.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err new file mode 100644 index 0000000000..da435dbd9a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.err @@ -0,0 +1,2 @@ +WARNING: 0:10: '#pragma once' : not implemented + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.out new file mode 100644 index 0000000000..ebe1e4a749 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.pragma.vert.out @@ -0,0 +1,14 @@ +#version 310 es + +#pragma optimize(on) +#pragma optimize(off) +#pragma debug(on) +#pragma debug(off) + +#pragma undefined_pragma(x,4) + +#pragma once + +int main(){ +} + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out new file mode 100644 index 0000000000..56bfe010f9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.simple.vert.out @@ -0,0 +1,30 @@ +#version 310 es + + + + + + + + + + + + + float fn(float x){ return x + 4.0;} + +int main(){ + gl_Position = vec4(1); + gl_Position = clamp(1, 2, 3); + gl_Position = vec4(1); + gl_Position = vec4(1, 2); + gl_Position = vec4(fn(3)); + []. ++ -- + + - * % / - ! ~ + << >> < > <= >= + == != + & ^ | && ^^ || ? : + += -= *= /= %= <<= >>= &= |= ^= + 1.2 2E10 5u - 5l f +} + diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err b/deps/glslang/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out b/deps/glslang/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out new file mode 100644 index 0000000000..624813a01d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out @@ -0,0 +1,4 @@ +int x(){ + something that shouldnt compile; +} + diff --git a/deps/glslang/glslang/Test/baseResults/recurse1.vert.out b/deps/glslang/glslang/Test/baseResults/recurse1.vert.out new file mode 100644 index 0000000000..7d09b7c1b3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/recurse1.vert.out @@ -0,0 +1,229 @@ +recurse1.vert +Shader version: 330 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:9 Function Definition: self( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Function Call: self( ( global void) +0:16 Function Definition: foo(f1; ( global void) +0:16 Function Parameters: +0:16 '' ( in float) +0:18 Sequence +0:18 Function Call: bar(i1; ( global float) +0:18 Constant: +0:18 2 (const int) +0:21 Function Definition: bar(i1; ( global float) +0:21 Function Parameters: +0:21 '' ( in int) +0:23 Sequence +0:23 Function Call: foo(f1; ( global void) +0:23 Constant: +0:23 4.200000 +0:25 Branch: Return with expression +0:25 Constant: +0:25 3.200000 +0:32 Function Definition: A( ( global void) +0:32 Function Parameters: +0:32 Sequence +0:32 Function Call: B( ( global void) +0:33 Function Definition: C( ( global void) +0:33 Function Parameters: +0:33 Sequence +0:33 Function Call: D( ( global void) +0:34 Function Definition: B( ( global void) +0:34 Function Parameters: +0:34 Sequence +0:34 Function Call: C( ( global void) +0:35 Function Definition: D( ( global void) +0:35 Function Parameters: +0:35 Sequence +0:35 Function Call: A( ( global void) +0:41 Function Definition: AT( ( global void) +0:41 Function Parameters: +0:41 Sequence +0:41 Function Call: BT( ( global void) +0:41 Function Call: BT( ( global void) +0:41 Function Call: BT( ( global void) +0:42 Function Definition: CT( ( global void) +0:42 Function Parameters: +0:42 Sequence +0:42 Function Call: DT( ( global void) +0:42 Function Call: AT( ( global void) +0:42 Function Call: DT( ( global void) +0:42 Function Call: BT( ( global void) +0:43 Function Definition: BT( ( global void) +0:43 Function Parameters: +0:43 Sequence +0:43 Function Call: CT( ( global void) +0:43 Function Call: CT( ( global void) +0:43 Function Call: CT( ( global void) +0:44 Function Definition: DT( ( global void) +0:44 Function Parameters: +0:44 Sequence +0:44 Function Call: AT( ( global void) +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + +recurse1.frag +Shader version: 330 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:11 Function Definition: cfoo(f1; ( global void) +0:11 Function Parameters: +0:11 '' ( in float) +0:13 Sequence +0:13 Function Call: cbar(i1; ( global float) +0:13 Constant: +0:13 2 (const int) +0:20 Function Definition: CA( ( global void) +0:20 Function Parameters: +0:20 Sequence +0:20 Function Call: CB( ( global void) +0:21 Function Definition: CC( ( global void) +0:21 Function Parameters: +0:21 Sequence +0:21 Function Call: CD( ( global void) +0:27 Function Definition: CAT( ( global void) +0:27 Function Parameters: +0:27 Sequence +0:27 Function Call: CBT( ( global void) +0:27 Function Call: CBT( ( global void) +0:27 Function Call: CBT( ( global void) +0:28 Function Definition: CCT( ( global void) +0:28 Function Parameters: +0:28 Sequence +0:28 Function Call: CDT( ( global void) +0:28 Function Call: CDT( ( global void) +0:28 Function Call: CBT( ( global void) +0:32 Function Definition: norA( ( global void) +0:32 Function Parameters: +0:33 Function Definition: norB( ( global void) +0:33 Function Parameters: +0:33 Sequence +0:33 Function Call: norA( ( global void) +0:34 Function Definition: norC( ( global void) +0:34 Function Parameters: +0:34 Sequence +0:34 Function Call: norA( ( global void) +0:35 Function Definition: norD( ( global void) +0:35 Function Parameters: +0:35 Sequence +0:35 Function Call: norA( ( global void) +0:36 Function Definition: norE( ( global void) +0:36 Function Parameters: +0:36 Sequence +0:36 Function Call: norB( ( global void) +0:37 Function Definition: norF( ( global void) +0:37 Function Parameters: +0:37 Sequence +0:37 Function Call: norB( ( global void) +0:38 Function Definition: norG( ( global void) +0:38 Function Parameters: +0:38 Sequence +0:38 Function Call: norE( ( global void) +0:39 Function Definition: norH( ( global void) +0:39 Function Parameters: +0:39 Sequence +0:39 Function Call: norE( ( global void) +0:40 Function Definition: norI( ( global void) +0:40 Function Parameters: +0:40 Sequence +0:40 Function Call: norE( ( global void) +0:44 Function Definition: norcA( ( global void) +0:44 Function Parameters: +0:45 Function Definition: norcB( ( global void) +0:45 Function Parameters: +0:45 Sequence +0:45 Function Call: norcA( ( global void) +0:46 Function Definition: norcC( ( global void) +0:46 Function Parameters: +0:46 Sequence +0:46 Function Call: norcB( ( global void) +0:47 Function Definition: norcD( ( global void) +0:47 Function Parameters: +0:47 Sequence +0:47 Function Call: norcC( ( global void) +0:47 Function Call: norcB( ( global void) +0:48 Function Definition: norcE( ( global void) +0:48 Function Parameters: +0:48 Sequence +0:48 Function Call: norcD( ( global void) +0:? Linker Objects + +recurse2.frag +Shader version: 330 +0:? Sequence +0:9 Function Definition: cbar(i1; ( global float) +0:9 Function Parameters: +0:9 '' ( in int) +0:11 Sequence +0:11 Function Call: cfoo(f1; ( global void) +0:11 Constant: +0:11 4.200000 +0:13 Branch: Return with expression +0:13 Constant: +0:13 3.200000 +0:20 Function Definition: CB( ( global void) +0:20 Function Parameters: +0:20 Sequence +0:20 Function Call: CC( ( global void) +0:21 Function Definition: CD( ( global void) +0:21 Function Parameters: +0:21 Sequence +0:21 Function Call: CA( ( global void) +0:27 Function Definition: CBT( ( global void) +0:27 Function Parameters: +0:27 Sequence +0:27 Function Call: CCT( ( global void) +0:27 Function Call: CCT( ( global void) +0:27 Function Call: CCT( ( global void) +0:28 Function Definition: CDT( ( global void) +0:28 Function Parameters: +0:28 Sequence +0:28 Function Call: CAT( ( global void) +0:? Linker Objects + + +Linked vertex stage: + +ERROR: Linking vertex stage: Recursion detected: + BT( calling CT( +ERROR: Linking vertex stage: Recursion detected: + AT( calling BT( +ERROR: Linking vertex stage: Recursion detected: + DT( calling AT( +ERROR: Linking vertex stage: Recursion detected: + D( calling A( +ERROR: Linking vertex stage: Recursion detected: + bar(i1; calling foo(f1; +ERROR: Linking vertex stage: Recursion detected: + self( calling self( + +Linked fragment stage: + +ERROR: Linking fragment stage: Recursion detected: + CCT( calling CBT( +ERROR: Linking fragment stage: Recursion detected: + CBT( calling CCT( +ERROR: Linking fragment stage: Recursion detected: + CC( calling CD( +ERROR: Linking fragment stage: Recursion detected: + cfoo(f1; calling cbar(i1; + +Shader version: 330 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) +Shader version: 330 +0:? Sequence +0:5 Function Definition: main( ( global void) +0:5 Function Parameters: +0:? Linker Objects + diff --git a/deps/glslang/glslang/Test/baseResults/reflection.vert.out b/deps/glslang/glslang/Test/baseResults/reflection.vert.out new file mode 100644 index 0000000000..422c049be6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/reflection.vert.out @@ -0,0 +1,107 @@ +reflection.vert +Uniform reflection: +image_ui2D: offset -1, type 9063, size 1, index -1, binding -1 +sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1 +sampler_2DMSArray: offset -1, type 910b, size 1, index -1, binding -1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 +s.a: offset -1, type 1404, size 1, index -1, binding -1 +named.scalar: offset 12, type 1404, size 1, index 1, binding -1 +m23: offset 16, type 8b67, size 1, index 0, binding -1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 +c_m23: offset 16, type 8b67, size 1, index 2, binding -1 +c_scalarAfterm23: offset 64, type 1404, size 1, index 2, binding -1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 +named.memvec2: offset 48, type 8b50, size 1, index 1, binding -1 +named.memf1: offset 56, type 1406, size 1, index 1, binding -1 +named.memf2: offset 60, type 8b56, size 1, index 1, binding -1 +named.memf3: offset 64, type 1404, size 1, index 1, binding -1 +named.memvec2a: offset 72, type 8b50, size 1, index 1, binding -1 +named.m22: offset 80, type 8b5a, size 7, index 1, binding -1 +dm22: offset -1, type 8b5a, size 4, index -1, binding -1 +m22: offset 208, type 8b5a, size 3, index 0, binding -1 +nested.foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1 +nested.foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1 +nested.foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1 +nested.foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1 +deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepC[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepC[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 +deepD[0].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepD[0].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].v3: offset -1, type 8b54, size 1, index -1, binding -1 +deepD[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepD[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 +abl.foo: offset 0, type 1406, size 1, index 7, binding -1 +abl2.foo: offset 0, type 1406, size 1, index 11, binding -1 +buf1.runtimeArray: offset 4, type 1406, size 4, index 12, binding -1 +buf2.runtimeArray.c: offset 8, type 1406, size 1, index 13, binding -1 +buf3.runtimeArray: offset 4, type 1406, size 0, index 14, binding -1 +buf4.runtimeArray.c: offset 8, type 1406, size 1, index 15, binding -1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 +uf1: offset -1, type 1406, size 1, index -1, binding -1 +uf2: offset -1, type 1406, size 1, index -1, binding -1 +named.member3: offset 32, type 8b52, size 1, index 1, binding -1 + +Uniform block reflection: +nameless: offset -1, type ffffffff, size 496, index -1, binding -1 +named: offset -1, type ffffffff, size 304, index -1, binding -1 +c_nameless: offset -1, type ffffffff, size 112, index -1, binding -1 +nested: offset -1, type ffffffff, size 32, index -1, binding -1 +abl[0]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[1]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[2]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[3]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[0]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[1]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[2]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[3]: offset -1, type ffffffff, size 4, index -1, binding -1 +buf1: offset -1, type ffffffff, size 4, index -1, binding -1 +buf2: offset -1, type ffffffff, size 4, index -1, binding -1 +buf3: offset -1, type ffffffff, size 4, index -1, binding -1 +buf4: offset -1, type ffffffff, size 4, index -1, binding -1 + +Vertex attribute reflection: +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 +gl_InstanceID: offset 0, type 1404, size 0, index 0, binding -1 + diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.dcefunc.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.dcefunc.frag.out new file mode 100644 index 0000000000..33ec069dbe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.dcefunc.frag.out @@ -0,0 +1,33 @@ +remap.basic.dcefunc.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 19 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 17 "outf4" + Name 19 "inf" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19(inf): 18(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 20: 6(float) Load 19(inf) + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17(outf4) 21 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.dcevartype.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.dcevartype.frag.out new file mode 100644 index 0000000000..dd03946d2c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.dcevartype.frag.out @@ -0,0 +1,12 @@ +remap.basic.dcevartype.frag +ERROR: #version: ES shaders for Vulkan SPIR-V require version 310 or higher +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 fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out new file mode 100644 index 0000000000..858d629e46 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.everything.frag.out @@ -0,0 +1,25 @@ +remap.basic.everything.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24969 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4539 3773 + ExecutionMode 5663 OriginUpperLeft + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 650: TypePointer Input 13(float) + 3773: 650(ptr) Variable Input + 5663: 8 Function None 1282 + 24968: Label + 17486: 13(float) Load 3773 + 17691: 29(fvec4) CompositeConstruct 17486 17486 17486 17486 + Store 4539 17691 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out new file mode 100644 index 0000000000..1ad1d74c78 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.none.frag.out @@ -0,0 +1,38 @@ +remap.basic.none.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 19 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "dead_fn(" + Name 17 "outf4" + Name 19 "inf" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19(inf): 18(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 20: 6(float) Load 19(inf) + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17(outf4) 21 + Return + FunctionEnd + 9(dead_fn(): 7(fvec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out b/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out new file mode 100644 index 0000000000..3d876d0d68 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.basic.strip.frag.out @@ -0,0 +1,33 @@ +remap.basic.strip.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 19 + ExecutionMode 4 OriginUpperLeft + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17: 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19: 18(ptr) Variable Input + 4: 2 Function None 3 + 5: Label + 20: 6(float) Load 19 + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17 21 + Return + FunctionEnd + 9: 7(fvec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out new file mode 100644 index 0000000000..211daba25b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -0,0 +1,229 @@ +remap.hlsl.sample.basic.everything.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24878 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4253 3709 + ExecutionMode 5663 OriginUpperLeft + ExecutionMode 5663 DepthReplacing + Decorate 4727 DescriptorSet 0 + Decorate 4727 Binding 0 + Decorate 3305 DescriptorSet 0 + Decorate 3305 Binding 0 + Decorate 4743 DescriptorSet 0 + Decorate 4807 DescriptorSet 0 + Decorate 5042 DescriptorSet 0 + Decorate 5058 DescriptorSet 0 + Decorate 5122 DescriptorSet 0 + Decorate 3967 DescriptorSet 0 + Decorate 3983 DescriptorSet 0 + Decorate 4047 DescriptorSet 0 + Decorate 3789 DescriptorSet 0 + Decorate 3805 DescriptorSet 0 + Decorate 3869 DescriptorSet 0 + Decorate 4253 Location 0 + Decorate 3709 BuiltIn FragDepth + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 1032: TypeStruct 29(fvec4) 13(float) + 319: TypeFunction 1032(struct) + 12: TypeInt 32 1 + 1335: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) + 1972: TypePointer Function 1335(struct) + 2574: 12(int) Constant 1 + 649: TypePointer Function 12(int) + 2577: 12(int) Constant 2 + 2580: 12(int) Constant 3 + 2583: 12(int) Constant 4 + 2586: 12(int) Constant 5 + 2589: 12(int) Constant 6 + 2571: 12(int) Constant 0 + 2592: 12(int) Constant 7 + 2595: 12(int) Constant 8 + 2598: 12(int) Constant 9 + 2601: 12(int) Constant 10 + 2604: 12(int) Constant 11 + 666: TypePointer Function 29(fvec4) + 149: TypeImage 13(float) 1D sampled format:Unknown + 786: TypePointer UniformConstant 149 + 4727: 786(ptr) Variable UniformConstant + 508: TypeSampler + 1145: TypePointer UniformConstant 508 + 3305: 1145(ptr) Variable UniformConstant + 510: TypeSampledImage 149 + 2935: 13(float) Constant 1036831949 + 26: TypeVector 12(int) 4 + 148: TypeImage 12(int) 1D sampled format:Unknown + 785: TypePointer UniformConstant 148 + 4743: 785(ptr) Variable UniformConstant + 511: TypeSampledImage 148 + 2821: 13(float) Constant 1045220557 + 11: TypeInt 32 0 + 23: TypeVector 11(int) 4 + 147: TypeImage 11(int) 1D sampled format:Unknown + 784: TypePointer UniformConstant 147 + 4807: 784(ptr) Variable UniformConstant + 512: TypeSampledImage 147 + 2151: 13(float) Constant 1050253722 + 150: TypeImage 13(float) 2D sampled format:Unknown + 787: TypePointer UniformConstant 150 + 5042: 787(ptr) Variable UniformConstant + 513: TypeSampledImage 150 + 19: TypeVector 13(float) 2 + 1825: 19(fvec2) ConstantComposite 2935 2821 + 151: TypeImage 12(int) 2D sampled format:Unknown + 788: TypePointer UniformConstant 151 + 5058: 788(ptr) Variable UniformConstant + 514: TypeSampledImage 151 + 2707: 13(float) Constant 1053609165 + 2028: 19(fvec2) ConstantComposite 2151 2707 + 152: TypeImage 11(int) 2D sampled format:Unknown + 789: TypePointer UniformConstant 152 + 5122: 789(ptr) Variable UniformConstant + 515: TypeSampledImage 152 + 252: 13(float) Constant 1056964608 + 2037: 13(float) Constant 1058642330 + 2684: 19(fvec2) ConstantComposite 252 2037 + 153: TypeImage 13(float) 3D sampled format:Unknown + 790: TypePointer UniformConstant 153 + 3967: 790(ptr) Variable UniformConstant + 516: TypeSampledImage 153 + 24: TypeVector 13(float) 3 + 1660: 24(fvec3) ConstantComposite 2935 2821 2151 + 154: TypeImage 12(int) 3D sampled format:Unknown + 791: TypePointer UniformConstant 154 + 3983: 791(ptr) Variable UniformConstant + 517: TypeSampledImage 154 + 2174: 24(fvec3) ConstantComposite 2707 252 2037 + 155: TypeImage 11(int) 3D sampled format:Unknown + 792: TypePointer UniformConstant 155 + 4047: 792(ptr) Variable UniformConstant + 518: TypeSampledImage 155 + 808: 13(float) Constant 1060320051 + 2593: 13(float) Constant 1061997773 + 1364: 13(float) Constant 1063675494 + 2476: 24(fvec3) ConstantComposite 808 2593 1364 + 156: TypeImage 13(float) Cube sampled format:Unknown + 793: TypePointer UniformConstant 156 + 3789: 793(ptr) Variable UniformConstant + 519: TypeSampledImage 156 + 157: TypeImage 12(int) Cube sampled format:Unknown + 794: TypePointer UniformConstant 157 + 3805: 794(ptr) Variable UniformConstant + 520: TypeSampledImage 157 + 158: TypeImage 11(int) Cube sampled format:Unknown + 795: TypePointer UniformConstant 158 + 3869: 795(ptr) Variable UniformConstant + 521: TypeSampledImage 158 + 1669: TypePointer Function 1032(struct) + 138: 13(float) Constant 1065353216 + 1284: 29(fvec4) ConstantComposite 138 138 138 138 + 650: TypePointer Function 13(float) + 667: TypePointer Output 29(fvec4) + 4253: 667(ptr) Variable Output + 651: TypePointer Output 13(float) + 3709: 651(ptr) Variable Output + 5663: 8 Function None 1282 + 24877: Label + 4104: 1669(ptr) Variable Function + 18803:1032(struct) FunctionCall 3317 + Store 4104 18803 + 13396: 666(ptr) AccessChain 4104 2571 + 7967: 29(fvec4) Load 13396 + Store 4253 7967 + 16622: 650(ptr) AccessChain 4104 2574 + 11539: 13(float) Load 16622 + Store 3709 11539 + Return + FunctionEnd + 3317:1032(struct) Function None 319 + 12442: Label + 5830: 1972(ptr) Variable Function + 5072: 1669(ptr) Variable Function + 22671: 649(ptr) AccessChain 5830 2574 + Store 22671 2574 + 20306: 649(ptr) AccessChain 5830 2577 + Store 20306 2574 + 20307: 649(ptr) AccessChain 5830 2580 + Store 20307 2574 + 20308: 649(ptr) AccessChain 5830 2583 + Store 20308 2574 + 20309: 649(ptr) AccessChain 5830 2586 + Store 20309 2574 + 20310: 649(ptr) AccessChain 5830 2589 + Store 20310 2574 + 20311: 649(ptr) AccessChain 5830 2571 + Store 20311 2574 + 20312: 649(ptr) AccessChain 5830 2592 + Store 20312 2574 + 20313: 649(ptr) AccessChain 5830 2595 + Store 20313 2574 + 20314: 649(ptr) AccessChain 5830 2598 + Store 20314 2574 + 20315: 649(ptr) AccessChain 5830 2601 + Store 20315 2574 + 20230: 649(ptr) AccessChain 5830 2604 + Store 20230 2574 + 15508: 149 Load 4727 + 12260: 508 Load 3305 + 12514: 510 SampledImage 15508 12260 + 21065: 29(fvec4) ImageSampleImplicitLod 12514 2935 + 9477: 148 Load 4743 + 16280: 508 Load 3305 + 12515: 511 SampledImage 9477 16280 + 21066: 26(ivec4) ImageSampleImplicitLod 12515 2821 + 9478: 147 Load 4807 + 16281: 508 Load 3305 + 12516: 512 SampledImage 9478 16281 + 21067: 23(ivec4) ImageSampleImplicitLod 12516 2151 + 9479: 150 Load 5042 + 16282: 508 Load 3305 + 12517: 513 SampledImage 9479 16282 + 21068: 29(fvec4) ImageSampleImplicitLod 12517 1825 + 9480: 151 Load 5058 + 16283: 508 Load 3305 + 12518: 514 SampledImage 9480 16283 + 21069: 26(ivec4) ImageSampleImplicitLod 12518 2028 + 9481: 152 Load 5122 + 16284: 508 Load 3305 + 12519: 515 SampledImage 9481 16284 + 21070: 23(ivec4) ImageSampleImplicitLod 12519 2684 + 9482: 153 Load 3967 + 16285: 508 Load 3305 + 12520: 516 SampledImage 9482 16285 + 21071: 29(fvec4) ImageSampleImplicitLod 12520 1660 + 9483: 154 Load 3983 + 16286: 508 Load 3305 + 12521: 517 SampledImage 9483 16286 + 21072: 26(ivec4) ImageSampleImplicitLod 12521 2174 + 9484: 155 Load 4047 + 16287: 508 Load 3305 + 12522: 518 SampledImage 9484 16287 + 21073: 23(ivec4) ImageSampleImplicitLod 12522 2476 + 9485: 156 Load 3789 + 16288: 508 Load 3305 + 12523: 519 SampledImage 9485 16288 + 21074: 29(fvec4) ImageSampleImplicitLod 12523 1660 + 9486: 157 Load 3805 + 16289: 508 Load 3305 + 12524: 520 SampledImage 9486 16289 + 21075: 26(ivec4) ImageSampleImplicitLod 12524 2174 + 9487: 158 Load 3869 + 16290: 508 Load 3305 + 12590: 521 SampledImage 9487 16290 + 20392: 23(ivec4) ImageSampleImplicitLod 12590 2476 + 14275: 666(ptr) AccessChain 5072 2571 + Store 14275 1284 + 20231: 650(ptr) AccessChain 5072 2574 + Store 20231 138 + 8692:1032(struct) Load 5072 + ReturnValue 8692 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out new file mode 100644 index 0000000000..24a1adec13 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -0,0 +1,314 @@ +remap.hlsl.sample.basic.none.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 198 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 188 192 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + MemberName 8(PS_OUTPUT) 1 "Depth" + Name 10 "@main(" + Name 13 "MemberTest" + MemberName 13(MemberTest) 0 "Sample" + MemberName 13(MemberTest) 1 "CalculateLevelOfDetail" + MemberName 13(MemberTest) 2 "CalculateLevelOfDetailUnclamped" + MemberName 13(MemberTest) 3 "Gather" + MemberName 13(MemberTest) 4 "GetDimensions" + MemberName 13(MemberTest) 5 "GetSamplePosition" + MemberName 13(MemberTest) 6 "Load" + MemberName 13(MemberTest) 7 "SampleBias" + MemberName 13(MemberTest) 8 "SampleCmp" + MemberName 13(MemberTest) 9 "SampleCmpLevelZero" + MemberName 13(MemberTest) 10 "SampleGrad" + MemberName 13(MemberTest) 11 "SampleLevel" + Name 15 "mtest" + Name 42 "txval10" + Name 45 "g_tTex1df4" + Name 49 "g_sSamp" + Name 57 "txval11" + Name 60 "g_tTex1di4" + Name 70 "txval12" + Name 73 "g_tTex1du4" + Name 80 "txval20" + Name 83 "g_tTex2df4" + Name 91 "txval21" + Name 94 "g_tTex2di4" + Name 102 "txval22" + Name 105 "g_tTex2du4" + Name 114 "txval30" + Name 117 "g_tTex3df4" + Name 125 "txval31" + Name 128 "g_tTex3di4" + Name 135 "txval32" + Name 138 "g_tTex3du4" + Name 148 "txval40" + Name 151 "g_tTexcdf4" + Name 157 "txval41" + Name 160 "g_tTexcdi4" + Name 166 "txval42" + Name 169 "g_tTexcdu4" + Name 176 "psout" + Name 185 "flattenTemp" + Name 188 "@entryPointOutput.Color" + Name 192 "@entryPointOutput.Depth" + Name 195 "g_sSamp2d" + Name 196 "g_sSamp2D_b" + Name 197 "g_tTex1df4a" + Decorate 45(g_tTex1df4) DescriptorSet 0 + Decorate 45(g_tTex1df4) Binding 0 + Decorate 49(g_sSamp) DescriptorSet 0 + Decorate 49(g_sSamp) Binding 0 + Decorate 60(g_tTex1di4) DescriptorSet 0 + Decorate 73(g_tTex1du4) DescriptorSet 0 + Decorate 83(g_tTex2df4) DescriptorSet 0 + Decorate 94(g_tTex2di4) DescriptorSet 0 + Decorate 105(g_tTex2du4) DescriptorSet 0 + Decorate 117(g_tTex3df4) DescriptorSet 0 + Decorate 128(g_tTex3di4) DescriptorSet 0 + Decorate 138(g_tTex3du4) DescriptorSet 0 + Decorate 151(g_tTexcdf4) DescriptorSet 0 + Decorate 160(g_tTexcdi4) DescriptorSet 0 + Decorate 169(g_tTexcdu4) DescriptorSet 0 + Decorate 188(@entryPointOutput.Color) Location 0 + Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 195(g_sSamp2d) DescriptorSet 0 + Decorate 196(g_sSamp2D_b) DescriptorSet 0 + Decorate 197(g_tTex1df4a) DescriptorSet 0 + Decorate 197(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypeInt 32 1 + 13(MemberTest): TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) + 14: TypePointer Function 13(MemberTest) + 16: 12(int) Constant 1 + 17: TypePointer Function 12(int) + 19: 12(int) Constant 2 + 21: 12(int) Constant 3 + 23: 12(int) Constant 4 + 25: 12(int) Constant 5 + 27: 12(int) Constant 6 + 29: 12(int) Constant 0 + 31: 12(int) Constant 7 + 33: 12(int) Constant 8 + 35: 12(int) Constant 9 + 37: 12(int) Constant 10 + 39: 12(int) Constant 11 + 41: TypePointer Function 7(fvec4) + 43: TypeImage 6(float) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1df4): 44(ptr) Variable UniformConstant + 47: TypeSampler + 48: TypePointer UniformConstant 47 + 49(g_sSamp): 48(ptr) Variable UniformConstant + 51: TypeSampledImage 43 + 53: 6(float) Constant 1036831949 + 55: TypeVector 12(int) 4 + 56: TypePointer Function 55(ivec4) + 58: TypeImage 12(int) 1D sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex1di4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: 6(float) Constant 1045220557 + 67: TypeInt 32 0 + 68: TypeVector 67(int) 4 + 69: TypePointer Function 68(ivec4) + 71: TypeImage 67(int) 1D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex1du4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1050253722 + 81: TypeImage 6(float) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2df4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: TypeVector 6(float) 2 + 89: 88(fvec2) ConstantComposite 53 65 + 92: TypeImage 12(int) 2D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex2di4): 93(ptr) Variable UniformConstant + 97: TypeSampledImage 92 + 99: 6(float) Constant 1053609165 + 100: 88(fvec2) ConstantComposite 78 99 + 103: TypeImage 67(int) 2D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex2du4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 6(float) Constant 1056964608 + 111: 6(float) Constant 1058642330 + 112: 88(fvec2) ConstantComposite 110 111 + 115: TypeImage 6(float) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3df4): 116(ptr) Variable UniformConstant + 120: TypeSampledImage 115 + 122: TypeVector 6(float) 3 + 123: 122(fvec3) ConstantComposite 53 65 78 + 126: TypeImage 12(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3di4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 133: 122(fvec3) ConstantComposite 99 110 111 + 136: TypeImage 67(int) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3du4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 143: 6(float) Constant 1060320051 + 144: 6(float) Constant 1061997773 + 145: 6(float) Constant 1063675494 + 146: 122(fvec3) ConstantComposite 143 144 145 + 149: TypeImage 6(float) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdf4): 150(ptr) Variable UniformConstant + 154: TypeSampledImage 149 + 158: TypeImage 12(int) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdi4): 159(ptr) Variable UniformConstant + 163: TypeSampledImage 158 + 167: TypeImage 67(int) Cube sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTexcdu4): 168(ptr) Variable UniformConstant + 172: TypeSampledImage 167 + 175: TypePointer Function 8(PS_OUTPUT) + 177: 6(float) Constant 1065353216 + 178: 7(fvec4) ConstantComposite 177 177 177 177 + 180: TypePointer Function 6(float) + 187: TypePointer Output 7(fvec4) +188(@entryPointOutput.Color): 187(ptr) Variable Output + 191: TypePointer Output 6(float) +192(@entryPointOutput.Depth): 191(ptr) Variable Output + 195(g_sSamp2d): 48(ptr) Variable UniformConstant +196(g_sSamp2D_b): 48(ptr) Variable UniformConstant +197(g_tTex1df4a): 44(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +185(flattenTemp): 175(ptr) Variable Function + 186:8(PS_OUTPUT) FunctionCall 10(@main() + Store 185(flattenTemp) 186 + 189: 41(ptr) AccessChain 185(flattenTemp) 29 + 190: 7(fvec4) Load 189 + Store 188(@entryPointOutput.Color) 190 + 193: 180(ptr) AccessChain 185(flattenTemp) 16 + 194: 6(float) Load 193 + Store 192(@entryPointOutput.Depth) 194 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 15(mtest): 14(ptr) Variable Function + 42(txval10): 41(ptr) Variable Function + 57(txval11): 56(ptr) Variable Function + 70(txval12): 69(ptr) Variable Function + 80(txval20): 41(ptr) Variable Function + 91(txval21): 56(ptr) Variable Function + 102(txval22): 69(ptr) Variable Function + 114(txval30): 41(ptr) Variable Function + 125(txval31): 56(ptr) Variable Function + 135(txval32): 69(ptr) Variable Function + 148(txval40): 41(ptr) Variable Function + 157(txval41): 56(ptr) Variable Function + 166(txval42): 69(ptr) Variable Function + 176(psout): 175(ptr) Variable Function + 18: 17(ptr) AccessChain 15(mtest) 16 + Store 18 16 + 20: 17(ptr) AccessChain 15(mtest) 19 + Store 20 16 + 22: 17(ptr) AccessChain 15(mtest) 21 + Store 22 16 + 24: 17(ptr) AccessChain 15(mtest) 23 + Store 24 16 + 26: 17(ptr) AccessChain 15(mtest) 25 + Store 26 16 + 28: 17(ptr) AccessChain 15(mtest) 27 + Store 28 16 + 30: 17(ptr) AccessChain 15(mtest) 29 + Store 30 16 + 32: 17(ptr) AccessChain 15(mtest) 31 + Store 32 16 + 34: 17(ptr) AccessChain 15(mtest) 33 + Store 34 16 + 36: 17(ptr) AccessChain 15(mtest) 35 + Store 36 16 + 38: 17(ptr) AccessChain 15(mtest) 37 + Store 38 16 + 40: 17(ptr) AccessChain 15(mtest) 39 + Store 40 16 + 46: 43 Load 45(g_tTex1df4) + 50: 47 Load 49(g_sSamp) + 52: 51 SampledImage 46 50 + 54: 7(fvec4) ImageSampleImplicitLod 52 53 + Store 42(txval10) 54 + 61: 58 Load 60(g_tTex1di4) + 62: 47 Load 49(g_sSamp) + 64: 63 SampledImage 61 62 + 66: 55(ivec4) ImageSampleImplicitLod 64 65 + Store 57(txval11) 66 + 74: 71 Load 73(g_tTex1du4) + 75: 47 Load 49(g_sSamp) + 77: 76 SampledImage 74 75 + 79: 68(ivec4) ImageSampleImplicitLod 77 78 + Store 70(txval12) 79 + 84: 81 Load 83(g_tTex2df4) + 85: 47 Load 49(g_sSamp) + 87: 86 SampledImage 84 85 + 90: 7(fvec4) ImageSampleImplicitLod 87 89 + Store 80(txval20) 90 + 95: 92 Load 94(g_tTex2di4) + 96: 47 Load 49(g_sSamp) + 98: 97 SampledImage 95 96 + 101: 55(ivec4) ImageSampleImplicitLod 98 100 + Store 91(txval21) 101 + 106: 103 Load 105(g_tTex2du4) + 107: 47 Load 49(g_sSamp) + 109: 108 SampledImage 106 107 + 113: 68(ivec4) ImageSampleImplicitLod 109 112 + Store 102(txval22) 113 + 118: 115 Load 117(g_tTex3df4) + 119: 47 Load 49(g_sSamp) + 121: 120 SampledImage 118 119 + 124: 7(fvec4) ImageSampleImplicitLod 121 123 + Store 114(txval30) 124 + 129: 126 Load 128(g_tTex3di4) + 130: 47 Load 49(g_sSamp) + 132: 131 SampledImage 129 130 + 134: 55(ivec4) ImageSampleImplicitLod 132 133 + Store 125(txval31) 134 + 139: 136 Load 138(g_tTex3du4) + 140: 47 Load 49(g_sSamp) + 142: 141 SampledImage 139 140 + 147: 68(ivec4) ImageSampleImplicitLod 142 146 + Store 135(txval32) 147 + 152: 149 Load 151(g_tTexcdf4) + 153: 47 Load 49(g_sSamp) + 155: 154 SampledImage 152 153 + 156: 7(fvec4) ImageSampleImplicitLod 155 123 + Store 148(txval40) 156 + 161: 158 Load 160(g_tTexcdi4) + 162: 47 Load 49(g_sSamp) + 164: 163 SampledImage 161 162 + 165: 55(ivec4) ImageSampleImplicitLod 164 133 + Store 157(txval41) 165 + 170: 167 Load 169(g_tTexcdu4) + 171: 47 Load 49(g_sSamp) + 173: 172 SampledImage 170 171 + 174: 68(ivec4) ImageSampleImplicitLod 173 146 + Store 166(txval42) 174 + 179: 41(ptr) AccessChain 176(psout) 29 + Store 179 178 + 181: 180(ptr) AccessChain 176(psout) 16 + Store 181 177 + 182:8(PS_OUTPUT) Load 176(psout) + ReturnValue 182 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out new file mode 100644 index 0000000000..2108108d4e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -0,0 +1,262 @@ +remap.hlsl.sample.basic.strip.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 198 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 188 192 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthReplacing + Decorate 45 DescriptorSet 0 + Decorate 45 Binding 0 + Decorate 49 DescriptorSet 0 + Decorate 49 Binding 0 + Decorate 60 DescriptorSet 0 + Decorate 73 DescriptorSet 0 + Decorate 83 DescriptorSet 0 + Decorate 94 DescriptorSet 0 + Decorate 105 DescriptorSet 0 + Decorate 117 DescriptorSet 0 + Decorate 128 DescriptorSet 0 + Decorate 138 DescriptorSet 0 + Decorate 151 DescriptorSet 0 + Decorate 160 DescriptorSet 0 + Decorate 169 DescriptorSet 0 + Decorate 188 Location 0 + Decorate 192 BuiltIn FragDepth + Decorate 195 DescriptorSet 0 + Decorate 196 DescriptorSet 0 + Decorate 197 DescriptorSet 0 + Decorate 197 Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeStruct 7(fvec4) 6(float) + 9: TypeFunction 8(struct) + 12: TypeInt 32 1 + 13: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) + 14: TypePointer Function 13(struct) + 16: 12(int) Constant 1 + 17: TypePointer Function 12(int) + 19: 12(int) Constant 2 + 21: 12(int) Constant 3 + 23: 12(int) Constant 4 + 25: 12(int) Constant 5 + 27: 12(int) Constant 6 + 29: 12(int) Constant 0 + 31: 12(int) Constant 7 + 33: 12(int) Constant 8 + 35: 12(int) Constant 9 + 37: 12(int) Constant 10 + 39: 12(int) Constant 11 + 41: TypePointer Function 7(fvec4) + 43: TypeImage 6(float) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45: 44(ptr) Variable UniformConstant + 47: TypeSampler + 48: TypePointer UniformConstant 47 + 49: 48(ptr) Variable UniformConstant + 51: TypeSampledImage 43 + 53: 6(float) Constant 1036831949 + 55: TypeVector 12(int) 4 + 56: TypePointer Function 55(ivec4) + 58: TypeImage 12(int) 1D sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60: 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: 6(float) Constant 1045220557 + 67: TypeInt 32 0 + 68: TypeVector 67(int) 4 + 69: TypePointer Function 68(ivec4) + 71: TypeImage 67(int) 1D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73: 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1050253722 + 81: TypeImage 6(float) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83: 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: TypeVector 6(float) 2 + 89: 88(fvec2) ConstantComposite 53 65 + 92: TypeImage 12(int) 2D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94: 93(ptr) Variable UniformConstant + 97: TypeSampledImage 92 + 99: 6(float) Constant 1053609165 + 100: 88(fvec2) ConstantComposite 78 99 + 103: TypeImage 67(int) 2D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105: 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 6(float) Constant 1056964608 + 111: 6(float) Constant 1058642330 + 112: 88(fvec2) ConstantComposite 110 111 + 115: TypeImage 6(float) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117: 116(ptr) Variable UniformConstant + 120: TypeSampledImage 115 + 122: TypeVector 6(float) 3 + 123: 122(fvec3) ConstantComposite 53 65 78 + 126: TypeImage 12(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128: 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 133: 122(fvec3) ConstantComposite 99 110 111 + 136: TypeImage 67(int) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138: 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 143: 6(float) Constant 1060320051 + 144: 6(float) Constant 1061997773 + 145: 6(float) Constant 1063675494 + 146: 122(fvec3) ConstantComposite 143 144 145 + 149: TypeImage 6(float) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151: 150(ptr) Variable UniformConstant + 154: TypeSampledImage 149 + 158: TypeImage 12(int) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160: 159(ptr) Variable UniformConstant + 163: TypeSampledImage 158 + 167: TypeImage 67(int) Cube sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169: 168(ptr) Variable UniformConstant + 172: TypeSampledImage 167 + 175: TypePointer Function 8(struct) + 177: 6(float) Constant 1065353216 + 178: 7(fvec4) ConstantComposite 177 177 177 177 + 180: TypePointer Function 6(float) + 187: TypePointer Output 7(fvec4) + 188: 187(ptr) Variable Output + 191: TypePointer Output 6(float) + 192: 191(ptr) Variable Output + 195: 48(ptr) Variable UniformConstant + 196: 48(ptr) Variable UniformConstant + 197: 44(ptr) Variable UniformConstant + 4: 2 Function None 3 + 5: Label + 185: 175(ptr) Variable Function + 186: 8(struct) FunctionCall 10 + Store 185 186 + 189: 41(ptr) AccessChain 185 29 + 190: 7(fvec4) Load 189 + Store 188 190 + 193: 180(ptr) AccessChain 185 16 + 194: 6(float) Load 193 + Store 192 194 + Return + FunctionEnd + 10: 8(struct) Function None 9 + 11: Label + 15: 14(ptr) Variable Function + 42: 41(ptr) Variable Function + 57: 56(ptr) Variable Function + 70: 69(ptr) Variable Function + 80: 41(ptr) Variable Function + 91: 56(ptr) Variable Function + 102: 69(ptr) Variable Function + 114: 41(ptr) Variable Function + 125: 56(ptr) Variable Function + 135: 69(ptr) Variable Function + 148: 41(ptr) Variable Function + 157: 56(ptr) Variable Function + 166: 69(ptr) Variable Function + 176: 175(ptr) Variable Function + 18: 17(ptr) AccessChain 15 16 + Store 18 16 + 20: 17(ptr) AccessChain 15 19 + Store 20 16 + 22: 17(ptr) AccessChain 15 21 + Store 22 16 + 24: 17(ptr) AccessChain 15 23 + Store 24 16 + 26: 17(ptr) AccessChain 15 25 + Store 26 16 + 28: 17(ptr) AccessChain 15 27 + Store 28 16 + 30: 17(ptr) AccessChain 15 29 + Store 30 16 + 32: 17(ptr) AccessChain 15 31 + Store 32 16 + 34: 17(ptr) AccessChain 15 33 + Store 34 16 + 36: 17(ptr) AccessChain 15 35 + Store 36 16 + 38: 17(ptr) AccessChain 15 37 + Store 38 16 + 40: 17(ptr) AccessChain 15 39 + Store 40 16 + 46: 43 Load 45 + 50: 47 Load 49 + 52: 51 SampledImage 46 50 + 54: 7(fvec4) ImageSampleImplicitLod 52 53 + Store 42 54 + 61: 58 Load 60 + 62: 47 Load 49 + 64: 63 SampledImage 61 62 + 66: 55(ivec4) ImageSampleImplicitLod 64 65 + Store 57 66 + 74: 71 Load 73 + 75: 47 Load 49 + 77: 76 SampledImage 74 75 + 79: 68(ivec4) ImageSampleImplicitLod 77 78 + Store 70 79 + 84: 81 Load 83 + 85: 47 Load 49 + 87: 86 SampledImage 84 85 + 90: 7(fvec4) ImageSampleImplicitLod 87 89 + Store 80 90 + 95: 92 Load 94 + 96: 47 Load 49 + 98: 97 SampledImage 95 96 + 101: 55(ivec4) ImageSampleImplicitLod 98 100 + Store 91 101 + 106: 103 Load 105 + 107: 47 Load 49 + 109: 108 SampledImage 106 107 + 113: 68(ivec4) ImageSampleImplicitLod 109 112 + Store 102 113 + 118: 115 Load 117 + 119: 47 Load 49 + 121: 120 SampledImage 118 119 + 124: 7(fvec4) ImageSampleImplicitLod 121 123 + Store 114 124 + 129: 126 Load 128 + 130: 47 Load 49 + 132: 131 SampledImage 129 130 + 134: 55(ivec4) ImageSampleImplicitLod 132 133 + Store 125 134 + 139: 136 Load 138 + 140: 47 Load 49 + 142: 141 SampledImage 139 140 + 147: 68(ivec4) ImageSampleImplicitLod 142 146 + Store 135 147 + 152: 149 Load 151 + 153: 47 Load 49 + 155: 154 SampledImage 152 153 + 156: 7(fvec4) ImageSampleImplicitLod 155 123 + Store 148 156 + 161: 158 Load 160 + 162: 47 Load 49 + 164: 163 SampledImage 161 162 + 165: 55(ivec4) ImageSampleImplicitLod 164 133 + Store 157 165 + 170: 167 Load 169 + 171: 47 Load 49 + 173: 172 SampledImage 170 171 + 174: 68(ivec4) ImageSampleImplicitLod 173 146 + Store 166 174 + 179: 41(ptr) AccessChain 176 29 + Store 179 178 + 181: 180(ptr) AccessChain 176 16 + Store 181 177 + 182: 8(struct) Load 176 + ReturnValue 182 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out new file mode 100644 index 0000000000..aff0998cd0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -0,0 +1,38 @@ +remap.hlsl.templatetypes.everything.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24954 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4872 4045 + ExecutionMode 5663 OriginUpperLeft + Decorate 4872 Location 0 + Decorate 4045 Location 0 + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Function 29(fvec4) + 255: TypeFunction 13(float) 666(ptr) + 2572: 13(float) Constant 0 + 667: TypePointer Input 29(fvec4) + 4872: 667(ptr) Variable Input + 650: TypePointer Output 13(float) + 4045: 650(ptr) Variable Output + 5663: 8 Function None 1282 + 24953: Label + 5786: 666(ptr) Variable Function + 24021: 29(fvec4) Load 4872 + Store 5786 24021 + 9338: 13(float) FunctionCall 3917 5786 + Store 4045 9338 + Return + FunctionEnd + 3917: 13(float) Function None 255 + 10636: 666(ptr) FunctionParameter + 10637: Label + ReturnValue 2572 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out new file mode 100644 index 0000000000..282fd2a24a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -0,0 +1,240 @@ +remap.hlsl.templatetypes.none.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 160 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 153 156 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "input" + Name 13 "r00" + Name 19 "r01" + Name 24 "r12" + Name 28 "r13" + Name 31 "r14" + Name 34 "r15" + Name 38 "r16" + Name 42 "r20" + Name 47 "r21" + Name 52 "r22" + Name 56 "r23" + Name 61 "r24" + Name 66 "r30" + Name 70 "r31" + Name 75 "r32" + Name 79 "r33" + Name 84 "r34" + Name 89 "r40" + Name 93 "r41" + Name 96 "r42" + Name 99 "r43" + Name 104 "r44" + Name 109 "r50" + Name 126 "r51" + Name 129 "r61" + Name 134 "r62" + Name 140 "r65" + Name 145 "r66" + Name 151 "input" + Name 153 "input" + Name 156 "@entryPointOutput" + Name 157 "param" + Decorate 153(input) Location 0 + Decorate 156(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 6(float) 8(ptr) + 14: 6(float) Constant 1065353216 + 15: 6(float) Constant 1073741824 + 16: 6(float) Constant 1077936128 + 17: 6(float) Constant 1082130432 + 18: 7(fvec4) ConstantComposite 14 15 16 17 + 20: 6(float) Constant 1084227584 + 21: 7(fvec4) ConstantComposite 15 16 17 20 + 22: TypeBool + 23: TypePointer Function 22(bool) + 25: 22(bool) ConstantFalse + 26: TypeInt 32 1 + 27: TypePointer Function 26(int) + 29: 26(int) Constant 1 + 30: TypePointer Function 6(float) + 32: TypeFloat 64 + 33: TypePointer Function 32(float64_t) + 35:32(float64_t) Constant 0 1072693248 + 36: TypeInt 32 0 + 37: TypePointer Function 36(int) + 39: 36(int) Constant 1 + 40: TypeVector 22(bool) 2 + 41: TypePointer Function 40(bvec2) + 43: 22(bool) ConstantTrue + 44: 40(bvec2) ConstantComposite 25 43 + 45: TypeVector 26(int) 2 + 46: TypePointer Function 45(ivec2) + 48: 26(int) Constant 2 + 49: 45(ivec2) ConstantComposite 29 48 + 50: TypeVector 6(float) 2 + 51: TypePointer Function 50(fvec2) + 53: 50(fvec2) ConstantComposite 14 15 + 54: TypeVector 32(float64_t) 2 + 55: TypePointer Function 54(f64vec2) + 57:32(float64_t) Constant 0 1073741824 + 58: 54(f64vec2) ConstantComposite 35 57 + 59: TypeVector 36(int) 2 + 60: TypePointer Function 59(ivec2) + 62: 36(int) Constant 2 + 63: 59(ivec2) ConstantComposite 39 62 + 64: TypeVector 22(bool) 3 + 65: TypePointer Function 64(bvec3) + 67: 64(bvec3) ConstantComposite 25 43 43 + 68: TypeVector 26(int) 3 + 69: TypePointer Function 68(ivec3) + 71: 26(int) Constant 3 + 72: 68(ivec3) ConstantComposite 29 48 71 + 73: TypeVector 6(float) 3 + 74: TypePointer Function 73(fvec3) + 76: 73(fvec3) ConstantComposite 14 15 16 + 77: TypeVector 32(float64_t) 3 + 78: TypePointer Function 77(f64vec3) + 80:32(float64_t) Constant 0 1074266112 + 81: 77(f64vec3) ConstantComposite 35 57 80 + 82: TypeVector 36(int) 3 + 83: TypePointer Function 82(ivec3) + 85: 36(int) Constant 3 + 86: 82(ivec3) ConstantComposite 39 62 85 + 87: TypeVector 22(bool) 4 + 88: TypePointer Function 87(bvec4) + 90: 87(bvec4) ConstantComposite 25 43 43 25 + 91: TypeVector 26(int) 4 + 92: TypePointer Function 91(ivec4) + 94: 26(int) Constant 4 + 95: 91(ivec4) ConstantComposite 29 48 71 94 + 97: TypeVector 32(float64_t) 4 + 98: TypePointer Function 97(f64vec4) + 100:32(float64_t) Constant 0 1074790400 + 101: 97(f64vec4) ConstantComposite 35 57 80 100 + 102: TypeVector 36(int) 4 + 103: TypePointer Function 102(ivec4) + 105: 36(int) Constant 4 + 106: 102(ivec4) ConstantComposite 39 62 85 105 + 107: TypeMatrix 7(fvec4) 4 + 108: TypePointer Function 107 + 110: 6(float) Constant 0 + 111: 7(fvec4) ConstantComposite 110 14 15 16 + 112: 6(float) Constant 1086324736 + 113: 6(float) Constant 1088421888 + 114: 7(fvec4) ConstantComposite 17 20 112 113 + 115: 6(float) Constant 1090519040 + 116: 6(float) Constant 1091567616 + 117: 6(float) Constant 1092616192 + 118: 6(float) Constant 1093664768 + 119: 7(fvec4) ConstantComposite 115 116 117 118 + 120: 6(float) Constant 1094713344 + 121: 6(float) Constant 1095761920 + 122: 6(float) Constant 1096810496 + 123: 6(float) Constant 1097859072 + 124: 7(fvec4) ConstantComposite 120 121 122 123 + 125: 107 ConstantComposite 111 114 119 124 + 127: TypeMatrix 73(fvec3) 2 + 128: TypePointer Function 127 + 130: 73(fvec3) ConstantComposite 17 20 112 + 131: 127 ConstantComposite 76 130 + 132: TypeMatrix 50(fvec2) 3 + 133: TypePointer Function 132 + 135: 50(fvec2) ConstantComposite 16 17 + 136: 50(fvec2) ConstantComposite 20 112 + 137: 132 ConstantComposite 53 135 136 + 138: TypeMatrix 50(fvec2) 4 + 139: TypePointer Function 138 + 141: 50(fvec2) ConstantComposite 113 115 + 142: 138 ConstantComposite 53 135 136 141 + 143: TypeMatrix 73(fvec3) 4 + 144: TypePointer Function 143 + 146: 73(fvec3) ConstantComposite 113 115 116 + 147: 73(fvec3) ConstantComposite 117 118 120 + 148: 143 ConstantComposite 76 130 146 147 + 152: TypePointer Input 7(fvec4) + 153(input): 152(ptr) Variable Input + 155: TypePointer Output 6(float) +156(@entryPointOutput): 155(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 151(input): 8(ptr) Variable Function + 157(param): 8(ptr) Variable Function + 154: 7(fvec4) Load 153(input) + Store 151(input) 154 + 158: 7(fvec4) Load 151(input) + Store 157(param) 158 + 159: 6(float) FunctionCall 11(@main(vf4;) 157(param) + Store 156(@entryPointOutput) 159 + Return + FunctionEnd + 11(@main(vf4;): 6(float) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13(r00): 8(ptr) Variable Function + 19(r01): 8(ptr) Variable Function + 24(r12): 23(ptr) Variable Function + 28(r13): 27(ptr) Variable Function + 31(r14): 30(ptr) Variable Function + 34(r15): 33(ptr) Variable Function + 38(r16): 37(ptr) Variable Function + 42(r20): 41(ptr) Variable Function + 47(r21): 46(ptr) Variable Function + 52(r22): 51(ptr) Variable Function + 56(r23): 55(ptr) Variable Function + 61(r24): 60(ptr) Variable Function + 66(r30): 65(ptr) Variable Function + 70(r31): 69(ptr) Variable Function + 75(r32): 74(ptr) Variable Function + 79(r33): 78(ptr) Variable Function + 84(r34): 83(ptr) Variable Function + 89(r40): 88(ptr) Variable Function + 93(r41): 92(ptr) Variable Function + 96(r42): 8(ptr) Variable Function + 99(r43): 98(ptr) Variable Function + 104(r44): 103(ptr) Variable Function + 109(r50): 108(ptr) Variable Function + 126(r51): 108(ptr) Variable Function + 129(r61): 128(ptr) Variable Function + 134(r62): 133(ptr) Variable Function + 140(r65): 139(ptr) Variable Function + 145(r66): 144(ptr) Variable Function + Store 13(r00) 18 + Store 19(r01) 21 + Store 24(r12) 25 + Store 28(r13) 29 + Store 31(r14) 14 + Store 34(r15) 35 + Store 38(r16) 39 + Store 42(r20) 44 + Store 47(r21) 49 + Store 52(r22) 53 + Store 56(r23) 58 + Store 61(r24) 63 + Store 66(r30) 67 + Store 70(r31) 72 + Store 75(r32) 76 + Store 79(r33) 81 + Store 84(r34) 86 + Store 89(r40) 90 + Store 93(r41) 95 + Store 96(r42) 18 + Store 99(r43) 101 + Store 104(r44) 106 + Store 109(r50) 125 + Store 126(r51) 125 + Store 129(r61) 131 + Store 134(r62) 137 + Store 140(r65) 142 + Store 145(r66) 148 + ReturnValue 110 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.if.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.if.everything.frag.out new file mode 100644 index 0000000000..cdb007b317 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.if.everything.frag.out @@ -0,0 +1,41 @@ +remap.if.everything.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22855 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 3773 4539 + ExecutionMode 5663 OriginUpperLeft + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 650: TypePointer Input 13(float) + 3773: 650(ptr) Variable Input + 24: 13(float) Constant 1073741824 + 9: TypeBool + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 947: 13(float) Constant 3204448256 + 5663: 8 Function None 1282 + 7911: Label + 21734: 13(float) Load 3773 + 13508: 9(bool) FOrdGreaterThan 21734 24 + SelectionMerge 19578 None + BranchConditional 13508 13182 10142 + 13182: Label + 9496: 13(float) Load 3773 + 17615: 29(fvec4) CompositeConstruct 9496 9496 9496 9496 + Store 4539 17615 + Branch 19578 + 10142: Label + 22854: 13(float) Load 3773 + 9982: 13(float) FAdd 22854 947 + 12421: 29(fvec4) CompositeConstruct 9982 9982 9982 9982 + Store 4539 12421 + Branch 19578 + 19578: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out new file mode 100644 index 0000000000..0c8d27836d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.if.none.frag.out @@ -0,0 +1,45 @@ +remap.if.none.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 17 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 8 "inf" + Name 17 "outf4" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Input 6(float) + 8(inf): 7(ptr) Variable Input + 10: 6(float) Constant 1073741824 + 11: TypeBool + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 22: 6(float) Constant 3204448256 + 4(main): 2 Function None 3 + 5: Label + 9: 6(float) Load 8(inf) + 12: 11(bool) FOrdGreaterThan 9 10 + SelectionMerge 14 None + BranchConditional 12 13 20 + 13: Label + 18: 6(float) Load 8(inf) + 19: 15(fvec4) CompositeConstruct 18 18 18 18 + Store 17(outf4) 19 + Branch 14 + 20: Label + 21: 6(float) Load 8(inf) + 23: 6(float) FAdd 21 22 + 24: 15(fvec4) CompositeConstruct 23 23 23 23 + Store 17(outf4) 24 + Branch 14 + 14: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-1.out b/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-1.out new file mode 100644 index 0000000000..91b4b6d90c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-1.out @@ -0,0 +1 @@ +ID out of range: 4160749568 diff --git a/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-2.out b/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-2.out new file mode 100644 index 0000000000..808b9b870b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.invalid-spirv-2.out @@ -0,0 +1 @@ +ID not found diff --git a/deps/glslang/glslang/Test/baseResults/remap.literal64.everything.spv.out b/deps/glslang/glslang/Test/baseResults/remap.literal64.everything.spv.out new file mode 100644 index 0000000000..7a4f37ba1e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.literal64.everything.spv.out @@ -0,0 +1,7 @@ +remap.literal64.everything.spv +// Module Version 10100 +// Generated by (magic number): 70000 +// Id's are bound by 0 + + Capability Shader + MemoryModel Logical GLSL450 diff --git a/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out b/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out new file mode 100644 index 0000000000..d88992fc11 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.literal64.none.spv.out @@ -0,0 +1,25 @@ +remap.literal64.none.spv +// Module Version 10100 +// Generated by (magic number): 70000 +// Id's are bound by 10 + + Capability Shader + MemoryModel Logical GLSL450 + 1: TypeVoid + 2: TypeInt 64 1 + 3: TypeFunction 1 + 4: 2(int64_t) Constant 0 0 + 5: 1 Function None 3 + 6: Label + SelectionMerge 7 None + Switch 4 7 + case 0: 0 + case 8: 1 + case 0: 9 + 8: Label + Branch 7 + 9: Label + Branch 7 + 7: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.similar_1a.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.similar_1a.everything.frag.out new file mode 100644 index 0000000000..2f8f1c737d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1a.everything.frag.out @@ -0,0 +1,115 @@ +remap.similar_1a.everything.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24916 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4201 4539 3773 + ExecutionMode 5663 OriginUpperLeft + Decorate 4201 Flat + 8: TypeVoid + 1282: TypeFunction 8 + 12: TypeInt 32 1 + 649: TypePointer Function 12(int) + 13: TypeFloat 32 + 204: TypeFunction 13(float) 649(ptr) + 650: TypePointer Function 13(float) + 2572: 13(float) Constant 0 + 2571: 12(int) Constant 0 + 9: TypeBool + 252: 13(float) Constant 1056964608 + 2574: 12(int) Constant 1 + 2577: 12(int) Constant 2 + 26: TypeVector 12(int) 4 + 663: TypePointer Input 26(ivec4) + 4201: 663(ptr) Variable Input + 11: TypeInt 32 0 + 2573: 11(int) Constant 1 + 651: TypePointer Input 12(int) + 2576: 11(int) Constant 2 + 2570: 11(int) Constant 0 + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 652: TypePointer Input 13(float) + 3773: 652(ptr) Variable Input + 5663: 8 Function None 1282 + 24915: Label + 18415: 649(ptr) Variable Function + 5786: 649(ptr) Variable Function + 8366: 13(float) Load 3773 + 8654: 12(int) ConvertFToS 8366 + Store 18415 8654 + 17256: 13(float) FunctionCall 3782 18415 + 14512: 13(float) Load 3773 + 7041: 12(int) ConvertFToS 14512 + Store 5786 7041 + 23993: 13(float) FunctionCall 3836 5786 + 9180: 13(float) FAdd 17256 23993 + 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 + Store 4539 15728 + Return + FunctionEnd + 3782: 13(float) Function None 204 + 6931: 649(ptr) FunctionParameter + 12220: Label + 4292: 650(ptr) Variable Function + 4298: 649(ptr) Variable Function + Store 4292 2572 + Store 4298 2571 + Branch 14924 + 14924: Label + LoopMerge 8882 6488 None + Branch 11857 + 11857: Label + 13755: 12(int) Load 4298 + 22731: 12(int) Load 6931 + 20007: 9(bool) SLessThan 13755 22731 + BranchConditional 20007 24750 8882 + 24750: Label + 22912: 13(float) Load 4292 + 19471: 13(float) FAdd 22912 252 + Store 4292 19471 + Branch 6488 + 6488: Label + 19050: 12(int) Load 4298 + 8593: 12(int) IAdd 19050 2574 + Store 4298 8593 + Branch 14924 + 8882: Label + 11601: 13(float) Load 4292 + ReturnValue 11601 + FunctionEnd + 3836: 13(float) Function None 204 + 4408: 649(ptr) FunctionParameter + 12143: Label + 22102: 649(ptr) Variable Function + 24151: 12(int) Load 4408 + 13868: 9(bool) SGreaterThan 24151 2577 + SelectionMerge 22309 None + BranchConditional 13868 9492 17416 + 9492: Label + 15624: 12(int) Load 4408 + Store 22102 15624 + 17278: 13(float) FunctionCall 3782 22102 + ReturnValue 17278 + 17416: Label + 19506: 12(int) Load 4408 + 22773: 12(int) IMul 19506 2577 + 13472: 651(ptr) AccessChain 4201 2573 + 15280: 12(int) Load 13472 + 18079: 651(ptr) AccessChain 4201 2576 + 15199: 12(int) Load 18079 + 9343: 12(int) IMul 15280 15199 + 11462: 12(int) IAdd 22773 9343 + 11885: 651(ptr) AccessChain 4201 2570 + 21176: 12(int) Load 11885 + 10505: 12(int) IAdd 11462 21176 + 14626: 13(float) ConvertSToF 10505 + ReturnValue 14626 + 22309: Label + 6429: 13(float) Undef + ReturnValue 6429 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.similar_1a.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.similar_1a.none.frag.out new file mode 100644 index 0000000000..80d35c3fa1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1a.none.frag.out @@ -0,0 +1,129 @@ +remap.similar_1a.none.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 86 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 53 73 75 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 11 "Test1(i1;" + Name 10 "bound" + Name 14 "Test2(i1;" + Name 13 "bound" + Name 17 "r" + Name 19 "x" + Name 44 "param" + Name 53 "ini4" + Name 73 "outf4" + Name 75 "inf" + Name 78 "param" + Name 82 "param" + Decorate 53(ini4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeFunction 8(float) 7(ptr) + 16: TypePointer Function 8(float) + 18: 8(float) Constant 0 + 20: 6(int) Constant 0 + 28: TypeBool + 30: 8(float) Constant 1056964608 + 34: 6(int) Constant 1 + 40: 6(int) Constant 2 + 51: TypeVector 6(int) 4 + 52: TypePointer Input 51(ivec4) + 53(ini4): 52(ptr) Variable Input + 54: TypeInt 32 0 + 55: 54(int) Constant 1 + 56: TypePointer Input 6(int) + 59: 54(int) Constant 2 + 64: 54(int) Constant 0 + 71: TypeVector 8(float) 4 + 72: TypePointer Output 71(fvec4) + 73(outf4): 72(ptr) Variable Output + 74: TypePointer Input 8(float) + 75(inf): 74(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 78(param): 7(ptr) Variable Function + 82(param): 7(ptr) Variable Function + 76: 8(float) Load 75(inf) + 77: 6(int) ConvertFToS 76 + Store 78(param) 77 + 79: 8(float) FunctionCall 11(Test1(i1;) 78(param) + 80: 8(float) Load 75(inf) + 81: 6(int) ConvertFToS 80 + Store 82(param) 81 + 83: 8(float) FunctionCall 14(Test2(i1;) 82(param) + 84: 8(float) FAdd 79 83 + 85: 71(fvec4) CompositeConstruct 84 84 84 84 + Store 73(outf4) 85 + Return + FunctionEnd + 11(Test1(i1;): 8(float) Function None 9 + 10(bound): 7(ptr) FunctionParameter + 12: Label + 17(r): 16(ptr) Variable Function + 19(x): 7(ptr) Variable Function + Store 17(r) 18 + Store 19(x) 20 + Branch 21 + 21: Label + LoopMerge 23 24 None + Branch 25 + 25: Label + 26: 6(int) Load 19(x) + 27: 6(int) Load 10(bound) + 29: 28(bool) SLessThan 26 27 + BranchConditional 29 22 23 + 22: Label + 31: 8(float) Load 17(r) + 32: 8(float) FAdd 31 30 + Store 17(r) 32 + Branch 24 + 24: Label + 33: 6(int) Load 19(x) + 35: 6(int) IAdd 33 34 + Store 19(x) 35 + Branch 21 + 23: Label + 36: 8(float) Load 17(r) + ReturnValue 36 + FunctionEnd + 14(Test2(i1;): 8(float) Function None 9 + 13(bound): 7(ptr) FunctionParameter + 15: Label + 44(param): 7(ptr) Variable Function + 39: 6(int) Load 13(bound) + 41: 28(bool) SGreaterThan 39 40 + SelectionMerge 43 None + BranchConditional 41 42 48 + 42: Label + 45: 6(int) Load 13(bound) + Store 44(param) 45 + 46: 8(float) FunctionCall 11(Test1(i1;) 44(param) + ReturnValue 46 + 48: Label + 49: 6(int) Load 13(bound) + 50: 6(int) IMul 49 40 + 57: 56(ptr) AccessChain 53(ini4) 55 + 58: 6(int) Load 57 + 60: 56(ptr) AccessChain 53(ini4) 59 + 61: 6(int) Load 60 + 62: 6(int) IMul 58 61 + 63: 6(int) IAdd 50 62 + 65: 56(ptr) AccessChain 53(ini4) 64 + 66: 6(int) Load 65 + 67: 6(int) IAdd 63 66 + 68: 8(float) ConvertSToF 67 + ReturnValue 68 + 43: Label + 70: 8(float) Undef + ReturnValue 70 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out new file mode 100644 index 0000000000..c76c4bfa06 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.everything.frag.out @@ -0,0 +1,121 @@ +remap.similar_1b.everything.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24916 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4201 4539 3773 + ExecutionMode 5663 OriginUpperLeft + Decorate 4201 Flat + 8: TypeVoid + 1282: TypeFunction 8 + 12: TypeInt 32 1 + 649: TypePointer Function 12(int) + 13: TypeFloat 32 + 204: TypeFunction 13(float) 649(ptr) + 650: TypePointer Function 13(float) + 2572: 13(float) Constant 0 + 2571: 12(int) Constant 0 + 9: TypeBool + 252: 13(float) Constant 1056964608 + 2574: 12(int) Constant 1 + 2821: 13(float) Constant 1045220557 + 2577: 12(int) Constant 2 + 2583: 12(int) Constant 4 + 26: TypeVector 12(int) 4 + 663: TypePointer Input 26(ivec4) + 4201: 663(ptr) Variable Input + 11: TypeInt 32 0 + 2573: 11(int) Constant 1 + 651: TypePointer Input 12(int) + 2576: 11(int) Constant 2 + 2570: 11(int) Constant 0 + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 652: TypePointer Input 13(float) + 3773: 652(ptr) Variable Input + 5663: 8 Function None 1282 + 24915: Label + 18415: 649(ptr) Variable Function + 5786: 649(ptr) Variable Function + 8366: 13(float) Load 3773 + 8654: 12(int) ConvertFToS 8366 + Store 18415 8654 + 17256: 13(float) FunctionCall 3782 18415 + 14512: 13(float) Load 3773 + 7041: 12(int) ConvertFToS 14512 + Store 5786 7041 + 23993: 13(float) FunctionCall 3836 5786 + 9180: 13(float) FAdd 17256 23993 + 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 + Store 4539 15728 + Return + FunctionEnd + 3782: 13(float) Function None 204 + 6931: 649(ptr) FunctionParameter + 12220: Label + 4292: 650(ptr) Variable Function + 4298: 649(ptr) Variable Function + Store 4292 2572 + Store 4298 2571 + Branch 14924 + 14924: Label + LoopMerge 6507 6488 None + Branch 11857 + 11857: Label + 13755: 12(int) Load 4298 + 22731: 12(int) Load 6931 + 20007: 9(bool) SLessThan 13755 22731 + BranchConditional 20007 24750 6507 + 24750: Label + 22912: 13(float) Load 4292 + 19471: 13(float) FAdd 22912 252 + Store 4292 19471 + Branch 6488 + 6488: Label + 19050: 12(int) Load 4298 + 8593: 12(int) IAdd 19050 2574 + Store 4298 8593 + Branch 14924 + 6507: Label + 18877: 13(float) Load 4292 + 15899: 13(float) FAdd 18877 2821 + Store 4292 15899 + 20342: 13(float) Load 4292 + ReturnValue 20342 + FunctionEnd + 3836: 13(float) Function None 204 + 4408: 649(ptr) FunctionParameter + 12143: Label + 22102: 649(ptr) Variable Function + 24151: 12(int) Load 4408 + 13868: 9(bool) SGreaterThan 24151 2577 + SelectionMerge 22309 None + BranchConditional 13868 10822 17416 + 10822: Label + 22680: 12(int) Load 4408 + 23216: 12(int) IMul 22680 2577 + Store 22102 23216 + 7042: 13(float) FunctionCall 3782 22102 + ReturnValue 7042 + 17416: Label + 19506: 12(int) Load 4408 + 22773: 12(int) IMul 19506 2583 + 13472: 651(ptr) AccessChain 4201 2573 + 15280: 12(int) Load 13472 + 18079: 651(ptr) AccessChain 4201 2576 + 15199: 12(int) Load 18079 + 9343: 12(int) IMul 15280 15199 + 11462: 12(int) IAdd 22773 9343 + 11885: 651(ptr) AccessChain 4201 2570 + 21176: 12(int) Load 11885 + 10505: 12(int) IAdd 11462 21176 + 14626: 13(float) ConvertSToF 10505 + ReturnValue 14626 + 22309: Label + 6429: 13(float) Undef + ReturnValue 6429 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.similar_1b.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.none.frag.out new file mode 100644 index 0000000000..0a854d6ea2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.similar_1b.none.frag.out @@ -0,0 +1,135 @@ +remap.similar_1b.none.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 91 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 78 80 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 11 "Test1(i1;" + Name 10 "bound" + Name 14 "Test2(i1;" + Name 13 "bound" + Name 17 "r" + Name 19 "x" + Name 49 "param" + Name 58 "ini4" + Name 78 "outf4" + Name 80 "inf" + Name 83 "param" + Name 87 "param" + Decorate 58(ini4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeFunction 8(float) 7(ptr) + 16: TypePointer Function 8(float) + 18: 8(float) Constant 0 + 20: 6(int) Constant 0 + 28: TypeBool + 30: 8(float) Constant 1056964608 + 34: 6(int) Constant 1 + 36: 8(float) Constant 1045220557 + 43: 6(int) Constant 2 + 54: 6(int) Constant 4 + 56: TypeVector 6(int) 4 + 57: TypePointer Input 56(ivec4) + 58(ini4): 57(ptr) Variable Input + 59: TypeInt 32 0 + 60: 59(int) Constant 1 + 61: TypePointer Input 6(int) + 64: 59(int) Constant 2 + 69: 59(int) Constant 0 + 76: TypeVector 8(float) 4 + 77: TypePointer Output 76(fvec4) + 78(outf4): 77(ptr) Variable Output + 79: TypePointer Input 8(float) + 80(inf): 79(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 83(param): 7(ptr) Variable Function + 87(param): 7(ptr) Variable Function + 81: 8(float) Load 80(inf) + 82: 6(int) ConvertFToS 81 + Store 83(param) 82 + 84: 8(float) FunctionCall 11(Test1(i1;) 83(param) + 85: 8(float) Load 80(inf) + 86: 6(int) ConvertFToS 85 + Store 87(param) 86 + 88: 8(float) FunctionCall 14(Test2(i1;) 87(param) + 89: 8(float) FAdd 84 88 + 90: 76(fvec4) CompositeConstruct 89 89 89 89 + Store 78(outf4) 90 + Return + FunctionEnd + 11(Test1(i1;): 8(float) Function None 9 + 10(bound): 7(ptr) FunctionParameter + 12: Label + 17(r): 16(ptr) Variable Function + 19(x): 7(ptr) Variable Function + Store 17(r) 18 + Store 19(x) 20 + Branch 21 + 21: Label + LoopMerge 23 24 None + Branch 25 + 25: Label + 26: 6(int) Load 19(x) + 27: 6(int) Load 10(bound) + 29: 28(bool) SLessThan 26 27 + BranchConditional 29 22 23 + 22: Label + 31: 8(float) Load 17(r) + 32: 8(float) FAdd 31 30 + Store 17(r) 32 + Branch 24 + 24: Label + 33: 6(int) Load 19(x) + 35: 6(int) IAdd 33 34 + Store 19(x) 35 + Branch 21 + 23: Label + 37: 8(float) Load 17(r) + 38: 8(float) FAdd 37 36 + Store 17(r) 38 + 39: 8(float) Load 17(r) + ReturnValue 39 + FunctionEnd + 14(Test2(i1;): 8(float) Function None 9 + 13(bound): 7(ptr) FunctionParameter + 15: Label + 49(param): 7(ptr) Variable Function + 42: 6(int) Load 13(bound) + 44: 28(bool) SGreaterThan 42 43 + SelectionMerge 46 None + BranchConditional 44 45 52 + 45: Label + 47: 6(int) Load 13(bound) + 48: 6(int) IMul 47 43 + Store 49(param) 48 + 50: 8(float) FunctionCall 11(Test1(i1;) 49(param) + ReturnValue 50 + 52: Label + 53: 6(int) Load 13(bound) + 55: 6(int) IMul 53 54 + 62: 61(ptr) AccessChain 58(ini4) 60 + 63: 6(int) Load 62 + 65: 61(ptr) AccessChain 58(ini4) 64 + 66: 6(int) Load 65 + 67: 6(int) IMul 63 66 + 68: 6(int) IAdd 55 67 + 70: 61(ptr) AccessChain 58(ini4) 69 + 71: 6(int) Load 70 + 72: 6(int) IAdd 68 71 + 73: 8(float) ConvertSToF 72 + ReturnValue 73 + 46: Label + 75: 8(float) Undef + ReturnValue 75 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.specconst.comp.out b/deps/glslang/glslang/Test/baseResults/remap.specconst.comp.out new file mode 100644 index 0000000000..ee049f4309 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.specconst.comp.out @@ -0,0 +1,31 @@ +remap.specconst.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 16104 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 5663 "main" + ExecutionMode 5663 LocalSize 1 1 1 + Decorate 2 SpecId 0 + Decorate 3 SpecId 1 + Decorate 4 SpecId 2 + Decorate 5 BuiltIn WorkgroupSize + 8: TypeVoid + 1282: TypeFunction 8 + 11: TypeInt 32 0 + 2: 11(int) SpecConstant 1 + 3: 11(int) SpecConstant 1 + 4: 11(int) SpecConstant 1 + 20: TypeVector 11(int) 3 + 5: 20(ivec3) SpecConstantComposite 2 3 4 + 6: 11(int) SpecConstantOp 81 5 0 + 7: 11(int) SpecConstantOp 81 5 1(GLSL.std.450) + 9: 11(int) SpecConstantOp 81 5 2 + 10: 11(int) SpecConstantOp 132 7 9 + 12: 11(int) SpecConstantOp 128 6 10 + 5663: 8 Function None 1282 + 16103: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out new file mode 100644 index 0000000000..ffd64d4f6a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.switch.everything.frag.out @@ -0,0 +1,76 @@ +remap.switch.everything.frag +WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 23990 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 3719 3994 + ExecutionMode 5663 OriginUpperLeft + Decorate 3719 Location 0 + Decorate 3994 RelaxedPrecision + Decorate 3994 Location 0 + Decorate 12421 RelaxedPrecision + Decorate 12422 RelaxedPrecision + Decorate 12423 RelaxedPrecision + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Input 29(fvec4) + 3719: 666(ptr) Variable Input + 11: TypeInt 32 0 + 2579: 11(int) Constant 3 + 650: TypePointer Input 13(float) + 12: TypeInt 32 1 + 667: TypePointer Output 29(fvec4) + 3994: 667(ptr) Variable Output + 2570: 11(int) Constant 0 + 2572: 13(float) Constant 0 + 2573: 11(int) Constant 1 + 138: 13(float) Constant 1065353216 + 2576: 11(int) Constant 2 + 24: 13(float) Constant 1073741824 + 833: 13(float) Constant 3212836864 + 1284: 29(fvec4) ConstantComposite 833 833 833 833 + 5663: 8 Function None 1282 + 23915: Label + 7984: 650(ptr) AccessChain 3719 2579 + 11376: 13(float) Load 7984 + 16859: 12(int) ConvertFToS 11376 + SelectionMerge 19578 None + Switch 16859 15971 + case 0: 8158 + case 1: 8159 + case 2: 8160 + 15971: Label + Store 3994 1284 + Branch 19578 + 8158: Label + 21848: 650(ptr) AccessChain 3719 2570 + 23987: 13(float) Load 21848 + 19989: 13(float) FAdd 23987 2572 + 12421: 29(fvec4) CompositeConstruct 19989 19989 19989 19989 + Store 3994 12421 + Branch 19578 + 8159: Label + 21849: 650(ptr) AccessChain 3719 2573 + 23988: 13(float) Load 21849 + 19990: 13(float) FAdd 23988 138 + 12422: 29(fvec4) CompositeConstruct 19990 19990 19990 19990 + Store 3994 12422 + Branch 19578 + 8160: Label + 21850: 650(ptr) AccessChain 3719 2576 + 23989: 13(float) Load 21850 + 19991: 13(float) FAdd 23989 24 + 12423: 29(fvec4) CompositeConstruct 19991 19991 19991 19991 + Store 3994 12423 + Branch 19578 + 19578: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out new file mode 100644 index 0000000000..4dd78977a4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.switch.none.frag.out @@ -0,0 +1,80 @@ +remap.switch.none.frag +WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 48 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 23 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "in0" + Name 23 "FragColor" + Decorate 9(in0) Location 0 + Decorate 23(FragColor) RelaxedPrecision + Decorate 23(FragColor) Location 0 + Decorate 29 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 43 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(in0): 8(ptr) Variable Input + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypePointer Input 6(float) + 15: TypeInt 32 1 + 22: TypePointer Output 7(fvec4) + 23(FragColor): 22(ptr) Variable Output + 24: 10(int) Constant 0 + 27: 6(float) Constant 0 + 31: 10(int) Constant 1 + 34: 6(float) Constant 1065353216 + 38: 10(int) Constant 2 + 41: 6(float) Constant 1073741824 + 45: 6(float) Constant 3212836864 + 46: 7(fvec4) ConstantComposite 45 45 45 45 + 4(main): 2 Function None 3 + 5: Label + 13: 12(ptr) AccessChain 9(in0) 11 + 14: 6(float) Load 13 + 16: 15(int) ConvertFToS 14 + SelectionMerge 21 None + Switch 16 20 + case 0: 17 + case 1: 18 + case 2: 19 + 20: Label + Store 23(FragColor) 46 + Branch 21 + 17: Label + 25: 12(ptr) AccessChain 9(in0) 24 + 26: 6(float) Load 25 + 28: 6(float) FAdd 26 27 + 29: 7(fvec4) CompositeConstruct 28 28 28 28 + Store 23(FragColor) 29 + Branch 21 + 18: Label + 32: 12(ptr) AccessChain 9(in0) 31 + 33: 6(float) Load 32 + 35: 6(float) FAdd 33 34 + 36: 7(fvec4) CompositeConstruct 35 35 35 35 + Store 23(FragColor) 36 + Branch 21 + 19: Label + 39: 12(ptr) AccessChain 9(in0) 38 + 40: 6(float) Load 39 + 42: 6(float) FAdd 40 41 + 43: 7(fvec4) CompositeConstruct 42 42 42 42 + Store 23(FragColor) 43 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out new file mode 100644 index 0000000000..c1f306e109 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.everything.frag.out @@ -0,0 +1,64 @@ +remap.uniformarray.everything.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 25030 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 3608 4957 4339 5139 + ExecutionMode 5663 OriginUpperLeft + Decorate 5139 Location 0 + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Function 29(fvec4) + 11: TypeInt 32 0 + 2588: 11(int) Constant 6 + 740: TypeArray 29(fvec4) 2588 + 1377: TypePointer Input 740 + 3608: 1377(ptr) Variable Input + 12: TypeInt 32 1 + 2574: 12(int) Constant 1 + 667: TypePointer Input 29(fvec4) + 24: TypeVector 13(float) 3 + 661: TypePointer Input 24(fvec3) + 4957: 661(ptr) Variable Input + 2618: 11(int) Constant 16 + 669: TypeArray 13(float) 2618 + 1306: TypePointer Input 669 + 4339: 1306(ptr) Variable Input + 2607: 12(int) Constant 12 + 650: TypePointer Input 13(float) + 2579: 11(int) Constant 3 + 651: TypePointer Function 13(float) + 668: TypePointer Output 29(fvec4) + 5139: 668(ptr) Variable Output + 5663: 8 Function None 1282 + 25029: Label + 4902: 666(ptr) Variable Function + 10645: 667(ptr) AccessChain 3608 2574 + 8181: 29(fvec4) Load 10645 + 21370: 667(ptr) AccessChain 3608 2574 + 11355: 29(fvec4) Load 21370 + 23084: 29(fvec4) FAdd 8181 11355 + Store 4902 23084 + 21218: 24(fvec3) Load 4957 + 13695: 29(fvec4) Load 4902 + 23883: 24(fvec3) VectorShuffle 13695 13695 0 1 2 + 15591: 24(fvec3) FAdd 23883 21218 + 17086: 29(fvec4) Load 4902 + 7051: 29(fvec4) VectorShuffle 17086 15591 4 5 6 3 + Store 4902 7051 + 18282: 650(ptr) AccessChain 4339 2607 + 7372: 13(float) Load 18282 + 21371: 651(ptr) AccessChain 4902 2579 + 11412: 13(float) Load 21371 + 22584: 13(float) FAdd 11412 7372 + 17318: 651(ptr) AccessChain 4902 2579 + Store 17318 22584 + 17934: 29(fvec4) Load 4902 + Store 5139 17934 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out new file mode 100644 index 0000000000..6ed2d45e09 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/remap.uniformarray.none.frag.out @@ -0,0 +1,77 @@ +remap.uniformarray.none.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 53 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 25 35 47 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "texColor" + Name 14 "color" + Name 25 "inColor" + Name 35 "alpha" + Name 47 "gl_FragColor" + Name 52 "texSampler2D" + Decorate 47(gl_FragColor) Location 0 + Decorate 52(texSampler2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeInt 32 0 + 11: 10(int) Constant 6 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer Input 12 + 14(color): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Input 7(fvec4) + 23: TypeVector 6(float) 3 + 24: TypePointer Input 23(fvec3) + 25(inColor): 24(ptr) Variable Input + 32: 10(int) Constant 16 + 33: TypeArray 6(float) 32 + 34: TypePointer Input 33 + 35(alpha): 34(ptr) Variable Input + 36: 15(int) Constant 12 + 37: TypePointer Input 6(float) + 40: 10(int) Constant 3 + 41: TypePointer Function 6(float) + 46: TypePointer Output 7(fvec4) +47(gl_FragColor): 46(ptr) Variable Output + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypeSampledImage 49 + 51: TypePointer UniformConstant 50 +52(texSampler2D): 51(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(texColor): 8(ptr) Variable Function + 18: 17(ptr) AccessChain 14(color) 16 + 19: 7(fvec4) Load 18 + 20: 17(ptr) AccessChain 14(color) 16 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 19 21 + Store 9(texColor) 22 + 26: 23(fvec3) Load 25(inColor) + 27: 7(fvec4) Load 9(texColor) + 28: 23(fvec3) VectorShuffle 27 27 0 1 2 + 29: 23(fvec3) FAdd 28 26 + 30: 7(fvec4) Load 9(texColor) + 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 + Store 9(texColor) 31 + 38: 37(ptr) AccessChain 35(alpha) 36 + 39: 6(float) Load 38 + 42: 41(ptr) AccessChain 9(texColor) 40 + 43: 6(float) Load 42 + 44: 6(float) FAdd 43 39 + 45: 41(ptr) AccessChain 9(texColor) 40 + Store 45 44 + 48: 7(fvec4) Load 9(texColor) + Store 47(gl_FragColor) 48 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/runtimeArray.vert.out b/deps/glslang/glslang/Test/baseResults/runtimeArray.vert.out new file mode 100644 index 0000000000..5ba399291b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/runtimeArray.vert.out @@ -0,0 +1,647 @@ +runtimeArray.vert +WARNING: 0:33: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +WARNING: 0:34: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +WARNING: 0:37: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +WARNING: 0:38: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +WARNING: 0:39: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +WARNING: 0:40: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array +ERROR: 0:61: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:62: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:63: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:66: 'length' : array must be declared with a size before using this method +ERROR: 0:67: 'length' : array must be declared with a size before using this method +ERROR: 0:68: 'length' : array must be declared with a size before using this method +ERROR: 0:71: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:72: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:73: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:76: 'length' : array must be declared with a size before using this method +ERROR: 0:77: 'length' : array must be declared with a size before using this method +ERROR: 0:78: 'length' : array must be declared with a size before using this method +ERROR: 0:81: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:82: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:83: '[' : array must be redeclared with a size before being indexed with a variable +ERROR: 0:86: 'length' : array must be declared with a size before using this method +ERROR: 0:87: 'length' : array must be declared with a size before using this method +ERROR: 0:88: 'length' : array must be declared with a size before using this method +ERROR: 0:100: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:101: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:102: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:103: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:104: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:105: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:106: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:107: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier +ERROR: 0:109: '[]' : array initializer must be sized +ERROR: 27 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:44 Function Definition: main( ( global void) +0:44 Function Parameters: +0:46 Sequence +0:46 direct index (layout( column_major shared) temp int) +0:46 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:46 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 3 (const int) +0:47 direct index (layout( column_major shared) temp float) +0:47 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:47 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 3 (const int) +0:48 direct index (layout( column_major shared) temp int) +0:48 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:48 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 3 (const int) +0:49 direct index (layout( column_major shared) temp float) +0:49 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:49 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 3 (const int) +0:51 direct index (layout( column_major shared) temp int) +0:51 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:51 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:51 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:51 Constant: +0:51 3 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:52 direct index (layout( column_major shared) temp float) +0:52 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:52 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:52 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:52 Constant: +0:52 3 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 3 (const int) +0:53 direct index (layout( column_major shared) temp int) +0:53 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:53 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:53 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:53 Constant: +0:53 3 (const int) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 3 (const int) +0:54 direct index (layout( column_major shared) temp float) +0:54 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:54 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:54 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:54 Constant: +0:54 3 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 3 (const int) +0:56 direct index (layout( column_major shared) temp int) +0:56 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:56 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:56 Constant: +0:56 0 (const uint) +0:56 Constant: +0:56 3 (const int) +0:57 direct index (layout( column_major shared) temp float) +0:57 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:57 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 3 (const int) +0:58 direct index (layout( column_major shared) temp int) +0:58 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:58 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:58 Constant: +0:58 0 (const uint) +0:58 Constant: +0:58 3 (const int) +0:59 direct index (layout( column_major shared) temp float) +0:59 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:59 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:59 Constant: +0:59 1 (const uint) +0:59 Constant: +0:59 3 (const int) +0:61 indirect index (layout( column_major shared) temp int) +0:61 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:61 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:61 Constant: +0:61 0 (const int) +0:61 'i' ( global int) +0:62 indirect index (layout( column_major shared) temp float) +0:62 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:62 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:62 Constant: +0:62 1 (const int) +0:62 'i' ( global int) +0:63 indirect index (layout( column_major shared) temp int) +0:63 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:63 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:63 Constant: +0:63 0 (const int) +0:63 'i' ( global int) +0:64 indirect index (layout( column_major shared) temp float) +0:64 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:64 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:64 Constant: +0:64 1 (const int) +0:64 'i' ( global int) +0:66 Constant: +0:66 1 (const int) +0:67 Constant: +0:67 1 (const int) +0:68 Constant: +0:68 1 (const int) +0:69 array length ( temp int) +0:69 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:69 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:69 Constant: +0:69 1 (const int) +0:71 indirect index (layout( column_major shared) temp int) +0:71 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:71 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:71 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:71 Constant: +0:71 1 (const int) +0:71 Constant: +0:71 0 (const int) +0:71 'i' ( global int) +0:72 indirect index (layout( column_major shared) temp float) +0:72 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:72 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:72 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 'i' ( global int) +0:73 indirect index (layout( column_major shared) temp int) +0:73 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:73 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:73 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 0 (const int) +0:73 'i' ( global int) +0:74 indirect index (layout( column_major shared) temp float) +0:74 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:74 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:74 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 1 (const int) +0:74 'i' ( global int) +0:76 Constant: +0:76 1 (const int) +0:77 Constant: +0:77 1 (const int) +0:78 Constant: +0:78 1 (const int) +0:79 array length ( temp int) +0:79 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:79 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:79 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:79 Constant: +0:79 1 (const int) +0:79 Constant: +0:79 1 (const int) +0:81 indirect index (layout( column_major shared) temp int) +0:81 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:81 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:81 Constant: +0:81 0 (const uint) +0:81 'i' ( global int) +0:82 indirect index (layout( column_major shared) temp float) +0:82 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:82 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:82 Constant: +0:82 1 (const uint) +0:82 'i' ( global int) +0:83 indirect index (layout( column_major shared) temp int) +0:83 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:83 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:83 Constant: +0:83 0 (const uint) +0:83 'i' ( global int) +0:84 indirect index (layout( column_major shared) temp float) +0:84 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:84 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:84 Constant: +0:84 1 (const uint) +0:84 'i' ( global int) +0:86 Constant: +0:86 1 (const int) +0:87 Constant: +0:87 1 (const int) +0:88 Constant: +0:88 1 (const int) +0:89 array length ( temp int) +0:89 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:89 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:89 Constant: +0:89 1 (const uint) +0:91 direct index (layout( binding=1) temp samplerBuffer) +0:91 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) +0:91 Constant: +0:91 1 (const int) +0:92 direct index (layout( binding=2 r32f) temp imageBuffer) +0:92 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) +0:92 Constant: +0:92 1 (const int) +0:93 direct index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) +0:93 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) +0:93 Constant: +0:93 1 (const int) +0:94 direct index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) +0:94 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) +0:94 Constant: +0:94 1 (const int) +0:95 direct index (layout( binding=5) temp sampler2D) +0:95 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) +0:95 Constant: +0:95 1 (const int) +0:96 direct index (layout( binding=6 r32f) temp image2D) +0:96 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) +0:96 Constant: +0:96 1 (const int) +0:97 direct index (layout( binding=8) temp samplerBuffer) +0:97 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) +0:97 Constant: +0:97 1 (const int) +0:98 direct index (layout( binding=9 r32f) temp imageBuffer) +0:98 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) +0:98 Constant: +0:98 1 (const int) +0:100 indirect index (layout( binding=1) temp samplerBuffer) +0:100 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) +0:100 'i' ( global int) +0:101 indirect index (layout( binding=2 r32f) temp imageBuffer) +0:101 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) +0:101 'i' ( global int) +0:102 indirect index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) +0:102 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) +0:102 'i' ( global int) +0:103 indirect index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) +0:103 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) +0:103 'i' ( global int) +0:104 indirect index (layout( binding=5) temp sampler2D) +0:104 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) +0:104 'i' ( global int) +0:105 indirect index (layout( binding=6 r32f) temp image2D) +0:105 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) +0:105 'i' ( global int) +0:106 indirect index (layout( binding=8) temp samplerBuffer) +0:106 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) +0:106 'i' ( global int) +0:107 indirect index (layout( binding=9 r32f) temp imageBuffer) +0:107 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) +0:107 'i' ( global int) +0:109 Sequence +0:109 move second child to first child ( temp unsized 1-element array of float) +0:109 'local' ( temp unsized 1-element array of float) +0:109 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:109 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:109 Constant: +0:109 1 (const int) +0:? Linker Objects +0:? 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:? 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:? 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:? 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:? 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) +0:? 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) +0:? 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) +0:? 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) +0:? 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) +0:? 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) +0:? 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) +0:? 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) +0:? 'i' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 450 +ERROR: node is still EOpNull! +0:44 Function Definition: main( ( global void) +0:44 Function Parameters: +0:46 Sequence +0:46 direct index (layout( column_major shared) temp int) +0:46 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:46 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 3 (const int) +0:47 direct index (layout( column_major shared) temp float) +0:47 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:47 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:47 Constant: +0:47 1 (const int) +0:47 Constant: +0:47 3 (const int) +0:48 direct index (layout( column_major shared) temp int) +0:48 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:48 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 3 (const int) +0:49 direct index (layout( column_major shared) temp float) +0:49 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:49 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 3 (const int) +0:51 direct index (layout( column_major shared) temp int) +0:51 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:51 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:51 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:51 Constant: +0:51 3 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 3 (const int) +0:52 direct index (layout( column_major shared) temp float) +0:52 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:52 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:52 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:52 Constant: +0:52 3 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 3 (const int) +0:53 direct index (layout( column_major shared) temp int) +0:53 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:53 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:53 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:53 Constant: +0:53 3 (const int) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 3 (const int) +0:54 direct index (layout( column_major shared) temp float) +0:54 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:54 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:54 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:54 Constant: +0:54 3 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 3 (const int) +0:56 direct index (layout( column_major shared) temp int) +0:56 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:56 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:56 Constant: +0:56 0 (const uint) +0:56 Constant: +0:56 3 (const int) +0:57 direct index (layout( column_major shared) temp float) +0:57 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:57 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 3 (const int) +0:58 direct index (layout( column_major shared) temp int) +0:58 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:58 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:58 Constant: +0:58 0 (const uint) +0:58 Constant: +0:58 3 (const int) +0:59 direct index (layout( column_major shared) temp float) +0:59 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:59 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:59 Constant: +0:59 1 (const uint) +0:59 Constant: +0:59 3 (const int) +0:61 indirect index (layout( column_major shared) temp int) +0:61 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:61 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:61 Constant: +0:61 0 (const int) +0:61 'i' ( global int) +0:62 indirect index (layout( column_major shared) temp float) +0:62 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:62 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:62 Constant: +0:62 1 (const int) +0:62 'i' ( global int) +0:63 indirect index (layout( column_major shared) temp int) +0:63 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:63 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:63 Constant: +0:63 0 (const int) +0:63 'i' ( global int) +0:64 indirect index (layout( column_major shared) temp float) +0:64 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:64 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:64 Constant: +0:64 1 (const int) +0:64 'i' ( global int) +0:66 Constant: +0:66 1 (const int) +0:67 Constant: +0:67 1 (const int) +0:68 Constant: +0:68 1 (const int) +0:69 array length ( temp int) +0:69 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:69 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:69 Constant: +0:69 1 (const int) +0:71 indirect index (layout( column_major shared) temp int) +0:71 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:71 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:71 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:71 Constant: +0:71 1 (const int) +0:71 Constant: +0:71 0 (const int) +0:71 'i' ( global int) +0:72 indirect index (layout( column_major shared) temp float) +0:72 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:72 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:72 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:72 Constant: +0:72 1 (const int) +0:72 Constant: +0:72 1 (const int) +0:72 'i' ( global int) +0:73 indirect index (layout( column_major shared) temp int) +0:73 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:73 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:73 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 0 (const int) +0:73 'i' ( global int) +0:74 indirect index (layout( column_major shared) temp float) +0:74 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:74 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:74 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 1 (const int) +0:74 'i' ( global int) +0:76 Constant: +0:76 1 (const int) +0:77 Constant: +0:77 1 (const int) +0:78 Constant: +0:78 1 (const int) +0:79 array length ( temp int) +0:79 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:79 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:79 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:79 Constant: +0:79 1 (const int) +0:79 Constant: +0:79 1 (const int) +0:81 indirect index (layout( column_major shared) temp int) +0:81 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int) +0:81 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:81 Constant: +0:81 0 (const uint) +0:81 'i' ( global int) +0:82 indirect index (layout( column_major shared) temp float) +0:82 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:82 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:82 Constant: +0:82 1 (const uint) +0:82 'i' ( global int) +0:83 indirect index (layout( column_major shared) temp int) +0:83 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int) +0:83 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:83 Constant: +0:83 0 (const uint) +0:83 'i' ( global int) +0:84 indirect index (layout( column_major shared) temp float) +0:84 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:84 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:84 Constant: +0:84 1 (const uint) +0:84 'i' ( global int) +0:86 Constant: +0:86 1 (const int) +0:87 Constant: +0:87 1 (const int) +0:88 Constant: +0:88 1 (const int) +0:89 array length ( temp int) +0:89 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float) +0:89 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:89 Constant: +0:89 1 (const uint) +0:91 direct index (layout( binding=1) temp samplerBuffer) +0:91 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) +0:91 Constant: +0:91 1 (const int) +0:92 direct index (layout( binding=2 r32f) temp imageBuffer) +0:92 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) +0:92 Constant: +0:92 1 (const int) +0:93 direct index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) +0:93 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) +0:93 Constant: +0:93 1 (const int) +0:94 direct index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) +0:94 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) +0:94 Constant: +0:94 1 (const int) +0:95 direct index (layout( binding=5) temp sampler2D) +0:95 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) +0:95 Constant: +0:95 1 (const int) +0:96 direct index (layout( binding=6 r32f) temp image2D) +0:96 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) +0:96 Constant: +0:96 1 (const int) +0:97 direct index (layout( binding=8) temp samplerBuffer) +0:97 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) +0:97 Constant: +0:97 1 (const int) +0:98 direct index (layout( binding=9 r32f) temp imageBuffer) +0:98 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) +0:98 Constant: +0:98 1 (const int) +0:100 indirect index (layout( binding=1) temp samplerBuffer) +0:100 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) +0:100 'i' ( global int) +0:101 indirect index (layout( binding=2 r32f) temp imageBuffer) +0:101 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) +0:101 'i' ( global int) +0:102 indirect index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a}) +0:102 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) +0:102 'i' ( global int) +0:103 indirect index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b}) +0:103 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) +0:103 'i' ( global int) +0:104 indirect index (layout( binding=5) temp sampler2D) +0:104 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) +0:104 'i' ( global int) +0:105 indirect index (layout( binding=6 r32f) temp image2D) +0:105 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) +0:105 'i' ( global int) +0:106 indirect index (layout( binding=8) temp samplerBuffer) +0:106 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) +0:106 'i' ( global int) +0:107 indirect index (layout( binding=9 r32f) temp imageBuffer) +0:107 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) +0:107 'i' ( global int) +0:109 Sequence +0:109 move second child to first child ( temp 1-element array of float) +0:109 'local' ( temp 1-element array of float) +0:109 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float) +0:109 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:109 Constant: +0:109 1 (const int) +0:? Linker Objects +0:? 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:? 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:? 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b}) +0:? 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b}) +0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb}) +0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub}) +0:? 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer) +0:? 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer) +0:? 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a}) +0:? 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b}) +0:? 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D) +0:? 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D) +0:? 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer) +0:? 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer) +0:? 'i' ( global int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/sample.frag.out b/deps/glslang/glslang/Test/baseResults/sample.frag.out new file mode 100644 index 0000000000..780789a74a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/sample.frag.out @@ -0,0 +1,33 @@ +sample.frag +Shader version: 110 +0:? Sequence +0:38 Function Definition: main( ( global void) +0:38 Function Parameters: +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:40 Construct vec4 ( temp 4-component vector of float) +0:40 'color' ( smooth in 3-component vector of float) +0:40 Constant: +0:40 1.000000 +0:? Linker Objects +0:? 'color' ( smooth in 3-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:38 Function Definition: main( ( global void) +0:38 Function Parameters: +0:40 Sequence +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:40 Construct vec4 ( temp 4-component vector of float) +0:40 'color' ( smooth in 3-component vector of float) +0:40 Constant: +0:40 1.000000 +0:? Linker Objects +0:? 'color' ( smooth in 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/sample.vert.out b/deps/glslang/glslang/Test/baseResults/sample.vert.out new file mode 100644 index 0000000000..848598eb70 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/sample.vert.out @@ -0,0 +1,43 @@ +sample.vert +Shader version: 110 +0:? Sequence +0:38 Function Definition: main( ( global void) +0:38 Function Parameters: +0:40 Sequence +0:40 move second child to first child ( temp 3-component vector of float) +0:40 'color' ( smooth out 3-component vector of float) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'gl_Position' ( gl_Position 4-component vector of float Position) +0:42 matrix-times-vector ( temp 4-component vector of float) +0:42 'gl_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float) +0:42 'gl_Vertex' ( in 4-component vector of float Vertex) +0:? Linker Objects +0:? 'color' ( smooth out 3-component vector of float) + + +Linked vertex stage: + + +Shader version: 110 +0:? Sequence +0:38 Function Definition: main( ( global void) +0:38 Function Parameters: +0:40 Sequence +0:40 move second child to first child ( temp 3-component vector of float) +0:40 'color' ( smooth out 3-component vector of float) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:42 move second child to first child ( temp 4-component vector of float) +0:42 'gl_Position' ( gl_Position 4-component vector of float Position) +0:42 matrix-times-vector ( temp 4-component vector of float) +0:42 'gl_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float) +0:42 'gl_Vertex' ( in 4-component vector of float Vertex) +0:? Linker Objects +0:? 'color' ( smooth out 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/simpleFunctionCall.frag.out b/deps/glslang/glslang/Test/baseResults/simpleFunctionCall.frag.out new file mode 100644 index 0000000000..5ccd54d2a5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/simpleFunctionCall.frag.out @@ -0,0 +1,43 @@ +simpleFunctionCall.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release + +Shader version: 150 +0:? Sequence +0:7 Function Definition: foo( ( global 4-component vector of float) +0:7 Function Parameters: +0:9 Sequence +0:9 Branch: Return with expression +0:9 'BaseColor' ( smooth in 4-component vector of float) +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:14 Function Call: foo( ( global 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + + +Linked fragment stage: + + +Shader version: 150 +0:? Sequence +0:7 Function Definition: foo( ( global 4-component vector of float) +0:7 Function Parameters: +0:9 Sequence +0:9 Branch: Return with expression +0:9 'BaseColor' ( smooth in 4-component vector of float) +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:14 Function Call: foo( ( global 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + diff --git a/deps/glslang/glslang/Test/baseResults/specExamples.frag.out b/deps/glslang/glslang/Test/baseResults/specExamples.frag.out new file mode 100644 index 0000000000..5eec3cbf44 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/specExamples.frag.out @@ -0,0 +1,599 @@ +specExamples.frag +ERROR: 0:6: '=' : cannot convert from ' const uint' to ' global int' +ERROR: 0:20: '' : numeric literal too big +ERROR: 0:21: '' : hexadecimal literal too big +ERROR: 0:37: 'view' : redefinition +ERROR: 0:63: 'invariant' : can only apply to an output +ERROR: 0:68: 'lightPosition' : redefinition +ERROR: 0:75: 'Atten' : member storage qualifier cannot contradict block storage qualifier +ERROR: 0:87: 'Color' : redefinition +ERROR: 0:92: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord +ERROR: 0:93: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord +ERROR: 0:99: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:99: 'local_size_y' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:100: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:102: 'color' : redefinition +ERROR: 0:112: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth +ERROR: 0:118: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth +ERROR: 0:121: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth +ERROR: 0:172: 'x' : undeclared identifier +ERROR: 0:172: '[]' : scalar integer expression required +ERROR: 0:175: 'x' : undeclared identifier +ERROR: 0:175: '[]' : scalar integer expression required +ERROR: 0:175: 'b' : left of '[' is not of type array, matrix, or vector +ERROR: 0:175: 'a' : vector swizzle selection out of range +ERROR: 0:175: 'length' : does not operate on this type: const float +ERROR: 0:175: '' : function call, method, or subroutine call expected +ERROR: 0:175: '' : no matching overloaded function found +ERROR: 0:178: '[]' : scalar integer expression required +ERROR: 0:178: 's' : undeclared identifier +ERROR: 0:178: 's' : left of '[' is not of type array, matrix, or vector +ERROR: 0:178: 'a' : vector swizzle selection out of range +ERROR: 0:178: 'length' : does not operate on this type: const float +ERROR: 0:178: '' : function call, method, or subroutine call expected +ERROR: 0:178: '' : no matching overloaded function found +ERROR: 0:198: 'e' : redefinition +ERROR: 0:226: 'in' : not allowed in nested scope +ERROR: 0:227: 'in' : not allowed in nested scope +ERROR: 0:228: 'in' : not allowed in nested scope +ERROR: 0:232: 'out' : not allowed in nested scope +ERROR: 38 compilation errors. No code generated. + + +Shader version: 430 +Requested GL_3DL_array_objects +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +using early_fragment_tests +using depth_greater +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'a' ( global int) +0:5 Constant: +0:5 -1 (const int) +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'c' ( global uint) +0:7 Constant: +0:7 4294967295 (const uint) +0:8 Sequence +0:8 move second child to first child ( temp uint) +0:8 'd' ( global uint) +0:8 Constant: +0:8 4294967295 (const uint) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'e' ( global int) +0:9 Constant: +0:9 -1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp uint) +0:13 'f' ( global uint) +0:13 Constant: +0:13 4294967295 (const uint) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'g' ( global int) +0:17 Constant: +0:17 -1294967296 (const int) +0:19 Sequence +0:19 move second child to first child ( temp int) +0:19 'h' ( global int) +0:19 Constant: +0:19 -1610612736 (const int) +0:20 Sequence +0:20 move second child to first child ( temp int) +0:20 'i' ( global int) +0:20 Constant: +0:20 -1 (const int) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'j' ( global int) +0:21 Constant: +0:21 -1 (const int) +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'k' ( global int) +0:22 Constant: +0:22 -2147483648 (const int) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'l' ( global int) +0:23 Constant: +0:23 -2147483648 (const int) +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'fb' ( global float) +0:25 Constant: +0:25 1.500000 +0:26 Sequence +0:26 move second child to first child ( temp double) +0:26 'fd' ( global double) +0:26 Constant: +0:26 2.000000 +0:127 Function Definition: foo(f1[5]; ( global 5-element array of float) +0:127 Function Parameters: +0:127 '' ( in 5-element array of float) +0:129 Sequence +0:129 Branch: Return with expression +0:129 Constant: +0:129 3.400000 +0:129 4.200000 +0:129 5.000000 +0:129 5.200000 +0:129 1.100000 +0:137 Function Definition: main( ( global void) +0:137 Function Parameters: +0:140 Sequence +0:140 Sequence +0:140 Sequence +0:140 move second child to first child ( temp 5-element array of float) +0:140 'a' ( temp 5-element array of float) +0:140 Constant: +0:140 3.400000 +0:140 4.200000 +0:140 5.000000 +0:140 5.200000 +0:140 1.100000 +0:143 Sequence +0:143 Sequence +0:143 move second child to first child ( temp 5-element array of float) +0:143 'a' ( temp 5-element array of float) +0:143 Constant: +0:143 3.400000 +0:143 4.200000 +0:143 5.000000 +0:143 5.200000 +0:143 1.100000 +0:? Sequence +0:149 Sequence +0:149 move second child to first child ( temp 2-element array of 4-component vector of float) +0:149 'b' ( temp 2-element array of 4-component vector of float) +0:149 Constant: +0:149 0.000000 +0:149 0.000000 +0:149 0.000000 +0:149 0.000000 +0:149 0.100000 +0:149 0.100000 +0:149 0.100000 +0:149 0.100000 +0:150 Sequence +0:150 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:150 'a3' ( temp 3-element array of 2-element array of 4-component vector of float) +0:150 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:150 'b' ( temp 2-element array of 4-component vector of float) +0:150 'b' ( temp 2-element array of 4-component vector of float) +0:150 'b' ( temp 2-element array of 4-component vector of float) +0:152 Sequence +0:152 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:152 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) +0:152 Constant: +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:? Sequence +0:159 Sequence +0:159 Sequence +0:159 move second child to first child ( temp 5-element array of float) +0:159 'b' ( temp 5-element array of float) +0:159 'a' ( temp 5-element array of float) +0:162 Sequence +0:162 Sequence +0:162 move second child to first child ( temp 5-element array of float) +0:162 'b' ( temp 5-element array of float) +0:162 'a' ( temp 5-element array of float) +0:165 Sequence +0:165 Sequence +0:165 move second child to first child ( temp 5-element array of float) +0:165 'b' ( temp 5-element array of float) +0:165 Constant: +0:165 1.000000 +0:165 2.000000 +0:165 3.000000 +0:165 4.000000 +0:165 5.000000 +0:167 Constant: +0:167 5 (const int) +0:? Sequence +0:171 Constant: +0:171 3 (const int) +0:172 Constant: +0:172 2 (const int) +0:175 Constant: +0:175 0.000000 +0:178 Constant: +0:178 0.000000 +0:193 Sequence +0:193 move second child to first child ( temp structure{ temp float a, temp int b}) +0:193 'e' ( temp structure{ temp float a, temp int b}) +0:193 Constant: +0:193 1.200000 +0:193 2 (const int) +0:216 Sequence +0:216 Sequence +0:216 move second child to first child ( temp 5-element array of float) +0:216 'a' ( temp 5-element array of float) +0:216 Constant: +0:216 3.400000 +0:216 4.200000 +0:216 5.000000 +0:216 5.200000 +0:216 1.100000 +0:217 Sequence +0:217 move second child to first child ( temp 5-element array of float) +0:217 'b' ( temp 5-element array of float) +0:217 Constant: +0:217 3.400000 +0:217 4.200000 +0:217 5.000000 +0:217 5.200000 +0:217 1.100000 +0:218 Sequence +0:218 move second child to first child ( temp 5-element array of float) +0:218 'c' ( temp 5-element array of float) +0:218 'a' ( temp 5-element array of float) +0:219 Sequence +0:219 move second child to first child ( temp 5-element array of float) +0:219 'd' ( temp 5-element array of float) +0:219 'b' ( temp 5-element array of float) +0:? Sequence +0:223 Sequence +0:223 move second child to first child ( temp float) +0:223 'ceiling' ( const (read only) float) +0:223 Convert int to float ( temp float) +0:223 add ( temp int) +0:223 'a' ( global int) +0:223 'b' ( global int) +0:? Linker Objects +0:? 'a' ( global int) +0:? 'b' ( global int) +0:? 'c' ( global uint) +0:? 'd' ( global uint) +0:? 'e' ( global int) +0:? 'f' ( global uint) +0:? 'g' ( global int) +0:? 'h' ( global int) +0:? 'i' ( global int) +0:? 'j' ( global int) +0:? 'k' ( global int) +0:? 'l' ( global int) +0:? 'fa' ( global float) +0:? 'fb' ( global float) +0:? 'fc' ( global double) +0:? 'fd' ( global double) +0:? 'texcoord1' ( global 2-component vector of float) +0:? 'texcoord2' ( global 2-component vector of float) +0:? 'position' ( global 3-component vector of float) +0:? 'myRGBA' ( global 4-component vector of float) +0:? 'textureLookup' ( global 2-component vector of int) +0:? 'less' ( global 3-component vector of bool) +0:? 'mat2D' ( global 2X2 matrix of float) +0:? 'optMatrix' ( global 3X3 matrix of float) +0:? 'view' ( global 4X4 matrix of float) +0:? 'projection' ( global 4X4 matrix of float) +0:? 'm' ( global 3X2 matrix of float) +0:? 'highPrecisionMVP' ( global 4X4 matrix of double) +0:? 'dm' ( global 2X4 matrix of double) +0:? 'lightVar' ( global structure{ global float intensity, global 3-component vector of float position}) +0:? 'frequencies' ( global 3-element array of float) +0:? 'lightPosition' ( uniform 4-element array of 4-component vector of float) +0:? 'lights' ( global 2-element array of structure{ global float intensity, global 3-component vector of float position}) +0:? 'numLights' ( const int) +0:? 2 (const int) +0:? 'normal' ( smooth in 3-component vector of float) +0:? 'TexCoord' ( centroid smooth in 2-component vector of float) +0:? 'Color' ( invariant centroid smooth in 4-component vector of float) +0:? 'temperature' ( noperspective in float) +0:? 'myColor' ( flat in 3-component vector of float) +0:? 'myTexCoord' ( centroid noperspective in 2-component vector of float) +0:? 'color' ( uniform 3-component vector of float) +0:? 0.700000 +0:? 0.700000 +0:? 0.200000 +0:? 'anon@0' ( in block{ smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten}) +0:? 'anon@1' ( in block{ in 4-component vector of float LightPos, in 3-component vector of float LightColor}) +0:? 'Materiala' ( in block{ in 4-component vector of float Color, in 2-component vector of float TexCoord}) +0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? 'factor' (layout( location=3 index=1) out 4-component vector of float) +0:? 'colors' (layout( location=2) out 3-element array of 4-component vector of float) +0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:? 'anon@2' ( in block{ in float FogFragCoord gl_FogFragCoord, in unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) + + +Linked fragment stage: + + +Shader version: 430 +Requested GL_3DL_array_objects +gl_FragCoord pixel center is integer +gl_FragCoord origin is upper left +using early_fragment_tests +using depth_greater +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child ( temp int) +0:5 'a' ( global int) +0:5 Constant: +0:5 -1 (const int) +0:7 Sequence +0:7 move second child to first child ( temp uint) +0:7 'c' ( global uint) +0:7 Constant: +0:7 4294967295 (const uint) +0:8 Sequence +0:8 move second child to first child ( temp uint) +0:8 'd' ( global uint) +0:8 Constant: +0:8 4294967295 (const uint) +0:9 Sequence +0:9 move second child to first child ( temp int) +0:9 'e' ( global int) +0:9 Constant: +0:9 -1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp uint) +0:13 'f' ( global uint) +0:13 Constant: +0:13 4294967295 (const uint) +0:17 Sequence +0:17 move second child to first child ( temp int) +0:17 'g' ( global int) +0:17 Constant: +0:17 -1294967296 (const int) +0:19 Sequence +0:19 move second child to first child ( temp int) +0:19 'h' ( global int) +0:19 Constant: +0:19 -1610612736 (const int) +0:20 Sequence +0:20 move second child to first child ( temp int) +0:20 'i' ( global int) +0:20 Constant: +0:20 -1 (const int) +0:21 Sequence +0:21 move second child to first child ( temp int) +0:21 'j' ( global int) +0:21 Constant: +0:21 -1 (const int) +0:22 Sequence +0:22 move second child to first child ( temp int) +0:22 'k' ( global int) +0:22 Constant: +0:22 -2147483648 (const int) +0:23 Sequence +0:23 move second child to first child ( temp int) +0:23 'l' ( global int) +0:23 Constant: +0:23 -2147483648 (const int) +0:25 Sequence +0:25 move second child to first child ( temp float) +0:25 'fb' ( global float) +0:25 Constant: +0:25 1.500000 +0:26 Sequence +0:26 move second child to first child ( temp double) +0:26 'fd' ( global double) +0:26 Constant: +0:26 2.000000 +0:137 Function Definition: main( ( global void) +0:137 Function Parameters: +0:140 Sequence +0:140 Sequence +0:140 Sequence +0:140 move second child to first child ( temp 5-element array of float) +0:140 'a' ( temp 5-element array of float) +0:140 Constant: +0:140 3.400000 +0:140 4.200000 +0:140 5.000000 +0:140 5.200000 +0:140 1.100000 +0:143 Sequence +0:143 Sequence +0:143 move second child to first child ( temp 5-element array of float) +0:143 'a' ( temp 5-element array of float) +0:143 Constant: +0:143 3.400000 +0:143 4.200000 +0:143 5.000000 +0:143 5.200000 +0:143 1.100000 +0:? Sequence +0:149 Sequence +0:149 move second child to first child ( temp 2-element array of 4-component vector of float) +0:149 'b' ( temp 2-element array of 4-component vector of float) +0:149 Constant: +0:149 0.000000 +0:149 0.000000 +0:149 0.000000 +0:149 0.000000 +0:149 0.100000 +0:149 0.100000 +0:149 0.100000 +0:149 0.100000 +0:150 Sequence +0:150 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:150 'a3' ( temp 3-element array of 2-element array of 4-component vector of float) +0:150 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:150 'b' ( temp 2-element array of 4-component vector of float) +0:150 'b' ( temp 2-element array of 4-component vector of float) +0:150 'b' ( temp 2-element array of 4-component vector of float) +0:152 Sequence +0:152 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) +0:152 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) +0:152 Constant: +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 0.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:152 1.000000 +0:? Sequence +0:159 Sequence +0:159 Sequence +0:159 move second child to first child ( temp 5-element array of float) +0:159 'b' ( temp 5-element array of float) +0:159 'a' ( temp 5-element array of float) +0:162 Sequence +0:162 Sequence +0:162 move second child to first child ( temp 5-element array of float) +0:162 'b' ( temp 5-element array of float) +0:162 'a' ( temp 5-element array of float) +0:165 Sequence +0:165 Sequence +0:165 move second child to first child ( temp 5-element array of float) +0:165 'b' ( temp 5-element array of float) +0:165 Constant: +0:165 1.000000 +0:165 2.000000 +0:165 3.000000 +0:165 4.000000 +0:165 5.000000 +0:167 Constant: +0:167 5 (const int) +0:? Sequence +0:171 Constant: +0:171 3 (const int) +0:172 Constant: +0:172 2 (const int) +0:175 Constant: +0:175 0.000000 +0:178 Constant: +0:178 0.000000 +0:193 Sequence +0:193 move second child to first child ( temp structure{ temp float a, temp int b}) +0:193 'e' ( temp structure{ temp float a, temp int b}) +0:193 Constant: +0:193 1.200000 +0:193 2 (const int) +0:216 Sequence +0:216 Sequence +0:216 move second child to first child ( temp 5-element array of float) +0:216 'a' ( temp 5-element array of float) +0:216 Constant: +0:216 3.400000 +0:216 4.200000 +0:216 5.000000 +0:216 5.200000 +0:216 1.100000 +0:217 Sequence +0:217 move second child to first child ( temp 5-element array of float) +0:217 'b' ( temp 5-element array of float) +0:217 Constant: +0:217 3.400000 +0:217 4.200000 +0:217 5.000000 +0:217 5.200000 +0:217 1.100000 +0:218 Sequence +0:218 move second child to first child ( temp 5-element array of float) +0:218 'c' ( temp 5-element array of float) +0:218 'a' ( temp 5-element array of float) +0:219 Sequence +0:219 move second child to first child ( temp 5-element array of float) +0:219 'd' ( temp 5-element array of float) +0:219 'b' ( temp 5-element array of float) +0:? Sequence +0:223 Sequence +0:223 move second child to first child ( temp float) +0:223 'ceiling' ( const (read only) float) +0:223 Convert int to float ( temp float) +0:223 add ( temp int) +0:223 'a' ( global int) +0:223 'b' ( global int) +0:? Linker Objects +0:? 'a' ( global int) +0:? 'b' ( global int) +0:? 'c' ( global uint) +0:? 'd' ( global uint) +0:? 'e' ( global int) +0:? 'f' ( global uint) +0:? 'g' ( global int) +0:? 'h' ( global int) +0:? 'i' ( global int) +0:? 'j' ( global int) +0:? 'k' ( global int) +0:? 'l' ( global int) +0:? 'fa' ( global float) +0:? 'fb' ( global float) +0:? 'fc' ( global double) +0:? 'fd' ( global double) +0:? 'texcoord1' ( global 2-component vector of float) +0:? 'texcoord2' ( global 2-component vector of float) +0:? 'position' ( global 3-component vector of float) +0:? 'myRGBA' ( global 4-component vector of float) +0:? 'textureLookup' ( global 2-component vector of int) +0:? 'less' ( global 3-component vector of bool) +0:? 'mat2D' ( global 2X2 matrix of float) +0:? 'optMatrix' ( global 3X3 matrix of float) +0:? 'view' ( global 4X4 matrix of float) +0:? 'projection' ( global 4X4 matrix of float) +0:? 'm' ( global 3X2 matrix of float) +0:? 'highPrecisionMVP' ( global 4X4 matrix of double) +0:? 'dm' ( global 2X4 matrix of double) +0:? 'lightVar' ( global structure{ global float intensity, global 3-component vector of float position}) +0:? 'frequencies' ( global 3-element array of float) +0:? 'lightPosition' ( uniform 4-element array of 4-component vector of float) +0:? 'lights' ( global 2-element array of structure{ global float intensity, global 3-component vector of float position}) +0:? 'numLights' ( const int) +0:? 2 (const int) +0:? 'normal' ( smooth in 3-component vector of float) +0:? 'TexCoord' ( centroid smooth in 2-component vector of float) +0:? 'Color' ( invariant centroid smooth in 4-component vector of float) +0:? 'temperature' ( noperspective in float) +0:? 'myColor' ( flat in 3-component vector of float) +0:? 'myTexCoord' ( centroid noperspective in 2-component vector of float) +0:? 'color' ( uniform 3-component vector of float) +0:? 0.700000 +0:? 0.700000 +0:? 0.200000 +0:? 'anon@0' ( in block{ smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten}) +0:? 'anon@1' ( in block{ in 4-component vector of float LightPos, in 3-component vector of float LightColor}) +0:? 'Materiala' ( in block{ in 4-component vector of float Color, in 2-component vector of float TexCoord}) +0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) +0:? 'factor' (layout( location=3 index=1) out 4-component vector of float) +0:? 'colors' (layout( location=2) out 3-element array of 4-component vector of float) +0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) +0:? 'anon@2' ( in block{ in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) + diff --git a/deps/glslang/glslang/Test/baseResults/specExamples.vert.out b/deps/glslang/glslang/Test/baseResults/specExamples.vert.out new file mode 100644 index 0000000000..5c8ca391b5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/specExamples.vert.out @@ -0,0 +1,598 @@ +specExamples.vert +ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers +ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:80: 's17' : redefinition +ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:89: 'binding' : atomic_uint binding is too large +ERROR: 0:91: 'bar' : redefinition +ERROR: 0:94: 'a2' : redefinition +ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:106: '' : vertex input cannot be further qualified +ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor +ERROR: 0:112: 'ColorIvn' : identifier not previously declared +ERROR: 0:132: 'shared' : not supported in this stage: vertex +ERROR: 0:134: '' : function does not return a value: funcA +ERROR: 0:136: '' : function does not return a value: funcB +ERROR: 0:153: '' : function does not return a value: func3 +ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter +ERROR: 32 compilation errors. No code generated. + + +Shader version: 430 +Requested GL_3DL_array_objects +ERROR: node is still EOpNull! +0:134 Function Definition: funcA(I21; ( global 4-component vector of float) +0:134 Function Parameters: +0:134 'a' ( restrict in image2D) +0:136 Function Definition: funcB(I21; ( global 4-component vector of float) +0:136 Function Parameters: +0:136 'a' ( in image2D) +0:140 Function Definition: func(f1;f1;f1;f1; ( global float) +0:140 Function Parameters: +0:140 'e' ( in float) +0:140 'f' ( in float) +0:140 'g' ( in float) +0:140 'h' ( in float) +0:142 Sequence +0:142 Branch: Return with expression +0:142 add ( temp float) +0:142 component-wise multiply ( temp float) +0:142 'e' ( in float) +0:142 'f' ( in float) +0:142 component-wise multiply ( temp float) +0:142 'g' ( in float) +0:142 'h' ( in float) +0:146 Function Definition: func2(f1;f1;f1;f1; ( global float) +0:146 Function Parameters: +0:146 'e' ( in float) +0:146 'f' ( in float) +0:146 'g' ( in float) +0:146 'h' ( in float) +0:148 Sequence +0:148 Sequence +0:148 move second child to first child ( temp float) +0:148 'result' ( noContraction temp float) +0:148 add ( temp float) +0:148 component-wise multiply ( temp float) +0:148 'e' ( in float) +0:148 'f' ( in float) +0:148 component-wise multiply ( temp float) +0:148 'g' ( in float) +0:148 'h' ( in float) +0:150 Branch: Return with expression +0:150 'result' ( noContraction temp float) +0:153 Function Definition: func3(f1;f1;f1; ( global float) +0:153 Function Parameters: +0:153 'i' ( in float) +0:153 'j' ( in float) +0:153 'k' ( noContraction out float) +0:155 Sequence +0:155 move second child to first child ( temp float) +0:155 'k' ( noContraction out float) +0:155 add ( temp float) +0:155 component-wise multiply ( temp float) +0:155 'i' ( in float) +0:155 'i' ( in float) +0:155 'j' ( in float) +0:158 Function Definition: main( ( global void) +0:158 Function Parameters: +0:160 Sequence +0:160 Sequence +0:160 move second child to first child ( temp 3-component vector of float) +0:160 'r' ( temp 3-component vector of float) +0:160 Construct vec3 ( temp 3-component vector of float) +0:160 component-wise multiply ( temp 4-component vector of float) +0:160 'a' ( in 4-component vector of float) +0:160 'b' ( in 4-component vector of float) +0:161 Sequence +0:161 move second child to first child ( temp 3-component vector of float) +0:161 's' ( temp 3-component vector of float) +0:161 Construct vec3 ( temp 3-component vector of float) +0:161 component-wise multiply ( temp 4-component vector of float) +0:161 'c' ( in 4-component vector of float) +0:161 'd' ( in 4-component vector of float) +0:162 move second child to first child ( temp 3-component vector of float) +0:162 vector swizzle ( noContraction temp 3-component vector of float) +0:162 'v' ( noContraction smooth out 4-component vector of float) +0:162 Sequence +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 1 (const int) +0:162 Constant: +0:162 2 (const int) +0:162 add ( temp 3-component vector of float) +0:162 'r' ( temp 3-component vector of float) +0:162 's' ( temp 3-component vector of float) +0:163 move second child to first child ( temp float) +0:163 direct index ( noContraction temp float) +0:163 'v' ( noContraction smooth out 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 add ( temp float) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'a' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'b' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'c' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'd' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:164 move second child to first child ( temp float) +0:164 direct index ( noContraction temp float) +0:164 'v' ( noContraction smooth out 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 Function Call: func(f1;f1;f1;f1; ( global float) +0:164 direct index ( temp float) +0:164 'a' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'b' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'c' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'd' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:166 move second child to first child ( temp float) +0:166 direct index ( noContraction temp float) +0:166 'v' ( noContraction smooth out 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 Function Call: func2(f1;f1;f1;f1; ( global float) +0:166 direct index ( temp float) +0:166 'a' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'b' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'c' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'd' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:167 Function Call: func3(f1;f1;f1; ( global float) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'a' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'b' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'c' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'd' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( noContraction temp float) +0:167 'v' ( noContraction smooth out 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:169 Function Call: funcA(I21; ( global 4-component vector of float) +0:169 'img1' (layout( rgba32f) uniform image2D) +0:170 Function Call: funcB(I21; ( global 4-component vector of float) +0:170 'img2' (layout( rgba32f) coherent uniform image2D) +0:? Sequence +0:178 Sequence +0:178 move second child to first child ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 'lightVar' ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 Constant: +0:178 3.000000 +0:178 1.000000 +0:178 2.000000 +0:178 3.000000 +0:? Sequence +0:185 Sequence +0:185 move second child to first child ( temp 5-element array of float) +0:185 'a' ( temp 5-element array of float) +0:185 Construct float ( temp 5-element array of float) +0:185 'g' ( temp float) +0:185 Constant: +0:185 1.000000 +0:185 'g' ( temp float) +0:185 Constant: +0:185 2.300000 +0:185 'g' ( temp float) +0:188 move second child to first child ( temp 3-element array of float) +0:188 'b' ( temp 3-element array of float) +0:188 Construct float ( temp 3-element array of float) +0:188 'g' ( temp float) +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 1.000000 +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 2.000000 +0:191 Sequence +0:191 Sequence +0:191 move second child to first child ( temp 2-element array of 4-component vector of float) +0:191 'b' ( temp 2-element array of 4-component vector of float) +0:191 Constant: +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:192 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:193 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:194 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:? Linker Objects +0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture}) +0:? 'anon@0' ( out block{ out 4-component vector of float Color}) +0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform unsized 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation}) +0:? 'normal' (layout( location=3) in 4-component vector of float) +0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float) +0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float) +0:? 's' (layout( location=3) temp structure{ global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c}) +0:? 'var1' ( smooth out 4-component vector of float) +0:? 'anon@1' ( out block{ out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4}) +0:? 'var5' ( smooth out 4-component vector of float) +0:? 'anon@2' ( out block{ out 4-component vector of float var6}) +0:? 'var7' ( smooth out 4-component vector of float) +0:? 'anon@3' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform 3X3 matrix of float N1}) +0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform 4X4 matrix of float M13, layout( row_major shared) uniform 4X4 matrix of float m14, layout( column_major shared) uniform 3X3 matrix of float N12}) +0:? 's17' (layout( binding=3) uniform sampler2D) +0:? 'a2' (layout( binding=2 offset=4) uniform atomic_uint) +0:? 'bar' (layout( binding=2) uniform atomic_uint) +0:? 'bar23' (layout( offset=8) uniform atomic_uint) +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 unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'ColorInv' ( smooth out 3-component vector of float) +0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) +0:? 'position' ( noContraction smooth out 4-component vector of float) +0:? 'Color5' ( noContraction smooth out 3-component vector of float) +0:? 'a' ( in 4-component vector of float) +0:? 'b' ( in 4-component vector of float) +0:? 'c' ( in 4-component vector of float) +0:? 'd' ( in 4-component vector of float) +0:? 'v' ( noContraction smooth out 4-component vector of float) +0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) readonly buffer 4-component vector of float member1, layout( column_major shared) buffer 4-component vector of float member2}) +0:? 'anon@7' (layout( column_major shared) buffer block{layout( column_major shared) coherent readonly buffer 4-component vector of float member1A, layout( column_major shared) coherent buffer 4-component vector of float member2A}) +0:? 'shv' ( shared 4-component vector of float) +0:? 'img1' (layout( rgba32f) uniform image2D) +0:? 'img2' (layout( rgba32f) coherent uniform image2D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 430 +Requested GL_3DL_array_objects +ERROR: node is still EOpNull! +0:134 Function Definition: funcA(I21; ( global 4-component vector of float) +0:134 Function Parameters: +0:134 'a' ( restrict in image2D) +0:136 Function Definition: funcB(I21; ( global 4-component vector of float) +0:136 Function Parameters: +0:136 'a' ( in image2D) +0:140 Function Definition: func(f1;f1;f1;f1; ( global float) +0:140 Function Parameters: +0:140 'e' ( in float) +0:140 'f' ( in float) +0:140 'g' ( in float) +0:140 'h' ( in float) +0:142 Sequence +0:142 Branch: Return with expression +0:142 add ( temp float) +0:142 component-wise multiply ( temp float) +0:142 'e' ( in float) +0:142 'f' ( in float) +0:142 component-wise multiply ( temp float) +0:142 'g' ( in float) +0:142 'h' ( in float) +0:146 Function Definition: func2(f1;f1;f1;f1; ( global float) +0:146 Function Parameters: +0:146 'e' ( in float) +0:146 'f' ( in float) +0:146 'g' ( in float) +0:146 'h' ( in float) +0:148 Sequence +0:148 Sequence +0:148 move second child to first child ( temp float) +0:148 'result' ( noContraction temp float) +0:148 add ( temp float) +0:148 component-wise multiply ( temp float) +0:148 'e' ( in float) +0:148 'f' ( in float) +0:148 component-wise multiply ( temp float) +0:148 'g' ( in float) +0:148 'h' ( in float) +0:150 Branch: Return with expression +0:150 'result' ( noContraction temp float) +0:153 Function Definition: func3(f1;f1;f1; ( global float) +0:153 Function Parameters: +0:153 'i' ( in float) +0:153 'j' ( in float) +0:153 'k' ( noContraction out float) +0:155 Sequence +0:155 move second child to first child ( temp float) +0:155 'k' ( noContraction out float) +0:155 add ( temp float) +0:155 component-wise multiply ( temp float) +0:155 'i' ( in float) +0:155 'i' ( in float) +0:155 'j' ( in float) +0:158 Function Definition: main( ( global void) +0:158 Function Parameters: +0:160 Sequence +0:160 Sequence +0:160 move second child to first child ( temp 3-component vector of float) +0:160 'r' ( temp 3-component vector of float) +0:160 Construct vec3 ( temp 3-component vector of float) +0:160 component-wise multiply ( temp 4-component vector of float) +0:160 'a' ( in 4-component vector of float) +0:160 'b' ( in 4-component vector of float) +0:161 Sequence +0:161 move second child to first child ( temp 3-component vector of float) +0:161 's' ( temp 3-component vector of float) +0:161 Construct vec3 ( temp 3-component vector of float) +0:161 component-wise multiply ( temp 4-component vector of float) +0:161 'c' ( in 4-component vector of float) +0:161 'd' ( in 4-component vector of float) +0:162 move second child to first child ( temp 3-component vector of float) +0:162 vector swizzle ( noContraction temp 3-component vector of float) +0:162 'v' ( noContraction smooth out 4-component vector of float) +0:162 Sequence +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 1 (const int) +0:162 Constant: +0:162 2 (const int) +0:162 add ( temp 3-component vector of float) +0:162 'r' ( temp 3-component vector of float) +0:162 's' ( temp 3-component vector of float) +0:163 move second child to first child ( temp float) +0:163 direct index ( noContraction temp float) +0:163 'v' ( noContraction smooth out 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 add ( temp float) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'a' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'b' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'c' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'd' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:164 move second child to first child ( temp float) +0:164 direct index ( noContraction temp float) +0:164 'v' ( noContraction smooth out 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 Function Call: func(f1;f1;f1;f1; ( global float) +0:164 direct index ( temp float) +0:164 'a' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'b' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'c' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'd' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:166 move second child to first child ( temp float) +0:166 direct index ( noContraction temp float) +0:166 'v' ( noContraction smooth out 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 Function Call: func2(f1;f1;f1;f1; ( global float) +0:166 direct index ( temp float) +0:166 'a' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'b' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'c' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'd' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:167 Function Call: func3(f1;f1;f1; ( global float) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'a' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'b' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'c' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'd' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( noContraction temp float) +0:167 'v' ( noContraction smooth out 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:169 Function Call: funcA(I21; ( global 4-component vector of float) +0:169 'img1' (layout( rgba32f) uniform image2D) +0:170 Function Call: funcB(I21; ( global 4-component vector of float) +0:170 'img2' (layout( rgba32f) coherent uniform image2D) +0:? Sequence +0:178 Sequence +0:178 move second child to first child ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 'lightVar' ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 Constant: +0:178 3.000000 +0:178 1.000000 +0:178 2.000000 +0:178 3.000000 +0:? Sequence +0:185 Sequence +0:185 move second child to first child ( temp 5-element array of float) +0:185 'a' ( temp 5-element array of float) +0:185 Construct float ( temp 5-element array of float) +0:185 'g' ( temp float) +0:185 Constant: +0:185 1.000000 +0:185 'g' ( temp float) +0:185 Constant: +0:185 2.300000 +0:185 'g' ( temp float) +0:188 move second child to first child ( temp 3-element array of float) +0:188 'b' ( temp 3-element array of float) +0:188 Construct float ( temp 3-element array of float) +0:188 'g' ( temp float) +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 1.000000 +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 2.000000 +0:191 Sequence +0:191 Sequence +0:191 move second child to first child ( temp 2-element array of 4-component vector of float) +0:191 'b' ( temp 2-element array of 4-component vector of float) +0:191 Constant: +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:192 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:193 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:194 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:? Linker Objects +0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture}) +0:? 'anon@0' ( out block{ out 4-component vector of float Color}) +0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation}) +0:? 'normal' (layout( location=3) in 4-component vector of float) +0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float) +0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float) +0:? 's' (layout( location=3) temp structure{ global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c}) +0:? 'var1' ( smooth out 4-component vector of float) +0:? 'anon@1' ( out block{ out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4}) +0:? 'var5' ( smooth out 4-component vector of float) +0:? 'anon@2' ( out block{ out 4-component vector of float var6}) +0:? 'var7' ( smooth out 4-component vector of float) +0:? 'anon@3' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform 3X3 matrix of float N1}) +0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform 4X4 matrix of float M13, layout( row_major shared) uniform 4X4 matrix of float m14, layout( column_major shared) uniform 3X3 matrix of float N12}) +0:? 's17' (layout( binding=3) uniform sampler2D) +0:? 'a2' (layout( binding=2 offset=4) uniform atomic_uint) +0:? 'bar' (layout( binding=2) uniform atomic_uint) +0:? 'bar23' (layout( offset=8) uniform atomic_uint) +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 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'ColorInv' ( smooth out 3-component vector of float) +0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) +0:? 'position' ( noContraction smooth out 4-component vector of float) +0:? 'Color5' ( noContraction smooth out 3-component vector of float) +0:? 'a' ( in 4-component vector of float) +0:? 'b' ( in 4-component vector of float) +0:? 'c' ( in 4-component vector of float) +0:? 'd' ( in 4-component vector of float) +0:? 'v' ( noContraction smooth out 4-component vector of float) +0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) readonly buffer 4-component vector of float member1, layout( column_major shared) buffer 4-component vector of float member2}) +0:? 'anon@7' (layout( column_major shared) buffer block{layout( column_major shared) coherent readonly buffer 4-component vector of float member1A, layout( column_major shared) coherent buffer 4-component vector of float member2A}) +0:? 'shv' ( shared 4-component vector of float) +0:? 'img1' (layout( rgba32f) uniform image2D) +0:? 'img2' (layout( rgba32f) coherent uniform image2D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/specExamplesConf.vert.out b/deps/glslang/glslang/Test/baseResults/specExamplesConf.vert.out new file mode 100644 index 0000000000..e7217817dd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/specExamplesConf.vert.out @@ -0,0 +1,599 @@ +specExamples.vert +ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers +ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) +ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:80: 's17' : redefinition +ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:89: 'binding' : atomic_uint binding is too large +ERROR: 0:91: 'bar' : redefinition +ERROR: 0:92: 'atomic_uint' : layout(binding=X) is required +ERROR: 0:94: 'a2' : redefinition +ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings +ERROR: 0:106: '' : vertex input cannot be further qualified +ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor +ERROR: 0:112: 'ColorIvn' : identifier not previously declared +ERROR: 0:132: 'shared' : not supported in this stage: vertex +ERROR: 0:134: '' : function does not return a value: funcA +ERROR: 0:136: '' : function does not return a value: funcB +ERROR: 0:153: '' : function does not return a value: func3 +ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to formal parameter +ERROR: 33 compilation errors. No code generated. + + +Shader version: 430 +Requested GL_3DL_array_objects +ERROR: node is still EOpNull! +0:134 Function Definition: funcA(I21; ( global 4-component vector of float) +0:134 Function Parameters: +0:134 'a' ( restrict in image2D) +0:136 Function Definition: funcB(I21; ( global 4-component vector of float) +0:136 Function Parameters: +0:136 'a' ( in image2D) +0:140 Function Definition: func(f1;f1;f1;f1; ( global float) +0:140 Function Parameters: +0:140 'e' ( in float) +0:140 'f' ( in float) +0:140 'g' ( in float) +0:140 'h' ( in float) +0:142 Sequence +0:142 Branch: Return with expression +0:142 add ( temp float) +0:142 component-wise multiply ( temp float) +0:142 'e' ( in float) +0:142 'f' ( in float) +0:142 component-wise multiply ( temp float) +0:142 'g' ( in float) +0:142 'h' ( in float) +0:146 Function Definition: func2(f1;f1;f1;f1; ( global float) +0:146 Function Parameters: +0:146 'e' ( in float) +0:146 'f' ( in float) +0:146 'g' ( in float) +0:146 'h' ( in float) +0:148 Sequence +0:148 Sequence +0:148 move second child to first child ( temp float) +0:148 'result' ( noContraction temp float) +0:148 add ( temp float) +0:148 component-wise multiply ( temp float) +0:148 'e' ( in float) +0:148 'f' ( in float) +0:148 component-wise multiply ( temp float) +0:148 'g' ( in float) +0:148 'h' ( in float) +0:150 Branch: Return with expression +0:150 'result' ( noContraction temp float) +0:153 Function Definition: func3(f1;f1;f1; ( global float) +0:153 Function Parameters: +0:153 'i' ( in float) +0:153 'j' ( in float) +0:153 'k' ( noContraction out float) +0:155 Sequence +0:155 move second child to first child ( temp float) +0:155 'k' ( noContraction out float) +0:155 add ( temp float) +0:155 component-wise multiply ( temp float) +0:155 'i' ( in float) +0:155 'i' ( in float) +0:155 'j' ( in float) +0:158 Function Definition: main( ( global void) +0:158 Function Parameters: +0:160 Sequence +0:160 Sequence +0:160 move second child to first child ( temp 3-component vector of float) +0:160 'r' ( temp 3-component vector of float) +0:160 Construct vec3 ( temp 3-component vector of float) +0:160 component-wise multiply ( temp 4-component vector of float) +0:160 'a' ( in 4-component vector of float) +0:160 'b' ( in 4-component vector of float) +0:161 Sequence +0:161 move second child to first child ( temp 3-component vector of float) +0:161 's' ( temp 3-component vector of float) +0:161 Construct vec3 ( temp 3-component vector of float) +0:161 component-wise multiply ( temp 4-component vector of float) +0:161 'c' ( in 4-component vector of float) +0:161 'd' ( in 4-component vector of float) +0:162 move second child to first child ( temp 3-component vector of float) +0:162 vector swizzle ( noContraction temp 3-component vector of float) +0:162 'v' ( noContraction smooth out 4-component vector of float) +0:162 Sequence +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 1 (const int) +0:162 Constant: +0:162 2 (const int) +0:162 add ( temp 3-component vector of float) +0:162 'r' ( temp 3-component vector of float) +0:162 's' ( temp 3-component vector of float) +0:163 move second child to first child ( temp float) +0:163 direct index ( noContraction temp float) +0:163 'v' ( noContraction smooth out 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 add ( temp float) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'a' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'b' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'c' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'd' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:164 move second child to first child ( temp float) +0:164 direct index ( noContraction temp float) +0:164 'v' ( noContraction smooth out 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 Function Call: func(f1;f1;f1;f1; ( global float) +0:164 direct index ( temp float) +0:164 'a' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'b' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'c' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'd' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:166 move second child to first child ( temp float) +0:166 direct index ( noContraction temp float) +0:166 'v' ( noContraction smooth out 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 Function Call: func2(f1;f1;f1;f1; ( global float) +0:166 direct index ( temp float) +0:166 'a' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'b' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'c' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'd' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:167 Function Call: func3(f1;f1;f1; ( global float) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'a' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'b' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'c' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'd' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( noContraction temp float) +0:167 'v' ( noContraction smooth out 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:169 Function Call: funcA(I21; ( global 4-component vector of float) +0:169 'img1' (layout( rgba32f) uniform image2D) +0:170 Function Call: funcB(I21; ( global 4-component vector of float) +0:170 'img2' (layout( rgba32f) coherent uniform image2D) +0:? Sequence +0:178 Sequence +0:178 move second child to first child ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 'lightVar' ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 Constant: +0:178 3.000000 +0:178 1.000000 +0:178 2.000000 +0:178 3.000000 +0:? Sequence +0:185 Sequence +0:185 move second child to first child ( temp 5-element array of float) +0:185 'a' ( temp 5-element array of float) +0:185 Construct float ( temp 5-element array of float) +0:185 'g' ( temp float) +0:185 Constant: +0:185 1.000000 +0:185 'g' ( temp float) +0:185 Constant: +0:185 2.300000 +0:185 'g' ( temp float) +0:188 move second child to first child ( temp 3-element array of float) +0:188 'b' ( temp 3-element array of float) +0:188 Construct float ( temp 3-element array of float) +0:188 'g' ( temp float) +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 1.000000 +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 2.000000 +0:191 Sequence +0:191 Sequence +0:191 move second child to first child ( temp 2-element array of 4-component vector of float) +0:191 'b' ( temp 2-element array of 4-component vector of float) +0:191 Constant: +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:192 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:193 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:194 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:? Linker Objects +0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture}) +0:? 'anon@0' ( out block{ out 4-component vector of float Color}) +0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform unsized 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation}) +0:? 'normal' (layout( location=3) in 4-component vector of float) +0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float) +0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float) +0:? 's' (layout( location=3) temp structure{ global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c}) +0:? 'var1' ( smooth out 4-component vector of float) +0:? 'anon@1' ( out block{ out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4}) +0:? 'var5' ( smooth out 4-component vector of float) +0:? 'anon@2' ( out block{ out 4-component vector of float var6}) +0:? 'var7' ( smooth out 4-component vector of float) +0:? 'anon@3' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform 3X3 matrix of float N1}) +0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform 4X4 matrix of float M13, layout( row_major shared) uniform 4X4 matrix of float m14, layout( column_major shared) uniform 3X3 matrix of float N12}) +0:? 's17' (layout( binding=3) uniform sampler2D) +0:? 'a2' (layout( binding=2 offset=4) uniform atomic_uint) +0:? 'bar' (layout( binding=2) uniform atomic_uint) +0:? 'bar23' (layout( offset=8) uniform atomic_uint) +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 unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'ColorInv' ( smooth out 3-component vector of float) +0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) +0:? 'position' ( noContraction smooth out 4-component vector of float) +0:? 'Color5' ( noContraction smooth out 3-component vector of float) +0:? 'a' ( in 4-component vector of float) +0:? 'b' ( in 4-component vector of float) +0:? 'c' ( in 4-component vector of float) +0:? 'd' ( in 4-component vector of float) +0:? 'v' ( noContraction smooth out 4-component vector of float) +0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) readonly buffer 4-component vector of float member1, layout( column_major shared) buffer 4-component vector of float member2}) +0:? 'anon@7' (layout( column_major shared) buffer block{layout( column_major shared) coherent readonly buffer 4-component vector of float member1A, layout( column_major shared) coherent buffer 4-component vector of float member2A}) +0:? 'shv' ( shared 4-component vector of float) +0:? 'img1' (layout( rgba32f) uniform image2D) +0:? 'img2' (layout( rgba32f) coherent uniform image2D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 430 +Requested GL_3DL_array_objects +ERROR: node is still EOpNull! +0:134 Function Definition: funcA(I21; ( global 4-component vector of float) +0:134 Function Parameters: +0:134 'a' ( restrict in image2D) +0:136 Function Definition: funcB(I21; ( global 4-component vector of float) +0:136 Function Parameters: +0:136 'a' ( in image2D) +0:140 Function Definition: func(f1;f1;f1;f1; ( global float) +0:140 Function Parameters: +0:140 'e' ( in float) +0:140 'f' ( in float) +0:140 'g' ( in float) +0:140 'h' ( in float) +0:142 Sequence +0:142 Branch: Return with expression +0:142 add ( temp float) +0:142 component-wise multiply ( temp float) +0:142 'e' ( in float) +0:142 'f' ( in float) +0:142 component-wise multiply ( temp float) +0:142 'g' ( in float) +0:142 'h' ( in float) +0:146 Function Definition: func2(f1;f1;f1;f1; ( global float) +0:146 Function Parameters: +0:146 'e' ( in float) +0:146 'f' ( in float) +0:146 'g' ( in float) +0:146 'h' ( in float) +0:148 Sequence +0:148 Sequence +0:148 move second child to first child ( temp float) +0:148 'result' ( noContraction temp float) +0:148 add ( temp float) +0:148 component-wise multiply ( temp float) +0:148 'e' ( in float) +0:148 'f' ( in float) +0:148 component-wise multiply ( temp float) +0:148 'g' ( in float) +0:148 'h' ( in float) +0:150 Branch: Return with expression +0:150 'result' ( noContraction temp float) +0:153 Function Definition: func3(f1;f1;f1; ( global float) +0:153 Function Parameters: +0:153 'i' ( in float) +0:153 'j' ( in float) +0:153 'k' ( noContraction out float) +0:155 Sequence +0:155 move second child to first child ( temp float) +0:155 'k' ( noContraction out float) +0:155 add ( temp float) +0:155 component-wise multiply ( temp float) +0:155 'i' ( in float) +0:155 'i' ( in float) +0:155 'j' ( in float) +0:158 Function Definition: main( ( global void) +0:158 Function Parameters: +0:160 Sequence +0:160 Sequence +0:160 move second child to first child ( temp 3-component vector of float) +0:160 'r' ( temp 3-component vector of float) +0:160 Construct vec3 ( temp 3-component vector of float) +0:160 component-wise multiply ( temp 4-component vector of float) +0:160 'a' ( in 4-component vector of float) +0:160 'b' ( in 4-component vector of float) +0:161 Sequence +0:161 move second child to first child ( temp 3-component vector of float) +0:161 's' ( temp 3-component vector of float) +0:161 Construct vec3 ( temp 3-component vector of float) +0:161 component-wise multiply ( temp 4-component vector of float) +0:161 'c' ( in 4-component vector of float) +0:161 'd' ( in 4-component vector of float) +0:162 move second child to first child ( temp 3-component vector of float) +0:162 vector swizzle ( noContraction temp 3-component vector of float) +0:162 'v' ( noContraction smooth out 4-component vector of float) +0:162 Sequence +0:162 Constant: +0:162 0 (const int) +0:162 Constant: +0:162 1 (const int) +0:162 Constant: +0:162 2 (const int) +0:162 add ( temp 3-component vector of float) +0:162 'r' ( temp 3-component vector of float) +0:162 's' ( temp 3-component vector of float) +0:163 move second child to first child ( temp float) +0:163 direct index ( noContraction temp float) +0:163 'v' ( noContraction smooth out 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 add ( temp float) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'a' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'b' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 component-wise multiply ( temp float) +0:163 direct index ( temp float) +0:163 'c' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:163 direct index ( temp float) +0:163 'd' ( in 4-component vector of float) +0:163 Constant: +0:163 3 (const int) +0:164 move second child to first child ( temp float) +0:164 direct index ( noContraction temp float) +0:164 'v' ( noContraction smooth out 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 Function Call: func(f1;f1;f1;f1; ( global float) +0:164 direct index ( temp float) +0:164 'a' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'b' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'c' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:164 direct index ( temp float) +0:164 'd' ( in 4-component vector of float) +0:164 Constant: +0:164 0 (const int) +0:166 move second child to first child ( temp float) +0:166 direct index ( noContraction temp float) +0:166 'v' ( noContraction smooth out 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 Function Call: func2(f1;f1;f1;f1; ( global float) +0:166 direct index ( temp float) +0:166 'a' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'b' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'c' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:166 direct index ( temp float) +0:166 'd' ( in 4-component vector of float) +0:166 Constant: +0:166 0 (const int) +0:167 Function Call: func3(f1;f1;f1; ( global float) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'a' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'b' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 component-wise multiply ( temp float) +0:167 direct index ( temp float) +0:167 'c' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( temp float) +0:167 'd' ( in 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:167 direct index ( noContraction temp float) +0:167 'v' ( noContraction smooth out 4-component vector of float) +0:167 Constant: +0:167 0 (const int) +0:169 Function Call: funcA(I21; ( global 4-component vector of float) +0:169 'img1' (layout( rgba32f) uniform image2D) +0:170 Function Call: funcB(I21; ( global 4-component vector of float) +0:170 'img2' (layout( rgba32f) coherent uniform image2D) +0:? Sequence +0:178 Sequence +0:178 move second child to first child ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 'lightVar' ( temp structure{ temp float intensity, temp 3-component vector of float position}) +0:178 Constant: +0:178 3.000000 +0:178 1.000000 +0:178 2.000000 +0:178 3.000000 +0:? Sequence +0:185 Sequence +0:185 move second child to first child ( temp 5-element array of float) +0:185 'a' ( temp 5-element array of float) +0:185 Construct float ( temp 5-element array of float) +0:185 'g' ( temp float) +0:185 Constant: +0:185 1.000000 +0:185 'g' ( temp float) +0:185 Constant: +0:185 2.300000 +0:185 'g' ( temp float) +0:188 move second child to first child ( temp 3-element array of float) +0:188 'b' ( temp 3-element array of float) +0:188 Construct float ( temp 3-element array of float) +0:188 'g' ( temp float) +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 1.000000 +0:188 add ( temp float) +0:188 'g' ( temp float) +0:188 Constant: +0:188 2.000000 +0:191 Sequence +0:191 Sequence +0:191 move second child to first child ( temp 2-element array of 4-component vector of float) +0:191 'b' ( temp 2-element array of 4-component vector of float) +0:191 Constant: +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:191 1.000000 +0:192 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:192 'b' ( temp 2-element array of 4-component vector of float) +0:193 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:193 'b' ( temp 2-element array of 4-component vector of float) +0:194 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:194 'b' ( temp 2-element array of 4-component vector of float) +0:? Linker Objects +0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture}) +0:? 'anon@0' ( out block{ out 4-component vector of float Color}) +0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation}) +0:? 'normal' (layout( location=3) in 4-component vector of float) +0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float) +0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float) +0:? 's' (layout( location=3) temp structure{ global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c}) +0:? 'var1' ( smooth out 4-component vector of float) +0:? 'anon@1' ( out block{ out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4}) +0:? 'var5' ( smooth out 4-component vector of float) +0:? 'anon@2' ( out block{ out 4-component vector of float var6}) +0:? 'var7' ( smooth out 4-component vector of float) +0:? 'anon@3' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform 3X3 matrix of float N1}) +0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform 4X4 matrix of float M13, layout( row_major shared) uniform 4X4 matrix of float m14, layout( column_major shared) uniform 3X3 matrix of float N12}) +0:? 's17' (layout( binding=3) uniform sampler2D) +0:? 'a2' (layout( binding=2 offset=4) uniform atomic_uint) +0:? 'bar' (layout( binding=2) uniform atomic_uint) +0:? 'bar23' (layout( offset=8) uniform atomic_uint) +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 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'ColorInv' ( smooth out 3-component vector of float) +0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) +0:? 'position' ( noContraction smooth out 4-component vector of float) +0:? 'Color5' ( noContraction smooth out 3-component vector of float) +0:? 'a' ( in 4-component vector of float) +0:? 'b' ( in 4-component vector of float) +0:? 'c' ( in 4-component vector of float) +0:? 'd' ( in 4-component vector of float) +0:? 'v' ( noContraction smooth out 4-component vector of float) +0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) readonly buffer 4-component vector of float member1, layout( column_major shared) buffer 4-component vector of float member2}) +0:? 'anon@7' (layout( column_major shared) buffer block{layout( column_major shared) coherent readonly buffer 4-component vector of float member1A, layout( column_major shared) coherent buffer 4-component vector of float member2A}) +0:? 'shv' ( shared 4-component vector of float) +0:? 'img1' (layout( rgba32f) uniform image2D) +0:? 'img2' (layout( rgba32f) coherent uniform image2D) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out b/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out new file mode 100644 index 0000000000..8f656ebb5c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.100ops.frag.out @@ -0,0 +1,98 @@ +spv.100ops.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 49 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 21 26 37 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 8 "foo(" + Name 11 "face1" + Name 13 "face2" + Name 17 "z" + Name 21 "low" + Name 26 "high" + Name 37 "Color" + Decorate 8(foo() RelaxedPrecision + Decorate 11(face1) RelaxedPrecision + Decorate 13(face2) RelaxedPrecision + Decorate 17(z) RelaxedPrecision + Decorate 21(low) RelaxedPrecision + Decorate 22 RelaxedPrecision + Decorate 23 RelaxedPrecision + Decorate 25 RelaxedPrecision + Decorate 26(high) RelaxedPrecision + Decorate 27 RelaxedPrecision + Decorate 32 RelaxedPrecision + Decorate 34 RelaxedPrecision + Decorate 37(Color) RelaxedPrecision + Decorate 38 RelaxedPrecision + Decorate 39 RelaxedPrecision + Decorate 40 RelaxedPrecision + Decorate 41 RelaxedPrecision + Decorate 42 RelaxedPrecision + Decorate 43 RelaxedPrecision + Decorate 44 RelaxedPrecision + Decorate 45 RelaxedPrecision + Decorate 46 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypePointer Private 6(float) + 11(face1): 10(ptr) Variable Private + 12: 6(float) Constant 1093664768 + 13(face2): 10(ptr) Variable Private + 14: 6(float) Constant 3221225472 + 15: TypeInt 32 1 + 16: TypePointer Function 15(int) + 18: 15(int) Constant 3 + 19: 6(float) Constant 1073741824 + 20: TypePointer Input 6(float) + 21(low): 20(ptr) Variable Input + 24: 6(float) Constant 1065353216 + 26(high): 20(ptr) Variable Input + 28: TypeBool + 33: 15(int) Constant 1 + 35: TypeVector 6(float) 4 + 36: TypePointer Output 35(fvec4) + 37(Color): 36(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 17(z): 16(ptr) Variable Function + Store 11(face1) 12 + Store 13(face2) 14 + Store 17(z) 18 + 22: 6(float) Load 21(low) + 23: 6(float) FMul 19 22 + 25: 6(float) FAdd 23 24 + 27: 6(float) Load 26(high) + 29: 28(bool) FOrdLessThan 25 27 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + 32: 15(int) Load 17(z) + 34: 15(int) IAdd 32 33 + Store 17(z) 34 + Branch 31 + 31: Label + 38: 6(float) Load 11(face1) + 39: 15(int) Load 17(z) + 40: 6(float) ConvertSToF 39 + 41: 35(fvec4) CompositeConstruct 40 40 40 40 + 42: 35(fvec4) VectorTimesScalar 41 38 + 43: 6(float) FunctionCall 8(foo() + 44: 35(fvec4) CompositeConstruct 43 43 43 43 + 45: 35(fvec4) FAdd 42 44 + Store 37(Color) 45 + Return + FunctionEnd + 8(foo(): 6(float) Function None 7 + 9: Label + 46: 6(float) Load 13(face2) + ReturnValue 46 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.130.frag.out b/deps/glslang/glslang/Test/baseResults/spv.130.frag.out new file mode 100644 index 0000000000..d1a626d8dc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.130.frag.out @@ -0,0 +1,309 @@ +spv.130.frag +WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 205 + + Capability Shader + Capability ClipDistance + Capability SampledRect + Capability Sampled1D + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + SourceExtension "GL_ARB_gpu_shader5" + SourceExtension "GL_ARB_shader_texture_lod" + SourceExtension "GL_ARB_shading_language_420pack" + SourceExtension "GL_ARB_texture_cube_map_array" + SourceExtension "GL_ARB_texture_gather" + SourceExtension "GL_ARB_texture_rectangle" + Name 4 "main" + Name 6 "bar3(" + Name 8 "bar4(" + Name 10 "bar5(" + Name 12 "bar6(" + Name 17 "o" + Name 21 "samp2D" + Name 37 "samp2DA" + Name 47 "samp2DR" + Name 55 "samp2DS" + Name 68 "io" + Name 72 "Sca" + Name 79 "i" + Name 87 "Isca" + Name 99 "uo" + Name 103 "Usca" + Name 114 "a" + Name 118 "Scas" + Name 124 "f" + Name 133 "c" + Name 154 "a1" + Name 157 "m43" + Name 160 "b" + Name 167 "sampC" + Name 173 "gl_ClipDistance" + Name 183 "b" + Name 184 "fflat" + Name 185 "fsmooth" + Name 186 "fnop" + Name 193 "bounds" + Name 194 "s2D" + Name 195 "s2DR" + Name 199 "s2DRS" + Name 203 "s1D" + Name 204 "s2DS" + Decorate 21(samp2D) DescriptorSet 0 + Decorate 37(samp2DA) DescriptorSet 0 + Decorate 47(samp2DR) DescriptorSet 0 + Decorate 55(samp2DS) DescriptorSet 0 + Decorate 72(Sca) DescriptorSet 0 + Decorate 87(Isca) DescriptorSet 0 + Decorate 103(Usca) DescriptorSet 0 + Decorate 118(Scas) DescriptorSet 0 + Decorate 167(sampC) DescriptorSet 0 + Decorate 173(gl_ClipDistance) BuiltIn ClipDistance + Decorate 184(fflat) Flat + Decorate 186(fnop) NoPerspective + Decorate 193(bounds) DescriptorSet 0 + Decorate 193(bounds) Binding 0 + Decorate 194(s2D) DescriptorSet 0 + Decorate 195(s2DR) DescriptorSet 0 + Decorate 199(s2DRS) DescriptorSet 0 + Decorate 203(s1D) DescriptorSet 0 + Decorate 204(s2DS) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeFloat 32 + 15: TypeVector 14(float) 4 + 16: TypePointer Output 15(fvec4) + 17(o): 16(ptr) Variable Output + 18: TypeImage 14(float) 2D sampled format:Unknown + 19: TypeSampledImage 18 + 20: TypePointer UniformConstant 19 + 21(samp2D): 20(ptr) Variable UniformConstant + 23: TypeVector 14(float) 2 + 24: 14(float) Constant 1050253722 + 25: 23(fvec2) ConstantComposite 24 24 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 2 + 28: 26(int) Constant 1 + 29: 27(ivec2) ConstantComposite 28 28 + 30: 26(int) Constant 0 + 34: TypeImage 14(float) 2D array sampled format:Unknown + 35: TypeSampledImage 34 + 36: TypePointer UniformConstant 35 + 37(samp2DA): 36(ptr) Variable UniformConstant + 39: TypeVector 14(float) 3 + 40: 39(fvec3) ConstantComposite 24 24 24 + 44: TypeImage 14(float) Rect sampled format:Unknown + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(samp2DR): 46(ptr) Variable UniformConstant + 52: TypeImage 14(float) 2D depth sampled format:Unknown + 53: TypeSampledImage 52 + 54: TypePointer UniformConstant 53 + 55(samp2DS): 54(ptr) Variable UniformConstant + 57: 14(float) Constant 1067869798 + 62: 26(int) Constant 2 + 66: TypeVector 26(int) 3 + 67: TypePointer Output 66(ivec3) + 68(io): 67(ptr) Variable Output + 69: TypeImage 14(float) Cube array sampled format:Unknown + 70: TypeSampledImage 69 + 71: TypePointer UniformConstant 70 + 72(Sca): 71(ptr) Variable UniformConstant + 74: 26(int) Constant 3 + 78: TypePointer Input 15(fvec4) + 79(i): 78(ptr) Variable Input + 84: TypeImage 26(int) Cube array sampled format:Unknown + 85: TypeSampledImage 84 + 86: TypePointer UniformConstant 85 + 87(Isca): 86(ptr) Variable UniformConstant + 90: 14(float) Constant 1060320051 + 91: TypeVector 26(int) 4 + 96: TypeInt 32 0 + 97: TypeVector 96(int) 4 + 98: TypePointer Output 97(ivec4) + 99(uo): 98(ptr) Variable Output + 100: TypeImage 96(int) Cube array sampled format:Unknown + 101: TypeSampledImage 100 + 102: TypePointer UniformConstant 101 + 103(Usca): 102(ptr) Variable UniformConstant + 109: 14(float) Constant 1071225242 + 113: TypePointer Private 39(fvec3) + 114(a): 113(ptr) Variable Private + 115: TypeImage 14(float) Cube depth array sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 + 118(Scas): 117(ptr) Variable UniformConstant + 123: TypePointer Function 14(float) + 127: 96(int) Constant 1 + 128: TypePointer Input 14(float) + 132: TypePointer Function 91(ivec4) + 136: 14(float) Constant 1036831949 + 137: 39(fvec3) ConstantComposite 136 136 136 + 138: 14(float) Constant 1045220557 + 139: 39(fvec3) ConstantComposite 138 138 138 + 155: TypeMatrix 39(fvec3) 4 + 156: TypePointer Function 155 + 161: 14(float) Constant 1073741824 + 164: TypeImage 14(float) Cube sampled format:Unknown + 165: TypeSampledImage 164 + 166: TypePointer UniformConstant 165 + 167(sampC): 166(ptr) Variable UniformConstant + 170: 96(int) Constant 4 + 171: TypeArray 14(float) 170 + 172: TypePointer Input 171 +173(gl_ClipDistance): 172(ptr) Variable Input + 176: TypePointer Output 14(float) + 182: TypePointer Private 14(float) + 183(b): 182(ptr) Variable Private + 184(fflat): 128(ptr) Variable Input + 185(fsmooth): 128(ptr) Variable Input + 186(fnop): 128(ptr) Variable Input + 187: 96(int) Constant 3 + 188: TypeArray 26(int) 187 + 189: 26(int) Constant 10 + 190: 26(int) Constant 23 + 191: 26(int) Constant 32 + 192: 188 ConstantComposite 189 190 191 + 193(bounds): 20(ptr) Variable UniformConstant + 194(s2D): 20(ptr) Variable UniformConstant + 195(s2DR): 46(ptr) Variable UniformConstant + 196: TypeImage 14(float) Rect depth sampled format:Unknown + 197: TypeSampledImage 196 + 198: TypePointer UniformConstant 197 + 199(s2DRS): 198(ptr) Variable UniformConstant + 200: TypeImage 14(float) 1D sampled format:Unknown + 201: TypeSampledImage 200 + 202: TypePointer UniformConstant 201 + 203(s1D): 202(ptr) Variable UniformConstant + 204(s2DS): 54(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 168: 165 Load 167(sampC) + 169: 15(fvec4) ImageGather 168 139 30 + Store 17(o) 169 + 174: 128(ptr) AccessChain 173(gl_ClipDistance) 74 + 175: 14(float) Load 174 + 177: 176(ptr) AccessChain 17(o) 127 + Store 177 175 + 178: 2 FunctionCall 6(bar3() + 179: 2 FunctionCall 8(bar4() + 180: 2 FunctionCall 10(bar5() + 181: 2 FunctionCall 12(bar6() + Return + FunctionEnd + 6(bar3(): 2 Function None 3 + 7: Label + 22: 19 Load 21(samp2D) + 31: 15(fvec4) ImageGather 22 25 30 ConstOffset 29 + 32: 15(fvec4) Load 17(o) + 33: 15(fvec4) FAdd 32 31 + Store 17(o) 33 + 38: 35 Load 37(samp2DA) + 41: 15(fvec4) ImageGather 38 40 30 ConstOffset 29 + 42: 15(fvec4) Load 17(o) + 43: 15(fvec4) FAdd 42 41 + Store 17(o) 43 + Return + FunctionEnd + 8(bar4(): 2 Function None 3 + 9: Label + 48: 45 Load 47(samp2DR) + 49: 15(fvec4) ImageGather 48 25 30 ConstOffset 29 + 50: 15(fvec4) Load 17(o) + 51: 15(fvec4) FAdd 50 49 + Store 17(o) 51 + 56: 53 Load 55(samp2DS) + 58: 15(fvec4) ImageDrefGather 56 25 57 ConstOffset 29 + 59: 15(fvec4) Load 17(o) + 60: 15(fvec4) FAdd 59 58 + Store 17(o) 60 + 61: 19 Load 21(samp2D) + 63: 15(fvec4) ImageGather 61 25 62 ConstOffset 29 + 64: 15(fvec4) Load 17(o) + 65: 15(fvec4) FAdd 64 63 + Store 17(o) 65 + Return + FunctionEnd + 10(bar5(): 2 Function None 3 + 11: Label + 124(f): 123(ptr) Variable Function + 133(c): 132(ptr) Variable Function + 73: 70 Load 72(Sca) + 75: 69 Image 73 + 76: 66(ivec3) ImageQuerySizeLod 75 74 + Store 68(io) 76 + 77: 70 Load 72(Sca) + 80: 15(fvec4) Load 79(i) + 81: 15(fvec4) ImageSampleImplicitLod 77 80 + 82: 15(fvec4) Load 17(o) + 83: 15(fvec4) FAdd 82 81 + Store 17(o) 83 + 88: 85 Load 87(Isca) + 89: 15(fvec4) Load 79(i) + 92: 91(ivec4) ImageSampleImplicitLod 88 89 Bias 90 + 93: 66(ivec3) VectorShuffle 92 92 0 1 2 + 94: 66(ivec3) Load 68(io) + 95: 66(ivec3) IAdd 94 93 + Store 68(io) 95 + 104: 101 Load 103(Usca) + 105: 15(fvec4) Load 79(i) + 106: 97(ivec4) ImageSampleImplicitLod 104 105 + Store 99(uo) 106 + 107: 70 Load 72(Sca) + 108: 15(fvec4) Load 79(i) + 110: 15(fvec4) ImageSampleExplicitLod 107 108 Lod 109 + 111: 15(fvec4) Load 17(o) + 112: 15(fvec4) FAdd 111 110 + Store 17(o) 112 + 119: 116 Load 118(Scas) + 120: 115 Image 119 + 121: 66(ivec3) ImageQuerySizeLod 120 74 + 122: 39(fvec3) ConvertSToF 121 + Store 114(a) 122 + 125: 116 Load 118(Scas) + 126: 15(fvec4) Load 79(i) + 129: 128(ptr) AccessChain 79(i) 127 + 130: 14(float) Load 129 + 131: 14(float) ImageSampleDrefImplicitLod 125 126 130 + Store 124(f) 131 + 134: 85 Load 87(Isca) + 135: 15(fvec4) Load 79(i) + 140: 91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139 + Store 133(c) 140 + 141: 39(fvec3) Load 114(a) + 142: 14(float) Load 124(f) + 143: 91(ivec4) Load 133(c) + 144: 15(fvec4) ConvertSToF 143 + 145: 15(fvec4) CompositeConstruct 142 142 142 142 + 146: 15(fvec4) FAdd 145 144 + 147: 14(float) CompositeExtract 141 0 + 148: 14(float) CompositeExtract 141 1 + 149: 14(float) CompositeExtract 141 2 + 150: 14(float) CompositeExtract 146 0 + 151: 15(fvec4) CompositeConstruct 147 148 149 150 + 152: 15(fvec4) Load 17(o) + 153: 15(fvec4) FAdd 152 151 + Store 17(o) 153 + Return + FunctionEnd + 12(bar6(): 2 Function None 3 + 13: Label + 154(a1): 123(ptr) Variable Function + 157(m43): 156(ptr) Variable Function + 160(b): 123(ptr) Variable Function + 158: 123(ptr) AccessChain 157(m43) 74 127 + 159: 14(float) Load 158 + Store 154(a1) 159 + 162: 14(float) Load 154(a1) + 163: 14(float) FMul 161 162 + Store 160(b) 163 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.140.frag.out b/deps/glslang/glslang/Test/baseResults/spv.140.frag.out new file mode 100644 index 0000000000..89bf4899b1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.140.frag.out @@ -0,0 +1,166 @@ +spv.140.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 96 + + Capability Shader + Capability ClipDistance + Capability SampledRect + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 23 28 38 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "foo(" + Name 11 "i1" + Name 14 "gl_FrontFacing" + Name 19 "i2" + Name 23 "o" + Name 28 "gl_ClipDistance" + Name 38 "k" + Name 50 "sampR" + Name 58 "sampB" + Name 82 "samp2Da" + Name 87 "bn" + MemberName 87(bn) 0 "matra" + MemberName 87(bn) 1 "matca" + MemberName 87(bn) 2 "matr" + MemberName 87(bn) 3 "matc" + MemberName 87(bn) 4 "matrdef" + Name 89 "" + Name 92 "bi" + MemberName 92(bi) 0 "v" + Name 95 "bname" + Decorate 14(gl_FrontFacing) BuiltIn FrontFacing + Decorate 28(gl_ClipDistance) BuiltIn ClipDistance + Decorate 50(sampR) DescriptorSet 0 + Decorate 58(sampB) DescriptorSet 0 + Decorate 82(samp2Da) DescriptorSet 0 + Decorate 85 ArrayStride 64 + Decorate 86 ArrayStride 64 + MemberDecorate 87(bn) 0 RowMajor + MemberDecorate 87(bn) 0 Offset 0 + MemberDecorate 87(bn) 0 MatrixStride 16 + MemberDecorate 87(bn) 1 ColMajor + MemberDecorate 87(bn) 1 Offset 256 + MemberDecorate 87(bn) 1 MatrixStride 16 + MemberDecorate 87(bn) 2 RowMajor + MemberDecorate 87(bn) 2 Offset 512 + MemberDecorate 87(bn) 2 MatrixStride 16 + MemberDecorate 87(bn) 3 ColMajor + MemberDecorate 87(bn) 3 Offset 576 + MemberDecorate 87(bn) 3 MatrixStride 16 + MemberDecorate 87(bn) 4 RowMajor + MemberDecorate 87(bn) 4 Offset 1024 + MemberDecorate 87(bn) 4 MatrixStride 16 + Decorate 87(bn) Block + Decorate 89 DescriptorSet 0 + Decorate 91 ArrayStride 16 + MemberDecorate 92(bi) 0 Offset 0 + Decorate 92(bi) Block + Decorate 95(bname) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypePointer Private 6(float) + 11(i1): 10(ptr) Variable Private + 12: TypeBool + 13: TypePointer Input 12(bool) +14(gl_FrontFacing): 13(ptr) Variable Input + 16: 6(float) Constant 3221225472 + 17: 6(float) Constant 1073741824 + 19(i2): 10(ptr) Variable Private + 20: 6(float) Constant 1120665600 + 21: TypeVector 6(float) 4 + 22: TypePointer Output 21(fvec4) + 23(o): 22(ptr) Variable Output + 24: TypeInt 32 0 + 25: 24(int) Constant 5 + 26: TypeArray 6(float) 25 + 27: TypePointer Input 26 +28(gl_ClipDistance): 27(ptr) Variable Input + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 31: TypePointer Input 6(float) + 34: 24(int) Constant 1 + 35: TypePointer Output 6(float) + 37: TypePointer Input 21(fvec4) + 38(k): 37(ptr) Variable Input + 40: TypeVector 29(int) 4 + 45: 24(int) Constant 2 + 47: TypeImage 6(float) Rect sampled format:Unknown + 48: TypeSampledImage 47 + 49: TypePointer UniformConstant 48 + 50(sampR): 49(ptr) Variable UniformConstant + 53: TypeVector 29(int) 2 + 55: TypeImage 29(int) Buffer sampled format:Unknown + 56: TypeSampledImage 55 + 57: TypePointer UniformConstant 56 + 58(sampB): 57(ptr) Variable UniformConstant + 64: TypeVector 6(float) 2 + 67: 6(float) Constant 1120403456 + 69: 24(int) Constant 3 + 78: TypeImage 6(float) 2D sampled format:Unknown + 79: TypeSampledImage 78 + 80: TypeArray 79 69 + 81: TypePointer UniformConstant 80 + 82(samp2Da): 81(ptr) Variable UniformConstant + 83: TypeMatrix 21(fvec4) 4 + 84: 24(int) Constant 4 + 85: TypeArray 83 84 + 86: TypeArray 83 84 + 87(bn): TypeStruct 85 86 83 83 83 + 88: TypePointer Uniform 87(bn) + 89: 88(ptr) Variable Uniform + 90: TypeVector 6(float) 3 + 91: TypeArray 90(fvec3) 45 + 92(bi): TypeStruct 91 + 93: TypeArray 92(bi) 84 + 94: TypePointer Uniform 93 + 95(bname): 94(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 15: 12(bool) Load 14(gl_FrontFacing) + 18: 6(float) Select 15 16 17 + Store 11(i1) 18 + Store 19(i2) 20 + 32: 31(ptr) AccessChain 28(gl_ClipDistance) 30 + 33: 6(float) Load 32 + 36: 35(ptr) AccessChain 23(o) 34 + Store 36 33 + 39: 21(fvec4) Load 38(k) + 41: 40(ivec4) ConvertFToS 39 + 42: 29(int) CompositeExtract 41 0 + 43: 31(ptr) AccessChain 28(gl_ClipDistance) 42 + 44: 6(float) Load 43 + 46: 35(ptr) AccessChain 23(o) 45 + Store 46 44 + 51: 48 Load 50(sampR) + 52: 47 Image 51 + 54: 53(ivec2) ImageQuerySize 52 + 59: 56 Load 58(sampB) + 60: 55 Image 59 + 61: 29(int) ImageQuerySize 60 + 62: 53(ivec2) CompositeConstruct 61 61 + 63: 53(ivec2) IAdd 54 62 + 65: 64(fvec2) ConvertSToF 63 + 66: 6(float) CompositeExtract 65 0 + 68: 6(float) FDiv 66 67 + 70: 35(ptr) AccessChain 23(o) 69 + Store 70 68 + 71: 6(float) FunctionCall 8(foo() + 72: 35(ptr) AccessChain 23(o) 45 + Store 72 71 + Return + FunctionEnd + 8(foo(): 6(float) Function None 7 + 9: Label + 73: 6(float) Load 11(i1) + 74: 6(float) Load 19(i2) + 75: 6(float) FAdd 73 74 + ReturnValue 75 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.150.geom.out b/deps/glslang/glslang/Test/baseResults/spv.150.geom.out new file mode 100644 index 0000000000..f759793839 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.150.geom.out @@ -0,0 +1,145 @@ +spv.150.geom +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 71 + + Capability Geometry + Capability GeometryPointSize + Capability GeometryStreams + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 10 18 29 33 47 49 51 70 + ExecutionMode 4 InputTrianglesAdjacency + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 30 + Source GLSL 150 + Name 4 "main" + Name 8 "fromVertex" + MemberName 8(fromVertex) 0 "color" + Name 10 "" + Name 13 "fromVertex" + MemberName 13(fromVertex) 0 "color" + Name 18 "fromV" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + Name 29 "" + Name 30 "gl_PerVertex" + MemberName 30(gl_PerVertex) 0 "gl_Position" + MemberName 30(gl_PerVertex) 1 "gl_PointSize" + MemberName 30(gl_PerVertex) 2 "gl_ClipDistance" + Name 33 "gl_in" + Name 47 "gl_PrimitiveID" + Name 49 "gl_PrimitiveIDIn" + Name 51 "gl_Layer" + Name 68 "toFragment" + MemberName 68(toFragment) 0 "color" + Name 70 "toF" + Decorate 8(fromVertex) Block + Decorate 8(fromVertex) Stream 3 + Decorate 10 Stream 3 + Decorate 13(fromVertex) Block + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 27(gl_PerVertex) Block + Decorate 27(gl_PerVertex) Stream 0 + Decorate 29 Stream 0 + MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 30(gl_PerVertex) Block + Decorate 47(gl_PrimitiveID) Stream 0 + Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId + Decorate 51(gl_Layer) Stream 0 + Decorate 51(gl_Layer) BuiltIn Layer + Decorate 68(toFragment) Block + Decorate 68(toFragment) Stream 3 + Decorate 70(toF) Stream 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(fromVertex): TypeStruct 7(fvec3) + 9: TypePointer Output 8(fromVertex) + 10: 9(ptr) Variable Output + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13(fromVertex): TypeStruct 7(fvec3) + 14: TypeInt 32 0 + 15: 14(int) Constant 6 + 16: TypeArray 13(fromVertex) 15 + 17: TypePointer Input 16 + 18(fromV): 17(ptr) Variable Input + 19: TypePointer Input 7(fvec3) + 22: TypePointer Output 7(fvec3) + 24: TypeVector 6(float) 4 + 25: 14(int) Constant 1 + 26: TypeArray 6(float) 25 +27(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26 + 28: TypePointer Output 27(gl_PerVertex) + 29: 28(ptr) Variable Output +30(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26 + 31: TypeArray 30(gl_PerVertex) 15 + 32: TypePointer Input 31 + 33(gl_in): 32(ptr) Variable Input + 34: TypePointer Input 24(fvec4) + 37: TypePointer Output 24(fvec4) + 39: 11(int) Constant 1 + 40: 11(int) Constant 3 + 41: TypePointer Input 6(float) + 44: TypePointer Output 6(float) + 46: TypePointer Output 11(int) +47(gl_PrimitiveID): 46(ptr) Variable Output + 48: TypePointer Input 11(int) +49(gl_PrimitiveIDIn): 48(ptr) Variable Input + 51(gl_Layer): 46(ptr) Variable Output + 52: 11(int) Constant 2 + 53: 6(float) Constant 1073741824 + 68(toFragment): TypeStruct 7(fvec3) + 69: TypePointer Output 68(toFragment) + 70(toF): 69(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 20: 19(ptr) AccessChain 18(fromV) 12 12 + 21: 7(fvec3) Load 20 + 23: 22(ptr) AccessChain 10 12 + Store 23 21 + 35: 34(ptr) AccessChain 33(gl_in) 12 12 + 36: 24(fvec4) Load 35 + 38: 37(ptr) AccessChain 29 12 + Store 38 36 + 42: 41(ptr) AccessChain 33(gl_in) 40 39 + 43: 6(float) Load 42 + 45: 44(ptr) AccessChain 29 39 + Store 45 43 + 50: 11(int) Load 49(gl_PrimitiveIDIn) + Store 47(gl_PrimitiveID) 50 + Store 51(gl_Layer) 52 + EmitVertex + 54: 19(ptr) AccessChain 18(fromV) 12 12 + 55: 7(fvec3) Load 54 + 56: 7(fvec3) VectorTimesScalar 55 53 + 57: 22(ptr) AccessChain 10 12 + Store 57 56 + 58: 34(ptr) AccessChain 33(gl_in) 12 12 + 59: 24(fvec4) Load 58 + 60: 24(fvec4) VectorTimesScalar 59 53 + 61: 37(ptr) AccessChain 29 12 + Store 61 60 + 62: 41(ptr) AccessChain 33(gl_in) 40 39 + 63: 6(float) Load 62 + 64: 6(float) FMul 53 63 + 65: 44(ptr) AccessChain 29 39 + Store 65 64 + 66: 11(int) Load 49(gl_PrimitiveIDIn) + 67: 11(int) IAdd 66 39 + Store 47(gl_PrimitiveID) 67 + Store 51(gl_Layer) 40 + EmitVertex + EndPrimitive + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.150.vert.out b/deps/glslang/glslang/Test/baseResults/spv.150.vert.out new file mode 100644 index 0000000000..282f5f9c0f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.150.vert.out @@ -0,0 +1,103 @@ +spv.150.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 63 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 13 17 23 38 62 + Source GLSL 150 + 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" + Name 13 "" + Name 17 "iv4" + Name 23 "ps" + Name 34 "s1" + MemberName 34(s1) 0 "a" + MemberName 34(s1) 1 "a2" + MemberName 34(s1) 2 "b" + Name 36 "s2" + MemberName 36(s2) 0 "c" + MemberName 36(s2) 1 "d" + Name 38 "s2out" + Name 40 "i" + Name 47 "s2D" + Name 62 "ui" + MemberDecorate 11(gl_PerVertex) 0 Invariant + MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 11(gl_PerVertex) Block + Decorate 47(s2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 4 + 10: TypeArray 6(float) 9 +11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 + 12: TypePointer Output 11(gl_PerVertex) + 13: 12(ptr) Variable Output + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Input 7(fvec4) + 17(iv4): 16(ptr) Variable Input + 19: TypePointer Output 7(fvec4) + 21: 14(int) Constant 1 + 22: TypePointer Input 6(float) + 23(ps): 22(ptr) Variable Input + 25: TypePointer Output 6(float) + 27: 14(int) Constant 2 + 28: 8(int) Constant 0 + 32: 8(int) Constant 3 + 33: TypeArray 7(fvec4) 32 + 34(s1): TypeStruct 14(int) 14(int) 33 + 35: TypeArray 34(s1) 9 + 36(s2): TypeStruct 14(int) 35 + 37: TypePointer Output 36(s2) + 38(s2out): 37(ptr) Variable Output + 39: TypePointer Function 14(int) + 44: TypeImage 6(float) 2D sampled format:Unknown + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(s2D): 46(ptr) Variable UniformConstant + 49: TypeVector 6(float) 2 + 50: 6(float) Constant 1056964608 + 51: 49(fvec2) ConstantComposite 50 50 + 52: 6(float) Constant 0 + 55: TypeVector 6(float) 3 + 56: 55(fvec3) ConstantComposite 50 50 50 + 59: 6(float) Constant 1078774989 + 61: TypePointer Input 14(int) + 62(ui): 61(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 40(i): 39(ptr) Variable Function + 18: 7(fvec4) Load 17(iv4) + 20: 19(ptr) AccessChain 13 15 + Store 20 18 + 24: 6(float) Load 23(ps) + 26: 25(ptr) AccessChain 13 21 + Store 26 24 + 29: 22(ptr) AccessChain 17(iv4) 28 + 30: 6(float) Load 29 + 31: 25(ptr) AccessChain 13 27 27 + Store 31 30 + 41: 14(int) Load 40(i) + 42: 6(float) Load 23(ps) + 43: 25(ptr) AccessChain 38(s2out) 21 41 27 27 32 + Store 43 42 + 48: 45 Load 47(s2D) + 53: 7(fvec4) ImageSampleExplicitLod 48 51 Lod 52 + 54: 45 Load 47(s2D) + 57: 7(fvec4) ImageSampleProjExplicitLod 54 56 Lod 52 + 58: 45 Load 47(s2D) + 60: 7(fvec4) ImageSampleExplicitLod 58 51 Lod 59 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out b/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out new file mode 100644 index 0000000000..ee2c236e78 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.300BuiltIns.vert.out @@ -0,0 +1,73 @@ +spv.300BuiltIns.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 14 21 34 + Source ESSL 310 + Name 4 "main" + Name 8 "gl_PerVertex" + MemberName 8(gl_PerVertex) 0 "gl_Position" + MemberName 8(gl_PerVertex) 1 "gl_PointSize" + Name 10 "" + Name 14 "ps" + Name 21 "gl_VertexIndex" + Name 34 "gl_InstanceIndex" + MemberDecorate 8(gl_PerVertex) 0 Invariant + MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize + Decorate 8(gl_PerVertex) Block + Decorate 14(ps) RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 21(gl_VertexIndex) BuiltIn VertexIndex + Decorate 30 RelaxedPrecision + Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(gl_PerVertex): TypeStruct 7(fvec4) 6(float) + 9: TypePointer Output 8(gl_PerVertex) + 10: 9(ptr) Variable Output + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: TypePointer Input 6(float) + 14(ps): 13(ptr) Variable Input + 17: TypePointer Output 7(fvec4) + 19: 11(int) Constant 4 + 20: TypePointer Input 11(int) +21(gl_VertexIndex): 20(ptr) Variable Input + 29: 11(int) Constant 1 + 31: TypePointer Output 6(float) + 33: 11(int) Constant 5 +34(gl_InstanceIndex): 20(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 15: 6(float) Load 14(ps) + 16: 7(fvec4) CompositeConstruct 15 15 15 15 + 18: 17(ptr) AccessChain 10 12 + Store 18 16 + 22: 11(int) Load 21(gl_VertexIndex) + 23: 11(int) ISub 19 22 + 24: 6(float) ConvertSToF 23 + 25: 17(ptr) AccessChain 10 12 + 26: 7(fvec4) Load 25 + 27: 7(fvec4) VectorTimesScalar 26 24 + 28: 17(ptr) AccessChain 10 12 + Store 28 27 + 30: 6(float) Load 14(ps) + 32: 31(ptr) AccessChain 10 29 + Store 32 30 + 35: 11(int) Load 34(gl_InstanceIndex) + 36: 11(int) ISub 33 35 + 37: 6(float) ConvertSToF 36 + 38: 31(ptr) AccessChain 10 29 + 39: 6(float) Load 38 + 40: 6(float) FMul 39 37 + 41: 31(ptr) AccessChain 10 29 + Store 41 40 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out b/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out new file mode 100644 index 0000000000..10a6d00eb1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.300layout.frag.out @@ -0,0 +1,73 @@ +spv.300layout.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 37 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 11 15 26 29 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 9 "c" + Name 11 "color" + Name 13 "S" + MemberName 13(S) 0 "c" + MemberName 13(S) 1 "f" + Name 15 "s" + Name 26 "p" + Name 29 "pos" + Decorate 9(c) RelaxedPrecision + Decorate 9(c) Location 7 + Decorate 11(color) RelaxedPrecision + Decorate 12 RelaxedPrecision + MemberDecorate 13(S) 0 RelaxedPrecision + MemberDecorate 13(S) 1 RelaxedPrecision + Decorate 19 RelaxedPrecision + Decorate 20 RelaxedPrecision + Decorate 26(p) RelaxedPrecision + Decorate 26(p) Location 3 + Decorate 29(pos) RelaxedPrecision + Decorate 30 RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 34 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Output 7(fvec3) + 9(c): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec3) + 11(color): 10(ptr) Variable Input + 13(S): TypeStruct 7(fvec3) 6(float) + 14: TypePointer Input 13(S) + 15(s): 14(ptr) Variable Input + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 21: TypeVector 6(float) 4 + 22: TypeInt 32 0 + 23: 22(int) Constant 2 + 24: TypeArray 21(fvec4) 23 + 25: TypePointer Output 24 + 26(p): 25(ptr) Variable Output + 27: 16(int) Constant 1 + 28: TypePointer Input 21(fvec4) + 29(pos): 28(ptr) Variable Input + 31: TypePointer Input 6(float) + 35: TypePointer Output 21(fvec4) + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec3) Load 11(color) + 18: 10(ptr) AccessChain 15(s) 17 + 19: 7(fvec3) Load 18 + 20: 7(fvec3) FAdd 12 19 + Store 9(c) 20 + 30: 21(fvec4) Load 29(pos) + 32: 31(ptr) AccessChain 15(s) 27 + 33: 6(float) Load 32 + 34: 21(fvec4) VectorTimesScalar 30 33 + 36: 35(ptr) AccessChain 26(p) 27 + Store 36 34 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out b/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out new file mode 100644 index 0000000000..0c0663e817 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.300layout.vert.out @@ -0,0 +1,248 @@ +spv.300layout.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 163 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 11 98 100 108 114 120 128 + Source ESSL 310 + Name 4 "main" + Name 9 "pos" + Name 11 "p" + Name 17 "Transform" + MemberName 17(Transform) 0 "M1" + MemberName 17(Transform) 1 "M2" + MemberName 17(Transform) 2 "N1" + MemberName 17(Transform) 3 "iuin" + Name 19 "tblock" + Name 45 "T3" + MemberName 45(T3) 0 "M3" + MemberName 45(T3) 1 "M4" + MemberName 45(T3) 2 "N2" + MemberName 45(T3) 3 "uv3a" + Name 47 "" + Name 78 "T2" + MemberName 78(T2) 0 "b" + MemberName 78(T2) 1 "t2m" + Name 80 "" + Name 98 "color" + Name 100 "c" + Name 108 "iout" + Name 114 "uiuin" + Name 120 "aiv2" + Name 126 "S" + MemberName 126(S) 0 "c" + MemberName 126(S) 1 "f" + Name 128 "s" + Decorate 11(p) Location 3 + MemberDecorate 17(Transform) 0 RowMajor + MemberDecorate 17(Transform) 0 Offset 0 + MemberDecorate 17(Transform) 0 MatrixStride 16 + MemberDecorate 17(Transform) 1 ColMajor + MemberDecorate 17(Transform) 1 Offset 64 + MemberDecorate 17(Transform) 1 MatrixStride 16 + MemberDecorate 17(Transform) 2 RowMajor + MemberDecorate 17(Transform) 2 Offset 128 + MemberDecorate 17(Transform) 2 MatrixStride 16 + MemberDecorate 17(Transform) 3 Offset 176 + Decorate 17(Transform) Block + Decorate 19(tblock) DescriptorSet 0 + Decorate 44 ArrayStride 16 + MemberDecorate 45(T3) 0 ColMajor + MemberDecorate 45(T3) 0 Offset 0 + MemberDecorate 45(T3) 0 MatrixStride 16 + MemberDecorate 45(T3) 1 RowMajor + MemberDecorate 45(T3) 1 Offset 64 + MemberDecorate 45(T3) 1 MatrixStride 16 + MemberDecorate 45(T3) 2 ColMajor + MemberDecorate 45(T3) 2 Offset 128 + MemberDecorate 45(T3) 2 MatrixStride 16 + MemberDecorate 45(T3) 3 Offset 2048 + Decorate 45(T3) Block + Decorate 47 DescriptorSet 0 + MemberDecorate 78(T2) 0 Offset 0 + MemberDecorate 78(T2) 1 RowMajor + MemberDecorate 78(T2) 1 Offset 16 + MemberDecorate 78(T2) 1 MatrixStride 16 + Decorate 78(T2) Block + Decorate 80 DescriptorSet 0 + Decorate 100(c) Location 7 + Decorate 108(iout) Flat + Decorate 120(aiv2) Location 9 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(pos): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(p): 10(ptr) Variable Input + 13: TypeMatrix 7(fvec4) 4 + 14: TypeVector 6(float) 3 + 15: TypeMatrix 14(fvec3) 3 + 16: TypeInt 32 1 + 17(Transform): TypeStruct 13 13 15 16(int) + 18: TypePointer Uniform 17(Transform) + 19(tblock): 18(ptr) Variable Uniform + 20: 16(int) Constant 0 + 21: TypePointer Uniform 13 + 24: 16(int) Constant 1 + 40: TypeMatrix 14(fvec3) 2 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 3 + 43: 41(int) Constant 4 + 44: TypeArray 42(ivec3) 43 + 45(T3): TypeStruct 13 13 40 44 + 46: TypePointer Uniform 45(T3) + 47: 46(ptr) Variable Uniform + 78(T2): TypeStruct 41(int) 13 + 79: TypePointer Uniform 78(T2) + 80: 79(ptr) Variable Uniform + 97: TypePointer Output 14(fvec3) + 98(color): 97(ptr) Variable Output + 99: TypePointer Input 14(fvec3) + 100(c): 99(ptr) Variable Input + 102: 16(int) Constant 2 + 103: TypePointer Uniform 15 + 107: TypePointer Output 16(int) + 108(iout): 107(ptr) Variable Output + 109: 16(int) Constant 3 + 110: TypePointer Uniform 16(int) + 113: TypePointer Input 41(int) + 114(uiuin): 113(ptr) Variable Input + 118: TypeVector 16(int) 2 + 119: TypePointer Input 118(ivec2) + 120(aiv2): 119(ptr) Variable Input + 121: 41(int) Constant 1 + 122: TypePointer Input 16(int) + 126(S): TypeStruct 14(fvec3) 6(float) + 127: TypePointer Output 126(S) + 128(s): 127(ptr) Variable Output + 131: 41(int) Constant 0 + 132: TypePointer Input 6(float) + 135: TypePointer Output 6(float) + 137: TypeBool + 138: TypePointer Uniform 14(fvec3) + 141: 6(float) Constant 1065353216 + 142: 14(fvec3) ConstantComposite 141 141 141 + 143: TypeVector 137(bool) 3 + 149: TypePointer Uniform 42(ivec3) + 152: 41(int) Constant 5 + 153: 42(ivec3) ConstantComposite 152 152 152 + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(p) + 22: 21(ptr) AccessChain 19(tblock) 20 + 23: 13 Load 22 + 25: 21(ptr) AccessChain 19(tblock) 24 + 26: 13 Load 25 + 27: 7(fvec4) CompositeExtract 23 0 + 28: 7(fvec4) CompositeExtract 26 0 + 29: 7(fvec4) FAdd 27 28 + 30: 7(fvec4) CompositeExtract 23 1 + 31: 7(fvec4) CompositeExtract 26 1 + 32: 7(fvec4) FAdd 30 31 + 33: 7(fvec4) CompositeExtract 23 2 + 34: 7(fvec4) CompositeExtract 26 2 + 35: 7(fvec4) FAdd 33 34 + 36: 7(fvec4) CompositeExtract 23 3 + 37: 7(fvec4) CompositeExtract 26 3 + 38: 7(fvec4) FAdd 36 37 + 39: 13 CompositeConstruct 29 32 35 38 + 48: 21(ptr) AccessChain 47 24 + 49: 13 Load 48 + 50: 7(fvec4) CompositeExtract 39 0 + 51: 7(fvec4) CompositeExtract 49 0 + 52: 7(fvec4) FAdd 50 51 + 53: 7(fvec4) CompositeExtract 39 1 + 54: 7(fvec4) CompositeExtract 49 1 + 55: 7(fvec4) FAdd 53 54 + 56: 7(fvec4) CompositeExtract 39 2 + 57: 7(fvec4) CompositeExtract 49 2 + 58: 7(fvec4) FAdd 56 57 + 59: 7(fvec4) CompositeExtract 39 3 + 60: 7(fvec4) CompositeExtract 49 3 + 61: 7(fvec4) FAdd 59 60 + 62: 13 CompositeConstruct 52 55 58 61 + 63: 21(ptr) AccessChain 47 20 + 64: 13 Load 63 + 65: 7(fvec4) CompositeExtract 62 0 + 66: 7(fvec4) CompositeExtract 64 0 + 67: 7(fvec4) FAdd 65 66 + 68: 7(fvec4) CompositeExtract 62 1 + 69: 7(fvec4) CompositeExtract 64 1 + 70: 7(fvec4) FAdd 68 69 + 71: 7(fvec4) CompositeExtract 62 2 + 72: 7(fvec4) CompositeExtract 64 2 + 73: 7(fvec4) FAdd 71 72 + 74: 7(fvec4) CompositeExtract 62 3 + 75: 7(fvec4) CompositeExtract 64 3 + 76: 7(fvec4) FAdd 74 75 + 77: 13 CompositeConstruct 67 70 73 76 + 81: 21(ptr) AccessChain 80 24 + 82: 13 Load 81 + 83: 7(fvec4) CompositeExtract 77 0 + 84: 7(fvec4) CompositeExtract 82 0 + 85: 7(fvec4) FAdd 83 84 + 86: 7(fvec4) CompositeExtract 77 1 + 87: 7(fvec4) CompositeExtract 82 1 + 88: 7(fvec4) FAdd 86 87 + 89: 7(fvec4) CompositeExtract 77 2 + 90: 7(fvec4) CompositeExtract 82 2 + 91: 7(fvec4) FAdd 89 90 + 92: 7(fvec4) CompositeExtract 77 3 + 93: 7(fvec4) CompositeExtract 82 3 + 94: 7(fvec4) FAdd 92 93 + 95: 13 CompositeConstruct 85 88 91 94 + 96: 7(fvec4) VectorTimesMatrix 12 95 + Store 9(pos) 96 + 101: 14(fvec3) Load 100(c) + 104: 103(ptr) AccessChain 19(tblock) 102 + 105: 15 Load 104 + 106: 14(fvec3) VectorTimesMatrix 101 105 + Store 98(color) 106 + 111: 110(ptr) AccessChain 19(tblock) 109 + 112: 16(int) Load 111 + 115: 41(int) Load 114(uiuin) + 116: 16(int) Bitcast 115 + 117: 16(int) IAdd 112 116 + 123: 122(ptr) AccessChain 120(aiv2) 121 + 124: 16(int) Load 123 + 125: 16(int) IAdd 117 124 + Store 108(iout) 125 + 129: 14(fvec3) Load 100(c) + 130: 97(ptr) AccessChain 128(s) 20 + Store 130 129 + 133: 132(ptr) AccessChain 11(p) 131 + 134: 6(float) Load 133 + 136: 135(ptr) AccessChain 128(s) 24 + Store 136 134 + 139: 138(ptr) AccessChain 47 102 24 + 140: 14(fvec3) Load 139 + 144: 143(bvec3) FOrdNotEqual 140 142 + 145: 137(bool) Any 144 + 146: 137(bool) LogicalNot 145 + SelectionMerge 148 None + BranchConditional 146 147 148 + 147: Label + 150: 149(ptr) AccessChain 47 109 102 + 151: 42(ivec3) Load 150 + 154: 143(bvec3) INotEqual 151 153 + 155: 137(bool) Any 154 + Branch 148 + 148: Label + 156: 137(bool) Phi 145 5 155 147 + SelectionMerge 158 None + BranchConditional 156 157 158 + 157: Label + 159: 97(ptr) AccessChain 128(s) 20 + 160: 14(fvec3) Load 159 + 161: 14(fvec3) CompositeConstruct 141 141 141 + 162: 14(fvec3) FAdd 160 161 + Store 159 162 + Branch 158 + 158: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out b/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out new file mode 100644 index 0000000000..9c4201de50 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.300layoutp.vert.out @@ -0,0 +1,200 @@ +spv.300layoutp.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 115 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 11 50 52 60 72 80 + Source ESSL 310 + Name 4 "main" + Name 9 "pos" + Name 11 "p" + Name 17 "Transform" + MemberName 17(Transform) 0 "M1" + MemberName 17(Transform) 1 "M2" + MemberName 17(Transform) 2 "N1" + MemberName 17(Transform) 3 "iuin" + Name 19 "tblock" + Name 33 "T3" + MemberName 33(T3) 0 "M3" + MemberName 33(T3) 1 "M4" + MemberName 33(T3) 2 "N2" + MemberName 33(T3) 3 "uv3a" + Name 35 "" + Name 42 "T2" + MemberName 42(T2) 0 "b" + MemberName 42(T2) 1 "t2m" + Name 44 "" + Name 50 "color" + Name 52 "c" + Name 60 "iout" + Name 66 "uiuin" + Name 72 "aiv2" + Name 78 "S" + MemberName 78(S) 0 "c" + MemberName 78(S) 1 "f" + Name 80 "s" + Decorate 11(p) Location 3 + MemberDecorate 17(Transform) 0 RowMajor + MemberDecorate 17(Transform) 0 Offset 0 + MemberDecorate 17(Transform) 0 MatrixStride 16 + MemberDecorate 17(Transform) 1 ColMajor + MemberDecorate 17(Transform) 1 Offset 64 + MemberDecorate 17(Transform) 1 MatrixStride 16 + MemberDecorate 17(Transform) 2 RowMajor + MemberDecorate 17(Transform) 2 Offset 128 + MemberDecorate 17(Transform) 2 MatrixStride 16 + MemberDecorate 17(Transform) 3 Offset 176 + Decorate 17(Transform) Block + Decorate 19(tblock) DescriptorSet 0 + Decorate 32 ArrayStride 16 + MemberDecorate 33(T3) 0 ColMajor + MemberDecorate 33(T3) 0 Offset 0 + MemberDecorate 33(T3) 0 MatrixStride 16 + MemberDecorate 33(T3) 1 RowMajor + MemberDecorate 33(T3) 1 Offset 64 + MemberDecorate 33(T3) 1 MatrixStride 16 + MemberDecorate 33(T3) 2 ColMajor + MemberDecorate 33(T3) 2 Offset 128 + MemberDecorate 33(T3) 2 MatrixStride 16 + MemberDecorate 33(T3) 3 Offset 160 + Decorate 33(T3) Block + Decorate 35 DescriptorSet 0 + MemberDecorate 42(T2) 0 Offset 0 + MemberDecorate 42(T2) 1 RowMajor + MemberDecorate 42(T2) 1 Offset 16 + MemberDecorate 42(T2) 1 MatrixStride 16 + Decorate 42(T2) Block + Decorate 44 DescriptorSet 0 + Decorate 52(c) Location 7 + Decorate 60(iout) Flat + Decorate 72(aiv2) Location 9 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(pos): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(p): 10(ptr) Variable Input + 13: TypeMatrix 7(fvec4) 4 + 14: TypeVector 6(float) 3 + 15: TypeMatrix 14(fvec3) 3 + 16: TypeInt 32 1 + 17(Transform): TypeStruct 13 13 15 16(int) + 18: TypePointer Uniform 17(Transform) + 19(tblock): 18(ptr) Variable Uniform + 20: 16(int) Constant 0 + 21: TypePointer Uniform 13 + 24: 16(int) Constant 1 + 28: TypeMatrix 14(fvec3) 2 + 29: TypeInt 32 0 + 30: TypeVector 29(int) 3 + 31: 29(int) Constant 4 + 32: TypeArray 30(ivec3) 31 + 33(T3): TypeStruct 13 13 28 32 + 34: TypePointer Uniform 33(T3) + 35: 34(ptr) Variable Uniform + 42(T2): TypeStruct 29(int) 13 + 43: TypePointer Uniform 42(T2) + 44: 43(ptr) Variable Uniform + 49: TypePointer Output 14(fvec3) + 50(color): 49(ptr) Variable Output + 51: TypePointer Input 14(fvec3) + 52(c): 51(ptr) Variable Input + 54: 16(int) Constant 2 + 55: TypePointer Uniform 15 + 59: TypePointer Output 16(int) + 60(iout): 59(ptr) Variable Output + 61: 16(int) Constant 3 + 62: TypePointer Uniform 16(int) + 65: TypePointer Private 29(int) + 66(uiuin): 65(ptr) Variable Private + 70: TypeVector 16(int) 2 + 71: TypePointer Input 70(ivec2) + 72(aiv2): 71(ptr) Variable Input + 73: 29(int) Constant 1 + 74: TypePointer Input 16(int) + 78(S): TypeStruct 14(fvec3) 6(float) + 79: TypePointer Output 78(S) + 80(s): 79(ptr) Variable Output + 83: 29(int) Constant 0 + 84: TypePointer Input 6(float) + 87: TypePointer Output 6(float) + 89: TypeBool + 90: TypePointer Uniform 14(fvec3) + 93: 6(float) Constant 1065353216 + 94: 14(fvec3) ConstantComposite 93 93 93 + 95: TypeVector 89(bool) 3 + 101: TypePointer Uniform 30(ivec3) + 104: 29(int) Constant 5 + 105: 30(ivec3) ConstantComposite 104 104 104 + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(p) + 22: 21(ptr) AccessChain 19(tblock) 20 + 23: 13 Load 22 + 25: 21(ptr) AccessChain 19(tblock) 24 + 26: 13 Load 25 + 27: 13 MatrixTimesMatrix 23 26 + 36: 21(ptr) AccessChain 35 24 + 37: 13 Load 36 + 38: 13 MatrixTimesMatrix 27 37 + 39: 21(ptr) AccessChain 35 20 + 40: 13 Load 39 + 41: 13 MatrixTimesMatrix 38 40 + 45: 21(ptr) AccessChain 44 24 + 46: 13 Load 45 + 47: 13 MatrixTimesMatrix 41 46 + 48: 7(fvec4) VectorTimesMatrix 12 47 + Store 9(pos) 48 + 53: 14(fvec3) Load 52(c) + 56: 55(ptr) AccessChain 19(tblock) 54 + 57: 15 Load 56 + 58: 14(fvec3) VectorTimesMatrix 53 57 + Store 50(color) 58 + 63: 62(ptr) AccessChain 19(tblock) 61 + 64: 16(int) Load 63 + 67: 29(int) Load 66(uiuin) + 68: 16(int) Bitcast 67 + 69: 16(int) IAdd 64 68 + 75: 74(ptr) AccessChain 72(aiv2) 73 + 76: 16(int) Load 75 + 77: 16(int) IAdd 69 76 + Store 60(iout) 77 + 81: 14(fvec3) Load 52(c) + 82: 49(ptr) AccessChain 80(s) 20 + Store 82 81 + 85: 84(ptr) AccessChain 11(p) 83 + 86: 6(float) Load 85 + 88: 87(ptr) AccessChain 80(s) 24 + Store 88 86 + 91: 90(ptr) AccessChain 35 54 24 + 92: 14(fvec3) Load 91 + 96: 95(bvec3) FOrdNotEqual 92 94 + 97: 89(bool) Any 96 + 98: 89(bool) LogicalNot 97 + SelectionMerge 100 None + BranchConditional 98 99 100 + 99: Label + 102: 101(ptr) AccessChain 35 61 54 + 103: 30(ivec3) Load 102 + 106: 95(bvec3) INotEqual 103 105 + 107: 89(bool) Any 106 + Branch 100 + 100: Label + 108: 89(bool) Phi 97 5 107 99 + SelectionMerge 110 None + BranchConditional 108 109 110 + 109: Label + 111: 49(ptr) AccessChain 80(s) 20 + 112: 14(fvec3) Load 111 + 113: 14(fvec3) CompositeConstruct 93 93 93 + 114: 14(fvec3) FAdd 112 113 + Store 111 114 + Branch 110 + 110: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out b/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out new file mode 100644 index 0000000000..d7a244f862 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.310.bitcast.frag.out @@ -0,0 +1,228 @@ +spv.310.bitcast.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 153 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 9 "idata" + Name 14 "f1" + Name 26 "f2" + Name 37 "f3" + Name 48 "f4" + Name 55 "udata" + Name 85 "fdata" + Name 89 "i1" + Name 98 "i2" + Name 107 "i3" + Name 116 "i4" + Name 122 "u1" + Name 130 "u2" + Name 139 "u3" + Name 148 "u4" + Decorate 14(f1) RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 26(f2) RelaxedPrecision + Decorate 27 RelaxedPrecision + Decorate 37(f3) RelaxedPrecision + Decorate 38 RelaxedPrecision + Decorate 57 RelaxedPrecision + Decorate 64 RelaxedPrecision + Decorate 72 RelaxedPrecision + Decorate 89(i1) RelaxedPrecision + Decorate 89(i1) Flat + Decorate 90 RelaxedPrecision + Decorate 98(i2) RelaxedPrecision + Decorate 98(i2) Flat + Decorate 99 RelaxedPrecision + Decorate 107(i3) RelaxedPrecision + Decorate 107(i3) Flat + Decorate 108 RelaxedPrecision + Decorate 116(i4) Flat + Decorate 122(u1) RelaxedPrecision + Decorate 122(u1) Flat + Decorate 123 RelaxedPrecision + Decorate 130(u2) RelaxedPrecision + Decorate 130(u2) Flat + Decorate 131 RelaxedPrecision + Decorate 139(u3) RelaxedPrecision + Decorate 139(u3) Flat + Decorate 140 RelaxedPrecision + Decorate 148(u4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 10: 6(int) Constant 0 + 11: 7(ivec4) ConstantComposite 10 10 10 10 + 12: TypeFloat 32 + 13: TypePointer Input 12(float) + 14(f1): 13(ptr) Variable Input + 17: TypeInt 32 0 + 18: 17(int) Constant 0 + 19: TypePointer Function 6(int) + 24: TypeVector 12(float) 2 + 25: TypePointer Input 24(fvec2) + 26(f2): 25(ptr) Variable Input + 28: TypeVector 6(int) 2 + 35: TypeVector 12(float) 3 + 36: TypePointer Input 35(fvec3) + 37(f3): 36(ptr) Variable Input + 39: TypeVector 6(int) 3 + 46: TypeVector 12(float) 4 + 47: TypePointer Input 46(fvec4) + 48(f4): 47(ptr) Variable Input + 53: TypeVector 17(int) 4 + 54: TypePointer Function 53(ivec4) + 56: 53(ivec4) ConstantComposite 18 18 18 18 + 59: TypePointer Function 17(int) + 65: TypeVector 17(int) 2 + 73: TypeVector 17(int) 3 + 84: TypePointer Function 46(fvec4) + 86: 12(float) Constant 0 + 87: 46(fvec4) ConstantComposite 86 86 86 86 + 88: TypePointer Input 6(int) + 89(i1): 88(ptr) Variable Input + 92: TypePointer Function 12(float) + 97: TypePointer Input 28(ivec2) + 98(i2): 97(ptr) Variable Input + 106: TypePointer Input 39(ivec3) + 107(i3): 106(ptr) Variable Input + 115: TypePointer Input 7(ivec4) + 116(i4): 115(ptr) Variable Input + 121: TypePointer Input 17(int) + 122(u1): 121(ptr) Variable Input + 129: TypePointer Input 65(ivec2) + 130(u2): 129(ptr) Variable Input + 138: TypePointer Input 73(ivec3) + 139(u3): 138(ptr) Variable Input + 147: TypePointer Input 53(ivec4) + 148(u4): 147(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(idata): 8(ptr) Variable Function + 55(udata): 54(ptr) Variable Function + 85(fdata): 84(ptr) Variable Function + Store 9(idata) 11 + 15: 12(float) Load 14(f1) + 16: 6(int) Bitcast 15 + 20: 19(ptr) AccessChain 9(idata) 18 + 21: 6(int) Load 20 + 22: 6(int) IAdd 21 16 + 23: 19(ptr) AccessChain 9(idata) 18 + Store 23 22 + 27: 24(fvec2) Load 26(f2) + 29: 28(ivec2) Bitcast 27 + 30: 7(ivec4) Load 9(idata) + 31: 28(ivec2) VectorShuffle 30 30 0 1 + 32: 28(ivec2) IAdd 31 29 + 33: 7(ivec4) Load 9(idata) + 34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 + Store 9(idata) 34 + 38: 35(fvec3) Load 37(f3) + 40: 39(ivec3) Bitcast 38 + 41: 7(ivec4) Load 9(idata) + 42: 39(ivec3) VectorShuffle 41 41 0 1 2 + 43: 39(ivec3) IAdd 42 40 + 44: 7(ivec4) Load 9(idata) + 45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 + Store 9(idata) 45 + 49: 46(fvec4) Load 48(f4) + 50: 7(ivec4) Bitcast 49 + 51: 7(ivec4) Load 9(idata) + 52: 7(ivec4) IAdd 51 50 + Store 9(idata) 52 + Store 55(udata) 56 + 57: 12(float) Load 14(f1) + 58: 17(int) Bitcast 57 + 60: 59(ptr) AccessChain 55(udata) 18 + 61: 17(int) Load 60 + 62: 17(int) IAdd 61 58 + 63: 59(ptr) AccessChain 55(udata) 18 + Store 63 62 + 64: 24(fvec2) Load 26(f2) + 66: 65(ivec2) Bitcast 64 + 67: 53(ivec4) Load 55(udata) + 68: 65(ivec2) VectorShuffle 67 67 0 1 + 69: 65(ivec2) IAdd 68 66 + 70: 53(ivec4) Load 55(udata) + 71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 + Store 55(udata) 71 + 72: 35(fvec3) Load 37(f3) + 74: 73(ivec3) Bitcast 72 + 75: 53(ivec4) Load 55(udata) + 76: 73(ivec3) VectorShuffle 75 75 0 1 2 + 77: 73(ivec3) IAdd 76 74 + 78: 53(ivec4) Load 55(udata) + 79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 + Store 55(udata) 79 + 80: 46(fvec4) Load 48(f4) + 81: 53(ivec4) Bitcast 80 + 82: 53(ivec4) Load 55(udata) + 83: 53(ivec4) IAdd 82 81 + Store 55(udata) 83 + Store 85(fdata) 87 + 90: 6(int) Load 89(i1) + 91: 12(float) Bitcast 90 + 93: 92(ptr) AccessChain 85(fdata) 18 + 94: 12(float) Load 93 + 95: 12(float) FAdd 94 91 + 96: 92(ptr) AccessChain 85(fdata) 18 + Store 96 95 + 99: 28(ivec2) Load 98(i2) + 100: 24(fvec2) Bitcast 99 + 101: 46(fvec4) Load 85(fdata) + 102: 24(fvec2) VectorShuffle 101 101 0 1 + 103: 24(fvec2) FAdd 102 100 + 104: 46(fvec4) Load 85(fdata) + 105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 + Store 85(fdata) 105 + 108: 39(ivec3) Load 107(i3) + 109: 35(fvec3) Bitcast 108 + 110: 46(fvec4) Load 85(fdata) + 111: 35(fvec3) VectorShuffle 110 110 0 1 2 + 112: 35(fvec3) FAdd 111 109 + 113: 46(fvec4) Load 85(fdata) + 114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 + Store 85(fdata) 114 + 117: 7(ivec4) Load 116(i4) + 118: 46(fvec4) Bitcast 117 + 119: 46(fvec4) Load 85(fdata) + 120: 46(fvec4) FAdd 119 118 + Store 85(fdata) 120 + 123: 17(int) Load 122(u1) + 124: 12(float) Bitcast 123 + 125: 92(ptr) AccessChain 85(fdata) 18 + 126: 12(float) Load 125 + 127: 12(float) FAdd 126 124 + 128: 92(ptr) AccessChain 85(fdata) 18 + Store 128 127 + 131: 65(ivec2) Load 130(u2) + 132: 24(fvec2) Bitcast 131 + 133: 46(fvec4) Load 85(fdata) + 134: 24(fvec2) VectorShuffle 133 133 0 1 + 135: 24(fvec2) FAdd 134 132 + 136: 46(fvec4) Load 85(fdata) + 137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 + Store 85(fdata) 137 + 140: 73(ivec3) Load 139(u3) + 141: 35(fvec3) Bitcast 140 + 142: 46(fvec4) Load 85(fdata) + 143: 35(fvec3) VectorShuffle 142 142 0 1 2 + 144: 35(fvec3) FAdd 143 141 + 145: 46(fvec4) Load 85(fdata) + 146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 + Store 85(fdata) 146 + 149: 53(ivec4) Load 148(u4) + 150: 46(fvec4) Bitcast 149 + 151: 46(fvec4) Load 85(fdata) + 152: 46(fvec4) FAdd 151 150 + Store 85(fdata) 152 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.310.comp.out b/deps/glslang/glslang/Test/baseResults/spv.310.comp.out new file mode 100644 index 0000000000..fd1309dbdc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.310.comp.out @@ -0,0 +1,133 @@ +spv.310.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 71 + + Capability Shader + Capability DeviceGroup + Extension "SPV_KHR_device_group" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 53 64 + ExecutionMode 4 LocalSize 16 32 4 + Source ESSL 310 + SourceExtension "GL_EXT_device_group" + Name 4 "main" + Name 12 "outb" + MemberName 12(outb) 0 "f" + MemberName 12(outb) 1 "g" + MemberName 12(outb) 2 "h" + MemberName 12(outb) 3 "uns" + Name 14 "outbname" + Name 18 "s" + Name 23 "outbna" + MemberName 23(outbna) 0 "k" + MemberName 23(outbna) 1 "na" + Name 25 "outbnamena" + Name 42 "i" + Name 48 "outs" + MemberName 48(outs) 0 "s" + MemberName 48(outs) 1 "va" + Name 50 "outnames" + Name 53 "gl_LocalInvocationID" + Name 64 "gl_DeviceIndex" + Decorate 11 ArrayStride 16 + MemberDecorate 12(outb) 0 Offset 0 + MemberDecorate 12(outb) 1 Offset 4 + MemberDecorate 12(outb) 2 Offset 8 + MemberDecorate 12(outb) 3 Offset 16 + Decorate 12(outb) BufferBlock + Decorate 14(outbname) DescriptorSet 0 + MemberDecorate 23(outbna) 0 Offset 0 + MemberDecorate 23(outbna) 1 Offset 16 + Decorate 23(outbna) BufferBlock + Decorate 25(outbnamena) DescriptorSet 0 + Decorate 47 ArrayStride 16 + MemberDecorate 48(outs) 0 Offset 0 + MemberDecorate 48(outs) 1 Offset 16 + Decorate 48(outs) BufferBlock + Decorate 50(outnames) DescriptorSet 0 + Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 64(gl_DeviceIndex) BuiltIn DeviceIndex + Decorate 70 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 2 + 8: 6(int) Constant 264 + 9: TypeFloat 32 + 10: TypeVector 9(float) 3 + 11: TypeRuntimeArray 10(fvec3) + 12(outb): TypeStruct 9(float) 9(float) 9(float) 11 + 13: TypePointer Uniform 12(outb) + 14(outbname): 13(ptr) Variable Uniform + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Workgroup 9(float) + 18(s): 17(ptr) Variable Workgroup + 20: TypePointer Uniform 9(float) + 22: TypeVector 9(float) 4 + 23(outbna): TypeStruct 15(int) 22(fvec4) + 24: TypePointer Uniform 23(outbna) + 25(outbnamena): 24(ptr) Variable Uniform + 26: 15(int) Constant 1 + 29: TypePointer Uniform 22(fvec4) + 31: 15(int) Constant 3 + 32: 15(int) Constant 18 + 33: 6(int) Constant 0 + 36: 15(int) Constant 17 + 37: 9(float) Constant 1077936128 + 38: 10(fvec3) ConstantComposite 37 37 37 + 39: TypePointer Uniform 10(fvec3) + 41: TypePointer Workgroup 15(int) + 42(i): 41(ptr) Variable Workgroup + 47: TypeRuntimeArray 22(fvec4) + 48(outs): TypeStruct 15(int) 47 + 49: TypePointer Uniform 48(outs) + 50(outnames): 49(ptr) Variable Uniform + 51: TypeVector 6(int) 3 + 52: TypePointer Input 51(ivec3) +53(gl_LocalInvocationID): 52(ptr) Variable Input + 54: TypePointer Input 6(int) + 61: TypePointer Uniform 15(int) + 63: TypePointer Input 15(int) +64(gl_DeviceIndex): 63(ptr) Variable Input + 65: 6(int) Constant 1 + 66: 6(int) Constant 3400 + 67: 6(int) Constant 16 + 68: 6(int) Constant 32 + 69: 6(int) Constant 4 + 70: 51(ivec3) ConstantComposite 67 68 69 + 4(main): 2 Function None 3 + 5: Label + ControlBarrier 7 7 8 + 19: 9(float) Load 18(s) + 21: 20(ptr) AccessChain 14(outbname) 16 + Store 21 19 + 27: 9(float) Load 18(s) + 28: 22(fvec4) CompositeConstruct 27 27 27 27 + 30: 29(ptr) AccessChain 25(outbnamena) 26 + Store 30 28 + 34: 20(ptr) AccessChain 14(outbname) 31 32 33 + 35: 9(float) Load 34 + Store 18(s) 35 + 40: 39(ptr) AccessChain 14(outbname) 31 36 + Store 40 38 + 43: 15(int) Load 42(i) + 44: 9(float) Load 18(s) + 45: 10(fvec3) CompositeConstruct 44 44 44 + 46: 39(ptr) AccessChain 14(outbname) 31 43 + Store 46 45 + 55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 33 + 56: 6(int) Load 55 + 57: 9(float) Load 18(s) + 58: 22(fvec4) CompositeConstruct 57 57 57 57 + 59: 29(ptr) AccessChain 50(outnames) 26 56 + Store 59 58 + 60: 15(int) ArrayLength 14(outbname) 3 + 62: 61(ptr) AccessChain 50(outnames) 16 + Store 62 60 + MemoryBarrier 65 8 + MemoryBarrier 7 66 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.330.geom.out b/deps/glslang/glslang/Test/baseResults/spv.330.geom.out new file mode 100644 index 0000000000..1ccbfb6c4c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.330.geom.out @@ -0,0 +1,67 @@ +spv.330.geom +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 32 + + Capability Geometry + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 13 20 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputTriangleStrip + ExecutionMode 4 OutputVertices 3 + Source GLSL 330 + SourceExtension "GL_ARB_separate_shader_objects" + Name 4 "main" + Name 11 "gl_PerVertex" + MemberName 11(gl_PerVertex) 0 "gl_Position" + MemberName 11(gl_PerVertex) 1 "gl_ClipDistance" + Name 13 "" + Name 16 "gl_PerVertex" + MemberName 16(gl_PerVertex) 0 "gl_Position" + MemberName 16(gl_PerVertex) 1 "gl_ClipDistance" + Name 20 "gl_in" + MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance + Decorate 11(gl_PerVertex) Block + MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance + Decorate 16(gl_PerVertex) Block + 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) 10 + 12: TypePointer Output 11(gl_PerVertex) + 13: 12(ptr) Variable Output + 14: TypeInt 32 1 + 15: 14(int) Constant 0 +16(gl_PerVertex): TypeStruct 7(fvec4) 10 + 17: 8(int) Constant 3 + 18: TypeArray 16(gl_PerVertex) 17 + 19: TypePointer Input 18 + 20(gl_in): 19(ptr) Variable Input + 21: 14(int) Constant 1 + 22: TypePointer Input 7(fvec4) + 25: TypePointer Output 7(fvec4) + 27: TypePointer Input 6(float) + 30: TypePointer Output 6(float) + 4(main): 2 Function None 3 + 5: Label + 23: 22(ptr) AccessChain 20(gl_in) 21 15 + 24: 7(fvec4) Load 23 + 26: 25(ptr) AccessChain 13 15 + Store 26 24 + 28: 27(ptr) AccessChain 20(gl_in) 21 21 15 + 29: 6(float) Load 28 + 31: 30(ptr) AccessChain 13 21 15 + Store 31 29 + EmitVertex + EndPrimitive + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.400.frag.out b/deps/glslang/glslang/Test/baseResults/spv.400.frag.out new file mode 100644 index 0000000000..9cb2c63a1e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.400.frag.out @@ -0,0 +1,1391 @@ +spv.400.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 1118 + + Capability Shader + Capability Geometry + Capability Float64 + Capability ImageGatherExtended + Capability ClipDistance + Capability SampledRect + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + SourceExtension "GL_ARB_separate_shader_objects" + Name 4 "main" + Name 6 "foo23(" + Name 8 "doubles(" + Name 13 "outp" + Name 17 "u2drs" + Name 41 "doublev" + Name 45 "dvec2v" + Name 50 "dvec3v" + Name 55 "dvec4v" + Name 430 "boolv" + Name 439 "bvec2v" + Name 448 "bvec3v" + Name 457 "bvec4v" + Name 739 "dmat2v" + Name 745 "dmat3v" + Name 751 "dmat4v" + Name 757 "dmat2x3v" + Name 763 "dmat3x2v" + Name 769 "dmat2x4v" + Name 775 "dmat4x2v" + Name 781 "dmat3x4v" + Name 787 "dmat4x3v" + Name 1019 "v" + Name 1025 "arrayedSampler" + Name 1027 "i" + Name 1033 "c2D" + Name 1038 "gl_ClipDistance" + Name 1050 "uoutp" + Name 1054 "samp2dr" + Name 1076 "ioutp" + Name 1080 "isamp2DA" + Name 1097 "gl_FragCoord" + Name 1099 "vl2" + Name 1105 "uo" + Name 1107 "u" + Name 1115 "id" + Name 1116 "gl_PrimitiveID" + Decorate 17(u2drs) DescriptorSet 0 + Decorate 1025(arrayedSampler) DescriptorSet 0 + Decorate 1027(i) Flat + Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance + Decorate 1054(samp2dr) DescriptorSet 0 + Decorate 1080(isamp2DA) DescriptorSet 0 + Decorate 1097(gl_FragCoord) BuiltIn FragCoord + Decorate 1099(vl2) Location 6 + Decorate 1107(u) Flat + Decorate 1116(gl_PrimitiveID) Flat + Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Output 11(fvec4) + 13(outp): 12(ptr) Variable Output + 14: TypeImage 10(float) Rect depth sampled format:Unknown + 15: TypeSampledImage 14 + 16: TypePointer UniformConstant 15 + 17(u2drs): 16(ptr) Variable UniformConstant + 20: TypeVector 10(float) 2 + 21: 10(float) Constant 0 + 22: 20(fvec2) ConstantComposite 21 21 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 2 + 25: 23(int) Constant 3 + 26: 23(int) Constant 4 + 27: 24(ivec2) ConstantComposite 25 26 + 32: TypeInt 32 0 + 33: 32(int) Constant 0 + 34: TypePointer Output 10(float) + 39: TypeFloat 64 + 40: TypePointer Function 39(float64_t) + 42:39(float64_t) Constant 2507418074 1073430332 + 43: TypeVector 39(float64_t) 2 + 44: TypePointer Function 43(f64vec2) + 46:39(float64_t) Constant 796182188 1073367658 + 47: 43(f64vec2) ConstantComposite 46 46 + 48: TypeVector 39(float64_t) 3 + 49: TypePointer Function 48(f64vec3) + 51:39(float64_t) Constant 1719614413 1073127582 + 52: 48(f64vec3) ConstantComposite 51 51 51 + 53: TypeVector 39(float64_t) 4 + 54: TypePointer Function 53(f64vec4) + 428: TypeBool + 429: TypePointer Function 428(bool) + 437: TypeVector 428(bool) 2 + 438: TypePointer Function 437(bvec2) + 446: TypeVector 428(bool) 3 + 447: TypePointer Function 446(bvec3) + 455: TypeVector 428(bool) 4 + 456: TypePointer Function 455(bvec4) + 563: 428(bool) ConstantFalse + 572: 437(bvec2) ConstantComposite 563 563 + 581: 446(bvec3) ConstantComposite 563 563 563 + 590: 455(bvec4) ConstantComposite 563 563 563 563 + 737: TypeMatrix 43(f64vec2) 2 + 738: TypePointer Function 737 + 743: TypeMatrix 48(f64vec3) 3 + 744: TypePointer Function 743 + 749: TypeMatrix 53(f64vec4) 4 + 750: TypePointer Function 749 + 755: TypeMatrix 48(f64vec3) 2 + 756: TypePointer Function 755 + 761: TypeMatrix 43(f64vec2) 3 + 762: TypePointer Function 761 + 767: TypeMatrix 53(f64vec4) 2 + 768: TypePointer Function 767 + 773: TypeMatrix 43(f64vec2) 4 + 774: TypePointer Function 773 + 779: TypeMatrix 53(f64vec4) 3 + 780: TypePointer Function 779 + 785: TypeMatrix 48(f64vec3) 4 + 786: TypePointer Function 785 + 954: 32(int) Constant 1 + 958: 32(int) Constant 2 + 962: 32(int) Constant 3 + 966: 23(int) Constant 1 + 970: 23(int) Constant 2 + 996: 10(float) Constant 1065353216 + 1018: TypePointer Function 11(fvec4) + 1020: TypeImage 10(float) 2D sampled format:Unknown + 1021: TypeSampledImage 1020 + 1022: 32(int) Constant 5 + 1023: TypeArray 1021 1022 + 1024: TypePointer UniformConstant 1023 +1025(arrayedSampler): 1024(ptr) Variable UniformConstant + 1026: TypePointer Input 23(int) + 1027(i): 1026(ptr) Variable Input + 1029: TypePointer UniformConstant 1021 + 1032: TypePointer Input 20(fvec2) + 1033(c2D): 1032(ptr) Variable Input + 1036: TypeArray 10(float) 958 + 1037: TypePointer Input 1036 +1038(gl_ClipDistance): 1037(ptr) Variable Input + 1039: TypePointer Input 10(float) + 1043: TypeVector 10(float) 3 + 1048: TypeVector 32(int) 4 + 1049: TypePointer Output 1048(ivec4) + 1050(uoutp): 1049(ptr) Variable Output + 1051: TypeImage 32(int) Rect sampled format:Unknown + 1052: TypeSampledImage 1051 + 1053: TypePointer UniformConstant 1052 + 1054(samp2dr): 1053(ptr) Variable UniformConstant + 1057: 32(int) Constant 4 + 1058: TypeArray 24(ivec2) 1057 + 1059: 24(ivec2) ConstantComposite 966 970 + 1060: 23(int) Constant 15 + 1061: 23(int) Constant 16 + 1062: 24(ivec2) ConstantComposite 1060 1061 + 1063: 23(int) Constant 4294967294 + 1064: 23(int) Constant 0 + 1065: 24(ivec2) ConstantComposite 1063 1064 + 1066: 1058 ConstantComposite 1059 27 1062 1065 + 1074: TypeVector 23(int) 4 + 1075: TypePointer Output 1074(ivec4) + 1076(ioutp): 1075(ptr) Variable Output + 1077: TypeImage 23(int) 2D array sampled format:Unknown + 1078: TypeSampledImage 1077 + 1079: TypePointer UniformConstant 1078 + 1080(isamp2DA): 1079(ptr) Variable UniformConstant + 1082: 10(float) Constant 1036831949 + 1083: 1043(fvec3) ConstantComposite 1082 1082 1082 + 1084: 24(ivec2) ConstantComposite 966 966 + 1096: TypePointer Input 11(fvec4) +1097(gl_FragCoord): 1096(ptr) Variable Input + 1099(vl2): 1096(ptr) Variable Input + 1104: TypePointer Output 32(int) + 1105(uo): 1104(ptr) Variable Output + 1106: TypePointer Input 32(int) + 1107(u): 1106(ptr) Variable Input + 1114: TypePointer Function 23(int) +1116(gl_PrimitiveID): 1026(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 1019(v): 1018(ptr) Variable Function + 1115(id): 1114(ptr) Variable Function + 1028: 23(int) Load 1027(i) + 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 + 1031: 1021 Load 1030 + 1034: 20(fvec2) Load 1033(c2D) + 1035: 11(fvec4) ImageSampleImplicitLod 1031 1034 + Store 1019(v) 1035 + 1040: 1039(ptr) AccessChain 1038(gl_ClipDistance) 966 + 1041: 10(float) Load 1040 + 1042: 34(ptr) AccessChain 13(outp) 33 + Store 1042 1041 + 1044: 11(fvec4) Load 1019(v) + 1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 + 1046: 11(fvec4) Load 13(outp) + 1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 + Store 13(outp) 1047 + 1055: 1052 Load 1054(samp2dr) + 1056: 20(fvec2) Load 1033(c2D) + 1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 + Store 1050(uoutp) 1067 + 1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 + 1069: 1021 Load 1068 + 1070: 20(fvec2) Load 1033(c2D) + 1071: 11(fvec4) ImageGather 1069 1070 1064 + 1072: 11(fvec4) Load 13(outp) + 1073: 11(fvec4) FAdd 1072 1071 + Store 13(outp) 1073 + 1081: 1078 Load 1080(isamp2DA) + 1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 + Store 1076(ioutp) 1085 + 1086: 1078 Load 1080(isamp2DA) + 1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 + 1088: 1074(ivec4) Load 1076(ioutp) + 1089: 1074(ivec4) IAdd 1088 1087 + Store 1076(ioutp) 1089 + 1090: 1078 Load 1080(isamp2DA) + 1091: 23(int) Load 1027(i) + 1092: 24(ivec2) CompositeConstruct 1091 1091 + 1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 + 1094: 1074(ivec4) Load 1076(ioutp) + 1095: 1074(ivec4) IAdd 1094 1093 + Store 1076(ioutp) 1095 + 1098: 11(fvec4) Load 1097(gl_FragCoord) + 1100: 11(fvec4) Load 1099(vl2) + 1101: 11(fvec4) FAdd 1098 1100 + 1102: 11(fvec4) Load 13(outp) + 1103: 11(fvec4) FAdd 1102 1101 + Store 13(outp) 1103 + 1108: 32(int) Load 1107(u) + 1109: 23(int) Load 1027(i) + 1110: 32(int) Bitcast 1109 + 1111: 32(int) UMod 1108 1110 + Store 1105(uo) 1111 + 1112: 2 FunctionCall 6(foo23() + 1113: 2 FunctionCall 8(doubles() + 1117: 23(int) Load 1116(gl_PrimitiveID) + Store 1115(id) 1117 + Return + FunctionEnd + 6(foo23(): 2 Function None 3 + 7: Label + 18: 15 Load 17(u2drs) + 19: 11(fvec4) Load 13(outp) + 28: 10(float) CompositeExtract 19 2 + 29: 10(float) CompositeExtract 19 3 + 30: 11(fvec4) CompositeInsert 29 19 2 + 31: 10(float) ImageSampleProjDrefExplicitLod 18 30 28 Grad ConstOffset 22 22 27 + 35: 34(ptr) AccessChain 13(outp) 33 + 36: 10(float) Load 35 + 37: 10(float) FAdd 36 31 + 38: 34(ptr) AccessChain 13(outp) 33 + Store 38 37 + Return + FunctionEnd + 8(doubles(): 2 Function None 3 + 9: Label + 41(doublev): 40(ptr) Variable Function + 45(dvec2v): 44(ptr) Variable Function + 50(dvec3v): 49(ptr) Variable Function + 55(dvec4v): 54(ptr) Variable Function + 430(boolv): 429(ptr) Variable Function + 439(bvec2v): 438(ptr) Variable Function + 448(bvec3v): 447(ptr) Variable Function + 457(bvec4v): 456(ptr) Variable Function + 557: 429(ptr) Variable Function + 566: 438(ptr) Variable Function + 575: 447(ptr) Variable Function + 584: 456(ptr) Variable Function + 739(dmat2v): 738(ptr) Variable Function + 745(dmat3v): 744(ptr) Variable Function + 751(dmat4v): 750(ptr) Variable Function + 757(dmat2x3v): 756(ptr) Variable Function + 763(dmat3x2v): 762(ptr) Variable Function + 769(dmat2x4v): 768(ptr) Variable Function + 775(dmat4x2v): 774(ptr) Variable Function + 781(dmat3x4v): 780(ptr) Variable Function + 787(dmat4x3v): 786(ptr) Variable Function + Store 41(doublev) 42 + Store 45(dvec2v) 47 + Store 50(dvec3v) 52 + 56:39(float64_t) Load 41(doublev) + 57: 53(f64vec4) CompositeConstruct 56 56 56 56 + 58: 53(f64vec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57 + Store 55(dvec4v) 58 + 59:39(float64_t) Load 41(doublev) + 60:39(float64_t) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59 + 61:39(float64_t) Load 41(doublev) + 62:39(float64_t) FAdd 61 60 + Store 41(doublev) 62 + 63: 43(f64vec2) Load 45(dvec2v) + 64: 43(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63 + 65: 43(f64vec2) Load 45(dvec2v) + 66: 43(f64vec2) FAdd 65 64 + Store 45(dvec2v) 66 + 67: 48(f64vec3) Load 50(dvec3v) + 68: 48(f64vec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67 + 69: 48(f64vec3) Load 50(dvec3v) + 70: 48(f64vec3) FAdd 69 68 + Store 50(dvec3v) 70 + 71: 53(f64vec4) Load 55(dvec4v) + 72: 53(f64vec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71 + 73: 53(f64vec4) Load 55(dvec4v) + 74: 53(f64vec4) FAdd 73 72 + Store 55(dvec4v) 74 + 75:39(float64_t) Load 41(doublev) + 76:39(float64_t) ExtInst 1(GLSL.std.450) 4(FAbs) 75 + 77:39(float64_t) Load 41(doublev) + 78:39(float64_t) FAdd 77 76 + Store 41(doublev) 78 + 79: 43(f64vec2) Load 45(dvec2v) + 80: 43(f64vec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79 + 81: 43(f64vec2) Load 45(dvec2v) + 82: 43(f64vec2) FAdd 81 80 + Store 45(dvec2v) 82 + 83: 48(f64vec3) Load 50(dvec3v) + 84: 48(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83 + 85: 48(f64vec3) Load 50(dvec3v) + 86: 48(f64vec3) FAdd 85 84 + Store 50(dvec3v) 86 + 87: 53(f64vec4) Load 55(dvec4v) + 88: 53(f64vec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87 + 89: 53(f64vec4) Load 55(dvec4v) + 90: 53(f64vec4) FAdd 89 88 + Store 55(dvec4v) 90 + 91:39(float64_t) Load 41(doublev) + 92:39(float64_t) ExtInst 1(GLSL.std.450) 6(FSign) 91 + 93:39(float64_t) Load 41(doublev) + 94:39(float64_t) FAdd 93 92 + Store 41(doublev) 94 + 95: 43(f64vec2) Load 45(dvec2v) + 96: 43(f64vec2) ExtInst 1(GLSL.std.450) 6(FSign) 95 + 97: 43(f64vec2) Load 45(dvec2v) + 98: 43(f64vec2) FAdd 97 96 + Store 45(dvec2v) 98 + 99: 48(f64vec3) Load 50(dvec3v) + 100: 48(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 99 + 101: 48(f64vec3) Load 50(dvec3v) + 102: 48(f64vec3) FAdd 101 100 + Store 50(dvec3v) 102 + 103: 53(f64vec4) Load 55(dvec4v) + 104: 53(f64vec4) ExtInst 1(GLSL.std.450) 6(FSign) 103 + 105: 53(f64vec4) Load 55(dvec4v) + 106: 53(f64vec4) FAdd 105 104 + Store 55(dvec4v) 106 + 107:39(float64_t) Load 41(doublev) + 108:39(float64_t) ExtInst 1(GLSL.std.450) 8(Floor) 107 + 109:39(float64_t) Load 41(doublev) + 110:39(float64_t) FAdd 109 108 + Store 41(doublev) 110 + 111: 43(f64vec2) Load 45(dvec2v) + 112: 43(f64vec2) ExtInst 1(GLSL.std.450) 8(Floor) 111 + 113: 43(f64vec2) Load 45(dvec2v) + 114: 43(f64vec2) FAdd 113 112 + Store 45(dvec2v) 114 + 115: 48(f64vec3) Load 50(dvec3v) + 116: 48(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 115 + 117: 48(f64vec3) Load 50(dvec3v) + 118: 48(f64vec3) FAdd 117 116 + Store 50(dvec3v) 118 + 119: 53(f64vec4) Load 55(dvec4v) + 120: 53(f64vec4) ExtInst 1(GLSL.std.450) 8(Floor) 119 + 121: 53(f64vec4) Load 55(dvec4v) + 122: 53(f64vec4) FAdd 121 120 + Store 55(dvec4v) 122 + 123:39(float64_t) Load 41(doublev) + 124:39(float64_t) ExtInst 1(GLSL.std.450) 3(Trunc) 123 + 125:39(float64_t) Load 41(doublev) + 126:39(float64_t) FAdd 125 124 + Store 41(doublev) 126 + 127: 43(f64vec2) Load 45(dvec2v) + 128: 43(f64vec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127 + 129: 43(f64vec2) Load 45(dvec2v) + 130: 43(f64vec2) FAdd 129 128 + Store 45(dvec2v) 130 + 131: 48(f64vec3) Load 50(dvec3v) + 132: 48(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131 + 133: 48(f64vec3) Load 50(dvec3v) + 134: 48(f64vec3) FAdd 133 132 + Store 50(dvec3v) 134 + 135: 53(f64vec4) Load 55(dvec4v) + 136: 53(f64vec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135 + 137: 53(f64vec4) Load 55(dvec4v) + 138: 53(f64vec4) FAdd 137 136 + Store 55(dvec4v) 138 + 139:39(float64_t) Load 41(doublev) + 140:39(float64_t) ExtInst 1(GLSL.std.450) 1(Round) 139 + 141:39(float64_t) Load 41(doublev) + 142:39(float64_t) FAdd 141 140 + Store 41(doublev) 142 + 143: 43(f64vec2) Load 45(dvec2v) + 144: 43(f64vec2) ExtInst 1(GLSL.std.450) 1(Round) 143 + 145: 43(f64vec2) Load 45(dvec2v) + 146: 43(f64vec2) FAdd 145 144 + Store 45(dvec2v) 146 + 147: 48(f64vec3) Load 50(dvec3v) + 148: 48(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 147 + 149: 48(f64vec3) Load 50(dvec3v) + 150: 48(f64vec3) FAdd 149 148 + Store 50(dvec3v) 150 + 151: 53(f64vec4) Load 55(dvec4v) + 152: 53(f64vec4) ExtInst 1(GLSL.std.450) 1(Round) 151 + 153: 53(f64vec4) Load 55(dvec4v) + 154: 53(f64vec4) FAdd 153 152 + Store 55(dvec4v) 154 + 155:39(float64_t) Load 41(doublev) + 156:39(float64_t) ExtInst 1(GLSL.std.450) 2(RoundEven) 155 + 157:39(float64_t) Load 41(doublev) + 158:39(float64_t) FAdd 157 156 + Store 41(doublev) 158 + 159: 43(f64vec2) Load 45(dvec2v) + 160: 43(f64vec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159 + 161: 43(f64vec2) Load 45(dvec2v) + 162: 43(f64vec2) FAdd 161 160 + Store 45(dvec2v) 162 + 163: 48(f64vec3) Load 50(dvec3v) + 164: 48(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163 + 165: 48(f64vec3) Load 50(dvec3v) + 166: 48(f64vec3) FAdd 165 164 + Store 50(dvec3v) 166 + 167: 53(f64vec4) Load 55(dvec4v) + 168: 53(f64vec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167 + 169: 53(f64vec4) Load 55(dvec4v) + 170: 53(f64vec4) FAdd 169 168 + Store 55(dvec4v) 170 + 171:39(float64_t) Load 41(doublev) + 172:39(float64_t) ExtInst 1(GLSL.std.450) 9(Ceil) 171 + 173:39(float64_t) Load 41(doublev) + 174:39(float64_t) FAdd 173 172 + Store 41(doublev) 174 + 175: 43(f64vec2) Load 45(dvec2v) + 176: 43(f64vec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175 + 177: 43(f64vec2) Load 45(dvec2v) + 178: 43(f64vec2) FAdd 177 176 + Store 45(dvec2v) 178 + 179: 48(f64vec3) Load 50(dvec3v) + 180: 48(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179 + 181: 48(f64vec3) Load 50(dvec3v) + 182: 48(f64vec3) FAdd 181 180 + Store 50(dvec3v) 182 + 183: 53(f64vec4) Load 55(dvec4v) + 184: 53(f64vec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183 + 185: 53(f64vec4) Load 55(dvec4v) + 186: 53(f64vec4) FAdd 185 184 + Store 55(dvec4v) 186 + 187:39(float64_t) Load 41(doublev) + 188:39(float64_t) ExtInst 1(GLSL.std.450) 10(Fract) 187 + 189:39(float64_t) Load 41(doublev) + 190:39(float64_t) FAdd 189 188 + Store 41(doublev) 190 + 191: 43(f64vec2) Load 45(dvec2v) + 192: 43(f64vec2) ExtInst 1(GLSL.std.450) 10(Fract) 191 + 193: 43(f64vec2) Load 45(dvec2v) + 194: 43(f64vec2) FAdd 193 192 + Store 45(dvec2v) 194 + 195: 48(f64vec3) Load 50(dvec3v) + 196: 48(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 195 + 197: 48(f64vec3) Load 50(dvec3v) + 198: 48(f64vec3) FAdd 197 196 + Store 50(dvec3v) 198 + 199: 53(f64vec4) Load 55(dvec4v) + 200: 53(f64vec4) ExtInst 1(GLSL.std.450) 10(Fract) 199 + 201: 53(f64vec4) Load 55(dvec4v) + 202: 53(f64vec4) FAdd 201 200 + Store 55(dvec4v) 202 + 203:39(float64_t) Load 41(doublev) + 204:39(float64_t) Load 41(doublev) + 205:39(float64_t) FMod 203 204 + 206:39(float64_t) Load 41(doublev) + 207:39(float64_t) FAdd 206 205 + Store 41(doublev) 207 + 208: 43(f64vec2) Load 45(dvec2v) + 209:39(float64_t) Load 41(doublev) + 210: 43(f64vec2) CompositeConstruct 209 209 + 211: 43(f64vec2) FMod 208 210 + 212: 43(f64vec2) Load 45(dvec2v) + 213: 43(f64vec2) FAdd 212 211 + Store 45(dvec2v) 213 + 214: 48(f64vec3) Load 50(dvec3v) + 215:39(float64_t) Load 41(doublev) + 216: 48(f64vec3) CompositeConstruct 215 215 215 + 217: 48(f64vec3) FMod 214 216 + 218: 48(f64vec3) Load 50(dvec3v) + 219: 48(f64vec3) FAdd 218 217 + Store 50(dvec3v) 219 + 220: 53(f64vec4) Load 55(dvec4v) + 221:39(float64_t) Load 41(doublev) + 222: 53(f64vec4) CompositeConstruct 221 221 221 221 + 223: 53(f64vec4) FMod 220 222 + 224: 53(f64vec4) Load 55(dvec4v) + 225: 53(f64vec4) FAdd 224 223 + Store 55(dvec4v) 225 + 226: 43(f64vec2) Load 45(dvec2v) + 227: 43(f64vec2) Load 45(dvec2v) + 228: 43(f64vec2) FMod 226 227 + 229: 43(f64vec2) Load 45(dvec2v) + 230: 43(f64vec2) FAdd 229 228 + Store 45(dvec2v) 230 + 231: 48(f64vec3) Load 50(dvec3v) + 232: 48(f64vec3) Load 50(dvec3v) + 233: 48(f64vec3) FMod 231 232 + 234: 48(f64vec3) Load 50(dvec3v) + 235: 48(f64vec3) FAdd 234 233 + Store 50(dvec3v) 235 + 236: 53(f64vec4) Load 55(dvec4v) + 237: 53(f64vec4) Load 55(dvec4v) + 238: 53(f64vec4) FMod 236 237 + 239: 53(f64vec4) Load 55(dvec4v) + 240: 53(f64vec4) FAdd 239 238 + Store 55(dvec4v) 240 + 241:39(float64_t) Load 41(doublev) + 242:39(float64_t) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev) + 243:39(float64_t) Load 41(doublev) + 244:39(float64_t) FAdd 243 242 + Store 41(doublev) 244 + 245: 43(f64vec2) Load 45(dvec2v) + 246: 43(f64vec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v) + 247: 43(f64vec2) Load 45(dvec2v) + 248: 43(f64vec2) FAdd 247 246 + Store 45(dvec2v) 248 + 249: 48(f64vec3) Load 50(dvec3v) + 250: 48(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v) + 251: 48(f64vec3) Load 50(dvec3v) + 252: 48(f64vec3) FAdd 251 250 + Store 50(dvec3v) 252 + 253: 53(f64vec4) Load 55(dvec4v) + 254: 53(f64vec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v) + 255: 53(f64vec4) Load 55(dvec4v) + 256: 53(f64vec4) FAdd 255 254 + Store 55(dvec4v) 256 + 257:39(float64_t) Load 41(doublev) + 258:39(float64_t) Load 41(doublev) + 259:39(float64_t) ExtInst 1(GLSL.std.450) 37(FMin) 257 258 + 260:39(float64_t) Load 41(doublev) + 261:39(float64_t) FAdd 260 259 + Store 41(doublev) 261 + 262: 43(f64vec2) Load 45(dvec2v) + 263:39(float64_t) Load 41(doublev) + 264: 43(f64vec2) CompositeConstruct 263 263 + 265: 43(f64vec2) ExtInst 1(GLSL.std.450) 37(FMin) 262 264 + 266: 43(f64vec2) Load 45(dvec2v) + 267: 43(f64vec2) FAdd 266 265 + Store 45(dvec2v) 267 + 268: 48(f64vec3) Load 50(dvec3v) + 269:39(float64_t) Load 41(doublev) + 270: 48(f64vec3) CompositeConstruct 269 269 269 + 271: 48(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 268 270 + 272: 48(f64vec3) Load 50(dvec3v) + 273: 48(f64vec3) FAdd 272 271 + Store 50(dvec3v) 273 + 274: 53(f64vec4) Load 55(dvec4v) + 275:39(float64_t) Load 41(doublev) + 276: 53(f64vec4) CompositeConstruct 275 275 275 275 + 277: 53(f64vec4) ExtInst 1(GLSL.std.450) 37(FMin) 274 276 + 278: 53(f64vec4) Load 55(dvec4v) + 279: 53(f64vec4) FAdd 278 277 + Store 55(dvec4v) 279 + 280: 43(f64vec2) Load 45(dvec2v) + 281: 43(f64vec2) Load 45(dvec2v) + 282: 43(f64vec2) ExtInst 1(GLSL.std.450) 37(FMin) 280 281 + 283: 43(f64vec2) Load 45(dvec2v) + 284: 43(f64vec2) FAdd 283 282 + Store 45(dvec2v) 284 + 285: 48(f64vec3) Load 50(dvec3v) + 286: 48(f64vec3) Load 50(dvec3v) + 287: 48(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 285 286 + 288: 48(f64vec3) Load 50(dvec3v) + 289: 48(f64vec3) FAdd 288 287 + Store 50(dvec3v) 289 + 290: 53(f64vec4) Load 55(dvec4v) + 291: 53(f64vec4) Load 55(dvec4v) + 292: 53(f64vec4) ExtInst 1(GLSL.std.450) 37(FMin) 290 291 + 293: 53(f64vec4) Load 55(dvec4v) + 294: 53(f64vec4) FAdd 293 292 + Store 55(dvec4v) 294 + 295:39(float64_t) Load 41(doublev) + 296:39(float64_t) Load 41(doublev) + 297:39(float64_t) ExtInst 1(GLSL.std.450) 40(FMax) 295 296 + 298:39(float64_t) Load 41(doublev) + 299:39(float64_t) FAdd 298 297 + Store 41(doublev) 299 + 300: 43(f64vec2) Load 45(dvec2v) + 301:39(float64_t) Load 41(doublev) + 302: 43(f64vec2) CompositeConstruct 301 301 + 303: 43(f64vec2) ExtInst 1(GLSL.std.450) 40(FMax) 300 302 + 304: 43(f64vec2) Load 45(dvec2v) + 305: 43(f64vec2) FAdd 304 303 + Store 45(dvec2v) 305 + 306: 48(f64vec3) Load 50(dvec3v) + 307:39(float64_t) Load 41(doublev) + 308: 48(f64vec3) CompositeConstruct 307 307 307 + 309: 48(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 306 308 + 310: 48(f64vec3) Load 50(dvec3v) + 311: 48(f64vec3) FAdd 310 309 + Store 50(dvec3v) 311 + 312: 53(f64vec4) Load 55(dvec4v) + 313:39(float64_t) Load 41(doublev) + 314: 53(f64vec4) CompositeConstruct 313 313 313 313 + 315: 53(f64vec4) ExtInst 1(GLSL.std.450) 40(FMax) 312 314 + 316: 53(f64vec4) Load 55(dvec4v) + 317: 53(f64vec4) FAdd 316 315 + Store 55(dvec4v) 317 + 318: 43(f64vec2) Load 45(dvec2v) + 319: 43(f64vec2) Load 45(dvec2v) + 320: 43(f64vec2) ExtInst 1(GLSL.std.450) 40(FMax) 318 319 + 321: 43(f64vec2) Load 45(dvec2v) + 322: 43(f64vec2) FAdd 321 320 + Store 45(dvec2v) 322 + 323: 48(f64vec3) Load 50(dvec3v) + 324: 48(f64vec3) Load 50(dvec3v) + 325: 48(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 323 324 + 326: 48(f64vec3) Load 50(dvec3v) + 327: 48(f64vec3) FAdd 326 325 + Store 50(dvec3v) 327 + 328: 53(f64vec4) Load 55(dvec4v) + 329: 53(f64vec4) Load 55(dvec4v) + 330: 53(f64vec4) ExtInst 1(GLSL.std.450) 40(FMax) 328 329 + 331: 53(f64vec4) Load 55(dvec4v) + 332: 53(f64vec4) FAdd 331 330 + Store 55(dvec4v) 332 + 333:39(float64_t) Load 41(doublev) + 334:39(float64_t) Load 41(doublev) + 335:39(float64_t) Load 41(doublev) + 336:39(float64_t) ExtInst 1(GLSL.std.450) 43(FClamp) 333 334 335 + 337:39(float64_t) Load 41(doublev) + 338:39(float64_t) FAdd 337 336 + Store 41(doublev) 338 + 339: 43(f64vec2) Load 45(dvec2v) + 340:39(float64_t) Load 41(doublev) + 341:39(float64_t) Load 41(doublev) + 342: 43(f64vec2) CompositeConstruct 340 340 + 343: 43(f64vec2) CompositeConstruct 341 341 + 344: 43(f64vec2) ExtInst 1(GLSL.std.450) 43(FClamp) 339 342 343 + 345: 43(f64vec2) Load 45(dvec2v) + 346: 43(f64vec2) FAdd 345 344 + Store 45(dvec2v) 346 + 347: 48(f64vec3) Load 50(dvec3v) + 348:39(float64_t) Load 41(doublev) + 349:39(float64_t) Load 41(doublev) + 350: 48(f64vec3) CompositeConstruct 348 348 348 + 351: 48(f64vec3) CompositeConstruct 349 349 349 + 352: 48(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 347 350 351 + 353: 48(f64vec3) Load 50(dvec3v) + 354: 48(f64vec3) FAdd 353 352 + Store 50(dvec3v) 354 + 355: 53(f64vec4) Load 55(dvec4v) + 356:39(float64_t) Load 41(doublev) + 357:39(float64_t) Load 41(doublev) + 358: 53(f64vec4) CompositeConstruct 356 356 356 356 + 359: 53(f64vec4) CompositeConstruct 357 357 357 357 + 360: 53(f64vec4) ExtInst 1(GLSL.std.450) 43(FClamp) 355 358 359 + 361: 53(f64vec4) Load 55(dvec4v) + 362: 53(f64vec4) FAdd 361 360 + Store 55(dvec4v) 362 + 363: 43(f64vec2) Load 45(dvec2v) + 364: 43(f64vec2) Load 45(dvec2v) + 365: 43(f64vec2) Load 45(dvec2v) + 366: 43(f64vec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 + 367: 43(f64vec2) Load 45(dvec2v) + 368: 43(f64vec2) FAdd 367 366 + Store 45(dvec2v) 368 + 369: 48(f64vec3) Load 50(dvec3v) + 370: 48(f64vec3) Load 50(dvec3v) + 371: 48(f64vec3) Load 50(dvec3v) + 372: 48(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 + 373: 48(f64vec3) Load 50(dvec3v) + 374: 48(f64vec3) FAdd 373 372 + Store 50(dvec3v) 374 + 375: 53(f64vec4) Load 55(dvec4v) + 376: 53(f64vec4) Load 55(dvec4v) + 377: 53(f64vec4) Load 55(dvec4v) + 378: 53(f64vec4) ExtInst 1(GLSL.std.450) 43(FClamp) 375 376 377 + 379: 53(f64vec4) Load 55(dvec4v) + 380: 53(f64vec4) FAdd 379 378 + Store 55(dvec4v) 380 + 381:39(float64_t) Load 41(doublev) + 382:39(float64_t) Load 41(doublev) + 383:39(float64_t) Load 41(doublev) + 384:39(float64_t) ExtInst 1(GLSL.std.450) 46(FMix) 381 382 383 + 385:39(float64_t) Load 41(doublev) + 386:39(float64_t) FAdd 385 384 + Store 41(doublev) 386 + 387: 43(f64vec2) Load 45(dvec2v) + 388: 43(f64vec2) Load 45(dvec2v) + 389:39(float64_t) Load 41(doublev) + 390: 43(f64vec2) CompositeConstruct 389 389 + 391: 43(f64vec2) ExtInst 1(GLSL.std.450) 46(FMix) 387 388 390 + 392: 43(f64vec2) Load 45(dvec2v) + 393: 43(f64vec2) FAdd 392 391 + Store 45(dvec2v) 393 + 394: 48(f64vec3) Load 50(dvec3v) + 395: 48(f64vec3) Load 50(dvec3v) + 396:39(float64_t) Load 41(doublev) + 397: 48(f64vec3) CompositeConstruct 396 396 396 + 398: 48(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 394 395 397 + 399: 48(f64vec3) Load 50(dvec3v) + 400: 48(f64vec3) FAdd 399 398 + Store 50(dvec3v) 400 + 401: 53(f64vec4) Load 55(dvec4v) + 402: 53(f64vec4) Load 55(dvec4v) + 403:39(float64_t) Load 41(doublev) + 404: 53(f64vec4) CompositeConstruct 403 403 403 403 + 405: 53(f64vec4) ExtInst 1(GLSL.std.450) 46(FMix) 401 402 404 + 406: 53(f64vec4) Load 55(dvec4v) + 407: 53(f64vec4) FAdd 406 405 + Store 55(dvec4v) 407 + 408: 43(f64vec2) Load 45(dvec2v) + 409: 43(f64vec2) Load 45(dvec2v) + 410: 43(f64vec2) Load 45(dvec2v) + 411: 43(f64vec2) ExtInst 1(GLSL.std.450) 46(FMix) 408 409 410 + 412: 43(f64vec2) Load 45(dvec2v) + 413: 43(f64vec2) FAdd 412 411 + Store 45(dvec2v) 413 + 414: 48(f64vec3) Load 50(dvec3v) + 415: 48(f64vec3) Load 50(dvec3v) + 416: 48(f64vec3) Load 50(dvec3v) + 417: 48(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 414 415 416 + 418: 48(f64vec3) Load 50(dvec3v) + 419: 48(f64vec3) FAdd 418 417 + Store 50(dvec3v) 419 + 420: 53(f64vec4) Load 55(dvec4v) + 421: 53(f64vec4) Load 55(dvec4v) + 422: 53(f64vec4) Load 55(dvec4v) + 423: 53(f64vec4) ExtInst 1(GLSL.std.450) 46(FMix) 420 421 422 + 424: 53(f64vec4) Load 55(dvec4v) + 425: 53(f64vec4) FAdd 424 423 + Store 55(dvec4v) 425 + 426:39(float64_t) Load 41(doublev) + 427:39(float64_t) Load 41(doublev) + 431: 428(bool) Load 430(boolv) + 432:39(float64_t) Select 431 427 426 + 433:39(float64_t) Load 41(doublev) + 434:39(float64_t) FAdd 433 432 + Store 41(doublev) 434 + 435: 43(f64vec2) Load 45(dvec2v) + 436: 43(f64vec2) Load 45(dvec2v) + 440: 437(bvec2) Load 439(bvec2v) + 441: 43(f64vec2) Select 440 436 435 + 442: 43(f64vec2) Load 45(dvec2v) + 443: 43(f64vec2) FAdd 442 441 + Store 45(dvec2v) 443 + 444: 48(f64vec3) Load 50(dvec3v) + 445: 48(f64vec3) Load 50(dvec3v) + 449: 446(bvec3) Load 448(bvec3v) + 450: 48(f64vec3) Select 449 445 444 + 451: 48(f64vec3) Load 50(dvec3v) + 452: 48(f64vec3) FAdd 451 450 + Store 50(dvec3v) 452 + 453: 53(f64vec4) Load 55(dvec4v) + 454: 53(f64vec4) Load 55(dvec4v) + 458: 455(bvec4) Load 457(bvec4v) + 459: 53(f64vec4) Select 458 454 453 + 460: 53(f64vec4) Load 55(dvec4v) + 461: 53(f64vec4) FAdd 460 459 + Store 55(dvec4v) 461 + 462:39(float64_t) Load 41(doublev) + 463:39(float64_t) Load 41(doublev) + 464:39(float64_t) ExtInst 1(GLSL.std.450) 48(Step) 462 463 + 465:39(float64_t) Load 41(doublev) + 466:39(float64_t) FAdd 465 464 + Store 41(doublev) 466 + 467: 43(f64vec2) Load 45(dvec2v) + 468: 43(f64vec2) Load 45(dvec2v) + 469: 43(f64vec2) ExtInst 1(GLSL.std.450) 48(Step) 467 468 + 470: 43(f64vec2) Load 45(dvec2v) + 471: 43(f64vec2) FAdd 470 469 + Store 45(dvec2v) 471 + 472: 48(f64vec3) Load 50(dvec3v) + 473: 48(f64vec3) Load 50(dvec3v) + 474: 48(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 472 473 + 475: 48(f64vec3) Load 50(dvec3v) + 476: 48(f64vec3) FAdd 475 474 + Store 50(dvec3v) 476 + 477: 53(f64vec4) Load 55(dvec4v) + 478: 53(f64vec4) Load 55(dvec4v) + 479: 53(f64vec4) ExtInst 1(GLSL.std.450) 48(Step) 477 478 + 480: 53(f64vec4) Load 55(dvec4v) + 481: 53(f64vec4) FAdd 480 479 + Store 55(dvec4v) 481 + 482:39(float64_t) Load 41(doublev) + 483: 43(f64vec2) Load 45(dvec2v) + 484: 43(f64vec2) CompositeConstruct 482 482 + 485: 43(f64vec2) ExtInst 1(GLSL.std.450) 48(Step) 484 483 + 486: 43(f64vec2) Load 45(dvec2v) + 487: 43(f64vec2) FAdd 486 485 + Store 45(dvec2v) 487 + 488:39(float64_t) Load 41(doublev) + 489: 48(f64vec3) Load 50(dvec3v) + 490: 48(f64vec3) CompositeConstruct 488 488 488 + 491: 48(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 490 489 + 492: 48(f64vec3) Load 50(dvec3v) + 493: 48(f64vec3) FAdd 492 491 + Store 50(dvec3v) 493 + 494:39(float64_t) Load 41(doublev) + 495: 53(f64vec4) Load 55(dvec4v) + 496: 53(f64vec4) CompositeConstruct 494 494 494 494 + 497: 53(f64vec4) ExtInst 1(GLSL.std.450) 48(Step) 496 495 + 498: 53(f64vec4) Load 55(dvec4v) + 499: 53(f64vec4) FAdd 498 497 + Store 55(dvec4v) 499 + 500:39(float64_t) Load 41(doublev) + 501:39(float64_t) Load 41(doublev) + 502:39(float64_t) Load 41(doublev) + 503:39(float64_t) ExtInst 1(GLSL.std.450) 49(SmoothStep) 500 501 502 + 504:39(float64_t) Load 41(doublev) + 505:39(float64_t) FAdd 504 503 + Store 41(doublev) 505 + 506: 43(f64vec2) Load 45(dvec2v) + 507: 43(f64vec2) Load 45(dvec2v) + 508: 43(f64vec2) Load 45(dvec2v) + 509: 43(f64vec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 506 507 508 + 510: 43(f64vec2) Load 45(dvec2v) + 511: 43(f64vec2) FAdd 510 509 + Store 45(dvec2v) 511 + 512: 48(f64vec3) Load 50(dvec3v) + 513: 48(f64vec3) Load 50(dvec3v) + 514: 48(f64vec3) Load 50(dvec3v) + 515: 48(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 512 513 514 + 516: 48(f64vec3) Load 50(dvec3v) + 517: 48(f64vec3) FAdd 516 515 + Store 50(dvec3v) 517 + 518: 53(f64vec4) Load 55(dvec4v) + 519: 53(f64vec4) Load 55(dvec4v) + 520: 53(f64vec4) Load 55(dvec4v) + 521: 53(f64vec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 518 519 520 + 522: 53(f64vec4) Load 55(dvec4v) + 523: 53(f64vec4) FAdd 522 521 + Store 55(dvec4v) 523 + 524:39(float64_t) Load 41(doublev) + 525:39(float64_t) Load 41(doublev) + 526: 43(f64vec2) Load 45(dvec2v) + 527: 43(f64vec2) CompositeConstruct 524 524 + 528: 43(f64vec2) CompositeConstruct 525 525 + 529: 43(f64vec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 527 528 526 + 530: 43(f64vec2) Load 45(dvec2v) + 531: 43(f64vec2) FAdd 530 529 + Store 45(dvec2v) 531 + 532:39(float64_t) Load 41(doublev) + 533:39(float64_t) Load 41(doublev) + 534: 48(f64vec3) Load 50(dvec3v) + 535: 48(f64vec3) CompositeConstruct 532 532 532 + 536: 48(f64vec3) CompositeConstruct 533 533 533 + 537: 48(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 535 536 534 + 538: 48(f64vec3) Load 50(dvec3v) + 539: 48(f64vec3) FAdd 538 537 + Store 50(dvec3v) 539 + 540:39(float64_t) Load 41(doublev) + 541:39(float64_t) Load 41(doublev) + 542: 53(f64vec4) Load 55(dvec4v) + 543: 53(f64vec4) CompositeConstruct 540 540 540 540 + 544: 53(f64vec4) CompositeConstruct 541 541 541 541 + 545: 53(f64vec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 543 544 542 + 546: 53(f64vec4) Load 55(dvec4v) + 547: 53(f64vec4) FAdd 546 545 + Store 55(dvec4v) 547 + 548:39(float64_t) Load 41(doublev) + 549: 428(bool) IsNan 548 + Store 430(boolv) 549 + 550: 43(f64vec2) Load 45(dvec2v) + 551: 437(bvec2) IsNan 550 + Store 439(bvec2v) 551 + 552: 48(f64vec3) Load 50(dvec3v) + 553: 446(bvec3) IsNan 552 + Store 448(bvec3v) 553 + 554: 53(f64vec4) Load 55(dvec4v) + 555: 455(bvec4) IsNan 554 + Store 457(bvec4v) 555 + 556: 428(bool) Load 430(boolv) + SelectionMerge 559 None + BranchConditional 556 558 562 + 558: Label + 560:39(float64_t) Load 41(doublev) + 561: 428(bool) IsInf 560 + Store 557 561 + Branch 559 + 562: Label + Store 557 563 + Branch 559 + 559: Label + 564: 428(bool) Load 557 + Store 430(boolv) 564 + 565: 428(bool) Load 430(boolv) + SelectionMerge 568 None + BranchConditional 565 567 571 + 567: Label + 569: 43(f64vec2) Load 45(dvec2v) + 570: 437(bvec2) IsInf 569 + Store 566 570 + Branch 568 + 571: Label + Store 566 572 + Branch 568 + 568: Label + 573: 437(bvec2) Load 566 + Store 439(bvec2v) 573 + 574: 428(bool) Load 430(boolv) + SelectionMerge 577 None + BranchConditional 574 576 580 + 576: Label + 578: 48(f64vec3) Load 50(dvec3v) + 579: 446(bvec3) IsInf 578 + Store 575 579 + Branch 577 + 580: Label + Store 575 581 + Branch 577 + 577: Label + 582: 446(bvec3) Load 575 + Store 448(bvec3v) 582 + 583: 428(bool) Load 430(boolv) + SelectionMerge 586 None + BranchConditional 583 585 589 + 585: Label + 587: 53(f64vec4) Load 55(dvec4v) + 588: 455(bvec4) IsInf 587 + Store 584 588 + Branch 586 + 589: Label + Store 584 590 + Branch 586 + 586: Label + 591: 455(bvec4) Load 584 + Store 457(bvec4v) 591 + 592:39(float64_t) Load 41(doublev) + 593:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 592 + 594:39(float64_t) Load 41(doublev) + 595:39(float64_t) FAdd 594 593 + Store 41(doublev) 595 + 596: 43(f64vec2) Load 45(dvec2v) + 597:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 596 + 598:39(float64_t) Load 41(doublev) + 599:39(float64_t) FAdd 598 597 + Store 41(doublev) 599 + 600: 48(f64vec3) Load 50(dvec3v) + 601:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 600 + 602:39(float64_t) Load 41(doublev) + 603:39(float64_t) FAdd 602 601 + Store 41(doublev) 603 + 604: 53(f64vec4) Load 55(dvec4v) + 605:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 604 + 606:39(float64_t) Load 41(doublev) + 607:39(float64_t) FAdd 606 605 + Store 41(doublev) 607 + 608:39(float64_t) Load 41(doublev) + 609:39(float64_t) Load 41(doublev) + 610:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 608 609 + 611:39(float64_t) Load 41(doublev) + 612:39(float64_t) FAdd 611 610 + Store 41(doublev) 612 + 613: 43(f64vec2) Load 45(dvec2v) + 614: 43(f64vec2) Load 45(dvec2v) + 615:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 613 614 + 616:39(float64_t) Load 41(doublev) + 617:39(float64_t) FAdd 616 615 + Store 41(doublev) 617 + 618: 48(f64vec3) Load 50(dvec3v) + 619: 48(f64vec3) Load 50(dvec3v) + 620:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 618 619 + 621:39(float64_t) Load 41(doublev) + 622:39(float64_t) FAdd 621 620 + Store 41(doublev) 622 + 623: 53(f64vec4) Load 55(dvec4v) + 624: 53(f64vec4) Load 55(dvec4v) + 625:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 623 624 + 626:39(float64_t) Load 41(doublev) + 627:39(float64_t) FAdd 626 625 + Store 41(doublev) 627 + 628:39(float64_t) Load 41(doublev) + 629:39(float64_t) Load 41(doublev) + 630:39(float64_t) FMul 628 629 + 631:39(float64_t) Load 41(doublev) + 632:39(float64_t) FAdd 631 630 + Store 41(doublev) 632 + 633: 43(f64vec2) Load 45(dvec2v) + 634: 43(f64vec2) Load 45(dvec2v) + 635:39(float64_t) Dot 633 634 + 636:39(float64_t) Load 41(doublev) + 637:39(float64_t) FAdd 636 635 + Store 41(doublev) 637 + 638: 48(f64vec3) Load 50(dvec3v) + 639: 48(f64vec3) Load 50(dvec3v) + 640:39(float64_t) Dot 638 639 + 641:39(float64_t) Load 41(doublev) + 642:39(float64_t) FAdd 641 640 + Store 41(doublev) 642 + 643: 53(f64vec4) Load 55(dvec4v) + 644: 53(f64vec4) Load 55(dvec4v) + 645:39(float64_t) Dot 643 644 + 646:39(float64_t) Load 41(doublev) + 647:39(float64_t) FAdd 646 645 + Store 41(doublev) 647 + 648: 48(f64vec3) Load 50(dvec3v) + 649: 48(f64vec3) Load 50(dvec3v) + 650: 48(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 648 649 + 651: 48(f64vec3) Load 50(dvec3v) + 652: 48(f64vec3) FAdd 651 650 + Store 50(dvec3v) 652 + 653:39(float64_t) Load 41(doublev) + 654:39(float64_t) ExtInst 1(GLSL.std.450) 69(Normalize) 653 + 655:39(float64_t) Load 41(doublev) + 656:39(float64_t) FAdd 655 654 + Store 41(doublev) 656 + 657: 43(f64vec2) Load 45(dvec2v) + 658: 43(f64vec2) ExtInst 1(GLSL.std.450) 69(Normalize) 657 + 659: 43(f64vec2) Load 45(dvec2v) + 660: 43(f64vec2) FAdd 659 658 + Store 45(dvec2v) 660 + 661: 48(f64vec3) Load 50(dvec3v) + 662: 48(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 661 + 663: 48(f64vec3) Load 50(dvec3v) + 664: 48(f64vec3) FAdd 663 662 + Store 50(dvec3v) 664 + 665: 53(f64vec4) Load 55(dvec4v) + 666: 53(f64vec4) ExtInst 1(GLSL.std.450) 69(Normalize) 665 + 667: 53(f64vec4) Load 55(dvec4v) + 668: 53(f64vec4) FAdd 667 666 + Store 55(dvec4v) 668 + 669:39(float64_t) Load 41(doublev) + 670:39(float64_t) Load 41(doublev) + 671:39(float64_t) Load 41(doublev) + 672:39(float64_t) ExtInst 1(GLSL.std.450) 70(FaceForward) 669 670 671 + 673:39(float64_t) Load 41(doublev) + 674:39(float64_t) FAdd 673 672 + Store 41(doublev) 674 + 675: 43(f64vec2) Load 45(dvec2v) + 676: 43(f64vec2) Load 45(dvec2v) + 677: 43(f64vec2) Load 45(dvec2v) + 678: 43(f64vec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 + 679: 43(f64vec2) Load 45(dvec2v) + 680: 43(f64vec2) FAdd 679 678 + Store 45(dvec2v) 680 + 681: 48(f64vec3) Load 50(dvec3v) + 682: 48(f64vec3) Load 50(dvec3v) + 683: 48(f64vec3) Load 50(dvec3v) + 684: 48(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 681 682 683 + 685: 48(f64vec3) Load 50(dvec3v) + 686: 48(f64vec3) FAdd 685 684 + Store 50(dvec3v) 686 + 687: 53(f64vec4) Load 55(dvec4v) + 688: 53(f64vec4) Load 55(dvec4v) + 689: 53(f64vec4) Load 55(dvec4v) + 690: 53(f64vec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 687 688 689 + 691: 53(f64vec4) Load 55(dvec4v) + 692: 53(f64vec4) FAdd 691 690 + Store 55(dvec4v) 692 + 693:39(float64_t) Load 41(doublev) + 694:39(float64_t) Load 41(doublev) + 695:39(float64_t) ExtInst 1(GLSL.std.450) 71(Reflect) 693 694 + 696:39(float64_t) Load 41(doublev) + 697:39(float64_t) FAdd 696 695 + Store 41(doublev) 697 + 698: 43(f64vec2) Load 45(dvec2v) + 699: 43(f64vec2) Load 45(dvec2v) + 700: 43(f64vec2) ExtInst 1(GLSL.std.450) 71(Reflect) 698 699 + 701: 43(f64vec2) Load 45(dvec2v) + 702: 43(f64vec2) FAdd 701 700 + Store 45(dvec2v) 702 + 703: 48(f64vec3) Load 50(dvec3v) + 704: 48(f64vec3) Load 50(dvec3v) + 705: 48(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 703 704 + 706: 48(f64vec3) Load 50(dvec3v) + 707: 48(f64vec3) FAdd 706 705 + Store 50(dvec3v) 707 + 708: 53(f64vec4) Load 55(dvec4v) + 709: 53(f64vec4) Load 55(dvec4v) + 710: 53(f64vec4) ExtInst 1(GLSL.std.450) 71(Reflect) 708 709 + 711: 53(f64vec4) Load 55(dvec4v) + 712: 53(f64vec4) FAdd 711 710 + Store 55(dvec4v) 712 + 713:39(float64_t) Load 41(doublev) + 714:39(float64_t) Load 41(doublev) + 715:39(float64_t) Load 41(doublev) + 716:39(float64_t) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715 + 717:39(float64_t) Load 41(doublev) + 718:39(float64_t) FAdd 717 716 + Store 41(doublev) 718 + 719: 43(f64vec2) Load 45(dvec2v) + 720: 43(f64vec2) Load 45(dvec2v) + 721:39(float64_t) Load 41(doublev) + 722: 43(f64vec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721 + 723: 43(f64vec2) Load 45(dvec2v) + 724: 43(f64vec2) FAdd 723 722 + Store 45(dvec2v) 724 + 725: 48(f64vec3) Load 50(dvec3v) + 726: 48(f64vec3) Load 50(dvec3v) + 727:39(float64_t) Load 41(doublev) + 728: 48(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727 + 729: 48(f64vec3) Load 50(dvec3v) + 730: 48(f64vec3) FAdd 729 728 + Store 50(dvec3v) 730 + 731: 53(f64vec4) Load 55(dvec4v) + 732: 53(f64vec4) Load 55(dvec4v) + 733:39(float64_t) Load 41(doublev) + 734: 53(f64vec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733 + 735: 53(f64vec4) Load 55(dvec4v) + 736: 53(f64vec4) FAdd 735 734 + Store 55(dvec4v) 736 + 740: 43(f64vec2) Load 45(dvec2v) + 741: 43(f64vec2) Load 45(dvec2v) + 742: 737 OuterProduct 740 741 + Store 739(dmat2v) 742 + 746: 48(f64vec3) Load 50(dvec3v) + 747: 48(f64vec3) Load 50(dvec3v) + 748: 743 OuterProduct 746 747 + Store 745(dmat3v) 748 + 752: 53(f64vec4) Load 55(dvec4v) + 753: 53(f64vec4) Load 55(dvec4v) + 754: 749 OuterProduct 752 753 + Store 751(dmat4v) 754 + 758: 48(f64vec3) Load 50(dvec3v) + 759: 43(f64vec2) Load 45(dvec2v) + 760: 755 OuterProduct 758 759 + Store 757(dmat2x3v) 760 + 764: 43(f64vec2) Load 45(dvec2v) + 765: 48(f64vec3) Load 50(dvec3v) + 766: 761 OuterProduct 764 765 + Store 763(dmat3x2v) 766 + 770: 53(f64vec4) Load 55(dvec4v) + 771: 43(f64vec2) Load 45(dvec2v) + 772: 767 OuterProduct 770 771 + Store 769(dmat2x4v) 772 + 776: 43(f64vec2) Load 45(dvec2v) + 777: 53(f64vec4) Load 55(dvec4v) + 778: 773 OuterProduct 776 777 + Store 775(dmat4x2v) 778 + 782: 53(f64vec4) Load 55(dvec4v) + 783: 48(f64vec3) Load 50(dvec3v) + 784: 779 OuterProduct 782 783 + Store 781(dmat3x4v) 784 + 788: 48(f64vec3) Load 50(dvec3v) + 789: 53(f64vec4) Load 55(dvec4v) + 790: 785 OuterProduct 788 789 + Store 787(dmat4x3v) 790 + 791: 737 Load 739(dmat2v) + 792: 737 Load 739(dmat2v) + 793: 43(f64vec2) CompositeExtract 791 0 + 794: 43(f64vec2) CompositeExtract 792 0 + 795: 43(f64vec2) FMul 793 794 + 796: 43(f64vec2) CompositeExtract 791 1 + 797: 43(f64vec2) CompositeExtract 792 1 + 798: 43(f64vec2) FMul 796 797 + 799: 737 CompositeConstruct 795 798 + 800: 737 Load 739(dmat2v) + 801: 737 MatrixTimesMatrix 800 799 + Store 739(dmat2v) 801 + 802: 743 Load 745(dmat3v) + 803: 743 Load 745(dmat3v) + 804: 48(f64vec3) CompositeExtract 802 0 + 805: 48(f64vec3) CompositeExtract 803 0 + 806: 48(f64vec3) FMul 804 805 + 807: 48(f64vec3) CompositeExtract 802 1 + 808: 48(f64vec3) CompositeExtract 803 1 + 809: 48(f64vec3) FMul 807 808 + 810: 48(f64vec3) CompositeExtract 802 2 + 811: 48(f64vec3) CompositeExtract 803 2 + 812: 48(f64vec3) FMul 810 811 + 813: 743 CompositeConstruct 806 809 812 + 814: 743 Load 745(dmat3v) + 815: 743 MatrixTimesMatrix 814 813 + Store 745(dmat3v) 815 + 816: 749 Load 751(dmat4v) + 817: 749 Load 751(dmat4v) + 818: 53(f64vec4) CompositeExtract 816 0 + 819: 53(f64vec4) CompositeExtract 817 0 + 820: 53(f64vec4) FMul 818 819 + 821: 53(f64vec4) CompositeExtract 816 1 + 822: 53(f64vec4) CompositeExtract 817 1 + 823: 53(f64vec4) FMul 821 822 + 824: 53(f64vec4) CompositeExtract 816 2 + 825: 53(f64vec4) CompositeExtract 817 2 + 826: 53(f64vec4) FMul 824 825 + 827: 53(f64vec4) CompositeExtract 816 3 + 828: 53(f64vec4) CompositeExtract 817 3 + 829: 53(f64vec4) FMul 827 828 + 830: 749 CompositeConstruct 820 823 826 829 + 831: 749 Load 751(dmat4v) + 832: 749 MatrixTimesMatrix 831 830 + Store 751(dmat4v) 832 + 833: 755 Load 757(dmat2x3v) + 834: 755 Load 757(dmat2x3v) + 835: 48(f64vec3) CompositeExtract 833 0 + 836: 48(f64vec3) CompositeExtract 834 0 + 837: 48(f64vec3) FMul 835 836 + 838: 48(f64vec3) CompositeExtract 833 1 + 839: 48(f64vec3) CompositeExtract 834 1 + 840: 48(f64vec3) FMul 838 839 + 841: 755 CompositeConstruct 837 840 + Store 757(dmat2x3v) 841 + 842: 767 Load 769(dmat2x4v) + 843: 767 Load 769(dmat2x4v) + 844: 53(f64vec4) CompositeExtract 842 0 + 845: 53(f64vec4) CompositeExtract 843 0 + 846: 53(f64vec4) FMul 844 845 + 847: 53(f64vec4) CompositeExtract 842 1 + 848: 53(f64vec4) CompositeExtract 843 1 + 849: 53(f64vec4) FMul 847 848 + 850: 767 CompositeConstruct 846 849 + Store 769(dmat2x4v) 850 + 851: 761 Load 763(dmat3x2v) + 852: 761 Load 763(dmat3x2v) + 853: 43(f64vec2) CompositeExtract 851 0 + 854: 43(f64vec2) CompositeExtract 852 0 + 855: 43(f64vec2) FMul 853 854 + 856: 43(f64vec2) CompositeExtract 851 1 + 857: 43(f64vec2) CompositeExtract 852 1 + 858: 43(f64vec2) FMul 856 857 + 859: 43(f64vec2) CompositeExtract 851 2 + 860: 43(f64vec2) CompositeExtract 852 2 + 861: 43(f64vec2) FMul 859 860 + 862: 761 CompositeConstruct 855 858 861 + Store 763(dmat3x2v) 862 + 863: 779 Load 781(dmat3x4v) + 864: 779 Load 781(dmat3x4v) + 865: 53(f64vec4) CompositeExtract 863 0 + 866: 53(f64vec4) CompositeExtract 864 0 + 867: 53(f64vec4) FMul 865 866 + 868: 53(f64vec4) CompositeExtract 863 1 + 869: 53(f64vec4) CompositeExtract 864 1 + 870: 53(f64vec4) FMul 868 869 + 871: 53(f64vec4) CompositeExtract 863 2 + 872: 53(f64vec4) CompositeExtract 864 2 + 873: 53(f64vec4) FMul 871 872 + 874: 779 CompositeConstruct 867 870 873 + Store 781(dmat3x4v) 874 + 875: 773 Load 775(dmat4x2v) + 876: 773 Load 775(dmat4x2v) + 877: 43(f64vec2) CompositeExtract 875 0 + 878: 43(f64vec2) CompositeExtract 876 0 + 879: 43(f64vec2) FMul 877 878 + 880: 43(f64vec2) CompositeExtract 875 1 + 881: 43(f64vec2) CompositeExtract 876 1 + 882: 43(f64vec2) FMul 880 881 + 883: 43(f64vec2) CompositeExtract 875 2 + 884: 43(f64vec2) CompositeExtract 876 2 + 885: 43(f64vec2) FMul 883 884 + 886: 43(f64vec2) CompositeExtract 875 3 + 887: 43(f64vec2) CompositeExtract 876 3 + 888: 43(f64vec2) FMul 886 887 + 889: 773 CompositeConstruct 879 882 885 888 + Store 775(dmat4x2v) 889 + 890: 785 Load 787(dmat4x3v) + 891: 785 Load 787(dmat4x3v) + 892: 48(f64vec3) CompositeExtract 890 0 + 893: 48(f64vec3) CompositeExtract 891 0 + 894: 48(f64vec3) FMul 892 893 + 895: 48(f64vec3) CompositeExtract 890 1 + 896: 48(f64vec3) CompositeExtract 891 1 + 897: 48(f64vec3) FMul 895 896 + 898: 48(f64vec3) CompositeExtract 890 2 + 899: 48(f64vec3) CompositeExtract 891 2 + 900: 48(f64vec3) FMul 898 899 + 901: 48(f64vec3) CompositeExtract 890 3 + 902: 48(f64vec3) CompositeExtract 891 3 + 903: 48(f64vec3) FMul 901 902 + 904: 785 CompositeConstruct 894 897 900 903 + Store 787(dmat4x3v) 904 + 905: 737 Load 739(dmat2v) + 906: 737 Transpose 905 + 907: 737 Load 739(dmat2v) + 908: 737 MatrixTimesMatrix 907 906 + Store 739(dmat2v) 908 + 909: 743 Load 745(dmat3v) + 910: 743 Transpose 909 + 911: 743 Load 745(dmat3v) + 912: 743 MatrixTimesMatrix 911 910 + Store 745(dmat3v) 912 + 913: 749 Load 751(dmat4v) + 914: 749 Transpose 913 + 915: 749 Load 751(dmat4v) + 916: 749 MatrixTimesMatrix 915 914 + Store 751(dmat4v) 916 + 917: 761 Load 763(dmat3x2v) + 918: 755 Transpose 917 + Store 757(dmat2x3v) 918 + 919: 755 Load 757(dmat2x3v) + 920: 761 Transpose 919 + Store 763(dmat3x2v) 920 + 921: 773 Load 775(dmat4x2v) + 922: 767 Transpose 921 + Store 769(dmat2x4v) 922 + 923: 767 Load 769(dmat2x4v) + 924: 773 Transpose 923 + Store 775(dmat4x2v) 924 + 925: 785 Load 787(dmat4x3v) + 926: 779 Transpose 925 + Store 781(dmat3x4v) 926 + 927: 779 Load 781(dmat3x4v) + 928: 785 Transpose 927 + Store 787(dmat4x3v) 928 + 929: 737 Load 739(dmat2v) + 930:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 929 + 931:39(float64_t) Load 41(doublev) + 932:39(float64_t) FAdd 931 930 + Store 41(doublev) 932 + 933: 743 Load 745(dmat3v) + 934:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 933 + 935:39(float64_t) Load 41(doublev) + 936:39(float64_t) FAdd 935 934 + Store 41(doublev) 936 + 937: 749 Load 751(dmat4v) + 938:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 937 + 939:39(float64_t) Load 41(doublev) + 940:39(float64_t) FAdd 939 938 + Store 41(doublev) 940 + 941: 737 Load 739(dmat2v) + 942: 737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941 + 943: 737 Load 739(dmat2v) + 944: 737 MatrixTimesMatrix 943 942 + Store 739(dmat2v) 944 + 945: 743 Load 745(dmat3v) + 946: 743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945 + 947: 743 Load 745(dmat3v) + 948: 743 MatrixTimesMatrix 947 946 + Store 745(dmat3v) 948 + 949: 749 Load 751(dmat4v) + 950: 749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949 + 951: 749 Load 751(dmat4v) + 952: 749 MatrixTimesMatrix 951 950 + Store 751(dmat4v) 952 + 953:39(float64_t) Load 41(doublev) + 955: 40(ptr) AccessChain 45(dvec2v) 954 + 956:39(float64_t) Load 955 + 957:39(float64_t) FAdd 953 956 + 959: 40(ptr) AccessChain 50(dvec3v) 958 + 960:39(float64_t) Load 959 + 961:39(float64_t) FAdd 957 960 + 963: 40(ptr) AccessChain 55(dvec4v) 962 + 964:39(float64_t) Load 963 + 965:39(float64_t) FAdd 961 964 + 967: 40(ptr) AccessChain 739(dmat2v) 966 954 + 968:39(float64_t) Load 967 + 969:39(float64_t) FAdd 965 968 + 971: 40(ptr) AccessChain 745(dmat3v) 970 958 + 972:39(float64_t) Load 971 + 973:39(float64_t) FAdd 969 972 + 974: 40(ptr) AccessChain 751(dmat4v) 25 962 + 975:39(float64_t) Load 974 + 976:39(float64_t) FAdd 973 975 + 977: 40(ptr) AccessChain 757(dmat2x3v) 966 954 + 978:39(float64_t) Load 977 + 979:39(float64_t) FAdd 976 978 + 980: 40(ptr) AccessChain 763(dmat3x2v) 966 954 + 981:39(float64_t) Load 980 + 982:39(float64_t) FAdd 979 981 + 983: 40(ptr) AccessChain 781(dmat3x4v) 970 958 + 984:39(float64_t) Load 983 + 985:39(float64_t) FAdd 982 984 + 986: 40(ptr) AccessChain 787(dmat4x3v) 970 958 + 987:39(float64_t) Load 986 + 988:39(float64_t) FAdd 985 987 + 989: 40(ptr) AccessChain 769(dmat2x4v) 966 954 + 990:39(float64_t) Load 989 + 991:39(float64_t) FAdd 988 990 + 992: 40(ptr) AccessChain 775(dmat4x2v) 966 954 + 993:39(float64_t) Load 992 + 994:39(float64_t) FAdd 991 993 + 995: 428(bool) Load 430(boolv) + 997: 10(float) Select 995 996 21 + 998:39(float64_t) FConvert 997 + 999:39(float64_t) FAdd 994 998 + 1000: 429(ptr) AccessChain 439(bvec2v) 33 + 1001: 428(bool) Load 1000 + 1002: 10(float) Select 1001 996 21 + 1003:39(float64_t) FConvert 1002 + 1004:39(float64_t) FAdd 999 1003 + 1005: 429(ptr) AccessChain 448(bvec3v) 33 + 1006: 428(bool) Load 1005 + 1007: 10(float) Select 1006 996 21 + 1008:39(float64_t) FConvert 1007 + 1009:39(float64_t) FAdd 1004 1008 + 1010: 429(ptr) AccessChain 457(bvec4v) 33 + 1011: 428(bool) Load 1010 + 1012: 10(float) Select 1011 996 21 + 1013:39(float64_t) FConvert 1012 + 1014:39(float64_t) FAdd 1009 1013 + 1015: 10(float) FConvert 1014 + 1016: 11(fvec4) Load 13(outp) + 1017: 11(fvec4) VectorTimesScalar 1016 1015 + Store 13(outp) 1017 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out new file mode 100644 index 0000000000..ce7c3afa4b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.400.tesc.out @@ -0,0 +1,170 @@ +spv.400.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 92 + + Capability Tessellation + Capability TessellationPointSize + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 24 41 44 47 53 67 72 78 82 83 86 87 90 91 + ExecutionMode 4 OutputVertices 4 + Source GLSL 400 + SourceExtension "GL_ARB_separate_shader_objects" + Name 4 "main" + Name 12 "a" + Name 17 "p" + Name 20 "gl_PerVertex" + MemberName 20(gl_PerVertex) 0 "gl_Position" + MemberName 20(gl_PerVertex) 1 "gl_PointSize" + MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" + Name 24 "gl_in" + Name 31 "ps" + Name 35 "cd" + Name 39 "pvi" + Name 41 "gl_PatchVerticesIn" + Name 43 "pid" + Name 44 "gl_PrimitiveID" + Name 46 "iid" + Name 47 "gl_InvocationID" + Name 50 "gl_PerVertex" + MemberName 50(gl_PerVertex) 0 "gl_Position" + MemberName 50(gl_PerVertex) 1 "gl_PointSize" + MemberName 50(gl_PerVertex) 2 "gl_ClipDistance" + Name 53 "gl_out" + Name 67 "gl_TessLevelOuter" + Name 72 "gl_TessLevelInner" + Name 77 "outa" + Name 78 "patchOut" + Name 82 "inb" + Name 83 "ind" + Name 86 "ivla" + Name 87 "ivlb" + Name 90 "ovla" + Name 91 "ovlb" + MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 20(gl_PerVertex) Block + Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices + Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 47(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 50(gl_PerVertex) Block + Decorate 67(gl_TessLevelOuter) Patch + Decorate 67(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 72(gl_TessLevelInner) Patch + Decorate 72(gl_TessLevelInner) BuiltIn TessLevelInner + Decorate 78(patchOut) Patch + Decorate 86(ivla) Location 3 + Decorate 87(ivlb) Location 4 + Decorate 90(ovla) Location 3 + Decorate 91(ovlb) Location 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 2 + 8: 6(int) Constant 4 + 9: 6(int) Constant 0 + 10: TypeInt 32 1 + 11: TypePointer Function 10(int) + 13: 10(int) Constant 5392 + 14: TypeFloat 32 + 15: TypeVector 14(float) 4 + 16: TypePointer Function 15(fvec4) + 18: 6(int) Constant 3 + 19: TypeArray 14(float) 18 +20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19 + 21: 6(int) Constant 32 + 22: TypeArray 20(gl_PerVertex) 21 + 23: TypePointer Input 22 + 24(gl_in): 23(ptr) Variable Input + 25: 10(int) Constant 1 + 26: 10(int) Constant 0 + 27: TypePointer Input 15(fvec4) + 30: TypePointer Function 14(float) + 32: TypePointer Input 14(float) + 36: 10(int) Constant 2 + 40: TypePointer Input 10(int) +41(gl_PatchVerticesIn): 40(ptr) Variable Input +44(gl_PrimitiveID): 40(ptr) Variable Input +47(gl_InvocationID): 40(ptr) Variable Input + 49: TypeArray 14(float) 7 +50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49 + 51: TypeArray 50(gl_PerVertex) 8 + 52: TypePointer Output 51 + 53(gl_out): 52(ptr) Variable Output + 56: TypePointer Output 15(fvec4) + 60: TypePointer Output 14(float) + 65: TypeArray 14(float) 8 + 66: TypePointer Output 65 +67(gl_TessLevelOuter): 66(ptr) Variable Output + 68: 10(int) Constant 3 + 69: 14(float) Constant 1078774989 + 71: TypePointer Output 49 +72(gl_TessLevelInner): 71(ptr) Variable Output + 73: 14(float) Constant 1067869798 + 75: TypeArray 10(int) 8 + 76: TypePointer Private 75 + 77(outa): 76(ptr) Variable Private + 78(patchOut): 56(ptr) Variable Output + 79: TypeVector 14(float) 2 + 80: TypeArray 79(fvec2) 21 + 81: TypePointer Input 80 + 82(inb): 81(ptr) Variable Input + 83(ind): 81(ptr) Variable Input + 84: TypeArray 15(fvec4) 21 + 85: TypePointer Input 84 + 86(ivla): 85(ptr) Variable Input + 87(ivlb): 85(ptr) Variable Input + 88: TypeArray 15(fvec4) 8 + 89: TypePointer Output 88 + 90(ovla): 89(ptr) Variable Output + 91(ovlb): 89(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 12(a): 11(ptr) Variable Function + 17(p): 16(ptr) Variable Function + 31(ps): 30(ptr) Variable Function + 35(cd): 30(ptr) Variable Function + 39(pvi): 11(ptr) Variable Function + 43(pid): 11(ptr) Variable Function + 46(iid): 11(ptr) Variable Function + ControlBarrier 7 8 9 + Store 12(a) 13 + 28: 27(ptr) AccessChain 24(gl_in) 25 26 + 29: 15(fvec4) Load 28 + Store 17(p) 29 + 33: 32(ptr) AccessChain 24(gl_in) 25 25 + 34: 14(float) Load 33 + Store 31(ps) 34 + 37: 32(ptr) AccessChain 24(gl_in) 25 36 36 + 38: 14(float) Load 37 + Store 35(cd) 38 + 42: 10(int) Load 41(gl_PatchVerticesIn) + Store 39(pvi) 42 + 45: 10(int) Load 44(gl_PrimitiveID) + Store 43(pid) 45 + 48: 10(int) Load 47(gl_InvocationID) + Store 46(iid) 48 + 54: 10(int) Load 47(gl_InvocationID) + 55: 15(fvec4) Load 17(p) + 57: 56(ptr) AccessChain 53(gl_out) 54 26 + Store 57 55 + 58: 10(int) Load 47(gl_InvocationID) + 59: 14(float) Load 31(ps) + 61: 60(ptr) AccessChain 53(gl_out) 58 25 + Store 61 59 + 62: 10(int) Load 47(gl_InvocationID) + 63: 14(float) Load 35(cd) + 64: 60(ptr) AccessChain 53(gl_out) 62 36 25 + Store 64 63 + 70: 60(ptr) AccessChain 67(gl_TessLevelOuter) 68 + Store 70 69 + 74: 60(ptr) AccessChain 72(gl_TessLevelInner) 25 + Store 74 73 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.400.tese.out b/deps/glslang/glslang/Test/baseResults/spv.400.tese.out new file mode 100644 index 0000000000..43b6a9159a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.400.tese.out @@ -0,0 +1,183 @@ +spv.400.tese +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 96 + + Capability Tessellation + Capability TessellationPointSize + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 66 75 79 80 84 88 91 92 95 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingFractionalOdd + ExecutionMode 4 VertexOrderCcw + ExecutionMode 4 PointMode + Source GLSL 400 + SourceExtension "GL_ARB_separate_shader_objects" + Name 4 "main" + Name 8 "a" + Name 13 "p" + Name 17 "gl_PerVertex" + MemberName 17(gl_PerVertex) 0 "gl_Position" + MemberName 17(gl_PerVertex) 1 "gl_PointSize" + MemberName 17(gl_PerVertex) 2 "gl_ClipDistance" + Name 21 "gl_in" + Name 28 "ps" + Name 32 "cd" + Name 36 "pvi" + Name 38 "gl_PatchVerticesIn" + Name 40 "pid" + Name 41 "gl_PrimitiveID" + Name 45 "tc" + Name 47 "gl_TessCoord" + Name 49 "tlo" + Name 53 "gl_TessLevelOuter" + Name 57 "tli" + Name 61 "gl_TessLevelInner" + Name 64 "gl_PerVertex" + MemberName 64(gl_PerVertex) 0 "gl_Position" + MemberName 64(gl_PerVertex) 1 "gl_PointSize" + MemberName 64(gl_PerVertex) 2 "gl_ClipDistance" + Name 66 "" + Name 75 "patchIn" + Name 79 "inb" + Name 80 "ind" + Name 81 "testblb" + MemberName 81(testblb) 0 "f" + Name 84 "blb" + Name 85 "testbld" + MemberName 85(testbld) 0 "f" + Name 88 "bld" + Name 91 "ivla" + Name 92 "ivlb" + Name 95 "ovla" + MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 17(gl_PerVertex) Block + Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices + Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 47(gl_TessCoord) BuiltIn TessCoord + Decorate 53(gl_TessLevelOuter) Patch + Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 61(gl_TessLevelInner) Patch + Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner + MemberDecorate 64(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 64(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 64(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 64(gl_PerVertex) Block + Decorate 75(patchIn) Patch + Decorate 81(testblb) Block + Decorate 85(testbld) Block + Decorate 91(ivla) Location 23 + Decorate 92(ivlb) Location 24 + Decorate 95(ovla) Location 23 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1512 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Function 11(fvec4) + 14: TypeInt 32 0 + 15: 14(int) Constant 3 + 16: TypeArray 10(float) 15 +17(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 + 18: 14(int) Constant 32 + 19: TypeArray 17(gl_PerVertex) 18 + 20: TypePointer Input 19 + 21(gl_in): 20(ptr) Variable Input + 22: 6(int) Constant 1 + 23: 6(int) Constant 0 + 24: TypePointer Input 11(fvec4) + 27: TypePointer Function 10(float) + 29: TypePointer Input 10(float) + 33: 6(int) Constant 2 + 37: TypePointer Input 6(int) +38(gl_PatchVerticesIn): 37(ptr) Variable Input +41(gl_PrimitiveID): 37(ptr) Variable Input + 43: TypeVector 10(float) 3 + 44: TypePointer Function 43(fvec3) + 46: TypePointer Input 43(fvec3) +47(gl_TessCoord): 46(ptr) Variable Input + 50: 14(int) Constant 4 + 51: TypeArray 10(float) 50 + 52: TypePointer Input 51 +53(gl_TessLevelOuter): 52(ptr) Variable Input + 54: 6(int) Constant 3 + 58: 14(int) Constant 2 + 59: TypeArray 10(float) 58 + 60: TypePointer Input 59 +61(gl_TessLevelInner): 60(ptr) Variable Input +64(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 + 65: TypePointer Output 64(gl_PerVertex) + 66: 65(ptr) Variable Output + 68: TypePointer Output 11(fvec4) + 71: TypePointer Output 10(float) + 75(patchIn): 24(ptr) Variable Input + 76: TypeVector 10(float) 2 + 77: TypeArray 76(fvec2) 18 + 78: TypePointer Input 77 + 79(inb): 78(ptr) Variable Input + 80(ind): 78(ptr) Variable Input + 81(testblb): TypeStruct 6(int) + 82: TypeArray 81(testblb) 18 + 83: TypePointer Input 82 + 84(blb): 83(ptr) Variable Input + 85(testbld): TypeStruct 6(int) + 86: TypeArray 85(testbld) 18 + 87: TypePointer Input 86 + 88(bld): 87(ptr) Variable Input + 89: TypeArray 11(fvec4) 18 + 90: TypePointer Input 89 + 91(ivla): 90(ptr) Variable Input + 92(ivlb): 90(ptr) Variable Input + 93: TypeArray 11(fvec4) 58 + 94: TypePointer Output 93 + 95(ovla): 94(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(a): 7(ptr) Variable Function + 13(p): 12(ptr) Variable Function + 28(ps): 27(ptr) Variable Function + 32(cd): 27(ptr) Variable Function + 36(pvi): 7(ptr) Variable Function + 40(pid): 7(ptr) Variable Function + 45(tc): 44(ptr) Variable Function + 49(tlo): 27(ptr) Variable Function + 57(tli): 27(ptr) Variable Function + Store 8(a) 9 + 25: 24(ptr) AccessChain 21(gl_in) 22 23 + 26: 11(fvec4) Load 25 + Store 13(p) 26 + 30: 29(ptr) AccessChain 21(gl_in) 22 22 + 31: 10(float) Load 30 + Store 28(ps) 31 + 34: 29(ptr) AccessChain 21(gl_in) 22 33 33 + 35: 10(float) Load 34 + Store 32(cd) 35 + 39: 6(int) Load 38(gl_PatchVerticesIn) + Store 36(pvi) 39 + 42: 6(int) Load 41(gl_PrimitiveID) + Store 40(pid) 42 + 48: 43(fvec3) Load 47(gl_TessCoord) + Store 45(tc) 48 + 55: 29(ptr) AccessChain 53(gl_TessLevelOuter) 54 + 56: 10(float) Load 55 + Store 49(tlo) 56 + 62: 29(ptr) AccessChain 61(gl_TessLevelInner) 22 + 63: 10(float) Load 62 + Store 57(tli) 63 + 67: 11(fvec4) Load 13(p) + 69: 68(ptr) AccessChain 66 23 + Store 69 67 + 70: 10(float) Load 28(ps) + 72: 71(ptr) AccessChain 66 22 + Store 72 70 + 73: 10(float) Load 32(cd) + 74: 71(ptr) AccessChain 66 33 33 + Store 74 73 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.420.geom.out b/deps/glslang/glslang/Test/baseResults/spv.420.geom.out new file mode 100644 index 0000000000..74a4f0b31f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.420.geom.out @@ -0,0 +1,126 @@ +spv.420.geom +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 72 + + Capability Geometry + Capability GeometryPointSize + Capability ImageGatherExtended + Capability GeometryStreams + Capability MultiViewport + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 14 23 28 33 46 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 4 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 127 + Source GLSL 420 + Name 4 "main" + Name 8 "p" + Name 9 "gl_PerVertex" + MemberName 9(gl_PerVertex) 0 "gl_PointSize" + Name 14 "gl_in" + Name 21 "gl_PerVertex" + MemberName 21(gl_PerVertex) 0 "gl_PointSize" + Name 23 "" + Name 28 "gl_ViewportIndex" + Name 31 "id" + Name 33 "gl_InvocationID" + Name 37 "v" + Name 41 "s2D" + Name 46 "coord" + Name 64 "i" + Name 67 "indexable" + MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize + Decorate 9(gl_PerVertex) Block + MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize + Decorate 21(gl_PerVertex) Block + Decorate 21(gl_PerVertex) Stream 0 + Decorate 23 Stream 0 + Decorate 28(gl_ViewportIndex) Stream 0 + Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex + Decorate 33(gl_InvocationID) BuiltIn InvocationId + Decorate 41(s2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9(gl_PerVertex): TypeStruct 6(float) + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypeArray 9(gl_PerVertex) 11 + 13: TypePointer Input 12 + 14(gl_in): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: 15(int) Constant 0 + 18: TypePointer Input 6(float) +21(gl_PerVertex): TypeStruct 6(float) + 22: TypePointer Output 21(gl_PerVertex) + 23: 22(ptr) Variable Output + 25: TypePointer Output 6(float) + 27: TypePointer Output 15(int) +28(gl_ViewportIndex): 27(ptr) Variable Output + 29: 15(int) Constant 7 + 30: TypePointer Function 15(int) + 32: TypePointer Input 15(int) +33(gl_InvocationID): 32(ptr) Variable Input + 35: TypeVector 6(float) 4 + 36: TypePointer Function 35(fvec4) + 38: TypeImage 6(float) 2D sampled format:Unknown + 39: TypeSampledImage 38 + 40: TypePointer UniformConstant 39 + 41(s2D): 40(ptr) Variable UniformConstant + 43: TypeVector 6(float) 2 + 44: TypeArray 43(fvec2) 11 + 45: TypePointer Input 44 + 46(coord): 45(ptr) Variable Input + 47: TypePointer Input 43(fvec2) + 50: TypeVector 15(int) 2 + 51: 10(int) Constant 5 + 52: TypeArray 50(ivec2) 51 + 53: 50(ivec2) ConstantComposite 17 16 + 54: 15(int) Constant 4294967294 + 55: 50(ivec2) ConstantComposite 16 54 + 56: 15(int) Constant 3 + 57: 50(ivec2) ConstantComposite 17 56 + 58: 15(int) Constant 4294967293 + 59: 50(ivec2) ConstantComposite 58 17 + 60: 15(int) Constant 2 + 61: 50(ivec2) ConstantComposite 60 16 + 62: 52 ConstantComposite 53 55 57 59 61 + 63: TypePointer Private 15(int) + 64(i): 63(ptr) Variable Private + 66: TypePointer Function 52 + 68: TypePointer Function 50(ivec2) + 4(main): 2 Function None 3 + 5: Label + 8(p): 7(ptr) Variable Function + 31(id): 30(ptr) Variable Function + 37(v): 36(ptr) Variable Function + 67(indexable): 66(ptr) Variable Function + 19: 18(ptr) AccessChain 14(gl_in) 16 17 + 20: 6(float) Load 19 + Store 8(p) 20 + 24: 6(float) Load 8(p) + 26: 25(ptr) AccessChain 23 17 + Store 26 24 + Store 28(gl_ViewportIndex) 29 + EmitStreamVertex 16 + EndStreamPrimitive 17 + EmitVertex + EndPrimitive + 34: 15(int) Load 33(gl_InvocationID) + Store 31(id) 34 + 42: 39 Load 41(s2D) + 48: 47(ptr) AccessChain 46(coord) 17 + 49: 43(fvec2) Load 48 + 65: 15(int) Load 64(i) + Store 67(indexable) 62 + 69: 68(ptr) AccessChain 67(indexable) 65 + 70: 50(ivec2) Load 69 + 71: 35(fvec4) ImageGather 42 49 17 Offset 70 + Store 37(v) 71 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.430.frag.out b/deps/glslang/glslang/Test/baseResults/spv.430.frag.out new file mode 100644 index 0000000000..330489f2df --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.430.frag.out @@ -0,0 +1,48 @@ +spv.430.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// 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/deps/glslang/glslang/Test/baseResults/spv.430.vert.out b/deps/glslang/glslang/Test/baseResults/spv.430.vert.out new file mode 100644 index 0000000000..1cd9e619e7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.430.vert.out @@ -0,0 +1,136 @@ +spv.430.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 66 + + Capability Shader + Capability ClipDistance + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65 + Source GLSL 450 + Name 4 "main" + Name 10 "gl_PerVertex" + MemberName 10(gl_PerVertex) 0 "gl_ClipDistance" + Name 12 "" + Name 23 "bad" + Name 34 "badorder3" + Name 38 "f" + Name 41 "badorder" + Name 42 "badorder2" + Name 43 "boundblock" + MemberName 43(boundblock) 0 "aoeu" + Name 45 "boundInst" + Name 46 "anonblock" + MemberName 46(anonblock) 0 "aoeu" + Name 48 "" + Name 52 "sampb1" + Name 55 "sampb2" + Name 56 "sampb4" + Name 59 "S" + MemberName 59(S) 0 "a" + MemberName 59(S) 1 "b" + MemberName 59(S) 2 "c" + Name 60 "SS" + MemberName 60(SS) 0 "b" + MemberName 60(SS) 1 "s" + MemberName 60(SS) 2 "c" + Name 62 "var" + Name 63 "MS" + MemberName 63(MS) 0 "f" + Name 65 "outMS" + MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance + Decorate 10(gl_PerVertex) Block + Decorate 34(badorder3) Flat + Decorate 42(badorder2) Invariant + MemberDecorate 43(boundblock) 0 Offset 0 + Decorate 43(boundblock) Block + Decorate 45(boundInst) DescriptorSet 0 + Decorate 45(boundInst) Binding 3 + MemberDecorate 46(anonblock) 0 Offset 0 + Decorate 46(anonblock) Block + Decorate 48 DescriptorSet 0 + Decorate 48 Binding 7 + Decorate 52(sampb1) DescriptorSet 0 + Decorate 52(sampb1) Binding 4 + Decorate 55(sampb2) DescriptorSet 0 + Decorate 55(sampb2) Binding 5 + Decorate 56(sampb4) DescriptorSet 0 + Decorate 56(sampb4) Binding 31 + MemberDecorate 59(S) 0 RelaxedPrecision + Decorate 62(var) Flat + Decorate 62(var) Location 0 + MemberDecorate 63(MS) 0 Location 17 + Decorate 63(MS) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8: 7(int) Constant 3 + 9: TypeArray 6(float) 8 +10(gl_PerVertex): TypeStruct 9 + 11: TypePointer Output 10(gl_PerVertex) + 12: 11(ptr) Variable Output + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: 13(int) Constant 2 + 16: 6(float) Constant 1080872141 + 17: TypePointer Output 6(float) + 19: TypeVector 6(float) 4 + 20: 7(int) Constant 10 + 21: TypeArray 19(fvec4) 20 + 22: TypePointer Input 21 + 23(bad): 22(ptr) Variable Input + 24: 7(int) Constant 0 + 25: TypePointer Input 6(float) + 28: 6(float) Constant 1082549862 + 29: TypeBool + 33: TypePointer Output 19(fvec4) + 34(badorder3): 33(ptr) Variable Output + 35: TypePointer Input 19(fvec4) + 38(f): 25(ptr) Variable Input + 41(badorder): 35(ptr) Variable Input + 42(badorder2): 33(ptr) Variable Output + 43(boundblock): TypeStruct 13(int) + 44: TypePointer Uniform 43(boundblock) + 45(boundInst): 44(ptr) Variable Uniform + 46(anonblock): TypeStruct 13(int) + 47: TypePointer Uniform 46(anonblock) + 48: 47(ptr) Variable Uniform + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypeSampledImage 49 + 51: TypePointer UniformConstant 50 + 52(sampb1): 51(ptr) Variable UniformConstant + 53: TypeArray 50 20 + 54: TypePointer UniformConstant 53 + 55(sampb2): 54(ptr) Variable UniformConstant + 56(sampb4): 51(ptr) Variable UniformConstant + 57: TypeVector 7(int) 2 + 58: TypeVector 6(float) 3 + 59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3) + 60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4) + 61: TypePointer Output 60(SS) + 62(var): 61(ptr) Variable Output + 63(MS): TypeStruct 6(float) + 64: TypePointer Output 63(MS) + 65(outMS): 64(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 18: 17(ptr) AccessChain 12 14 15 + Store 18 16 + 26: 25(ptr) AccessChain 23(bad) 14 24 + 27: 6(float) Load 26 + 30: 29(bool) FOrdEqual 27 28 + SelectionMerge 32 None + BranchConditional 30 31 32 + 31: Label + 36: 35(ptr) AccessChain 23(bad) 14 + 37: 19(fvec4) Load 36 + Store 34(badorder3) 37 + Branch 32 + 32: Label + 39: 6(float) Load 38(f) + 40: 17(ptr) AccessChain 12 14 14 + Store 40 39 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.450.geom.out b/deps/glslang/glslang/Test/baseResults/spv.450.geom.out new file mode 100644 index 0000000000..7713e54e0f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.450.geom.out @@ -0,0 +1,77 @@ +spv.450.geom +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Geometry + Capability GeometryPointSize + Capability MultiViewport + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 13 20 27 29 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 4 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 127 + 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 16 "gl_PerVertex" + MemberName 16(gl_PerVertex) 0 "gl_Position" + MemberName 16(gl_PerVertex) 1 "gl_PointSize" + MemberName 16(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 16(gl_PerVertex) 3 "gl_CullDistance" + Name 20 "gl_in" + Name 27 "gl_Layer" + Name 29 "gl_ViewportIndex" + 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 + MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 16(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 16(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 16(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 16(gl_PerVertex) Block + Decorate 27(gl_Layer) BuiltIn Layer + Decorate 29(gl_ViewportIndex) BuiltIn ViewportIndex + 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 1 +16(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 + 17: 8(int) Constant 3 + 18: TypeArray 16(gl_PerVertex) 17 + 19: TypePointer Input 18 + 20(gl_in): 19(ptr) Variable Input + 21: TypePointer Input 6(float) + 24: TypePointer Output 6(float) + 26: TypePointer Output 14(int) + 27(gl_Layer): 26(ptr) Variable Output + 28: 14(int) Constant 2 +29(gl_ViewportIndex): 26(ptr) Variable Output + 30: 14(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 22: 21(ptr) AccessChain 20(gl_in) 15 15 + 23: 6(float) Load 22 + 25: 24(ptr) AccessChain 13 15 + Store 25 23 + Store 27(gl_Layer) 28 + Store 29(gl_ViewportIndex) 30 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.450.noRedecl.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.450.noRedecl.tesc.out new file mode 100644 index 0000000000..b23061da4d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.450.noRedecl.tesc.out @@ -0,0 +1,47 @@ +spv.450.noRedecl.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 21 + + Capability Tessellation + Capability TessellationPointSize + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 15 20 + ExecutionMode 4 OutputVertices 4 + 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 15 "gl_in" + Name 20 "patchOut" + 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 20(patchOut) Patch + 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: 8(int) Constant 32 + 13: TypeArray 11(gl_PerVertex) 12 + 14: TypePointer Input 13 + 15(gl_in): 14(ptr) Variable Input + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: 16(int) Constant 1 + 19: TypePointer Output 7(fvec4) + 20(patchOut): 19(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out new file mode 100644 index 0000000000..35653fdef7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.450.tesc.out @@ -0,0 +1,120 @@ +spv.450.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 45 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 15 18 25 32 38 41 44 + ExecutionMode 4 OutputVertices 4 + 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 15 "gl_out" + Name 18 "gl_InvocationID" + Name 21 "gl_PerVertex" + MemberName 21(gl_PerVertex) 0 "gl_Position" + MemberName 21(gl_PerVertex) 1 "gl_PointSize" + MemberName 21(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 21(gl_PerVertex) 3 "gl_CullDistance" + Name 25 "gl_in" + Name 32 "patchOut" + Name 33 "S" + MemberName 33(S) 0 "sMem1" + MemberName 33(S) 1 "sMem2" + Name 34 "TheBlock" + MemberName 34(TheBlock) 0 "bMem1" + MemberName 34(TheBlock) 1 "bMem2" + MemberName 34(TheBlock) 2 "s" + Name 38 "tcBlock" + Name 39 "SingleBlock" + MemberName 39(SingleBlock) 0 "bMem1" + MemberName 39(SingleBlock) 1 "bMem2" + MemberName 39(SingleBlock) 2 "s" + Name 41 "singleBlock" + Name 42 "bn" + MemberName 42(bn) 0 "v1" + MemberName 42(bn) 1 "v2" + MemberName 42(bn) 2 "v3" + Name 44 "" + 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(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 21(gl_PerVertex) Block + Decorate 32(patchOut) Patch + Decorate 32(patchOut) Location 1 + MemberDecorate 34(TheBlock) 0 Patch + MemberDecorate 34(TheBlock) 1 Patch + MemberDecorate 34(TheBlock) 2 Patch + Decorate 34(TheBlock) Block + Decorate 38(tcBlock) Location 12 + MemberDecorate 39(SingleBlock) 0 Patch + MemberDecorate 39(SingleBlock) 1 Patch + MemberDecorate 39(SingleBlock) 2 Patch + Decorate 39(SingleBlock) Block + Decorate 41(singleBlock) Location 2 + MemberDecorate 42(bn) 0 Patch + MemberDecorate 42(bn) 0 Location 20 + MemberDecorate 42(bn) 1 Patch + MemberDecorate 42(bn) 1 Location 24 + MemberDecorate 42(bn) 2 Patch + MemberDecorate 42(bn) 2 Location 25 + Decorate 42(bn) Block + 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: 8(int) Constant 4 + 13: TypeArray 11(gl_PerVertex) 12 + 14: TypePointer Output 13 + 15(gl_out): 14(ptr) Variable Output + 16: TypeInt 32 1 + 17: TypePointer Input 16(int) +18(gl_InvocationID): 17(ptr) Variable Input + 20: 16(int) Constant 0 +21(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 + 22: 8(int) Constant 32 + 23: TypeArray 21(gl_PerVertex) 22 + 24: TypePointer Input 23 + 25(gl_in): 24(ptr) Variable Input + 27: TypePointer Input 7(fvec4) + 30: TypePointer Output 7(fvec4) + 32(patchOut): 30(ptr) Variable Output + 33(S): TypeStruct 6(float) 6(float) + 34(TheBlock): TypeStruct 6(float) 6(float) 33(S) + 35: 8(int) Constant 2 + 36: TypeArray 34(TheBlock) 35 + 37: TypePointer Output 36 + 38(tcBlock): 37(ptr) Variable Output + 39(SingleBlock): TypeStruct 6(float) 6(float) 33(S) + 40: TypePointer Output 39(SingleBlock) + 41(singleBlock): 40(ptr) Variable Output + 42(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) + 43: TypePointer Output 42(bn) + 44: 43(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 19: 16(int) Load 18(gl_InvocationID) + 26: 16(int) Load 18(gl_InvocationID) + 28: 27(ptr) AccessChain 25(gl_in) 26 20 + 29: 7(fvec4) Load 28 + 31: 30(ptr) AccessChain 15(gl_out) 19 20 + Store 31 29 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.460.comp.out b/deps/glslang/glslang/Test/baseResults/spv.460.comp.out new file mode 100644 index 0000000000..6ebf49fa93 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.460.comp.out @@ -0,0 +1,33 @@ +spv.460.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 15 + + Capability Shader + Capability SubgroupVoteKHR + Extension "SPV_KHR_subgroup_vote" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 460 + Name 4 "main" + Name 8 "b1" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypePointer Function 6(bool) + 4(main): 2 Function None 3 + 5: Label + 8(b1): 7(ptr) Variable Function + 9: 6(bool) Load 8(b1) + 10: 6(bool) SubgroupAnyKHR 9 + Store 8(b1) 10 + 11: 6(bool) Load 8(b1) + 12: 6(bool) SubgroupAllKHR 11 + Store 8(b1) 12 + 13: 6(bool) Load 8(b1) + 14: 6(bool) SubgroupAllEqualKHR 13 + Store 8(b1) 14 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.460.frag.out b/deps/glslang/glslang/Test/baseResults/spv.460.frag.out new file mode 100644 index 0000000000..04393fbef2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.460.frag.out @@ -0,0 +1,51 @@ +spv.460.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 32 + + Capability Shader + Capability AtomicStorage + Capability AtomicStorageOps + Extension "SPV_KHR_shader_atomic_counter_ops" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginLowerLeft + Source GLSL 460 + Name 4 "main" + Name 8 "aui" + Name 10 "ui" + Decorate 8(aui) Offset 0 + Decorate 8(aui) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer AtomicCounter 6(int) + 8(aui): 7(ptr) Variable AtomicCounter + 9: TypePointer Private 6(int) + 10(ui): 9(ptr) Variable Private + 12: 6(int) Constant 1 + 13: 6(int) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 11: 6(int) Load 10(ui) + 14: 6(int) AtomicIAdd 8(aui) 12 13 11 + 15: 6(int) Load 10(ui) + 16: 6(int) AtomicISub 8(aui) 12 13 15 + 17: 6(int) Load 10(ui) + 18: 6(int) AtomicUMin 8(aui) 12 13 17 + 19: 6(int) Load 10(ui) + 20: 6(int) AtomicUMax 8(aui) 12 13 19 + 21: 6(int) Load 10(ui) + 22: 6(int) AtomicAnd 8(aui) 12 13 21 + 23: 6(int) Load 10(ui) + 24: 6(int) AtomicOr 8(aui) 12 13 23 + 25: 6(int) Load 10(ui) + 26: 6(int) AtomicXor 8(aui) 12 13 25 + 27: 6(int) Load 10(ui) + 28: 6(int) AtomicExchange 8(aui) 12 13 27 + 29: 6(int) Load 10(ui) + 30: 6(int) Load 10(ui) + 31: 6(int) AtomicCompareExchange 8(aui) 12 13 13 30 29 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.460.vert.out b/deps/glslang/glslang/Test/baseResults/spv.460.vert.out new file mode 100644 index 0000000000..c2ef302415 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.460.vert.out @@ -0,0 +1,45 @@ +spv.460.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + Capability DrawParameters + Extension "SPV_KHR_shader_draw_parameters" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 12 15 18 19 + Source GLSL 460 + Name 4 "main" + Name 8 "a" + Name 10 "gl_BaseVertex" + Name 12 "gl_BaseInstance" + Name 15 "gl_DrawID" + Name 18 "gl_VertexID" + Name 19 "gl_InstanceID" + Decorate 10(gl_BaseVertex) BuiltIn BaseVertex + Decorate 12(gl_BaseInstance) BuiltIn BaseInstance + Decorate 15(gl_DrawID) BuiltIn DrawIndex + Decorate 18(gl_VertexID) BuiltIn VertexId + Decorate 19(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_BaseVertex): 9(ptr) Variable Input +12(gl_BaseInstance): 9(ptr) Variable Input + 15(gl_DrawID): 9(ptr) Variable Input + 18(gl_VertexID): 9(ptr) Variable Input +19(gl_InstanceID): 9(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(a): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_BaseVertex) + 13: 6(int) Load 12(gl_BaseInstance) + 14: 6(int) IAdd 11 13 + 16: 6(int) Load 15(gl_DrawID) + 17: 6(int) IAdd 14 16 + Store 8(a) 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out b/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out new file mode 100644 index 0000000000..a19fae9218 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.AofA.frag.out @@ -0,0 +1,152 @@ +spv.AofA.frag +WARNING: 0:6: '[][]' : Generating SPIR-V array-of-arrays, but Vulkan only supports single array level for this resource + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 104 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 39 44 68 70 72 78 + ExecutionMode 4 OriginUpperLeft + Source GLSL 430 + Name 4 "main" + Name 17 "foo(f1[5][7];" + Name 16 "a" + Name 20 "r" + Name 39 "outfloat" + Name 42 "g4" + Name 44 "g5" + Name 45 "param" + Name 48 "u" + Name 52 "param" + Name 66 "many" + Name 68 "i" + Name 70 "j" + Name 72 "k" + Name 78 "infloat" + Name 94 "uAofA" + MemberName 94(uAofA) 0 "f" + Name 98 "nameAofA" + Decorate 68(i) Flat + Decorate 70(j) Flat + Decorate 72(k) Flat + Decorate 92 ArrayStride 16 + Decorate 93 ArrayStride 64 + MemberDecorate 94(uAofA) 0 Offset 0 + Decorate 94(uAofA) Block + Decorate 98(nameAofA) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8: 7(int) Constant 7 + 9: TypeArray 6(float) 8 + 10: 7(int) Constant 5 + 11: TypeArray 9 10 + 12: TypePointer Function 11 + 13: 7(int) Constant 4 + 14: TypeArray 9 13 + 15: TypeFunction 14 12(ptr) + 19: TypePointer Function 9 + 21: TypeInt 32 1 + 22: 21(int) Constant 2 + 25: 21(int) Constant 0 + 28: 21(int) Constant 1 + 32: 21(int) Constant 3 + 38: TypePointer Output 6(float) + 39(outfloat): 38(ptr) Variable Output + 40: 6(float) Constant 0 + 41: TypePointer Private 14 + 42(g4): 41(ptr) Variable Private + 43: TypePointer Input 11 + 44(g5): 43(ptr) Variable Input + 49: 6(float) Constant 1077936128 + 50: TypePointer Function 6(float) + 55: 7(int) Constant 6 + 56: TypeArray 6(float) 55 + 57: TypeArray 56 10 + 58: TypeArray 57 13 + 59: 7(int) Constant 3 + 60: TypeArray 58 59 + 61: 7(int) Constant 2 + 62: TypeArray 60 61 + 63: 7(int) Constant 1 + 64: TypeArray 62 63 + 65: TypePointer Private 64 + 66(many): 65(ptr) Variable Private + 67: TypePointer Input 21(int) + 68(i): 67(ptr) Variable Input + 70(j): 67(ptr) Variable Input + 72(k): 67(ptr) Variable Input + 77: TypePointer Input 6(float) + 78(infloat): 77(ptr) Variable Input + 80: TypePointer Private 6(float) + 92: TypeArray 6(float) 13 + 93: TypeArray 92 61 + 94(uAofA): TypeStruct 93 + 95: TypeArray 94(uAofA) 10 + 96: TypeArray 95 59 + 97: TypePointer Uniform 96 + 98(nameAofA): 97(ptr) Variable Uniform + 99: TypePointer Uniform 6(float) + 4(main): 2 Function None 3 + 5: Label + 45(param): 12(ptr) Variable Function + 48(u): 12(ptr) Variable Function + 52(param): 12(ptr) Variable Function + Store 39(outfloat) 40 + 46: 11 Load 44(g5) + Store 45(param) 46 + 47: 14 FunctionCall 17(foo(f1[5][7];) 45(param) + Store 42(g4) 47 + 51: 50(ptr) AccessChain 48(u) 22 22 + Store 51 49 + 53: 11 Load 48(u) + Store 52(param) 53 + 54: 14 FunctionCall 17(foo(f1[5][7];) 52(param) + 69: 21(int) Load 68(i) + 71: 21(int) Load 70(j) + 73: 21(int) Load 72(k) + 74: 21(int) Load 68(i) + 75: 21(int) Load 70(j) + 76: 21(int) Load 72(k) + 79: 6(float) Load 78(infloat) + 81: 80(ptr) AccessChain 66(many) 69 71 73 74 75 76 + Store 81 79 + 82: 21(int) Load 70(j) + 83: 21(int) Load 70(j) + 84: 21(int) Load 70(j) + 85: 21(int) Load 70(j) + 86: 21(int) Load 70(j) + 87: 21(int) Load 70(j) + 88: 80(ptr) AccessChain 66(many) 82 83 84 85 86 87 + 89: 6(float) Load 88 + 90: 6(float) Load 39(outfloat) + 91: 6(float) FAdd 90 89 + Store 39(outfloat) 91 + 100: 99(ptr) AccessChain 98(nameAofA) 28 22 25 25 32 + 101: 6(float) Load 100 + 102: 6(float) Load 39(outfloat) + 103: 6(float) FAdd 102 101 + Store 39(outfloat) 103 + Return + FunctionEnd +17(foo(f1[5][7];): 14 Function None 15 + 16(a): 12(ptr) FunctionParameter + 18: Label + 20(r): 19(ptr) Variable Function + 23: 19(ptr) AccessChain 16(a) 22 + 24: 9 Load 23 + Store 20(r) 24 + 26: 19(ptr) AccessChain 16(a) 25 + 27: 9 Load 26 + 29: 19(ptr) AccessChain 16(a) 28 + 30: 9 Load 29 + 31: 9 Load 20(r) + 33: 19(ptr) AccessChain 16(a) 32 + 34: 9 Load 33 + 35: 14 CompositeConstruct 27 30 31 34 + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/deps/glslang/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out new file mode 100644 index 0000000000..015bd0f95f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out @@ -0,0 +1,44 @@ +spv.GeometryShaderPassthrough.geom +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 15 + + Capability Geometry + Capability GeometryShaderPassthroughNV + Extension "SPV_NV_geometry_shader_passthrough" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 10 14 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputVertices 3 + Source GLSL 450 + SourceExtension "GL_NV_geometry_shader_passthrough" + Name 4 "main" + Name 8 "gl_PerVertex" + MemberName 8(gl_PerVertex) 0 "gl_Position" + Name 10 "" + Name 12 "Inputs" + MemberName 12(Inputs) 0 "texcoord" + MemberName 12(Inputs) 1 "baseColor" + Name 14 "" + MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position + Decorate 8(gl_PerVertex) Block + Decorate 10 PassthroughNV + Decorate 12(Inputs) Block + Decorate 14 PassthroughNV + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(gl_PerVertex): TypeStruct 7(fvec4) + 9: TypePointer Input 8(gl_PerVertex) + 10: 9(ptr) Variable Input + 11: TypeVector 6(float) 2 + 12(Inputs): TypeStruct 11(fvec2) 7(fvec4) + 13: TypePointer Input 12(Inputs) + 14: 13(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.OVR_multiview.vert.out b/deps/glslang/glslang/Test/baseResults/spv.OVR_multiview.vert.out new file mode 100644 index 0000000000..7013cedd75 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.OVR_multiview.vert.out @@ -0,0 +1,57 @@ +spv.OVR_multiview.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + Capability MultiView + Extension "SPV_KHR_multiview" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 13 17 25 26 + Source GLSL 330 + SourceExtension "GL_OVR_multiview" + 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" + Name 13 "" + Name 17 "gl_ViewID_OVR" + 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 + Decorate 11(gl_PerVertex) Block + Decorate 17(gl_ViewID_OVR) BuiltIn ViewIndex + 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 + 12: TypePointer Output 11(gl_PerVertex) + 13: 12(ptr) Variable Output + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Input 8(int) +17(gl_ViewID_OVR): 16(ptr) Variable Input + 20: 6(float) Constant 0 + 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 + 18: 8(int) Load 17(gl_ViewID_OVR) + 19: 6(float) ConvertUToF 18 + 21: 7(fvec4) CompositeConstruct 19 20 20 20 + 23: 22(ptr) AccessChain 13 15 + Store 23 21 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out b/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out new file mode 100644 index 0000000000..4113ddf119 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.Operations.frag.out @@ -0,0 +1,702 @@ +spv.Operations.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 532 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 22 212 288 485 526 531 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "v" + Name 11 "uv4" + Name 20 "i" + Name 22 "ui" + Name 181 "ub41" + Name 188 "f" + Name 212 "uf" + Name 285 "u" + Name 288 "uui" + Name 305 "b" + Name 342 "ub42" + Name 485 "FragColor" + Name 503 "m1" + Name 510 "m2" + Name 526 "uiv4" + Name 528 "ub" + Name 531 "uuv4" + Decorate 22(ui) Flat + Decorate 288(uui) Flat + Decorate 526(uiv4) Flat + Decorate 531(uuv4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(uv4): 10(ptr) Variable Input + 18: TypeInt 32 1 + 19: TypePointer Function 18(int) + 21: TypePointer Input 18(int) + 22(ui): 21(ptr) Variable Input + 141: TypeInt 32 0 + 142: 141(int) Constant 0 + 143: TypePointer Function 6(float) + 178: TypeBool + 179: TypeVector 178(bool) 4 + 180: TypePointer Private 179(bvec4) + 181(ub41): 180(ptr) Variable Private + 211: TypePointer Input 6(float) + 212(uf): 211(ptr) Variable Input + 284: TypePointer Function 141(int) + 287: TypePointer Input 141(int) + 288(uui): 287(ptr) Variable Input + 304: TypePointer Function 178(bool) + 342(ub42): 180(ptr) Variable Private + 398: 18(int) Constant 2 + 405: 18(int) Constant 1 + 435: TypeVector 6(float) 3 + 454: 6(float) Constant 1073741824 + 461: 6(float) Constant 1065353216 + 466: 18(int) Constant 66 + 472: 18(int) Constant 17 + 484: TypePointer Output 7(fvec4) + 485(FragColor): 484(ptr) Variable Output + 501: TypeMatrix 7(fvec4) 4 + 502: TypePointer Function 501 + 504: 6(float) Constant 0 + 505: 7(fvec4) ConstantComposite 461 504 504 504 + 506: 7(fvec4) ConstantComposite 504 461 504 504 + 507: 7(fvec4) ConstantComposite 504 504 461 504 + 508: 7(fvec4) ConstantComposite 504 504 504 461 + 509: 501 ConstantComposite 505 506 507 508 + 511: 7(fvec4) ConstantComposite 504 504 504 504 + 512: 501 ConstantComposite 511 511 511 511 + 524: TypeVector 18(int) 4 + 525: TypePointer Input 524(ivec4) + 526(uiv4): 525(ptr) Variable Input + 527: TypePointer Private 178(bool) + 528(ub): 527(ptr) Variable Private + 529: TypeVector 141(int) 4 + 530: TypePointer Input 529(ivec4) + 531(uuv4): 530(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(v): 8(ptr) Variable Function + 20(i): 19(ptr) Variable Function + 188(f): 143(ptr) Variable Function + 285(u): 284(ptr) Variable Function + 305(b): 304(ptr) Variable Function + 487: 8(ptr) Variable Function + 503(m1): 502(ptr) Variable Function + 510(m2): 502(ptr) Variable Function + 514: 502(ptr) Variable Function + 12: 7(fvec4) Load 11(uv4) + 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 + Store 9(v) 13 + 14: 7(fvec4) Load 9(v) + 15: 7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14 + 16: 7(fvec4) Load 9(v) + 17: 7(fvec4) FAdd 16 15 + Store 9(v) 17 + 23: 18(int) Load 22(ui) + 24: 18(int) Load 22(ui) + 25: 18(int) IMul 23 24 + Store 20(i) 25 + 26: 7(fvec4) Load 9(v) + 27: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26 + 28: 7(fvec4) Load 9(v) + 29: 7(fvec4) FAdd 28 27 + Store 9(v) 29 + 30: 7(fvec4) Load 9(v) + 31: 7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30 + 32: 7(fvec4) Load 9(v) + 33: 7(fvec4) FAdd 32 31 + Store 9(v) 33 + 34: 7(fvec4) Load 9(v) + 35: 7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34 + 36: 7(fvec4) Load 9(v) + 37: 7(fvec4) FAdd 36 35 + Store 9(v) 37 + 38: 7(fvec4) Load 9(v) + 39: 7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38 + 40: 7(fvec4) Load 9(v) + 41: 7(fvec4) FAdd 40 39 + Store 9(v) 41 + 42: 7(fvec4) Load 9(v) + 43: 7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42 + 44: 7(fvec4) Load 9(v) + 45: 7(fvec4) FAdd 44 43 + Store 9(v) 45 + 46: 7(fvec4) Load 9(v) + 47: 7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46 + 48: 7(fvec4) Load 9(v) + 49: 7(fvec4) FAdd 48 47 + Store 9(v) 49 + 50: 7(fvec4) Load 9(v) + 51: 7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50 + 52: 7(fvec4) Load 9(v) + 53: 7(fvec4) FAdd 52 51 + Store 9(v) 53 + 54: 7(fvec4) Load 9(v) + 55: 7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54 + 56: 7(fvec4) Load 9(v) + 57: 7(fvec4) FAdd 56 55 + Store 9(v) 57 + 58: 7(fvec4) Load 9(v) + 59: 7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58 + 60: 7(fvec4) Load 9(v) + 61: 7(fvec4) FAdd 60 59 + Store 9(v) 61 + 62: 7(fvec4) Load 9(v) + 63: 7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62 + 64: 7(fvec4) Load 9(v) + 65: 7(fvec4) FAdd 64 63 + Store 9(v) 65 + 66: 7(fvec4) Load 9(v) + 67: 7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66 + 68: 7(fvec4) Load 9(v) + 69: 7(fvec4) FAdd 68 67 + Store 9(v) 69 + 70: 7(fvec4) Load 9(v) + 71: 7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70 + 72: 7(fvec4) Load 9(v) + 73: 7(fvec4) FAdd 72 71 + Store 9(v) 73 + 74: 7(fvec4) Load 9(v) + 75: 7(fvec4) Load 9(v) + 76: 7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75 + 77: 7(fvec4) Load 9(v) + 78: 7(fvec4) FAdd 77 76 + Store 9(v) 78 + 79: 7(fvec4) Load 9(v) + 80: 7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79 + 81: 7(fvec4) Load 9(v) + 82: 7(fvec4) FAdd 81 80 + Store 9(v) 82 + 83: 7(fvec4) Load 9(v) + 84: 7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83 + 85: 7(fvec4) Load 9(v) + 86: 7(fvec4) FAdd 85 84 + Store 9(v) 86 + 87: 7(fvec4) Load 9(v) + 88: 7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87 + 89: 7(fvec4) Load 9(v) + 90: 7(fvec4) FAdd 89 88 + Store 9(v) 90 + 91: 7(fvec4) Load 9(v) + 92: 7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91 + 93: 7(fvec4) Load 9(v) + 94: 7(fvec4) FAdd 93 92 + Store 9(v) 94 + 95: 7(fvec4) Load 9(v) + 96: 7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95 + 97: 7(fvec4) Load 9(v) + 98: 7(fvec4) FAdd 97 96 + Store 9(v) 98 + 99: 7(fvec4) Load 9(v) + 100: 7(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99 + 101: 7(fvec4) Load 9(v) + 102: 7(fvec4) FAdd 101 100 + Store 9(v) 102 + 103: 7(fvec4) Load 9(v) + 104: 7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103 + 105: 7(fvec4) Load 9(v) + 106: 7(fvec4) FAdd 105 104 + Store 9(v) 106 + 107: 7(fvec4) Load 9(v) + 108: 7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107 + 109: 7(fvec4) Load 9(v) + 110: 7(fvec4) FAdd 109 108 + Store 9(v) 110 + 111: 7(fvec4) Load 9(v) + 112: 7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111 + 113: 7(fvec4) Load 9(v) + 114: 7(fvec4) FAdd 113 112 + Store 9(v) 114 + 115: 7(fvec4) Load 9(v) + 116: 7(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 115 + 117: 7(fvec4) Load 9(v) + 118: 7(fvec4) FAdd 117 116 + Store 9(v) 118 + 119: 7(fvec4) Load 9(v) + 120: 7(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 119 + 121: 7(fvec4) Load 9(v) + 122: 7(fvec4) FAdd 121 120 + Store 9(v) 122 + 123: 7(fvec4) Load 9(v) + 124: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 123 + 125: 7(fvec4) Load 9(v) + 126: 7(fvec4) FAdd 125 124 + Store 9(v) 126 + 127: 7(fvec4) Load 9(v) + 128: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 127 + 129: 7(fvec4) Load 9(v) + 130: 7(fvec4) FAdd 129 128 + Store 9(v) 130 + 131: 7(fvec4) Load 9(v) + 132: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 131 + 133: 7(fvec4) Load 9(v) + 134: 7(fvec4) FAdd 133 132 + Store 9(v) 134 + 135: 7(fvec4) Load 9(v) + 136: 7(fvec4) Load 9(v) + 137: 7(fvec4) FMod 135 136 + 138: 7(fvec4) Load 9(v) + 139: 7(fvec4) FAdd 138 137 + Store 9(v) 139 + 140: 7(fvec4) Load 9(v) + 144: 143(ptr) AccessChain 9(v) 142 + 145: 6(float) Load 144 + 146: 7(fvec4) CompositeConstruct 145 145 145 145 + 147: 7(fvec4) FMod 140 146 + 148: 7(fvec4) Load 9(v) + 149: 7(fvec4) FAdd 148 147 + Store 9(v) 149 + 150: 7(fvec4) Load 9(v) + 151: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 150 9(v) + 152: 7(fvec4) Load 9(v) + 153: 7(fvec4) FAdd 152 151 + Store 9(v) 153 + 154: 7(fvec4) Load 9(v) + 155: 7(fvec4) Load 11(uv4) + 156: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 154 155 + 157: 7(fvec4) Load 9(v) + 158: 7(fvec4) FAdd 157 156 + Store 9(v) 158 + 159: 7(fvec4) Load 9(v) + 160: 7(fvec4) Load 11(uv4) + 161: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 159 160 + 162: 7(fvec4) Load 9(v) + 163: 7(fvec4) FAdd 162 161 + Store 9(v) 163 + 164: 7(fvec4) Load 9(v) + 165: 7(fvec4) Load 11(uv4) + 166: 7(fvec4) Load 11(uv4) + 167: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 164 165 166 + 168: 7(fvec4) Load 9(v) + 169: 7(fvec4) FAdd 168 167 + Store 9(v) 169 + 170: 7(fvec4) Load 9(v) + 171: 7(fvec4) Load 9(v) + 172: 7(fvec4) Load 9(v) + 173: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 170 171 172 + 174: 7(fvec4) Load 9(v) + 175: 7(fvec4) FAdd 174 173 + Store 9(v) 175 + 176: 7(fvec4) Load 9(v) + 177: 7(fvec4) Load 9(v) + 182: 179(bvec4) Load 181(ub41) + 183: 7(fvec4) Select 182 177 176 + 184: 7(fvec4) Load 9(v) + 185: 7(fvec4) FAdd 184 183 + Store 9(v) 185 + 186: 7(fvec4) Load 9(v) + 187: 7(fvec4) Load 9(v) + 189: 6(float) Load 188(f) + 190: 7(fvec4) CompositeConstruct 189 189 189 189 + 191: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 190 + 192: 7(fvec4) Load 9(v) + 193: 7(fvec4) FAdd 192 191 + Store 9(v) 193 + 194: 7(fvec4) Load 9(v) + 195: 7(fvec4) Load 11(uv4) + 196: 7(fvec4) Load 9(v) + 197: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 194 195 196 + 198: 7(fvec4) Load 9(v) + 199: 7(fvec4) FAdd 198 197 + Store 9(v) 199 + 200: 7(fvec4) Load 9(v) + 201: 7(fvec4) Load 9(v) + 202: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 200 201 + 203: 7(fvec4) Load 9(v) + 204: 7(fvec4) FAdd 203 202 + Store 9(v) 204 + 205: 7(fvec4) Load 9(v) + 206: 7(fvec4) Load 9(v) + 207: 7(fvec4) Load 9(v) + 208: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 205 206 207 + 209: 7(fvec4) Load 9(v) + 210: 7(fvec4) FAdd 209 208 + Store 9(v) 210 + 213: 6(float) Load 212(uf) + 214: 7(fvec4) Load 9(v) + 215: 7(fvec4) CompositeConstruct 213 213 213 213 + 216: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 215 214 + 217: 7(fvec4) Load 9(v) + 218: 7(fvec4) FAdd 217 216 + Store 9(v) 218 + 219: 6(float) Load 212(uf) + 220: 6(float) Load 212(uf) + 221: 7(fvec4) Load 9(v) + 222: 7(fvec4) CompositeConstruct 219 219 219 219 + 223: 7(fvec4) CompositeConstruct 220 220 220 220 + 224: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 222 223 221 + 225: 7(fvec4) Load 9(v) + 226: 7(fvec4) FAdd 225 224 + Store 9(v) 226 + 227: 7(fvec4) Load 9(v) + 228: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 227 + 229: 7(fvec4) Load 9(v) + 230: 7(fvec4) FAdd 229 228 + Store 9(v) 230 + 231: 7(fvec4) Load 9(v) + 232: 7(fvec4) Load 9(v) + 233: 7(fvec4) Load 9(v) + 234: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 231 232 233 + 235: 7(fvec4) Load 9(v) + 236: 7(fvec4) FAdd 235 234 + Store 9(v) 236 + 237: 7(fvec4) Load 9(v) + 238: 7(fvec4) Load 9(v) + 239: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 237 238 + 240: 7(fvec4) Load 9(v) + 241: 7(fvec4) FAdd 240 239 + Store 9(v) 241 + 242: 7(fvec4) Load 9(v) + 243: 7(fvec4) Load 9(v) + 244: 6(float) Load 212(uf) + 245: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 242 243 244 + 246: 7(fvec4) Load 9(v) + 247: 7(fvec4) FAdd 246 245 + Store 9(v) 247 + 248: 7(fvec4) Load 9(v) + 249: 7(fvec4) DPdx 248 + 250: 7(fvec4) Load 9(v) + 251: 7(fvec4) FAdd 250 249 + Store 9(v) 251 + 252: 7(fvec4) Load 9(v) + 253: 7(fvec4) DPdy 252 + 254: 7(fvec4) Load 9(v) + 255: 7(fvec4) FAdd 254 253 + Store 9(v) 255 + 256: 7(fvec4) Load 9(v) + 257: 7(fvec4) Fwidth 256 + 258: 7(fvec4) Load 9(v) + 259: 7(fvec4) FAdd 258 257 + Store 9(v) 259 + 260: 18(int) Load 22(ui) + 261: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 260 + 262: 18(int) Load 20(i) + 263: 18(int) IAdd 262 261 + Store 20(i) 263 + 264: 18(int) Load 20(i) + 265: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 264 + 266: 18(int) Load 20(i) + 267: 18(int) IAdd 266 265 + Store 20(i) 267 + 268: 18(int) Load 20(i) + 269: 18(int) Load 22(ui) + 270: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 268 269 + 271: 18(int) Load 20(i) + 272: 18(int) IAdd 271 270 + Store 20(i) 272 + 273: 18(int) Load 20(i) + 274: 18(int) Load 22(ui) + 275: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 273 274 + 276: 18(int) Load 20(i) + 277: 18(int) IAdd 276 275 + Store 20(i) 277 + 278: 18(int) Load 20(i) + 279: 18(int) Load 22(ui) + 280: 18(int) Load 22(ui) + 281: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 278 279 280 + 282: 18(int) Load 20(i) + 283: 18(int) IAdd 282 281 + Store 20(i) 283 + 286: 141(int) Load 285(u) + 289: 141(int) Load 288(uui) + 290: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 286 289 + 291: 141(int) Load 285(u) + 292: 141(int) IAdd 291 290 + Store 285(u) 292 + 293: 141(int) Load 285(u) + 294: 141(int) Load 288(uui) + 295: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 293 294 + 296: 141(int) Load 285(u) + 297: 141(int) IAdd 296 295 + Store 285(u) 297 + 298: 141(int) Load 285(u) + 299: 141(int) Load 288(uui) + 300: 141(int) Load 288(uui) + 301: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 298 299 300 + 302: 141(int) Load 285(u) + 303: 141(int) IAdd 302 301 + Store 285(u) 303 + 306: 6(float) Load 212(uf) + 307: 178(bool) IsNan 306 + Store 305(b) 307 + 308: 6(float) Load 188(f) + 309: 178(bool) IsInf 308 + Store 305(b) 309 + 310: 7(fvec4) Load 9(v) + 311: 7(fvec4) Load 11(uv4) + 312: 179(bvec4) FOrdLessThan 310 311 + 313: 178(bool) Any 312 + Store 305(b) 313 + 314: 178(bool) Load 305(b) + SelectionMerge 316 None + BranchConditional 314 315 316 + 315: Label + 317: 7(fvec4) Load 9(v) + 318: 7(fvec4) Load 11(uv4) + 319: 179(bvec4) FOrdLessThanEqual 317 318 + 320: 178(bool) Any 319 + Branch 316 + 316: Label + 321: 178(bool) Phi 314 5 320 315 + Store 305(b) 321 + 322: 178(bool) Load 305(b) + SelectionMerge 324 None + BranchConditional 322 323 324 + 323: Label + 325: 7(fvec4) Load 9(v) + 326: 7(fvec4) Load 11(uv4) + 327: 179(bvec4) FOrdGreaterThan 325 326 + 328: 178(bool) Any 327 + Branch 324 + 324: Label + 329: 178(bool) Phi 322 316 328 323 + Store 305(b) 329 + 330: 178(bool) Load 305(b) + SelectionMerge 332 None + BranchConditional 330 331 332 + 331: Label + 333: 7(fvec4) Load 9(v) + 334: 7(fvec4) Load 11(uv4) + 335: 179(bvec4) FOrdGreaterThanEqual 333 334 + 336: 178(bool) Any 335 + Branch 332 + 332: Label + 337: 178(bool) Phi 330 324 336 331 + Store 305(b) 337 + 338: 178(bool) Load 305(b) + SelectionMerge 340 None + BranchConditional 338 339 340 + 339: Label + 341: 179(bvec4) Load 181(ub41) + 343: 179(bvec4) Load 342(ub42) + 344: 179(bvec4) LogicalEqual 341 343 + 345: 178(bool) Any 344 + Branch 340 + 340: Label + 346: 178(bool) Phi 338 332 345 339 + Store 305(b) 346 + 347: 178(bool) Load 305(b) + SelectionMerge 349 None + BranchConditional 347 348 349 + 348: Label + 350: 179(bvec4) Load 181(ub41) + 351: 179(bvec4) Load 342(ub42) + 352: 179(bvec4) LogicalNotEqual 350 351 + 353: 178(bool) Any 352 + Branch 349 + 349: Label + 354: 178(bool) Phi 347 340 353 348 + Store 305(b) 354 + 355: 178(bool) Load 305(b) + 356: 179(bvec4) Load 181(ub41) + 357: 178(bool) Any 356 + 358: 178(bool) LogicalAnd 355 357 + Store 305(b) 358 + 359: 178(bool) Load 305(b) + 360: 179(bvec4) Load 181(ub41) + 361: 178(bool) All 360 + 362: 178(bool) LogicalAnd 359 361 + Store 305(b) 362 + 363: 178(bool) Load 305(b) + SelectionMerge 365 None + BranchConditional 363 364 365 + 364: Label + 366: 179(bvec4) Load 181(ub41) + 367: 179(bvec4) LogicalNot 366 + 368: 178(bool) Any 367 + Branch 365 + 365: Label + 369: 178(bool) Phi 363 349 368 364 + Store 305(b) 369 + 370: 18(int) Load 20(i) + 371: 18(int) Load 22(ui) + 372: 18(int) IAdd 370 371 + 373: 18(int) Load 20(i) + 374: 18(int) IMul 372 373 + 375: 18(int) Load 22(ui) + 376: 18(int) ISub 374 375 + 377: 18(int) Load 20(i) + 378: 18(int) SDiv 376 377 + Store 20(i) 378 + 379: 18(int) Load 20(i) + 380: 18(int) Load 22(ui) + 381: 18(int) SMod 379 380 + Store 20(i) 381 + 382: 18(int) Load 20(i) + 383: 18(int) Load 22(ui) + 384: 178(bool) IEqual 382 383 + 385: 178(bool) LogicalNot 384 + SelectionMerge 387 None + BranchConditional 385 386 387 + 386: Label + 388: 18(int) Load 20(i) + 389: 18(int) Load 22(ui) + 390: 178(bool) INotEqual 388 389 + SelectionMerge 392 None + BranchConditional 390 391 392 + 391: Label + 393: 18(int) Load 20(i) + 394: 18(int) Load 22(ui) + 395: 178(bool) IEqual 393 394 + Branch 392 + 392: Label + 396: 178(bool) Phi 390 386 395 391 + 397: 18(int) Load 20(i) + 399: 178(bool) INotEqual 397 398 + 400: 178(bool) LogicalNotEqual 396 399 + Branch 387 + 387: Label + 401: 178(bool) Phi 384 365 400 392 + SelectionMerge 403 None + BranchConditional 401 402 403 + 402: Label + 404: 18(int) Load 20(i) + 406: 18(int) IAdd 404 405 + Store 20(i) 406 + Branch 403 + 403: Label + 407: 6(float) Load 212(uf) + 408: 6(float) Load 212(uf) + 409: 6(float) FAdd 407 408 + 410: 6(float) Load 212(uf) + 411: 6(float) FMul 409 410 + 412: 6(float) Load 212(uf) + 413: 6(float) FSub 411 412 + 414: 6(float) Load 212(uf) + 415: 6(float) FDiv 413 414 + Store 188(f) 415 + 416: 7(fvec4) Load 9(v) + 417: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 416 + 418: 6(float) Load 188(f) + 419: 6(float) FAdd 418 417 + Store 188(f) 419 + 420: 7(fvec4) Load 9(v) + 421: 7(fvec4) Load 9(v) + 422: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 420 421 + 423: 6(float) Load 188(f) + 424: 6(float) FAdd 423 422 + Store 188(f) 424 + 425: 7(fvec4) Load 9(v) + 426: 7(fvec4) Load 9(v) + 427: 6(float) Dot 425 426 + 428: 6(float) Load 188(f) + 429: 6(float) FAdd 428 427 + Store 188(f) 429 + 430: 6(float) Load 188(f) + 431: 6(float) Load 212(uf) + 432: 6(float) FMul 430 431 + 433: 6(float) Load 188(f) + 434: 6(float) FAdd 433 432 + Store 188(f) 434 + 436: 7(fvec4) Load 9(v) + 437: 435(fvec3) VectorShuffle 436 436 0 1 2 + 438: 7(fvec4) Load 9(v) + 439: 435(fvec3) VectorShuffle 438 438 0 1 2 + 440: 435(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 437 439 + 441: 6(float) CompositeExtract 440 0 + 442: 6(float) Load 188(f) + 443: 6(float) FAdd 442 441 + Store 188(f) 443 + 444: 6(float) Load 188(f) + 445: 6(float) Load 212(uf) + 446: 178(bool) FOrdEqual 444 445 + 447: 178(bool) LogicalNot 446 + SelectionMerge 449 None + BranchConditional 447 448 449 + 448: Label + 450: 6(float) Load 188(f) + 451: 6(float) Load 212(uf) + 452: 178(bool) FOrdNotEqual 450 451 + 453: 6(float) Load 188(f) + 455: 178(bool) FOrdNotEqual 453 454 + 456: 178(bool) LogicalAnd 452 455 + Branch 449 + 449: Label + 457: 178(bool) Phi 446 403 456 448 + SelectionMerge 459 None + BranchConditional 457 458 459 + 458: Label + 460: 6(float) Load 188(f) + 462: 6(float) FAdd 460 461 + Store 188(f) 462 + Branch 459 + 459: Label + 463: 18(int) Load 22(ui) + 464: 18(int) Load 20(i) + 465: 18(int) BitwiseAnd 464 463 + Store 20(i) 465 + 467: 18(int) Load 20(i) + 468: 18(int) BitwiseOr 467 466 + Store 20(i) 468 + 469: 18(int) Load 22(ui) + 470: 18(int) Load 20(i) + 471: 18(int) BitwiseXor 470 469 + Store 20(i) 471 + 473: 18(int) Load 20(i) + 474: 18(int) SMod 473 472 + Store 20(i) 474 + 475: 18(int) Load 20(i) + 476: 18(int) ShiftRightArithmetic 475 398 + Store 20(i) 476 + 477: 18(int) Load 22(ui) + 478: 18(int) Load 20(i) + 479: 18(int) ShiftLeftLogical 478 477 + Store 20(i) 479 + 480: 18(int) Load 20(i) + 481: 18(int) Not 480 + Store 20(i) 481 + 482: 178(bool) Load 305(b) + 483: 178(bool) LogicalNot 482 + Store 305(b) 483 + 486: 178(bool) Load 305(b) + SelectionMerge 489 None + BranchConditional 486 488 498 + 488: Label + 490: 18(int) Load 20(i) + 491: 6(float) ConvertSToF 490 + 492: 7(fvec4) CompositeConstruct 491 491 491 491 + 493: 6(float) Load 188(f) + 494: 7(fvec4) CompositeConstruct 493 493 493 493 + 495: 7(fvec4) FAdd 492 494 + 496: 7(fvec4) Load 9(v) + 497: 7(fvec4) FAdd 495 496 + Store 487 497 + Branch 489 + 498: Label + 499: 7(fvec4) Load 9(v) + Store 487 499 + Branch 489 + 489: Label + 500: 7(fvec4) Load 487 + Store 485(FragColor) 500 + Store 503(m1) 509 + Store 510(m2) 512 + 513: 178(bool) Load 305(b) + SelectionMerge 516 None + BranchConditional 513 515 518 + 515: Label + 517: 501 Load 503(m1) + Store 514 517 + Branch 516 + 518: Label + 519: 501 Load 510(m2) + Store 514 519 + Branch 516 + 516: Label + 520: 8(ptr) AccessChain 514 405 + 521: 7(fvec4) Load 520 + 522: 7(fvec4) Load 485(FragColor) + 523: 7(fvec4) FAdd 522 521 + Store 485(FragColor) 523 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.accessChain.frag.out b/deps/glslang/glslang/Test/baseResults/spv.accessChain.frag.out new file mode 100644 index 0000000000..bf878292fa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.accessChain.frag.out @@ -0,0 +1,351 @@ +spv.accessChain.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 222 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 69 170 + ExecutionMode 4 OriginUpperLeft + Source GLSL 420 + Name 4 "main" + Name 8 "S" + MemberName 8(S) 0 "color" + Name 11 "GetColor1(struct-S-vf31;" + Name 10 "i" + Name 18 "GetColor2(struct-S-vf31;i1;" + Name 16 "i" + Name 17 "comp" + Name 22 "GetColor3(struct-S-vf31;i1;" + Name 20 "i" + Name 21 "comp" + Name 26 "GetColor4(struct-S-vf31;i1;" + Name 24 "i" + Name 25 "comp" + Name 30 "GetColor5(struct-S-vf31;i1;" + Name 28 "i" + Name 29 "comp" + Name 34 "GetColor6(struct-S-vf31;i1;" + Name 32 "i" + Name 33 "comp" + Name 38 "GetColor7(struct-S-vf31;i1;" + Name 36 "i" + Name 37 "comp" + Name 42 "GetColor8(struct-S-vf31;i1;" + Name 40 "i" + Name 41 "comp" + Name 46 "GetColor9(struct-S-vf31;i1;" + Name 44 "i" + Name 45 "comp" + Name 50 "GetColor10(struct-S-vf31;i1;" + Name 48 "i" + Name 49 "comp" + Name 54 "GetColor11(struct-S-vf31;i1;" + Name 52 "i" + Name 53 "comp" + Name 58 "GetColor12(struct-S-vf31;i1;" + Name 56 "i" + Name 57 "comp" + Name 62 "GetColor13(struct-S-vf31;i1;" + Name 60 "i" + Name 61 "comp" + Name 66 "GetColor14(struct-S-vf31;i1;" + Name 64 "i" + Name 65 "comp" + Name 69 "OutColor" + Name 165 "s" + Name 170 "u" + Name 171 "param" + Name 175 "param" + Name 179 "param" + Name 183 "param" + Name 187 "param" + Name 191 "param" + Name 195 "param" + Name 199 "param" + Name 203 "param" + Name 207 "param" + Name 211 "param" + Name 215 "param" + Name 219 "param" + Decorate 69(OutColor) Location 0 + Decorate 170(u) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(S): TypeStruct 7(fvec3) + 9: TypeFunction 2 8(S) + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 15: TypeFunction 2 8(S) 14(ptr) + 68: TypePointer Output 7(fvec3) + 69(OutColor): 68(ptr) Variable Output + 70: 13(int) Constant 0 + 71: TypeInt 32 0 + 72: 71(int) Constant 0 + 99: TypeVector 6(float) 2 + 113: 71(int) Constant 2 + 140: TypePointer Output 6(float) + 147: 71(int) Constant 1 + 148: TypeVector 71(int) 2 + 149: 148(ivec2) ConstantComposite 113 147 + 158: TypeVector 71(int) 3 + 159: 158(ivec3) ConstantComposite 113 147 72 + 162: 6(float) Constant 0 + 163: 7(fvec3) ConstantComposite 162 162 162 + 164: TypePointer Function 8(S) + 169: TypePointer Input 13(int) + 170(u): 169(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 165(s): 164(ptr) Variable Function + 171(param): 14(ptr) Variable Function + 175(param): 14(ptr) Variable Function + 179(param): 14(ptr) Variable Function + 183(param): 14(ptr) Variable Function + 187(param): 14(ptr) Variable Function + 191(param): 14(ptr) Variable Function + 195(param): 14(ptr) Variable Function + 199(param): 14(ptr) Variable Function + 203(param): 14(ptr) Variable Function + 207(param): 14(ptr) Variable Function + 211(param): 14(ptr) Variable Function + 215(param): 14(ptr) Variable Function + 219(param): 14(ptr) Variable Function + Store 69(OutColor) 163 + 166: 8(S) Load 165(s) + 167: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 166 + 168: 8(S) Load 165(s) + 172: 13(int) Load 170(u) + Store 171(param) 172 + 173: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 168 171(param) + 174: 8(S) Load 165(s) + 176: 13(int) Load 170(u) + Store 175(param) 176 + 177: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 174 175(param) + 178: 8(S) Load 165(s) + 180: 13(int) Load 170(u) + Store 179(param) 180 + 181: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 178 179(param) + 182: 8(S) Load 165(s) + 184: 13(int) Load 170(u) + Store 183(param) 184 + 185: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 182 183(param) + 186: 8(S) Load 165(s) + 188: 13(int) Load 170(u) + Store 187(param) 188 + 189: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 186 187(param) + 190: 8(S) Load 165(s) + 192: 13(int) Load 170(u) + Store 191(param) 192 + 193: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 190 191(param) + 194: 8(S) Load 165(s) + 196: 13(int) Load 170(u) + Store 195(param) 196 + 197: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 194 195(param) + 198: 8(S) Load 165(s) + 200: 13(int) Load 170(u) + Store 199(param) 200 + 201: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 198 199(param) + 202: 8(S) Load 165(s) + 204: 13(int) Load 170(u) + Store 203(param) 204 + 205: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 202 203(param) + 206: 8(S) Load 165(s) + 208: 13(int) Load 170(u) + Store 207(param) 208 + 209: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 206 207(param) + 210: 8(S) Load 165(s) + 212: 13(int) Load 170(u) + Store 211(param) 212 + 213: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 210 211(param) + 214: 8(S) Load 165(s) + 216: 13(int) Load 170(u) + Store 215(param) 216 + 217: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 214 215(param) + 218: 8(S) Load 165(s) + 220: 13(int) Load 170(u) + Store 219(param) 220 + 221: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 218 219(param) + Return + FunctionEnd +11(GetColor1(struct-S-vf31;): 2 Function None 9 + 10(i): 8(S) FunctionParameter + 12: Label + 73: 6(float) CompositeExtract 10(i) 0 0 + 74: 7(fvec3) Load 69(OutColor) + 75: 7(fvec3) CompositeConstruct 73 73 73 + 76: 7(fvec3) FAdd 74 75 + Store 69(OutColor) 76 + Return + FunctionEnd +18(GetColor2(struct-S-vf31;i1;): 2 Function None 15 + 16(i): 8(S) FunctionParameter + 17(comp): 14(ptr) FunctionParameter + 19: Label + 77: 13(int) Load 17(comp) + 78: 7(fvec3) CompositeExtract 16(i) 0 + 79: 6(float) VectorExtractDynamic 78 77 + 80: 7(fvec3) Load 69(OutColor) + 81: 7(fvec3) CompositeConstruct 79 79 79 + 82: 7(fvec3) FAdd 80 81 + Store 69(OutColor) 82 + Return + FunctionEnd +22(GetColor3(struct-S-vf31;i1;): 2 Function None 15 + 20(i): 8(S) FunctionParameter + 21(comp): 14(ptr) FunctionParameter + 23: Label + 83: 13(int) Load 21(comp) + 84: 7(fvec3) CompositeExtract 20(i) 0 + 85: 6(float) VectorExtractDynamic 84 83 + 86: 7(fvec3) Load 69(OutColor) + 87: 7(fvec3) CompositeConstruct 85 85 85 + 88: 7(fvec3) FAdd 86 87 + Store 69(OutColor) 88 + Return + FunctionEnd +26(GetColor4(struct-S-vf31;i1;): 2 Function None 15 + 24(i): 8(S) FunctionParameter + 25(comp): 14(ptr) FunctionParameter + 27: Label + 89: 13(int) Load 25(comp) + 90: 7(fvec3) CompositeExtract 24(i) 0 + 91: 6(float) VectorExtractDynamic 90 89 + 92: 7(fvec3) Load 69(OutColor) + 93: 7(fvec3) CompositeConstruct 91 91 91 + 94: 7(fvec3) FAdd 92 93 + Store 69(OutColor) 94 + Return + FunctionEnd +30(GetColor5(struct-S-vf31;i1;): 2 Function None 15 + 28(i): 8(S) FunctionParameter + 29(comp): 14(ptr) FunctionParameter + 31: Label + 95: 7(fvec3) CompositeExtract 28(i) 0 + 96: 7(fvec3) Load 69(OutColor) + 97: 7(fvec3) FAdd 96 95 + Store 69(OutColor) 97 + Return + FunctionEnd +34(GetColor6(struct-S-vf31;i1;): 2 Function None 15 + 32(i): 8(S) FunctionParameter + 33(comp): 14(ptr) FunctionParameter + 35: Label + 98: 13(int) Load 33(comp) + 100: 7(fvec3) CompositeExtract 32(i) 0 + 101: 99(fvec2) VectorShuffle 100 100 1 0 + 102: 6(float) VectorExtractDynamic 101 98 + 103: 7(fvec3) Load 69(OutColor) + 104: 7(fvec3) CompositeConstruct 102 102 102 + 105: 7(fvec3) FAdd 103 104 + Store 69(OutColor) 105 + Return + FunctionEnd +38(GetColor7(struct-S-vf31;i1;): 2 Function None 15 + 36(i): 8(S) FunctionParameter + 37(comp): 14(ptr) FunctionParameter + 39: Label + 106: 7(fvec3) CompositeExtract 36(i) 0 + 107: 99(fvec2) VectorShuffle 106 106 0 1 + 108: 7(fvec3) Load 69(OutColor) + 109: 99(fvec2) VectorShuffle 108 108 0 1 + 110: 99(fvec2) FAdd 109 107 + 111: 7(fvec3) Load 69(OutColor) + 112: 7(fvec3) VectorShuffle 111 110 3 4 2 + Store 69(OutColor) 112 + Return + FunctionEnd +42(GetColor8(struct-S-vf31;i1;): 2 Function None 15 + 40(i): 8(S) FunctionParameter + 41(comp): 14(ptr) FunctionParameter + 43: Label + 114: 6(float) CompositeExtract 40(i) 0 2 + 115: 7(fvec3) Load 69(OutColor) + 116: 7(fvec3) CompositeConstruct 114 114 114 + 117: 7(fvec3) FAdd 115 116 + Store 69(OutColor) 117 + Return + FunctionEnd +46(GetColor9(struct-S-vf31;i1;): 2 Function None 15 + 44(i): 8(S) FunctionParameter + 45(comp): 14(ptr) FunctionParameter + 47: Label + 118: 7(fvec3) CompositeExtract 44(i) 0 + 119: 7(fvec3) Load 69(OutColor) + 120: 7(fvec3) VectorShuffle 119 119 2 0 1 + 121: 7(fvec3) FAdd 120 118 + 122: 7(fvec3) Load 69(OutColor) + 123: 7(fvec3) VectorShuffle 122 121 4 5 3 + Store 69(OutColor) 123 + Return + FunctionEnd +50(GetColor10(struct-S-vf31;i1;): 2 Function None 15 + 48(i): 8(S) FunctionParameter + 49(comp): 14(ptr) FunctionParameter + 51: Label + 124: 7(fvec3) CompositeExtract 48(i) 0 + 125: 99(fvec2) VectorShuffle 124 124 0 1 + 126: 7(fvec3) Load 69(OutColor) + 127: 99(fvec2) VectorShuffle 126 126 2 1 + 128: 99(fvec2) FAdd 127 125 + 129: 7(fvec3) Load 69(OutColor) + 130: 7(fvec3) VectorShuffle 129 128 0 4 3 + Store 69(OutColor) 130 + Return + FunctionEnd +54(GetColor11(struct-S-vf31;i1;): 2 Function None 15 + 52(i): 8(S) FunctionParameter + 53(comp): 14(ptr) FunctionParameter + 55: Label + 131: 7(fvec3) CompositeExtract 52(i) 0 + 132: 99(fvec2) VectorShuffle 131 131 0 1 + 133: 7(fvec3) Load 69(OutColor) + 134: 99(fvec2) VectorShuffle 133 133 0 2 + 135: 99(fvec2) FAdd 134 132 + 136: 7(fvec3) Load 69(OutColor) + 137: 7(fvec3) VectorShuffle 136 135 3 1 4 + Store 69(OutColor) 137 + Return + FunctionEnd +58(GetColor12(struct-S-vf31;i1;): 2 Function None 15 + 56(i): 8(S) FunctionParameter + 57(comp): 14(ptr) FunctionParameter + 59: Label + 138: 13(int) Load 57(comp) + 139: 6(float) CompositeExtract 56(i) 0 0 + 141: 140(ptr) AccessChain 69(OutColor) 138 + 142: 6(float) Load 141 + 143: 6(float) FAdd 142 139 + 144: 140(ptr) AccessChain 69(OutColor) 138 + Store 144 143 + Return + FunctionEnd +62(GetColor13(struct-S-vf31;i1;): 2 Function None 15 + 60(i): 8(S) FunctionParameter + 61(comp): 14(ptr) FunctionParameter + 63: Label + 145: 13(int) Load 61(comp) + 146: 6(float) CompositeExtract 60(i) 0 0 + 150: 71(int) VectorExtractDynamic 149 145 + 151: 140(ptr) AccessChain 69(OutColor) 150 + 152: 6(float) Load 151 + 153: 6(float) FAdd 152 146 + 154: 71(int) VectorExtractDynamic 149 145 + 155: 140(ptr) AccessChain 69(OutColor) 154 + Store 155 153 + Return + FunctionEnd +66(GetColor14(struct-S-vf31;i1;): 2 Function None 15 + 64(i): 8(S) FunctionParameter + 65(comp): 14(ptr) FunctionParameter + 67: Label + 156: 13(int) Load 65(comp) + 157: 6(float) CompositeExtract 64(i) 0 0 + 160: 71(int) VectorExtractDynamic 159 156 + 161: 140(ptr) AccessChain 69(OutColor) 160 + Store 161 157 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.aggOps.frag.out b/deps/glslang/glslang/Test/baseResults/spv.aggOps.frag.out new file mode 100644 index 0000000000..1c0c7e91c4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.aggOps.frag.out @@ -0,0 +1,312 @@ +spv.aggOps.frag +WARNING: 0:4: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 215 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 16 41 101 213 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 8 "s1" + MemberName 8(s1) 0 "i" + MemberName 8(s1) 1 "f" + Name 13 "a" + Name 16 "u" + Name 37 "b" + Name 41 "w" + Name 55 "s1" + MemberName 55(s1) 0 "i" + MemberName 55(s1) 1 "f" + Name 56 "s2" + MemberName 56(s2) 0 "i" + MemberName 56(s2) 1 "f" + MemberName 56(s2) 2 "s1_1" + Name 57 "ub1" + MemberName 57(ub1) 0 "foo2a" + Name 59 "uName1" + Name 64 "s1" + MemberName 64(s1) 0 "i" + MemberName 64(s1) 1 "f" + Name 65 "s2" + MemberName 65(s2) 0 "i" + MemberName 65(s2) 1 "f" + MemberName 65(s2) 2 "s1_1" + Name 66 "ub2" + MemberName 66(ub2) 0 "foo2b" + Name 68 "uName2" + Name 93 "v" + Name 97 "samp2D" + Name 101 "coord" + Name 213 "color" + MemberDecorate 55(s1) 0 Offset 0 + MemberDecorate 55(s1) 1 Offset 4 + MemberDecorate 56(s2) 0 Offset 0 + MemberDecorate 56(s2) 1 Offset 4 + MemberDecorate 56(s2) 2 Offset 16 + MemberDecorate 57(ub1) 0 Offset 0 + Decorate 57(ub1) Block + Decorate 59(uName1) DescriptorSet 0 + MemberDecorate 64(s1) 0 Offset 0 + MemberDecorate 64(s1) 1 Offset 4 + MemberDecorate 65(s2) 0 Offset 0 + MemberDecorate 65(s2) 1 Offset 4 + MemberDecorate 65(s2) 2 Offset 8 + MemberDecorate 66(ub2) 0 Offset 0 + Decorate 66(ub2) BufferBlock + Decorate 68(uName2) DescriptorSet 0 + Decorate 97(samp2D) DescriptorSet 0 + Decorate 101(coord) RelaxedPrecision + Decorate 102 RelaxedPrecision + Decorate 107 RelaxedPrecision + Decorate 108 RelaxedPrecision + Decorate 129 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(s1): TypeStruct 6(int) 7(float) + 9: TypeInt 32 0 + 10: 9(int) Constant 3 + 11: TypeArray 8(s1) 10 + 12: TypePointer Function 11 + 14: TypeVector 7(float) 4 + 15: TypePointer Input 14(fvec4) + 16(u): 15(ptr) Variable Input + 17: 9(int) Constant 0 + 18: TypePointer Input 7(float) + 22: 9(int) Constant 1 + 26: 9(int) Constant 2 + 33: 6(int) Constant 14 + 34: 7(float) Constant 1096810496 + 35: 8(s1) ConstantComposite 33 34 + 38: 6(int) Constant 17 + 39: 7(float) Constant 1099431936 + 40: 8(s1) ConstantComposite 38 39 + 41(w): 15(ptr) Variable Input + 55(s1): TypeStruct 6(int) 7(float) + 56(s2): TypeStruct 6(int) 7(float) 55(s1) + 57(ub1): TypeStruct 56(s2) + 58: TypePointer Uniform 57(ub1) + 59(uName1): 58(ptr) Variable Uniform + 60: 6(int) Constant 0 + 61: TypePointer Uniform 56(s2) + 64(s1): TypeStruct 6(int) 7(float) + 65(s2): TypeStruct 6(int) 7(float) 64(s1) + 66(ub2): TypeStruct 65(s2) + 67: TypePointer Uniform 66(ub2) + 68(uName2): 67(ptr) Variable Uniform + 69: TypePointer Uniform 65(s2) + 72: TypeBool + 92: TypePointer Function 14(fvec4) + 94: TypeImage 7(float) 2D sampled format:Unknown + 95: TypeSampledImage 94 + 96: TypePointer UniformConstant 95 + 97(samp2D): 96(ptr) Variable UniformConstant + 99: TypeVector 7(float) 2 + 100: TypePointer Input 99(fvec2) + 101(coord): 100(ptr) Variable Input + 106: 7(float) Constant 1073741824 + 112: TypeVector 72(bool) 4 + 117: 7(float) Constant 1077936128 + 126: 7(float) Constant 1082130432 + 132: TypeVector 72(bool) 2 + 137: 7(float) Constant 1084227584 + 173: 7(float) Constant 1086324736 + 209: 7(float) Constant 1088421888 + 212: TypePointer Output 14(fvec4) + 213(color): 212(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 13(a): 12(ptr) Variable Function + 37(b): 12(ptr) Variable Function + 93(v): 92(ptr) Variable Function + 19: 18(ptr) AccessChain 16(u) 17 + 20: 7(float) Load 19 + 21: 6(int) ConvertFToS 20 + 23: 18(ptr) AccessChain 16(u) 22 + 24: 7(float) Load 23 + 25: 8(s1) CompositeConstruct 21 24 + 27: 18(ptr) AccessChain 16(u) 26 + 28: 7(float) Load 27 + 29: 6(int) ConvertFToS 28 + 30: 18(ptr) AccessChain 16(u) 10 + 31: 7(float) Load 30 + 32: 8(s1) CompositeConstruct 29 31 + 36: 11 CompositeConstruct 25 32 35 + Store 13(a) 36 + 42: 18(ptr) AccessChain 41(w) 17 + 43: 7(float) Load 42 + 44: 6(int) ConvertFToS 43 + 45: 18(ptr) AccessChain 41(w) 22 + 46: 7(float) Load 45 + 47: 8(s1) CompositeConstruct 44 46 + 48: 18(ptr) AccessChain 41(w) 26 + 49: 7(float) Load 48 + 50: 6(int) ConvertFToS 49 + 51: 18(ptr) AccessChain 41(w) 10 + 52: 7(float) Load 51 + 53: 8(s1) CompositeConstruct 50 52 + 54: 11 CompositeConstruct 40 47 53 + Store 37(b) 54 + 62: 61(ptr) AccessChain 59(uName1) 60 + 63: 56(s2) Load 62 + 70: 69(ptr) AccessChain 68(uName2) 60 + 71: 65(s2) Load 70 + 73: 6(int) CompositeExtract 63 0 + 74: 6(int) CompositeExtract 71 0 + 75: 72(bool) IEqual 73 74 + 76: 7(float) CompositeExtract 63 1 + 77: 7(float) CompositeExtract 71 1 + 78: 72(bool) FOrdEqual 76 77 + 79: 72(bool) LogicalAnd 75 78 + 80: 55(s1) CompositeExtract 63 2 + 81: 64(s1) CompositeExtract 71 2 + 82: 6(int) CompositeExtract 80 0 + 83: 6(int) CompositeExtract 81 0 + 84: 72(bool) IEqual 82 83 + 85: 7(float) CompositeExtract 80 1 + 86: 7(float) CompositeExtract 81 1 + 87: 72(bool) FOrdEqual 85 86 + 88: 72(bool) LogicalAnd 84 87 + 89: 72(bool) LogicalAnd 79 88 + SelectionMerge 91 None + BranchConditional 89 90 104 + 90: Label + 98: 95 Load 97(samp2D) + 102: 99(fvec2) Load 101(coord) + 103: 14(fvec4) ImageSampleImplicitLod 98 102 + Store 93(v) 103 + Branch 91 + 104: Label + 105: 95 Load 97(samp2D) + 107: 99(fvec2) Load 101(coord) + 108: 99(fvec2) VectorTimesScalar 107 106 + 109: 14(fvec4) ImageSampleImplicitLod 105 108 + Store 93(v) 109 + Branch 91 + 91: Label + 110: 14(fvec4) Load 16(u) + 111: 14(fvec4) Load 93(v) + 113: 112(bvec4) FOrdEqual 110 111 + 114: 72(bool) All 113 + SelectionMerge 116 None + BranchConditional 114 115 116 + 115: Label + 118: 14(fvec4) Load 93(v) + 119: 14(fvec4) VectorTimesScalar 118 117 + Store 93(v) 119 + Branch 116 + 116: Label + 120: 14(fvec4) Load 16(u) + 121: 14(fvec4) Load 93(v) + 122: 112(bvec4) FOrdNotEqual 120 121 + 123: 72(bool) Any 122 + SelectionMerge 125 None + BranchConditional 123 124 125 + 124: Label + 127: 14(fvec4) Load 93(v) + 128: 14(fvec4) VectorTimesScalar 127 126 + Store 93(v) 128 + Branch 125 + 125: Label + 129: 99(fvec2) Load 101(coord) + 130: 14(fvec4) Load 93(v) + 131: 99(fvec2) VectorShuffle 130 130 1 3 + 133: 132(bvec2) FOrdEqual 129 131 + 134: 72(bool) All 133 + SelectionMerge 136 None + BranchConditional 134 135 136 + 135: Label + 138: 14(fvec4) Load 93(v) + 139: 14(fvec4) VectorTimesScalar 138 137 + Store 93(v) 139 + Branch 136 + 136: Label + 140: 11 Load 13(a) + 141: 11 Load 37(b) + 142: 8(s1) CompositeExtract 140 0 + 143: 8(s1) CompositeExtract 141 0 + 144: 6(int) CompositeExtract 142 0 + 145: 6(int) CompositeExtract 143 0 + 146: 72(bool) IEqual 144 145 + 147: 7(float) CompositeExtract 142 1 + 148: 7(float) CompositeExtract 143 1 + 149: 72(bool) FOrdEqual 147 148 + 150: 72(bool) LogicalAnd 146 149 + 151: 8(s1) CompositeExtract 140 1 + 152: 8(s1) CompositeExtract 141 1 + 153: 6(int) CompositeExtract 151 0 + 154: 6(int) CompositeExtract 152 0 + 155: 72(bool) IEqual 153 154 + 156: 7(float) CompositeExtract 151 1 + 157: 7(float) CompositeExtract 152 1 + 158: 72(bool) FOrdEqual 156 157 + 159: 72(bool) LogicalAnd 155 158 + 160: 72(bool) LogicalAnd 150 159 + 161: 8(s1) CompositeExtract 140 2 + 162: 8(s1) CompositeExtract 141 2 + 163: 6(int) CompositeExtract 161 0 + 164: 6(int) CompositeExtract 162 0 + 165: 72(bool) IEqual 163 164 + 166: 7(float) CompositeExtract 161 1 + 167: 7(float) CompositeExtract 162 1 + 168: 72(bool) FOrdEqual 166 167 + 169: 72(bool) LogicalAnd 165 168 + 170: 72(bool) LogicalAnd 160 169 + SelectionMerge 172 None + BranchConditional 170 171 172 + 171: Label + 174: 14(fvec4) Load 93(v) + 175: 14(fvec4) VectorTimesScalar 174 173 + Store 93(v) 175 + Branch 172 + 172: Label + 176: 11 Load 13(a) + 177: 11 Load 37(b) + 178: 8(s1) CompositeExtract 176 0 + 179: 8(s1) CompositeExtract 177 0 + 180: 6(int) CompositeExtract 178 0 + 181: 6(int) CompositeExtract 179 0 + 182: 72(bool) INotEqual 180 181 + 183: 7(float) CompositeExtract 178 1 + 184: 7(float) CompositeExtract 179 1 + 185: 72(bool) FOrdNotEqual 183 184 + 186: 72(bool) LogicalOr 182 185 + 187: 8(s1) CompositeExtract 176 1 + 188: 8(s1) CompositeExtract 177 1 + 189: 6(int) CompositeExtract 187 0 + 190: 6(int) CompositeExtract 188 0 + 191: 72(bool) INotEqual 189 190 + 192: 7(float) CompositeExtract 187 1 + 193: 7(float) CompositeExtract 188 1 + 194: 72(bool) FOrdNotEqual 192 193 + 195: 72(bool) LogicalOr 191 194 + 196: 72(bool) LogicalOr 186 195 + 197: 8(s1) CompositeExtract 176 2 + 198: 8(s1) CompositeExtract 177 2 + 199: 6(int) CompositeExtract 197 0 + 200: 6(int) CompositeExtract 198 0 + 201: 72(bool) INotEqual 199 200 + 202: 7(float) CompositeExtract 197 1 + 203: 7(float) CompositeExtract 198 1 + 204: 72(bool) FOrdNotEqual 202 203 + 205: 72(bool) LogicalOr 201 204 + 206: 72(bool) LogicalOr 196 205 + SelectionMerge 208 None + BranchConditional 206 207 208 + 207: Label + 210: 14(fvec4) Load 93(v) + 211: 14(fvec4) VectorTimesScalar 210 209 + Store 93(v) 211 + Branch 208 + 208: Label + 214: 14(fvec4) Load 93(v) + Store 213(color) 214 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out b/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out new file mode 100644 index 0000000000..8074cf8264 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.always-discard.frag.out @@ -0,0 +1,110 @@ +spv.always-discard.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 84 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 21 59 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "white" + Name 12 "black" + Name 15 "color" + Name 18 "x" + Name 21 "tex_coord" + Name 30 "y" + Name 36 "radius" + Name 59 "gl_FragColor" + Decorate 59(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: 6(float) Constant 1045220557 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 17: TypePointer Function 6(float) + 19: TypeVector 6(float) 2 + 20: TypePointer Input 19(fvec2) + 21(tex_coord): 20(ptr) Variable Input + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 24: TypePointer Input 6(float) + 27: 6(float) Constant 1073741824 + 31: 22(int) Constant 1 + 46: TypeBool + 51: 6(float) Constant 1066192077 + 58: TypePointer Output 7(fvec4) +59(gl_FragColor): 58(ptr) Variable Output + 62: 6(float) Constant 1067030938 + 71: 6(float) Constant 1061158912 + 76: 6(float) Constant 1098907648 + 4(main): 2 Function None 3 + 5: Label + 9(white): 8(ptr) Variable Function + 12(black): 8(ptr) Variable Function + 15(color): 8(ptr) Variable Function + 18(x): 17(ptr) Variable Function + 30(y): 17(ptr) Variable Function + 36(radius): 17(ptr) Variable Function + Store 9(white) 11 + Store 12(black) 14 + 16: 7(fvec4) Load 9(white) + Store 15(color) 16 + 25: 24(ptr) AccessChain 21(tex_coord) 23 + 26: 6(float) Load 25 + 28: 6(float) FMul 26 27 + 29: 6(float) FSub 28 10 + Store 18(x) 29 + 32: 24(ptr) AccessChain 21(tex_coord) 31 + 33: 6(float) Load 32 + 34: 6(float) FMul 33 27 + 35: 6(float) FSub 34 10 + Store 30(y) 35 + 37: 6(float) Load 18(x) + 38: 6(float) Load 18(x) + 39: 6(float) FMul 37 38 + 40: 6(float) Load 30(y) + 41: 6(float) Load 30(y) + 42: 6(float) FMul 40 41 + 43: 6(float) FAdd 39 42 + 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43 + Store 36(radius) 44 + 45: 6(float) Load 36(radius) + 47: 46(bool) FOrdGreaterThan 45 10 + SelectionMerge 49 None + BranchConditional 47 48 49 + 48: Label + 50: 6(float) Load 36(radius) + 52: 46(bool) FOrdGreaterThan 50 51 + SelectionMerge 54 None + BranchConditional 52 53 54 + 53: Label + 55: 7(fvec4) Load 15(color) + 56: 7(fvec4) CompositeConstruct 10 10 10 10 + 57: 7(fvec4) FAdd 55 56 + Store 15(color) 57 + Branch 54 + 54: Label + 60: 7(fvec4) Load 15(color) + Store 59(gl_FragColor) 60 + 61: 6(float) Load 36(radius) + 63: 46(bool) FOrdGreaterThan 61 62 + SelectionMerge 65 None + BranchConditional 63 64 65 + 64: Label + 66: 7(fvec4) Load 15(color) + 67: 7(fvec4) CompositeConstruct 10 10 10 10 + 68: 7(fvec4) FAdd 66 67 + Store 15(color) 68 + Branch 65 + 65: Label + Branch 49 + 49: Label + Kill + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out b/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out new file mode 100644 index 0000000000..e3fa43a394 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.always-discard2.frag.out @@ -0,0 +1,63 @@ +spv.always-discard2.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 40 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 21 38 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "white" + Name 12 "black" + Name 15 "color" + Name 18 "x" + Name 21 "tex_coord" + Name 30 "y" + Name 38 "gl_FragColor" + Decorate 38(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: 6(float) Constant 1045220557 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 17: TypePointer Function 6(float) + 19: TypeVector 6(float) 2 + 20: TypePointer Input 19(fvec2) + 21(tex_coord): 20(ptr) Variable Input + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 24: TypePointer Input 6(float) + 27: 6(float) Constant 1073741824 + 31: 22(int) Constant 1 + 37: TypePointer Output 7(fvec4) +38(gl_FragColor): 37(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(white): 8(ptr) Variable Function + 12(black): 8(ptr) Variable Function + 15(color): 8(ptr) Variable Function + 18(x): 17(ptr) Variable Function + 30(y): 17(ptr) Variable Function + Store 9(white) 11 + Store 12(black) 14 + 16: 7(fvec4) Load 9(white) + Store 15(color) 16 + 25: 24(ptr) AccessChain 21(tex_coord) 23 + 26: 6(float) Load 25 + 28: 6(float) FMul 26 27 + 29: 6(float) FSub 28 10 + Store 18(x) 29 + 32: 24(ptr) AccessChain 21(tex_coord) 31 + 33: 6(float) Load 32 + 34: 6(float) FMul 33 27 + 35: 6(float) FSub 34 10 + Store 30(y) 35 + Kill + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out b/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out new file mode 100644 index 0000000000..f41c012123 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out @@ -0,0 +1,42 @@ +spv.arbPostDepthCoverage.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 18 + + Capability Shader + Capability SampleMaskPostDepthCoverage + Extension "SPV_KHR_post_depth_coverage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 13 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 EarlyFragmentTests + ExecutionMode 4 PostDepthCoverage + Source GLSL 450 + SourceExtension "GL_ARB_post_depth_coverage" + SourceExtension "GL_EXT_post_depth_coverage" + Name 4 "main" + Name 8 "readSampleMaskIn" + Name 13 "gl_SampleMaskIn" + Decorate 8(readSampleMaskIn) Location 0 + Decorate 13(gl_SampleMaskIn) Flat + Decorate 13(gl_SampleMaskIn) BuiltIn SampleMask + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Output 6(int) +8(readSampleMaskIn): 7(ptr) Variable Output + 9: TypeInt 32 0 + 10: 9(int) Constant 1 + 11: TypeArray 6(int) 10 + 12: TypePointer Input 11 +13(gl_SampleMaskIn): 12(ptr) Variable Input + 14: 6(int) Constant 0 + 15: TypePointer Input 6(int) + 4(main): 2 Function None 3 + 5: Label + 16: 15(ptr) AccessChain 13(gl_SampleMaskIn) 14 + 17: 6(int) Load 16 + Store 8(readSampleMaskIn) 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out b/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out new file mode 100644 index 0000000000..b210144da2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out @@ -0,0 +1,7 @@ +spv.arbPostDepthCoverage_Error.frag +ERROR: 0:7: 'early_fragment_tests' : can only apply to a standalone qualifier +ERROR: 0:7: 'post_depth_coverage' : can only apply to a standalone qualifier +ERROR: 2 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out new file mode 100644 index 0000000000..3dd88f398a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.atomic.comp.out @@ -0,0 +1,128 @@ +spv.atomic.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 74 + + 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 37 "origi" + Name 39 "atomi" + Name 42 "origu" + Name 44 "atomu" + Name 45 "value" + Name 62 "dataSSB" + MemberName 62(dataSSB) 0 "f" + MemberName 62(dataSSB) 1 "n_frames_rendered" + Name 64 "result" + Name 71 "arrX" + Name 72 "arrY" + Name 73 "arrZ" + Decorate 20(counter) Offset 0 + Decorate 20(counter) Binding 0 + Decorate 27(countArr) Offset 4 + Decorate 27(countArr) Binding 0 + MemberDecorate 62(dataSSB) 0 Restrict + MemberDecorate 62(dataSSB) 0 Offset 0 + MemberDecorate 62(dataSSB) 1 Restrict + MemberDecorate 62(dataSSB) 1 Offset 16 + Decorate 62(dataSSB) BufferBlock + Decorate 64(result) DescriptorSet 0 + Decorate 64(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 1032 + 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 + 33: 28(int) Constant 1 + 36: TypePointer Function 28(int) + 38: TypePointer Workgroup 28(int) + 39(atomi): 38(ptr) Variable Workgroup + 40: 28(int) Constant 3 + 43: TypePointer Workgroup 6(int) + 44(atomu): 43(ptr) Variable Workgroup + 45(value): 43(ptr) Variable Workgroup + 48: 6(int) Constant 7 + 53: 28(int) Constant 7 + 57: 6(int) Constant 10 + 60: TypeFloat 32 + 61: TypeVector 28(int) 4 + 62(dataSSB): TypeStruct 60(float) 61(ivec4) + 63: TypePointer Uniform 62(dataSSB) + 64(result): 63(ptr) Variable Uniform + 65: 6(int) Constant 2 + 66: TypePointer Uniform 28(int) + 69: TypeArray 28(int) 14 + 70: TypePointer Private 69 + 71(arrX): 70(ptr) Variable Private + 72(arrY): 70(ptr) Variable Private + 73(arrZ): 70(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 + 34: 6(int) ISub 32 33 + 35: 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 + 37(origi): 36(ptr) Variable Function + 42(origu): 22(ptr) Variable Function + 41: 28(int) AtomicIAdd 39(atomi) 14 15 40 + Store 37(origi) 41 + 46: 6(int) Load 45(value) + 47: 6(int) AtomicAnd 44(atomu) 14 15 46 + Store 42(origu) 47 + 49: 6(int) AtomicOr 44(atomu) 14 15 48 + Store 42(origu) 49 + 50: 6(int) AtomicXor 44(atomu) 14 15 48 + Store 42(origu) 50 + 51: 6(int) Load 45(value) + 52: 6(int) AtomicUMin 44(atomu) 14 15 51 + Store 42(origu) 52 + 54: 28(int) AtomicSMax 39(atomi) 14 15 53 + Store 37(origi) 54 + 55: 28(int) Load 37(origi) + 56: 28(int) AtomicExchange 39(atomi) 14 15 55 + Store 37(origi) 56 + 58: 6(int) Load 45(value) + 59: 6(int) AtomicCompareExchange 44(atomu) 14 15 15 58 57 + Store 42(origu) 59 + 67: 66(ptr) AccessChain 64(result) 33 65 + 68: 28(int) AtomicIAdd 67 14 15 33 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.atomicInt64.comp.out b/deps/glslang/glslang/Test/baseResults/spv.atomicInt64.comp.out new file mode 100644 index 0000000000..9c66aecc85 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.atomicInt64.comp.out @@ -0,0 +1,215 @@ +spv.atomicInt64.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 149 + + Capability Shader + Capability Int64 + Capability Int64Atomics + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 16 16 1 + Source GLSL 450 + SourceExtension "GL_ARB_gpu_shader_int64" + SourceExtension "GL_NV_shader_atomic_int64" + Name 4 "main" + Name 8 "i64" + Name 12 "u64" + Name 14 "Buffer" + MemberName 14(Buffer) 0 "i64" + MemberName 14(Buffer) 1 "u64" + Name 16 "buf" + Name 84 "Struct" + MemberName 84(Struct) 0 "i64" + MemberName 84(Struct) 1 "u64" + Name 86 "s" + MemberDecorate 14(Buffer) 0 Offset 0 + MemberDecorate 14(Buffer) 1 Offset 8 + Decorate 14(Buffer) BufferBlock + Decorate 16(buf) DescriptorSet 0 + Decorate 16(buf) Binding 0 + Decorate 148 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 64 1 + 7: TypePointer Function 6(int64_t) + 9: 6(int64_t) Constant 0 0 + 10: TypeInt 64 0 + 11: TypePointer Function 10(int64_t) + 13: 10(int64_t) Constant 0 0 + 14(Buffer): TypeStruct 6(int64_t) 10(int64_t) + 15: TypePointer Uniform 14(Buffer) + 16(buf): 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 6(int64_t) + 21: 6(int64_t) Constant 4294967272 4294967295 + 22: TypeInt 32 0 + 23: 22(int) Constant 1 + 24: 22(int) Constant 0 + 28: 17(int) Constant 1 + 29: TypePointer Uniform 10(int64_t) + 31: 10(int64_t) Constant 15 240 + 84(Struct): TypeStruct 6(int64_t) 10(int64_t) + 85: TypePointer Workgroup 84(Struct) + 86(s): 85(ptr) Variable Workgroup + 87: TypePointer Workgroup 6(int64_t) + 92: TypePointer Workgroup 10(int64_t) + 146: TypeVector 22(int) 3 + 147: 22(int) Constant 16 + 148: 146(ivec3) ConstantComposite 147 147 23 + 4(main): 2 Function None 3 + 5: Label + 8(i64): 7(ptr) Variable Function + 12(u64): 11(ptr) Variable Function + Store 8(i64) 9 + Store 12(u64) 13 + 20: 19(ptr) AccessChain 16(buf) 18 + 25: 6(int64_t) AtomicSMin 20 23 24 21 + 26: 6(int64_t) Load 8(i64) + 27: 6(int64_t) IAdd 26 25 + Store 8(i64) 27 + 30: 29(ptr) AccessChain 16(buf) 28 + 32: 10(int64_t) AtomicUMin 30 23 24 31 + 33: 10(int64_t) Load 12(u64) + 34: 10(int64_t) IAdd 33 32 + Store 12(u64) 34 + 35: 19(ptr) AccessChain 16(buf) 18 + 36: 6(int64_t) AtomicSMax 35 23 24 21 + 37: 6(int64_t) Load 8(i64) + 38: 6(int64_t) IAdd 37 36 + Store 8(i64) 38 + 39: 29(ptr) AccessChain 16(buf) 28 + 40: 10(int64_t) AtomicUMax 39 23 24 31 + 41: 10(int64_t) Load 12(u64) + 42: 10(int64_t) IAdd 41 40 + Store 12(u64) 42 + 43: 19(ptr) AccessChain 16(buf) 18 + 44: 6(int64_t) AtomicAnd 43 23 24 21 + 45: 6(int64_t) Load 8(i64) + 46: 6(int64_t) IAdd 45 44 + Store 8(i64) 46 + 47: 29(ptr) AccessChain 16(buf) 28 + 48: 10(int64_t) AtomicAnd 47 23 24 31 + 49: 10(int64_t) Load 12(u64) + 50: 10(int64_t) IAdd 49 48 + Store 12(u64) 50 + 51: 19(ptr) AccessChain 16(buf) 18 + 52: 6(int64_t) AtomicOr 51 23 24 21 + 53: 6(int64_t) Load 8(i64) + 54: 6(int64_t) IAdd 53 52 + Store 8(i64) 54 + 55: 29(ptr) AccessChain 16(buf) 28 + 56: 10(int64_t) AtomicOr 55 23 24 31 + 57: 10(int64_t) Load 12(u64) + 58: 10(int64_t) IAdd 57 56 + Store 12(u64) 58 + 59: 19(ptr) AccessChain 16(buf) 18 + 60: 6(int64_t) AtomicXor 59 23 24 21 + 61: 6(int64_t) Load 8(i64) + 62: 6(int64_t) IAdd 61 60 + Store 8(i64) 62 + 63: 29(ptr) AccessChain 16(buf) 28 + 64: 10(int64_t) AtomicXor 63 23 24 31 + 65: 10(int64_t) Load 12(u64) + 66: 10(int64_t) IAdd 65 64 + Store 12(u64) 66 + 67: 19(ptr) AccessChain 16(buf) 18 + 68: 6(int64_t) AtomicIAdd 67 23 24 21 + 69: 6(int64_t) Load 8(i64) + 70: 6(int64_t) IAdd 69 68 + Store 8(i64) 70 + 71: 19(ptr) AccessChain 16(buf) 18 + 72: 6(int64_t) AtomicExchange 71 23 24 21 + 73: 6(int64_t) Load 8(i64) + 74: 6(int64_t) IAdd 73 72 + Store 8(i64) 74 + 75: 19(ptr) AccessChain 16(buf) 18 + 76: 6(int64_t) Load 8(i64) + 77: 6(int64_t) AtomicCompareExchange 75 23 24 24 76 21 + 78: 6(int64_t) Load 8(i64) + 79: 6(int64_t) IAdd 78 77 + Store 8(i64) 79 + 80: 6(int64_t) Load 8(i64) + 81: 19(ptr) AccessChain 16(buf) 18 + Store 81 80 + 82: 10(int64_t) Load 12(u64) + 83: 29(ptr) AccessChain 16(buf) 28 + Store 83 82 + Store 8(i64) 9 + Store 12(u64) 13 + 88: 87(ptr) AccessChain 86(s) 18 + 89: 6(int64_t) AtomicSMin 88 23 24 21 + 90: 6(int64_t) Load 8(i64) + 91: 6(int64_t) IAdd 90 89 + Store 8(i64) 91 + 93: 92(ptr) AccessChain 86(s) 28 + 94: 10(int64_t) AtomicUMin 93 23 24 31 + 95: 10(int64_t) Load 12(u64) + 96: 10(int64_t) IAdd 95 94 + Store 12(u64) 96 + 97: 87(ptr) AccessChain 86(s) 18 + 98: 6(int64_t) AtomicSMax 97 23 24 21 + 99: 6(int64_t) Load 8(i64) + 100: 6(int64_t) IAdd 99 98 + Store 8(i64) 100 + 101: 92(ptr) AccessChain 86(s) 28 + 102: 10(int64_t) AtomicUMax 101 23 24 31 + 103: 10(int64_t) Load 12(u64) + 104: 10(int64_t) IAdd 103 102 + Store 12(u64) 104 + 105: 87(ptr) AccessChain 86(s) 18 + 106: 6(int64_t) AtomicAnd 105 23 24 21 + 107: 6(int64_t) Load 8(i64) + 108: 6(int64_t) IAdd 107 106 + Store 8(i64) 108 + 109: 92(ptr) AccessChain 86(s) 28 + 110: 10(int64_t) AtomicAnd 109 23 24 31 + 111: 10(int64_t) Load 12(u64) + 112: 10(int64_t) IAdd 111 110 + Store 12(u64) 112 + 113: 87(ptr) AccessChain 86(s) 18 + 114: 6(int64_t) AtomicOr 113 23 24 21 + 115: 6(int64_t) Load 8(i64) + 116: 6(int64_t) IAdd 115 114 + Store 8(i64) 116 + 117: 92(ptr) AccessChain 86(s) 28 + 118: 10(int64_t) AtomicOr 117 23 24 31 + 119: 10(int64_t) Load 12(u64) + 120: 10(int64_t) IAdd 119 118 + Store 12(u64) 120 + 121: 87(ptr) AccessChain 86(s) 18 + 122: 6(int64_t) AtomicXor 121 23 24 21 + 123: 6(int64_t) Load 8(i64) + 124: 6(int64_t) IAdd 123 122 + Store 8(i64) 124 + 125: 92(ptr) AccessChain 86(s) 28 + 126: 10(int64_t) AtomicXor 125 23 24 31 + 127: 10(int64_t) Load 12(u64) + 128: 10(int64_t) IAdd 127 126 + Store 12(u64) 128 + 129: 87(ptr) AccessChain 86(s) 18 + 130: 6(int64_t) AtomicIAdd 129 23 24 21 + 131: 6(int64_t) Load 8(i64) + 132: 6(int64_t) IAdd 131 130 + Store 8(i64) 132 + 133: 87(ptr) AccessChain 86(s) 18 + 134: 6(int64_t) AtomicExchange 133 23 24 21 + 135: 6(int64_t) Load 8(i64) + 136: 6(int64_t) IAdd 135 134 + Store 8(i64) 136 + 137: 87(ptr) AccessChain 86(s) 18 + 138: 6(int64_t) Load 8(i64) + 139: 6(int64_t) AtomicCompareExchange 137 23 24 24 138 21 + 140: 6(int64_t) Load 8(i64) + 141: 6(int64_t) IAdd 140 139 + Store 8(i64) 141 + 142: 6(int64_t) Load 8(i64) + 143: 87(ptr) AccessChain 86(s) 18 + Store 143 142 + 144: 10(int64_t) Load 12(u64) + 145: 92(ptr) AccessChain 86(s) 28 + Store 145 144 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.barrier.vert.out b/deps/glslang/glslang/Test/baseResults/spv.barrier.vert.out new file mode 100644 index 0000000000..b9369f2791 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.barrier.vert.out @@ -0,0 +1,46 @@ +spv.barrier.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 15 + Source GLSL 450 + Name 4 "main" + Name 9 "c0" + Name 15 "c1" + Decorate 9(c0) Location 0 + Decorate 15(c1) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(c0): 8(ptr) Variable Output + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 12: TypeInt 32 0 + 13: 12(int) Constant 1 + 14: 12(int) Constant 3400 + 15(c1): 8(ptr) Variable Output + 16: 12(int) Constant 72 + 20: 12(int) Constant 2056 + 4(main): 2 Function None 3 + 5: Label + Store 9(c0) 11 + MemoryBarrier 13 14 + Store 15(c1) 11 + MemoryBarrier 13 16 + 17: 7(fvec4) Load 9(c0) + 18: 7(fvec4) CompositeConstruct 10 10 10 10 + 19: 7(fvec4) FAdd 17 18 + Store 9(c0) 19 + MemoryBarrier 13 20 + 21: 7(fvec4) Load 9(c0) + 22: 7(fvec4) CompositeConstruct 10 10 10 10 + 23: 7(fvec4) FAdd 21 22 + Store 9(c0) 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out b/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out new file mode 100644 index 0000000000..a687b8da2e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.bitCast.frag.out @@ -0,0 +1,234 @@ +spv.bitCast.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 172 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "idata" + Name 14 "f1" + Name 26 "f2" + Name 37 "f3" + Name 48 "f4" + Name 55 "udata" + Name 85 "fdata" + Name 89 "i1" + Name 98 "i2" + Name 107 "i3" + Name 116 "i4" + Name 122 "u1" + Name 130 "u2" + Name 139 "u3" + Name 148 "u4" + Name 154 "fragColor" + Decorate 89(i1) Flat + Decorate 98(i2) Flat + Decorate 107(i3) Flat + Decorate 116(i4) Flat + Decorate 122(u1) Flat + Decorate 130(u2) Flat + Decorate 139(u3) Flat + Decorate 148(u4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 10: 6(int) Constant 0 + 11: 7(ivec4) ConstantComposite 10 10 10 10 + 12: TypeFloat 32 + 13: TypePointer Input 12(float) + 14(f1): 13(ptr) Variable Input + 17: TypeInt 32 0 + 18: 17(int) Constant 0 + 19: TypePointer Function 6(int) + 24: TypeVector 12(float) 2 + 25: TypePointer Input 24(fvec2) + 26(f2): 25(ptr) Variable Input + 28: TypeVector 6(int) 2 + 35: TypeVector 12(float) 3 + 36: TypePointer Input 35(fvec3) + 37(f3): 36(ptr) Variable Input + 39: TypeVector 6(int) 3 + 46: TypeVector 12(float) 4 + 47: TypePointer Input 46(fvec4) + 48(f4): 47(ptr) Variable Input + 53: TypeVector 17(int) 4 + 54: TypePointer Function 53(ivec4) + 56: 53(ivec4) ConstantComposite 18 18 18 18 + 59: TypePointer Function 17(int) + 65: TypeVector 17(int) 2 + 73: TypeVector 17(int) 3 + 84: TypePointer Function 46(fvec4) + 86: 12(float) Constant 0 + 87: 46(fvec4) ConstantComposite 86 86 86 86 + 88: TypePointer Input 6(int) + 89(i1): 88(ptr) Variable Input + 92: TypePointer Function 12(float) + 97: TypePointer Input 28(ivec2) + 98(i2): 97(ptr) Variable Input + 106: TypePointer Input 39(ivec3) + 107(i3): 106(ptr) Variable Input + 115: TypePointer Input 7(ivec4) + 116(i4): 115(ptr) Variable Input + 121: TypePointer Input 17(int) + 122(u1): 121(ptr) Variable Input + 129: TypePointer Input 65(ivec2) + 130(u2): 129(ptr) Variable Input + 138: TypePointer Input 73(ivec3) + 139(u3): 138(ptr) Variable Input + 147: TypePointer Input 53(ivec4) + 148(u4): 147(ptr) Variable Input + 153: TypePointer Output 46(fvec4) + 154(fragColor): 153(ptr) Variable Output + 158: TypeBool + 159: TypeVector 158(bool) 4 + 168: 12(float) Constant 1045220557 + 169: 46(fvec4) ConstantComposite 168 168 168 168 + 4(main): 2 Function None 3 + 5: Label + 9(idata): 8(ptr) Variable Function + 55(udata): 54(ptr) Variable Function + 85(fdata): 84(ptr) Variable Function + 162: 84(ptr) Variable Function + Store 9(idata) 11 + 15: 12(float) Load 14(f1) + 16: 6(int) Bitcast 15 + 20: 19(ptr) AccessChain 9(idata) 18 + 21: 6(int) Load 20 + 22: 6(int) IAdd 21 16 + 23: 19(ptr) AccessChain 9(idata) 18 + Store 23 22 + 27: 24(fvec2) Load 26(f2) + 29: 28(ivec2) Bitcast 27 + 30: 7(ivec4) Load 9(idata) + 31: 28(ivec2) VectorShuffle 30 30 0 1 + 32: 28(ivec2) IAdd 31 29 + 33: 7(ivec4) Load 9(idata) + 34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 + Store 9(idata) 34 + 38: 35(fvec3) Load 37(f3) + 40: 39(ivec3) Bitcast 38 + 41: 7(ivec4) Load 9(idata) + 42: 39(ivec3) VectorShuffle 41 41 0 1 2 + 43: 39(ivec3) IAdd 42 40 + 44: 7(ivec4) Load 9(idata) + 45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 + Store 9(idata) 45 + 49: 46(fvec4) Load 48(f4) + 50: 7(ivec4) Bitcast 49 + 51: 7(ivec4) Load 9(idata) + 52: 7(ivec4) IAdd 51 50 + Store 9(idata) 52 + Store 55(udata) 56 + 57: 12(float) Load 14(f1) + 58: 17(int) Bitcast 57 + 60: 59(ptr) AccessChain 55(udata) 18 + 61: 17(int) Load 60 + 62: 17(int) IAdd 61 58 + 63: 59(ptr) AccessChain 55(udata) 18 + Store 63 62 + 64: 24(fvec2) Load 26(f2) + 66: 65(ivec2) Bitcast 64 + 67: 53(ivec4) Load 55(udata) + 68: 65(ivec2) VectorShuffle 67 67 0 1 + 69: 65(ivec2) IAdd 68 66 + 70: 53(ivec4) Load 55(udata) + 71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 + Store 55(udata) 71 + 72: 35(fvec3) Load 37(f3) + 74: 73(ivec3) Bitcast 72 + 75: 53(ivec4) Load 55(udata) + 76: 73(ivec3) VectorShuffle 75 75 0 1 2 + 77: 73(ivec3) IAdd 76 74 + 78: 53(ivec4) Load 55(udata) + 79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 + Store 55(udata) 79 + 80: 46(fvec4) Load 48(f4) + 81: 53(ivec4) Bitcast 80 + 82: 53(ivec4) Load 55(udata) + 83: 53(ivec4) IAdd 82 81 + Store 55(udata) 83 + Store 85(fdata) 87 + 90: 6(int) Load 89(i1) + 91: 12(float) Bitcast 90 + 93: 92(ptr) AccessChain 85(fdata) 18 + 94: 12(float) Load 93 + 95: 12(float) FAdd 94 91 + 96: 92(ptr) AccessChain 85(fdata) 18 + Store 96 95 + 99: 28(ivec2) Load 98(i2) + 100: 24(fvec2) Bitcast 99 + 101: 46(fvec4) Load 85(fdata) + 102: 24(fvec2) VectorShuffle 101 101 0 1 + 103: 24(fvec2) FAdd 102 100 + 104: 46(fvec4) Load 85(fdata) + 105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 + Store 85(fdata) 105 + 108: 39(ivec3) Load 107(i3) + 109: 35(fvec3) Bitcast 108 + 110: 46(fvec4) Load 85(fdata) + 111: 35(fvec3) VectorShuffle 110 110 0 1 2 + 112: 35(fvec3) FAdd 111 109 + 113: 46(fvec4) Load 85(fdata) + 114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 + Store 85(fdata) 114 + 117: 7(ivec4) Load 116(i4) + 118: 46(fvec4) Bitcast 117 + 119: 46(fvec4) Load 85(fdata) + 120: 46(fvec4) FAdd 119 118 + Store 85(fdata) 120 + 123: 17(int) Load 122(u1) + 124: 12(float) Bitcast 123 + 125: 92(ptr) AccessChain 85(fdata) 18 + 126: 12(float) Load 125 + 127: 12(float) FAdd 126 124 + 128: 92(ptr) AccessChain 85(fdata) 18 + Store 128 127 + 131: 65(ivec2) Load 130(u2) + 132: 24(fvec2) Bitcast 131 + 133: 46(fvec4) Load 85(fdata) + 134: 24(fvec2) VectorShuffle 133 133 0 1 + 135: 24(fvec2) FAdd 134 132 + 136: 46(fvec4) Load 85(fdata) + 137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 + Store 85(fdata) 137 + 140: 73(ivec3) Load 139(u3) + 141: 35(fvec3) Bitcast 140 + 142: 46(fvec4) Load 85(fdata) + 143: 35(fvec3) VectorShuffle 142 142 0 1 2 + 144: 35(fvec3) FAdd 143 141 + 145: 46(fvec4) Load 85(fdata) + 146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 + Store 85(fdata) 146 + 149: 53(ivec4) Load 148(u4) + 150: 46(fvec4) Bitcast 149 + 151: 46(fvec4) Load 85(fdata) + 152: 46(fvec4) FAdd 151 150 + Store 85(fdata) 152 + 155: 7(ivec4) Load 9(idata) + 156: 53(ivec4) Bitcast 155 + 157: 53(ivec4) Load 55(udata) + 160: 159(bvec4) IEqual 156 157 + 161: 158(bool) All 160 + SelectionMerge 164 None + BranchConditional 161 163 166 + 163: Label + 165: 46(fvec4) Load 85(fdata) + Store 162 165 + Branch 164 + 166: Label + 167: 46(fvec4) Load 85(fdata) + 170: 46(fvec4) FAdd 167 169 + Store 162 170 + Branch 164 + 164: Label + 171: 46(fvec4) Load 162 + Store 154(fragColor) 171 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.bool.vert.out b/deps/glslang/glslang/Test/baseResults/spv.bool.vert.out new file mode 100644 index 0000000000..becd707a0c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.bool.vert.out @@ -0,0 +1,79 @@ +spv.bool.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 46 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 24 + Source GLSL 450 + Name 4 "main" + Name 10 "foo(b1;" + Name 9 "b" + Name 22 "gl_PerVertex" + MemberName 22(gl_PerVertex) 0 "gl_Position" + MemberName 22(gl_PerVertex) 1 "gl_PointSize" + MemberName 22(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 22(gl_PerVertex) 3 "gl_CullDistance" + Name 24 "" + Name 27 "ubname" + MemberName 27(ubname) 0 "b" + Name 29 "ubinst" + Name 30 "param" + MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 22(gl_PerVertex) Block + MemberDecorate 27(ubname) 0 Offset 0 + Decorate 27(ubname) Block + Decorate 29(ubinst) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypePointer Function 6(bool) + 8: TypeFunction 6(bool) 7(ptr) + 13: 6(bool) ConstantFalse + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 0 + 20: 19(int) Constant 1 + 21: TypeArray 17(float) 20 +22(gl_PerVertex): TypeStruct 18(fvec4) 17(float) 21 21 + 23: TypePointer Output 22(gl_PerVertex) + 24: 23(ptr) Variable Output + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27(ubname): TypeStruct 19(int) + 28: TypePointer Uniform 27(ubname) + 29(ubinst): 28(ptr) Variable Uniform + 31: TypePointer Uniform 19(int) + 34: 19(int) Constant 0 + 37: 17(float) Constant 0 + 38: 18(fvec4) ConstantComposite 37 37 37 37 + 39: 17(float) Constant 1065353216 + 40: 18(fvec4) ConstantComposite 39 39 39 39 + 41: TypeVector 6(bool) 4 + 44: TypePointer Output 18(fvec4) + 4(main): 2 Function None 3 + 5: Label + 30(param): 7(ptr) Variable Function + 32: 31(ptr) AccessChain 29(ubinst) 26 + 33: 19(int) Load 32 + 35: 6(bool) INotEqual 33 34 + Store 30(param) 35 + 36: 6(bool) FunctionCall 10(foo(b1;) 30(param) + 42: 41(bvec4) CompositeConstruct 36 36 36 36 + 43: 18(fvec4) Select 42 38 40 + 45: 44(ptr) AccessChain 24 26 + Store 45 43 + Return + FunctionEnd + 10(foo(b1;): 6(bool) Function None 8 + 9(b): 7(ptr) FunctionParameter + 11: Label + 12: 6(bool) Load 9(b) + 14: 6(bool) LogicalNotEqual 12 13 + ReturnValue 14 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out b/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out new file mode 100644 index 0000000000..e86ca6b3f7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.boolInBlock.frag.out @@ -0,0 +1,158 @@ +spv.boolInBlock.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 102 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 14 "foo(vb4;vb2;" + Name 12 "paramb4" + Name 13 "paramb2" + Name 17 "b1" + Name 25 "Buffer" + MemberName 25(Buffer) 0 "b2" + Name 27 "" + Name 40 "Uniform" + MemberName 40(Uniform) 0 "b4" + Name 42 "" + Name 60 "param" + Name 66 "param" + Name 74 "fragColor" + MemberDecorate 25(Buffer) 0 Offset 0 + Decorate 25(Buffer) BufferBlock + Decorate 27 DescriptorSet 0 + Decorate 27 Binding 1 + MemberDecorate 40(Uniform) 0 Offset 0 + Decorate 40(Uniform) Block + Decorate 42 DescriptorSet 0 + Decorate 42 Binding 0 + Decorate 74(fragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeVector 6(bool) 4 + 8: TypePointer Function 7(bvec4) + 9: TypeVector 6(bool) 2 + 10: TypePointer Function 9(bvec2) + 11: TypeFunction 2 8(ptr) 10(ptr) + 16: TypePointer Function 6(bool) + 18: TypeInt 32 0 + 19: 18(int) Constant 2 + 24: TypeVector 18(int) 2 + 25(Buffer): TypeStruct 24(ivec2) + 26: TypePointer Uniform 25(Buffer) + 27: 26(ptr) Variable Uniform + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 30: 6(bool) ConstantFalse + 31: 9(bvec2) ConstantComposite 30 30 + 32: 18(int) Constant 1 + 33: 24(ivec2) ConstantComposite 32 32 + 34: 18(int) Constant 0 + 35: 24(ivec2) ConstantComposite 34 34 + 37: TypePointer Uniform 24(ivec2) + 39: TypeVector 18(int) 4 + 40(Uniform): TypeStruct 39(ivec4) + 41: TypePointer Uniform 40(Uniform) + 42: 41(ptr) Variable Uniform + 43: TypePointer Uniform 18(int) + 61: TypePointer Uniform 39(ivec4) + 64: 39(ivec4) ConstantComposite 34 34 34 34 + 71: TypeFloat 32 + 72: TypeVector 71(float) 4 + 73: TypePointer Output 72(fvec4) + 74(fragColor): 73(ptr) Variable Output + 84: 71(float) Constant 0 + 85: 71(float) Constant 1065353216 + 4(main): 2 Function None 3 + 5: Label + 60(param): 8(ptr) Variable Function + 66(param): 10(ptr) Variable Function + 36: 24(ivec2) Select 31 33 35 + 38: 37(ptr) AccessChain 27 29 + Store 38 36 + 44: 43(ptr) AccessChain 42 29 19 + 45: 18(int) Load 44 + 46: 6(bool) INotEqual 45 34 + SelectionMerge 48 None + BranchConditional 46 47 48 + 47: Label + 49: 43(ptr) AccessChain 42 29 34 + 50: 18(int) Load 49 + 51: 6(bool) INotEqual 50 34 + 52: 9(bvec2) CompositeConstruct 51 51 + 53: 24(ivec2) Select 52 33 35 + 54: 37(ptr) AccessChain 27 29 + Store 54 53 + Branch 48 + 48: Label + 55: 43(ptr) AccessChain 27 29 34 + 56: 18(int) Load 55 + 57: 6(bool) INotEqual 56 34 + SelectionMerge 59 None + BranchConditional 57 58 59 + 58: Label + 62: 61(ptr) AccessChain 42 29 + 63: 39(ivec4) Load 62 + 65: 7(bvec4) INotEqual 63 64 + Store 60(param) 65 + 67: 2 FunctionCall 14(foo(vb4;vb2;) 60(param) 66(param) + 68: 9(bvec2) Load 66(param) + 69: 24(ivec2) Select 68 33 35 + 70: 37(ptr) AccessChain 27 29 + Store 70 69 + Branch 59 + 59: Label + 75: 43(ptr) AccessChain 42 29 34 + 76: 18(int) Load 75 + 77: 6(bool) INotEqual 76 34 + SelectionMerge 79 None + BranchConditional 77 78 79 + 78: Label + 80: 43(ptr) AccessChain 42 29 32 + 81: 18(int) Load 80 + 82: 6(bool) INotEqual 81 34 + Branch 79 + 79: Label + 83: 6(bool) Phi 77 59 82 78 + 86: 71(float) Select 83 85 84 + 87: 72(fvec4) CompositeConstruct 86 86 86 86 + Store 74(fragColor) 87 + 88: 43(ptr) AccessChain 42 29 34 + 89: 18(int) Load 88 + 90: 6(bool) INotEqual 89 34 + 91: 6(bool) LogicalNot 90 + SelectionMerge 93 None + BranchConditional 91 92 93 + 92: Label + 94: 43(ptr) AccessChain 42 29 32 + 95: 18(int) Load 94 + 96: 6(bool) INotEqual 95 34 + Branch 93 + 93: Label + 97: 6(bool) Phi 90 79 96 92 + 98: 71(float) Select 97 85 84 + 99: 72(fvec4) CompositeConstruct 98 98 98 98 + 100: 72(fvec4) Load 74(fragColor) + 101: 72(fvec4) FSub 100 99 + Store 74(fragColor) 101 + Return + FunctionEnd +14(foo(vb4;vb2;): 2 Function None 11 + 12(paramb4): 8(ptr) FunctionParameter + 13(paramb2): 10(ptr) FunctionParameter + 15: Label + 17(b1): 16(ptr) Variable Function + 20: 16(ptr) AccessChain 12(paramb4) 19 + 21: 6(bool) Load 20 + Store 17(b1) 21 + 22: 6(bool) Load 17(b1) + 23: 9(bvec2) CompositeConstruct 22 22 + Store 13(paramb2) 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.branch-return.vert.out b/deps/glslang/glslang/Test/baseResults/spv.branch-return.vert.out new file mode 100644 index 0000000000..ca44724587 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.branch-return.vert.out @@ -0,0 +1,65 @@ +spv.branch-return.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 38 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 8 20 + Source ESSL 310 + Name 4 "main" + Name 8 "gl_InstanceIndex" + Name 18 "gl_PerVertex" + MemberName 18(gl_PerVertex) 0 "gl_Position" + MemberName 18(gl_PerVertex) 1 "gl_PointSize" + Name 20 "" + Decorate 8(gl_InstanceIndex) BuiltIn InstanceIndex + MemberDecorate 18(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 18(gl_PerVertex) 1 BuiltIn PointSize + Decorate 18(gl_PerVertex) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Input 6(int) +8(gl_InstanceIndex): 7(ptr) Variable Input + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 +18(gl_PerVertex): TypeStruct 17(fvec4) 16(float) + 19: TypePointer Output 18(gl_PerVertex) + 20: 19(ptr) Variable Output + 21: 6(int) Constant 0 + 22: 16(float) Constant 0 + 23: 17(fvec4) ConstantComposite 22 22 22 22 + 24: TypePointer Output 17(fvec4) + 30: 16(float) Constant 1039918957 + 31: TypeInt 32 0 + 32: 31(int) Constant 0 + 33: TypePointer Output 16(float) + 4(main): 2 Function None 3 + 5: Label + 9: 6(int) Load 8(gl_InstanceIndex) + SelectionMerge 14 None + Switch 9 14 + case 0: 10 + case 1: 11 + case 2: 12 + case 3: 13 + 10: Label + Return + 11: Label + 25: 24(ptr) AccessChain 20 21 + Store 25 23 + Branch 14 + 12: Label + Return + 13: Label + Return + 14: Label + 34: 33(ptr) AccessChain 20 21 32 + 35: 16(float) Load 34 + 36: 16(float) FAdd 35 30 + 37: 33(ptr) AccessChain 20 21 32 + Store 37 36 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out new file mode 100644 index 0000000000..507318f7a6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.buffer.autoassign.frag.out @@ -0,0 +1,93 @@ +spv.buffer.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 47 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 13 "psout" + Name 16 "MyUB1" + MemberName 16(MyUB1) 0 "g_a" + MemberName 16(MyUB1) 1 "g_b" + Name 18 "" + Name 28 "MyUB2" + MemberName 28(MyUB2) 0 "g_c" + Name 30 "" + Name 34 "MyUB3" + MemberName 34(MyUB3) 0 "g_d" + Name 36 "" + Name 47 "@entryPointOutput.Color" + MemberDecorate 16(MyUB1) 0 Offset 0 + MemberDecorate 16(MyUB1) 1 Offset 4 + Decorate 16(MyUB1) Block + Decorate 18 DescriptorSet 0 + Decorate 18 Binding 20 + MemberDecorate 28(MyUB2) 0 Offset 0 + Decorate 28(MyUB2) Block + Decorate 30 DescriptorSet 0 + Decorate 30 Binding 15 + MemberDecorate 34(MyUB3) 0 Offset 0 + Decorate 34(MyUB3) Block + Decorate 36 DescriptorSet 0 + Decorate 36 Binding 16 + Decorate 47(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 8(PS_OUTPUT) + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16(MyUB1): TypeStruct 6(float) 14(int) + 17: TypePointer Uniform 16(MyUB1) + 18: 17(ptr) Variable Uniform + 19: TypePointer Uniform 6(float) + 22: 14(int) Constant 1 + 23: TypePointer Uniform 14(int) + 28(MyUB2): TypeStruct 6(float) + 29: TypePointer Uniform 28(MyUB2) + 30: 29(ptr) Variable Uniform + 34(MyUB3): TypeStruct 6(float) + 35: TypePointer Uniform 34(MyUB3) + 36: 35(ptr) Variable Uniform + 41: TypePointer Function 7(fvec4) + 46: TypePointer Output 7(fvec4) +47(@entryPointOutput.Color): 46(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 48:8(PS_OUTPUT) FunctionCall 10(@main() + 49: 7(fvec4) CompositeExtract 48 0 + Store 47(@entryPointOutput.Color) 49 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(psout): 12(ptr) Variable Function + 20: 19(ptr) AccessChain 18 15 + 21: 6(float) Load 20 + 24: 23(ptr) AccessChain 18 22 + 25: 14(int) Load 24 + 26: 6(float) ConvertSToF 25 + 27: 6(float) FAdd 21 26 + 31: 19(ptr) AccessChain 30 15 + 32: 6(float) Load 31 + 33: 6(float) FAdd 27 32 + 37: 19(ptr) AccessChain 36 15 + 38: 6(float) Load 37 + 39: 6(float) FAdd 33 38 + 40: 7(fvec4) CompositeConstruct 39 39 39 39 + 42: 41(ptr) AccessChain 13(psout) 15 + Store 42 40 + 43:8(PS_OUTPUT) Load 13(psout) + ReturnValue 43 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.builtInXFB.vert.out b/deps/glslang/glslang/Test/baseResults/spv.builtInXFB.vert.out new file mode 100644 index 0000000000..556a698ca1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.builtInXFB.vert.out @@ -0,0 +1,47 @@ +spv.builtInXFB.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 21 + + Capability Shader + Capability TransformFeedback + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 + ExecutionMode 4 Xfb + Source GLSL 450 + Name 4 "main" + Name 8 "gl_PerVertex" + MemberName 8(gl_PerVertex) 0 "gl_Position" + MemberName 8(gl_PerVertex) 1 "gl_PointSize" + Name 10 "" + MemberDecorate 8(gl_PerVertex) 0 Offset 20 + MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 8(gl_PerVertex) 1 Offset 16 + MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize + Decorate 8(gl_PerVertex) Block + Decorate 10 XfbBuffer 1 + Decorate 10 XfbStride 64 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(gl_PerVertex): TypeStruct 7(fvec4) 6(float) + 9: TypePointer Output 8(gl_PerVertex) + 10: 9(ptr) Variable Output + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: 6(float) Constant 1065353216 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 15: TypePointer Output 7(fvec4) + 17: 11(int) Constant 1 + 18: 6(float) Constant 1073741824 + 19: TypePointer Output 6(float) + 4(main): 2 Function None 3 + 5: Label + 16: 15(ptr) AccessChain 10 12 + Store 16 14 + 20: 19(ptr) AccessChain 10 17 + Store 20 18 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out new file mode 100644 index 0000000000..f5e9e6fa00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.conditionalDiscard.frag.out @@ -0,0 +1,58 @@ +spv.conditionalDiscard.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 36 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 34 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 9 "v" + Name 13 "tex" + Name 17 "coord" + Name 34 "gl_FragColor" + Decorate 13(tex) DescriptorSet 0 + Decorate 34(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(tex): 12(ptr) Variable UniformConstant + 15: TypeVector 6(float) 2 + 16: TypePointer Input 15(fvec2) + 17(coord): 16(ptr) Variable Input + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 6(float) Constant 1053609165 + 25: 7(fvec4) ConstantComposite 21 22 23 24 + 26: TypeBool + 27: TypeVector 26(bool) 4 + 33: TypePointer Output 7(fvec4) +34(gl_FragColor): 33(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(v): 8(ptr) Variable Function + 14: 11 Load 13(tex) + 18: 15(fvec2) Load 17(coord) + 19: 7(fvec4) ImageSampleImplicitLod 14 18 + Store 9(v) 19 + 20: 7(fvec4) Load 9(v) + 28: 27(bvec4) FOrdEqual 20 25 + 29: 26(bool) All 28 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + Kill + 31: Label + 35: 7(fvec4) Load 9(v) + Store 34(gl_FragColor) 35 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.constStruct.vert.out b/deps/glslang/glslang/Test/baseResults/spv.constStruct.vert.out new file mode 100644 index 0000000000..d04f33d1b2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.constStruct.vert.out @@ -0,0 +1,45 @@ +spv.constStruct.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 23 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source GLSL 450 + Name 4 "main" + Name 9 "T" + MemberName 9(T) 0 "m" + Name 10 "U" + MemberName 10(U) 0 "m" + Name 11 "S" + MemberName 11(S) 0 "t" + MemberName 11(S) 1 "u" + Name 13 "s1" + Name 22 "s2" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeMatrix 7(fvec2) 2 + 9(T): TypeStruct 8 + 10(U): TypeStruct 8 + 11(S): TypeStruct 9(T) 10(U) + 12: TypePointer Function 11(S) + 14: 6(float) Constant 1065353216 + 15: 6(float) Constant 0 + 16: 7(fvec2) ConstantComposite 14 15 + 17: 7(fvec2) ConstantComposite 15 14 + 18: 8 ConstantComposite 16 17 + 19: 9(T) ConstantComposite 18 + 20: 10(U) ConstantComposite 18 + 21: 11(S) ConstantComposite 19 20 + 4(main): 2 Function None 3 + 5: Label + 13(s1): 12(ptr) Variable Function + 22(s2): 12(ptr) Variable Function + Store 13(s1) 21 + Store 22(s2) 21 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out b/deps/glslang/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out new file mode 100644 index 0000000000..eb253822ed --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out @@ -0,0 +1,238 @@ +spv.controlFlowAttributes.frag +WARNING: 0:20: '' : attribute with arguments not recognized, skipping +WARNING: 0:21: '' : attribute with arguments not recognized, skipping +WARNING: 0:22: '' : attribute with arguments not recognized, skipping +WARNING: 0:23: 'dependency_length' : expected a single integer argument +WARNING: 0:24: '' : attribute with arguments not recognized, skipping +WARNING: 0:25: '' : attribute with arguments not recognized, skipping +WARNING: 0:26: '' : attribute with arguments not recognized, skipping + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 118 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_control_flow_attributes" + Name 4 "main" + Name 8 "i" + Name 36 "i" + Name 47 "cond" + Name 60 "i" + Name 79 "i" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 8 + 17: TypeBool + 20: 6(int) Constant 1 + 31: 17(bool) ConstantTrue + 46: TypePointer Private 17(bool) + 47(cond): 46(ptr) Variable Private + 54: 17(bool) ConstantFalse + 55: 6(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 36(i): 7(ptr) Variable Function + 60(i): 7(ptr) Variable Function + 79(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 Unroll + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + Branch 13 + 13: Label + 19: 6(int) Load 8(i) + 21: 6(int) IAdd 19 20 + Store 8(i) 21 + Branch 10 + 12: Label + Branch 22 + 22: Label + LoopMerge 24 25 DontUnroll + Branch 23 + 23: Label + Branch 25 + 25: Label + Branch 22 + 24: Label + Branch 26 + 26: Label + LoopMerge 28 29 DontUnroll + Branch 30 + 30: Label + BranchConditional 31 27 28 + 27: Label + Branch 29 + 29: Label + Branch 26 + 28: Label + Branch 32 + 32: Label + LoopMerge 34 35 DependencyInfinite + Branch 33 + 33: Label + Branch 35 + 35: Label + BranchConditional 31 32 34 + 34: Label + Store 36(i) 9 + Branch 37 + 37: Label + LoopMerge 39 40 DependencyLength 4 + Branch 41 + 41: Label + 42: 6(int) Load 36(i) + 43: 17(bool) SLessThan 42 16 + BranchConditional 43 38 39 + 38: Label + Branch 40 + 40: Label + 44: 6(int) Load 36(i) + 45: 6(int) IAdd 44 20 + Store 36(i) 45 + Branch 37 + 39: Label + 48: 17(bool) Load 47(cond) + SelectionMerge 50 Flatten + BranchConditional 48 49 50 + 49: Label + Branch 50 + 50: Label + 51: 17(bool) Load 47(cond) + SelectionMerge 53 DontFlatten + BranchConditional 51 52 53 + 52: Label + Store 47(cond) 54 + Branch 53 + 53: Label + SelectionMerge 57 DontFlatten + Switch 55 57 + case 3: 56 + 56: Label + Branch 57 + 57: Label + Store 60(i) 9 + Branch 61 + 61: Label + LoopMerge 63 64 None + Branch 65 + 65: Label + 66: 6(int) Load 60(i) + 67: 17(bool) SLessThan 66 16 + BranchConditional 67 62 63 + 62: Label + Branch 64 + 64: Label + 68: 6(int) Load 60(i) + 69: 6(int) IAdd 68 20 + Store 60(i) 69 + Branch 61 + 63: Label + Branch 70 + 70: Label + LoopMerge 72 73 None + Branch 74 + 74: Label + BranchConditional 31 71 72 + 71: Label + Branch 73 + 73: Label + Branch 70 + 72: Label + Branch 75 + 75: Label + LoopMerge 77 78 None + Branch 76 + 76: Label + Branch 78 + 78: Label + BranchConditional 31 75 77 + 77: Label + Store 79(i) 9 + Branch 80 + 80: Label + LoopMerge 82 83 None + Branch 84 + 84: Label + 85: 6(int) Load 79(i) + 86: 17(bool) SLessThan 85 16 + BranchConditional 86 81 82 + 81: Label + Branch 83 + 83: Label + 87: 6(int) Load 79(i) + 88: 6(int) IAdd 87 20 + Store 79(i) 88 + Branch 80 + 82: Label + 89: 17(bool) Load 47(cond) + SelectionMerge 91 None + BranchConditional 89 90 91 + 90: Label + Branch 91 + 91: Label + 92: 17(bool) Load 47(cond) + SelectionMerge 94 None + BranchConditional 92 93 94 + 93: Label + Store 47(cond) 54 + Branch 94 + 94: Label + SelectionMerge 96 None + Switch 55 96 + case 3: 95 + 95: Label + Branch 96 + 96: Label + Branch 99 + 99: Label + LoopMerge 101 102 Unroll DontUnroll DependencyLength 2 + Branch 103 + 103: Label + 104: 17(bool) Load 47(cond) + BranchConditional 104 100 101 + 100: Label + Branch 102 + 102: Label + Branch 99 + 101: Label + SelectionMerge 106 DontFlatten + Switch 55 106 + case 3: 105 + 105: Label + Branch 106 + 106: Label + 109: 17(bool) Load 47(cond) + SelectionMerge 111 Flatten + BranchConditional 109 110 111 + 110: Label + Branch 111 + 111: Label + Branch 112 + 112: Label + LoopMerge 114 115 DependencyInfinite + Branch 116 + 116: Label + 117: 17(bool) Load 47(cond) + BranchConditional 117 113 114 + 113: Label + Branch 115 + 115: Label + Branch 112 + 114: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out b/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out new file mode 100644 index 0000000000..a3215324ba --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.conversion.frag.out @@ -0,0 +1,574 @@ +spv.conversion.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 455 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "b" + Name 11 "u_i" + Name 18 "u_f" + Name 25 "b2" + Name 33 "b3" + Name 39 "i_i" + Name 45 "b4" + Name 53 "i_f" + Name 58 "i" + Name 68 "i2" + Name 71 "u_f2" + Name 81 "i3" + Name 84 "u_f3" + Name 94 "i4" + Name 97 "u_f4" + Name 106 "f" + Name 110 "f2" + Name 114 "f3" + Name 118 "f4" + Name 157 "i_i4" + Name 322 "gl_FragColor" + Name 417 "cv2" + Name 418 "cv5" + Name 428 "u_b" + Name 430 "u_b2" + Name 432 "u_b3" + Name 434 "u_b4" + Name 436 "u_i2" + Name 438 "u_i3" + Name 440 "u_i4" + Name 441 "i_b" + Name 442 "i_b2" + Name 443 "i_b3" + Name 444 "i_b4" + Name 446 "i_i2" + Name 448 "i_i3" + Name 450 "i_f2" + Name 452 "i_f3" + Name 454 "i_f4" + Decorate 39(i_i) Flat + Decorate 157(i_i4) Flat + Decorate 322(gl_FragColor) Location 0 + Decorate 446(i_i2) Flat + Decorate 448(i_i3) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypePointer Function 6(bool) + 9: TypeInt 32 1 + 10: TypePointer Private 9(int) + 11(u_i): 10(ptr) Variable Private + 13: TypeInt 32 0 + 14: 13(int) Constant 0 + 16: TypeFloat 32 + 17: TypePointer Private 16(float) + 18(u_f): 17(ptr) Variable Private + 20: 16(float) Constant 0 + 23: TypeVector 6(bool) 2 + 24: TypePointer Function 23(bvec2) + 31: TypeVector 6(bool) 3 + 32: TypePointer Function 31(bvec3) + 38: TypePointer Input 9(int) + 39(i_i): 38(ptr) Variable Input + 43: TypeVector 6(bool) 4 + 44: TypePointer Function 43(bvec4) + 52: TypePointer Input 16(float) + 53(i_f): 52(ptr) Variable Input + 57: TypePointer Function 9(int) + 62: 9(int) Constant 0 + 63: 9(int) Constant 1 + 66: TypeVector 9(int) 2 + 67: TypePointer Function 66(ivec2) + 69: TypeVector 16(float) 2 + 70: TypePointer Private 69(fvec2) + 71(u_f2): 70(ptr) Variable Private + 75: 66(ivec2) ConstantComposite 62 62 + 76: 66(ivec2) ConstantComposite 63 63 + 79: TypeVector 9(int) 3 + 80: TypePointer Function 79(ivec3) + 82: TypeVector 16(float) 3 + 83: TypePointer Private 82(fvec3) + 84(u_f3): 83(ptr) Variable Private + 88: 79(ivec3) ConstantComposite 62 62 62 + 89: 79(ivec3) ConstantComposite 63 63 63 + 92: TypeVector 9(int) 4 + 93: TypePointer Function 92(ivec4) + 95: TypeVector 16(float) 4 + 96: TypePointer Private 95(fvec4) + 97(u_f4): 96(ptr) Variable Private + 101: 92(ivec4) ConstantComposite 62 62 62 62 + 102: 92(ivec4) ConstantComposite 63 63 63 63 + 105: TypePointer Function 16(float) + 109: TypePointer Function 69(fvec2) + 113: TypePointer Function 82(fvec3) + 117: TypePointer Function 95(fvec4) + 124: 16(float) Constant 1065353216 + 132: 69(fvec2) ConstantComposite 20 20 + 133: 69(fvec2) ConstantComposite 124 124 + 141: 82(fvec3) ConstantComposite 20 20 20 + 142: 82(fvec3) ConstantComposite 124 124 124 + 150: 95(fvec4) ConstantComposite 20 20 20 20 + 151: 95(fvec4) ConstantComposite 124 124 124 124 + 156: TypePointer Input 92(ivec4) + 157(i_i4): 156(ptr) Variable Input + 159: TypeVector 13(int) 4 + 160: 159(ivec4) ConstantComposite 14 14 14 14 + 315: 13(int) Constant 1 + 321: TypePointer Output 95(fvec4) +322(gl_FragColor): 321(ptr) Variable Output + 336: 13(int) Constant 2 + 349: 13(int) Constant 3 + 427: TypePointer Private 6(bool) + 428(u_b): 427(ptr) Variable Private + 429: TypePointer Private 23(bvec2) + 430(u_b2): 429(ptr) Variable Private + 431: TypePointer Private 31(bvec3) + 432(u_b3): 431(ptr) Variable Private + 433: TypePointer Private 43(bvec4) + 434(u_b4): 433(ptr) Variable Private + 435: TypePointer Private 66(ivec2) + 436(u_i2): 435(ptr) Variable Private + 437: TypePointer Private 79(ivec3) + 438(u_i3): 437(ptr) Variable Private + 439: TypePointer Private 92(ivec4) + 440(u_i4): 439(ptr) Variable Private + 441(i_b): 427(ptr) Variable Private + 442(i_b2): 429(ptr) Variable Private + 443(i_b3): 431(ptr) Variable Private + 444(i_b4): 433(ptr) Variable Private + 445: TypePointer Input 66(ivec2) + 446(i_i2): 445(ptr) Variable Input + 447: TypePointer Input 79(ivec3) + 448(i_i3): 447(ptr) Variable Input + 449: TypePointer Input 69(fvec2) + 450(i_f2): 449(ptr) Variable Input + 451: TypePointer Input 82(fvec3) + 452(i_f3): 451(ptr) Variable Input + 453: TypePointer Input 95(fvec4) + 454(i_f4): 453(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(b): 7(ptr) Variable Function + 25(b2): 24(ptr) Variable Function + 33(b3): 32(ptr) Variable Function + 45(b4): 44(ptr) Variable Function + 58(i): 57(ptr) Variable Function + 68(i2): 67(ptr) Variable Function + 81(i3): 80(ptr) Variable Function + 94(i4): 93(ptr) Variable Function + 106(f): 105(ptr) Variable Function + 110(f2): 109(ptr) Variable Function + 114(f3): 113(ptr) Variable Function + 118(f4): 117(ptr) Variable Function + 298: 105(ptr) Variable Function + 309: 105(ptr) Variable Function + 353: 117(ptr) Variable Function + 417(cv2): 93(ptr) Variable Function + 418(cv5): 44(ptr) Variable Function + 12: 9(int) Load 11(u_i) + 15: 6(bool) INotEqual 12 14 + 19: 16(float) Load 18(u_f) + 21: 6(bool) FOrdNotEqual 19 20 + 22: 6(bool) LogicalNotEqual 15 21 + Store 8(b) 22 + 26: 9(int) Load 11(u_i) + 27: 6(bool) INotEqual 26 14 + 28: 16(float) Load 18(u_f) + 29: 6(bool) FOrdNotEqual 28 20 + 30: 23(bvec2) CompositeConstruct 27 29 + Store 25(b2) 30 + 34: 9(int) Load 11(u_i) + 35: 6(bool) INotEqual 34 14 + 36: 16(float) Load 18(u_f) + 37: 6(bool) FOrdNotEqual 36 20 + 40: 9(int) Load 39(i_i) + 41: 6(bool) INotEqual 40 14 + 42: 31(bvec3) CompositeConstruct 35 37 41 + Store 33(b3) 42 + 46: 9(int) Load 11(u_i) + 47: 6(bool) INotEqual 46 14 + 48: 16(float) Load 18(u_f) + 49: 6(bool) FOrdNotEqual 48 20 + 50: 9(int) Load 39(i_i) + 51: 6(bool) INotEqual 50 14 + 54: 16(float) Load 53(i_f) + 55: 6(bool) FOrdNotEqual 54 20 + 56: 43(bvec4) CompositeConstruct 47 49 51 55 + Store 45(b4) 56 + 59: 16(float) Load 18(u_f) + 60: 9(int) ConvertFToS 59 + 61: 6(bool) Load 8(b) + 64: 9(int) Select 61 63 62 + 65: 9(int) IAdd 60 64 + Store 58(i) 65 + 72: 69(fvec2) Load 71(u_f2) + 73: 66(ivec2) ConvertFToS 72 + 74: 23(bvec2) Load 25(b2) + 77: 66(ivec2) Select 74 76 75 + 78: 66(ivec2) IAdd 73 77 + Store 68(i2) 78 + 85: 82(fvec3) Load 84(u_f3) + 86: 79(ivec3) ConvertFToS 85 + 87: 31(bvec3) Load 33(b3) + 90: 79(ivec3) Select 87 89 88 + 91: 79(ivec3) IAdd 86 90 + Store 81(i3) 91 + 98: 95(fvec4) Load 97(u_f4) + 99: 92(ivec4) ConvertFToS 98 + 100: 43(bvec4) Load 45(b4) + 103: 92(ivec4) Select 100 102 101 + 104: 92(ivec4) IAdd 99 103 + Store 94(i4) 104 + 107: 9(int) Load 58(i) + 108: 16(float) ConvertSToF 107 + Store 106(f) 108 + 111: 66(ivec2) Load 68(i2) + 112: 69(fvec2) ConvertSToF 111 + Store 110(f2) 112 + 115: 79(ivec3) Load 81(i3) + 116: 82(fvec3) ConvertSToF 115 + Store 114(f3) 116 + 119: 92(ivec4) Load 94(i4) + 120: 95(fvec4) ConvertSToF 119 + Store 118(f4) 120 + 121: 9(int) Load 58(i) + 122: 16(float) ConvertSToF 121 + 123: 6(bool) Load 8(b) + 125: 16(float) Select 123 124 20 + 126: 16(float) FAdd 122 125 + 127: 16(float) Load 106(f) + 128: 16(float) FAdd 127 126 + Store 106(f) 128 + 129: 66(ivec2) Load 68(i2) + 130: 69(fvec2) ConvertSToF 129 + 131: 23(bvec2) Load 25(b2) + 134: 69(fvec2) Select 131 133 132 + 135: 69(fvec2) FAdd 130 134 + 136: 69(fvec2) Load 110(f2) + 137: 69(fvec2) FSub 136 135 + Store 110(f2) 137 + 138: 79(ivec3) Load 81(i3) + 139: 82(fvec3) ConvertSToF 138 + 140: 31(bvec3) Load 33(b3) + 143: 82(fvec3) Select 140 142 141 + 144: 82(fvec3) FAdd 139 143 + 145: 82(fvec3) Load 114(f3) + 146: 82(fvec3) FDiv 145 144 + Store 114(f3) 146 + 147: 92(ivec4) Load 94(i4) + 148: 95(fvec4) ConvertSToF 147 + 149: 43(bvec4) Load 45(b4) + 152: 95(fvec4) Select 149 151 150 + 153: 95(fvec4) FAdd 148 152 + 154: 95(fvec4) Load 118(f4) + 155: 95(fvec4) FAdd 154 153 + Store 118(f4) 155 + 158: 92(ivec4) Load 157(i_i4) + 161: 43(bvec4) INotEqual 158 160 + 162: 95(fvec4) Select 161 151 150 + 163: 95(fvec4) Load 118(f4) + 164: 95(fvec4) FAdd 163 162 + Store 118(f4) 164 + 165: 95(fvec4) Load 97(u_f4) + 166: 43(bvec4) FOrdNotEqual 165 150 + 167: 95(fvec4) Select 166 151 150 + 168: 95(fvec4) Load 118(f4) + 169: 95(fvec4) FAdd 168 167 + Store 118(f4) 169 + 170: 16(float) Load 106(f) + 171: 9(int) Load 58(i) + 172: 16(float) ConvertSToF 171 + 173: 16(float) FSub 170 172 + 174: 16(float) Load 106(f) + 175: 16(float) FAdd 174 173 + Store 106(f) 175 + 176: 16(float) Load 106(f) + 177: 9(int) Load 58(i) + 178: 16(float) ConvertSToF 177 + 179: 69(fvec2) CompositeConstruct 176 178 + 180: 66(ivec2) Load 68(i2) + 181: 69(fvec2) ConvertSToF 180 + 182: 69(fvec2) FAdd 179 181 + 183: 69(fvec2) Load 110(f2) + 184: 69(fvec2) FAdd 183 182 + Store 110(f2) 184 + 185: 79(ivec3) Load 81(i3) + 186: 82(fvec3) ConvertSToF 185 + 187: 16(float) Load 106(f) + 188: 9(int) Load 58(i) + 189: 16(float) ConvertSToF 188 + 190: 16(float) Load 106(f) + 191: 82(fvec3) CompositeConstruct 187 189 190 + 192: 82(fvec3) FAdd 186 191 + 193: 82(fvec3) Load 114(f3) + 194: 82(fvec3) FAdd 193 192 + Store 114(f3) 194 + 195: 6(bool) Load 8(b) + 196: 16(float) Select 195 124 20 + 197: 9(int) Load 58(i) + 198: 16(float) ConvertSToF 197 + 199: 16(float) Load 106(f) + 200: 9(int) Load 58(i) + 201: 16(float) ConvertSToF 200 + 202: 95(fvec4) CompositeConstruct 196 198 199 201 + 203: 92(ivec4) Load 94(i4) + 204: 95(fvec4) ConvertSToF 203 + 205: 95(fvec4) FAdd 202 204 + 206: 95(fvec4) Load 118(f4) + 207: 95(fvec4) FAdd 206 205 + Store 118(f4) 207 + 208: 16(float) Load 106(f) + 209: 9(int) Load 58(i) + 210: 16(float) ConvertSToF 209 + 211: 69(fvec2) CompositeConstruct 208 210 + 212: 9(int) Load 58(i) + 213: 16(float) ConvertSToF 212 + 214: 69(fvec2) VectorTimesScalar 211 213 + 215: 69(fvec2) Load 110(f2) + 216: 69(fvec2) FAdd 215 214 + Store 110(f2) 216 + 217: 16(float) Load 106(f) + 218: 9(int) Load 58(i) + 219: 16(float) ConvertSToF 218 + 220: 16(float) Load 106(f) + 221: 82(fvec3) CompositeConstruct 217 219 220 + 222: 9(int) Load 58(i) + 223: 16(float) ConvertSToF 222 + 224: 82(fvec3) CompositeConstruct 223 223 223 + 225: 82(fvec3) FAdd 221 224 + 226: 82(fvec3) Load 114(f3) + 227: 82(fvec3) FAdd 226 225 + Store 114(f3) 227 + 228: 9(int) Load 58(i) + 229: 16(float) ConvertSToF 228 + 230: 6(bool) Load 8(b) + 231: 16(float) Select 230 124 20 + 232: 9(int) Load 58(i) + 233: 16(float) ConvertSToF 232 + 234: 16(float) Load 106(f) + 235: 9(int) Load 58(i) + 236: 16(float) ConvertSToF 235 + 237: 95(fvec4) CompositeConstruct 231 233 234 236 + 238: 95(fvec4) CompositeConstruct 229 229 229 229 + 239: 95(fvec4) FSub 238 237 + 240: 95(fvec4) Load 118(f4) + 241: 95(fvec4) FAdd 240 239 + Store 118(f4) 241 + 242: 16(float) Load 106(f) + 243: 9(int) ConvertFToS 242 + 244: 9(int) Load 58(i) + 245: 66(ivec2) CompositeConstruct 243 244 + 246: 66(ivec2) Load 68(i2) + 247: 66(ivec2) IAdd 246 245 + Store 68(i2) 247 + 248: 16(float) Load 106(f) + 249: 9(int) ConvertFToS 248 + 250: 9(int) Load 58(i) + 251: 16(float) Load 106(f) + 252: 9(int) ConvertFToS 251 + 253: 79(ivec3) CompositeConstruct 249 250 252 + 254: 79(ivec3) Load 81(i3) + 255: 79(ivec3) IAdd 254 253 + Store 81(i3) 255 + 256: 6(bool) Load 8(b) + 257: 9(int) Select 256 63 62 + 258: 9(int) Load 58(i) + 259: 16(float) Load 106(f) + 260: 9(int) ConvertFToS 259 + 261: 9(int) Load 58(i) + 262: 92(ivec4) CompositeConstruct 257 258 260 261 + 263: 92(ivec4) Load 94(i4) + 264: 92(ivec4) IAdd 263 262 + Store 94(i4) 264 + 265: 16(float) Load 106(f) + 266: 9(int) Load 58(i) + 267: 16(float) ConvertSToF 266 + 268: 6(bool) FOrdLessThan 265 267 + 269: 6(bool) LogicalNot 268 + SelectionMerge 271 None + BranchConditional 269 270 271 + 270: Label + 272: 9(int) Load 58(i) + 273: 16(float) ConvertSToF 272 + 274: 16(float) Load 106(f) + 275: 6(bool) FOrdLessThan 273 274 + Branch 271 + 271: Label + 276: 6(bool) Phi 268 5 275 270 + 277: 6(bool) LogicalNot 276 + SelectionMerge 279 None + BranchConditional 277 278 279 + 278: Label + 280: 69(fvec2) Load 110(f2) + 281: 66(ivec2) Load 68(i2) + 282: 69(fvec2) ConvertSToF 281 + 283: 23(bvec2) FOrdEqual 280 282 + 284: 6(bool) All 283 + Branch 279 + 279: Label + 285: 6(bool) Phi 276 271 284 278 + 286: 6(bool) LogicalNot 285 + SelectionMerge 288 None + BranchConditional 286 287 288 + 287: Label + 289: 79(ivec3) Load 81(i3) + 290: 82(fvec3) ConvertSToF 289 + 291: 82(fvec3) Load 114(f3) + 292: 31(bvec3) FOrdNotEqual 290 291 + 293: 6(bool) Any 292 + Branch 288 + 288: Label + 294: 6(bool) Phi 285 279 293 287 + SelectionMerge 296 None + BranchConditional 294 295 296 + 295: Label + 297: 6(bool) Load 8(b) + SelectionMerge 300 None + BranchConditional 297 299 303 + 299: Label + 301: 9(int) Load 58(i) + 302: 16(float) ConvertSToF 301 + Store 298 302 + Branch 300 + 303: Label + 304: 105(ptr) AccessChain 110(f2) 14 + 305: 16(float) Load 304 + Store 298 305 + Branch 300 + 300: Label + 306: 16(float) Load 298 + 307: 7(ptr) AccessChain 25(b2) 14 + 308: 6(bool) Load 307 + SelectionMerge 311 None + BranchConditional 308 310 314 + 310: Label + 312: 105(ptr) AccessChain 114(f3) 14 + 313: 16(float) Load 312 + Store 309 313 + Branch 311 + 314: Label + 316: 57(ptr) AccessChain 68(i2) 315 + 317: 9(int) Load 316 + 318: 16(float) ConvertSToF 317 + Store 309 318 + Branch 311 + 311: Label + 319: 16(float) Load 309 + 320: 16(float) FAdd 306 319 + Store 106(f) 320 + Branch 296 + 296: Label + 323: 6(bool) Load 8(b) + 324: 7(ptr) AccessChain 25(b2) 14 + 325: 6(bool) Load 324 + 326: 6(bool) LogicalOr 323 325 + 327: 7(ptr) AccessChain 25(b2) 315 + 328: 6(bool) Load 327 + 329: 6(bool) LogicalOr 326 328 + 330: 7(ptr) AccessChain 33(b3) 14 + 331: 6(bool) Load 330 + 332: 6(bool) LogicalOr 329 331 + 333: 7(ptr) AccessChain 33(b3) 315 + 334: 6(bool) Load 333 + 335: 6(bool) LogicalOr 332 334 + 337: 7(ptr) AccessChain 33(b3) 336 + 338: 6(bool) Load 337 + 339: 6(bool) LogicalOr 335 338 + 340: 7(ptr) AccessChain 45(b4) 14 + 341: 6(bool) Load 340 + 342: 6(bool) LogicalOr 339 341 + 343: 7(ptr) AccessChain 45(b4) 315 + 344: 6(bool) Load 343 + 345: 6(bool) LogicalOr 342 344 + 346: 7(ptr) AccessChain 45(b4) 336 + 347: 6(bool) Load 346 + 348: 6(bool) LogicalOr 345 347 + 350: 7(ptr) AccessChain 45(b4) 349 + 351: 6(bool) Load 350 + 352: 6(bool) LogicalOr 348 351 + SelectionMerge 355 None + BranchConditional 352 354 415 + 354: Label + 356: 9(int) Load 58(i) + 357: 57(ptr) AccessChain 68(i2) 14 + 358: 9(int) Load 357 + 359: 9(int) IAdd 356 358 + 360: 57(ptr) AccessChain 68(i2) 315 + 361: 9(int) Load 360 + 362: 9(int) IAdd 359 361 + 363: 57(ptr) AccessChain 81(i3) 14 + 364: 9(int) Load 363 + 365: 9(int) IAdd 362 364 + 366: 57(ptr) AccessChain 81(i3) 315 + 367: 9(int) Load 366 + 368: 9(int) IAdd 365 367 + 369: 57(ptr) AccessChain 81(i3) 336 + 370: 9(int) Load 369 + 371: 9(int) IAdd 368 370 + 372: 57(ptr) AccessChain 94(i4) 14 + 373: 9(int) Load 372 + 374: 9(int) IAdd 371 373 + 375: 57(ptr) AccessChain 94(i4) 315 + 376: 9(int) Load 375 + 377: 9(int) IAdd 374 376 + 378: 57(ptr) AccessChain 94(i4) 336 + 379: 9(int) Load 378 + 380: 9(int) IAdd 377 379 + 381: 57(ptr) AccessChain 94(i4) 349 + 382: 9(int) Load 381 + 383: 9(int) IAdd 380 382 + 384: 16(float) ConvertSToF 383 + 385: 16(float) Load 106(f) + 386: 16(float) FAdd 384 385 + 387: 105(ptr) AccessChain 110(f2) 14 + 388: 16(float) Load 387 + 389: 16(float) FAdd 386 388 + 390: 105(ptr) AccessChain 110(f2) 315 + 391: 16(float) Load 390 + 392: 16(float) FAdd 389 391 + 393: 105(ptr) AccessChain 114(f3) 14 + 394: 16(float) Load 393 + 395: 16(float) FAdd 392 394 + 396: 105(ptr) AccessChain 114(f3) 315 + 397: 16(float) Load 396 + 398: 16(float) FAdd 395 397 + 399: 105(ptr) AccessChain 114(f3) 336 + 400: 16(float) Load 399 + 401: 16(float) FAdd 398 400 + 402: 105(ptr) AccessChain 118(f4) 14 + 403: 16(float) Load 402 + 404: 16(float) FAdd 401 403 + 405: 105(ptr) AccessChain 118(f4) 315 + 406: 16(float) Load 405 + 407: 16(float) FAdd 404 406 + 408: 105(ptr) AccessChain 118(f4) 336 + 409: 16(float) Load 408 + 410: 16(float) FAdd 407 409 + 411: 105(ptr) AccessChain 118(f4) 349 + 412: 16(float) Load 411 + 413: 16(float) FAdd 410 412 + 414: 95(fvec4) CompositeConstruct 413 413 413 413 + Store 353 414 + Branch 355 + 415: Label + Store 353 151 + Branch 355 + 355: Label + 416: 95(fvec4) Load 353 + Store 322(gl_FragColor) 416 + Store 417(cv2) 102 + 419: 92(ivec4) Load 417(cv2) + 420: 43(bvec4) INotEqual 419 160 + Store 418(cv5) 420 + 421: 43(bvec4) Load 418(cv5) + 422: 95(fvec4) Select 421 151 150 + 423: 16(float) CompositeExtract 422 0 + 424: 95(fvec4) Load 322(gl_FragColor) + 425: 95(fvec4) CompositeConstruct 423 423 423 423 + 426: 95(fvec4) FAdd 424 425 + Store 322(gl_FragColor) 426 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out b/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out new file mode 100644 index 0000000000..f3847213f2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.dataOut.frag.out @@ -0,0 +1,35 @@ +spv.dataOut.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 16 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 12 "gl_FragData" + Name 16 "Color" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 32 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Output 10 + 12(gl_FragData): 11(ptr) Variable Output + 13: TypeInt 32 1 + 14: 13(int) Constant 1 + 15: TypePointer Input 7(fvec4) + 16(Color): 15(ptr) Variable Input + 18: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 17: 7(fvec4) Load 16(Color) + 19: 18(ptr) AccessChain 12(gl_FragData) 14 + Store 19 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out new file mode 100644 index 0000000000..c0b52ae3c6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.frag.out @@ -0,0 +1,47 @@ +spv.dataOutIndirect.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 22 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 12 "fcolor" + Name 14 "b" + MemberName 14(b) 0 "i" + Name 16 "bName" + Name 22 "Color" + MemberDecorate 14(b) 0 Offset 0 + Decorate 14(b) Block + Decorate 16(bName) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 4 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Output 10 + 12(fcolor): 11(ptr) Variable Output + 13: TypeInt 32 1 + 14(b): TypeStruct 13(int) + 15: TypePointer Uniform 14(b) + 16(bName): 15(ptr) Variable Uniform + 17: 13(int) Constant 0 + 18: TypePointer Uniform 13(int) + 21: TypePointer Input 7(fvec4) + 22(Color): 21(ptr) Variable Input + 24: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 19: 18(ptr) AccessChain 16(bName) 17 + 20: 13(int) Load 19 + 23: 7(fvec4) Load 22(Color) + 25: 24(ptr) AccessChain 12(fcolor) 20 + Store 25 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out new file mode 100644 index 0000000000..9ba988c653 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.dataOutIndirect.vert.out @@ -0,0 +1,66 @@ +spv.dataOutIndirect.vert +WARNING: 0:3: attribute deprecated in version 130; may be removed in future release + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 38 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 25 28 34 + Source GLSL 140 + Name 4 "main" + Name 8 "i" + Name 25 "colorOut" + Name 28 "color" + Name 34 "gl_Position" + Decorate 34(gl_Position) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1 + 16: 6(int) Constant 5 + 17: TypeBool + 19: TypeFloat 32 + 20: TypeVector 19(float) 4 + 21: TypeInt 32 0 + 22: 21(int) Constant 6 + 23: TypeArray 20(fvec4) 22 + 24: TypePointer Output 23 + 25(colorOut): 24(ptr) Variable Output + 27: TypePointer Input 20(fvec4) + 28(color): 27(ptr) Variable Input + 30: TypePointer Output 20(fvec4) + 34(gl_Position): 30(ptr) Variable Output + 35: 6(int) Constant 2 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + 26: 6(int) Load 8(i) + 29: 20(fvec4) Load 28(color) + 31: 30(ptr) AccessChain 25(colorOut) 26 + Store 31 29 + Branch 13 + 13: Label + 32: 6(int) Load 8(i) + 33: 6(int) IAdd 32 9 + Store 8(i) 33 + Branch 10 + 12: Label + 36: 30(ptr) AccessChain 25(colorOut) 35 + 37: 20(fvec4) Load 36 + Store 34(gl_Position) 37 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out b/deps/glslang/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out new file mode 100644 index 0000000000..facaf9e9c0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out @@ -0,0 +1,276 @@ +spv.debugInfo.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 124 + + Capability Shader + 2: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5 "main" 24 52 + ExecutionMode 5 OriginLowerLeft + 1: String "spv.debugInfo.frag" + Source GLSL 450 1 "#version 450 + +struct S { + int a; +}; + +uniform ubuf { + S s; +}; + +uniform sampler2D s2d; + +layout(location = 0) in vec4 inv; +layout(location = 0) out vec4 outv; + +vec4 foo(S s) +{ + vec4 r = s.a * inv; + ++r; + if (r.x > 3.0) + --r; + else + r *= 2; + + return r; +} + +void main() +{ + outv = foo(s); + outv += texture(s2d, vec2(0.5)); + + switch (s.a) { + case 10: + ++outv; + break; + case 20: + outv = 2 * outv; + ++outv; + break; + default: + --outv; + break; + } + + for (int i = 0; i < 10; ++i) + outv *= 3.0; + + outv.x < 10.0 ? + outv = sin(outv) : + outv = cos(outv); +}" + Name 5 "main" + Name 8 "S" + MemberName 8(S) 0 "a" + Name 14 "foo(struct-S-i11;" + Name 13 "s" + Name 17 "r" + Name 24 "inv" + Name 52 "outv" + Name 53 "S" + MemberName 53(S) 0 "a" + Name 54 "ubuf" + MemberName 54(ubuf) 0 "s" + Name 56 "" + Name 57 "param" + Name 67 "s2d" + Name 97 "i" + ModuleProcessed "no-storage-format" + ModuleProcessed "resource-set-binding 3" + ModuleProcessed "auto-map-locations" + ModuleProcessed "client opengl100" + ModuleProcessed "target-env opengl" + ModuleProcessed "relaxed-errors" + ModuleProcessed "suppress-warnings" + ModuleProcessed "hlsl-offsets" + ModuleProcessed "entry-point main" + Decorate 24(inv) Location 0 + Decorate 52(outv) Location 0 + MemberDecorate 53(S) 0 Offset 0 + MemberDecorate 54(ubuf) 0 Offset 0 + Decorate 54(ubuf) Block + Decorate 56 DescriptorSet 3 + Decorate 67(s2d) Location 0 + Decorate 67(s2d) DescriptorSet 3 + 3: TypeVoid + 4: TypeFunction 3 + 7: TypeInt 32 1 + 8(S): TypeStruct 7(int) + 9: TypePointer Function 8(S) + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypeFunction 11(fvec4) 9(ptr) + 16: TypePointer Function 11(fvec4) + 18: 7(int) Constant 0 + 19: TypePointer Function 7(int) + 23: TypePointer Input 11(fvec4) + 24(inv): 23(ptr) Variable Input + 28: 10(float) Constant 1065353216 + 31: TypeInt 32 0 + 32: 31(int) Constant 0 + 33: TypePointer Function 10(float) + 36: 10(float) Constant 1077936128 + 37: TypeBool + 45: 10(float) Constant 1073741824 + 51: TypePointer Output 11(fvec4) + 52(outv): 51(ptr) Variable Output + 53(S): TypeStruct 7(int) + 54(ubuf): TypeStruct 53(S) + 55: TypePointer Uniform 54(ubuf) + 56: 55(ptr) Variable Uniform + 58: TypePointer Uniform 53(S) + 64: TypeImage 10(float) 2D sampled format:Unknown + 65: TypeSampledImage 64 + 66: TypePointer UniformConstant 65 + 67(s2d): 66(ptr) Variable UniformConstant + 69: TypeVector 10(float) 2 + 70: 10(float) Constant 1056964608 + 71: 69(fvec2) ConstantComposite 70 70 + 75: TypePointer Uniform 7(int) + 104: 7(int) Constant 10 + 109: 7(int) Constant 1 + 111: TypePointer Output 10(float) + 114: 10(float) Constant 1092616192 + 5(main): 3 Function None 4 + 6: Label + 57(param): 9(ptr) Variable Function + 97(i): 19(ptr) Variable Function + 116: 16(ptr) Variable Function + Line 1 30 0 + 59: 58(ptr) AccessChain 56 18 + 60: 53(S) Load 59 + 61: 7(int) CompositeExtract 60 0 + 62: 19(ptr) AccessChain 57(param) 18 + Store 62 61 + 63: 11(fvec4) FunctionCall 14(foo(struct-S-i11;) 57(param) + Store 52(outv) 63 + Line 1 31 0 + 68: 65 Load 67(s2d) + 72: 11(fvec4) ImageSampleImplicitLod 68 71 + 73: 11(fvec4) Load 52(outv) + 74: 11(fvec4) FAdd 73 72 + Store 52(outv) 74 + Line 1 33 0 + 76: 75(ptr) AccessChain 56 18 18 + 77: 7(int) Load 76 + SelectionMerge 81 None + Switch 77 80 + case 10: 78 + case 20: 79 + 80: Label + Line 1 42 0 + 92: 11(fvec4) Load 52(outv) + 93: 11(fvec4) CompositeConstruct 28 28 28 28 + 94: 11(fvec4) FSub 92 93 + Store 52(outv) 94 + Line 1 43 0 + Branch 81 + 78: Label + Line 1 35 0 + 82: 11(fvec4) Load 52(outv) + 83: 11(fvec4) CompositeConstruct 28 28 28 28 + 84: 11(fvec4) FAdd 82 83 + Store 52(outv) 84 + Line 1 36 0 + Branch 81 + 79: Label + Line 1 38 0 + 86: 11(fvec4) Load 52(outv) + 87: 11(fvec4) VectorTimesScalar 86 45 + Store 52(outv) 87 + Line 1 39 0 + 88: 11(fvec4) Load 52(outv) + 89: 11(fvec4) CompositeConstruct 28 28 28 28 + 90: 11(fvec4) FAdd 88 89 + Store 52(outv) 90 + Line 1 40 0 + Branch 81 + 81: Label + Line 1 46 0 + Store 97(i) 18 + Branch 98 + 98: Label + LoopMerge 100 101 None + Branch 102 + 102: Label + 103: 7(int) Load 97(i) + 105: 37(bool) SLessThan 103 104 + BranchConditional 105 99 100 + 99: Label + Line 1 47 0 + 106: 11(fvec4) Load 52(outv) + 107: 11(fvec4) VectorTimesScalar 106 36 + Store 52(outv) 107 + Branch 101 + 101: Label + Line 1 46 0 + 108: 7(int) Load 97(i) + 110: 7(int) IAdd 108 109 + Store 97(i) 110 + Branch 98 + 100: Label + Line 1 49 0 + 112: 111(ptr) AccessChain 52(outv) 32 + 113: 10(float) Load 112 + 115: 37(bool) FOrdLessThan 113 114 + SelectionMerge 118 None + BranchConditional 115 117 121 + 117: Label + Line 1 50 0 + 119: 11(fvec4) Load 52(outv) + 120: 11(fvec4) ExtInst 2(GLSL.std.450) 13(Sin) 119 + Store 52(outv) 120 + Store 116 120 + Branch 118 + 121: Label + Line 1 51 0 + 122: 11(fvec4) Load 52(outv) + 123: 11(fvec4) ExtInst 2(GLSL.std.450) 14(Cos) 122 + Store 52(outv) 123 + Store 116 123 + Branch 118 + 118: Label + Return + FunctionEnd +14(foo(struct-S-i11;): 11(fvec4) Function None 12 + 13(s): 9(ptr) FunctionParameter + 15: Label + 17(r): 16(ptr) Variable Function + Line 1 18 0 + 20: 19(ptr) AccessChain 13(s) 18 + 21: 7(int) Load 20 + 22: 10(float) ConvertSToF 21 + 25: 11(fvec4) Load 24(inv) + 26: 11(fvec4) VectorTimesScalar 25 22 + Store 17(r) 26 + Line 1 19 0 + 27: 11(fvec4) Load 17(r) + 29: 11(fvec4) CompositeConstruct 28 28 28 28 + 30: 11(fvec4) FAdd 27 29 + Store 17(r) 30 + Line 1 20 0 + 34: 33(ptr) AccessChain 17(r) 32 + 35: 10(float) Load 34 + 38: 37(bool) FOrdGreaterThan 35 36 + SelectionMerge 40 None + BranchConditional 38 39 44 + 39: Label + Line 1 21 0 + 41: 11(fvec4) Load 17(r) + 42: 11(fvec4) CompositeConstruct 28 28 28 28 + 43: 11(fvec4) FSub 41 42 + Store 17(r) 43 + Branch 40 + 44: Label + Line 1 23 0 + 46: 11(fvec4) Load 17(r) + 47: 11(fvec4) VectorTimesScalar 46 45 + Store 17(r) 47 + Branch 40 + 40: Label + Line 1 25 0 + 48: 11(fvec4) Load 17(r) + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.debugInfo.frag.out b/deps/glslang/glslang/Test/baseResults/spv.debugInfo.frag.out new file mode 100644 index 0000000000..aaa988d4a7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.debugInfo.frag.out @@ -0,0 +1,280 @@ +spv.debugInfo.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 124 + + Capability Shader + 2: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5 "main" 24 52 + ExecutionMode 5 OriginLowerLeft + 1: String "spv.debugInfo.frag" + Source GLSL 450 1 "// OpModuleProcessed no-storage-format +// OpModuleProcessed resource-set-binding 3 +// OpModuleProcessed auto-map-bindings +// OpModuleProcessed auto-map-locations +// OpModuleProcessed client opengl100 +// OpModuleProcessed target-env opengl +// OpModuleProcessed relaxed-errors +// OpModuleProcessed suppress-warnings +// OpModuleProcessed hlsl-offsets +// OpModuleProcessed entry-point main +#line 1 +#version 450 + +struct S { + int a; +}; + +uniform ubuf { + S s; +}; + +uniform sampler2D s2d; + +layout(location = 0) in vec4 inv; +layout(location = 0) out vec4 outv; + +vec4 foo(S s) +{ + vec4 r = s.a * inv; + ++r; + if (r.x > 3.0) + --r; + else + r *= 2; + + return r; +} + +void main() +{ + outv = foo(s); + outv += texture(s2d, vec2(0.5)); + + switch (s.a) { + case 10: + ++outv; + break; + case 20: + outv = 2 * outv; + ++outv; + break; + default: + --outv; + break; + } + + for (int i = 0; i < 10; ++i) + outv *= 3.0; + + outv.x < 10.0 ? + outv = sin(outv) : + outv = cos(outv); +}" + Name 5 "main" + Name 8 "S" + MemberName 8(S) 0 "a" + Name 14 "foo(struct-S-i11;" + Name 13 "s" + Name 17 "r" + Name 24 "inv" + Name 52 "outv" + Name 53 "S" + MemberName 53(S) 0 "a" + Name 54 "ubuf" + MemberName 54(ubuf) 0 "s" + Name 56 "" + Name 57 "param" + Name 67 "s2d" + Name 97 "i" + Decorate 24(inv) Location 0 + Decorate 52(outv) Location 0 + MemberDecorate 53(S) 0 Offset 0 + MemberDecorate 54(ubuf) 0 Offset 0 + Decorate 54(ubuf) Block + Decorate 56 DescriptorSet 3 + Decorate 56 Binding 0 + Decorate 67(s2d) Location 0 + Decorate 67(s2d) DescriptorSet 3 + Decorate 67(s2d) Binding 1 + 3: TypeVoid + 4: TypeFunction 3 + 7: TypeInt 32 1 + 8(S): TypeStruct 7(int) + 9: TypePointer Function 8(S) + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypeFunction 11(fvec4) 9(ptr) + 16: TypePointer Function 11(fvec4) + 18: 7(int) Constant 0 + 19: TypePointer Function 7(int) + 23: TypePointer Input 11(fvec4) + 24(inv): 23(ptr) Variable Input + 28: 10(float) Constant 1065353216 + 31: TypeInt 32 0 + 32: 31(int) Constant 0 + 33: TypePointer Function 10(float) + 36: 10(float) Constant 1077936128 + 37: TypeBool + 45: 10(float) Constant 1073741824 + 51: TypePointer Output 11(fvec4) + 52(outv): 51(ptr) Variable Output + 53(S): TypeStruct 7(int) + 54(ubuf): TypeStruct 53(S) + 55: TypePointer Uniform 54(ubuf) + 56: 55(ptr) Variable Uniform + 58: TypePointer Uniform 53(S) + 64: TypeImage 10(float) 2D sampled format:Unknown + 65: TypeSampledImage 64 + 66: TypePointer UniformConstant 65 + 67(s2d): 66(ptr) Variable UniformConstant + 69: TypeVector 10(float) 2 + 70: 10(float) Constant 1056964608 + 71: 69(fvec2) ConstantComposite 70 70 + 75: TypePointer Uniform 7(int) + 104: 7(int) Constant 10 + 109: 7(int) Constant 1 + 111: TypePointer Output 10(float) + 114: 10(float) Constant 1092616192 + 5(main): 3 Function None 4 + 6: Label + 57(param): 9(ptr) Variable Function + 97(i): 19(ptr) Variable Function + 116: 16(ptr) Variable Function + Line 1 30 0 + 59: 58(ptr) AccessChain 56 18 + 60: 53(S) Load 59 + 61: 7(int) CompositeExtract 60 0 + 62: 19(ptr) AccessChain 57(param) 18 + Store 62 61 + 63: 11(fvec4) FunctionCall 14(foo(struct-S-i11;) 57(param) + Store 52(outv) 63 + Line 1 31 0 + 68: 65 Load 67(s2d) + 72: 11(fvec4) ImageSampleImplicitLod 68 71 + 73: 11(fvec4) Load 52(outv) + 74: 11(fvec4) FAdd 73 72 + Store 52(outv) 74 + Line 1 33 0 + 76: 75(ptr) AccessChain 56 18 18 + 77: 7(int) Load 76 + SelectionMerge 81 None + Switch 77 80 + case 10: 78 + case 20: 79 + 80: Label + Line 1 42 0 + 92: 11(fvec4) Load 52(outv) + 93: 11(fvec4) CompositeConstruct 28 28 28 28 + 94: 11(fvec4) FSub 92 93 + Store 52(outv) 94 + Line 1 43 0 + Branch 81 + 78: Label + Line 1 35 0 + 82: 11(fvec4) Load 52(outv) + 83: 11(fvec4) CompositeConstruct 28 28 28 28 + 84: 11(fvec4) FAdd 82 83 + Store 52(outv) 84 + Line 1 36 0 + Branch 81 + 79: Label + Line 1 38 0 + 86: 11(fvec4) Load 52(outv) + 87: 11(fvec4) VectorTimesScalar 86 45 + Store 52(outv) 87 + Line 1 39 0 + 88: 11(fvec4) Load 52(outv) + 89: 11(fvec4) CompositeConstruct 28 28 28 28 + 90: 11(fvec4) FAdd 88 89 + Store 52(outv) 90 + Line 1 40 0 + Branch 81 + 81: Label + Line 1 46 0 + Store 97(i) 18 + Branch 98 + 98: Label + LoopMerge 100 101 None + Branch 102 + 102: Label + 103: 7(int) Load 97(i) + 105: 37(bool) SLessThan 103 104 + BranchConditional 105 99 100 + 99: Label + Line 1 47 0 + 106: 11(fvec4) Load 52(outv) + 107: 11(fvec4) VectorTimesScalar 106 36 + Store 52(outv) 107 + Branch 101 + 101: Label + Line 1 46 0 + 108: 7(int) Load 97(i) + 110: 7(int) IAdd 108 109 + Store 97(i) 110 + Branch 98 + 100: Label + Line 1 49 0 + 112: 111(ptr) AccessChain 52(outv) 32 + 113: 10(float) Load 112 + 115: 37(bool) FOrdLessThan 113 114 + SelectionMerge 118 None + BranchConditional 115 117 121 + 117: Label + Line 1 50 0 + 119: 11(fvec4) Load 52(outv) + 120: 11(fvec4) ExtInst 2(GLSL.std.450) 13(Sin) 119 + Store 52(outv) 120 + Store 116 120 + Branch 118 + 121: Label + Line 1 51 0 + 122: 11(fvec4) Load 52(outv) + 123: 11(fvec4) ExtInst 2(GLSL.std.450) 14(Cos) 122 + Store 52(outv) 123 + Store 116 123 + Branch 118 + 118: Label + Return + FunctionEnd +14(foo(struct-S-i11;): 11(fvec4) Function None 12 + 13(s): 9(ptr) FunctionParameter + 15: Label + 17(r): 16(ptr) Variable Function + Line 1 18 0 + 20: 19(ptr) AccessChain 13(s) 18 + 21: 7(int) Load 20 + 22: 10(float) ConvertSToF 21 + 25: 11(fvec4) Load 24(inv) + 26: 11(fvec4) VectorTimesScalar 25 22 + Store 17(r) 26 + Line 1 19 0 + 27: 11(fvec4) Load 17(r) + 29: 11(fvec4) CompositeConstruct 28 28 28 28 + 30: 11(fvec4) FAdd 27 29 + Store 17(r) 30 + Line 1 20 0 + 34: 33(ptr) AccessChain 17(r) 32 + 35: 10(float) Load 34 + 38: 37(bool) FOrdGreaterThan 35 36 + SelectionMerge 40 None + BranchConditional 38 39 44 + 39: Label + Line 1 21 0 + 41: 11(fvec4) Load 17(r) + 42: 11(fvec4) CompositeConstruct 28 28 28 28 + 43: 11(fvec4) FSub 41 42 + Store 17(r) 43 + Branch 40 + 44: Label + Line 1 23 0 + 46: 11(fvec4) Load 17(r) + 47: 11(fvec4) VectorTimesScalar 46 45 + Store 17(r) 47 + Branch 40 + 40: Label + Line 1 25 0 + 48: 11(fvec4) Load 17(r) + ReturnValue 48 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out b/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out new file mode 100644 index 0000000000..a0e4eabc34 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.deepRvalue.frag.out @@ -0,0 +1,197 @@ +spv.deepRvalue.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 152 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 146 + ExecutionMode 4 OriginUpperLeft + Source GLSL 330 + Name 4 "main" + Name 9 "v1" + Name 15 "v2" + Name 21 "v3" + Name 27 "v4" + Name 35 "m" + Name 63 "mm" + Name 80 "f" + Name 87 "g" + Name 106 "h" + Name 107 "i" + Name 111 "samp2D" + Name 131 "str" + MemberName 131(str) 0 "a" + MemberName 131(str) 1 "b" + MemberName 131(str) 2 "c" + Name 133 "t" + Name 146 "gl_FragColor" + Decorate 111(samp2D) DescriptorSet 0 + Decorate 146(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Private 7(fvec4) + 9(v1): 8(ptr) Variable Private + 10: 6(float) Constant 1073741824 + 11: 6(float) Constant 1077936128 + 12: 6(float) Constant 1084227584 + 13: 6(float) Constant 1088421888 + 14: 7(fvec4) ConstantComposite 10 11 12 13 + 15(v2): 8(ptr) Variable Private + 16: 6(float) Constant 1093664768 + 17: 6(float) Constant 1095761920 + 18: 6(float) Constant 1099431936 + 19: 6(float) Constant 1100480512 + 20: 7(fvec4) ConstantComposite 16 17 18 19 + 21(v3): 8(ptr) Variable Private + 22: 6(float) Constant 1102577664 + 23: 6(float) Constant 1105723392 + 24: 6(float) Constant 1106771968 + 25: 6(float) Constant 1108606976 + 26: 7(fvec4) ConstantComposite 22 23 24 25 + 27(v4): 8(ptr) Variable Private + 28: 6(float) Constant 1109655552 + 29: 6(float) Constant 1110179840 + 30: 6(float) Constant 1111228416 + 31: 6(float) Constant 1112801280 + 32: 7(fvec4) ConstantComposite 28 29 30 31 + 33: TypeMatrix 7(fvec4) 4 + 34: TypePointer Function 33 + 40: 6(float) Constant 1065353216 + 41: 6(float) Constant 0 + 79: TypePointer Function 6(float) + 81: TypeInt 32 1 + 82: 81(int) Constant 1 + 83: TypeInt 32 0 + 84: 83(int) Constant 3 + 103: 81(int) Constant 2 + 104: 83(int) Constant 1 + 108: TypeImage 6(float) 2D sampled format:Unknown + 109: TypeSampledImage 108 + 110: TypePointer UniformConstant 109 + 111(samp2D): 110(ptr) Variable UniformConstant + 113: TypeVector 6(float) 2 + 114: 6(float) Constant 1056964608 + 115: 113(fvec2) ConstantComposite 114 114 + 119: 6(float) Constant 1036831949 + 120: TypeBool + 124: TypeVector 120(bool) 4 + 130: TypeArray 113(fvec2) 84 + 131(str): TypeStruct 81(int) 130 120(bool) + 132: TypePointer Function 131(str) + 134: 113(fvec2) ConstantComposite 10 11 + 135: 6(float) Constant 1082130432 + 136: 113(fvec2) ConstantComposite 135 12 + 137: 6(float) Constant 1086324736 + 138: 113(fvec2) ConstantComposite 137 13 + 139: 130 ConstantComposite 134 136 138 + 140: 120(bool) ConstantTrue + 141: 131(str) ConstantComposite 82 139 140 + 145: TypePointer Output 7(fvec4) +146(gl_FragColor): 145(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 35(m): 34(ptr) Variable Function + 63(mm): 34(ptr) Variable Function + 80(f): 79(ptr) Variable Function + 87(g): 79(ptr) Variable Function + 106(h): 79(ptr) Variable Function + 107(i): 79(ptr) Variable Function + 133(t): 132(ptr) Variable Function + Store 9(v1) 14 + Store 15(v2) 20 + Store 21(v3) 26 + Store 27(v4) 32 + 36: 7(fvec4) Load 9(v1) + 37: 7(fvec4) Load 15(v2) + 38: 7(fvec4) Load 21(v3) + 39: 7(fvec4) Load 27(v4) + 42: 6(float) CompositeExtract 36 0 + 43: 6(float) CompositeExtract 36 1 + 44: 6(float) CompositeExtract 36 2 + 45: 6(float) CompositeExtract 36 3 + 46: 6(float) CompositeExtract 37 0 + 47: 6(float) CompositeExtract 37 1 + 48: 6(float) CompositeExtract 37 2 + 49: 6(float) CompositeExtract 37 3 + 50: 6(float) CompositeExtract 38 0 + 51: 6(float) CompositeExtract 38 1 + 52: 6(float) CompositeExtract 38 2 + 53: 6(float) CompositeExtract 38 3 + 54: 6(float) CompositeExtract 39 0 + 55: 6(float) CompositeExtract 39 1 + 56: 6(float) CompositeExtract 39 2 + 57: 6(float) CompositeExtract 39 3 + 58: 7(fvec4) CompositeConstruct 42 43 44 45 + 59: 7(fvec4) CompositeConstruct 46 47 48 49 + 60: 7(fvec4) CompositeConstruct 50 51 52 53 + 61: 7(fvec4) CompositeConstruct 54 55 56 57 + 62: 33 CompositeConstruct 58 59 60 61 + Store 35(m) 62 + 64: 33 Load 35(m) + 65: 33 Load 35(m) + 66: 7(fvec4) CompositeExtract 64 0 + 67: 7(fvec4) CompositeExtract 65 0 + 68: 7(fvec4) FMul 66 67 + 69: 7(fvec4) CompositeExtract 64 1 + 70: 7(fvec4) CompositeExtract 65 1 + 71: 7(fvec4) FMul 69 70 + 72: 7(fvec4) CompositeExtract 64 2 + 73: 7(fvec4) CompositeExtract 65 2 + 74: 7(fvec4) FMul 72 73 + 75: 7(fvec4) CompositeExtract 64 3 + 76: 7(fvec4) CompositeExtract 65 3 + 77: 7(fvec4) FMul 75 76 + 78: 33 CompositeConstruct 68 71 74 77 + Store 63(mm) 78 + 85: 79(ptr) AccessChain 63(mm) 82 84 + 86: 6(float) Load 85 + Store 80(f) 86 + 88: 33 Load 35(m) + 89: 33 Load 35(m) + 90: 7(fvec4) CompositeExtract 88 0 + 91: 7(fvec4) CompositeExtract 89 0 + 92: 7(fvec4) FMul 90 91 + 93: 7(fvec4) CompositeExtract 88 1 + 94: 7(fvec4) CompositeExtract 89 1 + 95: 7(fvec4) FMul 93 94 + 96: 7(fvec4) CompositeExtract 88 2 + 97: 7(fvec4) CompositeExtract 89 2 + 98: 7(fvec4) FMul 96 97 + 99: 7(fvec4) CompositeExtract 88 3 + 100: 7(fvec4) CompositeExtract 89 3 + 101: 7(fvec4) FMul 99 100 + 102: 33 CompositeConstruct 92 95 98 101 + 105: 6(float) CompositeExtract 102 2 1 + Store 87(g) 105 + Store 106(h) 12 + 112: 109 Load 111(samp2D) + 116: 7(fvec4) ImageSampleImplicitLod 112 115 + 117: 6(float) CompositeExtract 116 1 + Store 107(i) 117 + 118: 6(float) Load 107(i) + 121: 120(bool) FOrdGreaterThan 118 119 + 122: 7(fvec4) Load 9(v1) + 123: 7(fvec4) Load 15(v2) + 125: 124(bvec4) CompositeConstruct 121 121 121 121 + 126: 7(fvec4) Select 125 122 123 + 127: 6(float) CompositeExtract 126 3 + 128: 6(float) Load 107(i) + 129: 6(float) FAdd 128 127 + Store 107(i) 129 + Store 133(t) 141 + 142: 6(float) CompositeExtract 141 1 2 1 + 143: 6(float) Load 107(i) + 144: 6(float) FAdd 143 142 + Store 107(i) 144 + 147: 6(float) Load 80(f) + 148: 6(float) Load 87(g) + 149: 6(float) Load 106(h) + 150: 6(float) Load 107(i) + 151: 7(fvec4) CompositeConstruct 147 148 149 150 + Store 146(gl_FragColor) 151 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.depthOut.frag.out b/deps/glslang/glslang/Test/baseResults/spv.depthOut.frag.out new file mode 100644 index 0000000000..5da0df07da --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.depthOut.frag.out @@ -0,0 +1,34 @@ +spv.depthOut.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 10 14 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthGreater + ExecutionMode 4 DepthReplacing + Source GLSL 450 + Name 4 "main" + Name 8 "gl_FragDepth" + Name 10 "Depth" + Name 14 "Color" + Decorate 8(gl_FragDepth) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) + 8(gl_FragDepth): 7(ptr) Variable Output + 9: TypePointer Input 6(float) + 10(Depth): 9(ptr) Variable Input + 12: TypeVector 6(float) 4 + 13: TypePointer Input 12(fvec4) + 14(Color): 13(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 11: 6(float) Load 10(Depth) + Store 8(gl_FragDepth) 11 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.deviceGroup.frag.out b/deps/glslang/glslang/Test/baseResults/spv.deviceGroup.frag.out new file mode 100644 index 0000000000..6710b77f79 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.deviceGroup.frag.out @@ -0,0 +1,36 @@ +spv.deviceGroup.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 17 + + Capability Shader + Capability DeviceGroup + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 12 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_device_group" + Name 4 "main" + Name 9 "color" + Name 12 "gl_DeviceIndex" + Decorate 12(gl_DeviceIndex) Flat + Decorate 12(gl_DeviceIndex) BuiltIn DeviceIndex + 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: TypeInt 32 1 + 11: TypePointer Input 10(int) +12(gl_DeviceIndex): 11(ptr) Variable Input + 15: 6(float) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 13: 10(int) Load 12(gl_DeviceIndex) + 14: 6(float) ConvertSToF 13 + 16: 7(fvec4) CompositeConstruct 14 15 15 15 + Store 9(color) 16 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out b/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out new file mode 100644 index 0000000000..9d138f294b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.discard-dce.frag.out @@ -0,0 +1,127 @@ +spv.discard-dce.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 84 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 21 59 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "white" + Name 12 "black" + Name 15 "color" + Name 18 "x" + Name 21 "tex_coord" + Name 30 "y" + Name 36 "radius" + Name 59 "gl_FragColor" + Decorate 59(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: 6(float) Constant 1045220557 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 17: TypePointer Function 6(float) + 19: TypeVector 6(float) 2 + 20: TypePointer Input 19(fvec2) + 21(tex_coord): 20(ptr) Variable Input + 22: TypeInt 32 0 + 23: 22(int) Constant 0 + 24: TypePointer Input 6(float) + 27: 6(float) Constant 1073741824 + 31: 22(int) Constant 1 + 46: TypeBool + 51: 6(float) Constant 1066192077 + 58: TypePointer Output 7(fvec4) +59(gl_FragColor): 58(ptr) Variable Output + 62: 6(float) Constant 1067030938 + 71: 6(float) Constant 1061158912 + 76: 6(float) Constant 1098907648 + 4(main): 2 Function None 3 + 5: Label + 9(white): 8(ptr) Variable Function + 12(black): 8(ptr) Variable Function + 15(color): 8(ptr) Variable Function + 18(x): 17(ptr) Variable Function + 30(y): 17(ptr) Variable Function + 36(radius): 17(ptr) Variable Function + Store 9(white) 11 + Store 12(black) 14 + 16: 7(fvec4) Load 9(white) + Store 15(color) 16 + 25: 24(ptr) AccessChain 21(tex_coord) 23 + 26: 6(float) Load 25 + 28: 6(float) FMul 26 27 + 29: 6(float) FSub 28 10 + Store 18(x) 29 + 32: 24(ptr) AccessChain 21(tex_coord) 31 + 33: 6(float) Load 32 + 34: 6(float) FMul 33 27 + 35: 6(float) FSub 34 10 + Store 30(y) 35 + 37: 6(float) Load 18(x) + 38: 6(float) Load 18(x) + 39: 6(float) FMul 37 38 + 40: 6(float) Load 30(y) + 41: 6(float) Load 30(y) + 42: 6(float) FMul 40 41 + 43: 6(float) FAdd 39 42 + 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43 + Store 36(radius) 44 + 45: 6(float) Load 36(radius) + 47: 46(bool) FOrdGreaterThan 45 10 + SelectionMerge 49 None + BranchConditional 47 48 49 + 48: Label + 50: 6(float) Load 36(radius) + 52: 46(bool) FOrdGreaterThan 50 51 + SelectionMerge 54 None + BranchConditional 52 53 54 + 53: Label + 55: 7(fvec4) Load 15(color) + 56: 7(fvec4) CompositeConstruct 10 10 10 10 + 57: 7(fvec4) FAdd 55 56 + Store 15(color) 57 + Branch 54 + 54: Label + 60: 7(fvec4) Load 15(color) + Store 59(gl_FragColor) 60 + 61: 6(float) Load 36(radius) + 63: 46(bool) FOrdGreaterThan 61 62 + SelectionMerge 65 None + BranchConditional 63 64 65 + 64: Label + 66: 7(fvec4) Load 15(color) + 67: 7(fvec4) CompositeConstruct 10 10 10 10 + 68: 7(fvec4) FAdd 66 67 + Store 15(color) 68 + Branch 65 + 65: Label + Kill + 49: Label + 70: 6(float) Load 36(radius) + 72: 46(bool) FOrdGreaterThanEqual 70 71 + SelectionMerge 74 None + BranchConditional 72 73 74 + 73: Label + 75: 6(float) Load 36(radius) + 77: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 75 76 + 78: 6(float) FDiv 77 27 + 79: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 78 + 80: 7(fvec4) Load 15(color) + 81: 7(fvec4) CompositeConstruct 79 79 79 79 + 82: 7(fvec4) FSub 80 81 + Store 15(color) 82 + Branch 74 + 74: Label + 83: 7(fvec4) Load 15(color) + Store 59(gl_FragColor) 83 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out b/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out new file mode 100644 index 0000000000..6014dfec80 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.do-simple.vert.out @@ -0,0 +1,40 @@ +spv.do-simple.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 21 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source ESSL 310 + Name 4 "main" + Name 8 "i" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 15: 6(int) Constant 1 + 18: 6(int) Constant 10 + 19: TypeBool + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 11 + 11: Label + 14: 6(int) Load 8(i) + 16: 6(int) IAdd 14 15 + Store 8(i) 16 + Branch 13 + 13: Label + 17: 6(int) Load 8(i) + 20: 19(bool) SLessThan 17 18 + BranchConditional 20 10 12 + 12: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.do-while-continue-break.vert.out b/deps/glslang/glslang/Test/baseResults/spv.do-while-continue-break.vert.out new file mode 100644 index 0000000000..2838880015 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.do-while-continue-break.vert.out @@ -0,0 +1,78 @@ +spv.do-while-continue-break.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 43 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source ESSL 310 + Name 4 "main" + Name 8 "i" + Name 14 "A" + Name 21 "B" + Name 24 "C" + Name 30 "D" + Name 33 "E" + Name 35 "F" + Name 41 "G" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 2 + 17: TypeBool + 22: 6(int) Constant 1 + 26: 6(int) Constant 5 + 31: 6(int) Constant 3 + 34: 6(int) Constant 42 + 36: 6(int) Constant 99 + 39: 6(int) Constant 19 + 42: 6(int) Constant 12 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 14(A): 7(ptr) Variable Function + 21(B): 7(ptr) Variable Function + 24(C): 7(ptr) Variable Function + 30(D): 7(ptr) Variable Function + 33(E): 7(ptr) Variable Function + 35(F): 7(ptr) Variable Function + 41(G): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 11 + 11: Label + Store 14(A) 9 + 15: 6(int) Load 8(i) + 18: 17(bool) IEqual 15 16 + SelectionMerge 20 None + BranchConditional 18 19 20 + 19: Label + Store 21(B) 22 + Branch 13 + 20: Label + 25: 6(int) Load 8(i) + 27: 17(bool) IEqual 25 26 + SelectionMerge 29 None + BranchConditional 27 28 29 + 28: Label + Store 30(D) 31 + Branch 12 + 29: Label + Store 35(F) 36 + Branch 13 + 13: Label + 37: 6(int) Load 8(i) + 38: 6(int) IAdd 37 22 + Store 8(i) 38 + 40: 17(bool) SLessThan 38 39 + BranchConditional 40 10 12 + 12: Label + Store 41(G) 42 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out new file mode 100644 index 0000000000..808466eb00 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.doWhileLoop.frag.out @@ -0,0 +1,60 @@ +spv.doWhileLoop.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 17 27 32 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 17 "bigColor" + Name 27 "d" + Name 32 "gl_FragColor" + Decorate 32(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 17(bigColor): 10(ptr) Variable Input + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 26: TypePointer Input 6(float) + 27(d): 26(ptr) Variable Input + 29: TypeBool + 31: TypePointer Output 7(fvec4) +32(gl_FragColor): 31(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 14 + 14: Label + 18: 7(fvec4) Load 17(bigColor) + 19: 7(fvec4) Load 9(color) + 20: 7(fvec4) FAdd 19 18 + Store 9(color) 20 + Branch 16 + 16: Label + 24: 23(ptr) AccessChain 9(color) 22 + 25: 6(float) Load 24 + 28: 6(float) Load 27(d) + 30: 29(bool) FOrdLessThan 25 28 + BranchConditional 30 13 15 + 15: Label + 33: 7(fvec4) Load 9(color) + Store 32(gl_FragColor) 33 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.double.comp.out b/deps/glslang/glslang/Test/baseResults/spv.double.comp.out new file mode 100644 index 0000000000..eb8e1226d0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.double.comp.out @@ -0,0 +1,98 @@ +spv.double.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 60 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 26 33 + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 430 + Name 4 "main" + Name 8 "bufName" + MemberName 8(bufName) 0 "f" + MemberName 8(bufName) 1 "d" + Name 10 "bufInst" + Name 22 "storePos" + Name 26 "gl_GlobalInvocationID" + Name 32 "localCoef" + Name 33 "gl_LocalInvocationID" + Name 49 "aa" + Name 54 "globalCoef" + Name 59 "destTex" + MemberDecorate 8(bufName) 0 Offset 0 + MemberDecorate 8(bufName) 1 Offset 8 + Decorate 8(bufName) BufferBlock + Decorate 10(bufInst) DescriptorSet 0 + Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId + Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 59(destTex) DescriptorSet 0 + Decorate 59(destTex) NonReadable + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeFloat 64 + 8(bufName): TypeStruct 6(float) 7(float64_t) + 9: TypePointer Uniform 8(bufName) + 10(bufInst): 9(ptr) Variable Uniform + 11: TypeInt 32 1 + 12: 11(int) Constant 1 + 13:7(float64_t) Constant 1413754136 1074340347 + 14: TypePointer Uniform 7(float64_t) + 16: 11(int) Constant 0 + 17: 6(float) Constant 1095307129 + 18: TypePointer Uniform 6(float) + 20: TypeVector 11(int) 2 + 21: TypePointer Function 20(ivec2) + 23: TypeInt 32 0 + 24: TypeVector 23(int) 3 + 25: TypePointer Input 24(ivec3) +26(gl_GlobalInvocationID): 25(ptr) Variable Input + 27: TypeVector 23(int) 2 + 31: TypePointer Function 7(float64_t) +33(gl_LocalInvocationID): 25(ptr) Variable Input + 37: 11(int) Constant 8 + 40: TypeVector 6(float) 2 + 42: 6(float) Constant 1090519040 + 47: TypeVector 7(float64_t) 4 + 48: TypePointer Function 47(f64vec4) + 50:7(float64_t) Constant 2576980378 1071225241 + 51:7(float64_t) Constant 2576980378 1070176665 + 52:7(float64_t) Constant 858993459 1070805811 + 53: 47(f64vec4) ConstantComposite 50 51 52 50 + 55:7(float64_t) Constant 0 1072693248 + 56:7(float64_t) Constant 3229815407 1074340298 + 57: TypeImage 6(float) 2D nonsampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(destTex): 58(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 22(storePos): 21(ptr) Variable Function + 32(localCoef): 31(ptr) Variable Function + 49(aa): 48(ptr) Variable Function + 54(globalCoef): 31(ptr) Variable Function + 15: 14(ptr) AccessChain 10(bufInst) 12 + Store 15 13 + 19: 18(ptr) AccessChain 10(bufInst) 16 + Store 19 17 + 28: 24(ivec3) Load 26(gl_GlobalInvocationID) + 29: 27(ivec2) VectorShuffle 28 28 0 1 + 30: 20(ivec2) Bitcast 29 + Store 22(storePos) 30 + 34: 24(ivec3) Load 33(gl_LocalInvocationID) + 35: 27(ivec2) VectorShuffle 34 34 0 1 + 36: 20(ivec2) Bitcast 35 + 38: 20(ivec2) CompositeConstruct 37 37 + 39: 20(ivec2) ISub 36 38 + 41: 40(fvec2) ConvertSToF 39 + 43: 40(fvec2) CompositeConstruct 42 42 + 44: 40(fvec2) FDiv 41 43 + 45: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 44 + 46:7(float64_t) FConvert 45 + Store 32(localCoef) 46 + Store 49(aa) 53 + Store 54(globalCoef) 55 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.drawParams.vert.out b/deps/glslang/glslang/Test/baseResults/spv.drawParams.vert.out new file mode 100644 index 0000000000..8f3e2c0aa4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.drawParams.vert.out @@ -0,0 +1,56 @@ +spv.drawParams.vert +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 29 + + Capability Shader + Capability DrawParameters + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 13 16 21 + Source GLSL 450 + SourceExtension "GL_ARB_shader_draw_parameters" + Name 4 "main" + Name 8 "a" + Name 10 "gl_BaseVertexARB" + Name 12 "b" + Name 13 "gl_BaseInstanceARB" + Name 15 "c" + Name 16 "gl_DrawIDARB" + Name 21 "pos" + Decorate 10(gl_BaseVertexARB) BuiltIn BaseVertex + Decorate 13(gl_BaseInstanceARB) BuiltIn BaseInstance + Decorate 16(gl_DrawIDARB) BuiltIn DrawIndex + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_BaseVertexARB): 9(ptr) Variable Input +13(gl_BaseInstanceARB): 9(ptr) Variable Input +16(gl_DrawIDARB): 9(ptr) Variable Input + 18: TypeFloat 32 + 19: TypeVector 18(float) 3 + 20: TypePointer Output 19(fvec3) + 21(pos): 20(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(a): 7(ptr) Variable Function + 12(b): 7(ptr) Variable Function + 15(c): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_BaseVertexARB) + Store 8(a) 11 + 14: 6(int) Load 13(gl_BaseInstanceARB) + Store 12(b) 14 + 17: 6(int) Load 16(gl_DrawIDARB) + Store 15(c) 17 + 22: 6(int) Load 8(a) + 23: 18(float) ConvertSToF 22 + 24: 6(int) Load 12(b) + 25: 18(float) ConvertSToF 24 + 26: 6(int) Load 15(c) + 27: 18(float) ConvertSToF 26 + 28: 19(fvec3) CompositeConstruct 23 25 27 + Store 21(pos) 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out b/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out new file mode 100644 index 0000000000..c44b722f0f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out @@ -0,0 +1,170 @@ +spv.earlyReturnDiscard.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 110 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 14 17 19 25 30 39 51 63 105 109 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 13 "color2" + Name 14 "otherColor" + Name 17 "c" + Name 19 "d" + Name 25 "bigColor" + Name 30 "smallColor" + Name 39 "minimum" + Name 51 "threshhold" + Name 63 "threshhold2" + Name 77 "b" + Name 105 "gl_FragColor" + Name 109 "threshhold3" + Decorate 105(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 14(otherColor): 10(ptr) Variable Input + 16: TypePointer Input 6(float) + 17(c): 16(ptr) Variable Input + 19(d): 16(ptr) Variable Input + 21: TypeBool + 25(bigColor): 10(ptr) Variable Input + 30(smallColor): 10(ptr) Variable Input + 34: TypeInt 32 0 + 35: 34(int) Constant 2 + 36: TypePointer Function 6(float) + 39(minimum): 16(ptr) Variable Input + 47: 6(float) Constant 1065353216 + 51(threshhold): 16(ptr) Variable Input + 60: 34(int) Constant 3 + 63(threshhold2): 16(ptr) Variable Input + 76: TypePointer Private 21(bool) + 77(b): 76(ptr) Variable Private + 85: 34(int) Constant 0 + 104: TypePointer Output 7(fvec4) +105(gl_FragColor): 104(ptr) Variable Output +109(threshhold3): 16(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 13(color2): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + 15: 7(fvec4) Load 14(otherColor) + Store 13(color2) 15 + 18: 6(float) Load 17(c) + 20: 6(float) Load 19(d) + 22: 21(bool) FOrdGreaterThan 18 20 + SelectionMerge 24 None + BranchConditional 22 23 29 + 23: Label + 26: 7(fvec4) Load 25(bigColor) + 27: 7(fvec4) Load 9(color) + 28: 7(fvec4) FAdd 27 26 + Store 9(color) 28 + Branch 24 + 29: Label + 31: 7(fvec4) Load 30(smallColor) + 32: 7(fvec4) Load 9(color) + 33: 7(fvec4) FAdd 32 31 + Store 9(color) 33 + Branch 24 + 24: Label + 37: 36(ptr) AccessChain 9(color) 35 + 38: 6(float) Load 37 + 40: 6(float) Load 39(minimum) + 41: 21(bool) FOrdLessThan 38 40 + SelectionMerge 43 None + BranchConditional 41 42 43 + 42: Label + Return + 43: Label + 45: 36(ptr) AccessChain 9(color) 35 + 46: 6(float) Load 45 + 48: 6(float) FAdd 46 47 + Store 45 48 + 49: 36(ptr) AccessChain 9(color) 35 + 50: 6(float) Load 49 + 52: 6(float) Load 51(threshhold) + 53: 21(bool) FOrdGreaterThan 50 52 + SelectionMerge 55 None + BranchConditional 53 54 55 + 54: Label + Kill + 55: Label + 57: 7(fvec4) Load 9(color) + 58: 7(fvec4) CompositeConstruct 47 47 47 47 + 59: 7(fvec4) FAdd 57 58 + Store 9(color) 59 + 61: 36(ptr) AccessChain 9(color) 60 + 62: 6(float) Load 61 + 64: 6(float) Load 63(threshhold2) + 65: 21(bool) FOrdGreaterThan 62 64 + SelectionMerge 67 None + BranchConditional 65 66 97 + 66: Label + 68: 36(ptr) AccessChain 9(color) 35 + 69: 6(float) Load 68 + 70: 6(float) Load 63(threshhold2) + 71: 21(bool) FOrdGreaterThan 69 70 + SelectionMerge 73 None + BranchConditional 71 72 75 + 72: Label + Return + 75: Label + 78: 21(bool) Load 77(b) + SelectionMerge 80 None + BranchConditional 78 79 84 + 79: Label + 81: 36(ptr) AccessChain 9(color) 35 + 82: 6(float) Load 81 + 83: 6(float) FAdd 82 47 + Store 81 83 + Branch 80 + 84: Label + 86: 36(ptr) AccessChain 9(color) 85 + 87: 6(float) Load 86 + 88: 6(float) Load 39(minimum) + 89: 21(bool) FOrdLessThan 87 88 + SelectionMerge 91 None + BranchConditional 89 90 93 + 90: Label + Kill + 93: Label + 94: 7(fvec4) Load 9(color) + 95: 7(fvec4) CompositeConstruct 47 47 47 47 + 96: 7(fvec4) FAdd 94 95 + Store 9(color) 96 + Branch 91 + 91: Label + Branch 80 + 80: Label + Branch 73 + 73: Label + Branch 67 + 97: Label + 98: 21(bool) Load 77(b) + SelectionMerge 100 None + BranchConditional 98 99 102 + 99: Label + Kill + 102: Label + Return + 100: Label + Branch 67 + 67: Label + 106: 7(fvec4) Load 9(color) + 107: 7(fvec4) Load 13(color2) + 108: 7(fvec4) FMul 106 107 + Store 105(gl_FragColor) 108 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.explicittypes.frag.out b/deps/glslang/glslang/Test/baseResults/spv.explicittypes.frag.out new file mode 100644 index 0000000000..6f7f2b9efa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.explicittypes.frag.out @@ -0,0 +1,882 @@ +spv.explicittypes.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 576 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + Capability StorageUniform16 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "typeCast8(" + Name 10 "typeCast16(" + Name 12 "typeCast32(" + Name 14 "typeCast64(" + Name 18 "i64" + Name 26 "Uniforms" + MemberName 26(Uniforms) 0 "index" + Name 28 "" + Name 35 "indexable" + Name 40 "u64" + Name 49 "indexable" + Name 53 "i32" + Name 62 "indexable" + Name 66 "u32" + Name 74 "indexable" + Name 79 "i16" + Name 88 "indexable" + Name 93 "u16" + Name 101 "indexable" + Name 106 "i8" + Name 115 "indexable" + Name 120 "u8" + Name 128 "indexable" + Name 133 "u8v" + Name 136 "i8v" + Name 141 "i16v" + Name 150 "i32v" + Name 158 "u32v" + Name 164 "i64v" + Name 169 "u64v" + Name 183 "f16v" + Name 189 "f32v" + Name 195 "f64v" + Name 222 "u16v" + Name 252 "bv" + Name 268 "i32v" + Name 269 "i16v" + Name 272 "u16v" + Name 278 "u32v" + Name 282 "i64v" + Name 285 "u64v" + Name 296 "f16v" + Name 299 "f32v" + Name 302 "f64v" + Name 347 "i8v" + Name 353 "u8v" + Name 363 "bv" + Name 380 "u32v" + Name 381 "i32v" + Name 384 "i64v" + Name 387 "u64v" + Name 396 "f32v" + Name 399 "f64v" + Name 406 "i8v" + Name 412 "i16v" + Name 429 "u8v" + Name 435 "u16v" + Name 452 "f16v" + Name 465 "bv" + Name 481 "u64v" + Name 482 "i64v" + Name 485 "f64v" + Name 490 "i8v" + Name 496 "i16v" + Name 502 "i32v" + Name 510 "u8v" + Name 516 "u16v" + Name 522 "u32v" + Name 534 "f16v" + Name 537 "f32v" + Name 548 "bv" + Name 573 "Block" + MemberName 573(Block) 0 "i16" + MemberName 573(Block) 1 "i16v2" + MemberName 573(Block) 2 "i16v3" + MemberName 573(Block) 3 "i16v4" + MemberName 573(Block) 4 "u16" + MemberName 573(Block) 5 "u16v2" + MemberName 573(Block) 6 "u16v3" + MemberName 573(Block) 7 "u16v4" + MemberName 573(Block) 8 "i32" + MemberName 573(Block) 9 "i32v2" + MemberName 573(Block) 10 "i32v3" + MemberName 573(Block) 11 "i32v4" + MemberName 573(Block) 12 "u32" + MemberName 573(Block) 13 "u32v2" + MemberName 573(Block) 14 "u32v3" + MemberName 573(Block) 15 "u32v4" + Name 575 "block" + MemberDecorate 26(Uniforms) 0 Offset 0 + Decorate 26(Uniforms) Block + Decorate 28 DescriptorSet 0 + Decorate 28 Binding 0 + MemberDecorate 573(Block) 0 Offset 0 + MemberDecorate 573(Block) 1 Offset 4 + MemberDecorate 573(Block) 2 Offset 8 + MemberDecorate 573(Block) 3 Offset 16 + MemberDecorate 573(Block) 4 Offset 24 + MemberDecorate 573(Block) 5 Offset 28 + MemberDecorate 573(Block) 6 Offset 32 + MemberDecorate 573(Block) 7 Offset 40 + MemberDecorate 573(Block) 8 Offset 48 + MemberDecorate 573(Block) 9 Offset 56 + MemberDecorate 573(Block) 10 Offset 64 + MemberDecorate 573(Block) 11 Offset 80 + MemberDecorate 573(Block) 12 Offset 96 + MemberDecorate 573(Block) 13 Offset 104 + MemberDecorate 573(Block) 14 Offset 112 + MemberDecorate 573(Block) 15 Offset 128 + Decorate 573(Block) Block + Decorate 575(block) DescriptorSet 0 + Decorate 575(block) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 16: TypeInt 64 1 + 17: TypePointer Function 16(int64_t) + 19: TypeInt 32 0 + 20: 19(int) Constant 3 + 21: TypeArray 16(int64_t) 20 + 22: 16(int64_t) Constant 4008636143 4008636142 + 23: 16(int64_t) Constant 4294967295 4294967295 + 24: 16(int64_t) Constant 0 1 + 25: 21 ConstantComposite 22 23 24 + 26(Uniforms): TypeStruct 19(int) + 27: TypePointer Uniform 26(Uniforms) + 28: 27(ptr) Variable Uniform + 29: TypeInt 32 1 + 30: 29(int) Constant 0 + 31: TypePointer Uniform 19(int) + 34: TypePointer Function 21 + 38: TypeInt 64 0 + 39: TypePointer Function 38(int64_t) + 41: TypeArray 38(int64_t) 20 + 42: 38(int64_t) Constant 4294967295 4294967295 + 43: 38(int64_t) Constant 0 1 + 44: 38(int64_t) Constant 4294967295 1 + 45: 41 ConstantComposite 42 43 44 + 48: TypePointer Function 41 + 52: TypePointer Function 29(int) + 54: TypeArray 29(int) 20 + 55: 29(int) Constant 4008636143 + 56: 29(int) Constant 4294967295 + 57: 29(int) Constant 536870912 + 58: 54 ConstantComposite 55 56 57 + 61: TypePointer Function 54 + 65: TypePointer Function 19(int) + 67: TypeArray 19(int) 20 + 68: 19(int) Constant 4294967295 + 69: 19(int) Constant 2147483647 + 70: 67 ConstantComposite 68 68 69 + 73: TypePointer Function 67 + 77: TypeInt 16 1 + 78: TypePointer Function 77(int16_t) + 80: TypeArray 77(int16_t) 20 + 81: 77(int16_t) Constant 4294962927 + 82: 77(int16_t) Constant 4294967295 + 83: 77(int16_t) Constant 16384 + 84: 80 ConstantComposite 81 82 83 + 87: TypePointer Function 80 + 91: TypeInt 16 0 + 92: TypePointer Function 91(int16_t) + 94: TypeArray 91(int16_t) 20 + 95: 91(int16_t) Constant 65535 + 96: 91(int16_t) Constant 32767 + 97: 94 ConstantComposite 95 95 96 + 100: TypePointer Function 94 + 104: TypeInt 8 1 + 105: TypePointer Function 104(int8_t) + 107: TypeArray 104(int8_t) 20 + 108: 104(int8_t) Constant 4294967279 + 109: 104(int8_t) Constant 4294967295 + 110: 104(int8_t) Constant 0 + 111: 107 ConstantComposite 108 109 110 + 114: TypePointer Function 107 + 118: TypeInt 8 0 + 119: TypePointer Function 118(int8_t) + 121: TypeArray 118(int8_t) 20 + 122: 118(int8_t) Constant 255 + 123: 118(int8_t) Constant 127 + 124: 121 ConstantComposite 122 122 123 + 127: TypePointer Function 121 + 131: TypeVector 118(int8_t) 2 + 132: TypePointer Function 131(i8vec2) + 134: TypeVector 104(int8_t) 2 + 135: TypePointer Function 134(i8vec2) + 139: TypeVector 77(int16_t) 2 + 140: TypePointer Function 139(i16vec2) + 145: TypeVector 91(int16_t) 2 + 148: TypeVector 29(int) 2 + 149: TypePointer Function 148(ivec2) + 154: TypeVector 19(int) 2 + 157: TypePointer Function 154(ivec2) + 162: TypeVector 16(int64_t) 2 + 163: TypePointer Function 162(i64vec2) + 167: TypeVector 38(int64_t) 2 + 168: TypePointer Function 167(i64vec2) + 180: TypeFloat 16 + 181: TypeVector 180(float16_t) 2 + 182: TypePointer Function 181(f16vec2) + 186: TypeFloat 32 + 187: TypeVector 186(float) 2 + 188: TypePointer Function 187(fvec2) + 192: TypeFloat 64 + 193: TypeVector 192(float64_t) 2 + 194: TypePointer Function 193(f64vec2) + 221: TypePointer Function 145(i16vec2) + 249: TypeBool + 250: TypeVector 249(bool) 2 + 251: TypePointer Function 250(bvec2) + 254: 104(int8_t) Constant 1 + 255: 134(i8vec2) ConstantComposite 110 110 + 256: 134(i8vec2) ConstantComposite 254 254 + 259: 118(int8_t) Constant 0 + 260: 118(int8_t) Constant 1 + 261: 131(i8vec2) ConstantComposite 259 259 + 262: 131(i8vec2) ConstantComposite 260 260 + 365: 77(int16_t) Constant 0 + 366: 77(int16_t) Constant 1 + 367:139(i16vec2) ConstantComposite 365 365 + 368:139(i16vec2) ConstantComposite 366 366 + 371: 91(int16_t) Constant 0 + 372: 91(int16_t) Constant 1 + 373:145(i16vec2) ConstantComposite 371 371 + 374:145(i16vec2) ConstantComposite 372 372 + 467: 29(int) Constant 1 + 468: 148(ivec2) ConstantComposite 30 30 + 469: 148(ivec2) ConstantComposite 467 467 + 472: 19(int) Constant 0 + 473: 19(int) Constant 1 + 474: 154(ivec2) ConstantComposite 472 472 + 475: 154(ivec2) ConstantComposite 473 473 + 550: 16(int64_t) Constant 0 0 + 551: 16(int64_t) Constant 1 0 + 552:162(i64vec2) ConstantComposite 550 550 + 553:162(i64vec2) ConstantComposite 551 551 + 556: 38(int64_t) Constant 0 0 + 557: 38(int64_t) Constant 1 0 + 558:167(i64vec2) ConstantComposite 556 556 + 559:167(i64vec2) ConstantComposite 557 557 + 565: TypeVector 77(int16_t) 3 + 566: TypeVector 77(int16_t) 4 + 567: TypeVector 91(int16_t) 3 + 568: TypeVector 91(int16_t) 4 + 569: TypeVector 29(int) 3 + 570: TypeVector 29(int) 4 + 571: TypeVector 19(int) 3 + 572: TypeVector 19(int) 4 + 573(Block): TypeStruct 77(int16_t) 139(i16vec2) 565(i16vec3) 566(i16vec4) 91(int16_t) 145(i16vec2) 567(i16vec3) 568(i16vec4) 29(int) 148(ivec2) 569(ivec3) 570(ivec4) 19(int) 154(ivec2) 571(ivec3) 572(ivec4) + 574: TypePointer Uniform 573(Block) + 575(block): 574(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 18(i64): 17(ptr) Variable Function + 35(indexable): 34(ptr) Variable Function + 40(u64): 39(ptr) Variable Function + 49(indexable): 48(ptr) Variable Function + 53(i32): 52(ptr) Variable Function + 62(indexable): 61(ptr) Variable Function + 66(u32): 65(ptr) Variable Function + 74(indexable): 73(ptr) Variable Function + 79(i16): 78(ptr) Variable Function + 88(indexable): 87(ptr) Variable Function + 93(u16): 92(ptr) Variable Function + 101(indexable): 100(ptr) Variable Function + 106(i8): 105(ptr) Variable Function + 115(indexable): 114(ptr) Variable Function + 120(u8): 119(ptr) Variable Function + 128(indexable): 127(ptr) Variable Function + 32: 31(ptr) AccessChain 28 30 + 33: 19(int) Load 32 + Store 35(indexable) 25 + 36: 17(ptr) AccessChain 35(indexable) 33 + 37: 16(int64_t) Load 36 + Store 18(i64) 37 + 46: 31(ptr) AccessChain 28 30 + 47: 19(int) Load 46 + Store 49(indexable) 45 + 50: 39(ptr) AccessChain 49(indexable) 47 + 51: 38(int64_t) Load 50 + Store 40(u64) 51 + 59: 31(ptr) AccessChain 28 30 + 60: 19(int) Load 59 + Store 62(indexable) 58 + 63: 52(ptr) AccessChain 62(indexable) 60 + 64: 29(int) Load 63 + Store 53(i32) 64 + 71: 31(ptr) AccessChain 28 30 + 72: 19(int) Load 71 + Store 74(indexable) 70 + 75: 65(ptr) AccessChain 74(indexable) 72 + 76: 19(int) Load 75 + Store 66(u32) 76 + 85: 31(ptr) AccessChain 28 30 + 86: 19(int) Load 85 + Store 88(indexable) 84 + 89: 78(ptr) AccessChain 88(indexable) 86 + 90: 77(int16_t) Load 89 + Store 79(i16) 90 + 98: 31(ptr) AccessChain 28 30 + 99: 19(int) Load 98 + Store 101(indexable) 97 + 102: 92(ptr) AccessChain 101(indexable) 99 + 103: 91(int16_t) Load 102 + Store 93(u16) 103 + 112: 31(ptr) AccessChain 28 30 + 113: 19(int) Load 112 + Store 115(indexable) 111 + 116: 105(ptr) AccessChain 115(indexable) 113 + 117: 104(int8_t) Load 116 + Store 106(i8) 117 + 125: 31(ptr) AccessChain 28 30 + 126: 19(int) Load 125 + Store 128(indexable) 124 + 129: 119(ptr) AccessChain 128(indexable) 126 + 130: 118(int8_t) Load 129 + Store 120(u8) 130 + Return + FunctionEnd + 8(typeCast8(): 2 Function None 3 + 9: Label + 133(u8v): 132(ptr) Variable Function + 136(i8v): 135(ptr) Variable Function + 141(i16v): 140(ptr) Variable Function + 150(i32v): 149(ptr) Variable Function + 158(u32v): 157(ptr) Variable Function + 164(i64v): 163(ptr) Variable Function + 169(u64v): 168(ptr) Variable Function + 183(f16v): 182(ptr) Variable Function + 189(f32v): 188(ptr) Variable Function + 195(f64v): 194(ptr) Variable Function + 222(u16v): 221(ptr) Variable Function + 252(bv): 251(ptr) Variable Function + 137: 134(i8vec2) Load 136(i8v) + 138: 131(i8vec2) Bitcast 137 + Store 133(u8v) 138 + 142: 134(i8vec2) Load 136(i8v) + 143:139(i16vec2) SConvert 142 + Store 141(i16v) 143 + 144: 131(i8vec2) Load 133(u8v) + 146:145(i16vec2) UConvert 144 + 147:139(i16vec2) Bitcast 146 + Store 141(i16v) 147 + 151: 134(i8vec2) Load 136(i8v) + 152: 148(ivec2) SConvert 151 + Store 150(i32v) 152 + 153: 131(i8vec2) Load 133(u8v) + 155: 154(ivec2) UConvert 153 + 156: 148(ivec2) Bitcast 155 + Store 150(i32v) 156 + 159: 134(i8vec2) Load 136(i8v) + 160: 148(ivec2) SConvert 159 + 161: 154(ivec2) Bitcast 160 + Store 158(u32v) 161 + 165: 134(i8vec2) Load 136(i8v) + 166:162(i64vec2) SConvert 165 + Store 164(i64v) 166 + 170: 134(i8vec2) Load 136(i8v) + 171:162(i64vec2) SConvert 170 + 172:167(i64vec2) Bitcast 171 + Store 169(u64v) 172 + 173: 131(i8vec2) Load 133(u8v) + 174: 154(ivec2) UConvert 173 + Store 158(u32v) 174 + 175: 131(i8vec2) Load 133(u8v) + 176:167(i64vec2) UConvert 175 + 177:162(i64vec2) Bitcast 176 + Store 164(i64v) 177 + 178: 131(i8vec2) Load 133(u8v) + 179:167(i64vec2) UConvert 178 + Store 169(u64v) 179 + 184: 134(i8vec2) Load 136(i8v) + 185:181(f16vec2) ConvertSToF 184 + Store 183(f16v) 185 + 190: 134(i8vec2) Load 136(i8v) + 191: 187(fvec2) ConvertSToF 190 + Store 189(f32v) 191 + 196: 134(i8vec2) Load 136(i8v) + 197:193(f64vec2) ConvertSToF 196 + Store 195(f64v) 197 + 198: 131(i8vec2) Load 133(u8v) + 199:181(f16vec2) ConvertUToF 198 + Store 183(f16v) 199 + 200: 131(i8vec2) Load 133(u8v) + 201: 187(fvec2) ConvertUToF 200 + Store 189(f32v) 201 + 202: 131(i8vec2) Load 133(u8v) + 203:193(f64vec2) ConvertUToF 202 + Store 195(f64v) 203 + 204: 131(i8vec2) Load 133(u8v) + 205: 134(i8vec2) Bitcast 204 + Store 136(i8v) 205 + 206: 134(i8vec2) Load 136(i8v) + 207:139(i16vec2) SConvert 206 + Store 141(i16v) 207 + 208: 131(i8vec2) Load 133(u8v) + 209:145(i16vec2) UConvert 208 + 210:139(i16vec2) Bitcast 209 + Store 141(i16v) 210 + 211: 134(i8vec2) Load 136(i8v) + 212: 148(ivec2) SConvert 211 + Store 150(i32v) 212 + 213: 131(i8vec2) Load 133(u8v) + 214: 154(ivec2) UConvert 213 + 215: 148(ivec2) Bitcast 214 + Store 150(i32v) 215 + 216: 134(i8vec2) Load 136(i8v) + 217:162(i64vec2) SConvert 216 + Store 164(i64v) 217 + 218: 134(i8vec2) Load 136(i8v) + 219:162(i64vec2) SConvert 218 + 220:167(i64vec2) Bitcast 219 + Store 169(u64v) 220 + 223: 134(i8vec2) Load 136(i8v) + 224:139(i16vec2) SConvert 223 + 225:145(i16vec2) Bitcast 224 + Store 222(u16v) 225 + 226: 131(i8vec2) Load 133(u8v) + 227:145(i16vec2) UConvert 226 + Store 222(u16v) 227 + 228: 131(i8vec2) Load 133(u8v) + 229: 154(ivec2) UConvert 228 + Store 158(u32v) 229 + 230: 131(i8vec2) Load 133(u8v) + 231:167(i64vec2) UConvert 230 + 232:162(i64vec2) Bitcast 231 + Store 164(i64v) 232 + 233: 131(i8vec2) Load 133(u8v) + 234:167(i64vec2) UConvert 233 + 235:162(i64vec2) Bitcast 234 + 236:167(i64vec2) Bitcast 235 + Store 169(u64v) 236 + 237: 134(i8vec2) Load 136(i8v) + 238:181(f16vec2) ConvertSToF 237 + Store 183(f16v) 238 + 239: 134(i8vec2) Load 136(i8v) + 240: 187(fvec2) ConvertSToF 239 + Store 189(f32v) 240 + 241: 134(i8vec2) Load 136(i8v) + 242:193(f64vec2) ConvertSToF 241 + Store 195(f64v) 242 + 243: 131(i8vec2) Load 133(u8v) + 244:181(f16vec2) ConvertUToF 243 + Store 183(f16v) 244 + 245: 131(i8vec2) Load 133(u8v) + 246: 187(fvec2) ConvertUToF 245 + Store 189(f32v) 246 + 247: 131(i8vec2) Load 133(u8v) + 248:193(f64vec2) ConvertUToF 247 + Store 195(f64v) 248 + 253: 250(bvec2) Load 252(bv) + 257: 134(i8vec2) Select 253 256 255 + Store 136(i8v) 257 + 258: 250(bvec2) Load 252(bv) + 263: 131(i8vec2) Select 258 262 261 + Store 133(u8v) 263 + 264: 134(i8vec2) Load 136(i8v) + 265: 250(bvec2) INotEqual 264 261 + Store 252(bv) 265 + 266: 131(i8vec2) Load 133(u8v) + 267: 250(bvec2) INotEqual 266 261 + Store 252(bv) 267 + Return + FunctionEnd + 10(typeCast16(): 2 Function None 3 + 11: Label + 268(i32v): 149(ptr) Variable Function + 269(i16v): 140(ptr) Variable Function + 272(u16v): 221(ptr) Variable Function + 278(u32v): 157(ptr) Variable Function + 282(i64v): 163(ptr) Variable Function + 285(u64v): 168(ptr) Variable Function + 296(f16v): 182(ptr) Variable Function + 299(f32v): 188(ptr) Variable Function + 302(f64v): 194(ptr) Variable Function + 347(i8v): 135(ptr) Variable Function + 353(u8v): 132(ptr) Variable Function + 363(bv): 251(ptr) Variable Function + 270:139(i16vec2) Load 269(i16v) + 271: 148(ivec2) SConvert 270 + Store 268(i32v) 271 + 273:145(i16vec2) Load 272(u16v) + 274: 154(ivec2) UConvert 273 + 275: 148(ivec2) Bitcast 274 + Store 268(i32v) 275 + 276:139(i16vec2) Load 269(i16v) + 277:145(i16vec2) Bitcast 276 + Store 272(u16v) 277 + 279:139(i16vec2) Load 269(i16v) + 280: 148(ivec2) SConvert 279 + 281: 154(ivec2) Bitcast 280 + Store 278(u32v) 281 + 283:139(i16vec2) Load 269(i16v) + 284:162(i64vec2) SConvert 283 + Store 282(i64v) 284 + 286:139(i16vec2) Load 269(i16v) + 287:162(i64vec2) SConvert 286 + 288:167(i64vec2) Bitcast 287 + Store 285(u64v) 288 + 289:145(i16vec2) Load 272(u16v) + 290: 154(ivec2) UConvert 289 + Store 278(u32v) 290 + 291:145(i16vec2) Load 272(u16v) + 292:167(i64vec2) UConvert 291 + 293:162(i64vec2) Bitcast 292 + Store 282(i64v) 293 + 294:145(i16vec2) Load 272(u16v) + 295:167(i64vec2) UConvert 294 + Store 285(u64v) 295 + 297:139(i16vec2) Load 269(i16v) + 298:181(f16vec2) ConvertSToF 297 + Store 296(f16v) 298 + 300:139(i16vec2) Load 269(i16v) + 301: 187(fvec2) ConvertSToF 300 + Store 299(f32v) 301 + 303:139(i16vec2) Load 269(i16v) + 304:193(f64vec2) ConvertSToF 303 + Store 302(f64v) 304 + 305:145(i16vec2) Load 272(u16v) + 306:181(f16vec2) ConvertUToF 305 + Store 296(f16v) 306 + 307:145(i16vec2) Load 272(u16v) + 308: 187(fvec2) ConvertUToF 307 + Store 299(f32v) 308 + 309:145(i16vec2) Load 272(u16v) + 310:193(f64vec2) ConvertUToF 309 + Store 302(f64v) 310 + 311:139(i16vec2) Load 269(i16v) + 312: 148(ivec2) SConvert 311 + Store 268(i32v) 312 + 313:145(i16vec2) Load 272(u16v) + 314: 154(ivec2) UConvert 313 + 315: 148(ivec2) Bitcast 314 + Store 268(i32v) 315 + 316:139(i16vec2) Load 269(i16v) + 317:145(i16vec2) Bitcast 316 + Store 272(u16v) 317 + 318:139(i16vec2) Load 269(i16v) + 319: 148(ivec2) SConvert 318 + 320: 154(ivec2) Bitcast 319 + Store 278(u32v) 320 + 321:139(i16vec2) Load 269(i16v) + 322:162(i64vec2) SConvert 321 + Store 282(i64v) 322 + 323:139(i16vec2) Load 269(i16v) + 324:162(i64vec2) SConvert 323 + 325:167(i64vec2) Bitcast 324 + Store 285(u64v) 325 + 326:145(i16vec2) Load 272(u16v) + 327: 154(ivec2) UConvert 326 + Store 278(u32v) 327 + 328:145(i16vec2) Load 272(u16v) + 329:167(i64vec2) UConvert 328 + 330:162(i64vec2) Bitcast 329 + Store 282(i64v) 330 + 331:145(i16vec2) Load 272(u16v) + 332:167(i64vec2) UConvert 331 + 333:162(i64vec2) Bitcast 332 + 334:167(i64vec2) Bitcast 333 + Store 285(u64v) 334 + 335:139(i16vec2) Load 269(i16v) + 336:181(f16vec2) ConvertSToF 335 + Store 296(f16v) 336 + 337:139(i16vec2) Load 269(i16v) + 338: 187(fvec2) ConvertSToF 337 + Store 299(f32v) 338 + 339:139(i16vec2) Load 269(i16v) + 340:193(f64vec2) ConvertSToF 339 + Store 302(f64v) 340 + 341:145(i16vec2) Load 272(u16v) + 342:181(f16vec2) ConvertUToF 341 + Store 296(f16v) 342 + 343:145(i16vec2) Load 272(u16v) + 344: 187(fvec2) ConvertUToF 343 + Store 299(f32v) 344 + 345:145(i16vec2) Load 272(u16v) + 346:193(f64vec2) ConvertUToF 345 + Store 302(f64v) 346 + 348:139(i16vec2) Load 269(i16v) + 349: 134(i8vec2) SConvert 348 + Store 347(i8v) 349 + 350:145(i16vec2) Load 272(u16v) + 351: 131(i8vec2) UConvert 350 + 352: 134(i8vec2) Bitcast 351 + Store 347(i8v) 352 + 354:139(i16vec2) Load 269(i16v) + 355: 134(i8vec2) SConvert 354 + 356: 131(i8vec2) Bitcast 355 + Store 353(u8v) 356 + 357:145(i16vec2) Load 272(u16v) + 358: 131(i8vec2) UConvert 357 + Store 353(u8v) 358 + 359:145(i16vec2) Load 272(u16v) + 360: 131(i8vec2) UConvert 359 + 361:145(i16vec2) UConvert 360 + 362:139(i16vec2) Bitcast 361 + Store 269(i16v) 362 + 364: 250(bvec2) Load 363(bv) + 369:139(i16vec2) Select 364 368 367 + Store 269(i16v) 369 + 370: 250(bvec2) Load 363(bv) + 375:145(i16vec2) Select 370 374 373 + Store 272(u16v) 375 + 376:139(i16vec2) Load 269(i16v) + 377: 250(bvec2) INotEqual 376 373 + Store 363(bv) 377 + 378:145(i16vec2) Load 272(u16v) + 379: 250(bvec2) INotEqual 378 373 + Store 363(bv) 379 + Return + FunctionEnd + 12(typeCast32(): 2 Function None 3 + 13: Label + 380(u32v): 157(ptr) Variable Function + 381(i32v): 149(ptr) Variable Function + 384(i64v): 163(ptr) Variable Function + 387(u64v): 168(ptr) Variable Function + 396(f32v): 188(ptr) Variable Function + 399(f64v): 194(ptr) Variable Function + 406(i8v): 135(ptr) Variable Function + 412(i16v): 140(ptr) Variable Function + 429(u8v): 132(ptr) Variable Function + 435(u16v): 221(ptr) Variable Function + 452(f16v): 182(ptr) Variable Function + 465(bv): 251(ptr) Variable Function + 382: 148(ivec2) Load 381(i32v) + 383: 154(ivec2) Bitcast 382 + Store 380(u32v) 383 + 385: 148(ivec2) Load 381(i32v) + 386:162(i64vec2) SConvert 385 + Store 384(i64v) 386 + 388: 148(ivec2) Load 381(i32v) + 389:162(i64vec2) SConvert 388 + 390:167(i64vec2) Bitcast 389 + Store 387(u64v) 390 + 391: 154(ivec2) Load 380(u32v) + 392:167(i64vec2) UConvert 391 + 393:162(i64vec2) Bitcast 392 + Store 384(i64v) 393 + 394: 154(ivec2) Load 380(u32v) + 395:167(i64vec2) UConvert 394 + Store 387(u64v) 395 + 397: 148(ivec2) Load 381(i32v) + 398: 187(fvec2) ConvertSToF 397 + Store 396(f32v) 398 + 400: 148(ivec2) Load 381(i32v) + 401:193(f64vec2) ConvertSToF 400 + Store 399(f64v) 401 + 402: 154(ivec2) Load 380(u32v) + 403: 187(fvec2) ConvertUToF 402 + Store 396(f32v) 403 + 404: 154(ivec2) Load 380(u32v) + 405:193(f64vec2) ConvertUToF 404 + Store 399(f64v) 405 + 407: 148(ivec2) Load 381(i32v) + 408: 134(i8vec2) SConvert 407 + Store 406(i8v) 408 + 409: 154(ivec2) Load 380(u32v) + 410: 131(i8vec2) UConvert 409 + 411: 134(i8vec2) Bitcast 410 + Store 406(i8v) 411 + 413: 148(ivec2) Load 381(i32v) + 414:139(i16vec2) SConvert 413 + Store 412(i16v) 414 + 415: 154(ivec2) Load 380(u32v) + 416:145(i16vec2) UConvert 415 + 417:139(i16vec2) Bitcast 416 + Store 412(i16v) 417 + 418: 148(ivec2) Load 381(i32v) + 419: 29(int) CompositeExtract 418 0 + 420: 29(int) CompositeExtract 418 1 + 421: 148(ivec2) CompositeConstruct 419 420 + Store 381(i32v) 421 + 422: 154(ivec2) Load 380(u32v) + 423: 148(ivec2) Bitcast 422 + Store 381(i32v) 423 + 424: 148(ivec2) Load 381(i32v) + 425:162(i64vec2) SConvert 424 + Store 384(i64v) 425 + 426: 154(ivec2) Load 380(u32v) + 427:167(i64vec2) UConvert 426 + 428:162(i64vec2) Bitcast 427 + Store 384(i64v) 428 + 430: 148(ivec2) Load 381(i32v) + 431: 134(i8vec2) SConvert 430 + 432: 131(i8vec2) Bitcast 431 + Store 429(u8v) 432 + 433: 154(ivec2) Load 380(u32v) + 434: 131(i8vec2) UConvert 433 + Store 429(u8v) 434 + 436: 148(ivec2) Load 381(i32v) + 437:139(i16vec2) SConvert 436 + 438:145(i16vec2) Bitcast 437 + Store 435(u16v) 438 + 439: 154(ivec2) Load 380(u32v) + 440:145(i16vec2) UConvert 439 + Store 435(u16v) 440 + 441: 148(ivec2) Load 381(i32v) + 442: 154(ivec2) Bitcast 441 + Store 380(u32v) 442 + 443: 154(ivec2) Load 380(u32v) + 444: 19(int) CompositeExtract 443 0 + 445: 19(int) CompositeExtract 443 1 + 446: 154(ivec2) CompositeConstruct 444 445 + Store 380(u32v) 446 + 447: 148(ivec2) Load 381(i32v) + 448:162(i64vec2) SConvert 447 + 449:167(i64vec2) Bitcast 448 + Store 387(u64v) 449 + 450: 154(ivec2) Load 380(u32v) + 451:167(i64vec2) UConvert 450 + Store 387(u64v) 451 + 453: 148(ivec2) Load 381(i32v) + 454:181(f16vec2) ConvertSToF 453 + Store 452(f16v) 454 + 455: 148(ivec2) Load 381(i32v) + 456: 187(fvec2) ConvertSToF 455 + Store 396(f32v) 456 + 457: 148(ivec2) Load 381(i32v) + 458:193(f64vec2) ConvertSToF 457 + Store 399(f64v) 458 + 459: 154(ivec2) Load 380(u32v) + 460:181(f16vec2) ConvertUToF 459 + Store 452(f16v) 460 + 461: 154(ivec2) Load 380(u32v) + 462: 187(fvec2) ConvertUToF 461 + Store 396(f32v) 462 + 463: 154(ivec2) Load 380(u32v) + 464:193(f64vec2) ConvertUToF 463 + Store 399(f64v) 464 + 466: 250(bvec2) Load 465(bv) + 470: 148(ivec2) Select 466 469 468 + Store 381(i32v) 470 + 471: 250(bvec2) Load 465(bv) + 476: 154(ivec2) Select 471 475 474 + Store 380(u32v) 476 + 477: 148(ivec2) Load 381(i32v) + 478: 250(bvec2) INotEqual 477 474 + Store 465(bv) 478 + 479: 154(ivec2) Load 380(u32v) + 480: 250(bvec2) INotEqual 479 474 + Store 465(bv) 480 + Return + FunctionEnd + 14(typeCast64(): 2 Function None 3 + 15: Label + 481(u64v): 168(ptr) Variable Function + 482(i64v): 163(ptr) Variable Function + 485(f64v): 194(ptr) Variable Function + 490(i8v): 135(ptr) Variable Function + 496(i16v): 140(ptr) Variable Function + 502(i32v): 149(ptr) Variable Function + 510(u8v): 132(ptr) Variable Function + 516(u16v): 221(ptr) Variable Function + 522(u32v): 157(ptr) Variable Function + 534(f16v): 182(ptr) Variable Function + 537(f32v): 188(ptr) Variable Function + 548(bv): 251(ptr) Variable Function + 483:162(i64vec2) Load 482(i64v) + 484:167(i64vec2) Bitcast 483 + Store 481(u64v) 484 + 486:162(i64vec2) Load 482(i64v) + 487:193(f64vec2) ConvertSToF 486 + Store 485(f64v) 487 + 488:167(i64vec2) Load 481(u64v) + 489:193(f64vec2) ConvertUToF 488 + Store 485(f64v) 489 + 491:162(i64vec2) Load 482(i64v) + 492: 134(i8vec2) SConvert 491 + Store 490(i8v) 492 + 493:167(i64vec2) Load 481(u64v) + 494: 131(i8vec2) UConvert 493 + 495: 134(i8vec2) Bitcast 494 + Store 490(i8v) 495 + 497:162(i64vec2) Load 482(i64v) + 498:139(i16vec2) SConvert 497 + Store 496(i16v) 498 + 499:167(i64vec2) Load 481(u64v) + 500:145(i16vec2) UConvert 499 + 501:139(i16vec2) Bitcast 500 + Store 496(i16v) 501 + 503:162(i64vec2) Load 482(i64v) + 504: 148(ivec2) SConvert 503 + Store 502(i32v) 504 + 505:167(i64vec2) Load 481(u64v) + 506: 154(ivec2) UConvert 505 + 507: 148(ivec2) Bitcast 506 + Store 502(i32v) 507 + 508:167(i64vec2) Load 481(u64v) + 509:162(i64vec2) Bitcast 508 + Store 482(i64v) 509 + 511:162(i64vec2) Load 482(i64v) + 512: 134(i8vec2) SConvert 511 + 513: 131(i8vec2) Bitcast 512 + Store 510(u8v) 513 + 514:167(i64vec2) Load 481(u64v) + 515: 131(i8vec2) UConvert 514 + Store 510(u8v) 515 + 517:162(i64vec2) Load 482(i64v) + 518:139(i16vec2) SConvert 517 + 519:145(i16vec2) Bitcast 518 + Store 516(u16v) 519 + 520:167(i64vec2) Load 481(u64v) + 521:145(i16vec2) UConvert 520 + Store 516(u16v) 521 + 523:162(i64vec2) Load 482(i64v) + 524: 148(ivec2) SConvert 523 + 525: 154(ivec2) Bitcast 524 + Store 522(u32v) 525 + 526:167(i64vec2) Load 481(u64v) + 527: 154(ivec2) UConvert 526 + Store 522(u32v) 527 + 528:162(i64vec2) Load 482(i64v) + 529:167(i64vec2) Bitcast 528 + Store 481(u64v) 529 + 530:167(i64vec2) Load 481(u64v) + 531: 38(int64_t) CompositeExtract 530 0 + 532: 38(int64_t) CompositeExtract 530 1 + 533:167(i64vec2) CompositeConstruct 531 532 + Store 481(u64v) 533 + 535:162(i64vec2) Load 482(i64v) + 536:181(f16vec2) ConvertSToF 535 + Store 534(f16v) 536 + 538:162(i64vec2) Load 482(i64v) + 539: 187(fvec2) ConvertSToF 538 + Store 537(f32v) 539 + 540:162(i64vec2) Load 482(i64v) + 541:193(f64vec2) ConvertSToF 540 + Store 485(f64v) 541 + 542:167(i64vec2) Load 481(u64v) + 543:181(f16vec2) ConvertUToF 542 + Store 534(f16v) 543 + 544:167(i64vec2) Load 481(u64v) + 545: 187(fvec2) ConvertUToF 544 + Store 537(f32v) 545 + 546:167(i64vec2) Load 481(u64v) + 547:193(f64vec2) ConvertUToF 546 + Store 485(f64v) 547 + 549: 250(bvec2) Load 548(bv) + 554:162(i64vec2) Select 549 553 552 + Store 482(i64v) 554 + 555: 250(bvec2) Load 548(bv) + 560:167(i64vec2) Select 555 559 558 + Store 481(u64v) 560 + 561:162(i64vec2) Load 482(i64v) + 562: 250(bvec2) INotEqual 561 558 + Store 548(bv) 562 + 563:167(i64vec2) Load 481(u64v) + 564: 250(bvec2) INotEqual 563 558 + Store 548(bv) 564 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out b/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out new file mode 100644 index 0000000000..85a2359368 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out @@ -0,0 +1,23 @@ +spv.extPostDepthCoverage.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 6 + + Capability Shader + Capability SampleMaskPostDepthCoverage + Extension "SPV_KHR_post_depth_coverage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 EarlyFragmentTests + ExecutionMode 4 PostDepthCoverage + Source ESSL 310 + SourceExtension "GL_EXT_post_depth_coverage" + Name 4 "main" + 2: TypeVoid + 3: TypeFunction 2 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out b/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out new file mode 100644 index 0000000000..9ce299f462 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out @@ -0,0 +1,4 @@ +spv.extPostDepthCoverage_Error.frag +ERROR: Linking fragment stage: post_depth_coverage requires early_fragment_tests + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out new file mode 100644 index 0000000000..b6d37f4555 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.float16.frag.out @@ -0,0 +1,837 @@ +spv.float16.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 534 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability DerivativeControl + Capability InterpolationFunction + Capability StorageUniformBufferBlock16 + Capability StorageUniform16 + Capability StorageInputOutput16 + Extension "SPV_AMD_gpu_shader_half_float" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 465 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_gpu_shader_half_float" + SourceExtension "GL_ARB_gpu_shader_int64" + Name 4 "main" + Name 6 "literal(" + Name 8 "operators(" + Name 10 "typeCast(" + Name 12 "builtinAngleTrigFuncs(" + Name 14 "builtinExpFuncs(" + Name 16 "builtinCommonFuncs(" + Name 18 "builtinPackUnpackFuncs(" + Name 20 "builtinGeometryFuncs(" + Name 22 "builtinMatrixFuncs(" + Name 24 "builtinVecRelFuncs(" + Name 26 "builtinFragProcFuncs(" + Name 31 "f16v" + Name 42 "f16v" + Name 64 "f16m" + Name 87 "f16" + Name 111 "b" + Name 153 "f16v" + Name 156 "bv" + Name 167 "fv" + Name 175 "dv" + Name 186 "iv" + Name 193 "uv" + Name 201 "i64v" + Name 209 "u64v" + Name 216 "f16v2" + Name 217 "f16v1" + Name 249 "f16v2" + Name 250 "f16v1" + Name 266 "f16v2" + Name 267 "f16v1" + Name 288 "f16" + Name 292 "f16v3" + Name 332 "bv" + Name 353 "b" + Name 363 "iv" + Name 364 "ResType" + Name 372 "u" + Name 373 "f16v" + Name 378 "f16" + Name 379 "f16v1" + Name 383 "f16v2" + Name 389 "f16v3" + Name 408 "f16m3" + Name 409 "f16m1" + Name 411 "f16m2" + Name 420 "f16v1" + Name 422 "f16v2" + Name 427 "f16m4" + Name 430 "f16" + Name 433 "f16m5" + Name 438 "f16m6" + Name 439 "f16m7" + Name 442 "bv" + Name 443 "f16v1" + Name 445 "f16v2" + Name 463 "f16v" + Name 465 "if16v" + Name 514 "S" + MemberName 514(S) 0 "x" + MemberName 514(S) 1 "y" + MemberName 514(S) 2 "z" + Name 516 "B1" + MemberName 516(B1) 0 "a" + MemberName 516(B1) 1 "b" + MemberName 516(B1) 2 "c" + MemberName 516(B1) 3 "d" + MemberName 516(B1) 4 "e" + MemberName 516(B1) 5 "f" + MemberName 516(B1) 6 "g" + MemberName 516(B1) 7 "h" + Name 518 "" + Name 521 "S" + MemberName 521(S) 0 "x" + MemberName 521(S) 1 "y" + MemberName 521(S) 2 "z" + Name 523 "B2" + MemberName 523(B2) 0 "o" + MemberName 523(B2) 1 "p" + MemberName 523(B2) 2 "q" + MemberName 523(B2) 3 "r" + MemberName 523(B2) 4 "s" + MemberName 523(B2) 5 "t" + MemberName 523(B2) 6 "u" + MemberName 523(B2) 7 "v" + Name 525 "" + Name 526 "sf16" + Name 527 "sf" + Name 528 "sd" + Decorate 512 ArrayStride 16 + Decorate 513 ArrayStride 32 + MemberDecorate 514(S) 0 Offset 0 + MemberDecorate 514(S) 1 Offset 4 + MemberDecorate 514(S) 2 Offset 8 + Decorate 515 ArrayStride 16 + MemberDecorate 516(B1) 0 Offset 0 + MemberDecorate 516(B1) 1 Offset 4 + MemberDecorate 516(B1) 2 Offset 8 + MemberDecorate 516(B1) 3 Offset 16 + MemberDecorate 516(B1) 4 ColMajor + MemberDecorate 516(B1) 4 Offset 48 + MemberDecorate 516(B1) 4 MatrixStride 16 + MemberDecorate 516(B1) 5 ColMajor + MemberDecorate 516(B1) 5 Offset 80 + MemberDecorate 516(B1) 5 MatrixStride 16 + MemberDecorate 516(B1) 6 Offset 144 + MemberDecorate 516(B1) 7 Offset 160 + Decorate 516(B1) Block + Decorate 518 DescriptorSet 0 + Decorate 519 ArrayStride 2 + Decorate 520 ArrayStride 12 + MemberDecorate 521(S) 0 Offset 0 + MemberDecorate 521(S) 1 Offset 4 + MemberDecorate 521(S) 2 Offset 8 + Decorate 522 ArrayStride 16 + MemberDecorate 523(B2) 0 Offset 0 + MemberDecorate 523(B2) 1 Offset 4 + MemberDecorate 523(B2) 2 Offset 8 + MemberDecorate 523(B2) 3 Offset 14 + MemberDecorate 523(B2) 4 RowMajor + MemberDecorate 523(B2) 4 Offset 20 + MemberDecorate 523(B2) 4 MatrixStride 4 + MemberDecorate 523(B2) 5 RowMajor + MemberDecorate 523(B2) 5 Offset 32 + MemberDecorate 523(B2) 5 MatrixStride 4 + MemberDecorate 523(B2) 6 Offset 56 + MemberDecorate 523(B2) 7 Offset 72 + Decorate 523(B2) BufferBlock + Decorate 525 DescriptorSet 0 + Decorate 526(sf16) SpecId 100 + Decorate 527(sf) SpecId 101 + Decorate 528(sd) SpecId 102 + 2: TypeVoid + 3: TypeFunction 2 + 28: TypeFloat 16 + 29: TypeVector 28(float16_t) 2 + 30: TypePointer Function 29(f16vec2) + 32:28(float16_t) Constant 16 + 33: TypeInt 32 0 + 34: 33(int) Constant 0 + 35: TypePointer Function 28(float16_t) + 37:28(float16_t) Constant 46080 + 38:28(float16_t) Constant 10158 + 39: 29(f16vec2) ConstantComposite 37 38 + 56:28(float16_t) Constant 15360 + 62: TypeMatrix 29(f16vec2) 2 + 63: TypePointer Function 62 + 90: 33(int) Constant 1 + 109: TypeBool + 110: TypePointer Function 109(bool) + 151: TypeVector 28(float16_t) 3 + 152: TypePointer Function 151(f16vec3) + 154: TypeVector 109(bool) 3 + 155: TypePointer Function 154(bvec3) + 158:28(float16_t) Constant 0 + 159:151(f16vec3) ConstantComposite 158 158 158 + 160:151(f16vec3) ConstantComposite 56 56 56 + 164: TypeFloat 32 + 165: TypeVector 164(float) 3 + 166: TypePointer Function 165(fvec3) + 172: TypeFloat 64 + 173: TypeVector 172(float64_t) 3 + 174: TypePointer Function 173(f64vec3) + 183: TypeInt 32 1 + 184: TypeVector 183(int) 3 + 185: TypePointer Function 184(ivec3) + 191: TypeVector 33(int) 3 + 192: TypePointer Function 191(ivec3) + 198: TypeInt 64 1 + 199: TypeVector 198(int64_t) 3 + 200: TypePointer Function 199(i64vec3) + 206: TypeInt 64 0 + 207: TypeVector 206(int64_t) 3 + 208: TypePointer Function 207(i64vec3) + 214: TypeVector 28(float16_t) 4 + 215: TypePointer Function 214(f16vec4) + 364(ResType): TypeStruct 151(f16vec3) 184(ivec3) + 371: TypePointer Function 33(int) + 406: TypeMatrix 151(f16vec3) 2 + 407: TypePointer Function 406 + 425: TypeMatrix 29(f16vec2) 3 + 426: TypePointer Function 425 + 431: TypeMatrix 151(f16vec3) 3 + 432: TypePointer Function 431 + 436: TypeMatrix 214(f16vec4) 4 + 437: TypePointer Function 436 + 464: TypePointer Input 151(f16vec3) + 465(if16v): 464(ptr) Variable Input + 466: TypePointer Input 28(float16_t) + 503: 183(int) Constant 1 + 508:28(float16_t) Constant 14336 + 509: 29(f16vec2) ConstantComposite 508 508 + 511: 33(int) Constant 2 + 512: TypeArray 28(float16_t) 511 + 513: TypeArray 406 511 + 514(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) + 515: TypeArray 514(S) 511 + 516(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 512 406 513 514(S) 515 + 517: TypePointer Uniform 516(B1) + 518: 517(ptr) Variable Uniform + 519: TypeArray 28(float16_t) 511 + 520: TypeArray 406 511 + 521(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) + 522: TypeArray 521(S) 511 + 523(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 519 406 520 521(S) 522 + 524: TypePointer Uniform 523(B2) + 525: 524(ptr) Variable Uniform + 526(sf16):28(float16_t) SpecConstant 12288 + 527(sf): 164(float) SpecConstant 1048576000 + 528(sd):172(float64_t) SpecConstant 0 1071644672 + 529: 164(float) SpecConstantOp 115 526(sf16) + 530: 164(float) SpecConstantOp 115 526(sf16) + 531:172(float64_t) SpecConstantOp 115 530 + 532:28(float16_t) SpecConstantOp 115 527(sf) + 533:28(float16_t) SpecConstantOp 115 528(sd) + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 31(f16v): 30(ptr) Variable Function + 36: 35(ptr) AccessChain 31(f16v) 34 + Store 36 32 + 40: 29(f16vec2) Load 31(f16v) + 41: 29(f16vec2) FAdd 40 39 + Store 31(f16v) 41 + Return + FunctionEnd + 8(operators(): 2 Function None 3 + 9: Label + 42(f16v): 30(ptr) Variable Function + 64(f16m): 63(ptr) Variable Function + 87(f16): 35(ptr) Variable Function + 111(b): 110(ptr) Variable Function + 43: 29(f16vec2) Load 42(f16v) + 44: 29(f16vec2) Load 42(f16v) + 45: 29(f16vec2) FAdd 44 43 + Store 42(f16v) 45 + 46: 29(f16vec2) Load 42(f16v) + 47: 29(f16vec2) Load 42(f16v) + 48: 29(f16vec2) FSub 47 46 + Store 42(f16v) 48 + 49: 29(f16vec2) Load 42(f16v) + 50: 29(f16vec2) Load 42(f16v) + 51: 29(f16vec2) FMul 50 49 + Store 42(f16v) 51 + 52: 29(f16vec2) Load 42(f16v) + 53: 29(f16vec2) Load 42(f16v) + 54: 29(f16vec2) FDiv 53 52 + Store 42(f16v) 54 + 55: 29(f16vec2) Load 42(f16v) + 57: 29(f16vec2) CompositeConstruct 56 56 + 58: 29(f16vec2) FAdd 55 57 + Store 42(f16v) 58 + 59: 29(f16vec2) Load 42(f16v) + 60: 29(f16vec2) CompositeConstruct 56 56 + 61: 29(f16vec2) FSub 59 60 + Store 42(f16v) 61 + 65: 62 Load 64(f16m) + 66: 29(f16vec2) CompositeConstruct 56 56 + 67: 29(f16vec2) CompositeExtract 65 0 + 68: 29(f16vec2) FAdd 67 66 + 69: 29(f16vec2) CompositeExtract 65 1 + 70: 29(f16vec2) FAdd 69 66 + 71: 62 CompositeConstruct 68 70 + Store 64(f16m) 71 + 72: 62 Load 64(f16m) + 73: 29(f16vec2) CompositeConstruct 56 56 + 74: 29(f16vec2) CompositeExtract 72 0 + 75: 29(f16vec2) FSub 74 73 + 76: 29(f16vec2) CompositeExtract 72 1 + 77: 29(f16vec2) FSub 76 73 + 78: 62 CompositeConstruct 75 77 + Store 64(f16m) 78 + 79: 29(f16vec2) Load 42(f16v) + 80: 29(f16vec2) FNegate 79 + Store 42(f16v) 80 + 81: 62 Load 64(f16m) + 82: 29(f16vec2) CompositeExtract 81 0 + 83: 29(f16vec2) FNegate 82 + 84: 29(f16vec2) CompositeExtract 81 1 + 85: 29(f16vec2) FNegate 84 + 86: 62 CompositeConstruct 83 85 + Store 64(f16m) 86 + 88: 35(ptr) AccessChain 42(f16v) 34 + 89:28(float16_t) Load 88 + 91: 35(ptr) AccessChain 42(f16v) 90 + 92:28(float16_t) Load 91 + 93:28(float16_t) FAdd 89 92 + Store 87(f16) 93 + 94: 35(ptr) AccessChain 42(f16v) 34 + 95:28(float16_t) Load 94 + 96: 35(ptr) AccessChain 42(f16v) 90 + 97:28(float16_t) Load 96 + 98:28(float16_t) FSub 95 97 + Store 87(f16) 98 + 99: 35(ptr) AccessChain 42(f16v) 34 + 100:28(float16_t) Load 99 + 101: 35(ptr) AccessChain 42(f16v) 90 + 102:28(float16_t) Load 101 + 103:28(float16_t) FMul 100 102 + Store 87(f16) 103 + 104: 35(ptr) AccessChain 42(f16v) 34 + 105:28(float16_t) Load 104 + 106: 35(ptr) AccessChain 42(f16v) 90 + 107:28(float16_t) Load 106 + 108:28(float16_t) FDiv 105 107 + Store 87(f16) 108 + 112: 35(ptr) AccessChain 42(f16v) 34 + 113:28(float16_t) Load 112 + 114:28(float16_t) Load 87(f16) + 115: 109(bool) FOrdNotEqual 113 114 + Store 111(b) 115 + 116: 35(ptr) AccessChain 42(f16v) 90 + 117:28(float16_t) Load 116 + 118:28(float16_t) Load 87(f16) + 119: 109(bool) FOrdEqual 117 118 + Store 111(b) 119 + 120: 35(ptr) AccessChain 42(f16v) 34 + 121:28(float16_t) Load 120 + 122:28(float16_t) Load 87(f16) + 123: 109(bool) FOrdGreaterThan 121 122 + Store 111(b) 123 + 124: 35(ptr) AccessChain 42(f16v) 90 + 125:28(float16_t) Load 124 + 126:28(float16_t) Load 87(f16) + 127: 109(bool) FOrdLessThan 125 126 + Store 111(b) 127 + 128: 35(ptr) AccessChain 42(f16v) 34 + 129:28(float16_t) Load 128 + 130:28(float16_t) Load 87(f16) + 131: 109(bool) FOrdGreaterThanEqual 129 130 + Store 111(b) 131 + 132: 35(ptr) AccessChain 42(f16v) 90 + 133:28(float16_t) Load 132 + 134:28(float16_t) Load 87(f16) + 135: 109(bool) FOrdLessThanEqual 133 134 + Store 111(b) 135 + 136: 29(f16vec2) Load 42(f16v) + 137:28(float16_t) Load 87(f16) + 138: 29(f16vec2) VectorTimesScalar 136 137 + Store 42(f16v) 138 + 139: 62 Load 64(f16m) + 140:28(float16_t) Load 87(f16) + 141: 62 MatrixTimesScalar 139 140 + Store 64(f16m) 141 + 142: 62 Load 64(f16m) + 143: 29(f16vec2) Load 42(f16v) + 144: 29(f16vec2) MatrixTimesVector 142 143 + Store 42(f16v) 144 + 145: 29(f16vec2) Load 42(f16v) + 146: 62 Load 64(f16m) + 147: 29(f16vec2) VectorTimesMatrix 145 146 + Store 42(f16v) 147 + 148: 62 Load 64(f16m) + 149: 62 Load 64(f16m) + 150: 62 MatrixTimesMatrix 148 149 + Store 64(f16m) 150 + Return + FunctionEnd + 10(typeCast(): 2 Function None 3 + 11: Label + 153(f16v): 152(ptr) Variable Function + 156(bv): 155(ptr) Variable Function + 167(fv): 166(ptr) Variable Function + 175(dv): 174(ptr) Variable Function + 186(iv): 185(ptr) Variable Function + 193(uv): 192(ptr) Variable Function + 201(i64v): 200(ptr) Variable Function + 209(u64v): 208(ptr) Variable Function + 157: 154(bvec3) Load 156(bv) + 161:151(f16vec3) Select 157 160 159 + Store 153(f16v) 161 + 162:151(f16vec3) Load 153(f16v) + 163: 154(bvec3) FOrdNotEqual 162 159 + Store 156(bv) 163 + 168: 165(fvec3) Load 167(fv) + 169:151(f16vec3) FConvert 168 + Store 153(f16v) 169 + 170:151(f16vec3) Load 153(f16v) + 171: 165(fvec3) FConvert 170 + Store 167(fv) 171 + 176:173(f64vec3) Load 175(dv) + 177:151(f16vec3) FConvert 176 + Store 153(f16v) 177 + 178:173(f64vec3) Load 175(dv) + 179:172(float64_t) CompositeExtract 178 0 + 180:172(float64_t) CompositeExtract 178 1 + 181:172(float64_t) CompositeExtract 178 2 + 182:173(f64vec3) CompositeConstruct 179 180 181 + Store 175(dv) 182 + 187: 184(ivec3) Load 186(iv) + 188:151(f16vec3) ConvertSToF 187 + Store 153(f16v) 188 + 189:151(f16vec3) Load 153(f16v) + 190: 184(ivec3) ConvertFToS 189 + Store 186(iv) 190 + 194: 191(ivec3) Load 193(uv) + 195:151(f16vec3) ConvertUToF 194 + Store 153(f16v) 195 + 196:151(f16vec3) Load 153(f16v) + 197: 191(ivec3) ConvertFToU 196 + Store 193(uv) 197 + 202:199(i64vec3) Load 201(i64v) + 203:151(f16vec3) ConvertSToF 202 + Store 153(f16v) 203 + 204:151(f16vec3) Load 153(f16v) + 205:199(i64vec3) ConvertFToS 204 + Store 201(i64v) 205 + 210:207(i64vec3) Load 209(u64v) + 211:151(f16vec3) ConvertUToF 210 + Store 153(f16v) 211 + 212:151(f16vec3) Load 153(f16v) + 213:207(i64vec3) ConvertFToU 212 + Store 209(u64v) 213 + Return + FunctionEnd +12(builtinAngleTrigFuncs(): 2 Function None 3 + 13: Label + 216(f16v2): 215(ptr) Variable Function + 217(f16v1): 215(ptr) Variable Function + 218:214(f16vec4) Load 217(f16v1) + 219:214(f16vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 + Store 216(f16v2) 219 + 220:214(f16vec4) Load 217(f16v1) + 221:214(f16vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 + Store 216(f16v2) 221 + 222:214(f16vec4) Load 217(f16v1) + 223:214(f16vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 + Store 216(f16v2) 223 + 224:214(f16vec4) Load 217(f16v1) + 225:214(f16vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 + Store 216(f16v2) 225 + 226:214(f16vec4) Load 217(f16v1) + 227:214(f16vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 + Store 216(f16v2) 227 + 228:214(f16vec4) Load 217(f16v1) + 229:214(f16vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 + Store 216(f16v2) 229 + 230:214(f16vec4) Load 217(f16v1) + 231:214(f16vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 + Store 216(f16v2) 231 + 232:214(f16vec4) Load 217(f16v1) + 233:214(f16vec4) Load 216(f16v2) + 234:214(f16vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 + Store 216(f16v2) 234 + 235:214(f16vec4) Load 217(f16v1) + 236:214(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 + Store 216(f16v2) 236 + 237:214(f16vec4) Load 217(f16v1) + 238:214(f16vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 + Store 216(f16v2) 238 + 239:214(f16vec4) Load 217(f16v1) + 240:214(f16vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 + Store 216(f16v2) 240 + 241:214(f16vec4) Load 217(f16v1) + 242:214(f16vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 + Store 216(f16v2) 242 + 243:214(f16vec4) Load 217(f16v1) + 244:214(f16vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 + Store 216(f16v2) 244 + 245:214(f16vec4) Load 217(f16v1) + 246:214(f16vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 + Store 216(f16v2) 246 + 247:214(f16vec4) Load 217(f16v1) + 248:214(f16vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 + Store 216(f16v2) 248 + Return + FunctionEnd +14(builtinExpFuncs(): 2 Function None 3 + 15: Label + 249(f16v2): 30(ptr) Variable Function + 250(f16v1): 30(ptr) Variable Function + 251: 29(f16vec2) Load 250(f16v1) + 252: 29(f16vec2) Load 249(f16v2) + 253: 29(f16vec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 + Store 249(f16v2) 253 + 254: 29(f16vec2) Load 250(f16v1) + 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 + Store 249(f16v2) 255 + 256: 29(f16vec2) Load 250(f16v1) + 257: 29(f16vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 + Store 249(f16v2) 257 + 258: 29(f16vec2) Load 250(f16v1) + 259: 29(f16vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 + Store 249(f16v2) 259 + 260: 29(f16vec2) Load 250(f16v1) + 261: 29(f16vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 + Store 249(f16v2) 261 + 262: 29(f16vec2) Load 250(f16v1) + 263: 29(f16vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 + Store 249(f16v2) 263 + 264: 29(f16vec2) Load 250(f16v1) + 265: 29(f16vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 + Store 249(f16v2) 265 + Return + FunctionEnd +16(builtinCommonFuncs(): 2 Function None 3 + 17: Label + 266(f16v2): 152(ptr) Variable Function + 267(f16v1): 152(ptr) Variable Function + 288(f16): 35(ptr) Variable Function + 292(f16v3): 152(ptr) Variable Function + 332(bv): 155(ptr) Variable Function + 353(b): 110(ptr) Variable Function + 363(iv): 185(ptr) Variable Function + 268:151(f16vec3) Load 267(f16v1) + 269:151(f16vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 + Store 266(f16v2) 269 + 270:151(f16vec3) Load 267(f16v1) + 271:151(f16vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 + Store 266(f16v2) 271 + 272:151(f16vec3) Load 267(f16v1) + 273:151(f16vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 + Store 266(f16v2) 273 + 274:151(f16vec3) Load 267(f16v1) + 275:151(f16vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 + Store 266(f16v2) 275 + 276:151(f16vec3) Load 267(f16v1) + 277:151(f16vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 + Store 266(f16v2) 277 + 278:151(f16vec3) Load 267(f16v1) + 279:151(f16vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 + Store 266(f16v2) 279 + 280:151(f16vec3) Load 267(f16v1) + 281:151(f16vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 + Store 266(f16v2) 281 + 282:151(f16vec3) Load 267(f16v1) + 283:151(f16vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 + Store 266(f16v2) 283 + 284:151(f16vec3) Load 267(f16v1) + 285:151(f16vec3) Load 266(f16v2) + 286:151(f16vec3) FMod 284 285 + Store 266(f16v2) 286 + 287:151(f16vec3) Load 267(f16v1) + 289:28(float16_t) Load 288(f16) + 290:151(f16vec3) CompositeConstruct 289 289 289 + 291:151(f16vec3) FMod 287 290 + Store 266(f16v2) 291 + 293:151(f16vec3) Load 267(f16v1) + 294:151(f16vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) + Store 292(f16v3) 294 + 295:151(f16vec3) Load 267(f16v1) + 296:151(f16vec3) Load 266(f16v2) + 297:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 + Store 292(f16v3) 297 + 298:151(f16vec3) Load 267(f16v1) + 299:28(float16_t) Load 288(f16) + 300:151(f16vec3) CompositeConstruct 299 299 299 + 301:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 + Store 292(f16v3) 301 + 302:151(f16vec3) Load 267(f16v1) + 303:151(f16vec3) Load 266(f16v2) + 304:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 + Store 292(f16v3) 304 + 305:151(f16vec3) Load 267(f16v1) + 306:28(float16_t) Load 288(f16) + 307:151(f16vec3) CompositeConstruct 306 306 306 + 308:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 + Store 292(f16v3) 308 + 309:151(f16vec3) Load 267(f16v1) + 310:28(float16_t) Load 288(f16) + 311: 35(ptr) AccessChain 266(f16v2) 34 + 312:28(float16_t) Load 311 + 313:151(f16vec3) CompositeConstruct 310 310 310 + 314:151(f16vec3) CompositeConstruct 312 312 312 + 315:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 + Store 292(f16v3) 315 + 316:151(f16vec3) Load 267(f16v1) + 317:151(f16vec3) Load 266(f16v2) + 318:28(float16_t) Load 288(f16) + 319:151(f16vec3) CompositeConstruct 318 318 318 + 320:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 + Store 292(f16v3) 320 + 321:151(f16vec3) Load 267(f16v1) + 322:151(f16vec3) Load 266(f16v2) + 323:28(float16_t) Load 288(f16) + 324:151(f16vec3) CompositeConstruct 323 323 323 + 325:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 + Store 292(f16v3) 325 + 326:151(f16vec3) Load 267(f16v1) + 327:151(f16vec3) Load 266(f16v2) + 328:151(f16vec3) Load 292(f16v3) + 329:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 + Store 292(f16v3) 329 + 330:151(f16vec3) Load 267(f16v1) + 331:151(f16vec3) Load 266(f16v2) + 333: 154(bvec3) Load 332(bv) + 334:151(f16vec3) Select 333 331 330 + Store 292(f16v3) 334 + 335:151(f16vec3) Load 267(f16v1) + 336:151(f16vec3) Load 266(f16v2) + 337:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 + Store 292(f16v3) 337 + 338:28(float16_t) Load 288(f16) + 339:151(f16vec3) Load 292(f16v3) + 340:151(f16vec3) CompositeConstruct 338 338 338 + 341:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 + Store 292(f16v3) 341 + 342:151(f16vec3) Load 267(f16v1) + 343:151(f16vec3) Load 266(f16v2) + 344:151(f16vec3) Load 292(f16v3) + 345:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 + Store 292(f16v3) 345 + 346:28(float16_t) Load 288(f16) + 347: 35(ptr) AccessChain 267(f16v1) 34 + 348:28(float16_t) Load 347 + 349:151(f16vec3) Load 266(f16v2) + 350:151(f16vec3) CompositeConstruct 346 346 346 + 351:151(f16vec3) CompositeConstruct 348 348 348 + 352:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 + Store 292(f16v3) 352 + 354:28(float16_t) Load 288(f16) + 355: 109(bool) IsNan 354 + Store 353(b) 355 + 356:151(f16vec3) Load 267(f16v1) + 357: 154(bvec3) IsInf 356 + Store 332(bv) 357 + 358:151(f16vec3) Load 267(f16v1) + 359:151(f16vec3) Load 266(f16v2) + 360:151(f16vec3) Load 292(f16v3) + 361:151(f16vec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 + Store 292(f16v3) 361 + 362:151(f16vec3) Load 267(f16v1) + 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 + 366: 184(ivec3) CompositeExtract 365 1 + Store 363(iv) 366 + 367:151(f16vec3) CompositeExtract 365 0 + Store 266(f16v2) 367 + 368:151(f16vec3) Load 267(f16v1) + 369: 184(ivec3) Load 363(iv) + 370:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 + Store 266(f16v2) 370 + Return + FunctionEnd +18(builtinPackUnpackFuncs(): 2 Function None 3 + 19: Label + 372(u): 371(ptr) Variable Function + 373(f16v): 30(ptr) Variable Function + 374: 29(f16vec2) Load 373(f16v) + 375: 33(int) Bitcast 374 + Store 372(u) 375 + 376: 33(int) Load 372(u) + 377: 29(f16vec2) Bitcast 376 + Store 373(f16v) 377 + Return + FunctionEnd +20(builtinGeometryFuncs(): 2 Function None 3 + 21: Label + 378(f16): 35(ptr) Variable Function + 379(f16v1): 152(ptr) Variable Function + 383(f16v2): 152(ptr) Variable Function + 389(f16v3): 152(ptr) Variable Function + 380:151(f16vec3) Load 379(f16v1) + 381:28(float16_t) ExtInst 1(GLSL.std.450) 66(Length) 380 + Store 378(f16) 381 + 382:151(f16vec3) Load 379(f16v1) + 384:151(f16vec3) Load 383(f16v2) + 385:28(float16_t) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 + Store 378(f16) 385 + 386:151(f16vec3) Load 379(f16v1) + 387:151(f16vec3) Load 383(f16v2) + 388:28(float16_t) Dot 386 387 + Store 378(f16) 388 + 390:151(f16vec3) Load 379(f16v1) + 391:151(f16vec3) Load 383(f16v2) + 392:151(f16vec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 + Store 389(f16v3) 392 + 393:151(f16vec3) Load 379(f16v1) + 394:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 + Store 383(f16v2) 394 + 395:151(f16vec3) Load 379(f16v1) + 396:151(f16vec3) Load 383(f16v2) + 397:151(f16vec3) Load 389(f16v3) + 398:151(f16vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 + Store 389(f16v3) 398 + 399:151(f16vec3) Load 379(f16v1) + 400:151(f16vec3) Load 383(f16v2) + 401:151(f16vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 + Store 389(f16v3) 401 + 402:151(f16vec3) Load 379(f16v1) + 403:151(f16vec3) Load 383(f16v2) + 404:28(float16_t) Load 378(f16) + 405:151(f16vec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 + Store 389(f16v3) 405 + Return + FunctionEnd +22(builtinMatrixFuncs(): 2 Function None 3 + 23: Label + 408(f16m3): 407(ptr) Variable Function + 409(f16m1): 407(ptr) Variable Function + 411(f16m2): 407(ptr) Variable Function + 420(f16v1): 152(ptr) Variable Function + 422(f16v2): 30(ptr) Variable Function + 427(f16m4): 426(ptr) Variable Function + 430(f16): 35(ptr) Variable Function + 433(f16m5): 432(ptr) Variable Function + 438(f16m6): 437(ptr) Variable Function + 439(f16m7): 437(ptr) Variable Function + 410: 406 Load 409(f16m1) + 412: 406 Load 411(f16m2) + 413:151(f16vec3) CompositeExtract 410 0 + 414:151(f16vec3) CompositeExtract 412 0 + 415:151(f16vec3) FMul 413 414 + 416:151(f16vec3) CompositeExtract 410 1 + 417:151(f16vec3) CompositeExtract 412 1 + 418:151(f16vec3) FMul 416 417 + 419: 406 CompositeConstruct 415 418 + Store 408(f16m3) 419 + 421:151(f16vec3) Load 420(f16v1) + 423: 29(f16vec2) Load 422(f16v2) + 424: 406 OuterProduct 421 423 + Store 409(f16m1) 424 + 428: 406 Load 409(f16m1) + 429: 425 Transpose 428 + Store 427(f16m4) 429 + 434: 431 Load 433(f16m5) + 435:28(float16_t) ExtInst 1(GLSL.std.450) 33(Determinant) 434 + Store 430(f16) 435 + 440: 436 Load 439(f16m7) + 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 + Store 438(f16m6) 441 + Return + FunctionEnd +24(builtinVecRelFuncs(): 2 Function None 3 + 25: Label + 442(bv): 155(ptr) Variable Function + 443(f16v1): 152(ptr) Variable Function + 445(f16v2): 152(ptr) Variable Function + 444:151(f16vec3) Load 443(f16v1) + 446:151(f16vec3) Load 445(f16v2) + 447: 154(bvec3) FOrdLessThan 444 446 + Store 442(bv) 447 + 448:151(f16vec3) Load 443(f16v1) + 449:151(f16vec3) Load 445(f16v2) + 450: 154(bvec3) FOrdLessThanEqual 448 449 + Store 442(bv) 450 + 451:151(f16vec3) Load 443(f16v1) + 452:151(f16vec3) Load 445(f16v2) + 453: 154(bvec3) FOrdGreaterThan 451 452 + Store 442(bv) 453 + 454:151(f16vec3) Load 443(f16v1) + 455:151(f16vec3) Load 445(f16v2) + 456: 154(bvec3) FOrdGreaterThanEqual 454 455 + Store 442(bv) 456 + 457:151(f16vec3) Load 443(f16v1) + 458:151(f16vec3) Load 445(f16v2) + 459: 154(bvec3) FOrdEqual 457 458 + Store 442(bv) 459 + 460:151(f16vec3) Load 443(f16v1) + 461:151(f16vec3) Load 445(f16v2) + 462: 154(bvec3) FOrdNotEqual 460 461 + Store 442(bv) 462 + Return + FunctionEnd +26(builtinFragProcFuncs(): 2 Function None 3 + 27: Label + 463(f16v): 152(ptr) Variable Function + 467: 466(ptr) AccessChain 465(if16v) 34 + 468:28(float16_t) Load 467 + 469:28(float16_t) DPdx 468 + 470: 35(ptr) AccessChain 463(f16v) 34 + Store 470 469 + 471: 466(ptr) AccessChain 465(if16v) 90 + 472:28(float16_t) Load 471 + 473:28(float16_t) DPdy 472 + 474: 35(ptr) AccessChain 463(f16v) 90 + Store 474 473 + 475:151(f16vec3) Load 465(if16v) + 476: 29(f16vec2) VectorShuffle 475 475 0 1 + 477: 29(f16vec2) DPdxFine 476 + 478:151(f16vec3) Load 463(f16v) + 479:151(f16vec3) VectorShuffle 478 477 3 4 2 + Store 463(f16v) 479 + 480:151(f16vec3) Load 465(if16v) + 481: 29(f16vec2) VectorShuffle 480 480 0 1 + 482: 29(f16vec2) DPdyFine 481 + 483:151(f16vec3) Load 463(f16v) + 484:151(f16vec3) VectorShuffle 483 482 3 4 2 + Store 463(f16v) 484 + 485:151(f16vec3) Load 465(if16v) + 486:151(f16vec3) DPdxCoarse 485 + Store 463(f16v) 486 + 487:151(f16vec3) Load 465(if16v) + 488:151(f16vec3) DPdxCoarse 487 + Store 463(f16v) 488 + 489: 466(ptr) AccessChain 465(if16v) 34 + 490:28(float16_t) Load 489 + 491:28(float16_t) Fwidth 490 + 492: 35(ptr) AccessChain 463(f16v) 34 + Store 492 491 + 493:151(f16vec3) Load 465(if16v) + 494: 29(f16vec2) VectorShuffle 493 493 0 1 + 495: 29(f16vec2) FwidthFine 494 + 496:151(f16vec3) Load 463(f16v) + 497:151(f16vec3) VectorShuffle 496 495 3 4 2 + Store 463(f16v) 497 + 498:151(f16vec3) Load 465(if16v) + 499:151(f16vec3) FwidthCoarse 498 + Store 463(f16v) 499 + 500: 466(ptr) AccessChain 465(if16v) 34 + 501:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 + 502: 35(ptr) AccessChain 463(f16v) 34 + Store 502 501 + 504:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 + 505: 29(f16vec2) VectorShuffle 504 504 0 1 + 506:151(f16vec3) Load 463(f16v) + 507:151(f16vec3) VectorShuffle 506 505 3 4 2 + Store 463(f16v) 507 + 510:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 + Store 463(f16v) 510 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.float16Fetch.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float16Fetch.frag.out new file mode 100644 index 0000000000..67ddd61b90 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.float16Fetch.frag.out @@ -0,0 +1,7071 @@ +spv.float16Fetch.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 5923 + + Capability Shader + Capability Float16 + Capability ImageGatherExtended + Capability StorageImageMultisample + Capability ImageCubeArray + Capability ImageRect + Capability SampledRect + Capability InputAttachment + Capability SparseResidency + Capability MinLod + Capability Sampled1D + Capability Image1D + Capability SampledCubeArray + Capability SampledBuffer + Capability ImageBuffer + Capability ImageMSArray + Capability ImageQuery + Capability StorageInputOutput16 + Capability Float16ImageAMD + Capability ImageGatherBiasLodAMD + Extension "SPV_AMD_gpu_shader_half_float" + Extension "SPV_AMD_gpu_shader_half_float_fetch" + Extension "SPV_AMD_texture_gather_bias_lod" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 128 135 137 148 156 169 177 215 251 309 565 572 1393 1401 1409 1417 1425 1433 4257 4264 5913 5922 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_gpu_shader_half_float" + SourceExtension "GL_AMD_gpu_shader_half_float_fetch" + SourceExtension "GL_AMD_texture_gather_bias_lod" + SourceExtension "GL_ARB_sparse_texture2" + SourceExtension "GL_ARB_sparse_texture_clamp" + Name 4 "main" + Name 9 "testTexture(" + Name 11 "testTextureProj(" + Name 13 "testTextureLod(" + Name 15 "testTextureOffset(" + Name 17 "testTextureProjOffset(" + Name 19 "testTextureLodOffset(" + Name 21 "testTextureProjLodOffset(" + Name 23 "testTexelFetch(" + Name 25 "testTexelFetchOffset(" + Name 27 "testTextureGrad(" + Name 29 "testTextureGradOffset(" + Name 31 "testTextureProjGrad(" + Name 33 "testTextureProjGradoffset(" + Name 35 "testTextureGather(" + Name 37 "testTextureGatherOffset(" + Name 39 "testTextureGatherOffsets(" + Name 41 "testTextureGatherLod(" + Name 43 "testTextureGatherLodOffset(" + Name 45 "testTextureGatherLodOffsets(" + Name 50 "testTextureSize(" + Name 55 "testTextureQueryLod(" + Name 58 "testTextureQueryLevels(" + Name 60 "testTextureSamples(" + Name 62 "testImageLoad(" + Name 67 "testImageStore(vf164;" + Name 66 "data" + Name 69 "testSparseTexture(" + Name 71 "testSparseTextureLod(" + Name 73 "testSparseTextureOffset(" + Name 75 "testSparseTextureLodOffset(" + Name 77 "testSparseTextureGrad(" + Name 79 "testSparseTextureGradOffset(" + Name 81 "testSparseTexelFetch(" + Name 83 "testSparseTexelFetchOffset(" + Name 85 "testSparseTextureGather(" + Name 87 "testSparseTextureGatherOffset(" + Name 89 "testSparseTextureGatherOffsets(" + Name 91 "testSparseTextureGatherLod(" + Name 93 "testSparseTextureGatherLodOffset(" + Name 95 "testSparseTextureGatherLodOffsets(" + Name 97 "testSparseImageLoad(" + Name 99 "testSparseTextureClamp(" + Name 101 "testTextureClamp(" + Name 103 "testSparseTextureOffsetClamp(" + Name 105 "testTextureOffsetClamp(" + Name 107 "testSparseTextureGradClamp(" + Name 109 "testTextureGradClamp(" + Name 111 "testSparseTextureGradOffsetClamp(" + Name 113 "testTextureGradOffsetClamp(" + Name 115 "testCombinedTextureSampler(" + Name 117 "testSubpassLoad(" + Name 119 "texel" + Name 125 "s1D" + Name 128 "c1" + Name 135 "f16c1" + Name 137 "f16bias" + Name 145 "s2D" + Name 148 "c2" + Name 156 "f16c2" + Name 165 "s3D" + Name 169 "c3" + Name 177 "f16c3" + Name 186 "sCube" + Name 201 "s1DShadow" + Name 215 "compare" + Name 226 "s2DShadow" + Name 247 "sCubeShadow" + Name 251 "c4" + Name 271 "s1DArray" + Name 286 "s2DArray" + Name 301 "sCubeArray" + Name 309 "f16c4" + Name 318 "s1DArrayShadow" + Name 339 "s2DArrayShadow" + Name 359 "s2DRect" + Name 373 "s2DRectShadow" + Name 393 "sCubeArrayShadow" + Name 413 "texel" + Name 562 "texel" + Name 565 "lod" + Name 572 "f16lod" + Name 706 "texel" + Name 863 "texel" + Name 1012 "texel" + Name 1130 "texel" + Name 1244 "texel" + Name 1300 "sBuffer" + Name 1311 "s2DMS" + Name 1322 "s2DMSArray" + Name 1334 "texel" + Name 1390 "texel" + Name 1393 "dPdxy1" + Name 1401 "f16dPdxy1" + Name 1409 "dPdxy2" + Name 1417 "f16dPdxy2" + Name 1425 "dPdxy3" + Name 1433 "f16dPdxy3" + Name 1632 "texel" + Name 1820 "texel" + Name 2002 "texel" + Name 2184 "texel" + Name 2303 "texel" + Name 2375 "texel" + Name 2450 "texel" + Name 2502 "texel" + Name 2530 "texel" + Name 2559 "size" + Name 2733 "lod" + Name 2869 "levels" + Name 2938 "samples" + Name 2952 "texel" + Name 2955 "i1D" + Name 2964 "i2D" + Name 2973 "i3D" + Name 2982 "i2DRect" + Name 2991 "iCube" + Name 3000 "iBuffer" + Name 3009 "i1DArray" + Name 3018 "i2DArray" + Name 3027 "iCubeArray" + Name 3036 "i2DMS" + Name 3045 "i2DMSArray" + Name 3099 "texel" + Name 3102 "ResType" + Name 3138 "ResType" + Name 3242 "texel" + Name 3322 "texel" + Name 3412 "texel" + Name 3468 "texel" + Name 3628 "texel" + Name 3742 "texel" + Name 3794 "texel" + Name 3832 "texel" + Name 3950 "texel" + Name 4022 "texel" + Name 4094 "texel" + Name 4146 "texel" + Name 4174 "texel" + Name 4202 "texel" + Name 4254 "texel" + Name 4257 "lodClamp" + Name 4264 "f16lodClamp" + Name 4391 "texel" + Name 4598 "texel" + Name 4674 "texel" + Name 4818 "texel" + Name 4962 "texel" + Name 5188 "texel" + Name 5280 "texel" + Name 5452 "texel" + Name 5454 "t1D" + Name 5458 "s" + Name 5474 "t2D" + Name 5491 "t3D" + Name 5508 "tCube" + Name 5525 "sShadow" + Name 5589 "t1DArray" + Name 5606 "t2DArray" + Name 5623 "tCubeArray" + Name 5681 "t2DRect" + Name 5741 "subpass" + Name 5747 "subpassMS" + Name 5753 "result" + Name 5834 "param" + Name 5913 "fragColor" + Name 5917 "tBuffer" + Name 5919 "t2DMS" + Name 5921 "t2DMSArray" + Name 5922 "bias" + Decorate 125(s1D) DescriptorSet 0 + Decorate 125(s1D) Binding 0 + Decorate 128(c1) Location 0 + Decorate 135(f16c1) Location 11 + Decorate 137(f16bias) Location 16 + Decorate 145(s2D) DescriptorSet 0 + Decorate 145(s2D) Binding 1 + Decorate 148(c2) Location 1 + Decorate 156(f16c2) Location 12 + Decorate 165(s3D) DescriptorSet 0 + Decorate 165(s3D) Binding 2 + Decorate 169(c3) Location 2 + Decorate 177(f16c3) Location 13 + Decorate 186(sCube) DescriptorSet 0 + Decorate 186(sCube) Binding 4 + Decorate 201(s1DShadow) DescriptorSet 0 + Decorate 201(s1DShadow) Binding 11 + Decorate 215(compare) Location 4 + Decorate 226(s2DShadow) DescriptorSet 0 + Decorate 226(s2DShadow) Binding 12 + Decorate 247(sCubeShadow) DescriptorSet 0 + Decorate 247(sCubeShadow) Binding 14 + Decorate 251(c4) Location 3 + Decorate 271(s1DArray) DescriptorSet 0 + Decorate 271(s1DArray) Binding 7 + Decorate 286(s2DArray) DescriptorSet 0 + Decorate 286(s2DArray) Binding 8 + Decorate 301(sCubeArray) DescriptorSet 0 + Decorate 301(sCubeArray) Binding 9 + Decorate 309(f16c4) Location 14 + Decorate 318(s1DArrayShadow) DescriptorSet 0 + Decorate 318(s1DArrayShadow) Binding 15 + Decorate 339(s2DArrayShadow) DescriptorSet 0 + Decorate 339(s2DArrayShadow) Binding 16 + Decorate 359(s2DRect) DescriptorSet 0 + Decorate 359(s2DRect) Binding 3 + Decorate 373(s2DRectShadow) DescriptorSet 0 + Decorate 373(s2DRectShadow) Binding 13 + Decorate 393(sCubeArrayShadow) DescriptorSet 0 + Decorate 393(sCubeArrayShadow) Binding 17 + Decorate 565(lod) Location 5 + Decorate 572(f16lod) Location 15 + Decorate 1300(sBuffer) DescriptorSet 0 + Decorate 1300(sBuffer) Binding 5 + Decorate 1311(s2DMS) DescriptorSet 0 + Decorate 1311(s2DMS) Binding 6 + Decorate 1322(s2DMSArray) DescriptorSet 0 + Decorate 1322(s2DMSArray) Binding 10 + Decorate 1393(dPdxy1) Location 8 + Decorate 1401(f16dPdxy1) Location 18 + Decorate 1409(dPdxy2) Location 9 + Decorate 1417(f16dPdxy2) Location 19 + Decorate 1425(dPdxy3) Location 10 + Decorate 1433(f16dPdxy3) Location 20 + Decorate 2955(i1D) DescriptorSet 1 + Decorate 2955(i1D) Binding 0 + Decorate 2964(i2D) DescriptorSet 1 + Decorate 2964(i2D) Binding 1 + Decorate 2973(i3D) DescriptorSet 1 + Decorate 2973(i3D) Binding 2 + Decorate 2982(i2DRect) DescriptorSet 1 + Decorate 2982(i2DRect) Binding 3 + Decorate 2991(iCube) DescriptorSet 1 + Decorate 2991(iCube) Binding 4 + Decorate 3000(iBuffer) DescriptorSet 1 + Decorate 3000(iBuffer) Binding 8 + Decorate 3009(i1DArray) DescriptorSet 1 + Decorate 3009(i1DArray) Binding 5 + Decorate 3018(i2DArray) DescriptorSet 1 + Decorate 3018(i2DArray) Binding 6 + Decorate 3027(iCubeArray) DescriptorSet 1 + Decorate 3027(iCubeArray) Binding 7 + Decorate 3036(i2DMS) DescriptorSet 1 + Decorate 3036(i2DMS) Binding 9 + Decorate 3045(i2DMSArray) DescriptorSet 1 + Decorate 3045(i2DMSArray) Binding 10 + Decorate 4257(lodClamp) Location 7 + Decorate 4264(f16lodClamp) Location 17 + Decorate 5454(t1D) DescriptorSet 2 + Decorate 5454(t1D) Binding 0 + Decorate 5458(s) DescriptorSet 2 + Decorate 5458(s) Binding 11 + Decorate 5474(t2D) DescriptorSet 2 + Decorate 5474(t2D) Binding 1 + Decorate 5491(t3D) DescriptorSet 2 + Decorate 5491(t3D) Binding 2 + Decorate 5508(tCube) DescriptorSet 2 + Decorate 5508(tCube) Binding 4 + Decorate 5525(sShadow) DescriptorSet 2 + Decorate 5525(sShadow) Binding 12 + Decorate 5589(t1DArray) DescriptorSet 2 + Decorate 5589(t1DArray) Binding 5 + Decorate 5606(t2DArray) DescriptorSet 2 + Decorate 5606(t2DArray) Binding 6 + Decorate 5623(tCubeArray) DescriptorSet 2 + Decorate 5623(tCubeArray) Binding 7 + Decorate 5681(t2DRect) DescriptorSet 2 + Decorate 5681(t2DRect) Binding 3 + Decorate 5741(subpass) DescriptorSet 3 + Decorate 5741(subpass) Binding 0 + Decorate 5741(subpass) InputAttachmentIndex 0 + Decorate 5747(subpassMS) DescriptorSet 3 + Decorate 5747(subpassMS) Binding 1 + Decorate 5747(subpassMS) InputAttachmentIndex 0 + Decorate 5913(fragColor) Location 0 + Decorate 5917(tBuffer) DescriptorSet 2 + Decorate 5917(tBuffer) Binding 8 + Decorate 5919(t2DMS) DescriptorSet 2 + Decorate 5919(t2DMS) Binding 9 + Decorate 5921(t2DMSArray) DescriptorSet 2 + Decorate 5921(t2DMSArray) Binding 10 + Decorate 5922(bias) Location 6 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 16 + 7: TypeVector 6(float16_t) 4 + 8: TypeFunction 7(f16vec4) + 47: TypeInt 32 1 + 48: TypeVector 47(int) 4 + 49: TypeFunction 48(ivec4) + 52: TypeFloat 32 + 53: TypeVector 52(float) 2 + 54: TypeFunction 53(fvec2) + 57: TypeFunction 47(int) + 64: TypePointer Function 7(f16vec4) + 65: TypeFunction 2 64(ptr) + 120:6(float16_t) Constant 0 + 121: 7(f16vec4) ConstantComposite 120 120 120 120 + 122: TypeImage 6(float16_t) 1D sampled format:Unknown + 123: TypeSampledImage 122 + 124: TypePointer UniformConstant 123 + 125(s1D): 124(ptr) Variable UniformConstant + 127: TypePointer Input 52(float) + 128(c1): 127(ptr) Variable Input + 134: TypePointer Input 6(float16_t) + 135(f16c1): 134(ptr) Variable Input + 137(f16bias): 134(ptr) Variable Input + 142: TypeImage 6(float16_t) 2D sampled format:Unknown + 143: TypeSampledImage 142 + 144: TypePointer UniformConstant 143 + 145(s2D): 144(ptr) Variable UniformConstant + 147: TypePointer Input 53(fvec2) + 148(c2): 147(ptr) Variable Input + 154: TypeVector 6(float16_t) 2 + 155: TypePointer Input 154(f16vec2) + 156(f16c2): 155(ptr) Variable Input + 162: TypeImage 6(float16_t) 3D sampled format:Unknown + 163: TypeSampledImage 162 + 164: TypePointer UniformConstant 163 + 165(s3D): 164(ptr) Variable UniformConstant + 167: TypeVector 52(float) 3 + 168: TypePointer Input 167(fvec3) + 169(c3): 168(ptr) Variable Input + 175: TypeVector 6(float16_t) 3 + 176: TypePointer Input 175(f16vec3) + 177(f16c3): 176(ptr) Variable Input + 183: TypeImage 6(float16_t) Cube sampled format:Unknown + 184: TypeSampledImage 183 + 185: TypePointer UniformConstant 184 + 186(sCube): 185(ptr) Variable UniformConstant + 198: TypeImage 6(float16_t) 1D depth sampled format:Unknown + 199: TypeSampledImage 198 + 200: TypePointer UniformConstant 199 + 201(s1DShadow): 200(ptr) Variable UniformConstant + 206: TypeInt 32 0 + 207: 206(int) Constant 0 + 208: TypePointer Function 6(float16_t) + 215(compare): 127(ptr) Variable Input + 223: TypeImage 6(float16_t) 2D depth sampled format:Unknown + 224: TypeSampledImage 223 + 225: TypePointer UniformConstant 224 + 226(s2DShadow): 225(ptr) Variable UniformConstant + 244: TypeImage 6(float16_t) Cube depth sampled format:Unknown + 245: TypeSampledImage 244 + 246: TypePointer UniformConstant 245 +247(sCubeShadow): 246(ptr) Variable UniformConstant + 249: TypeVector 52(float) 4 + 250: TypePointer Input 249(fvec4) + 251(c4): 250(ptr) Variable Input + 268: TypeImage 6(float16_t) 1D array sampled format:Unknown + 269: TypeSampledImage 268 + 270: TypePointer UniformConstant 269 + 271(s1DArray): 270(ptr) Variable UniformConstant + 283: TypeImage 6(float16_t) 2D array sampled format:Unknown + 284: TypeSampledImage 283 + 285: TypePointer UniformConstant 284 + 286(s2DArray): 285(ptr) Variable UniformConstant + 298: TypeImage 6(float16_t) Cube array sampled format:Unknown + 299: TypeSampledImage 298 + 300: TypePointer UniformConstant 299 + 301(sCubeArray): 300(ptr) Variable UniformConstant + 308: TypePointer Input 7(f16vec4) + 309(f16c4): 308(ptr) Variable Input + 315: TypeImage 6(float16_t) 1D depth array sampled format:Unknown + 316: TypeSampledImage 315 + 317: TypePointer UniformConstant 316 +318(s1DArrayShadow): 317(ptr) Variable UniformConstant + 336: TypeImage 6(float16_t) 2D depth array sampled format:Unknown + 337: TypeSampledImage 336 + 338: TypePointer UniformConstant 337 +339(s2DArrayShadow): 338(ptr) Variable UniformConstant + 356: TypeImage 6(float16_t) Rect sampled format:Unknown + 357: TypeSampledImage 356 + 358: TypePointer UniformConstant 357 + 359(s2DRect): 358(ptr) Variable UniformConstant + 370: TypeImage 6(float16_t) Rect depth sampled format:Unknown + 371: TypeSampledImage 370 + 372: TypePointer UniformConstant 371 +373(s2DRectShadow): 372(ptr) Variable UniformConstant + 390: TypeImage 6(float16_t) Cube depth array sampled format:Unknown + 391: TypeSampledImage 390 + 392: TypePointer UniformConstant 391 +393(sCubeArrayShadow): 392(ptr) Variable UniformConstant + 565(lod): 127(ptr) Variable Input + 572(f16lod): 134(ptr) Variable Input + 709: 47(int) Constant 1 + 721: TypeVector 47(int) 2 + 722: 721(ivec2) ConstantComposite 709 709 + 734: TypeVector 47(int) 3 + 735: 734(ivec3) ConstantComposite 709 709 709 + 1297: TypeImage 6(float16_t) Buffer sampled format:Unknown + 1298: TypeSampledImage 1297 + 1299: TypePointer UniformConstant 1298 + 1300(sBuffer): 1299(ptr) Variable UniformConstant + 1308: TypeImage 6(float16_t) 2D multi-sampled sampled format:Unknown + 1309: TypeSampledImage 1308 + 1310: TypePointer UniformConstant 1309 + 1311(s2DMS): 1310(ptr) Variable UniformConstant + 1319: TypeImage 6(float16_t) 2D array multi-sampled sampled format:Unknown + 1320: TypeSampledImage 1319 + 1321: TypePointer UniformConstant 1320 +1322(s2DMSArray): 1321(ptr) Variable UniformConstant + 1326: 47(int) Constant 2 + 1393(dPdxy1): 127(ptr) Variable Input + 1401(f16dPdxy1): 134(ptr) Variable Input + 1409(dPdxy2): 147(ptr) Variable Input + 1417(f16dPdxy2): 155(ptr) Variable Input + 1425(dPdxy3): 168(ptr) Variable Input + 1433(f16dPdxy3): 176(ptr) Variable Input + 2187: 47(int) Constant 0 + 2378: 206(int) Constant 4 + 2379: TypeArray 721(ivec2) 2378 + 2380: 2379 ConstantComposite 722 722 722 722 + 2558: TypePointer Function 48(ivec4) + 2560: 48(ivec4) ConstantComposite 2187 2187 2187 2187 + 2566: TypePointer Function 47(int) + 2732: TypePointer Function 53(fvec2) + 2734: 52(float) Constant 0 + 2735: 53(fvec2) ConstantComposite 2734 2734 + 2953: TypeImage 6(float16_t) 1D nonsampled format:Rgba16f + 2954: TypePointer UniformConstant 2953 + 2955(i1D): 2954(ptr) Variable UniformConstant + 2962: TypeImage 6(float16_t) 2D nonsampled format:Rgba16f + 2963: TypePointer UniformConstant 2962 + 2964(i2D): 2963(ptr) Variable UniformConstant + 2971: TypeImage 6(float16_t) 3D nonsampled format:Rgba16f + 2972: TypePointer UniformConstant 2971 + 2973(i3D): 2972(ptr) Variable UniformConstant + 2980: TypeImage 6(float16_t) Rect nonsampled format:Rgba16f + 2981: TypePointer UniformConstant 2980 + 2982(i2DRect): 2981(ptr) Variable UniformConstant + 2989: TypeImage 6(float16_t) Cube nonsampled format:Rgba16f + 2990: TypePointer UniformConstant 2989 + 2991(iCube): 2990(ptr) Variable UniformConstant + 2998: TypeImage 6(float16_t) Buffer nonsampled format:Rgba16f + 2999: TypePointer UniformConstant 2998 + 3000(iBuffer): 2999(ptr) Variable UniformConstant + 3007: TypeImage 6(float16_t) 1D array nonsampled format:Rgba16f + 3008: TypePointer UniformConstant 3007 + 3009(i1DArray): 3008(ptr) Variable UniformConstant + 3016: TypeImage 6(float16_t) 2D array nonsampled format:Rgba16f + 3017: TypePointer UniformConstant 3016 + 3018(i2DArray): 3017(ptr) Variable UniformConstant + 3025: TypeImage 6(float16_t) Cube array nonsampled format:Rgba16f + 3026: TypePointer UniformConstant 3025 +3027(iCubeArray): 3026(ptr) Variable UniformConstant + 3034: TypeImage 6(float16_t) 2D multi-sampled nonsampled format:Rgba16f + 3035: TypePointer UniformConstant 3034 + 3036(i2DMS): 3035(ptr) Variable UniformConstant + 3043: TypeImage 6(float16_t) 2D array multi-sampled nonsampled format:Rgba16f + 3044: TypePointer UniformConstant 3043 +3045(i2DMSArray): 3044(ptr) Variable UniformConstant + 3102(ResType): TypeStruct 47(int) 7(f16vec4) + 3138(ResType): TypeStruct 47(int) 6(float16_t) + 4257(lodClamp): 127(ptr) Variable Input +4264(f16lodClamp): 134(ptr) Variable Input + 5453: TypePointer UniformConstant 122 + 5454(t1D): 5453(ptr) Variable UniformConstant + 5456: TypeSampler + 5457: TypePointer UniformConstant 5456 + 5458(s): 5457(ptr) Variable UniformConstant + 5473: TypePointer UniformConstant 142 + 5474(t2D): 5473(ptr) Variable UniformConstant + 5490: TypePointer UniformConstant 162 + 5491(t3D): 5490(ptr) Variable UniformConstant + 5507: TypePointer UniformConstant 183 + 5508(tCube): 5507(ptr) Variable UniformConstant + 5525(sShadow): 5457(ptr) Variable UniformConstant + 5588: TypePointer UniformConstant 268 + 5589(t1DArray): 5588(ptr) Variable UniformConstant + 5605: TypePointer UniformConstant 283 + 5606(t2DArray): 5605(ptr) Variable UniformConstant + 5622: TypePointer UniformConstant 298 +5623(tCubeArray): 5622(ptr) Variable UniformConstant + 5680: TypePointer UniformConstant 356 + 5681(t2DRect): 5680(ptr) Variable UniformConstant + 5739: TypeImage 6(float16_t) SubpassData nonsampled format:Unknown + 5740: TypePointer UniformConstant 5739 + 5741(subpass): 5740(ptr) Variable UniformConstant + 5743: 721(ivec2) ConstantComposite 2187 2187 + 5745: TypeImage 6(float16_t) SubpassData multi-sampled nonsampled format:Unknown + 5746: TypePointer UniformConstant 5745 + 5747(subpassMS): 5746(ptr) Variable UniformConstant + 5912: TypePointer Output 249(fvec4) + 5913(fragColor): 5912(ptr) Variable Output + 5916: TypePointer UniformConstant 1297 + 5917(tBuffer): 5916(ptr) Variable UniformConstant + 5918: TypePointer UniformConstant 1308 + 5919(t2DMS): 5918(ptr) Variable UniformConstant + 5920: TypePointer UniformConstant 1319 +5921(t2DMSArray): 5920(ptr) Variable UniformConstant + 5922(bias): 127(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 5753(result): 64(ptr) Variable Function + 5834(param): 64(ptr) Variable Function + Store 5753(result) 121 + 5754: 7(f16vec4) FunctionCall 9(testTexture() + 5755: 7(f16vec4) Load 5753(result) + 5756: 7(f16vec4) FAdd 5755 5754 + Store 5753(result) 5756 + 5757: 7(f16vec4) FunctionCall 11(testTextureProj() + 5758: 7(f16vec4) Load 5753(result) + 5759: 7(f16vec4) FAdd 5758 5757 + Store 5753(result) 5759 + 5760: 7(f16vec4) FunctionCall 13(testTextureLod() + 5761: 7(f16vec4) Load 5753(result) + 5762: 7(f16vec4) FAdd 5761 5760 + Store 5753(result) 5762 + 5763: 7(f16vec4) FunctionCall 15(testTextureOffset() + 5764: 7(f16vec4) Load 5753(result) + 5765: 7(f16vec4) FAdd 5764 5763 + Store 5753(result) 5765 + 5766: 7(f16vec4) FunctionCall 19(testTextureLodOffset() + 5767: 7(f16vec4) Load 5753(result) + 5768: 7(f16vec4) FAdd 5767 5766 + Store 5753(result) 5768 + 5769: 7(f16vec4) FunctionCall 21(testTextureProjLodOffset() + 5770: 7(f16vec4) Load 5753(result) + 5771: 7(f16vec4) FAdd 5770 5769 + Store 5753(result) 5771 + 5772: 7(f16vec4) FunctionCall 23(testTexelFetch() + 5773: 7(f16vec4) Load 5753(result) + 5774: 7(f16vec4) FAdd 5773 5772 + Store 5753(result) 5774 + 5775: 7(f16vec4) FunctionCall 25(testTexelFetchOffset() + 5776: 7(f16vec4) Load 5753(result) + 5777: 7(f16vec4) FAdd 5776 5775 + Store 5753(result) 5777 + 5778: 7(f16vec4) FunctionCall 27(testTextureGrad() + 5779: 7(f16vec4) Load 5753(result) + 5780: 7(f16vec4) FAdd 5779 5778 + Store 5753(result) 5780 + 5781: 7(f16vec4) FunctionCall 29(testTextureGradOffset() + 5782: 7(f16vec4) Load 5753(result) + 5783: 7(f16vec4) FAdd 5782 5781 + Store 5753(result) 5783 + 5784: 7(f16vec4) FunctionCall 31(testTextureProjGrad() + 5785: 7(f16vec4) Load 5753(result) + 5786: 7(f16vec4) FAdd 5785 5784 + Store 5753(result) 5786 + 5787: 7(f16vec4) FunctionCall 33(testTextureProjGradoffset() + 5788: 7(f16vec4) Load 5753(result) + 5789: 7(f16vec4) FAdd 5788 5787 + Store 5753(result) 5789 + 5790: 7(f16vec4) FunctionCall 35(testTextureGather() + 5791: 7(f16vec4) Load 5753(result) + 5792: 7(f16vec4) FAdd 5791 5790 + Store 5753(result) 5792 + 5793: 7(f16vec4) FunctionCall 37(testTextureGatherOffset() + 5794: 7(f16vec4) Load 5753(result) + 5795: 7(f16vec4) FAdd 5794 5793 + Store 5753(result) 5795 + 5796: 7(f16vec4) FunctionCall 39(testTextureGatherOffsets() + 5797: 7(f16vec4) Load 5753(result) + 5798: 7(f16vec4) FAdd 5797 5796 + Store 5753(result) 5798 + 5799: 7(f16vec4) FunctionCall 41(testTextureGatherLod() + 5800: 7(f16vec4) Load 5753(result) + 5801: 7(f16vec4) FAdd 5800 5799 + Store 5753(result) 5801 + 5802: 7(f16vec4) FunctionCall 43(testTextureGatherLodOffset() + 5803: 7(f16vec4) Load 5753(result) + 5804: 7(f16vec4) FAdd 5803 5802 + Store 5753(result) 5804 + 5805: 7(f16vec4) FunctionCall 45(testTextureGatherLodOffsets() + 5806: 7(f16vec4) Load 5753(result) + 5807: 7(f16vec4) FAdd 5806 5805 + Store 5753(result) 5807 + 5808: 48(ivec4) FunctionCall 50(testTextureSize() + 5809: 7(f16vec4) ConvertSToF 5808 + 5810: 7(f16vec4) Load 5753(result) + 5811: 7(f16vec4) FAdd 5810 5809 + Store 5753(result) 5811 + 5812: 53(fvec2) FunctionCall 55(testTextureQueryLod() + 5813:154(f16vec2) FConvert 5812 + 5814: 7(f16vec4) Load 5753(result) + 5815:154(f16vec2) VectorShuffle 5814 5814 0 1 + 5816:154(f16vec2) FAdd 5815 5813 + 5817: 7(f16vec4) Load 5753(result) + 5818: 7(f16vec4) VectorShuffle 5817 5816 4 5 2 3 + Store 5753(result) 5818 + 5819: 47(int) FunctionCall 58(testTextureQueryLevels() + 5820:6(float16_t) ConvertSToF 5819 + 5821: 208(ptr) AccessChain 5753(result) 207 + 5822:6(float16_t) Load 5821 + 5823:6(float16_t) FAdd 5822 5820 + 5824: 208(ptr) AccessChain 5753(result) 207 + Store 5824 5823 + 5825: 47(int) FunctionCall 60(testTextureSamples() + 5826:6(float16_t) ConvertSToF 5825 + 5827: 208(ptr) AccessChain 5753(result) 207 + 5828:6(float16_t) Load 5827 + 5829:6(float16_t) FAdd 5828 5826 + 5830: 208(ptr) AccessChain 5753(result) 207 + Store 5830 5829 + 5831: 7(f16vec4) FunctionCall 62(testImageLoad() + 5832: 7(f16vec4) Load 5753(result) + 5833: 7(f16vec4) FAdd 5832 5831 + Store 5753(result) 5833 + 5835: 7(f16vec4) Load 5753(result) + Store 5834(param) 5835 + 5836: 2 FunctionCall 67(testImageStore(vf164;) 5834(param) + 5837: 7(f16vec4) FunctionCall 69(testSparseTexture() + 5838: 7(f16vec4) Load 5753(result) + 5839: 7(f16vec4) FAdd 5838 5837 + Store 5753(result) 5839 + 5840: 7(f16vec4) FunctionCall 71(testSparseTextureLod() + 5841: 7(f16vec4) Load 5753(result) + 5842: 7(f16vec4) FAdd 5841 5840 + Store 5753(result) 5842 + 5843: 7(f16vec4) FunctionCall 73(testSparseTextureOffset() + 5844: 7(f16vec4) Load 5753(result) + 5845: 7(f16vec4) FAdd 5844 5843 + Store 5753(result) 5845 + 5846: 7(f16vec4) FunctionCall 75(testSparseTextureLodOffset() + 5847: 7(f16vec4) Load 5753(result) + 5848: 7(f16vec4) FAdd 5847 5846 + Store 5753(result) 5848 + 5849: 7(f16vec4) FunctionCall 77(testSparseTextureGrad() + 5850: 7(f16vec4) Load 5753(result) + 5851: 7(f16vec4) FAdd 5850 5849 + Store 5753(result) 5851 + 5852: 7(f16vec4) FunctionCall 79(testSparseTextureGradOffset() + 5853: 7(f16vec4) Load 5753(result) + 5854: 7(f16vec4) FAdd 5853 5852 + Store 5753(result) 5854 + 5855: 7(f16vec4) FunctionCall 81(testSparseTexelFetch() + 5856: 7(f16vec4) Load 5753(result) + 5857: 7(f16vec4) FAdd 5856 5855 + Store 5753(result) 5857 + 5858: 7(f16vec4) FunctionCall 83(testSparseTexelFetchOffset() + 5859: 7(f16vec4) Load 5753(result) + 5860: 7(f16vec4) FAdd 5859 5858 + Store 5753(result) 5860 + 5861: 7(f16vec4) FunctionCall 85(testSparseTextureGather() + 5862: 7(f16vec4) Load 5753(result) + 5863: 7(f16vec4) FAdd 5862 5861 + Store 5753(result) 5863 + 5864: 7(f16vec4) FunctionCall 87(testSparseTextureGatherOffset() + 5865: 7(f16vec4) Load 5753(result) + 5866: 7(f16vec4) FAdd 5865 5864 + Store 5753(result) 5866 + 5867: 7(f16vec4) FunctionCall 89(testSparseTextureGatherOffsets() + 5868: 7(f16vec4) Load 5753(result) + 5869: 7(f16vec4) FAdd 5868 5867 + Store 5753(result) 5869 + 5870: 7(f16vec4) FunctionCall 91(testSparseTextureGatherLod() + 5871: 7(f16vec4) Load 5753(result) + 5872: 7(f16vec4) FAdd 5871 5870 + Store 5753(result) 5872 + 5873: 7(f16vec4) FunctionCall 93(testSparseTextureGatherLodOffset() + 5874: 7(f16vec4) Load 5753(result) + 5875: 7(f16vec4) FAdd 5874 5873 + Store 5753(result) 5875 + 5876: 7(f16vec4) FunctionCall 95(testSparseTextureGatherLodOffsets() + 5877: 7(f16vec4) Load 5753(result) + 5878: 7(f16vec4) FAdd 5877 5876 + Store 5753(result) 5878 + 5879: 7(f16vec4) FunctionCall 97(testSparseImageLoad() + 5880: 7(f16vec4) Load 5753(result) + 5881: 7(f16vec4) FAdd 5880 5879 + Store 5753(result) 5881 + 5882: 7(f16vec4) FunctionCall 99(testSparseTextureClamp() + 5883: 7(f16vec4) Load 5753(result) + 5884: 7(f16vec4) FAdd 5883 5882 + Store 5753(result) 5884 + 5885: 7(f16vec4) FunctionCall 101(testTextureClamp() + 5886: 7(f16vec4) Load 5753(result) + 5887: 7(f16vec4) FAdd 5886 5885 + Store 5753(result) 5887 + 5888: 7(f16vec4) FunctionCall 103(testSparseTextureOffsetClamp() + 5889: 7(f16vec4) Load 5753(result) + 5890: 7(f16vec4) FAdd 5889 5888 + Store 5753(result) 5890 + 5891: 7(f16vec4) FunctionCall 105(testTextureOffsetClamp() + 5892: 7(f16vec4) Load 5753(result) + 5893: 7(f16vec4) FAdd 5892 5891 + Store 5753(result) 5893 + 5894: 7(f16vec4) FunctionCall 77(testSparseTextureGrad() + 5895: 7(f16vec4) Load 5753(result) + 5896: 7(f16vec4) FAdd 5895 5894 + Store 5753(result) 5896 + 5897: 7(f16vec4) FunctionCall 27(testTextureGrad() + 5898: 7(f16vec4) Load 5753(result) + 5899: 7(f16vec4) FAdd 5898 5897 + Store 5753(result) 5899 + 5900: 7(f16vec4) FunctionCall 111(testSparseTextureGradOffsetClamp() + 5901: 7(f16vec4) Load 5753(result) + 5902: 7(f16vec4) FAdd 5901 5900 + Store 5753(result) 5902 + 5903: 7(f16vec4) FunctionCall 113(testTextureGradOffsetClamp() + 5904: 7(f16vec4) Load 5753(result) + 5905: 7(f16vec4) FAdd 5904 5903 + Store 5753(result) 5905 + 5906: 7(f16vec4) FunctionCall 115(testCombinedTextureSampler() + 5907: 7(f16vec4) Load 5753(result) + 5908: 7(f16vec4) FAdd 5907 5906 + Store 5753(result) 5908 + 5909: 7(f16vec4) FunctionCall 117(testSubpassLoad() + 5910: 7(f16vec4) Load 5753(result) + 5911: 7(f16vec4) FAdd 5910 5909 + Store 5753(result) 5911 + 5914: 7(f16vec4) Load 5753(result) + 5915: 249(fvec4) FConvert 5914 + Store 5913(fragColor) 5915 + Return + FunctionEnd + 9(testTexture(): 7(f16vec4) Function None 8 + 10: Label + 119(texel): 64(ptr) Variable Function + Store 119(texel) 121 + 126: 123 Load 125(s1D) + 129: 52(float) Load 128(c1) + 130: 7(f16vec4) ImageSampleImplicitLod 126 129 + 131: 7(f16vec4) Load 119(texel) + 132: 7(f16vec4) FAdd 131 130 + Store 119(texel) 132 + 133: 123 Load 125(s1D) + 136:6(float16_t) Load 135(f16c1) + 138:6(float16_t) Load 137(f16bias) + 139: 7(f16vec4) ImageSampleImplicitLod 133 136 Bias 138 + 140: 7(f16vec4) Load 119(texel) + 141: 7(f16vec4) FAdd 140 139 + Store 119(texel) 141 + 146: 143 Load 145(s2D) + 149: 53(fvec2) Load 148(c2) + 150: 7(f16vec4) ImageSampleImplicitLod 146 149 + 151: 7(f16vec4) Load 119(texel) + 152: 7(f16vec4) FAdd 151 150 + Store 119(texel) 152 + 153: 143 Load 145(s2D) + 157:154(f16vec2) Load 156(f16c2) + 158:6(float16_t) Load 137(f16bias) + 159: 7(f16vec4) ImageSampleImplicitLod 153 157 Bias 158 + 160: 7(f16vec4) Load 119(texel) + 161: 7(f16vec4) FAdd 160 159 + Store 119(texel) 161 + 166: 163 Load 165(s3D) + 170: 167(fvec3) Load 169(c3) + 171: 7(f16vec4) ImageSampleImplicitLod 166 170 + 172: 7(f16vec4) Load 119(texel) + 173: 7(f16vec4) FAdd 172 171 + Store 119(texel) 173 + 174: 163 Load 165(s3D) + 178:175(f16vec3) Load 177(f16c3) + 179:6(float16_t) Load 137(f16bias) + 180: 7(f16vec4) ImageSampleImplicitLod 174 178 Bias 179 + 181: 7(f16vec4) Load 119(texel) + 182: 7(f16vec4) FAdd 181 180 + Store 119(texel) 182 + 187: 184 Load 186(sCube) + 188: 167(fvec3) Load 169(c3) + 189: 7(f16vec4) ImageSampleImplicitLod 187 188 + 190: 7(f16vec4) Load 119(texel) + 191: 7(f16vec4) FAdd 190 189 + Store 119(texel) 191 + 192: 184 Load 186(sCube) + 193:175(f16vec3) Load 177(f16c3) + 194:6(float16_t) Load 137(f16bias) + 195: 7(f16vec4) ImageSampleImplicitLod 192 193 Bias 194 + 196: 7(f16vec4) Load 119(texel) + 197: 7(f16vec4) FAdd 196 195 + Store 119(texel) 197 + 202: 199 Load 201(s1DShadow) + 203: 167(fvec3) Load 169(c3) + 204: 52(float) CompositeExtract 203 2 + 205:6(float16_t) ImageSampleDrefImplicitLod 202 203 204 + 209: 208(ptr) AccessChain 119(texel) 207 + 210:6(float16_t) Load 209 + 211:6(float16_t) FAdd 210 205 + 212: 208(ptr) AccessChain 119(texel) 207 + Store 212 211 + 213: 199 Load 201(s1DShadow) + 214:154(f16vec2) Load 156(f16c2) + 216: 52(float) Load 215(compare) + 217:6(float16_t) Load 137(f16bias) + 218:6(float16_t) ImageSampleDrefImplicitLod 213 214 216 Bias 217 + 219: 208(ptr) AccessChain 119(texel) 207 + 220:6(float16_t) Load 219 + 221:6(float16_t) FAdd 220 218 + 222: 208(ptr) AccessChain 119(texel) 207 + Store 222 221 + 227: 224 Load 226(s2DShadow) + 228: 167(fvec3) Load 169(c3) + 229: 52(float) CompositeExtract 228 2 + 230:6(float16_t) ImageSampleDrefImplicitLod 227 228 229 + 231: 208(ptr) AccessChain 119(texel) 207 + 232:6(float16_t) Load 231 + 233:6(float16_t) FAdd 232 230 + 234: 208(ptr) AccessChain 119(texel) 207 + Store 234 233 + 235: 224 Load 226(s2DShadow) + 236:154(f16vec2) Load 156(f16c2) + 237: 52(float) Load 215(compare) + 238:6(float16_t) Load 137(f16bias) + 239:6(float16_t) ImageSampleDrefImplicitLod 235 236 237 Bias 238 + 240: 208(ptr) AccessChain 119(texel) 207 + 241:6(float16_t) Load 240 + 242:6(float16_t) FAdd 241 239 + 243: 208(ptr) AccessChain 119(texel) 207 + Store 243 242 + 248: 245 Load 247(sCubeShadow) + 252: 249(fvec4) Load 251(c4) + 253: 52(float) CompositeExtract 252 3 + 254:6(float16_t) ImageSampleDrefImplicitLod 248 252 253 + 255: 208(ptr) AccessChain 119(texel) 207 + 256:6(float16_t) Load 255 + 257:6(float16_t) FAdd 256 254 + 258: 208(ptr) AccessChain 119(texel) 207 + Store 258 257 + 259: 245 Load 247(sCubeShadow) + 260:175(f16vec3) Load 177(f16c3) + 261: 52(float) Load 215(compare) + 262:6(float16_t) Load 137(f16bias) + 263:6(float16_t) ImageSampleDrefImplicitLod 259 260 261 Bias 262 + 264: 208(ptr) AccessChain 119(texel) 207 + 265:6(float16_t) Load 264 + 266:6(float16_t) FAdd 265 263 + 267: 208(ptr) AccessChain 119(texel) 207 + Store 267 266 + 272: 269 Load 271(s1DArray) + 273: 53(fvec2) Load 148(c2) + 274: 7(f16vec4) ImageSampleImplicitLod 272 273 + 275: 7(f16vec4) Load 119(texel) + 276: 7(f16vec4) FAdd 275 274 + Store 119(texel) 276 + 277: 269 Load 271(s1DArray) + 278:154(f16vec2) Load 156(f16c2) + 279:6(float16_t) Load 137(f16bias) + 280: 7(f16vec4) ImageSampleImplicitLod 277 278 Bias 279 + 281: 7(f16vec4) Load 119(texel) + 282: 7(f16vec4) FAdd 281 280 + Store 119(texel) 282 + 287: 284 Load 286(s2DArray) + 288: 167(fvec3) Load 169(c3) + 289: 7(f16vec4) ImageSampleImplicitLod 287 288 + 290: 7(f16vec4) Load 119(texel) + 291: 7(f16vec4) FAdd 290 289 + Store 119(texel) 291 + 292: 284 Load 286(s2DArray) + 293:175(f16vec3) Load 177(f16c3) + 294:6(float16_t) Load 137(f16bias) + 295: 7(f16vec4) ImageSampleImplicitLod 292 293 Bias 294 + 296: 7(f16vec4) Load 119(texel) + 297: 7(f16vec4) FAdd 296 295 + Store 119(texel) 297 + 302: 299 Load 301(sCubeArray) + 303: 249(fvec4) Load 251(c4) + 304: 7(f16vec4) ImageSampleImplicitLod 302 303 + 305: 7(f16vec4) Load 119(texel) + 306: 7(f16vec4) FAdd 305 304 + Store 119(texel) 306 + 307: 299 Load 301(sCubeArray) + 310: 7(f16vec4) Load 309(f16c4) + 311:6(float16_t) Load 137(f16bias) + 312: 7(f16vec4) ImageSampleImplicitLod 307 310 Bias 311 + 313: 7(f16vec4) Load 119(texel) + 314: 7(f16vec4) FAdd 313 312 + Store 119(texel) 314 + 319: 316 Load 318(s1DArrayShadow) + 320: 167(fvec3) Load 169(c3) + 321: 52(float) CompositeExtract 320 2 + 322:6(float16_t) ImageSampleDrefImplicitLod 319 320 321 + 323: 208(ptr) AccessChain 119(texel) 207 + 324:6(float16_t) Load 323 + 325:6(float16_t) FAdd 324 322 + 326: 208(ptr) AccessChain 119(texel) 207 + Store 326 325 + 327: 316 Load 318(s1DArrayShadow) + 328:154(f16vec2) Load 156(f16c2) + 329: 52(float) Load 215(compare) + 330:6(float16_t) Load 137(f16bias) + 331:6(float16_t) ImageSampleDrefImplicitLod 327 328 329 Bias 330 + 332: 208(ptr) AccessChain 119(texel) 207 + 333:6(float16_t) Load 332 + 334:6(float16_t) FAdd 333 331 + 335: 208(ptr) AccessChain 119(texel) 207 + Store 335 334 + 340: 337 Load 339(s2DArrayShadow) + 341: 249(fvec4) Load 251(c4) + 342: 52(float) CompositeExtract 341 3 + 343:6(float16_t) ImageSampleDrefImplicitLod 340 341 342 + 344: 208(ptr) AccessChain 119(texel) 207 + 345:6(float16_t) Load 344 + 346:6(float16_t) FAdd 345 343 + 347: 208(ptr) AccessChain 119(texel) 207 + Store 347 346 + 348: 337 Load 339(s2DArrayShadow) + 349:175(f16vec3) Load 177(f16c3) + 350: 52(float) Load 215(compare) + 351:6(float16_t) ImageSampleDrefImplicitLod 348 349 350 + 352: 208(ptr) AccessChain 119(texel) 207 + 353:6(float16_t) Load 352 + 354:6(float16_t) FAdd 353 351 + 355: 208(ptr) AccessChain 119(texel) 207 + Store 355 354 + 360: 357 Load 359(s2DRect) + 361: 53(fvec2) Load 148(c2) + 362: 7(f16vec4) ImageSampleImplicitLod 360 361 + 363: 7(f16vec4) Load 119(texel) + 364: 7(f16vec4) FAdd 363 362 + Store 119(texel) 364 + 365: 357 Load 359(s2DRect) + 366:154(f16vec2) Load 156(f16c2) + 367: 7(f16vec4) ImageSampleImplicitLod 365 366 + 368: 7(f16vec4) Load 119(texel) + 369: 7(f16vec4) FAdd 368 367 + Store 119(texel) 369 + 374: 371 Load 373(s2DRectShadow) + 375: 167(fvec3) Load 169(c3) + 376: 52(float) CompositeExtract 375 2 + 377:6(float16_t) ImageSampleDrefImplicitLod 374 375 376 + 378: 208(ptr) AccessChain 119(texel) 207 + 379:6(float16_t) Load 378 + 380:6(float16_t) FAdd 379 377 + 381: 208(ptr) AccessChain 119(texel) 207 + Store 381 380 + 382: 371 Load 373(s2DRectShadow) + 383:154(f16vec2) Load 156(f16c2) + 384: 52(float) Load 215(compare) + 385:6(float16_t) ImageSampleDrefImplicitLod 382 383 384 + 386: 208(ptr) AccessChain 119(texel) 207 + 387:6(float16_t) Load 386 + 388:6(float16_t) FAdd 387 385 + 389: 208(ptr) AccessChain 119(texel) 207 + Store 389 388 + 394: 391 Load 393(sCubeArrayShadow) + 395: 249(fvec4) Load 251(c4) + 396: 52(float) Load 215(compare) + 397:6(float16_t) ImageSampleDrefImplicitLod 394 395 396 + 398: 208(ptr) AccessChain 119(texel) 207 + 399:6(float16_t) Load 398 + 400:6(float16_t) FAdd 399 397 + 401: 208(ptr) AccessChain 119(texel) 207 + Store 401 400 + 402: 391 Load 393(sCubeArrayShadow) + 403: 7(f16vec4) Load 309(f16c4) + 404: 52(float) Load 215(compare) + 405:6(float16_t) ImageSampleDrefImplicitLod 402 403 404 + 406: 208(ptr) AccessChain 119(texel) 207 + 407:6(float16_t) Load 406 + 408:6(float16_t) FAdd 407 405 + 409: 208(ptr) AccessChain 119(texel) 207 + Store 409 408 + 410: 7(f16vec4) Load 119(texel) + ReturnValue 410 + FunctionEnd +11(testTextureProj(): 7(f16vec4) Function None 8 + 12: Label + 413(texel): 64(ptr) Variable Function + Store 413(texel) 121 + 414: 123 Load 125(s1D) + 415: 53(fvec2) Load 148(c2) + 416: 7(f16vec4) ImageSampleProjImplicitLod 414 415 + 417: 7(f16vec4) Load 413(texel) + 418: 7(f16vec4) FAdd 417 416 + Store 413(texel) 418 + 419: 123 Load 125(s1D) + 420:154(f16vec2) Load 156(f16c2) + 421:6(float16_t) Load 137(f16bias) + 422: 7(f16vec4) ImageSampleProjImplicitLod 419 420 Bias 421 + 423: 7(f16vec4) Load 413(texel) + 424: 7(f16vec4) FAdd 423 422 + Store 413(texel) 424 + 425: 123 Load 125(s1D) + 426: 249(fvec4) Load 251(c4) + 427: 52(float) CompositeExtract 426 3 + 428: 249(fvec4) CompositeInsert 427 426 1 + 429: 7(f16vec4) ImageSampleProjImplicitLod 425 428 + 430: 7(f16vec4) Load 413(texel) + 431: 7(f16vec4) FAdd 430 429 + Store 413(texel) 431 + 432: 123 Load 125(s1D) + 433: 7(f16vec4) Load 309(f16c4) + 434:6(float16_t) Load 137(f16bias) + 435:6(float16_t) CompositeExtract 433 3 + 436: 7(f16vec4) CompositeInsert 435 433 1 + 437: 7(f16vec4) ImageSampleProjImplicitLod 432 436 Bias 434 + 438: 7(f16vec4) Load 413(texel) + 439: 7(f16vec4) FAdd 438 437 + Store 413(texel) 439 + 440: 143 Load 145(s2D) + 441: 167(fvec3) Load 169(c3) + 442: 7(f16vec4) ImageSampleProjImplicitLod 440 441 + 443: 7(f16vec4) Load 413(texel) + 444: 7(f16vec4) FAdd 443 442 + Store 413(texel) 444 + 445: 143 Load 145(s2D) + 446:175(f16vec3) Load 177(f16c3) + 447:6(float16_t) Load 137(f16bias) + 448: 7(f16vec4) ImageSampleProjImplicitLod 445 446 Bias 447 + 449: 7(f16vec4) Load 413(texel) + 450: 7(f16vec4) FAdd 449 448 + Store 413(texel) 450 + 451: 143 Load 145(s2D) + 452: 249(fvec4) Load 251(c4) + 453: 52(float) CompositeExtract 452 3 + 454: 249(fvec4) CompositeInsert 453 452 2 + 455: 7(f16vec4) ImageSampleProjImplicitLod 451 454 + 456: 7(f16vec4) Load 413(texel) + 457: 7(f16vec4) FAdd 456 455 + Store 413(texel) 457 + 458: 143 Load 145(s2D) + 459: 7(f16vec4) Load 309(f16c4) + 460:6(float16_t) Load 137(f16bias) + 461:6(float16_t) CompositeExtract 459 3 + 462: 7(f16vec4) CompositeInsert 461 459 2 + 463: 7(f16vec4) ImageSampleProjImplicitLod 458 462 Bias 460 + 464: 7(f16vec4) Load 413(texel) + 465: 7(f16vec4) FAdd 464 463 + Store 413(texel) 465 + 466: 163 Load 165(s3D) + 467: 249(fvec4) Load 251(c4) + 468: 7(f16vec4) ImageSampleProjImplicitLod 466 467 + 469: 7(f16vec4) Load 413(texel) + 470: 7(f16vec4) FAdd 469 468 + Store 413(texel) 470 + 471: 163 Load 165(s3D) + 472: 7(f16vec4) Load 309(f16c4) + 473:6(float16_t) Load 137(f16bias) + 474: 7(f16vec4) ImageSampleProjImplicitLod 471 472 Bias 473 + 475: 7(f16vec4) Load 413(texel) + 476: 7(f16vec4) FAdd 475 474 + Store 413(texel) 476 + 477: 199 Load 201(s1DShadow) + 478: 249(fvec4) Load 251(c4) + 479: 52(float) CompositeExtract 478 2 + 480: 52(float) CompositeExtract 478 3 + 481: 249(fvec4) CompositeInsert 480 478 1 + 482:6(float16_t) ImageSampleProjDrefImplicitLod 477 481 479 + 483: 208(ptr) AccessChain 413(texel) 207 + 484:6(float16_t) Load 483 + 485:6(float16_t) FAdd 484 482 + 486: 208(ptr) AccessChain 413(texel) 207 + Store 486 485 + 487: 199 Load 201(s1DShadow) + 488:175(f16vec3) Load 177(f16c3) + 489: 52(float) Load 215(compare) + 490:6(float16_t) Load 137(f16bias) + 491:6(float16_t) CompositeExtract 488 2 + 492:175(f16vec3) CompositeInsert 491 488 1 + 493:6(float16_t) ImageSampleProjDrefImplicitLod 487 492 489 Bias 490 + 494: 208(ptr) AccessChain 413(texel) 207 + 495:6(float16_t) Load 494 + 496:6(float16_t) FAdd 495 493 + 497: 208(ptr) AccessChain 413(texel) 207 + Store 497 496 + 498: 224 Load 226(s2DShadow) + 499: 249(fvec4) Load 251(c4) + 500: 52(float) CompositeExtract 499 2 + 501: 52(float) CompositeExtract 499 3 + 502: 249(fvec4) CompositeInsert 501 499 2 + 503:6(float16_t) ImageSampleProjDrefImplicitLod 498 502 500 + 504: 208(ptr) AccessChain 413(texel) 207 + 505:6(float16_t) Load 504 + 506:6(float16_t) FAdd 505 503 + 507: 208(ptr) AccessChain 413(texel) 207 + Store 507 506 + 508: 224 Load 226(s2DShadow) + 509:175(f16vec3) Load 177(f16c3) + 510: 52(float) Load 215(compare) + 511:6(float16_t) Load 137(f16bias) + 512:6(float16_t) ImageSampleProjDrefImplicitLod 508 509 510 Bias 511 + 513: 208(ptr) AccessChain 413(texel) 207 + 514:6(float16_t) Load 513 + 515:6(float16_t) FAdd 514 512 + 516: 208(ptr) AccessChain 413(texel) 207 + Store 516 515 + 517: 357 Load 359(s2DRect) + 518: 167(fvec3) Load 169(c3) + 519: 7(f16vec4) ImageSampleProjImplicitLod 517 518 + 520: 7(f16vec4) Load 413(texel) + 521: 7(f16vec4) FAdd 520 519 + Store 413(texel) 521 + 522: 357 Load 359(s2DRect) + 523:175(f16vec3) Load 177(f16c3) + 524: 7(f16vec4) ImageSampleProjImplicitLod 522 523 + 525: 7(f16vec4) Load 413(texel) + 526: 7(f16vec4) FAdd 525 524 + Store 413(texel) 526 + 527: 357 Load 359(s2DRect) + 528: 249(fvec4) Load 251(c4) + 529: 52(float) CompositeExtract 528 3 + 530: 249(fvec4) CompositeInsert 529 528 2 + 531: 7(f16vec4) ImageSampleProjImplicitLod 527 530 + 532: 7(f16vec4) Load 413(texel) + 533: 7(f16vec4) FAdd 532 531 + Store 413(texel) 533 + 534: 357 Load 359(s2DRect) + 535: 7(f16vec4) Load 309(f16c4) + 536:6(float16_t) CompositeExtract 535 3 + 537: 7(f16vec4) CompositeInsert 536 535 2 + 538: 7(f16vec4) ImageSampleProjImplicitLod 534 537 + 539: 7(f16vec4) Load 413(texel) + 540: 7(f16vec4) FAdd 539 538 + Store 413(texel) 540 + 541: 371 Load 373(s2DRectShadow) + 542: 249(fvec4) Load 251(c4) + 543: 52(float) CompositeExtract 542 2 + 544: 52(float) CompositeExtract 542 3 + 545: 249(fvec4) CompositeInsert 544 542 2 + 546:6(float16_t) ImageSampleProjDrefImplicitLod 541 545 543 + 547: 208(ptr) AccessChain 413(texel) 207 + 548:6(float16_t) Load 547 + 549:6(float16_t) FAdd 548 546 + 550: 208(ptr) AccessChain 413(texel) 207 + Store 550 549 + 551: 371 Load 373(s2DRectShadow) + 552:175(f16vec3) Load 177(f16c3) + 553: 52(float) Load 215(compare) + 554:6(float16_t) ImageSampleProjDrefImplicitLod 551 552 553 + 555: 208(ptr) AccessChain 413(texel) 207 + 556:6(float16_t) Load 555 + 557:6(float16_t) FAdd 556 554 + 558: 208(ptr) AccessChain 413(texel) 207 + Store 558 557 + 559: 7(f16vec4) Load 413(texel) + ReturnValue 559 + FunctionEnd +13(testTextureLod(): 7(f16vec4) Function None 8 + 14: Label + 562(texel): 64(ptr) Variable Function + Store 562(texel) 121 + 563: 123 Load 125(s1D) + 564: 52(float) Load 128(c1) + 566: 52(float) Load 565(lod) + 567: 7(f16vec4) ImageSampleExplicitLod 563 564 Lod 566 + 568: 7(f16vec4) Load 562(texel) + 569: 7(f16vec4) FAdd 568 567 + Store 562(texel) 569 + 570: 123 Load 125(s1D) + 571:6(float16_t) Load 135(f16c1) + 573:6(float16_t) Load 572(f16lod) + 574: 7(f16vec4) ImageSampleExplicitLod 570 571 Lod 573 + 575: 7(f16vec4) Load 562(texel) + 576: 7(f16vec4) FAdd 575 574 + Store 562(texel) 576 + 577: 143 Load 145(s2D) + 578: 53(fvec2) Load 148(c2) + 579: 52(float) Load 565(lod) + 580: 7(f16vec4) ImageSampleExplicitLod 577 578 Lod 579 + 581: 7(f16vec4) Load 562(texel) + 582: 7(f16vec4) FAdd 581 580 + Store 562(texel) 582 + 583: 143 Load 145(s2D) + 584:154(f16vec2) Load 156(f16c2) + 585:6(float16_t) Load 572(f16lod) + 586: 7(f16vec4) ImageSampleExplicitLod 583 584 Lod 585 + 587: 7(f16vec4) Load 562(texel) + 588: 7(f16vec4) FAdd 587 586 + Store 562(texel) 588 + 589: 163 Load 165(s3D) + 590: 167(fvec3) Load 169(c3) + 591: 52(float) Load 565(lod) + 592: 7(f16vec4) ImageSampleExplicitLod 589 590 Lod 591 + 593: 7(f16vec4) Load 562(texel) + 594: 7(f16vec4) FAdd 593 592 + Store 562(texel) 594 + 595: 163 Load 165(s3D) + 596:175(f16vec3) Load 177(f16c3) + 597:6(float16_t) Load 572(f16lod) + 598: 7(f16vec4) ImageSampleExplicitLod 595 596 Lod 597 + 599: 7(f16vec4) Load 562(texel) + 600: 7(f16vec4) FAdd 599 598 + Store 562(texel) 600 + 601: 184 Load 186(sCube) + 602: 167(fvec3) Load 169(c3) + 603: 52(float) Load 565(lod) + 604: 7(f16vec4) ImageSampleExplicitLod 601 602 Lod 603 + 605: 7(f16vec4) Load 562(texel) + 606: 7(f16vec4) FAdd 605 604 + Store 562(texel) 606 + 607: 184 Load 186(sCube) + 608:175(f16vec3) Load 177(f16c3) + 609:6(float16_t) Load 572(f16lod) + 610: 7(f16vec4) ImageSampleExplicitLod 607 608 Lod 609 + 611: 7(f16vec4) Load 562(texel) + 612: 7(f16vec4) FAdd 611 610 + Store 562(texel) 612 + 613: 199 Load 201(s1DShadow) + 614: 167(fvec3) Load 169(c3) + 615: 52(float) Load 565(lod) + 616: 52(float) CompositeExtract 614 2 + 617:6(float16_t) ImageSampleDrefExplicitLod 613 614 616 Lod 615 + 618: 208(ptr) AccessChain 562(texel) 207 + 619:6(float16_t) Load 618 + 620:6(float16_t) FAdd 619 617 + 621: 208(ptr) AccessChain 562(texel) 207 + Store 621 620 + 622: 199 Load 201(s1DShadow) + 623:154(f16vec2) Load 156(f16c2) + 624: 52(float) Load 215(compare) + 625:6(float16_t) Load 572(f16lod) + 626:6(float16_t) ImageSampleDrefExplicitLod 622 623 624 Lod 625 + 627: 208(ptr) AccessChain 562(texel) 207 + 628:6(float16_t) Load 627 + 629:6(float16_t) FAdd 628 626 + 630: 208(ptr) AccessChain 562(texel) 207 + Store 630 629 + 631: 224 Load 226(s2DShadow) + 632: 167(fvec3) Load 169(c3) + 633: 52(float) Load 565(lod) + 634: 52(float) CompositeExtract 632 2 + 635:6(float16_t) ImageSampleDrefExplicitLod 631 632 634 Lod 633 + 636: 208(ptr) AccessChain 562(texel) 207 + 637:6(float16_t) Load 636 + 638:6(float16_t) FAdd 637 635 + 639: 208(ptr) AccessChain 562(texel) 207 + Store 639 638 + 640: 224 Load 226(s2DShadow) + 641:154(f16vec2) Load 156(f16c2) + 642: 52(float) Load 215(compare) + 643:6(float16_t) Load 572(f16lod) + 644:6(float16_t) ImageSampleDrefExplicitLod 640 641 642 Lod 643 + 645: 208(ptr) AccessChain 562(texel) 207 + 646:6(float16_t) Load 645 + 647:6(float16_t) FAdd 646 644 + 648: 208(ptr) AccessChain 562(texel) 207 + Store 648 647 + 649: 269 Load 271(s1DArray) + 650: 53(fvec2) Load 148(c2) + 651: 52(float) Load 565(lod) + 652: 7(f16vec4) ImageSampleExplicitLod 649 650 Lod 651 + 653: 7(f16vec4) Load 562(texel) + 654: 7(f16vec4) FAdd 653 652 + Store 562(texel) 654 + 655: 269 Load 271(s1DArray) + 656:154(f16vec2) Load 156(f16c2) + 657:6(float16_t) Load 572(f16lod) + 658: 7(f16vec4) ImageSampleExplicitLod 655 656 Lod 657 + 659: 7(f16vec4) Load 562(texel) + 660: 7(f16vec4) FAdd 659 658 + Store 562(texel) 660 + 661: 284 Load 286(s2DArray) + 662: 167(fvec3) Load 169(c3) + 663: 52(float) Load 565(lod) + 664: 7(f16vec4) ImageSampleExplicitLod 661 662 Lod 663 + 665: 7(f16vec4) Load 562(texel) + 666: 7(f16vec4) FAdd 665 664 + Store 562(texel) 666 + 667: 284 Load 286(s2DArray) + 668:175(f16vec3) Load 177(f16c3) + 669:6(float16_t) Load 572(f16lod) + 670: 7(f16vec4) ImageSampleExplicitLod 667 668 Lod 669 + 671: 7(f16vec4) Load 562(texel) + 672: 7(f16vec4) FAdd 671 670 + Store 562(texel) 672 + 673: 316 Load 318(s1DArrayShadow) + 674: 167(fvec3) Load 169(c3) + 675: 52(float) Load 565(lod) + 676: 52(float) CompositeExtract 674 2 + 677:6(float16_t) ImageSampleDrefExplicitLod 673 674 676 Lod 675 + 678: 208(ptr) AccessChain 562(texel) 207 + 679:6(float16_t) Load 678 + 680:6(float16_t) FAdd 679 677 + 681: 208(ptr) AccessChain 562(texel) 207 + Store 681 680 + 682: 316 Load 318(s1DArrayShadow) + 683:154(f16vec2) Load 156(f16c2) + 684: 52(float) Load 215(compare) + 685:6(float16_t) Load 572(f16lod) + 686:6(float16_t) ImageSampleDrefExplicitLod 682 683 684 Lod 685 + 687: 208(ptr) AccessChain 562(texel) 207 + 688:6(float16_t) Load 687 + 689:6(float16_t) FAdd 688 686 + 690: 208(ptr) AccessChain 562(texel) 207 + Store 690 689 + 691: 299 Load 301(sCubeArray) + 692: 249(fvec4) Load 251(c4) + 693: 52(float) Load 565(lod) + 694: 7(f16vec4) ImageSampleExplicitLod 691 692 Lod 693 + 695: 7(f16vec4) Load 562(texel) + 696: 7(f16vec4) FAdd 695 694 + Store 562(texel) 696 + 697: 299 Load 301(sCubeArray) + 698: 7(f16vec4) Load 309(f16c4) + 699:6(float16_t) Load 572(f16lod) + 700: 7(f16vec4) ImageSampleExplicitLod 697 698 Lod 699 + 701: 7(f16vec4) Load 562(texel) + 702: 7(f16vec4) FAdd 701 700 + Store 562(texel) 702 + 703: 7(f16vec4) Load 562(texel) + ReturnValue 703 + FunctionEnd +15(testTextureOffset(): 7(f16vec4) Function None 8 + 16: Label + 706(texel): 64(ptr) Variable Function + Store 706(texel) 121 + 707: 123 Load 125(s1D) + 708: 52(float) Load 128(c1) + 710: 7(f16vec4) ImageSampleImplicitLod 707 708 ConstOffset 709 + 711: 7(f16vec4) Load 706(texel) + 712: 7(f16vec4) FAdd 711 710 + Store 706(texel) 712 + 713: 123 Load 125(s1D) + 714:6(float16_t) Load 135(f16c1) + 715:6(float16_t) Load 137(f16bias) + 716: 7(f16vec4) ImageSampleImplicitLod 713 714 Bias ConstOffset 715 709 + 717: 7(f16vec4) Load 706(texel) + 718: 7(f16vec4) FAdd 717 716 + Store 706(texel) 718 + 719: 143 Load 145(s2D) + 720: 53(fvec2) Load 148(c2) + 723: 7(f16vec4) ImageSampleImplicitLod 719 720 ConstOffset 722 + 724: 7(f16vec4) Load 706(texel) + 725: 7(f16vec4) FAdd 724 723 + Store 706(texel) 725 + 726: 143 Load 145(s2D) + 727:154(f16vec2) Load 156(f16c2) + 728:6(float16_t) Load 137(f16bias) + 729: 7(f16vec4) ImageSampleImplicitLod 726 727 Bias ConstOffset 728 722 + 730: 7(f16vec4) Load 706(texel) + 731: 7(f16vec4) FAdd 730 729 + Store 706(texel) 731 + 732: 163 Load 165(s3D) + 733: 167(fvec3) Load 169(c3) + 736: 7(f16vec4) ImageSampleImplicitLod 732 733 ConstOffset 735 + 737: 7(f16vec4) Load 706(texel) + 738: 7(f16vec4) FAdd 737 736 + Store 706(texel) 738 + 739: 163 Load 165(s3D) + 740:175(f16vec3) Load 177(f16c3) + 741:6(float16_t) Load 137(f16bias) + 742: 7(f16vec4) ImageSampleImplicitLod 739 740 Bias ConstOffset 741 735 + 743: 7(f16vec4) Load 706(texel) + 744: 7(f16vec4) FAdd 743 742 + Store 706(texel) 744 + 745: 357 Load 359(s2DRect) + 746: 53(fvec2) Load 148(c2) + 747: 7(f16vec4) ImageSampleImplicitLod 745 746 ConstOffset 722 + 748: 7(f16vec4) Load 706(texel) + 749: 7(f16vec4) FAdd 748 747 + Store 706(texel) 749 + 750: 357 Load 359(s2DRect) + 751:154(f16vec2) Load 156(f16c2) + 752: 7(f16vec4) ImageSampleImplicitLod 750 751 ConstOffset 722 + 753: 7(f16vec4) Load 706(texel) + 754: 7(f16vec4) FAdd 753 752 + Store 706(texel) 754 + 755: 371 Load 373(s2DRectShadow) + 756: 167(fvec3) Load 169(c3) + 757: 52(float) CompositeExtract 756 2 + 758:6(float16_t) ImageSampleDrefImplicitLod 755 756 757 ConstOffset 722 + 759: 208(ptr) AccessChain 706(texel) 207 + 760:6(float16_t) Load 759 + 761:6(float16_t) FAdd 760 758 + 762: 208(ptr) AccessChain 706(texel) 207 + Store 762 761 + 763: 371 Load 373(s2DRectShadow) + 764:154(f16vec2) Load 156(f16c2) + 765: 52(float) Load 215(compare) + 766:6(float16_t) ImageSampleDrefImplicitLod 763 764 765 ConstOffset 722 + 767: 208(ptr) AccessChain 706(texel) 207 + 768:6(float16_t) Load 767 + 769:6(float16_t) FAdd 768 766 + 770: 208(ptr) AccessChain 706(texel) 207 + Store 770 769 + 771: 199 Load 201(s1DShadow) + 772: 167(fvec3) Load 169(c3) + 773: 52(float) CompositeExtract 772 2 + 774:6(float16_t) ImageSampleDrefImplicitLod 771 772 773 ConstOffset 709 + 775: 208(ptr) AccessChain 706(texel) 207 + 776:6(float16_t) Load 775 + 777:6(float16_t) FAdd 776 774 + 778: 208(ptr) AccessChain 706(texel) 207 + Store 778 777 + 779: 199 Load 201(s1DShadow) + 780:154(f16vec2) Load 156(f16c2) + 781: 52(float) Load 215(compare) + 782:6(float16_t) Load 137(f16bias) + 783:6(float16_t) ImageSampleDrefImplicitLod 779 780 781 Bias ConstOffset 782 709 + 784: 208(ptr) AccessChain 706(texel) 207 + 785:6(float16_t) Load 784 + 786:6(float16_t) FAdd 785 783 + 787: 208(ptr) AccessChain 706(texel) 207 + Store 787 786 + 788: 224 Load 226(s2DShadow) + 789: 167(fvec3) Load 169(c3) + 790: 52(float) CompositeExtract 789 2 + 791:6(float16_t) ImageSampleDrefImplicitLod 788 789 790 ConstOffset 722 + 792: 208(ptr) AccessChain 706(texel) 207 + 793:6(float16_t) Load 792 + 794:6(float16_t) FAdd 793 791 + 795: 208(ptr) AccessChain 706(texel) 207 + Store 795 794 + 796: 224 Load 226(s2DShadow) + 797:154(f16vec2) Load 156(f16c2) + 798: 52(float) Load 215(compare) + 799:6(float16_t) Load 137(f16bias) + 800:6(float16_t) ImageSampleDrefImplicitLod 796 797 798 Bias ConstOffset 799 722 + 801: 208(ptr) AccessChain 706(texel) 207 + 802:6(float16_t) Load 801 + 803:6(float16_t) FAdd 802 800 + 804: 208(ptr) AccessChain 706(texel) 207 + Store 804 803 + 805: 269 Load 271(s1DArray) + 806: 53(fvec2) Load 148(c2) + 807: 7(f16vec4) ImageSampleImplicitLod 805 806 ConstOffset 709 + 808: 7(f16vec4) Load 706(texel) + 809: 7(f16vec4) FAdd 808 807 + Store 706(texel) 809 + 810: 269 Load 271(s1DArray) + 811:154(f16vec2) Load 156(f16c2) + 812:6(float16_t) Load 137(f16bias) + 813: 7(f16vec4) ImageSampleImplicitLod 810 811 Bias ConstOffset 812 709 + 814: 7(f16vec4) Load 706(texel) + 815: 7(f16vec4) FAdd 814 813 + Store 706(texel) 815 + 816: 284 Load 286(s2DArray) + 817: 167(fvec3) Load 169(c3) + 818: 7(f16vec4) ImageSampleImplicitLod 816 817 ConstOffset 722 + 819: 7(f16vec4) Load 706(texel) + 820: 7(f16vec4) FAdd 819 818 + Store 706(texel) 820 + 821: 284 Load 286(s2DArray) + 822:175(f16vec3) Load 177(f16c3) + 823:6(float16_t) Load 137(f16bias) + 824: 7(f16vec4) ImageSampleImplicitLod 821 822 Bias ConstOffset 823 722 + 825: 7(f16vec4) Load 706(texel) + 826: 7(f16vec4) FAdd 825 824 + Store 706(texel) 826 + 827: 316 Load 318(s1DArrayShadow) + 828: 167(fvec3) Load 169(c3) + 829: 52(float) CompositeExtract 828 2 + 830:6(float16_t) ImageSampleDrefImplicitLod 827 828 829 ConstOffset 709 + 831: 208(ptr) AccessChain 706(texel) 207 + 832:6(float16_t) Load 831 + 833:6(float16_t) FAdd 832 830 + 834: 208(ptr) AccessChain 706(texel) 207 + Store 834 833 + 835: 316 Load 318(s1DArrayShadow) + 836:154(f16vec2) Load 156(f16c2) + 837: 52(float) Load 215(compare) + 838:6(float16_t) Load 137(f16bias) + 839:6(float16_t) ImageSampleDrefImplicitLod 835 836 837 Bias ConstOffset 838 709 + 840: 208(ptr) AccessChain 706(texel) 207 + 841:6(float16_t) Load 840 + 842:6(float16_t) FAdd 841 839 + 843: 208(ptr) AccessChain 706(texel) 207 + Store 843 842 + 844: 337 Load 339(s2DArrayShadow) + 845: 249(fvec4) Load 251(c4) + 846: 52(float) CompositeExtract 845 3 + 847:6(float16_t) ImageSampleDrefImplicitLod 844 845 846 ConstOffset 722 + 848: 208(ptr) AccessChain 706(texel) 207 + 849:6(float16_t) Load 848 + 850:6(float16_t) FAdd 849 847 + 851: 208(ptr) AccessChain 706(texel) 207 + Store 851 850 + 852: 337 Load 339(s2DArrayShadow) + 853:175(f16vec3) Load 177(f16c3) + 854: 52(float) Load 215(compare) + 855:6(float16_t) ImageSampleDrefImplicitLod 852 853 854 ConstOffset 722 + 856: 208(ptr) AccessChain 706(texel) 207 + 857:6(float16_t) Load 856 + 858:6(float16_t) FAdd 857 855 + 859: 208(ptr) AccessChain 706(texel) 207 + Store 859 858 + 860: 7(f16vec4) Load 706(texel) + ReturnValue 860 + FunctionEnd +17(testTextureProjOffset(): 7(f16vec4) Function None 8 + 18: Label + 863(texel): 64(ptr) Variable Function + Store 863(texel) 121 + 864: 123 Load 125(s1D) + 865: 53(fvec2) Load 148(c2) + 866: 7(f16vec4) ImageSampleProjImplicitLod 864 865 ConstOffset 709 + 867: 7(f16vec4) Load 863(texel) + 868: 7(f16vec4) FAdd 867 866 + Store 863(texel) 868 + 869: 123 Load 125(s1D) + 870:154(f16vec2) Load 156(f16c2) + 871:6(float16_t) Load 137(f16bias) + 872: 7(f16vec4) ImageSampleProjImplicitLod 869 870 Bias ConstOffset 871 709 + 873: 7(f16vec4) Load 863(texel) + 874: 7(f16vec4) FAdd 873 872 + Store 863(texel) 874 + 875: 123 Load 125(s1D) + 876: 249(fvec4) Load 251(c4) + 877: 52(float) CompositeExtract 876 3 + 878: 249(fvec4) CompositeInsert 877 876 1 + 879: 7(f16vec4) ImageSampleProjImplicitLod 875 878 ConstOffset 709 + 880: 7(f16vec4) Load 863(texel) + 881: 7(f16vec4) FAdd 880 879 + Store 863(texel) 881 + 882: 123 Load 125(s1D) + 883: 7(f16vec4) Load 309(f16c4) + 884:6(float16_t) Load 137(f16bias) + 885:6(float16_t) CompositeExtract 883 3 + 886: 7(f16vec4) CompositeInsert 885 883 1 + 887: 7(f16vec4) ImageSampleProjImplicitLod 882 886 Bias ConstOffset 884 709 + 888: 7(f16vec4) Load 863(texel) + 889: 7(f16vec4) FAdd 888 887 + Store 863(texel) 889 + 890: 143 Load 145(s2D) + 891: 167(fvec3) Load 169(c3) + 892: 7(f16vec4) ImageSampleProjImplicitLod 890 891 ConstOffset 722 + 893: 7(f16vec4) Load 863(texel) + 894: 7(f16vec4) FAdd 893 892 + Store 863(texel) 894 + 895: 143 Load 145(s2D) + 896:175(f16vec3) Load 177(f16c3) + 897:6(float16_t) Load 137(f16bias) + 898: 7(f16vec4) ImageSampleProjImplicitLod 895 896 Bias ConstOffset 897 722 + 899: 7(f16vec4) Load 863(texel) + 900: 7(f16vec4) FAdd 899 898 + Store 863(texel) 900 + 901: 143 Load 145(s2D) + 902: 249(fvec4) Load 251(c4) + 903: 52(float) CompositeExtract 902 3 + 904: 249(fvec4) CompositeInsert 903 902 2 + 905: 7(f16vec4) ImageSampleProjImplicitLod 901 904 ConstOffset 722 + 906: 7(f16vec4) Load 863(texel) + 907: 7(f16vec4) FAdd 906 905 + Store 863(texel) 907 + 908: 143 Load 145(s2D) + 909: 7(f16vec4) Load 309(f16c4) + 910:6(float16_t) Load 137(f16bias) + 911:6(float16_t) CompositeExtract 909 3 + 912: 7(f16vec4) CompositeInsert 911 909 2 + 913: 7(f16vec4) ImageSampleProjImplicitLod 908 912 Bias ConstOffset 910 722 + 914: 7(f16vec4) Load 863(texel) + 915: 7(f16vec4) FAdd 914 913 + Store 863(texel) 915 + 916: 163 Load 165(s3D) + 917: 249(fvec4) Load 251(c4) + 918: 7(f16vec4) ImageSampleProjImplicitLod 916 917 ConstOffset 735 + 919: 7(f16vec4) Load 863(texel) + 920: 7(f16vec4) FAdd 919 918 + Store 863(texel) 920 + 921: 163 Load 165(s3D) + 922: 7(f16vec4) Load 309(f16c4) + 923:6(float16_t) Load 137(f16bias) + 924: 7(f16vec4) ImageSampleProjImplicitLod 921 922 Bias ConstOffset 923 735 + 925: 7(f16vec4) Load 863(texel) + 926: 7(f16vec4) FAdd 925 924 + Store 863(texel) 926 + 927: 357 Load 359(s2DRect) + 928: 167(fvec3) Load 169(c3) + 929: 7(f16vec4) ImageSampleProjImplicitLod 927 928 ConstOffset 722 + 930: 7(f16vec4) Load 863(texel) + 931: 7(f16vec4) FAdd 930 929 + Store 863(texel) 931 + 932: 357 Load 359(s2DRect) + 933:175(f16vec3) Load 177(f16c3) + 934: 7(f16vec4) ImageSampleProjImplicitLod 932 933 ConstOffset 722 + 935: 7(f16vec4) Load 863(texel) + 936: 7(f16vec4) FAdd 935 934 + Store 863(texel) 936 + 937: 357 Load 359(s2DRect) + 938: 249(fvec4) Load 251(c4) + 939: 52(float) CompositeExtract 938 3 + 940: 249(fvec4) CompositeInsert 939 938 2 + 941: 7(f16vec4) ImageSampleProjImplicitLod 937 940 ConstOffset 722 + 942: 7(f16vec4) Load 863(texel) + 943: 7(f16vec4) FAdd 942 941 + Store 863(texel) 943 + 944: 357 Load 359(s2DRect) + 945: 7(f16vec4) Load 309(f16c4) + 946:6(float16_t) CompositeExtract 945 3 + 947: 7(f16vec4) CompositeInsert 946 945 2 + 948: 7(f16vec4) ImageSampleProjImplicitLod 944 947 ConstOffset 722 + 949: 7(f16vec4) Load 863(texel) + 950: 7(f16vec4) FAdd 949 948 + Store 863(texel) 950 + 951: 371 Load 373(s2DRectShadow) + 952: 249(fvec4) Load 251(c4) + 953: 52(float) CompositeExtract 952 2 + 954: 52(float) CompositeExtract 952 3 + 955: 249(fvec4) CompositeInsert 954 952 2 + 956:6(float16_t) ImageSampleProjDrefImplicitLod 951 955 953 ConstOffset 722 + 957: 208(ptr) AccessChain 863(texel) 207 + 958:6(float16_t) Load 957 + 959:6(float16_t) FAdd 958 956 + 960: 208(ptr) AccessChain 863(texel) 207 + Store 960 959 + 961: 371 Load 373(s2DRectShadow) + 962:175(f16vec3) Load 177(f16c3) + 963: 52(float) Load 215(compare) + 964:6(float16_t) ImageSampleProjDrefImplicitLod 961 962 963 ConstOffset 722 + 965: 208(ptr) AccessChain 863(texel) 207 + 966:6(float16_t) Load 965 + 967:6(float16_t) FAdd 966 964 + 968: 208(ptr) AccessChain 863(texel) 207 + Store 968 967 + 969: 199 Load 201(s1DShadow) + 970: 249(fvec4) Load 251(c4) + 971: 52(float) CompositeExtract 970 2 + 972: 52(float) CompositeExtract 970 3 + 973: 249(fvec4) CompositeInsert 972 970 1 + 974:6(float16_t) ImageSampleProjDrefImplicitLod 969 973 971 ConstOffset 709 + 975: 208(ptr) AccessChain 863(texel) 207 + 976:6(float16_t) Load 975 + 977:6(float16_t) FAdd 976 974 + 978: 208(ptr) AccessChain 863(texel) 207 + Store 978 977 + 979: 199 Load 201(s1DShadow) + 980:175(f16vec3) Load 177(f16c3) + 981: 52(float) Load 215(compare) + 982:6(float16_t) Load 137(f16bias) + 983:6(float16_t) CompositeExtract 980 2 + 984:175(f16vec3) CompositeInsert 983 980 1 + 985:6(float16_t) ImageSampleProjDrefImplicitLod 979 984 981 Bias ConstOffset 982 709 + 986: 208(ptr) AccessChain 863(texel) 207 + 987:6(float16_t) Load 986 + 988:6(float16_t) FAdd 987 985 + 989: 208(ptr) AccessChain 863(texel) 207 + Store 989 988 + 990: 224 Load 226(s2DShadow) + 991: 249(fvec4) Load 251(c4) + 992: 52(float) CompositeExtract 991 2 + 993: 52(float) CompositeExtract 991 3 + 994: 249(fvec4) CompositeInsert 993 991 2 + 995:6(float16_t) ImageSampleProjDrefImplicitLod 990 994 992 ConstOffset 722 + 996: 208(ptr) AccessChain 863(texel) 207 + 997:6(float16_t) Load 996 + 998:6(float16_t) FAdd 997 995 + 999: 208(ptr) AccessChain 863(texel) 207 + Store 999 998 + 1000: 224 Load 226(s2DShadow) + 1001:175(f16vec3) Load 177(f16c3) + 1002: 52(float) Load 215(compare) + 1003:6(float16_t) Load 137(f16bias) + 1004:6(float16_t) ImageSampleProjDrefImplicitLod 1000 1001 1002 Bias ConstOffset 1003 722 + 1005: 208(ptr) AccessChain 863(texel) 207 + 1006:6(float16_t) Load 1005 + 1007:6(float16_t) FAdd 1006 1004 + 1008: 208(ptr) AccessChain 863(texel) 207 + Store 1008 1007 + 1009: 7(f16vec4) Load 863(texel) + ReturnValue 1009 + FunctionEnd +19(testTextureLodOffset(): 7(f16vec4) Function None 8 + 20: Label + 1012(texel): 64(ptr) Variable Function + Store 1012(texel) 121 + 1013: 123 Load 125(s1D) + 1014: 52(float) Load 128(c1) + 1015: 52(float) Load 565(lod) + 1016: 7(f16vec4) ImageSampleExplicitLod 1013 1014 Lod ConstOffset 1015 709 + 1017: 7(f16vec4) Load 1012(texel) + 1018: 7(f16vec4) FAdd 1017 1016 + Store 1012(texel) 1018 + 1019: 123 Load 125(s1D) + 1020:6(float16_t) Load 135(f16c1) + 1021:6(float16_t) Load 572(f16lod) + 1022: 7(f16vec4) ImageSampleExplicitLod 1019 1020 Lod ConstOffset 1021 709 + 1023: 7(f16vec4) Load 1012(texel) + 1024: 7(f16vec4) FAdd 1023 1022 + Store 1012(texel) 1024 + 1025: 143 Load 145(s2D) + 1026: 53(fvec2) Load 148(c2) + 1027: 52(float) Load 565(lod) + 1028: 7(f16vec4) ImageSampleExplicitLod 1025 1026 Lod ConstOffset 1027 722 + 1029: 7(f16vec4) Load 1012(texel) + 1030: 7(f16vec4) FAdd 1029 1028 + Store 1012(texel) 1030 + 1031: 143 Load 145(s2D) + 1032:154(f16vec2) Load 156(f16c2) + 1033:6(float16_t) Load 572(f16lod) + 1034: 7(f16vec4) ImageSampleExplicitLod 1031 1032 Lod ConstOffset 1033 722 + 1035: 7(f16vec4) Load 1012(texel) + 1036: 7(f16vec4) FAdd 1035 1034 + Store 1012(texel) 1036 + 1037: 163 Load 165(s3D) + 1038: 167(fvec3) Load 169(c3) + 1039: 52(float) Load 565(lod) + 1040: 7(f16vec4) ImageSampleExplicitLod 1037 1038 Lod ConstOffset 1039 735 + 1041: 7(f16vec4) Load 1012(texel) + 1042: 7(f16vec4) FAdd 1041 1040 + Store 1012(texel) 1042 + 1043: 163 Load 165(s3D) + 1044:175(f16vec3) Load 177(f16c3) + 1045:6(float16_t) Load 572(f16lod) + 1046: 7(f16vec4) ImageSampleExplicitLod 1043 1044 Lod ConstOffset 1045 735 + 1047: 7(f16vec4) Load 1012(texel) + 1048: 7(f16vec4) FAdd 1047 1046 + Store 1012(texel) 1048 + 1049: 199 Load 201(s1DShadow) + 1050: 167(fvec3) Load 169(c3) + 1051: 52(float) Load 565(lod) + 1052: 52(float) CompositeExtract 1050 2 + 1053:6(float16_t) ImageSampleDrefExplicitLod 1049 1050 1052 Lod ConstOffset 1051 709 + 1054: 208(ptr) AccessChain 1012(texel) 207 + 1055:6(float16_t) Load 1054 + 1056:6(float16_t) FAdd 1055 1053 + 1057: 208(ptr) AccessChain 1012(texel) 207 + Store 1057 1056 + 1058: 199 Load 201(s1DShadow) + 1059:154(f16vec2) Load 156(f16c2) + 1060: 52(float) Load 215(compare) + 1061:6(float16_t) Load 572(f16lod) + 1062:6(float16_t) ImageSampleDrefExplicitLod 1058 1059 1060 Lod ConstOffset 1061 709 + 1063: 208(ptr) AccessChain 1012(texel) 207 + 1064:6(float16_t) Load 1063 + 1065:6(float16_t) FAdd 1064 1062 + 1066: 208(ptr) AccessChain 1012(texel) 207 + Store 1066 1065 + 1067: 224 Load 226(s2DShadow) + 1068: 167(fvec3) Load 169(c3) + 1069: 52(float) Load 565(lod) + 1070: 52(float) CompositeExtract 1068 2 + 1071:6(float16_t) ImageSampleDrefExplicitLod 1067 1068 1070 Lod ConstOffset 1069 722 + 1072: 208(ptr) AccessChain 1012(texel) 207 + 1073:6(float16_t) Load 1072 + 1074:6(float16_t) FAdd 1073 1071 + 1075: 208(ptr) AccessChain 1012(texel) 207 + Store 1075 1074 + 1076: 224 Load 226(s2DShadow) + 1077:154(f16vec2) Load 156(f16c2) + 1078: 52(float) Load 215(compare) + 1079:6(float16_t) Load 572(f16lod) + 1080:6(float16_t) ImageSampleDrefExplicitLod 1076 1077 1078 Lod ConstOffset 1079 722 + 1081: 208(ptr) AccessChain 1012(texel) 207 + 1082:6(float16_t) Load 1081 + 1083:6(float16_t) FAdd 1082 1080 + 1084: 208(ptr) AccessChain 1012(texel) 207 + Store 1084 1083 + 1085: 269 Load 271(s1DArray) + 1086: 53(fvec2) Load 148(c2) + 1087: 52(float) Load 565(lod) + 1088: 7(f16vec4) ImageSampleExplicitLod 1085 1086 Lod ConstOffset 1087 709 + 1089: 7(f16vec4) Load 1012(texel) + 1090: 7(f16vec4) FAdd 1089 1088 + Store 1012(texel) 1090 + 1091: 269 Load 271(s1DArray) + 1092:154(f16vec2) Load 156(f16c2) + 1093:6(float16_t) Load 572(f16lod) + 1094: 7(f16vec4) ImageSampleExplicitLod 1091 1092 Lod ConstOffset 1093 709 + 1095: 7(f16vec4) Load 1012(texel) + 1096: 7(f16vec4) FAdd 1095 1094 + Store 1012(texel) 1096 + 1097: 284 Load 286(s2DArray) + 1098: 167(fvec3) Load 169(c3) + 1099: 52(float) Load 565(lod) + 1100: 7(f16vec4) ImageSampleExplicitLod 1097 1098 Lod ConstOffset 1099 722 + 1101: 7(f16vec4) Load 1012(texel) + 1102: 7(f16vec4) FAdd 1101 1100 + Store 1012(texel) 1102 + 1103: 284 Load 286(s2DArray) + 1104:175(f16vec3) Load 177(f16c3) + 1105:6(float16_t) Load 572(f16lod) + 1106: 7(f16vec4) ImageSampleExplicitLod 1103 1104 Lod ConstOffset 1105 722 + 1107: 7(f16vec4) Load 1012(texel) + 1108: 7(f16vec4) FAdd 1107 1106 + Store 1012(texel) 1108 + 1109: 316 Load 318(s1DArrayShadow) + 1110: 167(fvec3) Load 169(c3) + 1111: 52(float) Load 565(lod) + 1112: 52(float) CompositeExtract 1110 2 + 1113:6(float16_t) ImageSampleDrefExplicitLod 1109 1110 1112 Lod ConstOffset 1111 709 + 1114: 208(ptr) AccessChain 1012(texel) 207 + 1115:6(float16_t) Load 1114 + 1116:6(float16_t) FAdd 1115 1113 + 1117: 208(ptr) AccessChain 1012(texel) 207 + Store 1117 1116 + 1118: 316 Load 318(s1DArrayShadow) + 1119:154(f16vec2) Load 156(f16c2) + 1120: 52(float) Load 215(compare) + 1121:6(float16_t) Load 572(f16lod) + 1122:6(float16_t) ImageSampleDrefExplicitLod 1118 1119 1120 Lod ConstOffset 1121 709 + 1123: 208(ptr) AccessChain 1012(texel) 207 + 1124:6(float16_t) Load 1123 + 1125:6(float16_t) FAdd 1124 1122 + 1126: 208(ptr) AccessChain 1012(texel) 207 + Store 1126 1125 + 1127: 7(f16vec4) Load 1012(texel) + ReturnValue 1127 + FunctionEnd +21(testTextureProjLodOffset(): 7(f16vec4) Function None 8 + 22: Label + 1130(texel): 64(ptr) Variable Function + Store 1130(texel) 121 + 1131: 123 Load 125(s1D) + 1132: 53(fvec2) Load 148(c2) + 1133: 52(float) Load 565(lod) + 1134: 7(f16vec4) ImageSampleProjExplicitLod 1131 1132 Lod ConstOffset 1133 709 + 1135: 7(f16vec4) Load 1130(texel) + 1136: 7(f16vec4) FAdd 1135 1134 + Store 1130(texel) 1136 + 1137: 123 Load 125(s1D) + 1138:154(f16vec2) Load 156(f16c2) + 1139:6(float16_t) Load 572(f16lod) + 1140: 7(f16vec4) ImageSampleProjExplicitLod 1137 1138 Lod ConstOffset 1139 709 + 1141: 7(f16vec4) Load 1130(texel) + 1142: 7(f16vec4) FAdd 1141 1140 + Store 1130(texel) 1142 + 1143: 123 Load 125(s1D) + 1144: 249(fvec4) Load 251(c4) + 1145: 52(float) Load 565(lod) + 1146: 52(float) CompositeExtract 1144 3 + 1147: 249(fvec4) CompositeInsert 1146 1144 1 + 1148: 7(f16vec4) ImageSampleProjExplicitLod 1143 1147 Lod ConstOffset 1145 709 + 1149: 7(f16vec4) Load 1130(texel) + 1150: 7(f16vec4) FAdd 1149 1148 + Store 1130(texel) 1150 + 1151: 123 Load 125(s1D) + 1152: 7(f16vec4) Load 309(f16c4) + 1153:6(float16_t) Load 572(f16lod) + 1154:6(float16_t) CompositeExtract 1152 3 + 1155: 7(f16vec4) CompositeInsert 1154 1152 1 + 1156: 7(f16vec4) ImageSampleProjExplicitLod 1151 1155 Lod ConstOffset 1153 709 + 1157: 7(f16vec4) Load 1130(texel) + 1158: 7(f16vec4) FAdd 1157 1156 + Store 1130(texel) 1158 + 1159: 143 Load 145(s2D) + 1160: 167(fvec3) Load 169(c3) + 1161: 52(float) Load 565(lod) + 1162: 7(f16vec4) ImageSampleProjExplicitLod 1159 1160 Lod ConstOffset 1161 722 + 1163: 7(f16vec4) Load 1130(texel) + 1164: 7(f16vec4) FAdd 1163 1162 + Store 1130(texel) 1164 + 1165: 143 Load 145(s2D) + 1166:175(f16vec3) Load 177(f16c3) + 1167:6(float16_t) Load 572(f16lod) + 1168: 7(f16vec4) ImageSampleProjExplicitLod 1165 1166 Lod ConstOffset 1167 722 + 1169: 7(f16vec4) Load 1130(texel) + 1170: 7(f16vec4) FAdd 1169 1168 + Store 1130(texel) 1170 + 1171: 143 Load 145(s2D) + 1172: 249(fvec4) Load 251(c4) + 1173: 52(float) Load 565(lod) + 1174: 52(float) CompositeExtract 1172 3 + 1175: 249(fvec4) CompositeInsert 1174 1172 2 + 1176: 7(f16vec4) ImageSampleProjExplicitLod 1171 1175 Lod ConstOffset 1173 722 + 1177: 7(f16vec4) Load 1130(texel) + 1178: 7(f16vec4) FAdd 1177 1176 + Store 1130(texel) 1178 + 1179: 143 Load 145(s2D) + 1180: 7(f16vec4) Load 309(f16c4) + 1181:6(float16_t) Load 572(f16lod) + 1182:6(float16_t) CompositeExtract 1180 3 + 1183: 7(f16vec4) CompositeInsert 1182 1180 2 + 1184: 7(f16vec4) ImageSampleProjExplicitLod 1179 1183 Lod ConstOffset 1181 722 + 1185: 7(f16vec4) Load 1130(texel) + 1186: 7(f16vec4) FAdd 1185 1184 + Store 1130(texel) 1186 + 1187: 163 Load 165(s3D) + 1188: 249(fvec4) Load 251(c4) + 1189: 52(float) Load 565(lod) + 1190: 7(f16vec4) ImageSampleProjExplicitLod 1187 1188 Lod ConstOffset 1189 735 + 1191: 7(f16vec4) Load 1130(texel) + 1192: 7(f16vec4) FAdd 1191 1190 + Store 1130(texel) 1192 + 1193: 163 Load 165(s3D) + 1194: 7(f16vec4) Load 309(f16c4) + 1195:6(float16_t) Load 572(f16lod) + 1196: 7(f16vec4) ImageSampleProjExplicitLod 1193 1194 Lod ConstOffset 1195 735 + 1197: 7(f16vec4) Load 1130(texel) + 1198: 7(f16vec4) FAdd 1197 1196 + Store 1130(texel) 1198 + 1199: 199 Load 201(s1DShadow) + 1200: 249(fvec4) Load 251(c4) + 1201: 52(float) Load 565(lod) + 1202: 52(float) CompositeExtract 1200 2 + 1203: 52(float) CompositeExtract 1200 3 + 1204: 249(fvec4) CompositeInsert 1203 1200 1 + 1205:6(float16_t) ImageSampleProjDrefExplicitLod 1199 1204 1202 Lod ConstOffset 1201 709 + 1206: 208(ptr) AccessChain 1130(texel) 207 + 1207:6(float16_t) Load 1206 + 1208:6(float16_t) FAdd 1207 1205 + 1209: 208(ptr) AccessChain 1130(texel) 207 + Store 1209 1208 + 1210: 199 Load 201(s1DShadow) + 1211:175(f16vec3) Load 177(f16c3) + 1212: 52(float) Load 215(compare) + 1213:6(float16_t) Load 572(f16lod) + 1214:6(float16_t) CompositeExtract 1211 2 + 1215:175(f16vec3) CompositeInsert 1214 1211 1 + 1216:6(float16_t) ImageSampleProjDrefExplicitLod 1210 1215 1212 Lod ConstOffset 1213 709 + 1217: 208(ptr) AccessChain 1130(texel) 207 + 1218:6(float16_t) Load 1217 + 1219:6(float16_t) FAdd 1218 1216 + 1220: 208(ptr) AccessChain 1130(texel) 207 + Store 1220 1219 + 1221: 224 Load 226(s2DShadow) + 1222: 249(fvec4) Load 251(c4) + 1223: 52(float) Load 565(lod) + 1224: 52(float) CompositeExtract 1222 2 + 1225: 52(float) CompositeExtract 1222 3 + 1226: 249(fvec4) CompositeInsert 1225 1222 2 + 1227:6(float16_t) ImageSampleProjDrefExplicitLod 1221 1226 1224 Lod ConstOffset 1223 722 + 1228: 208(ptr) AccessChain 1130(texel) 207 + 1229:6(float16_t) Load 1228 + 1230:6(float16_t) FAdd 1229 1227 + 1231: 208(ptr) AccessChain 1130(texel) 207 + Store 1231 1230 + 1232: 224 Load 226(s2DShadow) + 1233:175(f16vec3) Load 177(f16c3) + 1234: 52(float) Load 215(compare) + 1235:6(float16_t) Load 572(f16lod) + 1236:6(float16_t) ImageSampleProjDrefExplicitLod 1232 1233 1234 Lod ConstOffset 1235 722 + 1237: 208(ptr) AccessChain 1130(texel) 207 + 1238:6(float16_t) Load 1237 + 1239:6(float16_t) FAdd 1238 1236 + 1240: 208(ptr) AccessChain 1130(texel) 207 + Store 1240 1239 + 1241: 7(f16vec4) Load 1130(texel) + ReturnValue 1241 + FunctionEnd +23(testTexelFetch(): 7(f16vec4) Function None 8 + 24: Label + 1244(texel): 64(ptr) Variable Function + Store 1244(texel) 121 + 1245: 123 Load 125(s1D) + 1246: 52(float) Load 128(c1) + 1247: 47(int) ConvertFToS 1246 + 1248: 52(float) Load 565(lod) + 1249: 47(int) ConvertFToS 1248 + 1250: 122 Image 1245 + 1251: 7(f16vec4) ImageFetch 1250 1247 Lod 1249 + 1252: 7(f16vec4) Load 1244(texel) + 1253: 7(f16vec4) FAdd 1252 1251 + Store 1244(texel) 1253 + 1254: 143 Load 145(s2D) + 1255: 53(fvec2) Load 148(c2) + 1256: 721(ivec2) ConvertFToS 1255 + 1257: 52(float) Load 565(lod) + 1258: 47(int) ConvertFToS 1257 + 1259: 142 Image 1254 + 1260: 7(f16vec4) ImageFetch 1259 1256 Lod 1258 + 1261: 7(f16vec4) Load 1244(texel) + 1262: 7(f16vec4) FAdd 1261 1260 + Store 1244(texel) 1262 + 1263: 163 Load 165(s3D) + 1264: 167(fvec3) Load 169(c3) + 1265: 734(ivec3) ConvertFToS 1264 + 1266: 52(float) Load 565(lod) + 1267: 47(int) ConvertFToS 1266 + 1268: 162 Image 1263 + 1269: 7(f16vec4) ImageFetch 1268 1265 Lod 1267 + 1270: 7(f16vec4) Load 1244(texel) + 1271: 7(f16vec4) FAdd 1270 1269 + Store 1244(texel) 1271 + 1272: 357 Load 359(s2DRect) + 1273: 53(fvec2) Load 148(c2) + 1274: 721(ivec2) ConvertFToS 1273 + 1275: 356 Image 1272 + 1276: 7(f16vec4) ImageFetch 1275 1274 + 1277: 7(f16vec4) Load 1244(texel) + 1278: 7(f16vec4) FAdd 1277 1276 + Store 1244(texel) 1278 + 1279: 269 Load 271(s1DArray) + 1280: 53(fvec2) Load 148(c2) + 1281: 721(ivec2) ConvertFToS 1280 + 1282: 52(float) Load 565(lod) + 1283: 47(int) ConvertFToS 1282 + 1284: 268 Image 1279 + 1285: 7(f16vec4) ImageFetch 1284 1281 Lod 1283 + 1286: 7(f16vec4) Load 1244(texel) + 1287: 7(f16vec4) FAdd 1286 1285 + Store 1244(texel) 1287 + 1288: 284 Load 286(s2DArray) + 1289: 167(fvec3) Load 169(c3) + 1290: 734(ivec3) ConvertFToS 1289 + 1291: 52(float) Load 565(lod) + 1292: 47(int) ConvertFToS 1291 + 1293: 283 Image 1288 + 1294: 7(f16vec4) ImageFetch 1293 1290 Lod 1292 + 1295: 7(f16vec4) Load 1244(texel) + 1296: 7(f16vec4) FAdd 1295 1294 + Store 1244(texel) 1296 + 1301: 1298 Load 1300(sBuffer) + 1302: 52(float) Load 128(c1) + 1303: 47(int) ConvertFToS 1302 + 1304: 1297 Image 1301 + 1305: 7(f16vec4) ImageFetch 1304 1303 + 1306: 7(f16vec4) Load 1244(texel) + 1307: 7(f16vec4) FAdd 1306 1305 + Store 1244(texel) 1307 + 1312: 1309 Load 1311(s2DMS) + 1313: 53(fvec2) Load 148(c2) + 1314: 721(ivec2) ConvertFToS 1313 + 1315: 1308 Image 1312 + 1316: 7(f16vec4) ImageFetch 1315 1314 Sample 709 + 1317: 7(f16vec4) Load 1244(texel) + 1318: 7(f16vec4) FAdd 1317 1316 + Store 1244(texel) 1318 + 1323: 1320 Load 1322(s2DMSArray) + 1324: 167(fvec3) Load 169(c3) + 1325: 734(ivec3) ConvertFToS 1324 + 1327: 1319 Image 1323 + 1328: 7(f16vec4) ImageFetch 1327 1325 Sample 1326 + 1329: 7(f16vec4) Load 1244(texel) + 1330: 7(f16vec4) FAdd 1329 1328 + Store 1244(texel) 1330 + 1331: 7(f16vec4) Load 1244(texel) + ReturnValue 1331 + FunctionEnd +25(testTexelFetchOffset(): 7(f16vec4) Function None 8 + 26: Label + 1334(texel): 64(ptr) Variable Function + Store 1334(texel) 121 + 1335: 123 Load 125(s1D) + 1336: 52(float) Load 128(c1) + 1337: 47(int) ConvertFToS 1336 + 1338: 52(float) Load 565(lod) + 1339: 47(int) ConvertFToS 1338 + 1340: 122 Image 1335 + 1341: 7(f16vec4) ImageFetch 1340 1337 Lod ConstOffset 1339 709 + 1342: 7(f16vec4) Load 1334(texel) + 1343: 7(f16vec4) FAdd 1342 1341 + Store 1334(texel) 1343 + 1344: 143 Load 145(s2D) + 1345: 53(fvec2) Load 148(c2) + 1346: 721(ivec2) ConvertFToS 1345 + 1347: 52(float) Load 565(lod) + 1348: 47(int) ConvertFToS 1347 + 1349: 142 Image 1344 + 1350: 7(f16vec4) ImageFetch 1349 1346 Lod ConstOffset 1348 722 + 1351: 7(f16vec4) Load 1334(texel) + 1352: 7(f16vec4) FAdd 1351 1350 + Store 1334(texel) 1352 + 1353: 163 Load 165(s3D) + 1354: 167(fvec3) Load 169(c3) + 1355: 734(ivec3) ConvertFToS 1354 + 1356: 52(float) Load 565(lod) + 1357: 47(int) ConvertFToS 1356 + 1358: 162 Image 1353 + 1359: 7(f16vec4) ImageFetch 1358 1355 Lod ConstOffset 1357 735 + 1360: 7(f16vec4) Load 1334(texel) + 1361: 7(f16vec4) FAdd 1360 1359 + Store 1334(texel) 1361 + 1362: 357 Load 359(s2DRect) + 1363: 53(fvec2) Load 148(c2) + 1364: 721(ivec2) ConvertFToS 1363 + 1365: 356 Image 1362 + 1366: 7(f16vec4) ImageFetch 1365 1364 ConstOffset 722 + 1367: 7(f16vec4) Load 1334(texel) + 1368: 7(f16vec4) FAdd 1367 1366 + Store 1334(texel) 1368 + 1369: 269 Load 271(s1DArray) + 1370: 53(fvec2) Load 148(c2) + 1371: 721(ivec2) ConvertFToS 1370 + 1372: 52(float) Load 565(lod) + 1373: 47(int) ConvertFToS 1372 + 1374: 268 Image 1369 + 1375: 7(f16vec4) ImageFetch 1374 1371 Lod ConstOffset 1373 709 + 1376: 7(f16vec4) Load 1334(texel) + 1377: 7(f16vec4) FAdd 1376 1375 + Store 1334(texel) 1377 + 1378: 284 Load 286(s2DArray) + 1379: 167(fvec3) Load 169(c3) + 1380: 734(ivec3) ConvertFToS 1379 + 1381: 52(float) Load 565(lod) + 1382: 47(int) ConvertFToS 1381 + 1383: 283 Image 1378 + 1384: 7(f16vec4) ImageFetch 1383 1380 Lod ConstOffset 1382 722 + 1385: 7(f16vec4) Load 1334(texel) + 1386: 7(f16vec4) FAdd 1385 1384 + Store 1334(texel) 1386 + 1387: 7(f16vec4) Load 1334(texel) + ReturnValue 1387 + FunctionEnd +27(testTextureGrad(): 7(f16vec4) Function None 8 + 28: Label + 1390(texel): 64(ptr) Variable Function + Store 1390(texel) 121 + 1391: 123 Load 125(s1D) + 1392: 52(float) Load 128(c1) + 1394: 52(float) Load 1393(dPdxy1) + 1395: 52(float) Load 1393(dPdxy1) + 1396: 7(f16vec4) ImageSampleExplicitLod 1391 1392 Grad 1394 1395 + 1397: 7(f16vec4) Load 1390(texel) + 1398: 7(f16vec4) FAdd 1397 1396 + Store 1390(texel) 1398 + 1399: 123 Load 125(s1D) + 1400:6(float16_t) Load 135(f16c1) + 1402:6(float16_t) Load 1401(f16dPdxy1) + 1403:6(float16_t) Load 1401(f16dPdxy1) + 1404: 7(f16vec4) ImageSampleExplicitLod 1399 1400 Grad 1402 1403 + 1405: 7(f16vec4) Load 1390(texel) + 1406: 7(f16vec4) FAdd 1405 1404 + Store 1390(texel) 1406 + 1407: 143 Load 145(s2D) + 1408: 53(fvec2) Load 148(c2) + 1410: 53(fvec2) Load 1409(dPdxy2) + 1411: 53(fvec2) Load 1409(dPdxy2) + 1412: 7(f16vec4) ImageSampleExplicitLod 1407 1408 Grad 1410 1411 + 1413: 7(f16vec4) Load 1390(texel) + 1414: 7(f16vec4) FAdd 1413 1412 + Store 1390(texel) 1414 + 1415: 143 Load 145(s2D) + 1416:154(f16vec2) Load 156(f16c2) + 1418:154(f16vec2) Load 1417(f16dPdxy2) + 1419:154(f16vec2) Load 1417(f16dPdxy2) + 1420: 7(f16vec4) ImageSampleExplicitLod 1415 1416 Grad 1418 1419 + 1421: 7(f16vec4) Load 1390(texel) + 1422: 7(f16vec4) FAdd 1421 1420 + Store 1390(texel) 1422 + 1423: 163 Load 165(s3D) + 1424: 167(fvec3) Load 169(c3) + 1426: 167(fvec3) Load 1425(dPdxy3) + 1427: 167(fvec3) Load 1425(dPdxy3) + 1428: 7(f16vec4) ImageSampleExplicitLod 1423 1424 Grad 1426 1427 + 1429: 7(f16vec4) Load 1390(texel) + 1430: 7(f16vec4) FAdd 1429 1428 + Store 1390(texel) 1430 + 1431: 163 Load 165(s3D) + 1432:175(f16vec3) Load 177(f16c3) + 1434:175(f16vec3) Load 1433(f16dPdxy3) + 1435:175(f16vec3) Load 1433(f16dPdxy3) + 1436: 7(f16vec4) ImageSampleExplicitLod 1431 1432 Grad 1434 1435 + 1437: 7(f16vec4) Load 1390(texel) + 1438: 7(f16vec4) FAdd 1437 1436 + Store 1390(texel) 1438 + 1439: 184 Load 186(sCube) + 1440: 167(fvec3) Load 169(c3) + 1441: 167(fvec3) Load 1425(dPdxy3) + 1442: 167(fvec3) Load 1425(dPdxy3) + 1443: 7(f16vec4) ImageSampleExplicitLod 1439 1440 Grad 1441 1442 + 1444: 7(f16vec4) Load 1390(texel) + 1445: 7(f16vec4) FAdd 1444 1443 + Store 1390(texel) 1445 + 1446: 184 Load 186(sCube) + 1447:175(f16vec3) Load 177(f16c3) + 1448:175(f16vec3) Load 1433(f16dPdxy3) + 1449:175(f16vec3) Load 1433(f16dPdxy3) + 1450: 7(f16vec4) ImageSampleExplicitLod 1446 1447 Grad 1448 1449 + 1451: 7(f16vec4) Load 1390(texel) + 1452: 7(f16vec4) FAdd 1451 1450 + Store 1390(texel) 1452 + 1453: 357 Load 359(s2DRect) + 1454: 53(fvec2) Load 148(c2) + 1455: 53(fvec2) Load 1409(dPdxy2) + 1456: 53(fvec2) Load 1409(dPdxy2) + 1457: 7(f16vec4) ImageSampleExplicitLod 1453 1454 Grad 1455 1456 + 1458: 7(f16vec4) Load 1390(texel) + 1459: 7(f16vec4) FAdd 1458 1457 + Store 1390(texel) 1459 + 1460: 357 Load 359(s2DRect) + 1461:154(f16vec2) Load 156(f16c2) + 1462:154(f16vec2) Load 1417(f16dPdxy2) + 1463:154(f16vec2) Load 1417(f16dPdxy2) + 1464: 7(f16vec4) ImageSampleExplicitLod 1460 1461 Grad 1462 1463 + 1465: 7(f16vec4) Load 1390(texel) + 1466: 7(f16vec4) FAdd 1465 1464 + Store 1390(texel) 1466 + 1467: 371 Load 373(s2DRectShadow) + 1468: 167(fvec3) Load 169(c3) + 1469: 53(fvec2) Load 1409(dPdxy2) + 1470: 53(fvec2) Load 1409(dPdxy2) + 1471: 52(float) CompositeExtract 1468 2 + 1472:6(float16_t) ImageSampleDrefExplicitLod 1467 1468 1471 Grad 1469 1470 + 1473: 208(ptr) AccessChain 1390(texel) 207 + 1474:6(float16_t) Load 1473 + 1475:6(float16_t) FAdd 1474 1472 + 1476: 208(ptr) AccessChain 1390(texel) 207 + Store 1476 1475 + 1477: 371 Load 373(s2DRectShadow) + 1478:154(f16vec2) Load 156(f16c2) + 1479: 52(float) Load 215(compare) + 1480:154(f16vec2) Load 1417(f16dPdxy2) + 1481:154(f16vec2) Load 1417(f16dPdxy2) + 1482:6(float16_t) ImageSampleDrefExplicitLod 1477 1478 1479 Grad 1480 1481 + 1483: 208(ptr) AccessChain 1390(texel) 207 + 1484:6(float16_t) Load 1483 + 1485:6(float16_t) FAdd 1484 1482 + 1486: 208(ptr) AccessChain 1390(texel) 207 + Store 1486 1485 + 1487: 199 Load 201(s1DShadow) + 1488: 167(fvec3) Load 169(c3) + 1489: 52(float) Load 1393(dPdxy1) + 1490: 52(float) Load 1393(dPdxy1) + 1491: 52(float) CompositeExtract 1488 2 + 1492:6(float16_t) ImageSampleDrefExplicitLod 1487 1488 1491 Grad 1489 1490 + 1493: 208(ptr) AccessChain 1390(texel) 207 + 1494:6(float16_t) Load 1493 + 1495:6(float16_t) FAdd 1494 1492 + 1496: 208(ptr) AccessChain 1390(texel) 207 + Store 1496 1495 + 1497: 199 Load 201(s1DShadow) + 1498:154(f16vec2) Load 156(f16c2) + 1499: 52(float) Load 215(compare) + 1500:6(float16_t) Load 1401(f16dPdxy1) + 1501:6(float16_t) Load 1401(f16dPdxy1) + 1502:6(float16_t) ImageSampleDrefExplicitLod 1497 1498 1499 Grad 1500 1501 + 1503: 208(ptr) AccessChain 1390(texel) 207 + 1504:6(float16_t) Load 1503 + 1505:6(float16_t) FAdd 1504 1502 + 1506: 208(ptr) AccessChain 1390(texel) 207 + Store 1506 1505 + 1507: 224 Load 226(s2DShadow) + 1508: 167(fvec3) Load 169(c3) + 1509: 53(fvec2) Load 1409(dPdxy2) + 1510: 53(fvec2) Load 1409(dPdxy2) + 1511: 52(float) CompositeExtract 1508 2 + 1512:6(float16_t) ImageSampleDrefExplicitLod 1507 1508 1511 Grad 1509 1510 + 1513: 208(ptr) AccessChain 1390(texel) 207 + 1514:6(float16_t) Load 1513 + 1515:6(float16_t) FAdd 1514 1512 + 1516: 208(ptr) AccessChain 1390(texel) 207 + Store 1516 1515 + 1517: 224 Load 226(s2DShadow) + 1518:154(f16vec2) Load 156(f16c2) + 1519: 52(float) Load 215(compare) + 1520:154(f16vec2) Load 1417(f16dPdxy2) + 1521:154(f16vec2) Load 1417(f16dPdxy2) + 1522:6(float16_t) ImageSampleDrefExplicitLod 1517 1518 1519 Grad 1520 1521 + 1523: 208(ptr) AccessChain 1390(texel) 207 + 1524:6(float16_t) Load 1523 + 1525:6(float16_t) FAdd 1524 1522 + 1526: 208(ptr) AccessChain 1390(texel) 207 + Store 1526 1525 + 1527: 245 Load 247(sCubeShadow) + 1528: 249(fvec4) Load 251(c4) + 1529: 167(fvec3) Load 1425(dPdxy3) + 1530: 167(fvec3) Load 1425(dPdxy3) + 1531: 52(float) CompositeExtract 1528 3 + 1532:6(float16_t) ImageSampleDrefExplicitLod 1527 1528 1531 Grad 1529 1530 + 1533: 208(ptr) AccessChain 1390(texel) 207 + 1534:6(float16_t) Load 1533 + 1535:6(float16_t) FAdd 1534 1532 + 1536: 208(ptr) AccessChain 1390(texel) 207 + Store 1536 1535 + 1537: 245 Load 247(sCubeShadow) + 1538:175(f16vec3) Load 177(f16c3) + 1539: 52(float) Load 215(compare) + 1540:175(f16vec3) Load 1433(f16dPdxy3) + 1541:175(f16vec3) Load 1433(f16dPdxy3) + 1542:6(float16_t) ImageSampleDrefExplicitLod 1537 1538 1539 Grad 1540 1541 + 1543: 208(ptr) AccessChain 1390(texel) 207 + 1544:6(float16_t) Load 1543 + 1545:6(float16_t) FAdd 1544 1542 + 1546: 208(ptr) AccessChain 1390(texel) 207 + Store 1546 1545 + 1547: 269 Load 271(s1DArray) + 1548: 53(fvec2) Load 148(c2) + 1549: 52(float) Load 1393(dPdxy1) + 1550: 52(float) Load 1393(dPdxy1) + 1551: 7(f16vec4) ImageSampleExplicitLod 1547 1548 Grad 1549 1550 + 1552: 7(f16vec4) Load 1390(texel) + 1553: 7(f16vec4) FAdd 1552 1551 + Store 1390(texel) 1553 + 1554: 269 Load 271(s1DArray) + 1555:154(f16vec2) Load 156(f16c2) + 1556:6(float16_t) Load 1401(f16dPdxy1) + 1557:6(float16_t) Load 1401(f16dPdxy1) + 1558: 7(f16vec4) ImageSampleExplicitLod 1554 1555 Grad 1556 1557 + 1559: 7(f16vec4) Load 1390(texel) + 1560: 7(f16vec4) FAdd 1559 1558 + Store 1390(texel) 1560 + 1561: 284 Load 286(s2DArray) + 1562: 167(fvec3) Load 169(c3) + 1563: 53(fvec2) Load 1409(dPdxy2) + 1564: 53(fvec2) Load 1409(dPdxy2) + 1565: 7(f16vec4) ImageSampleExplicitLod 1561 1562 Grad 1563 1564 + 1566: 7(f16vec4) Load 1390(texel) + 1567: 7(f16vec4) FAdd 1566 1565 + Store 1390(texel) 1567 + 1568: 284 Load 286(s2DArray) + 1569:175(f16vec3) Load 177(f16c3) + 1570:154(f16vec2) Load 1417(f16dPdxy2) + 1571:154(f16vec2) Load 1417(f16dPdxy2) + 1572: 7(f16vec4) ImageSampleExplicitLod 1568 1569 Grad 1570 1571 + 1573: 7(f16vec4) Load 1390(texel) + 1574: 7(f16vec4) FAdd 1573 1572 + Store 1390(texel) 1574 + 1575: 316 Load 318(s1DArrayShadow) + 1576: 167(fvec3) Load 169(c3) + 1577: 52(float) Load 1393(dPdxy1) + 1578: 52(float) Load 1393(dPdxy1) + 1579: 52(float) CompositeExtract 1576 2 + 1580:6(float16_t) ImageSampleDrefExplicitLod 1575 1576 1579 Grad 1577 1578 + 1581: 208(ptr) AccessChain 1390(texel) 207 + 1582:6(float16_t) Load 1581 + 1583:6(float16_t) FAdd 1582 1580 + 1584: 208(ptr) AccessChain 1390(texel) 207 + Store 1584 1583 + 1585: 316 Load 318(s1DArrayShadow) + 1586:154(f16vec2) Load 156(f16c2) + 1587: 52(float) Load 215(compare) + 1588:6(float16_t) Load 1401(f16dPdxy1) + 1589:6(float16_t) Load 1401(f16dPdxy1) + 1590:6(float16_t) ImageSampleDrefExplicitLod 1585 1586 1587 Grad 1588 1589 + 1591: 208(ptr) AccessChain 1390(texel) 207 + 1592:6(float16_t) Load 1591 + 1593:6(float16_t) FAdd 1592 1590 + 1594: 208(ptr) AccessChain 1390(texel) 207 + Store 1594 1593 + 1595: 337 Load 339(s2DArrayShadow) + 1596: 249(fvec4) Load 251(c4) + 1597: 53(fvec2) Load 1409(dPdxy2) + 1598: 53(fvec2) Load 1409(dPdxy2) + 1599: 52(float) CompositeExtract 1596 3 + 1600:6(float16_t) ImageSampleDrefExplicitLod 1595 1596 1599 Grad 1597 1598 + 1601: 208(ptr) AccessChain 1390(texel) 207 + 1602:6(float16_t) Load 1601 + 1603:6(float16_t) FAdd 1602 1600 + 1604: 208(ptr) AccessChain 1390(texel) 207 + Store 1604 1603 + 1605: 337 Load 339(s2DArrayShadow) + 1606:175(f16vec3) Load 177(f16c3) + 1607: 52(float) Load 215(compare) + 1608:154(f16vec2) Load 1417(f16dPdxy2) + 1609:154(f16vec2) Load 1417(f16dPdxy2) + 1610:6(float16_t) ImageSampleDrefExplicitLod 1605 1606 1607 Grad 1608 1609 + 1611: 208(ptr) AccessChain 1390(texel) 207 + 1612:6(float16_t) Load 1611 + 1613:6(float16_t) FAdd 1612 1610 + 1614: 208(ptr) AccessChain 1390(texel) 207 + Store 1614 1613 + 1615: 299 Load 301(sCubeArray) + 1616: 249(fvec4) Load 251(c4) + 1617: 167(fvec3) Load 1425(dPdxy3) + 1618: 167(fvec3) Load 1425(dPdxy3) + 1619: 7(f16vec4) ImageSampleExplicitLod 1615 1616 Grad 1617 1618 + 1620: 7(f16vec4) Load 1390(texel) + 1621: 7(f16vec4) FAdd 1620 1619 + Store 1390(texel) 1621 + 1622: 299 Load 301(sCubeArray) + 1623: 7(f16vec4) Load 309(f16c4) + 1624:175(f16vec3) Load 1433(f16dPdxy3) + 1625:175(f16vec3) Load 1433(f16dPdxy3) + 1626: 7(f16vec4) ImageSampleExplicitLod 1622 1623 Grad 1624 1625 + 1627: 7(f16vec4) Load 1390(texel) + 1628: 7(f16vec4) FAdd 1627 1626 + Store 1390(texel) 1628 + 1629: 7(f16vec4) Load 1390(texel) + ReturnValue 1629 + FunctionEnd +29(testTextureGradOffset(): 7(f16vec4) Function None 8 + 30: Label + 1632(texel): 64(ptr) Variable Function + Store 1632(texel) 121 + 1633: 123 Load 125(s1D) + 1634: 52(float) Load 128(c1) + 1635: 52(float) Load 1393(dPdxy1) + 1636: 52(float) Load 1393(dPdxy1) + 1637: 7(f16vec4) ImageSampleExplicitLod 1633 1634 Grad ConstOffset 1635 1636 709 + 1638: 7(f16vec4) Load 1632(texel) + 1639: 7(f16vec4) FAdd 1638 1637 + Store 1632(texel) 1639 + 1640: 123 Load 125(s1D) + 1641:6(float16_t) Load 135(f16c1) + 1642:6(float16_t) Load 1401(f16dPdxy1) + 1643:6(float16_t) Load 1401(f16dPdxy1) + 1644: 7(f16vec4) ImageSampleExplicitLod 1640 1641 Grad ConstOffset 1642 1643 709 + 1645: 7(f16vec4) Load 1632(texel) + 1646: 7(f16vec4) FAdd 1645 1644 + Store 1632(texel) 1646 + 1647: 143 Load 145(s2D) + 1648: 53(fvec2) Load 148(c2) + 1649: 53(fvec2) Load 1409(dPdxy2) + 1650: 53(fvec2) Load 1409(dPdxy2) + 1651: 7(f16vec4) ImageSampleExplicitLod 1647 1648 Grad ConstOffset 1649 1650 722 + 1652: 7(f16vec4) Load 1632(texel) + 1653: 7(f16vec4) FAdd 1652 1651 + Store 1632(texel) 1653 + 1654: 143 Load 145(s2D) + 1655:154(f16vec2) Load 156(f16c2) + 1656:154(f16vec2) Load 1417(f16dPdxy2) + 1657:154(f16vec2) Load 1417(f16dPdxy2) + 1658: 7(f16vec4) ImageSampleExplicitLod 1654 1655 Grad ConstOffset 1656 1657 722 + 1659: 7(f16vec4) Load 1632(texel) + 1660: 7(f16vec4) FAdd 1659 1658 + Store 1632(texel) 1660 + 1661: 163 Load 165(s3D) + 1662: 167(fvec3) Load 169(c3) + 1663: 167(fvec3) Load 1425(dPdxy3) + 1664: 167(fvec3) Load 1425(dPdxy3) + 1665: 7(f16vec4) ImageSampleExplicitLod 1661 1662 Grad ConstOffset 1663 1664 735 + 1666: 7(f16vec4) Load 1632(texel) + 1667: 7(f16vec4) FAdd 1666 1665 + Store 1632(texel) 1667 + 1668: 163 Load 165(s3D) + 1669:175(f16vec3) Load 177(f16c3) + 1670:175(f16vec3) Load 1433(f16dPdxy3) + 1671:175(f16vec3) Load 1433(f16dPdxy3) + 1672: 7(f16vec4) ImageSampleExplicitLod 1668 1669 Grad ConstOffset 1670 1671 735 + 1673: 7(f16vec4) Load 1632(texel) + 1674: 7(f16vec4) FAdd 1673 1672 + Store 1632(texel) 1674 + 1675: 357 Load 359(s2DRect) + 1676: 53(fvec2) Load 148(c2) + 1677: 53(fvec2) Load 1409(dPdxy2) + 1678: 53(fvec2) Load 1409(dPdxy2) + 1679: 7(f16vec4) ImageSampleExplicitLod 1675 1676 Grad ConstOffset 1677 1678 722 + 1680: 7(f16vec4) Load 1632(texel) + 1681: 7(f16vec4) FAdd 1680 1679 + Store 1632(texel) 1681 + 1682: 357 Load 359(s2DRect) + 1683:154(f16vec2) Load 156(f16c2) + 1684:154(f16vec2) Load 1417(f16dPdxy2) + 1685:154(f16vec2) Load 1417(f16dPdxy2) + 1686: 7(f16vec4) ImageSampleExplicitLod 1682 1683 Grad ConstOffset 1684 1685 722 + 1687: 7(f16vec4) Load 1632(texel) + 1688: 7(f16vec4) FAdd 1687 1686 + Store 1632(texel) 1688 + 1689: 371 Load 373(s2DRectShadow) + 1690: 167(fvec3) Load 169(c3) + 1691: 53(fvec2) Load 1409(dPdxy2) + 1692: 53(fvec2) Load 1409(dPdxy2) + 1693: 52(float) CompositeExtract 1690 2 + 1694:6(float16_t) ImageSampleDrefExplicitLod 1689 1690 1693 Grad ConstOffset 1691 1692 722 + 1695: 208(ptr) AccessChain 1632(texel) 207 + 1696:6(float16_t) Load 1695 + 1697:6(float16_t) FAdd 1696 1694 + 1698: 208(ptr) AccessChain 1632(texel) 207 + Store 1698 1697 + 1699: 371 Load 373(s2DRectShadow) + 1700:154(f16vec2) Load 156(f16c2) + 1701: 52(float) Load 215(compare) + 1702:154(f16vec2) Load 1417(f16dPdxy2) + 1703:154(f16vec2) Load 1417(f16dPdxy2) + 1704:6(float16_t) ImageSampleDrefExplicitLod 1699 1700 1701 Grad ConstOffset 1702 1703 722 + 1705: 208(ptr) AccessChain 1632(texel) 207 + 1706:6(float16_t) Load 1705 + 1707:6(float16_t) FAdd 1706 1704 + 1708: 208(ptr) AccessChain 1632(texel) 207 + Store 1708 1707 + 1709: 199 Load 201(s1DShadow) + 1710: 167(fvec3) Load 169(c3) + 1711: 52(float) Load 1393(dPdxy1) + 1712: 52(float) Load 1393(dPdxy1) + 1713: 52(float) CompositeExtract 1710 2 + 1714:6(float16_t) ImageSampleDrefExplicitLod 1709 1710 1713 Grad ConstOffset 1711 1712 709 + 1715: 208(ptr) AccessChain 1632(texel) 207 + 1716:6(float16_t) Load 1715 + 1717:6(float16_t) FAdd 1716 1714 + 1718: 208(ptr) AccessChain 1632(texel) 207 + Store 1718 1717 + 1719: 199 Load 201(s1DShadow) + 1720:154(f16vec2) Load 156(f16c2) + 1721: 52(float) Load 215(compare) + 1722:6(float16_t) Load 1401(f16dPdxy1) + 1723:6(float16_t) Load 1401(f16dPdxy1) + 1724:6(float16_t) ImageSampleDrefExplicitLod 1719 1720 1721 Grad ConstOffset 1722 1723 709 + 1725: 208(ptr) AccessChain 1632(texel) 207 + 1726:6(float16_t) Load 1725 + 1727:6(float16_t) FAdd 1726 1724 + 1728: 208(ptr) AccessChain 1632(texel) 207 + Store 1728 1727 + 1729: 224 Load 226(s2DShadow) + 1730: 167(fvec3) Load 169(c3) + 1731: 53(fvec2) Load 1409(dPdxy2) + 1732: 53(fvec2) Load 1409(dPdxy2) + 1733: 52(float) CompositeExtract 1730 2 + 1734:6(float16_t) ImageSampleDrefExplicitLod 1729 1730 1733 Grad ConstOffset 1731 1732 722 + 1735: 208(ptr) AccessChain 1632(texel) 207 + 1736:6(float16_t) Load 1735 + 1737:6(float16_t) FAdd 1736 1734 + 1738: 208(ptr) AccessChain 1632(texel) 207 + Store 1738 1737 + 1739: 224 Load 226(s2DShadow) + 1740:154(f16vec2) Load 156(f16c2) + 1741: 52(float) Load 215(compare) + 1742:154(f16vec2) Load 1417(f16dPdxy2) + 1743:154(f16vec2) Load 1417(f16dPdxy2) + 1744:6(float16_t) ImageSampleDrefExplicitLod 1739 1740 1741 Grad ConstOffset 1742 1743 722 + 1745: 208(ptr) AccessChain 1632(texel) 207 + 1746:6(float16_t) Load 1745 + 1747:6(float16_t) FAdd 1746 1744 + 1748: 208(ptr) AccessChain 1632(texel) 207 + Store 1748 1747 + 1749: 269 Load 271(s1DArray) + 1750: 53(fvec2) Load 148(c2) + 1751: 52(float) Load 1393(dPdxy1) + 1752: 52(float) Load 1393(dPdxy1) + 1753: 7(f16vec4) ImageSampleExplicitLod 1749 1750 Grad ConstOffset 1751 1752 709 + 1754: 7(f16vec4) Load 1632(texel) + 1755: 7(f16vec4) FAdd 1754 1753 + Store 1632(texel) 1755 + 1756: 269 Load 271(s1DArray) + 1757:154(f16vec2) Load 156(f16c2) + 1758:6(float16_t) Load 1401(f16dPdxy1) + 1759:6(float16_t) Load 1401(f16dPdxy1) + 1760: 7(f16vec4) ImageSampleExplicitLod 1756 1757 Grad ConstOffset 1758 1759 709 + 1761: 7(f16vec4) Load 1632(texel) + 1762: 7(f16vec4) FAdd 1761 1760 + Store 1632(texel) 1762 + 1763: 284 Load 286(s2DArray) + 1764: 167(fvec3) Load 169(c3) + 1765: 53(fvec2) Load 1409(dPdxy2) + 1766: 53(fvec2) Load 1409(dPdxy2) + 1767: 7(f16vec4) ImageSampleExplicitLod 1763 1764 Grad ConstOffset 1765 1766 722 + 1768: 7(f16vec4) Load 1632(texel) + 1769: 7(f16vec4) FAdd 1768 1767 + Store 1632(texel) 1769 + 1770: 284 Load 286(s2DArray) + 1771:175(f16vec3) Load 177(f16c3) + 1772:154(f16vec2) Load 1417(f16dPdxy2) + 1773:154(f16vec2) Load 1417(f16dPdxy2) + 1774: 7(f16vec4) ImageSampleExplicitLod 1770 1771 Grad ConstOffset 1772 1773 722 + 1775: 7(f16vec4) Load 1632(texel) + 1776: 7(f16vec4) FAdd 1775 1774 + Store 1632(texel) 1776 + 1777: 316 Load 318(s1DArrayShadow) + 1778: 167(fvec3) Load 169(c3) + 1779: 52(float) Load 1393(dPdxy1) + 1780: 52(float) Load 1393(dPdxy1) + 1781: 52(float) CompositeExtract 1778 2 + 1782:6(float16_t) ImageSampleDrefExplicitLod 1777 1778 1781 Grad ConstOffset 1779 1780 709 + 1783: 208(ptr) AccessChain 1632(texel) 207 + 1784:6(float16_t) Load 1783 + 1785:6(float16_t) FAdd 1784 1782 + 1786: 208(ptr) AccessChain 1632(texel) 207 + Store 1786 1785 + 1787: 316 Load 318(s1DArrayShadow) + 1788:154(f16vec2) Load 156(f16c2) + 1789: 52(float) Load 215(compare) + 1790:6(float16_t) Load 1401(f16dPdxy1) + 1791:6(float16_t) Load 1401(f16dPdxy1) + 1792:6(float16_t) ImageSampleDrefExplicitLod 1787 1788 1789 Grad ConstOffset 1790 1791 709 + 1793: 208(ptr) AccessChain 1632(texel) 207 + 1794:6(float16_t) Load 1793 + 1795:6(float16_t) FAdd 1794 1792 + 1796: 208(ptr) AccessChain 1632(texel) 207 + Store 1796 1795 + 1797: 337 Load 339(s2DArrayShadow) + 1798: 249(fvec4) Load 251(c4) + 1799: 53(fvec2) Load 1409(dPdxy2) + 1800: 53(fvec2) Load 1409(dPdxy2) + 1801: 52(float) CompositeExtract 1798 3 + 1802:6(float16_t) ImageSampleDrefExplicitLod 1797 1798 1801 Grad ConstOffset 1799 1800 722 + 1803: 208(ptr) AccessChain 1632(texel) 207 + 1804:6(float16_t) Load 1803 + 1805:6(float16_t) FAdd 1804 1802 + 1806: 208(ptr) AccessChain 1632(texel) 207 + Store 1806 1805 + 1807: 337 Load 339(s2DArrayShadow) + 1808:175(f16vec3) Load 177(f16c3) + 1809: 52(float) Load 215(compare) + 1810:154(f16vec2) Load 1417(f16dPdxy2) + 1811:154(f16vec2) Load 1417(f16dPdxy2) + 1812:6(float16_t) ImageSampleDrefExplicitLod 1807 1808 1809 Grad ConstOffset 1810 1811 722 + 1813: 208(ptr) AccessChain 1632(texel) 207 + 1814:6(float16_t) Load 1813 + 1815:6(float16_t) FAdd 1814 1812 + 1816: 208(ptr) AccessChain 1632(texel) 207 + Store 1816 1815 + 1817: 7(f16vec4) Load 1632(texel) + ReturnValue 1817 + FunctionEnd +31(testTextureProjGrad(): 7(f16vec4) Function None 8 + 32: Label + 1820(texel): 64(ptr) Variable Function + Store 1820(texel) 121 + 1821: 123 Load 125(s1D) + 1822: 53(fvec2) Load 148(c2) + 1823: 52(float) Load 1393(dPdxy1) + 1824: 52(float) Load 1393(dPdxy1) + 1825: 7(f16vec4) ImageSampleProjExplicitLod 1821 1822 Grad 1823 1824 + 1826: 7(f16vec4) Load 1820(texel) + 1827: 7(f16vec4) FAdd 1826 1825 + Store 1820(texel) 1827 + 1828: 123 Load 125(s1D) + 1829:154(f16vec2) Load 156(f16c2) + 1830:6(float16_t) Load 1401(f16dPdxy1) + 1831:6(float16_t) Load 1401(f16dPdxy1) + 1832: 7(f16vec4) ImageSampleProjExplicitLod 1828 1829 Grad 1830 1831 + 1833: 7(f16vec4) Load 1820(texel) + 1834: 7(f16vec4) FAdd 1833 1832 + Store 1820(texel) 1834 + 1835: 123 Load 125(s1D) + 1836: 249(fvec4) Load 251(c4) + 1837: 52(float) Load 1393(dPdxy1) + 1838: 52(float) Load 1393(dPdxy1) + 1839: 52(float) CompositeExtract 1836 3 + 1840: 249(fvec4) CompositeInsert 1839 1836 1 + 1841: 7(f16vec4) ImageSampleProjExplicitLod 1835 1840 Grad 1837 1838 + 1842: 7(f16vec4) Load 1820(texel) + 1843: 7(f16vec4) FAdd 1842 1841 + Store 1820(texel) 1843 + 1844: 123 Load 125(s1D) + 1845: 7(f16vec4) Load 309(f16c4) + 1846:6(float16_t) Load 1401(f16dPdxy1) + 1847:6(float16_t) Load 1401(f16dPdxy1) + 1848:6(float16_t) CompositeExtract 1845 3 + 1849: 7(f16vec4) CompositeInsert 1848 1845 1 + 1850: 7(f16vec4) ImageSampleProjExplicitLod 1844 1849 Grad 1846 1847 + 1851: 7(f16vec4) Load 1820(texel) + 1852: 7(f16vec4) FAdd 1851 1850 + Store 1820(texel) 1852 + 1853: 143 Load 145(s2D) + 1854: 167(fvec3) Load 169(c3) + 1855: 53(fvec2) Load 1409(dPdxy2) + 1856: 53(fvec2) Load 1409(dPdxy2) + 1857: 7(f16vec4) ImageSampleProjExplicitLod 1853 1854 Grad 1855 1856 + 1858: 7(f16vec4) Load 1820(texel) + 1859: 7(f16vec4) FAdd 1858 1857 + Store 1820(texel) 1859 + 1860: 143 Load 145(s2D) + 1861:175(f16vec3) Load 177(f16c3) + 1862:154(f16vec2) Load 1417(f16dPdxy2) + 1863:154(f16vec2) Load 1417(f16dPdxy2) + 1864: 7(f16vec4) ImageSampleProjExplicitLod 1860 1861 Grad 1862 1863 + 1865: 7(f16vec4) Load 1820(texel) + 1866: 7(f16vec4) FAdd 1865 1864 + Store 1820(texel) 1866 + 1867: 143 Load 145(s2D) + 1868: 249(fvec4) Load 251(c4) + 1869: 53(fvec2) Load 1409(dPdxy2) + 1870: 53(fvec2) Load 1409(dPdxy2) + 1871: 52(float) CompositeExtract 1868 3 + 1872: 249(fvec4) CompositeInsert 1871 1868 2 + 1873: 7(f16vec4) ImageSampleProjExplicitLod 1867 1872 Grad 1869 1870 + 1874: 7(f16vec4) Load 1820(texel) + 1875: 7(f16vec4) FAdd 1874 1873 + Store 1820(texel) 1875 + 1876: 143 Load 145(s2D) + 1877: 7(f16vec4) Load 309(f16c4) + 1878:154(f16vec2) Load 1417(f16dPdxy2) + 1879:154(f16vec2) Load 1417(f16dPdxy2) + 1880:6(float16_t) CompositeExtract 1877 3 + 1881: 7(f16vec4) CompositeInsert 1880 1877 2 + 1882: 7(f16vec4) ImageSampleProjExplicitLod 1876 1881 Grad 1878 1879 + 1883: 7(f16vec4) Load 1820(texel) + 1884: 7(f16vec4) FAdd 1883 1882 + Store 1820(texel) 1884 + 1885: 163 Load 165(s3D) + 1886: 249(fvec4) Load 251(c4) + 1887: 167(fvec3) Load 1425(dPdxy3) + 1888: 167(fvec3) Load 1425(dPdxy3) + 1889: 7(f16vec4) ImageSampleProjExplicitLod 1885 1886 Grad 1887 1888 + 1890: 7(f16vec4) Load 1820(texel) + 1891: 7(f16vec4) FAdd 1890 1889 + Store 1820(texel) 1891 + 1892: 163 Load 165(s3D) + 1893: 7(f16vec4) Load 309(f16c4) + 1894:175(f16vec3) Load 1433(f16dPdxy3) + 1895:175(f16vec3) Load 1433(f16dPdxy3) + 1896: 7(f16vec4) ImageSampleProjExplicitLod 1892 1893 Grad 1894 1895 + 1897: 7(f16vec4) Load 1820(texel) + 1898: 7(f16vec4) FAdd 1897 1896 + Store 1820(texel) 1898 + 1899: 357 Load 359(s2DRect) + 1900: 167(fvec3) Load 169(c3) + 1901: 53(fvec2) Load 1409(dPdxy2) + 1902: 53(fvec2) Load 1409(dPdxy2) + 1903: 7(f16vec4) ImageSampleProjExplicitLod 1899 1900 Grad 1901 1902 + 1904: 7(f16vec4) Load 1820(texel) + 1905: 7(f16vec4) FAdd 1904 1903 + Store 1820(texel) 1905 + 1906: 357 Load 359(s2DRect) + 1907:175(f16vec3) Load 177(f16c3) + 1908:154(f16vec2) Load 1417(f16dPdxy2) + 1909:154(f16vec2) Load 1417(f16dPdxy2) + 1910: 7(f16vec4) ImageSampleProjExplicitLod 1906 1907 Grad 1908 1909 + 1911: 7(f16vec4) Load 1820(texel) + 1912: 7(f16vec4) FAdd 1911 1910 + Store 1820(texel) 1912 + 1913: 357 Load 359(s2DRect) + 1914: 249(fvec4) Load 251(c4) + 1915: 53(fvec2) Load 1409(dPdxy2) + 1916: 53(fvec2) Load 1409(dPdxy2) + 1917: 52(float) CompositeExtract 1914 3 + 1918: 249(fvec4) CompositeInsert 1917 1914 2 + 1919: 7(f16vec4) ImageSampleProjExplicitLod 1913 1918 Grad 1915 1916 + 1920: 7(f16vec4) Load 1820(texel) + 1921: 7(f16vec4) FAdd 1920 1919 + Store 1820(texel) 1921 + 1922: 357 Load 359(s2DRect) + 1923: 7(f16vec4) Load 309(f16c4) + 1924:154(f16vec2) Load 1417(f16dPdxy2) + 1925:154(f16vec2) Load 1417(f16dPdxy2) + 1926:6(float16_t) CompositeExtract 1923 3 + 1927: 7(f16vec4) CompositeInsert 1926 1923 2 + 1928: 7(f16vec4) ImageSampleProjExplicitLod 1922 1927 Grad 1924 1925 + 1929: 7(f16vec4) Load 1820(texel) + 1930: 7(f16vec4) FAdd 1929 1928 + Store 1820(texel) 1930 + 1931: 371 Load 373(s2DRectShadow) + 1932: 249(fvec4) Load 251(c4) + 1933: 53(fvec2) Load 1409(dPdxy2) + 1934: 53(fvec2) Load 1409(dPdxy2) + 1935: 52(float) CompositeExtract 1932 2 + 1936: 52(float) CompositeExtract 1932 3 + 1937: 249(fvec4) CompositeInsert 1936 1932 2 + 1938:6(float16_t) ImageSampleProjDrefExplicitLod 1931 1937 1935 Grad 1933 1934 + 1939: 208(ptr) AccessChain 1820(texel) 207 + 1940:6(float16_t) Load 1939 + 1941:6(float16_t) FAdd 1940 1938 + 1942: 208(ptr) AccessChain 1820(texel) 207 + Store 1942 1941 + 1943: 371 Load 373(s2DRectShadow) + 1944:175(f16vec3) Load 177(f16c3) + 1945: 52(float) Load 215(compare) + 1946:154(f16vec2) Load 1417(f16dPdxy2) + 1947:154(f16vec2) Load 1417(f16dPdxy2) + 1948:6(float16_t) ImageSampleProjDrefExplicitLod 1943 1944 1945 Grad 1946 1947 + 1949: 208(ptr) AccessChain 1820(texel) 207 + 1950:6(float16_t) Load 1949 + 1951:6(float16_t) FAdd 1950 1948 + 1952: 208(ptr) AccessChain 1820(texel) 207 + Store 1952 1951 + 1953: 199 Load 201(s1DShadow) + 1954: 249(fvec4) Load 251(c4) + 1955: 52(float) Load 1393(dPdxy1) + 1956: 52(float) Load 1393(dPdxy1) + 1957: 52(float) CompositeExtract 1954 2 + 1958: 52(float) CompositeExtract 1954 3 + 1959: 249(fvec4) CompositeInsert 1958 1954 1 + 1960:6(float16_t) ImageSampleProjDrefExplicitLod 1953 1959 1957 Grad 1955 1956 + 1961: 208(ptr) AccessChain 1820(texel) 207 + 1962:6(float16_t) Load 1961 + 1963:6(float16_t) FAdd 1962 1960 + 1964: 208(ptr) AccessChain 1820(texel) 207 + Store 1964 1963 + 1965: 199 Load 201(s1DShadow) + 1966:175(f16vec3) Load 177(f16c3) + 1967: 52(float) Load 215(compare) + 1968:6(float16_t) Load 1401(f16dPdxy1) + 1969:6(float16_t) Load 1401(f16dPdxy1) + 1970:6(float16_t) CompositeExtract 1966 2 + 1971:175(f16vec3) CompositeInsert 1970 1966 1 + 1972:6(float16_t) ImageSampleProjDrefExplicitLod 1965 1971 1967 Grad 1968 1969 + 1973: 208(ptr) AccessChain 1820(texel) 207 + 1974:6(float16_t) Load 1973 + 1975:6(float16_t) FAdd 1974 1972 + 1976: 208(ptr) AccessChain 1820(texel) 207 + Store 1976 1975 + 1977: 224 Load 226(s2DShadow) + 1978: 249(fvec4) Load 251(c4) + 1979: 53(fvec2) Load 1409(dPdxy2) + 1980: 53(fvec2) Load 1409(dPdxy2) + 1981: 52(float) CompositeExtract 1978 2 + 1982: 52(float) CompositeExtract 1978 3 + 1983: 249(fvec4) CompositeInsert 1982 1978 2 + 1984:6(float16_t) ImageSampleProjDrefExplicitLod 1977 1983 1981 Grad 1979 1980 + 1985: 208(ptr) AccessChain 1820(texel) 207 + 1986:6(float16_t) Load 1985 + 1987:6(float16_t) FAdd 1986 1984 + 1988: 208(ptr) AccessChain 1820(texel) 207 + Store 1988 1987 + 1989: 224 Load 226(s2DShadow) + 1990:175(f16vec3) Load 177(f16c3) + 1991: 52(float) Load 215(compare) + 1992:154(f16vec2) Load 1417(f16dPdxy2) + 1993:154(f16vec2) Load 1417(f16dPdxy2) + 1994:6(float16_t) ImageSampleProjDrefExplicitLod 1989 1990 1991 Grad 1992 1993 + 1995: 208(ptr) AccessChain 1820(texel) 207 + 1996:6(float16_t) Load 1995 + 1997:6(float16_t) FAdd 1996 1994 + 1998: 208(ptr) AccessChain 1820(texel) 207 + Store 1998 1997 + 1999: 7(f16vec4) Load 1820(texel) + ReturnValue 1999 + FunctionEnd +33(testTextureProjGradoffset(): 7(f16vec4) Function None 8 + 34: Label + 2002(texel): 64(ptr) Variable Function + Store 2002(texel) 121 + 2003: 123 Load 125(s1D) + 2004: 53(fvec2) Load 148(c2) + 2005: 52(float) Load 1393(dPdxy1) + 2006: 52(float) Load 1393(dPdxy1) + 2007: 7(f16vec4) ImageSampleProjExplicitLod 2003 2004 Grad ConstOffset 2005 2006 709 + 2008: 7(f16vec4) Load 2002(texel) + 2009: 7(f16vec4) FAdd 2008 2007 + Store 2002(texel) 2009 + 2010: 123 Load 125(s1D) + 2011:154(f16vec2) Load 156(f16c2) + 2012:6(float16_t) Load 1401(f16dPdxy1) + 2013:6(float16_t) Load 1401(f16dPdxy1) + 2014: 7(f16vec4) ImageSampleProjExplicitLod 2010 2011 Grad ConstOffset 2012 2013 709 + 2015: 7(f16vec4) Load 2002(texel) + 2016: 7(f16vec4) FAdd 2015 2014 + Store 2002(texel) 2016 + 2017: 123 Load 125(s1D) + 2018: 249(fvec4) Load 251(c4) + 2019: 52(float) Load 1393(dPdxy1) + 2020: 52(float) Load 1393(dPdxy1) + 2021: 52(float) CompositeExtract 2018 3 + 2022: 249(fvec4) CompositeInsert 2021 2018 1 + 2023: 7(f16vec4) ImageSampleProjExplicitLod 2017 2022 Grad ConstOffset 2019 2020 709 + 2024: 7(f16vec4) Load 2002(texel) + 2025: 7(f16vec4) FAdd 2024 2023 + Store 2002(texel) 2025 + 2026: 123 Load 125(s1D) + 2027: 7(f16vec4) Load 309(f16c4) + 2028:6(float16_t) Load 1401(f16dPdxy1) + 2029:6(float16_t) Load 1401(f16dPdxy1) + 2030:6(float16_t) CompositeExtract 2027 3 + 2031: 7(f16vec4) CompositeInsert 2030 2027 1 + 2032: 7(f16vec4) ImageSampleProjExplicitLod 2026 2031 Grad ConstOffset 2028 2029 709 + 2033: 7(f16vec4) Load 2002(texel) + 2034: 7(f16vec4) FAdd 2033 2032 + Store 2002(texel) 2034 + 2035: 143 Load 145(s2D) + 2036: 167(fvec3) Load 169(c3) + 2037: 53(fvec2) Load 1409(dPdxy2) + 2038: 53(fvec2) Load 1409(dPdxy2) + 2039: 7(f16vec4) ImageSampleProjExplicitLod 2035 2036 Grad ConstOffset 2037 2038 722 + 2040: 7(f16vec4) Load 2002(texel) + 2041: 7(f16vec4) FAdd 2040 2039 + Store 2002(texel) 2041 + 2042: 143 Load 145(s2D) + 2043:175(f16vec3) Load 177(f16c3) + 2044:154(f16vec2) Load 1417(f16dPdxy2) + 2045:154(f16vec2) Load 1417(f16dPdxy2) + 2046: 7(f16vec4) ImageSampleProjExplicitLod 2042 2043 Grad ConstOffset 2044 2045 722 + 2047: 7(f16vec4) Load 2002(texel) + 2048: 7(f16vec4) FAdd 2047 2046 + Store 2002(texel) 2048 + 2049: 143 Load 145(s2D) + 2050: 249(fvec4) Load 251(c4) + 2051: 53(fvec2) Load 1409(dPdxy2) + 2052: 53(fvec2) Load 1409(dPdxy2) + 2053: 52(float) CompositeExtract 2050 3 + 2054: 249(fvec4) CompositeInsert 2053 2050 2 + 2055: 7(f16vec4) ImageSampleProjExplicitLod 2049 2054 Grad ConstOffset 2051 2052 722 + 2056: 7(f16vec4) Load 2002(texel) + 2057: 7(f16vec4) FAdd 2056 2055 + Store 2002(texel) 2057 + 2058: 143 Load 145(s2D) + 2059: 7(f16vec4) Load 309(f16c4) + 2060:154(f16vec2) Load 1417(f16dPdxy2) + 2061:154(f16vec2) Load 1417(f16dPdxy2) + 2062:6(float16_t) CompositeExtract 2059 3 + 2063: 7(f16vec4) CompositeInsert 2062 2059 2 + 2064: 7(f16vec4) ImageSampleProjExplicitLod 2058 2063 Grad ConstOffset 2060 2061 722 + 2065: 7(f16vec4) Load 2002(texel) + 2066: 7(f16vec4) FAdd 2065 2064 + Store 2002(texel) 2066 + 2067: 357 Load 359(s2DRect) + 2068: 167(fvec3) Load 169(c3) + 2069: 53(fvec2) Load 1409(dPdxy2) + 2070: 53(fvec2) Load 1409(dPdxy2) + 2071: 7(f16vec4) ImageSampleProjExplicitLod 2067 2068 Grad ConstOffset 2069 2070 722 + 2072: 7(f16vec4) Load 2002(texel) + 2073: 7(f16vec4) FAdd 2072 2071 + Store 2002(texel) 2073 + 2074: 357 Load 359(s2DRect) + 2075:175(f16vec3) Load 177(f16c3) + 2076:154(f16vec2) Load 1417(f16dPdxy2) + 2077:154(f16vec2) Load 1417(f16dPdxy2) + 2078: 7(f16vec4) ImageSampleProjExplicitLod 2074 2075 Grad ConstOffset 2076 2077 722 + 2079: 7(f16vec4) Load 2002(texel) + 2080: 7(f16vec4) FAdd 2079 2078 + Store 2002(texel) 2080 + 2081: 357 Load 359(s2DRect) + 2082: 249(fvec4) Load 251(c4) + 2083: 53(fvec2) Load 1409(dPdxy2) + 2084: 53(fvec2) Load 1409(dPdxy2) + 2085: 52(float) CompositeExtract 2082 3 + 2086: 249(fvec4) CompositeInsert 2085 2082 2 + 2087: 7(f16vec4) ImageSampleProjExplicitLod 2081 2086 Grad ConstOffset 2083 2084 722 + 2088: 7(f16vec4) Load 2002(texel) + 2089: 7(f16vec4) FAdd 2088 2087 + Store 2002(texel) 2089 + 2090: 357 Load 359(s2DRect) + 2091: 7(f16vec4) Load 309(f16c4) + 2092:154(f16vec2) Load 1417(f16dPdxy2) + 2093:154(f16vec2) Load 1417(f16dPdxy2) + 2094:6(float16_t) CompositeExtract 2091 3 + 2095: 7(f16vec4) CompositeInsert 2094 2091 2 + 2096: 7(f16vec4) ImageSampleProjExplicitLod 2090 2095 Grad ConstOffset 2092 2093 722 + 2097: 7(f16vec4) Load 2002(texel) + 2098: 7(f16vec4) FAdd 2097 2096 + Store 2002(texel) 2098 + 2099: 371 Load 373(s2DRectShadow) + 2100: 249(fvec4) Load 251(c4) + 2101: 53(fvec2) Load 1409(dPdxy2) + 2102: 53(fvec2) Load 1409(dPdxy2) + 2103: 52(float) CompositeExtract 2100 2 + 2104: 52(float) CompositeExtract 2100 3 + 2105: 249(fvec4) CompositeInsert 2104 2100 2 + 2106:6(float16_t) ImageSampleProjDrefExplicitLod 2099 2105 2103 Grad ConstOffset 2101 2102 722 + 2107: 208(ptr) AccessChain 2002(texel) 207 + 2108:6(float16_t) Load 2107 + 2109:6(float16_t) FAdd 2108 2106 + 2110: 208(ptr) AccessChain 2002(texel) 207 + Store 2110 2109 + 2111: 371 Load 373(s2DRectShadow) + 2112:175(f16vec3) Load 177(f16c3) + 2113: 52(float) Load 215(compare) + 2114:154(f16vec2) Load 1417(f16dPdxy2) + 2115:154(f16vec2) Load 1417(f16dPdxy2) + 2116:6(float16_t) ImageSampleProjDrefExplicitLod 2111 2112 2113 Grad ConstOffset 2114 2115 722 + 2117: 208(ptr) AccessChain 2002(texel) 207 + 2118:6(float16_t) Load 2117 + 2119:6(float16_t) FAdd 2118 2116 + 2120: 208(ptr) AccessChain 2002(texel) 207 + Store 2120 2119 + 2121: 163 Load 165(s3D) + 2122: 249(fvec4) Load 251(c4) + 2123: 167(fvec3) Load 1425(dPdxy3) + 2124: 167(fvec3) Load 1425(dPdxy3) + 2125: 7(f16vec4) ImageSampleProjExplicitLod 2121 2122 Grad ConstOffset 2123 2124 735 + 2126: 7(f16vec4) Load 2002(texel) + 2127: 7(f16vec4) FAdd 2126 2125 + Store 2002(texel) 2127 + 2128: 163 Load 165(s3D) + 2129: 7(f16vec4) Load 309(f16c4) + 2130:175(f16vec3) Load 1433(f16dPdxy3) + 2131:175(f16vec3) Load 1433(f16dPdxy3) + 2132: 7(f16vec4) ImageSampleProjExplicitLod 2128 2129 Grad ConstOffset 2130 2131 735 + 2133: 7(f16vec4) Load 2002(texel) + 2134: 7(f16vec4) FAdd 2133 2132 + Store 2002(texel) 2134 + 2135: 199 Load 201(s1DShadow) + 2136: 249(fvec4) Load 251(c4) + 2137: 52(float) Load 1393(dPdxy1) + 2138: 52(float) Load 1393(dPdxy1) + 2139: 52(float) CompositeExtract 2136 2 + 2140: 52(float) CompositeExtract 2136 3 + 2141: 249(fvec4) CompositeInsert 2140 2136 1 + 2142:6(float16_t) ImageSampleProjDrefExplicitLod 2135 2141 2139 Grad ConstOffset 2137 2138 709 + 2143: 208(ptr) AccessChain 2002(texel) 207 + 2144:6(float16_t) Load 2143 + 2145:6(float16_t) FAdd 2144 2142 + 2146: 208(ptr) AccessChain 2002(texel) 207 + Store 2146 2145 + 2147: 199 Load 201(s1DShadow) + 2148:175(f16vec3) Load 177(f16c3) + 2149: 52(float) Load 215(compare) + 2150:6(float16_t) Load 1401(f16dPdxy1) + 2151:6(float16_t) Load 1401(f16dPdxy1) + 2152:6(float16_t) CompositeExtract 2148 2 + 2153:175(f16vec3) CompositeInsert 2152 2148 1 + 2154:6(float16_t) ImageSampleProjDrefExplicitLod 2147 2153 2149 Grad ConstOffset 2150 2151 709 + 2155: 208(ptr) AccessChain 2002(texel) 207 + 2156:6(float16_t) Load 2155 + 2157:6(float16_t) FAdd 2156 2154 + 2158: 208(ptr) AccessChain 2002(texel) 207 + Store 2158 2157 + 2159: 224 Load 226(s2DShadow) + 2160: 249(fvec4) Load 251(c4) + 2161: 53(fvec2) Load 1409(dPdxy2) + 2162: 53(fvec2) Load 1409(dPdxy2) + 2163: 52(float) CompositeExtract 2160 2 + 2164: 52(float) CompositeExtract 2160 3 + 2165: 249(fvec4) CompositeInsert 2164 2160 2 + 2166:6(float16_t) ImageSampleProjDrefExplicitLod 2159 2165 2163 Grad ConstOffset 2161 2162 722 + 2167: 208(ptr) AccessChain 2002(texel) 207 + 2168:6(float16_t) Load 2167 + 2169:6(float16_t) FAdd 2168 2166 + 2170: 208(ptr) AccessChain 2002(texel) 207 + Store 2170 2169 + 2171: 224 Load 226(s2DShadow) + 2172:175(f16vec3) Load 177(f16c3) + 2173: 52(float) Load 215(compare) + 2174:154(f16vec2) Load 1417(f16dPdxy2) + 2175:154(f16vec2) Load 1417(f16dPdxy2) + 2176:6(float16_t) ImageSampleProjDrefExplicitLod 2171 2172 2173 Grad ConstOffset 2174 2175 722 + 2177: 208(ptr) AccessChain 2002(texel) 207 + 2178:6(float16_t) Load 2177 + 2179:6(float16_t) FAdd 2178 2176 + 2180: 208(ptr) AccessChain 2002(texel) 207 + Store 2180 2179 + 2181: 7(f16vec4) Load 2002(texel) + ReturnValue 2181 + FunctionEnd +35(testTextureGather(): 7(f16vec4) Function None 8 + 36: Label + 2184(texel): 64(ptr) Variable Function + Store 2184(texel) 121 + 2185: 143 Load 145(s2D) + 2186: 53(fvec2) Load 148(c2) + 2188: 7(f16vec4) ImageGather 2185 2186 2187 + 2189: 7(f16vec4) Load 2184(texel) + 2190: 7(f16vec4) FAdd 2189 2188 + Store 2184(texel) 2190 + 2191: 143 Load 145(s2D) + 2192:154(f16vec2) Load 156(f16c2) + 2193:6(float16_t) Load 137(f16bias) + 2194: 7(f16vec4) ImageGather 2191 2192 2187 Bias 2193 + 2195: 7(f16vec4) Load 2184(texel) + 2196: 7(f16vec4) FAdd 2195 2194 + Store 2184(texel) 2196 + 2197: 284 Load 286(s2DArray) + 2198: 167(fvec3) Load 169(c3) + 2199: 7(f16vec4) ImageGather 2197 2198 2187 + 2200: 7(f16vec4) Load 2184(texel) + 2201: 7(f16vec4) FAdd 2200 2199 + Store 2184(texel) 2201 + 2202: 284 Load 286(s2DArray) + 2203:175(f16vec3) Load 177(f16c3) + 2204:6(float16_t) Load 137(f16bias) + 2205: 7(f16vec4) ImageGather 2202 2203 2187 Bias 2204 + 2206: 7(f16vec4) Load 2184(texel) + 2207: 7(f16vec4) FAdd 2206 2205 + Store 2184(texel) 2207 + 2208: 184 Load 186(sCube) + 2209: 167(fvec3) Load 169(c3) + 2210: 7(f16vec4) ImageGather 2208 2209 2187 + 2211: 7(f16vec4) Load 2184(texel) + 2212: 7(f16vec4) FAdd 2211 2210 + Store 2184(texel) 2212 + 2213: 184 Load 186(sCube) + 2214:175(f16vec3) Load 177(f16c3) + 2215:6(float16_t) Load 137(f16bias) + 2216: 7(f16vec4) ImageGather 2213 2214 2187 Bias 2215 + 2217: 7(f16vec4) Load 2184(texel) + 2218: 7(f16vec4) FAdd 2217 2216 + Store 2184(texel) 2218 + 2219: 299 Load 301(sCubeArray) + 2220: 249(fvec4) Load 251(c4) + 2221: 7(f16vec4) ImageGather 2219 2220 2187 + 2222: 7(f16vec4) Load 2184(texel) + 2223: 7(f16vec4) FAdd 2222 2221 + Store 2184(texel) 2223 + 2224: 299 Load 301(sCubeArray) + 2225: 7(f16vec4) Load 309(f16c4) + 2226:6(float16_t) Load 137(f16bias) + 2227: 7(f16vec4) ImageGather 2224 2225 2187 Bias 2226 + 2228: 7(f16vec4) Load 2184(texel) + 2229: 7(f16vec4) FAdd 2228 2227 + Store 2184(texel) 2229 + 2230: 357 Load 359(s2DRect) + 2231: 53(fvec2) Load 148(c2) + 2232: 7(f16vec4) ImageGather 2230 2231 2187 + 2233: 7(f16vec4) Load 2184(texel) + 2234: 7(f16vec4) FAdd 2233 2232 + Store 2184(texel) 2234 + 2235: 357 Load 359(s2DRect) + 2236:154(f16vec2) Load 156(f16c2) + 2237: 7(f16vec4) ImageGather 2235 2236 2187 + 2238: 7(f16vec4) Load 2184(texel) + 2239: 7(f16vec4) FAdd 2238 2237 + Store 2184(texel) 2239 + 2240: 224 Load 226(s2DShadow) + 2241: 53(fvec2) Load 148(c2) + 2242: 52(float) Load 215(compare) + 2243: 7(f16vec4) ImageDrefGather 2240 2241 2242 + 2244: 7(f16vec4) Load 2184(texel) + 2245: 7(f16vec4) FAdd 2244 2243 + Store 2184(texel) 2245 + 2246: 224 Load 226(s2DShadow) + 2247:154(f16vec2) Load 156(f16c2) + 2248: 52(float) Load 215(compare) + 2249: 7(f16vec4) ImageDrefGather 2246 2247 2248 + 2250: 7(f16vec4) Load 2184(texel) + 2251: 7(f16vec4) FAdd 2250 2249 + Store 2184(texel) 2251 + 2252: 337 Load 339(s2DArrayShadow) + 2253: 167(fvec3) Load 169(c3) + 2254: 52(float) Load 215(compare) + 2255: 7(f16vec4) ImageDrefGather 2252 2253 2254 + 2256: 7(f16vec4) Load 2184(texel) + 2257: 7(f16vec4) FAdd 2256 2255 + Store 2184(texel) 2257 + 2258: 337 Load 339(s2DArrayShadow) + 2259:175(f16vec3) Load 177(f16c3) + 2260: 52(float) Load 215(compare) + 2261: 7(f16vec4) ImageDrefGather 2258 2259 2260 + 2262: 7(f16vec4) Load 2184(texel) + 2263: 7(f16vec4) FAdd 2262 2261 + Store 2184(texel) 2263 + 2264: 245 Load 247(sCubeShadow) + 2265: 167(fvec3) Load 169(c3) + 2266: 52(float) Load 215(compare) + 2267: 7(f16vec4) ImageDrefGather 2264 2265 2266 + 2268: 7(f16vec4) Load 2184(texel) + 2269: 7(f16vec4) FAdd 2268 2267 + Store 2184(texel) 2269 + 2270: 245 Load 247(sCubeShadow) + 2271:175(f16vec3) Load 177(f16c3) + 2272: 52(float) Load 215(compare) + 2273: 7(f16vec4) ImageDrefGather 2270 2271 2272 + 2274: 7(f16vec4) Load 2184(texel) + 2275: 7(f16vec4) FAdd 2274 2273 + Store 2184(texel) 2275 + 2276: 391 Load 393(sCubeArrayShadow) + 2277: 249(fvec4) Load 251(c4) + 2278: 52(float) Load 215(compare) + 2279: 7(f16vec4) ImageDrefGather 2276 2277 2278 + 2280: 7(f16vec4) Load 2184(texel) + 2281: 7(f16vec4) FAdd 2280 2279 + Store 2184(texel) 2281 + 2282: 391 Load 393(sCubeArrayShadow) + 2283: 7(f16vec4) Load 309(f16c4) + 2284: 52(float) Load 215(compare) + 2285: 7(f16vec4) ImageDrefGather 2282 2283 2284 + 2286: 7(f16vec4) Load 2184(texel) + 2287: 7(f16vec4) FAdd 2286 2285 + Store 2184(texel) 2287 + 2288: 371 Load 373(s2DRectShadow) + 2289: 53(fvec2) Load 148(c2) + 2290: 52(float) Load 215(compare) + 2291: 7(f16vec4) ImageDrefGather 2288 2289 2290 + 2292: 7(f16vec4) Load 2184(texel) + 2293: 7(f16vec4) FAdd 2292 2291 + Store 2184(texel) 2293 + 2294: 371 Load 373(s2DRectShadow) + 2295:154(f16vec2) Load 156(f16c2) + 2296: 52(float) Load 215(compare) + 2297: 7(f16vec4) ImageDrefGather 2294 2295 2296 + 2298: 7(f16vec4) Load 2184(texel) + 2299: 7(f16vec4) FAdd 2298 2297 + Store 2184(texel) 2299 + 2300: 7(f16vec4) Load 2184(texel) + ReturnValue 2300 + FunctionEnd +37(testTextureGatherOffset(): 7(f16vec4) Function None 8 + 38: Label + 2303(texel): 64(ptr) Variable Function + Store 2303(texel) 121 + 2304: 143 Load 145(s2D) + 2305: 53(fvec2) Load 148(c2) + 2306: 7(f16vec4) ImageGather 2304 2305 2187 ConstOffset 722 + 2307: 7(f16vec4) Load 2303(texel) + 2308: 7(f16vec4) FAdd 2307 2306 + Store 2303(texel) 2308 + 2309: 143 Load 145(s2D) + 2310:154(f16vec2) Load 156(f16c2) + 2311:6(float16_t) Load 137(f16bias) + 2312: 7(f16vec4) ImageGather 2309 2310 2187 Bias ConstOffset 2311 722 + 2313: 7(f16vec4) Load 2303(texel) + 2314: 7(f16vec4) FAdd 2313 2312 + Store 2303(texel) 2314 + 2315: 284 Load 286(s2DArray) + 2316: 167(fvec3) Load 169(c3) + 2317: 7(f16vec4) ImageGather 2315 2316 2187 ConstOffset 722 + 2318: 7(f16vec4) Load 2303(texel) + 2319: 7(f16vec4) FAdd 2318 2317 + Store 2303(texel) 2319 + 2320: 284 Load 286(s2DArray) + 2321:175(f16vec3) Load 177(f16c3) + 2322:6(float16_t) Load 137(f16bias) + 2323: 7(f16vec4) ImageGather 2320 2321 2187 Bias ConstOffset 2322 722 + 2324: 7(f16vec4) Load 2303(texel) + 2325: 7(f16vec4) FAdd 2324 2323 + Store 2303(texel) 2325 + 2326: 357 Load 359(s2DRect) + 2327: 53(fvec2) Load 148(c2) + 2328: 7(f16vec4) ImageGather 2326 2327 2187 ConstOffset 722 + 2329: 7(f16vec4) Load 2303(texel) + 2330: 7(f16vec4) FAdd 2329 2328 + Store 2303(texel) 2330 + 2331: 357 Load 359(s2DRect) + 2332:154(f16vec2) Load 156(f16c2) + 2333: 7(f16vec4) ImageGather 2331 2332 2187 ConstOffset 722 + 2334: 7(f16vec4) Load 2303(texel) + 2335: 7(f16vec4) FAdd 2334 2333 + Store 2303(texel) 2335 + 2336: 224 Load 226(s2DShadow) + 2337: 53(fvec2) Load 148(c2) + 2338: 52(float) Load 215(compare) + 2339: 7(f16vec4) ImageDrefGather 2336 2337 2338 ConstOffset 722 + 2340: 7(f16vec4) Load 2303(texel) + 2341: 7(f16vec4) FAdd 2340 2339 + Store 2303(texel) 2341 + 2342: 224 Load 226(s2DShadow) + 2343:154(f16vec2) Load 156(f16c2) + 2344: 52(float) Load 215(compare) + 2345: 7(f16vec4) ImageDrefGather 2342 2343 2344 ConstOffset 722 + 2346: 7(f16vec4) Load 2303(texel) + 2347: 7(f16vec4) FAdd 2346 2345 + Store 2303(texel) 2347 + 2348: 337 Load 339(s2DArrayShadow) + 2349: 167(fvec3) Load 169(c3) + 2350: 52(float) Load 215(compare) + 2351: 7(f16vec4) ImageDrefGather 2348 2349 2350 ConstOffset 722 + 2352: 7(f16vec4) Load 2303(texel) + 2353: 7(f16vec4) FAdd 2352 2351 + Store 2303(texel) 2353 + 2354: 337 Load 339(s2DArrayShadow) + 2355:175(f16vec3) Load 177(f16c3) + 2356: 52(float) Load 215(compare) + 2357: 7(f16vec4) ImageDrefGather 2354 2355 2356 ConstOffset 722 + 2358: 7(f16vec4) Load 2303(texel) + 2359: 7(f16vec4) FAdd 2358 2357 + Store 2303(texel) 2359 + 2360: 371 Load 373(s2DRectShadow) + 2361: 53(fvec2) Load 148(c2) + 2362: 52(float) Load 215(compare) + 2363: 7(f16vec4) ImageDrefGather 2360 2361 2362 ConstOffset 722 + 2364: 7(f16vec4) Load 2303(texel) + 2365: 7(f16vec4) FAdd 2364 2363 + Store 2303(texel) 2365 + 2366: 371 Load 373(s2DRectShadow) + 2367:154(f16vec2) Load 156(f16c2) + 2368: 52(float) Load 215(compare) + 2369: 7(f16vec4) ImageDrefGather 2366 2367 2368 ConstOffset 722 + 2370: 7(f16vec4) Load 2303(texel) + 2371: 7(f16vec4) FAdd 2370 2369 + Store 2303(texel) 2371 + 2372: 7(f16vec4) Load 2303(texel) + ReturnValue 2372 + FunctionEnd +39(testTextureGatherOffsets(): 7(f16vec4) Function None 8 + 40: Label + 2375(texel): 64(ptr) Variable Function + Store 2375(texel) 121 + 2376: 143 Load 145(s2D) + 2377: 53(fvec2) Load 148(c2) + 2381: 7(f16vec4) ImageGather 2376 2377 2187 ConstOffsets 2380 + 2382: 7(f16vec4) Load 2375(texel) + 2383: 7(f16vec4) FAdd 2382 2381 + Store 2375(texel) 2383 + 2384: 143 Load 145(s2D) + 2385:154(f16vec2) Load 156(f16c2) + 2386:6(float16_t) Load 137(f16bias) + 2387: 7(f16vec4) ImageGather 2384 2385 2187 Bias ConstOffsets 2386 2380 + 2388: 7(f16vec4) Load 2375(texel) + 2389: 7(f16vec4) FAdd 2388 2387 + Store 2375(texel) 2389 + 2390: 284 Load 286(s2DArray) + 2391: 167(fvec3) Load 169(c3) + 2392: 7(f16vec4) ImageGather 2390 2391 2187 ConstOffsets 2380 + 2393: 7(f16vec4) Load 2375(texel) + 2394: 7(f16vec4) FAdd 2393 2392 + Store 2375(texel) 2394 + 2395: 284 Load 286(s2DArray) + 2396:175(f16vec3) Load 177(f16c3) + 2397:6(float16_t) Load 137(f16bias) + 2398: 7(f16vec4) ImageGather 2395 2396 2187 Bias ConstOffsets 2397 2380 + 2399: 7(f16vec4) Load 2375(texel) + 2400: 7(f16vec4) FAdd 2399 2398 + Store 2375(texel) 2400 + 2401: 357 Load 359(s2DRect) + 2402: 53(fvec2) Load 148(c2) + 2403: 7(f16vec4) ImageGather 2401 2402 2187 ConstOffsets 2380 + 2404: 7(f16vec4) Load 2375(texel) + 2405: 7(f16vec4) FAdd 2404 2403 + Store 2375(texel) 2405 + 2406: 357 Load 359(s2DRect) + 2407:154(f16vec2) Load 156(f16c2) + 2408: 7(f16vec4) ImageGather 2406 2407 2187 ConstOffsets 2380 + 2409: 7(f16vec4) Load 2375(texel) + 2410: 7(f16vec4) FAdd 2409 2408 + Store 2375(texel) 2410 + 2411: 224 Load 226(s2DShadow) + 2412: 53(fvec2) Load 148(c2) + 2413: 52(float) Load 215(compare) + 2414: 7(f16vec4) ImageDrefGather 2411 2412 2413 ConstOffsets 2380 + 2415: 7(f16vec4) Load 2375(texel) + 2416: 7(f16vec4) FAdd 2415 2414 + Store 2375(texel) 2416 + 2417: 224 Load 226(s2DShadow) + 2418:154(f16vec2) Load 156(f16c2) + 2419: 52(float) Load 215(compare) + 2420: 7(f16vec4) ImageDrefGather 2417 2418 2419 ConstOffsets 2380 + 2421: 7(f16vec4) Load 2375(texel) + 2422: 7(f16vec4) FAdd 2421 2420 + Store 2375(texel) 2422 + 2423: 337 Load 339(s2DArrayShadow) + 2424: 167(fvec3) Load 169(c3) + 2425: 52(float) Load 215(compare) + 2426: 7(f16vec4) ImageDrefGather 2423 2424 2425 ConstOffsets 2380 + 2427: 7(f16vec4) Load 2375(texel) + 2428: 7(f16vec4) FAdd 2427 2426 + Store 2375(texel) 2428 + 2429: 337 Load 339(s2DArrayShadow) + 2430:175(f16vec3) Load 177(f16c3) + 2431: 52(float) Load 215(compare) + 2432: 7(f16vec4) ImageDrefGather 2429 2430 2431 ConstOffsets 2380 + 2433: 7(f16vec4) Load 2375(texel) + 2434: 7(f16vec4) FAdd 2433 2432 + Store 2375(texel) 2434 + 2435: 371 Load 373(s2DRectShadow) + 2436: 53(fvec2) Load 148(c2) + 2437: 52(float) Load 215(compare) + 2438: 7(f16vec4) ImageDrefGather 2435 2436 2437 ConstOffsets 2380 + 2439: 7(f16vec4) Load 2375(texel) + 2440: 7(f16vec4) FAdd 2439 2438 + Store 2375(texel) 2440 + 2441: 371 Load 373(s2DRectShadow) + 2442:154(f16vec2) Load 156(f16c2) + 2443: 52(float) Load 215(compare) + 2444: 7(f16vec4) ImageDrefGather 2441 2442 2443 ConstOffsets 2380 + 2445: 7(f16vec4) Load 2375(texel) + 2446: 7(f16vec4) FAdd 2445 2444 + Store 2375(texel) 2446 + 2447: 7(f16vec4) Load 2375(texel) + ReturnValue 2447 + FunctionEnd +41(testTextureGatherLod(): 7(f16vec4) Function None 8 + 42: Label + 2450(texel): 64(ptr) Variable Function + Store 2450(texel) 121 + 2451: 143 Load 145(s2D) + 2452: 53(fvec2) Load 148(c2) + 2453: 52(float) Load 565(lod) + 2454: 7(f16vec4) ImageGather 2451 2452 2187 Lod 2453 + 2455: 7(f16vec4) Load 2450(texel) + 2456: 7(f16vec4) FAdd 2455 2454 + Store 2450(texel) 2456 + 2457: 143 Load 145(s2D) + 2458:154(f16vec2) Load 156(f16c2) + 2459:6(float16_t) Load 572(f16lod) + 2460: 7(f16vec4) ImageGather 2457 2458 2187 Lod 2459 + 2461: 7(f16vec4) Load 2450(texel) + 2462: 7(f16vec4) FAdd 2461 2460 + Store 2450(texel) 2462 + 2463: 284 Load 286(s2DArray) + 2464: 167(fvec3) Load 169(c3) + 2465: 52(float) Load 565(lod) + 2466: 7(f16vec4) ImageGather 2463 2464 2187 Lod 2465 + 2467: 7(f16vec4) Load 2450(texel) + 2468: 7(f16vec4) FAdd 2467 2466 + Store 2450(texel) 2468 + 2469: 284 Load 286(s2DArray) + 2470:175(f16vec3) Load 177(f16c3) + 2471:6(float16_t) Load 572(f16lod) + 2472: 7(f16vec4) ImageGather 2469 2470 2187 Lod 2471 + 2473: 7(f16vec4) Load 2450(texel) + 2474: 7(f16vec4) FAdd 2473 2472 + Store 2450(texel) 2474 + 2475: 184 Load 186(sCube) + 2476: 167(fvec3) Load 169(c3) + 2477: 52(float) Load 565(lod) + 2478: 7(f16vec4) ImageGather 2475 2476 2187 Lod 2477 + 2479: 7(f16vec4) Load 2450(texel) + 2480: 7(f16vec4) FAdd 2479 2478 + Store 2450(texel) 2480 + 2481: 184 Load 186(sCube) + 2482:175(f16vec3) Load 177(f16c3) + 2483:6(float16_t) Load 572(f16lod) + 2484: 7(f16vec4) ImageGather 2481 2482 2187 Lod 2483 + 2485: 7(f16vec4) Load 2450(texel) + 2486: 7(f16vec4) FAdd 2485 2484 + Store 2450(texel) 2486 + 2487: 299 Load 301(sCubeArray) + 2488: 249(fvec4) Load 251(c4) + 2489: 52(float) Load 565(lod) + 2490: 7(f16vec4) ImageGather 2487 2488 2187 Lod 2489 + 2491: 7(f16vec4) Load 2450(texel) + 2492: 7(f16vec4) FAdd 2491 2490 + Store 2450(texel) 2492 + 2493: 299 Load 301(sCubeArray) + 2494: 7(f16vec4) Load 309(f16c4) + 2495:6(float16_t) Load 572(f16lod) + 2496: 7(f16vec4) ImageGather 2493 2494 2187 Lod 2495 + 2497: 7(f16vec4) Load 2450(texel) + 2498: 7(f16vec4) FAdd 2497 2496 + Store 2450(texel) 2498 + 2499: 7(f16vec4) Load 2450(texel) + ReturnValue 2499 + FunctionEnd +43(testTextureGatherLodOffset(): 7(f16vec4) Function None 8 + 44: Label + 2502(texel): 64(ptr) Variable Function + Store 2502(texel) 121 + 2503: 143 Load 145(s2D) + 2504: 53(fvec2) Load 148(c2) + 2505: 52(float) Load 565(lod) + 2506: 7(f16vec4) ImageGather 2503 2504 2187 Lod ConstOffset 2505 722 + 2507: 7(f16vec4) Load 2502(texel) + 2508: 7(f16vec4) FAdd 2507 2506 + Store 2502(texel) 2508 + 2509: 143 Load 145(s2D) + 2510:154(f16vec2) Load 156(f16c2) + 2511:6(float16_t) Load 572(f16lod) + 2512: 7(f16vec4) ImageGather 2509 2510 2187 Lod ConstOffset 2511 722 + 2513: 7(f16vec4) Load 2502(texel) + 2514: 7(f16vec4) FAdd 2513 2512 + Store 2502(texel) 2514 + 2515: 284 Load 286(s2DArray) + 2516: 167(fvec3) Load 169(c3) + 2517: 52(float) Load 565(lod) + 2518: 7(f16vec4) ImageGather 2515 2516 2187 Lod ConstOffset 2517 722 + 2519: 7(f16vec4) Load 2502(texel) + 2520: 7(f16vec4) FAdd 2519 2518 + Store 2502(texel) 2520 + 2521: 284 Load 286(s2DArray) + 2522:175(f16vec3) Load 177(f16c3) + 2523:6(float16_t) Load 572(f16lod) + 2524: 7(f16vec4) ImageGather 2521 2522 2187 Lod ConstOffset 2523 722 + 2525: 7(f16vec4) Load 2502(texel) + 2526: 7(f16vec4) FAdd 2525 2524 + Store 2502(texel) 2526 + 2527: 7(f16vec4) Load 2502(texel) + ReturnValue 2527 + FunctionEnd +45(testTextureGatherLodOffsets(): 7(f16vec4) Function None 8 + 46: Label + 2530(texel): 64(ptr) Variable Function + Store 2530(texel) 121 + 2531: 143 Load 145(s2D) + 2532: 53(fvec2) Load 148(c2) + 2533: 52(float) Load 565(lod) + 2534: 7(f16vec4) ImageGather 2531 2532 2187 Lod ConstOffsets 2533 2380 + 2535: 7(f16vec4) Load 2530(texel) + 2536: 7(f16vec4) FAdd 2535 2534 + Store 2530(texel) 2536 + 2537: 143 Load 145(s2D) + 2538:154(f16vec2) Load 156(f16c2) + 2539:6(float16_t) Load 572(f16lod) + 2540: 7(f16vec4) ImageGather 2537 2538 2187 Lod ConstOffsets 2539 2380 + 2541: 7(f16vec4) Load 2530(texel) + 2542: 7(f16vec4) FAdd 2541 2540 + Store 2530(texel) 2542 + 2543: 284 Load 286(s2DArray) + 2544: 167(fvec3) Load 169(c3) + 2545: 52(float) Load 565(lod) + 2546: 7(f16vec4) ImageGather 2543 2544 2187 Lod ConstOffsets 2545 2380 + 2547: 7(f16vec4) Load 2530(texel) + 2548: 7(f16vec4) FAdd 2547 2546 + Store 2530(texel) 2548 + 2549: 284 Load 286(s2DArray) + 2550:175(f16vec3) Load 177(f16c3) + 2551:6(float16_t) Load 572(f16lod) + 2552: 7(f16vec4) ImageGather 2549 2550 2187 Lod ConstOffsets 2551 2380 + 2553: 7(f16vec4) Load 2530(texel) + 2554: 7(f16vec4) FAdd 2553 2552 + Store 2530(texel) 2554 + 2555: 7(f16vec4) Load 2530(texel) + ReturnValue 2555 + FunctionEnd +50(testTextureSize(): 48(ivec4) Function None 49 + 51: Label + 2559(size): 2558(ptr) Variable Function + Store 2559(size) 2560 + 2561: 123 Load 125(s1D) + 2562: 52(float) Load 565(lod) + 2563: 47(int) ConvertFToS 2562 + 2564: 122 Image 2561 + 2565: 47(int) ImageQuerySizeLod 2564 2563 + 2567: 2566(ptr) AccessChain 2559(size) 207 + 2568: 47(int) Load 2567 + 2569: 47(int) IAdd 2568 2565 + 2570: 2566(ptr) AccessChain 2559(size) 207 + Store 2570 2569 + 2571: 143 Load 145(s2D) + 2572: 52(float) Load 565(lod) + 2573: 47(int) ConvertFToS 2572 + 2574: 142 Image 2571 + 2575: 721(ivec2) ImageQuerySizeLod 2574 2573 + 2576: 48(ivec4) Load 2559(size) + 2577: 721(ivec2) VectorShuffle 2576 2576 0 1 + 2578: 721(ivec2) IAdd 2577 2575 + 2579: 48(ivec4) Load 2559(size) + 2580: 48(ivec4) VectorShuffle 2579 2578 4 5 2 3 + Store 2559(size) 2580 + 2581: 163 Load 165(s3D) + 2582: 52(float) Load 565(lod) + 2583: 47(int) ConvertFToS 2582 + 2584: 162 Image 2581 + 2585: 734(ivec3) ImageQuerySizeLod 2584 2583 + 2586: 48(ivec4) Load 2559(size) + 2587: 734(ivec3) VectorShuffle 2586 2586 0 1 2 + 2588: 734(ivec3) IAdd 2587 2585 + 2589: 48(ivec4) Load 2559(size) + 2590: 48(ivec4) VectorShuffle 2589 2588 4 5 6 3 + Store 2559(size) 2590 + 2591: 184 Load 186(sCube) + 2592: 52(float) Load 565(lod) + 2593: 47(int) ConvertFToS 2592 + 2594: 183 Image 2591 + 2595: 721(ivec2) ImageQuerySizeLod 2594 2593 + 2596: 48(ivec4) Load 2559(size) + 2597: 721(ivec2) VectorShuffle 2596 2596 0 1 + 2598: 721(ivec2) IAdd 2597 2595 + 2599: 48(ivec4) Load 2559(size) + 2600: 48(ivec4) VectorShuffle 2599 2598 4 5 2 3 + Store 2559(size) 2600 + 2601: 199 Load 201(s1DShadow) + 2602: 52(float) Load 565(lod) + 2603: 47(int) ConvertFToS 2602 + 2604: 198 Image 2601 + 2605: 47(int) ImageQuerySizeLod 2604 2603 + 2606: 2566(ptr) AccessChain 2559(size) 207 + 2607: 47(int) Load 2606 + 2608: 47(int) IAdd 2607 2605 + 2609: 2566(ptr) AccessChain 2559(size) 207 + Store 2609 2608 + 2610: 224 Load 226(s2DShadow) + 2611: 52(float) Load 565(lod) + 2612: 47(int) ConvertFToS 2611 + 2613: 223 Image 2610 + 2614: 721(ivec2) ImageQuerySizeLod 2613 2612 + 2615: 48(ivec4) Load 2559(size) + 2616: 721(ivec2) VectorShuffle 2615 2615 0 1 + 2617: 721(ivec2) IAdd 2616 2614 + 2618: 48(ivec4) Load 2559(size) + 2619: 48(ivec4) VectorShuffle 2618 2617 4 5 2 3 + Store 2559(size) 2619 + 2620: 245 Load 247(sCubeShadow) + 2621: 52(float) Load 565(lod) + 2622: 47(int) ConvertFToS 2621 + 2623: 244 Image 2620 + 2624: 721(ivec2) ImageQuerySizeLod 2623 2622 + 2625: 48(ivec4) Load 2559(size) + 2626: 721(ivec2) VectorShuffle 2625 2625 0 1 + 2627: 721(ivec2) IAdd 2626 2624 + 2628: 48(ivec4) Load 2559(size) + 2629: 48(ivec4) VectorShuffle 2628 2627 4 5 2 3 + Store 2559(size) 2629 + 2630: 299 Load 301(sCubeArray) + 2631: 52(float) Load 565(lod) + 2632: 47(int) ConvertFToS 2631 + 2633: 298 Image 2630 + 2634: 734(ivec3) ImageQuerySizeLod 2633 2632 + 2635: 48(ivec4) Load 2559(size) + 2636: 734(ivec3) VectorShuffle 2635 2635 0 1 2 + 2637: 734(ivec3) IAdd 2636 2634 + 2638: 48(ivec4) Load 2559(size) + 2639: 48(ivec4) VectorShuffle 2638 2637 4 5 6 3 + Store 2559(size) 2639 + 2640: 391 Load 393(sCubeArrayShadow) + 2641: 52(float) Load 565(lod) + 2642: 47(int) ConvertFToS 2641 + 2643: 390 Image 2640 + 2644: 734(ivec3) ImageQuerySizeLod 2643 2642 + 2645: 48(ivec4) Load 2559(size) + 2646: 734(ivec3) VectorShuffle 2645 2645 0 1 2 + 2647: 734(ivec3) IAdd 2646 2644 + 2648: 48(ivec4) Load 2559(size) + 2649: 48(ivec4) VectorShuffle 2648 2647 4 5 6 3 + Store 2559(size) 2649 + 2650: 357 Load 359(s2DRect) + 2651: 356 Image 2650 + 2652: 721(ivec2) ImageQuerySize 2651 + 2653: 48(ivec4) Load 2559(size) + 2654: 721(ivec2) VectorShuffle 2653 2653 0 1 + 2655: 721(ivec2) IAdd 2654 2652 + 2656: 48(ivec4) Load 2559(size) + 2657: 48(ivec4) VectorShuffle 2656 2655 4 5 2 3 + Store 2559(size) 2657 + 2658: 371 Load 373(s2DRectShadow) + 2659: 370 Image 2658 + 2660: 721(ivec2) ImageQuerySize 2659 + 2661: 48(ivec4) Load 2559(size) + 2662: 721(ivec2) VectorShuffle 2661 2661 0 1 + 2663: 721(ivec2) IAdd 2662 2660 + 2664: 48(ivec4) Load 2559(size) + 2665: 48(ivec4) VectorShuffle 2664 2663 4 5 2 3 + Store 2559(size) 2665 + 2666: 269 Load 271(s1DArray) + 2667: 52(float) Load 565(lod) + 2668: 47(int) ConvertFToS 2667 + 2669: 268 Image 2666 + 2670: 721(ivec2) ImageQuerySizeLod 2669 2668 + 2671: 48(ivec4) Load 2559(size) + 2672: 721(ivec2) VectorShuffle 2671 2671 0 1 + 2673: 721(ivec2) IAdd 2672 2670 + 2674: 48(ivec4) Load 2559(size) + 2675: 48(ivec4) VectorShuffle 2674 2673 4 5 2 3 + Store 2559(size) 2675 + 2676: 284 Load 286(s2DArray) + 2677: 52(float) Load 565(lod) + 2678: 47(int) ConvertFToS 2677 + 2679: 283 Image 2676 + 2680: 734(ivec3) ImageQuerySizeLod 2679 2678 + 2681: 48(ivec4) Load 2559(size) + 2682: 734(ivec3) VectorShuffle 2681 2681 0 1 2 + 2683: 734(ivec3) IAdd 2682 2680 + 2684: 48(ivec4) Load 2559(size) + 2685: 48(ivec4) VectorShuffle 2684 2683 4 5 6 3 + Store 2559(size) 2685 + 2686: 316 Load 318(s1DArrayShadow) + 2687: 52(float) Load 565(lod) + 2688: 47(int) ConvertFToS 2687 + 2689: 315 Image 2686 + 2690: 721(ivec2) ImageQuerySizeLod 2689 2688 + 2691: 48(ivec4) Load 2559(size) + 2692: 721(ivec2) VectorShuffle 2691 2691 0 1 + 2693: 721(ivec2) IAdd 2692 2690 + 2694: 48(ivec4) Load 2559(size) + 2695: 48(ivec4) VectorShuffle 2694 2693 4 5 2 3 + Store 2559(size) 2695 + 2696: 337 Load 339(s2DArrayShadow) + 2697: 52(float) Load 565(lod) + 2698: 47(int) ConvertFToS 2697 + 2699: 336 Image 2696 + 2700: 734(ivec3) ImageQuerySizeLod 2699 2698 + 2701: 48(ivec4) Load 2559(size) + 2702: 734(ivec3) VectorShuffle 2701 2701 0 1 2 + 2703: 734(ivec3) IAdd 2702 2700 + 2704: 48(ivec4) Load 2559(size) + 2705: 48(ivec4) VectorShuffle 2704 2703 4 5 6 3 + Store 2559(size) 2705 + 2706: 1298 Load 1300(sBuffer) + 2707: 1297 Image 2706 + 2708: 47(int) ImageQuerySize 2707 + 2709: 2566(ptr) AccessChain 2559(size) 207 + 2710: 47(int) Load 2709 + 2711: 47(int) IAdd 2710 2708 + 2712: 2566(ptr) AccessChain 2559(size) 207 + Store 2712 2711 + 2713: 1309 Load 1311(s2DMS) + 2714: 1308 Image 2713 + 2715: 721(ivec2) ImageQuerySize 2714 + 2716: 48(ivec4) Load 2559(size) + 2717: 721(ivec2) VectorShuffle 2716 2716 0 1 + 2718: 721(ivec2) IAdd 2717 2715 + 2719: 48(ivec4) Load 2559(size) + 2720: 48(ivec4) VectorShuffle 2719 2718 4 5 2 3 + Store 2559(size) 2720 + 2721: 1320 Load 1322(s2DMSArray) + 2722: 1319 Image 2721 + 2723: 734(ivec3) ImageQuerySize 2722 + 2724: 48(ivec4) Load 2559(size) + 2725: 734(ivec3) VectorShuffle 2724 2724 0 1 2 + 2726: 734(ivec3) IAdd 2725 2723 + 2727: 48(ivec4) Load 2559(size) + 2728: 48(ivec4) VectorShuffle 2727 2726 4 5 6 3 + Store 2559(size) 2728 + 2729: 48(ivec4) Load 2559(size) + ReturnValue 2729 + FunctionEnd +55(testTextureQueryLod(): 53(fvec2) Function None 54 + 56: Label + 2733(lod): 2732(ptr) Variable Function + Store 2733(lod) 2735 + 2736: 123 Load 125(s1D) + 2737: 52(float) Load 128(c1) + 2738: 53(fvec2) ImageQueryLod 2736 2737 + 2739: 53(fvec2) Load 2733(lod) + 2740: 53(fvec2) FAdd 2739 2738 + Store 2733(lod) 2740 + 2741: 123 Load 125(s1D) + 2742:6(float16_t) Load 135(f16c1) + 2743:154(f16vec2) ImageQueryLod 2741 2742 + 2744: 53(fvec2) Load 2733(lod) + 2745: 53(fvec2) FAdd 2744 2743 + Store 2733(lod) 2745 + 2746: 143 Load 145(s2D) + 2747: 53(fvec2) Load 148(c2) + 2748: 53(fvec2) ImageQueryLod 2746 2747 + 2749: 53(fvec2) Load 2733(lod) + 2750: 53(fvec2) FAdd 2749 2748 + Store 2733(lod) 2750 + 2751: 143 Load 145(s2D) + 2752:154(f16vec2) Load 156(f16c2) + 2753:154(f16vec2) ImageQueryLod 2751 2752 + 2754: 53(fvec2) Load 2733(lod) + 2755: 53(fvec2) FAdd 2754 2753 + Store 2733(lod) 2755 + 2756: 163 Load 165(s3D) + 2757: 167(fvec3) Load 169(c3) + 2758: 53(fvec2) ImageQueryLod 2756 2757 + 2759: 53(fvec2) Load 2733(lod) + 2760: 53(fvec2) FAdd 2759 2758 + Store 2733(lod) 2760 + 2761: 163 Load 165(s3D) + 2762:175(f16vec3) Load 177(f16c3) + 2763:154(f16vec2) ImageQueryLod 2761 2762 + 2764: 53(fvec2) Load 2733(lod) + 2765: 53(fvec2) FAdd 2764 2763 + Store 2733(lod) 2765 + 2766: 184 Load 186(sCube) + 2767: 167(fvec3) Load 169(c3) + 2768: 53(fvec2) ImageQueryLod 2766 2767 + 2769: 53(fvec2) Load 2733(lod) + 2770: 53(fvec2) FAdd 2769 2768 + Store 2733(lod) 2770 + 2771: 184 Load 186(sCube) + 2772:175(f16vec3) Load 177(f16c3) + 2773:154(f16vec2) ImageQueryLod 2771 2772 + 2774: 53(fvec2) Load 2733(lod) + 2775: 53(fvec2) FAdd 2774 2773 + Store 2733(lod) 2775 + 2776: 269 Load 271(s1DArray) + 2777: 52(float) Load 128(c1) + 2778: 53(fvec2) ImageQueryLod 2776 2777 + 2779: 53(fvec2) Load 2733(lod) + 2780: 53(fvec2) FAdd 2779 2778 + Store 2733(lod) 2780 + 2781: 269 Load 271(s1DArray) + 2782:6(float16_t) Load 135(f16c1) + 2783:154(f16vec2) ImageQueryLod 2781 2782 + 2784: 53(fvec2) Load 2733(lod) + 2785: 53(fvec2) FAdd 2784 2783 + Store 2733(lod) 2785 + 2786: 284 Load 286(s2DArray) + 2787: 53(fvec2) Load 148(c2) + 2788: 53(fvec2) ImageQueryLod 2786 2787 + 2789: 53(fvec2) Load 2733(lod) + 2790: 53(fvec2) FAdd 2789 2788 + Store 2733(lod) 2790 + 2791: 284 Load 286(s2DArray) + 2792:154(f16vec2) Load 156(f16c2) + 2793:154(f16vec2) ImageQueryLod 2791 2792 + 2794: 53(fvec2) Load 2733(lod) + 2795: 53(fvec2) FAdd 2794 2793 + Store 2733(lod) 2795 + 2796: 299 Load 301(sCubeArray) + 2797: 167(fvec3) Load 169(c3) + 2798: 53(fvec2) ImageQueryLod 2796 2797 + 2799: 53(fvec2) Load 2733(lod) + 2800: 53(fvec2) FAdd 2799 2798 + Store 2733(lod) 2800 + 2801: 299 Load 301(sCubeArray) + 2802:175(f16vec3) Load 177(f16c3) + 2803:154(f16vec2) ImageQueryLod 2801 2802 + 2804: 53(fvec2) Load 2733(lod) + 2805: 53(fvec2) FAdd 2804 2803 + Store 2733(lod) 2805 + 2806: 199 Load 201(s1DShadow) + 2807: 52(float) Load 128(c1) + 2808: 53(fvec2) ImageQueryLod 2806 2807 + 2809: 53(fvec2) Load 2733(lod) + 2810: 53(fvec2) FAdd 2809 2808 + Store 2733(lod) 2810 + 2811: 199 Load 201(s1DShadow) + 2812:6(float16_t) Load 135(f16c1) + 2813:154(f16vec2) ImageQueryLod 2811 2812 + 2814: 53(fvec2) Load 2733(lod) + 2815: 53(fvec2) FAdd 2814 2813 + Store 2733(lod) 2815 + 2816: 224 Load 226(s2DShadow) + 2817: 53(fvec2) Load 148(c2) + 2818: 53(fvec2) ImageQueryLod 2816 2817 + 2819: 53(fvec2) Load 2733(lod) + 2820: 53(fvec2) FAdd 2819 2818 + Store 2733(lod) 2820 + 2821: 224 Load 226(s2DShadow) + 2822:154(f16vec2) Load 156(f16c2) + 2823:154(f16vec2) ImageQueryLod 2821 2822 + 2824: 53(fvec2) Load 2733(lod) + 2825: 53(fvec2) FAdd 2824 2823 + Store 2733(lod) 2825 + 2826: 391 Load 393(sCubeArrayShadow) + 2827: 167(fvec3) Load 169(c3) + 2828: 53(fvec2) ImageQueryLod 2826 2827 + 2829: 53(fvec2) Load 2733(lod) + 2830: 53(fvec2) FAdd 2829 2828 + Store 2733(lod) 2830 + 2831: 391 Load 393(sCubeArrayShadow) + 2832:175(f16vec3) Load 177(f16c3) + 2833:154(f16vec2) ImageQueryLod 2831 2832 + 2834: 53(fvec2) Load 2733(lod) + 2835: 53(fvec2) FAdd 2834 2833 + Store 2733(lod) 2835 + 2836: 316 Load 318(s1DArrayShadow) + 2837: 52(float) Load 128(c1) + 2838: 53(fvec2) ImageQueryLod 2836 2837 + 2839: 53(fvec2) Load 2733(lod) + 2840: 53(fvec2) FAdd 2839 2838 + Store 2733(lod) 2840 + 2841: 316 Load 318(s1DArrayShadow) + 2842:6(float16_t) Load 135(f16c1) + 2843:154(f16vec2) ImageQueryLod 2841 2842 + 2844: 53(fvec2) Load 2733(lod) + 2845: 53(fvec2) FAdd 2844 2843 + Store 2733(lod) 2845 + 2846: 337 Load 339(s2DArrayShadow) + 2847: 53(fvec2) Load 148(c2) + 2848: 53(fvec2) ImageQueryLod 2846 2847 + 2849: 53(fvec2) Load 2733(lod) + 2850: 53(fvec2) FAdd 2849 2848 + Store 2733(lod) 2850 + 2851: 337 Load 339(s2DArrayShadow) + 2852:154(f16vec2) Load 156(f16c2) + 2853:154(f16vec2) ImageQueryLod 2851 2852 + 2854: 53(fvec2) Load 2733(lod) + 2855: 53(fvec2) FAdd 2854 2853 + Store 2733(lod) 2855 + 2856: 391 Load 393(sCubeArrayShadow) + 2857: 167(fvec3) Load 169(c3) + 2858: 53(fvec2) ImageQueryLod 2856 2857 + 2859: 53(fvec2) Load 2733(lod) + 2860: 53(fvec2) FAdd 2859 2858 + Store 2733(lod) 2860 + 2861: 391 Load 393(sCubeArrayShadow) + 2862:175(f16vec3) Load 177(f16c3) + 2863:154(f16vec2) ImageQueryLod 2861 2862 + 2864: 53(fvec2) Load 2733(lod) + 2865: 53(fvec2) FAdd 2864 2863 + Store 2733(lod) 2865 + 2866: 53(fvec2) Load 2733(lod) + ReturnValue 2866 + FunctionEnd +58(testTextureQueryLevels(): 47(int) Function None 57 + 59: Label + 2869(levels): 2566(ptr) Variable Function + Store 2869(levels) 2187 + 2870: 123 Load 125(s1D) + 2871: 122 Image 2870 + 2872: 47(int) ImageQueryLevels 2871 + 2873: 47(int) Load 2869(levels) + 2874: 47(int) IAdd 2873 2872 + Store 2869(levels) 2874 + 2875: 143 Load 145(s2D) + 2876: 142 Image 2875 + 2877: 47(int) ImageQueryLevels 2876 + 2878: 47(int) Load 2869(levels) + 2879: 47(int) IAdd 2878 2877 + Store 2869(levels) 2879 + 2880: 163 Load 165(s3D) + 2881: 162 Image 2880 + 2882: 47(int) ImageQueryLevels 2881 + 2883: 47(int) Load 2869(levels) + 2884: 47(int) IAdd 2883 2882 + Store 2869(levels) 2884 + 2885: 184 Load 186(sCube) + 2886: 183 Image 2885 + 2887: 47(int) ImageQueryLevels 2886 + 2888: 47(int) Load 2869(levels) + 2889: 47(int) IAdd 2888 2887 + Store 2869(levels) 2889 + 2890: 199 Load 201(s1DShadow) + 2891: 198 Image 2890 + 2892: 47(int) ImageQueryLevels 2891 + 2893: 47(int) Load 2869(levels) + 2894: 47(int) IAdd 2893 2892 + Store 2869(levels) 2894 + 2895: 224 Load 226(s2DShadow) + 2896: 223 Image 2895 + 2897: 47(int) ImageQueryLevels 2896 + 2898: 47(int) Load 2869(levels) + 2899: 47(int) IAdd 2898 2897 + Store 2869(levels) 2899 + 2900: 245 Load 247(sCubeShadow) + 2901: 244 Image 2900 + 2902: 47(int) ImageQueryLevels 2901 + 2903: 47(int) Load 2869(levels) + 2904: 47(int) IAdd 2903 2902 + Store 2869(levels) 2904 + 2905: 299 Load 301(sCubeArray) + 2906: 298 Image 2905 + 2907: 47(int) ImageQueryLevels 2906 + 2908: 47(int) Load 2869(levels) + 2909: 47(int) IAdd 2908 2907 + Store 2869(levels) 2909 + 2910: 391 Load 393(sCubeArrayShadow) + 2911: 390 Image 2910 + 2912: 47(int) ImageQueryLevels 2911 + 2913: 47(int) Load 2869(levels) + 2914: 47(int) IAdd 2913 2912 + Store 2869(levels) 2914 + 2915: 269 Load 271(s1DArray) + 2916: 268 Image 2915 + 2917: 47(int) ImageQueryLevels 2916 + 2918: 47(int) Load 2869(levels) + 2919: 47(int) IAdd 2918 2917 + Store 2869(levels) 2919 + 2920: 284 Load 286(s2DArray) + 2921: 283 Image 2920 + 2922: 47(int) ImageQueryLevels 2921 + 2923: 47(int) Load 2869(levels) + 2924: 47(int) IAdd 2923 2922 + Store 2869(levels) 2924 + 2925: 316 Load 318(s1DArrayShadow) + 2926: 315 Image 2925 + 2927: 47(int) ImageQueryLevels 2926 + 2928: 47(int) Load 2869(levels) + 2929: 47(int) IAdd 2928 2927 + Store 2869(levels) 2929 + 2930: 337 Load 339(s2DArrayShadow) + 2931: 336 Image 2930 + 2932: 47(int) ImageQueryLevels 2931 + 2933: 47(int) Load 2869(levels) + 2934: 47(int) IAdd 2933 2932 + Store 2869(levels) 2934 + 2935: 47(int) Load 2869(levels) + ReturnValue 2935 + FunctionEnd +60(testTextureSamples(): 47(int) Function None 57 + 61: Label + 2938(samples): 2566(ptr) Variable Function + Store 2938(samples) 2187 + 2939: 1309 Load 1311(s2DMS) + 2940: 1308 Image 2939 + 2941: 47(int) ImageQuerySamples 2940 + 2942: 47(int) Load 2938(samples) + 2943: 47(int) IAdd 2942 2941 + Store 2938(samples) 2943 + 2944: 1320 Load 1322(s2DMSArray) + 2945: 1319 Image 2944 + 2946: 47(int) ImageQuerySamples 2945 + 2947: 47(int) Load 2938(samples) + 2948: 47(int) IAdd 2947 2946 + Store 2938(samples) 2948 + 2949: 47(int) Load 2938(samples) + ReturnValue 2949 + FunctionEnd +62(testImageLoad(): 7(f16vec4) Function None 8 + 63: Label + 2952(texel): 64(ptr) Variable Function + Store 2952(texel) 121 + 2956: 2953 Load 2955(i1D) + 2957: 52(float) Load 128(c1) + 2958: 47(int) ConvertFToS 2957 + 2959: 7(f16vec4) ImageRead 2956 2958 + 2960: 7(f16vec4) Load 2952(texel) + 2961: 7(f16vec4) FAdd 2960 2959 + Store 2952(texel) 2961 + 2965: 2962 Load 2964(i2D) + 2966: 53(fvec2) Load 148(c2) + 2967: 721(ivec2) ConvertFToS 2966 + 2968: 7(f16vec4) ImageRead 2965 2967 + 2969: 7(f16vec4) Load 2952(texel) + 2970: 7(f16vec4) FAdd 2969 2968 + Store 2952(texel) 2970 + 2974: 2971 Load 2973(i3D) + 2975: 167(fvec3) Load 169(c3) + 2976: 734(ivec3) ConvertFToS 2975 + 2977: 7(f16vec4) ImageRead 2974 2976 + 2978: 7(f16vec4) Load 2952(texel) + 2979: 7(f16vec4) FAdd 2978 2977 + Store 2952(texel) 2979 + 2983: 2980 Load 2982(i2DRect) + 2984: 53(fvec2) Load 148(c2) + 2985: 721(ivec2) ConvertFToS 2984 + 2986: 7(f16vec4) ImageRead 2983 2985 + 2987: 7(f16vec4) Load 2952(texel) + 2988: 7(f16vec4) FAdd 2987 2986 + Store 2952(texel) 2988 + 2992: 2989 Load 2991(iCube) + 2993: 167(fvec3) Load 169(c3) + 2994: 734(ivec3) ConvertFToS 2993 + 2995: 7(f16vec4) ImageRead 2992 2994 + 2996: 7(f16vec4) Load 2952(texel) + 2997: 7(f16vec4) FAdd 2996 2995 + Store 2952(texel) 2997 + 3001: 2998 Load 3000(iBuffer) + 3002: 52(float) Load 128(c1) + 3003: 47(int) ConvertFToS 3002 + 3004: 7(f16vec4) ImageRead 3001 3003 + 3005: 7(f16vec4) Load 2952(texel) + 3006: 7(f16vec4) FAdd 3005 3004 + Store 2952(texel) 3006 + 3010: 3007 Load 3009(i1DArray) + 3011: 53(fvec2) Load 148(c2) + 3012: 721(ivec2) ConvertFToS 3011 + 3013: 7(f16vec4) ImageRead 3010 3012 + 3014: 7(f16vec4) Load 2952(texel) + 3015: 7(f16vec4) FAdd 3014 3013 + Store 2952(texel) 3015 + 3019: 3016 Load 3018(i2DArray) + 3020: 167(fvec3) Load 169(c3) + 3021: 734(ivec3) ConvertFToS 3020 + 3022: 7(f16vec4) ImageRead 3019 3021 + 3023: 7(f16vec4) Load 2952(texel) + 3024: 7(f16vec4) FAdd 3023 3022 + Store 2952(texel) 3024 + 3028: 3025 Load 3027(iCubeArray) + 3029: 167(fvec3) Load 169(c3) + 3030: 734(ivec3) ConvertFToS 3029 + 3031: 7(f16vec4) ImageRead 3028 3030 + 3032: 7(f16vec4) Load 2952(texel) + 3033: 7(f16vec4) FAdd 3032 3031 + Store 2952(texel) 3033 + 3037: 3034 Load 3036(i2DMS) + 3038: 53(fvec2) Load 148(c2) + 3039: 721(ivec2) ConvertFToS 3038 + 3040: 7(f16vec4) ImageRead 3037 3039 Sample 709 + 3041: 7(f16vec4) Load 2952(texel) + 3042: 7(f16vec4) FAdd 3041 3040 + Store 2952(texel) 3042 + 3046: 3043 Load 3045(i2DMSArray) + 3047: 167(fvec3) Load 169(c3) + 3048: 734(ivec3) ConvertFToS 3047 + 3049: 7(f16vec4) ImageRead 3046 3048 Sample 709 + 3050: 7(f16vec4) Load 2952(texel) + 3051: 7(f16vec4) FAdd 3050 3049 + Store 2952(texel) 3051 + 3052: 7(f16vec4) Load 2952(texel) + ReturnValue 3052 + FunctionEnd +67(testImageStore(vf164;): 2 Function None 65 + 66(data): 64(ptr) FunctionParameter + 68: Label + 3055: 2953 Load 2955(i1D) + 3056: 52(float) Load 128(c1) + 3057: 47(int) ConvertFToS 3056 + 3058: 7(f16vec4) Load 66(data) + ImageWrite 3055 3057 3058 + 3059: 2962 Load 2964(i2D) + 3060: 53(fvec2) Load 148(c2) + 3061: 721(ivec2) ConvertFToS 3060 + 3062: 7(f16vec4) Load 66(data) + ImageWrite 3059 3061 3062 + 3063: 2971 Load 2973(i3D) + 3064: 167(fvec3) Load 169(c3) + 3065: 734(ivec3) ConvertFToS 3064 + 3066: 7(f16vec4) Load 66(data) + ImageWrite 3063 3065 3066 + 3067: 2980 Load 2982(i2DRect) + 3068: 53(fvec2) Load 148(c2) + 3069: 721(ivec2) ConvertFToS 3068 + 3070: 7(f16vec4) Load 66(data) + ImageWrite 3067 3069 3070 + 3071: 2989 Load 2991(iCube) + 3072: 167(fvec3) Load 169(c3) + 3073: 734(ivec3) ConvertFToS 3072 + 3074: 7(f16vec4) Load 66(data) + ImageWrite 3071 3073 3074 + 3075: 2998 Load 3000(iBuffer) + 3076: 52(float) Load 128(c1) + 3077: 47(int) ConvertFToS 3076 + 3078: 7(f16vec4) Load 66(data) + ImageWrite 3075 3077 3078 + 3079: 3007 Load 3009(i1DArray) + 3080: 53(fvec2) Load 148(c2) + 3081: 721(ivec2) ConvertFToS 3080 + 3082: 7(f16vec4) Load 66(data) + ImageWrite 3079 3081 3082 + 3083: 3016 Load 3018(i2DArray) + 3084: 167(fvec3) Load 169(c3) + 3085: 734(ivec3) ConvertFToS 3084 + 3086: 7(f16vec4) Load 66(data) + ImageWrite 3083 3085 3086 + 3087: 3025 Load 3027(iCubeArray) + 3088: 167(fvec3) Load 169(c3) + 3089: 734(ivec3) ConvertFToS 3088 + 3090: 7(f16vec4) Load 66(data) + ImageWrite 3087 3089 3090 + 3091: 3034 Load 3036(i2DMS) + 3092: 53(fvec2) Load 148(c2) + 3093: 721(ivec2) ConvertFToS 3092 + 3094: 7(f16vec4) Load 66(data) + ImageWrite 3091 3093 3094 Sample 709 + 3095: 3043 Load 3045(i2DMSArray) + 3096: 167(fvec3) Load 169(c3) + 3097: 734(ivec3) ConvertFToS 3096 + 3098: 7(f16vec4) Load 66(data) + ImageWrite 3095 3097 3098 Sample 709 + Return + FunctionEnd +69(testSparseTexture(): 7(f16vec4) Function None 8 + 70: Label + 3099(texel): 64(ptr) Variable Function + Store 3099(texel) 121 + 3100: 143 Load 145(s2D) + 3101: 53(fvec2) Load 148(c2) + 3103:3102(ResType) ImageSparseSampleImplicitLod 3100 3101 + 3104: 7(f16vec4) CompositeExtract 3103 1 + Store 3099(texel) 3104 + 3105: 47(int) CompositeExtract 3103 0 + 3106: 143 Load 145(s2D) + 3107:154(f16vec2) Load 156(f16c2) + 3108:6(float16_t) Load 137(f16bias) + 3109:3102(ResType) ImageSparseSampleImplicitLod 3106 3107 Bias 3108 + 3110: 7(f16vec4) CompositeExtract 3109 1 + Store 3099(texel) 3110 + 3111: 47(int) CompositeExtract 3109 0 + 3112: 163 Load 165(s3D) + 3113: 167(fvec3) Load 169(c3) + 3114:3102(ResType) ImageSparseSampleImplicitLod 3112 3113 + 3115: 7(f16vec4) CompositeExtract 3114 1 + Store 3099(texel) 3115 + 3116: 47(int) CompositeExtract 3114 0 + 3117: 163 Load 165(s3D) + 3118:175(f16vec3) Load 177(f16c3) + 3119:6(float16_t) Load 137(f16bias) + 3120:3102(ResType) ImageSparseSampleImplicitLod 3117 3118 Bias 3119 + 3121: 7(f16vec4) CompositeExtract 3120 1 + Store 3099(texel) 3121 + 3122: 47(int) CompositeExtract 3120 0 + 3123: 184 Load 186(sCube) + 3124: 167(fvec3) Load 169(c3) + 3125:3102(ResType) ImageSparseSampleImplicitLod 3123 3124 + 3126: 7(f16vec4) CompositeExtract 3125 1 + Store 3099(texel) 3126 + 3127: 47(int) CompositeExtract 3125 0 + 3128: 184 Load 186(sCube) + 3129:175(f16vec3) Load 177(f16c3) + 3130:6(float16_t) Load 137(f16bias) + 3131:3102(ResType) ImageSparseSampleImplicitLod 3128 3129 Bias 3130 + 3132: 7(f16vec4) CompositeExtract 3131 1 + Store 3099(texel) 3132 + 3133: 47(int) CompositeExtract 3131 0 + 3134: 224 Load 226(s2DShadow) + 3135: 167(fvec3) Load 169(c3) + 3136: 208(ptr) AccessChain 3099(texel) 207 + 3137: 52(float) CompositeExtract 3135 2 + 3139:3138(ResType) ImageSparseSampleDrefImplicitLod 3134 3135 3137 + 3140:6(float16_t) CompositeExtract 3139 1 + Store 3136 3140 + 3141: 47(int) CompositeExtract 3139 0 + 3142: 224 Load 226(s2DShadow) + 3143:154(f16vec2) Load 156(f16c2) + 3144: 52(float) Load 215(compare) + 3145: 208(ptr) AccessChain 3099(texel) 207 + 3146:6(float16_t) Load 137(f16bias) + 3147:3138(ResType) ImageSparseSampleDrefImplicitLod 3142 3143 3144 Bias 3146 + 3148:6(float16_t) CompositeExtract 3147 1 + Store 3145 3148 + 3149: 47(int) CompositeExtract 3147 0 + 3150: 245 Load 247(sCubeShadow) + 3151: 249(fvec4) Load 251(c4) + 3152: 208(ptr) AccessChain 3099(texel) 207 + 3153: 52(float) CompositeExtract 3151 3 + 3154:3138(ResType) ImageSparseSampleDrefImplicitLod 3150 3151 3153 + 3155:6(float16_t) CompositeExtract 3154 1 + Store 3152 3155 + 3156: 47(int) CompositeExtract 3154 0 + 3157: 245 Load 247(sCubeShadow) + 3158:175(f16vec3) Load 177(f16c3) + 3159: 52(float) Load 215(compare) + 3160: 208(ptr) AccessChain 3099(texel) 207 + 3161:6(float16_t) Load 137(f16bias) + 3162:3138(ResType) ImageSparseSampleDrefImplicitLod 3157 3158 3159 Bias 3161 + 3163:6(float16_t) CompositeExtract 3162 1 + Store 3160 3163 + 3164: 47(int) CompositeExtract 3162 0 + 3165: 284 Load 286(s2DArray) + 3166: 167(fvec3) Load 169(c3) + 3167:3102(ResType) ImageSparseSampleImplicitLod 3165 3166 + 3168: 7(f16vec4) CompositeExtract 3167 1 + Store 3099(texel) 3168 + 3169: 47(int) CompositeExtract 3167 0 + 3170: 284 Load 286(s2DArray) + 3171:175(f16vec3) Load 177(f16c3) + 3172:6(float16_t) Load 137(f16bias) + 3173:3102(ResType) ImageSparseSampleImplicitLod 3170 3171 Bias 3172 + 3174: 7(f16vec4) CompositeExtract 3173 1 + Store 3099(texel) 3174 + 3175: 47(int) CompositeExtract 3173 0 + 3176: 299 Load 301(sCubeArray) + 3177: 249(fvec4) Load 251(c4) + 3178:3102(ResType) ImageSparseSampleImplicitLod 3176 3177 + 3179: 7(f16vec4) CompositeExtract 3178 1 + Store 3099(texel) 3179 + 3180: 47(int) CompositeExtract 3178 0 + 3181: 299 Load 301(sCubeArray) + 3182: 7(f16vec4) Load 309(f16c4) + 3183:6(float16_t) Load 137(f16bias) + 3184:3102(ResType) ImageSparseSampleImplicitLod 3181 3182 Bias 3183 + 3185: 7(f16vec4) CompositeExtract 3184 1 + Store 3099(texel) 3185 + 3186: 47(int) CompositeExtract 3184 0 + 3187: 337 Load 339(s2DArrayShadow) + 3188: 249(fvec4) Load 251(c4) + 3189: 208(ptr) AccessChain 3099(texel) 207 + 3190: 52(float) CompositeExtract 3188 3 + 3191:3138(ResType) ImageSparseSampleDrefImplicitLod 3187 3188 3190 + 3192:6(float16_t) CompositeExtract 3191 1 + Store 3189 3192 + 3193: 47(int) CompositeExtract 3191 0 + 3194: 337 Load 339(s2DArrayShadow) + 3195:175(f16vec3) Load 177(f16c3) + 3196: 52(float) Load 215(compare) + 3197: 208(ptr) AccessChain 3099(texel) 207 + 3198:3138(ResType) ImageSparseSampleDrefImplicitLod 3194 3195 3196 + 3199:6(float16_t) CompositeExtract 3198 1 + Store 3197 3199 + 3200: 47(int) CompositeExtract 3198 0 + 3201: 357 Load 359(s2DRect) + 3202: 53(fvec2) Load 148(c2) + 3203:3102(ResType) ImageSparseSampleImplicitLod 3201 3202 + 3204: 7(f16vec4) CompositeExtract 3203 1 + Store 3099(texel) 3204 + 3205: 47(int) CompositeExtract 3203 0 + 3206: 357 Load 359(s2DRect) + 3207:154(f16vec2) Load 156(f16c2) + 3208:3102(ResType) ImageSparseSampleImplicitLod 3206 3207 + 3209: 7(f16vec4) CompositeExtract 3208 1 + Store 3099(texel) 3209 + 3210: 47(int) CompositeExtract 3208 0 + 3211: 371 Load 373(s2DRectShadow) + 3212: 167(fvec3) Load 169(c3) + 3213: 208(ptr) AccessChain 3099(texel) 207 + 3214: 52(float) CompositeExtract 3212 2 + 3215:3138(ResType) ImageSparseSampleDrefImplicitLod 3211 3212 3214 + 3216:6(float16_t) CompositeExtract 3215 1 + Store 3213 3216 + 3217: 47(int) CompositeExtract 3215 0 + 3218: 371 Load 373(s2DRectShadow) + 3219:154(f16vec2) Load 156(f16c2) + 3220: 52(float) Load 215(compare) + 3221: 208(ptr) AccessChain 3099(texel) 207 + 3222:3138(ResType) ImageSparseSampleDrefImplicitLod 3218 3219 3220 + 3223:6(float16_t) CompositeExtract 3222 1 + Store 3221 3223 + 3224: 47(int) CompositeExtract 3222 0 + 3225: 391 Load 393(sCubeArrayShadow) + 3226: 249(fvec4) Load 251(c4) + 3227: 52(float) Load 215(compare) + 3228: 208(ptr) AccessChain 3099(texel) 207 + 3229:3138(ResType) ImageSparseSampleDrefImplicitLod 3225 3226 3227 + 3230:6(float16_t) CompositeExtract 3229 1 + Store 3228 3230 + 3231: 47(int) CompositeExtract 3229 0 + 3232: 391 Load 393(sCubeArrayShadow) + 3233: 7(f16vec4) Load 309(f16c4) + 3234: 52(float) Load 215(compare) + 3235: 208(ptr) AccessChain 3099(texel) 207 + 3236:3138(ResType) ImageSparseSampleDrefImplicitLod 3232 3233 3234 + 3237:6(float16_t) CompositeExtract 3236 1 + Store 3235 3237 + 3238: 47(int) CompositeExtract 3236 0 + 3239: 7(f16vec4) Load 3099(texel) + ReturnValue 3239 + FunctionEnd +71(testSparseTextureLod(): 7(f16vec4) Function None 8 + 72: Label + 3242(texel): 64(ptr) Variable Function + Store 3242(texel) 121 + 3243: 143 Load 145(s2D) + 3244: 53(fvec2) Load 148(c2) + 3245: 52(float) Load 565(lod) + 3246:3102(ResType) ImageSparseSampleExplicitLod 3243 3244 Lod 3245 + 3247: 7(f16vec4) CompositeExtract 3246 1 + Store 3242(texel) 3247 + 3248: 47(int) CompositeExtract 3246 0 + 3249: 143 Load 145(s2D) + 3250:154(f16vec2) Load 156(f16c2) + 3251:6(float16_t) Load 572(f16lod) + 3252:3102(ResType) ImageSparseSampleExplicitLod 3249 3250 Lod 3251 + 3253: 7(f16vec4) CompositeExtract 3252 1 + Store 3242(texel) 3253 + 3254: 47(int) CompositeExtract 3252 0 + 3255: 163 Load 165(s3D) + 3256: 167(fvec3) Load 169(c3) + 3257: 52(float) Load 565(lod) + 3258:3102(ResType) ImageSparseSampleExplicitLod 3255 3256 Lod 3257 + 3259: 7(f16vec4) CompositeExtract 3258 1 + Store 3242(texel) 3259 + 3260: 47(int) CompositeExtract 3258 0 + 3261: 163 Load 165(s3D) + 3262:175(f16vec3) Load 177(f16c3) + 3263:6(float16_t) Load 572(f16lod) + 3264:3102(ResType) ImageSparseSampleExplicitLod 3261 3262 Lod 3263 + 3265: 7(f16vec4) CompositeExtract 3264 1 + Store 3242(texel) 3265 + 3266: 47(int) CompositeExtract 3264 0 + 3267: 184 Load 186(sCube) + 3268: 167(fvec3) Load 169(c3) + 3269: 52(float) Load 565(lod) + 3270:3102(ResType) ImageSparseSampleExplicitLod 3267 3268 Lod 3269 + 3271: 7(f16vec4) CompositeExtract 3270 1 + Store 3242(texel) 3271 + 3272: 47(int) CompositeExtract 3270 0 + 3273: 184 Load 186(sCube) + 3274:175(f16vec3) Load 177(f16c3) + 3275:6(float16_t) Load 572(f16lod) + 3276:3102(ResType) ImageSparseSampleExplicitLod 3273 3274 Lod 3275 + 3277: 7(f16vec4) CompositeExtract 3276 1 + Store 3242(texel) 3277 + 3278: 47(int) CompositeExtract 3276 0 + 3279: 224 Load 226(s2DShadow) + 3280: 167(fvec3) Load 169(c3) + 3281: 52(float) Load 565(lod) + 3282: 208(ptr) AccessChain 3242(texel) 207 + 3283: 52(float) CompositeExtract 3280 2 + 3284:3138(ResType) ImageSparseSampleDrefExplicitLod 3279 3280 3283 Lod 3281 + 3285:6(float16_t) CompositeExtract 3284 1 + Store 3282 3285 + 3286: 47(int) CompositeExtract 3284 0 + 3287: 224 Load 226(s2DShadow) + 3288:154(f16vec2) Load 156(f16c2) + 3289: 52(float) Load 215(compare) + 3290:6(float16_t) Load 572(f16lod) + 3291: 208(ptr) AccessChain 3242(texel) 207 + 3292:3138(ResType) ImageSparseSampleDrefExplicitLod 3287 3288 3289 Lod 3290 + 3293:6(float16_t) CompositeExtract 3292 1 + Store 3291 3293 + 3294: 47(int) CompositeExtract 3292 0 + 3295: 284 Load 286(s2DArray) + 3296: 167(fvec3) Load 169(c3) + 3297: 52(float) Load 565(lod) + 3298:3102(ResType) ImageSparseSampleExplicitLod 3295 3296 Lod 3297 + 3299: 7(f16vec4) CompositeExtract 3298 1 + Store 3242(texel) 3299 + 3300: 47(int) CompositeExtract 3298 0 + 3301: 284 Load 286(s2DArray) + 3302:175(f16vec3) Load 177(f16c3) + 3303:6(float16_t) Load 572(f16lod) + 3304:3102(ResType) ImageSparseSampleExplicitLod 3301 3302 Lod 3303 + 3305: 7(f16vec4) CompositeExtract 3304 1 + Store 3242(texel) 3305 + 3306: 47(int) CompositeExtract 3304 0 + 3307: 299 Load 301(sCubeArray) + 3308: 249(fvec4) Load 251(c4) + 3309: 52(float) Load 565(lod) + 3310:3102(ResType) ImageSparseSampleExplicitLod 3307 3308 Lod 3309 + 3311: 7(f16vec4) CompositeExtract 3310 1 + Store 3242(texel) 3311 + 3312: 47(int) CompositeExtract 3310 0 + 3313: 299 Load 301(sCubeArray) + 3314: 7(f16vec4) Load 309(f16c4) + 3315:6(float16_t) Load 572(f16lod) + 3316:3102(ResType) ImageSparseSampleExplicitLod 3313 3314 Lod 3315 + 3317: 7(f16vec4) CompositeExtract 3316 1 + Store 3242(texel) 3317 + 3318: 47(int) CompositeExtract 3316 0 + 3319: 7(f16vec4) Load 3242(texel) + ReturnValue 3319 + FunctionEnd +73(testSparseTextureOffset(): 7(f16vec4) Function None 8 + 74: Label + 3322(texel): 64(ptr) Variable Function + Store 3322(texel) 121 + 3323: 143 Load 145(s2D) + 3324: 53(fvec2) Load 148(c2) + 3325:3102(ResType) ImageSparseSampleImplicitLod 3323 3324 ConstOffset 722 + 3326: 7(f16vec4) CompositeExtract 3325 1 + Store 3322(texel) 3326 + 3327: 47(int) CompositeExtract 3325 0 + 3328: 143 Load 145(s2D) + 3329:154(f16vec2) Load 156(f16c2) + 3330:6(float16_t) Load 137(f16bias) + 3331:3102(ResType) ImageSparseSampleImplicitLod 3328 3329 Bias ConstOffset 3330 722 + 3332: 7(f16vec4) CompositeExtract 3331 1 + Store 3322(texel) 3332 + 3333: 47(int) CompositeExtract 3331 0 + 3334: 163 Load 165(s3D) + 3335: 167(fvec3) Load 169(c3) + 3336:3102(ResType) ImageSparseSampleImplicitLod 3334 3335 ConstOffset 735 + 3337: 7(f16vec4) CompositeExtract 3336 1 + Store 3322(texel) 3337 + 3338: 47(int) CompositeExtract 3336 0 + 3339: 163 Load 165(s3D) + 3340:175(f16vec3) Load 177(f16c3) + 3341:6(float16_t) Load 137(f16bias) + 3342:3102(ResType) ImageSparseSampleImplicitLod 3339 3340 Bias ConstOffset 3341 735 + 3343: 7(f16vec4) CompositeExtract 3342 1 + Store 3322(texel) 3343 + 3344: 47(int) CompositeExtract 3342 0 + 3345: 357 Load 359(s2DRect) + 3346: 53(fvec2) Load 148(c2) + 3347:3102(ResType) ImageSparseSampleImplicitLod 3345 3346 ConstOffset 722 + 3348: 7(f16vec4) CompositeExtract 3347 1 + Store 3322(texel) 3348 + 3349: 47(int) CompositeExtract 3347 0 + 3350: 357 Load 359(s2DRect) + 3351:154(f16vec2) Load 156(f16c2) + 3352:3102(ResType) ImageSparseSampleImplicitLod 3350 3351 ConstOffset 722 + 3353: 7(f16vec4) CompositeExtract 3352 1 + Store 3322(texel) 3353 + 3354: 47(int) CompositeExtract 3352 0 + 3355: 371 Load 373(s2DRectShadow) + 3356: 167(fvec3) Load 169(c3) + 3357: 208(ptr) AccessChain 3322(texel) 207 + 3358: 52(float) CompositeExtract 3356 2 + 3359:3138(ResType) ImageSparseSampleDrefImplicitLod 3355 3356 3358 ConstOffset 722 + 3360:6(float16_t) CompositeExtract 3359 1 + Store 3357 3360 + 3361: 47(int) CompositeExtract 3359 0 + 3362: 371 Load 373(s2DRectShadow) + 3363:154(f16vec2) Load 156(f16c2) + 3364: 52(float) Load 215(compare) + 3365: 208(ptr) AccessChain 3322(texel) 207 + 3366:3138(ResType) ImageSparseSampleDrefImplicitLod 3362 3363 3364 ConstOffset 722 + 3367:6(float16_t) CompositeExtract 3366 1 + Store 3365 3367 + 3368: 47(int) CompositeExtract 3366 0 + 3369: 224 Load 226(s2DShadow) + 3370: 167(fvec3) Load 169(c3) + 3371: 208(ptr) AccessChain 3322(texel) 207 + 3372: 52(float) CompositeExtract 3370 2 + 3373:3138(ResType) ImageSparseSampleDrefImplicitLod 3369 3370 3372 ConstOffset 722 + 3374:6(float16_t) CompositeExtract 3373 1 + Store 3371 3374 + 3375: 47(int) CompositeExtract 3373 0 + 3376: 224 Load 226(s2DShadow) + 3377:154(f16vec2) Load 156(f16c2) + 3378: 52(float) Load 215(compare) + 3379: 208(ptr) AccessChain 3322(texel) 207 + 3380:6(float16_t) Load 137(f16bias) + 3381:3138(ResType) ImageSparseSampleDrefImplicitLod 3376 3377 3378 Bias ConstOffset 3380 722 + 3382:6(float16_t) CompositeExtract 3381 1 + Store 3379 3382 + 3383: 47(int) CompositeExtract 3381 0 + 3384: 284 Load 286(s2DArray) + 3385: 167(fvec3) Load 169(c3) + 3386:3102(ResType) ImageSparseSampleImplicitLod 3384 3385 ConstOffset 722 + 3387: 7(f16vec4) CompositeExtract 3386 1 + Store 3322(texel) 3387 + 3388: 47(int) CompositeExtract 3386 0 + 3389: 284 Load 286(s2DArray) + 3390:175(f16vec3) Load 177(f16c3) + 3391:6(float16_t) Load 137(f16bias) + 3392:3102(ResType) ImageSparseSampleImplicitLod 3389 3390 Bias ConstOffset 3391 722 + 3393: 7(f16vec4) CompositeExtract 3392 1 + Store 3322(texel) 3393 + 3394: 47(int) CompositeExtract 3392 0 + 3395: 337 Load 339(s2DArrayShadow) + 3396: 249(fvec4) Load 251(c4) + 3397: 208(ptr) AccessChain 3322(texel) 207 + 3398: 52(float) CompositeExtract 3396 3 + 3399:3138(ResType) ImageSparseSampleDrefImplicitLod 3395 3396 3398 ConstOffset 722 + 3400:6(float16_t) CompositeExtract 3399 1 + Store 3397 3400 + 3401: 47(int) CompositeExtract 3399 0 + 3402: 337 Load 339(s2DArrayShadow) + 3403:175(f16vec3) Load 177(f16c3) + 3404: 52(float) Load 215(compare) + 3405: 208(ptr) AccessChain 3322(texel) 207 + 3406:3138(ResType) ImageSparseSampleDrefImplicitLod 3402 3403 3404 ConstOffset 722 + 3407:6(float16_t) CompositeExtract 3406 1 + Store 3405 3407 + 3408: 47(int) CompositeExtract 3406 0 + 3409: 7(f16vec4) Load 3322(texel) + ReturnValue 3409 + FunctionEnd +75(testSparseTextureLodOffset(): 7(f16vec4) Function None 8 + 76: Label + 3412(texel): 64(ptr) Variable Function + Store 3412(texel) 121 + 3413: 143 Load 145(s2D) + 3414: 53(fvec2) Load 148(c2) + 3415: 52(float) Load 565(lod) + 3416:3102(ResType) ImageSparseSampleExplicitLod 3413 3414 Lod ConstOffset 3415 722 + 3417: 7(f16vec4) CompositeExtract 3416 1 + Store 3412(texel) 3417 + 3418: 47(int) CompositeExtract 3416 0 + 3419: 143 Load 145(s2D) + 3420:154(f16vec2) Load 156(f16c2) + 3421:6(float16_t) Load 572(f16lod) + 3422:3102(ResType) ImageSparseSampleExplicitLod 3419 3420 Lod ConstOffset 3421 722 + 3423: 7(f16vec4) CompositeExtract 3422 1 + Store 3412(texel) 3423 + 3424: 47(int) CompositeExtract 3422 0 + 3425: 163 Load 165(s3D) + 3426: 167(fvec3) Load 169(c3) + 3427: 52(float) Load 565(lod) + 3428:3102(ResType) ImageSparseSampleExplicitLod 3425 3426 Lod ConstOffset 3427 735 + 3429: 7(f16vec4) CompositeExtract 3428 1 + Store 3412(texel) 3429 + 3430: 47(int) CompositeExtract 3428 0 + 3431: 163 Load 165(s3D) + 3432:175(f16vec3) Load 177(f16c3) + 3433:6(float16_t) Load 572(f16lod) + 3434:3102(ResType) ImageSparseSampleExplicitLod 3431 3432 Lod ConstOffset 3433 735 + 3435: 7(f16vec4) CompositeExtract 3434 1 + Store 3412(texel) 3435 + 3436: 47(int) CompositeExtract 3434 0 + 3437: 224 Load 226(s2DShadow) + 3438: 167(fvec3) Load 169(c3) + 3439: 52(float) Load 565(lod) + 3440: 208(ptr) AccessChain 3412(texel) 207 + 3441: 52(float) CompositeExtract 3438 2 + 3442:3138(ResType) ImageSparseSampleDrefExplicitLod 3437 3438 3441 Lod ConstOffset 3439 722 + 3443:6(float16_t) CompositeExtract 3442 1 + Store 3440 3443 + 3444: 47(int) CompositeExtract 3442 0 + 3445: 224 Load 226(s2DShadow) + 3446:154(f16vec2) Load 156(f16c2) + 3447: 52(float) Load 215(compare) + 3448:6(float16_t) Load 572(f16lod) + 3449: 208(ptr) AccessChain 3412(texel) 207 + 3450:3138(ResType) ImageSparseSampleDrefExplicitLod 3445 3446 3447 Lod ConstOffset 3448 722 + 3451:6(float16_t) CompositeExtract 3450 1 + Store 3449 3451 + 3452: 47(int) CompositeExtract 3450 0 + 3453: 284 Load 286(s2DArray) + 3454: 167(fvec3) Load 169(c3) + 3455: 52(float) Load 565(lod) + 3456:3102(ResType) ImageSparseSampleExplicitLod 3453 3454 Lod ConstOffset 3455 722 + 3457: 7(f16vec4) CompositeExtract 3456 1 + Store 3412(texel) 3457 + 3458: 47(int) CompositeExtract 3456 0 + 3459: 284 Load 286(s2DArray) + 3460:175(f16vec3) Load 177(f16c3) + 3461:6(float16_t) Load 572(f16lod) + 3462:3102(ResType) ImageSparseSampleExplicitLod 3459 3460 Lod ConstOffset 3461 722 + 3463: 7(f16vec4) CompositeExtract 3462 1 + Store 3412(texel) 3463 + 3464: 47(int) CompositeExtract 3462 0 + 3465: 7(f16vec4) Load 3412(texel) + ReturnValue 3465 + FunctionEnd +77(testSparseTextureGrad(): 7(f16vec4) Function None 8 + 78: Label + 3468(texel): 64(ptr) Variable Function + Store 3468(texel) 121 + 3469: 143 Load 145(s2D) + 3470: 53(fvec2) Load 148(c2) + 3471: 53(fvec2) Load 1409(dPdxy2) + 3472: 53(fvec2) Load 1409(dPdxy2) + 3473:3102(ResType) ImageSparseSampleExplicitLod 3469 3470 Grad 3471 3472 + 3474: 7(f16vec4) CompositeExtract 3473 1 + Store 3468(texel) 3474 + 3475: 47(int) CompositeExtract 3473 0 + 3476: 143 Load 145(s2D) + 3477:154(f16vec2) Load 156(f16c2) + 3478:154(f16vec2) Load 1417(f16dPdxy2) + 3479:154(f16vec2) Load 1417(f16dPdxy2) + 3480:3102(ResType) ImageSparseSampleExplicitLod 3476 3477 Grad 3478 3479 + 3481: 7(f16vec4) CompositeExtract 3480 1 + Store 3468(texel) 3481 + 3482: 47(int) CompositeExtract 3480 0 + 3483: 163 Load 165(s3D) + 3484: 167(fvec3) Load 169(c3) + 3485: 167(fvec3) Load 1425(dPdxy3) + 3486: 167(fvec3) Load 1425(dPdxy3) + 3487:3102(ResType) ImageSparseSampleExplicitLod 3483 3484 Grad 3485 3486 + 3488: 7(f16vec4) CompositeExtract 3487 1 + Store 3468(texel) 3488 + 3489: 47(int) CompositeExtract 3487 0 + 3490: 163 Load 165(s3D) + 3491:175(f16vec3) Load 177(f16c3) + 3492:175(f16vec3) Load 1433(f16dPdxy3) + 3493:175(f16vec3) Load 1433(f16dPdxy3) + 3494:3102(ResType) ImageSparseSampleExplicitLod 3490 3491 Grad 3492 3493 + 3495: 7(f16vec4) CompositeExtract 3494 1 + Store 3468(texel) 3495 + 3496: 47(int) CompositeExtract 3494 0 + 3497: 184 Load 186(sCube) + 3498: 167(fvec3) Load 169(c3) + 3499: 167(fvec3) Load 1425(dPdxy3) + 3500: 167(fvec3) Load 1425(dPdxy3) + 3501:3102(ResType) ImageSparseSampleExplicitLod 3497 3498 Grad 3499 3500 + 3502: 7(f16vec4) CompositeExtract 3501 1 + Store 3468(texel) 3502 + 3503: 47(int) CompositeExtract 3501 0 + 3504: 184 Load 186(sCube) + 3505:175(f16vec3) Load 177(f16c3) + 3506:175(f16vec3) Load 1433(f16dPdxy3) + 3507:175(f16vec3) Load 1433(f16dPdxy3) + 3508:3102(ResType) ImageSparseSampleExplicitLod 3504 3505 Grad 3506 3507 + 3509: 7(f16vec4) CompositeExtract 3508 1 + Store 3468(texel) 3509 + 3510: 47(int) CompositeExtract 3508 0 + 3511: 357 Load 359(s2DRect) + 3512: 53(fvec2) Load 148(c2) + 3513: 53(fvec2) Load 1409(dPdxy2) + 3514: 53(fvec2) Load 1409(dPdxy2) + 3515:3102(ResType) ImageSparseSampleExplicitLod 3511 3512 Grad 3513 3514 + 3516: 7(f16vec4) CompositeExtract 3515 1 + Store 3468(texel) 3516 + 3517: 47(int) CompositeExtract 3515 0 + 3518: 357 Load 359(s2DRect) + 3519:154(f16vec2) Load 156(f16c2) + 3520:154(f16vec2) Load 1417(f16dPdxy2) + 3521:154(f16vec2) Load 1417(f16dPdxy2) + 3522:3102(ResType) ImageSparseSampleExplicitLod 3518 3519 Grad 3520 3521 + 3523: 7(f16vec4) CompositeExtract 3522 1 + Store 3468(texel) 3523 + 3524: 47(int) CompositeExtract 3522 0 + 3525: 371 Load 373(s2DRectShadow) + 3526: 167(fvec3) Load 169(c3) + 3527: 53(fvec2) Load 1409(dPdxy2) + 3528: 53(fvec2) Load 1409(dPdxy2) + 3529: 208(ptr) AccessChain 3468(texel) 207 + 3530: 52(float) CompositeExtract 3526 2 + 3531:3138(ResType) ImageSparseSampleDrefExplicitLod 3525 3526 3530 Grad 3527 3528 + 3532:6(float16_t) CompositeExtract 3531 1 + Store 3529 3532 + 3533: 47(int) CompositeExtract 3531 0 + 3534: 371 Load 373(s2DRectShadow) + 3535:154(f16vec2) Load 156(f16c2) + 3536: 52(float) Load 215(compare) + 3537:154(f16vec2) Load 1417(f16dPdxy2) + 3538:154(f16vec2) Load 1417(f16dPdxy2) + 3539: 208(ptr) AccessChain 3468(texel) 207 + 3540:3138(ResType) ImageSparseSampleDrefExplicitLod 3534 3535 3536 Grad 3537 3538 + 3541:6(float16_t) CompositeExtract 3540 1 + Store 3539 3541 + 3542: 47(int) CompositeExtract 3540 0 + 3543: 224 Load 226(s2DShadow) + 3544: 167(fvec3) Load 169(c3) + 3545: 53(fvec2) Load 1409(dPdxy2) + 3546: 53(fvec2) Load 1409(dPdxy2) + 3547: 208(ptr) AccessChain 3468(texel) 207 + 3548: 52(float) CompositeExtract 3544 2 + 3549:3138(ResType) ImageSparseSampleDrefExplicitLod 3543 3544 3548 Grad 3545 3546 + 3550:6(float16_t) CompositeExtract 3549 1 + Store 3547 3550 + 3551: 47(int) CompositeExtract 3549 0 + 3552: 224 Load 226(s2DShadow) + 3553:154(f16vec2) Load 156(f16c2) + 3554: 52(float) Load 215(compare) + 3555:154(f16vec2) Load 1417(f16dPdxy2) + 3556:154(f16vec2) Load 1417(f16dPdxy2) + 3557: 208(ptr) AccessChain 3468(texel) 207 + 3558:3138(ResType) ImageSparseSampleDrefExplicitLod 3552 3553 3554 Grad 3555 3556 + 3559:6(float16_t) CompositeExtract 3558 1 + Store 3557 3559 + 3560: 47(int) CompositeExtract 3558 0 + 3561: 245 Load 247(sCubeShadow) + 3562: 249(fvec4) Load 251(c4) + 3563: 167(fvec3) Load 1425(dPdxy3) + 3564: 167(fvec3) Load 1425(dPdxy3) + 3565: 208(ptr) AccessChain 3468(texel) 207 + 3566: 52(float) CompositeExtract 3562 3 + 3567:3138(ResType) ImageSparseSampleDrefExplicitLod 3561 3562 3566 Grad 3563 3564 + 3568:6(float16_t) CompositeExtract 3567 1 + Store 3565 3568 + 3569: 47(int) CompositeExtract 3567 0 + 3570: 245 Load 247(sCubeShadow) + 3571:175(f16vec3) Load 177(f16c3) + 3572: 52(float) Load 215(compare) + 3573:175(f16vec3) Load 1433(f16dPdxy3) + 3574:175(f16vec3) Load 1433(f16dPdxy3) + 3575: 208(ptr) AccessChain 3468(texel) 207 + 3576:3138(ResType) ImageSparseSampleDrefExplicitLod 3570 3571 3572 Grad 3573 3574 + 3577:6(float16_t) CompositeExtract 3576 1 + Store 3575 3577 + 3578: 47(int) CompositeExtract 3576 0 + 3579: 284 Load 286(s2DArray) + 3580: 167(fvec3) Load 169(c3) + 3581: 53(fvec2) Load 1409(dPdxy2) + 3582: 53(fvec2) Load 1409(dPdxy2) + 3583:3102(ResType) ImageSparseSampleExplicitLod 3579 3580 Grad 3581 3582 + 3584: 7(f16vec4) CompositeExtract 3583 1 + Store 3468(texel) 3584 + 3585: 47(int) CompositeExtract 3583 0 + 3586: 284 Load 286(s2DArray) + 3587:175(f16vec3) Load 177(f16c3) + 3588:154(f16vec2) Load 1417(f16dPdxy2) + 3589:154(f16vec2) Load 1417(f16dPdxy2) + 3590:3102(ResType) ImageSparseSampleExplicitLod 3586 3587 Grad 3588 3589 + 3591: 7(f16vec4) CompositeExtract 3590 1 + Store 3468(texel) 3591 + 3592: 47(int) CompositeExtract 3590 0 + 3593: 337 Load 339(s2DArrayShadow) + 3594: 249(fvec4) Load 251(c4) + 3595: 53(fvec2) Load 1409(dPdxy2) + 3596: 53(fvec2) Load 1409(dPdxy2) + 3597: 208(ptr) AccessChain 3468(texel) 207 + 3598: 52(float) CompositeExtract 3594 3 + 3599:3138(ResType) ImageSparseSampleDrefExplicitLod 3593 3594 3598 Grad 3595 3596 + 3600:6(float16_t) CompositeExtract 3599 1 + Store 3597 3600 + 3601: 47(int) CompositeExtract 3599 0 + 3602: 337 Load 339(s2DArrayShadow) + 3603:175(f16vec3) Load 177(f16c3) + 3604: 52(float) Load 215(compare) + 3605:154(f16vec2) Load 1417(f16dPdxy2) + 3606:154(f16vec2) Load 1417(f16dPdxy2) + 3607: 208(ptr) AccessChain 3468(texel) 207 + 3608:3138(ResType) ImageSparseSampleDrefExplicitLod 3602 3603 3604 Grad 3605 3606 + 3609:6(float16_t) CompositeExtract 3608 1 + Store 3607 3609 + 3610: 47(int) CompositeExtract 3608 0 + 3611: 299 Load 301(sCubeArray) + 3612: 249(fvec4) Load 251(c4) + 3613: 167(fvec3) Load 1425(dPdxy3) + 3614: 167(fvec3) Load 1425(dPdxy3) + 3615:3102(ResType) ImageSparseSampleExplicitLod 3611 3612 Grad 3613 3614 + 3616: 7(f16vec4) CompositeExtract 3615 1 + Store 3468(texel) 3616 + 3617: 47(int) CompositeExtract 3615 0 + 3618: 299 Load 301(sCubeArray) + 3619: 7(f16vec4) Load 309(f16c4) + 3620:175(f16vec3) Load 1433(f16dPdxy3) + 3621:175(f16vec3) Load 1433(f16dPdxy3) + 3622:3102(ResType) ImageSparseSampleExplicitLod 3618 3619 Grad 3620 3621 + 3623: 7(f16vec4) CompositeExtract 3622 1 + Store 3468(texel) 3623 + 3624: 47(int) CompositeExtract 3622 0 + 3625: 7(f16vec4) Load 3468(texel) + ReturnValue 3625 + FunctionEnd +79(testSparseTextureGradOffset(): 7(f16vec4) Function None 8 + 80: Label + 3628(texel): 64(ptr) Variable Function + Store 3628(texel) 121 + 3629: 143 Load 145(s2D) + 3630: 53(fvec2) Load 148(c2) + 3631: 53(fvec2) Load 1409(dPdxy2) + 3632: 53(fvec2) Load 1409(dPdxy2) + 3633:3102(ResType) ImageSparseSampleExplicitLod 3629 3630 Grad ConstOffset 3631 3632 722 + 3634: 7(f16vec4) CompositeExtract 3633 1 + Store 3628(texel) 3634 + 3635: 47(int) CompositeExtract 3633 0 + 3636: 143 Load 145(s2D) + 3637:154(f16vec2) Load 156(f16c2) + 3638:154(f16vec2) Load 1417(f16dPdxy2) + 3639:154(f16vec2) Load 1417(f16dPdxy2) + 3640:3102(ResType) ImageSparseSampleExplicitLod 3636 3637 Grad ConstOffset 3638 3639 722 + 3641: 7(f16vec4) CompositeExtract 3640 1 + Store 3628(texel) 3641 + 3642: 47(int) CompositeExtract 3640 0 + 3643: 163 Load 165(s3D) + 3644: 167(fvec3) Load 169(c3) + 3645: 167(fvec3) Load 1425(dPdxy3) + 3646: 167(fvec3) Load 1425(dPdxy3) + 3647:3102(ResType) ImageSparseSampleExplicitLod 3643 3644 Grad ConstOffset 3645 3646 735 + 3648: 7(f16vec4) CompositeExtract 3647 1 + Store 3628(texel) 3648 + 3649: 47(int) CompositeExtract 3647 0 + 3650: 163 Load 165(s3D) + 3651:175(f16vec3) Load 177(f16c3) + 3652:175(f16vec3) Load 1433(f16dPdxy3) + 3653:175(f16vec3) Load 1433(f16dPdxy3) + 3654:3102(ResType) ImageSparseSampleExplicitLod 3650 3651 Grad ConstOffset 3652 3653 735 + 3655: 7(f16vec4) CompositeExtract 3654 1 + Store 3628(texel) 3655 + 3656: 47(int) CompositeExtract 3654 0 + 3657: 357 Load 359(s2DRect) + 3658: 53(fvec2) Load 148(c2) + 3659: 53(fvec2) Load 1409(dPdxy2) + 3660: 53(fvec2) Load 1409(dPdxy2) + 3661:3102(ResType) ImageSparseSampleExplicitLod 3657 3658 Grad ConstOffset 3659 3660 722 + 3662: 7(f16vec4) CompositeExtract 3661 1 + Store 3628(texel) 3662 + 3663: 47(int) CompositeExtract 3661 0 + 3664: 357 Load 359(s2DRect) + 3665:154(f16vec2) Load 156(f16c2) + 3666:154(f16vec2) Load 1417(f16dPdxy2) + 3667:154(f16vec2) Load 1417(f16dPdxy2) + 3668:3102(ResType) ImageSparseSampleExplicitLod 3664 3665 Grad ConstOffset 3666 3667 722 + 3669: 7(f16vec4) CompositeExtract 3668 1 + Store 3628(texel) 3669 + 3670: 47(int) CompositeExtract 3668 0 + 3671: 371 Load 373(s2DRectShadow) + 3672: 167(fvec3) Load 169(c3) + 3673: 53(fvec2) Load 1409(dPdxy2) + 3674: 53(fvec2) Load 1409(dPdxy2) + 3675: 208(ptr) AccessChain 3628(texel) 207 + 3676: 52(float) CompositeExtract 3672 2 + 3677:3138(ResType) ImageSparseSampleDrefExplicitLod 3671 3672 3676 Grad ConstOffset 3673 3674 722 + 3678:6(float16_t) CompositeExtract 3677 1 + Store 3675 3678 + 3679: 47(int) CompositeExtract 3677 0 + 3680: 371 Load 373(s2DRectShadow) + 3681:154(f16vec2) Load 156(f16c2) + 3682: 52(float) Load 215(compare) + 3683:154(f16vec2) Load 1417(f16dPdxy2) + 3684:154(f16vec2) Load 1417(f16dPdxy2) + 3685: 208(ptr) AccessChain 3628(texel) 207 + 3686:3138(ResType) ImageSparseSampleDrefExplicitLod 3680 3681 3682 Grad ConstOffset 3683 3684 722 + 3687:6(float16_t) CompositeExtract 3686 1 + Store 3685 3687 + 3688: 47(int) CompositeExtract 3686 0 + 3689: 224 Load 226(s2DShadow) + 3690: 167(fvec3) Load 169(c3) + 3691: 53(fvec2) Load 1409(dPdxy2) + 3692: 53(fvec2) Load 1409(dPdxy2) + 3693: 208(ptr) AccessChain 3628(texel) 207 + 3694: 52(float) CompositeExtract 3690 2 + 3695:3138(ResType) ImageSparseSampleDrefExplicitLod 3689 3690 3694 Grad ConstOffset 3691 3692 722 + 3696:6(float16_t) CompositeExtract 3695 1 + Store 3693 3696 + 3697: 47(int) CompositeExtract 3695 0 + 3698: 224 Load 226(s2DShadow) + 3699:154(f16vec2) Load 156(f16c2) + 3700: 52(float) Load 215(compare) + 3701:154(f16vec2) Load 1417(f16dPdxy2) + 3702:154(f16vec2) Load 1417(f16dPdxy2) + 3703: 208(ptr) AccessChain 3628(texel) 207 + 3704:3138(ResType) ImageSparseSampleDrefExplicitLod 3698 3699 3700 Grad ConstOffset 3701 3702 722 + 3705:6(float16_t) CompositeExtract 3704 1 + Store 3703 3705 + 3706: 47(int) CompositeExtract 3704 0 + 3707: 284 Load 286(s2DArray) + 3708: 167(fvec3) Load 169(c3) + 3709: 53(fvec2) Load 1409(dPdxy2) + 3710: 53(fvec2) Load 1409(dPdxy2) + 3711:3102(ResType) ImageSparseSampleExplicitLod 3707 3708 Grad ConstOffset 3709 3710 722 + 3712: 7(f16vec4) CompositeExtract 3711 1 + Store 3628(texel) 3712 + 3713: 47(int) CompositeExtract 3711 0 + 3714: 284 Load 286(s2DArray) + 3715:175(f16vec3) Load 177(f16c3) + 3716:154(f16vec2) Load 1417(f16dPdxy2) + 3717:154(f16vec2) Load 1417(f16dPdxy2) + 3718:3102(ResType) ImageSparseSampleExplicitLod 3714 3715 Grad ConstOffset 3716 3717 722 + 3719: 7(f16vec4) CompositeExtract 3718 1 + Store 3628(texel) 3719 + 3720: 47(int) CompositeExtract 3718 0 + 3721: 337 Load 339(s2DArrayShadow) + 3722: 249(fvec4) Load 251(c4) + 3723: 53(fvec2) Load 1409(dPdxy2) + 3724: 53(fvec2) Load 1409(dPdxy2) + 3725: 208(ptr) AccessChain 3628(texel) 207 + 3726: 52(float) CompositeExtract 3722 3 + 3727:3138(ResType) ImageSparseSampleDrefExplicitLod 3721 3722 3726 Grad ConstOffset 3723 3724 722 + 3728:6(float16_t) CompositeExtract 3727 1 + Store 3725 3728 + 3729: 47(int) CompositeExtract 3727 0 + 3730: 337 Load 339(s2DArrayShadow) + 3731:175(f16vec3) Load 177(f16c3) + 3732: 52(float) Load 215(compare) + 3733:154(f16vec2) Load 1417(f16dPdxy2) + 3734:154(f16vec2) Load 1417(f16dPdxy2) + 3735: 208(ptr) AccessChain 3628(texel) 207 + 3736:3138(ResType) ImageSparseSampleDrefExplicitLod 3730 3731 3732 Grad ConstOffset 3733 3734 722 + 3737:6(float16_t) CompositeExtract 3736 1 + Store 3735 3737 + 3738: 47(int) CompositeExtract 3736 0 + 3739: 7(f16vec4) Load 3628(texel) + ReturnValue 3739 + FunctionEnd +81(testSparseTexelFetch(): 7(f16vec4) Function None 8 + 82: Label + 3742(texel): 64(ptr) Variable Function + Store 3742(texel) 121 + 3743: 143 Load 145(s2D) + 3744: 53(fvec2) Load 148(c2) + 3745: 721(ivec2) ConvertFToS 3744 + 3746: 52(float) Load 565(lod) + 3747: 47(int) ConvertFToS 3746 + 3748: 142 Image 3743 + 3749:3102(ResType) ImageSparseFetch 3748 3745 Lod 3747 + 3750: 7(f16vec4) CompositeExtract 3749 1 + Store 3742(texel) 3750 + 3751: 47(int) CompositeExtract 3749 0 + 3752: 163 Load 165(s3D) + 3753: 167(fvec3) Load 169(c3) + 3754: 734(ivec3) ConvertFToS 3753 + 3755: 52(float) Load 565(lod) + 3756: 47(int) ConvertFToS 3755 + 3757: 162 Image 3752 + 3758:3102(ResType) ImageSparseFetch 3757 3754 Lod 3756 + 3759: 7(f16vec4) CompositeExtract 3758 1 + Store 3742(texel) 3759 + 3760: 47(int) CompositeExtract 3758 0 + 3761: 357 Load 359(s2DRect) + 3762: 53(fvec2) Load 148(c2) + 3763: 721(ivec2) ConvertFToS 3762 + 3764: 356 Image 3761 + 3765:3102(ResType) ImageSparseFetch 3764 3763 + 3766: 7(f16vec4) CompositeExtract 3765 1 + Store 3742(texel) 3766 + 3767: 47(int) CompositeExtract 3765 0 + 3768: 284 Load 286(s2DArray) + 3769: 167(fvec3) Load 169(c3) + 3770: 734(ivec3) ConvertFToS 3769 + 3771: 52(float) Load 565(lod) + 3772: 47(int) ConvertFToS 3771 + 3773: 283 Image 3768 + 3774:3102(ResType) ImageSparseFetch 3773 3770 Lod 3772 + 3775: 7(f16vec4) CompositeExtract 3774 1 + Store 3742(texel) 3775 + 3776: 47(int) CompositeExtract 3774 0 + 3777: 1309 Load 1311(s2DMS) + 3778: 53(fvec2) Load 148(c2) + 3779: 721(ivec2) ConvertFToS 3778 + 3780: 1308 Image 3777 + 3781:3102(ResType) ImageSparseFetch 3780 3779 Sample 709 + 3782: 7(f16vec4) CompositeExtract 3781 1 + Store 3742(texel) 3782 + 3783: 47(int) CompositeExtract 3781 0 + 3784: 1320 Load 1322(s2DMSArray) + 3785: 167(fvec3) Load 169(c3) + 3786: 734(ivec3) ConvertFToS 3785 + 3787: 1319 Image 3784 + 3788:3102(ResType) ImageSparseFetch 3787 3786 Sample 1326 + 3789: 7(f16vec4) CompositeExtract 3788 1 + Store 3742(texel) 3789 + 3790: 47(int) CompositeExtract 3788 0 + 3791: 7(f16vec4) Load 3742(texel) + ReturnValue 3791 + FunctionEnd +83(testSparseTexelFetchOffset(): 7(f16vec4) Function None 8 + 84: Label + 3794(texel): 64(ptr) Variable Function + Store 3794(texel) 121 + 3795: 143 Load 145(s2D) + 3796: 53(fvec2) Load 148(c2) + 3797: 721(ivec2) ConvertFToS 3796 + 3798: 52(float) Load 565(lod) + 3799: 47(int) ConvertFToS 3798 + 3800: 142 Image 3795 + 3801:3102(ResType) ImageSparseFetch 3800 3797 Lod ConstOffset 3799 722 + 3802: 7(f16vec4) CompositeExtract 3801 1 + Store 3794(texel) 3802 + 3803: 47(int) CompositeExtract 3801 0 + 3804: 163 Load 165(s3D) + 3805: 167(fvec3) Load 169(c3) + 3806: 734(ivec3) ConvertFToS 3805 + 3807: 52(float) Load 565(lod) + 3808: 47(int) ConvertFToS 3807 + 3809: 162 Image 3804 + 3810:3102(ResType) ImageSparseFetch 3809 3806 Lod ConstOffset 3808 735 + 3811: 7(f16vec4) CompositeExtract 3810 1 + Store 3794(texel) 3811 + 3812: 47(int) CompositeExtract 3810 0 + 3813: 357 Load 359(s2DRect) + 3814: 53(fvec2) Load 148(c2) + 3815: 721(ivec2) ConvertFToS 3814 + 3816: 356 Image 3813 + 3817:3102(ResType) ImageSparseFetch 3816 3815 ConstOffset 722 + 3818: 7(f16vec4) CompositeExtract 3817 1 + Store 3794(texel) 3818 + 3819: 47(int) CompositeExtract 3817 0 + 3820: 284 Load 286(s2DArray) + 3821: 167(fvec3) Load 169(c3) + 3822: 734(ivec3) ConvertFToS 3821 + 3823: 52(float) Load 565(lod) + 3824: 47(int) ConvertFToS 3823 + 3825: 283 Image 3820 + 3826:3102(ResType) ImageSparseFetch 3825 3822 Lod ConstOffset 3824 722 + 3827: 7(f16vec4) CompositeExtract 3826 1 + Store 3794(texel) 3827 + 3828: 47(int) CompositeExtract 3826 0 + 3829: 7(f16vec4) Load 3794(texel) + ReturnValue 3829 + FunctionEnd +85(testSparseTextureGather(): 7(f16vec4) Function None 8 + 86: Label + 3832(texel): 64(ptr) Variable Function + Store 3832(texel) 121 + 3833: 143 Load 145(s2D) + 3834: 53(fvec2) Load 148(c2) + 3835:3102(ResType) ImageSparseGather 3833 3834 2187 + 3836: 7(f16vec4) CompositeExtract 3835 1 + Store 3832(texel) 3836 + 3837: 47(int) CompositeExtract 3835 0 + 3838: 143 Load 145(s2D) + 3839:154(f16vec2) Load 156(f16c2) + 3840:6(float16_t) Load 137(f16bias) + 3841:3102(ResType) ImageSparseGather 3838 3839 2187 Bias 3840 + 3842: 7(f16vec4) CompositeExtract 3841 1 + Store 3832(texel) 3842 + 3843: 47(int) CompositeExtract 3841 0 + 3844: 284 Load 286(s2DArray) + 3845: 167(fvec3) Load 169(c3) + 3846:3102(ResType) ImageSparseGather 3844 3845 2187 + 3847: 7(f16vec4) CompositeExtract 3846 1 + Store 3832(texel) 3847 + 3848: 47(int) CompositeExtract 3846 0 + 3849: 284 Load 286(s2DArray) + 3850:175(f16vec3) Load 177(f16c3) + 3851:6(float16_t) Load 137(f16bias) + 3852:3102(ResType) ImageSparseGather 3849 3850 2187 Bias 3851 + 3853: 7(f16vec4) CompositeExtract 3852 1 + Store 3832(texel) 3853 + 3854: 47(int) CompositeExtract 3852 0 + 3855: 184 Load 186(sCube) + 3856: 167(fvec3) Load 169(c3) + 3857:3102(ResType) ImageSparseGather 3855 3856 2187 + 3858: 7(f16vec4) CompositeExtract 3857 1 + Store 3832(texel) 3858 + 3859: 47(int) CompositeExtract 3857 0 + 3860: 184 Load 186(sCube) + 3861:175(f16vec3) Load 177(f16c3) + 3862:6(float16_t) Load 137(f16bias) + 3863:3102(ResType) ImageSparseGather 3860 3861 2187 Bias 3862 + 3864: 7(f16vec4) CompositeExtract 3863 1 + Store 3832(texel) 3864 + 3865: 47(int) CompositeExtract 3863 0 + 3866: 299 Load 301(sCubeArray) + 3867: 249(fvec4) Load 251(c4) + 3868:3102(ResType) ImageSparseGather 3866 3867 2187 + 3869: 7(f16vec4) CompositeExtract 3868 1 + Store 3832(texel) 3869 + 3870: 47(int) CompositeExtract 3868 0 + 3871: 299 Load 301(sCubeArray) + 3872: 7(f16vec4) Load 309(f16c4) + 3873:6(float16_t) Load 137(f16bias) + 3874:3102(ResType) ImageSparseGather 3871 3872 2187 Bias 3873 + 3875: 7(f16vec4) CompositeExtract 3874 1 + Store 3832(texel) 3875 + 3876: 47(int) CompositeExtract 3874 0 + 3877: 357 Load 359(s2DRect) + 3878: 53(fvec2) Load 148(c2) + 3879:3102(ResType) ImageSparseGather 3877 3878 2187 + 3880: 7(f16vec4) CompositeExtract 3879 1 + Store 3832(texel) 3880 + 3881: 47(int) CompositeExtract 3879 0 + 3882: 357 Load 359(s2DRect) + 3883:154(f16vec2) Load 156(f16c2) + 3884:3102(ResType) ImageSparseGather 3882 3883 2187 + 3885: 7(f16vec4) CompositeExtract 3884 1 + Store 3832(texel) 3885 + 3886: 47(int) CompositeExtract 3884 0 + 3887: 224 Load 226(s2DShadow) + 3888: 53(fvec2) Load 148(c2) + 3889: 52(float) Load 215(compare) + 3890:3102(ResType) ImageSparseDrefGather 3887 3888 3889 + 3891: 7(f16vec4) CompositeExtract 3890 1 + Store 3832(texel) 3891 + 3892: 47(int) CompositeExtract 3890 0 + 3893: 224 Load 226(s2DShadow) + 3894:154(f16vec2) Load 156(f16c2) + 3895: 52(float) Load 215(compare) + 3896:3102(ResType) ImageSparseDrefGather 3893 3894 3895 + 3897: 7(f16vec4) CompositeExtract 3896 1 + Store 3832(texel) 3897 + 3898: 47(int) CompositeExtract 3896 0 + 3899: 337 Load 339(s2DArrayShadow) + 3900: 167(fvec3) Load 169(c3) + 3901: 52(float) Load 215(compare) + 3902:3102(ResType) ImageSparseDrefGather 3899 3900 3901 + 3903: 7(f16vec4) CompositeExtract 3902 1 + Store 3832(texel) 3903 + 3904: 47(int) CompositeExtract 3902 0 + 3905: 337 Load 339(s2DArrayShadow) + 3906:175(f16vec3) Load 177(f16c3) + 3907: 52(float) Load 215(compare) + 3908:3102(ResType) ImageSparseDrefGather 3905 3906 3907 + 3909: 7(f16vec4) CompositeExtract 3908 1 + Store 3832(texel) 3909 + 3910: 47(int) CompositeExtract 3908 0 + 3911: 245 Load 247(sCubeShadow) + 3912: 167(fvec3) Load 169(c3) + 3913: 52(float) Load 215(compare) + 3914:3102(ResType) ImageSparseDrefGather 3911 3912 3913 + 3915: 7(f16vec4) CompositeExtract 3914 1 + Store 3832(texel) 3915 + 3916: 47(int) CompositeExtract 3914 0 + 3917: 245 Load 247(sCubeShadow) + 3918:175(f16vec3) Load 177(f16c3) + 3919: 52(float) Load 215(compare) + 3920:3102(ResType) ImageSparseDrefGather 3917 3918 3919 + 3921: 7(f16vec4) CompositeExtract 3920 1 + Store 3832(texel) 3921 + 3922: 47(int) CompositeExtract 3920 0 + 3923: 391 Load 393(sCubeArrayShadow) + 3924: 249(fvec4) Load 251(c4) + 3925: 52(float) Load 215(compare) + 3926:3102(ResType) ImageSparseDrefGather 3923 3924 3925 + 3927: 7(f16vec4) CompositeExtract 3926 1 + Store 3832(texel) 3927 + 3928: 47(int) CompositeExtract 3926 0 + 3929: 391 Load 393(sCubeArrayShadow) + 3930: 7(f16vec4) Load 309(f16c4) + 3931: 52(float) Load 215(compare) + 3932:3102(ResType) ImageSparseDrefGather 3929 3930 3931 + 3933: 7(f16vec4) CompositeExtract 3932 1 + Store 3832(texel) 3933 + 3934: 47(int) CompositeExtract 3932 0 + 3935: 371 Load 373(s2DRectShadow) + 3936: 53(fvec2) Load 148(c2) + 3937: 52(float) Load 215(compare) + 3938:3102(ResType) ImageSparseDrefGather 3935 3936 3937 + 3939: 7(f16vec4) CompositeExtract 3938 1 + Store 3832(texel) 3939 + 3940: 47(int) CompositeExtract 3938 0 + 3941: 371 Load 373(s2DRectShadow) + 3942:154(f16vec2) Load 156(f16c2) + 3943: 52(float) Load 215(compare) + 3944:3102(ResType) ImageSparseDrefGather 3941 3942 3943 + 3945: 7(f16vec4) CompositeExtract 3944 1 + Store 3832(texel) 3945 + 3946: 47(int) CompositeExtract 3944 0 + 3947: 7(f16vec4) Load 3832(texel) + ReturnValue 3947 + FunctionEnd +87(testSparseTextureGatherOffset(): 7(f16vec4) Function None 8 + 88: Label + 3950(texel): 64(ptr) Variable Function + Store 3950(texel) 121 + 3951: 143 Load 145(s2D) + 3952: 53(fvec2) Load 148(c2) + 3953:3102(ResType) ImageSparseGather 3951 3952 2187 ConstOffset 722 + 3954: 7(f16vec4) CompositeExtract 3953 1 + Store 3950(texel) 3954 + 3955: 47(int) CompositeExtract 3953 0 + 3956: 143 Load 145(s2D) + 3957:154(f16vec2) Load 156(f16c2) + 3958:6(float16_t) Load 137(f16bias) + 3959:3102(ResType) ImageSparseGather 3956 3957 2187 Bias ConstOffset 3958 722 + 3960: 7(f16vec4) CompositeExtract 3959 1 + Store 3950(texel) 3960 + 3961: 47(int) CompositeExtract 3959 0 + 3962: 284 Load 286(s2DArray) + 3963: 167(fvec3) Load 169(c3) + 3964:3102(ResType) ImageSparseGather 3962 3963 2187 ConstOffset 722 + 3965: 7(f16vec4) CompositeExtract 3964 1 + Store 3950(texel) 3965 + 3966: 47(int) CompositeExtract 3964 0 + 3967: 284 Load 286(s2DArray) + 3968:175(f16vec3) Load 177(f16c3) + 3969:6(float16_t) Load 137(f16bias) + 3970:3102(ResType) ImageSparseGather 3967 3968 2187 Bias ConstOffset 3969 722 + 3971: 7(f16vec4) CompositeExtract 3970 1 + Store 3950(texel) 3971 + 3972: 47(int) CompositeExtract 3970 0 + 3973: 357 Load 359(s2DRect) + 3974: 53(fvec2) Load 148(c2) + 3975:3102(ResType) ImageSparseGather 3973 3974 2187 ConstOffset 722 + 3976: 7(f16vec4) CompositeExtract 3975 1 + Store 3950(texel) 3976 + 3977: 47(int) CompositeExtract 3975 0 + 3978: 357 Load 359(s2DRect) + 3979:154(f16vec2) Load 156(f16c2) + 3980:3102(ResType) ImageSparseGather 3978 3979 2187 ConstOffset 722 + 3981: 7(f16vec4) CompositeExtract 3980 1 + Store 3950(texel) 3981 + 3982: 47(int) CompositeExtract 3980 0 + 3983: 224 Load 226(s2DShadow) + 3984: 53(fvec2) Load 148(c2) + 3985: 52(float) Load 215(compare) + 3986:3102(ResType) ImageSparseDrefGather 3983 3984 3985 ConstOffset 722 + 3987: 7(f16vec4) CompositeExtract 3986 1 + Store 3950(texel) 3987 + 3988: 47(int) CompositeExtract 3986 0 + 3989: 224 Load 226(s2DShadow) + 3990:154(f16vec2) Load 156(f16c2) + 3991: 52(float) Load 215(compare) + 3992:3102(ResType) ImageSparseDrefGather 3989 3990 3991 ConstOffset 722 + 3993: 7(f16vec4) CompositeExtract 3992 1 + Store 3950(texel) 3993 + 3994: 47(int) CompositeExtract 3992 0 + 3995: 337 Load 339(s2DArrayShadow) + 3996: 167(fvec3) Load 169(c3) + 3997: 52(float) Load 215(compare) + 3998:3102(ResType) ImageSparseDrefGather 3995 3996 3997 ConstOffset 722 + 3999: 7(f16vec4) CompositeExtract 3998 1 + Store 3950(texel) 3999 + 4000: 47(int) CompositeExtract 3998 0 + 4001: 337 Load 339(s2DArrayShadow) + 4002:175(f16vec3) Load 177(f16c3) + 4003: 52(float) Load 215(compare) + 4004:3102(ResType) ImageSparseDrefGather 4001 4002 4003 ConstOffset 722 + 4005: 7(f16vec4) CompositeExtract 4004 1 + Store 3950(texel) 4005 + 4006: 47(int) CompositeExtract 4004 0 + 4007: 371 Load 373(s2DRectShadow) + 4008: 53(fvec2) Load 148(c2) + 4009: 52(float) Load 215(compare) + 4010:3102(ResType) ImageSparseDrefGather 4007 4008 4009 ConstOffset 722 + 4011: 7(f16vec4) CompositeExtract 4010 1 + Store 3950(texel) 4011 + 4012: 47(int) CompositeExtract 4010 0 + 4013: 371 Load 373(s2DRectShadow) + 4014:154(f16vec2) Load 156(f16c2) + 4015: 52(float) Load 215(compare) + 4016:3102(ResType) ImageSparseDrefGather 4013 4014 4015 ConstOffset 722 + 4017: 7(f16vec4) CompositeExtract 4016 1 + Store 3950(texel) 4017 + 4018: 47(int) CompositeExtract 4016 0 + 4019: 7(f16vec4) Load 3950(texel) + ReturnValue 4019 + FunctionEnd +89(testSparseTextureGatherOffsets(): 7(f16vec4) Function None 8 + 90: Label + 4022(texel): 64(ptr) Variable Function + Store 4022(texel) 121 + 4023: 143 Load 145(s2D) + 4024: 53(fvec2) Load 148(c2) + 4025:3102(ResType) ImageSparseGather 4023 4024 2187 ConstOffsets 2380 + 4026: 7(f16vec4) CompositeExtract 4025 1 + Store 4022(texel) 4026 + 4027: 47(int) CompositeExtract 4025 0 + 4028: 143 Load 145(s2D) + 4029:154(f16vec2) Load 156(f16c2) + 4030:6(float16_t) Load 137(f16bias) + 4031:3102(ResType) ImageSparseGather 4028 4029 2187 Bias ConstOffsets 4030 2380 + 4032: 7(f16vec4) CompositeExtract 4031 1 + Store 4022(texel) 4032 + 4033: 47(int) CompositeExtract 4031 0 + 4034: 284 Load 286(s2DArray) + 4035: 167(fvec3) Load 169(c3) + 4036:3102(ResType) ImageSparseGather 4034 4035 2187 ConstOffsets 2380 + 4037: 7(f16vec4) CompositeExtract 4036 1 + Store 4022(texel) 4037 + 4038: 47(int) CompositeExtract 4036 0 + 4039: 284 Load 286(s2DArray) + 4040:175(f16vec3) Load 177(f16c3) + 4041:6(float16_t) Load 137(f16bias) + 4042:3102(ResType) ImageSparseGather 4039 4040 2187 Bias ConstOffsets 4041 2380 + 4043: 7(f16vec4) CompositeExtract 4042 1 + Store 4022(texel) 4043 + 4044: 47(int) CompositeExtract 4042 0 + 4045: 357 Load 359(s2DRect) + 4046: 53(fvec2) Load 148(c2) + 4047:3102(ResType) ImageSparseGather 4045 4046 2187 ConstOffsets 2380 + 4048: 7(f16vec4) CompositeExtract 4047 1 + Store 4022(texel) 4048 + 4049: 47(int) CompositeExtract 4047 0 + 4050: 357 Load 359(s2DRect) + 4051:154(f16vec2) Load 156(f16c2) + 4052:3102(ResType) ImageSparseGather 4050 4051 2187 ConstOffsets 2380 + 4053: 7(f16vec4) CompositeExtract 4052 1 + Store 4022(texel) 4053 + 4054: 47(int) CompositeExtract 4052 0 + 4055: 224 Load 226(s2DShadow) + 4056: 53(fvec2) Load 148(c2) + 4057: 52(float) Load 215(compare) + 4058:3102(ResType) ImageSparseDrefGather 4055 4056 4057 ConstOffsets 2380 + 4059: 7(f16vec4) CompositeExtract 4058 1 + Store 4022(texel) 4059 + 4060: 47(int) CompositeExtract 4058 0 + 4061: 224 Load 226(s2DShadow) + 4062:154(f16vec2) Load 156(f16c2) + 4063: 52(float) Load 215(compare) + 4064:3102(ResType) ImageSparseDrefGather 4061 4062 4063 ConstOffsets 2380 + 4065: 7(f16vec4) CompositeExtract 4064 1 + Store 4022(texel) 4065 + 4066: 47(int) CompositeExtract 4064 0 + 4067: 337 Load 339(s2DArrayShadow) + 4068: 167(fvec3) Load 169(c3) + 4069: 52(float) Load 215(compare) + 4070:3102(ResType) ImageSparseDrefGather 4067 4068 4069 ConstOffsets 2380 + 4071: 7(f16vec4) CompositeExtract 4070 1 + Store 4022(texel) 4071 + 4072: 47(int) CompositeExtract 4070 0 + 4073: 337 Load 339(s2DArrayShadow) + 4074:175(f16vec3) Load 177(f16c3) + 4075: 52(float) Load 215(compare) + 4076:3102(ResType) ImageSparseDrefGather 4073 4074 4075 ConstOffsets 2380 + 4077: 7(f16vec4) CompositeExtract 4076 1 + Store 4022(texel) 4077 + 4078: 47(int) CompositeExtract 4076 0 + 4079: 371 Load 373(s2DRectShadow) + 4080: 53(fvec2) Load 148(c2) + 4081: 52(float) Load 215(compare) + 4082:3102(ResType) ImageSparseDrefGather 4079 4080 4081 ConstOffsets 2380 + 4083: 7(f16vec4) CompositeExtract 4082 1 + Store 4022(texel) 4083 + 4084: 47(int) CompositeExtract 4082 0 + 4085: 371 Load 373(s2DRectShadow) + 4086:154(f16vec2) Load 156(f16c2) + 4087: 52(float) Load 215(compare) + 4088:3102(ResType) ImageSparseDrefGather 4085 4086 4087 ConstOffsets 2380 + 4089: 7(f16vec4) CompositeExtract 4088 1 + Store 4022(texel) 4089 + 4090: 47(int) CompositeExtract 4088 0 + 4091: 7(f16vec4) Load 4022(texel) + ReturnValue 4091 + FunctionEnd +91(testSparseTextureGatherLod(): 7(f16vec4) Function None 8 + 92: Label + 4094(texel): 64(ptr) Variable Function + Store 4094(texel) 121 + 4095: 143 Load 145(s2D) + 4096: 53(fvec2) Load 148(c2) + 4097: 52(float) Load 565(lod) + 4098:3102(ResType) ImageSparseGather 4095 4096 2187 Lod 4097 + 4099: 7(f16vec4) CompositeExtract 4098 1 + Store 4094(texel) 4099 + 4100: 47(int) CompositeExtract 4098 0 + 4101: 143 Load 145(s2D) + 4102:154(f16vec2) Load 156(f16c2) + 4103:6(float16_t) Load 572(f16lod) + 4104:3102(ResType) ImageSparseGather 4101 4102 2187 Lod 4103 + 4105: 7(f16vec4) CompositeExtract 4104 1 + Store 4094(texel) 4105 + 4106: 47(int) CompositeExtract 4104 0 + 4107: 284 Load 286(s2DArray) + 4108: 167(fvec3) Load 169(c3) + 4109: 52(float) Load 565(lod) + 4110:3102(ResType) ImageSparseGather 4107 4108 2187 Lod 4109 + 4111: 7(f16vec4) CompositeExtract 4110 1 + Store 4094(texel) 4111 + 4112: 47(int) CompositeExtract 4110 0 + 4113: 284 Load 286(s2DArray) + 4114:175(f16vec3) Load 177(f16c3) + 4115:6(float16_t) Load 572(f16lod) + 4116:3102(ResType) ImageSparseGather 4113 4114 2187 Lod 4115 + 4117: 7(f16vec4) CompositeExtract 4116 1 + Store 4094(texel) 4117 + 4118: 47(int) CompositeExtract 4116 0 + 4119: 184 Load 186(sCube) + 4120: 167(fvec3) Load 169(c3) + 4121: 52(float) Load 565(lod) + 4122:3102(ResType) ImageSparseGather 4119 4120 2187 Lod 4121 + 4123: 7(f16vec4) CompositeExtract 4122 1 + Store 4094(texel) 4123 + 4124: 47(int) CompositeExtract 4122 0 + 4125: 184 Load 186(sCube) + 4126:175(f16vec3) Load 177(f16c3) + 4127:6(float16_t) Load 572(f16lod) + 4128:3102(ResType) ImageSparseGather 4125 4126 2187 Lod 4127 + 4129: 7(f16vec4) CompositeExtract 4128 1 + Store 4094(texel) 4129 + 4130: 47(int) CompositeExtract 4128 0 + 4131: 299 Load 301(sCubeArray) + 4132: 249(fvec4) Load 251(c4) + 4133: 52(float) Load 565(lod) + 4134:3102(ResType) ImageSparseGather 4131 4132 2187 Lod 4133 + 4135: 7(f16vec4) CompositeExtract 4134 1 + Store 4094(texel) 4135 + 4136: 47(int) CompositeExtract 4134 0 + 4137: 299 Load 301(sCubeArray) + 4138: 7(f16vec4) Load 309(f16c4) + 4139:6(float16_t) Load 572(f16lod) + 4140:3102(ResType) ImageSparseGather 4137 4138 2187 Lod 4139 + 4141: 7(f16vec4) CompositeExtract 4140 1 + Store 4094(texel) 4141 + 4142: 47(int) CompositeExtract 4140 0 + 4143: 7(f16vec4) Load 4094(texel) + ReturnValue 4143 + FunctionEnd +93(testSparseTextureGatherLodOffset(): 7(f16vec4) Function None 8 + 94: Label + 4146(texel): 64(ptr) Variable Function + Store 4146(texel) 121 + 4147: 143 Load 145(s2D) + 4148: 53(fvec2) Load 148(c2) + 4149: 52(float) Load 565(lod) + 4150:3102(ResType) ImageSparseGather 4147 4148 2187 Lod ConstOffset 4149 722 + 4151: 7(f16vec4) CompositeExtract 4150 1 + Store 4146(texel) 4151 + 4152: 47(int) CompositeExtract 4150 0 + 4153: 143 Load 145(s2D) + 4154:154(f16vec2) Load 156(f16c2) + 4155:6(float16_t) Load 572(f16lod) + 4156:3102(ResType) ImageSparseGather 4153 4154 2187 Lod ConstOffset 4155 722 + 4157: 7(f16vec4) CompositeExtract 4156 1 + Store 4146(texel) 4157 + 4158: 47(int) CompositeExtract 4156 0 + 4159: 284 Load 286(s2DArray) + 4160: 167(fvec3) Load 169(c3) + 4161: 52(float) Load 565(lod) + 4162:3102(ResType) ImageSparseGather 4159 4160 2187 Lod ConstOffset 4161 722 + 4163: 7(f16vec4) CompositeExtract 4162 1 + Store 4146(texel) 4163 + 4164: 47(int) CompositeExtract 4162 0 + 4165: 284 Load 286(s2DArray) + 4166:175(f16vec3) Load 177(f16c3) + 4167:6(float16_t) Load 572(f16lod) + 4168:3102(ResType) ImageSparseGather 4165 4166 2187 Lod ConstOffset 4167 722 + 4169: 7(f16vec4) CompositeExtract 4168 1 + Store 4146(texel) 4169 + 4170: 47(int) CompositeExtract 4168 0 + 4171: 7(f16vec4) Load 4146(texel) + ReturnValue 4171 + FunctionEnd +95(testSparseTextureGatherLodOffsets(): 7(f16vec4) Function None 8 + 96: Label + 4174(texel): 64(ptr) Variable Function + Store 4174(texel) 121 + 4175: 143 Load 145(s2D) + 4176: 53(fvec2) Load 148(c2) + 4177: 52(float) Load 565(lod) + 4178:3102(ResType) ImageSparseGather 4175 4176 2187 Lod ConstOffsets 4177 2380 + 4179: 7(f16vec4) CompositeExtract 4178 1 + Store 4174(texel) 4179 + 4180: 47(int) CompositeExtract 4178 0 + 4181: 143 Load 145(s2D) + 4182:154(f16vec2) Load 156(f16c2) + 4183:6(float16_t) Load 572(f16lod) + 4184:3102(ResType) ImageSparseGather 4181 4182 2187 Lod ConstOffsets 4183 2380 + 4185: 7(f16vec4) CompositeExtract 4184 1 + Store 4174(texel) 4185 + 4186: 47(int) CompositeExtract 4184 0 + 4187: 284 Load 286(s2DArray) + 4188: 167(fvec3) Load 169(c3) + 4189: 52(float) Load 565(lod) + 4190:3102(ResType) ImageSparseGather 4187 4188 2187 Lod ConstOffsets 4189 2380 + 4191: 7(f16vec4) CompositeExtract 4190 1 + Store 4174(texel) 4191 + 4192: 47(int) CompositeExtract 4190 0 + 4193: 284 Load 286(s2DArray) + 4194:175(f16vec3) Load 177(f16c3) + 4195:6(float16_t) Load 572(f16lod) + 4196:3102(ResType) ImageSparseGather 4193 4194 2187 Lod ConstOffsets 4195 2380 + 4197: 7(f16vec4) CompositeExtract 4196 1 + Store 4174(texel) 4197 + 4198: 47(int) CompositeExtract 4196 0 + 4199: 7(f16vec4) Load 4174(texel) + ReturnValue 4199 + FunctionEnd +97(testSparseImageLoad(): 7(f16vec4) Function None 8 + 98: Label + 4202(texel): 64(ptr) Variable Function + Store 4202(texel) 121 + 4203: 2962 Load 2964(i2D) + 4204: 53(fvec2) Load 148(c2) + 4205: 721(ivec2) ConvertFToS 4204 + 4206:3102(ResType) ImageSparseRead 4203 4205 + 4207: 7(f16vec4) CompositeExtract 4206 1 + Store 4202(texel) 4207 + 4208: 47(int) CompositeExtract 4206 0 + 4209: 2971 Load 2973(i3D) + 4210: 167(fvec3) Load 169(c3) + 4211: 734(ivec3) ConvertFToS 4210 + 4212:3102(ResType) ImageSparseRead 4209 4211 + 4213: 7(f16vec4) CompositeExtract 4212 1 + Store 4202(texel) 4213 + 4214: 47(int) CompositeExtract 4212 0 + 4215: 2980 Load 2982(i2DRect) + 4216: 53(fvec2) Load 148(c2) + 4217: 721(ivec2) ConvertFToS 4216 + 4218:3102(ResType) ImageSparseRead 4215 4217 + 4219: 7(f16vec4) CompositeExtract 4218 1 + Store 4202(texel) 4219 + 4220: 47(int) CompositeExtract 4218 0 + 4221: 2989 Load 2991(iCube) + 4222: 167(fvec3) Load 169(c3) + 4223: 734(ivec3) ConvertFToS 4222 + 4224:3102(ResType) ImageSparseRead 4221 4223 + 4225: 7(f16vec4) CompositeExtract 4224 1 + Store 4202(texel) 4225 + 4226: 47(int) CompositeExtract 4224 0 + 4227: 3016 Load 3018(i2DArray) + 4228: 167(fvec3) Load 169(c3) + 4229: 734(ivec3) ConvertFToS 4228 + 4230:3102(ResType) ImageSparseRead 4227 4229 + 4231: 7(f16vec4) CompositeExtract 4230 1 + Store 4202(texel) 4231 + 4232: 47(int) CompositeExtract 4230 0 + 4233: 3025 Load 3027(iCubeArray) + 4234: 167(fvec3) Load 169(c3) + 4235: 734(ivec3) ConvertFToS 4234 + 4236:3102(ResType) ImageSparseRead 4233 4235 + 4237: 7(f16vec4) CompositeExtract 4236 1 + Store 4202(texel) 4237 + 4238: 47(int) CompositeExtract 4236 0 + 4239: 3034 Load 3036(i2DMS) + 4240: 53(fvec2) Load 148(c2) + 4241: 721(ivec2) ConvertFToS 4240 + 4242:3102(ResType) ImageSparseRead 4239 4241 Sample 709 + 4243: 7(f16vec4) CompositeExtract 4242 1 + Store 4202(texel) 4243 + 4244: 47(int) CompositeExtract 4242 0 + 4245: 3043 Load 3045(i2DMSArray) + 4246: 167(fvec3) Load 169(c3) + 4247: 734(ivec3) ConvertFToS 4246 + 4248:3102(ResType) ImageSparseRead 4245 4247 Sample 1326 + 4249: 7(f16vec4) CompositeExtract 4248 1 + Store 4202(texel) 4249 + 4250: 47(int) CompositeExtract 4248 0 + 4251: 7(f16vec4) Load 4202(texel) + ReturnValue 4251 + FunctionEnd +99(testSparseTextureClamp(): 7(f16vec4) Function None 8 + 100: Label + 4254(texel): 64(ptr) Variable Function + Store 4254(texel) 121 + 4255: 143 Load 145(s2D) + 4256: 53(fvec2) Load 148(c2) + 4258: 52(float) Load 4257(lodClamp) + 4259:3102(ResType) ImageSparseSampleImplicitLod 4255 4256 MinLod 4258 + 4260: 7(f16vec4) CompositeExtract 4259 1 + Store 4254(texel) 4260 + 4261: 47(int) CompositeExtract 4259 0 + 4262: 143 Load 145(s2D) + 4263:154(f16vec2) Load 156(f16c2) + 4265:6(float16_t) Load 4264(f16lodClamp) + 4266:6(float16_t) Load 137(f16bias) + 4267:3102(ResType) ImageSparseSampleImplicitLod 4262 4263 Bias MinLod 4266 4265 + 4268: 7(f16vec4) CompositeExtract 4267 1 + Store 4254(texel) 4268 + 4269: 47(int) CompositeExtract 4267 0 + 4270: 163 Load 165(s3D) + 4271: 167(fvec3) Load 169(c3) + 4272: 52(float) Load 4257(lodClamp) + 4273:3102(ResType) ImageSparseSampleImplicitLod 4270 4271 MinLod 4272 + 4274: 7(f16vec4) CompositeExtract 4273 1 + Store 4254(texel) 4274 + 4275: 47(int) CompositeExtract 4273 0 + 4276: 163 Load 165(s3D) + 4277:175(f16vec3) Load 177(f16c3) + 4278:6(float16_t) Load 4264(f16lodClamp) + 4279:6(float16_t) Load 137(f16bias) + 4280:3102(ResType) ImageSparseSampleImplicitLod 4276 4277 Bias MinLod 4279 4278 + 4281: 7(f16vec4) CompositeExtract 4280 1 + Store 4254(texel) 4281 + 4282: 47(int) CompositeExtract 4280 0 + 4283: 184 Load 186(sCube) + 4284: 167(fvec3) Load 169(c3) + 4285: 52(float) Load 4257(lodClamp) + 4286:3102(ResType) ImageSparseSampleImplicitLod 4283 4284 MinLod 4285 + 4287: 7(f16vec4) CompositeExtract 4286 1 + Store 4254(texel) 4287 + 4288: 47(int) CompositeExtract 4286 0 + 4289: 184 Load 186(sCube) + 4290:175(f16vec3) Load 177(f16c3) + 4291:6(float16_t) Load 4264(f16lodClamp) + 4292:6(float16_t) Load 137(f16bias) + 4293:3102(ResType) ImageSparseSampleImplicitLod 4289 4290 Bias MinLod 4292 4291 + 4294: 7(f16vec4) CompositeExtract 4293 1 + Store 4254(texel) 4294 + 4295: 47(int) CompositeExtract 4293 0 + 4296: 224 Load 226(s2DShadow) + 4297: 167(fvec3) Load 169(c3) + 4298: 52(float) Load 4257(lodClamp) + 4299: 208(ptr) AccessChain 4254(texel) 207 + 4300: 52(float) CompositeExtract 4297 2 + 4301:3138(ResType) ImageSparseSampleDrefImplicitLod 4296 4297 4300 MinLod 4298 + 4302:6(float16_t) CompositeExtract 4301 1 + Store 4299 4302 + 4303: 47(int) CompositeExtract 4301 0 + 4304: 224 Load 226(s2DShadow) + 4305:154(f16vec2) Load 156(f16c2) + 4306: 52(float) Load 215(compare) + 4307:6(float16_t) Load 4264(f16lodClamp) + 4308: 208(ptr) AccessChain 4254(texel) 207 + 4309:6(float16_t) Load 137(f16bias) + 4310:3138(ResType) ImageSparseSampleDrefImplicitLod 4304 4305 4306 Bias MinLod 4309 4307 + 4311:6(float16_t) CompositeExtract 4310 1 + Store 4308 4311 + 4312: 47(int) CompositeExtract 4310 0 + 4313: 245 Load 247(sCubeShadow) + 4314: 249(fvec4) Load 251(c4) + 4315: 52(float) Load 4257(lodClamp) + 4316: 208(ptr) AccessChain 4254(texel) 207 + 4317: 52(float) CompositeExtract 4314 3 + 4318:3138(ResType) ImageSparseSampleDrefImplicitLod 4313 4314 4317 MinLod 4315 + 4319:6(float16_t) CompositeExtract 4318 1 + Store 4316 4319 + 4320: 47(int) CompositeExtract 4318 0 + 4321: 245 Load 247(sCubeShadow) + 4322:175(f16vec3) Load 177(f16c3) + 4323: 52(float) Load 215(compare) + 4324:6(float16_t) Load 4264(f16lodClamp) + 4325: 208(ptr) AccessChain 4254(texel) 207 + 4326:6(float16_t) Load 137(f16bias) + 4327:3138(ResType) ImageSparseSampleDrefImplicitLod 4321 4322 4323 Bias MinLod 4326 4324 + 4328:6(float16_t) CompositeExtract 4327 1 + Store 4325 4328 + 4329: 47(int) CompositeExtract 4327 0 + 4330: 284 Load 286(s2DArray) + 4331: 167(fvec3) Load 169(c3) + 4332: 52(float) Load 4257(lodClamp) + 4333:3102(ResType) ImageSparseSampleImplicitLod 4330 4331 MinLod 4332 + 4334: 7(f16vec4) CompositeExtract 4333 1 + Store 4254(texel) 4334 + 4335: 47(int) CompositeExtract 4333 0 + 4336: 284 Load 286(s2DArray) + 4337:175(f16vec3) Load 177(f16c3) + 4338:6(float16_t) Load 4264(f16lodClamp) + 4339:6(float16_t) Load 137(f16bias) + 4340:3102(ResType) ImageSparseSampleImplicitLod 4336 4337 Bias MinLod 4339 4338 + 4341: 7(f16vec4) CompositeExtract 4340 1 + Store 4254(texel) 4341 + 4342: 47(int) CompositeExtract 4340 0 + 4343: 299 Load 301(sCubeArray) + 4344: 249(fvec4) Load 251(c4) + 4345: 52(float) Load 4257(lodClamp) + 4346:3102(ResType) ImageSparseSampleImplicitLod 4343 4344 MinLod 4345 + 4347: 7(f16vec4) CompositeExtract 4346 1 + Store 4254(texel) 4347 + 4348: 47(int) CompositeExtract 4346 0 + 4349: 299 Load 301(sCubeArray) + 4350: 7(f16vec4) Load 309(f16c4) + 4351:6(float16_t) Load 4264(f16lodClamp) + 4352:6(float16_t) Load 137(f16bias) + 4353:3102(ResType) ImageSparseSampleImplicitLod 4349 4350 Bias MinLod 4352 4351 + 4354: 7(f16vec4) CompositeExtract 4353 1 + Store 4254(texel) 4354 + 4355: 47(int) CompositeExtract 4353 0 + 4356: 337 Load 339(s2DArrayShadow) + 4357: 249(fvec4) Load 251(c4) + 4358: 52(float) Load 4257(lodClamp) + 4359: 208(ptr) AccessChain 4254(texel) 207 + 4360: 52(float) CompositeExtract 4357 3 + 4361:3138(ResType) ImageSparseSampleDrefImplicitLod 4356 4357 4360 MinLod 4358 + 4362:6(float16_t) CompositeExtract 4361 1 + Store 4359 4362 + 4363: 47(int) CompositeExtract 4361 0 + 4364: 337 Load 339(s2DArrayShadow) + 4365:175(f16vec3) Load 177(f16c3) + 4366: 52(float) Load 215(compare) + 4367:6(float16_t) Load 4264(f16lodClamp) + 4368: 208(ptr) AccessChain 4254(texel) 207 + 4369:3138(ResType) ImageSparseSampleDrefImplicitLod 4364 4365 4366 MinLod 4367 + 4370:6(float16_t) CompositeExtract 4369 1 + Store 4368 4370 + 4371: 47(int) CompositeExtract 4369 0 + 4372: 391 Load 393(sCubeArrayShadow) + 4373: 249(fvec4) Load 251(c4) + 4374: 52(float) Load 215(compare) + 4375: 52(float) Load 4257(lodClamp) + 4376: 208(ptr) AccessChain 4254(texel) 207 + 4377:3138(ResType) ImageSparseSampleDrefImplicitLod 4372 4373 4374 MinLod 4375 + 4378:6(float16_t) CompositeExtract 4377 1 + Store 4376 4378 + 4379: 47(int) CompositeExtract 4377 0 + 4380: 391 Load 393(sCubeArrayShadow) + 4381: 7(f16vec4) Load 309(f16c4) + 4382: 52(float) Load 215(compare) + 4383:6(float16_t) Load 4264(f16lodClamp) + 4384: 208(ptr) AccessChain 4254(texel) 207 + 4385:3138(ResType) ImageSparseSampleDrefImplicitLod 4380 4381 4382 MinLod 4383 + 4386:6(float16_t) CompositeExtract 4385 1 + Store 4384 4386 + 4387: 47(int) CompositeExtract 4385 0 + 4388: 7(f16vec4) Load 4254(texel) + ReturnValue 4388 + FunctionEnd +101(testTextureClamp(): 7(f16vec4) Function None 8 + 102: Label + 4391(texel): 64(ptr) Variable Function + Store 4391(texel) 121 + 4392: 123 Load 125(s1D) + 4393: 52(float) Load 128(c1) + 4394: 52(float) Load 4257(lodClamp) + 4395: 7(f16vec4) ImageSampleImplicitLod 4392 4393 MinLod 4394 + 4396: 7(f16vec4) Load 4391(texel) + 4397: 7(f16vec4) FAdd 4396 4395 + Store 4391(texel) 4397 + 4398: 123 Load 125(s1D) + 4399:6(float16_t) Load 135(f16c1) + 4400:6(float16_t) Load 4264(f16lodClamp) + 4401:6(float16_t) Load 137(f16bias) + 4402: 7(f16vec4) ImageSampleImplicitLod 4398 4399 Bias MinLod 4401 4400 + 4403: 7(f16vec4) Load 4391(texel) + 4404: 7(f16vec4) FAdd 4403 4402 + Store 4391(texel) 4404 + 4405: 143 Load 145(s2D) + 4406: 53(fvec2) Load 148(c2) + 4407: 52(float) Load 4257(lodClamp) + 4408: 7(f16vec4) ImageSampleImplicitLod 4405 4406 MinLod 4407 + 4409: 7(f16vec4) Load 4391(texel) + 4410: 7(f16vec4) FAdd 4409 4408 + Store 4391(texel) 4410 + 4411: 143 Load 145(s2D) + 4412:154(f16vec2) Load 156(f16c2) + 4413:6(float16_t) Load 4264(f16lodClamp) + 4414:6(float16_t) Load 137(f16bias) + 4415: 7(f16vec4) ImageSampleImplicitLod 4411 4412 Bias MinLod 4414 4413 + 4416: 7(f16vec4) Load 4391(texel) + 4417: 7(f16vec4) FAdd 4416 4415 + Store 4391(texel) 4417 + 4418: 163 Load 165(s3D) + 4419: 167(fvec3) Load 169(c3) + 4420: 52(float) Load 4257(lodClamp) + 4421: 7(f16vec4) ImageSampleImplicitLod 4418 4419 MinLod 4420 + 4422: 7(f16vec4) Load 4391(texel) + 4423: 7(f16vec4) FAdd 4422 4421 + Store 4391(texel) 4423 + 4424: 163 Load 165(s3D) + 4425:175(f16vec3) Load 177(f16c3) + 4426:6(float16_t) Load 4264(f16lodClamp) + 4427:6(float16_t) Load 137(f16bias) + 4428: 7(f16vec4) ImageSampleImplicitLod 4424 4425 Bias MinLod 4427 4426 + 4429: 7(f16vec4) Load 4391(texel) + 4430: 7(f16vec4) FAdd 4429 4428 + Store 4391(texel) 4430 + 4431: 184 Load 186(sCube) + 4432: 167(fvec3) Load 169(c3) + 4433: 52(float) Load 4257(lodClamp) + 4434: 7(f16vec4) ImageSampleImplicitLod 4431 4432 MinLod 4433 + 4435: 7(f16vec4) Load 4391(texel) + 4436: 7(f16vec4) FAdd 4435 4434 + Store 4391(texel) 4436 + 4437: 184 Load 186(sCube) + 4438:175(f16vec3) Load 177(f16c3) + 4439:6(float16_t) Load 4264(f16lodClamp) + 4440:6(float16_t) Load 137(f16bias) + 4441: 7(f16vec4) ImageSampleImplicitLod 4437 4438 Bias MinLod 4440 4439 + 4442: 7(f16vec4) Load 4391(texel) + 4443: 7(f16vec4) FAdd 4442 4441 + Store 4391(texel) 4443 + 4444: 199 Load 201(s1DShadow) + 4445: 167(fvec3) Load 169(c3) + 4446: 52(float) Load 4257(lodClamp) + 4447: 52(float) CompositeExtract 4445 2 + 4448:6(float16_t) ImageSampleDrefImplicitLod 4444 4445 4447 MinLod 4446 + 4449: 208(ptr) AccessChain 4391(texel) 207 + 4450:6(float16_t) Load 4449 + 4451:6(float16_t) FAdd 4450 4448 + 4452: 208(ptr) AccessChain 4391(texel) 207 + Store 4452 4451 + 4453: 199 Load 201(s1DShadow) + 4454:154(f16vec2) Load 156(f16c2) + 4455: 52(float) Load 215(compare) + 4456:6(float16_t) Load 4264(f16lodClamp) + 4457:6(float16_t) Load 137(f16bias) + 4458:6(float16_t) ImageSampleDrefImplicitLod 4453 4454 4455 Bias MinLod 4457 4456 + 4459: 208(ptr) AccessChain 4391(texel) 207 + 4460:6(float16_t) Load 4459 + 4461:6(float16_t) FAdd 4460 4458 + 4462: 208(ptr) AccessChain 4391(texel) 207 + Store 4462 4461 + 4463: 224 Load 226(s2DShadow) + 4464: 167(fvec3) Load 169(c3) + 4465: 52(float) Load 4257(lodClamp) + 4466: 52(float) CompositeExtract 4464 2 + 4467:6(float16_t) ImageSampleDrefImplicitLod 4463 4464 4466 MinLod 4465 + 4468: 208(ptr) AccessChain 4391(texel) 207 + 4469:6(float16_t) Load 4468 + 4470:6(float16_t) FAdd 4469 4467 + 4471: 208(ptr) AccessChain 4391(texel) 207 + Store 4471 4470 + 4472: 224 Load 226(s2DShadow) + 4473:154(f16vec2) Load 156(f16c2) + 4474: 52(float) Load 215(compare) + 4475:6(float16_t) Load 4264(f16lodClamp) + 4476:6(float16_t) Load 137(f16bias) + 4477:6(float16_t) ImageSampleDrefImplicitLod 4472 4473 4474 Bias MinLod 4476 4475 + 4478: 208(ptr) AccessChain 4391(texel) 207 + 4479:6(float16_t) Load 4478 + 4480:6(float16_t) FAdd 4479 4477 + 4481: 208(ptr) AccessChain 4391(texel) 207 + Store 4481 4480 + 4482: 245 Load 247(sCubeShadow) + 4483: 249(fvec4) Load 251(c4) + 4484: 52(float) Load 4257(lodClamp) + 4485: 52(float) CompositeExtract 4483 3 + 4486:6(float16_t) ImageSampleDrefImplicitLod 4482 4483 4485 MinLod 4484 + 4487: 208(ptr) AccessChain 4391(texel) 207 + 4488:6(float16_t) Load 4487 + 4489:6(float16_t) FAdd 4488 4486 + 4490: 208(ptr) AccessChain 4391(texel) 207 + Store 4490 4489 + 4491: 245 Load 247(sCubeShadow) + 4492:175(f16vec3) Load 177(f16c3) + 4493: 52(float) Load 215(compare) + 4494:6(float16_t) Load 4264(f16lodClamp) + 4495:6(float16_t) Load 137(f16bias) + 4496:6(float16_t) ImageSampleDrefImplicitLod 4491 4492 4493 Bias MinLod 4495 4494 + 4497: 208(ptr) AccessChain 4391(texel) 207 + 4498:6(float16_t) Load 4497 + 4499:6(float16_t) FAdd 4498 4496 + 4500: 208(ptr) AccessChain 4391(texel) 207 + Store 4500 4499 + 4501: 269 Load 271(s1DArray) + 4502: 53(fvec2) Load 148(c2) + 4503: 52(float) Load 4257(lodClamp) + 4504: 7(f16vec4) ImageSampleImplicitLod 4501 4502 MinLod 4503 + 4505: 7(f16vec4) Load 4391(texel) + 4506: 7(f16vec4) FAdd 4505 4504 + Store 4391(texel) 4506 + 4507: 269 Load 271(s1DArray) + 4508:154(f16vec2) Load 156(f16c2) + 4509:6(float16_t) Load 4264(f16lodClamp) + 4510:6(float16_t) Load 137(f16bias) + 4511: 7(f16vec4) ImageSampleImplicitLod 4507 4508 Bias MinLod 4510 4509 + 4512: 7(f16vec4) Load 4391(texel) + 4513: 7(f16vec4) FAdd 4512 4511 + Store 4391(texel) 4513 + 4514: 284 Load 286(s2DArray) + 4515: 167(fvec3) Load 169(c3) + 4516: 52(float) Load 4257(lodClamp) + 4517: 7(f16vec4) ImageSampleImplicitLod 4514 4515 MinLod 4516 + 4518: 7(f16vec4) Load 4391(texel) + 4519: 7(f16vec4) FAdd 4518 4517 + Store 4391(texel) 4519 + 4520: 284 Load 286(s2DArray) + 4521:175(f16vec3) Load 177(f16c3) + 4522:6(float16_t) Load 4264(f16lodClamp) + 4523:6(float16_t) Load 137(f16bias) + 4524: 7(f16vec4) ImageSampleImplicitLod 4520 4521 Bias MinLod 4523 4522 + 4525: 7(f16vec4) Load 4391(texel) + 4526: 7(f16vec4) FAdd 4525 4524 + Store 4391(texel) 4526 + 4527: 299 Load 301(sCubeArray) + 4528: 249(fvec4) Load 251(c4) + 4529: 52(float) Load 4257(lodClamp) + 4530: 7(f16vec4) ImageSampleImplicitLod 4527 4528 MinLod 4529 + 4531: 7(f16vec4) Load 4391(texel) + 4532: 7(f16vec4) FAdd 4531 4530 + Store 4391(texel) 4532 + 4533: 299 Load 301(sCubeArray) + 4534: 7(f16vec4) Load 309(f16c4) + 4535:6(float16_t) Load 4264(f16lodClamp) + 4536:6(float16_t) Load 137(f16bias) + 4537: 7(f16vec4) ImageSampleImplicitLod 4533 4534 Bias MinLod 4536 4535 + 4538: 7(f16vec4) Load 4391(texel) + 4539: 7(f16vec4) FAdd 4538 4537 + Store 4391(texel) 4539 + 4540: 316 Load 318(s1DArrayShadow) + 4541: 167(fvec3) Load 169(c3) + 4542: 52(float) Load 4257(lodClamp) + 4543: 52(float) CompositeExtract 4541 2 + 4544:6(float16_t) ImageSampleDrefImplicitLod 4540 4541 4543 MinLod 4542 + 4545: 208(ptr) AccessChain 4391(texel) 207 + 4546:6(float16_t) Load 4545 + 4547:6(float16_t) FAdd 4546 4544 + 4548: 208(ptr) AccessChain 4391(texel) 207 + Store 4548 4547 + 4549: 316 Load 318(s1DArrayShadow) + 4550:154(f16vec2) Load 156(f16c2) + 4551: 52(float) Load 215(compare) + 4552:6(float16_t) Load 4264(f16lodClamp) + 4553:6(float16_t) Load 137(f16bias) + 4554:6(float16_t) ImageSampleDrefImplicitLod 4549 4550 4551 Bias MinLod 4553 4552 + 4555: 208(ptr) AccessChain 4391(texel) 207 + 4556:6(float16_t) Load 4555 + 4557:6(float16_t) FAdd 4556 4554 + 4558: 208(ptr) AccessChain 4391(texel) 207 + Store 4558 4557 + 4559: 337 Load 339(s2DArrayShadow) + 4560: 249(fvec4) Load 251(c4) + 4561: 52(float) Load 4257(lodClamp) + 4562: 52(float) CompositeExtract 4560 3 + 4563:6(float16_t) ImageSampleDrefImplicitLod 4559 4560 4562 MinLod 4561 + 4564: 208(ptr) AccessChain 4391(texel) 207 + 4565:6(float16_t) Load 4564 + 4566:6(float16_t) FAdd 4565 4563 + 4567: 208(ptr) AccessChain 4391(texel) 207 + Store 4567 4566 + 4568: 337 Load 339(s2DArrayShadow) + 4569:175(f16vec3) Load 177(f16c3) + 4570: 52(float) Load 215(compare) + 4571:6(float16_t) Load 4264(f16lodClamp) + 4572:6(float16_t) ImageSampleDrefImplicitLod 4568 4569 4570 MinLod 4571 + 4573: 208(ptr) AccessChain 4391(texel) 207 + 4574:6(float16_t) Load 4573 + 4575:6(float16_t) FAdd 4574 4572 + 4576: 208(ptr) AccessChain 4391(texel) 207 + Store 4576 4575 + 4577: 391 Load 393(sCubeArrayShadow) + 4578: 249(fvec4) Load 251(c4) + 4579: 52(float) Load 215(compare) + 4580: 52(float) Load 4257(lodClamp) + 4581:6(float16_t) ImageSampleDrefImplicitLod 4577 4578 4579 MinLod 4580 + 4582: 208(ptr) AccessChain 4391(texel) 207 + 4583:6(float16_t) Load 4582 + 4584:6(float16_t) FAdd 4583 4581 + 4585: 208(ptr) AccessChain 4391(texel) 207 + Store 4585 4584 + 4586: 391 Load 393(sCubeArrayShadow) + 4587: 7(f16vec4) Load 309(f16c4) + 4588: 52(float) Load 215(compare) + 4589:6(float16_t) Load 4264(f16lodClamp) + 4590:6(float16_t) ImageSampleDrefImplicitLod 4586 4587 4588 MinLod 4589 + 4591: 208(ptr) AccessChain 4391(texel) 207 + 4592:6(float16_t) Load 4591 + 4593:6(float16_t) FAdd 4592 4590 + 4594: 208(ptr) AccessChain 4391(texel) 207 + Store 4594 4593 + 4595: 7(f16vec4) Load 4391(texel) + ReturnValue 4595 + FunctionEnd +103(testSparseTextureOffsetClamp(): 7(f16vec4) Function None 8 + 104: Label + 4598(texel): 64(ptr) Variable Function + Store 4598(texel) 121 + 4599: 143 Load 145(s2D) + 4600: 53(fvec2) Load 148(c2) + 4601: 52(float) Load 4257(lodClamp) + 4602:3102(ResType) ImageSparseSampleImplicitLod 4599 4600 ConstOffset MinLod 722 4601 + 4603: 7(f16vec4) CompositeExtract 4602 1 + Store 4598(texel) 4603 + 4604: 47(int) CompositeExtract 4602 0 + 4605: 143 Load 145(s2D) + 4606:154(f16vec2) Load 156(f16c2) + 4607:6(float16_t) Load 4264(f16lodClamp) + 4608:6(float16_t) Load 137(f16bias) + 4609:3102(ResType) ImageSparseSampleImplicitLod 4605 4606 Bias ConstOffset MinLod 4608 722 4607 + 4610: 7(f16vec4) CompositeExtract 4609 1 + Store 4598(texel) 4610 + 4611: 47(int) CompositeExtract 4609 0 + 4612: 163 Load 165(s3D) + 4613: 167(fvec3) Load 169(c3) + 4614: 52(float) Load 4257(lodClamp) + 4615:3102(ResType) ImageSparseSampleImplicitLod 4612 4613 ConstOffset MinLod 735 4614 + 4616: 7(f16vec4) CompositeExtract 4615 1 + Store 4598(texel) 4616 + 4617: 47(int) CompositeExtract 4615 0 + 4618: 163 Load 165(s3D) + 4619:175(f16vec3) Load 177(f16c3) + 4620:6(float16_t) Load 4264(f16lodClamp) + 4621:6(float16_t) Load 137(f16bias) + 4622:3102(ResType) ImageSparseSampleImplicitLod 4618 4619 Bias ConstOffset MinLod 4621 735 4620 + 4623: 7(f16vec4) CompositeExtract 4622 1 + Store 4598(texel) 4623 + 4624: 47(int) CompositeExtract 4622 0 + 4625: 224 Load 226(s2DShadow) + 4626: 167(fvec3) Load 169(c3) + 4627: 52(float) Load 4257(lodClamp) + 4628: 208(ptr) AccessChain 4598(texel) 207 + 4629: 52(float) CompositeExtract 4626 2 + 4630:3138(ResType) ImageSparseSampleDrefImplicitLod 4625 4626 4629 ConstOffset MinLod 722 4627 + 4631:6(float16_t) CompositeExtract 4630 1 + Store 4628 4631 + 4632: 47(int) CompositeExtract 4630 0 + 4633: 224 Load 226(s2DShadow) + 4634:154(f16vec2) Load 156(f16c2) + 4635: 52(float) Load 215(compare) + 4636:6(float16_t) Load 4264(f16lodClamp) + 4637: 208(ptr) AccessChain 4598(texel) 207 + 4638:6(float16_t) Load 137(f16bias) + 4639:3138(ResType) ImageSparseSampleDrefImplicitLod 4633 4634 4635 Bias ConstOffset MinLod 4638 722 4636 + 4640:6(float16_t) CompositeExtract 4639 1 + Store 4637 4640 + 4641: 47(int) CompositeExtract 4639 0 + 4642: 284 Load 286(s2DArray) + 4643: 167(fvec3) Load 169(c3) + 4644: 52(float) Load 4257(lodClamp) + 4645:3102(ResType) ImageSparseSampleImplicitLod 4642 4643 ConstOffset MinLod 722 4644 + 4646: 7(f16vec4) CompositeExtract 4645 1 + Store 4598(texel) 4646 + 4647: 47(int) CompositeExtract 4645 0 + 4648: 284 Load 286(s2DArray) + 4649:175(f16vec3) Load 177(f16c3) + 4650:6(float16_t) Load 4264(f16lodClamp) + 4651:6(float16_t) Load 137(f16bias) + 4652:3102(ResType) ImageSparseSampleImplicitLod 4648 4649 Bias ConstOffset MinLod 4651 722 4650 + 4653: 7(f16vec4) CompositeExtract 4652 1 + Store 4598(texel) 4653 + 4654: 47(int) CompositeExtract 4652 0 + 4655: 337 Load 339(s2DArrayShadow) + 4656: 249(fvec4) Load 251(c4) + 4657: 52(float) Load 4257(lodClamp) + 4658: 208(ptr) AccessChain 4598(texel) 207 + 4659: 52(float) CompositeExtract 4656 3 + 4660:3138(ResType) ImageSparseSampleDrefImplicitLod 4655 4656 4659 ConstOffset MinLod 722 4657 + 4661:6(float16_t) CompositeExtract 4660 1 + Store 4658 4661 + 4662: 47(int) CompositeExtract 4660 0 + 4663: 337 Load 339(s2DArrayShadow) + 4664:175(f16vec3) Load 177(f16c3) + 4665: 52(float) Load 215(compare) + 4666:6(float16_t) Load 4264(f16lodClamp) + 4667: 208(ptr) AccessChain 4598(texel) 207 + 4668:3138(ResType) ImageSparseSampleDrefImplicitLod 4663 4664 4665 ConstOffset MinLod 722 4666 + 4669:6(float16_t) CompositeExtract 4668 1 + Store 4667 4669 + 4670: 47(int) CompositeExtract 4668 0 + 4671: 7(f16vec4) Load 4598(texel) + ReturnValue 4671 + FunctionEnd +105(testTextureOffsetClamp(): 7(f16vec4) Function None 8 + 106: Label + 4674(texel): 64(ptr) Variable Function + Store 4674(texel) 121 + 4675: 123 Load 125(s1D) + 4676: 52(float) Load 128(c1) + 4677: 52(float) Load 4257(lodClamp) + 4678: 7(f16vec4) ImageSampleImplicitLod 4675 4676 ConstOffset MinLod 709 4677 + 4679: 7(f16vec4) Load 4674(texel) + 4680: 7(f16vec4) FAdd 4679 4678 + Store 4674(texel) 4680 + 4681: 123 Load 125(s1D) + 4682:6(float16_t) Load 135(f16c1) + 4683:6(float16_t) Load 4264(f16lodClamp) + 4684:6(float16_t) Load 137(f16bias) + 4685: 7(f16vec4) ImageSampleImplicitLod 4681 4682 Bias ConstOffset MinLod 4684 709 4683 + 4686: 7(f16vec4) Load 4674(texel) + 4687: 7(f16vec4) FAdd 4686 4685 + Store 4674(texel) 4687 + 4688: 143 Load 145(s2D) + 4689: 53(fvec2) Load 148(c2) + 4690: 52(float) Load 4257(lodClamp) + 4691: 7(f16vec4) ImageSampleImplicitLod 4688 4689 ConstOffset MinLod 722 4690 + 4692: 7(f16vec4) Load 4674(texel) + 4693: 7(f16vec4) FAdd 4692 4691 + Store 4674(texel) 4693 + 4694: 143 Load 145(s2D) + 4695:154(f16vec2) Load 156(f16c2) + 4696:6(float16_t) Load 4264(f16lodClamp) + 4697:6(float16_t) Load 137(f16bias) + 4698: 7(f16vec4) ImageSampleImplicitLod 4694 4695 Bias ConstOffset MinLod 4697 722 4696 + 4699: 7(f16vec4) Load 4674(texel) + 4700: 7(f16vec4) FAdd 4699 4698 + Store 4674(texel) 4700 + 4701: 163 Load 165(s3D) + 4702: 167(fvec3) Load 169(c3) + 4703: 52(float) Load 4257(lodClamp) + 4704: 7(f16vec4) ImageSampleImplicitLod 4701 4702 ConstOffset MinLod 735 4703 + 4705: 7(f16vec4) Load 4674(texel) + 4706: 7(f16vec4) FAdd 4705 4704 + Store 4674(texel) 4706 + 4707: 163 Load 165(s3D) + 4708:175(f16vec3) Load 177(f16c3) + 4709:6(float16_t) Load 4264(f16lodClamp) + 4710:6(float16_t) Load 137(f16bias) + 4711: 7(f16vec4) ImageSampleImplicitLod 4707 4708 Bias ConstOffset MinLod 4710 735 4709 + 4712: 7(f16vec4) Load 4674(texel) + 4713: 7(f16vec4) FAdd 4712 4711 + Store 4674(texel) 4713 + 4714: 199 Load 201(s1DShadow) + 4715: 167(fvec3) Load 169(c3) + 4716: 52(float) Load 4257(lodClamp) + 4717: 52(float) CompositeExtract 4715 2 + 4718:6(float16_t) ImageSampleDrefImplicitLod 4714 4715 4717 ConstOffset MinLod 709 4716 + 4719: 208(ptr) AccessChain 4674(texel) 207 + 4720:6(float16_t) Load 4719 + 4721:6(float16_t) FAdd 4720 4718 + 4722: 208(ptr) AccessChain 4674(texel) 207 + Store 4722 4721 + 4723: 199 Load 201(s1DShadow) + 4724:154(f16vec2) Load 156(f16c2) + 4725: 52(float) Load 215(compare) + 4726:6(float16_t) Load 4264(f16lodClamp) + 4727:6(float16_t) Load 137(f16bias) + 4728:6(float16_t) ImageSampleDrefImplicitLod 4723 4724 4725 Bias ConstOffset MinLod 4727 709 4726 + 4729: 208(ptr) AccessChain 4674(texel) 207 + 4730:6(float16_t) Load 4729 + 4731:6(float16_t) FAdd 4730 4728 + 4732: 208(ptr) AccessChain 4674(texel) 207 + Store 4732 4731 + 4733: 224 Load 226(s2DShadow) + 4734: 167(fvec3) Load 169(c3) + 4735: 52(float) Load 4257(lodClamp) + 4736: 52(float) CompositeExtract 4734 2 + 4737:6(float16_t) ImageSampleDrefImplicitLod 4733 4734 4736 ConstOffset MinLod 722 4735 + 4738: 208(ptr) AccessChain 4674(texel) 207 + 4739:6(float16_t) Load 4738 + 4740:6(float16_t) FAdd 4739 4737 + 4741: 208(ptr) AccessChain 4674(texel) 207 + Store 4741 4740 + 4742: 224 Load 226(s2DShadow) + 4743:154(f16vec2) Load 156(f16c2) + 4744: 52(float) Load 215(compare) + 4745:6(float16_t) Load 4264(f16lodClamp) + 4746:6(float16_t) Load 137(f16bias) + 4747:6(float16_t) ImageSampleDrefImplicitLod 4742 4743 4744 Bias ConstOffset MinLod 4746 722 4745 + 4748: 208(ptr) AccessChain 4674(texel) 207 + 4749:6(float16_t) Load 4748 + 4750:6(float16_t) FAdd 4749 4747 + 4751: 208(ptr) AccessChain 4674(texel) 207 + Store 4751 4750 + 4752: 269 Load 271(s1DArray) + 4753: 53(fvec2) Load 148(c2) + 4754: 52(float) Load 4257(lodClamp) + 4755: 7(f16vec4) ImageSampleImplicitLod 4752 4753 ConstOffset MinLod 709 4754 + 4756: 7(f16vec4) Load 4674(texel) + 4757: 7(f16vec4) FAdd 4756 4755 + Store 4674(texel) 4757 + 4758: 269 Load 271(s1DArray) + 4759:154(f16vec2) Load 156(f16c2) + 4760:6(float16_t) Load 4264(f16lodClamp) + 4761:6(float16_t) Load 137(f16bias) + 4762: 7(f16vec4) ImageSampleImplicitLod 4758 4759 Bias ConstOffset MinLod 4761 709 4760 + 4763: 7(f16vec4) Load 4674(texel) + 4764: 7(f16vec4) FAdd 4763 4762 + Store 4674(texel) 4764 + 4765: 284 Load 286(s2DArray) + 4766: 167(fvec3) Load 169(c3) + 4767: 52(float) Load 4257(lodClamp) + 4768: 7(f16vec4) ImageSampleImplicitLod 4765 4766 ConstOffset MinLod 722 4767 + 4769: 7(f16vec4) Load 4674(texel) + 4770: 7(f16vec4) FAdd 4769 4768 + Store 4674(texel) 4770 + 4771: 284 Load 286(s2DArray) + 4772:175(f16vec3) Load 177(f16c3) + 4773:6(float16_t) Load 4264(f16lodClamp) + 4774:6(float16_t) Load 137(f16bias) + 4775: 7(f16vec4) ImageSampleImplicitLod 4771 4772 Bias ConstOffset MinLod 4774 722 4773 + 4776: 7(f16vec4) Load 4674(texel) + 4777: 7(f16vec4) FAdd 4776 4775 + Store 4674(texel) 4777 + 4778: 316 Load 318(s1DArrayShadow) + 4779: 167(fvec3) Load 169(c3) + 4780: 52(float) Load 4257(lodClamp) + 4781: 52(float) CompositeExtract 4779 2 + 4782:6(float16_t) ImageSampleDrefImplicitLod 4778 4779 4781 ConstOffset MinLod 709 4780 + 4783: 208(ptr) AccessChain 4674(texel) 207 + 4784:6(float16_t) Load 4783 + 4785:6(float16_t) FAdd 4784 4782 + 4786: 208(ptr) AccessChain 4674(texel) 207 + Store 4786 4785 + 4787: 316 Load 318(s1DArrayShadow) + 4788:154(f16vec2) Load 156(f16c2) + 4789: 52(float) Load 215(compare) + 4790:6(float16_t) Load 4264(f16lodClamp) + 4791:6(float16_t) Load 137(f16bias) + 4792:6(float16_t) ImageSampleDrefImplicitLod 4787 4788 4789 Bias ConstOffset MinLod 4791 709 4790 + 4793: 208(ptr) AccessChain 4674(texel) 207 + 4794:6(float16_t) Load 4793 + 4795:6(float16_t) FAdd 4794 4792 + 4796: 208(ptr) AccessChain 4674(texel) 207 + Store 4796 4795 + 4797: 337 Load 339(s2DArrayShadow) + 4798: 249(fvec4) Load 251(c4) + 4799: 52(float) Load 4257(lodClamp) + 4800: 52(float) CompositeExtract 4798 3 + 4801:6(float16_t) ImageSampleDrefImplicitLod 4797 4798 4800 ConstOffset MinLod 722 4799 + 4802: 208(ptr) AccessChain 4674(texel) 207 + 4803:6(float16_t) Load 4802 + 4804:6(float16_t) FAdd 4803 4801 + 4805: 208(ptr) AccessChain 4674(texel) 207 + Store 4805 4804 + 4806: 337 Load 339(s2DArrayShadow) + 4807:175(f16vec3) Load 177(f16c3) + 4808: 52(float) Load 215(compare) + 4809:6(float16_t) Load 4264(f16lodClamp) + 4810:6(float16_t) ImageSampleDrefImplicitLod 4806 4807 4808 ConstOffset MinLod 722 4809 + 4811: 208(ptr) AccessChain 4674(texel) 207 + 4812:6(float16_t) Load 4811 + 4813:6(float16_t) FAdd 4812 4810 + 4814: 208(ptr) AccessChain 4674(texel) 207 + Store 4814 4813 + 4815: 7(f16vec4) Load 4674(texel) + ReturnValue 4815 + FunctionEnd +107(testSparseTextureGradClamp(): 7(f16vec4) Function None 8 + 108: Label + 4818(texel): 64(ptr) Variable Function + Store 4818(texel) 121 + 4819: 143 Load 145(s2D) + 4820: 53(fvec2) Load 148(c2) + 4821: 53(fvec2) Load 1409(dPdxy2) + 4822: 53(fvec2) Load 1409(dPdxy2) + 4823: 52(float) Load 4257(lodClamp) + 4824:3102(ResType) ImageSparseSampleExplicitLod 4819 4820 Grad MinLod 4821 4822 4823 + 4825: 7(f16vec4) CompositeExtract 4824 1 + Store 4818(texel) 4825 + 4826: 47(int) CompositeExtract 4824 0 + 4827: 143 Load 145(s2D) + 4828:154(f16vec2) Load 156(f16c2) + 4829:154(f16vec2) Load 1417(f16dPdxy2) + 4830:154(f16vec2) Load 1417(f16dPdxy2) + 4831:6(float16_t) Load 4264(f16lodClamp) + 4832:3102(ResType) ImageSparseSampleExplicitLod 4827 4828 Grad MinLod 4829 4830 4831 + 4833: 7(f16vec4) CompositeExtract 4832 1 + Store 4818(texel) 4833 + 4834: 47(int) CompositeExtract 4832 0 + 4835: 163 Load 165(s3D) + 4836: 167(fvec3) Load 169(c3) + 4837: 167(fvec3) Load 1425(dPdxy3) + 4838: 167(fvec3) Load 1425(dPdxy3) + 4839: 52(float) Load 4257(lodClamp) + 4840:3102(ResType) ImageSparseSampleExplicitLod 4835 4836 Grad MinLod 4837 4838 4839 + 4841: 7(f16vec4) CompositeExtract 4840 1 + Store 4818(texel) 4841 + 4842: 47(int) CompositeExtract 4840 0 + 4843: 163 Load 165(s3D) + 4844:175(f16vec3) Load 177(f16c3) + 4845:175(f16vec3) Load 1433(f16dPdxy3) + 4846:175(f16vec3) Load 1433(f16dPdxy3) + 4847:6(float16_t) Load 4264(f16lodClamp) + 4848:3102(ResType) ImageSparseSampleExplicitLod 4843 4844 Grad MinLod 4845 4846 4847 + 4849: 7(f16vec4) CompositeExtract 4848 1 + Store 4818(texel) 4849 + 4850: 47(int) CompositeExtract 4848 0 + 4851: 184 Load 186(sCube) + 4852: 167(fvec3) Load 169(c3) + 4853: 167(fvec3) Load 1425(dPdxy3) + 4854: 167(fvec3) Load 1425(dPdxy3) + 4855: 52(float) Load 4257(lodClamp) + 4856:3102(ResType) ImageSparseSampleExplicitLod 4851 4852 Grad MinLod 4853 4854 4855 + 4857: 7(f16vec4) CompositeExtract 4856 1 + Store 4818(texel) 4857 + 4858: 47(int) CompositeExtract 4856 0 + 4859: 184 Load 186(sCube) + 4860:175(f16vec3) Load 177(f16c3) + 4861:175(f16vec3) Load 1433(f16dPdxy3) + 4862:175(f16vec3) Load 1433(f16dPdxy3) + 4863:6(float16_t) Load 4264(f16lodClamp) + 4864:3102(ResType) ImageSparseSampleExplicitLod 4859 4860 Grad MinLod 4861 4862 4863 + 4865: 7(f16vec4) CompositeExtract 4864 1 + Store 4818(texel) 4865 + 4866: 47(int) CompositeExtract 4864 0 + 4867: 224 Load 226(s2DShadow) + 4868: 167(fvec3) Load 169(c3) + 4869: 53(fvec2) Load 1409(dPdxy2) + 4870: 53(fvec2) Load 1409(dPdxy2) + 4871: 52(float) Load 4257(lodClamp) + 4872: 208(ptr) AccessChain 4818(texel) 207 + 4873: 52(float) CompositeExtract 4868 2 + 4874:3138(ResType) ImageSparseSampleDrefExplicitLod 4867 4868 4873 Grad MinLod 4869 4870 4871 + 4875:6(float16_t) CompositeExtract 4874 1 + Store 4872 4875 + 4876: 47(int) CompositeExtract 4874 0 + 4877: 224 Load 226(s2DShadow) + 4878:154(f16vec2) Load 156(f16c2) + 4879: 52(float) Load 215(compare) + 4880:154(f16vec2) Load 1417(f16dPdxy2) + 4881:154(f16vec2) Load 1417(f16dPdxy2) + 4882:6(float16_t) Load 4264(f16lodClamp) + 4883: 208(ptr) AccessChain 4818(texel) 207 + 4884:3138(ResType) ImageSparseSampleDrefExplicitLod 4877 4878 4879 Grad MinLod 4880 4881 4882 + 4885:6(float16_t) CompositeExtract 4884 1 + Store 4883 4885 + 4886: 47(int) CompositeExtract 4884 0 + 4887: 245 Load 247(sCubeShadow) + 4888: 249(fvec4) Load 251(c4) + 4889: 167(fvec3) Load 1425(dPdxy3) + 4890: 167(fvec3) Load 1425(dPdxy3) + 4891: 52(float) Load 4257(lodClamp) + 4892: 208(ptr) AccessChain 4818(texel) 207 + 4893: 52(float) CompositeExtract 4888 3 + 4894:3138(ResType) ImageSparseSampleDrefExplicitLod 4887 4888 4893 Grad MinLod 4889 4890 4891 + 4895:6(float16_t) CompositeExtract 4894 1 + Store 4892 4895 + 4896: 47(int) CompositeExtract 4894 0 + 4897: 245 Load 247(sCubeShadow) + 4898:175(f16vec3) Load 177(f16c3) + 4899: 52(float) Load 215(compare) + 4900:175(f16vec3) Load 1433(f16dPdxy3) + 4901:175(f16vec3) Load 1433(f16dPdxy3) + 4902:6(float16_t) Load 4264(f16lodClamp) + 4903: 208(ptr) AccessChain 4818(texel) 207 + 4904:3138(ResType) ImageSparseSampleDrefExplicitLod 4897 4898 4899 Grad MinLod 4900 4901 4902 + 4905:6(float16_t) CompositeExtract 4904 1 + Store 4903 4905 + 4906: 47(int) CompositeExtract 4904 0 + 4907: 284 Load 286(s2DArray) + 4908: 167(fvec3) Load 169(c3) + 4909: 53(fvec2) Load 1409(dPdxy2) + 4910: 53(fvec2) Load 1409(dPdxy2) + 4911: 52(float) Load 4257(lodClamp) + 4912:3102(ResType) ImageSparseSampleExplicitLod 4907 4908 Grad MinLod 4909 4910 4911 + 4913: 7(f16vec4) CompositeExtract 4912 1 + Store 4818(texel) 4913 + 4914: 47(int) CompositeExtract 4912 0 + 4915: 284 Load 286(s2DArray) + 4916:175(f16vec3) Load 177(f16c3) + 4917:154(f16vec2) Load 1417(f16dPdxy2) + 4918:154(f16vec2) Load 1417(f16dPdxy2) + 4919:6(float16_t) Load 4264(f16lodClamp) + 4920:3102(ResType) ImageSparseSampleExplicitLod 4915 4916 Grad MinLod 4917 4918 4919 + 4921: 7(f16vec4) CompositeExtract 4920 1 + Store 4818(texel) 4921 + 4922: 47(int) CompositeExtract 4920 0 + 4923: 337 Load 339(s2DArrayShadow) + 4924: 249(fvec4) Load 251(c4) + 4925: 53(fvec2) Load 1409(dPdxy2) + 4926: 53(fvec2) Load 1409(dPdxy2) + 4927: 52(float) Load 4257(lodClamp) + 4928: 208(ptr) AccessChain 4818(texel) 207 + 4929: 52(float) CompositeExtract 4924 3 + 4930:3138(ResType) ImageSparseSampleDrefExplicitLod 4923 4924 4929 Grad MinLod 4925 4926 4927 + 4931:6(float16_t) CompositeExtract 4930 1 + Store 4928 4931 + 4932: 47(int) CompositeExtract 4930 0 + 4933: 337 Load 339(s2DArrayShadow) + 4934:175(f16vec3) Load 177(f16c3) + 4935: 52(float) Load 215(compare) + 4936:154(f16vec2) Load 1417(f16dPdxy2) + 4937:154(f16vec2) Load 1417(f16dPdxy2) + 4938:6(float16_t) Load 4264(f16lodClamp) + 4939: 208(ptr) AccessChain 4818(texel) 207 + 4940:3138(ResType) ImageSparseSampleDrefExplicitLod 4933 4934 4935 Grad MinLod 4936 4937 4938 + 4941:6(float16_t) CompositeExtract 4940 1 + Store 4939 4941 + 4942: 47(int) CompositeExtract 4940 0 + 4943: 299 Load 301(sCubeArray) + 4944: 249(fvec4) Load 251(c4) + 4945: 167(fvec3) Load 1425(dPdxy3) + 4946: 167(fvec3) Load 1425(dPdxy3) + 4947: 52(float) Load 4257(lodClamp) + 4948:3102(ResType) ImageSparseSampleExplicitLod 4943 4944 Grad MinLod 4945 4946 4947 + 4949: 7(f16vec4) CompositeExtract 4948 1 + Store 4818(texel) 4949 + 4950: 47(int) CompositeExtract 4948 0 + 4951: 299 Load 301(sCubeArray) + 4952: 7(f16vec4) Load 309(f16c4) + 4953:175(f16vec3) Load 1433(f16dPdxy3) + 4954:175(f16vec3) Load 1433(f16dPdxy3) + 4955:6(float16_t) Load 4264(f16lodClamp) + 4956:3102(ResType) ImageSparseSampleExplicitLod 4951 4952 Grad MinLod 4953 4954 4955 + 4957: 7(f16vec4) CompositeExtract 4956 1 + Store 4818(texel) 4957 + 4958: 47(int) CompositeExtract 4956 0 + 4959: 7(f16vec4) Load 4818(texel) + ReturnValue 4959 + FunctionEnd +109(testTextureGradClamp(): 7(f16vec4) Function None 8 + 110: Label + 4962(texel): 64(ptr) Variable Function + Store 4962(texel) 121 + 4963: 123 Load 125(s1D) + 4964: 52(float) Load 128(c1) + 4965: 52(float) Load 1393(dPdxy1) + 4966: 52(float) Load 1393(dPdxy1) + 4967: 52(float) Load 4257(lodClamp) + 4968: 7(f16vec4) ImageSampleExplicitLod 4963 4964 Grad MinLod 4965 4966 4967 + 4969: 7(f16vec4) Load 4962(texel) + 4970: 7(f16vec4) FAdd 4969 4968 + Store 4962(texel) 4970 + 4971: 123 Load 125(s1D) + 4972:6(float16_t) Load 135(f16c1) + 4973:6(float16_t) Load 1401(f16dPdxy1) + 4974:6(float16_t) Load 1401(f16dPdxy1) + 4975:6(float16_t) Load 4264(f16lodClamp) + 4976: 7(f16vec4) ImageSampleExplicitLod 4971 4972 Grad MinLod 4973 4974 4975 + 4977: 7(f16vec4) Load 4962(texel) + 4978: 7(f16vec4) FAdd 4977 4976 + Store 4962(texel) 4978 + 4979: 143 Load 145(s2D) + 4980: 53(fvec2) Load 148(c2) + 4981: 53(fvec2) Load 1409(dPdxy2) + 4982: 53(fvec2) Load 1409(dPdxy2) + 4983: 52(float) Load 4257(lodClamp) + 4984: 7(f16vec4) ImageSampleExplicitLod 4979 4980 Grad MinLod 4981 4982 4983 + 4985: 7(f16vec4) Load 4962(texel) + 4986: 7(f16vec4) FAdd 4985 4984 + Store 4962(texel) 4986 + 4987: 143 Load 145(s2D) + 4988:154(f16vec2) Load 156(f16c2) + 4989:154(f16vec2) Load 1417(f16dPdxy2) + 4990:154(f16vec2) Load 1417(f16dPdxy2) + 4991:6(float16_t) Load 4264(f16lodClamp) + 4992: 7(f16vec4) ImageSampleExplicitLod 4987 4988 Grad MinLod 4989 4990 4991 + 4993: 7(f16vec4) Load 4962(texel) + 4994: 7(f16vec4) FAdd 4993 4992 + Store 4962(texel) 4994 + 4995: 163 Load 165(s3D) + 4996: 167(fvec3) Load 169(c3) + 4997: 167(fvec3) Load 1425(dPdxy3) + 4998: 167(fvec3) Load 1425(dPdxy3) + 4999: 52(float) Load 4257(lodClamp) + 5000: 7(f16vec4) ImageSampleExplicitLod 4995 4996 Grad MinLod 4997 4998 4999 + 5001: 7(f16vec4) Load 4962(texel) + 5002: 7(f16vec4) FAdd 5001 5000 + Store 4962(texel) 5002 + 5003: 163 Load 165(s3D) + 5004:175(f16vec3) Load 177(f16c3) + 5005:175(f16vec3) Load 1433(f16dPdxy3) + 5006:175(f16vec3) Load 1433(f16dPdxy3) + 5007:6(float16_t) Load 4264(f16lodClamp) + 5008: 7(f16vec4) ImageSampleExplicitLod 5003 5004 Grad MinLod 5005 5006 5007 + 5009: 7(f16vec4) Load 4962(texel) + 5010: 7(f16vec4) FAdd 5009 5008 + Store 4962(texel) 5010 + 5011: 184 Load 186(sCube) + 5012: 167(fvec3) Load 169(c3) + 5013: 167(fvec3) Load 1425(dPdxy3) + 5014: 167(fvec3) Load 1425(dPdxy3) + 5015: 52(float) Load 4257(lodClamp) + 5016: 7(f16vec4) ImageSampleExplicitLod 5011 5012 Grad MinLod 5013 5014 5015 + 5017: 7(f16vec4) Load 4962(texel) + 5018: 7(f16vec4) FAdd 5017 5016 + Store 4962(texel) 5018 + 5019: 184 Load 186(sCube) + 5020:175(f16vec3) Load 177(f16c3) + 5021:175(f16vec3) Load 1433(f16dPdxy3) + 5022:175(f16vec3) Load 1433(f16dPdxy3) + 5023:6(float16_t) Load 4264(f16lodClamp) + 5024: 7(f16vec4) ImageSampleExplicitLod 5019 5020 Grad MinLod 5021 5022 5023 + 5025: 7(f16vec4) Load 4962(texel) + 5026: 7(f16vec4) FAdd 5025 5024 + Store 4962(texel) 5026 + 5027: 199 Load 201(s1DShadow) + 5028: 167(fvec3) Load 169(c3) + 5029: 52(float) Load 1393(dPdxy1) + 5030: 52(float) Load 1393(dPdxy1) + 5031: 52(float) Load 4257(lodClamp) + 5032: 52(float) CompositeExtract 5028 2 + 5033:6(float16_t) ImageSampleDrefExplicitLod 5027 5028 5032 Grad MinLod 5029 5030 5031 + 5034: 208(ptr) AccessChain 4962(texel) 207 + 5035:6(float16_t) Load 5034 + 5036:6(float16_t) FAdd 5035 5033 + 5037: 208(ptr) AccessChain 4962(texel) 207 + Store 5037 5036 + 5038: 199 Load 201(s1DShadow) + 5039:154(f16vec2) Load 156(f16c2) + 5040: 52(float) Load 215(compare) + 5041:6(float16_t) Load 1401(f16dPdxy1) + 5042:6(float16_t) Load 1401(f16dPdxy1) + 5043:6(float16_t) Load 4264(f16lodClamp) + 5044:6(float16_t) ImageSampleDrefExplicitLod 5038 5039 5040 Grad MinLod 5041 5042 5043 + 5045: 208(ptr) AccessChain 4962(texel) 207 + 5046:6(float16_t) Load 5045 + 5047:6(float16_t) FAdd 5046 5044 + 5048: 208(ptr) AccessChain 4962(texel) 207 + Store 5048 5047 + 5049: 224 Load 226(s2DShadow) + 5050: 167(fvec3) Load 169(c3) + 5051: 53(fvec2) Load 1409(dPdxy2) + 5052: 53(fvec2) Load 1409(dPdxy2) + 5053: 52(float) Load 4257(lodClamp) + 5054: 52(float) CompositeExtract 5050 2 + 5055:6(float16_t) ImageSampleDrefExplicitLod 5049 5050 5054 Grad MinLod 5051 5052 5053 + 5056: 208(ptr) AccessChain 4962(texel) 207 + 5057:6(float16_t) Load 5056 + 5058:6(float16_t) FAdd 5057 5055 + 5059: 208(ptr) AccessChain 4962(texel) 207 + Store 5059 5058 + 5060: 224 Load 226(s2DShadow) + 5061:154(f16vec2) Load 156(f16c2) + 5062: 52(float) Load 215(compare) + 5063:154(f16vec2) Load 1417(f16dPdxy2) + 5064:154(f16vec2) Load 1417(f16dPdxy2) + 5065:6(float16_t) Load 4264(f16lodClamp) + 5066:6(float16_t) ImageSampleDrefExplicitLod 5060 5061 5062 Grad MinLod 5063 5064 5065 + 5067: 208(ptr) AccessChain 4962(texel) 207 + 5068:6(float16_t) Load 5067 + 5069:6(float16_t) FAdd 5068 5066 + 5070: 208(ptr) AccessChain 4962(texel) 207 + Store 5070 5069 + 5071: 245 Load 247(sCubeShadow) + 5072: 249(fvec4) Load 251(c4) + 5073: 167(fvec3) Load 1425(dPdxy3) + 5074: 167(fvec3) Load 1425(dPdxy3) + 5075: 52(float) Load 4257(lodClamp) + 5076: 52(float) CompositeExtract 5072 3 + 5077:6(float16_t) ImageSampleDrefExplicitLod 5071 5072 5076 Grad MinLod 5073 5074 5075 + 5078: 208(ptr) AccessChain 4962(texel) 207 + 5079:6(float16_t) Load 5078 + 5080:6(float16_t) FAdd 5079 5077 + 5081: 208(ptr) AccessChain 4962(texel) 207 + Store 5081 5080 + 5082: 245 Load 247(sCubeShadow) + 5083:175(f16vec3) Load 177(f16c3) + 5084: 52(float) Load 215(compare) + 5085:175(f16vec3) Load 1433(f16dPdxy3) + 5086:175(f16vec3) Load 1433(f16dPdxy3) + 5087:6(float16_t) Load 4264(f16lodClamp) + 5088:6(float16_t) ImageSampleDrefExplicitLod 5082 5083 5084 Grad MinLod 5085 5086 5087 + 5089: 208(ptr) AccessChain 4962(texel) 207 + 5090:6(float16_t) Load 5089 + 5091:6(float16_t) FAdd 5090 5088 + 5092: 208(ptr) AccessChain 4962(texel) 207 + Store 5092 5091 + 5093: 269 Load 271(s1DArray) + 5094: 53(fvec2) Load 148(c2) + 5095: 52(float) Load 1393(dPdxy1) + 5096: 52(float) Load 1393(dPdxy1) + 5097: 52(float) Load 4257(lodClamp) + 5098: 7(f16vec4) ImageSampleExplicitLod 5093 5094 Grad MinLod 5095 5096 5097 + 5099: 7(f16vec4) Load 4962(texel) + 5100: 7(f16vec4) FAdd 5099 5098 + Store 4962(texel) 5100 + 5101: 269 Load 271(s1DArray) + 5102:154(f16vec2) Load 156(f16c2) + 5103:6(float16_t) Load 1401(f16dPdxy1) + 5104:6(float16_t) Load 1401(f16dPdxy1) + 5105:6(float16_t) Load 4264(f16lodClamp) + 5106: 7(f16vec4) ImageSampleExplicitLod 5101 5102 Grad MinLod 5103 5104 5105 + 5107: 7(f16vec4) Load 4962(texel) + 5108: 7(f16vec4) FAdd 5107 5106 + Store 4962(texel) 5108 + 5109: 284 Load 286(s2DArray) + 5110: 167(fvec3) Load 169(c3) + 5111: 53(fvec2) Load 1409(dPdxy2) + 5112: 53(fvec2) Load 1409(dPdxy2) + 5113: 52(float) Load 4257(lodClamp) + 5114: 7(f16vec4) ImageSampleExplicitLod 5109 5110 Grad MinLod 5111 5112 5113 + 5115: 7(f16vec4) Load 4962(texel) + 5116: 7(f16vec4) FAdd 5115 5114 + Store 4962(texel) 5116 + 5117: 284 Load 286(s2DArray) + 5118:175(f16vec3) Load 177(f16c3) + 5119:154(f16vec2) Load 1417(f16dPdxy2) + 5120:154(f16vec2) Load 1417(f16dPdxy2) + 5121:6(float16_t) Load 4264(f16lodClamp) + 5122: 7(f16vec4) ImageSampleExplicitLod 5117 5118 Grad MinLod 5119 5120 5121 + 5123: 7(f16vec4) Load 4962(texel) + 5124: 7(f16vec4) FAdd 5123 5122 + Store 4962(texel) 5124 + 5125: 316 Load 318(s1DArrayShadow) + 5126: 167(fvec3) Load 169(c3) + 5127: 52(float) Load 1393(dPdxy1) + 5128: 52(float) Load 1393(dPdxy1) + 5129: 52(float) Load 4257(lodClamp) + 5130: 52(float) CompositeExtract 5126 2 + 5131:6(float16_t) ImageSampleDrefExplicitLod 5125 5126 5130 Grad MinLod 5127 5128 5129 + 5132: 208(ptr) AccessChain 4962(texel) 207 + 5133:6(float16_t) Load 5132 + 5134:6(float16_t) FAdd 5133 5131 + 5135: 208(ptr) AccessChain 4962(texel) 207 + Store 5135 5134 + 5136: 316 Load 318(s1DArrayShadow) + 5137:154(f16vec2) Load 156(f16c2) + 5138: 52(float) Load 215(compare) + 5139:6(float16_t) Load 1401(f16dPdxy1) + 5140:6(float16_t) Load 1401(f16dPdxy1) + 5141:6(float16_t) Load 4264(f16lodClamp) + 5142:6(float16_t) ImageSampleDrefExplicitLod 5136 5137 5138 Grad MinLod 5139 5140 5141 + 5143: 208(ptr) AccessChain 4962(texel) 207 + 5144:6(float16_t) Load 5143 + 5145:6(float16_t) FAdd 5144 5142 + 5146: 208(ptr) AccessChain 4962(texel) 207 + Store 5146 5145 + 5147: 337 Load 339(s2DArrayShadow) + 5148: 249(fvec4) Load 251(c4) + 5149: 53(fvec2) Load 1409(dPdxy2) + 5150: 53(fvec2) Load 1409(dPdxy2) + 5151: 52(float) Load 4257(lodClamp) + 5152: 52(float) CompositeExtract 5148 3 + 5153:6(float16_t) ImageSampleDrefExplicitLod 5147 5148 5152 Grad MinLod 5149 5150 5151 + 5154: 208(ptr) AccessChain 4962(texel) 207 + 5155:6(float16_t) Load 5154 + 5156:6(float16_t) FAdd 5155 5153 + 5157: 208(ptr) AccessChain 4962(texel) 207 + Store 5157 5156 + 5158: 337 Load 339(s2DArrayShadow) + 5159:175(f16vec3) Load 177(f16c3) + 5160: 52(float) Load 215(compare) + 5161:154(f16vec2) Load 1417(f16dPdxy2) + 5162:154(f16vec2) Load 1417(f16dPdxy2) + 5163:6(float16_t) Load 4264(f16lodClamp) + 5164:6(float16_t) ImageSampleDrefExplicitLod 5158 5159 5160 Grad MinLod 5161 5162 5163 + 5165: 208(ptr) AccessChain 4962(texel) 207 + 5166:6(float16_t) Load 5165 + 5167:6(float16_t) FAdd 5166 5164 + 5168: 208(ptr) AccessChain 4962(texel) 207 + Store 5168 5167 + 5169: 299 Load 301(sCubeArray) + 5170: 249(fvec4) Load 251(c4) + 5171: 167(fvec3) Load 1425(dPdxy3) + 5172: 167(fvec3) Load 1425(dPdxy3) + 5173: 52(float) Load 4257(lodClamp) + 5174: 7(f16vec4) ImageSampleExplicitLod 5169 5170 Grad MinLod 5171 5172 5173 + 5175: 7(f16vec4) Load 4962(texel) + 5176: 7(f16vec4) FAdd 5175 5174 + Store 4962(texel) 5176 + 5177: 299 Load 301(sCubeArray) + 5178: 7(f16vec4) Load 309(f16c4) + 5179:175(f16vec3) Load 1433(f16dPdxy3) + 5180:175(f16vec3) Load 1433(f16dPdxy3) + 5181:6(float16_t) Load 4264(f16lodClamp) + 5182: 7(f16vec4) ImageSampleExplicitLod 5177 5178 Grad MinLod 5179 5180 5181 + 5183: 7(f16vec4) Load 4962(texel) + 5184: 7(f16vec4) FAdd 5183 5182 + Store 4962(texel) 5184 + 5185: 7(f16vec4) Load 4962(texel) + ReturnValue 5185 + FunctionEnd +111(testSparseTextureGradOffsetClamp(): 7(f16vec4) Function None 8 + 112: Label + 5188(texel): 64(ptr) Variable Function + Store 5188(texel) 121 + 5189: 143 Load 145(s2D) + 5190: 53(fvec2) Load 148(c2) + 5191: 53(fvec2) Load 1409(dPdxy2) + 5192: 53(fvec2) Load 1409(dPdxy2) + 5193: 52(float) Load 4257(lodClamp) + 5194:3102(ResType) ImageSparseSampleExplicitLod 5189 5190 Grad ConstOffset MinLod 5191 5192 722 5193 + 5195: 7(f16vec4) CompositeExtract 5194 1 + Store 5188(texel) 5195 + 5196: 47(int) CompositeExtract 5194 0 + 5197: 143 Load 145(s2D) + 5198:154(f16vec2) Load 156(f16c2) + 5199:154(f16vec2) Load 1417(f16dPdxy2) + 5200:154(f16vec2) Load 1417(f16dPdxy2) + 5201:6(float16_t) Load 4264(f16lodClamp) + 5202:3102(ResType) ImageSparseSampleExplicitLod 5197 5198 Grad ConstOffset MinLod 5199 5200 722 5201 + 5203: 7(f16vec4) CompositeExtract 5202 1 + Store 5188(texel) 5203 + 5204: 47(int) CompositeExtract 5202 0 + 5205: 163 Load 165(s3D) + 5206: 167(fvec3) Load 169(c3) + 5207: 167(fvec3) Load 1425(dPdxy3) + 5208: 167(fvec3) Load 1425(dPdxy3) + 5209: 52(float) Load 4257(lodClamp) + 5210:3102(ResType) ImageSparseSampleExplicitLod 5205 5206 Grad ConstOffset MinLod 5207 5208 735 5209 + 5211: 7(f16vec4) CompositeExtract 5210 1 + Store 5188(texel) 5211 + 5212: 47(int) CompositeExtract 5210 0 + 5213: 163 Load 165(s3D) + 5214:175(f16vec3) Load 177(f16c3) + 5215:175(f16vec3) Load 1433(f16dPdxy3) + 5216:175(f16vec3) Load 1433(f16dPdxy3) + 5217:6(float16_t) Load 4264(f16lodClamp) + 5218:3102(ResType) ImageSparseSampleExplicitLod 5213 5214 Grad ConstOffset MinLod 5215 5216 735 5217 + 5219: 7(f16vec4) CompositeExtract 5218 1 + Store 5188(texel) 5219 + 5220: 47(int) CompositeExtract 5218 0 + 5221: 224 Load 226(s2DShadow) + 5222: 167(fvec3) Load 169(c3) + 5223: 53(fvec2) Load 1409(dPdxy2) + 5224: 53(fvec2) Load 1409(dPdxy2) + 5225: 52(float) Load 4257(lodClamp) + 5226: 208(ptr) AccessChain 5188(texel) 207 + 5227: 52(float) CompositeExtract 5222 2 + 5228:3138(ResType) ImageSparseSampleDrefExplicitLod 5221 5222 5227 Grad ConstOffset MinLod 5223 5224 722 5225 + 5229:6(float16_t) CompositeExtract 5228 1 + Store 5226 5229 + 5230: 47(int) CompositeExtract 5228 0 + 5231: 224 Load 226(s2DShadow) + 5232:154(f16vec2) Load 156(f16c2) + 5233: 52(float) Load 215(compare) + 5234:154(f16vec2) Load 1417(f16dPdxy2) + 5235:154(f16vec2) Load 1417(f16dPdxy2) + 5236:6(float16_t) Load 4264(f16lodClamp) + 5237: 208(ptr) AccessChain 5188(texel) 207 + 5238:3138(ResType) ImageSparseSampleDrefExplicitLod 5231 5232 5233 Grad ConstOffset MinLod 5234 5235 722 5236 + 5239:6(float16_t) CompositeExtract 5238 1 + Store 5237 5239 + 5240: 47(int) CompositeExtract 5238 0 + 5241: 284 Load 286(s2DArray) + 5242: 167(fvec3) Load 169(c3) + 5243: 53(fvec2) Load 1409(dPdxy2) + 5244: 53(fvec2) Load 1409(dPdxy2) + 5245: 52(float) Load 4257(lodClamp) + 5246:3102(ResType) ImageSparseSampleExplicitLod 5241 5242 Grad ConstOffset MinLod 5243 5244 722 5245 + 5247: 7(f16vec4) CompositeExtract 5246 1 + Store 5188(texel) 5247 + 5248: 47(int) CompositeExtract 5246 0 + 5249: 284 Load 286(s2DArray) + 5250:175(f16vec3) Load 177(f16c3) + 5251:154(f16vec2) Load 1417(f16dPdxy2) + 5252:154(f16vec2) Load 1417(f16dPdxy2) + 5253:6(float16_t) Load 4264(f16lodClamp) + 5254:3102(ResType) ImageSparseSampleExplicitLod 5249 5250 Grad ConstOffset MinLod 5251 5252 722 5253 + 5255: 7(f16vec4) CompositeExtract 5254 1 + Store 5188(texel) 5255 + 5256: 47(int) CompositeExtract 5254 0 + 5257: 337 Load 339(s2DArrayShadow) + 5258: 249(fvec4) Load 251(c4) + 5259: 53(fvec2) Load 1409(dPdxy2) + 5260: 53(fvec2) Load 1409(dPdxy2) + 5261: 52(float) Load 4257(lodClamp) + 5262: 208(ptr) AccessChain 5188(texel) 207 + 5263: 52(float) CompositeExtract 5258 3 + 5264:3138(ResType) ImageSparseSampleDrefExplicitLod 5257 5258 5263 Grad ConstOffset MinLod 5259 5260 722 5261 + 5265:6(float16_t) CompositeExtract 5264 1 + Store 5262 5265 + 5266: 47(int) CompositeExtract 5264 0 + 5267: 337 Load 339(s2DArrayShadow) + 5268:175(f16vec3) Load 177(f16c3) + 5269: 52(float) Load 215(compare) + 5270:154(f16vec2) Load 1417(f16dPdxy2) + 5271:154(f16vec2) Load 1417(f16dPdxy2) + 5272:6(float16_t) Load 4264(f16lodClamp) + 5273: 208(ptr) AccessChain 5188(texel) 207 + 5274:3138(ResType) ImageSparseSampleDrefExplicitLod 5267 5268 5269 Grad ConstOffset MinLod 5270 5271 722 5272 + 5275:6(float16_t) CompositeExtract 5274 1 + Store 5273 5275 + 5276: 47(int) CompositeExtract 5274 0 + 5277: 7(f16vec4) Load 5188(texel) + ReturnValue 5277 + FunctionEnd +113(testTextureGradOffsetClamp(): 7(f16vec4) Function None 8 + 114: Label + 5280(texel): 64(ptr) Variable Function + Store 5280(texel) 121 + 5281: 123 Load 125(s1D) + 5282: 52(float) Load 128(c1) + 5283: 52(float) Load 1393(dPdxy1) + 5284: 52(float) Load 1393(dPdxy1) + 5285: 52(float) Load 4257(lodClamp) + 5286: 7(f16vec4) ImageSampleExplicitLod 5281 5282 Grad ConstOffset MinLod 5283 5284 709 5285 + 5287: 7(f16vec4) Load 5280(texel) + 5288: 7(f16vec4) FAdd 5287 5286 + Store 5280(texel) 5288 + 5289: 123 Load 125(s1D) + 5290:6(float16_t) Load 135(f16c1) + 5291:6(float16_t) Load 1401(f16dPdxy1) + 5292:6(float16_t) Load 1401(f16dPdxy1) + 5293:6(float16_t) Load 4264(f16lodClamp) + 5294: 7(f16vec4) ImageSampleExplicitLod 5289 5290 Grad ConstOffset MinLod 5291 5292 709 5293 + 5295: 7(f16vec4) Load 5280(texel) + 5296: 7(f16vec4) FAdd 5295 5294 + Store 5280(texel) 5296 + 5297: 143 Load 145(s2D) + 5298: 53(fvec2) Load 148(c2) + 5299: 53(fvec2) Load 1409(dPdxy2) + 5300: 53(fvec2) Load 1409(dPdxy2) + 5301: 52(float) Load 4257(lodClamp) + 5302: 7(f16vec4) ImageSampleExplicitLod 5297 5298 Grad ConstOffset MinLod 5299 5300 722 5301 + 5303: 7(f16vec4) Load 5280(texel) + 5304: 7(f16vec4) FAdd 5303 5302 + Store 5280(texel) 5304 + 5305: 143 Load 145(s2D) + 5306:154(f16vec2) Load 156(f16c2) + 5307:154(f16vec2) Load 1417(f16dPdxy2) + 5308:154(f16vec2) Load 1417(f16dPdxy2) + 5309:6(float16_t) Load 4264(f16lodClamp) + 5310: 7(f16vec4) ImageSampleExplicitLod 5305 5306 Grad ConstOffset MinLod 5307 5308 722 5309 + 5311: 7(f16vec4) Load 5280(texel) + 5312: 7(f16vec4) FAdd 5311 5310 + Store 5280(texel) 5312 + 5313: 163 Load 165(s3D) + 5314: 167(fvec3) Load 169(c3) + 5315: 167(fvec3) Load 1425(dPdxy3) + 5316: 167(fvec3) Load 1425(dPdxy3) + 5317: 52(float) Load 4257(lodClamp) + 5318: 7(f16vec4) ImageSampleExplicitLod 5313 5314 Grad ConstOffset MinLod 5315 5316 735 5317 + 5319: 7(f16vec4) Load 5280(texel) + 5320: 7(f16vec4) FAdd 5319 5318 + Store 5280(texel) 5320 + 5321: 163 Load 165(s3D) + 5322:175(f16vec3) Load 177(f16c3) + 5323:175(f16vec3) Load 1433(f16dPdxy3) + 5324:175(f16vec3) Load 1433(f16dPdxy3) + 5325:6(float16_t) Load 4264(f16lodClamp) + 5326: 7(f16vec4) ImageSampleExplicitLod 5321 5322 Grad ConstOffset MinLod 5323 5324 735 5325 + 5327: 7(f16vec4) Load 5280(texel) + 5328: 7(f16vec4) FAdd 5327 5326 + Store 5280(texel) 5328 + 5329: 199 Load 201(s1DShadow) + 5330: 167(fvec3) Load 169(c3) + 5331: 52(float) Load 1393(dPdxy1) + 5332: 52(float) Load 1393(dPdxy1) + 5333: 52(float) Load 4257(lodClamp) + 5334: 52(float) CompositeExtract 5330 2 + 5335:6(float16_t) ImageSampleDrefExplicitLod 5329 5330 5334 Grad ConstOffset MinLod 5331 5332 709 5333 + 5336: 208(ptr) AccessChain 5280(texel) 207 + 5337:6(float16_t) Load 5336 + 5338:6(float16_t) FAdd 5337 5335 + 5339: 208(ptr) AccessChain 5280(texel) 207 + Store 5339 5338 + 5340: 199 Load 201(s1DShadow) + 5341:154(f16vec2) Load 156(f16c2) + 5342: 52(float) Load 215(compare) + 5343:6(float16_t) Load 1401(f16dPdxy1) + 5344:6(float16_t) Load 1401(f16dPdxy1) + 5345:6(float16_t) Load 4264(f16lodClamp) + 5346:6(float16_t) ImageSampleDrefExplicitLod 5340 5341 5342 Grad ConstOffset MinLod 5343 5344 709 5345 + 5347: 208(ptr) AccessChain 5280(texel) 207 + 5348:6(float16_t) Load 5347 + 5349:6(float16_t) FAdd 5348 5346 + 5350: 208(ptr) AccessChain 5280(texel) 207 + Store 5350 5349 + 5351: 224 Load 226(s2DShadow) + 5352: 167(fvec3) Load 169(c3) + 5353: 53(fvec2) Load 1409(dPdxy2) + 5354: 53(fvec2) Load 1409(dPdxy2) + 5355: 52(float) Load 4257(lodClamp) + 5356: 52(float) CompositeExtract 5352 2 + 5357:6(float16_t) ImageSampleDrefExplicitLod 5351 5352 5356 Grad ConstOffset MinLod 5353 5354 722 5355 + 5358: 208(ptr) AccessChain 5280(texel) 207 + 5359:6(float16_t) Load 5358 + 5360:6(float16_t) FAdd 5359 5357 + 5361: 208(ptr) AccessChain 5280(texel) 207 + Store 5361 5360 + 5362: 224 Load 226(s2DShadow) + 5363:154(f16vec2) Load 156(f16c2) + 5364: 52(float) Load 215(compare) + 5365:154(f16vec2) Load 1417(f16dPdxy2) + 5366:154(f16vec2) Load 1417(f16dPdxy2) + 5367:6(float16_t) Load 4264(f16lodClamp) + 5368:6(float16_t) ImageSampleDrefExplicitLod 5362 5363 5364 Grad ConstOffset MinLod 5365 5366 722 5367 + 5369: 208(ptr) AccessChain 5280(texel) 207 + 5370:6(float16_t) Load 5369 + 5371:6(float16_t) FAdd 5370 5368 + 5372: 208(ptr) AccessChain 5280(texel) 207 + Store 5372 5371 + 5373: 269 Load 271(s1DArray) + 5374: 53(fvec2) Load 148(c2) + 5375: 52(float) Load 1393(dPdxy1) + 5376: 52(float) Load 1393(dPdxy1) + 5377: 52(float) Load 4257(lodClamp) + 5378: 7(f16vec4) ImageSampleExplicitLod 5373 5374 Grad ConstOffset MinLod 5375 5376 709 5377 + 5379: 7(f16vec4) Load 5280(texel) + 5380: 7(f16vec4) FAdd 5379 5378 + Store 5280(texel) 5380 + 5381: 269 Load 271(s1DArray) + 5382:154(f16vec2) Load 156(f16c2) + 5383:6(float16_t) Load 1401(f16dPdxy1) + 5384:6(float16_t) Load 1401(f16dPdxy1) + 5385:6(float16_t) Load 4264(f16lodClamp) + 5386: 7(f16vec4) ImageSampleExplicitLod 5381 5382 Grad ConstOffset MinLod 5383 5384 709 5385 + 5387: 7(f16vec4) Load 5280(texel) + 5388: 7(f16vec4) FAdd 5387 5386 + Store 5280(texel) 5388 + 5389: 284 Load 286(s2DArray) + 5390: 167(fvec3) Load 169(c3) + 5391: 53(fvec2) Load 1409(dPdxy2) + 5392: 53(fvec2) Load 1409(dPdxy2) + 5393: 52(float) Load 4257(lodClamp) + 5394: 7(f16vec4) ImageSampleExplicitLod 5389 5390 Grad ConstOffset MinLod 5391 5392 722 5393 + 5395: 7(f16vec4) Load 5280(texel) + 5396: 7(f16vec4) FAdd 5395 5394 + Store 5280(texel) 5396 + 5397: 284 Load 286(s2DArray) + 5398:175(f16vec3) Load 177(f16c3) + 5399:154(f16vec2) Load 1417(f16dPdxy2) + 5400:154(f16vec2) Load 1417(f16dPdxy2) + 5401:6(float16_t) Load 4264(f16lodClamp) + 5402: 7(f16vec4) ImageSampleExplicitLod 5397 5398 Grad ConstOffset MinLod 5399 5400 722 5401 + 5403: 7(f16vec4) Load 5280(texel) + 5404: 7(f16vec4) FAdd 5403 5402 + Store 5280(texel) 5404 + 5405: 316 Load 318(s1DArrayShadow) + 5406: 167(fvec3) Load 169(c3) + 5407: 52(float) Load 1393(dPdxy1) + 5408: 52(float) Load 1393(dPdxy1) + 5409: 52(float) Load 4257(lodClamp) + 5410: 52(float) CompositeExtract 5406 2 + 5411:6(float16_t) ImageSampleDrefExplicitLod 5405 5406 5410 Grad ConstOffset MinLod 5407 5408 709 5409 + 5412: 208(ptr) AccessChain 5280(texel) 207 + 5413:6(float16_t) Load 5412 + 5414:6(float16_t) FAdd 5413 5411 + 5415: 208(ptr) AccessChain 5280(texel) 207 + Store 5415 5414 + 5416: 316 Load 318(s1DArrayShadow) + 5417:154(f16vec2) Load 156(f16c2) + 5418: 52(float) Load 215(compare) + 5419:6(float16_t) Load 1401(f16dPdxy1) + 5420:6(float16_t) Load 1401(f16dPdxy1) + 5421:6(float16_t) Load 4264(f16lodClamp) + 5422:6(float16_t) ImageSampleDrefExplicitLod 5416 5417 5418 Grad ConstOffset MinLod 5419 5420 709 5421 + 5423: 208(ptr) AccessChain 5280(texel) 207 + 5424:6(float16_t) Load 5423 + 5425:6(float16_t) FAdd 5424 5422 + 5426: 208(ptr) AccessChain 5280(texel) 207 + Store 5426 5425 + 5427: 337 Load 339(s2DArrayShadow) + 5428: 249(fvec4) Load 251(c4) + 5429: 53(fvec2) Load 1409(dPdxy2) + 5430: 53(fvec2) Load 1409(dPdxy2) + 5431: 52(float) Load 4257(lodClamp) + 5432: 52(float) CompositeExtract 5428 3 + 5433:6(float16_t) ImageSampleDrefExplicitLod 5427 5428 5432 Grad ConstOffset MinLod 5429 5430 722 5431 + 5434: 208(ptr) AccessChain 5280(texel) 207 + 5435:6(float16_t) Load 5434 + 5436:6(float16_t) FAdd 5435 5433 + 5437: 208(ptr) AccessChain 5280(texel) 207 + Store 5437 5436 + 5438: 337 Load 339(s2DArrayShadow) + 5439:175(f16vec3) Load 177(f16c3) + 5440: 52(float) Load 215(compare) + 5441:154(f16vec2) Load 1417(f16dPdxy2) + 5442:154(f16vec2) Load 1417(f16dPdxy2) + 5443:6(float16_t) Load 4264(f16lodClamp) + 5444:6(float16_t) ImageSampleDrefExplicitLod 5438 5439 5440 Grad ConstOffset MinLod 5441 5442 722 5443 + 5445: 208(ptr) AccessChain 5280(texel) 207 + 5446:6(float16_t) Load 5445 + 5447:6(float16_t) FAdd 5446 5444 + 5448: 208(ptr) AccessChain 5280(texel) 207 + Store 5448 5447 + 5449: 7(f16vec4) Load 5280(texel) + ReturnValue 5449 + FunctionEnd +115(testCombinedTextureSampler(): 7(f16vec4) Function None 8 + 116: Label + 5452(texel): 64(ptr) Variable Function + Store 5452(texel) 121 + 5455: 122 Load 5454(t1D) + 5459: 5456 Load 5458(s) + 5460: 123 SampledImage 5455 5459 + 5461: 52(float) Load 128(c1) + 5462: 7(f16vec4) ImageSampleImplicitLod 5460 5461 + 5463: 7(f16vec4) Load 5452(texel) + 5464: 7(f16vec4) FAdd 5463 5462 + Store 5452(texel) 5464 + 5465: 122 Load 5454(t1D) + 5466: 5456 Load 5458(s) + 5467: 123 SampledImage 5465 5466 + 5468:6(float16_t) Load 135(f16c1) + 5469:6(float16_t) Load 137(f16bias) + 5470: 7(f16vec4) ImageSampleImplicitLod 5467 5468 Bias 5469 + 5471: 7(f16vec4) Load 5452(texel) + 5472: 7(f16vec4) FAdd 5471 5470 + Store 5452(texel) 5472 + 5475: 142 Load 5474(t2D) + 5476: 5456 Load 5458(s) + 5477: 143 SampledImage 5475 5476 + 5478: 53(fvec2) Load 148(c2) + 5479: 7(f16vec4) ImageSampleImplicitLod 5477 5478 + 5480: 7(f16vec4) Load 5452(texel) + 5481: 7(f16vec4) FAdd 5480 5479 + Store 5452(texel) 5481 + 5482: 142 Load 5474(t2D) + 5483: 5456 Load 5458(s) + 5484: 143 SampledImage 5482 5483 + 5485:154(f16vec2) Load 156(f16c2) + 5486:6(float16_t) Load 137(f16bias) + 5487: 7(f16vec4) ImageSampleImplicitLod 5484 5485 Bias 5486 + 5488: 7(f16vec4) Load 5452(texel) + 5489: 7(f16vec4) FAdd 5488 5487 + Store 5452(texel) 5489 + 5492: 162 Load 5491(t3D) + 5493: 5456 Load 5458(s) + 5494: 163 SampledImage 5492 5493 + 5495: 167(fvec3) Load 169(c3) + 5496: 7(f16vec4) ImageSampleImplicitLod 5494 5495 + 5497: 7(f16vec4) Load 5452(texel) + 5498: 7(f16vec4) FAdd 5497 5496 + Store 5452(texel) 5498 + 5499: 162 Load 5491(t3D) + 5500: 5456 Load 5458(s) + 5501: 163 SampledImage 5499 5500 + 5502:175(f16vec3) Load 177(f16c3) + 5503:6(float16_t) Load 137(f16bias) + 5504: 7(f16vec4) ImageSampleImplicitLod 5501 5502 Bias 5503 + 5505: 7(f16vec4) Load 5452(texel) + 5506: 7(f16vec4) FAdd 5505 5504 + Store 5452(texel) 5506 + 5509: 183 Load 5508(tCube) + 5510: 5456 Load 5458(s) + 5511: 184 SampledImage 5509 5510 + 5512: 167(fvec3) Load 169(c3) + 5513: 7(f16vec4) ImageSampleImplicitLod 5511 5512 + 5514: 7(f16vec4) Load 5452(texel) + 5515: 7(f16vec4) FAdd 5514 5513 + Store 5452(texel) 5515 + 5516: 183 Load 5508(tCube) + 5517: 5456 Load 5458(s) + 5518: 184 SampledImage 5516 5517 + 5519:175(f16vec3) Load 177(f16c3) + 5520:6(float16_t) Load 137(f16bias) + 5521: 7(f16vec4) ImageSampleImplicitLod 5518 5519 Bias 5520 + 5522: 7(f16vec4) Load 5452(texel) + 5523: 7(f16vec4) FAdd 5522 5521 + Store 5452(texel) 5523 + 5524: 122 Load 5454(t1D) + 5526: 5456 Load 5525(sShadow) + 5527: 199 SampledImage 5524 5526 + 5528: 167(fvec3) Load 169(c3) + 5529: 52(float) CompositeExtract 5528 2 + 5530:6(float16_t) ImageSampleDrefImplicitLod 5527 5528 5529 + 5531: 208(ptr) AccessChain 5452(texel) 207 + 5532:6(float16_t) Load 5531 + 5533:6(float16_t) FAdd 5532 5530 + 5534: 208(ptr) AccessChain 5452(texel) 207 + Store 5534 5533 + 5535: 122 Load 5454(t1D) + 5536: 5456 Load 5525(sShadow) + 5537: 199 SampledImage 5535 5536 + 5538:154(f16vec2) Load 156(f16c2) + 5539: 52(float) Load 215(compare) + 5540:6(float16_t) Load 137(f16bias) + 5541:6(float16_t) ImageSampleDrefImplicitLod 5537 5538 5539 Bias 5540 + 5542: 208(ptr) AccessChain 5452(texel) 207 + 5543:6(float16_t) Load 5542 + 5544:6(float16_t) FAdd 5543 5541 + 5545: 208(ptr) AccessChain 5452(texel) 207 + Store 5545 5544 + 5546: 142 Load 5474(t2D) + 5547: 5456 Load 5525(sShadow) + 5548: 224 SampledImage 5546 5547 + 5549: 167(fvec3) Load 169(c3) + 5550: 52(float) CompositeExtract 5549 2 + 5551:6(float16_t) ImageSampleDrefImplicitLod 5548 5549 5550 + 5552: 208(ptr) AccessChain 5452(texel) 207 + 5553:6(float16_t) Load 5552 + 5554:6(float16_t) FAdd 5553 5551 + 5555: 208(ptr) AccessChain 5452(texel) 207 + Store 5555 5554 + 5556: 142 Load 5474(t2D) + 5557: 5456 Load 5525(sShadow) + 5558: 224 SampledImage 5556 5557 + 5559:154(f16vec2) Load 156(f16c2) + 5560: 52(float) Load 215(compare) + 5561:6(float16_t) Load 137(f16bias) + 5562:6(float16_t) ImageSampleDrefImplicitLod 5558 5559 5560 Bias 5561 + 5563: 208(ptr) AccessChain 5452(texel) 207 + 5564:6(float16_t) Load 5563 + 5565:6(float16_t) FAdd 5564 5562 + 5566: 208(ptr) AccessChain 5452(texel) 207 + Store 5566 5565 + 5567: 183 Load 5508(tCube) + 5568: 5456 Load 5525(sShadow) + 5569: 245 SampledImage 5567 5568 + 5570: 249(fvec4) Load 251(c4) + 5571: 52(float) CompositeExtract 5570 3 + 5572:6(float16_t) ImageSampleDrefImplicitLod 5569 5570 5571 + 5573: 208(ptr) AccessChain 5452(texel) 207 + 5574:6(float16_t) Load 5573 + 5575:6(float16_t) FAdd 5574 5572 + 5576: 208(ptr) AccessChain 5452(texel) 207 + Store 5576 5575 + 5577: 183 Load 5508(tCube) + 5578: 5456 Load 5525(sShadow) + 5579: 245 SampledImage 5577 5578 + 5580:175(f16vec3) Load 177(f16c3) + 5581: 52(float) Load 215(compare) + 5582:6(float16_t) Load 137(f16bias) + 5583:6(float16_t) ImageSampleDrefImplicitLod 5579 5580 5581 Bias 5582 + 5584: 208(ptr) AccessChain 5452(texel) 207 + 5585:6(float16_t) Load 5584 + 5586:6(float16_t) FAdd 5585 5583 + 5587: 208(ptr) AccessChain 5452(texel) 207 + Store 5587 5586 + 5590: 268 Load 5589(t1DArray) + 5591: 5456 Load 5458(s) + 5592: 269 SampledImage 5590 5591 + 5593: 53(fvec2) Load 148(c2) + 5594: 7(f16vec4) ImageSampleImplicitLod 5592 5593 + 5595: 7(f16vec4) Load 5452(texel) + 5596: 7(f16vec4) FAdd 5595 5594 + Store 5452(texel) 5596 + 5597: 268 Load 5589(t1DArray) + 5598: 5456 Load 5458(s) + 5599: 269 SampledImage 5597 5598 + 5600:154(f16vec2) Load 156(f16c2) + 5601:6(float16_t) Load 137(f16bias) + 5602: 7(f16vec4) ImageSampleImplicitLod 5599 5600 Bias 5601 + 5603: 7(f16vec4) Load 5452(texel) + 5604: 7(f16vec4) FAdd 5603 5602 + Store 5452(texel) 5604 + 5607: 283 Load 5606(t2DArray) + 5608: 5456 Load 5458(s) + 5609: 284 SampledImage 5607 5608 + 5610: 167(fvec3) Load 169(c3) + 5611: 7(f16vec4) ImageSampleImplicitLod 5609 5610 + 5612: 7(f16vec4) Load 5452(texel) + 5613: 7(f16vec4) FAdd 5612 5611 + Store 5452(texel) 5613 + 5614: 283 Load 5606(t2DArray) + 5615: 5456 Load 5458(s) + 5616: 284 SampledImage 5614 5615 + 5617:175(f16vec3) Load 177(f16c3) + 5618:6(float16_t) Load 137(f16bias) + 5619: 7(f16vec4) ImageSampleImplicitLod 5616 5617 Bias 5618 + 5620: 7(f16vec4) Load 5452(texel) + 5621: 7(f16vec4) FAdd 5620 5619 + Store 5452(texel) 5621 + 5624: 298 Load 5623(tCubeArray) + 5625: 5456 Load 5458(s) + 5626: 299 SampledImage 5624 5625 + 5627: 249(fvec4) Load 251(c4) + 5628: 7(f16vec4) ImageSampleImplicitLod 5626 5627 + 5629: 7(f16vec4) Load 5452(texel) + 5630: 7(f16vec4) FAdd 5629 5628 + Store 5452(texel) 5630 + 5631: 298 Load 5623(tCubeArray) + 5632: 5456 Load 5458(s) + 5633: 299 SampledImage 5631 5632 + 5634: 7(f16vec4) Load 309(f16c4) + 5635:6(float16_t) Load 137(f16bias) + 5636: 7(f16vec4) ImageSampleImplicitLod 5633 5634 Bias 5635 + 5637: 7(f16vec4) Load 5452(texel) + 5638: 7(f16vec4) FAdd 5637 5636 + Store 5452(texel) 5638 + 5639: 268 Load 5589(t1DArray) + 5640: 5456 Load 5525(sShadow) + 5641: 316 SampledImage 5639 5640 + 5642: 167(fvec3) Load 169(c3) + 5643: 52(float) CompositeExtract 5642 2 + 5644:6(float16_t) ImageSampleDrefImplicitLod 5641 5642 5643 + 5645: 208(ptr) AccessChain 5452(texel) 207 + 5646:6(float16_t) Load 5645 + 5647:6(float16_t) FAdd 5646 5644 + 5648: 208(ptr) AccessChain 5452(texel) 207 + Store 5648 5647 + 5649: 268 Load 5589(t1DArray) + 5650: 5456 Load 5525(sShadow) + 5651: 316 SampledImage 5649 5650 + 5652:154(f16vec2) Load 156(f16c2) + 5653: 52(float) Load 215(compare) + 5654:6(float16_t) Load 137(f16bias) + 5655:6(float16_t) ImageSampleDrefImplicitLod 5651 5652 5653 Bias 5654 + 5656: 208(ptr) AccessChain 5452(texel) 207 + 5657:6(float16_t) Load 5656 + 5658:6(float16_t) FAdd 5657 5655 + 5659: 208(ptr) AccessChain 5452(texel) 207 + Store 5659 5658 + 5660: 283 Load 5606(t2DArray) + 5661: 5456 Load 5525(sShadow) + 5662: 337 SampledImage 5660 5661 + 5663: 249(fvec4) Load 251(c4) + 5664: 52(float) CompositeExtract 5663 3 + 5665:6(float16_t) ImageSampleDrefImplicitLod 5662 5663 5664 + 5666: 208(ptr) AccessChain 5452(texel) 207 + 5667:6(float16_t) Load 5666 + 5668:6(float16_t) FAdd 5667 5665 + 5669: 208(ptr) AccessChain 5452(texel) 207 + Store 5669 5668 + 5670: 283 Load 5606(t2DArray) + 5671: 5456 Load 5525(sShadow) + 5672: 337 SampledImage 5670 5671 + 5673:175(f16vec3) Load 177(f16c3) + 5674: 52(float) Load 215(compare) + 5675:6(float16_t) ImageSampleDrefImplicitLod 5672 5673 5674 + 5676: 208(ptr) AccessChain 5452(texel) 207 + 5677:6(float16_t) Load 5676 + 5678:6(float16_t) FAdd 5677 5675 + 5679: 208(ptr) AccessChain 5452(texel) 207 + Store 5679 5678 + 5682: 356 Load 5681(t2DRect) + 5683: 5456 Load 5458(s) + 5684: 357 SampledImage 5682 5683 + 5685: 53(fvec2) Load 148(c2) + 5686: 7(f16vec4) ImageSampleImplicitLod 5684 5685 + 5687: 7(f16vec4) Load 5452(texel) + 5688: 7(f16vec4) FAdd 5687 5686 + Store 5452(texel) 5688 + 5689: 356 Load 5681(t2DRect) + 5690: 5456 Load 5458(s) + 5691: 357 SampledImage 5689 5690 + 5692:154(f16vec2) Load 156(f16c2) + 5693: 7(f16vec4) ImageSampleImplicitLod 5691 5692 + 5694: 7(f16vec4) Load 5452(texel) + 5695: 7(f16vec4) FAdd 5694 5693 + Store 5452(texel) 5695 + 5696: 356 Load 5681(t2DRect) + 5697: 5456 Load 5525(sShadow) + 5698: 371 SampledImage 5696 5697 + 5699: 167(fvec3) Load 169(c3) + 5700: 52(float) CompositeExtract 5699 2 + 5701:6(float16_t) ImageSampleDrefImplicitLod 5698 5699 5700 + 5702: 208(ptr) AccessChain 5452(texel) 207 + 5703:6(float16_t) Load 5702 + 5704:6(float16_t) FAdd 5703 5701 + 5705: 208(ptr) AccessChain 5452(texel) 207 + Store 5705 5704 + 5706: 356 Load 5681(t2DRect) + 5707: 5456 Load 5525(sShadow) + 5708: 371 SampledImage 5706 5707 + 5709:154(f16vec2) Load 156(f16c2) + 5710: 52(float) Load 215(compare) + 5711:6(float16_t) ImageSampleDrefImplicitLod 5708 5709 5710 + 5712: 208(ptr) AccessChain 5452(texel) 207 + 5713:6(float16_t) Load 5712 + 5714:6(float16_t) FAdd 5713 5711 + 5715: 208(ptr) AccessChain 5452(texel) 207 + Store 5715 5714 + 5716: 298 Load 5623(tCubeArray) + 5717: 5456 Load 5525(sShadow) + 5718: 391 SampledImage 5716 5717 + 5719: 249(fvec4) Load 251(c4) + 5720: 52(float) Load 215(compare) + 5721:6(float16_t) ImageSampleDrefImplicitLod 5718 5719 5720 + 5722: 208(ptr) AccessChain 5452(texel) 207 + 5723:6(float16_t) Load 5722 + 5724:6(float16_t) FAdd 5723 5721 + 5725: 208(ptr) AccessChain 5452(texel) 207 + Store 5725 5724 + 5726: 298 Load 5623(tCubeArray) + 5727: 5456 Load 5525(sShadow) + 5728: 391 SampledImage 5726 5727 + 5729: 7(f16vec4) Load 309(f16c4) + 5730: 52(float) Load 215(compare) + 5731:6(float16_t) ImageSampleDrefImplicitLod 5728 5729 5730 + 5732: 208(ptr) AccessChain 5452(texel) 207 + 5733:6(float16_t) Load 5732 + 5734:6(float16_t) FAdd 5733 5731 + 5735: 208(ptr) AccessChain 5452(texel) 207 + Store 5735 5734 + 5736: 7(f16vec4) Load 5452(texel) + ReturnValue 5736 + FunctionEnd +117(testSubpassLoad(): 7(f16vec4) Function None 8 + 118: Label + 5742: 5739 Load 5741(subpass) + 5744: 7(f16vec4) ImageRead 5742 5743 + 5748: 5745 Load 5747(subpassMS) + 5749: 7(f16vec4) ImageRead 5748 5743 Sample 1326 + 5750: 7(f16vec4) FAdd 5744 5749 + ReturnValue 5750 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.float32.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float32.frag.out new file mode 100644 index 0000000000..464c75db2e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.float32.frag.out @@ -0,0 +1,800 @@ +spv.float32.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 530 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + Capability DerivativeControl + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 468 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "operators(" + Name 10 "typeCast(" + Name 12 "builtinAngleTrigFuncs(" + Name 14 "builtinExpFuncs(" + Name 16 "builtinCommonFuncs(" + Name 18 "builtinGeometryFuncs(" + Name 20 "builtinMatrixFuncs(" + Name 22 "builtinVecRelFuncs(" + Name 24 "builtinFragProcFuncs(" + Name 29 "f32v" + Name 40 "f32v" + Name 62 "f32m" + Name 85 "f32" + Name 109 "b" + Name 152 "f64v" + Name 155 "f32v" + Name 160 "bv" + Name 175 "f16v" + Name 183 "i8v" + Name 189 "i16v" + Name 195 "i32v" + Name 201 "i64v" + Name 204 "u8v" + Name 210 "u16v" + Name 215 "u32v" + Name 221 "u64v" + Name 226 "f32v2" + Name 227 "f32v1" + Name 259 "f32v2" + Name 260 "f32v1" + Name 276 "f32v2" + Name 277 "f32v1" + Name 298 "f32" + Name 302 "f32v3" + Name 342 "bv" + Name 363 "b" + Name 373 "iv" + Name 374 "ResType" + Name 381 "f32" + Name 382 "f32v1" + Name 386 "f32v2" + Name 392 "f32v3" + Name 411 "f32m3" + Name 412 "f32m1" + Name 414 "f32m2" + Name 423 "f32v1" + Name 425 "f32v2" + Name 430 "f32m4" + Name 433 "f32" + Name 436 "f32m5" + Name 441 "f32m6" + Name 442 "f32m7" + Name 445 "bv" + Name 446 "f32v1" + Name 448 "f32v2" + Name 466 "f32v" + Name 468 "if32v" + Name 517 "S" + MemberName 517(S) 0 "x" + MemberName 517(S) 1 "y" + MemberName 517(S) 2 "z" + Name 519 "B1" + MemberName 519(B1) 0 "a" + MemberName 519(B1) 1 "b" + MemberName 519(B1) 2 "c" + MemberName 519(B1) 3 "d" + MemberName 519(B1) 4 "e" + MemberName 519(B1) 5 "f" + MemberName 519(B1) 6 "g" + MemberName 519(B1) 7 "h" + Name 521 "" + Name 522 "sf16" + Name 523 "sf" + Name 524 "sd" + Decorate 515 ArrayStride 16 + Decorate 516 ArrayStride 32 + MemberDecorate 517(S) 0 Offset 0 + MemberDecorate 517(S) 1 Offset 8 + MemberDecorate 517(S) 2 Offset 16 + Decorate 518 ArrayStride 32 + MemberDecorate 519(B1) 0 Offset 0 + MemberDecorate 519(B1) 1 Offset 8 + MemberDecorate 519(B1) 2 Offset 16 + MemberDecorate 519(B1) 3 Offset 32 + MemberDecorate 519(B1) 4 ColMajor + MemberDecorate 519(B1) 4 Offset 64 + MemberDecorate 519(B1) 4 MatrixStride 16 + MemberDecorate 519(B1) 5 ColMajor + MemberDecorate 519(B1) 5 Offset 96 + MemberDecorate 519(B1) 5 MatrixStride 16 + MemberDecorate 519(B1) 6 Offset 160 + MemberDecorate 519(B1) 7 Offset 192 + Decorate 519(B1) Block + Decorate 521 DescriptorSet 0 + Decorate 522(sf16) SpecId 100 + Decorate 523(sf) SpecId 101 + Decorate 524(sd) SpecId 102 + 2: TypeVoid + 3: TypeFunction 2 + 26: TypeFloat 32 + 27: TypeVector 26(float) 2 + 28: TypePointer Function 27(fvec2) + 30: 26(float) Constant 897988541 + 31: TypeInt 32 0 + 32: 31(int) Constant 0 + 33: TypePointer Function 26(float) + 35: 26(float) Constant 3196059648 + 36: 26(float) Constant 1022739087 + 37: 27(fvec2) ConstantComposite 35 36 + 54: 26(float) Constant 1065353216 + 60: TypeMatrix 27(fvec2) 2 + 61: TypePointer Function 60 + 88: 31(int) Constant 1 + 107: TypeBool + 108: TypePointer Function 107(bool) + 149: TypeFloat 64 + 150: TypeVector 149(float64_t) 3 + 151: TypePointer Function 150(f64vec3) + 153: TypeVector 26(float) 3 + 154: TypePointer Function 153(fvec3) + 158: TypeVector 107(bool) 3 + 159: TypePointer Function 158(bvec3) + 162: 26(float) Constant 0 + 163: 153(fvec3) ConstantComposite 162 162 162 + 164: 153(fvec3) ConstantComposite 54 54 54 + 172: TypeFloat 16 + 173: TypeVector 172(float16_t) 3 + 174: TypePointer Function 173(f16vec3) + 180: TypeInt 8 1 + 181: TypeVector 180(int8_t) 3 + 182: TypePointer Function 181(i8vec3) + 186: TypeInt 16 1 + 187: TypeVector 186(int16_t) 3 + 188: TypePointer Function 187(i16vec3) + 192: TypeInt 32 1 + 193: TypeVector 192(int) 3 + 194: TypePointer Function 193(ivec3) + 198: TypeInt 64 1 + 199: TypeVector 198(int64_t) 3 + 200: TypePointer Function 199(i64vec3) + 207: TypeInt 16 0 + 208: TypeVector 207(int16_t) 3 + 209: TypePointer Function 208(i16vec3) + 213: TypeVector 31(int) 3 + 214: TypePointer Function 213(ivec3) + 218: TypeInt 64 0 + 219: TypeVector 218(int64_t) 3 + 220: TypePointer Function 219(i64vec3) + 224: TypeVector 26(float) 4 + 225: TypePointer Function 224(fvec4) + 374(ResType): TypeStruct 153(fvec3) 193(ivec3) + 409: TypeMatrix 153(fvec3) 2 + 410: TypePointer Function 409 + 428: TypeMatrix 27(fvec2) 3 + 429: TypePointer Function 428 + 434: TypeMatrix 153(fvec3) 3 + 435: TypePointer Function 434 + 439: TypeMatrix 224(fvec4) 4 + 440: TypePointer Function 439 + 467: TypePointer Input 153(fvec3) + 468(if32v): 467(ptr) Variable Input + 469: TypePointer Input 26(float) + 506: 192(int) Constant 1 + 511: 26(float) Constant 1056964608 + 512: 27(fvec2) ConstantComposite 511 511 + 514: 31(int) Constant 2 + 515: TypeArray 26(float) 514 + 516: TypeArray 409 514 + 517(S): TypeStruct 26(float) 27(fvec2) 153(fvec3) + 518: TypeArray 517(S) 514 + 519(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 515 409 516 517(S) 518 + 520: TypePointer Uniform 519(B1) + 521: 520(ptr) Variable Uniform + 522(sf16):172(float16_t) SpecConstant 12288 + 523(sf): 26(float) SpecConstant 1048576000 + 524(sd):149(float64_t) SpecConstant 0 1071644672 + 525: 26(float) SpecConstantOp 115 522(sf16) + 526: 26(float) SpecConstantOp 115 522(sf16) + 527:149(float64_t) SpecConstantOp 115 526 + 528:172(float16_t) SpecConstantOp 115 523(sf) + 529:172(float16_t) SpecConstantOp 115 524(sd) + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 29(f32v): 28(ptr) Variable Function + 34: 33(ptr) AccessChain 29(f32v) 32 + Store 34 30 + 38: 27(fvec2) Load 29(f32v) + 39: 27(fvec2) FAdd 38 37 + Store 29(f32v) 39 + Return + FunctionEnd + 8(operators(): 2 Function None 3 + 9: Label + 40(f32v): 28(ptr) Variable Function + 62(f32m): 61(ptr) Variable Function + 85(f32): 33(ptr) Variable Function + 109(b): 108(ptr) Variable Function + 41: 27(fvec2) Load 40(f32v) + 42: 27(fvec2) Load 40(f32v) + 43: 27(fvec2) FAdd 42 41 + Store 40(f32v) 43 + 44: 27(fvec2) Load 40(f32v) + 45: 27(fvec2) Load 40(f32v) + 46: 27(fvec2) FSub 45 44 + Store 40(f32v) 46 + 47: 27(fvec2) Load 40(f32v) + 48: 27(fvec2) Load 40(f32v) + 49: 27(fvec2) FMul 48 47 + Store 40(f32v) 49 + 50: 27(fvec2) Load 40(f32v) + 51: 27(fvec2) Load 40(f32v) + 52: 27(fvec2) FDiv 51 50 + Store 40(f32v) 52 + 53: 27(fvec2) Load 40(f32v) + 55: 27(fvec2) CompositeConstruct 54 54 + 56: 27(fvec2) FAdd 53 55 + Store 40(f32v) 56 + 57: 27(fvec2) Load 40(f32v) + 58: 27(fvec2) CompositeConstruct 54 54 + 59: 27(fvec2) FSub 57 58 + Store 40(f32v) 59 + 63: 60 Load 62(f32m) + 64: 27(fvec2) CompositeConstruct 54 54 + 65: 27(fvec2) CompositeExtract 63 0 + 66: 27(fvec2) FAdd 65 64 + 67: 27(fvec2) CompositeExtract 63 1 + 68: 27(fvec2) FAdd 67 64 + 69: 60 CompositeConstruct 66 68 + Store 62(f32m) 69 + 70: 60 Load 62(f32m) + 71: 27(fvec2) CompositeConstruct 54 54 + 72: 27(fvec2) CompositeExtract 70 0 + 73: 27(fvec2) FSub 72 71 + 74: 27(fvec2) CompositeExtract 70 1 + 75: 27(fvec2) FSub 74 71 + 76: 60 CompositeConstruct 73 75 + Store 62(f32m) 76 + 77: 27(fvec2) Load 40(f32v) + 78: 27(fvec2) FNegate 77 + Store 40(f32v) 78 + 79: 60 Load 62(f32m) + 80: 27(fvec2) CompositeExtract 79 0 + 81: 27(fvec2) FNegate 80 + 82: 27(fvec2) CompositeExtract 79 1 + 83: 27(fvec2) FNegate 82 + 84: 60 CompositeConstruct 81 83 + Store 62(f32m) 84 + 86: 33(ptr) AccessChain 40(f32v) 32 + 87: 26(float) Load 86 + 89: 33(ptr) AccessChain 40(f32v) 88 + 90: 26(float) Load 89 + 91: 26(float) FAdd 87 90 + Store 85(f32) 91 + 92: 33(ptr) AccessChain 40(f32v) 32 + 93: 26(float) Load 92 + 94: 33(ptr) AccessChain 40(f32v) 88 + 95: 26(float) Load 94 + 96: 26(float) FSub 93 95 + Store 85(f32) 96 + 97: 33(ptr) AccessChain 40(f32v) 32 + 98: 26(float) Load 97 + 99: 33(ptr) AccessChain 40(f32v) 88 + 100: 26(float) Load 99 + 101: 26(float) FMul 98 100 + Store 85(f32) 101 + 102: 33(ptr) AccessChain 40(f32v) 32 + 103: 26(float) Load 102 + 104: 33(ptr) AccessChain 40(f32v) 88 + 105: 26(float) Load 104 + 106: 26(float) FDiv 103 105 + Store 85(f32) 106 + 110: 33(ptr) AccessChain 40(f32v) 32 + 111: 26(float) Load 110 + 112: 26(float) Load 85(f32) + 113: 107(bool) FOrdNotEqual 111 112 + Store 109(b) 113 + 114: 33(ptr) AccessChain 40(f32v) 88 + 115: 26(float) Load 114 + 116: 26(float) Load 85(f32) + 117: 107(bool) FOrdEqual 115 116 + Store 109(b) 117 + 118: 33(ptr) AccessChain 40(f32v) 32 + 119: 26(float) Load 118 + 120: 26(float) Load 85(f32) + 121: 107(bool) FOrdGreaterThan 119 120 + Store 109(b) 121 + 122: 33(ptr) AccessChain 40(f32v) 88 + 123: 26(float) Load 122 + 124: 26(float) Load 85(f32) + 125: 107(bool) FOrdLessThan 123 124 + Store 109(b) 125 + 126: 33(ptr) AccessChain 40(f32v) 32 + 127: 26(float) Load 126 + 128: 26(float) Load 85(f32) + 129: 107(bool) FOrdGreaterThanEqual 127 128 + Store 109(b) 129 + 130: 33(ptr) AccessChain 40(f32v) 88 + 131: 26(float) Load 130 + 132: 26(float) Load 85(f32) + 133: 107(bool) FOrdLessThanEqual 131 132 + Store 109(b) 133 + 134: 27(fvec2) Load 40(f32v) + 135: 26(float) Load 85(f32) + 136: 27(fvec2) VectorTimesScalar 134 135 + Store 40(f32v) 136 + 137: 60 Load 62(f32m) + 138: 26(float) Load 85(f32) + 139: 60 MatrixTimesScalar 137 138 + Store 62(f32m) 139 + 140: 60 Load 62(f32m) + 141: 27(fvec2) Load 40(f32v) + 142: 27(fvec2) MatrixTimesVector 140 141 + Store 40(f32v) 142 + 143: 27(fvec2) Load 40(f32v) + 144: 60 Load 62(f32m) + 145: 27(fvec2) VectorTimesMatrix 143 144 + Store 40(f32v) 145 + 146: 60 Load 62(f32m) + 147: 60 Load 62(f32m) + 148: 60 MatrixTimesMatrix 146 147 + Store 62(f32m) 148 + Return + FunctionEnd + 10(typeCast(): 2 Function None 3 + 11: Label + 152(f64v): 151(ptr) Variable Function + 155(f32v): 154(ptr) Variable Function + 160(bv): 159(ptr) Variable Function + 175(f16v): 174(ptr) Variable Function + 183(i8v): 182(ptr) Variable Function + 189(i16v): 188(ptr) Variable Function + 195(i32v): 194(ptr) Variable Function + 201(i64v): 200(ptr) Variable Function + 204(u8v): 182(ptr) Variable Function + 210(u16v): 209(ptr) Variable Function + 215(u32v): 214(ptr) Variable Function + 221(u64v): 220(ptr) Variable Function + 156: 153(fvec3) Load 155(f32v) + 157:150(f64vec3) FConvert 156 + Store 152(f64v) 157 + 161: 158(bvec3) Load 160(bv) + 165: 153(fvec3) Select 161 164 163 + Store 155(f32v) 165 + 166: 153(fvec3) Load 155(f32v) + 167: 158(bvec3) FOrdNotEqual 166 163 + Store 160(bv) 167 + 168:150(f64vec3) Load 152(f64v) + 169: 153(fvec3) FConvert 168 + Store 155(f32v) 169 + 170: 153(fvec3) Load 155(f32v) + 171:150(f64vec3) FConvert 170 + Store 152(f64v) 171 + 176:173(f16vec3) Load 175(f16v) + 177: 153(fvec3) FConvert 176 + Store 155(f32v) 177 + 178: 153(fvec3) Load 155(f32v) + 179:173(f16vec3) FConvert 178 + Store 175(f16v) 179 + 184: 153(fvec3) Load 155(f32v) + 185: 181(i8vec3) ConvertFToS 184 + Store 183(i8v) 185 + 190: 153(fvec3) Load 155(f32v) + 191:187(i16vec3) ConvertFToS 190 + Store 189(i16v) 191 + 196: 153(fvec3) Load 155(f32v) + 197: 193(ivec3) ConvertFToS 196 + Store 195(i32v) 197 + 202: 153(fvec3) Load 155(f32v) + 203:199(i64vec3) ConvertFToS 202 + Store 201(i64v) 203 + 205: 153(fvec3) Load 155(f32v) + 206: 181(i8vec3) ConvertFToS 205 + Store 204(u8v) 206 + 211: 153(fvec3) Load 155(f32v) + 212:208(i16vec3) ConvertFToU 211 + Store 210(u16v) 212 + 216: 153(fvec3) Load 155(f32v) + 217: 213(ivec3) ConvertFToU 216 + Store 215(u32v) 217 + 222: 153(fvec3) Load 155(f32v) + 223:219(i64vec3) ConvertFToU 222 + Store 221(u64v) 223 + Return + FunctionEnd +12(builtinAngleTrigFuncs(): 2 Function None 3 + 13: Label + 226(f32v2): 225(ptr) Variable Function + 227(f32v1): 225(ptr) Variable Function + 228: 224(fvec4) Load 227(f32v1) + 229: 224(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 228 + Store 226(f32v2) 229 + 230: 224(fvec4) Load 227(f32v1) + 231: 224(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 230 + Store 226(f32v2) 231 + 232: 224(fvec4) Load 227(f32v1) + 233: 224(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 232 + Store 226(f32v2) 233 + 234: 224(fvec4) Load 227(f32v1) + 235: 224(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 234 + Store 226(f32v2) 235 + 236: 224(fvec4) Load 227(f32v1) + 237: 224(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 236 + Store 226(f32v2) 237 + 238: 224(fvec4) Load 227(f32v1) + 239: 224(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 238 + Store 226(f32v2) 239 + 240: 224(fvec4) Load 227(f32v1) + 241: 224(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 240 + Store 226(f32v2) 241 + 242: 224(fvec4) Load 227(f32v1) + 243: 224(fvec4) Load 226(f32v2) + 244: 224(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 242 243 + Store 226(f32v2) 244 + 245: 224(fvec4) Load 227(f32v1) + 246: 224(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 245 + Store 226(f32v2) 246 + 247: 224(fvec4) Load 227(f32v1) + 248: 224(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 247 + Store 226(f32v2) 248 + 249: 224(fvec4) Load 227(f32v1) + 250: 224(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 249 + Store 226(f32v2) 250 + 251: 224(fvec4) Load 227(f32v1) + 252: 224(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 251 + Store 226(f32v2) 252 + 253: 224(fvec4) Load 227(f32v1) + 254: 224(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 253 + Store 226(f32v2) 254 + 255: 224(fvec4) Load 227(f32v1) + 256: 224(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 255 + Store 226(f32v2) 256 + 257: 224(fvec4) Load 227(f32v1) + 258: 224(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 257 + Store 226(f32v2) 258 + Return + FunctionEnd +14(builtinExpFuncs(): 2 Function None 3 + 15: Label + 259(f32v2): 28(ptr) Variable Function + 260(f32v1): 28(ptr) Variable Function + 261: 27(fvec2) Load 260(f32v1) + 262: 27(fvec2) Load 259(f32v2) + 263: 27(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 261 262 + Store 259(f32v2) 263 + 264: 27(fvec2) Load 260(f32v1) + 265: 27(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 264 + Store 259(f32v2) 265 + 266: 27(fvec2) Load 260(f32v1) + 267: 27(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 266 + Store 259(f32v2) 267 + 268: 27(fvec2) Load 260(f32v1) + 269: 27(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 268 + Store 259(f32v2) 269 + 270: 27(fvec2) Load 260(f32v1) + 271: 27(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 270 + Store 259(f32v2) 271 + 272: 27(fvec2) Load 260(f32v1) + 273: 27(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 272 + Store 259(f32v2) 273 + 274: 27(fvec2) Load 260(f32v1) + 275: 27(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 274 + Store 259(f32v2) 275 + Return + FunctionEnd +16(builtinCommonFuncs(): 2 Function None 3 + 17: Label + 276(f32v2): 154(ptr) Variable Function + 277(f32v1): 154(ptr) Variable Function + 298(f32): 33(ptr) Variable Function + 302(f32v3): 154(ptr) Variable Function + 342(bv): 159(ptr) Variable Function + 363(b): 108(ptr) Variable Function + 373(iv): 194(ptr) Variable Function + 278: 153(fvec3) Load 277(f32v1) + 279: 153(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 278 + Store 276(f32v2) 279 + 280: 153(fvec3) Load 277(f32v1) + 281: 153(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 280 + Store 276(f32v2) 281 + 282: 153(fvec3) Load 277(f32v1) + 283: 153(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 282 + Store 276(f32v2) 283 + 284: 153(fvec3) Load 277(f32v1) + 285: 153(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 284 + Store 276(f32v2) 285 + 286: 153(fvec3) Load 277(f32v1) + 287: 153(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 286 + Store 276(f32v2) 287 + 288: 153(fvec3) Load 277(f32v1) + 289: 153(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 288 + Store 276(f32v2) 289 + 290: 153(fvec3) Load 277(f32v1) + 291: 153(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 290 + Store 276(f32v2) 291 + 292: 153(fvec3) Load 277(f32v1) + 293: 153(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 292 + Store 276(f32v2) 293 + 294: 153(fvec3) Load 277(f32v1) + 295: 153(fvec3) Load 276(f32v2) + 296: 153(fvec3) FMod 294 295 + Store 276(f32v2) 296 + 297: 153(fvec3) Load 277(f32v1) + 299: 26(float) Load 298(f32) + 300: 153(fvec3) CompositeConstruct 299 299 299 + 301: 153(fvec3) FMod 297 300 + Store 276(f32v2) 301 + 303: 153(fvec3) Load 277(f32v1) + 304: 153(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 303 276(f32v2) + Store 302(f32v3) 304 + 305: 153(fvec3) Load 277(f32v1) + 306: 153(fvec3) Load 276(f32v2) + 307: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 305 306 + Store 302(f32v3) 307 + 308: 153(fvec3) Load 277(f32v1) + 309: 26(float) Load 298(f32) + 310: 153(fvec3) CompositeConstruct 309 309 309 + 311: 153(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 308 310 + Store 302(f32v3) 311 + 312: 153(fvec3) Load 277(f32v1) + 313: 153(fvec3) Load 276(f32v2) + 314: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 312 313 + Store 302(f32v3) 314 + 315: 153(fvec3) Load 277(f32v1) + 316: 26(float) Load 298(f32) + 317: 153(fvec3) CompositeConstruct 316 316 316 + 318: 153(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 315 317 + Store 302(f32v3) 318 + 319: 153(fvec3) Load 277(f32v1) + 320: 26(float) Load 298(f32) + 321: 33(ptr) AccessChain 276(f32v2) 32 + 322: 26(float) Load 321 + 323: 153(fvec3) CompositeConstruct 320 320 320 + 324: 153(fvec3) CompositeConstruct 322 322 322 + 325: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 319 323 324 + Store 302(f32v3) 325 + 326: 153(fvec3) Load 277(f32v1) + 327: 153(fvec3) Load 276(f32v2) + 328: 26(float) Load 298(f32) + 329: 153(fvec3) CompositeConstruct 328 328 328 + 330: 153(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 326 327 329 + Store 302(f32v3) 330 + 331: 153(fvec3) Load 277(f32v1) + 332: 153(fvec3) Load 276(f32v2) + 333: 26(float) Load 298(f32) + 334: 153(fvec3) CompositeConstruct 333 333 333 + 335: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 331 332 334 + Store 302(f32v3) 335 + 336: 153(fvec3) Load 277(f32v1) + 337: 153(fvec3) Load 276(f32v2) + 338: 153(fvec3) Load 302(f32v3) + 339: 153(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 336 337 338 + Store 302(f32v3) 339 + 340: 153(fvec3) Load 277(f32v1) + 341: 153(fvec3) Load 276(f32v2) + 343: 158(bvec3) Load 342(bv) + 344: 153(fvec3) Select 343 341 340 + Store 302(f32v3) 344 + 345: 153(fvec3) Load 277(f32v1) + 346: 153(fvec3) Load 276(f32v2) + 347: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 345 346 + Store 302(f32v3) 347 + 348: 26(float) Load 298(f32) + 349: 153(fvec3) Load 302(f32v3) + 350: 153(fvec3) CompositeConstruct 348 348 348 + 351: 153(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 350 349 + Store 302(f32v3) 351 + 352: 153(fvec3) Load 277(f32v1) + 353: 153(fvec3) Load 276(f32v2) + 354: 153(fvec3) Load 302(f32v3) + 355: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 352 353 354 + Store 302(f32v3) 355 + 356: 26(float) Load 298(f32) + 357: 33(ptr) AccessChain 277(f32v1) 32 + 358: 26(float) Load 357 + 359: 153(fvec3) Load 276(f32v2) + 360: 153(fvec3) CompositeConstruct 356 356 356 + 361: 153(fvec3) CompositeConstruct 358 358 358 + 362: 153(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 360 361 359 + Store 302(f32v3) 362 + 364: 26(float) Load 298(f32) + 365: 107(bool) IsNan 364 + Store 363(b) 365 + 366: 153(fvec3) Load 277(f32v1) + 367: 158(bvec3) IsInf 366 + Store 342(bv) 367 + 368: 153(fvec3) Load 277(f32v1) + 369: 153(fvec3) Load 276(f32v2) + 370: 153(fvec3) Load 302(f32v3) + 371: 153(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 368 369 370 + Store 302(f32v3) 371 + 372: 153(fvec3) Load 277(f32v1) + 375:374(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 372 + 376: 193(ivec3) CompositeExtract 375 1 + Store 373(iv) 376 + 377: 153(fvec3) CompositeExtract 375 0 + Store 276(f32v2) 377 + 378: 153(fvec3) Load 277(f32v1) + 379: 193(ivec3) Load 373(iv) + 380: 153(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 378 379 + Store 276(f32v2) 380 + Return + FunctionEnd +18(builtinGeometryFuncs(): 2 Function None 3 + 19: Label + 381(f32): 33(ptr) Variable Function + 382(f32v1): 154(ptr) Variable Function + 386(f32v2): 154(ptr) Variable Function + 392(f32v3): 154(ptr) Variable Function + 383: 153(fvec3) Load 382(f32v1) + 384: 26(float) ExtInst 1(GLSL.std.450) 66(Length) 383 + Store 381(f32) 384 + 385: 153(fvec3) Load 382(f32v1) + 387: 153(fvec3) Load 386(f32v2) + 388: 26(float) ExtInst 1(GLSL.std.450) 67(Distance) 385 387 + Store 381(f32) 388 + 389: 153(fvec3) Load 382(f32v1) + 390: 153(fvec3) Load 386(f32v2) + 391: 26(float) Dot 389 390 + Store 381(f32) 391 + 393: 153(fvec3) Load 382(f32v1) + 394: 153(fvec3) Load 386(f32v2) + 395: 153(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 393 394 + Store 392(f32v3) 395 + 396: 153(fvec3) Load 382(f32v1) + 397: 153(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 396 + Store 386(f32v2) 397 + 398: 153(fvec3) Load 382(f32v1) + 399: 153(fvec3) Load 386(f32v2) + 400: 153(fvec3) Load 392(f32v3) + 401: 153(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 398 399 400 + Store 392(f32v3) 401 + 402: 153(fvec3) Load 382(f32v1) + 403: 153(fvec3) Load 386(f32v2) + 404: 153(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 402 403 + Store 392(f32v3) 404 + 405: 153(fvec3) Load 382(f32v1) + 406: 153(fvec3) Load 386(f32v2) + 407: 26(float) Load 381(f32) + 408: 153(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 405 406 407 + Store 392(f32v3) 408 + Return + FunctionEnd +20(builtinMatrixFuncs(): 2 Function None 3 + 21: Label + 411(f32m3): 410(ptr) Variable Function + 412(f32m1): 410(ptr) Variable Function + 414(f32m2): 410(ptr) Variable Function + 423(f32v1): 154(ptr) Variable Function + 425(f32v2): 28(ptr) Variable Function + 430(f32m4): 429(ptr) Variable Function + 433(f32): 33(ptr) Variable Function + 436(f32m5): 435(ptr) Variable Function + 441(f32m6): 440(ptr) Variable Function + 442(f32m7): 440(ptr) Variable Function + 413: 409 Load 412(f32m1) + 415: 409 Load 414(f32m2) + 416: 153(fvec3) CompositeExtract 413 0 + 417: 153(fvec3) CompositeExtract 415 0 + 418: 153(fvec3) FMul 416 417 + 419: 153(fvec3) CompositeExtract 413 1 + 420: 153(fvec3) CompositeExtract 415 1 + 421: 153(fvec3) FMul 419 420 + 422: 409 CompositeConstruct 418 421 + Store 411(f32m3) 422 + 424: 153(fvec3) Load 423(f32v1) + 426: 27(fvec2) Load 425(f32v2) + 427: 409 OuterProduct 424 426 + Store 412(f32m1) 427 + 431: 409 Load 412(f32m1) + 432: 428 Transpose 431 + Store 430(f32m4) 432 + 437: 434 Load 436(f32m5) + 438: 26(float) ExtInst 1(GLSL.std.450) 33(Determinant) 437 + Store 433(f32) 438 + 443: 439 Load 442(f32m7) + 444: 439 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 443 + Store 441(f32m6) 444 + Return + FunctionEnd +22(builtinVecRelFuncs(): 2 Function None 3 + 23: Label + 445(bv): 159(ptr) Variable Function + 446(f32v1): 154(ptr) Variable Function + 448(f32v2): 154(ptr) Variable Function + 447: 153(fvec3) Load 446(f32v1) + 449: 153(fvec3) Load 448(f32v2) + 450: 158(bvec3) FOrdLessThan 447 449 + Store 445(bv) 450 + 451: 153(fvec3) Load 446(f32v1) + 452: 153(fvec3) Load 448(f32v2) + 453: 158(bvec3) FOrdLessThanEqual 451 452 + Store 445(bv) 453 + 454: 153(fvec3) Load 446(f32v1) + 455: 153(fvec3) Load 448(f32v2) + 456: 158(bvec3) FOrdGreaterThan 454 455 + Store 445(bv) 456 + 457: 153(fvec3) Load 446(f32v1) + 458: 153(fvec3) Load 448(f32v2) + 459: 158(bvec3) FOrdGreaterThanEqual 457 458 + Store 445(bv) 459 + 460: 153(fvec3) Load 446(f32v1) + 461: 153(fvec3) Load 448(f32v2) + 462: 158(bvec3) FOrdEqual 460 461 + Store 445(bv) 462 + 463: 153(fvec3) Load 446(f32v1) + 464: 153(fvec3) Load 448(f32v2) + 465: 158(bvec3) FOrdNotEqual 463 464 + Store 445(bv) 465 + Return + FunctionEnd +24(builtinFragProcFuncs(): 2 Function None 3 + 25: Label + 466(f32v): 154(ptr) Variable Function + 470: 469(ptr) AccessChain 468(if32v) 32 + 471: 26(float) Load 470 + 472: 26(float) DPdx 471 + 473: 33(ptr) AccessChain 466(f32v) 32 + Store 473 472 + 474: 469(ptr) AccessChain 468(if32v) 88 + 475: 26(float) Load 474 + 476: 26(float) DPdy 475 + 477: 33(ptr) AccessChain 466(f32v) 88 + Store 477 476 + 478: 153(fvec3) Load 468(if32v) + 479: 27(fvec2) VectorShuffle 478 478 0 1 + 480: 27(fvec2) DPdxFine 479 + 481: 153(fvec3) Load 466(f32v) + 482: 153(fvec3) VectorShuffle 481 480 3 4 2 + Store 466(f32v) 482 + 483: 153(fvec3) Load 468(if32v) + 484: 27(fvec2) VectorShuffle 483 483 0 1 + 485: 27(fvec2) DPdyFine 484 + 486: 153(fvec3) Load 466(f32v) + 487: 153(fvec3) VectorShuffle 486 485 3 4 2 + Store 466(f32v) 487 + 488: 153(fvec3) Load 468(if32v) + 489: 153(fvec3) DPdxCoarse 488 + Store 466(f32v) 489 + 490: 153(fvec3) Load 468(if32v) + 491: 153(fvec3) DPdxCoarse 490 + Store 466(f32v) 491 + 492: 469(ptr) AccessChain 468(if32v) 32 + 493: 26(float) Load 492 + 494: 26(float) Fwidth 493 + 495: 33(ptr) AccessChain 466(f32v) 32 + Store 495 494 + 496: 153(fvec3) Load 468(if32v) + 497: 27(fvec2) VectorShuffle 496 496 0 1 + 498: 27(fvec2) FwidthFine 497 + 499: 153(fvec3) Load 466(f32v) + 500: 153(fvec3) VectorShuffle 499 498 3 4 2 + Store 466(f32v) 500 + 501: 153(fvec3) Load 468(if32v) + 502: 153(fvec3) FwidthCoarse 501 + Store 466(f32v) 502 + 503: 469(ptr) AccessChain 468(if32v) 32 + 504: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 503 + 505: 33(ptr) AccessChain 466(f32v) 32 + Store 505 504 + 507: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 468(if32v) 506 + 508: 27(fvec2) VectorShuffle 507 507 0 1 + 509: 153(fvec3) Load 466(f32v) + 510: 153(fvec3) VectorShuffle 509 508 3 4 2 + Store 466(f32v) 510 + 513: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 468(if32v) 512 + Store 466(f32v) 513 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.float64.frag.out b/deps/glslang/glslang/Test/baseResults/spv.float64.frag.out new file mode 100644 index 0000000000..ebc0a40c5e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.float64.frag.out @@ -0,0 +1,788 @@ +spv.float64.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 521 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + Capability DerivativeControl + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 458 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "operators(" + Name 10 "typeCast(" + Name 12 "builtinAngleTrigFuncs(" + Name 14 "builtinExpFuncs(" + Name 16 "builtinCommonFuncs(" + Name 18 "builtinGeometryFuncs(" + Name 20 "builtinMatrixFuncs(" + Name 22 "builtinVecRelFuncs(" + Name 24 "builtinFragProcFuncs(" + Name 29 "f64v" + Name 40 "f64v" + Name 62 "f64m" + Name 85 "f64" + Name 109 "b" + Name 151 "f64v" + Name 154 "bv" + Name 165 "f16v" + Name 173 "i8v" + Name 179 "i16v" + Name 185 "i32v" + Name 191 "i64v" + Name 194 "u8v" + Name 200 "u16v" + Name 205 "u32v" + Name 211 "u64v" + Name 216 "f64v2" + Name 217 "f64v1" + Name 249 "f64v2" + Name 250 "f64v1" + Name 266 "f64v2" + Name 267 "f64v1" + Name 288 "f64" + Name 292 "f64v3" + Name 332 "bv" + Name 353 "b" + Name 363 "iv" + Name 364 "ResType" + Name 371 "f64" + Name 372 "f64v1" + Name 376 "f64v2" + Name 382 "f64v3" + Name 401 "f64m3" + Name 402 "f64m1" + Name 404 "f64m2" + Name 413 "f64v1" + Name 415 "f64v2" + Name 420 "f64m4" + Name 423 "f64" + Name 426 "f64m5" + Name 431 "f64m6" + Name 432 "f64m7" + Name 435 "bv" + Name 436 "f64v1" + Name 438 "f64v2" + Name 456 "f64v" + Name 458 "if64v" + Name 507 "S" + MemberName 507(S) 0 "x" + MemberName 507(S) 1 "y" + MemberName 507(S) 2 "z" + Name 509 "B1" + MemberName 509(B1) 0 "a" + MemberName 509(B1) 1 "b" + MemberName 509(B1) 2 "c" + MemberName 509(B1) 3 "d" + MemberName 509(B1) 4 "e" + MemberName 509(B1) 5 "f" + MemberName 509(B1) 6 "g" + MemberName 509(B1) 7 "h" + Name 511 "" + Name 512 "sf16" + Name 514 "sf" + Name 515 "sd" + Decorate 458(if64v) Flat + Decorate 505 ArrayStride 16 + Decorate 506 ArrayStride 64 + MemberDecorate 507(S) 0 Offset 0 + MemberDecorate 507(S) 1 Offset 16 + MemberDecorate 507(S) 2 Offset 32 + Decorate 508 ArrayStride 64 + MemberDecorate 509(B1) 0 Offset 0 + MemberDecorate 509(B1) 1 Offset 16 + MemberDecorate 509(B1) 2 Offset 32 + MemberDecorate 509(B1) 3 Offset 64 + MemberDecorate 509(B1) 4 ColMajor + MemberDecorate 509(B1) 4 Offset 96 + MemberDecorate 509(B1) 4 MatrixStride 32 + MemberDecorate 509(B1) 5 ColMajor + MemberDecorate 509(B1) 5 Offset 160 + MemberDecorate 509(B1) 5 MatrixStride 32 + MemberDecorate 509(B1) 6 Offset 288 + MemberDecorate 509(B1) 7 Offset 352 + Decorate 509(B1) Block + Decorate 511 DescriptorSet 0 + Decorate 512(sf16) SpecId 100 + Decorate 514(sf) SpecId 101 + Decorate 515(sd) SpecId 102 + 2: TypeVoid + 3: TypeFunction 2 + 26: TypeFloat 64 + 27: TypeVector 26(float64_t) 2 + 28: TypePointer Function 27(f64vec2) + 30:26(float64_t) Constant 2696277389 1051772663 + 31: TypeInt 32 0 + 32: 31(int) Constant 0 + 33: TypePointer Function 26(float64_t) + 35:26(float64_t) Constant 0 3218079744 + 36:26(float64_t) Constant 3951369912 1067366481 + 37: 27(f64vec2) ConstantComposite 35 36 + 54:26(float64_t) Constant 0 1072693248 + 60: TypeMatrix 27(f64vec2) 2 + 61: TypePointer Function 60 + 88: 31(int) Constant 1 + 107: TypeBool + 108: TypePointer Function 107(bool) + 149: TypeVector 26(float64_t) 3 + 150: TypePointer Function 149(f64vec3) + 152: TypeVector 107(bool) 3 + 153: TypePointer Function 152(bvec3) + 156:26(float64_t) Constant 0 0 + 157:149(f64vec3) ConstantComposite 156 156 156 + 158:149(f64vec3) ConstantComposite 54 54 54 + 162: TypeFloat 16 + 163: TypeVector 162(float16_t) 3 + 164: TypePointer Function 163(f16vec3) + 170: TypeInt 8 1 + 171: TypeVector 170(int8_t) 3 + 172: TypePointer Function 171(i8vec3) + 176: TypeInt 16 1 + 177: TypeVector 176(int16_t) 3 + 178: TypePointer Function 177(i16vec3) + 182: TypeInt 32 1 + 183: TypeVector 182(int) 3 + 184: TypePointer Function 183(ivec3) + 188: TypeInt 64 1 + 189: TypeVector 188(int64_t) 3 + 190: TypePointer Function 189(i64vec3) + 197: TypeInt 16 0 + 198: TypeVector 197(int16_t) 3 + 199: TypePointer Function 198(i16vec3) + 203: TypeVector 31(int) 3 + 204: TypePointer Function 203(ivec3) + 208: TypeInt 64 0 + 209: TypeVector 208(int64_t) 3 + 210: TypePointer Function 209(i64vec3) + 214: TypeVector 26(float64_t) 4 + 215: TypePointer Function 214(f64vec4) + 364(ResType): TypeStruct 149(f64vec3) 183(ivec3) + 399: TypeMatrix 149(f64vec3) 2 + 400: TypePointer Function 399 + 418: TypeMatrix 27(f64vec2) 3 + 419: TypePointer Function 418 + 424: TypeMatrix 149(f64vec3) 3 + 425: TypePointer Function 424 + 429: TypeMatrix 214(f64vec4) 4 + 430: TypePointer Function 429 + 457: TypePointer Input 149(f64vec3) + 458(if64v): 457(ptr) Variable Input + 459: TypePointer Input 26(float64_t) + 496: 182(int) Constant 1 + 501:26(float64_t) Constant 0 1071644672 + 502: 27(f64vec2) ConstantComposite 501 501 + 504: 31(int) Constant 2 + 505: TypeArray 26(float64_t) 504 + 506: TypeArray 399 504 + 507(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) + 508: TypeArray 507(S) 504 + 509(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 505 399 506 507(S) 508 + 510: TypePointer Uniform 509(B1) + 511: 510(ptr) Variable Uniform + 512(sf16):162(float16_t) SpecConstant 12288 + 513: TypeFloat 32 + 514(sf): 513(float) SpecConstant 1048576000 + 515(sd):26(float64_t) SpecConstant 0 1071644672 + 516: 513(float) SpecConstantOp 115 512(sf16) + 517: 513(float) SpecConstantOp 115 512(sf16) + 518:26(float64_t) SpecConstantOp 115 517 + 519:162(float16_t) SpecConstantOp 115 514(sf) + 520:162(float16_t) SpecConstantOp 115 515(sd) + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 29(f64v): 28(ptr) Variable Function + 34: 33(ptr) AccessChain 29(f64v) 32 + Store 34 30 + 38: 27(f64vec2) Load 29(f64v) + 39: 27(f64vec2) FAdd 38 37 + Store 29(f64v) 39 + Return + FunctionEnd + 8(operators(): 2 Function None 3 + 9: Label + 40(f64v): 28(ptr) Variable Function + 62(f64m): 61(ptr) Variable Function + 85(f64): 33(ptr) Variable Function + 109(b): 108(ptr) Variable Function + 41: 27(f64vec2) Load 40(f64v) + 42: 27(f64vec2) Load 40(f64v) + 43: 27(f64vec2) FAdd 42 41 + Store 40(f64v) 43 + 44: 27(f64vec2) Load 40(f64v) + 45: 27(f64vec2) Load 40(f64v) + 46: 27(f64vec2) FSub 45 44 + Store 40(f64v) 46 + 47: 27(f64vec2) Load 40(f64v) + 48: 27(f64vec2) Load 40(f64v) + 49: 27(f64vec2) FMul 48 47 + Store 40(f64v) 49 + 50: 27(f64vec2) Load 40(f64v) + 51: 27(f64vec2) Load 40(f64v) + 52: 27(f64vec2) FDiv 51 50 + Store 40(f64v) 52 + 53: 27(f64vec2) Load 40(f64v) + 55: 27(f64vec2) CompositeConstruct 54 54 + 56: 27(f64vec2) FAdd 53 55 + Store 40(f64v) 56 + 57: 27(f64vec2) Load 40(f64v) + 58: 27(f64vec2) CompositeConstruct 54 54 + 59: 27(f64vec2) FSub 57 58 + Store 40(f64v) 59 + 63: 60 Load 62(f64m) + 64: 27(f64vec2) CompositeConstruct 54 54 + 65: 27(f64vec2) CompositeExtract 63 0 + 66: 27(f64vec2) FAdd 65 64 + 67: 27(f64vec2) CompositeExtract 63 1 + 68: 27(f64vec2) FAdd 67 64 + 69: 60 CompositeConstruct 66 68 + Store 62(f64m) 69 + 70: 60 Load 62(f64m) + 71: 27(f64vec2) CompositeConstruct 54 54 + 72: 27(f64vec2) CompositeExtract 70 0 + 73: 27(f64vec2) FSub 72 71 + 74: 27(f64vec2) CompositeExtract 70 1 + 75: 27(f64vec2) FSub 74 71 + 76: 60 CompositeConstruct 73 75 + Store 62(f64m) 76 + 77: 27(f64vec2) Load 40(f64v) + 78: 27(f64vec2) FNegate 77 + Store 40(f64v) 78 + 79: 60 Load 62(f64m) + 80: 27(f64vec2) CompositeExtract 79 0 + 81: 27(f64vec2) FNegate 80 + 82: 27(f64vec2) CompositeExtract 79 1 + 83: 27(f64vec2) FNegate 82 + 84: 60 CompositeConstruct 81 83 + Store 62(f64m) 84 + 86: 33(ptr) AccessChain 40(f64v) 32 + 87:26(float64_t) Load 86 + 89: 33(ptr) AccessChain 40(f64v) 88 + 90:26(float64_t) Load 89 + 91:26(float64_t) FAdd 87 90 + Store 85(f64) 91 + 92: 33(ptr) AccessChain 40(f64v) 32 + 93:26(float64_t) Load 92 + 94: 33(ptr) AccessChain 40(f64v) 88 + 95:26(float64_t) Load 94 + 96:26(float64_t) FSub 93 95 + Store 85(f64) 96 + 97: 33(ptr) AccessChain 40(f64v) 32 + 98:26(float64_t) Load 97 + 99: 33(ptr) AccessChain 40(f64v) 88 + 100:26(float64_t) Load 99 + 101:26(float64_t) FMul 98 100 + Store 85(f64) 101 + 102: 33(ptr) AccessChain 40(f64v) 32 + 103:26(float64_t) Load 102 + 104: 33(ptr) AccessChain 40(f64v) 88 + 105:26(float64_t) Load 104 + 106:26(float64_t) FDiv 103 105 + Store 85(f64) 106 + 110: 33(ptr) AccessChain 40(f64v) 32 + 111:26(float64_t) Load 110 + 112:26(float64_t) Load 85(f64) + 113: 107(bool) FOrdNotEqual 111 112 + Store 109(b) 113 + 114: 33(ptr) AccessChain 40(f64v) 88 + 115:26(float64_t) Load 114 + 116:26(float64_t) Load 85(f64) + 117: 107(bool) FOrdEqual 115 116 + Store 109(b) 117 + 118: 33(ptr) AccessChain 40(f64v) 32 + 119:26(float64_t) Load 118 + 120:26(float64_t) Load 85(f64) + 121: 107(bool) FOrdGreaterThan 119 120 + Store 109(b) 121 + 122: 33(ptr) AccessChain 40(f64v) 88 + 123:26(float64_t) Load 122 + 124:26(float64_t) Load 85(f64) + 125: 107(bool) FOrdLessThan 123 124 + Store 109(b) 125 + 126: 33(ptr) AccessChain 40(f64v) 32 + 127:26(float64_t) Load 126 + 128:26(float64_t) Load 85(f64) + 129: 107(bool) FOrdGreaterThanEqual 127 128 + Store 109(b) 129 + 130: 33(ptr) AccessChain 40(f64v) 88 + 131:26(float64_t) Load 130 + 132:26(float64_t) Load 85(f64) + 133: 107(bool) FOrdLessThanEqual 131 132 + Store 109(b) 133 + 134: 27(f64vec2) Load 40(f64v) + 135:26(float64_t) Load 85(f64) + 136: 27(f64vec2) VectorTimesScalar 134 135 + Store 40(f64v) 136 + 137: 60 Load 62(f64m) + 138:26(float64_t) Load 85(f64) + 139: 60 MatrixTimesScalar 137 138 + Store 62(f64m) 139 + 140: 60 Load 62(f64m) + 141: 27(f64vec2) Load 40(f64v) + 142: 27(f64vec2) MatrixTimesVector 140 141 + Store 40(f64v) 142 + 143: 27(f64vec2) Load 40(f64v) + 144: 60 Load 62(f64m) + 145: 27(f64vec2) VectorTimesMatrix 143 144 + Store 40(f64v) 145 + 146: 60 Load 62(f64m) + 147: 60 Load 62(f64m) + 148: 60 MatrixTimesMatrix 146 147 + Store 62(f64m) 148 + Return + FunctionEnd + 10(typeCast(): 2 Function None 3 + 11: Label + 151(f64v): 150(ptr) Variable Function + 154(bv): 153(ptr) Variable Function + 165(f16v): 164(ptr) Variable Function + 173(i8v): 172(ptr) Variable Function + 179(i16v): 178(ptr) Variable Function + 185(i32v): 184(ptr) Variable Function + 191(i64v): 190(ptr) Variable Function + 194(u8v): 172(ptr) Variable Function + 200(u16v): 199(ptr) Variable Function + 205(u32v): 204(ptr) Variable Function + 211(u64v): 210(ptr) Variable Function + 155: 152(bvec3) Load 154(bv) + 159:149(f64vec3) Select 155 158 157 + Store 151(f64v) 159 + 160:149(f64vec3) Load 151(f64v) + 161: 152(bvec3) FOrdNotEqual 160 157 + Store 154(bv) 161 + 166:163(f16vec3) Load 165(f16v) + 167:149(f64vec3) FConvert 166 + Store 151(f64v) 167 + 168:149(f64vec3) Load 151(f64v) + 169:163(f16vec3) FConvert 168 + Store 165(f16v) 169 + 174:149(f64vec3) Load 151(f64v) + 175: 171(i8vec3) ConvertFToS 174 + Store 173(i8v) 175 + 180:149(f64vec3) Load 151(f64v) + 181:177(i16vec3) ConvertFToS 180 + Store 179(i16v) 181 + 186:149(f64vec3) Load 151(f64v) + 187: 183(ivec3) ConvertFToS 186 + Store 185(i32v) 187 + 192:149(f64vec3) Load 151(f64v) + 193:189(i64vec3) ConvertFToS 192 + Store 191(i64v) 193 + 195:149(f64vec3) Load 151(f64v) + 196: 171(i8vec3) ConvertFToS 195 + Store 194(u8v) 196 + 201:149(f64vec3) Load 151(f64v) + 202:198(i16vec3) ConvertFToU 201 + Store 200(u16v) 202 + 206:149(f64vec3) Load 151(f64v) + 207: 203(ivec3) ConvertFToU 206 + Store 205(u32v) 207 + 212:149(f64vec3) Load 151(f64v) + 213:209(i64vec3) ConvertFToU 212 + Store 211(u64v) 213 + Return + FunctionEnd +12(builtinAngleTrigFuncs(): 2 Function None 3 + 13: Label + 216(f64v2): 215(ptr) Variable Function + 217(f64v1): 215(ptr) Variable Function + 218:214(f64vec4) Load 217(f64v1) + 219:214(f64vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 + Store 216(f64v2) 219 + 220:214(f64vec4) Load 217(f64v1) + 221:214(f64vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 + Store 216(f64v2) 221 + 222:214(f64vec4) Load 217(f64v1) + 223:214(f64vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 + Store 216(f64v2) 223 + 224:214(f64vec4) Load 217(f64v1) + 225:214(f64vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 + Store 216(f64v2) 225 + 226:214(f64vec4) Load 217(f64v1) + 227:214(f64vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 + Store 216(f64v2) 227 + 228:214(f64vec4) Load 217(f64v1) + 229:214(f64vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 + Store 216(f64v2) 229 + 230:214(f64vec4) Load 217(f64v1) + 231:214(f64vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 + Store 216(f64v2) 231 + 232:214(f64vec4) Load 217(f64v1) + 233:214(f64vec4) Load 216(f64v2) + 234:214(f64vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 + Store 216(f64v2) 234 + 235:214(f64vec4) Load 217(f64v1) + 236:214(f64vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 + Store 216(f64v2) 236 + 237:214(f64vec4) Load 217(f64v1) + 238:214(f64vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 + Store 216(f64v2) 238 + 239:214(f64vec4) Load 217(f64v1) + 240:214(f64vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 + Store 216(f64v2) 240 + 241:214(f64vec4) Load 217(f64v1) + 242:214(f64vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 + Store 216(f64v2) 242 + 243:214(f64vec4) Load 217(f64v1) + 244:214(f64vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 + Store 216(f64v2) 244 + 245:214(f64vec4) Load 217(f64v1) + 246:214(f64vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 + Store 216(f64v2) 246 + 247:214(f64vec4) Load 217(f64v1) + 248:214(f64vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 + Store 216(f64v2) 248 + Return + FunctionEnd +14(builtinExpFuncs(): 2 Function None 3 + 15: Label + 249(f64v2): 28(ptr) Variable Function + 250(f64v1): 28(ptr) Variable Function + 251: 27(f64vec2) Load 250(f64v1) + 252: 27(f64vec2) Load 249(f64v2) + 253: 27(f64vec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 + Store 249(f64v2) 253 + 254: 27(f64vec2) Load 250(f64v1) + 255: 27(f64vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 + Store 249(f64v2) 255 + 256: 27(f64vec2) Load 250(f64v1) + 257: 27(f64vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 + Store 249(f64v2) 257 + 258: 27(f64vec2) Load 250(f64v1) + 259: 27(f64vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 + Store 249(f64v2) 259 + 260: 27(f64vec2) Load 250(f64v1) + 261: 27(f64vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 + Store 249(f64v2) 261 + 262: 27(f64vec2) Load 250(f64v1) + 263: 27(f64vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 + Store 249(f64v2) 263 + 264: 27(f64vec2) Load 250(f64v1) + 265: 27(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 + Store 249(f64v2) 265 + Return + FunctionEnd +16(builtinCommonFuncs(): 2 Function None 3 + 17: Label + 266(f64v2): 150(ptr) Variable Function + 267(f64v1): 150(ptr) Variable Function + 288(f64): 33(ptr) Variable Function + 292(f64v3): 150(ptr) Variable Function + 332(bv): 153(ptr) Variable Function + 353(b): 108(ptr) Variable Function + 363(iv): 184(ptr) Variable Function + 268:149(f64vec3) Load 267(f64v1) + 269:149(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 + Store 266(f64v2) 269 + 270:149(f64vec3) Load 267(f64v1) + 271:149(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 + Store 266(f64v2) 271 + 272:149(f64vec3) Load 267(f64v1) + 273:149(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 + Store 266(f64v2) 273 + 274:149(f64vec3) Load 267(f64v1) + 275:149(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 + Store 266(f64v2) 275 + 276:149(f64vec3) Load 267(f64v1) + 277:149(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 + Store 266(f64v2) 277 + 278:149(f64vec3) Load 267(f64v1) + 279:149(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 + Store 266(f64v2) 279 + 280:149(f64vec3) Load 267(f64v1) + 281:149(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 + Store 266(f64v2) 281 + 282:149(f64vec3) Load 267(f64v1) + 283:149(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 + Store 266(f64v2) 283 + 284:149(f64vec3) Load 267(f64v1) + 285:149(f64vec3) Load 266(f64v2) + 286:149(f64vec3) FMod 284 285 + Store 266(f64v2) 286 + 287:149(f64vec3) Load 267(f64v1) + 289:26(float64_t) Load 288(f64) + 290:149(f64vec3) CompositeConstruct 289 289 289 + 291:149(f64vec3) FMod 287 290 + Store 266(f64v2) 291 + 293:149(f64vec3) Load 267(f64v1) + 294:149(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f64v2) + Store 292(f64v3) 294 + 295:149(f64vec3) Load 267(f64v1) + 296:149(f64vec3) Load 266(f64v2) + 297:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 + Store 292(f64v3) 297 + 298:149(f64vec3) Load 267(f64v1) + 299:26(float64_t) Load 288(f64) + 300:149(f64vec3) CompositeConstruct 299 299 299 + 301:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 + Store 292(f64v3) 301 + 302:149(f64vec3) Load 267(f64v1) + 303:149(f64vec3) Load 266(f64v2) + 304:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 + Store 292(f64v3) 304 + 305:149(f64vec3) Load 267(f64v1) + 306:26(float64_t) Load 288(f64) + 307:149(f64vec3) CompositeConstruct 306 306 306 + 308:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 + Store 292(f64v3) 308 + 309:149(f64vec3) Load 267(f64v1) + 310:26(float64_t) Load 288(f64) + 311: 33(ptr) AccessChain 266(f64v2) 32 + 312:26(float64_t) Load 311 + 313:149(f64vec3) CompositeConstruct 310 310 310 + 314:149(f64vec3) CompositeConstruct 312 312 312 + 315:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 + Store 292(f64v3) 315 + 316:149(f64vec3) Load 267(f64v1) + 317:149(f64vec3) Load 266(f64v2) + 318:26(float64_t) Load 288(f64) + 319:149(f64vec3) CompositeConstruct 318 318 318 + 320:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 + Store 292(f64v3) 320 + 321:149(f64vec3) Load 267(f64v1) + 322:149(f64vec3) Load 266(f64v2) + 323:26(float64_t) Load 288(f64) + 324:149(f64vec3) CompositeConstruct 323 323 323 + 325:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 + Store 292(f64v3) 325 + 326:149(f64vec3) Load 267(f64v1) + 327:149(f64vec3) Load 266(f64v2) + 328:149(f64vec3) Load 292(f64v3) + 329:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 + Store 292(f64v3) 329 + 330:149(f64vec3) Load 267(f64v1) + 331:149(f64vec3) Load 266(f64v2) + 333: 152(bvec3) Load 332(bv) + 334:149(f64vec3) Select 333 331 330 + Store 292(f64v3) 334 + 335:149(f64vec3) Load 267(f64v1) + 336:149(f64vec3) Load 266(f64v2) + 337:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 + Store 292(f64v3) 337 + 338:26(float64_t) Load 288(f64) + 339:149(f64vec3) Load 292(f64v3) + 340:149(f64vec3) CompositeConstruct 338 338 338 + 341:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 + Store 292(f64v3) 341 + 342:149(f64vec3) Load 267(f64v1) + 343:149(f64vec3) Load 266(f64v2) + 344:149(f64vec3) Load 292(f64v3) + 345:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 + Store 292(f64v3) 345 + 346:26(float64_t) Load 288(f64) + 347: 33(ptr) AccessChain 267(f64v1) 32 + 348:26(float64_t) Load 347 + 349:149(f64vec3) Load 266(f64v2) + 350:149(f64vec3) CompositeConstruct 346 346 346 + 351:149(f64vec3) CompositeConstruct 348 348 348 + 352:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 + Store 292(f64v3) 352 + 354:26(float64_t) Load 288(f64) + 355: 107(bool) IsNan 354 + Store 353(b) 355 + 356:149(f64vec3) Load 267(f64v1) + 357: 152(bvec3) IsInf 356 + Store 332(bv) 357 + 358:149(f64vec3) Load 267(f64v1) + 359:149(f64vec3) Load 266(f64v2) + 360:149(f64vec3) Load 292(f64v3) + 361:149(f64vec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 + Store 292(f64v3) 361 + 362:149(f64vec3) Load 267(f64v1) + 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 + 366: 183(ivec3) CompositeExtract 365 1 + Store 363(iv) 366 + 367:149(f64vec3) CompositeExtract 365 0 + Store 266(f64v2) 367 + 368:149(f64vec3) Load 267(f64v1) + 369: 183(ivec3) Load 363(iv) + 370:149(f64vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 + Store 266(f64v2) 370 + Return + FunctionEnd +18(builtinGeometryFuncs(): 2 Function None 3 + 19: Label + 371(f64): 33(ptr) Variable Function + 372(f64v1): 150(ptr) Variable Function + 376(f64v2): 150(ptr) Variable Function + 382(f64v3): 150(ptr) Variable Function + 373:149(f64vec3) Load 372(f64v1) + 374:26(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 373 + Store 371(f64) 374 + 375:149(f64vec3) Load 372(f64v1) + 377:149(f64vec3) Load 376(f64v2) + 378:26(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 375 377 + Store 371(f64) 378 + 379:149(f64vec3) Load 372(f64v1) + 380:149(f64vec3) Load 376(f64v2) + 381:26(float64_t) Dot 379 380 + Store 371(f64) 381 + 383:149(f64vec3) Load 372(f64v1) + 384:149(f64vec3) Load 376(f64v2) + 385:149(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 383 384 + Store 382(f64v3) 385 + 386:149(f64vec3) Load 372(f64v1) + 387:149(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 386 + Store 376(f64v2) 387 + 388:149(f64vec3) Load 372(f64v1) + 389:149(f64vec3) Load 376(f64v2) + 390:149(f64vec3) Load 382(f64v3) + 391:149(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 388 389 390 + Store 382(f64v3) 391 + 392:149(f64vec3) Load 372(f64v1) + 393:149(f64vec3) Load 376(f64v2) + 394:149(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 392 393 + Store 382(f64v3) 394 + 395:149(f64vec3) Load 372(f64v1) + 396:149(f64vec3) Load 376(f64v2) + 397:26(float64_t) Load 371(f64) + 398:149(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 395 396 397 + Store 382(f64v3) 398 + Return + FunctionEnd +20(builtinMatrixFuncs(): 2 Function None 3 + 21: Label + 401(f64m3): 400(ptr) Variable Function + 402(f64m1): 400(ptr) Variable Function + 404(f64m2): 400(ptr) Variable Function + 413(f64v1): 150(ptr) Variable Function + 415(f64v2): 28(ptr) Variable Function + 420(f64m4): 419(ptr) Variable Function + 423(f64): 33(ptr) Variable Function + 426(f64m5): 425(ptr) Variable Function + 431(f64m6): 430(ptr) Variable Function + 432(f64m7): 430(ptr) Variable Function + 403: 399 Load 402(f64m1) + 405: 399 Load 404(f64m2) + 406:149(f64vec3) CompositeExtract 403 0 + 407:149(f64vec3) CompositeExtract 405 0 + 408:149(f64vec3) FMul 406 407 + 409:149(f64vec3) CompositeExtract 403 1 + 410:149(f64vec3) CompositeExtract 405 1 + 411:149(f64vec3) FMul 409 410 + 412: 399 CompositeConstruct 408 411 + Store 401(f64m3) 412 + 414:149(f64vec3) Load 413(f64v1) + 416: 27(f64vec2) Load 415(f64v2) + 417: 399 OuterProduct 414 416 + Store 402(f64m1) 417 + 421: 399 Load 402(f64m1) + 422: 418 Transpose 421 + Store 420(f64m4) 422 + 427: 424 Load 426(f64m5) + 428:26(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 427 + Store 423(f64) 428 + 433: 429 Load 432(f64m7) + 434: 429 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 433 + Store 431(f64m6) 434 + Return + FunctionEnd +22(builtinVecRelFuncs(): 2 Function None 3 + 23: Label + 435(bv): 153(ptr) Variable Function + 436(f64v1): 150(ptr) Variable Function + 438(f64v2): 150(ptr) Variable Function + 437:149(f64vec3) Load 436(f64v1) + 439:149(f64vec3) Load 438(f64v2) + 440: 152(bvec3) FOrdLessThan 437 439 + Store 435(bv) 440 + 441:149(f64vec3) Load 436(f64v1) + 442:149(f64vec3) Load 438(f64v2) + 443: 152(bvec3) FOrdLessThanEqual 441 442 + Store 435(bv) 443 + 444:149(f64vec3) Load 436(f64v1) + 445:149(f64vec3) Load 438(f64v2) + 446: 152(bvec3) FOrdGreaterThan 444 445 + Store 435(bv) 446 + 447:149(f64vec3) Load 436(f64v1) + 448:149(f64vec3) Load 438(f64v2) + 449: 152(bvec3) FOrdGreaterThanEqual 447 448 + Store 435(bv) 449 + 450:149(f64vec3) Load 436(f64v1) + 451:149(f64vec3) Load 438(f64v2) + 452: 152(bvec3) FOrdEqual 450 451 + Store 435(bv) 452 + 453:149(f64vec3) Load 436(f64v1) + 454:149(f64vec3) Load 438(f64v2) + 455: 152(bvec3) FOrdNotEqual 453 454 + Store 435(bv) 455 + Return + FunctionEnd +24(builtinFragProcFuncs(): 2 Function None 3 + 25: Label + 456(f64v): 150(ptr) Variable Function + 460: 459(ptr) AccessChain 458(if64v) 32 + 461:26(float64_t) Load 460 + 462:26(float64_t) DPdx 461 + 463: 33(ptr) AccessChain 456(f64v) 32 + Store 463 462 + 464: 459(ptr) AccessChain 458(if64v) 88 + 465:26(float64_t) Load 464 + 466:26(float64_t) DPdy 465 + 467: 33(ptr) AccessChain 456(f64v) 88 + Store 467 466 + 468:149(f64vec3) Load 458(if64v) + 469: 27(f64vec2) VectorShuffle 468 468 0 1 + 470: 27(f64vec2) DPdxFine 469 + 471:149(f64vec3) Load 456(f64v) + 472:149(f64vec3) VectorShuffle 471 470 3 4 2 + Store 456(f64v) 472 + 473:149(f64vec3) Load 458(if64v) + 474: 27(f64vec2) VectorShuffle 473 473 0 1 + 475: 27(f64vec2) DPdyFine 474 + 476:149(f64vec3) Load 456(f64v) + 477:149(f64vec3) VectorShuffle 476 475 3 4 2 + Store 456(f64v) 477 + 478:149(f64vec3) Load 458(if64v) + 479:149(f64vec3) DPdxCoarse 478 + Store 456(f64v) 479 + 480:149(f64vec3) Load 458(if64v) + 481:149(f64vec3) DPdxCoarse 480 + Store 456(f64v) 481 + 482: 459(ptr) AccessChain 458(if64v) 32 + 483:26(float64_t) Load 482 + 484:26(float64_t) Fwidth 483 + 485: 33(ptr) AccessChain 456(f64v) 32 + Store 485 484 + 486:149(f64vec3) Load 458(if64v) + 487: 27(f64vec2) VectorShuffle 486 486 0 1 + 488: 27(f64vec2) FwidthFine 487 + 489:149(f64vec3) Load 456(f64v) + 490:149(f64vec3) VectorShuffle 489 488 3 4 2 + Store 456(f64v) 490 + 491:149(f64vec3) Load 458(if64v) + 492:149(f64vec3) FwidthCoarse 491 + Store 456(f64v) 492 + 493: 459(ptr) AccessChain 458(if64v) 32 + 494:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 493 + 495: 33(ptr) AccessChain 456(f64v) 32 + Store 495 494 + 497:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 458(if64v) 496 + 498: 27(f64vec2) VectorShuffle 497 497 0 1 + 499:149(f64vec3) Load 456(f64v) + 500:149(f64vec3) VectorShuffle 499 498 3 4 2 + Store 456(f64v) 500 + 503:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 458(if64v) 502 + Store 456(f64v) 503 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out b/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out new file mode 100644 index 0000000000..30c2a4b6ec --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.flowControl.frag.out @@ -0,0 +1,70 @@ +spv.flowControl.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 14 17 19 25 30 35 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 13 "color2" + Name 14 "otherColor" + Name 17 "c" + Name 19 "d" + Name 25 "bigColor" + Name 30 "smallColor" + Name 35 "gl_FragColor" + Decorate 35(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 14(otherColor): 10(ptr) Variable Input + 16: TypePointer Input 6(float) + 17(c): 16(ptr) Variable Input + 19(d): 16(ptr) Variable Input + 21: TypeBool + 25(bigColor): 10(ptr) Variable Input + 30(smallColor): 10(ptr) Variable Input + 34: TypePointer Output 7(fvec4) +35(gl_FragColor): 34(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 13(color2): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + 15: 7(fvec4) Load 14(otherColor) + Store 13(color2) 15 + 18: 6(float) Load 17(c) + 20: 6(float) Load 19(d) + 22: 21(bool) FOrdGreaterThan 18 20 + SelectionMerge 24 None + BranchConditional 22 23 29 + 23: Label + 26: 7(fvec4) Load 25(bigColor) + 27: 7(fvec4) Load 9(color) + 28: 7(fvec4) FAdd 27 26 + Store 9(color) 28 + Branch 24 + 29: Label + 31: 7(fvec4) Load 30(smallColor) + 32: 7(fvec4) Load 9(color) + 33: 7(fvec4) FAdd 32 31 + Store 9(color) 33 + Branch 24 + 24: Label + 36: 7(fvec4) Load 9(color) + 37: 7(fvec4) Load 13(color2) + 38: 7(fvec4) FMul 36 37 + Store 35(gl_FragColor) 38 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-complex-condition.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-complex-condition.vert.out new file mode 100644 index 0000000000..41275a45ce --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.for-complex-condition.vert.out @@ -0,0 +1,58 @@ +spv.for-complex-condition.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 17 27 + Source GLSL 450 + Name 4 "main" + Name 8 "i" + Name 17 "flag" + Name 27 "r" + Decorate 17(flag) RelaxedPrecision + Decorate 17(flag) Location 0 + Decorate 18 RelaxedPrecision + Decorate 27(r) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: TypePointer Input 6(int) + 17(flag): 16(ptr) Variable Input + 19: 6(int) Constant 1 + 20: TypeBool + 22: 6(int) Constant 10 + 23: 6(int) Constant 15 + 26: TypePointer Output 6(int) + 27(r): 26(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 6(int) Load 17(flag) + 21: 20(bool) IEqual 18 19 + 24: 6(int) Select 21 22 23 + 25: 20(bool) SLessThan 15 24 + BranchConditional 25 11 12 + 11: Label + 28: 6(int) Load 8(i) + Store 27(r) 28 + Branch 13 + 13: Label + 29: 6(int) Load 8(i) + 30: 6(int) IAdd 29 19 + Store 8(i) 30 + Branch 10 + 12: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-continue-break.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-continue-break.vert.out new file mode 100644 index 0000000000..ff94a93136 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.for-continue-break.vert.out @@ -0,0 +1,81 @@ +spv.for-continue-break.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source ESSL 310 + Name 4 "main" + Name 8 "i" + Name 19 "A" + Name 27 "B" + Name 29 "C" + Name 36 "D" + Name 38 "E" + Name 39 "F" + Name 43 "G" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 10 + 17: TypeBool + 20: 6(int) Constant 1 + 22: 6(int) Constant 2 + 31: 6(int) Constant 3 + 40: 6(int) Constant 12 + 44: 6(int) Constant 99 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 19(A): 7(ptr) Variable Function + 27(B): 7(ptr) Variable Function + 29(C): 7(ptr) Variable Function + 36(D): 7(ptr) Variable Function + 38(E): 7(ptr) Variable Function + 39(F): 7(ptr) Variable Function + 43(G): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + Store 19(A) 20 + 21: 6(int) Load 8(i) + 23: 6(int) SMod 21 22 + 24: 17(bool) IEqual 23 9 + SelectionMerge 26 None + BranchConditional 24 25 26 + 25: Label + Store 27(B) 20 + Branch 13 + 26: Label + 30: 6(int) Load 8(i) + 32: 6(int) SMod 30 31 + 33: 17(bool) IEqual 32 9 + SelectionMerge 35 None + BranchConditional 33 34 35 + 34: Label + Store 36(D) 20 + Branch 12 + 35: Label + Store 39(F) 40 + Branch 13 + 13: Label + 41: 6(int) Load 8(i) + 42: 6(int) IAdd 41 20 + Store 8(i) 42 + Branch 10 + 12: Label + Store 43(G) 44 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out new file mode 100644 index 0000000000..2a3bcf40ee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.for-nobody.vert.out @@ -0,0 +1,48 @@ +spv.for-nobody.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 23 + Source GLSL 450 + Name 4 "main" + Name 8 "i" + Name 23 "r" + Decorate 23(r) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 10 + 17: TypeBool + 20: 6(int) Constant 1 + 22: TypePointer Output 6(int) + 23(r): 22(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + Branch 13 + 13: Label + 19: 6(int) Load 8(i) + 21: 6(int) IAdd 19 20 + Store 8(i) 21 + Branch 10 + 12: Label + 24: 6(int) Load 8(i) + Store 23(r) 24 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out new file mode 100644 index 0000000000..36c4a96a3a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.for-notest.vert.out @@ -0,0 +1,42 @@ +spv.for-notest.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 15 + Source GLSL 450 + Name 4 "main" + Name 8 "i" + Name 15 "r" + Decorate 15(r) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: TypePointer Output 6(int) + 15(r): 14(ptr) Variable Output + 18: 6(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 11 + 11: Label + 16: 6(int) Load 8(i) + Store 15(r) 16 + Branch 13 + 13: Label + 17: 6(int) Load 8(i) + 19: 6(int) IAdd 17 18 + Store 8(i) 19 + Branch 10 + 12: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out b/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out new file mode 100644 index 0000000000..ecb539f902 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.for-simple.vert.out @@ -0,0 +1,46 @@ +spv.for-simple.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source ESSL 310 + Name 4 "main" + Name 8 "i" + Name 19 "j" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 10 + 17: TypeBool + 20: 6(int) Constant 12 + 22: 6(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 19(j): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + Store 19(j) 20 + Branch 13 + 13: Label + 21: 6(int) Load 8(i) + 23: 6(int) IAdd 21 22 + Store 8(i) 23 + Branch 10 + 12: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out b/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out new file mode 100644 index 0000000000..a07921ce77 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.forLoop.frag.out @@ -0,0 +1,212 @@ +spv.forLoop.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 131 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 24 28 36 53 104 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 15 "i" + Name 24 "Count" + Name 28 "bigColor" + Name 36 "gl_FragColor" + Name 39 "sum" + Name 41 "i" + Name 53 "v4" + Name 63 "i" + Name 71 "tv4" + Name 88 "r" + Name 94 "i" + Name 104 "f" + Name 117 "i" + Decorate 24(Count) Flat + Decorate 36(gl_FragColor) Location 0 + Decorate 53(v4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 16: 13(int) Constant 0 + 23: TypePointer Input 13(int) + 24(Count): 23(ptr) Variable Input + 26: TypeBool + 28(bigColor): 10(ptr) Variable Input + 33: 13(int) Constant 1 + 35: TypePointer Output 7(fvec4) +36(gl_FragColor): 35(ptr) Variable Output + 38: TypePointer Function 6(float) + 40: 6(float) Constant 0 + 48: 13(int) Constant 4 + 50: TypeInt 32 0 + 51: TypeVector 50(int) 4 + 52: TypePointer Input 51(ivec4) + 53(v4): 52(ptr) Variable Input + 55: TypePointer Input 50(int) + 76: 50(int) Constant 4 + 89: TypeVector 6(float) 3 + 103: TypePointer Input 6(float) + 104(f): 103(ptr) Variable Input + 106: 50(int) Constant 3 + 124: 13(int) Constant 16 + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 15(i): 14(ptr) Variable Function + 39(sum): 38(ptr) Variable Function + 41(i): 14(ptr) Variable Function + 63(i): 14(ptr) Variable Function + 71(tv4): 8(ptr) Variable Function + 88(r): 8(ptr) Variable Function + 94(i): 14(ptr) Variable Function + 117(i): 14(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Store 15(i) 16 + Branch 17 + 17: Label + LoopMerge 19 20 None + Branch 21 + 21: Label + 22: 13(int) Load 15(i) + 25: 13(int) Load 24(Count) + 27: 26(bool) SLessThan 22 25 + BranchConditional 27 18 19 + 18: Label + 29: 7(fvec4) Load 28(bigColor) + 30: 7(fvec4) Load 9(color) + 31: 7(fvec4) FAdd 30 29 + Store 9(color) 31 + Branch 20 + 20: Label + 32: 13(int) Load 15(i) + 34: 13(int) IAdd 32 33 + Store 15(i) 34 + Branch 17 + 19: Label + 37: 7(fvec4) Load 9(color) + Store 36(gl_FragColor) 37 + Store 39(sum) 40 + Store 41(i) 16 + Branch 42 + 42: Label + LoopMerge 44 45 None + Branch 46 + 46: Label + 47: 13(int) Load 41(i) + 49: 26(bool) SLessThan 47 48 + BranchConditional 49 43 44 + 43: Label + 54: 13(int) Load 41(i) + 56: 55(ptr) AccessChain 53(v4) 54 + 57: 50(int) Load 56 + 58: 6(float) ConvertUToF 57 + 59: 6(float) Load 39(sum) + 60: 6(float) FAdd 59 58 + Store 39(sum) 60 + Branch 45 + 45: Label + 61: 13(int) Load 41(i) + 62: 13(int) IAdd 61 33 + Store 41(i) 62 + Branch 42 + 44: Label + Store 63(i) 16 + Branch 64 + 64: Label + LoopMerge 66 67 None + Branch 68 + 68: Label + 69: 13(int) Load 63(i) + 70: 26(bool) SLessThan 69 48 + BranchConditional 70 65 66 + 65: Label + 72: 13(int) Load 63(i) + 73: 13(int) Load 63(i) + 74: 55(ptr) AccessChain 53(v4) 73 + 75: 50(int) Load 74 + 77: 50(int) IMul 75 76 + 78: 6(float) ConvertUToF 77 + 79: 38(ptr) AccessChain 71(tv4) 72 + Store 79 78 + Branch 67 + 67: Label + 80: 13(int) Load 63(i) + 81: 13(int) IAdd 80 33 + Store 63(i) 81 + Branch 64 + 66: Label + 82: 6(float) Load 39(sum) + 83: 7(fvec4) CompositeConstruct 82 82 82 82 + 84: 7(fvec4) Load 71(tv4) + 85: 7(fvec4) FAdd 83 84 + 86: 7(fvec4) Load 36(gl_FragColor) + 87: 7(fvec4) FAdd 86 85 + Store 36(gl_FragColor) 87 + 90: 7(fvec4) Load 11(BaseColor) + 91: 89(fvec3) VectorShuffle 90 90 0 1 2 + 92: 7(fvec4) Load 88(r) + 93: 7(fvec4) VectorShuffle 92 91 4 5 6 3 + Store 88(r) 93 + Store 94(i) 16 + Branch 95 + 95: Label + LoopMerge 97 98 None + Branch 99 + 99: Label + 100: 13(int) Load 94(i) + 101: 13(int) Load 24(Count) + 102: 26(bool) SLessThan 100 101 + BranchConditional 102 96 97 + 96: Label + 105: 6(float) Load 104(f) + 107: 38(ptr) AccessChain 88(r) 106 + Store 107 105 + Branch 98 + 98: Label + 108: 13(int) Load 94(i) + 109: 13(int) IAdd 108 33 + Store 94(i) 109 + Branch 95 + 97: Label + 110: 7(fvec4) Load 88(r) + 111: 89(fvec3) VectorShuffle 110 110 0 1 2 + 112: 7(fvec4) Load 36(gl_FragColor) + 113: 89(fvec3) VectorShuffle 112 112 0 1 2 + 114: 89(fvec3) FAdd 113 111 + 115: 7(fvec4) Load 36(gl_FragColor) + 116: 7(fvec4) VectorShuffle 115 114 4 5 6 3 + Store 36(gl_FragColor) 116 + Store 117(i) 16 + Branch 118 + 118: Label + LoopMerge 120 121 None + Branch 122 + 122: Label + 123: 13(int) Load 117(i) + 125: 26(bool) SLessThan 123 124 + BranchConditional 125 119 120 + 119: Label + 126: 6(float) Load 104(f) + 127: 7(fvec4) Load 36(gl_FragColor) + 128: 7(fvec4) VectorTimesScalar 127 126 + Store 36(gl_FragColor) 128 + Branch 121 + 121: Label + 129: 13(int) Load 117(i) + 130: 13(int) IAdd 129 48 + Store 117(i) 130 + Branch 118 + 120: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out b/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out new file mode 100644 index 0000000000..32875b2ce3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.forwardFun.frag.out @@ -0,0 +1,114 @@ +spv.forwardFun.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 60 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 30 36 59 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 6 "bar(" + Name 10 "unreachableReturn(" + Name 16 "foo(vf4;" + Name 15 "bar" + Name 18 "color" + Name 20 "BaseColor" + Name 21 "param" + Name 27 "f" + Name 30 "gl_FragColor" + Name 36 "d" + Name 59 "bigColor" + Decorate 10(unreachableReturn() RelaxedPrecision + Decorate 16(foo(vf4;) RelaxedPrecision + Decorate 15(bar) RelaxedPrecision + Decorate 18(color) RelaxedPrecision + Decorate 20(BaseColor) RelaxedPrecision + Decorate 22 RelaxedPrecision + Decorate 23 RelaxedPrecision + Decorate 24 RelaxedPrecision + Decorate 27(f) RelaxedPrecision + Decorate 28 RelaxedPrecision + Decorate 30(gl_FragColor) RelaxedPrecision + Decorate 30(gl_FragColor) Location 0 + Decorate 31 RelaxedPrecision + Decorate 32 RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 36(d) RelaxedPrecision + Decorate 37 RelaxedPrecision + Decorate 52 RelaxedPrecision + Decorate 55 RelaxedPrecision + Decorate 56 RelaxedPrecision + Decorate 59(bigColor) RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeFunction 8(float) + 12: TypeVector 8(float) 4 + 13: TypePointer Function 12(fvec4) + 14: TypeFunction 8(float) 13(ptr) + 19: TypePointer Input 12(fvec4) + 20(BaseColor): 19(ptr) Variable Input + 26: TypePointer Function 8(float) + 29: TypePointer Output 12(fvec4) +30(gl_FragColor): 29(ptr) Variable Output + 35: TypePointer Input 8(float) + 36(d): 35(ptr) Variable Input + 38: 8(float) Constant 1082549862 + 39: TypeBool + 43: 8(float) Constant 1067030938 + 46: 8(float) Constant 1083179008 + 49: TypeInt 32 0 + 50: 49(int) Constant 0 + 53: 49(int) Constant 1 + 59(bigColor): 19(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 18(color): 13(ptr) Variable Function + 21(param): 13(ptr) Variable Function + 27(f): 26(ptr) Variable Function + 22: 12(fvec4) Load 20(BaseColor) + Store 21(param) 22 + 23: 8(float) FunctionCall 16(foo(vf4;) 21(param) + 24: 12(fvec4) CompositeConstruct 23 23 23 23 + Store 18(color) 24 + 25: 2 FunctionCall 6(bar() + 28: 8(float) FunctionCall 10(unreachableReturn() + Store 27(f) 28 + 31: 12(fvec4) Load 18(color) + 32: 8(float) Load 27(f) + 33: 12(fvec4) VectorTimesScalar 31 32 + Store 30(gl_FragColor) 33 + Return + FunctionEnd + 6(bar(): 2 Function None 3 + 7: Label + Return + FunctionEnd +10(unreachableReturn(): 8(float) Function None 9 + 11: Label + 34: 2 FunctionCall 6(bar() + 37: 8(float) Load 36(d) + 40: 39(bool) FOrdLessThan 37 38 + SelectionMerge 42 None + BranchConditional 40 41 45 + 41: Label + ReturnValue 43 + 45: Label + ReturnValue 46 + 42: Label + 48: 8(float) Undef + ReturnValue 48 + FunctionEnd + 16(foo(vf4;): 8(float) Function None 14 + 15(bar): 13(ptr) FunctionParameter + 17: Label + 51: 26(ptr) AccessChain 15(bar) 50 + 52: 8(float) Load 51 + 54: 26(ptr) AccessChain 15(bar) 53 + 55: 8(float) Load 54 + 56: 8(float) FAdd 52 55 + ReturnValue 56 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.fullyCovered.frag.out b/deps/glslang/glslang/Test/baseResults/spv.fullyCovered.frag.out new file mode 100644 index 0000000000..76c8e44d33 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.fullyCovered.frag.out @@ -0,0 +1,37 @@ +spv.fullyCovered.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 18 + + Capability Shader + Capability FragmentFullyCoveredEXT + Extension "SPV_EXT_fragment_fully_covered" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 12 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_NV_conservative_raster_underestimation" + Name 4 "main" + Name 9 "color" + Name 12 "gl_FragFullyCoveredNV" + Decorate 12(gl_FragFullyCoveredNV) BuiltIn FullyCoveredEXT + 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: TypeBool + 11: TypePointer Input 10(bool) +12(gl_FragFullyCoveredNV): 11(ptr) Variable Input + 14: 6(float) Constant 0 + 15: 6(float) Constant 1065353216 + 4(main): 2 Function None 3 + 5: Label + 13: 10(bool) Load 12(gl_FragFullyCoveredNV) + 16: 6(float) Select 13 15 14 + 17: 7(fvec4) CompositeConstruct 16 14 14 14 + Store 9(color) 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out b/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out new file mode 100644 index 0000000000..269b74e64e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.functionCall.frag.out @@ -0,0 +1,124 @@ +spv.functionCall.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:5: varying deprecated in version 130; may be removed in future release + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 76 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 35 58 69 75 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 11 "foo(vf4;" + Name 10 "bar" + Name 13 "bar(" + Name 16 "unreachableReturn(" + Name 18 "missingReturn(" + Name 21 "h" + Name 35 "d" + Name 56 "color" + Name 58 "BaseColor" + Name 59 "param" + Name 64 "f" + Name 66 "g" + Name 69 "gl_FragColor" + Name 75 "bigColor" + Decorate 69(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 6(float) 8(ptr) + 15: TypeFunction 6(float) + 20: TypePointer Private 6(float) + 21(h): 20(ptr) Variable Private + 22: 6(float) Constant 0 + 23: TypeInt 32 0 + 24: 23(int) Constant 0 + 25: TypePointer Function 6(float) + 28: 23(int) Constant 1 + 34: TypePointer Input 6(float) + 35(d): 34(ptr) Variable Input + 37: 6(float) Constant 1082549862 + 38: TypeBool + 42: 6(float) Constant 1067030938 + 45: 6(float) Constant 1083179008 + 53: 6(float) Constant 1081711002 + 57: TypePointer Input 7(fvec4) + 58(BaseColor): 57(ptr) Variable Input + 68: TypePointer Output 7(fvec4) +69(gl_FragColor): 68(ptr) Variable Output + 75(bigColor): 57(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 56(color): 8(ptr) Variable Function + 59(param): 8(ptr) Variable Function + 64(f): 25(ptr) Variable Function + 66(g): 25(ptr) Variable Function + Store 21(h) 22 + 60: 7(fvec4) Load 58(BaseColor) + Store 59(param) 60 + 61: 6(float) FunctionCall 11(foo(vf4;) 59(param) + 62: 7(fvec4) CompositeConstruct 61 61 61 61 + Store 56(color) 62 + 63: 2 FunctionCall 13(bar() + 65: 6(float) FunctionCall 16(unreachableReturn() + Store 64(f) 65 + 67: 6(float) FunctionCall 18(missingReturn() + Store 66(g) 67 + 70: 7(fvec4) Load 56(color) + 71: 6(float) Load 64(f) + 72: 7(fvec4) VectorTimesScalar 70 71 + 73: 6(float) Load 21(h) + 74: 7(fvec4) VectorTimesScalar 72 73 + Store 69(gl_FragColor) 74 + Return + FunctionEnd + 11(foo(vf4;): 6(float) Function None 9 + 10(bar): 8(ptr) FunctionParameter + 12: Label + 26: 25(ptr) AccessChain 10(bar) 24 + 27: 6(float) Load 26 + 29: 25(ptr) AccessChain 10(bar) 28 + 30: 6(float) Load 29 + 31: 6(float) FAdd 27 30 + ReturnValue 31 + FunctionEnd + 13(bar(): 2 Function None 3 + 14: Label + Return + FunctionEnd +16(unreachableReturn(): 6(float) Function None 15 + 17: Label + 36: 6(float) Load 35(d) + 39: 38(bool) FOrdLessThan 36 37 + SelectionMerge 41 None + BranchConditional 39 40 44 + 40: Label + ReturnValue 42 + 44: Label + ReturnValue 45 + 41: Label + 47: 6(float) Undef + ReturnValue 47 + FunctionEnd +18(missingReturn(): 6(float) Function None 15 + 19: Label + 48: 6(float) Load 35(d) + 49: 38(bool) FOrdLessThan 48 45 + SelectionMerge 51 None + BranchConditional 49 50 51 + 50: Label + 52: 6(float) Load 35(d) + Store 21(h) 52 + ReturnValue 53 + 51: Label + 55: 6(float) Undef + ReturnValue 55 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out b/deps/glslang/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out new file mode 100644 index 0000000000..34ae7c3f0e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out @@ -0,0 +1,65 @@ +spv.functionNestedOpaque.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source GLSL 450 + Name 4 "main" + Name 12 "foo(s21;" + Name 11 "t" + Name 14 "S" + MemberName 14(S) 0 "s" + Name 18 "barc(struct-S-s211;" + Name 17 "p" + Name 21 "bar(struct-S-s211;" + Name 20 "p" + Name 36 "si" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D sampled format:Unknown + 8: TypeSampledImage 7 + 9: TypePointer UniformConstant 8 + 10: TypeFunction 2 9(ptr) + 14(S): TypeStruct 8 + 15: TypePointer UniformConstant 14(S) + 16: TypeFunction 2 15(ptr) + 24: TypeVector 6(float) 2 + 25: 6(float) Constant 1056964608 + 26: 24(fvec2) ConstantComposite 25 25 + 27: TypeVector 6(float) 4 + 28: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: 30(int) Constant 0 + 36(si): 15(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 37: 2 FunctionCall 18(barc(struct-S-s211;) 36(si) + 38: 2 FunctionCall 21(bar(struct-S-s211;) 36(si) + Return + FunctionEnd + 12(foo(s21;): 2 Function None 10 + 11(t): 9(ptr) FunctionParameter + 13: Label + 23: 8 Load 11(t) + 29: 27(fvec4) ImageSampleExplicitLod 23 26 Lod 28 + Return + FunctionEnd +18(barc(struct-S-s211;): 2 Function None 16 + 17(p): 15(ptr) FunctionParameter + 19: Label + 32: 9(ptr) AccessChain 17(p) 31 + 33: 2 FunctionCall 12(foo(s21;) 32 + Return + FunctionEnd +21(bar(struct-S-s211;): 2 Function None 16 + 20(p): 15(ptr) FunctionParameter + 22: Label + 34: 9(ptr) AccessChain 20(p) 31 + 35: 2 FunctionCall 12(foo(s21;) 34 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out b/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out new file mode 100644 index 0000000000..49bdf7cdb7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.functionSemantics.frag.out @@ -0,0 +1,227 @@ +spv.functionSemantics.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 156 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 76 152 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 15 "foo(i1;i1;i1;i1;i1;i1;" + Name 9 "a" + Name 10 "b" + Name 11 "c" + Name 12 "d" + Name 13 "e" + Name 14 "f" + Name 25 "foo2(f1;vf3;i1;" + Name 22 "a" + Name 23 "b" + Name 24 "r" + Name 28 "foo3(" + Name 30 "sum" + Name 76 "u" + Name 89 "t" + Name 92 "s" + MemberName 92(s) 0 "t" + Name 94 "f" + Name 98 "color" + Name 104 "e" + Name 105 "param" + Name 106 "param" + Name 107 "param" + Name 108 "param" + Name 123 "ret" + Name 125 "tempReturn" + Name 130 "tempArg" + Name 131 "param" + Name 132 "param" + Name 133 "param" + Name 136 "arg" + Name 152 "gl_FragColor" + Decorate 152(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr) + 17: TypeFloat 32 + 18: TypePointer Function 17(float) + 19: TypeVector 17(float) 3 + 20: TypePointer Function 19(fvec3) + 21: TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr) + 27: TypeFunction 6(int) + 38: 6(int) Constant 64 + 43: 6(int) Constant 1024 + 62: 17(float) Constant 1077936128 + 66: 17(float) Constant 1084227584 + 67: TypeInt 32 0 + 68: 67(int) Constant 1 + 75: TypePointer Input 17(float) + 76(u): 75(ptr) Variable Input + 78: 17(float) Constant 1078774989 + 79: TypeBool + 84: 6(int) Constant 1000000 + 86: 6(int) Constant 2000000 + 90: 6(int) Constant 2 + 91: TypeVector 6(int) 4 + 92(s): TypeStruct 91(ivec4) + 93: TypePointer Function 92(s) + 95: 6(int) Constant 0 + 96: 6(int) Constant 32 + 99: 6(int) Constant 1 + 103: 6(int) Constant 8 + 115: 6(int) Constant 128 + 124: TypePointer Private 6(int) + 125(tempReturn): 124(ptr) Variable Private + 126: 17(float) Constant 1082130432 + 127: 17(float) Constant 1065353216 + 128: 17(float) Constant 1073741824 + 129: 19(fvec3) ConstantComposite 127 128 62 + 150: TypeVector 17(float) 4 + 151: TypePointer Output 150(fvec4) +152(gl_FragColor): 151(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 89(t): 7(ptr) Variable Function + 94(f): 93(ptr) Variable Function + 98(color): 7(ptr) Variable Function + 104(e): 7(ptr) Variable Function + 105(param): 7(ptr) Variable Function + 106(param): 7(ptr) Variable Function + 107(param): 7(ptr) Variable Function + 108(param): 7(ptr) Variable Function + 123(ret): 18(ptr) Variable Function + 130(tempArg): 7(ptr) Variable Function + 131(param): 18(ptr) Variable Function + 132(param): 20(ptr) Variable Function + 133(param): 7(ptr) Variable Function + 136(arg): 18(ptr) Variable Function + Store 89(t) 90 + 97: 7(ptr) AccessChain 94(f) 95 68 + Store 97 96 + 100: 6(int) Load 89(t) + 101: 6(int) Load 89(t) + 102: 6(int) IAdd 100 101 + Store 105(param) 99 + Store 106(param) 102 + 109: 7(ptr) AccessChain 94(f) 95 68 + 110: 6(int) Load 109 + Store 108(param) 110 + 111: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param) + 112: 6(int) Load 107(param) + Store 104(e) 112 + 113: 6(int) Load 108(param) + 114: 7(ptr) AccessChain 94(f) 95 68 + Store 114 113 + Store 98(color) 111 + 116: 6(int) Load 104(e) + 117: 7(ptr) AccessChain 94(f) 95 68 + 118: 6(int) Load 117 + 119: 6(int) IAdd 116 118 + 120: 6(int) IMul 115 119 + 121: 6(int) Load 98(color) + 122: 6(int) IAdd 121 120 + Store 98(color) 122 + Store 131(param) 126 + Store 132(param) 129 + 134: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param) + 135: 6(int) Load 133(param) + Store 130(tempArg) 135 + Store 125(tempReturn) 134 + 137: 6(int) Load 130(tempArg) + 138: 17(float) ConvertSToF 137 + Store 136(arg) 138 + 139: 6(int) Load 125(tempReturn) + 140: 17(float) ConvertSToF 139 + Store 123(ret) 140 + 141: 17(float) Load 123(ret) + 142: 17(float) Load 136(arg) + 143: 17(float) FAdd 141 142 + 144: 6(int) ConvertFToS 143 + 145: 6(int) Load 98(color) + 146: 6(int) IAdd 145 144 + Store 98(color) 146 + 147: 6(int) FunctionCall 28(foo3() + 148: 6(int) Load 98(color) + 149: 6(int) IAdd 148 147 + Store 98(color) 149 + 153: 6(int) Load 98(color) + 154: 17(float) ConvertSToF 153 + 155: 150(fvec4) CompositeConstruct 154 154 154 154 + Store 152(gl_FragColor) 155 + Return + FunctionEnd +15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8 + 9(a): 7(ptr) FunctionParameter + 10(b): 6(int) FunctionParameter + 11(c): 7(ptr) FunctionParameter + 12(d): 6(int) FunctionParameter + 13(e): 7(ptr) FunctionParameter + 14(f): 7(ptr) FunctionParameter + 16: Label + 30(sum): 7(ptr) Variable Function + 31: 6(int) Load 9(a) + 32: 6(int) IAdd 31 10(b) + 33: 6(int) Load 11(c) + 34: 6(int) IAdd 32 33 + 35: 6(int) IAdd 34 12(d) + 36: 6(int) Load 14(f) + 37: 6(int) IAdd 35 36 + Store 30(sum) 37 + 39: 6(int) Load 9(a) + 40: 6(int) IMul 39 38 + Store 9(a) 40 + 41: 6(int) Load 11(c) + 42: 6(int) IMul 41 38 + Store 11(c) 42 + Store 13(e) 43 + 44: 6(int) Load 14(f) + 45: 6(int) IMul 44 38 + Store 14(f) 45 + 46: 6(int) Load 9(a) + 47: 6(int) IMul 38 10(b) + 48: 6(int) IAdd 46 47 + 49: 6(int) Load 11(c) + 50: 6(int) IAdd 48 49 + 51: 6(int) IMul 38 12(d) + 52: 6(int) IAdd 50 51 + 53: 6(int) Load 13(e) + 54: 6(int) IAdd 52 53 + 55: 6(int) Load 14(f) + 56: 6(int) IAdd 54 55 + 57: 6(int) Load 30(sum) + 58: 6(int) IAdd 57 56 + Store 30(sum) 58 + 59: 6(int) Load 30(sum) + ReturnValue 59 + FunctionEnd +25(foo2(f1;vf3;i1;): 6(int) Function None 21 + 22(a): 18(ptr) FunctionParameter + 23(b): 20(ptr) FunctionParameter + 24(r): 7(ptr) FunctionParameter + 26: Label + 63: 17(float) Load 22(a) + 64: 17(float) FMul 62 63 + 65: 6(int) ConvertFToS 64 + Store 24(r) 65 + 69: 18(ptr) AccessChain 23(b) 68 + 70: 17(float) Load 69 + 71: 17(float) FMul 66 70 + 72: 6(int) ConvertFToS 71 + ReturnValue 72 + FunctionEnd + 28(foo3(): 6(int) Function None 27 + 29: Label + 77: 17(float) Load 76(u) + 80: 79(bool) FOrdGreaterThan 77 78 + SelectionMerge 82 None + BranchConditional 80 81 82 + 81: Label + Kill + 82: Label + ReturnValue 86 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out b/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out new file mode 100644 index 0000000000..55fb24f125 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.glFragColor.frag.out @@ -0,0 +1,27 @@ +spv.glFragColor.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// 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" + Decorate 9(gl_FragColor) Location 0 + 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/deps/glslang/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out new file mode 100644 index 0000000000..079e8d5233 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -0,0 +1,223 @@ +spv.glsl.register.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 142 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "myblock" + MemberName 95(myblock) 0 "mystruct" + MemberName 95(myblock) 1 "myvec4_a" + MemberName 95(myblock) 2 "myvec4_b" + MemberName 95(myblock) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 137 "FragColor" + Name 141 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 14 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 6 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 15 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 8 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 16 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 9 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95(myblock) 0 Offset 0 + MemberDecorate 95(myblock) 1 Offset 32 + MemberDecorate 95(myblock) 2 Offset 48 + MemberDecorate 95(myblock) 3 Offset 64 + Decorate 95(myblock) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 24 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 137(FragColor) Location 0 + Decorate 141(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95(myblock) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136: TypePointer Output 7(fvec4) + 137(FragColor): 136(ptr) Variable Output +141(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(Func1() + 139: 7(fvec4) FunctionCall 11(Func2() + 140: 7(fvec4) FAdd 138 139 + Store 137(FragColor) 140 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out new file mode 100644 index 0000000000..44d63ed1d7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out @@ -0,0 +1,226 @@ +spv.glsl.register.noautoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 142 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "myblock" + MemberName 95(myblock) 0 "mystruct" + MemberName 95(myblock) 1 "myvec4_a" + MemberName 95(myblock) 2 "myvec4_b" + MemberName 95(myblock) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 137 "FragColor" + Name 141 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 17 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 18 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 6 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 19 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 20 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 8 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 21 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 9 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95(myblock) 0 Offset 0 + MemberDecorate 95(myblock) 1 Offset 32 + MemberDecorate 95(myblock) 2 Offset 48 + MemberDecorate 95(myblock) 3 Offset 64 + Decorate 95(myblock) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 19 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 22 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 121(g_sSamp_unused1) Binding 10 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 23 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 128(g_sSamp_unused2) Binding 11 + Decorate 137(FragColor) Location 0 + Decorate 141(g_tTex_unused3) DescriptorSet 0 + Decorate 141(g_tTex_unused3) Binding 24 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95(myblock) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136: TypePointer Output 7(fvec4) + 137(FragColor): 136(ptr) Variable Output +141(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(Func1() + 139: 7(fvec4) FunctionCall 11(Func2() + 140: 7(fvec4) FAdd 138 139 + Store 137(FragColor) 140 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out b/deps/glslang/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out new file mode 100644 index 0000000000..9912d4e4b9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out @@ -0,0 +1,58 @@ +spv.hlslDebugInfo.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 19 + + Capability Shader + 2: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 5 "newMain" 17 + 1: String "spv.hlslDebugInfo.vert" + Source HLSL 500 1 "// OpModuleProcessed entry-point newMain +// OpModuleProcessed shift-sampler-binding 2 +// OpModuleProcessed shift-texture-binding 4 +// OpModuleProcessed shift-image-binding 1 +// OpModuleProcessed shift-UBO-binding 6 +// OpModuleProcessed shift-ssbo-binding 3 +// OpModuleProcessed shift-uav-binding 5 +// OpModuleProcessed flatten-uniform-arrays +// OpModuleProcessed no-storage-format +// OpModuleProcessed resource-set-binding t0 0 0 +// OpModuleProcessed hlsl-iomap +// OpModuleProcessed auto-map-bindings +// OpModuleProcessed auto-map-locations +// OpModuleProcessed client vulkan100 +// OpModuleProcessed target-env vulkan1.0 +// OpModuleProcessed source-entrypoint origMain +// OpModuleProcessed hlsl-offsets +#line 1 +float4 origMain() : SV_Position +{ + return (float4)0; +} +" + Name 5 "newMain" + Name 10 "@newMain(" + Name 17 "@entryPointOutput" + Decorate 17(@entryPointOutput) BuiltIn Position + 3: TypeVoid + 4: TypeFunction 3 + 7: TypeFloat 32 + 8: TypeVector 7(float) 4 + 9: TypeFunction 8(fvec4) + 12: 7(float) Constant 0 + 13: 8(fvec4) ConstantComposite 12 12 12 12 + 16: TypePointer Output 8(fvec4) +17(@entryPointOutput): 16(ptr) Variable Output + 5(newMain): 3 Function None 4 + 6: Label + Line 1 2 0 + 18: 8(fvec4) FunctionCall 10(@newMain() + Store 17(@entryPointOutput) 18 + Return + FunctionEnd + 10(@newMain(): 8(fvec4) Function None 9 + 11: Label + Line 1 3 0 + ReturnValue 13 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.hlslOffsets.vert.out b/deps/glslang/glslang/Test/baseResults/spv.hlslOffsets.vert.out new file mode 100644 index 0000000000..af59fdbf45 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.hlslOffsets.vert.out @@ -0,0 +1,76 @@ +spv.hlslOffsets.vert +Shader version: 450 +0:? Sequence +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:? Linker Objects +0:? 'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112}) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:27 Function Definition: main( ( global void) +0:27 Function Parameters: +0:? Linker Objects +0:? 'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112}) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 14 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source GLSL 450 + Name 4 "main" + Name 11 "block" + MemberName 11(block) 0 "m0" + MemberName 11(block) 1 "m4" + MemberName 11(block) 2 "m16" + MemberName 11(block) 3 "m20" + MemberName 11(block) 4 "m32" + MemberName 11(block) 5 "m48" + MemberName 11(block) 6 "m56" + MemberName 11(block) 7 "m64" + MemberName 11(block) 8 "m68" + MemberName 11(block) 9 "m76" + MemberName 11(block) 10 "m80" + MemberName 11(block) 11 "m88" + MemberName 11(block) 12 "m96" + MemberName 11(block) 13 "m112" + Name 13 "" + MemberDecorate 11(block) 0 Offset 0 + MemberDecorate 11(block) 1 Offset 4 + MemberDecorate 11(block) 2 Offset 16 + MemberDecorate 11(block) 3 Offset 20 + MemberDecorate 11(block) 4 Offset 32 + MemberDecorate 11(block) 5 Offset 48 + MemberDecorate 11(block) 6 Offset 56 + MemberDecorate 11(block) 7 Offset 64 + MemberDecorate 11(block) 8 Offset 68 + MemberDecorate 11(block) 9 Offset 76 + MemberDecorate 11(block) 10 Offset 80 + MemberDecorate 11(block) 11 Offset 88 + MemberDecorate 11(block) 12 Offset 96 + MemberDecorate 11(block) 13 Offset 112 + Decorate 11(block) BufferBlock + Decorate 13 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeVector 6(float) 2 + 9: TypeFloat 64 + 10: TypeVector 9(float64_t) 2 + 11(block): TypeStruct 6(float) 7(fvec3) 6(float) 7(fvec3) 7(fvec3) 8(fvec2) 8(fvec2) 6(float) 8(fvec2) 6(float) 6(float) 8(fvec2) 8(fvec2) 10(f64vec2) + 12: TypePointer Uniform 11(block) + 13: 12(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.image.frag.out b/deps/glslang/glslang/Test/baseResults/spv.image.frag.out new file mode 100644 index 0000000000..2c35a0c2f8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.image.frag.out @@ -0,0 +1,510 @@ +spv.image.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 376 + + Capability Shader + Capability StorageImageMultisample + Capability ImageCubeArray + Capability ImageRect + Capability Image1D + Capability ImageBuffer + Capability ImageMSArray + Capability StorageImageExtendedFormats + Capability ImageQuery + Capability StorageImageWriteWithoutFormat + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 132 142 152 248 362 375 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "iv" + Name 15 "i1D" + Name 27 "i2D" + Name 38 "i3D" + Name 45 "iCube" + Name 55 "iCubeArray" + Name 62 "i2DRect" + Name 72 "i1DArray" + Name 82 "i2DArray" + Name 89 "iBuffer" + Name 98 "i2DMS" + Name 108 "i2DMSArray" + Name 127 "v" + Name 132 "ic1D" + Name 142 "ic2D" + Name 152 "ic3D" + Name 229 "ui" + Name 232 "ii1D" + Name 245 "ui2D" + Name 248 "value" + Name 357 "wo2D" + Name 362 "fragData" + Name 375 "ic4D" + Decorate 15(i1D) DescriptorSet 0 + Decorate 15(i1D) Binding 0 + Decorate 27(i2D) DescriptorSet 0 + Decorate 27(i2D) Binding 1 + Decorate 38(i3D) DescriptorSet 0 + Decorate 38(i3D) Binding 2 + Decorate 45(iCube) DescriptorSet 0 + Decorate 45(iCube) Binding 3 + Decorate 55(iCubeArray) DescriptorSet 0 + Decorate 55(iCubeArray) Binding 4 + Decorate 62(i2DRect) DescriptorSet 0 + Decorate 62(i2DRect) Binding 5 + Decorate 72(i1DArray) DescriptorSet 0 + Decorate 72(i1DArray) Binding 6 + Decorate 82(i2DArray) DescriptorSet 0 + Decorate 82(i2DArray) Binding 7 + Decorate 89(iBuffer) DescriptorSet 0 + Decorate 89(iBuffer) Binding 8 + Decorate 98(i2DMS) DescriptorSet 0 + Decorate 98(i2DMS) Binding 9 + Decorate 108(i2DMSArray) DescriptorSet 0 + Decorate 108(i2DMSArray) Binding 10 + Decorate 132(ic1D) Flat + Decorate 142(ic2D) Flat + Decorate 152(ic3D) Flat + Decorate 232(ii1D) DescriptorSet 0 + Decorate 232(ii1D) Binding 11 + Decorate 245(ui2D) DescriptorSet 0 + Decorate 245(ui2D) Binding 12 + Decorate 248(value) Flat + Decorate 357(wo2D) DescriptorSet 0 + Decorate 357(wo2D) Binding 1 + Decorate 357(wo2D) NonReadable + Decorate 375(ic4D) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 10: 6(int) Constant 0 + 11: 7(ivec3) ConstantComposite 10 10 10 + 12: TypeFloat 32 + 13: TypeImage 12(float) 1D nonsampled format:Rgba32f + 14: TypePointer UniformConstant 13 + 15(i1D): 14(ptr) Variable UniformConstant + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 20: TypePointer Function 6(int) + 25: TypeImage 12(float) 2D nonsampled format:Rgba32f + 26: TypePointer UniformConstant 25 + 27(i2D): 26(ptr) Variable UniformConstant + 29: TypeVector 6(int) 2 + 36: TypeImage 12(float) 3D nonsampled format:Rgba32f + 37: TypePointer UniformConstant 36 + 38(i3D): 37(ptr) Variable UniformConstant + 43: TypeImage 12(float) Cube nonsampled format:Rgba32f + 44: TypePointer UniformConstant 43 + 45(iCube): 44(ptr) Variable UniformConstant + 53: TypeImage 12(float) Cube array nonsampled format:Rgba32f + 54: TypePointer UniformConstant 53 + 55(iCubeArray): 54(ptr) Variable UniformConstant + 60: TypeImage 12(float) Rect nonsampled format:Rgba32f + 61: TypePointer UniformConstant 60 + 62(i2DRect): 61(ptr) Variable UniformConstant + 70: TypeImage 12(float) 1D array nonsampled format:Rgba32f + 71: TypePointer UniformConstant 70 + 72(i1DArray): 71(ptr) Variable UniformConstant + 80: TypeImage 12(float) 2D array nonsampled format:Rg16 + 81: TypePointer UniformConstant 80 + 82(i2DArray): 81(ptr) Variable UniformConstant + 87: TypeImage 12(float) Buffer nonsampled format:Rgba32f + 88: TypePointer UniformConstant 87 + 89(iBuffer): 88(ptr) Variable UniformConstant + 96: TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f + 97: TypePointer UniformConstant 96 + 98(i2DMS): 97(ptr) Variable UniformConstant + 106: TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f + 107: TypePointer UniformConstant 106 + 108(i2DMSArray): 107(ptr) Variable UniformConstant + 125: TypeVector 12(float) 4 + 126: TypePointer Function 125(fvec4) + 128: 12(float) Constant 0 + 129: 125(fvec4) ConstantComposite 128 128 128 128 + 131: TypePointer Input 6(int) + 132(ic1D): 131(ptr) Variable Input + 141: TypePointer Input 29(ivec2) + 142(ic2D): 141(ptr) Variable Input + 151: TypePointer Input 7(ivec3) + 152(ic3D): 151(ptr) Variable Input + 210: 6(int) Constant 1 + 216: 6(int) Constant 2 + 220: 6(int) Constant 3 + 226: 6(int) Constant 4 + 228: TypePointer Function 18(int) + 230: TypeImage 6(int) 1D nonsampled format:R32i + 231: TypePointer UniformConstant 230 + 232(ii1D): 231(ptr) Variable UniformConstant + 234: 6(int) Constant 10 + 235: TypePointer Image 6(int) + 237: 18(int) Constant 1 + 243: TypeImage 18(int) 2D nonsampled format:R32ui + 244: TypePointer UniformConstant 243 + 245(ui2D): 244(ptr) Variable UniformConstant + 247: TypePointer Input 18(int) + 248(value): 247(ptr) Variable Input + 250: TypePointer Image 18(int) + 256: 6(int) Constant 11 + 270: 6(int) Constant 12 + 284: 6(int) Constant 13 + 298: 6(int) Constant 14 + 312: 6(int) Constant 15 + 326: 6(int) Constant 16 + 340: 6(int) Constant 18 + 341: 6(int) Constant 17 + 349: 18(int) Constant 19 + 355: TypeImage 12(float) 2D nonsampled format:Unknown + 356: TypePointer UniformConstant 355 + 357(wo2D): 356(ptr) Variable UniformConstant + 361: TypePointer Output 125(fvec4) + 362(fragData): 361(ptr) Variable Output + 367: TypeBool + 370: TypeVector 367(bool) 4 + 373: TypeVector 6(int) 4 + 374: TypePointer Input 373(ivec4) + 375(ic4D): 374(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(iv): 8(ptr) Variable Function + 127(v): 126(ptr) Variable Function + 229(ui): 228(ptr) Variable Function + Store 9(iv) 11 + 16: 13 Load 15(i1D) + 17: 6(int) ImageQuerySize 16 + 21: 20(ptr) AccessChain 9(iv) 19 + 22: 6(int) Load 21 + 23: 6(int) IAdd 22 17 + 24: 20(ptr) AccessChain 9(iv) 19 + Store 24 23 + 28: 25 Load 27(i2D) + 30: 29(ivec2) ImageQuerySize 28 + 31: 7(ivec3) Load 9(iv) + 32: 29(ivec2) VectorShuffle 31 31 0 1 + 33: 29(ivec2) IAdd 32 30 + 34: 7(ivec3) Load 9(iv) + 35: 7(ivec3) VectorShuffle 34 33 3 4 2 + Store 9(iv) 35 + 39: 36 Load 38(i3D) + 40: 7(ivec3) ImageQuerySize 39 + 41: 7(ivec3) Load 9(iv) + 42: 7(ivec3) IAdd 41 40 + Store 9(iv) 42 + 46: 43 Load 45(iCube) + 47: 29(ivec2) ImageQuerySize 46 + 48: 7(ivec3) Load 9(iv) + 49: 29(ivec2) VectorShuffle 48 48 0 1 + 50: 29(ivec2) IAdd 49 47 + 51: 7(ivec3) Load 9(iv) + 52: 7(ivec3) VectorShuffle 51 50 3 4 2 + Store 9(iv) 52 + 56: 53 Load 55(iCubeArray) + 57: 7(ivec3) ImageQuerySize 56 + 58: 7(ivec3) Load 9(iv) + 59: 7(ivec3) IAdd 58 57 + Store 9(iv) 59 + 63: 60 Load 62(i2DRect) + 64: 29(ivec2) ImageQuerySize 63 + 65: 7(ivec3) Load 9(iv) + 66: 29(ivec2) VectorShuffle 65 65 0 1 + 67: 29(ivec2) IAdd 66 64 + 68: 7(ivec3) Load 9(iv) + 69: 7(ivec3) VectorShuffle 68 67 3 4 2 + Store 9(iv) 69 + 73: 70 Load 72(i1DArray) + 74: 29(ivec2) ImageQuerySize 73 + 75: 7(ivec3) Load 9(iv) + 76: 29(ivec2) VectorShuffle 75 75 0 1 + 77: 29(ivec2) IAdd 76 74 + 78: 7(ivec3) Load 9(iv) + 79: 7(ivec3) VectorShuffle 78 77 3 4 2 + Store 9(iv) 79 + 83: 80 Load 82(i2DArray) + 84: 7(ivec3) ImageQuerySize 83 + 85: 7(ivec3) Load 9(iv) + 86: 7(ivec3) IAdd 85 84 + Store 9(iv) 86 + 90: 87 Load 89(iBuffer) + 91: 6(int) ImageQuerySize 90 + 92: 20(ptr) AccessChain 9(iv) 19 + 93: 6(int) Load 92 + 94: 6(int) IAdd 93 91 + 95: 20(ptr) AccessChain 9(iv) 19 + Store 95 94 + 99: 96 Load 98(i2DMS) + 100: 29(ivec2) ImageQuerySize 99 + 101: 7(ivec3) Load 9(iv) + 102: 29(ivec2) VectorShuffle 101 101 0 1 + 103: 29(ivec2) IAdd 102 100 + 104: 7(ivec3) Load 9(iv) + 105: 7(ivec3) VectorShuffle 104 103 3 4 2 + Store 9(iv) 105 + 109: 106 Load 108(i2DMSArray) + 110: 7(ivec3) ImageQuerySize 109 + 111: 7(ivec3) Load 9(iv) + 112: 7(ivec3) IAdd 111 110 + Store 9(iv) 112 + 113: 96 Load 98(i2DMS) + 114: 6(int) ImageQuerySamples 113 + 115: 20(ptr) AccessChain 9(iv) 19 + 116: 6(int) Load 115 + 117: 6(int) IAdd 116 114 + 118: 20(ptr) AccessChain 9(iv) 19 + Store 118 117 + 119: 106 Load 108(i2DMSArray) + 120: 6(int) ImageQuerySamples 119 + 121: 20(ptr) AccessChain 9(iv) 19 + 122: 6(int) Load 121 + 123: 6(int) IAdd 122 120 + 124: 20(ptr) AccessChain 9(iv) 19 + Store 124 123 + Store 127(v) 129 + 130: 13 Load 15(i1D) + 133: 6(int) Load 132(ic1D) + 134: 125(fvec4) ImageRead 130 133 + 135: 125(fvec4) Load 127(v) + 136: 125(fvec4) FAdd 135 134 + Store 127(v) 136 + 137: 13 Load 15(i1D) + 138: 6(int) Load 132(ic1D) + 139: 125(fvec4) Load 127(v) + ImageWrite 137 138 139 + 140: 25 Load 27(i2D) + 143: 29(ivec2) Load 142(ic2D) + 144: 125(fvec4) ImageRead 140 143 + 145: 125(fvec4) Load 127(v) + 146: 125(fvec4) FAdd 145 144 + Store 127(v) 146 + 147: 25 Load 27(i2D) + 148: 29(ivec2) Load 142(ic2D) + 149: 125(fvec4) Load 127(v) + ImageWrite 147 148 149 + 150: 36 Load 38(i3D) + 153: 7(ivec3) Load 152(ic3D) + 154: 125(fvec4) ImageRead 150 153 + 155: 125(fvec4) Load 127(v) + 156: 125(fvec4) FAdd 155 154 + Store 127(v) 156 + 157: 36 Load 38(i3D) + 158: 7(ivec3) Load 152(ic3D) + 159: 125(fvec4) Load 127(v) + ImageWrite 157 158 159 + 160: 43 Load 45(iCube) + 161: 7(ivec3) Load 152(ic3D) + 162: 125(fvec4) ImageRead 160 161 + 163: 125(fvec4) Load 127(v) + 164: 125(fvec4) FAdd 163 162 + Store 127(v) 164 + 165: 43 Load 45(iCube) + 166: 7(ivec3) Load 152(ic3D) + 167: 125(fvec4) Load 127(v) + ImageWrite 165 166 167 + 168: 53 Load 55(iCubeArray) + 169: 7(ivec3) Load 152(ic3D) + 170: 125(fvec4) ImageRead 168 169 + 171: 125(fvec4) Load 127(v) + 172: 125(fvec4) FAdd 171 170 + Store 127(v) 172 + 173: 53 Load 55(iCubeArray) + 174: 7(ivec3) Load 152(ic3D) + 175: 125(fvec4) Load 127(v) + ImageWrite 173 174 175 + 176: 60 Load 62(i2DRect) + 177: 29(ivec2) Load 142(ic2D) + 178: 125(fvec4) ImageRead 176 177 + 179: 125(fvec4) Load 127(v) + 180: 125(fvec4) FAdd 179 178 + Store 127(v) 180 + 181: 60 Load 62(i2DRect) + 182: 29(ivec2) Load 142(ic2D) + 183: 125(fvec4) Load 127(v) + ImageWrite 181 182 183 + 184: 70 Load 72(i1DArray) + 185: 29(ivec2) Load 142(ic2D) + 186: 125(fvec4) ImageRead 184 185 + 187: 125(fvec4) Load 127(v) + 188: 125(fvec4) FAdd 187 186 + Store 127(v) 188 + 189: 70 Load 72(i1DArray) + 190: 29(ivec2) Load 142(ic2D) + 191: 125(fvec4) Load 127(v) + ImageWrite 189 190 191 + 192: 80 Load 82(i2DArray) + 193: 7(ivec3) Load 152(ic3D) + 194: 125(fvec4) ImageRead 192 193 + 195: 125(fvec4) Load 127(v) + 196: 125(fvec4) FAdd 195 194 + Store 127(v) 196 + 197: 80 Load 82(i2DArray) + 198: 7(ivec3) Load 152(ic3D) + 199: 125(fvec4) Load 127(v) + ImageWrite 197 198 199 + 200: 87 Load 89(iBuffer) + 201: 6(int) Load 132(ic1D) + 202: 125(fvec4) ImageRead 200 201 + 203: 125(fvec4) Load 127(v) + 204: 125(fvec4) FAdd 203 202 + Store 127(v) 204 + 205: 87 Load 89(iBuffer) + 206: 6(int) Load 132(ic1D) + 207: 125(fvec4) Load 127(v) + ImageWrite 205 206 207 + 208: 96 Load 98(i2DMS) + 209: 29(ivec2) Load 142(ic2D) + 211: 125(fvec4) ImageRead 208 209 Sample 210 + 212: 125(fvec4) Load 127(v) + 213: 125(fvec4) FAdd 212 211 + Store 127(v) 213 + 214: 96 Load 98(i2DMS) + 215: 29(ivec2) Load 142(ic2D) + 217: 125(fvec4) Load 127(v) + ImageWrite 214 215 217 Sample 216 + 218: 106 Load 108(i2DMSArray) + 219: 7(ivec3) Load 152(ic3D) + 221: 125(fvec4) ImageRead 218 219 Sample 220 + 222: 125(fvec4) Load 127(v) + 223: 125(fvec4) FAdd 222 221 + Store 127(v) 223 + 224: 106 Load 108(i2DMSArray) + 225: 7(ivec3) Load 152(ic3D) + 227: 125(fvec4) Load 127(v) + ImageWrite 224 225 227 Sample 226 + Store 229(ui) 19 + 233: 6(int) Load 132(ic1D) + 236: 235(ptr) ImageTexelPointer 232(ii1D) 233 19 + 238: 6(int) AtomicIAdd 236 237 19 234 + 239: 20(ptr) AccessChain 9(iv) 19 + 240: 6(int) Load 239 + 241: 6(int) IAdd 240 238 + 242: 20(ptr) AccessChain 9(iv) 19 + Store 242 241 + 246: 29(ivec2) Load 142(ic2D) + 249: 18(int) Load 248(value) + 251: 250(ptr) ImageTexelPointer 245(ui2D) 246 19 + 252: 18(int) AtomicIAdd 251 237 19 249 + 253: 18(int) Load 229(ui) + 254: 18(int) IAdd 253 252 + Store 229(ui) 254 + 255: 6(int) Load 132(ic1D) + 257: 235(ptr) ImageTexelPointer 232(ii1D) 255 19 + 258: 6(int) AtomicSMin 257 237 19 256 + 259: 20(ptr) AccessChain 9(iv) 19 + 260: 6(int) Load 259 + 261: 6(int) IAdd 260 258 + 262: 20(ptr) AccessChain 9(iv) 19 + Store 262 261 + 263: 29(ivec2) Load 142(ic2D) + 264: 18(int) Load 248(value) + 265: 250(ptr) ImageTexelPointer 245(ui2D) 263 19 + 266: 18(int) AtomicUMin 265 237 19 264 + 267: 18(int) Load 229(ui) + 268: 18(int) IAdd 267 266 + Store 229(ui) 268 + 269: 6(int) Load 132(ic1D) + 271: 235(ptr) ImageTexelPointer 232(ii1D) 269 19 + 272: 6(int) AtomicSMax 271 237 19 270 + 273: 20(ptr) AccessChain 9(iv) 19 + 274: 6(int) Load 273 + 275: 6(int) IAdd 274 272 + 276: 20(ptr) AccessChain 9(iv) 19 + Store 276 275 + 277: 29(ivec2) Load 142(ic2D) + 278: 18(int) Load 248(value) + 279: 250(ptr) ImageTexelPointer 245(ui2D) 277 19 + 280: 18(int) AtomicUMax 279 237 19 278 + 281: 18(int) Load 229(ui) + 282: 18(int) IAdd 281 280 + Store 229(ui) 282 + 283: 6(int) Load 132(ic1D) + 285: 235(ptr) ImageTexelPointer 232(ii1D) 283 19 + 286: 6(int) AtomicAnd 285 237 19 284 + 287: 20(ptr) AccessChain 9(iv) 19 + 288: 6(int) Load 287 + 289: 6(int) IAdd 288 286 + 290: 20(ptr) AccessChain 9(iv) 19 + Store 290 289 + 291: 29(ivec2) Load 142(ic2D) + 292: 18(int) Load 248(value) + 293: 250(ptr) ImageTexelPointer 245(ui2D) 291 19 + 294: 18(int) AtomicAnd 293 237 19 292 + 295: 18(int) Load 229(ui) + 296: 18(int) IAdd 295 294 + Store 229(ui) 296 + 297: 6(int) Load 132(ic1D) + 299: 235(ptr) ImageTexelPointer 232(ii1D) 297 19 + 300: 6(int) AtomicOr 299 237 19 298 + 301: 20(ptr) AccessChain 9(iv) 19 + 302: 6(int) Load 301 + 303: 6(int) IAdd 302 300 + 304: 20(ptr) AccessChain 9(iv) 19 + Store 304 303 + 305: 29(ivec2) Load 142(ic2D) + 306: 18(int) Load 248(value) + 307: 250(ptr) ImageTexelPointer 245(ui2D) 305 19 + 308: 18(int) AtomicOr 307 237 19 306 + 309: 18(int) Load 229(ui) + 310: 18(int) IAdd 309 308 + Store 229(ui) 310 + 311: 6(int) Load 132(ic1D) + 313: 235(ptr) ImageTexelPointer 232(ii1D) 311 19 + 314: 6(int) AtomicXor 313 237 19 312 + 315: 20(ptr) AccessChain 9(iv) 19 + 316: 6(int) Load 315 + 317: 6(int) IAdd 316 314 + 318: 20(ptr) AccessChain 9(iv) 19 + Store 318 317 + 319: 29(ivec2) Load 142(ic2D) + 320: 18(int) Load 248(value) + 321: 250(ptr) ImageTexelPointer 245(ui2D) 319 19 + 322: 18(int) AtomicXor 321 237 19 320 + 323: 18(int) Load 229(ui) + 324: 18(int) IAdd 323 322 + Store 229(ui) 324 + 325: 6(int) Load 132(ic1D) + 327: 235(ptr) ImageTexelPointer 232(ii1D) 325 19 + 328: 6(int) AtomicExchange 327 237 19 326 + 329: 20(ptr) AccessChain 9(iv) 19 + 330: 6(int) Load 329 + 331: 6(int) IAdd 330 328 + 332: 20(ptr) AccessChain 9(iv) 19 + Store 332 331 + 333: 29(ivec2) Load 142(ic2D) + 334: 18(int) Load 248(value) + 335: 250(ptr) ImageTexelPointer 245(ui2D) 333 19 + 336: 18(int) AtomicExchange 335 237 19 334 + 337: 18(int) Load 229(ui) + 338: 18(int) IAdd 337 336 + Store 229(ui) 338 + 339: 6(int) Load 132(ic1D) + 342: 235(ptr) ImageTexelPointer 232(ii1D) 339 19 + 343: 6(int) AtomicCompareExchange 342 237 19 19 341 340 + 344: 20(ptr) AccessChain 9(iv) 19 + 345: 6(int) Load 344 + 346: 6(int) IAdd 345 343 + 347: 20(ptr) AccessChain 9(iv) 19 + Store 347 346 + 348: 29(ivec2) Load 142(ic2D) + 350: 18(int) Load 248(value) + 351: 250(ptr) ImageTexelPointer 245(ui2D) 348 19 + 352: 18(int) AtomicCompareExchange 351 237 19 19 350 349 + 353: 18(int) Load 229(ui) + 354: 18(int) IAdd 353 352 + Store 229(ui) 354 + 358: 355 Load 357(wo2D) + 359: 29(ivec2) Load 142(ic2D) + 360: 125(fvec4) Load 127(v) + ImageWrite 358 359 360 + 363: 18(int) Load 229(ui) + 364: 20(ptr) AccessChain 9(iv) 237 + 365: 6(int) Load 364 + 366: 18(int) Bitcast 365 + 368: 367(bool) INotEqual 363 366 + 369: 125(fvec4) Load 127(v) + 371: 370(bvec4) CompositeConstruct 368 368 368 368 + 372: 125(fvec4) Select 371 369 129 + Store 362(fragData) 372 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.image.load-formatted.frag.out b/deps/glslang/glslang/Test/baseResults/spv.image.load-formatted.frag.out new file mode 100644 index 0000000000..172a3a1783 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.image.load-formatted.frag.out @@ -0,0 +1,352 @@ +spv.image.load-formatted.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 240 + + Capability Shader + Capability SampledRect + Capability Sampled1D + Capability SampledCubeArray + Capability SampledBuffer + Capability ImageMSArray + Capability ImageQuery + Capability StorageImageReadWithoutFormat + Capability StorageImageWriteWithoutFormat + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 132 142 152 233 237 239 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_shader_image_load_formatted" + Name 4 "main" + Name 9 "iv" + Name 15 "i1D" + Name 27 "i2D" + Name 38 "i3D" + Name 45 "iCube" + Name 55 "iCubeArray" + Name 62 "i2DRect" + Name 72 "i1DArray" + Name 82 "i2DArray" + Name 89 "iBuffer" + Name 98 "i2DMS" + Name 108 "i2DMSArray" + Name 127 "v" + Name 132 "ic1D" + Name 142 "ic2D" + Name 152 "ic3D" + Name 228 "wo2D" + Name 233 "fragData" + Name 237 "ic4D" + Name 239 "value" + Decorate 15(i1D) DescriptorSet 0 + Decorate 15(i1D) Binding 0 + Decorate 27(i2D) DescriptorSet 0 + Decorate 27(i2D) Binding 1 + Decorate 38(i3D) DescriptorSet 0 + Decorate 38(i3D) Binding 2 + Decorate 45(iCube) DescriptorSet 0 + Decorate 45(iCube) Binding 3 + Decorate 55(iCubeArray) DescriptorSet 0 + Decorate 55(iCubeArray) Binding 4 + Decorate 62(i2DRect) DescriptorSet 0 + Decorate 62(i2DRect) Binding 5 + Decorate 72(i1DArray) DescriptorSet 0 + Decorate 72(i1DArray) Binding 6 + Decorate 82(i2DArray) DescriptorSet 0 + Decorate 82(i2DArray) Binding 7 + Decorate 89(iBuffer) DescriptorSet 0 + Decorate 89(iBuffer) Binding 8 + Decorate 98(i2DMS) DescriptorSet 0 + Decorate 98(i2DMS) Binding 9 + Decorate 108(i2DMSArray) DescriptorSet 0 + Decorate 108(i2DMSArray) Binding 10 + Decorate 132(ic1D) Flat + Decorate 142(ic2D) Flat + Decorate 152(ic3D) Flat + Decorate 228(wo2D) DescriptorSet 0 + Decorate 228(wo2D) Binding 1 + Decorate 228(wo2D) NonReadable + Decorate 237(ic4D) Flat + Decorate 239(value) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 10: 6(int) Constant 0 + 11: 7(ivec3) ConstantComposite 10 10 10 + 12: TypeFloat 32 + 13: TypeImage 12(float) 1D nonsampled format:Unknown + 14: TypePointer UniformConstant 13 + 15(i1D): 14(ptr) Variable UniformConstant + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 20: TypePointer Function 6(int) + 25: TypeImage 12(float) 2D nonsampled format:Unknown + 26: TypePointer UniformConstant 25 + 27(i2D): 26(ptr) Variable UniformConstant + 29: TypeVector 6(int) 2 + 36: TypeImage 12(float) 3D nonsampled format:Unknown + 37: TypePointer UniformConstant 36 + 38(i3D): 37(ptr) Variable UniformConstant + 43: TypeImage 12(float) Cube nonsampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(iCube): 44(ptr) Variable UniformConstant + 53: TypeImage 12(float) Cube array nonsampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(iCubeArray): 54(ptr) Variable UniformConstant + 60: TypeImage 12(float) Rect nonsampled format:Unknown + 61: TypePointer UniformConstant 60 + 62(i2DRect): 61(ptr) Variable UniformConstant + 70: TypeImage 12(float) 1D array nonsampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(i1DArray): 71(ptr) Variable UniformConstant + 80: TypeImage 12(float) 2D array nonsampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(i2DArray): 81(ptr) Variable UniformConstant + 87: TypeImage 12(float) Buffer nonsampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(iBuffer): 88(ptr) Variable UniformConstant + 96: TypeImage 12(float) 2D multi-sampled nonsampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(i2DMS): 97(ptr) Variable UniformConstant + 106: TypeImage 12(float) 2D array multi-sampled nonsampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(i2DMSArray): 107(ptr) Variable UniformConstant + 125: TypeVector 12(float) 4 + 126: TypePointer Function 125(fvec4) + 128: 12(float) Constant 0 + 129: 125(fvec4) ConstantComposite 128 128 128 128 + 131: TypePointer Input 6(int) + 132(ic1D): 131(ptr) Variable Input + 141: TypePointer Input 29(ivec2) + 142(ic2D): 141(ptr) Variable Input + 151: TypePointer Input 7(ivec3) + 152(ic3D): 151(ptr) Variable Input + 210: 6(int) Constant 1 + 216: 6(int) Constant 2 + 220: 6(int) Constant 3 + 226: 6(int) Constant 4 + 228(wo2D): 26(ptr) Variable UniformConstant + 232: TypePointer Output 125(fvec4) + 233(fragData): 232(ptr) Variable Output + 235: TypeVector 6(int) 4 + 236: TypePointer Input 235(ivec4) + 237(ic4D): 236(ptr) Variable Input + 238: TypePointer Input 18(int) + 239(value): 238(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(iv): 8(ptr) Variable Function + 127(v): 126(ptr) Variable Function + Store 9(iv) 11 + 16: 13 Load 15(i1D) + 17: 6(int) ImageQuerySize 16 + 21: 20(ptr) AccessChain 9(iv) 19 + 22: 6(int) Load 21 + 23: 6(int) IAdd 22 17 + 24: 20(ptr) AccessChain 9(iv) 19 + Store 24 23 + 28: 25 Load 27(i2D) + 30: 29(ivec2) ImageQuerySize 28 + 31: 7(ivec3) Load 9(iv) + 32: 29(ivec2) VectorShuffle 31 31 0 1 + 33: 29(ivec2) IAdd 32 30 + 34: 7(ivec3) Load 9(iv) + 35: 7(ivec3) VectorShuffle 34 33 3 4 2 + Store 9(iv) 35 + 39: 36 Load 38(i3D) + 40: 7(ivec3) ImageQuerySize 39 + 41: 7(ivec3) Load 9(iv) + 42: 7(ivec3) IAdd 41 40 + Store 9(iv) 42 + 46: 43 Load 45(iCube) + 47: 29(ivec2) ImageQuerySize 46 + 48: 7(ivec3) Load 9(iv) + 49: 29(ivec2) VectorShuffle 48 48 0 1 + 50: 29(ivec2) IAdd 49 47 + 51: 7(ivec3) Load 9(iv) + 52: 7(ivec3) VectorShuffle 51 50 3 4 2 + Store 9(iv) 52 + 56: 53 Load 55(iCubeArray) + 57: 7(ivec3) ImageQuerySize 56 + 58: 7(ivec3) Load 9(iv) + 59: 7(ivec3) IAdd 58 57 + Store 9(iv) 59 + 63: 60 Load 62(i2DRect) + 64: 29(ivec2) ImageQuerySize 63 + 65: 7(ivec3) Load 9(iv) + 66: 29(ivec2) VectorShuffle 65 65 0 1 + 67: 29(ivec2) IAdd 66 64 + 68: 7(ivec3) Load 9(iv) + 69: 7(ivec3) VectorShuffle 68 67 3 4 2 + Store 9(iv) 69 + 73: 70 Load 72(i1DArray) + 74: 29(ivec2) ImageQuerySize 73 + 75: 7(ivec3) Load 9(iv) + 76: 29(ivec2) VectorShuffle 75 75 0 1 + 77: 29(ivec2) IAdd 76 74 + 78: 7(ivec3) Load 9(iv) + 79: 7(ivec3) VectorShuffle 78 77 3 4 2 + Store 9(iv) 79 + 83: 80 Load 82(i2DArray) + 84: 7(ivec3) ImageQuerySize 83 + 85: 7(ivec3) Load 9(iv) + 86: 7(ivec3) IAdd 85 84 + Store 9(iv) 86 + 90: 87 Load 89(iBuffer) + 91: 6(int) ImageQuerySize 90 + 92: 20(ptr) AccessChain 9(iv) 19 + 93: 6(int) Load 92 + 94: 6(int) IAdd 93 91 + 95: 20(ptr) AccessChain 9(iv) 19 + Store 95 94 + 99: 96 Load 98(i2DMS) + 100: 29(ivec2) ImageQuerySize 99 + 101: 7(ivec3) Load 9(iv) + 102: 29(ivec2) VectorShuffle 101 101 0 1 + 103: 29(ivec2) IAdd 102 100 + 104: 7(ivec3) Load 9(iv) + 105: 7(ivec3) VectorShuffle 104 103 3 4 2 + Store 9(iv) 105 + 109: 106 Load 108(i2DMSArray) + 110: 7(ivec3) ImageQuerySize 109 + 111: 7(ivec3) Load 9(iv) + 112: 7(ivec3) IAdd 111 110 + Store 9(iv) 112 + 113: 96 Load 98(i2DMS) + 114: 6(int) ImageQuerySamples 113 + 115: 20(ptr) AccessChain 9(iv) 19 + 116: 6(int) Load 115 + 117: 6(int) IAdd 116 114 + 118: 20(ptr) AccessChain 9(iv) 19 + Store 118 117 + 119: 106 Load 108(i2DMSArray) + 120: 6(int) ImageQuerySamples 119 + 121: 20(ptr) AccessChain 9(iv) 19 + 122: 6(int) Load 121 + 123: 6(int) IAdd 122 120 + 124: 20(ptr) AccessChain 9(iv) 19 + Store 124 123 + Store 127(v) 129 + 130: 13 Load 15(i1D) + 133: 6(int) Load 132(ic1D) + 134: 125(fvec4) ImageRead 130 133 + 135: 125(fvec4) Load 127(v) + 136: 125(fvec4) FAdd 135 134 + Store 127(v) 136 + 137: 13 Load 15(i1D) + 138: 6(int) Load 132(ic1D) + 139: 125(fvec4) Load 127(v) + ImageWrite 137 138 139 + 140: 25 Load 27(i2D) + 143: 29(ivec2) Load 142(ic2D) + 144: 125(fvec4) ImageRead 140 143 + 145: 125(fvec4) Load 127(v) + 146: 125(fvec4) FAdd 145 144 + Store 127(v) 146 + 147: 25 Load 27(i2D) + 148: 29(ivec2) Load 142(ic2D) + 149: 125(fvec4) Load 127(v) + ImageWrite 147 148 149 + 150: 36 Load 38(i3D) + 153: 7(ivec3) Load 152(ic3D) + 154: 125(fvec4) ImageRead 150 153 + 155: 125(fvec4) Load 127(v) + 156: 125(fvec4) FAdd 155 154 + Store 127(v) 156 + 157: 36 Load 38(i3D) + 158: 7(ivec3) Load 152(ic3D) + 159: 125(fvec4) Load 127(v) + ImageWrite 157 158 159 + 160: 43 Load 45(iCube) + 161: 7(ivec3) Load 152(ic3D) + 162: 125(fvec4) ImageRead 160 161 + 163: 125(fvec4) Load 127(v) + 164: 125(fvec4) FAdd 163 162 + Store 127(v) 164 + 165: 43 Load 45(iCube) + 166: 7(ivec3) Load 152(ic3D) + 167: 125(fvec4) Load 127(v) + ImageWrite 165 166 167 + 168: 53 Load 55(iCubeArray) + 169: 7(ivec3) Load 152(ic3D) + 170: 125(fvec4) ImageRead 168 169 + 171: 125(fvec4) Load 127(v) + 172: 125(fvec4) FAdd 171 170 + Store 127(v) 172 + 173: 53 Load 55(iCubeArray) + 174: 7(ivec3) Load 152(ic3D) + 175: 125(fvec4) Load 127(v) + ImageWrite 173 174 175 + 176: 60 Load 62(i2DRect) + 177: 29(ivec2) Load 142(ic2D) + 178: 125(fvec4) ImageRead 176 177 + 179: 125(fvec4) Load 127(v) + 180: 125(fvec4) FAdd 179 178 + Store 127(v) 180 + 181: 60 Load 62(i2DRect) + 182: 29(ivec2) Load 142(ic2D) + 183: 125(fvec4) Load 127(v) + ImageWrite 181 182 183 + 184: 70 Load 72(i1DArray) + 185: 29(ivec2) Load 142(ic2D) + 186: 125(fvec4) ImageRead 184 185 + 187: 125(fvec4) Load 127(v) + 188: 125(fvec4) FAdd 187 186 + Store 127(v) 188 + 189: 70 Load 72(i1DArray) + 190: 29(ivec2) Load 142(ic2D) + 191: 125(fvec4) Load 127(v) + ImageWrite 189 190 191 + 192: 80 Load 82(i2DArray) + 193: 7(ivec3) Load 152(ic3D) + 194: 125(fvec4) ImageRead 192 193 + 195: 125(fvec4) Load 127(v) + 196: 125(fvec4) FAdd 195 194 + Store 127(v) 196 + 197: 80 Load 82(i2DArray) + 198: 7(ivec3) Load 152(ic3D) + 199: 125(fvec4) Load 127(v) + ImageWrite 197 198 199 + 200: 87 Load 89(iBuffer) + 201: 6(int) Load 132(ic1D) + 202: 125(fvec4) ImageRead 200 201 + 203: 125(fvec4) Load 127(v) + 204: 125(fvec4) FAdd 203 202 + Store 127(v) 204 + 205: 87 Load 89(iBuffer) + 206: 6(int) Load 132(ic1D) + 207: 125(fvec4) Load 127(v) + ImageWrite 205 206 207 + 208: 96 Load 98(i2DMS) + 209: 29(ivec2) Load 142(ic2D) + 211: 125(fvec4) ImageRead 208 209 Sample 210 + 212: 125(fvec4) Load 127(v) + 213: 125(fvec4) FAdd 212 211 + Store 127(v) 213 + 214: 96 Load 98(i2DMS) + 215: 29(ivec2) Load 142(ic2D) + 217: 125(fvec4) Load 127(v) + ImageWrite 214 215 217 Sample 216 + 218: 106 Load 108(i2DMSArray) + 219: 7(ivec3) Load 152(ic3D) + 221: 125(fvec4) ImageRead 218 219 Sample 220 + 222: 125(fvec4) Load 127(v) + 223: 125(fvec4) FAdd 222 221 + Store 127(v) 223 + 224: 106 Load 108(i2DMSArray) + 225: 7(ivec3) Load 152(ic3D) + 227: 125(fvec4) Load 127(v) + ImageWrite 224 225 227 Sample 226 + 229: 25 Load 228(wo2D) + 230: 29(ivec2) Load 142(ic2D) + 231: 125(fvec4) Load 127(v) + ImageWrite 229 230 231 + 234: 125(fvec4) Load 127(v) + Store 233(fragData) 234 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out b/deps/glslang/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out new file mode 100644 index 0000000000..4c65a36741 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out @@ -0,0 +1,135 @@ +spv.imageLoadStoreLod.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 82 + + Capability Shader + Capability ImageCubeArray + Capability SparseResidency + Capability Image1D + Capability ImageReadWriteLodAMD + Extension "SPV_AMD_shader_image_load_store_lod" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 77 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_shader_image_load_store_lod" + Name 4 "main" + Name 9 "f4" + Name 14 "i1D" + Name 24 "i2D" + Name 34 "i3D" + Name 46 "iiCube" + Name 53 "ii1DArray" + Name 60 "ui2DArray" + Name 64 "u4" + Name 65 "ResType" + Name 71 "uiCubeArray" + Name 77 "fragColor" + Decorate 14(i1D) DescriptorSet 0 + Decorate 14(i1D) Binding 0 + Decorate 24(i2D) DescriptorSet 0 + Decorate 24(i2D) Binding 1 + Decorate 34(i3D) DescriptorSet 0 + Decorate 34(i3D) Binding 2 + Decorate 46(iiCube) DescriptorSet 0 + Decorate 46(iiCube) Binding 3 + Decorate 53(ii1DArray) DescriptorSet 0 + Decorate 53(ii1DArray) Binding 4 + Decorate 60(ui2DArray) DescriptorSet 0 + Decorate 60(ui2DArray) Binding 5 + Decorate 71(uiCubeArray) DescriptorSet 0 + Decorate 71(uiCubeArray) Binding 6 + Decorate 77(fragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 0 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 12: TypeImage 6(float) 1D nonsampled format:Rgba32f + 13: TypePointer UniformConstant 12 + 14(i1D): 13(ptr) Variable UniformConstant + 16: TypeInt 32 1 + 17: 16(int) Constant 1 + 18: 16(int) Constant 3 + 22: TypeImage 6(float) 2D nonsampled format:Rgba32f + 23: TypePointer UniformConstant 22 + 24(i2D): 23(ptr) Variable UniformConstant + 26: TypeVector 16(int) 2 + 27: 16(int) Constant 2 + 28: 26(ivec2) ConstantComposite 27 18 + 32: TypeImage 6(float) 3D nonsampled format:Rgba32f + 33: TypePointer UniformConstant 32 + 34(i3D): 33(ptr) Variable UniformConstant + 36: TypeVector 16(int) 3 + 37: 16(int) Constant 4 + 38: 16(int) Constant 5 + 39: 16(int) Constant 6 + 40: 36(ivec3) ConstantComposite 37 38 39 + 44: TypeImage 16(int) Cube nonsampled format:Rgba32i + 45: TypePointer UniformConstant 44 + 46(iiCube): 45(ptr) Variable UniformConstant + 49: TypeVector 16(int) 4 + 51: TypeImage 16(int) 1D array nonsampled format:Rgba32i + 52: TypePointer UniformConstant 51 + 53(ii1DArray): 52(ptr) Variable UniformConstant + 57: TypeInt 32 0 + 58: TypeImage 57(int) 2D array nonsampled format:Rgba32ui + 59: TypePointer UniformConstant 58 + 60(ui2DArray): 59(ptr) Variable UniformConstant + 62: TypeVector 57(int) 4 + 63: TypePointer Function 62(ivec4) + 65(ResType): TypeStruct 16(int) 62(ivec4) + 69: TypeImage 57(int) Cube array nonsampled format:Rgba32ui + 70: TypePointer UniformConstant 69 + 71(uiCubeArray): 70(ptr) Variable UniformConstant + 76: TypePointer Output 7(fvec4) + 77(fragColor): 76(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(f4): 8(ptr) Variable Function + 64(u4): 63(ptr) Variable Function + Store 9(f4) 11 + 15: 12 Load 14(i1D) + 19: 7(fvec4) ImageRead 15 17 Lod 18 + 20: 7(fvec4) Load 9(f4) + 21: 7(fvec4) FAdd 20 19 + Store 9(f4) 21 + 25: 22 Load 24(i2D) + 29: 7(fvec4) ImageRead 25 28 Lod 18 + 30: 7(fvec4) Load 9(f4) + 31: 7(fvec4) FAdd 30 29 + Store 9(f4) 31 + 35: 32 Load 34(i3D) + 41: 7(fvec4) ImageRead 35 40 Lod 18 + 42: 7(fvec4) Load 9(f4) + 43: 7(fvec4) FAdd 42 41 + Store 9(f4) 43 + 47: 44 Load 46(iiCube) + 48: 7(fvec4) Load 9(f4) + 50: 49(ivec4) ConvertFToS 48 + ImageWrite 47 40 50 Lod 18 + 54: 51 Load 53(ii1DArray) + 55: 7(fvec4) Load 9(f4) + 56: 49(ivec4) ConvertFToS 55 + ImageWrite 54 28 56 Lod 18 + 61: 58 Load 60(ui2DArray) + 66: 65(ResType) ImageSparseRead 61 40 Lod 18 + 67: 62(ivec4) CompositeExtract 66 1 + Store 64(u4) 67 + 68: 16(int) CompositeExtract 66 0 + 72: 69 Load 71(uiCubeArray) + 73: 65(ResType) ImageSparseRead 72 40 Lod 18 + 74: 62(ivec4) CompositeExtract 73 1 + Store 64(u4) 74 + 75: 16(int) CompositeExtract 73 0 + 78: 7(fvec4) Load 9(f4) + 79: 62(ivec4) Load 64(u4) + 80: 7(fvec4) ConvertUToF 79 + 81: 7(fvec4) FAdd 78 80 + Store 77(fragColor) 81 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.int16.amd.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int16.amd.frag.out new file mode 100644 index 0000000000..c404375bfe --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.int16.amd.frag.out @@ -0,0 +1,778 @@ +spv.int16.amd.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 560 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability StorageUniform16 + Capability StorageInputOutput16 + Extension "SPV_AMD_gpu_shader_half_float" + Extension "SPV_AMD_gpu_shader_int16" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 519 521 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_gpu_shader_half_float" + SourceExtension "GL_AMD_gpu_shader_int16" + SourceExtension "GL_ARB_gpu_shader_int64" + Name 4 "main" + Name 6 "literal(" + Name 8 "operators(" + Name 10 "typeCast(" + Name 12 "builtinFuncs(" + Name 16 "u16" + Name 25 "Uniforms" + MemberName 25(Uniforms) 0 "i" + Name 27 "" + Name 34 "indexable" + Name 45 "indexable" + Name 51 "u16v" + Name 57 "i16" + Name 70 "u16" + Name 127 "b" + Name 148 "u" + Name 159 "i" + Name 189 "i16v" + Name 192 "bv" + Name 200 "u16v" + Name 213 "iv" + Name 226 "uv" + Name 240 "fv" + Name 252 "dv" + Name 264 "f16v" + Name 276 "i64v" + Name 290 "u64v" + Name 305 "i16v" + Name 311 "i16" + Name 319 "u16v" + Name 321 "u16" + Name 393 "f16v" + Name 396 "exp" + Name 397 "ResType" + Name 418 "packi" + Name 423 "packu" + Name 432 "packi64" + Name 441 "packu64" + Name 450 "bv" + Name 515 "Block" + MemberName 515(Block) 0 "i16v" + MemberName 515(Block) 1 "u16" + Name 517 "block" + Name 519 "iu16v" + Name 521 "ii16" + Name 522 "si64" + Name 523 "su64" + Name 524 "si" + Name 525 "su" + Name 526 "sb" + Name 527 "si16" + Name 528 "su16" + MemberDecorate 25(Uniforms) 0 Offset 0 + Decorate 25(Uniforms) Block + Decorate 27 DescriptorSet 0 + Decorate 27 Binding 0 + MemberDecorate 515(Block) 0 Offset 0 + MemberDecorate 515(Block) 1 Offset 6 + Decorate 515(Block) Block + Decorate 517(block) DescriptorSet 0 + Decorate 517(block) Binding 1 + Decorate 519(iu16v) Flat + Decorate 519(iu16v) Location 0 + Decorate 521(ii16) Flat + Decorate 521(ii16) Location 1 + Decorate 522(si64) SpecId 100 + Decorate 523(su64) SpecId 101 + Decorate 524(si) SpecId 102 + Decorate 525(su) SpecId 103 + Decorate 526(sb) SpecId 104 + Decorate 527(si16) SpecId 105 + Decorate 528(su16) SpecId 106 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 16 0 + 15: TypePointer Function 14(int16_t) + 17: TypeInt 16 1 + 18: TypeInt 32 0 + 19: 18(int) Constant 3 + 20: TypeArray 17(int16_t) 19 + 21: 17(int16_t) Constant 273 + 22: 17(int16_t) Constant 4294967294 + 23: 17(int16_t) Constant 256 + 24: 20 ConstantComposite 21 22 23 + 25(Uniforms): TypeStruct 18(int) + 26: TypePointer Uniform 25(Uniforms) + 27: 26(ptr) Variable Uniform + 28: TypeInt 32 1 + 29: 28(int) Constant 0 + 30: TypePointer Uniform 18(int) + 33: TypePointer Function 20 + 35: TypePointer Function 17(int16_t) + 39: TypeArray 14(int16_t) 19 + 40: 14(int16_t) Constant 65535 + 41: 39 ConstantComposite 40 40 40 + 44: TypePointer Function 39 + 49: TypeVector 14(int16_t) 3 + 50: TypePointer Function 49(i16vec3) + 53: 17(int16_t) Constant 1 + 54: TypeVector 17(int16_t) 3 + 111: 18(int) Constant 1 + 117: 18(int) Constant 2 + 125: TypeBool + 126: TypePointer Function 125(bool) + 128: 18(int) Constant 0 + 147: TypePointer Function 18(int) + 158: TypePointer Function 28(int) + 187: TypeVector 17(int16_t) 2 + 188: TypePointer Function 187(i16vec2) + 190: TypeVector 125(bool) 2 + 191: TypePointer Function 190(bvec2) + 194: 17(int16_t) Constant 0 + 195:187(i16vec2) ConstantComposite 194 194 + 196:187(i16vec2) ConstantComposite 53 53 + 198: TypeVector 14(int16_t) 2 + 199: TypePointer Function 198(i16vec2) + 202: 14(int16_t) Constant 0 + 203: 14(int16_t) Constant 1 + 204:198(i16vec2) ConstantComposite 202 202 + 205:198(i16vec2) ConstantComposite 203 203 + 211: TypeVector 28(int) 2 + 212: TypePointer Function 211(ivec2) + 222: TypeVector 18(int) 2 + 225: TypePointer Function 222(ivec2) + 237: TypeFloat 32 + 238: TypeVector 237(float) 2 + 239: TypePointer Function 238(fvec2) + 249: TypeFloat 64 + 250: TypeVector 249(float64_t) 2 + 251: TypePointer Function 250(f64vec2) + 261: TypeFloat 16 + 262: TypeVector 261(float16_t) 2 + 263: TypePointer Function 262(f16vec2) + 273: TypeInt 64 1 + 274: TypeVector 273(int64_t) 2 + 275: TypePointer Function 274(i64vec2) + 285: TypeInt 64 0 + 286: TypeVector 285(int64_t) 2 + 289: TypePointer Function 286(i64vec2) + 316: 17(int16_t) Constant 4294967295 + 317:187(i16vec2) ConstantComposite 316 316 + 326: 49(i16vec3) ConstantComposite 202 202 202 + 368: 125(bool) ConstantTrue + 375: 125(bool) ConstantFalse + 376: 190(bvec2) ConstantComposite 375 375 + 388: TypeVector 125(bool) 3 + 389: 388(bvec3) ConstantComposite 375 375 375 + 391: TypeVector 261(float16_t) 3 + 392: TypePointer Function 391(f16vec3) + 395: TypePointer Function 54(i16vec3) + 397(ResType): TypeStruct 391(f16vec3) 54(i16vec3) + 407: TypePointer Function 261(float16_t) + 431: TypePointer Function 273(int64_t) + 434: TypeVector 17(int16_t) 4 + 440: TypePointer Function 285(int64_t) + 443: TypeVector 14(int16_t) 4 + 449: TypePointer Function 388(bvec3) + 515(Block): TypeStruct 54(i16vec3) 14(int16_t) + 516: TypePointer Uniform 515(Block) + 517(block): 516(ptr) Variable Uniform + 518: TypePointer Input 49(i16vec3) + 519(iu16v): 518(ptr) Variable Input + 520: TypePointer Input 17(int16_t) + 521(ii16): 520(ptr) Variable Input + 522(si64):273(int64_t) SpecConstant 4294967286 4294967295 + 523(su64):285(int64_t) SpecConstant 20 0 + 524(si): 28(int) SpecConstant 4294967291 + 525(su): 18(int) SpecConstant 4 + 526(sb): 125(bool) SpecConstantTrue + 527(si16): 17(int16_t) SpecConstant 4294967291 + 528(su16): 14(int16_t) SpecConstant 4 + 529: 125(bool) SpecConstantOp 171 527(si16) 202 + 530: 125(bool) SpecConstantOp 171 528(su16) 202 + 531: 17(int16_t) SpecConstantOp 169 526(sb) 53 194 + 532: 14(int16_t) SpecConstantOp 169 526(sb) 203 202 + 533: 28(int) SpecConstantOp 114 527(si16) + 534: 18(int) SpecConstantOp 113 528(su16) + 535: 28(int) SpecConstantOp 128 534 128 + 536: 17(int16_t) SpecConstantOp 114 524(si) + 537: 17(int16_t) SpecConstantOp 114 524(si) + 538: 14(int16_t) SpecConstantOp 128 537 202 + 539: 28(int) SpecConstantOp 114 527(si16) + 540: 18(int) SpecConstantOp 128 539 128 + 541: 18(int) SpecConstantOp 113 528(su16) + 542: 14(int16_t) SpecConstantOp 113 525(su) + 543: 17(int16_t) SpecConstantOp 128 542 202 + 544: 14(int16_t) SpecConstantOp 113 525(su) + 545:273(int64_t) SpecConstantOp 114 527(si16) + 546:285(int64_t) SpecConstantOp 113 528(su16) + 547:285(int64_t) Constant 0 0 + 548:273(int64_t) SpecConstantOp 128 546 547 + 549: 17(int16_t) SpecConstantOp 114 522(si64) + 550: 17(int16_t) SpecConstantOp 114 522(si64) + 551: 14(int16_t) SpecConstantOp 128 550 202 + 552:273(int64_t) SpecConstantOp 114 527(si16) + 553:285(int64_t) SpecConstantOp 128 552 547 + 554:285(int64_t) SpecConstantOp 113 528(su16) + 555: 14(int16_t) SpecConstantOp 113 523(su64) + 556: 17(int16_t) SpecConstantOp 128 555 202 + 557: 14(int16_t) SpecConstantOp 113 523(su64) + 558: 14(int16_t) SpecConstantOp 128 527(si16) 202 + 559: 17(int16_t) SpecConstantOp 128 528(su16) 202 + 4(main): 2 Function None 3 + 5: Label + 511: 2 FunctionCall 6(literal() + 512: 2 FunctionCall 8(operators() + 513: 2 FunctionCall 10(typeCast() + 514: 2 FunctionCall 12(builtinFuncs() + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 16(u16): 15(ptr) Variable Function + 34(indexable): 33(ptr) Variable Function + 45(indexable): 44(ptr) Variable Function + 31: 30(ptr) AccessChain 27 29 + 32: 18(int) Load 31 + Store 34(indexable) 24 + 36: 35(ptr) AccessChain 34(indexable) 32 + 37: 17(int16_t) Load 36 + 38: 14(int16_t) Bitcast 37 + 42: 30(ptr) AccessChain 27 29 + 43: 18(int) Load 42 + Store 45(indexable) 41 + 46: 15(ptr) AccessChain 45(indexable) 43 + 47: 14(int16_t) Load 46 + 48: 14(int16_t) IAdd 38 47 + Store 16(u16) 48 + Return + FunctionEnd + 8(operators(): 2 Function None 3 + 9: Label + 51(u16v): 50(ptr) Variable Function + 57(i16): 35(ptr) Variable Function + 70(u16): 15(ptr) Variable Function + 127(b): 126(ptr) Variable Function + 148(u): 147(ptr) Variable Function + 159(i): 158(ptr) Variable Function + 52: 49(i16vec3) Load 51(u16v) + 55: 54(i16vec3) CompositeConstruct 53 53 53 + 56: 49(i16vec3) IAdd 52 55 + Store 51(u16v) 56 + 58: 17(int16_t) Load 57(i16) + 59: 17(int16_t) ISub 58 53 + Store 57(i16) 59 + 60: 17(int16_t) Load 57(i16) + 61: 17(int16_t) IAdd 60 53 + Store 57(i16) 61 + 62: 49(i16vec3) Load 51(u16v) + 63: 54(i16vec3) CompositeConstruct 53 53 53 + 64: 49(i16vec3) ISub 62 63 + Store 51(u16v) 64 + 65: 49(i16vec3) Load 51(u16v) + 66: 49(i16vec3) Not 65 + Store 51(u16v) 66 + 67: 17(int16_t) Load 57(i16) + Store 57(i16) 67 + 68: 49(i16vec3) Load 51(u16v) + 69: 49(i16vec3) SNegate 68 + Store 51(u16v) 69 + 71: 17(int16_t) Load 57(i16) + 72: 14(int16_t) Bitcast 71 + 73: 14(int16_t) Load 70(u16) + 74: 14(int16_t) IAdd 73 72 + Store 70(u16) 74 + 75: 49(i16vec3) Load 51(u16v) + 76: 49(i16vec3) Load 51(u16v) + 77: 49(i16vec3) ISub 76 75 + Store 51(u16v) 77 + 78: 17(int16_t) Load 57(i16) + 79: 17(int16_t) Load 57(i16) + 80: 17(int16_t) IMul 79 78 + Store 57(i16) 80 + 81: 49(i16vec3) Load 51(u16v) + 82: 49(i16vec3) Load 51(u16v) + 83: 49(i16vec3) UDiv 82 81 + Store 51(u16v) 83 + 84: 17(int16_t) Load 57(i16) + 85: 14(int16_t) Bitcast 84 + 86: 49(i16vec3) Load 51(u16v) + 87: 49(i16vec3) CompositeConstruct 85 85 85 + 88: 49(i16vec3) UMod 86 87 + Store 51(u16v) 88 + 89: 49(i16vec3) Load 51(u16v) + 90: 49(i16vec3) Load 51(u16v) + 91: 49(i16vec3) IAdd 89 90 + Store 51(u16v) 91 + 92: 17(int16_t) Load 57(i16) + 93: 14(int16_t) Bitcast 92 + 94: 14(int16_t) Load 70(u16) + 95: 14(int16_t) ISub 93 94 + Store 70(u16) 95 + 96: 49(i16vec3) Load 51(u16v) + 97: 17(int16_t) Load 57(i16) + 98: 14(int16_t) Bitcast 97 + 99: 49(i16vec3) CompositeConstruct 98 98 98 + 100: 49(i16vec3) IMul 96 99 + Store 51(u16v) 100 + 101: 17(int16_t) Load 57(i16) + 102: 17(int16_t) Load 57(i16) + 103: 17(int16_t) IMul 101 102 + Store 57(i16) 103 + 104: 17(int16_t) Load 57(i16) + 105: 17(int16_t) Load 57(i16) + 106: 17(int16_t) SMod 104 105 + Store 57(i16) 106 + 107: 17(int16_t) Load 57(i16) + 108: 49(i16vec3) Load 51(u16v) + 109: 54(i16vec3) CompositeConstruct 107 107 107 + 110: 49(i16vec3) ShiftLeftLogical 108 109 + Store 51(u16v) 110 + 112: 15(ptr) AccessChain 51(u16v) 111 + 113: 14(int16_t) Load 112 + 114: 17(int16_t) Load 57(i16) + 115: 17(int16_t) ShiftRightArithmetic 114 113 + Store 57(i16) 115 + 116: 17(int16_t) Load 57(i16) + 118: 15(ptr) AccessChain 51(u16v) 117 + 119: 14(int16_t) Load 118 + 120: 17(int16_t) ShiftLeftLogical 116 119 + Store 57(i16) 120 + 121: 49(i16vec3) Load 51(u16v) + 122: 17(int16_t) Load 57(i16) + 123: 54(i16vec3) CompositeConstruct 122 122 122 + 124: 49(i16vec3) ShiftLeftLogical 121 123 + Store 51(u16v) 124 + 129: 15(ptr) AccessChain 51(u16v) 128 + 130: 14(int16_t) Load 129 + 131: 17(int16_t) Load 57(i16) + 132: 14(int16_t) Bitcast 131 + 133: 125(bool) INotEqual 130 132 + Store 127(b) 133 + 134: 17(int16_t) Load 57(i16) + 135: 14(int16_t) Bitcast 134 + 136: 15(ptr) AccessChain 51(u16v) 128 + 137: 14(int16_t) Load 136 + 138: 125(bool) IEqual 135 137 + Store 127(b) 138 + 139: 15(ptr) AccessChain 51(u16v) 128 + 140: 14(int16_t) Load 139 + 141: 15(ptr) AccessChain 51(u16v) 111 + 142: 14(int16_t) Load 141 + 143: 125(bool) UGreaterThan 140 142 + Store 127(b) 143 + 144: 17(int16_t) Load 57(i16) + 145: 28(int) SConvert 144 + 146: 18(int) Bitcast 145 + 149: 18(int) Load 148(u) + 150: 125(bool) ULessThan 146 149 + Store 127(b) 150 + 151: 15(ptr) AccessChain 51(u16v) 111 + 152: 14(int16_t) Load 151 + 153: 15(ptr) AccessChain 51(u16v) 128 + 154: 14(int16_t) Load 153 + 155: 125(bool) UGreaterThanEqual 152 154 + Store 127(b) 155 + 156: 17(int16_t) Load 57(i16) + 157: 28(int) SConvert 156 + 160: 28(int) Load 159(i) + 161: 125(bool) SLessThanEqual 157 160 + Store 127(b) 161 + 162: 17(int16_t) Load 57(i16) + 163: 14(int16_t) Bitcast 162 + 164: 49(i16vec3) Load 51(u16v) + 165: 49(i16vec3) CompositeConstruct 163 163 163 + 166: 49(i16vec3) BitwiseOr 164 165 + Store 51(u16v) 166 + 167: 17(int16_t) Load 57(i16) + 168: 14(int16_t) Bitcast 167 + 169: 14(int16_t) Load 70(u16) + 170: 14(int16_t) BitwiseOr 168 169 + Store 70(u16) 170 + 171: 17(int16_t) Load 57(i16) + 172: 17(int16_t) Load 57(i16) + 173: 17(int16_t) BitwiseAnd 172 171 + Store 57(i16) 173 + 174: 49(i16vec3) Load 51(u16v) + 175: 49(i16vec3) Load 51(u16v) + 176: 49(i16vec3) BitwiseAnd 174 175 + Store 51(u16v) 176 + 177: 17(int16_t) Load 57(i16) + 178: 14(int16_t) Bitcast 177 + 179: 49(i16vec3) Load 51(u16v) + 180: 49(i16vec3) CompositeConstruct 178 178 178 + 181: 49(i16vec3) BitwiseXor 179 180 + Store 51(u16v) 181 + 182: 49(i16vec3) Load 51(u16v) + 183: 17(int16_t) Load 57(i16) + 184: 14(int16_t) Bitcast 183 + 185: 49(i16vec3) CompositeConstruct 184 184 184 + 186: 49(i16vec3) BitwiseXor 182 185 + Store 51(u16v) 186 + Return + FunctionEnd + 10(typeCast(): 2 Function None 3 + 11: Label + 189(i16v): 188(ptr) Variable Function + 192(bv): 191(ptr) Variable Function + 200(u16v): 199(ptr) Variable Function + 213(iv): 212(ptr) Variable Function + 226(uv): 225(ptr) Variable Function + 240(fv): 239(ptr) Variable Function + 252(dv): 251(ptr) Variable Function + 264(f16v): 263(ptr) Variable Function + 276(i64v): 275(ptr) Variable Function + 290(u64v): 289(ptr) Variable Function + 193: 190(bvec2) Load 192(bv) + 197:187(i16vec2) Select 193 196 195 + Store 189(i16v) 197 + 201: 190(bvec2) Load 192(bv) + 206:198(i16vec2) Select 201 205 204 + Store 200(u16v) 206 + 207:187(i16vec2) Load 189(i16v) + 208: 190(bvec2) INotEqual 207 204 + Store 192(bv) 208 + 209:198(i16vec2) Load 200(u16v) + 210: 190(bvec2) INotEqual 209 204 + Store 192(bv) 210 + 214: 211(ivec2) Load 213(iv) + 215:187(i16vec2) SConvert 214 + Store 189(i16v) 215 + 216: 211(ivec2) Load 213(iv) + 217:187(i16vec2) SConvert 216 + 218:198(i16vec2) Bitcast 217 + Store 200(u16v) 218 + 219:187(i16vec2) Load 189(i16v) + 220: 211(ivec2) SConvert 219 + Store 213(iv) 220 + 221:198(i16vec2) Load 200(u16v) + 223: 222(ivec2) UConvert 221 + 224: 211(ivec2) Bitcast 223 + Store 213(iv) 224 + 227: 222(ivec2) Load 226(uv) + 228:198(i16vec2) UConvert 227 + 229:187(i16vec2) Bitcast 228 + Store 189(i16v) 229 + 230: 222(ivec2) Load 226(uv) + 231:198(i16vec2) UConvert 230 + Store 200(u16v) 231 + 232:187(i16vec2) Load 189(i16v) + 233: 211(ivec2) SConvert 232 + 234: 222(ivec2) Bitcast 233 + Store 226(uv) 234 + 235:198(i16vec2) Load 200(u16v) + 236: 222(ivec2) UConvert 235 + Store 226(uv) 236 + 241: 238(fvec2) Load 240(fv) + 242:187(i16vec2) ConvertFToS 241 + Store 189(i16v) 242 + 243: 238(fvec2) Load 240(fv) + 244:198(i16vec2) ConvertFToU 243 + Store 200(u16v) 244 + 245:187(i16vec2) Load 189(i16v) + 246: 238(fvec2) ConvertSToF 245 + Store 240(fv) 246 + 247:198(i16vec2) Load 200(u16v) + 248: 238(fvec2) ConvertUToF 247 + Store 240(fv) 248 + 253:250(f64vec2) Load 252(dv) + 254:187(i16vec2) ConvertFToS 253 + Store 189(i16v) 254 + 255:250(f64vec2) Load 252(dv) + 256:198(i16vec2) ConvertFToU 255 + Store 200(u16v) 256 + 257:187(i16vec2) Load 189(i16v) + 258:250(f64vec2) ConvertSToF 257 + Store 252(dv) 258 + 259:198(i16vec2) Load 200(u16v) + 260:250(f64vec2) ConvertUToF 259 + Store 252(dv) 260 + 265:262(f16vec2) Load 264(f16v) + 266:187(i16vec2) ConvertFToS 265 + Store 189(i16v) 266 + 267:262(f16vec2) Load 264(f16v) + 268:198(i16vec2) ConvertFToU 267 + Store 200(u16v) 268 + 269:187(i16vec2) Load 189(i16v) + 270:262(f16vec2) ConvertSToF 269 + Store 264(f16v) 270 + 271:198(i16vec2) Load 200(u16v) + 272:262(f16vec2) ConvertUToF 271 + Store 264(f16v) 272 + 277:274(i64vec2) Load 276(i64v) + 278:187(i16vec2) SConvert 277 + Store 189(i16v) 278 + 279:274(i64vec2) Load 276(i64v) + 280:187(i16vec2) SConvert 279 + 281:198(i16vec2) Bitcast 280 + Store 200(u16v) 281 + 282:187(i16vec2) Load 189(i16v) + 283:274(i64vec2) SConvert 282 + Store 276(i64v) 283 + 284:198(i16vec2) Load 200(u16v) + 287:286(i64vec2) UConvert 284 + 288:274(i64vec2) Bitcast 287 + Store 276(i64v) 288 + 291:286(i64vec2) Load 290(u64v) + 292:198(i16vec2) UConvert 291 + 293:187(i16vec2) Bitcast 292 + Store 189(i16v) 293 + 294:286(i64vec2) Load 290(u64v) + 295:198(i16vec2) UConvert 294 + Store 200(u16v) 295 + 296:187(i16vec2) Load 189(i16v) + 297:274(i64vec2) SConvert 296 + 298:286(i64vec2) Bitcast 297 + Store 290(u64v) 298 + 299:198(i16vec2) Load 200(u16v) + 300:286(i64vec2) UConvert 299 + Store 290(u64v) 300 + 301:198(i16vec2) Load 200(u16v) + 302:187(i16vec2) Bitcast 301 + Store 189(i16v) 302 + 303:187(i16vec2) Load 189(i16v) + 304:198(i16vec2) Bitcast 303 + Store 200(u16v) 304 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 305(i16v): 188(ptr) Variable Function + 311(i16): 35(ptr) Variable Function + 319(u16v): 50(ptr) Variable Function + 321(u16): 15(ptr) Variable Function + 393(f16v): 392(ptr) Variable Function + 396(exp): 395(ptr) Variable Function + 418(packi): 158(ptr) Variable Function + 423(packu): 147(ptr) Variable Function + 432(packi64): 431(ptr) Variable Function + 441(packu64): 440(ptr) Variable Function + 450(bv): 449(ptr) Variable Function + 306:187(i16vec2) Load 305(i16v) + 307:187(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 306 + Store 305(i16v) 307 + 308:187(i16vec2) Load 305(i16v) + 309:187(i16vec2) ExtInst 1(GLSL.std.450) 7(SSign) 308 + Store 305(i16v) 309 + 310:187(i16vec2) Load 305(i16v) + 312: 17(int16_t) Load 311(i16) + 313:187(i16vec2) CompositeConstruct 312 312 + 314:187(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 310 313 + Store 305(i16v) 314 + 315:187(i16vec2) Load 305(i16v) + 318:187(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 315 317 + Store 305(i16v) 318 + 320: 49(i16vec3) Load 319(u16v) + 322: 14(int16_t) Load 321(u16) + 323: 49(i16vec3) CompositeConstruct 322 322 322 + 324: 49(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 320 323 + Store 319(u16v) 324 + 325: 49(i16vec3) Load 319(u16v) + 327: 49(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 325 326 + Store 319(u16v) 327 + 328:187(i16vec2) Load 305(i16v) + 329: 17(int16_t) Load 311(i16) + 330:187(i16vec2) CompositeConstruct 329 329 + 331:187(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 328 330 + Store 305(i16v) 331 + 332:187(i16vec2) Load 305(i16v) + 333:187(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 332 317 + Store 305(i16v) 333 + 334: 49(i16vec3) Load 319(u16v) + 335: 14(int16_t) Load 321(u16) + 336: 49(i16vec3) CompositeConstruct 335 335 335 + 337: 49(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 334 336 + Store 319(u16v) 337 + 338: 49(i16vec3) Load 319(u16v) + 339: 49(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 338 326 + Store 319(u16v) 339 + 340:187(i16vec2) Load 305(i16v) + 341: 17(int16_t) Load 311(i16) + 342: 17(int16_t) SNegate 341 + 343: 17(int16_t) Load 311(i16) + 344:187(i16vec2) CompositeConstruct 342 342 + 345:187(i16vec2) CompositeConstruct 343 343 + 346:187(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 340 344 345 + Store 305(i16v) 346 + 347:187(i16vec2) Load 305(i16v) + 348:187(i16vec2) Load 305(i16v) + 349:187(i16vec2) SNegate 348 + 350:187(i16vec2) Load 305(i16v) + 351:187(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 347 349 350 + Store 305(i16v) 351 + 352: 49(i16vec3) Load 319(u16v) + 353: 14(int16_t) Load 321(u16) + 354: 14(int16_t) SNegate 353 + 355: 14(int16_t) Load 321(u16) + 356: 49(i16vec3) CompositeConstruct 354 354 354 + 357: 49(i16vec3) CompositeConstruct 355 355 355 + 358: 49(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 352 356 357 + Store 319(u16v) 358 + 359: 49(i16vec3) Load 319(u16v) + 360: 49(i16vec3) Load 319(u16v) + 361: 49(i16vec3) SNegate 360 + 362: 49(i16vec3) Load 319(u16v) + 363: 49(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 359 361 362 + Store 319(u16v) 363 + 364: 35(ptr) AccessChain 305(i16v) 128 + 365: 17(int16_t) Load 364 + 366: 35(ptr) AccessChain 305(i16v) 111 + 367: 17(int16_t) Load 366 + 369: 17(int16_t) Select 368 367 365 + Store 311(i16) 369 + 370: 17(int16_t) Load 311(i16) + 371:187(i16vec2) CompositeConstruct 370 370 + 372: 17(int16_t) Load 311(i16) + 373: 17(int16_t) SNegate 372 + 374:187(i16vec2) CompositeConstruct 373 373 + 377:187(i16vec2) Select 376 374 371 + Store 305(i16v) 377 + 378: 15(ptr) AccessChain 319(u16v) 128 + 379: 14(int16_t) Load 378 + 380: 15(ptr) AccessChain 319(u16v) 111 + 381: 14(int16_t) Load 380 + 382: 14(int16_t) Select 368 381 379 + Store 321(u16) 382 + 383: 14(int16_t) Load 321(u16) + 384: 49(i16vec3) CompositeConstruct 383 383 383 + 385: 14(int16_t) Load 321(u16) + 386: 14(int16_t) SNegate 385 + 387: 49(i16vec3) CompositeConstruct 386 386 386 + 390: 49(i16vec3) Select 389 387 384 + Store 319(u16v) 390 + 394:391(f16vec3) Load 393(f16v) + 398:397(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 394 + 399: 54(i16vec3) CompositeExtract 398 1 + Store 396(exp) 399 + 400:391(f16vec3) CompositeExtract 398 0 + Store 393(f16v) 400 + 401:391(f16vec3) Load 393(f16v) + 402: 54(i16vec3) Load 396(exp) + 403:391(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 401 402 + Store 393(f16v) 403 + 404:391(f16vec3) Load 393(f16v) + 405:262(f16vec2) VectorShuffle 404 404 0 1 + 406:187(i16vec2) Bitcast 405 + Store 305(i16v) 406 + 408: 407(ptr) AccessChain 393(f16v) 117 + 409:261(float16_t) Load 408 + 410: 14(int16_t) Bitcast 409 + 411: 15(ptr) AccessChain 319(u16v) 128 + Store 411 410 + 412:187(i16vec2) Load 305(i16v) + 413:262(f16vec2) Bitcast 412 + 414:391(f16vec3) Load 393(f16v) + 415:391(f16vec3) VectorShuffle 414 413 3 4 2 + Store 393(f16v) 415 + 416: 49(i16vec3) Load 319(u16v) + 417:391(f16vec3) Bitcast 416 + Store 393(f16v) 417 + 419:187(i16vec2) Load 305(i16v) + 420: 28(int) Bitcast 419 + Store 418(packi) 420 + 421: 28(int) Load 418(packi) + 422:187(i16vec2) Bitcast 421 + Store 305(i16v) 422 + 424: 49(i16vec3) Load 319(u16v) + 425:198(i16vec2) VectorShuffle 424 424 0 1 + 426: 18(int) Bitcast 425 + Store 423(packu) 426 + 427: 18(int) Load 423(packu) + 428:198(i16vec2) Bitcast 427 + 429: 49(i16vec3) Load 319(u16v) + 430: 49(i16vec3) VectorShuffle 429 428 3 4 2 + Store 319(u16v) 430 + 433: 17(int16_t) Load 311(i16) + 435:434(i16vec4) CompositeConstruct 433 433 433 433 + 436:273(int64_t) Bitcast 435 + Store 432(packi64) 436 + 437:273(int64_t) Load 432(packi64) + 438:434(i16vec4) Bitcast 437 + 439:187(i16vec2) VectorShuffle 438 438 0 1 + Store 305(i16v) 439 + 442: 14(int16_t) Load 321(u16) + 444:443(i16vec4) CompositeConstruct 442 442 442 442 + 445:285(int64_t) Bitcast 444 + Store 441(packu64) 445 + 446:285(int64_t) Load 441(packu64) + 447:443(i16vec4) Bitcast 446 + 448: 49(i16vec3) VectorShuffle 447 447 0 1 2 + Store 319(u16v) 448 + 451: 49(i16vec3) Load 319(u16v) + 452: 14(int16_t) Load 321(u16) + 453: 49(i16vec3) CompositeConstruct 452 452 452 + 454: 388(bvec3) ULessThan 451 453 + Store 450(bv) 454 + 455:187(i16vec2) Load 305(i16v) + 456: 17(int16_t) Load 311(i16) + 457:187(i16vec2) CompositeConstruct 456 456 + 458: 190(bvec2) SLessThan 455 457 + 459: 388(bvec3) Load 450(bv) + 460: 388(bvec3) VectorShuffle 459 458 3 4 2 + Store 450(bv) 460 + 461: 49(i16vec3) Load 319(u16v) + 462: 14(int16_t) Load 321(u16) + 463: 49(i16vec3) CompositeConstruct 462 462 462 + 464: 388(bvec3) ULessThanEqual 461 463 + Store 450(bv) 464 + 465:187(i16vec2) Load 305(i16v) + 466: 17(int16_t) Load 311(i16) + 467:187(i16vec2) CompositeConstruct 466 466 + 468: 190(bvec2) SLessThanEqual 465 467 + 469: 388(bvec3) Load 450(bv) + 470: 388(bvec3) VectorShuffle 469 468 3 4 2 + Store 450(bv) 470 + 471: 49(i16vec3) Load 319(u16v) + 472: 14(int16_t) Load 321(u16) + 473: 49(i16vec3) CompositeConstruct 472 472 472 + 474: 388(bvec3) UGreaterThan 471 473 + Store 450(bv) 474 + 475:187(i16vec2) Load 305(i16v) + 476: 17(int16_t) Load 311(i16) + 477:187(i16vec2) CompositeConstruct 476 476 + 478: 190(bvec2) SGreaterThan 475 477 + 479: 388(bvec3) Load 450(bv) + 480: 388(bvec3) VectorShuffle 479 478 3 4 2 + Store 450(bv) 480 + 481: 49(i16vec3) Load 319(u16v) + 482: 14(int16_t) Load 321(u16) + 483: 49(i16vec3) CompositeConstruct 482 482 482 + 484: 388(bvec3) UGreaterThanEqual 481 483 + Store 450(bv) 484 + 485:187(i16vec2) Load 305(i16v) + 486: 17(int16_t) Load 311(i16) + 487:187(i16vec2) CompositeConstruct 486 486 + 488: 190(bvec2) SGreaterThanEqual 485 487 + 489: 388(bvec3) Load 450(bv) + 490: 388(bvec3) VectorShuffle 489 488 3 4 2 + Store 450(bv) 490 + 491: 49(i16vec3) Load 319(u16v) + 492: 14(int16_t) Load 321(u16) + 493: 49(i16vec3) CompositeConstruct 492 492 492 + 494: 388(bvec3) IEqual 491 493 + Store 450(bv) 494 + 495:187(i16vec2) Load 305(i16v) + 496: 17(int16_t) Load 311(i16) + 497:187(i16vec2) CompositeConstruct 496 496 + 498: 190(bvec2) IEqual 495 497 + 499: 388(bvec3) Load 450(bv) + 500: 388(bvec3) VectorShuffle 499 498 3 4 2 + Store 450(bv) 500 + 501: 49(i16vec3) Load 319(u16v) + 502: 14(int16_t) Load 321(u16) + 503: 49(i16vec3) CompositeConstruct 502 502 502 + 504: 388(bvec3) INotEqual 501 503 + Store 450(bv) 504 + 505:187(i16vec2) Load 305(i16v) + 506: 17(int16_t) Load 311(i16) + 507:187(i16vec2) CompositeConstruct 506 506 + 508: 190(bvec2) INotEqual 505 507 + 509: 388(bvec3) Load 450(bv) + 510: 388(bvec3) VectorShuffle 509 508 3 4 2 + Store 450(bv) 510 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.int16.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int16.frag.out new file mode 100644 index 0000000000..84128ab483 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.int16.frag.out @@ -0,0 +1,744 @@ +spv.int16.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 523 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + Capability StorageUniform16 + Extension "SPV_AMD_gpu_shader_half_float" + Extension "SPV_AMD_gpu_shader_int16" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "typeCast16(" + Name 10 "operators(" + Name 12 "builtinFuncs(" + Name 16 "i16" + Name 24 "Uniforms" + MemberName 24(Uniforms) 0 "index" + Name 26 "" + Name 33 "indexable" + Name 38 "u16" + Name 46 "indexable" + Name 51 "i32v" + Name 54 "i16v" + Name 59 "u16v" + Name 67 "u32v" + Name 74 "i64v" + Name 80 "u64v" + Name 94 "f16v" + Name 100 "f32v" + Name 106 "f64v" + Name 154 "i8v" + Name 163 "u8v" + Name 176 "bv" + Name 195 "u16v" + Name 200 "i16" + Name 220 "i" + Name 227 "uv" + Name 243 "i64" + Name 281 "b" + Name 343 "i16v" + Name 346 "i16" + Name 356 "u16v" + Name 358 "u16" + Name 428 "i32" + Name 431 "i64" + Name 434 "i16v4" + Name 437 "u32" + Name 438 "u16v2" + Name 442 "u64" + Name 445 "u16v4" + Name 457 "bv" + Name 518 "Block" + MemberName 518(Block) 0 "i16" + MemberName 518(Block) 1 "i16v2" + MemberName 518(Block) 2 "i16v3" + MemberName 518(Block) 3 "i16v4" + MemberName 518(Block) 4 "u16" + MemberName 518(Block) 5 "u16v2" + MemberName 518(Block) 6 "u16v3" + MemberName 518(Block) 7 "u16v4" + Name 520 "block" + Name 521 "si16" + Name 522 "su16" + MemberDecorate 24(Uniforms) 0 Offset 0 + Decorate 24(Uniforms) Block + Decorate 26 DescriptorSet 0 + Decorate 26 Binding 0 + MemberDecorate 518(Block) 0 Offset 0 + MemberDecorate 518(Block) 1 Offset 4 + MemberDecorate 518(Block) 2 Offset 8 + MemberDecorate 518(Block) 3 Offset 16 + MemberDecorate 518(Block) 4 Offset 24 + MemberDecorate 518(Block) 5 Offset 28 + MemberDecorate 518(Block) 6 Offset 32 + MemberDecorate 518(Block) 7 Offset 40 + Decorate 518(Block) Block + Decorate 520(block) DescriptorSet 0 + Decorate 520(block) Binding 1 + Decorate 521(si16) SpecId 100 + Decorate 522(su16) SpecId 101 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 16 1 + 15: TypePointer Function 14(int16_t) + 17: TypeInt 32 0 + 18: 17(int) Constant 3 + 19: TypeArray 14(int16_t) 18 + 20: 14(int16_t) Constant 4294962927 + 21: 14(int16_t) Constant 4294967295 + 22: 14(int16_t) Constant 16384 + 23: 19 ConstantComposite 20 21 22 + 24(Uniforms): TypeStruct 17(int) + 25: TypePointer Uniform 24(Uniforms) + 26: 25(ptr) Variable Uniform + 27: TypeInt 32 1 + 28: 27(int) Constant 0 + 29: TypePointer Uniform 17(int) + 32: TypePointer Function 19 + 36: TypeInt 16 0 + 37: TypePointer Function 36(int16_t) + 39: TypeArray 36(int16_t) 18 + 40: 36(int16_t) Constant 65535 + 41: 36(int16_t) Constant 32767 + 42: 39 ConstantComposite 40 40 41 + 45: TypePointer Function 39 + 49: TypeVector 27(int) 2 + 50: TypePointer Function 49(ivec2) + 52: TypeVector 14(int16_t) 2 + 53: TypePointer Function 52(i16vec2) + 57: TypeVector 36(int16_t) 2 + 58: TypePointer Function 57(i16vec2) + 61: TypeVector 17(int) 2 + 66: TypePointer Function 61(ivec2) + 71: TypeInt 64 1 + 72: TypeVector 71(int64_t) 2 + 73: TypePointer Function 72(i64vec2) + 77: TypeInt 64 0 + 78: TypeVector 77(int64_t) 2 + 79: TypePointer Function 78(i64vec2) + 91: TypeFloat 16 + 92: TypeVector 91(float16_t) 2 + 93: TypePointer Function 92(f16vec2) + 97: TypeFloat 32 + 98: TypeVector 97(float) 2 + 99: TypePointer Function 98(fvec2) + 103: TypeFloat 64 + 104: TypeVector 103(float64_t) 2 + 105: TypePointer Function 104(f64vec2) + 151: TypeInt 8 1 + 152: TypeVector 151(int8_t) 2 + 153: TypePointer Function 152(i8vec2) + 158: TypeInt 8 0 + 159: TypeVector 158(int8_t) 2 + 162: TypePointer Function 159(i8vec2) + 173: TypeBool + 174: TypeVector 173(bool) 2 + 175: TypePointer Function 174(bvec2) + 178: 14(int16_t) Constant 0 + 179: 14(int16_t) Constant 1 + 180: 52(i16vec2) ConstantComposite 178 178 + 181: 52(i16vec2) ConstantComposite 179 179 + 184: 36(int16_t) Constant 0 + 185: 36(int16_t) Constant 1 + 186: 57(i16vec2) ConstantComposite 184 184 + 187: 57(i16vec2) ConstantComposite 185 185 + 193: TypeVector 36(int16_t) 3 + 194: TypePointer Function 193(i16vec3) + 197: TypeVector 14(int16_t) 3 + 219: TypePointer Function 27(int) + 225: TypeVector 17(int) 3 + 226: TypePointer Function 225(ivec3) + 242: TypePointer Function 71(int64_t) + 264: 17(int) Constant 1 + 270: 17(int) Constant 2 + 276: TypeVector 27(int) 3 + 280: TypePointer Function 173(bool) + 282: 17(int) Constant 0 + 296: TypePointer Function 17(int) + 354: 52(i16vec2) ConstantComposite 21 21 + 363:193(i16vec3) ConstantComposite 184 184 184 + 405: 173(bool) ConstantTrue + 412: 173(bool) ConstantFalse + 413: 174(bvec2) ConstantComposite 412 412 + 425: TypeVector 173(bool) 3 + 426: 425(bvec3) ConstantComposite 412 412 412 + 432: TypeVector 14(int16_t) 4 + 433: TypePointer Function 432(i16vec4) + 441: TypePointer Function 77(int64_t) + 443: TypeVector 36(int16_t) 4 + 444: TypePointer Function 443(i16vec4) + 456: TypePointer Function 425(bvec3) + 518(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) + 519: TypePointer Uniform 518(Block) + 520(block): 519(ptr) Variable Uniform + 521(si16): 14(int16_t) SpecConstant 4294967286 + 522(su16): 36(int16_t) SpecConstant 20 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 16(i16): 15(ptr) Variable Function + 33(indexable): 32(ptr) Variable Function + 38(u16): 37(ptr) Variable Function + 46(indexable): 45(ptr) Variable Function + 30: 29(ptr) AccessChain 26 28 + 31: 17(int) Load 30 + Store 33(indexable) 23 + 34: 15(ptr) AccessChain 33(indexable) 31 + 35: 14(int16_t) Load 34 + Store 16(i16) 35 + 43: 29(ptr) AccessChain 26 28 + 44: 17(int) Load 43 + Store 46(indexable) 42 + 47: 37(ptr) AccessChain 46(indexable) 44 + 48: 36(int16_t) Load 47 + Store 38(u16) 48 + Return + FunctionEnd + 8(typeCast16(): 2 Function None 3 + 9: Label + 51(i32v): 50(ptr) Variable Function + 54(i16v): 53(ptr) Variable Function + 59(u16v): 58(ptr) Variable Function + 67(u32v): 66(ptr) Variable Function + 74(i64v): 73(ptr) Variable Function + 80(u64v): 79(ptr) Variable Function + 94(f16v): 93(ptr) Variable Function + 100(f32v): 99(ptr) Variable Function + 106(f64v): 105(ptr) Variable Function + 154(i8v): 153(ptr) Variable Function + 163(u8v): 162(ptr) Variable Function + 176(bv): 175(ptr) Variable Function + 55: 52(i16vec2) Load 54(i16v) + 56: 49(ivec2) SConvert 55 + Store 51(i32v) 56 + 60: 57(i16vec2) Load 59(u16v) + 62: 61(ivec2) UConvert 60 + 63: 49(ivec2) Bitcast 62 + Store 51(i32v) 63 + 64: 52(i16vec2) Load 54(i16v) + 65: 57(i16vec2) Bitcast 64 + Store 59(u16v) 65 + 68: 52(i16vec2) Load 54(i16v) + 69: 49(ivec2) SConvert 68 + 70: 61(ivec2) Bitcast 69 + Store 67(u32v) 70 + 75: 52(i16vec2) Load 54(i16v) + 76: 72(i64vec2) SConvert 75 + Store 74(i64v) 76 + 81: 52(i16vec2) Load 54(i16v) + 82: 72(i64vec2) SConvert 81 + 83: 78(i64vec2) Bitcast 82 + Store 80(u64v) 83 + 84: 57(i16vec2) Load 59(u16v) + 85: 61(ivec2) UConvert 84 + Store 67(u32v) 85 + 86: 57(i16vec2) Load 59(u16v) + 87: 78(i64vec2) UConvert 86 + 88: 72(i64vec2) Bitcast 87 + Store 74(i64v) 88 + 89: 57(i16vec2) Load 59(u16v) + 90: 78(i64vec2) UConvert 89 + Store 80(u64v) 90 + 95: 52(i16vec2) Load 54(i16v) + 96: 92(f16vec2) ConvertSToF 95 + Store 94(f16v) 96 + 101: 52(i16vec2) Load 54(i16v) + 102: 98(fvec2) ConvertSToF 101 + Store 100(f32v) 102 + 107: 52(i16vec2) Load 54(i16v) + 108:104(f64vec2) ConvertSToF 107 + Store 106(f64v) 108 + 109: 57(i16vec2) Load 59(u16v) + 110: 92(f16vec2) ConvertUToF 109 + Store 94(f16v) 110 + 111: 57(i16vec2) Load 59(u16v) + 112: 98(fvec2) ConvertUToF 111 + Store 100(f32v) 112 + 113: 57(i16vec2) Load 59(u16v) + 114:104(f64vec2) ConvertUToF 113 + Store 106(f64v) 114 + 115: 52(i16vec2) Load 54(i16v) + 116: 49(ivec2) SConvert 115 + Store 51(i32v) 116 + 117: 57(i16vec2) Load 59(u16v) + 118: 61(ivec2) UConvert 117 + 119: 49(ivec2) Bitcast 118 + Store 51(i32v) 119 + 120: 52(i16vec2) Load 54(i16v) + 121: 57(i16vec2) Bitcast 120 + Store 59(u16v) 121 + 122: 52(i16vec2) Load 54(i16v) + 123: 49(ivec2) SConvert 122 + 124: 61(ivec2) Bitcast 123 + Store 67(u32v) 124 + 125: 52(i16vec2) Load 54(i16v) + 126: 72(i64vec2) SConvert 125 + Store 74(i64v) 126 + 127: 52(i16vec2) Load 54(i16v) + 128: 72(i64vec2) SConvert 127 + 129: 78(i64vec2) Bitcast 128 + Store 80(u64v) 129 + 130: 57(i16vec2) Load 59(u16v) + 131: 61(ivec2) UConvert 130 + Store 67(u32v) 131 + 132: 57(i16vec2) Load 59(u16v) + 133: 78(i64vec2) UConvert 132 + 134: 72(i64vec2) Bitcast 133 + Store 74(i64v) 134 + 135: 57(i16vec2) Load 59(u16v) + 136: 78(i64vec2) UConvert 135 + 137: 72(i64vec2) Bitcast 136 + 138: 78(i64vec2) Bitcast 137 + Store 80(u64v) 138 + 139: 52(i16vec2) Load 54(i16v) + 140: 92(f16vec2) ConvertSToF 139 + Store 94(f16v) 140 + 141: 52(i16vec2) Load 54(i16v) + 142: 98(fvec2) ConvertSToF 141 + Store 100(f32v) 142 + 143: 52(i16vec2) Load 54(i16v) + 144:104(f64vec2) ConvertSToF 143 + Store 106(f64v) 144 + 145: 57(i16vec2) Load 59(u16v) + 146: 92(f16vec2) ConvertUToF 145 + Store 94(f16v) 146 + 147: 57(i16vec2) Load 59(u16v) + 148: 98(fvec2) ConvertUToF 147 + Store 100(f32v) 148 + 149: 57(i16vec2) Load 59(u16v) + 150:104(f64vec2) ConvertUToF 149 + Store 106(f64v) 150 + 155: 52(i16vec2) Load 54(i16v) + 156: 152(i8vec2) SConvert 155 + Store 154(i8v) 156 + 157: 57(i16vec2) Load 59(u16v) + 160: 159(i8vec2) UConvert 157 + 161: 152(i8vec2) Bitcast 160 + Store 154(i8v) 161 + 164: 52(i16vec2) Load 54(i16v) + 165: 152(i8vec2) SConvert 164 + 166: 159(i8vec2) Bitcast 165 + Store 163(u8v) 166 + 167: 57(i16vec2) Load 59(u16v) + 168: 159(i8vec2) UConvert 167 + Store 163(u8v) 168 + 169: 57(i16vec2) Load 59(u16v) + 170: 159(i8vec2) UConvert 169 + 171: 57(i16vec2) UConvert 170 + 172: 52(i16vec2) Bitcast 171 + Store 54(i16v) 172 + 177: 174(bvec2) Load 176(bv) + 182: 52(i16vec2) Select 177 181 180 + Store 54(i16v) 182 + 183: 174(bvec2) Load 176(bv) + 188: 57(i16vec2) Select 183 187 186 + Store 59(u16v) 188 + 189: 52(i16vec2) Load 54(i16v) + 190: 174(bvec2) INotEqual 189 186 + Store 176(bv) 190 + 191: 57(i16vec2) Load 59(u16v) + 192: 174(bvec2) INotEqual 191 186 + Store 176(bv) 192 + Return + FunctionEnd + 10(operators(): 2 Function None 3 + 11: Label + 195(u16v): 194(ptr) Variable Function + 200(i16): 15(ptr) Variable Function + 220(i): 219(ptr) Variable Function + 227(uv): 226(ptr) Variable Function + 243(i64): 242(ptr) Variable Function + 281(b): 280(ptr) Variable Function + 196:193(i16vec3) Load 195(u16v) + 198:197(i16vec3) CompositeConstruct 179 179 179 + 199:193(i16vec3) IAdd 196 198 + Store 195(u16v) 199 + 201: 14(int16_t) Load 200(i16) + 202: 14(int16_t) ISub 201 179 + Store 200(i16) 202 + 203: 14(int16_t) Load 200(i16) + 204: 14(int16_t) IAdd 203 179 + Store 200(i16) 204 + 205:193(i16vec3) Load 195(u16v) + 206:197(i16vec3) CompositeConstruct 179 179 179 + 207:193(i16vec3) ISub 205 206 + Store 195(u16v) 207 + 208:193(i16vec3) Load 195(u16v) + 209:193(i16vec3) Not 208 + Store 195(u16v) 209 + 210: 14(int16_t) Load 200(i16) + Store 200(i16) 210 + 211:193(i16vec3) Load 195(u16v) + 212:193(i16vec3) SNegate 211 + Store 195(u16v) 212 + 213: 14(int16_t) Load 200(i16) + 214: 14(int16_t) Load 200(i16) + 215: 14(int16_t) IAdd 214 213 + Store 200(i16) 215 + 216:193(i16vec3) Load 195(u16v) + 217:193(i16vec3) Load 195(u16v) + 218:193(i16vec3) ISub 217 216 + Store 195(u16v) 218 + 221: 14(int16_t) Load 200(i16) + 222: 27(int) SConvert 221 + 223: 27(int) Load 220(i) + 224: 27(int) IMul 223 222 + Store 220(i) 224 + 228:193(i16vec3) Load 195(u16v) + 229: 225(ivec3) UConvert 228 + 230: 225(ivec3) Load 227(uv) + 231: 225(ivec3) UDiv 230 229 + Store 227(uv) 231 + 232: 14(int16_t) Load 200(i16) + 233: 27(int) SConvert 232 + 234: 17(int) Bitcast 233 + 235: 225(ivec3) Load 227(uv) + 236: 225(ivec3) CompositeConstruct 234 234 234 + 237: 225(ivec3) UMod 235 236 + Store 227(uv) 237 + 238:193(i16vec3) Load 195(u16v) + 239: 225(ivec3) UConvert 238 + 240: 225(ivec3) Load 227(uv) + 241: 225(ivec3) IAdd 239 240 + Store 227(uv) 241 + 244: 14(int16_t) Load 200(i16) + 245: 71(int64_t) SConvert 244 + 246: 71(int64_t) Load 243(i64) + 247: 71(int64_t) ISub 245 246 + Store 243(i64) 247 + 248:193(i16vec3) Load 195(u16v) + 249: 225(ivec3) UConvert 248 + 250: 225(ivec3) Load 227(uv) + 251: 225(ivec3) IMul 249 250 + Store 227(uv) 251 + 252: 14(int16_t) Load 200(i16) + 253: 71(int64_t) SConvert 252 + 254: 71(int64_t) Load 243(i64) + 255: 71(int64_t) IMul 253 254 + Store 243(i64) 255 + 256: 14(int16_t) Load 200(i16) + 257: 27(int) SConvert 256 + 258: 27(int) Load 220(i) + 259: 27(int) SMod 257 258 + Store 220(i) 259 + 260: 14(int16_t) Load 200(i16) + 261:193(i16vec3) Load 195(u16v) + 262:197(i16vec3) CompositeConstruct 260 260 260 + 263:193(i16vec3) ShiftLeftLogical 261 262 + Store 195(u16v) 263 + 265: 37(ptr) AccessChain 195(u16v) 264 + 266: 36(int16_t) Load 265 + 267: 14(int16_t) Load 200(i16) + 268: 14(int16_t) ShiftRightArithmetic 267 266 + Store 200(i16) 268 + 269: 14(int16_t) Load 200(i16) + 271: 37(ptr) AccessChain 195(u16v) 270 + 272: 36(int16_t) Load 271 + 273: 14(int16_t) ShiftLeftLogical 269 272 + Store 200(i16) 273 + 274:193(i16vec3) Load 195(u16v) + 275: 27(int) Load 220(i) + 277: 276(ivec3) CompositeConstruct 275 275 275 + 278:193(i16vec3) ShiftLeftLogical 274 277 + 279: 225(ivec3) UConvert 278 + Store 227(uv) 279 + 283: 37(ptr) AccessChain 195(u16v) 282 + 284: 36(int16_t) Load 283 + 285: 14(int16_t) Load 200(i16) + 286: 36(int16_t) Bitcast 285 + 287: 173(bool) INotEqual 284 286 + Store 281(b) 287 + 288: 14(int16_t) Load 200(i16) + 289: 36(int16_t) Bitcast 288 + 290: 37(ptr) AccessChain 195(u16v) 282 + 291: 36(int16_t) Load 290 + 292: 173(bool) IEqual 289 291 + Store 281(b) 292 + 293: 37(ptr) AccessChain 195(u16v) 282 + 294: 36(int16_t) Load 293 + 295: 17(int) UConvert 294 + 297: 296(ptr) AccessChain 227(uv) 264 + 298: 17(int) Load 297 + 299: 173(bool) UGreaterThan 295 298 + Store 281(b) 299 + 300: 14(int16_t) Load 200(i16) + 301: 27(int) SConvert 300 + 302: 27(int) Load 220(i) + 303: 173(bool) SLessThan 301 302 + Store 281(b) 303 + 304: 37(ptr) AccessChain 195(u16v) 264 + 305: 36(int16_t) Load 304 + 306: 17(int) UConvert 305 + 307: 296(ptr) AccessChain 227(uv) 282 + 308: 17(int) Load 307 + 309: 173(bool) UGreaterThanEqual 306 308 + Store 281(b) 309 + 310: 14(int16_t) Load 200(i16) + 311: 27(int) SConvert 310 + 312: 27(int) Load 220(i) + 313: 173(bool) SLessThanEqual 311 312 + Store 281(b) 313 + 314: 14(int16_t) Load 200(i16) + 315: 27(int) SConvert 314 + 316: 17(int) Bitcast 315 + 317: 225(ivec3) Load 227(uv) + 318: 225(ivec3) CompositeConstruct 316 316 316 + 319: 225(ivec3) BitwiseOr 317 318 + Store 227(uv) 319 + 320: 14(int16_t) Load 200(i16) + 321: 27(int) SConvert 320 + 322: 27(int) Load 220(i) + 323: 27(int) BitwiseOr 321 322 + Store 220(i) 323 + 324: 14(int16_t) Load 200(i16) + 325: 71(int64_t) SConvert 324 + 326: 71(int64_t) Load 243(i64) + 327: 71(int64_t) BitwiseAnd 326 325 + Store 243(i64) 327 + 328:193(i16vec3) Load 195(u16v) + 329: 225(ivec3) UConvert 328 + 330: 225(ivec3) Load 227(uv) + 331: 225(ivec3) BitwiseAnd 329 330 + Store 227(uv) 331 + 332: 14(int16_t) Load 200(i16) + 333: 27(int) SConvert 332 + 334: 17(int) Bitcast 333 + 335: 225(ivec3) Load 227(uv) + 336: 225(ivec3) CompositeConstruct 334 334 334 + 337: 225(ivec3) BitwiseXor 335 336 + Store 227(uv) 337 + 338:193(i16vec3) Load 195(u16v) + 339: 14(int16_t) Load 200(i16) + 340: 36(int16_t) Bitcast 339 + 341:193(i16vec3) CompositeConstruct 340 340 340 + 342:193(i16vec3) BitwiseXor 338 341 + Store 195(u16v) 342 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 343(i16v): 53(ptr) Variable Function + 346(i16): 15(ptr) Variable Function + 356(u16v): 194(ptr) Variable Function + 358(u16): 37(ptr) Variable Function + 428(i32): 219(ptr) Variable Function + 431(i64): 242(ptr) Variable Function + 434(i16v4): 433(ptr) Variable Function + 437(u32): 296(ptr) Variable Function + 438(u16v2): 58(ptr) Variable Function + 442(u64): 441(ptr) Variable Function + 445(u16v4): 444(ptr) Variable Function + 457(bv): 456(ptr) Variable Function + 344: 52(i16vec2) Load 343(i16v) + 345: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344 + Store 343(i16v) 345 + 347: 14(int16_t) Load 346(i16) + 348: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 347 + Store 346(i16) 348 + 349: 52(i16vec2) Load 343(i16v) + 350: 14(int16_t) Load 346(i16) + 351: 52(i16vec2) CompositeConstruct 350 350 + 352: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351 + Store 343(i16v) 352 + 353: 52(i16vec2) Load 343(i16v) + 355: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354 + Store 343(i16v) 355 + 357:193(i16vec3) Load 356(u16v) + 359: 36(int16_t) Load 358(u16) + 360:193(i16vec3) CompositeConstruct 359 359 359 + 361:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360 + Store 356(u16v) 361 + 362:193(i16vec3) Load 356(u16v) + 364:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363 + Store 356(u16v) 364 + 365: 52(i16vec2) Load 343(i16v) + 366: 14(int16_t) Load 346(i16) + 367: 52(i16vec2) CompositeConstruct 366 366 + 368: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367 + Store 343(i16v) 368 + 369: 52(i16vec2) Load 343(i16v) + 370: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354 + Store 343(i16v) 370 + 371:193(i16vec3) Load 356(u16v) + 372: 36(int16_t) Load 358(u16) + 373:193(i16vec3) CompositeConstruct 372 372 372 + 374:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373 + Store 356(u16v) 374 + 375:193(i16vec3) Load 356(u16v) + 376:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363 + Store 356(u16v) 376 + 377: 52(i16vec2) Load 343(i16v) + 378: 14(int16_t) Load 346(i16) + 379: 14(int16_t) SNegate 378 + 380: 14(int16_t) Load 346(i16) + 381: 52(i16vec2) CompositeConstruct 379 379 + 382: 52(i16vec2) CompositeConstruct 380 380 + 383: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382 + Store 343(i16v) 383 + 384: 52(i16vec2) Load 343(i16v) + 385: 52(i16vec2) Load 343(i16v) + 386: 52(i16vec2) SNegate 385 + 387: 52(i16vec2) Load 343(i16v) + 388: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387 + Store 343(i16v) 388 + 389:193(i16vec3) Load 356(u16v) + 390: 36(int16_t) Load 358(u16) + 391: 36(int16_t) SNegate 390 + 392: 36(int16_t) Load 358(u16) + 393:193(i16vec3) CompositeConstruct 391 391 391 + 394:193(i16vec3) CompositeConstruct 392 392 392 + 395:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394 + Store 356(u16v) 395 + 396:193(i16vec3) Load 356(u16v) + 397:193(i16vec3) Load 356(u16v) + 398:193(i16vec3) SNegate 397 + 399:193(i16vec3) Load 356(u16v) + 400:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399 + Store 356(u16v) 400 + 401: 15(ptr) AccessChain 343(i16v) 282 + 402: 14(int16_t) Load 401 + 403: 15(ptr) AccessChain 343(i16v) 264 + 404: 14(int16_t) Load 403 + 406: 14(int16_t) Select 405 404 402 + Store 346(i16) 406 + 407: 14(int16_t) Load 346(i16) + 408: 52(i16vec2) CompositeConstruct 407 407 + 409: 14(int16_t) Load 346(i16) + 410: 14(int16_t) SNegate 409 + 411: 52(i16vec2) CompositeConstruct 410 410 + 414: 52(i16vec2) Select 413 411 408 + Store 343(i16v) 414 + 415: 37(ptr) AccessChain 356(u16v) 282 + 416: 36(int16_t) Load 415 + 417: 37(ptr) AccessChain 356(u16v) 264 + 418: 36(int16_t) Load 417 + 419: 36(int16_t) Select 405 418 416 + Store 358(u16) 419 + 420: 36(int16_t) Load 358(u16) + 421:193(i16vec3) CompositeConstruct 420 420 420 + 422: 36(int16_t) Load 358(u16) + 423: 36(int16_t) SNegate 422 + 424:193(i16vec3) CompositeConstruct 423 423 423 + 427:193(i16vec3) Select 426 424 421 + Store 356(u16v) 427 + 429: 52(i16vec2) Load 343(i16v) + 430: 27(int) Bitcast 429 + Store 428(i32) 430 + 435:432(i16vec4) Load 434(i16v4) + 436: 71(int64_t) Bitcast 435 + Store 431(i64) 436 + 439: 57(i16vec2) Load 438(u16v2) + 440: 17(int) Bitcast 439 + Store 437(u32) 440 + 446:443(i16vec4) Load 445(u16v4) + 447: 77(int64_t) Bitcast 446 + Store 442(u64) 447 + 448: 27(int) Load 428(i32) + 449: 52(i16vec2) Bitcast 448 + Store 343(i16v) 449 + 450: 71(int64_t) Load 431(i64) + 451:432(i16vec4) Bitcast 450 + Store 434(i16v4) 451 + 452: 17(int) Load 437(u32) + 453: 57(i16vec2) Bitcast 452 + Store 438(u16v2) 453 + 454: 77(int64_t) Load 442(u64) + 455:443(i16vec4) Bitcast 454 + Store 445(u16v4) 455 + 458:193(i16vec3) Load 356(u16v) + 459: 36(int16_t) Load 358(u16) + 460:193(i16vec3) CompositeConstruct 459 459 459 + 461: 425(bvec3) ULessThan 458 460 + Store 457(bv) 461 + 462: 52(i16vec2) Load 343(i16v) + 463: 14(int16_t) Load 346(i16) + 464: 52(i16vec2) CompositeConstruct 463 463 + 465: 174(bvec2) SLessThan 462 464 + 466: 425(bvec3) Load 457(bv) + 467: 425(bvec3) VectorShuffle 466 465 3 4 2 + Store 457(bv) 467 + 468:193(i16vec3) Load 356(u16v) + 469: 36(int16_t) Load 358(u16) + 470:193(i16vec3) CompositeConstruct 469 469 469 + 471: 425(bvec3) ULessThanEqual 468 470 + Store 457(bv) 471 + 472: 52(i16vec2) Load 343(i16v) + 473: 14(int16_t) Load 346(i16) + 474: 52(i16vec2) CompositeConstruct 473 473 + 475: 174(bvec2) SLessThanEqual 472 474 + 476: 425(bvec3) Load 457(bv) + 477: 425(bvec3) VectorShuffle 476 475 3 4 2 + Store 457(bv) 477 + 478:193(i16vec3) Load 356(u16v) + 479: 36(int16_t) Load 358(u16) + 480:193(i16vec3) CompositeConstruct 479 479 479 + 481: 425(bvec3) UGreaterThan 478 480 + Store 457(bv) 481 + 482: 52(i16vec2) Load 343(i16v) + 483: 14(int16_t) Load 346(i16) + 484: 52(i16vec2) CompositeConstruct 483 483 + 485: 174(bvec2) SGreaterThan 482 484 + 486: 425(bvec3) Load 457(bv) + 487: 425(bvec3) VectorShuffle 486 485 3 4 2 + Store 457(bv) 487 + 488:193(i16vec3) Load 356(u16v) + 489: 36(int16_t) Load 358(u16) + 490:193(i16vec3) CompositeConstruct 489 489 489 + 491: 425(bvec3) UGreaterThanEqual 488 490 + Store 457(bv) 491 + 492: 52(i16vec2) Load 343(i16v) + 493: 14(int16_t) Load 346(i16) + 494: 52(i16vec2) CompositeConstruct 493 493 + 495: 174(bvec2) SGreaterThanEqual 492 494 + 496: 425(bvec3) Load 457(bv) + 497: 425(bvec3) VectorShuffle 496 495 3 4 2 + Store 457(bv) 497 + 498:193(i16vec3) Load 356(u16v) + 499: 36(int16_t) Load 358(u16) + 500:193(i16vec3) CompositeConstruct 499 499 499 + 501: 425(bvec3) IEqual 498 500 + Store 457(bv) 501 + 502: 52(i16vec2) Load 343(i16v) + 503: 14(int16_t) Load 346(i16) + 504: 52(i16vec2) CompositeConstruct 503 503 + 505: 174(bvec2) IEqual 502 504 + 506: 425(bvec3) Load 457(bv) + 507: 425(bvec3) VectorShuffle 506 505 3 4 2 + Store 457(bv) 507 + 508:193(i16vec3) Load 356(u16v) + 509: 36(int16_t) Load 358(u16) + 510:193(i16vec3) CompositeConstruct 509 509 509 + 511: 425(bvec3) INotEqual 508 510 + Store 457(bv) 511 + 512: 52(i16vec2) Load 343(i16v) + 513: 14(int16_t) Load 346(i16) + 514: 52(i16vec2) CompositeConstruct 513 513 + 515: 174(bvec2) INotEqual 512 514 + 516: 425(bvec3) Load 457(bv) + 517: 425(bvec3) VectorShuffle 516 515 3 4 2 + Store 457(bv) 517 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.int32.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int32.frag.out new file mode 100644 index 0000000000..d72de0debc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.int32.frag.out @@ -0,0 +1,712 @@ +spv.int32.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 493 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "typeCast32(" + Name 10 "operators(" + Name 12 "builtinFuncs(" + Name 16 "u32Max" + Name 20 "i32" + Name 27 "Uniforms" + MemberName 27(Uniforms) 0 "index" + Name 29 "" + Name 35 "indexable" + Name 39 "u32" + Name 46 "indexable" + Name 51 "u32v" + Name 54 "i32v" + Name 60 "i64v" + Name 66 "u64v" + Name 78 "f32v" + Name 84 "f64v" + Name 94 "i8v" + Name 105 "i16v" + Name 125 "u8v" + Name 132 "u16v" + Name 152 "f16v" + Name 168 "bv" + Name 186 "u32v" + Name 191 "i32" + Name 210 "i" + Name 214 "uv" + Name 227 "i64" + Name 260 "b" + Name 312 "i32v" + Name 315 "i32" + Name 325 "u32v" + Name 327 "u32" + Name 399 "i8v4" + Name 402 "i16v2" + Name 407 "u8v4" + Name 410 "u16v2" + Name 413 "i64" + Name 416 "u32v2" + Name 418 "u64" + Name 422 "bv" + Name 485 "Block" + MemberName 485(Block) 0 "i32" + MemberName 485(Block) 1 "i32v2" + MemberName 485(Block) 2 "i32v3" + MemberName 485(Block) 3 "i32v4" + MemberName 485(Block) 4 "u32" + MemberName 485(Block) 5 "u32v2" + MemberName 485(Block) 6 "u32v3" + MemberName 485(Block) 7 "u32v4" + Name 487 "block" + Name 488 "si32" + Name 489 "su32" + Name 490 "si" + Name 491 "su" + Name 492 "sb" + MemberDecorate 27(Uniforms) 0 Offset 0 + Decorate 27(Uniforms) Block + Decorate 29 DescriptorSet 0 + Decorate 29 Binding 0 + MemberDecorate 485(Block) 0 Offset 0 + MemberDecorate 485(Block) 1 Offset 8 + MemberDecorate 485(Block) 2 Offset 16 + MemberDecorate 485(Block) 3 Offset 32 + MemberDecorate 485(Block) 4 Offset 48 + MemberDecorate 485(Block) 5 Offset 56 + MemberDecorate 485(Block) 6 Offset 64 + MemberDecorate 485(Block) 7 Offset 80 + Decorate 485(Block) Block + Decorate 487(block) DescriptorSet 0 + Decorate 487(block) Binding 1 + Decorate 488(si32) SpecId 100 + Decorate 489(su32) SpecId 101 + Decorate 490(si) SpecId 102 + Decorate 491(su) SpecId 103 + Decorate 492(sb) SpecId 104 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 32 0 + 15: TypePointer Private 14(int) + 16(u32Max): 15(ptr) Variable Private + 17: 14(int) Constant 4294967295 + 18: TypeInt 32 1 + 19: TypePointer Function 18(int) + 21: 14(int) Constant 3 + 22: TypeArray 18(int) 21 + 23: 18(int) Constant 4008636143 + 24: 18(int) Constant 4294967295 + 25: 18(int) Constant 536870912 + 26: 22 ConstantComposite 23 24 25 + 27(Uniforms): TypeStruct 14(int) + 28: TypePointer Uniform 27(Uniforms) + 29: 28(ptr) Variable Uniform + 30: 18(int) Constant 0 + 31: TypePointer Uniform 14(int) + 34: TypePointer Function 22 + 38: TypePointer Function 14(int) + 40: TypeArray 14(int) 21 + 41: 14(int) Constant 2147483647 + 42: 40 ConstantComposite 17 17 41 + 45: TypePointer Function 40 + 49: TypeVector 14(int) 2 + 50: TypePointer Function 49(ivec2) + 52: TypeVector 18(int) 2 + 53: TypePointer Function 52(ivec2) + 57: TypeInt 64 1 + 58: TypeVector 57(int64_t) 2 + 59: TypePointer Function 58(i64vec2) + 63: TypeInt 64 0 + 64: TypeVector 63(int64_t) 2 + 65: TypePointer Function 64(i64vec2) + 75: TypeFloat 32 + 76: TypeVector 75(float) 2 + 77: TypePointer Function 76(fvec2) + 81: TypeFloat 64 + 82: TypeVector 81(float64_t) 2 + 83: TypePointer Function 82(f64vec2) + 91: TypeInt 8 1 + 92: TypeVector 91(int8_t) 2 + 93: TypePointer Function 92(i8vec2) + 98: TypeInt 8 0 + 99: TypeVector 98(int8_t) 2 + 102: TypeInt 16 1 + 103: TypeVector 102(int16_t) 2 + 104: TypePointer Function 103(i16vec2) + 109: TypeInt 16 0 + 110: TypeVector 109(int16_t) 2 + 124: TypePointer Function 99(i8vec2) + 131: TypePointer Function 110(i16vec2) + 149: TypeFloat 16 + 150: TypeVector 149(float16_t) 2 + 151: TypePointer Function 150(f16vec2) + 165: TypeBool + 166: TypeVector 165(bool) 2 + 167: TypePointer Function 166(bvec2) + 170: 18(int) Constant 1 + 171: 52(ivec2) ConstantComposite 30 30 + 172: 52(ivec2) ConstantComposite 170 170 + 175: 14(int) Constant 0 + 176: 14(int) Constant 1 + 177: 49(ivec2) ConstantComposite 175 175 + 178: 49(ivec2) ConstantComposite 176 176 + 184: TypeVector 14(int) 3 + 185: TypePointer Function 184(ivec3) + 188: TypeVector 18(int) 3 + 226: TypePointer Function 57(int64_t) + 251: 14(int) Constant 2 + 259: TypePointer Function 165(bool) + 323: 52(ivec2) ConstantComposite 24 24 + 332: 184(ivec3) ConstantComposite 175 175 175 + 374: 165(bool) ConstantTrue + 381: 165(bool) ConstantFalse + 382: 166(bvec2) ConstantComposite 381 381 + 394: TypeVector 165(bool) 3 + 395: 394(bvec3) ConstantComposite 381 381 381 + 397: TypeVector 91(int8_t) 4 + 398: TypePointer Function 397(i8vec4) + 405: TypeVector 98(int8_t) 4 + 406: TypePointer Function 405(i8vec4) + 417: TypePointer Function 63(int64_t) + 421: TypePointer Function 394(bvec3) + 483: TypeVector 18(int) 4 + 484: TypeVector 14(int) 4 + 485(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 483(ivec4) 14(int) 49(ivec2) 184(ivec3) 484(ivec4) + 486: TypePointer Uniform 485(Block) + 487(block): 486(ptr) Variable Uniform + 488(si32): 18(int) SpecConstant 4294967286 + 489(su32): 14(int) SpecConstant 20 + 490(si): 18(int) SpecConstant 4294967291 + 491(su): 14(int) SpecConstant 4 + 492(sb): 165(bool) SpecConstantTrue + 4(main): 2 Function None 3 + 5: Label + Store 16(u32Max) 17 + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 20(i32): 19(ptr) Variable Function + 35(indexable): 34(ptr) Variable Function + 39(u32): 38(ptr) Variable Function + 46(indexable): 45(ptr) Variable Function + 32: 31(ptr) AccessChain 29 30 + 33: 14(int) Load 32 + Store 35(indexable) 26 + 36: 19(ptr) AccessChain 35(indexable) 33 + 37: 18(int) Load 36 + Store 20(i32) 37 + 43: 31(ptr) AccessChain 29 30 + 44: 14(int) Load 43 + Store 46(indexable) 42 + 47: 38(ptr) AccessChain 46(indexable) 44 + 48: 14(int) Load 47 + Store 39(u32) 48 + Return + FunctionEnd + 8(typeCast32(): 2 Function None 3 + 9: Label + 51(u32v): 50(ptr) Variable Function + 54(i32v): 53(ptr) Variable Function + 60(i64v): 59(ptr) Variable Function + 66(u64v): 65(ptr) Variable Function + 78(f32v): 77(ptr) Variable Function + 84(f64v): 83(ptr) Variable Function + 94(i8v): 93(ptr) Variable Function + 105(i16v): 104(ptr) Variable Function + 125(u8v): 124(ptr) Variable Function + 132(u16v): 131(ptr) Variable Function + 152(f16v): 151(ptr) Variable Function + 168(bv): 167(ptr) Variable Function + 55: 52(ivec2) Load 54(i32v) + 56: 49(ivec2) Bitcast 55 + Store 51(u32v) 56 + 61: 52(ivec2) Load 54(i32v) + 62: 58(i64vec2) SConvert 61 + Store 60(i64v) 62 + 67: 52(ivec2) Load 54(i32v) + 68: 58(i64vec2) SConvert 67 + 69: 64(i64vec2) Bitcast 68 + Store 66(u64v) 69 + 70: 49(ivec2) Load 51(u32v) + 71: 64(i64vec2) UConvert 70 + 72: 58(i64vec2) Bitcast 71 + Store 60(i64v) 72 + 73: 49(ivec2) Load 51(u32v) + 74: 64(i64vec2) UConvert 73 + Store 66(u64v) 74 + 79: 52(ivec2) Load 54(i32v) + 80: 76(fvec2) ConvertSToF 79 + Store 78(f32v) 80 + 85: 52(ivec2) Load 54(i32v) + 86: 82(f64vec2) ConvertSToF 85 + Store 84(f64v) 86 + 87: 49(ivec2) Load 51(u32v) + 88: 76(fvec2) ConvertUToF 87 + Store 78(f32v) 88 + 89: 49(ivec2) Load 51(u32v) + 90: 82(f64vec2) ConvertUToF 89 + Store 84(f64v) 90 + 95: 52(ivec2) Load 54(i32v) + 96: 92(i8vec2) SConvert 95 + Store 94(i8v) 96 + 97: 49(ivec2) Load 51(u32v) + 100: 99(i8vec2) UConvert 97 + 101: 92(i8vec2) Bitcast 100 + Store 94(i8v) 101 + 106: 52(ivec2) Load 54(i32v) + 107:103(i16vec2) SConvert 106 + Store 105(i16v) 107 + 108: 49(ivec2) Load 51(u32v) + 111:110(i16vec2) UConvert 108 + 112:103(i16vec2) Bitcast 111 + Store 105(i16v) 112 + 113: 52(ivec2) Load 54(i32v) + 114: 18(int) CompositeExtract 113 0 + 115: 18(int) CompositeExtract 113 1 + 116: 52(ivec2) CompositeConstruct 114 115 + Store 54(i32v) 116 + 117: 49(ivec2) Load 51(u32v) + 118: 52(ivec2) Bitcast 117 + Store 54(i32v) 118 + 119: 52(ivec2) Load 54(i32v) + 120: 58(i64vec2) SConvert 119 + Store 60(i64v) 120 + 121: 49(ivec2) Load 51(u32v) + 122: 64(i64vec2) UConvert 121 + 123: 58(i64vec2) Bitcast 122 + Store 60(i64v) 123 + 126: 52(ivec2) Load 54(i32v) + 127: 92(i8vec2) SConvert 126 + 128: 99(i8vec2) Bitcast 127 + Store 125(u8v) 128 + 129: 49(ivec2) Load 51(u32v) + 130: 99(i8vec2) UConvert 129 + Store 125(u8v) 130 + 133: 52(ivec2) Load 54(i32v) + 134:103(i16vec2) SConvert 133 + 135:110(i16vec2) Bitcast 134 + Store 132(u16v) 135 + 136: 49(ivec2) Load 51(u32v) + 137:110(i16vec2) UConvert 136 + Store 132(u16v) 137 + 138: 52(ivec2) Load 54(i32v) + 139: 49(ivec2) Bitcast 138 + Store 51(u32v) 139 + 140: 49(ivec2) Load 51(u32v) + 141: 14(int) CompositeExtract 140 0 + 142: 14(int) CompositeExtract 140 1 + 143: 49(ivec2) CompositeConstruct 141 142 + Store 51(u32v) 143 + 144: 52(ivec2) Load 54(i32v) + 145: 58(i64vec2) SConvert 144 + 146: 64(i64vec2) Bitcast 145 + Store 66(u64v) 146 + 147: 49(ivec2) Load 51(u32v) + 148: 64(i64vec2) UConvert 147 + Store 66(u64v) 148 + 153: 52(ivec2) Load 54(i32v) + 154:150(f16vec2) ConvertSToF 153 + Store 152(f16v) 154 + 155: 52(ivec2) Load 54(i32v) + 156: 76(fvec2) ConvertSToF 155 + Store 78(f32v) 156 + 157: 52(ivec2) Load 54(i32v) + 158: 82(f64vec2) ConvertSToF 157 + Store 84(f64v) 158 + 159: 49(ivec2) Load 51(u32v) + 160:150(f16vec2) ConvertUToF 159 + Store 152(f16v) 160 + 161: 49(ivec2) Load 51(u32v) + 162: 76(fvec2) ConvertUToF 161 + Store 78(f32v) 162 + 163: 49(ivec2) Load 51(u32v) + 164: 82(f64vec2) ConvertUToF 163 + Store 84(f64v) 164 + 169: 166(bvec2) Load 168(bv) + 173: 52(ivec2) Select 169 172 171 + Store 54(i32v) 173 + 174: 166(bvec2) Load 168(bv) + 179: 49(ivec2) Select 174 178 177 + Store 51(u32v) 179 + 180: 52(ivec2) Load 54(i32v) + 181: 166(bvec2) INotEqual 180 177 + Store 168(bv) 181 + 182: 49(ivec2) Load 51(u32v) + 183: 166(bvec2) INotEqual 182 177 + Store 168(bv) 183 + Return + FunctionEnd + 10(operators(): 2 Function None 3 + 11: Label + 186(u32v): 185(ptr) Variable Function + 191(i32): 19(ptr) Variable Function + 210(i): 19(ptr) Variable Function + 214(uv): 185(ptr) Variable Function + 227(i64): 226(ptr) Variable Function + 260(b): 259(ptr) Variable Function + 187: 184(ivec3) Load 186(u32v) + 189: 188(ivec3) CompositeConstruct 170 170 170 + 190: 184(ivec3) IAdd 187 189 + Store 186(u32v) 190 + 192: 18(int) Load 191(i32) + 193: 18(int) ISub 192 170 + Store 191(i32) 193 + 194: 18(int) Load 191(i32) + 195: 18(int) IAdd 194 170 + Store 191(i32) 195 + 196: 184(ivec3) Load 186(u32v) + 197: 188(ivec3) CompositeConstruct 170 170 170 + 198: 184(ivec3) ISub 196 197 + Store 186(u32v) 198 + 199: 184(ivec3) Load 186(u32v) + 200: 184(ivec3) Not 199 + Store 186(u32v) 200 + 201: 18(int) Load 191(i32) + Store 191(i32) 201 + 202: 184(ivec3) Load 186(u32v) + 203: 184(ivec3) SNegate 202 + Store 186(u32v) 203 + 204: 18(int) Load 191(i32) + 205: 18(int) Load 191(i32) + 206: 18(int) IAdd 205 204 + Store 191(i32) 206 + 207: 184(ivec3) Load 186(u32v) + 208: 184(ivec3) Load 186(u32v) + 209: 184(ivec3) ISub 208 207 + Store 186(u32v) 209 + 211: 18(int) Load 191(i32) + 212: 18(int) Load 210(i) + 213: 18(int) IMul 212 211 + Store 210(i) 213 + 215: 184(ivec3) Load 186(u32v) + 216: 184(ivec3) Load 214(uv) + 217: 184(ivec3) UDiv 216 215 + Store 214(uv) 217 + 218: 18(int) Load 191(i32) + 219: 14(int) Bitcast 218 + 220: 184(ivec3) Load 214(uv) + 221: 184(ivec3) CompositeConstruct 219 219 219 + 222: 184(ivec3) UMod 220 221 + Store 214(uv) 222 + 223: 184(ivec3) Load 186(u32v) + 224: 184(ivec3) Load 214(uv) + 225: 184(ivec3) IAdd 223 224 + Store 214(uv) 225 + 228: 18(int) Load 191(i32) + 229: 57(int64_t) SConvert 228 + 230: 57(int64_t) Load 227(i64) + 231: 57(int64_t) ISub 229 230 + Store 227(i64) 231 + 232: 184(ivec3) Load 186(u32v) + 233: 184(ivec3) Load 214(uv) + 234: 184(ivec3) IMul 232 233 + Store 214(uv) 234 + 235: 18(int) Load 191(i32) + 236: 57(int64_t) SConvert 235 + 237: 57(int64_t) Load 227(i64) + 238: 57(int64_t) IMul 236 237 + Store 227(i64) 238 + 239: 18(int) Load 191(i32) + 240: 18(int) Load 210(i) + 241: 18(int) SMod 239 240 + Store 210(i) 241 + 242: 18(int) Load 191(i32) + 243: 184(ivec3) Load 186(u32v) + 244: 188(ivec3) CompositeConstruct 242 242 242 + 245: 184(ivec3) ShiftLeftLogical 243 244 + Store 186(u32v) 245 + 246: 38(ptr) AccessChain 186(u32v) 176 + 247: 14(int) Load 246 + 248: 18(int) Load 191(i32) + 249: 18(int) ShiftRightArithmetic 248 247 + Store 191(i32) 249 + 250: 57(int64_t) Load 227(i64) + 252: 38(ptr) AccessChain 186(u32v) 251 + 253: 14(int) Load 252 + 254: 57(int64_t) ShiftLeftLogical 250 253 + Store 227(i64) 254 + 255: 184(ivec3) Load 186(u32v) + 256: 18(int) Load 210(i) + 257: 188(ivec3) CompositeConstruct 256 256 256 + 258: 184(ivec3) ShiftLeftLogical 255 257 + Store 214(uv) 258 + 261: 38(ptr) AccessChain 186(u32v) 175 + 262: 14(int) Load 261 + 263: 18(int) Load 191(i32) + 264: 14(int) Bitcast 263 + 265: 165(bool) INotEqual 262 264 + Store 260(b) 265 + 266: 18(int) Load 191(i32) + 267: 14(int) Bitcast 266 + 268: 38(ptr) AccessChain 186(u32v) 175 + 269: 14(int) Load 268 + 270: 165(bool) IEqual 267 269 + Store 260(b) 270 + 271: 38(ptr) AccessChain 186(u32v) 175 + 272: 14(int) Load 271 + 273: 38(ptr) AccessChain 214(uv) 176 + 274: 14(int) Load 273 + 275: 165(bool) UGreaterThan 272 274 + Store 260(b) 275 + 276: 18(int) Load 191(i32) + 277: 18(int) Load 210(i) + 278: 165(bool) SLessThan 276 277 + Store 260(b) 278 + 279: 38(ptr) AccessChain 186(u32v) 176 + 280: 14(int) Load 279 + 281: 38(ptr) AccessChain 214(uv) 175 + 282: 14(int) Load 281 + 283: 165(bool) UGreaterThanEqual 280 282 + Store 260(b) 283 + 284: 18(int) Load 191(i32) + 285: 18(int) Load 210(i) + 286: 165(bool) SLessThanEqual 284 285 + Store 260(b) 286 + 287: 18(int) Load 191(i32) + 288: 14(int) Bitcast 287 + 289: 184(ivec3) Load 214(uv) + 290: 184(ivec3) CompositeConstruct 288 288 288 + 291: 184(ivec3) BitwiseOr 289 290 + Store 214(uv) 291 + 292: 18(int) Load 191(i32) + 293: 18(int) Load 210(i) + 294: 18(int) BitwiseOr 292 293 + Store 210(i) 294 + 295: 18(int) Load 191(i32) + 296: 57(int64_t) SConvert 295 + 297: 57(int64_t) Load 227(i64) + 298: 57(int64_t) BitwiseAnd 297 296 + Store 227(i64) 298 + 299: 184(ivec3) Load 186(u32v) + 300: 184(ivec3) Load 214(uv) + 301: 184(ivec3) BitwiseAnd 299 300 + Store 214(uv) 301 + 302: 18(int) Load 191(i32) + 303: 14(int) Bitcast 302 + 304: 184(ivec3) Load 214(uv) + 305: 184(ivec3) CompositeConstruct 303 303 303 + 306: 184(ivec3) BitwiseXor 304 305 + Store 214(uv) 306 + 307: 184(ivec3) Load 186(u32v) + 308: 18(int) Load 191(i32) + 309: 14(int) Bitcast 308 + 310: 184(ivec3) CompositeConstruct 309 309 309 + 311: 184(ivec3) BitwiseXor 307 310 + Store 186(u32v) 311 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 312(i32v): 53(ptr) Variable Function + 315(i32): 19(ptr) Variable Function + 325(u32v): 185(ptr) Variable Function + 327(u32): 38(ptr) Variable Function + 399(i8v4): 398(ptr) Variable Function + 402(i16v2): 104(ptr) Variable Function + 407(u8v4): 406(ptr) Variable Function + 410(u16v2): 131(ptr) Variable Function + 413(i64): 226(ptr) Variable Function + 416(u32v2): 50(ptr) Variable Function + 418(u64): 417(ptr) Variable Function + 422(bv): 421(ptr) Variable Function + 313: 52(ivec2) Load 312(i32v) + 314: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 313 + Store 312(i32v) 314 + 316: 18(int) Load 315(i32) + 317: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 316 + Store 315(i32) 317 + 318: 52(ivec2) Load 312(i32v) + 319: 18(int) Load 315(i32) + 320: 52(ivec2) CompositeConstruct 319 319 + 321: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 318 320 + Store 312(i32v) 321 + 322: 52(ivec2) Load 312(i32v) + 324: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 322 323 + Store 312(i32v) 324 + 326: 184(ivec3) Load 325(u32v) + 328: 14(int) Load 327(u32) + 329: 184(ivec3) CompositeConstruct 328 328 328 + 330: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 326 329 + Store 325(u32v) 330 + 331: 184(ivec3) Load 325(u32v) + 333: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 331 332 + Store 325(u32v) 333 + 334: 52(ivec2) Load 312(i32v) + 335: 18(int) Load 315(i32) + 336: 52(ivec2) CompositeConstruct 335 335 + 337: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 334 336 + Store 312(i32v) 337 + 338: 52(ivec2) Load 312(i32v) + 339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 338 323 + Store 312(i32v) 339 + 340: 184(ivec3) Load 325(u32v) + 341: 14(int) Load 327(u32) + 342: 184(ivec3) CompositeConstruct 341 341 341 + 343: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 340 342 + Store 325(u32v) 343 + 344: 184(ivec3) Load 325(u32v) + 345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 344 332 + Store 325(u32v) 345 + 346: 52(ivec2) Load 312(i32v) + 347: 18(int) Load 315(i32) + 348: 18(int) SNegate 347 + 349: 18(int) Load 315(i32) + 350: 52(ivec2) CompositeConstruct 348 348 + 351: 52(ivec2) CompositeConstruct 349 349 + 352: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 346 350 351 + Store 312(i32v) 352 + 353: 52(ivec2) Load 312(i32v) + 354: 52(ivec2) Load 312(i32v) + 355: 52(ivec2) SNegate 354 + 356: 52(ivec2) Load 312(i32v) + 357: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 353 355 356 + Store 312(i32v) 357 + 358: 184(ivec3) Load 325(u32v) + 359: 14(int) Load 327(u32) + 360: 14(int) SNegate 359 + 361: 14(int) Load 327(u32) + 362: 184(ivec3) CompositeConstruct 360 360 360 + 363: 184(ivec3) CompositeConstruct 361 361 361 + 364: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 358 362 363 + Store 325(u32v) 364 + 365: 184(ivec3) Load 325(u32v) + 366: 184(ivec3) Load 325(u32v) + 367: 184(ivec3) SNegate 366 + 368: 184(ivec3) Load 325(u32v) + 369: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 365 367 368 + Store 325(u32v) 369 + 370: 19(ptr) AccessChain 312(i32v) 175 + 371: 18(int) Load 370 + 372: 19(ptr) AccessChain 312(i32v) 176 + 373: 18(int) Load 372 + 375: 18(int) Select 374 373 371 + Store 315(i32) 375 + 376: 18(int) Load 315(i32) + 377: 52(ivec2) CompositeConstruct 376 376 + 378: 18(int) Load 315(i32) + 379: 18(int) SNegate 378 + 380: 52(ivec2) CompositeConstruct 379 379 + 383: 52(ivec2) Select 382 380 377 + Store 312(i32v) 383 + 384: 38(ptr) AccessChain 325(u32v) 175 + 385: 14(int) Load 384 + 386: 38(ptr) AccessChain 325(u32v) 176 + 387: 14(int) Load 386 + 388: 14(int) Select 374 387 385 + Store 327(u32) 388 + 389: 14(int) Load 327(u32) + 390: 184(ivec3) CompositeConstruct 389 389 389 + 391: 14(int) Load 327(u32) + 392: 14(int) SNegate 391 + 393: 184(ivec3) CompositeConstruct 392 392 392 + 396: 184(ivec3) Select 395 393 390 + Store 325(u32v) 396 + 400: 397(i8vec4) Load 399(i8v4) + 401: 18(int) Bitcast 400 + Store 315(i32) 401 + 403:103(i16vec2) Load 402(i16v2) + 404: 18(int) Bitcast 403 + Store 315(i32) 404 + 408: 405(i8vec4) Load 407(u8v4) + 409: 14(int) Bitcast 408 + Store 327(u32) 409 + 411:110(i16vec2) Load 410(u16v2) + 412: 14(int) Bitcast 411 + Store 327(u32) 412 + 414: 57(int64_t) Load 413(i64) + 415: 52(ivec2) Bitcast 414 + Store 312(i32v) 415 + 419: 63(int64_t) Load 418(u64) + 420: 49(ivec2) Bitcast 419 + Store 416(u32v2) 420 + 423: 184(ivec3) Load 325(u32v) + 424: 14(int) Load 327(u32) + 425: 184(ivec3) CompositeConstruct 424 424 424 + 426: 394(bvec3) ULessThan 423 425 + Store 422(bv) 426 + 427: 52(ivec2) Load 312(i32v) + 428: 18(int) Load 315(i32) + 429: 52(ivec2) CompositeConstruct 428 428 + 430: 166(bvec2) SLessThan 427 429 + 431: 394(bvec3) Load 422(bv) + 432: 394(bvec3) VectorShuffle 431 430 3 4 2 + Store 422(bv) 432 + 433: 184(ivec3) Load 325(u32v) + 434: 14(int) Load 327(u32) + 435: 184(ivec3) CompositeConstruct 434 434 434 + 436: 394(bvec3) ULessThanEqual 433 435 + Store 422(bv) 436 + 437: 52(ivec2) Load 312(i32v) + 438: 18(int) Load 315(i32) + 439: 52(ivec2) CompositeConstruct 438 438 + 440: 166(bvec2) SLessThanEqual 437 439 + 441: 394(bvec3) Load 422(bv) + 442: 394(bvec3) VectorShuffle 441 440 3 4 2 + Store 422(bv) 442 + 443: 184(ivec3) Load 325(u32v) + 444: 14(int) Load 327(u32) + 445: 184(ivec3) CompositeConstruct 444 444 444 + 446: 394(bvec3) UGreaterThan 443 445 + Store 422(bv) 446 + 447: 52(ivec2) Load 312(i32v) + 448: 18(int) Load 315(i32) + 449: 52(ivec2) CompositeConstruct 448 448 + 450: 166(bvec2) SGreaterThan 447 449 + 451: 394(bvec3) Load 422(bv) + 452: 394(bvec3) VectorShuffle 451 450 3 4 2 + Store 422(bv) 452 + 453: 184(ivec3) Load 325(u32v) + 454: 14(int) Load 327(u32) + 455: 184(ivec3) CompositeConstruct 454 454 454 + 456: 394(bvec3) UGreaterThanEqual 453 455 + Store 422(bv) 456 + 457: 52(ivec2) Load 312(i32v) + 458: 18(int) Load 315(i32) + 459: 52(ivec2) CompositeConstruct 458 458 + 460: 166(bvec2) SGreaterThanEqual 457 459 + 461: 394(bvec3) Load 422(bv) + 462: 394(bvec3) VectorShuffle 461 460 3 4 2 + Store 422(bv) 462 + 463: 184(ivec3) Load 325(u32v) + 464: 14(int) Load 327(u32) + 465: 184(ivec3) CompositeConstruct 464 464 464 + 466: 394(bvec3) IEqual 463 465 + Store 422(bv) 466 + 467: 52(ivec2) Load 312(i32v) + 468: 18(int) Load 315(i32) + 469: 52(ivec2) CompositeConstruct 468 468 + 470: 166(bvec2) IEqual 467 469 + 471: 394(bvec3) Load 422(bv) + 472: 394(bvec3) VectorShuffle 471 470 3 4 2 + Store 422(bv) 472 + 473: 184(ivec3) Load 325(u32v) + 474: 14(int) Load 327(u32) + 475: 184(ivec3) CompositeConstruct 474 474 474 + 476: 394(bvec3) INotEqual 473 475 + Store 422(bv) 476 + 477: 52(ivec2) Load 312(i32v) + 478: 18(int) Load 315(i32) + 479: 52(ivec2) CompositeConstruct 478 478 + 480: 166(bvec2) INotEqual 477 479 + 481: 394(bvec3) Load 422(bv) + 482: 394(bvec3) VectorShuffle 481 480 3 4 2 + Store 422(bv) 482 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out new file mode 100644 index 0000000000..b82cfa3212 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.int64.frag.out @@ -0,0 +1,667 @@ +spv.int64.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 488 + + Capability Shader + Capability Float64 + Capability Int64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_ARB_gpu_shader_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + Name 4 "main" + Name 6 "literal(" + Name 8 "typeCast(" + Name 10 "operators(" + Name 12 "builtinFuncs(" + Name 16 "u64Max" + Name 20 "i64" + Name 28 "Uniforms" + MemberName 28(Uniforms) 0 "index" + Name 30 "" + Name 37 "indexable" + Name 41 "u64" + Name 49 "indexable" + Name 54 "i64v" + Name 58 "bv" + Name 67 "u64v" + Name 76 "iv" + Name 83 "uv" + Name 91 "fv" + Name 97 "dv" + Name 134 "u64v" + Name 139 "i64" + Name 159 "i" + Name 166 "uv" + Name 226 "b" + Name 286 "i64v" + Name 289 "i64" + Name 299 "u64v" + Name 301 "u64" + Name 373 "dv" + Name 392 "iv" + Name 397 "uv" + Name 401 "bv" + Name 462 "Block" + MemberName 462(Block) 0 "i64v" + MemberName 462(Block) 1 "u64" + Name 464 "block" + Name 465 "si64" + Name 466 "su64" + Name 467 "si" + Name 468 "su" + Name 469 "sb" + MemberDecorate 28(Uniforms) 0 Offset 0 + Decorate 28(Uniforms) Block + Decorate 30 DescriptorSet 0 + Decorate 30 Binding 0 + MemberDecorate 462(Block) 0 Offset 0 + MemberDecorate 462(Block) 1 Offset 24 + Decorate 462(Block) Block + Decorate 464(block) DescriptorSet 0 + Decorate 464(block) Binding 1 + Decorate 465(si64) SpecId 100 + Decorate 466(su64) SpecId 101 + Decorate 467(si) SpecId 102 + Decorate 468(su) SpecId 103 + Decorate 469(sb) SpecId 104 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 64 0 + 15: TypePointer Private 14(int64_t) + 16(u64Max): 15(ptr) Variable Private + 17: 14(int64_t) Constant 4294967295 4294967295 + 18: TypeInt 64 1 + 19: TypePointer Function 18(int64_t) + 21: TypeInt 32 0 + 22: 21(int) Constant 3 + 23: TypeArray 18(int64_t) 22 + 24: 18(int64_t) Constant 4008636143 4008636142 + 25: 18(int64_t) Constant 4294967295 4294967295 + 26: 18(int64_t) Constant 0 1 + 27: 23 ConstantComposite 24 25 26 + 28(Uniforms): TypeStruct 21(int) + 29: TypePointer Uniform 28(Uniforms) + 30: 29(ptr) Variable Uniform + 31: TypeInt 32 1 + 32: 31(int) Constant 0 + 33: TypePointer Uniform 21(int) + 36: TypePointer Function 23 + 40: TypePointer Function 14(int64_t) + 42: TypeArray 14(int64_t) 22 + 43: 14(int64_t) Constant 0 1 + 44: 14(int64_t) Constant 4294967295 1 + 45: 42 ConstantComposite 17 43 44 + 48: TypePointer Function 42 + 52: TypeVector 18(int64_t) 2 + 53: TypePointer Function 52(i64vec2) + 55: TypeBool + 56: TypeVector 55(bool) 2 + 57: TypePointer Function 56(bvec2) + 60: 18(int64_t) Constant 0 0 + 61: 18(int64_t) Constant 1 0 + 62: 52(i64vec2) ConstantComposite 60 60 + 63: 52(i64vec2) ConstantComposite 61 61 + 65: TypeVector 14(int64_t) 2 + 66: TypePointer Function 65(i64vec2) + 69: 14(int64_t) Constant 0 0 + 70: 14(int64_t) Constant 1 0 + 71: 65(i64vec2) ConstantComposite 69 69 + 72: 65(i64vec2) ConstantComposite 70 70 + 74: TypeVector 31(int) 2 + 75: TypePointer Function 74(ivec2) + 81: TypeVector 21(int) 2 + 82: TypePointer Function 81(ivec2) + 88: TypeFloat 32 + 89: TypeVector 88(float) 2 + 90: TypePointer Function 89(fvec2) + 94: TypeFloat 64 + 95: TypeVector 94(float64_t) 2 + 96: TypePointer Function 95(f64vec2) + 132: TypeVector 14(int64_t) 3 + 133: TypePointer Function 132(i64vec3) + 136: TypeVector 18(int64_t) 3 + 158: TypePointer Function 31(int) + 164: TypeVector 21(int) 3 + 165: TypePointer Function 164(ivec3) + 199: TypeVector 31(int) 3 + 203: 21(int) Constant 1 + 204: TypePointer Function 21(int) + 217: 21(int) Constant 2 + 225: TypePointer Function 55(bool) + 227: 21(int) Constant 0 + 297: 52(i64vec2) ConstantComposite 25 25 + 306:132(i64vec3) ConstantComposite 69 69 69 + 348: 55(bool) ConstantTrue + 355: 55(bool) ConstantFalse + 356: 56(bvec2) ConstantComposite 355 355 + 368: TypeVector 55(bool) 3 + 369: 368(bvec3) ConstantComposite 355 355 355 + 371: TypeVector 94(float64_t) 3 + 372: TypePointer Function 371(f64vec3) + 377: TypePointer Function 94(float64_t) + 388: 31(int) Constant 1 + 389: 31(int) Constant 2 + 390: 74(ivec2) ConstantComposite 388 389 + 395: 81(ivec2) ConstantComposite 217 22 + 400: TypePointer Function 368(bvec3) + 462(Block): TypeStruct 136(i64vec3) 14(int64_t) + 463: TypePointer Uniform 462(Block) + 464(block): 463(ptr) Variable Uniform + 465(si64): 18(int64_t) SpecConstant 4294967286 4294967295 + 466(su64): 14(int64_t) SpecConstant 20 0 + 467(si): 31(int) SpecConstant 4294967291 + 468(su): 21(int) SpecConstant 4 + 469(sb): 55(bool) SpecConstantTrue + 470: 55(bool) SpecConstantOp 171 465(si64) 69 + 471: 55(bool) SpecConstantOp 171 466(su64) 69 + 472: 18(int64_t) SpecConstantOp 169 469(sb) 61 60 + 473: 14(int64_t) SpecConstantOp 169 469(sb) 70 69 + 474: 31(int) SpecConstantOp 114 465(si64) + 475: 18(int64_t) SpecConstantOp 114 467(si) + 476: 21(int) SpecConstantOp 113 466(su64) + 477: 14(int64_t) SpecConstantOp 113 468(su) + 478: 18(int64_t) SpecConstantOp 128 466(su64) 69 + 479: 14(int64_t) SpecConstantOp 128 465(si64) 69 + 480: 21(int) SpecConstantOp 113 466(su64) + 481: 31(int) SpecConstantOp 128 480 227 + 482: 18(int64_t) SpecConstantOp 114 467(si) + 483: 14(int64_t) SpecConstantOp 128 482 69 + 484: 31(int) SpecConstantOp 114 465(si64) + 485: 21(int) SpecConstantOp 128 484 227 + 486: 14(int64_t) SpecConstantOp 113 468(su) + 487: 18(int64_t) SpecConstantOp 128 486 69 + 4(main): 2 Function None 3 + 5: Label + Store 16(u64Max) 17 + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 20(i64): 19(ptr) Variable Function + 37(indexable): 36(ptr) Variable Function + 41(u64): 40(ptr) Variable Function + 49(indexable): 48(ptr) Variable Function + 34: 33(ptr) AccessChain 30 32 + 35: 21(int) Load 34 + Store 37(indexable) 27 + 38: 19(ptr) AccessChain 37(indexable) 35 + 39: 18(int64_t) Load 38 + Store 20(i64) 39 + 46: 33(ptr) AccessChain 30 32 + 47: 21(int) Load 46 + Store 49(indexable) 45 + 50: 40(ptr) AccessChain 49(indexable) 47 + 51: 14(int64_t) Load 50 + Store 41(u64) 51 + Return + FunctionEnd + 8(typeCast(): 2 Function None 3 + 9: Label + 54(i64v): 53(ptr) Variable Function + 58(bv): 57(ptr) Variable Function + 67(u64v): 66(ptr) Variable Function + 76(iv): 75(ptr) Variable Function + 83(uv): 82(ptr) Variable Function + 91(fv): 90(ptr) Variable Function + 97(dv): 96(ptr) Variable Function + 59: 56(bvec2) Load 58(bv) + 64: 52(i64vec2) Select 59 63 62 + Store 54(i64v) 64 + 68: 56(bvec2) Load 58(bv) + 73: 65(i64vec2) Select 68 72 71 + Store 67(u64v) 73 + 77: 74(ivec2) Load 76(iv) + 78: 52(i64vec2) SConvert 77 + Store 54(i64v) 78 + 79: 52(i64vec2) Load 54(i64v) + 80: 74(ivec2) SConvert 79 + Store 76(iv) 80 + 84: 81(ivec2) Load 83(uv) + 85: 65(i64vec2) UConvert 84 + Store 67(u64v) 85 + 86: 65(i64vec2) Load 67(u64v) + 87: 81(ivec2) UConvert 86 + Store 83(uv) 87 + 92: 52(i64vec2) Load 54(i64v) + 93: 89(fvec2) ConvertSToF 92 + Store 91(fv) 93 + 98: 52(i64vec2) Load 54(i64v) + 99: 95(f64vec2) ConvertSToF 98 + Store 97(dv) 99 + 100: 65(i64vec2) Load 67(u64v) + 101: 89(fvec2) ConvertUToF 100 + Store 91(fv) 101 + 102: 65(i64vec2) Load 67(u64v) + 103: 95(f64vec2) ConvertUToF 102 + Store 97(dv) 103 + 104: 89(fvec2) Load 91(fv) + 105: 52(i64vec2) ConvertFToS 104 + Store 54(i64v) 105 + 106: 95(f64vec2) Load 97(dv) + 107: 52(i64vec2) ConvertFToS 106 + Store 54(i64v) 107 + 108: 89(fvec2) Load 91(fv) + 109: 65(i64vec2) ConvertFToU 108 + Store 67(u64v) 109 + 110: 95(f64vec2) Load 97(dv) + 111: 65(i64vec2) ConvertFToU 110 + Store 67(u64v) 111 + 112: 52(i64vec2) Load 54(i64v) + 113: 56(bvec2) INotEqual 112 71 + Store 58(bv) 113 + 114: 65(i64vec2) Load 67(u64v) + 115: 56(bvec2) INotEqual 114 71 + Store 58(bv) 115 + 116: 52(i64vec2) Load 54(i64v) + 117: 65(i64vec2) Bitcast 116 + Store 67(u64v) 117 + 118: 65(i64vec2) Load 67(u64v) + 119: 52(i64vec2) Bitcast 118 + Store 54(i64v) 119 + 120: 52(i64vec2) Load 54(i64v) + 121: 74(ivec2) SConvert 120 + 122: 81(ivec2) Bitcast 121 + Store 83(uv) 122 + 123: 81(ivec2) Load 83(uv) + 124: 65(i64vec2) UConvert 123 + 125: 52(i64vec2) Bitcast 124 + Store 54(i64v) 125 + 126: 65(i64vec2) Load 67(u64v) + 127: 81(ivec2) UConvert 126 + 128: 74(ivec2) Bitcast 127 + Store 76(iv) 128 + 129: 74(ivec2) Load 76(iv) + 130: 52(i64vec2) SConvert 129 + 131: 65(i64vec2) Bitcast 130 + Store 67(u64v) 131 + Return + FunctionEnd + 10(operators(): 2 Function None 3 + 11: Label + 134(u64v): 133(ptr) Variable Function + 139(i64): 19(ptr) Variable Function + 159(i): 158(ptr) Variable Function + 166(uv): 165(ptr) Variable Function + 226(b): 225(ptr) Variable Function + 135:132(i64vec3) Load 134(u64v) + 137:136(i64vec3) CompositeConstruct 61 61 61 + 138:132(i64vec3) IAdd 135 137 + Store 134(u64v) 138 + 140: 18(int64_t) Load 139(i64) + 141: 18(int64_t) ISub 140 61 + Store 139(i64) 141 + 142: 18(int64_t) Load 139(i64) + 143: 18(int64_t) IAdd 142 61 + Store 139(i64) 143 + 144:132(i64vec3) Load 134(u64v) + 145:136(i64vec3) CompositeConstruct 61 61 61 + 146:132(i64vec3) ISub 144 145 + Store 134(u64v) 146 + 147:132(i64vec3) Load 134(u64v) + 148:132(i64vec3) Not 147 + Store 134(u64v) 148 + 149: 18(int64_t) Load 139(i64) + Store 139(i64) 149 + 150:132(i64vec3) Load 134(u64v) + 151:132(i64vec3) SNegate 150 + Store 134(u64v) 151 + 152: 18(int64_t) Load 139(i64) + 153: 18(int64_t) Load 139(i64) + 154: 18(int64_t) IAdd 153 152 + Store 139(i64) 154 + 155:132(i64vec3) Load 134(u64v) + 156:132(i64vec3) Load 134(u64v) + 157:132(i64vec3) ISub 156 155 + Store 134(u64v) 157 + 160: 31(int) Load 159(i) + 161: 18(int64_t) SConvert 160 + 162: 18(int64_t) Load 139(i64) + 163: 18(int64_t) IMul 162 161 + Store 139(i64) 163 + 167: 164(ivec3) Load 166(uv) + 168:132(i64vec3) UConvert 167 + 169:132(i64vec3) Load 134(u64v) + 170:132(i64vec3) UDiv 169 168 + Store 134(u64v) 170 + 171: 31(int) Load 159(i) + 172: 18(int64_t) SConvert 171 + 173: 14(int64_t) Bitcast 172 + 174:132(i64vec3) Load 134(u64v) + 175:132(i64vec3) CompositeConstruct 173 173 173 + 176:132(i64vec3) UMod 174 175 + Store 134(u64v) 176 + 177:132(i64vec3) Load 134(u64v) + 178: 164(ivec3) Load 166(uv) + 179:132(i64vec3) UConvert 178 + 180:132(i64vec3) IAdd 177 179 + Store 134(u64v) 180 + 181: 18(int64_t) Load 139(i64) + 182: 31(int) Load 159(i) + 183: 18(int64_t) SConvert 182 + 184: 18(int64_t) ISub 181 183 + Store 139(i64) 184 + 185:132(i64vec3) Load 134(u64v) + 186: 164(ivec3) Load 166(uv) + 187:132(i64vec3) UConvert 186 + 188:132(i64vec3) IMul 185 187 + Store 134(u64v) 188 + 189: 18(int64_t) Load 139(i64) + 190: 31(int) Load 159(i) + 191: 18(int64_t) SConvert 190 + 192: 18(int64_t) IMul 189 191 + Store 139(i64) 192 + 193: 18(int64_t) Load 139(i64) + 194: 31(int) Load 159(i) + 195: 18(int64_t) SConvert 194 + 196: 18(int64_t) SMod 193 195 + Store 139(i64) 196 + 197:132(i64vec3) Load 134(u64v) + 198: 31(int) Load 159(i) + 200: 199(ivec3) CompositeConstruct 198 198 198 + 201:132(i64vec3) ShiftLeftLogical 197 200 + Store 134(u64v) 201 + 202: 18(int64_t) Load 139(i64) + 205: 204(ptr) AccessChain 166(uv) 203 + 206: 21(int) Load 205 + 207: 18(int64_t) ShiftRightArithmetic 202 206 + Store 139(i64) 207 + 208: 31(int) Load 159(i) + 209:132(i64vec3) Load 134(u64v) + 210: 199(ivec3) CompositeConstruct 208 208 208 + 211:132(i64vec3) ShiftLeftLogical 209 210 + Store 134(u64v) 211 + 212: 204(ptr) AccessChain 166(uv) 203 + 213: 21(int) Load 212 + 214: 18(int64_t) Load 139(i64) + 215: 18(int64_t) ShiftRightArithmetic 214 213 + Store 139(i64) 215 + 216: 18(int64_t) Load 139(i64) + 218: 40(ptr) AccessChain 134(u64v) 217 + 219: 14(int64_t) Load 218 + 220: 18(int64_t) ShiftLeftLogical 216 219 + Store 139(i64) 220 + 221:132(i64vec3) Load 134(u64v) + 222: 18(int64_t) Load 139(i64) + 223:136(i64vec3) CompositeConstruct 222 222 222 + 224:132(i64vec3) ShiftLeftLogical 221 223 + Store 134(u64v) 224 + 228: 40(ptr) AccessChain 134(u64v) 227 + 229: 14(int64_t) Load 228 + 230: 18(int64_t) Load 139(i64) + 231: 14(int64_t) Bitcast 230 + 232: 55(bool) INotEqual 229 231 + Store 226(b) 232 + 233: 18(int64_t) Load 139(i64) + 234: 14(int64_t) Bitcast 233 + 235: 40(ptr) AccessChain 134(u64v) 227 + 236: 14(int64_t) Load 235 + 237: 55(bool) IEqual 234 236 + Store 226(b) 237 + 238: 40(ptr) AccessChain 134(u64v) 227 + 239: 14(int64_t) Load 238 + 240: 204(ptr) AccessChain 166(uv) 203 + 241: 21(int) Load 240 + 242: 14(int64_t) UConvert 241 + 243: 55(bool) UGreaterThan 239 242 + Store 226(b) 243 + 244: 18(int64_t) Load 139(i64) + 245: 31(int) Load 159(i) + 246: 18(int64_t) SConvert 245 + 247: 55(bool) SLessThan 244 246 + Store 226(b) 247 + 248: 40(ptr) AccessChain 134(u64v) 203 + 249: 14(int64_t) Load 248 + 250: 204(ptr) AccessChain 166(uv) 227 + 251: 21(int) Load 250 + 252: 14(int64_t) UConvert 251 + 253: 55(bool) UGreaterThanEqual 249 252 + Store 226(b) 253 + 254: 18(int64_t) Load 139(i64) + 255: 31(int) Load 159(i) + 256: 18(int64_t) SConvert 255 + 257: 55(bool) SLessThanEqual 254 256 + Store 226(b) 257 + 258: 31(int) Load 159(i) + 259: 18(int64_t) SConvert 258 + 260: 14(int64_t) Bitcast 259 + 261:132(i64vec3) Load 134(u64v) + 262:132(i64vec3) CompositeConstruct 260 260 260 + 263:132(i64vec3) BitwiseOr 261 262 + Store 134(u64v) 263 + 264: 18(int64_t) Load 139(i64) + 265: 31(int) Load 159(i) + 266: 18(int64_t) SConvert 265 + 267: 18(int64_t) BitwiseOr 264 266 + Store 139(i64) 267 + 268: 31(int) Load 159(i) + 269: 18(int64_t) SConvert 268 + 270: 18(int64_t) Load 139(i64) + 271: 18(int64_t) BitwiseAnd 270 269 + Store 139(i64) 271 + 272:132(i64vec3) Load 134(u64v) + 273: 164(ivec3) Load 166(uv) + 274:132(i64vec3) UConvert 273 + 275:132(i64vec3) BitwiseAnd 272 274 + Store 134(u64v) 275 + 276: 18(int64_t) Load 139(i64) + 277: 14(int64_t) Bitcast 276 + 278:132(i64vec3) Load 134(u64v) + 279:132(i64vec3) CompositeConstruct 277 277 277 + 280:132(i64vec3) BitwiseXor 278 279 + Store 134(u64v) 280 + 281:132(i64vec3) Load 134(u64v) + 282: 18(int64_t) Load 139(i64) + 283: 14(int64_t) Bitcast 282 + 284:132(i64vec3) CompositeConstruct 283 283 283 + 285:132(i64vec3) BitwiseXor 281 284 + Store 134(u64v) 285 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 286(i64v): 53(ptr) Variable Function + 289(i64): 19(ptr) Variable Function + 299(u64v): 133(ptr) Variable Function + 301(u64): 40(ptr) Variable Function + 373(dv): 372(ptr) Variable Function + 392(iv): 75(ptr) Variable Function + 397(uv): 82(ptr) Variable Function + 401(bv): 400(ptr) Variable Function + 287: 52(i64vec2) Load 286(i64v) + 288: 52(i64vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287 + Store 286(i64v) 288 + 290: 18(int64_t) Load 289(i64) + 291: 18(int64_t) ExtInst 1(GLSL.std.450) 7(SSign) 290 + Store 289(i64) 291 + 292: 52(i64vec2) Load 286(i64v) + 293: 18(int64_t) Load 289(i64) + 294: 52(i64vec2) CompositeConstruct 293 293 + 295: 52(i64vec2) ExtInst 1(GLSL.std.450) 39(SMin) 292 294 + Store 286(i64v) 295 + 296: 52(i64vec2) Load 286(i64v) + 298: 52(i64vec2) ExtInst 1(GLSL.std.450) 39(SMin) 296 297 + Store 286(i64v) 298 + 300:132(i64vec3) Load 299(u64v) + 302: 14(int64_t) Load 301(u64) + 303:132(i64vec3) CompositeConstruct 302 302 302 + 304:132(i64vec3) ExtInst 1(GLSL.std.450) 38(UMin) 300 303 + Store 299(u64v) 304 + 305:132(i64vec3) Load 299(u64v) + 307:132(i64vec3) ExtInst 1(GLSL.std.450) 38(UMin) 305 306 + Store 299(u64v) 307 + 308: 52(i64vec2) Load 286(i64v) + 309: 18(int64_t) Load 289(i64) + 310: 52(i64vec2) CompositeConstruct 309 309 + 311: 52(i64vec2) ExtInst 1(GLSL.std.450) 42(SMax) 308 310 + Store 286(i64v) 311 + 312: 52(i64vec2) Load 286(i64v) + 313: 52(i64vec2) ExtInst 1(GLSL.std.450) 42(SMax) 312 297 + Store 286(i64v) 313 + 314:132(i64vec3) Load 299(u64v) + 315: 14(int64_t) Load 301(u64) + 316:132(i64vec3) CompositeConstruct 315 315 315 + 317:132(i64vec3) ExtInst 1(GLSL.std.450) 41(UMax) 314 316 + Store 299(u64v) 317 + 318:132(i64vec3) Load 299(u64v) + 319:132(i64vec3) ExtInst 1(GLSL.std.450) 41(UMax) 318 306 + Store 299(u64v) 319 + 320: 52(i64vec2) Load 286(i64v) + 321: 18(int64_t) Load 289(i64) + 322: 18(int64_t) SNegate 321 + 323: 18(int64_t) Load 289(i64) + 324: 52(i64vec2) CompositeConstruct 322 322 + 325: 52(i64vec2) CompositeConstruct 323 323 + 326: 52(i64vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 320 324 325 + Store 286(i64v) 326 + 327: 52(i64vec2) Load 286(i64v) + 328: 52(i64vec2) Load 286(i64v) + 329: 52(i64vec2) SNegate 328 + 330: 52(i64vec2) Load 286(i64v) + 331: 52(i64vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 327 329 330 + Store 286(i64v) 331 + 332:132(i64vec3) Load 299(u64v) + 333: 14(int64_t) Load 301(u64) + 334: 14(int64_t) SNegate 333 + 335: 14(int64_t) Load 301(u64) + 336:132(i64vec3) CompositeConstruct 334 334 334 + 337:132(i64vec3) CompositeConstruct 335 335 335 + 338:132(i64vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 332 336 337 + Store 299(u64v) 338 + 339:132(i64vec3) Load 299(u64v) + 340:132(i64vec3) Load 299(u64v) + 341:132(i64vec3) SNegate 340 + 342:132(i64vec3) Load 299(u64v) + 343:132(i64vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 339 341 342 + Store 299(u64v) 343 + 344: 19(ptr) AccessChain 286(i64v) 227 + 345: 18(int64_t) Load 344 + 346: 19(ptr) AccessChain 286(i64v) 203 + 347: 18(int64_t) Load 346 + 349: 18(int64_t) Select 348 347 345 + Store 289(i64) 349 + 350: 18(int64_t) Load 289(i64) + 351: 52(i64vec2) CompositeConstruct 350 350 + 352: 18(int64_t) Load 289(i64) + 353: 18(int64_t) SNegate 352 + 354: 52(i64vec2) CompositeConstruct 353 353 + 357: 52(i64vec2) Select 356 354 351 + Store 286(i64v) 357 + 358: 40(ptr) AccessChain 299(u64v) 227 + 359: 14(int64_t) Load 358 + 360: 40(ptr) AccessChain 299(u64v) 203 + 361: 14(int64_t) Load 360 + 362: 14(int64_t) Select 348 361 359 + Store 301(u64) 362 + 363: 14(int64_t) Load 301(u64) + 364:132(i64vec3) CompositeConstruct 363 363 363 + 365: 14(int64_t) Load 301(u64) + 366: 14(int64_t) SNegate 365 + 367:132(i64vec3) CompositeConstruct 366 366 366 + 370:132(i64vec3) Select 369 367 364 + Store 299(u64v) 370 + 374:371(f64vec3) Load 373(dv) + 375: 95(f64vec2) VectorShuffle 374 374 0 1 + 376: 52(i64vec2) Bitcast 375 + Store 286(i64v) 376 + 378: 377(ptr) AccessChain 373(dv) 217 + 379:94(float64_t) Load 378 + 380: 14(int64_t) Bitcast 379 + 381: 40(ptr) AccessChain 299(u64v) 227 + Store 381 380 + 382: 52(i64vec2) Load 286(i64v) + 383: 95(f64vec2) Bitcast 382 + 384:371(f64vec3) Load 373(dv) + 385:371(f64vec3) VectorShuffle 384 383 3 4 2 + Store 373(dv) 385 + 386:132(i64vec3) Load 299(u64v) + 387:371(f64vec3) Bitcast 386 + Store 373(dv) 387 + 391: 18(int64_t) Bitcast 390 + Store 289(i64) 391 + 393: 18(int64_t) Load 289(i64) + 394: 74(ivec2) Bitcast 393 + Store 392(iv) 394 + 396: 14(int64_t) Bitcast 395 + Store 301(u64) 396 + 398: 14(int64_t) Load 301(u64) + 399: 81(ivec2) Bitcast 398 + Store 397(uv) 399 + 402:132(i64vec3) Load 299(u64v) + 403: 14(int64_t) Load 301(u64) + 404:132(i64vec3) CompositeConstruct 403 403 403 + 405: 368(bvec3) ULessThan 402 404 + Store 401(bv) 405 + 406: 52(i64vec2) Load 286(i64v) + 407: 18(int64_t) Load 289(i64) + 408: 52(i64vec2) CompositeConstruct 407 407 + 409: 56(bvec2) SLessThan 406 408 + 410: 368(bvec3) Load 401(bv) + 411: 368(bvec3) VectorShuffle 410 409 3 4 2 + Store 401(bv) 411 + 412:132(i64vec3) Load 299(u64v) + 413: 14(int64_t) Load 301(u64) + 414:132(i64vec3) CompositeConstruct 413 413 413 + 415: 368(bvec3) ULessThanEqual 412 414 + Store 401(bv) 415 + 416: 52(i64vec2) Load 286(i64v) + 417: 18(int64_t) Load 289(i64) + 418: 52(i64vec2) CompositeConstruct 417 417 + 419: 56(bvec2) SLessThanEqual 416 418 + 420: 368(bvec3) Load 401(bv) + 421: 368(bvec3) VectorShuffle 420 419 3 4 2 + Store 401(bv) 421 + 422:132(i64vec3) Load 299(u64v) + 423: 14(int64_t) Load 301(u64) + 424:132(i64vec3) CompositeConstruct 423 423 423 + 425: 368(bvec3) UGreaterThan 422 424 + Store 401(bv) 425 + 426: 52(i64vec2) Load 286(i64v) + 427: 18(int64_t) Load 289(i64) + 428: 52(i64vec2) CompositeConstruct 427 427 + 429: 56(bvec2) SGreaterThan 426 428 + 430: 368(bvec3) Load 401(bv) + 431: 368(bvec3) VectorShuffle 430 429 3 4 2 + Store 401(bv) 431 + 432:132(i64vec3) Load 299(u64v) + 433: 14(int64_t) Load 301(u64) + 434:132(i64vec3) CompositeConstruct 433 433 433 + 435: 368(bvec3) UGreaterThanEqual 432 434 + Store 401(bv) 435 + 436: 52(i64vec2) Load 286(i64v) + 437: 18(int64_t) Load 289(i64) + 438: 52(i64vec2) CompositeConstruct 437 437 + 439: 56(bvec2) SGreaterThanEqual 436 438 + 440: 368(bvec3) Load 401(bv) + 441: 368(bvec3) VectorShuffle 440 439 3 4 2 + Store 401(bv) 441 + 442:132(i64vec3) Load 299(u64v) + 443: 14(int64_t) Load 301(u64) + 444:132(i64vec3) CompositeConstruct 443 443 443 + 445: 368(bvec3) IEqual 442 444 + Store 401(bv) 445 + 446: 52(i64vec2) Load 286(i64v) + 447: 18(int64_t) Load 289(i64) + 448: 52(i64vec2) CompositeConstruct 447 447 + 449: 56(bvec2) IEqual 446 448 + 450: 368(bvec3) Load 401(bv) + 451: 368(bvec3) VectorShuffle 450 449 3 4 2 + Store 401(bv) 451 + 452:132(i64vec3) Load 299(u64v) + 453: 14(int64_t) Load 301(u64) + 454:132(i64vec3) CompositeConstruct 453 453 453 + 455: 368(bvec3) INotEqual 452 454 + Store 401(bv) 455 + 456: 52(i64vec2) Load 286(i64v) + 457: 18(int64_t) Load 289(i64) + 458: 52(i64vec2) CompositeConstruct 457 457 + 459: 56(bvec2) INotEqual 456 458 + 460: 368(bvec3) Load 401(bv) + 461: 368(bvec3) VectorShuffle 460 459 3 4 2 + Store 401(bv) 461 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.int8.frag.out b/deps/glslang/glslang/Test/baseResults/spv.int8.frag.out new file mode 100644 index 0000000000..20c37cc767 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.int8.frag.out @@ -0,0 +1,748 @@ +spv.int8.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 531 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "typeCast8(" + Name 10 "operators(" + Name 12 "builtinFuncs(" + Name 16 "i8" + Name 24 "Uniforms" + MemberName 24(Uniforms) 0 "index" + Name 26 "" + Name 33 "indexable" + Name 38 "u8" + Name 46 "indexable" + Name 51 "u8v" + Name 54 "i8v" + Name 60 "i16v" + Name 70 "i32v" + Name 78 "u32v" + Name 85 "i64v" + Name 91 "u64v" + Name 105 "f16v" + Name 111 "f32v" + Name 117 "f64v" + Name 144 "u16v" + Name 174 "bv" + Name 192 "u8v" + Name 196 "i8" + Name 216 "i" + Name 223 "uv" + Name 242 "i16" + Name 279 "b" + Name 341 "i8v" + Name 344 "i8" + Name 354 "u8v" + Name 356 "u8" + Name 430 "i16" + Name 433 "i32" + Name 436 "i8v4" + Name 440 "u16" + Name 441 "u8v2" + Name 444 "u32" + Name 447 "u8v4" + Name 459 "bv" + Name 526 "Block" + MemberName 526(Block) 0 "i8" + MemberName 526(Block) 1 "i8v2" + MemberName 526(Block) 2 "i8v3" + MemberName 526(Block) 3 "i8v4" + MemberName 526(Block) 4 "u8" + MemberName 526(Block) 5 "u8v2" + MemberName 526(Block) 6 "u8v3" + MemberName 526(Block) 7 "u8v4" + Name 528 "block" + Name 529 "si8" + Name 530 "su8" + MemberDecorate 24(Uniforms) 0 Offset 0 + Decorate 24(Uniforms) Block + Decorate 26 DescriptorSet 0 + Decorate 26 Binding 0 + MemberDecorate 526(Block) 0 Offset 0 + MemberDecorate 526(Block) 1 Offset 2 + MemberDecorate 526(Block) 2 Offset 4 + MemberDecorate 526(Block) 3 Offset 8 + MemberDecorate 526(Block) 4 Offset 12 + MemberDecorate 526(Block) 5 Offset 14 + MemberDecorate 526(Block) 6 Offset 16 + MemberDecorate 526(Block) 7 Offset 20 + Decorate 526(Block) Block + Decorate 528(block) DescriptorSet 0 + Decorate 528(block) Binding 1 + Decorate 529(si8) SpecId 100 + Decorate 530(su8) SpecId 101 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 8 1 + 15: TypePointer Function 14(int8_t) + 17: TypeInt 32 0 + 18: 17(int) Constant 3 + 19: TypeArray 14(int8_t) 18 + 20: 14(int8_t) Constant 4294967279 + 21: 14(int8_t) Constant 4294967295 + 22: 14(int8_t) Constant 0 + 23: 19 ConstantComposite 20 21 22 + 24(Uniforms): TypeStruct 17(int) + 25: TypePointer Uniform 24(Uniforms) + 26: 25(ptr) Variable Uniform + 27: TypeInt 32 1 + 28: 27(int) Constant 0 + 29: TypePointer Uniform 17(int) + 32: TypePointer Function 19 + 36: TypeInt 8 0 + 37: TypePointer Function 36(int8_t) + 39: TypeArray 36(int8_t) 18 + 40: 36(int8_t) Constant 255 + 41: 36(int8_t) Constant 127 + 42: 39 ConstantComposite 40 40 41 + 45: TypePointer Function 39 + 49: TypeVector 36(int8_t) 2 + 50: TypePointer Function 49(i8vec2) + 52: TypeVector 14(int8_t) 2 + 53: TypePointer Function 52(i8vec2) + 57: TypeInt 16 1 + 58: TypeVector 57(int16_t) 2 + 59: TypePointer Function 58(i16vec2) + 64: TypeInt 16 0 + 65: TypeVector 64(int16_t) 2 + 68: TypeVector 27(int) 2 + 69: TypePointer Function 68(ivec2) + 74: TypeVector 17(int) 2 + 77: TypePointer Function 74(ivec2) + 82: TypeInt 64 1 + 83: TypeVector 82(int64_t) 2 + 84: TypePointer Function 83(i64vec2) + 88: TypeInt 64 0 + 89: TypeVector 88(int64_t) 2 + 90: TypePointer Function 89(i64vec2) + 102: TypeFloat 16 + 103: TypeVector 102(float16_t) 2 + 104: TypePointer Function 103(f16vec2) + 108: TypeFloat 32 + 109: TypeVector 108(float) 2 + 110: TypePointer Function 109(fvec2) + 114: TypeFloat 64 + 115: TypeVector 114(float64_t) 2 + 116: TypePointer Function 115(f64vec2) + 143: TypePointer Function 65(i16vec2) + 171: TypeBool + 172: TypeVector 171(bool) 2 + 173: TypePointer Function 172(bvec2) + 176: 14(int8_t) Constant 1 + 177: 52(i8vec2) ConstantComposite 22 22 + 178: 52(i8vec2) ConstantComposite 176 176 + 181: 36(int8_t) Constant 0 + 182: 36(int8_t) Constant 1 + 183: 49(i8vec2) ConstantComposite 181 181 + 184: 49(i8vec2) ConstantComposite 182 182 + 190: TypeVector 14(int8_t) 3 + 191: TypePointer Function 190(i8vec3) + 215: TypePointer Function 27(int) + 221: TypeVector 17(int) 3 + 222: TypePointer Function 221(ivec3) + 225: TypeVector 27(int) 3 + 241: TypePointer Function 57(int16_t) + 264: 17(int) Constant 1 + 270: 17(int) Constant 2 + 278: TypePointer Function 171(bool) + 280: 17(int) Constant 0 + 293: TypePointer Function 17(int) + 352: 52(i8vec2) ConstantComposite 21 21 + 358: TypeVector 36(int8_t) 3 + 362: 190(i8vec3) ConstantComposite 22 22 22 + 404: 171(bool) ConstantTrue + 411: 171(bool) ConstantFalse + 412: 172(bvec2) ConstantComposite 411 411 + 427: TypeVector 171(bool) 3 + 428: 427(bvec3) ConstantComposite 411 411 411 + 434: TypeVector 14(int8_t) 4 + 435: TypePointer Function 434(i8vec4) + 439: TypePointer Function 64(int16_t) + 445: TypeVector 36(int8_t) 4 + 446: TypePointer Function 445(i8vec4) + 458: TypePointer Function 427(bvec3) + 526(Block): TypeStruct 14(int8_t) 52(i8vec2) 190(i8vec3) 434(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 445(i8vec4) + 527: TypePointer Uniform 526(Block) + 528(block): 527(ptr) Variable Uniform + 529(si8): 14(int8_t) SpecConstant 4294967286 + 530(su8): 36(int8_t) SpecConstant 20 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 16(i8): 15(ptr) Variable Function + 33(indexable): 32(ptr) Variable Function + 38(u8): 37(ptr) Variable Function + 46(indexable): 45(ptr) Variable Function + 30: 29(ptr) AccessChain 26 28 + 31: 17(int) Load 30 + Store 33(indexable) 23 + 34: 15(ptr) AccessChain 33(indexable) 31 + 35: 14(int8_t) Load 34 + Store 16(i8) 35 + 43: 29(ptr) AccessChain 26 28 + 44: 17(int) Load 43 + Store 46(indexable) 42 + 47: 37(ptr) AccessChain 46(indexable) 44 + 48: 36(int8_t) Load 47 + Store 38(u8) 48 + Return + FunctionEnd + 8(typeCast8(): 2 Function None 3 + 9: Label + 51(u8v): 50(ptr) Variable Function + 54(i8v): 53(ptr) Variable Function + 60(i16v): 59(ptr) Variable Function + 70(i32v): 69(ptr) Variable Function + 78(u32v): 77(ptr) Variable Function + 85(i64v): 84(ptr) Variable Function + 91(u64v): 90(ptr) Variable Function + 105(f16v): 104(ptr) Variable Function + 111(f32v): 110(ptr) Variable Function + 117(f64v): 116(ptr) Variable Function + 144(u16v): 143(ptr) Variable Function + 174(bv): 173(ptr) Variable Function + 55: 52(i8vec2) Load 54(i8v) + 56: 49(i8vec2) Bitcast 55 + Store 51(u8v) 56 + 61: 52(i8vec2) Load 54(i8v) + 62: 58(i16vec2) SConvert 61 + Store 60(i16v) 62 + 63: 49(i8vec2) Load 51(u8v) + 66: 65(i16vec2) UConvert 63 + 67: 58(i16vec2) Bitcast 66 + Store 60(i16v) 67 + 71: 52(i8vec2) Load 54(i8v) + 72: 68(ivec2) SConvert 71 + Store 70(i32v) 72 + 73: 49(i8vec2) Load 51(u8v) + 75: 74(ivec2) UConvert 73 + 76: 68(ivec2) Bitcast 75 + Store 70(i32v) 76 + 79: 52(i8vec2) Load 54(i8v) + 80: 68(ivec2) SConvert 79 + 81: 74(ivec2) Bitcast 80 + Store 78(u32v) 81 + 86: 52(i8vec2) Load 54(i8v) + 87: 83(i64vec2) SConvert 86 + Store 85(i64v) 87 + 92: 52(i8vec2) Load 54(i8v) + 93: 83(i64vec2) SConvert 92 + 94: 89(i64vec2) Bitcast 93 + Store 91(u64v) 94 + 95: 49(i8vec2) Load 51(u8v) + 96: 74(ivec2) UConvert 95 + Store 78(u32v) 96 + 97: 49(i8vec2) Load 51(u8v) + 98: 89(i64vec2) UConvert 97 + 99: 83(i64vec2) Bitcast 98 + Store 85(i64v) 99 + 100: 49(i8vec2) Load 51(u8v) + 101: 89(i64vec2) UConvert 100 + Store 91(u64v) 101 + 106: 52(i8vec2) Load 54(i8v) + 107:103(f16vec2) ConvertSToF 106 + Store 105(f16v) 107 + 112: 52(i8vec2) Load 54(i8v) + 113: 109(fvec2) ConvertSToF 112 + Store 111(f32v) 113 + 118: 52(i8vec2) Load 54(i8v) + 119:115(f64vec2) ConvertSToF 118 + Store 117(f64v) 119 + 120: 49(i8vec2) Load 51(u8v) + 121:103(f16vec2) ConvertUToF 120 + Store 105(f16v) 121 + 122: 49(i8vec2) Load 51(u8v) + 123: 109(fvec2) ConvertUToF 122 + Store 111(f32v) 123 + 124: 49(i8vec2) Load 51(u8v) + 125:115(f64vec2) ConvertUToF 124 + Store 117(f64v) 125 + 126: 49(i8vec2) Load 51(u8v) + 127: 52(i8vec2) Bitcast 126 + Store 54(i8v) 127 + 128: 52(i8vec2) Load 54(i8v) + 129: 58(i16vec2) SConvert 128 + Store 60(i16v) 129 + 130: 49(i8vec2) Load 51(u8v) + 131: 65(i16vec2) UConvert 130 + 132: 58(i16vec2) Bitcast 131 + Store 60(i16v) 132 + 133: 52(i8vec2) Load 54(i8v) + 134: 68(ivec2) SConvert 133 + Store 70(i32v) 134 + 135: 49(i8vec2) Load 51(u8v) + 136: 74(ivec2) UConvert 135 + 137: 68(ivec2) Bitcast 136 + Store 70(i32v) 137 + 138: 52(i8vec2) Load 54(i8v) + 139: 83(i64vec2) SConvert 138 + Store 85(i64v) 139 + 140: 52(i8vec2) Load 54(i8v) + 141: 83(i64vec2) SConvert 140 + 142: 89(i64vec2) Bitcast 141 + Store 91(u64v) 142 + 145: 52(i8vec2) Load 54(i8v) + 146: 58(i16vec2) SConvert 145 + 147: 65(i16vec2) Bitcast 146 + Store 144(u16v) 147 + 148: 49(i8vec2) Load 51(u8v) + 149: 65(i16vec2) UConvert 148 + Store 144(u16v) 149 + 150: 49(i8vec2) Load 51(u8v) + 151: 74(ivec2) UConvert 150 + Store 78(u32v) 151 + 152: 49(i8vec2) Load 51(u8v) + 153: 89(i64vec2) UConvert 152 + 154: 83(i64vec2) Bitcast 153 + Store 85(i64v) 154 + 155: 49(i8vec2) Load 51(u8v) + 156: 89(i64vec2) UConvert 155 + 157: 83(i64vec2) Bitcast 156 + 158: 89(i64vec2) Bitcast 157 + Store 91(u64v) 158 + 159: 52(i8vec2) Load 54(i8v) + 160:103(f16vec2) ConvertSToF 159 + Store 105(f16v) 160 + 161: 52(i8vec2) Load 54(i8v) + 162: 109(fvec2) ConvertSToF 161 + Store 111(f32v) 162 + 163: 52(i8vec2) Load 54(i8v) + 164:115(f64vec2) ConvertSToF 163 + Store 117(f64v) 164 + 165: 49(i8vec2) Load 51(u8v) + 166:103(f16vec2) ConvertUToF 165 + Store 105(f16v) 166 + 167: 49(i8vec2) Load 51(u8v) + 168: 109(fvec2) ConvertUToF 167 + Store 111(f32v) 168 + 169: 49(i8vec2) Load 51(u8v) + 170:115(f64vec2) ConvertUToF 169 + Store 117(f64v) 170 + 175: 172(bvec2) Load 174(bv) + 179: 52(i8vec2) Select 175 178 177 + Store 54(i8v) 179 + 180: 172(bvec2) Load 174(bv) + 185: 49(i8vec2) Select 180 184 183 + Store 51(u8v) 185 + 186: 52(i8vec2) Load 54(i8v) + 187: 172(bvec2) INotEqual 186 183 + Store 174(bv) 187 + 188: 49(i8vec2) Load 51(u8v) + 189: 172(bvec2) INotEqual 188 183 + Store 174(bv) 189 + Return + FunctionEnd + 10(operators(): 2 Function None 3 + 11: Label + 192(u8v): 191(ptr) Variable Function + 196(i8): 15(ptr) Variable Function + 216(i): 215(ptr) Variable Function + 223(uv): 222(ptr) Variable Function + 242(i16): 241(ptr) Variable Function + 279(b): 278(ptr) Variable Function + 193: 190(i8vec3) Load 192(u8v) + 194: 190(i8vec3) CompositeConstruct 176 176 176 + 195: 190(i8vec3) IAdd 193 194 + Store 192(u8v) 195 + 197: 14(int8_t) Load 196(i8) + 198: 14(int8_t) ISub 197 176 + Store 196(i8) 198 + 199: 14(int8_t) Load 196(i8) + 200: 14(int8_t) IAdd 199 176 + Store 196(i8) 200 + 201: 190(i8vec3) Load 192(u8v) + 202: 190(i8vec3) CompositeConstruct 176 176 176 + 203: 190(i8vec3) ISub 201 202 + Store 192(u8v) 203 + 204: 190(i8vec3) Load 192(u8v) + 205: 190(i8vec3) Not 204 + Store 192(u8v) 205 + 206: 14(int8_t) Load 196(i8) + Store 196(i8) 206 + 207: 190(i8vec3) Load 192(u8v) + 208: 190(i8vec3) SNegate 207 + Store 192(u8v) 208 + 209: 14(int8_t) Load 196(i8) + 210: 14(int8_t) Load 196(i8) + 211: 14(int8_t) IAdd 210 209 + Store 196(i8) 211 + 212: 190(i8vec3) Load 192(u8v) + 213: 190(i8vec3) Load 192(u8v) + 214: 190(i8vec3) ISub 213 212 + Store 192(u8v) 214 + 217: 14(int8_t) Load 196(i8) + 218: 27(int) SConvert 217 + 219: 27(int) Load 216(i) + 220: 27(int) IMul 219 218 + Store 216(i) 220 + 224: 190(i8vec3) Load 192(u8v) + 226: 225(ivec3) SConvert 224 + 227: 221(ivec3) Bitcast 226 + 228: 221(ivec3) Load 223(uv) + 229: 221(ivec3) UDiv 228 227 + Store 223(uv) 229 + 230: 14(int8_t) Load 196(i8) + 231: 27(int) SConvert 230 + 232: 17(int) Bitcast 231 + 233: 221(ivec3) Load 223(uv) + 234: 221(ivec3) CompositeConstruct 232 232 232 + 235: 221(ivec3) UMod 233 234 + Store 223(uv) 235 + 236: 190(i8vec3) Load 192(u8v) + 237: 225(ivec3) SConvert 236 + 238: 221(ivec3) Bitcast 237 + 239: 221(ivec3) Load 223(uv) + 240: 221(ivec3) IAdd 238 239 + Store 223(uv) 240 + 243: 14(int8_t) Load 196(i8) + 244: 57(int16_t) SConvert 243 + 245: 57(int16_t) Load 242(i16) + 246: 57(int16_t) ISub 244 245 + Store 242(i16) 246 + 247: 190(i8vec3) Load 192(u8v) + 248: 225(ivec3) SConvert 247 + 249: 221(ivec3) Bitcast 248 + 250: 221(ivec3) Load 223(uv) + 251: 221(ivec3) IMul 249 250 + Store 223(uv) 251 + 252: 14(int8_t) Load 196(i8) + 253: 57(int16_t) SConvert 252 + 254: 57(int16_t) Load 242(i16) + 255: 57(int16_t) IMul 253 254 + Store 242(i16) 255 + 256: 14(int8_t) Load 196(i8) + 257: 27(int) SConvert 256 + 258: 27(int) Load 216(i) + 259: 27(int) SMod 257 258 + Store 216(i) 259 + 260: 14(int8_t) Load 196(i8) + 261: 190(i8vec3) Load 192(u8v) + 262: 190(i8vec3) CompositeConstruct 260 260 260 + 263: 190(i8vec3) ShiftLeftLogical 261 262 + Store 192(u8v) 263 + 265: 15(ptr) AccessChain 192(u8v) 264 + 266: 14(int8_t) Load 265 + 267: 14(int8_t) Load 196(i8) + 268: 14(int8_t) ShiftRightArithmetic 267 266 + Store 196(i8) 268 + 269: 14(int8_t) Load 196(i8) + 271: 15(ptr) AccessChain 192(u8v) 270 + 272: 14(int8_t) Load 271 + 273: 14(int8_t) ShiftLeftLogical 269 272 + Store 196(i8) 273 + 274: 190(i8vec3) Load 192(u8v) + 275: 14(int8_t) Load 196(i8) + 276: 190(i8vec3) CompositeConstruct 275 275 275 + 277: 190(i8vec3) ShiftLeftLogical 274 276 + Store 192(u8v) 277 + 281: 15(ptr) AccessChain 192(u8v) 280 + 282: 14(int8_t) Load 281 + 283: 14(int8_t) Load 196(i8) + 284: 171(bool) INotEqual 282 283 + Store 279(b) 284 + 285: 14(int8_t) Load 196(i8) + 286: 15(ptr) AccessChain 192(u8v) 280 + 287: 14(int8_t) Load 286 + 288: 171(bool) IEqual 285 287 + Store 279(b) 288 + 289: 15(ptr) AccessChain 192(u8v) 280 + 290: 14(int8_t) Load 289 + 291: 27(int) SConvert 290 + 292: 17(int) Bitcast 291 + 294: 293(ptr) AccessChain 223(uv) 264 + 295: 17(int) Load 294 + 296: 171(bool) UGreaterThan 292 295 + Store 279(b) 296 + 297: 14(int8_t) Load 196(i8) + 298: 27(int) SConvert 297 + 299: 27(int) Load 216(i) + 300: 171(bool) SLessThan 298 299 + Store 279(b) 300 + 301: 15(ptr) AccessChain 192(u8v) 264 + 302: 14(int8_t) Load 301 + 303: 27(int) SConvert 302 + 304: 17(int) Bitcast 303 + 305: 293(ptr) AccessChain 223(uv) 280 + 306: 17(int) Load 305 + 307: 171(bool) UGreaterThanEqual 304 306 + Store 279(b) 307 + 308: 14(int8_t) Load 196(i8) + 309: 27(int) SConvert 308 + 310: 27(int) Load 216(i) + 311: 171(bool) SLessThanEqual 309 310 + Store 279(b) 311 + 312: 14(int8_t) Load 196(i8) + 313: 27(int) SConvert 312 + 314: 17(int) Bitcast 313 + 315: 221(ivec3) Load 223(uv) + 316: 221(ivec3) CompositeConstruct 314 314 314 + 317: 221(ivec3) BitwiseOr 315 316 + Store 223(uv) 317 + 318: 14(int8_t) Load 196(i8) + 319: 27(int) SConvert 318 + 320: 27(int) Load 216(i) + 321: 27(int) BitwiseOr 319 320 + Store 216(i) 321 + 322: 14(int8_t) Load 196(i8) + 323: 57(int16_t) SConvert 322 + 324: 57(int16_t) Load 242(i16) + 325: 57(int16_t) BitwiseAnd 324 323 + Store 242(i16) 325 + 326: 190(i8vec3) Load 192(u8v) + 327: 225(ivec3) SConvert 326 + 328: 221(ivec3) Bitcast 327 + 329: 221(ivec3) Load 223(uv) + 330: 221(ivec3) BitwiseAnd 328 329 + Store 223(uv) 330 + 331: 14(int8_t) Load 196(i8) + 332: 27(int) SConvert 331 + 333: 17(int) Bitcast 332 + 334: 221(ivec3) Load 223(uv) + 335: 221(ivec3) CompositeConstruct 333 333 333 + 336: 221(ivec3) BitwiseXor 334 335 + Store 223(uv) 336 + 337: 190(i8vec3) Load 192(u8v) + 338: 14(int8_t) Load 196(i8) + 339: 190(i8vec3) CompositeConstruct 338 338 338 + 340: 190(i8vec3) BitwiseXor 337 339 + Store 192(u8v) 340 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 341(i8v): 53(ptr) Variable Function + 344(i8): 15(ptr) Variable Function + 354(u8v): 191(ptr) Variable Function + 356(u8): 37(ptr) Variable Function + 430(i16): 241(ptr) Variable Function + 433(i32): 215(ptr) Variable Function + 436(i8v4): 435(ptr) Variable Function + 440(u16): 439(ptr) Variable Function + 441(u8v2): 50(ptr) Variable Function + 444(u32): 293(ptr) Variable Function + 447(u8v4): 446(ptr) Variable Function + 459(bv): 458(ptr) Variable Function + 342: 52(i8vec2) Load 341(i8v) + 343: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 342 + Store 341(i8v) 343 + 345: 14(int8_t) Load 344(i8) + 346: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 345 + Store 344(i8) 346 + 347: 52(i8vec2) Load 341(i8v) + 348: 14(int8_t) Load 344(i8) + 349: 52(i8vec2) CompositeConstruct 348 348 + 350: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 347 349 + Store 341(i8v) 350 + 351: 52(i8vec2) Load 341(i8v) + 353: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 351 352 + Store 341(i8v) 353 + 355: 190(i8vec3) Load 354(u8v) + 357: 36(int8_t) Load 356(u8) + 359: 358(i8vec3) CompositeConstruct 357 357 357 + 360: 190(i8vec3) ExtInst 1(GLSL.std.450) 39(SMin) 355 359 + Store 354(u8v) 360 + 361: 190(i8vec3) Load 354(u8v) + 363: 190(i8vec3) ExtInst 1(GLSL.std.450) 39(SMin) 361 362 + Store 354(u8v) 363 + 364: 52(i8vec2) Load 341(i8v) + 365: 14(int8_t) Load 344(i8) + 366: 52(i8vec2) CompositeConstruct 365 365 + 367: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 364 366 + Store 341(i8v) 367 + 368: 52(i8vec2) Load 341(i8v) + 369: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 368 352 + Store 341(i8v) 369 + 370: 190(i8vec3) Load 354(u8v) + 371: 36(int8_t) Load 356(u8) + 372: 358(i8vec3) CompositeConstruct 371 371 371 + 373: 190(i8vec3) ExtInst 1(GLSL.std.450) 42(SMax) 370 372 + Store 354(u8v) 373 + 374: 190(i8vec3) Load 354(u8v) + 375: 190(i8vec3) ExtInst 1(GLSL.std.450) 42(SMax) 374 362 + Store 354(u8v) 375 + 376: 52(i8vec2) Load 341(i8v) + 377: 14(int8_t) Load 344(i8) + 378: 14(int8_t) SNegate 377 + 379: 14(int8_t) Load 344(i8) + 380: 52(i8vec2) CompositeConstruct 378 378 + 381: 52(i8vec2) CompositeConstruct 379 379 + 382: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 376 380 381 + Store 341(i8v) 382 + 383: 52(i8vec2) Load 341(i8v) + 384: 52(i8vec2) Load 341(i8v) + 385: 52(i8vec2) SNegate 384 + 386: 52(i8vec2) Load 341(i8v) + 387: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 383 385 386 + Store 341(i8v) 387 + 388: 190(i8vec3) Load 354(u8v) + 389: 36(int8_t) Load 356(u8) + 390: 36(int8_t) SNegate 389 + 391: 36(int8_t) Load 356(u8) + 392: 358(i8vec3) CompositeConstruct 390 390 390 + 393: 358(i8vec3) CompositeConstruct 391 391 391 + 394: 190(i8vec3) ExtInst 1(GLSL.std.450) 45(SClamp) 388 392 393 + Store 354(u8v) 394 + 395: 190(i8vec3) Load 354(u8v) + 396: 190(i8vec3) Load 354(u8v) + 397: 190(i8vec3) SNegate 396 + 398: 190(i8vec3) Load 354(u8v) + 399: 190(i8vec3) ExtInst 1(GLSL.std.450) 45(SClamp) 395 397 398 + Store 354(u8v) 399 + 400: 15(ptr) AccessChain 341(i8v) 280 + 401: 14(int8_t) Load 400 + 402: 15(ptr) AccessChain 341(i8v) 264 + 403: 14(int8_t) Load 402 + 405: 14(int8_t) Select 404 403 401 + Store 344(i8) 405 + 406: 14(int8_t) Load 344(i8) + 407: 52(i8vec2) CompositeConstruct 406 406 + 408: 14(int8_t) Load 344(i8) + 409: 14(int8_t) SNegate 408 + 410: 52(i8vec2) CompositeConstruct 409 409 + 413: 52(i8vec2) Select 412 410 407 + Store 341(i8v) 413 + 414: 15(ptr) AccessChain 354(u8v) 280 + 415: 14(int8_t) Load 414 + 416: 15(ptr) AccessChain 354(u8v) 264 + 417: 14(int8_t) Load 416 + 418: 14(int8_t) Select 404 417 415 + 419: 36(int8_t) Bitcast 418 + Store 356(u8) 419 + 420: 36(int8_t) Load 356(u8) + 421: 14(int8_t) Bitcast 420 + 422: 190(i8vec3) CompositeConstruct 421 421 421 + 423: 36(int8_t) Load 356(u8) + 424: 36(int8_t) SNegate 423 + 425: 14(int8_t) Bitcast 424 + 426: 190(i8vec3) CompositeConstruct 425 425 425 + 429: 190(i8vec3) Select 428 426 422 + Store 354(u8v) 429 + 431: 52(i8vec2) Load 341(i8v) + 432: 57(int16_t) Bitcast 431 + Store 430(i16) 432 + 437: 434(i8vec4) Load 436(i8v4) + 438: 27(int) Bitcast 437 + Store 433(i32) 438 + 442: 49(i8vec2) Load 441(u8v2) + 443: 64(int16_t) Bitcast 442 + Store 440(u16) 443 + 448: 445(i8vec4) Load 447(u8v4) + 449: 17(int) Bitcast 448 + Store 444(u32) 449 + 450: 57(int16_t) Load 430(i16) + 451: 52(i8vec2) Bitcast 450 + Store 341(i8v) 451 + 452: 27(int) Load 433(i32) + 453: 434(i8vec4) Bitcast 452 + Store 436(i8v4) 453 + 454: 64(int16_t) Load 440(u16) + 455: 49(i8vec2) Bitcast 454 + Store 441(u8v2) 455 + 456: 17(int) Load 444(u32) + 457: 445(i8vec4) Bitcast 456 + Store 447(u8v4) 457 + 460: 190(i8vec3) Load 354(u8v) + 461: 36(int8_t) Load 356(u8) + 462: 14(int8_t) Bitcast 461 + 463: 190(i8vec3) CompositeConstruct 462 462 462 + 464: 427(bvec3) SLessThan 460 463 + Store 459(bv) 464 + 465: 52(i8vec2) Load 341(i8v) + 466: 14(int8_t) Load 344(i8) + 467: 52(i8vec2) CompositeConstruct 466 466 + 468: 172(bvec2) SLessThan 465 467 + 469: 427(bvec3) Load 459(bv) + 470: 427(bvec3) VectorShuffle 469 468 3 4 2 + Store 459(bv) 470 + 471: 190(i8vec3) Load 354(u8v) + 472: 36(int8_t) Load 356(u8) + 473: 14(int8_t) Bitcast 472 + 474: 190(i8vec3) CompositeConstruct 473 473 473 + 475: 427(bvec3) SLessThanEqual 471 474 + Store 459(bv) 475 + 476: 52(i8vec2) Load 341(i8v) + 477: 14(int8_t) Load 344(i8) + 478: 52(i8vec2) CompositeConstruct 477 477 + 479: 172(bvec2) SLessThanEqual 476 478 + 480: 427(bvec3) Load 459(bv) + 481: 427(bvec3) VectorShuffle 480 479 3 4 2 + Store 459(bv) 481 + 482: 190(i8vec3) Load 354(u8v) + 483: 36(int8_t) Load 356(u8) + 484: 14(int8_t) Bitcast 483 + 485: 190(i8vec3) CompositeConstruct 484 484 484 + 486: 427(bvec3) SGreaterThan 482 485 + Store 459(bv) 486 + 487: 52(i8vec2) Load 341(i8v) + 488: 14(int8_t) Load 344(i8) + 489: 52(i8vec2) CompositeConstruct 488 488 + 490: 172(bvec2) SGreaterThan 487 489 + 491: 427(bvec3) Load 459(bv) + 492: 427(bvec3) VectorShuffle 491 490 3 4 2 + Store 459(bv) 492 + 493: 190(i8vec3) Load 354(u8v) + 494: 36(int8_t) Load 356(u8) + 495: 14(int8_t) Bitcast 494 + 496: 190(i8vec3) CompositeConstruct 495 495 495 + 497: 427(bvec3) SGreaterThanEqual 493 496 + Store 459(bv) 497 + 498: 52(i8vec2) Load 341(i8v) + 499: 14(int8_t) Load 344(i8) + 500: 52(i8vec2) CompositeConstruct 499 499 + 501: 172(bvec2) SGreaterThanEqual 498 500 + 502: 427(bvec3) Load 459(bv) + 503: 427(bvec3) VectorShuffle 502 501 3 4 2 + Store 459(bv) 503 + 504: 190(i8vec3) Load 354(u8v) + 505: 36(int8_t) Load 356(u8) + 506: 14(int8_t) Bitcast 505 + 507: 190(i8vec3) CompositeConstruct 506 506 506 + 508: 427(bvec3) IEqual 504 507 + Store 459(bv) 508 + 509: 52(i8vec2) Load 341(i8v) + 510: 14(int8_t) Load 344(i8) + 511: 52(i8vec2) CompositeConstruct 510 510 + 512: 172(bvec2) IEqual 509 511 + 513: 427(bvec3) Load 459(bv) + 514: 427(bvec3) VectorShuffle 513 512 3 4 2 + Store 459(bv) 514 + 515: 190(i8vec3) Load 354(u8v) + 516: 36(int8_t) Load 356(u8) + 517: 14(int8_t) Bitcast 516 + 518: 190(i8vec3) CompositeConstruct 517 517 517 + 519: 427(bvec3) INotEqual 515 518 + Store 459(bv) 519 + 520: 52(i8vec2) Load 341(i8v) + 521: 14(int8_t) Load 344(i8) + 522: 52(i8vec2) CompositeConstruct 521 521 + 523: 172(bvec2) INotEqual 520 522 + 524: 427(bvec3) Load 459(bv) + 525: 427(bvec3) VectorShuffle 524 523 3 4 2 + Store 459(bv) 525 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out b/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out new file mode 100644 index 0000000000..2a63783207 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.intOps.vert.out @@ -0,0 +1,347 @@ +spv.intOps.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 268 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 + Source ESSL 310 + Name 4 "main" + Name 9 "iout" + Name 15 "uout" + Name 21 "fout" + Name 26 "u2" + Name 30 "u2out" + Name 31 "ResType" + Name 47 "u1" + Name 51 "u1out" + Name 52 "ResType" + Name 67 "u4" + Name 71 "u4outHi" + Name 72 "u4outLow" + Name 73 "ResType" + Name 83 "i4" + Name 87 "i4outHi" + Name 88 "i4outLow" + Name 89 "ResType" + Name 100 "v3" + Name 104 "i3out" + Name 105 "ResType" + Name 121 "v1" + Name 124 "i1out" + Name 125 "ResType" + Name 142 "v2" + Name 146 "i2" + Name 156 "i1" + Name 173 "u3" + Name 182 "i3" + Name 247 "v4" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Output 7(ivec4) + 9(iout): 8(ptr) Variable Output + 10: 6(int) Constant 0 + 11: 7(ivec4) ConstantComposite 10 10 10 10 + 12: TypeInt 32 0 + 13: TypeVector 12(int) 4 + 14: TypePointer Output 13(ivec4) + 15(uout): 14(ptr) Variable Output + 16: 12(int) Constant 0 + 17: 13(ivec4) ConstantComposite 16 16 16 16 + 18: TypeFloat 32 + 19: TypeVector 18(float) 4 + 20: TypePointer Output 19(fvec4) + 21(fout): 20(ptr) Variable Output + 22: 18(float) Constant 0 + 23: 19(fvec4) ConstantComposite 22 22 22 22 + 24: TypeVector 12(int) 2 + 25: TypePointer Input 24(ivec2) + 26(u2): 25(ptr) Variable Input + 29: TypePointer Function 24(ivec2) + 31(ResType): TypeStruct 24(ivec2) 24(ivec2) + 46: TypePointer Input 12(int) + 47(u1): 46(ptr) Variable Input + 50: TypePointer Function 12(int) + 52(ResType): TypeStruct 12(int) 12(int) + 56: TypePointer Output 12(int) + 66: TypePointer Input 13(ivec4) + 67(u4): 66(ptr) Variable Input + 70: TypePointer Function 13(ivec4) + 73(ResType): TypeStruct 13(ivec4) 13(ivec4) + 82: TypePointer Input 7(ivec4) + 83(i4): 82(ptr) Variable Input + 86: TypePointer Function 7(ivec4) + 89(ResType): TypeStruct 7(ivec4) 7(ivec4) + 98: TypeVector 18(float) 3 + 99: TypePointer Input 98(fvec3) + 100(v3): 99(ptr) Variable Input + 102: TypeVector 6(int) 3 + 103: TypePointer Function 102(ivec3) + 105(ResType): TypeStruct 98(fvec3) 102(ivec3) + 120: TypePointer Input 18(float) + 121(v1): 120(ptr) Variable Input + 123: TypePointer Function 6(int) + 125(ResType): TypeStruct 18(float) 6(int) + 129: TypePointer Output 18(float) + 135: TypePointer Output 6(int) + 140: TypeVector 18(float) 2 + 141: TypePointer Input 140(fvec2) + 142(v2): 141(ptr) Variable Input + 144: TypeVector 6(int) 2 + 145: TypePointer Input 144(ivec2) + 146(i2): 145(ptr) Variable Input + 155: TypePointer Input 6(int) + 156(i1): 155(ptr) Variable Input + 164: 6(int) Constant 4 + 165: 6(int) Constant 5 + 171: TypeVector 12(int) 3 + 172: TypePointer Input 171(ivec3) + 173(u3): 172(ptr) Variable Input + 181: TypePointer Input 102(ivec3) + 182(i3): 181(ptr) Variable Input + 246: TypePointer Input 19(fvec4) + 247(v4): 246(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 30(u2out): 29(ptr) Variable Function + 51(u1out): 50(ptr) Variable Function + 71(u4outHi): 70(ptr) Variable Function + 72(u4outLow): 70(ptr) Variable Function + 87(i4outHi): 86(ptr) Variable Function + 88(i4outLow): 86(ptr) Variable Function + 104(i3out): 103(ptr) Variable Function + 124(i1out): 123(ptr) Variable Function + Store 9(iout) 11 + Store 15(uout) 17 + Store 21(fout) 23 + 27: 24(ivec2) Load 26(u2) + 28: 24(ivec2) Load 26(u2) + 32: 31(ResType) IAddCarry 27 28 + 33: 24(ivec2) CompositeExtract 32 1 + Store 30(u2out) 33 + 34: 24(ivec2) CompositeExtract 32 0 + 35: 13(ivec4) Load 15(uout) + 36: 24(ivec2) VectorShuffle 35 35 0 1 + 37: 24(ivec2) IAdd 36 34 + 38: 13(ivec4) Load 15(uout) + 39: 13(ivec4) VectorShuffle 38 37 4 5 2 3 + Store 15(uout) 39 + 40: 24(ivec2) Load 30(u2out) + 41: 13(ivec4) Load 15(uout) + 42: 24(ivec2) VectorShuffle 41 41 0 1 + 43: 24(ivec2) IAdd 42 40 + 44: 13(ivec4) Load 15(uout) + 45: 13(ivec4) VectorShuffle 44 43 4 5 2 3 + Store 15(uout) 45 + 48: 12(int) Load 47(u1) + 49: 12(int) Load 47(u1) + 53: 52(ResType) ISubBorrow 48 49 + 54: 12(int) CompositeExtract 53 1 + Store 51(u1out) 54 + 55: 12(int) CompositeExtract 53 0 + 57: 56(ptr) AccessChain 15(uout) 16 + 58: 12(int) Load 57 + 59: 12(int) IAdd 58 55 + 60: 56(ptr) AccessChain 15(uout) 16 + Store 60 59 + 61: 12(int) Load 51(u1out) + 62: 56(ptr) AccessChain 15(uout) 16 + 63: 12(int) Load 62 + 64: 12(int) IAdd 63 61 + 65: 56(ptr) AccessChain 15(uout) 16 + Store 65 64 + 68: 13(ivec4) Load 67(u4) + 69: 13(ivec4) Load 67(u4) + 74: 73(ResType) UMulExtended 68 69 + 75: 13(ivec4) CompositeExtract 74 0 + Store 72(u4outLow) 75 + 76: 13(ivec4) CompositeExtract 74 1 + Store 71(u4outHi) 76 + 77: 13(ivec4) Load 71(u4outHi) + 78: 13(ivec4) Load 72(u4outLow) + 79: 13(ivec4) IAdd 77 78 + 80: 13(ivec4) Load 15(uout) + 81: 13(ivec4) IAdd 80 79 + Store 15(uout) 81 + 84: 7(ivec4) Load 83(i4) + 85: 7(ivec4) Load 83(i4) + 90: 89(ResType) SMulExtended 84 85 + 91: 7(ivec4) CompositeExtract 90 0 + Store 88(i4outLow) 91 + 92: 7(ivec4) CompositeExtract 90 1 + Store 87(i4outHi) 92 + 93: 7(ivec4) Load 88(i4outLow) + 94: 7(ivec4) Load 87(i4outHi) + 95: 7(ivec4) IAdd 93 94 + 96: 7(ivec4) Load 9(iout) + 97: 7(ivec4) IAdd 96 95 + Store 9(iout) 97 + 101: 98(fvec3) Load 100(v3) + 106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101 + 107: 102(ivec3) CompositeExtract 106 1 + Store 104(i3out) 107 + 108: 98(fvec3) CompositeExtract 106 0 + 109: 19(fvec4) Load 21(fout) + 110: 98(fvec3) VectorShuffle 109 109 0 1 2 + 111: 98(fvec3) FAdd 110 108 + 112: 19(fvec4) Load 21(fout) + 113: 19(fvec4) VectorShuffle 112 111 4 5 6 3 + Store 21(fout) 113 + 114: 102(ivec3) Load 104(i3out) + 115: 7(ivec4) Load 9(iout) + 116: 102(ivec3) VectorShuffle 115 115 0 1 2 + 117: 102(ivec3) IAdd 116 114 + 118: 7(ivec4) Load 9(iout) + 119: 7(ivec4) VectorShuffle 118 117 4 5 6 3 + Store 9(iout) 119 + 122: 18(float) Load 121(v1) + 126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122 + 127: 6(int) CompositeExtract 126 1 + Store 124(i1out) 127 + 128: 18(float) CompositeExtract 126 0 + 130: 129(ptr) AccessChain 21(fout) 16 + 131: 18(float) Load 130 + 132: 18(float) FAdd 131 128 + 133: 129(ptr) AccessChain 21(fout) 16 + Store 133 132 + 134: 6(int) Load 124(i1out) + 136: 135(ptr) AccessChain 9(iout) 16 + 137: 6(int) Load 136 + 138: 6(int) IAdd 137 134 + 139: 135(ptr) AccessChain 9(iout) 16 + Store 139 138 + 143: 140(fvec2) Load 142(v2) + 147: 144(ivec2) Load 146(i2) + 148: 140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147 + 149: 19(fvec4) Load 21(fout) + 150: 140(fvec2) VectorShuffle 149 149 0 1 + 151: 140(fvec2) FAdd 150 148 + 152: 19(fvec4) Load 21(fout) + 153: 19(fvec4) VectorShuffle 152 151 4 5 2 3 + Store 21(fout) 153 + 154: 18(float) Load 121(v1) + 157: 6(int) Load 156(i1) + 158: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157 + 159: 129(ptr) AccessChain 21(fout) 16 + 160: 18(float) Load 159 + 161: 18(float) FAdd 160 158 + 162: 129(ptr) AccessChain 21(fout) 16 + Store 162 161 + 163: 6(int) Load 156(i1) + 166: 6(int) BitFieldSExtract 163 164 165 + 167: 135(ptr) AccessChain 9(iout) 16 + 168: 6(int) Load 167 + 169: 6(int) IAdd 168 166 + 170: 135(ptr) AccessChain 9(iout) 16 + Store 170 169 + 174: 171(ivec3) Load 173(u3) + 175: 171(ivec3) BitFieldUExtract 174 164 165 + 176: 13(ivec4) Load 15(uout) + 177: 171(ivec3) VectorShuffle 176 176 0 1 2 + 178: 171(ivec3) IAdd 177 175 + 179: 13(ivec4) Load 15(uout) + 180: 13(ivec4) VectorShuffle 179 178 4 5 6 3 + Store 15(uout) 180 + 183: 102(ivec3) Load 182(i3) + 184: 102(ivec3) Load 182(i3) + 185: 102(ivec3) BitFieldInsert 183 184 164 165 + 186: 7(ivec4) Load 9(iout) + 187: 102(ivec3) VectorShuffle 186 186 0 1 2 + 188: 102(ivec3) IAdd 187 185 + 189: 7(ivec4) Load 9(iout) + 190: 7(ivec4) VectorShuffle 189 188 4 5 6 3 + Store 9(iout) 190 + 191: 12(int) Load 47(u1) + 192: 12(int) Load 47(u1) + 193: 12(int) BitFieldInsert 191 192 164 165 + 194: 56(ptr) AccessChain 15(uout) 16 + 195: 12(int) Load 194 + 196: 12(int) IAdd 195 193 + 197: 56(ptr) AccessChain 15(uout) 16 + Store 197 196 + 198: 144(ivec2) Load 146(i2) + 199: 144(ivec2) BitReverse 198 + 200: 7(ivec4) Load 9(iout) + 201: 144(ivec2) VectorShuffle 200 200 0 1 + 202: 144(ivec2) IAdd 201 199 + 203: 7(ivec4) Load 9(iout) + 204: 7(ivec4) VectorShuffle 203 202 4 5 2 3 + Store 9(iout) 204 + 205: 13(ivec4) Load 67(u4) + 206: 13(ivec4) BitReverse 205 + 207: 13(ivec4) Load 15(uout) + 208: 13(ivec4) IAdd 207 206 + Store 15(uout) 208 + 209: 6(int) Load 156(i1) + 210: 6(int) BitCount 209 + 211: 135(ptr) AccessChain 9(iout) 16 + 212: 6(int) Load 211 + 213: 6(int) IAdd 212 210 + 214: 135(ptr) AccessChain 9(iout) 16 + Store 214 213 + 215: 171(ivec3) Load 173(u3) + 216: 102(ivec3) BitCount 215 + 217: 7(ivec4) Load 9(iout) + 218: 102(ivec3) VectorShuffle 217 217 0 1 2 + 219: 102(ivec3) IAdd 218 216 + 220: 7(ivec4) Load 9(iout) + 221: 7(ivec4) VectorShuffle 220 219 4 5 6 3 + Store 9(iout) 221 + 222: 144(ivec2) Load 146(i2) + 223: 144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222 + 224: 7(ivec4) Load 9(iout) + 225: 144(ivec2) VectorShuffle 224 224 0 1 + 226: 144(ivec2) IAdd 225 223 + 227: 7(ivec4) Load 9(iout) + 228: 7(ivec4) VectorShuffle 227 226 4 5 2 3 + Store 9(iout) 228 + 229: 13(ivec4) Load 67(u4) + 230: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229 + 231: 7(ivec4) Load 9(iout) + 232: 7(ivec4) IAdd 231 230 + Store 9(iout) 232 + 233: 6(int) Load 156(i1) + 234: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233 + 235: 135(ptr) AccessChain 9(iout) 16 + 236: 6(int) Load 235 + 237: 6(int) IAdd 236 234 + 238: 135(ptr) AccessChain 9(iout) 16 + Store 238 237 + 239: 24(ivec2) Load 26(u2) + 240: 144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239 + 241: 7(ivec4) Load 9(iout) + 242: 144(ivec2) VectorShuffle 241 241 0 1 + 243: 144(ivec2) IAdd 242 240 + 244: 7(ivec4) Load 9(iout) + 245: 7(ivec4) VectorShuffle 244 243 4 5 2 3 + Store 9(iout) 245 + 248: 19(fvec4) Load 247(v4) + 249: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248 + 250: 56(ptr) AccessChain 15(uout) 16 + 251: 12(int) Load 250 + 252: 12(int) IAdd 251 249 + 253: 56(ptr) AccessChain 15(uout) 16 + Store 253 252 + 254: 19(fvec4) Load 247(v4) + 255: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254 + 256: 56(ptr) AccessChain 15(uout) 16 + 257: 12(int) Load 256 + 258: 12(int) IAdd 257 255 + 259: 56(ptr) AccessChain 15(uout) 16 + Store 259 258 + 260: 12(int) Load 47(u1) + 261: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260 + 262: 19(fvec4) Load 21(fout) + 263: 19(fvec4) FAdd 262 261 + Store 21(fout) 263 + 264: 12(int) Load 47(u1) + 265: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264 + 266: 19(fvec4) Load 21(fout) + 267: 19(fvec4) FAdd 266 265 + Store 21(fout) 267 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out b/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out new file mode 100644 index 0000000000..699524dd95 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.interpOps.frag.out @@ -0,0 +1,137 @@ +spv.interpOps.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 100 + + Capability Shader + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 13 24 33 41 47 72 98 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "f4" + Name 13 "if1" + Name 24 "if2" + Name 33 "if3" + Name 41 "if4" + Name 47 "samp" + Name 72 "offset" + Name 98 "fragColor" + Decorate 47(samp) Flat + Decorate 72(offset) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 0 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 12: TypePointer Input 6(float) + 13(if1): 12(ptr) Variable Input + 15: TypeInt 32 0 + 16: 15(int) Constant 0 + 17: TypePointer Function 6(float) + 22: TypeVector 6(float) 2 + 23: TypePointer Input 22(fvec2) + 24(if2): 23(ptr) Variable Input + 31: TypeVector 6(float) 3 + 32: TypePointer Input 31(fvec3) + 33(if3): 32(ptr) Variable Input + 40: TypePointer Input 7(fvec4) + 41(if4): 40(ptr) Variable Input + 45: TypeInt 32 1 + 46: TypePointer Input 45(int) + 47(samp): 46(ptr) Variable Input + 72(offset): 23(ptr) Variable Input + 97: TypePointer Output 7(fvec4) + 98(fragColor): 97(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(f4): 8(ptr) Variable Function + Store 9(f4) 11 + 14: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1) + 18: 17(ptr) AccessChain 9(f4) 16 + 19: 6(float) Load 18 + 20: 6(float) FAdd 19 14 + 21: 17(ptr) AccessChain 9(f4) 16 + Store 21 20 + 25: 22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2) + 26: 7(fvec4) Load 9(f4) + 27: 22(fvec2) VectorShuffle 26 26 0 1 + 28: 22(fvec2) FAdd 27 25 + 29: 7(fvec4) Load 9(f4) + 30: 7(fvec4) VectorShuffle 29 28 4 5 2 3 + Store 9(f4) 30 + 34: 31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3) + 35: 7(fvec4) Load 9(f4) + 36: 31(fvec3) VectorShuffle 35 35 0 1 2 + 37: 31(fvec3) FAdd 36 34 + 38: 7(fvec4) Load 9(f4) + 39: 7(fvec4) VectorShuffle 38 37 4 5 6 3 + Store 9(f4) 39 + 42: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4) + 43: 7(fvec4) Load 9(f4) + 44: 7(fvec4) FAdd 43 42 + Store 9(f4) 44 + 48: 45(int) Load 47(samp) + 49: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48 + 50: 17(ptr) AccessChain 9(f4) 16 + 51: 6(float) Load 50 + 52: 6(float) FAdd 51 49 + 53: 17(ptr) AccessChain 9(f4) 16 + Store 53 52 + 54: 45(int) Load 47(samp) + 55: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54 + 56: 7(fvec4) Load 9(f4) + 57: 22(fvec2) VectorShuffle 56 56 0 1 + 58: 22(fvec2) FAdd 57 55 + 59: 7(fvec4) Load 9(f4) + 60: 7(fvec4) VectorShuffle 59 58 4 5 2 3 + Store 9(f4) 60 + 61: 45(int) Load 47(samp) + 62: 31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61 + 63: 7(fvec4) Load 9(f4) + 64: 31(fvec3) VectorShuffle 63 63 0 1 2 + 65: 31(fvec3) FAdd 64 62 + 66: 7(fvec4) Load 9(f4) + 67: 7(fvec4) VectorShuffle 66 65 4 5 6 3 + Store 9(f4) 67 + 68: 45(int) Load 47(samp) + 69: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68 + 70: 7(fvec4) Load 9(f4) + 71: 7(fvec4) FAdd 70 69 + Store 9(f4) 71 + 73: 22(fvec2) Load 72(offset) + 74: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73 + 75: 17(ptr) AccessChain 9(f4) 16 + 76: 6(float) Load 75 + 77: 6(float) FAdd 76 74 + 78: 17(ptr) AccessChain 9(f4) 16 + Store 78 77 + 79: 22(fvec2) Load 72(offset) + 80: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79 + 81: 7(fvec4) Load 9(f4) + 82: 22(fvec2) VectorShuffle 81 81 0 1 + 83: 22(fvec2) FAdd 82 80 + 84: 7(fvec4) Load 9(f4) + 85: 7(fvec4) VectorShuffle 84 83 4 5 2 3 + Store 9(f4) 85 + 86: 22(fvec2) Load 72(offset) + 87: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86 + 88: 7(fvec4) Load 9(f4) + 89: 31(fvec3) VectorShuffle 88 88 0 1 2 + 90: 31(fvec3) FAdd 89 87 + 91: 7(fvec4) Load 9(f4) + 92: 7(fvec4) VectorShuffle 91 90 4 5 6 3 + Store 9(f4) 92 + 93: 22(fvec2) Load 72(offset) + 94: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93 + 95: 7(fvec4) Load 9(f4) + 96: 7(fvec4) FAdd 95 94 + Store 9(f4) 96 + 99: 7(fvec4) Load 9(f4) + Store 98(fragColor) 99 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out b/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out new file mode 100644 index 0000000000..b5ef883454 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.layoutNested.vert.out @@ -0,0 +1,241 @@ +spv.layoutNested.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 66 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 62 65 + Source GLSL 450 + Name 4 "main" + Name 14 "S" + MemberName 14(S) 0 "a" + MemberName 14(S) 1 "b" + MemberName 14(S) 2 "c" + Name 19 "Block140" + MemberName 19(Block140) 0 "u" + MemberName 19(Block140) 1 "s" + MemberName 19(Block140) 2 "v" + Name 21 "inst140" + Name 23 "S" + MemberName 23(S) 0 "a" + MemberName 23(S) 1 "b" + MemberName 23(S) 2 "c" + Name 26 "Block430" + MemberName 26(Block430) 0 "u" + MemberName 26(Block430) 1 "s" + MemberName 26(Block430) 2 "v" + Name 28 "inst430" + Name 29 "S" + MemberName 29(S) 0 "a" + MemberName 29(S) 1 "b" + MemberName 29(S) 2 "c" + Name 31 "s" + Name 32 "T" + MemberName 32(T) 0 "m" + MemberName 32(T) 1 "a" + Name 34 "t" + Name 35 "T" + MemberName 35(T) 0 "m" + MemberName 35(T) 1 "a" + Name 36 "Nestor" + MemberName 36(Nestor) 0 "nestorT" + Name 37 "Bt1" + MemberName 37(Bt1) 0 "nt" + Name 39 "Btn1" + Name 40 "T" + MemberName 40(T) 0 "m" + MemberName 40(T) 1 "a" + Name 41 "Nestor" + MemberName 41(Nestor) 0 "nestorT" + Name 42 "Bt2" + MemberName 42(Bt2) 0 "nt" + Name 44 "Btn2" + Name 45 "Bt3" + MemberName 45(Bt3) 0 "ntcol" + MemberName 45(Bt3) 1 "ntrow" + Name 47 "Btn3" + Name 48 "T" + MemberName 48(T) 0 "m" + MemberName 48(T) 1 "a" + Name 49 "Nestor" + MemberName 49(Nestor) 0 "nestorT" + Name 50 "bBt1" + MemberName 50(bBt1) 0 "nt" + Name 52 "bBtn1" + Name 53 "T" + MemberName 53(T) 0 "m" + MemberName 53(T) 1 "a" + Name 54 "Nestor" + MemberName 54(Nestor) 0 "nestorT" + Name 55 "bBt2" + MemberName 55(bBt2) 0 "nt" + Name 57 "bBtn2" + Name 58 "bBt3" + MemberName 58(bBt3) 0 "ntcol" + MemberName 58(bBt3) 1 "ntrow" + Name 60 "bBtn3" + Name 62 "sout" + Name 63 "S" + MemberName 63(S) 0 "a" + MemberName 63(S) 1 "b" + MemberName 63(S) 2 "c" + Name 65 "soutinv" + Decorate 13 ArrayStride 32 + MemberDecorate 14(S) 0 Offset 0 + MemberDecorate 14(S) 1 ColMajor + MemberDecorate 14(S) 1 RelaxedPrecision + MemberDecorate 14(S) 1 Offset 16 + MemberDecorate 14(S) 1 MatrixStride 16 + MemberDecorate 14(S) 2 RelaxedPrecision + MemberDecorate 14(S) 2 Offset 144 + Decorate 16 ArrayStride 160 + Decorate 18 ArrayStride 480 + MemberDecorate 19(Block140) 0 RelaxedPrecision + MemberDecorate 19(Block140) 0 Offset 0 + MemberDecorate 19(Block140) 1 Offset 16 + MemberDecorate 19(Block140) 2 RelaxedPrecision + MemberDecorate 19(Block140) 2 Offset 976 + Decorate 19(Block140) Block + Decorate 21(inst140) DescriptorSet 0 + Decorate 21(inst140) Binding 0 + Decorate 22 ArrayStride 16 + MemberDecorate 23(S) 0 Offset 0 + MemberDecorate 23(S) 1 ColMajor + MemberDecorate 23(S) 1 RelaxedPrecision + MemberDecorate 23(S) 1 Offset 16 + MemberDecorate 23(S) 1 MatrixStride 8 + MemberDecorate 23(S) 2 RelaxedPrecision + MemberDecorate 23(S) 2 Offset 80 + Decorate 24 ArrayStride 96 + Decorate 25 ArrayStride 288 + MemberDecorate 26(Block430) 0 RelaxedPrecision + MemberDecorate 26(Block430) 0 Offset 0 + MemberDecorate 26(Block430) 1 Offset 16 + MemberDecorate 26(Block430) 2 RelaxedPrecision + MemberDecorate 26(Block430) 2 Offset 592 + Decorate 26(Block430) BufferBlock + Decorate 28(inst430) DescriptorSet 0 + Decorate 28(inst430) Binding 1 + MemberDecorate 29(S) 1 RelaxedPrecision + MemberDecorate 29(S) 2 RelaxedPrecision + MemberDecorate 35(T) 0 RowMajor + MemberDecorate 35(T) 0 Offset 0 + MemberDecorate 35(T) 0 MatrixStride 16 + MemberDecorate 35(T) 1 Offset 32 + MemberDecorate 36(Nestor) 0 Offset 0 + MemberDecorate 37(Bt1) 0 Offset 0 + Decorate 37(Bt1) Block + Decorate 39(Btn1) DescriptorSet 1 + Decorate 39(Btn1) Binding 0 + MemberDecorate 40(T) 0 ColMajor + MemberDecorate 40(T) 0 Offset 0 + MemberDecorate 40(T) 0 MatrixStride 16 + MemberDecorate 40(T) 1 Offset 32 + MemberDecorate 41(Nestor) 0 Offset 0 + MemberDecorate 42(Bt2) 0 Offset 0 + Decorate 42(Bt2) Block + Decorate 44(Btn2) DescriptorSet 1 + Decorate 44(Btn2) Binding 0 + MemberDecorate 45(Bt3) 0 Offset 0 + MemberDecorate 45(Bt3) 1 Offset 48 + Decorate 45(Bt3) Block + Decorate 47(Btn3) DescriptorSet 1 + Decorate 47(Btn3) Binding 0 + MemberDecorate 48(T) 0 RowMajor + MemberDecorate 48(T) 0 Offset 0 + MemberDecorate 48(T) 0 MatrixStride 8 + MemberDecorate 48(T) 1 Offset 16 + MemberDecorate 49(Nestor) 0 Offset 0 + MemberDecorate 50(bBt1) 0 Offset 0 + Decorate 50(bBt1) BufferBlock + Decorate 52(bBtn1) DescriptorSet 1 + Decorate 52(bBtn1) Binding 0 + MemberDecorate 53(T) 0 ColMajor + MemberDecorate 53(T) 0 Offset 0 + MemberDecorate 53(T) 0 MatrixStride 8 + MemberDecorate 53(T) 1 Offset 16 + MemberDecorate 54(Nestor) 0 Offset 0 + MemberDecorate 55(bBt2) 0 Offset 0 + Decorate 55(bBt2) BufferBlock + Decorate 57(bBtn2) DescriptorSet 1 + Decorate 57(bBtn2) Binding 0 + MemberDecorate 58(bBt3) 0 Offset 0 + MemberDecorate 58(bBt3) 1 Offset 24 + 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 RelaxedPrecision + MemberDecorate 63(S) 1 Invariant + MemberDecorate 63(S) 2 RelaxedPrecision + MemberDecorate 63(S) 2 Invariant + Decorate 65(soutinv) Invariant + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: TypeVector 7(int) 3 + 9: TypeFloat 32 + 10: TypeVector 9(float) 2 + 11: TypeMatrix 10(fvec2) 2 + 12: 7(int) Constant 4 + 13: TypeArray 11 12 + 14(S): TypeStruct 8(ivec3) 13 7(int) + 15: 7(int) Constant 3 + 16: TypeArray 14(S) 15 + 17: 7(int) Constant 2 + 18: TypeArray 16 17 + 19(Block140): TypeStruct 6(int) 18 10(fvec2) + 20: TypePointer Uniform 19(Block140) + 21(inst140): 20(ptr) Variable Uniform + 22: TypeArray 11 12 + 23(S): TypeStruct 8(ivec3) 22 7(int) + 24: TypeArray 23(S) 15 + 25: TypeArray 24 17 + 26(Block430): TypeStruct 6(int) 25 10(fvec2) + 27: TypePointer Uniform 26(Block430) + 28(inst430): 27(ptr) Variable Uniform + 29(S): TypeStruct 8(ivec3) 13 7(int) + 30: TypePointer Private 29(S) + 31(s): 30(ptr) Variable Private + 32(T): TypeStruct 11 6(int) + 33: TypePointer Private 32(T) + 34(t): 33(ptr) Variable Private + 35(T): TypeStruct 11 6(int) + 36(Nestor): TypeStruct 35(T) + 37(Bt1): TypeStruct 36(Nestor) + 38: TypePointer Uniform 37(Bt1) + 39(Btn1): 38(ptr) Variable Uniform + 40(T): TypeStruct 11 6(int) + 41(Nestor): TypeStruct 40(T) + 42(Bt2): TypeStruct 41(Nestor) + 43: TypePointer Uniform 42(Bt2) + 44(Btn2): 43(ptr) Variable Uniform + 45(Bt3): TypeStruct 41(Nestor) 36(Nestor) + 46: TypePointer Uniform 45(Bt3) + 47(Btn3): 46(ptr) Variable Uniform + 48(T): TypeStruct 11 6(int) + 49(Nestor): TypeStruct 48(T) + 50(bBt1): TypeStruct 49(Nestor) + 51: TypePointer Uniform 50(bBt1) + 52(bBtn1): 51(ptr) Variable Uniform + 53(T): TypeStruct 11 6(int) + 54(Nestor): TypeStruct 53(T) + 55(bBt2): TypeStruct 54(Nestor) + 56: TypePointer Uniform 55(bBt2) + 57(bBtn2): 56(ptr) Variable Uniform + 58(bBt3): TypeStruct 49(Nestor) 54(Nestor) + 59: TypePointer Uniform 58(bBt3) + 60(bBtn3): 59(ptr) Variable Uniform + 61: TypePointer Output 29(S) + 62(sout): 61(ptr) Variable Output + 63(S): TypeStruct 8(ivec3) 13 7(int) + 64: TypePointer Output 63(S) + 65(soutinv): 64(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.length.frag.out b/deps/glslang/glslang/Test/baseResults/spv.length.frag.out new file mode 100644 index 0000000000..8e799fbb42 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.length.frag.out @@ -0,0 +1,52 @@ +spv.length.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 26 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "t" + Name 14 "v" + Name 26 "gl_FragColor" + Name 32 "u" + Decorate 26(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 7(fvec2) 11 + 13: TypePointer Input 12 + 14(v): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Input 7(fvec2) + 20: 15(int) Constant 1 + 24: TypeVector 6(float) 4 + 25: TypePointer Output 24(fvec4) +26(gl_FragColor): 25(ptr) Variable Output + 27: 6(float) Constant 1106247680 + 28: 24(fvec4) ConstantComposite 27 27 27 27 + 29: 10(int) Constant 3 + 30: TypeArray 24(fvec4) 29 + 31: TypePointer Private 30 + 32(u): 31(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 9(t): 8(ptr) Variable Function + 18: 17(ptr) AccessChain 14(v) 16 + 19: 7(fvec2) Load 18 + 21: 17(ptr) AccessChain 14(v) 20 + 22: 7(fvec2) Load 21 + 23: 7(fvec2) FAdd 19 22 + Store 9(t) 23 + Store 26(gl_FragColor) 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out b/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out new file mode 100644 index 0000000000..5f89611e6f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.localAggregates.frag.out @@ -0,0 +1,215 @@ +spv.localAggregates.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 136 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 15 40 90 98 108 134 135 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 8 "s1" + MemberName 8(s1) 0 "i" + MemberName 8(s1) 1 "f" + Name 10 "s2" + MemberName 10(s2) 0 "i" + MemberName 10(s2) 1 "f" + MemberName 10(s2) 2 "s1_1" + MemberName 10(s2) 3 "bleh" + Name 12 "locals2" + Name 13 "s3" + MemberName 13(s3) 0 "s2_1" + MemberName 13(s3) 1 "i" + MemberName 13(s3) 2 "f" + MemberName 13(s3) 3 "s1_1" + Name 15 "foo3" + Name 36 "localFArray" + Name 40 "coord" + Name 49 "localIArray" + Name 68 "x" + Name 70 "localArray" + Name 75 "i" + Name 84 "a" + Name 90 "condition" + Name 98 "color" + Name 108 "gl_FragColor" + Name 128 "samp2D" + Name 134 "foo" + Name 135 "foo2" + Decorate 15(foo3) Flat + Decorate 90(condition) Flat + Decorate 108(gl_FragColor) Location 0 + Decorate 128(samp2D) DescriptorSet 0 + Decorate 134(foo) Flat + Decorate 135(foo2) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(s1): TypeStruct 6(int) 7(float) + 9: TypeVector 7(float) 4 + 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) + 11: TypePointer Function 10(s2) + 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) + 14: TypePointer Input 13(s3) + 15(foo3): 14(ptr) Variable Input + 16: 6(int) Constant 0 + 17: TypePointer Input 10(s2) + 20: TypePointer Input 6(int) + 23: TypeBool + 27: 6(int) Constant 2 + 28: 6(int) Constant 1 + 29: 7(float) Constant 1065353216 + 30: TypePointer Function 7(float) + 32: TypeInt 32 0 + 33: 32(int) Constant 16 + 34: TypeArray 7(float) 33 + 35: TypePointer Function 34 + 37: 6(int) Constant 4 + 38: TypeVector 7(float) 2 + 39: TypePointer Input 38(fvec2) + 40(coord): 39(ptr) Variable Input + 41: 32(int) Constant 0 + 42: TypePointer Input 7(float) + 46: 32(int) Constant 8 + 47: TypeArray 6(int) 46 + 48: TypePointer Function 47 + 52: TypePointer Function 6(int) + 69: 6(int) Constant 5 + 82: 6(int) Constant 16 + 86: 7(float) Constant 0 + 90(condition): 20(ptr) Variable Input + 96: 6(int) Constant 3 + 97: TypePointer Input 9(fvec4) + 98(color): 97(ptr) Variable Input + 100: TypePointer Function 9(fvec4) + 102: 32(int) Constant 1 + 105: 32(int) Constant 2 + 107: TypePointer Output 9(fvec4) +108(gl_FragColor): 107(ptr) Variable Output + 125: TypeImage 7(float) 2D sampled format:Unknown + 126: TypeSampledImage 125 + 127: TypePointer UniformConstant 126 + 128(samp2D): 127(ptr) Variable UniformConstant + 133: TypePointer Input 8(s1) + 134(foo): 133(ptr) Variable Input + 135(foo2): 17(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 12(locals2): 11(ptr) Variable Function + 36(localFArray): 35(ptr) Variable Function + 49(localIArray): 48(ptr) Variable Function + 68(x): 52(ptr) Variable Function + 70(localArray): 35(ptr) Variable Function + 75(i): 52(ptr) Variable Function + 84(a): 35(ptr) Variable Function + 18: 17(ptr) AccessChain 15(foo3) 16 + 19: 10(s2) Load 18 + Store 12(locals2) 19 + 21: 20(ptr) AccessChain 15(foo3) 16 16 + 22: 6(int) Load 21 + 24: 23(bool) SGreaterThan 22 16 + SelectionMerge 26 None + BranchConditional 24 25 54 + 25: Label + 31: 30(ptr) AccessChain 12(locals2) 27 28 + Store 31 29 + 43: 42(ptr) AccessChain 40(coord) 41 + 44: 7(float) Load 43 + 45: 30(ptr) AccessChain 36(localFArray) 37 + Store 45 44 + 50: 20(ptr) AccessChain 15(foo3) 16 16 + 51: 6(int) Load 50 + 53: 52(ptr) AccessChain 49(localIArray) 27 + Store 53 51 + Branch 26 + 54: Label + 55: 42(ptr) AccessChain 40(coord) 41 + 56: 7(float) Load 55 + 57: 30(ptr) AccessChain 12(locals2) 27 28 + Store 57 56 + 58: 30(ptr) AccessChain 36(localFArray) 37 + Store 58 29 + 59: 52(ptr) AccessChain 49(localIArray) 27 + Store 59 16 + Branch 26 + 26: Label + 60: 52(ptr) AccessChain 49(localIArray) 27 + 61: 6(int) Load 60 + 62: 23(bool) IEqual 61 16 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + 65: 30(ptr) AccessChain 36(localFArray) 37 + 66: 7(float) Load 65 + 67: 7(float) FAdd 66 29 + Store 65 67 + Branch 64 + 64: Label + Store 68(x) 69 + 71: 6(int) Load 68(x) + 72: 42(ptr) AccessChain 40(coord) 41 + 73: 7(float) Load 72 + 74: 30(ptr) AccessChain 70(localArray) 71 + Store 74 73 + Store 75(i) 16 + Branch 76 + 76: Label + LoopMerge 78 79 None + Branch 80 + 80: Label + 81: 6(int) Load 75(i) + 83: 23(bool) SLessThan 81 82 + BranchConditional 83 77 78 + 77: Label + 85: 6(int) Load 75(i) + 87: 30(ptr) AccessChain 84(a) 85 + Store 87 86 + Branch 79 + 79: Label + 88: 6(int) Load 75(i) + 89: 6(int) IAdd 88 28 + Store 75(i) 89 + Branch 76 + 78: Label + 91: 6(int) Load 90(condition) + 92: 23(bool) IEqual 91 28 + SelectionMerge 94 None + BranchConditional 92 93 94 + 93: Label + 95: 34 Load 70(localArray) + Store 84(a) 95 + Branch 94 + 94: Label + 99: 9(fvec4) Load 98(color) + 101: 100(ptr) AccessChain 12(locals2) 96 + Store 101 99 + 103: 42(ptr) AccessChain 40(coord) 102 + 104: 7(float) Load 103 + 106: 30(ptr) AccessChain 12(locals2) 96 105 + Store 106 104 + 109: 100(ptr) AccessChain 12(locals2) 96 + 110: 9(fvec4) Load 109 + 111: 30(ptr) AccessChain 36(localFArray) 37 + 112: 7(float) Load 111 + 113: 30(ptr) AccessChain 12(locals2) 27 28 + 114: 7(float) Load 113 + 115: 7(float) FAdd 112 114 + 116: 6(int) Load 68(x) + 117: 30(ptr) AccessChain 70(localArray) 116 + 118: 7(float) Load 117 + 119: 7(float) FAdd 115 118 + 120: 6(int) Load 68(x) + 121: 30(ptr) AccessChain 84(a) 120 + 122: 7(float) Load 121 + 123: 7(float) FAdd 119 122 + 124: 9(fvec4) VectorTimesScalar 110 123 + 129: 126 Load 128(samp2D) + 130: 38(fvec2) Load 40(coord) + 131: 9(fvec4) ImageSampleImplicitLod 129 130 + 132: 9(fvec4) FMul 124 131 + Store 108(gl_FragColor) 132 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out b/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out new file mode 100644 index 0000000000..046360f609 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.loops.frag.out @@ -0,0 +1,1105 @@ +spv.loops.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 725 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 54 57 71 106 114 118 131 137 157 160 171 308 344 350 366 380 418 450 469 512 544 552 562 588 615 624 629 649 687 698 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 54 "d" + Name 57 "bigColor" + Name 71 "bigColor1_1" + Name 106 "d2" + Name 114 "d3" + Name 118 "bigColor1_2" + Name 131 "bigColor1_3" + Name 137 "d4" + Name 148 "i" + Name 157 "Count" + Name 160 "bigColor2" + Name 171 "bigColor3" + Name 179 "i" + Name 195 "i" + Name 231 "i" + Name 254 "i" + Name 279 "i" + Name 308 "bigColor4" + Name 344 "bigColor5" + Name 350 "d5" + Name 366 "d6" + Name 380 "bigColor6" + Name 418 "d7" + Name 450 "bigColor7" + Name 469 "d8" + Name 512 "d9" + Name 544 "d10" + Name 552 "d11" + Name 562 "d12" + Name 588 "bigColor8" + Name 615 "gl_FragColor" + Name 624 "d14" + Name 629 "d15" + Name 649 "d16" + Name 687 "d18" + Name 698 "d17" + Decorate 157(Count) Flat + Decorate 615(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 18: TypeBool + 19: 18(bool) ConstantTrue + 20: TypeInt 32 0 + 21: 20(int) Constant 0 + 22: TypePointer Function 6(float) + 25: 6(float) Constant 1051260355 + 29: 7(fvec4) ConstantComposite 25 25 25 25 + 35: 6(float) Constant 1059648963 + 39: 7(fvec4) ConstantComposite 35 35 35 35 + 53: TypePointer Input 6(float) + 54(d): 53(ptr) Variable Input + 57(bigColor): 10(ptr) Variable Input + 66: 20(int) Constant 2 + 71(bigColor1_1): 10(ptr) Variable Input + 75: 20(int) Constant 3 + 93: 6(float) Constant 1109917696 + 96: 6(float) Constant 1065353216 + 106(d2): 53(ptr) Variable Input + 111: 20(int) Constant 1 + 114(d3): 53(ptr) Variable Input +118(bigColor1_2): 10(ptr) Variable Input +131(bigColor1_3): 10(ptr) Variable Input + 137(d4): 53(ptr) Variable Input + 146: TypeInt 32 1 + 147: TypePointer Function 146(int) + 149: 146(int) Constant 0 + 156: TypePointer Input 146(int) + 157(Count): 156(ptr) Variable Input + 160(bigColor2): 10(ptr) Variable Input + 165: 146(int) Constant 1 + 171(bigColor3): 10(ptr) Variable Input + 186: 146(int) Constant 42 + 202: 146(int) Constant 100 + 206: 6(float) Constant 1101004800 + 238: 146(int) Constant 120 + 308(bigColor4): 10(ptr) Variable Input + 344(bigColor5): 10(ptr) Variable Input + 350(d5): 53(ptr) Variable Input + 366(d6): 53(ptr) Variable Input + 380(bigColor6): 10(ptr) Variable Input + 418(d7): 53(ptr) Variable Input + 445: 6(float) Constant 0 + 450(bigColor7): 10(ptr) Variable Input + 469(d8): 53(ptr) Variable Input + 486: 6(float) Constant 1073741824 + 512(d9): 53(ptr) Variable Input + 528: 6(float) Constant 1084227584 + 544(d10): 53(ptr) Variable Input + 552(d11): 53(ptr) Variable Input + 562(d12): 53(ptr) Variable Input + 586: 6(float) Constant 1092616192 + 588(bigColor8): 10(ptr) Variable Input + 614: TypePointer Output 7(fvec4) +615(gl_FragColor): 614(ptr) Variable Output + 624(d14): 53(ptr) Variable Input + 629(d15): 53(ptr) Variable Input + 649(d16): 53(ptr) Variable Input + 687(d18): 53(ptr) Variable Input + 698(d17): 53(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 148(i): 147(ptr) Variable Function + 179(i): 147(ptr) Variable Function + 195(i): 147(ptr) Variable Function + 231(i): 147(ptr) Variable Function + 254(i): 147(ptr) Variable Function + 279(i): 147(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 17 + 17: Label + BranchConditional 19 14 15 + 14: Label + 23: 22(ptr) AccessChain 9(color) 21 + 24: 6(float) Load 23 + 26: 18(bool) FOrdLessThan 24 25 + SelectionMerge 28 None + BranchConditional 26 27 28 + 27: Label + 30: 7(fvec4) Load 9(color) + 31: 7(fvec4) FAdd 30 29 + Store 9(color) 31 + Branch 15 + 28: Label + 33: 22(ptr) AccessChain 9(color) 21 + 34: 6(float) Load 33 + 36: 18(bool) FOrdLessThan 34 35 + SelectionMerge 38 None + BranchConditional 36 37 38 + 37: Label + 40: 7(fvec4) Load 9(color) + 41: 7(fvec4) FAdd 40 39 + Store 9(color) 41 + Branch 15 + 38: Label + 43: 7(fvec4) Load 9(color) + 44: 7(fvec4) FAdd 43 29 + Store 9(color) 44 + Branch 15 + 16: Label + Branch 13 + 15: Label + Branch 46 + 46: Label + LoopMerge 48 49 None + Branch 50 + 50: Label + 51: 22(ptr) AccessChain 9(color) 21 + 52: 6(float) Load 51 + 55: 6(float) Load 54(d) + 56: 18(bool) FOrdLessThan 52 55 + BranchConditional 56 47 48 + 47: Label + 58: 7(fvec4) Load 57(bigColor) + 59: 7(fvec4) Load 9(color) + 60: 7(fvec4) FAdd 59 58 + Store 9(color) 60 + Branch 49 + 49: Label + Branch 46 + 48: Label + Branch 61 + 61: Label + LoopMerge 63 64 None + Branch 65 + 65: Label + 67: 22(ptr) AccessChain 9(color) 66 + 68: 6(float) Load 67 + 69: 6(float) Load 54(d) + 70: 18(bool) FOrdLessThan 68 69 + BranchConditional 70 62 63 + 62: Label + 72: 7(fvec4) Load 71(bigColor1_1) + 73: 7(fvec4) Load 9(color) + 74: 7(fvec4) FAdd 73 72 + Store 9(color) 74 + 76: 22(ptr) AccessChain 9(color) 75 + 77: 6(float) Load 76 + 78: 6(float) Load 54(d) + 79: 18(bool) FOrdLessThan 77 78 + SelectionMerge 81 None + BranchConditional 79 80 81 + 80: Label + Branch 64 + 81: Label + 83: 7(fvec4) Load 71(bigColor1_1) + 84: 7(fvec4) Load 9(color) + 85: 7(fvec4) FAdd 84 83 + Store 9(color) 85 + Branch 64 + 64: Label + Branch 61 + 63: Label + Branch 86 + 86: Label + LoopMerge 88 89 None + Branch 90 + 90: Label + 91: 22(ptr) AccessChain 9(color) 21 + 92: 6(float) Load 91 + 94: 18(bool) FOrdLessThan 92 93 + BranchConditional 94 87 88 + 87: Label + 95: 7(fvec4) Load 9(color) + 97: 7(fvec4) CompositeConstruct 96 96 96 96 + 98: 7(fvec4) FAdd 95 97 + Store 9(color) 98 + Branch 89 + 89: Label + Branch 86 + 88: Label + Branch 99 + 99: Label + LoopMerge 101 102 None + Branch 103 + 103: Label + 104: 22(ptr) AccessChain 9(color) 75 + 105: 6(float) Load 104 + 107: 6(float) Load 106(d2) + 108: 18(bool) FOrdLessThan 105 107 + SelectionMerge 110 None + BranchConditional 108 109 110 + 109: Label + 112: 22(ptr) AccessChain 9(color) 111 + 113: 6(float) Load 112 + 115: 6(float) Load 114(d3) + 116: 18(bool) FOrdLessThan 113 115 + Branch 110 + 110: Label + 117: 18(bool) Phi 108 103 116 109 + BranchConditional 117 100 101 + 100: Label + 119: 7(fvec4) Load 118(bigColor1_2) + 120: 7(fvec4) Load 9(color) + 121: 7(fvec4) FAdd 120 119 + Store 9(color) 121 + Branch 102 + 102: Label + Branch 99 + 101: Label + Branch 122 + 122: Label + LoopMerge 124 125 None + Branch 126 + 126: Label + 127: 22(ptr) AccessChain 9(color) 66 + 128: 6(float) Load 127 + 129: 6(float) Load 114(d3) + 130: 18(bool) FOrdLessThan 128 129 + BranchConditional 130 123 124 + 123: Label + 132: 7(fvec4) Load 131(bigColor1_3) + 133: 7(fvec4) Load 9(color) + 134: 7(fvec4) FAdd 133 132 + Store 9(color) 134 + 135: 22(ptr) AccessChain 9(color) 111 + 136: 6(float) Load 135 + 138: 6(float) Load 137(d4) + 139: 18(bool) FOrdLessThan 136 138 + SelectionMerge 141 None + BranchConditional 139 140 141 + 140: Label + Branch 124 + 141: Label + 143: 7(fvec4) Load 131(bigColor1_3) + 144: 7(fvec4) Load 9(color) + 145: 7(fvec4) FAdd 144 143 + Store 9(color) 145 + Branch 125 + 125: Label + Branch 122 + 124: Label + Store 148(i) 149 + Branch 150 + 150: Label + LoopMerge 152 153 None + Branch 154 + 154: Label + 155: 146(int) Load 148(i) + 158: 146(int) Load 157(Count) + 159: 18(bool) SLessThan 155 158 + BranchConditional 159 151 152 + 151: Label + 161: 7(fvec4) Load 160(bigColor2) + 162: 7(fvec4) Load 9(color) + 163: 7(fvec4) FAdd 162 161 + Store 9(color) 163 + Branch 153 + 153: Label + 164: 146(int) Load 148(i) + 166: 146(int) IAdd 164 165 + Store 148(i) 166 + Branch 150 + 152: Label + Branch 167 + 167: Label + LoopMerge 169 170 None + Branch 168 + 168: Label + 172: 7(fvec4) Load 171(bigColor3) + 173: 7(fvec4) Load 9(color) + 174: 7(fvec4) FAdd 173 172 + Store 9(color) 174 + Branch 170 + 170: Label + 175: 22(ptr) AccessChain 9(color) 21 + 176: 6(float) Load 175 + 177: 6(float) Load 106(d2) + 178: 18(bool) FOrdLessThan 176 177 + BranchConditional 178 167 169 + 169: Label + Store 179(i) 149 + Branch 180 + 180: Label + LoopMerge 182 183 None + Branch 184 + 184: Label + 185: 146(int) Load 179(i) + 187: 18(bool) SLessThan 185 186 + BranchConditional 187 181 182 + 181: Label + 188: 6(float) Load 114(d3) + 189: 22(ptr) AccessChain 9(color) 66 + 190: 6(float) Load 189 + 191: 6(float) FAdd 190 188 + 192: 22(ptr) AccessChain 9(color) 66 + Store 192 191 + Branch 183 + 183: Label + 193: 146(int) Load 179(i) + 194: 146(int) IAdd 193 165 + Store 179(i) 194 + Branch 180 + 182: Label + Store 195(i) 149 + Branch 196 + 196: Label + LoopMerge 198 199 None + Branch 200 + 200: Label + 201: 146(int) Load 195(i) + 203: 18(bool) SLessThan 201 202 + BranchConditional 203 197 198 + 197: Label + 204: 22(ptr) AccessChain 9(color) 66 + 205: 6(float) Load 204 + 207: 18(bool) FOrdLessThan 205 206 + SelectionMerge 209 None + BranchConditional 207 208 213 + 208: Label + 210: 22(ptr) AccessChain 9(color) 21 + 211: 6(float) Load 210 + 212: 6(float) FAdd 211 96 + Store 210 212 + Branch 209 + 213: Label + 214: 22(ptr) AccessChain 9(color) 111 + 215: 6(float) Load 214 + 216: 6(float) FAdd 215 96 + Store 214 216 + Branch 209 + 209: Label + 217: 22(ptr) AccessChain 9(color) 75 + 218: 6(float) Load 217 + 219: 18(bool) FOrdLessThan 218 206 + SelectionMerge 221 None + BranchConditional 219 220 221 + 220: Label + 222: 22(ptr) AccessChain 9(color) 66 + 223: 6(float) Load 222 + 224: 22(ptr) AccessChain 9(color) 111 + 225: 6(float) Load 224 + 226: 18(bool) FOrdGreaterThan 223 225 + SelectionMerge 228 None + BranchConditional 226 227 228 + 227: Label + Branch 228 + 228: Label + Branch 221 + 221: Label + Branch 199 + 199: Label + 229: 146(int) Load 195(i) + 230: 146(int) IAdd 229 165 + Store 195(i) 230 + Branch 196 + 198: Label + Store 231(i) 149 + Branch 232 + 232: Label + LoopMerge 234 235 None + Branch 236 + 236: Label + 237: 146(int) Load 231(i) + 239: 18(bool) SLessThan 237 238 + BranchConditional 239 233 234 + 233: Label + 240: 22(ptr) AccessChain 9(color) 66 + 241: 6(float) Load 240 + 242: 18(bool) FOrdLessThan 241 206 + SelectionMerge 244 None + BranchConditional 242 243 248 + 243: Label + 245: 22(ptr) AccessChain 9(color) 21 + 246: 6(float) Load 245 + 247: 6(float) FAdd 246 96 + Store 245 247 + Branch 244 + 248: Label + 249: 22(ptr) AccessChain 9(color) 111 + 250: 6(float) Load 249 + 251: 6(float) FAdd 250 96 + Store 249 251 + Branch 244 + 244: Label + Branch 235 + 235: Label + 252: 146(int) Load 231(i) + 253: 146(int) IAdd 252 165 + Store 231(i) 253 + Branch 232 + 234: Label + Store 254(i) 149 + Branch 255 + 255: Label + LoopMerge 257 258 None + Branch 259 + 259: Label + 260: 146(int) Load 254(i) + 261: 18(bool) SLessThan 260 186 + BranchConditional 261 256 257 + 256: Label + 262: 6(float) Load 114(d3) + 263: 22(ptr) AccessChain 9(color) 66 + 264: 6(float) Load 263 + 265: 6(float) FAdd 264 262 + 266: 22(ptr) AccessChain 9(color) 66 + Store 266 265 + 267: 22(ptr) AccessChain 9(color) 21 + 268: 6(float) Load 267 + 269: 6(float) Load 137(d4) + 270: 18(bool) FOrdLessThan 268 269 + SelectionMerge 272 None + BranchConditional 270 271 272 + 271: Label + Branch 258 + 272: Label + 274: 22(ptr) AccessChain 9(color) 75 + 275: 6(float) Load 274 + 276: 6(float) FAdd 275 96 + Store 274 276 + Branch 258 + 258: Label + 277: 146(int) Load 254(i) + 278: 146(int) IAdd 277 165 + Store 254(i) 278 + Branch 255 + 257: Label + Store 279(i) 149 + Branch 280 + 280: Label + LoopMerge 282 283 None + Branch 284 + 284: Label + 285: 146(int) Load 279(i) + 286: 18(bool) SLessThan 285 186 + BranchConditional 286 281 282 + 281: Label + 287: 6(float) Load 114(d3) + 288: 22(ptr) AccessChain 9(color) 66 + 289: 6(float) Load 288 + 290: 6(float) FAdd 289 287 + 291: 22(ptr) AccessChain 9(color) 66 + Store 291 290 + 292: 22(ptr) AccessChain 9(color) 21 + 293: 6(float) Load 292 + 294: 6(float) Load 137(d4) + 295: 18(bool) FOrdLessThan 293 294 + SelectionMerge 297 None + BranchConditional 295 296 297 + 296: Label + Branch 282 + 297: Label + 299: 22(ptr) AccessChain 9(color) 75 + 300: 6(float) Load 299 + 301: 6(float) FAdd 300 96 + Store 299 301 + Branch 283 + 283: Label + 302: 146(int) Load 279(i) + 303: 146(int) IAdd 302 165 + Store 279(i) 303 + Branch 280 + 282: Label + Branch 304 + 304: Label + LoopMerge 306 307 None + Branch 305 + 305: Label + 309: 7(fvec4) Load 308(bigColor4) + 310: 7(fvec4) Load 9(color) + 311: 7(fvec4) FAdd 310 309 + Store 9(color) 311 + 312: 22(ptr) AccessChain 9(color) 21 + 313: 6(float) Load 312 + 314: 6(float) Load 137(d4) + 315: 18(bool) FOrdLessThan 313 314 + SelectionMerge 317 None + BranchConditional 315 316 317 + 316: Label + Branch 307 + 317: Label + 319: 22(ptr) AccessChain 9(color) 111 + 320: 6(float) Load 319 + 321: 6(float) Load 137(d4) + 322: 18(bool) FOrdLessThan 320 321 + SelectionMerge 324 None + BranchConditional 322 323 330 + 323: Label + 325: 6(float) Load 137(d4) + 326: 22(ptr) AccessChain 9(color) 111 + 327: 6(float) Load 326 + 328: 6(float) FAdd 327 325 + 329: 22(ptr) AccessChain 9(color) 111 + Store 329 328 + Branch 324 + 330: Label + 331: 6(float) Load 137(d4) + 332: 22(ptr) AccessChain 9(color) 21 + 333: 6(float) Load 332 + 334: 6(float) FAdd 333 331 + 335: 22(ptr) AccessChain 9(color) 21 + Store 335 334 + Branch 324 + 324: Label + Branch 307 + 307: Label + 336: 22(ptr) AccessChain 9(color) 66 + 337: 6(float) Load 336 + 338: 6(float) Load 137(d4) + 339: 18(bool) FOrdLessThan 337 338 + BranchConditional 339 304 306 + 306: Label + Branch 340 + 340: Label + LoopMerge 342 343 None + Branch 341 + 341: Label + 345: 7(fvec4) Load 344(bigColor5) + 346: 7(fvec4) Load 9(color) + 347: 7(fvec4) FAdd 346 345 + Store 9(color) 347 + 348: 22(ptr) AccessChain 9(color) 111 + 349: 6(float) Load 348 + 351: 6(float) Load 350(d5) + 352: 18(bool) FOrdLessThan 349 351 + SelectionMerge 354 None + BranchConditional 352 353 354 + 353: Label + 355: 6(float) Load 350(d5) + 356: 22(ptr) AccessChain 9(color) 111 + 357: 6(float) Load 356 + 358: 6(float) FAdd 357 355 + 359: 22(ptr) AccessChain 9(color) 111 + Store 359 358 + Branch 354 + 354: Label + Branch 343 + 343: Label + 360: 22(ptr) AccessChain 9(color) 21 + 361: 6(float) Load 360 + 362: 6(float) Load 350(d5) + 363: 18(bool) FOrdLessThan 361 362 + BranchConditional 363 340 342 + 342: Label + 364: 22(ptr) AccessChain 9(color) 21 + 365: 6(float) Load 364 + 367: 6(float) Load 366(d6) + 368: 18(bool) FOrdLessThan 365 367 + SelectionMerge 370 None + BranchConditional 368 369 384 + 369: Label + Branch 371 + 371: Label + LoopMerge 373 374 None + Branch 375 + 375: Label + 376: 22(ptr) AccessChain 9(color) 111 + 377: 6(float) Load 376 + 378: 6(float) Load 366(d6) + 379: 18(bool) FOrdLessThan 377 378 + BranchConditional 379 372 373 + 372: Label + 381: 7(fvec4) Load 380(bigColor6) + 382: 7(fvec4) Load 9(color) + 383: 7(fvec4) FAdd 382 381 + Store 9(color) 383 + Branch 374 + 374: Label + Branch 371 + 373: Label + Branch 370 + 384: Label + Branch 385 + 385: Label + LoopMerge 387 388 None + Branch 389 + 389: Label + 390: 22(ptr) AccessChain 9(color) 66 + 391: 6(float) Load 390 + 392: 6(float) Load 366(d6) + 393: 18(bool) FOrdLessThan 391 392 + BranchConditional 393 386 387 + 386: Label + 394: 53(ptr) AccessChain 380(bigColor6) 66 + 395: 6(float) Load 394 + 396: 22(ptr) AccessChain 9(color) 66 + 397: 6(float) Load 396 + 398: 6(float) FAdd 397 395 + 399: 22(ptr) AccessChain 9(color) 66 + Store 399 398 + Branch 388 + 388: Label + Branch 385 + 387: Label + Branch 370 + 370: Label + 400: 22(ptr) AccessChain 9(color) 21 + 401: 6(float) Load 400 + 402: 6(float) Load 366(d6) + 403: 18(bool) FOrdLessThan 401 402 + SelectionMerge 405 None + BranchConditional 403 404 424 + 404: Label + Branch 406 + 406: Label + LoopMerge 408 409 None + Branch 410 + 410: Label + 411: 22(ptr) AccessChain 9(color) 111 + 412: 6(float) Load 411 + 413: 6(float) Load 366(d6) + 414: 18(bool) FOrdLessThan 412 413 + BranchConditional 414 407 408 + 407: Label + 415: 7(fvec4) Load 380(bigColor6) + 416: 7(fvec4) Load 9(color) + 417: 7(fvec4) FAdd 416 415 + Store 9(color) 417 + 419: 6(float) Load 418(d7) + 420: 18(bool) FOrdLessThan 419 96 + SelectionMerge 422 None + BranchConditional 420 421 422 + 421: Label + Branch 408 + 422: Label + Branch 409 + 409: Label + Branch 406 + 408: Label + Branch 405 + 424: Label + Branch 425 + 425: Label + LoopMerge 427 428 None + Branch 429 + 429: Label + 430: 22(ptr) AccessChain 9(color) 66 + 431: 6(float) Load 430 + 432: 6(float) Load 366(d6) + 433: 18(bool) FOrdLessThan 431 432 + BranchConditional 433 426 427 + 426: Label + 434: 53(ptr) AccessChain 380(bigColor6) 66 + 435: 6(float) Load 434 + 436: 22(ptr) AccessChain 9(color) 66 + 437: 6(float) Load 436 + 438: 6(float) FAdd 437 435 + 439: 22(ptr) AccessChain 9(color) 66 + Store 439 438 + Branch 428 + 428: Label + Branch 425 + 427: Label + Branch 405 + 405: Label + Branch 440 + 440: Label + LoopMerge 442 443 None + Branch 441 + 441: Label + 444: 6(float) Load 418(d7) + 446: 18(bool) FOrdLessThan 444 445 + SelectionMerge 448 None + BranchConditional 446 447 448 + 447: Label + Branch 442 + 448: Label + 451: 7(fvec4) Load 450(bigColor7) + 452: 7(fvec4) Load 9(color) + 453: 7(fvec4) FAdd 452 451 + Store 9(color) 453 + 454: 6(float) Load 418(d7) + 455: 18(bool) FOrdLessThan 454 96 + SelectionMerge 457 None + BranchConditional 455 456 457 + 456: Label + 458: 22(ptr) AccessChain 9(color) 66 + 459: 6(float) Load 458 + 460: 6(float) FAdd 459 96 + Store 458 460 + Branch 442 + 457: Label + 462: 7(fvec4) Load 11(BaseColor) + 463: 7(fvec4) Load 9(color) + 464: 7(fvec4) FAdd 463 462 + Store 9(color) 464 + Branch 443 + 443: Label + BranchConditional 19 440 442 + 442: Label + Branch 465 + 465: Label + LoopMerge 467 468 None + Branch 466 + 466: Label + 470: 6(float) Load 469(d8) + 471: 18(bool) FOrdLessThan 470 445 + SelectionMerge 473 None + BranchConditional 471 472 473 + 472: Label + Branch 467 + 473: Label + 475: 7(fvec4) Load 450(bigColor7) + 476: 7(fvec4) Load 9(color) + 477: 7(fvec4) FAdd 476 475 + Store 9(color) 477 + 478: 6(float) Load 469(d8) + 479: 18(bool) FOrdLessThan 478 96 + SelectionMerge 481 None + BranchConditional 479 480 481 + 480: Label + 482: 22(ptr) AccessChain 9(color) 66 + 483: 6(float) Load 482 + 484: 6(float) FAdd 483 96 + Store 482 484 + 485: 6(float) Load 469(d8) + 487: 18(bool) FOrdLessThan 485 486 + SelectionMerge 489 None + BranchConditional 487 488 493 + 488: Label + 490: 22(ptr) AccessChain 9(color) 111 + 491: 6(float) Load 490 + 492: 6(float) FAdd 491 96 + Store 490 492 + Branch 489 + 493: Label + 494: 22(ptr) AccessChain 9(color) 21 + 495: 6(float) Load 494 + 496: 6(float) FAdd 495 96 + Store 494 496 + Branch 489 + 489: Label + Branch 467 + 481: Label + 498: 7(fvec4) Load 11(BaseColor) + 499: 7(fvec4) Load 9(color) + 500: 7(fvec4) FAdd 499 498 + Store 9(color) 500 + Branch 468 + 468: Label + 501: 22(ptr) AccessChain 9(color) 66 + 502: 6(float) Load 501 + 503: 6(float) Load 469(d8) + 504: 18(bool) FOrdLessThan 502 503 + BranchConditional 504 465 467 + 467: Label + Branch 505 + 505: Label + LoopMerge 507 508 None + Branch 509 + 509: Label + 510: 22(ptr) AccessChain 9(color) 75 + 511: 6(float) Load 510 + 513: 6(float) Load 512(d9) + 514: 18(bool) FOrdLessThan 511 513 + BranchConditional 514 506 507 + 506: Label + 515: 6(float) Load 512(d9) + 516: 6(float) Load 469(d8) + 517: 18(bool) FOrdGreaterThan 515 516 + SelectionMerge 519 None + BranchConditional 517 518 519 + 518: Label + 520: 22(ptr) AccessChain 9(color) 21 + 521: 6(float) Load 520 + 522: 6(float) Load 418(d7) + 523: 18(bool) FOrdLessThanEqual 521 522 + SelectionMerge 525 None + BranchConditional 523 524 525 + 524: Label + 526: 22(ptr) AccessChain 9(color) 66 + 527: 6(float) Load 526 + 529: 18(bool) FOrdEqual 527 528 + SelectionMerge 531 None + BranchConditional 529 530 535 + 530: Label + 532: 22(ptr) AccessChain 9(color) 75 + 533: 6(float) Load 532 + 534: 6(float) FAdd 533 96 + Store 532 534 + Branch 531 + 535: Label + Branch 507 + 531: Label + Branch 525 + 525: Label + Branch 519 + 519: Label + Branch 508 + 508: Label + Branch 505 + 507: Label + Branch 537 + 537: Label + LoopMerge 539 540 None + Branch 541 + 541: Label + 542: 22(ptr) AccessChain 9(color) 66 + 543: 6(float) Load 542 + 545: 6(float) Load 544(d10) + 546: 18(bool) FOrdLessThan 543 545 + BranchConditional 546 538 539 + 538: Label + 547: 22(ptr) AccessChain 9(color) 111 + 548: 6(float) Load 547 + 549: 6(float) FAdd 548 96 + Store 547 549 + 550: 22(ptr) AccessChain 9(color) 111 + 551: 6(float) Load 550 + 553: 6(float) Load 552(d11) + 554: 18(bool) FOrdLessThan 551 553 + SelectionMerge 556 None + BranchConditional 554 555 556 + 555: Label + 557: 22(ptr) AccessChain 9(color) 66 + 558: 6(float) Load 557 + 559: 6(float) FAdd 558 96 + Store 557 559 + 560: 22(ptr) AccessChain 9(color) 75 + 561: 6(float) Load 560 + 563: 6(float) Load 562(d12) + 564: 18(bool) FOrdLessThan 561 563 + SelectionMerge 566 None + BranchConditional 564 565 570 + 565: Label + 567: 22(ptr) AccessChain 9(color) 75 + 568: 6(float) Load 567 + 569: 6(float) FAdd 568 96 + Store 567 569 + Branch 566 + 570: Label + 571: 22(ptr) AccessChain 9(color) 21 + 572: 6(float) Load 571 + 573: 6(float) FAdd 572 96 + Store 571 573 + Branch 566 + 566: Label + Branch 540 + 556: Label + 575: 7(fvec4) Load 9(color) + 576: 7(fvec4) CompositeConstruct 96 96 96 96 + 577: 7(fvec4) FAdd 575 576 + Store 9(color) 577 + Branch 539 + 540: Label + Branch 537 + 539: Label + Branch 579 + 579: Label + LoopMerge 581 582 None + Branch 583 + 583: Label + 584: 22(ptr) AccessChain 9(color) 21 + 585: 6(float) Load 584 + 587: 18(bool) FOrdLessThan 585 586 + BranchConditional 587 580 581 + 580: Label + 589: 7(fvec4) Load 588(bigColor8) + 590: 7(fvec4) Load 9(color) + 591: 7(fvec4) FAdd 590 589 + Store 9(color) 591 + 592: 22(ptr) AccessChain 9(color) 66 + 593: 6(float) Load 592 + 594: 6(float) Load 469(d8) + 595: 18(bool) FOrdLessThan 593 594 + SelectionMerge 597 None + BranchConditional 595 596 597 + 596: Label + 598: 22(ptr) AccessChain 9(color) 75 + 599: 6(float) Load 598 + 600: 6(float) Load 366(d6) + 601: 18(bool) FOrdLessThan 599 600 + SelectionMerge 603 None + BranchConditional 601 602 603 + 602: Label + Branch 582 + 603: Label + Branch 597 + 597: Label + 605: 53(ptr) AccessChain 588(bigColor8) 21 + 606: 6(float) Load 605 + 607: 22(ptr) AccessChain 9(color) 111 + 608: 6(float) Load 607 + 609: 6(float) FAdd 608 606 + 610: 22(ptr) AccessChain 9(color) 111 + Store 610 609 + Branch 582 + 582: Label + Branch 579 + 581: Label + 611: 7(fvec4) Load 9(color) + 612: 7(fvec4) CompositeConstruct 96 96 96 96 + 613: 7(fvec4) FAdd 611 612 + Store 9(color) 613 + 616: 7(fvec4) Load 9(color) + Store 615(gl_FragColor) 616 + Branch 617 + 617: Label + LoopMerge 619 620 None + Branch 621 + 621: Label + 622: 22(ptr) AccessChain 9(color) 21 + 623: 6(float) Load 622 + 625: 6(float) Load 624(d14) + 626: 18(bool) FOrdLessThan 623 625 + BranchConditional 626 618 619 + 618: Label + 627: 22(ptr) AccessChain 9(color) 111 + 628: 6(float) Load 627 + 630: 6(float) Load 629(d15) + 631: 18(bool) FOrdLessThan 628 630 + SelectionMerge 633 None + BranchConditional 631 632 635 + 632: Label + Return + 635: Label + 636: 7(fvec4) Load 9(color) + 637: 7(fvec4) CompositeConstruct 96 96 96 96 + 638: 7(fvec4) FAdd 636 637 + Store 9(color) 638 + Branch 633 + 633: Label + Branch 620 + 620: Label + Branch 617 + 619: Label + 639: 7(fvec4) Load 9(color) + 640: 7(fvec4) CompositeConstruct 96 96 96 96 + 641: 7(fvec4) FAdd 639 640 + Store 9(color) 641 + Branch 642 + 642: Label + LoopMerge 644 645 None + Branch 646 + 646: Label + 647: 22(ptr) AccessChain 9(color) 75 + 648: 6(float) Load 647 + 650: 6(float) Load 649(d16) + 651: 18(bool) FOrdLessThan 648 650 + BranchConditional 651 643 644 + 643: Label + 652: 22(ptr) AccessChain 9(color) 75 + 653: 6(float) Load 652 + 654: 6(float) FAdd 653 96 + Store 652 654 + Branch 645 + 645: Label + Branch 642 + 644: Label + Branch 655 + 655: Label + LoopMerge 657 658 None + Branch 659 + 659: Label + 660: 22(ptr) AccessChain 9(color) 75 + 661: 6(float) Load 660 + 662: 6(float) Load 106(d2) + 663: 18(bool) FOrdLessThan 661 662 + SelectionMerge 665 None + BranchConditional 663 664 665 + 664: Label + 666: 22(ptr) AccessChain 9(color) 111 + 667: 6(float) Load 666 + 668: 6(float) Load 114(d3) + 669: 18(bool) FOrdLessThan 667 668 + Branch 665 + 665: Label + 670: 18(bool) Phi 663 659 669 664 + BranchConditional 670 656 657 + 656: Label + 671: 7(fvec4) Load 118(bigColor1_2) + 672: 7(fvec4) Load 9(color) + 673: 7(fvec4) FAdd 672 671 + Store 9(color) 673 + 674: 22(ptr) AccessChain 9(color) 66 + 675: 6(float) Load 674 + 676: 6(float) Load 114(d3) + 677: 18(bool) FOrdLessThan 675 676 + SelectionMerge 679 None + BranchConditional 677 678 679 + 678: Label + Return + 679: Label + Branch 658 + 658: Label + Branch 655 + 657: Label + Branch 681 + 681: Label + LoopMerge 683 684 None + Branch 682 + 682: Label + 685: 22(ptr) AccessChain 9(color) 111 + 686: 6(float) Load 685 + 688: 6(float) Load 687(d18) + 689: 18(bool) FOrdLessThan 686 688 + SelectionMerge 691 None + BranchConditional 689 690 691 + 690: Label + Return + 691: Label + 693: 7(fvec4) Load 9(color) + 694: 7(fvec4) CompositeConstruct 96 96 96 96 + 695: 7(fvec4) FAdd 693 694 + Store 9(color) 695 + Branch 684 + 684: Label + 696: 22(ptr) AccessChain 9(color) 21 + 697: 6(float) Load 696 + 699: 6(float) Load 698(d17) + 700: 18(bool) FOrdLessThan 697 699 + BranchConditional 700 681 683 + 683: Label + Branch 701 + 701: Label + LoopMerge 703 704 None + Branch 705 + 705: Label + 706: 22(ptr) AccessChain 9(color) 111 + 707: 6(float) Load 706 + 708: 6(float) Load 649(d16) + 709: 18(bool) FOrdLessThan 707 708 + BranchConditional 709 702 703 + 702: Label + 710: 22(ptr) AccessChain 9(color) 75 + 711: 6(float) Load 710 + 712: 6(float) Load 649(d16) + 713: 18(bool) FOrdLessThan 711 712 + SelectionMerge 715 None + BranchConditional 713 714 717 + 714: Label + Kill + 717: Label + 718: 7(fvec4) Load 9(color) + 719: 7(fvec4) CompositeConstruct 96 96 96 96 + 720: 7(fvec4) FAdd 718 719 + Store 9(color) 720 + Branch 715 + 715: Label + Branch 704 + 704: Label + Branch 701 + 703: Label + 721: 7(fvec4) Load 9(color) + 722: 7(fvec4) CompositeConstruct 96 96 96 96 + 723: 7(fvec4) FAdd 721 722 + Store 9(color) 723 + 724: 7(fvec4) Load 9(color) + Store 615(gl_FragColor) 724 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out b/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out new file mode 100644 index 0000000000..d0d60542f8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.loopsArtificial.frag.out @@ -0,0 +1,240 @@ +spv.loopsArtificial.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 158 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 17 27 80 140 142 143 144 145 146 147 148 149 150 151 152 153 154 157 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 17 "bigColor4" + Name 27 "d4" + Name 80 "d13" + Name 140 "gl_FragColor" + Name 142 "bigColor" + Name 143 "bigColor1_1" + Name 144 "bigColor1_2" + Name 145 "bigColor1_3" + Name 146 "bigColor2" + Name 147 "bigColor3" + Name 148 "bigColor5" + Name 149 "bigColor6" + Name 150 "bigColor7" + Name 151 "bigColor8" + Name 152 "d" + Name 153 "d2" + Name 154 "d3" + Name 157 "Count" + Decorate 140(gl_FragColor) Location 0 + Decorate 157(Count) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 17(bigColor4): 10(ptr) Variable Input + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 26: TypePointer Input 6(float) + 27(d4): 26(ptr) Variable Input + 29: TypeBool + 33: 6(float) Constant 1073741824 + 34: 21(int) Constant 2 + 47: 6(float) Constant 1065353216 + 50: 21(int) Constant 1 + 77: 21(int) Constant 3 + 80(d13): 26(ptr) Variable Input + 139: TypePointer Output 7(fvec4) +140(gl_FragColor): 139(ptr) Variable Output + 142(bigColor): 10(ptr) Variable Input +143(bigColor1_1): 10(ptr) Variable Input +144(bigColor1_2): 10(ptr) Variable Input +145(bigColor1_3): 10(ptr) Variable Input + 146(bigColor2): 10(ptr) Variable Input + 147(bigColor3): 10(ptr) Variable Input + 148(bigColor5): 10(ptr) Variable Input + 149(bigColor6): 10(ptr) Variable Input + 150(bigColor7): 10(ptr) Variable Input + 151(bigColor8): 10(ptr) Variable Input + 152(d): 26(ptr) Variable Input + 153(d2): 26(ptr) Variable Input + 154(d3): 26(ptr) Variable Input + 155: TypeInt 32 1 + 156: TypePointer Input 155(int) + 157(Count): 156(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 14 + 14: Label + 18: 7(fvec4) Load 17(bigColor4) + 19: 7(fvec4) Load 9(color) + 20: 7(fvec4) FAdd 19 18 + Store 9(color) 20 + 24: 23(ptr) AccessChain 9(color) 22 + 25: 6(float) Load 24 + 28: 6(float) Load 27(d4) + 30: 29(bool) FOrdLessThan 25 28 + SelectionMerge 32 None + BranchConditional 30 31 32 + 31: Label + 35: 23(ptr) AccessChain 9(color) 34 + 36: 6(float) Load 35 + 37: 6(float) FAdd 36 33 + 38: 23(ptr) AccessChain 9(color) 34 + Store 38 37 + 39: 23(ptr) AccessChain 9(color) 34 + 40: 6(float) Load 39 + 41: 6(float) Load 27(d4) + 42: 29(bool) FOrdLessThan 40 41 + SelectionMerge 44 None + BranchConditional 42 43 44 + 43: Label + 45: 23(ptr) AccessChain 9(color) 22 + 46: 6(float) Load 45 + 48: 6(float) FAdd 46 47 + Store 45 48 + Branch 16 + 44: Label + Branch 32 + 32: Label + 51: 23(ptr) AccessChain 9(color) 50 + 52: 6(float) Load 51 + 53: 6(float) Load 27(d4) + 54: 29(bool) FOrdLessThan 52 53 + SelectionMerge 56 None + BranchConditional 54 55 62 + 55: Label + 57: 6(float) Load 27(d4) + 58: 23(ptr) AccessChain 9(color) 50 + 59: 6(float) Load 58 + 60: 6(float) FAdd 59 57 + 61: 23(ptr) AccessChain 9(color) 50 + Store 61 60 + Branch 56 + 62: Label + 63: 6(float) Load 27(d4) + 64: 23(ptr) AccessChain 9(color) 22 + 65: 6(float) Load 64 + 66: 6(float) FAdd 65 63 + 67: 23(ptr) AccessChain 9(color) 22 + Store 67 66 + Branch 56 + 56: Label + Branch 16 + 16: Label + 68: 23(ptr) AccessChain 9(color) 34 + 69: 6(float) Load 68 + 70: 6(float) Load 27(d4) + 71: 29(bool) FOrdLessThan 69 70 + BranchConditional 71 13 15 + 15: Label + Branch 72 + 72: Label + LoopMerge 74 75 None + Branch 76 + 76: Label + 78: 23(ptr) AccessChain 9(color) 77 + 79: 6(float) Load 78 + 81: 6(float) Load 80(d13) + 82: 29(bool) FOrdLessThan 79 81 + BranchConditional 82 73 74 + 73: Label + 83: 23(ptr) AccessChain 9(color) 34 + 84: 6(float) Load 83 + 85: 6(float) Load 80(d13) + 86: 29(bool) FOrdLessThan 84 85 + SelectionMerge 88 None + BranchConditional 86 87 92 + 87: Label + 89: 7(fvec4) Load 9(color) + 90: 7(fvec4) CompositeConstruct 47 47 47 47 + 91: 7(fvec4) FAdd 89 90 + Store 9(color) 91 + Branch 88 + 92: Label + 93: 7(fvec4) Load 9(color) + 94: 7(fvec4) CompositeConstruct 47 47 47 47 + 95: 7(fvec4) FSub 93 94 + Store 9(color) 95 + Branch 88 + 88: Label + 96: 7(fvec4) Load 17(bigColor4) + 97: 7(fvec4) Load 9(color) + 98: 7(fvec4) FAdd 97 96 + Store 9(color) 98 + 99: 23(ptr) AccessChain 9(color) 22 + 100: 6(float) Load 99 + 101: 6(float) Load 27(d4) + 102: 29(bool) FOrdLessThan 100 101 + SelectionMerge 104 None + BranchConditional 102 103 104 + 103: Label + 105: 23(ptr) AccessChain 9(color) 34 + 106: 6(float) Load 105 + 107: 6(float) FAdd 106 33 + 108: 23(ptr) AccessChain 9(color) 34 + Store 108 107 + 109: 23(ptr) AccessChain 9(color) 34 + 110: 6(float) Load 109 + 111: 6(float) Load 27(d4) + 112: 29(bool) FOrdLessThan 110 111 + SelectionMerge 114 None + BranchConditional 112 113 114 + 113: Label + 115: 23(ptr) AccessChain 9(color) 22 + 116: 6(float) Load 115 + 117: 6(float) FAdd 116 47 + Store 115 117 + Branch 75 + 114: Label + Branch 104 + 104: Label + 119: 23(ptr) AccessChain 9(color) 50 + 120: 6(float) Load 119 + 121: 6(float) Load 27(d4) + 122: 29(bool) FOrdLessThan 120 121 + SelectionMerge 124 None + BranchConditional 122 123 130 + 123: Label + 125: 6(float) Load 27(d4) + 126: 23(ptr) AccessChain 9(color) 50 + 127: 6(float) Load 126 + 128: 6(float) FAdd 127 125 + 129: 23(ptr) AccessChain 9(color) 50 + Store 129 128 + Branch 124 + 130: Label + 131: 6(float) Load 27(d4) + 132: 23(ptr) AccessChain 9(color) 22 + 133: 6(float) Load 132 + 134: 6(float) FAdd 133 131 + 135: 23(ptr) AccessChain 9(color) 22 + Store 135 134 + Branch 124 + 124: Label + Branch 75 + 75: Label + Branch 72 + 74: Label + 136: 7(fvec4) Load 9(color) + 137: 7(fvec4) CompositeConstruct 47 47 47 47 + 138: 7(fvec4) FAdd 136 137 + Store 9(color) 138 + 141: 7(fvec4) Load 9(color) + Store 140(gl_FragColor) 141 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out b/deps/glslang/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out new file mode 100644 index 0000000000..55d1639cb2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out @@ -0,0 +1,8 @@ +spv.looseUniformNoLoc.vert +ERROR: spv.looseUniformNoLoc.vert:9: 'uv' : non-opaque uniform variables need a layout(location=L) +ERROR: 1 compilation errors. No code generated. + + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out b/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out new file mode 100644 index 0000000000..47b692f725 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.matFun.vert.out @@ -0,0 +1,155 @@ +spv.matFun.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 103 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 76 81 + Source GLSL 400 + Name 4 "main" + Name 14 "xf(mf33;vf3;" + Name 12 "m" + Name 13 "v" + Name 21 "Mat3(mf44;" + Name 20 "m" + Name 26 "mxv(mf44;vf3;" + Name 24 "m4" + Name 25 "v" + Name 65 "param" + Name 74 "gl_PerVertex" + MemberName 74(gl_PerVertex) 0 "gl_Position" + MemberName 74(gl_PerVertex) 1 "gl_PointSize" + MemberName 74(gl_PerVertex) 2 "gl_ClipDistance" + Name 76 "" + Name 77 "bl" + MemberName 77(bl) 0 "m4" + MemberName 77(bl) 1 "m3" + Name 79 "bName" + Name 81 "v3" + Name 82 "param" + Name 86 "param" + Name 89 "param" + Name 93 "param" + MemberDecorate 74(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 74(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 74(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 74(gl_PerVertex) Block + MemberDecorate 77(bl) 0 ColMajor + MemberDecorate 77(bl) 0 Offset 0 + MemberDecorate 77(bl) 0 MatrixStride 16 + MemberDecorate 77(bl) 1 ColMajor + MemberDecorate 77(bl) 1 Offset 64 + MemberDecorate 77(bl) 1 MatrixStride 16 + Decorate 77(bl) Block + Decorate 79(bName) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeMatrix 7(fvec3) 3 + 9: TypePointer Function 8 + 10: TypePointer Function 7(fvec3) + 11: TypeFunction 7(fvec3) 9(ptr) 10(ptr) + 16: TypeVector 6(float) 4 + 17: TypeMatrix 16(fvec4) 4 + 18: TypePointer Function 17 + 19: TypeFunction 8 18(ptr) + 23: TypeFunction 7(fvec3) 18(ptr) 10(ptr) + 33: TypeInt 32 1 + 34: 33(int) Constant 0 + 35: TypePointer Function 16(fvec4) + 39: 33(int) Constant 1 + 43: 33(int) Constant 2 + 47: 6(float) Constant 1065353216 + 48: 6(float) Constant 0 + 71: TypeInt 32 0 + 72: 71(int) Constant 1 + 73: TypeArray 6(float) 72 +74(gl_PerVertex): TypeStruct 16(fvec4) 6(float) 73 + 75: TypePointer Output 74(gl_PerVertex) + 76: 75(ptr) Variable Output + 77(bl): TypeStruct 17 8 + 78: TypePointer Uniform 77(bl) + 79(bName): 78(ptr) Variable Uniform + 80: TypePointer Input 7(fvec3) + 81(v3): 80(ptr) Variable Input + 83: TypePointer Uniform 17 + 90: TypePointer Uniform 8 + 101: TypePointer Output 16(fvec4) + 4(main): 2 Function None 3 + 5: Label + 82(param): 18(ptr) Variable Function + 86(param): 10(ptr) Variable Function + 89(param): 9(ptr) Variable Function + 93(param): 10(ptr) Variable Function + 84: 83(ptr) AccessChain 79(bName) 34 + 85: 17 Load 84 + Store 82(param) 85 + 87: 7(fvec3) Load 81(v3) + Store 86(param) 87 + 88: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 82(param) 86(param) + 91: 90(ptr) AccessChain 79(bName) 39 + 92: 8 Load 91 + Store 89(param) 92 + 94: 7(fvec3) Load 81(v3) + Store 93(param) 94 + 95: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 89(param) 93(param) + 96: 7(fvec3) FAdd 88 95 + 97: 6(float) CompositeExtract 96 0 + 98: 6(float) CompositeExtract 96 1 + 99: 6(float) CompositeExtract 96 2 + 100: 16(fvec4) CompositeConstruct 97 98 99 47 + 102: 101(ptr) AccessChain 76 34 + Store 102 100 + Return + FunctionEnd +14(xf(mf33;vf3;): 7(fvec3) Function None 11 + 12(m): 9(ptr) FunctionParameter + 13(v): 10(ptr) FunctionParameter + 15: Label + 28: 7(fvec3) Load 13(v) + 29: 8 Load 12(m) + 30: 7(fvec3) VectorTimesMatrix 28 29 + ReturnValue 30 + FunctionEnd + 21(Mat3(mf44;): 8 Function None 19 + 20(m): 18(ptr) FunctionParameter + 22: Label + 36: 35(ptr) AccessChain 20(m) 34 + 37: 16(fvec4) Load 36 + 38: 7(fvec3) VectorShuffle 37 37 0 1 2 + 40: 35(ptr) AccessChain 20(m) 39 + 41: 16(fvec4) Load 40 + 42: 7(fvec3) VectorShuffle 41 41 0 1 2 + 44: 35(ptr) AccessChain 20(m) 43 + 45: 16(fvec4) Load 44 + 46: 7(fvec3) VectorShuffle 45 45 0 1 2 + 49: 6(float) CompositeExtract 38 0 + 50: 6(float) CompositeExtract 38 1 + 51: 6(float) CompositeExtract 38 2 + 52: 6(float) CompositeExtract 42 0 + 53: 6(float) CompositeExtract 42 1 + 54: 6(float) CompositeExtract 42 2 + 55: 6(float) CompositeExtract 46 0 + 56: 6(float) CompositeExtract 46 1 + 57: 6(float) CompositeExtract 46 2 + 58: 7(fvec3) CompositeConstruct 49 50 51 + 59: 7(fvec3) CompositeConstruct 52 53 54 + 60: 7(fvec3) CompositeConstruct 55 56 57 + 61: 8 CompositeConstruct 58 59 60 + ReturnValue 61 + FunctionEnd +26(mxv(mf44;vf3;): 7(fvec3) Function None 23 + 24(m4): 18(ptr) FunctionParameter + 25(v): 10(ptr) FunctionParameter + 27: Label + 65(param): 18(ptr) Variable Function + 64: 7(fvec3) Load 25(v) + 66: 17 Load 24(m4) + Store 65(param) 66 + 67: 8 FunctionCall 21(Mat3(mf44;) 65(param) + 68: 7(fvec3) VectorTimesMatrix 64 67 + ReturnValue 68 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out b/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out new file mode 100644 index 0000000000..c2b4a1f6c8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.matrix.frag.out @@ -0,0 +1,334 @@ +spv.matrix.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 286 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 14 28 161 169 187 + ExecutionMode 4 OriginUpperLeft + Source GLSL 420 + Name 4 "main" + Name 10 "sum34" + Name 12 "m1" + Name 14 "m2" + Name 28 "f" + Name 140 "dm" + Name 159 "sum3" + Name 161 "v4" + Name 166 "sum4" + Name 169 "v3" + Name 174 "m43" + Name 179 "m4" + Name 187 "color" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeMatrix 7(fvec4) 3 + 9: TypePointer Function 8 + 11: TypePointer Input 8 + 12(m1): 11(ptr) Variable Input + 14(m2): 11(ptr) Variable Input + 27: TypePointer Input 6(float) + 28(f): 27(ptr) Variable Input + 81: 6(float) Constant 1065353216 + 136: TypeFloat 64 + 137: TypeVector 136(float64_t) 4 + 138: TypeMatrix 137(f64vec4) 3 + 139: TypePointer Function 138 + 157: TypeVector 6(float) 3 + 158: TypePointer Function 157(fvec3) + 160: TypePointer Input 7(fvec4) + 161(v4): 160(ptr) Variable Input + 165: TypePointer Function 7(fvec4) + 168: TypePointer Input 157(fvec3) + 169(v3): 168(ptr) Variable Input + 172: TypeMatrix 157(fvec3) 4 + 173: TypePointer Function 172 + 177: TypeMatrix 7(fvec4) 4 + 178: TypePointer Function 177 + 186: TypePointer Output 7(fvec4) + 187(color): 186(ptr) Variable Output + 208: 6(float) Constant 0 + 270: TypeVector 6(float) 2 + 271: TypeMatrix 270(fvec2) 2 + 279: 6(float) Constant 1088841318 + 4(main): 2 Function None 3 + 5: Label + 10(sum34): 9(ptr) Variable Function + 140(dm): 139(ptr) Variable Function + 159(sum3): 158(ptr) Variable Function + 166(sum4): 165(ptr) Variable Function + 174(m43): 173(ptr) Variable Function + 179(m4): 178(ptr) Variable Function + 13: 8 Load 12(m1) + 15: 8 Load 14(m2) + 16: 7(fvec4) CompositeExtract 13 0 + 17: 7(fvec4) CompositeExtract 15 0 + 18: 7(fvec4) FSub 16 17 + 19: 7(fvec4) CompositeExtract 13 1 + 20: 7(fvec4) CompositeExtract 15 1 + 21: 7(fvec4) FSub 19 20 + 22: 7(fvec4) CompositeExtract 13 2 + 23: 7(fvec4) CompositeExtract 15 2 + 24: 7(fvec4) FSub 22 23 + 25: 8 CompositeConstruct 18 21 24 + Store 10(sum34) 25 + 26: 8 Load 12(m1) + 29: 6(float) Load 28(f) + 30: 8 MatrixTimesScalar 26 29 + 31: 8 Load 10(sum34) + 32: 7(fvec4) CompositeExtract 31 0 + 33: 7(fvec4) CompositeExtract 30 0 + 34: 7(fvec4) FAdd 32 33 + 35: 7(fvec4) CompositeExtract 31 1 + 36: 7(fvec4) CompositeExtract 30 1 + 37: 7(fvec4) FAdd 35 36 + 38: 7(fvec4) CompositeExtract 31 2 + 39: 7(fvec4) CompositeExtract 30 2 + 40: 7(fvec4) FAdd 38 39 + 41: 8 CompositeConstruct 34 37 40 + Store 10(sum34) 41 + 42: 6(float) Load 28(f) + 43: 8 Load 12(m1) + 44: 8 MatrixTimesScalar 43 42 + 45: 8 Load 10(sum34) + 46: 7(fvec4) CompositeExtract 45 0 + 47: 7(fvec4) CompositeExtract 44 0 + 48: 7(fvec4) FAdd 46 47 + 49: 7(fvec4) CompositeExtract 45 1 + 50: 7(fvec4) CompositeExtract 44 1 + 51: 7(fvec4) FAdd 49 50 + 52: 7(fvec4) CompositeExtract 45 2 + 53: 7(fvec4) CompositeExtract 44 2 + 54: 7(fvec4) FAdd 52 53 + 55: 8 CompositeConstruct 48 51 54 + Store 10(sum34) 55 + 56: 8 Load 12(m1) + 57: 8 Load 14(m2) + 58: 7(fvec4) CompositeExtract 56 0 + 59: 7(fvec4) CompositeExtract 57 0 + 60: 7(fvec4) FMul 58 59 + 61: 7(fvec4) CompositeExtract 56 1 + 62: 7(fvec4) CompositeExtract 57 1 + 63: 7(fvec4) FMul 61 62 + 64: 7(fvec4) CompositeExtract 56 2 + 65: 7(fvec4) CompositeExtract 57 2 + 66: 7(fvec4) FMul 64 65 + 67: 8 CompositeConstruct 60 63 66 + 68: 8 Load 10(sum34) + 69: 7(fvec4) CompositeExtract 68 0 + 70: 7(fvec4) CompositeExtract 67 0 + 71: 7(fvec4) FDiv 69 70 + 72: 7(fvec4) CompositeExtract 68 1 + 73: 7(fvec4) CompositeExtract 67 1 + 74: 7(fvec4) FDiv 72 73 + 75: 7(fvec4) CompositeExtract 68 2 + 76: 7(fvec4) CompositeExtract 67 2 + 77: 7(fvec4) FDiv 75 76 + 78: 8 CompositeConstruct 71 74 77 + Store 10(sum34) 78 + 79: 8 Load 12(m1) + 80: 6(float) Load 28(f) + 82: 6(float) FDiv 81 80 + 83: 8 MatrixTimesScalar 79 82 + 84: 8 Load 10(sum34) + 85: 7(fvec4) CompositeExtract 84 0 + 86: 7(fvec4) CompositeExtract 83 0 + 87: 7(fvec4) FAdd 85 86 + 88: 7(fvec4) CompositeExtract 84 1 + 89: 7(fvec4) CompositeExtract 83 1 + 90: 7(fvec4) FAdd 88 89 + 91: 7(fvec4) CompositeExtract 84 2 + 92: 7(fvec4) CompositeExtract 83 2 + 93: 7(fvec4) FAdd 91 92 + 94: 8 CompositeConstruct 87 90 93 + Store 10(sum34) 94 + 95: 6(float) Load 28(f) + 96: 8 Load 12(m1) + 97: 7(fvec4) CompositeConstruct 95 95 95 95 + 98: 7(fvec4) CompositeExtract 96 0 + 99: 7(fvec4) FDiv 97 98 + 100: 7(fvec4) CompositeExtract 96 1 + 101: 7(fvec4) FDiv 97 100 + 102: 7(fvec4) CompositeExtract 96 2 + 103: 7(fvec4) FDiv 97 102 + 104: 8 CompositeConstruct 99 101 103 + 105: 8 Load 10(sum34) + 106: 7(fvec4) CompositeExtract 105 0 + 107: 7(fvec4) CompositeExtract 104 0 + 108: 7(fvec4) FAdd 106 107 + 109: 7(fvec4) CompositeExtract 105 1 + 110: 7(fvec4) CompositeExtract 104 1 + 111: 7(fvec4) FAdd 109 110 + 112: 7(fvec4) CompositeExtract 105 2 + 113: 7(fvec4) CompositeExtract 104 2 + 114: 7(fvec4) FAdd 112 113 + 115: 8 CompositeConstruct 108 111 114 + Store 10(sum34) 115 + 116: 6(float) Load 28(f) + 117: 8 Load 10(sum34) + 118: 7(fvec4) CompositeConstruct 116 116 116 116 + 119: 7(fvec4) CompositeExtract 117 0 + 120: 7(fvec4) FAdd 119 118 + 121: 7(fvec4) CompositeExtract 117 1 + 122: 7(fvec4) FAdd 121 118 + 123: 7(fvec4) CompositeExtract 117 2 + 124: 7(fvec4) FAdd 123 118 + 125: 8 CompositeConstruct 120 122 124 + Store 10(sum34) 125 + 126: 6(float) Load 28(f) + 127: 8 Load 10(sum34) + 128: 7(fvec4) CompositeConstruct 126 126 126 126 + 129: 7(fvec4) CompositeExtract 127 0 + 130: 7(fvec4) FSub 129 128 + 131: 7(fvec4) CompositeExtract 127 1 + 132: 7(fvec4) FSub 131 128 + 133: 7(fvec4) CompositeExtract 127 2 + 134: 7(fvec4) FSub 133 128 + 135: 8 CompositeConstruct 130 132 134 + Store 10(sum34) 135 + 141: 8 Load 10(sum34) + 142: 7(fvec4) CompositeExtract 141 0 + 143:137(f64vec4) FConvert 142 + 144: 7(fvec4) CompositeExtract 141 1 + 145:137(f64vec4) FConvert 144 + 146: 7(fvec4) CompositeExtract 141 2 + 147:137(f64vec4) FConvert 146 + 148: 138 CompositeConstruct 143 145 147 + Store 140(dm) 148 + 149: 138 Load 140(dm) + 150:137(f64vec4) CompositeExtract 149 0 + 151: 7(fvec4) FConvert 150 + 152:137(f64vec4) CompositeExtract 149 1 + 153: 7(fvec4) FConvert 152 + 154:137(f64vec4) CompositeExtract 149 2 + 155: 7(fvec4) FConvert 154 + 156: 8 CompositeConstruct 151 153 155 + Store 10(sum34) 156 + 162: 7(fvec4) Load 161(v4) + 163: 8 Load 14(m2) + 164: 157(fvec3) VectorTimesMatrix 162 163 + Store 159(sum3) 164 + 167: 8 Load 14(m2) + 170: 157(fvec3) Load 169(v3) + 171: 7(fvec4) MatrixTimesVector 167 170 + Store 166(sum4) 171 + 175: 8 Load 10(sum34) + 176: 172 Transpose 175 + Store 174(m43) 176 + 180: 8 Load 12(m1) + 181: 172 Load 174(m43) + 182: 177 MatrixTimesMatrix 180 181 + Store 179(m4) 182 + 183: 7(fvec4) Load 161(v4) + 184: 177 Load 179(m4) + 185: 7(fvec4) VectorTimesMatrix 183 184 + Store 166(sum4) 185 + 188: 7(fvec4) Load 166(sum4) + Store 187(color) 188 + 189: 8 Load 10(sum34) + 190: 7(fvec4) CompositeConstruct 81 81 81 81 + 191: 7(fvec4) CompositeExtract 189 0 + 192: 7(fvec4) FAdd 191 190 + 193: 7(fvec4) CompositeExtract 189 1 + 194: 7(fvec4) FAdd 193 190 + 195: 7(fvec4) CompositeExtract 189 2 + 196: 7(fvec4) FAdd 195 190 + 197: 8 CompositeConstruct 192 194 196 + Store 10(sum34) 197 + 198: 8 Load 10(sum34) + 199: 7(fvec4) CompositeConstruct 81 81 81 81 + 200: 7(fvec4) CompositeExtract 198 0 + 201: 7(fvec4) FSub 200 199 + 202: 7(fvec4) CompositeExtract 198 1 + 203: 7(fvec4) FSub 202 199 + 204: 7(fvec4) CompositeExtract 198 2 + 205: 7(fvec4) FSub 204 199 + 206: 8 CompositeConstruct 201 203 205 + Store 10(sum34) 206 + 207: 6(float) Load 28(f) + 209: 7(fvec4) CompositeConstruct 207 208 208 208 + 210: 7(fvec4) CompositeConstruct 208 207 208 208 + 211: 7(fvec4) CompositeConstruct 208 208 207 208 + 212: 8 CompositeConstruct 209 210 211 + 213: 8 Load 10(sum34) + 214: 7(fvec4) CompositeExtract 213 0 + 215: 7(fvec4) CompositeExtract 212 0 + 216: 7(fvec4) FAdd 214 215 + 217: 7(fvec4) CompositeExtract 213 1 + 218: 7(fvec4) CompositeExtract 212 1 + 219: 7(fvec4) FAdd 217 218 + 220: 7(fvec4) CompositeExtract 213 2 + 221: 7(fvec4) CompositeExtract 212 2 + 222: 7(fvec4) FAdd 220 221 + 223: 8 CompositeConstruct 216 219 222 + Store 10(sum34) 223 + 224: 157(fvec3) Load 169(v3) + 225: 6(float) Load 28(f) + 226: 157(fvec3) Load 169(v3) + 227: 6(float) Load 28(f) + 228: 157(fvec3) Load 169(v3) + 229: 6(float) Load 28(f) + 230: 6(float) CompositeExtract 224 0 + 231: 6(float) CompositeExtract 224 1 + 232: 6(float) CompositeExtract 224 2 + 233: 6(float) CompositeExtract 226 0 + 234: 6(float) CompositeExtract 226 1 + 235: 6(float) CompositeExtract 226 2 + 236: 6(float) CompositeExtract 228 0 + 237: 6(float) CompositeExtract 228 1 + 238: 6(float) CompositeExtract 228 2 + 239: 7(fvec4) CompositeConstruct 230 231 232 225 + 240: 7(fvec4) CompositeConstruct 233 234 235 227 + 241: 7(fvec4) CompositeConstruct 236 237 238 229 + 242: 8 CompositeConstruct 239 240 241 + 243: 8 Load 10(sum34) + 244: 7(fvec4) CompositeExtract 243 0 + 245: 7(fvec4) CompositeExtract 242 0 + 246: 7(fvec4) FAdd 244 245 + 247: 7(fvec4) CompositeExtract 243 1 + 248: 7(fvec4) CompositeExtract 242 1 + 249: 7(fvec4) FAdd 247 248 + 250: 7(fvec4) CompositeExtract 243 2 + 251: 7(fvec4) CompositeExtract 242 2 + 252: 7(fvec4) FAdd 250 251 + 253: 8 CompositeConstruct 246 249 252 + Store 10(sum34) 253 + 254: 157(fvec3) Load 159(sum3) + 255: 172 Load 174(m43) + 256: 7(fvec4) VectorTimesMatrix 254 255 + 257: 7(fvec4) Load 166(sum4) + 258: 7(fvec4) FAdd 256 257 + 259: 7(fvec4) Load 187(color) + 260: 7(fvec4) FAdd 259 258 + Store 187(color) 260 + 261: 172 Load 174(m43) + 262: 6(float) CompositeExtract 261 0 0 + 263: 6(float) CompositeExtract 261 0 1 + 264: 6(float) CompositeExtract 261 0 2 + 265: 6(float) CompositeExtract 261 1 0 + 266: 7(fvec4) CompositeConstruct 262 263 264 265 + 267: 7(fvec4) Load 187(color) + 268: 7(fvec4) FAdd 267 266 + Store 187(color) 268 + 269: 6(float) Load 28(f) + 272: 270(fvec2) CompositeConstruct 269 208 + 273: 270(fvec2) CompositeConstruct 208 269 + 274: 271 CompositeConstruct 272 273 + 275: 6(float) CompositeExtract 274 0 0 + 276: 6(float) CompositeExtract 274 0 1 + 277: 6(float) CompositeExtract 274 1 0 + 278: 157(fvec3) CompositeConstruct 275 276 277 + 280: 6(float) CompositeExtract 278 0 + 281: 6(float) CompositeExtract 278 1 + 282: 6(float) CompositeExtract 278 2 + 283: 7(fvec4) CompositeConstruct 280 281 282 279 + 284: 7(fvec4) Load 187(color) + 285: 7(fvec4) FAdd 284 283 + Store 187(color) 285 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.matrix2.frag.out b/deps/glslang/glslang/Test/baseResults/spv.matrix2.frag.out new file mode 100644 index 0000000000..dc574a40d8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.matrix2.frag.out @@ -0,0 +1,269 @@ +spv.matrix2.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 221 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 16 37 38 65 87 147 158 181 218 219 220 + ExecutionMode 4 OriginUpperLeft + Source GLSL 150 + Name 4 "main" + Name 10 "m34" + Name 12 "v" + Name 16 "u" + Name 37 "FragColor" + Name 38 "Color" + Name 63 "m44" + Name 65 "un34" + Name 87 "um43" + Name 147 "um4" + Name 156 "inv" + Name 158 "um2" + Name 179 "inv3" + Name 181 "um3" + Name 190 "inv4" + Name 218 "colorTransform" + Name 219 "m" + Name 220 "n" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeMatrix 7(fvec4) 3 + 9: TypePointer Function 8 + 11: TypePointer Input 7(fvec4) + 12(v): 11(ptr) Variable Input + 14: TypeVector 6(float) 3 + 15: TypePointer Input 14(fvec3) + 16(u): 15(ptr) Variable Input + 19: 6(float) Constant 1082759578 + 20: 6(float) Constant 0 + 21: 7(fvec4) ConstantComposite 19 20 20 20 + 22: 7(fvec4) ConstantComposite 20 19 20 20 + 23: 7(fvec4) ConstantComposite 20 20 19 20 + 24: 8 ConstantComposite 21 22 23 + 36: TypePointer Output 7(fvec4) + 37(FragColor): 36(ptr) Variable Output + 38(Color): 15(ptr) Variable Input + 40: 6(float) Constant 1065353216 + 54: TypeInt 32 0 + 55: 54(int) Constant 0 + 56: TypePointer Input 6(float) + 61: TypeMatrix 7(fvec4) 4 + 62: TypePointer Function 61 + 64: TypePointer Input 8 + 65(un34): 64(ptr) Variable Input + 85: TypeMatrix 14(fvec3) 4 + 86: TypePointer Input 85 + 87(um43): 86(ptr) Variable Input + 146: TypePointer Input 61 + 147(um4): 146(ptr) Variable Input + 153: TypeVector 6(float) 2 + 154: TypeMatrix 153(fvec2) 2 + 155: TypePointer Function 154 + 157: TypePointer Input 154 + 158(um2): 157(ptr) Variable Input + 161: TypeInt 32 1 + 162: 161(int) Constant 0 + 163: TypePointer Function 6(float) + 166: 161(int) Constant 1 + 169: 54(int) Constant 1 + 177: TypeMatrix 14(fvec3) 3 + 178: TypePointer Function 177 + 180: TypePointer Input 177 + 181(um3): 180(ptr) Variable Input + 184: 161(int) Constant 2 + 210: 54(int) Constant 3 + 211: TypePointer Output 6(float) +218(colorTransform): 180(ptr) Variable Input + 219(m): 146(ptr) Variable Input + 220(n): 146(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 10(m34): 9(ptr) Variable Function + 63(m44): 62(ptr) Variable Function + 156(inv): 155(ptr) Variable Function + 179(inv3): 178(ptr) Variable Function + 190(inv4): 62(ptr) Variable Function + 13: 7(fvec4) Load 12(v) + 17: 14(fvec3) Load 16(u) + 18: 8 OuterProduct 13 17 + Store 10(m34) 18 + 25: 8 Load 10(m34) + 26: 7(fvec4) CompositeExtract 25 0 + 27: 7(fvec4) CompositeExtract 24 0 + 28: 7(fvec4) FAdd 26 27 + 29: 7(fvec4) CompositeExtract 25 1 + 30: 7(fvec4) CompositeExtract 24 1 + 31: 7(fvec4) FAdd 29 30 + 32: 7(fvec4) CompositeExtract 25 2 + 33: 7(fvec4) CompositeExtract 24 2 + 34: 7(fvec4) FAdd 32 33 + 35: 8 CompositeConstruct 28 31 34 + Store 10(m34) 35 + 39: 14(fvec3) Load 38(Color) + 41: 6(float) CompositeExtract 39 0 + 42: 6(float) CompositeExtract 39 1 + 43: 6(float) CompositeExtract 39 2 + 44: 7(fvec4) CompositeConstruct 41 42 43 40 + Store 37(FragColor) 44 + 45: 7(fvec4) Load 37(FragColor) + 46: 8 Load 10(m34) + 47: 14(fvec3) VectorTimesMatrix 45 46 + 48: 6(float) CompositeExtract 47 0 + 49: 6(float) CompositeExtract 47 1 + 50: 6(float) CompositeExtract 47 2 + 51: 7(fvec4) CompositeConstruct 48 49 50 40 + 52: 7(fvec4) Load 37(FragColor) + 53: 7(fvec4) FMul 52 51 + Store 37(FragColor) 53 + 57: 56(ptr) AccessChain 12(v) 55 + 58: 6(float) Load 57 + 59: 8 Load 10(m34) + 60: 8 MatrixTimesScalar 59 58 + Store 10(m34) 60 + 66: 8 Load 65(un34) + 67: 6(float) CompositeExtract 66 0 0 + 68: 6(float) CompositeExtract 66 0 1 + 69: 6(float) CompositeExtract 66 0 2 + 70: 6(float) CompositeExtract 66 0 3 + 71: 6(float) CompositeExtract 66 1 0 + 72: 6(float) CompositeExtract 66 1 1 + 73: 6(float) CompositeExtract 66 1 2 + 74: 6(float) CompositeExtract 66 1 3 + 75: 6(float) CompositeExtract 66 2 0 + 76: 6(float) CompositeExtract 66 2 1 + 77: 6(float) CompositeExtract 66 2 2 + 78: 6(float) CompositeExtract 66 2 3 + 79: 7(fvec4) CompositeConstruct 67 68 69 70 + 80: 7(fvec4) CompositeConstruct 71 72 73 74 + 81: 7(fvec4) CompositeConstruct 75 76 77 78 + 82: 7(fvec4) CompositeConstruct 20 20 20 40 + 83: 61 CompositeConstruct 79 80 81 82 + Store 63(m44) 83 + 84: 8 Load 10(m34) + 88: 85 Load 87(um43) + 89: 61 MatrixTimesMatrix 84 88 + 90: 61 Load 63(m44) + 91: 7(fvec4) CompositeExtract 90 0 + 92: 7(fvec4) CompositeExtract 89 0 + 93: 7(fvec4) FAdd 91 92 + 94: 7(fvec4) CompositeExtract 90 1 + 95: 7(fvec4) CompositeExtract 89 1 + 96: 7(fvec4) FAdd 94 95 + 97: 7(fvec4) CompositeExtract 90 2 + 98: 7(fvec4) CompositeExtract 89 2 + 99: 7(fvec4) FAdd 97 98 + 100: 7(fvec4) CompositeExtract 90 3 + 101: 7(fvec4) CompositeExtract 89 3 + 102: 7(fvec4) FAdd 100 101 + 103: 61 CompositeConstruct 93 96 99 102 + Store 63(m44) 103 + 104: 61 Load 63(m44) + 105: 7(fvec4) CompositeExtract 104 0 + 106: 7(fvec4) FNegate 105 + 107: 7(fvec4) CompositeExtract 104 1 + 108: 7(fvec4) FNegate 107 + 109: 7(fvec4) CompositeExtract 104 2 + 110: 7(fvec4) FNegate 109 + 111: 7(fvec4) CompositeExtract 104 3 + 112: 7(fvec4) FNegate 111 + 113: 61 CompositeConstruct 106 108 110 112 + 114: 7(fvec4) Load 12(v) + 115: 7(fvec4) MatrixTimesVector 113 114 + 116: 7(fvec4) Load 37(FragColor) + 117: 7(fvec4) FAdd 116 115 + Store 37(FragColor) 117 + 118: 61 Load 63(m44) + 119: 61 Load 63(m44) + 120: 7(fvec4) CompositeExtract 118 0 + 121: 7(fvec4) CompositeExtract 119 0 + 122: 7(fvec4) FMul 120 121 + 123: 7(fvec4) CompositeExtract 118 1 + 124: 7(fvec4) CompositeExtract 119 1 + 125: 7(fvec4) FMul 123 124 + 126: 7(fvec4) CompositeExtract 118 2 + 127: 7(fvec4) CompositeExtract 119 2 + 128: 7(fvec4) FMul 126 127 + 129: 7(fvec4) CompositeExtract 118 3 + 130: 7(fvec4) CompositeExtract 119 3 + 131: 7(fvec4) FMul 129 130 + 132: 61 CompositeConstruct 122 125 128 131 + 133: 7(fvec4) Load 37(FragColor) + 134: 7(fvec4) VectorTimesMatrix 133 132 + Store 37(FragColor) 134 + 135: 85 Load 87(um43) + 136: 8 Transpose 135 + Store 10(m34) 136 + 137: 7(fvec4) Load 37(FragColor) + 138: 8 Load 10(m34) + 139: 14(fvec3) VectorTimesMatrix 137 138 + 140: 6(float) CompositeExtract 139 0 + 141: 6(float) CompositeExtract 139 1 + 142: 6(float) CompositeExtract 139 2 + 143: 7(fvec4) CompositeConstruct 140 141 142 40 + 144: 7(fvec4) Load 37(FragColor) + 145: 7(fvec4) FMul 144 143 + Store 37(FragColor) 145 + 148: 61 Load 147(um4) + 149: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 148 + 150: 7(fvec4) CompositeConstruct 149 149 149 149 + 151: 7(fvec4) Load 37(FragColor) + 152: 7(fvec4) FMul 151 150 + Store 37(FragColor) 152 + 159: 154 Load 158(um2) + 160: 154 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 159 + Store 156(inv) 160 + 164: 163(ptr) AccessChain 156(inv) 162 55 + 165: 6(float) Load 164 + 167: 163(ptr) AccessChain 156(inv) 166 55 + 168: 6(float) Load 167 + 170: 163(ptr) AccessChain 156(inv) 162 169 + 171: 6(float) Load 170 + 172: 163(ptr) AccessChain 156(inv) 166 169 + 173: 6(float) Load 172 + 174: 7(fvec4) CompositeConstruct 165 168 171 173 + 175: 7(fvec4) Load 37(FragColor) + 176: 7(fvec4) FMul 175 174 + Store 37(FragColor) 176 + 182: 177 Load 181(um3) + 183: 177 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 182 + Store 179(inv3) 183 + 185: 163(ptr) AccessChain 179(inv3) 184 169 + 186: 6(float) Load 185 + 187: 7(fvec4) CompositeConstruct 186 186 186 186 + 188: 7(fvec4) Load 37(FragColor) + 189: 7(fvec4) FMul 188 187 + Store 37(FragColor) 189 + 191: 61 Load 147(um4) + 192: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 191 + Store 190(inv4) 192 + 193: 61 Load 190(inv4) + 194: 7(fvec4) Load 37(FragColor) + 195: 7(fvec4) VectorTimesMatrix 194 193 + Store 37(FragColor) 195 + 196: 7(fvec4) Load 37(FragColor) + 197: 8 Load 65(un34) + 198: 8 Load 65(un34) + 199: 7(fvec4) CompositeExtract 197 0 + 200: 7(fvec4) CompositeExtract 198 0 + 201: 7(fvec4) FMul 199 200 + 202: 7(fvec4) CompositeExtract 197 1 + 203: 7(fvec4) CompositeExtract 198 1 + 204: 7(fvec4) FMul 202 203 + 205: 7(fvec4) CompositeExtract 197 2 + 206: 7(fvec4) CompositeExtract 198 2 + 207: 7(fvec4) FMul 205 206 + 208: 8 CompositeConstruct 201 204 207 + 209: 14(fvec3) VectorTimesMatrix 196 208 + 212: 211(ptr) AccessChain 37(FragColor) 210 + 213: 6(float) Load 212 + 214: 6(float) CompositeExtract 209 0 + 215: 6(float) CompositeExtract 209 1 + 216: 6(float) CompositeExtract 209 2 + 217: 7(fvec4) CompositeConstruct 214 215 216 213 + Store 37(FragColor) 217 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out b/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out new file mode 100644 index 0000000000..02783b9835 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.memoryQualifier.frag.out @@ -0,0 +1,175 @@ +spv.memoryQualifier.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 97 + + Capability Shader + Capability ImageRect + Capability Image1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "texel" + Name 12 "i1D" + Name 19 "i2D" + Name 28 "i2DRect" + Name 35 "i3D" + Name 44 "iCube" + Name 49 "Data" + MemberName 49(Data) 0 "f1" + MemberName 49(Data) 1 "f2" + Name 50 "Buffer" + MemberName 50(Buffer) 0 "f1" + MemberName 50(Buffer) 1 "f2" + MemberName 50(Buffer) 2 "f3" + MemberName 50(Buffer) 3 "f4" + MemberName 50(Buffer) 4 "i1" + MemberName 50(Buffer) 5 "data" + Name 52 "" + Decorate 12(i1D) DescriptorSet 0 + Decorate 12(i1D) Binding 0 + Decorate 12(i1D) Coherent + Decorate 19(i2D) DescriptorSet 0 + Decorate 19(i2D) Binding 1 + Decorate 19(i2D) Volatile + Decorate 19(i2D) Coherent + Decorate 28(i2DRect) DescriptorSet 0 + Decorate 28(i2DRect) Binding 2 + Decorate 28(i2DRect) Restrict + Decorate 35(i3D) DescriptorSet 0 + Decorate 35(i3D) Binding 3 + Decorate 35(i3D) NonWritable + Decorate 44(iCube) DescriptorSet 0 + Decorate 44(iCube) Binding 3 + Decorate 44(iCube) NonReadable + MemberDecorate 49(Data) 0 Offset 0 + MemberDecorate 49(Data) 1 Offset 8 + MemberDecorate 50(Buffer) 0 Coherent + MemberDecorate 50(Buffer) 0 Volatile + MemberDecorate 50(Buffer) 0 Coherent + MemberDecorate 50(Buffer) 0 Offset 0 + MemberDecorate 50(Buffer) 1 Coherent + MemberDecorate 50(Buffer) 1 Restrict + MemberDecorate 50(Buffer) 1 Offset 8 + MemberDecorate 50(Buffer) 2 Coherent + MemberDecorate 50(Buffer) 2 NonWritable + MemberDecorate 50(Buffer) 2 Offset 16 + MemberDecorate 50(Buffer) 3 Coherent + MemberDecorate 50(Buffer) 3 NonReadable + MemberDecorate 50(Buffer) 3 Offset 32 + MemberDecorate 50(Buffer) 4 Coherent + MemberDecorate 50(Buffer) 4 Offset 48 + MemberDecorate 50(Buffer) 5 Coherent + MemberDecorate 50(Buffer) 5 Offset 56 + Decorate 50(Buffer) BufferBlock + Decorate 52 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D nonsampled format:R32f + 11: TypePointer UniformConstant 10 + 12(i1D): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 15: 14(int) Constant 1 + 17: TypeImage 6(float) 2D nonsampled format:R32f + 18: TypePointer UniformConstant 17 + 19(i2D): 18(ptr) Variable UniformConstant + 21: TypeVector 14(int) 2 + 22: 21(ivec2) ConstantComposite 15 15 + 26: TypeImage 6(float) Rect nonsampled format:R32f + 27: TypePointer UniformConstant 26 + 28(i2DRect): 27(ptr) Variable UniformConstant + 33: TypeImage 6(float) 3D nonsampled format:R32f + 34: TypePointer UniformConstant 33 + 35(i3D): 34(ptr) Variable UniformConstant + 37: TypeVector 14(int) 3 + 38: 37(ivec3) ConstantComposite 15 15 15 + 42: TypeImage 6(float) Cube nonsampled format:R32f + 43: TypePointer UniformConstant 42 + 44(iCube): 43(ptr) Variable UniformConstant + 47: TypeVector 6(float) 2 + 48: TypeVector 6(float) 3 + 49(Data): TypeStruct 6(float) 47(fvec2) + 50(Buffer): TypeStruct 6(float) 47(fvec2) 48(fvec3) 7(fvec4) 14(int) 49(Data) + 51: TypePointer Uniform 50(Buffer) + 52: 51(ptr) Variable Uniform + 53: 14(int) Constant 4 + 54: TypePointer Uniform 14(int) + 57: 14(int) Constant 0 + 58: TypePointer Uniform 6(float) + 61: TypePointer Function 6(float) + 63: TypePointer Uniform 47(fvec2) + 71: 14(int) Constant 2 + 72: TypePointer Uniform 48(fvec3) + 80: 14(int) Constant 5 + 83: TypeInt 32 0 + 84: 83(int) Constant 1 + 88: 83(int) Constant 3 + 93: 14(int) Constant 3 + 95: TypePointer Uniform 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 9(texel): 8(ptr) Variable Function + 13: 10 Load 12(i1D) + 16: 7(fvec4) ImageRead 13 15 + Store 9(texel) 16 + 20: 17 Load 19(i2D) + 23: 7(fvec4) ImageRead 20 22 + 24: 7(fvec4) Load 9(texel) + 25: 7(fvec4) FAdd 24 23 + Store 9(texel) 25 + 29: 26 Load 28(i2DRect) + 30: 7(fvec4) ImageRead 29 22 + 31: 7(fvec4) Load 9(texel) + 32: 7(fvec4) FAdd 31 30 + Store 9(texel) 32 + 36: 33 Load 35(i3D) + 39: 7(fvec4) ImageRead 36 38 + 40: 7(fvec4) Load 9(texel) + 41: 7(fvec4) FAdd 40 39 + Store 9(texel) 41 + 45: 42 Load 44(iCube) + 46: 7(fvec4) Load 9(texel) + ImageWrite 45 38 46 + 55: 54(ptr) AccessChain 52 53 + 56: 14(int) Load 55 + 59: 58(ptr) AccessChain 52 57 + 60: 6(float) Load 59 + 62: 61(ptr) AccessChain 9(texel) 56 + Store 62 60 + 64: 63(ptr) AccessChain 52 15 + 65: 47(fvec2) Load 64 + 66: 7(fvec4) Load 9(texel) + 67: 47(fvec2) VectorShuffle 66 66 0 1 + 68: 47(fvec2) FAdd 67 65 + 69: 7(fvec4) Load 9(texel) + 70: 7(fvec4) VectorShuffle 69 68 4 5 2 3 + Store 9(texel) 70 + 73: 72(ptr) AccessChain 52 71 + 74: 48(fvec3) Load 73 + 75: 7(fvec4) Load 9(texel) + 76: 48(fvec3) VectorShuffle 75 75 0 1 2 + 77: 48(fvec3) FSub 76 74 + 78: 7(fvec4) Load 9(texel) + 79: 7(fvec4) VectorShuffle 78 77 4 5 6 3 + Store 9(texel) 79 + 81: 58(ptr) AccessChain 52 80 57 + 82: 6(float) Load 81 + 85: 58(ptr) AccessChain 52 80 15 84 + 86: 6(float) Load 85 + 87: 6(float) FAdd 82 86 + 89: 61(ptr) AccessChain 9(texel) 88 + 90: 6(float) Load 89 + 91: 6(float) FAdd 90 87 + 92: 61(ptr) AccessChain 9(texel) 88 + Store 92 91 + 94: 7(fvec4) Load 9(texel) + 96: 95(ptr) AccessChain 52 93 + Store 96 94 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out b/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out new file mode 100644 index 0000000000..7ec0f33dfc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.merge-unreachable.frag.out @@ -0,0 +1,41 @@ +spv.merge-unreachable.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "v" + Decorate 9(v) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(v): 8(ptr) Variable Input + 11: 6(float) Constant 1036831949 + 12: 6(float) Constant 1045220557 + 13: 6(float) Constant 1050253722 + 14: 6(float) Constant 1053609165 + 15: 7(fvec4) ConstantComposite 11 12 13 14 + 16: TypeBool + 17: TypeVector 16(bool) 4 + 4(main): 2 Function None 3 + 5: Label + 10: 7(fvec4) Load 9(v) + 18: 17(bvec4) FOrdEqual 10 15 + 19: 16(bool) All 18 + SelectionMerge 21 None + BranchConditional 19 20 23 + 20: Label + Kill + 23: Label + Return + 21: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out b/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out new file mode 100644 index 0000000000..7e88a59065 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.multiStruct.comp.out @@ -0,0 +1,266 @@ +spv.multiStruct.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 161 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Name 12 "MyStruct" + MemberName 12(MyStruct) 0 "foo" + MemberName 12(MyStruct) 1 "sb" + Name 14 "t" + Name 16 "MyStruct" + MemberName 16(MyStruct) 0 "foo" + MemberName 16(MyStruct) 1 "sb" + Name 17 "SSBO0" + MemberName 17(SSBO0) 0 "a" + Name 19 "inBuf" + Name 39 "SSBO1" + MemberName 39(SSBO1) 0 "b" + Name 41 "outBuf" + Name 58 "MyStruct" + MemberName 58(MyStruct) 0 "foo" + MemberName 58(MyStruct) 1 "sb" + Name 59 "UBO" + MemberName 59(UBO) 0 "c" + Name 61 "uBuf" + Name 86 "Nested" + MemberName 86(Nested) 0 "f" + MemberName 86(Nested) 1 "S" + Name 88 "n" + Name 90 "Nested" + MemberName 90(Nested) 0 "f" + MemberName 90(Nested) 1 "S" + Name 91 "UBON" + MemberName 91(UBON) 0 "N1" + Name 93 "uBufN" + Name 126 "Nested" + MemberName 126(Nested) 0 "f" + MemberName 126(Nested) 1 "S" + Name 127 "SSBO1N" + MemberName 127(SSBO1N) 0 "N2" + Name 129 "outBufN" + Decorate 15 ArrayStride 8 + MemberDecorate 16(MyStruct) 0 Offset 0 + MemberDecorate 16(MyStruct) 1 Offset 16 + MemberDecorate 17(SSBO0) 0 Offset 0 + Decorate 17(SSBO0) BufferBlock + Decorate 19(inBuf) DescriptorSet 0 + Decorate 19(inBuf) Binding 0 + MemberDecorate 39(SSBO1) 0 Offset 0 + Decorate 39(SSBO1) BufferBlock + Decorate 41(outBuf) DescriptorSet 0 + Decorate 41(outBuf) Binding 1 + Decorate 57 ArrayStride 16 + MemberDecorate 58(MyStruct) 0 Offset 0 + MemberDecorate 58(MyStruct) 1 Offset 32 + MemberDecorate 59(UBO) 0 Offset 0 + Decorate 59(UBO) Block + Decorate 61(uBuf) DescriptorSet 0 + Decorate 61(uBuf) Binding 2 + Decorate 89 ArrayStride 48 + MemberDecorate 90(Nested) 0 Offset 0 + MemberDecorate 90(Nested) 1 Offset 16 + MemberDecorate 91(UBON) 0 Offset 0 + Decorate 91(UBON) Block + Decorate 93(uBufN) DescriptorSet 0 + Decorate 93(uBufN) Binding 2 + Decorate 125 ArrayStride 24 + MemberDecorate 126(Nested) 0 Offset 0 + MemberDecorate 126(Nested) 1 Offset 8 + MemberDecorate 127(SSBO1N) 0 Offset 0 + Decorate 127(SSBO1N) BufferBlock + Decorate 129(outBufN) DescriptorSet 0 + Decorate 129(outBufN) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeInt 32 0 + 9: 8(int) Constant 2 + 10: TypeArray 7(fvec2) 9 + 11: TypeBool + 12(MyStruct): TypeStruct 10 11(bool) + 13: TypePointer Function 12(MyStruct) + 15: TypeArray 7(fvec2) 9 + 16(MyStruct): TypeStruct 15 8(int) + 17(SSBO0): TypeStruct 16(MyStruct) + 18: TypePointer Uniform 17(SSBO0) + 19(inBuf): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypePointer Uniform 16(MyStruct) + 26: TypePointer Function 10 + 29: TypePointer Function 7(fvec2) + 32: 20(int) Constant 1 + 35: 8(int) Constant 0 + 37: TypePointer Function 11(bool) + 39(SSBO1): TypeStruct 16(MyStruct) + 40: TypePointer Uniform 39(SSBO1) + 41(outBuf): 40(ptr) Variable Uniform + 45: TypePointer Uniform 15 + 48: TypePointer Uniform 7(fvec2) + 53: 8(int) Constant 1 + 55: TypePointer Uniform 8(int) + 57: TypeArray 7(fvec2) 9 + 58(MyStruct): TypeStruct 57 8(int) + 59(UBO): TypeStruct 58(MyStruct) + 60: TypePointer Uniform 59(UBO) + 61(uBuf): 60(ptr) Variable Uniform + 62: TypePointer Uniform 58(MyStruct) + 85: TypeArray 12(MyStruct) 9 + 86(Nested): TypeStruct 6(float) 85 + 87: TypePointer Function 86(Nested) + 89: TypeArray 58(MyStruct) 9 + 90(Nested): TypeStruct 6(float) 89 + 91(UBON): TypeStruct 90(Nested) + 92: TypePointer Uniform 91(UBON) + 93(uBufN): 92(ptr) Variable Uniform + 94: TypePointer Uniform 90(Nested) + 98: TypePointer Function 6(float) + 101: TypePointer Function 85 + 125: TypeArray 16(MyStruct) 9 + 126(Nested): TypeStruct 6(float) 125 + 127(SSBO1N): TypeStruct 126(Nested) + 128: TypePointer Uniform 127(SSBO1N) + 129(outBufN): 128(ptr) Variable Uniform + 131: TypePointer Uniform 126(Nested) + 134: TypePointer Uniform 6(float) + 137: TypePointer Uniform 125 + 4(main): 2 Function None 3 + 5: Label + 14(t): 13(ptr) Variable Function + 88(n): 87(ptr) Variable Function + 23: 22(ptr) AccessChain 19(inBuf) 21 + 24:16(MyStruct) Load 23 + 25: 15 CompositeExtract 24 0 + 27: 26(ptr) AccessChain 14(t) 21 + 28: 7(fvec2) CompositeExtract 25 0 + 30: 29(ptr) AccessChain 27 21 + Store 30 28 + 31: 7(fvec2) CompositeExtract 25 1 + 33: 29(ptr) AccessChain 27 32 + Store 33 31 + 34: 8(int) CompositeExtract 24 1 + 36: 11(bool) INotEqual 34 35 + 38: 37(ptr) AccessChain 14(t) 32 + Store 38 36 + 42:12(MyStruct) Load 14(t) + 43: 22(ptr) AccessChain 41(outBuf) 21 + 44: 10 CompositeExtract 42 0 + 46: 45(ptr) AccessChain 43 21 + 47: 7(fvec2) CompositeExtract 44 0 + 49: 48(ptr) AccessChain 46 21 + Store 49 47 + 50: 7(fvec2) CompositeExtract 44 1 + 51: 48(ptr) AccessChain 46 32 + Store 51 50 + 52: 11(bool) CompositeExtract 42 1 + 54: 8(int) Select 52 53 35 + 56: 55(ptr) AccessChain 43 32 + Store 56 54 + 63: 62(ptr) AccessChain 61(uBuf) 21 + 64:58(MyStruct) Load 63 + 65: 57 CompositeExtract 64 0 + 66: 26(ptr) AccessChain 14(t) 21 + 67: 7(fvec2) CompositeExtract 65 0 + 68: 29(ptr) AccessChain 66 21 + Store 68 67 + 69: 7(fvec2) CompositeExtract 65 1 + 70: 29(ptr) AccessChain 66 32 + Store 70 69 + 71: 8(int) CompositeExtract 64 1 + 72: 11(bool) INotEqual 71 35 + 73: 37(ptr) AccessChain 14(t) 32 + Store 73 72 + 74:12(MyStruct) Load 14(t) + 75: 22(ptr) AccessChain 41(outBuf) 21 + 76: 10 CompositeExtract 74 0 + 77: 45(ptr) AccessChain 75 21 + 78: 7(fvec2) CompositeExtract 76 0 + 79: 48(ptr) AccessChain 77 21 + Store 79 78 + 80: 7(fvec2) CompositeExtract 76 1 + 81: 48(ptr) AccessChain 77 32 + Store 81 80 + 82: 11(bool) CompositeExtract 74 1 + 83: 8(int) Select 82 53 35 + 84: 55(ptr) AccessChain 75 32 + Store 84 83 + 95: 94(ptr) AccessChain 93(uBufN) 21 + 96: 90(Nested) Load 95 + 97: 6(float) CompositeExtract 96 0 + 99: 98(ptr) AccessChain 88(n) 21 + Store 99 97 + 100: 89 CompositeExtract 96 1 + 102: 101(ptr) AccessChain 88(n) 32 + 103:58(MyStruct) CompositeExtract 100 0 + 104: 13(ptr) AccessChain 102 21 + 105: 57 CompositeExtract 103 0 + 106: 26(ptr) AccessChain 104 21 + 107: 7(fvec2) CompositeExtract 105 0 + 108: 29(ptr) AccessChain 106 21 + Store 108 107 + 109: 7(fvec2) CompositeExtract 105 1 + 110: 29(ptr) AccessChain 106 32 + Store 110 109 + 111: 8(int) CompositeExtract 103 1 + 112: 11(bool) INotEqual 111 35 + 113: 37(ptr) AccessChain 104 32 + Store 113 112 + 114:58(MyStruct) CompositeExtract 100 1 + 115: 13(ptr) AccessChain 102 32 + 116: 57 CompositeExtract 114 0 + 117: 26(ptr) AccessChain 115 21 + 118: 7(fvec2) CompositeExtract 116 0 + 119: 29(ptr) AccessChain 117 21 + Store 119 118 + 120: 7(fvec2) CompositeExtract 116 1 + 121: 29(ptr) AccessChain 117 32 + Store 121 120 + 122: 8(int) CompositeExtract 114 1 + 123: 11(bool) INotEqual 122 35 + 124: 37(ptr) AccessChain 115 32 + Store 124 123 + 130: 86(Nested) Load 88(n) + 132: 131(ptr) AccessChain 129(outBufN) 21 + 133: 6(float) CompositeExtract 130 0 + 135: 134(ptr) AccessChain 132 21 + Store 135 133 + 136: 85 CompositeExtract 130 1 + 138: 137(ptr) AccessChain 132 32 + 139:12(MyStruct) CompositeExtract 136 0 + 140: 22(ptr) AccessChain 138 21 + 141: 10 CompositeExtract 139 0 + 142: 45(ptr) AccessChain 140 21 + 143: 7(fvec2) CompositeExtract 141 0 + 144: 48(ptr) AccessChain 142 21 + Store 144 143 + 145: 7(fvec2) CompositeExtract 141 1 + 146: 48(ptr) AccessChain 142 32 + Store 146 145 + 147: 11(bool) CompositeExtract 139 1 + 148: 8(int) Select 147 53 35 + 149: 55(ptr) AccessChain 140 32 + Store 149 148 + 150:12(MyStruct) CompositeExtract 136 1 + 151: 22(ptr) AccessChain 138 32 + 152: 10 CompositeExtract 150 0 + 153: 45(ptr) AccessChain 151 21 + 154: 7(fvec2) CompositeExtract 152 0 + 155: 48(ptr) AccessChain 153 21 + Store 155 154 + 156: 7(fvec2) CompositeExtract 152 1 + 157: 48(ptr) AccessChain 153 32 + Store 157 156 + 158: 11(bool) CompositeExtract 150 1 + 159: 8(int) Select 158 53 35 + 160: 55(ptr) AccessChain 151 32 + Store 160 159 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.multiStructFuncall.frag.out b/deps/glslang/glslang/Test/baseResults/spv.multiStructFuncall.frag.out new file mode 100644 index 0000000000..14c851cac1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.multiStructFuncall.frag.out @@ -0,0 +1,119 @@ +spv.multiStructFuncall.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 66 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "S" + MemberName 9(S) 0 "m" + Name 12 "fooConst(struct-S-mf441;" + Name 11 "s" + Name 17 "foo(struct-S-mf441;" + Name 16 "s" + Name 20 "fooOut(struct-S-mf441;" + Name 19 "s" + Name 22 "S" + MemberName 22(S) 0 "m" + Name 23 "blockName" + MemberName 23(blockName) 0 "s1" + Name 25 "" + Name 31 "S" + MemberName 31(S) 0 "m" + Name 32 "arg" + Name 39 "s2" + Name 42 "param" + Name 48 "param" + Name 51 "param" + Name 62 "param" + MemberDecorate 22(S) 0 ColMajor + MemberDecorate 22(S) 0 Offset 0 + MemberDecorate 22(S) 0 MatrixStride 16 + MemberDecorate 23(blockName) 0 Offset 0 + Decorate 23(blockName) BufferBlock + Decorate 25 DescriptorSet 0 + MemberDecorate 31(S) 0 ColMajor + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeMatrix 7(fvec4) 4 + 9(S): TypeStruct 8 + 10: TypeFunction 2 9(S) + 14: TypePointer Function 9(S) + 15: TypeFunction 2 14(ptr) + 22(S): TypeStruct 8 + 23(blockName): TypeStruct 22(S) + 24: TypePointer Uniform 23(blockName) + 25: 24(ptr) Variable Uniform + 26: TypeInt 32 1 + 27: 26(int) Constant 0 + 28: TypePointer Uniform 22(S) + 31(S): TypeStruct 8 + 34: TypePointer Function 8 + 38: TypePointer Private 9(S) + 39(s2): 38(ptr) Variable Private + 60: TypePointer Uniform 8 + 4(main): 2 Function None 3 + 5: Label + 32(arg): 14(ptr) Variable Function + 42(param): 14(ptr) Variable Function + 48(param): 14(ptr) Variable Function + 51(param): 14(ptr) Variable Function + 62(param): 14(ptr) Variable Function + 29: 28(ptr) AccessChain 25 27 + 30: 22(S) Load 29 + 33: 8 CompositeExtract 30 0 + 35: 34(ptr) AccessChain 32(arg) 27 + Store 35 33 + 36: 9(S) Load 32(arg) + 37: 2 FunctionCall 12(fooConst(struct-S-mf441;) 36 + 40: 9(S) Load 39(s2) + 41: 2 FunctionCall 12(fooConst(struct-S-mf441;) 40 + 43: 28(ptr) AccessChain 25 27 + 44: 22(S) Load 43 + 45: 8 CompositeExtract 44 0 + 46: 34(ptr) AccessChain 42(param) 27 + Store 46 45 + 47: 2 FunctionCall 17(foo(struct-S-mf441;) 42(param) + 49: 9(S) Load 39(s2) + Store 48(param) 49 + 50: 2 FunctionCall 17(foo(struct-S-mf441;) 48(param) + 52: 28(ptr) AccessChain 25 27 + 53: 22(S) Load 52 + 54: 8 CompositeExtract 53 0 + 55: 34(ptr) AccessChain 51(param) 27 + Store 55 54 + 56: 2 FunctionCall 20(fooOut(struct-S-mf441;) 51(param) + 57: 9(S) Load 51(param) + 58: 28(ptr) AccessChain 25 27 + 59: 8 CompositeExtract 57 0 + 61: 60(ptr) AccessChain 58 27 + Store 61 59 + 63: 9(S) Load 39(s2) + Store 62(param) 63 + 64: 2 FunctionCall 20(fooOut(struct-S-mf441;) 62(param) + 65: 9(S) Load 62(param) + Store 39(s2) 65 + Return + FunctionEnd +12(fooConst(struct-S-mf441;): 2 Function None 10 + 11(s): 9(S) FunctionParameter + 13: Label + Return + FunctionEnd +17(foo(struct-S-mf441;): 2 Function None 15 + 16(s): 14(ptr) FunctionParameter + 18: Label + Return + FunctionEnd +20(fooOut(struct-S-mf441;): 2 Function None 15 + 19(s): 14(ptr) FunctionParameter + 21: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.multiView.frag.out b/deps/glslang/glslang/Test/baseResults/spv.multiView.frag.out new file mode 100644 index 0000000000..9dbd36b992 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.multiView.frag.out @@ -0,0 +1,36 @@ +spv.multiView.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 17 + + Capability Shader + Capability MultiView + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 12 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_multiview" + Name 4 "main" + Name 9 "color" + Name 12 "gl_ViewIndex" + Decorate 12(gl_ViewIndex) Flat + Decorate 12(gl_ViewIndex) BuiltIn ViewIndex + 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: TypeInt 32 1 + 11: TypePointer Input 10(int) +12(gl_ViewIndex): 11(ptr) Variable Input + 15: 6(float) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 13: 10(int) Load 12(gl_ViewIndex) + 14: 6(float) ConvertSToF 13 + 16: 7(fvec4) CompositeConstruct 14 15 15 15 + Store 9(color) 16 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out new file mode 100644 index 0000000000..5d4508be4e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out @@ -0,0 +1,75 @@ +spv.multiviewPerViewAttributes.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 37 + + Capability Tessellation + Capability PerViewAttributesNV + Extension "SPV_NVX_multiview_per_view_attributes" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 17 19 31 + ExecutionMode 4 OutputVertices 4 + Source GLSL 450 + SourceExtension "GL_NVX_multiview_per_view_attributes" + Name 4 "main" + Name 13 "gl_PerVertex" + MemberName 13(gl_PerVertex) 0 "gl_PositionPerViewNV" + MemberName 13(gl_PerVertex) 1 "gl_ViewportMaskPerViewNV" + Name 17 "gl_out" + Name 19 "gl_InvocationID" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 27(gl_PerVertex) 3 "gl_CullDistance" + MemberName 27(gl_PerVertex) 5 "gl_PositionPerViewNV" + Name 31 "gl_in" + MemberDecorate 13(gl_PerVertex) 0 BuiltIn PositionPerViewNV + MemberDecorate 13(gl_PerVertex) 1 BuiltIn ViewportMaskPerViewNV + Decorate 13(gl_PerVertex) Block + Decorate 19(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 27(gl_PerVertex) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 1 + 10: TypeArray 7(fvec4) 9 + 11: TypeInt 32 1 + 12: TypeArray 11(int) 9 +13(gl_PerVertex): TypeStruct 10 12 + 14: 8(int) Constant 4 + 15: TypeArray 13(gl_PerVertex) 14 + 16: TypePointer Output 15 + 17(gl_out): 16(ptr) Variable Output + 18: TypePointer Input 11(int) +19(gl_InvocationID): 18(ptr) Variable Input + 21: 11(int) Constant 1 + 22: 11(int) Constant 0 + 23: TypePointer Output 11(int) + 26: TypeArray 6(float) 9 +27(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 26 26 10 + 28: 8(int) Constant 32 + 29: TypeArray 27(gl_PerVertex) 28 + 30: TypePointer Input 29 + 31(gl_in): 30(ptr) Variable Input + 32: TypePointer Input 7(fvec4) + 35: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 20: 11(int) Load 19(gl_InvocationID) + 24: 23(ptr) AccessChain 17(gl_out) 20 21 22 + Store 24 21 + 25: 11(int) Load 19(gl_InvocationID) + 33: 32(ptr) AccessChain 31(gl_in) 21 22 + 34: 7(fvec4) Load 33 + 36: 35(ptr) AccessChain 17(gl_out) 25 22 22 + Store 36 34 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out b/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out new file mode 100644 index 0000000000..c8377cfae7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out @@ -0,0 +1,60 @@ +spv.multiviewPerViewAttributes.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 29 + + Capability Shader + Capability PerViewAttributesNV + Extension "SPV_NVX_multiview_per_view_attributes" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 11 20 24 + Source GLSL 450 + SourceExtension "GL_NVX_multiview_per_view_attributes" + Name 4 "main" + Name 11 "gl_ViewportMaskPerViewNV" + Name 20 "gl_PositionPerViewNV" + Name 22 "gl_PerVertex" + MemberName 22(gl_PerVertex) 0 "gl_Position" + MemberName 22(gl_PerVertex) 1 "gl_PointSize" + MemberName 22(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 22(gl_PerVertex) 3 "gl_CullDistance" + Name 24 "" + Decorate 11(gl_ViewportMaskPerViewNV) BuiltIn ViewportMaskPerViewNV + Decorate 20(gl_PositionPerViewNV) BuiltIn PositionPerViewNV + MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 22(gl_PerVertex) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: 7(int) Constant 1 + 9: TypeArray 6(int) 8 + 10: TypePointer Output 9 +11(gl_ViewportMaskPerViewNV): 10(ptr) Variable Output + 12: 6(int) Constant 0 + 13: 6(int) Constant 1 + 14: TypePointer Output 6(int) + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypeArray 17(fvec4) 8 + 19: TypePointer Output 18 +20(gl_PositionPerViewNV): 19(ptr) Variable Output + 21: TypeArray 16(float) 8 +22(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 21 21 + 23: TypePointer Output 22(gl_PerVertex) + 24: 23(ptr) Variable Output + 25: TypePointer Output 17(fvec4) + 4(main): 2 Function None 3 + 5: Label + 15: 14(ptr) AccessChain 11(gl_ViewportMaskPerViewNV) 12 + Store 15 13 + 26: 25(ptr) AccessChain 24 12 + 27: 17(fvec4) Load 26 + 28: 25(ptr) AccessChain 20(gl_PositionPerViewNV) 12 + Store 28 27 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out b/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out new file mode 100644 index 0000000000..5ddd8a545f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.newTexture.frag.out @@ -0,0 +1,381 @@ +spv.newTexture.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 284 + + Capability Shader + Capability SampledRect + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 253 283 + ExecutionMode 4 OriginUpperLeft + Source GLSL 430 + Name 4 "main" + Name 9 "v" + Name 13 "s2D" + Name 17 "c2D" + Name 23 "sCubeArrayShadow" + Name 26 "c4D" + Name 29 "c1D" + Name 42 "s3D" + Name 51 "s2DArray" + Name 55 "c3D" + Name 64 "s2DShadow" + Name 81 "ic3D" + Name 84 "ic1D" + Name 92 "ic2D" + Name 102 "sr" + Name 128 "sCube" + Name 139 "s2DArrayShadow" + Name 167 "iv" + Name 171 "is2D" + Name 208 "is3D" + Name 220 "isCube" + Name 232 "is2DArray" + Name 243 "iv2" + Name 247 "sCubeShadow" + Name 253 "FragData" + Name 265 "is2Dms" + Name 269 "us2D" + Name 273 "us3D" + Name 277 "usCube" + Name 281 "us2DArray" + Name 283 "ic4D" + Decorate 13(s2D) DescriptorSet 0 + Decorate 23(sCubeArrayShadow) DescriptorSet 0 + Decorate 42(s3D) DescriptorSet 0 + Decorate 51(s2DArray) DescriptorSet 0 + Decorate 64(s2DShadow) DescriptorSet 0 + Decorate 81(ic3D) Flat + Decorate 84(ic1D) Flat + Decorate 92(ic2D) Flat + Decorate 102(sr) DescriptorSet 0 + Decorate 128(sCube) DescriptorSet 0 + Decorate 139(s2DArrayShadow) DescriptorSet 0 + Decorate 171(is2D) DescriptorSet 0 + Decorate 208(is3D) DescriptorSet 0 + Decorate 220(isCube) DescriptorSet 0 + Decorate 232(is2DArray) DescriptorSet 0 + Decorate 247(sCubeShadow) DescriptorSet 0 + Decorate 265(is2Dms) DescriptorSet 0 + Decorate 269(us2D) DescriptorSet 0 + Decorate 273(us3D) DescriptorSet 0 + Decorate 277(usCube) DescriptorSet 0 + Decorate 281(us2DArray) DescriptorSet 0 + Decorate 283(ic4D) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(s2D): 12(ptr) Variable UniformConstant + 15: TypeVector 6(float) 2 + 16: TypePointer Input 15(fvec2) + 17(c2D): 16(ptr) Variable Input + 20: TypeImage 6(float) Cube depth array sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 +23(sCubeArrayShadow): 22(ptr) Variable UniformConstant + 25: TypePointer Input 7(fvec4) + 26(c4D): 25(ptr) Variable Input + 28: TypePointer Input 6(float) + 29(c1D): 28(ptr) Variable Input + 32: TypeInt 32 0 + 33: 32(int) Constant 1 + 34: TypePointer Function 6(float) + 39: TypeImage 6(float) 3D sampled format:Unknown + 40: TypeSampledImage 39 + 41: TypePointer UniformConstant 40 + 42(s3D): 41(ptr) Variable UniformConstant + 48: TypeImage 6(float) 2D array sampled format:Unknown + 49: TypeSampledImage 48 + 50: TypePointer UniformConstant 49 + 51(s2DArray): 50(ptr) Variable UniformConstant + 53: TypeVector 6(float) 3 + 54: TypePointer Input 53(fvec3) + 55(c3D): 54(ptr) Variable Input + 57: 6(float) Constant 1067030938 + 61: TypeImage 6(float) 2D depth sampled format:Unknown + 62: TypeSampledImage 61 + 63: TypePointer UniformConstant 62 + 64(s2DShadow): 63(ptr) Variable UniformConstant + 67: TypeInt 32 1 + 68: TypeVector 67(int) 2 + 69: 67(int) Constant 3 + 70: 68(ivec2) ConstantComposite 69 69 + 79: TypeVector 67(int) 3 + 80: TypePointer Input 79(ivec3) + 81(ic3D): 80(ptr) Variable Input + 83: TypePointer Input 67(int) + 84(ic1D): 83(ptr) Variable Input + 91: TypePointer Input 68(ivec2) + 92(ic2D): 91(ptr) Variable Input + 94: 67(int) Constant 4 + 99: TypeImage 6(float) Rect sampled format:Unknown + 100: TypeSampledImage 99 + 101: TypePointer UniformConstant 100 + 102(sr): 101(ptr) Variable UniformConstant + 105: 68(ivec2) ConstantComposite 94 94 + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypeSampledImage 125 + 127: TypePointer UniformConstant 126 + 128(sCube): 127(ptr) Variable UniformConstant + 136: TypeImage 6(float) 2D depth array sampled format:Unknown + 137: TypeSampledImage 136 + 138: TypePointer UniformConstant 137 +139(s2DArrayShadow): 138(ptr) Variable UniformConstant + 146: 32(int) Constant 0 + 165: TypeVector 67(int) 4 + 166: TypePointer Function 165(ivec4) + 168: TypeImage 67(int) 2D sampled format:Unknown + 169: TypeSampledImage 168 + 170: TypePointer UniformConstant 169 + 171(is2D): 170(ptr) Variable UniformConstant + 205: TypeImage 67(int) 3D sampled format:Unknown + 206: TypeSampledImage 205 + 207: TypePointer UniformConstant 206 + 208(is3D): 207(ptr) Variable UniformConstant + 211: 6(float) Constant 1082549862 + 217: TypeImage 67(int) Cube sampled format:Unknown + 218: TypeSampledImage 217 + 219: TypePointer UniformConstant 218 + 220(isCube): 219(ptr) Variable UniformConstant + 229: TypeImage 67(int) 2D array sampled format:Unknown + 230: TypeSampledImage 229 + 231: TypePointer UniformConstant 230 + 232(is2DArray): 231(ptr) Variable UniformConstant + 242: TypePointer Function 68(ivec2) + 244: TypeImage 6(float) Cube depth sampled format:Unknown + 245: TypeSampledImage 244 + 246: TypePointer UniformConstant 245 +247(sCubeShadow): 246(ptr) Variable UniformConstant + 249: 67(int) Constant 2 + 252: TypePointer Output 7(fvec4) + 253(FragData): 252(ptr) Variable Output + 257: 6(float) Constant 0 + 262: TypeImage 67(int) 2D multi-sampled sampled format:Unknown + 263: TypeSampledImage 262 + 264: TypePointer UniformConstant 263 + 265(is2Dms): 264(ptr) Variable UniformConstant + 266: TypeImage 32(int) 2D sampled format:Unknown + 267: TypeSampledImage 266 + 268: TypePointer UniformConstant 267 + 269(us2D): 268(ptr) Variable UniformConstant + 270: TypeImage 32(int) 3D sampled format:Unknown + 271: TypeSampledImage 270 + 272: TypePointer UniformConstant 271 + 273(us3D): 272(ptr) Variable UniformConstant + 274: TypeImage 32(int) Cube sampled format:Unknown + 275: TypeSampledImage 274 + 276: TypePointer UniformConstant 275 + 277(usCube): 276(ptr) Variable UniformConstant + 278: TypeImage 32(int) 2D array sampled format:Unknown + 279: TypeSampledImage 278 + 280: TypePointer UniformConstant 279 + 281(us2DArray): 280(ptr) Variable UniformConstant + 282: TypePointer Input 165(ivec4) + 283(ic4D): 282(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(v): 8(ptr) Variable Function + 167(iv): 166(ptr) Variable Function + 243(iv2): 242(ptr) Variable Function + 14: 11 Load 13(s2D) + 18: 15(fvec2) Load 17(c2D) + 19: 7(fvec4) ImageSampleImplicitLod 14 18 + Store 9(v) 19 + 24: 21 Load 23(sCubeArrayShadow) + 27: 7(fvec4) Load 26(c4D) + 30: 6(float) Load 29(c1D) + 31: 6(float) ImageSampleDrefImplicitLod 24 27 30 + 35: 34(ptr) AccessChain 9(v) 33 + 36: 6(float) Load 35 + 37: 6(float) FAdd 36 31 + 38: 34(ptr) AccessChain 9(v) 33 + Store 38 37 + 43: 40 Load 42(s3D) + 44: 7(fvec4) Load 26(c4D) + 45: 7(fvec4) ImageSampleProjImplicitLod 43 44 + 46: 7(fvec4) Load 9(v) + 47: 7(fvec4) FAdd 46 45 + Store 9(v) 47 + 52: 49 Load 51(s2DArray) + 56: 53(fvec3) Load 55(c3D) + 58: 7(fvec4) ImageSampleExplicitLod 52 56 Lod 57 + 59: 7(fvec4) Load 9(v) + 60: 7(fvec4) FAdd 59 58 + Store 9(v) 60 + 65: 62 Load 64(s2DShadow) + 66: 53(fvec3) Load 55(c3D) + 71: 6(float) Load 29(c1D) + 72: 6(float) CompositeExtract 66 2 + 73: 6(float) ImageSampleDrefImplicitLod 65 66 72 Bias ConstOffset 71 70 + 74: 34(ptr) AccessChain 9(v) 33 + 75: 6(float) Load 74 + 76: 6(float) FAdd 75 73 + 77: 34(ptr) AccessChain 9(v) 33 + Store 77 76 + 78: 40 Load 42(s3D) + 82: 79(ivec3) Load 81(ic3D) + 85: 67(int) Load 84(ic1D) + 86: 39 Image 78 + 87: 7(fvec4) ImageFetch 86 82 Lod 85 + 88: 7(fvec4) Load 9(v) + 89: 7(fvec4) FAdd 88 87 + Store 9(v) 89 + 90: 11 Load 13(s2D) + 93: 68(ivec2) Load 92(ic2D) + 95: 10 Image 90 + 96: 7(fvec4) ImageFetch 95 93 Lod ConstOffset 94 70 + 97: 7(fvec4) Load 9(v) + 98: 7(fvec4) FAdd 97 96 + Store 9(v) 98 + 103: 100 Load 102(sr) + 104: 68(ivec2) Load 92(ic2D) + 106: 99 Image 103 + 107: 7(fvec4) ImageFetch 106 104 ConstOffset 105 + 108: 7(fvec4) Load 9(v) + 109: 7(fvec4) FAdd 108 107 + Store 9(v) 109 + 110: 62 Load 64(s2DShadow) + 111: 53(fvec3) Load 55(c3D) + 112: 6(float) Load 29(c1D) + 113: 6(float) CompositeExtract 111 2 + 114: 6(float) ImageSampleDrefExplicitLod 110 111 113 Lod ConstOffset 112 70 + 115: 34(ptr) AccessChain 9(v) 33 + 116: 6(float) Load 115 + 117: 6(float) FAdd 116 114 + 118: 34(ptr) AccessChain 9(v) 33 + Store 118 117 + 119: 11 Load 13(s2D) + 120: 53(fvec3) Load 55(c3D) + 121: 6(float) Load 29(c1D) + 122: 7(fvec4) ImageSampleProjExplicitLod 119 120 Lod ConstOffset 121 70 + 123: 7(fvec4) Load 9(v) + 124: 7(fvec4) FAdd 123 122 + Store 9(v) 124 + 129: 126 Load 128(sCube) + 130: 53(fvec3) Load 55(c3D) + 131: 53(fvec3) Load 55(c3D) + 132: 53(fvec3) Load 55(c3D) + 133: 7(fvec4) ImageSampleExplicitLod 129 130 Grad 131 132 + 134: 7(fvec4) Load 9(v) + 135: 7(fvec4) FAdd 134 133 + Store 9(v) 135 + 140: 137 Load 139(s2DArrayShadow) + 141: 7(fvec4) Load 26(c4D) + 142: 15(fvec2) Load 17(c2D) + 143: 15(fvec2) Load 17(c2D) + 144: 6(float) CompositeExtract 141 3 + 145: 6(float) ImageSampleDrefExplicitLod 140 141 144 Grad ConstOffset 142 143 70 + 147: 34(ptr) AccessChain 9(v) 146 + 148: 6(float) Load 147 + 149: 6(float) FAdd 148 145 + 150: 34(ptr) AccessChain 9(v) 146 + Store 150 149 + 151: 40 Load 42(s3D) + 152: 7(fvec4) Load 26(c4D) + 153: 53(fvec3) Load 55(c3D) + 154: 53(fvec3) Load 55(c3D) + 155: 7(fvec4) ImageSampleProjExplicitLod 151 152 Grad 153 154 + 156: 7(fvec4) Load 9(v) + 157: 7(fvec4) FAdd 156 155 + Store 9(v) 157 + 158: 11 Load 13(s2D) + 159: 53(fvec3) Load 55(c3D) + 160: 15(fvec2) Load 17(c2D) + 161: 15(fvec2) Load 17(c2D) + 162: 7(fvec4) ImageSampleProjExplicitLod 158 159 Grad ConstOffset 160 161 70 + 163: 7(fvec4) Load 9(v) + 164: 7(fvec4) FAdd 163 162 + Store 9(v) 164 + 172: 169 Load 171(is2D) + 173: 15(fvec2) Load 17(c2D) + 174: 165(ivec4) ImageSampleImplicitLod 172 173 + Store 167(iv) 174 + 175: 165(ivec4) Load 167(iv) + 176: 7(fvec4) ConvertSToF 175 + 177: 7(fvec4) Load 9(v) + 178: 7(fvec4) FAdd 177 176 + Store 9(v) 178 + 179: 169 Load 171(is2D) + 180: 7(fvec4) Load 26(c4D) + 181: 6(float) CompositeExtract 180 3 + 182: 7(fvec4) CompositeInsert 181 180 2 + 183: 165(ivec4) ImageSampleProjImplicitLod 179 182 ConstOffset 70 + Store 167(iv) 183 + 184: 165(ivec4) Load 167(iv) + 185: 7(fvec4) ConvertSToF 184 + 186: 7(fvec4) Load 9(v) + 187: 7(fvec4) FAdd 186 185 + Store 9(v) 187 + 188: 169 Load 171(is2D) + 189: 53(fvec3) Load 55(c3D) + 190: 6(float) Load 29(c1D) + 191: 165(ivec4) ImageSampleProjExplicitLod 188 189 Lod 190 + Store 167(iv) 191 + 192: 165(ivec4) Load 167(iv) + 193: 7(fvec4) ConvertSToF 192 + 194: 7(fvec4) Load 9(v) + 195: 7(fvec4) FAdd 194 193 + Store 9(v) 195 + 196: 169 Load 171(is2D) + 197: 53(fvec3) Load 55(c3D) + 198: 15(fvec2) Load 17(c2D) + 199: 15(fvec2) Load 17(c2D) + 200: 165(ivec4) ImageSampleProjExplicitLod 196 197 Grad 198 199 + Store 167(iv) 200 + 201: 165(ivec4) Load 167(iv) + 202: 7(fvec4) ConvertSToF 201 + 203: 7(fvec4) Load 9(v) + 204: 7(fvec4) FAdd 203 202 + Store 9(v) 204 + 209: 206 Load 208(is3D) + 210: 53(fvec3) Load 55(c3D) + 212: 165(ivec4) ImageSampleImplicitLod 209 210 Bias 211 + Store 167(iv) 212 + 213: 165(ivec4) Load 167(iv) + 214: 7(fvec4) ConvertSToF 213 + 215: 7(fvec4) Load 9(v) + 216: 7(fvec4) FAdd 215 214 + Store 9(v) 216 + 221: 218 Load 220(isCube) + 222: 53(fvec3) Load 55(c3D) + 223: 6(float) Load 29(c1D) + 224: 165(ivec4) ImageSampleExplicitLod 221 222 Lod 223 + Store 167(iv) 224 + 225: 165(ivec4) Load 167(iv) + 226: 7(fvec4) ConvertSToF 225 + 227: 7(fvec4) Load 9(v) + 228: 7(fvec4) FAdd 227 226 + Store 9(v) 228 + 233: 230 Load 232(is2DArray) + 234: 79(ivec3) Load 81(ic3D) + 235: 67(int) Load 84(ic1D) + 236: 229 Image 233 + 237: 165(ivec4) ImageFetch 236 234 Lod 235 + Store 167(iv) 237 + 238: 165(ivec4) Load 167(iv) + 239: 7(fvec4) ConvertSToF 238 + 240: 7(fvec4) Load 9(v) + 241: 7(fvec4) FAdd 240 239 + Store 9(v) 241 + 248: 245 Load 247(sCubeShadow) + 250: 244 Image 248 + 251: 68(ivec2) ImageQuerySizeLod 250 249 + Store 243(iv2) 251 + 254: 7(fvec4) Load 9(v) + 255: 68(ivec2) Load 243(iv2) + 256: 15(fvec2) ConvertSToF 255 + 258: 6(float) CompositeExtract 256 0 + 259: 6(float) CompositeExtract 256 1 + 260: 7(fvec4) CompositeConstruct 258 259 257 257 + 261: 7(fvec4) FAdd 254 260 + Store 253(FragData) 261 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out b/deps/glslang/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out new file mode 100644 index 0000000000..066f81f78f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out @@ -0,0 +1,81 @@ +spv.noBuiltInLoc.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 35 + + Capability Shader + Capability AtomicStorage + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 11 18 33 34 + Source GLSL 450 + Name 4 "main" + Name 9 "bar" + Name 11 "foo" + Name 16 "gl_PerVertex" + MemberName 16(gl_PerVertex) 0 "gl_Position" + MemberName 16(gl_PerVertex) 1 "gl_PointSize" + MemberName 16(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 16(gl_PerVertex) 3 "gl_CullDistance" + Name 18 "" + Name 24 "uv1" + Name 26 "uv2" + Name 29 "uv3" + Name 31 "a_uint" + Name 33 "gl_VertexID" + Name 34 "gl_InstanceID" + Decorate 9(bar) Location 0 + Decorate 11(foo) Location 0 + MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 16(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 16(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 16(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 16(gl_PerVertex) Block + Decorate 24(uv1) Location 0 + Decorate 24(uv1) DescriptorSet 0 + Decorate 26(uv2) Location 1 + Decorate 26(uv2) DescriptorSet 0 + Decorate 29(uv3) Location 2 + Decorate 29(uv3) DescriptorSet 0 + Decorate 31(a_uint) Offset 0 + Decorate 31(a_uint) DescriptorSet 0 + Decorate 31(a_uint) Binding 0 + Decorate 33(gl_VertexID) BuiltIn VertexId + Decorate 34(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(bar): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(foo): 10(ptr) Variable Input + 13: TypeInt 32 0 + 14: 13(int) Constant 1 + 15: TypeArray 6(float) 14 +16(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 15 15 + 17: TypePointer Output 16(gl_PerVertex) + 18: 17(ptr) Variable Output + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 23: TypePointer UniformConstant 7(fvec4) + 24(uv1): 23(ptr) Variable UniformConstant + 25: TypePointer UniformConstant 6(float) + 26(uv2): 25(ptr) Variable UniformConstant + 27: TypeVector 6(float) 3 + 28: TypePointer UniformConstant 27(fvec3) + 29(uv3): 28(ptr) Variable UniformConstant + 30: TypePointer AtomicCounter 13(int) + 31(a_uint): 30(ptr) Variable AtomicCounter + 32: TypePointer Input 19(int) + 33(gl_VertexID): 32(ptr) Variable Input +34(gl_InstanceID): 32(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(foo) + Store 9(bar) 12 + 21: 7(fvec4) Load 11(foo) + 22: 8(ptr) AccessChain 18 20 + Store 22 21 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out b/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out new file mode 100644 index 0000000000..d7e3702718 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.noDeadDecorations.vert.out @@ -0,0 +1,58 @@ +spv.noDeadDecorations.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 22 + Source ESSL 310 + Name 4 "main" + Name 10 "func(f1;" + Name 9 "a" + Name 20 "gl_PerVertex" + MemberName 20(gl_PerVertex) 0 "gl_Position" + MemberName 20(gl_PerVertex) 1 "gl_PointSize" + Name 22 "" + Name 26 "param" + Decorate 10(func(f1;) RelaxedPrecision + Decorate 9(a) RelaxedPrecision + Decorate 12 RelaxedPrecision + Decorate 13 RelaxedPrecision + MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize + Decorate 20(gl_PerVertex) Block + Decorate 27 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 6(float) 7(ptr) + 16: 6(float) Constant 3212836864 + 19: TypeVector 6(float) 4 +20(gl_PerVertex): TypeStruct 19(fvec4) 6(float) + 21: TypePointer Output 20(gl_PerVertex) + 22: 21(ptr) Variable Output + 23: TypeInt 32 1 + 24: 23(int) Constant 0 + 25: 6(float) Constant 0 + 28: TypeInt 32 0 + 29: 28(int) Constant 0 + 30: TypePointer Output 6(float) + 4(main): 2 Function None 3 + 5: Label + 26(param): 7(ptr) Variable Function + Store 26(param) 25 + 27: 6(float) FunctionCall 10(func(f1;) 26(param) + 31: 30(ptr) AccessChain 22 24 29 + Store 31 27 + Return + FunctionEnd + 10(func(f1;): 6(float) Function None 8 + 9(a): 7(ptr) FunctionParameter + 11: Label + 12: 6(float) Load 9(a) + 13: 6(float) FNegate 12 + ReturnValue 13 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.noLocation.vert.out b/deps/glslang/glslang/Test/baseResults/spv.noLocation.vert.out new file mode 100644 index 0000000000..7a664745f7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.noLocation.vert.out @@ -0,0 +1,10 @@ +spv.noLocation.vert +ERROR: spv.noLocation.vert:4: 'location' : SPIR-V requires location for user input/output +ERROR: spv.noLocation.vert:8: 'location' : SPIR-V requires location for user input/output +ERROR: spv.noLocation.vert:19: 'location' : SPIR-V requires location for user input/output +ERROR: spv.noLocation.vert:25: 'location' : SPIR-V requires location for user input/output +ERROR: spv.noLocation.vert:29: 'location' : SPIR-V requires location for user input/output +ERROR: 5 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out b/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out new file mode 100644 index 0000000000..2624fdcdbd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.noWorkgroup.comp.out @@ -0,0 +1,28 @@ +spv.noWorkgroup.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 12 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Decorate 7 SpecId 18 + Decorate 8 SpecId 10 + Decorate 9 SpecId 19 + Decorate 11 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) SpecConstant 1 + 8: 6(int) SpecConstant 1 + 9: 6(int) SpecConstant 1 + 10: TypeVector 6(int) 3 + 11: 10(ivec3) SpecConstantComposite 7 8 9 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out b/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out new file mode 100644 index 0000000000..679a5f0f96 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.nonSquare.vert.out @@ -0,0 +1,112 @@ +spv.nonSquare.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 90 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 12 22 28 55 + Source GLSL 140 + Name 4 "main" + Name 9 "a" + Name 12 "v3" + Name 16 "m23" + Name 19 "b" + Name 22 "m32" + Name 28 "gl_Position" + Name 55 "v4" + Decorate 28(gl_Position) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeVector 6(float) 3 + 11: TypePointer Input 10(fvec3) + 12(v3): 11(ptr) Variable Input + 14: TypeMatrix 10(fvec3) 2 + 15: TypePointer Function 14 + 20: TypeMatrix 7(fvec2) 3 + 21: TypePointer Output 20 + 22(m32): 21(ptr) Variable Output + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(gl_Position): 27(ptr) Variable Output + 31: TypeMatrix 10(fvec3) 3 + 35: 6(float) Constant 0 + 40: TypeMatrix 26(fvec4) 4 + 41: 6(float) Constant 1077936128 + 42: 6(float) Constant 1086324736 + 43: 26(fvec4) ConstantComposite 41 42 35 35 + 44: 6(float) Constant 1091567616 + 45: 6(float) Constant 1094713344 + 46: 26(fvec4) ConstantComposite 44 45 35 35 + 47: 6(float) Constant 1097859072 + 48: 6(float) Constant 1099956224 + 49: 26(fvec4) ConstantComposite 47 48 35 35 + 50: 6(float) Constant 1101529088 + 51: 6(float) Constant 1103101952 + 52: 26(fvec4) ConstantComposite 50 51 35 35 + 53: 40 ConstantComposite 43 46 49 52 + 54: TypePointer Input 26(fvec4) + 55(v4): 54(ptr) Variable Input + 59: 6(float) Constant 1112014848 + 60: 6(float) Constant 1121714176 + 61: 6(float) Constant 1126825984 + 62: 6(float) Constant 1130758144 + 63: 26(fvec4) ConstantComposite 59 60 61 62 + 65: 6(float) Constant 1106247680 + 66: 6(float) Constant 1114636288 + 67: 26(fvec4) ConstantComposite 65 66 35 35 + 69: 6(float) Constant 1101004800 + 70: 6(float) Constant 1092616192 + 71: 6(float) Constant 1084227584 + 72: 26(fvec4) ConstantComposite 69 70 42 71 + 74: 7(fvec2) ConstantComposite 70 69 + 75: TypeMatrix 26(fvec4) 2 + 76: 26(fvec4) ConstantComposite 41 35 35 35 + 77: 26(fvec4) ConstantComposite 35 41 35 35 + 78: 75 ConstantComposite 76 77 + 79: TypeMatrix 7(fvec2) 4 + 80: 6(float) Constant 1065353216 + 81: 6(float) Constant 1073741824 + 82: 7(fvec2) ConstantComposite 80 81 + 83: 6(float) Constant 1082130432 + 84: 7(fvec2) ConstantComposite 41 83 + 85: 7(fvec2) ConstantComposite 71 42 + 86: 6(float) Constant 1088421888 + 87: 6(float) Constant 1090519040 + 88: 7(fvec2) ConstantComposite 86 87 + 89: 79 ConstantComposite 82 84 85 88 + 4(main): 2 Function None 3 + 5: Label + 9(a): 8(ptr) Variable Function + 16(m23): 15(ptr) Variable Function + 19(b): 8(ptr) Variable Function + 13: 10(fvec3) Load 12(v3) + 17: 14 Load 16(m23) + 18: 7(fvec2) VectorTimesMatrix 13 17 + Store 9(a) 18 + 23: 20 Load 22(m32) + 24: 10(fvec3) Load 12(v3) + 25: 7(fvec2) MatrixTimesVector 23 24 + Store 19(b) 25 + 29: 14 Load 16(m23) + 30: 20 Load 22(m32) + 32: 31 MatrixTimesMatrix 29 30 + 33: 10(fvec3) Load 12(v3) + 34: 10(fvec3) MatrixTimesVector 32 33 + 36: 6(float) CompositeExtract 34 0 + 37: 6(float) CompositeExtract 34 1 + 38: 6(float) CompositeExtract 34 2 + 39: 26(fvec4) CompositeConstruct 36 37 38 35 + 56: 26(fvec4) Load 55(v4) + 57: 26(fvec4) MatrixTimesVector 53 56 + 58: 26(fvec4) FAdd 39 57 + 64: 26(fvec4) FAdd 58 63 + 68: 26(fvec4) FAdd 64 67 + 73: 26(fvec4) FAdd 68 72 + Store 28(gl_Position) 73 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.nonuniform.frag.out b/deps/glslang/glslang/Test/baseResults/spv.nonuniform.frag.out new file mode 100644 index 0000000000..972276a6bf --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.nonuniform.frag.out @@ -0,0 +1,359 @@ +spv.nonuniform.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 210 + + Capability Shader + Capability InputAttachment + Capability SampledBuffer + Capability ImageBuffer + Capability CapabilityShaderNonUniformEXT + Capability CapabilityRuntimeDescriptorArrayEXT + Capability CapabilityInputAttachmentArrayDynamicIndexingEXT + Capability CapabilityUniformTexelBufferArrayDynamicIndexingEXT + Capability CapabilityStorageTexelBufferArrayDynamicIndexingEXT + Capability CapabilityUniformBufferArrayNonUniformIndexingEXT + Capability CapabilitySampledImageArrayNonUniformIndexingEXT + Capability CapabilityStorageBufferArrayNonUniformIndexingEXT + Capability CapabilityStorageImageArrayNonUniformIndexingEXT + Capability CapabilityInputAttachmentArrayNonUniformIndexingEXT + Capability CapabilityUniformTexelBufferArrayNonUniformIndexingEXT + Capability CapabilityStorageTexelBufferArrayNonUniformIndexingEXT + Extension "SPV_EXT_descriptor_indexing" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 90 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_EXT_nonuniform_qualifier" + Name 4 "main" + Name 11 "foo(i1;i1;" + Name 9 "nupi" + Name 10 "f" + Name 16 "a" + Name 17 "nu_li" + Name 18 "param" + Name 20 "param" + Name 30 "b" + Name 33 "nu_inv4" + Name 39 "nu_gf" + Name 45 "inputAttachmentDyn" + Name 46 "dyn_i" + Name 62 "uniformTexelBufferDyn" + Name 76 "storageTexelBufferDyn" + Name 85 "uname" + MemberName 85(uname) 0 "a" + Name 88 "uniformBuffer" + Name 90 "nu_ii" + Name 97 "bname" + MemberName 97(bname) 0 "b" + Name 100 "storageBuffer" + Name 110 "sampledImage" + Name 125 "storageImage" + Name 137 "inputAttachment" + Name 147 "uniformTexelBuffer" + Name 158 "storageTexelBuffer" + Name 168 "v" + Name 183 "uv" + Name 193 "m" + Name 201 "S" + MemberName 201(S) 0 "a" + Name 203 "s" + Decorate 13 DecorationNonUniformEXT + Decorate 17(nu_li) DecorationNonUniformEXT + Decorate 19 DecorationNonUniformEXT + Decorate 23 DecorationNonUniformEXT + Decorate 26 DecorationNonUniformEXT + Decorate 27 DecorationNonUniformEXT + Decorate 33(nu_inv4) Location 0 + Decorate 33(nu_inv4) DecorationNonUniformEXT + Decorate 38 DecorationNonUniformEXT + Decorate 39(nu_gf) DecorationNonUniformEXT + Decorate 40 DecorationNonUniformEXT + Decorate 41 DecorationNonUniformEXT + Decorate 45(inputAttachmentDyn) DescriptorSet 0 + Decorate 45(inputAttachmentDyn) Binding 0 + Decorate 45(inputAttachmentDyn) InputAttachmentIndex 0 + Decorate 62(uniformTexelBufferDyn) DescriptorSet 0 + Decorate 62(uniformTexelBufferDyn) Binding 1 + Decorate 76(storageTexelBufferDyn) DescriptorSet 0 + Decorate 76(storageTexelBufferDyn) Binding 2 + MemberDecorate 85(uname) 0 Offset 0 + Decorate 85(uname) Block + Decorate 88(uniformBuffer) DescriptorSet 0 + Decorate 88(uniformBuffer) Binding 3 + Decorate 90(nu_ii) Flat + Decorate 90(nu_ii) Location 1 + Decorate 90(nu_ii) DecorationNonUniformEXT + Decorate 91 DecorationNonUniformEXT + Decorate 94 DecorationNonUniformEXT + MemberDecorate 97(bname) 0 Offset 0 + Decorate 97(bname) BufferBlock + Decorate 100(storageBuffer) DescriptorSet 0 + Decorate 100(storageBuffer) Binding 4 + Decorate 101 DecorationNonUniformEXT + Decorate 103 DecorationNonUniformEXT + Decorate 110(sampledImage) DescriptorSet 0 + Decorate 110(sampledImage) Binding 5 + Decorate 111 DecorationNonUniformEXT + Decorate 114 DecorationNonUniformEXT + Decorate 125(storageImage) DescriptorSet 0 + Decorate 125(storageImage) Binding 6 + Decorate 126 DecorationNonUniformEXT + Decorate 129 DecorationNonUniformEXT + Decorate 137(inputAttachment) DescriptorSet 0 + Decorate 137(inputAttachment) Binding 7 + Decorate 137(inputAttachment) InputAttachmentIndex 1 + Decorate 138 DecorationNonUniformEXT + Decorate 140 DecorationNonUniformEXT + Decorate 147(uniformTexelBuffer) DescriptorSet 0 + Decorate 147(uniformTexelBuffer) Binding 8 + Decorate 148 DecorationNonUniformEXT + Decorate 150 DecorationNonUniformEXT + Decorate 158(storageTexelBuffer) DescriptorSet 0 + Decorate 158(storageTexelBuffer) Binding 9 + Decorate 159 DecorationNonUniformEXT + Decorate 161 DecorationNonUniformEXT + Decorate 168(v) DecorationNonUniformEXT + Decorate 171 DecorationNonUniformEXT + Decorate 173 DecorationNonUniformEXT + Decorate 178 DecorationNonUniformEXT + Decorate 180 DecorationNonUniformEXT + Decorate 184 DecorationNonUniformEXT + Decorate 186 DecorationNonUniformEXT + Decorate 188 DecorationNonUniformEXT + Decorate 193(m) DecorationNonUniformEXT + Decorate 195 DecorationNonUniformEXT + Decorate 203(s) DecorationNonUniformEXT + Decorate 205 DecorationNonUniformEXT + Decorate 207 DecorationNonUniformEXT + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) 7(ptr) + 25: 6(int) Constant 2 + 28: TypeFloat 32 + 29: TypePointer Function 28(float) + 31: TypeVector 28(float) 4 + 32: TypePointer Input 31(fvec4) + 33(nu_inv4): 32(ptr) Variable Input + 34: TypeInt 32 0 + 35: 34(int) Constant 0 + 36: TypePointer Input 28(float) + 42: TypeImage 28(float) SubpassData nonsampled format:Unknown + 43: TypeRuntimeArray 42 + 44: TypePointer UniformConstant 43 +45(inputAttachmentDyn): 44(ptr) Variable UniformConstant + 48: TypePointer UniformConstant 42 + 51: 6(int) Constant 0 + 52: TypeVector 6(int) 2 + 53: 52(ivec2) ConstantComposite 51 51 + 58: TypeImage 28(float) Buffer sampled format:Unknown + 59: TypeSampledImage 58 + 60: TypeRuntimeArray 59 + 61: TypePointer UniformConstant 60 +62(uniformTexelBufferDyn): 61(ptr) Variable UniformConstant + 64: TypePointer UniformConstant 59 + 67: 6(int) Constant 1 + 73: TypeImage 28(float) Buffer nonsampled format:R32f + 74: TypeRuntimeArray 73 + 75: TypePointer UniformConstant 74 +76(storageTexelBufferDyn): 75(ptr) Variable UniformConstant + 78: TypePointer UniformConstant 73 + 85(uname): TypeStruct 28(float) + 86: TypeRuntimeArray 85(uname) + 87: TypePointer Uniform 86 +88(uniformBuffer): 87(ptr) Variable Uniform + 89: TypePointer Input 6(int) + 90(nu_ii): 89(ptr) Variable Input + 92: TypePointer Uniform 28(float) + 97(bname): TypeStruct 28(float) + 98: TypeRuntimeArray 97(bname) + 99: TypePointer Uniform 98 +100(storageBuffer): 99(ptr) Variable Uniform + 106: TypeImage 28(float) 2D sampled format:Unknown + 107: TypeSampledImage 106 + 108: TypeRuntimeArray 107 + 109: TypePointer UniformConstant 108 +110(sampledImage): 109(ptr) Variable UniformConstant + 112: TypePointer UniformConstant 107 + 115: TypeVector 28(float) 2 + 116: 28(float) Constant 1056964608 + 117: 115(fvec2) ConstantComposite 116 116 + 122: TypeImage 28(float) 2D nonsampled format:R32f + 123: TypeRuntimeArray 122 + 124: TypePointer UniformConstant 123 +125(storageImage): 124(ptr) Variable UniformConstant + 127: TypePointer UniformConstant 122 + 130: 52(ivec2) ConstantComposite 67 67 + 135: TypeRuntimeArray 42 + 136: TypePointer UniformConstant 135 +137(inputAttachment): 136(ptr) Variable UniformConstant + 145: TypeRuntimeArray 59 + 146: TypePointer UniformConstant 145 +147(uniformTexelBuffer): 146(ptr) Variable UniformConstant + 156: TypeRuntimeArray 73 + 157: TypePointer UniformConstant 156 +158(storageTexelBuffer): 157(ptr) Variable UniformConstant + 166: TypeVector 6(int) 4 + 167: TypePointer Function 166(ivec4) + 169: 34(int) Constant 1 + 176: 34(int) Constant 2 + 191: TypeMatrix 31(fvec4) 4 + 192: TypePointer Function 191 + 201(S): TypeStruct 6(int) + 202: TypePointer Function 201(S) + 4(main): 2 Function None 3 + 5: Label + 16(a): 7(ptr) Variable Function + 17(nu_li): 7(ptr) Variable Function + 18(param): 7(ptr) Variable Function + 20(param): 7(ptr) Variable Function + 30(b): 29(ptr) Variable Function + 39(nu_gf): 29(ptr) Variable Function + 46(dyn_i): 7(ptr) Variable Function + 168(v): 167(ptr) Variable Function + 183(uv): 167(ptr) Variable Function + 193(m): 192(ptr) Variable Function + 203(s): 202(ptr) Variable Function + 19: 6(int) Load 17(nu_li) + Store 18(param) 19 + 21: 6(int) FunctionCall 11(foo(i1;i1;) 18(param) 20(param) + 22: 6(int) Load 20(param) + Store 17(nu_li) 22 + Store 16(a) 21 + 23: 6(int) Load 16(a) + 24: 6(int) Load 16(a) + 26: 6(int) IMul 24 25 + 27: 6(int) IAdd 23 26 + Store 17(nu_li) 27 + 37: 36(ptr) AccessChain 33(nu_inv4) 35 + 38: 28(float) Load 37 + 40: 28(float) Load 39(nu_gf) + 41: 28(float) FMul 38 40 + Store 30(b) 41 + 47: 6(int) Load 46(dyn_i) + 49: 48(ptr) AccessChain 45(inputAttachmentDyn) 47 + 50: 42 Load 49 + 54: 31(fvec4) ImageRead 50 53 + 55: 28(float) CompositeExtract 54 0 + 56: 28(float) Load 30(b) + 57: 28(float) FAdd 56 55 + Store 30(b) 57 + 63: 6(int) Load 46(dyn_i) + 65: 64(ptr) AccessChain 62(uniformTexelBufferDyn) 63 + 66: 59 Load 65 + 68: 58 Image 66 + 69: 31(fvec4) ImageFetch 68 67 + 70: 28(float) CompositeExtract 69 0 + 71: 28(float) Load 30(b) + 72: 28(float) FAdd 71 70 + Store 30(b) 72 + 77: 6(int) Load 46(dyn_i) + 79: 78(ptr) AccessChain 76(storageTexelBufferDyn) 77 + 80: 73 Load 79 + 81: 31(fvec4) ImageRead 80 67 + 82: 28(float) CompositeExtract 81 0 + 83: 28(float) Load 30(b) + 84: 28(float) FAdd 83 82 + Store 30(b) 84 + 91: 6(int) Load 90(nu_ii) + 93: 92(ptr) AccessChain 88(uniformBuffer) 91 51 + 94: 28(float) Load 93 + 95: 28(float) Load 30(b) + 96: 28(float) FAdd 95 94 + Store 30(b) 96 + 101: 6(int) Load 90(nu_ii) + 102: 92(ptr) AccessChain 100(storageBuffer) 101 51 + 103: 28(float) Load 102 + 104: 28(float) Load 30(b) + 105: 28(float) FAdd 104 103 + Store 30(b) 105 + 111: 6(int) Load 90(nu_ii) + 113: 112(ptr) AccessChain 110(sampledImage) 111 + 114: 107 Load 113 + 118: 31(fvec4) ImageSampleImplicitLod 114 117 + 119: 28(float) CompositeExtract 118 0 + 120: 28(float) Load 30(b) + 121: 28(float) FAdd 120 119 + Store 30(b) 121 + 126: 6(int) Load 90(nu_ii) + 128: 127(ptr) AccessChain 125(storageImage) 126 + 129: 122 Load 128 + 131: 31(fvec4) ImageRead 129 130 + 132: 28(float) CompositeExtract 131 0 + 133: 28(float) Load 30(b) + 134: 28(float) FAdd 133 132 + Store 30(b) 134 + 138: 6(int) Load 90(nu_ii) + 139: 48(ptr) AccessChain 137(inputAttachment) 138 + 140: 42 Load 139 + 141: 31(fvec4) ImageRead 140 53 + 142: 28(float) CompositeExtract 141 0 + 143: 28(float) Load 30(b) + 144: 28(float) FAdd 143 142 + Store 30(b) 144 + 148: 6(int) Load 90(nu_ii) + 149: 64(ptr) AccessChain 147(uniformTexelBuffer) 148 + 150: 59 Load 149 + 151: 58 Image 150 + 152: 31(fvec4) ImageFetch 151 67 + 153: 28(float) CompositeExtract 152 0 + 154: 28(float) Load 30(b) + 155: 28(float) FAdd 154 153 + Store 30(b) 155 + 159: 6(int) Load 90(nu_ii) + 160: 78(ptr) AccessChain 158(storageTexelBuffer) 159 + 161: 73 Load 160 + 162: 31(fvec4) ImageRead 161 67 + 163: 28(float) CompositeExtract 162 0 + 164: 28(float) Load 30(b) + 165: 28(float) FAdd 164 163 + Store 30(b) 165 + 170: 7(ptr) AccessChain 168(v) 169 + 171: 6(int) Load 170 + 172: 92(ptr) AccessChain 88(uniformBuffer) 171 51 + 173: 28(float) Load 172 + 174: 28(float) Load 30(b) + 175: 28(float) FAdd 174 173 + Store 30(b) 175 + 177: 7(ptr) AccessChain 168(v) 176 + 178: 6(int) Load 177 + 179: 92(ptr) AccessChain 88(uniformBuffer) 178 51 + 180: 28(float) Load 179 + 181: 28(float) Load 30(b) + 182: 28(float) FAdd 181 180 + Store 30(b) 182 + 184: 6(int) Load 90(nu_ii) + 185: 7(ptr) AccessChain 183(uv) 184 + 186: 6(int) Load 185 + 187: 92(ptr) AccessChain 88(uniformBuffer) 186 51 + 188: 28(float) Load 187 + 189: 28(float) Load 30(b) + 190: 28(float) FAdd 189 188 + Store 30(b) 190 + 194: 29(ptr) AccessChain 193(m) 25 176 + 195: 28(float) Load 194 + 196: 6(int) ConvertFToS 195 + 197: 92(ptr) AccessChain 88(uniformBuffer) 196 51 + 198: 28(float) Load 197 + 199: 28(float) Load 30(b) + 200: 28(float) FAdd 199 198 + Store 30(b) 200 + 204: 7(ptr) AccessChain 203(s) 51 + 205: 6(int) Load 204 + 206: 92(ptr) AccessChain 88(uniformBuffer) 205 51 + 207: 28(float) Load 206 + 208: 28(float) Load 30(b) + 209: 28(float) FAdd 208 207 + Store 30(b) 209 + Return + FunctionEnd + 11(foo(i1;i1;): 6(int) Function None 8 + 9(nupi): 7(ptr) FunctionParameter + 10(f): 7(ptr) FunctionParameter + 12: Label + 13: 6(int) Load 9(nupi) + ReturnValue 13 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out b/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out new file mode 100644 index 0000000000..17d7b86e11 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.offsets.frag.out @@ -0,0 +1,53 @@ +spv.offsets.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 7 "n1" + MemberName 7(n1) 0 "a" + MemberName 7(n1) 1 "b" + MemberName 7(n1) 2 "c" + MemberName 7(n1) 3 "d" + Name 9 "i1" + Name 12 "n2" + MemberName 12(n2) 0 "e" + MemberName 12(n2) 1 "f" + MemberName 12(n2) 2 "g" + MemberName 12(n2) 3 "h" + Name 14 "i2" + MemberDecorate 7(n1) 0 Offset 8 + MemberDecorate 7(n1) 1 Offset 4 + MemberDecorate 7(n1) 2 Offset 0 + MemberDecorate 7(n1) 3 Offset 12 + Decorate 7(n1) Block + Decorate 9(i1) DescriptorSet 0 + Decorate 9(i1) Binding 0 + MemberDecorate 12(n2) 0 Offset 32 + MemberDecorate 12(n2) 1 Offset 48 + MemberDecorate 12(n2) 2 Offset 16 + MemberDecorate 12(n2) 3 Offset 0 + Decorate 12(n2) BufferBlock + Decorate 14(i2) DescriptorSet 0 + Decorate 14(i2) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(n1): TypeStruct 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Uniform 7(n1) + 9(i1): 8(ptr) Variable Uniform + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12(n2): TypeStruct 11(fvec3) 11(fvec3) 11(fvec3) 11(fvec3) + 13: TypePointer Uniform 12(n2) + 14(i2): 13(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.paramMemory.frag.out b/deps/glslang/glslang/Test/baseResults/spv.paramMemory.frag.out new file mode 100644 index 0000000000..b593ce9c2e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.paramMemory.frag.out @@ -0,0 +1,137 @@ +spv.paramMemory.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 69 + + Capability Shader + Capability StorageImageReadWithoutFormat + Capability StorageImageWriteWithoutFormat + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 27 66 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 16 "image_load(I21;vi2;" + Name 14 "image" + Name 15 "coords" + Name 23 "image_store(I21;vi2;vf4;" + Name 20 "image" + Name 21 "coords" + Name 22 "data" + Name 27 "in_coords" + Name 35 "read1" + Name 38 "image1" + Name 39 "param" + Name 42 "read2" + Name 45 "image2" + Name 46 "param" + Name 49 "image3" + Name 53 "param" + Name 55 "param" + Name 57 "image4" + Name 61 "param" + Name 63 "param" + Name 66 "out_color" + Decorate 14(image) Coherent + Decorate 14(image) NonWritable + Decorate 20(image) Coherent + Decorate 20(image) NonReadable + Decorate 27(in_coords) Flat + Decorate 27(in_coords) Location 0 + Decorate 38(image1) DescriptorSet 0 + Decorate 38(image1) Binding 0 + Decorate 38(image1) Coherent + Decorate 38(image1) NonWritable + Decorate 45(image2) DescriptorSet 0 + Decorate 45(image2) Binding 2 + Decorate 45(image2) NonWritable + Decorate 49(image3) DescriptorSet 0 + Decorate 49(image3) Binding 1 + Decorate 49(image3) Coherent + Decorate 49(image3) NonReadable + Decorate 57(image4) DescriptorSet 0 + Decorate 57(image4) Binding 3 + Decorate 57(image4) NonReadable + Decorate 66(out_color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D nonsampled format:Unknown + 8: TypePointer UniformConstant 7 + 9: TypeInt 32 1 + 10: TypeVector 9(int) 2 + 11: TypePointer Function 10(ivec2) + 12: TypeVector 6(float) 4 + 13: TypeFunction 12(fvec4) 8(ptr) 11(ptr) + 18: TypePointer Function 12(fvec4) + 19: TypeFunction 2 8(ptr) 11(ptr) 18(ptr) + 26: TypePointer Input 10(ivec2) + 27(in_coords): 26(ptr) Variable Input + 36: TypeImage 6(float) 2D nonsampled format:Rgba32f + 37: TypePointer UniformConstant 36 + 38(image1): 37(ptr) Variable UniformConstant + 43: TypeImage 6(float) 2D nonsampled format:Rgba16f + 44: TypePointer UniformConstant 43 + 45(image2): 44(ptr) Variable UniformConstant + 49(image3): 37(ptr) Variable UniformConstant + 51: 6(float) Constant 1056964608 + 57(image4): 44(ptr) Variable UniformConstant + 59: 6(float) Constant 1073741824 + 65: TypePointer Output 12(fvec4) + 66(out_color): 65(ptr) Variable Output + 67: 6(float) Constant 0 + 68: 12(fvec4) ConstantComposite 67 67 67 67 + 4(main): 2 Function None 3 + 5: Label + 35(read1): 18(ptr) Variable Function + 39(param): 11(ptr) Variable Function + 42(read2): 18(ptr) Variable Function + 46(param): 11(ptr) Variable Function + 53(param): 11(ptr) Variable Function + 55(param): 18(ptr) Variable Function + 61(param): 11(ptr) Variable Function + 63(param): 18(ptr) Variable Function + 40: 10(ivec2) Load 27(in_coords) + Store 39(param) 40 + 41: 12(fvec4) FunctionCall 16(image_load(I21;vi2;) 38(image1) 39(param) + Store 35(read1) 41 + 47: 10(ivec2) Load 27(in_coords) + Store 46(param) 47 + 48: 12(fvec4) FunctionCall 16(image_load(I21;vi2;) 45(image2) 46(param) + Store 42(read2) 48 + 50: 12(fvec4) Load 35(read1) + 52: 12(fvec4) VectorTimesScalar 50 51 + 54: 10(ivec2) Load 27(in_coords) + Store 53(param) 54 + Store 55(param) 52 + 56: 2 FunctionCall 23(image_store(I21;vi2;vf4;) 49(image3) 53(param) 55(param) + 58: 12(fvec4) Load 42(read2) + 60: 12(fvec4) VectorTimesScalar 58 59 + 62: 10(ivec2) Load 27(in_coords) + Store 61(param) 62 + Store 63(param) 60 + 64: 2 FunctionCall 23(image_store(I21;vi2;vf4;) 57(image4) 61(param) 63(param) + Store 66(out_color) 68 + Return + FunctionEnd +16(image_load(I21;vi2;): 12(fvec4) Function None 13 + 14(image): 8(ptr) FunctionParameter + 15(coords): 11(ptr) FunctionParameter + 17: Label + 25: 7 Load 14(image) + 28: 10(ivec2) Load 27(in_coords) + 29: 12(fvec4) ImageRead 25 28 + ReturnValue 29 + FunctionEnd +23(image_store(I21;vi2;vf4;): 2 Function None 19 + 20(image): 8(ptr) FunctionParameter + 21(coords): 11(ptr) FunctionParameter + 22(data): 18(ptr) FunctionParameter + 24: Label + 32: 7 Load 20(image) + 33: 10(ivec2) Load 27(in_coords) + 34: 12(fvec4) Load 22(data) + ImageWrite 32 33 34 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out new file mode 100644 index 0000000000..95a048fc75 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.precise.tesc.out @@ -0,0 +1,116 @@ +spv.precise.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 72 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 12 15 20 30 40 45 + ExecutionMode 4 OutputVertices 3 + Source ESSL 310 + SourceExtension "GL_EXT_gpu_shader5" + SourceExtension "GL_EXT_shader_io_blocks" + SourceExtension "GL_EXT_tessellation_shader" + Name 4 "main" + Name 12 "in_te_position" + Name 15 "gl_InvocationID" + Name 20 "in_tc_position" + Name 30 "gl_TessLevelInner" + Name 40 "gl_TessLevelOuter" + Name 45 "in_tc_tessParam" + Decorate 12(in_te_position) Location 0 + Decorate 15(gl_InvocationID) BuiltIn InvocationId + Decorate 20(in_tc_position) Location 0 + Decorate 30(gl_TessLevelInner) Patch + Decorate 30(gl_TessLevelInner) BuiltIn TessLevelInner + Decorate 40(gl_TessLevelOuter) Patch + Decorate 40(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 45(in_tc_tessParam) Location 1 + Decorate 52 NoContraction + Decorate 53 NoContraction + Decorate 54 NoContraction + Decorate 60 NoContraction + Decorate 61 NoContraction + Decorate 62 NoContraction + Decorate 68 NoContraction + Decorate 69 NoContraction + Decorate 70 NoContraction + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec2) 9 + 11: TypePointer Output 10 +12(in_te_position): 11(ptr) Variable Output + 13: TypeInt 32 1 + 14: TypePointer Input 13(int) +15(gl_InvocationID): 14(ptr) Variable Input + 17: 8(int) Constant 32 + 18: TypeArray 7(fvec2) 17 + 19: TypePointer Input 18 +20(in_tc_position): 19(ptr) Variable Input + 22: TypePointer Input 7(fvec2) + 25: TypePointer Output 7(fvec2) + 27: 8(int) Constant 2 + 28: TypeArray 6(float) 27 + 29: TypePointer Output 28 +30(gl_TessLevelInner): 29(ptr) Variable Output + 31: 13(int) Constant 0 + 32: 6(float) Constant 1084227584 + 33: TypePointer Output 6(float) + 35: 13(int) Constant 1 + 37: 8(int) Constant 4 + 38: TypeArray 6(float) 37 + 39: TypePointer Output 38 +40(gl_TessLevelOuter): 39(ptr) Variable Output + 41: 6(float) Constant 1065353216 + 42: 6(float) Constant 1105985536 + 43: TypeArray 6(float) 17 + 44: TypePointer Input 43 +45(in_tc_tessParam): 44(ptr) Variable Input + 46: TypePointer Input 6(float) + 49: 13(int) Constant 2 + 4(main): 2 Function None 3 + 5: Label + 16: 13(int) Load 15(gl_InvocationID) + 21: 13(int) Load 15(gl_InvocationID) + 23: 22(ptr) AccessChain 20(in_tc_position) 21 + 24: 7(fvec2) Load 23 + 26: 25(ptr) AccessChain 12(in_te_position) 16 + Store 26 24 + 34: 33(ptr) AccessChain 30(gl_TessLevelInner) 31 + Store 34 32 + 36: 33(ptr) AccessChain 30(gl_TessLevelInner) 35 + Store 36 32 + 47: 46(ptr) AccessChain 45(in_tc_tessParam) 35 + 48: 6(float) Load 47 + 50: 46(ptr) AccessChain 45(in_tc_tessParam) 49 + 51: 6(float) Load 50 + 52: 6(float) FAdd 48 51 + 53: 6(float) FMul 42 52 + 54: 6(float) FAdd 41 53 + 55: 33(ptr) AccessChain 40(gl_TessLevelOuter) 31 + Store 55 54 + 56: 46(ptr) AccessChain 45(in_tc_tessParam) 49 + 57: 6(float) Load 56 + 58: 46(ptr) AccessChain 45(in_tc_tessParam) 31 + 59: 6(float) Load 58 + 60: 6(float) FAdd 57 59 + 61: 6(float) FMul 42 60 + 62: 6(float) FAdd 41 61 + 63: 33(ptr) AccessChain 40(gl_TessLevelOuter) 35 + Store 63 62 + 64: 46(ptr) AccessChain 45(in_tc_tessParam) 31 + 65: 6(float) Load 64 + 66: 46(ptr) AccessChain 45(in_tc_tessParam) 35 + 67: 6(float) Load 66 + 68: 6(float) FAdd 65 67 + 69: 6(float) FMul 42 68 + 70: 6(float) FAdd 41 69 + 71: 33(ptr) AccessChain 40(gl_TessLevelOuter) 49 + Store 71 70 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out b/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out new file mode 100644 index 0000000000..a73cbd8327 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.precise.tese.out @@ -0,0 +1,185 @@ +spv.precise.tese +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 119 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationEvaluation 4 "main" 12 21 62 112 + ExecutionMode 4 Triangles + ExecutionMode 4 SpacingEqual + ExecutionMode 4 VertexOrderCcw + Source ESSL 310 + SourceExtension "GL_EXT_gpu_shader5" + SourceExtension "GL_EXT_shader_io_blocks" + SourceExtension "GL_EXT_tessellation_shader" + Name 4 "main" + Name 9 "pos" + Name 12 "gl_TessCoord" + Name 21 "in_te_position" + Name 45 "f" + Name 62 "in_f_color" + Name 73 "bits" + Name 77 "numBits" + Name 78 "i" + Name 110 "gl_PerVertex" + MemberName 110(gl_PerVertex) 0 "gl_Position" + MemberName 110(gl_PerVertex) 1 "gl_PointSize" + Name 112 "" + Decorate 12(gl_TessCoord) BuiltIn TessCoord + Decorate 21(in_te_position) Location 0 + Decorate 27 NoContraction + Decorate 34 NoContraction + Decorate 35 NoContraction + Decorate 42 NoContraction + Decorate 43 NoContraction + Decorate 62(in_f_color) RelaxedPrecision + Decorate 62(in_f_color) Location 0 + Decorate 67 RelaxedPrecision + Decorate 68 RelaxedPrecision + Decorate 69 RelaxedPrecision + Decorate 70 RelaxedPrecision + Decorate 97 NoContraction + Decorate 99 NoContraction + Decorate 101 NoContraction + Decorate 106 NoContraction + Decorate 109 NoContraction + MemberDecorate 110(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 110(gl_PerVertex) 1 BuiltIn PointSize + Decorate 110(gl_PerVertex) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeVector 6(float) 3 + 11: TypePointer Input 10(fvec3) +12(gl_TessCoord): 11(ptr) Variable Input + 13: TypeInt 32 0 + 14: 13(int) Constant 0 + 15: TypePointer Input 6(float) + 18: 13(int) Constant 32 + 19: TypeArray 7(fvec2) 18 + 20: TypePointer Input 19 +21(in_te_position): 20(ptr) Variable Input + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: TypePointer Input 7(fvec2) + 28: 13(int) Constant 1 + 31: 22(int) Constant 1 + 36: 13(int) Constant 2 + 39: 22(int) Constant 2 + 44: TypePointer Function 6(float) + 46: 6(float) Constant 1077936128 + 57: 6(float) Constant 1056964608 + 60: TypeVector 6(float) 4 + 61: TypePointer Output 60(fvec4) + 62(in_f_color): 61(ptr) Variable Output + 66: 6(float) Constant 1065353216 + 71: TypeVector 13(int) 2 + 72: TypePointer Function 71(ivec2) + 76: TypePointer Function 13(int) + 85: TypeBool + 105: 6(float) Constant 1025758986 +110(gl_PerVertex): TypeStruct 60(fvec4) 6(float) + 111: TypePointer Output 110(gl_PerVertex) + 112: 111(ptr) Variable Output + 114: 6(float) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 9(pos): 8(ptr) Variable Function + 45(f): 44(ptr) Variable Function + 73(bits): 72(ptr) Variable Function + 77(numBits): 76(ptr) Variable Function + 78(i): 76(ptr) Variable Function + 16: 15(ptr) AccessChain 12(gl_TessCoord) 14 + 17: 6(float) Load 16 + 25: 24(ptr) AccessChain 21(in_te_position) 23 + 26: 7(fvec2) Load 25 + 27: 7(fvec2) VectorTimesScalar 26 17 + 29: 15(ptr) AccessChain 12(gl_TessCoord) 28 + 30: 6(float) Load 29 + 32: 24(ptr) AccessChain 21(in_te_position) 31 + 33: 7(fvec2) Load 32 + 34: 7(fvec2) VectorTimesScalar 33 30 + 35: 7(fvec2) FAdd 27 34 + 37: 15(ptr) AccessChain 12(gl_TessCoord) 36 + 38: 6(float) Load 37 + 40: 24(ptr) AccessChain 21(in_te_position) 39 + 41: 7(fvec2) Load 40 + 42: 7(fvec2) VectorTimesScalar 41 38 + 43: 7(fvec2) FAdd 35 42 + Store 9(pos) 43 + 47: 15(ptr) AccessChain 12(gl_TessCoord) 14 + 48: 6(float) Load 47 + 49: 15(ptr) AccessChain 12(gl_TessCoord) 28 + 50: 6(float) Load 49 + 51: 15(ptr) AccessChain 12(gl_TessCoord) 36 + 52: 6(float) Load 51 + 53: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 50 52 + 54: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 48 53 + 55: 6(float) FMul 46 54 + 56: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 55 + 58: 6(float) FMul 56 57 + 59: 6(float) FAdd 58 57 + Store 45(f) 59 + 63: 10(fvec3) Load 12(gl_TessCoord) + 64: 6(float) Load 45(f) + 65: 10(fvec3) VectorTimesScalar 63 64 + 67: 6(float) CompositeExtract 65 0 + 68: 6(float) CompositeExtract 65 1 + 69: 6(float) CompositeExtract 65 2 + 70: 60(fvec4) CompositeConstruct 67 68 69 66 + Store 62(in_f_color) 70 + 74: 7(fvec2) Load 9(pos) + 75: 71(ivec2) Bitcast 74 + Store 73(bits) 75 + Store 77(numBits) 14 + Store 78(i) 14 + Branch 79 + 79: Label + LoopMerge 81 82 None + Branch 83 + 83: Label + 84: 13(int) Load 78(i) + 86: 85(bool) ULessThan 84 18 + BranchConditional 86 80 81 + 80: Label + 87: 76(ptr) AccessChain 73(bits) 14 + 88: 13(int) Load 87 + 89: 13(int) Load 78(i) + 90: 13(int) ShiftLeftLogical 88 89 + 91: 13(int) BitwiseAnd 90 28 + 92: 76(ptr) AccessChain 73(bits) 28 + 93: 13(int) Load 92 + 94: 13(int) Load 78(i) + 95: 13(int) ShiftLeftLogical 93 94 + 96: 13(int) BitwiseAnd 95 28 + 97: 13(int) IAdd 91 96 + 98: 13(int) Load 77(numBits) + 99: 13(int) IAdd 98 97 + Store 77(numBits) 99 + Branch 82 + 82: Label + 100: 13(int) Load 78(i) + 101: 13(int) IAdd 100 31 + Store 78(i) 101 + Branch 79 + 81: Label + 102: 13(int) Load 77(numBits) + 103: 13(int) BitwiseAnd 102 28 + 104: 6(float) ConvertUToF 103 + 106: 6(float) FMul 104 105 + 107: 7(fvec2) Load 9(pos) + 108: 7(fvec2) CompositeConstruct 106 106 + 109: 7(fvec2) FAdd 107 108 + Store 9(pos) 109 + 113: 7(fvec2) Load 9(pos) + 115: 6(float) CompositeExtract 113 0 + 116: 6(float) CompositeExtract 113 1 + 117: 60(fvec4) CompositeConstruct 115 116 114 66 + 118: 61(ptr) AccessChain 112 23 + Store 118 117 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out b/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out new file mode 100644 index 0000000000..5ddb492724 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.precision.frag.out @@ -0,0 +1,228 @@ +spv.precision.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 127 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 23 59 61 73 116 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 12 "foo(vf3;" + Name 11 "mv3" + Name 19 "boolfun(vb2;" + Name 18 "bv2" + Name 23 "highfin" + Name 38 "sum" + Name 40 "uniform_medium" + Name 42 "uniform_high" + Name 48 "uniform_low" + Name 53 "arg1" + Name 55 "arg2" + Name 57 "d" + Name 59 "lowfin" + Name 61 "mediumfin" + Name 65 "global_highp" + Name 69 "local_highp" + Name 73 "mediumfout" + Name 104 "ub2" + Name 105 "param" + Name 114 "S" + MemberName 114(S) 0 "a" + MemberName 114(S) 1 "b" + Name 116 "s" + Decorate 12(foo(vf3;) RelaxedPrecision + Decorate 11(mv3) RelaxedPrecision + Decorate 38(sum) RelaxedPrecision + Decorate 40(uniform_medium) RelaxedPrecision + Decorate 41 RelaxedPrecision + Decorate 46 RelaxedPrecision + Decorate 48(uniform_low) RelaxedPrecision + Decorate 49 RelaxedPrecision + Decorate 50 RelaxedPrecision + Decorate 51 RelaxedPrecision + Decorate 53(arg1) RelaxedPrecision + Decorate 55(arg2) RelaxedPrecision + Decorate 57(d) RelaxedPrecision + Decorate 59(lowfin) RelaxedPrecision + Decorate 60 RelaxedPrecision + Decorate 61(mediumfin) RelaxedPrecision + Decorate 62 RelaxedPrecision + Decorate 63 RelaxedPrecision + Decorate 73(mediumfout) RelaxedPrecision + Decorate 74 RelaxedPrecision + Decorate 75 RelaxedPrecision + Decorate 76 RelaxedPrecision + Decorate 77 RelaxedPrecision + Decorate 78 RelaxedPrecision + Decorate 79 RelaxedPrecision + Decorate 83 RelaxedPrecision + Decorate 85 RelaxedPrecision + Decorate 87 RelaxedPrecision + Decorate 88 RelaxedPrecision + Decorate 90 RelaxedPrecision + Decorate 91 RelaxedPrecision + Decorate 94 RelaxedPrecision + Decorate 95 RelaxedPrecision + Decorate 96 RelaxedPrecision + Decorate 97 RelaxedPrecision + Decorate 98 RelaxedPrecision + Decorate 99 RelaxedPrecision + Decorate 100 RelaxedPrecision + Decorate 101 RelaxedPrecision + Decorate 102 RelaxedPrecision + Decorate 110 RelaxedPrecision + Decorate 112 RelaxedPrecision + Decorate 113 RelaxedPrecision + MemberDecorate 114(S) 1 RelaxedPrecision + Decorate 120 RelaxedPrecision + Decorate 124 RelaxedPrecision + Decorate 125 RelaxedPrecision + Decorate 126 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 9: TypeVector 6(float) 2 + 10: TypeFunction 9(fvec2) 8(ptr) + 14: TypeBool + 15: TypeVector 14(bool) 2 + 16: TypePointer Function 15(bvec2) + 17: TypeFunction 14(bool) 16(ptr) + 21: TypeVector 6(float) 4 + 22: TypePointer Input 21(fvec4) + 23(highfin): 22(ptr) Variable Input + 29: 14(bool) ConstantFalse + 30: 14(bool) ConstantTrue + 31: 15(bvec2) ConstantComposite 29 30 + 36: TypeInt 32 1 + 37: TypePointer Function 36(int) + 39: TypePointer Private 36(int) +40(uniform_medium): 39(ptr) Variable Private +42(uniform_high): 39(ptr) Variable Private + 48(uniform_low): 39(ptr) Variable Private + 52: TypePointer Function 6(float) + 54: 6(float) Constant 1078774989 + 56: 6(float) Constant 1232730691 + 58: TypePointer Input 6(float) + 59(lowfin): 58(ptr) Variable Input + 61(mediumfin): 58(ptr) Variable Input + 64: TypePointer Private 6(float) +65(global_highp): 64(ptr) Variable Private + 68: TypePointer Function 21(fvec4) + 72: TypePointer Output 21(fvec4) + 73(mediumfout): 72(ptr) Variable Output + 82: 36(int) Constant 4 + 84: TypeVector 36(int) 2 + 92: TypeInt 32 0 + 93: 92(int) Constant 0 + 103: TypePointer Private 15(bvec2) + 104(ub2): 103(ptr) Variable Private + 111: 6(float) Constant 1065353216 + 114(S): TypeStruct 6(float) 6(float) + 115: TypePointer Input 114(S) + 116(s): 115(ptr) Variable Input + 117: 36(int) Constant 0 + 122: 36(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 38(sum): 37(ptr) Variable Function + 53(arg1): 52(ptr) Variable Function + 55(arg2): 52(ptr) Variable Function + 57(d): 52(ptr) Variable Function + 69(local_highp): 68(ptr) Variable Function + 105(param): 16(ptr) Variable Function + 41: 36(int) Load 40(uniform_medium) + 43: 36(int) Load 42(uniform_high) + 44: 36(int) IAdd 41 43 + Store 38(sum) 44 + 45: 36(int) Load 42(uniform_high) + 46: 36(int) Load 38(sum) + 47: 36(int) IAdd 46 45 + Store 38(sum) 47 + 49: 36(int) Load 48(uniform_low) + 50: 36(int) Load 38(sum) + 51: 36(int) IAdd 50 49 + Store 38(sum) 51 + Store 53(arg1) 54 + Store 55(arg2) 56 + 60: 6(float) Load 59(lowfin) + 62: 6(float) Load 61(mediumfin) + 63: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62 + Store 57(d) 63 + 66: 21(fvec4) Load 23(highfin) + 67: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 66 + Store 65(global_highp) 67 + 70: 6(float) Load 65(global_highp) + 71: 21(fvec4) CompositeConstruct 70 70 70 70 + Store 69(local_highp) 71 + 74: 6(float) Load 57(d) + 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 + 76: 21(fvec4) CompositeConstruct 75 75 75 75 + 77: 6(float) Load 55(arg2) + 78: 21(fvec4) CompositeConstruct 77 77 77 77 + 79: 21(fvec4) FAdd 76 78 + 80: 21(fvec4) Load 69(local_highp) + 81: 21(fvec4) FAdd 79 80 + Store 73(mediumfout) 81 + 83: 36(int) Load 48(uniform_low) + 85: 84(ivec2) CompositeConstruct 83 83 + 86: 36(int) Load 42(uniform_high) + 87: 84(ivec2) CompositeConstruct 86 86 + 88: 84(ivec2) IMul 85 87 + 89: 36(int) Load 42(uniform_high) + 90: 84(ivec2) CompositeConstruct 89 89 + 91: 84(ivec2) IAdd 88 90 + 94: 36(int) CompositeExtract 91 0 + 95: 36(int) IAdd 82 94 + 96: 36(int) Load 38(sum) + 97: 36(int) IAdd 96 95 + Store 38(sum) 97 + 98: 36(int) Load 38(sum) + 99: 6(float) ConvertSToF 98 + 100: 21(fvec4) CompositeConstruct 99 99 99 99 + 101: 21(fvec4) Load 73(mediumfout) + 102: 21(fvec4) FAdd 101 100 + Store 73(mediumfout) 102 + 106: 15(bvec2) Load 104(ub2) + Store 105(param) 106 + 107: 14(bool) FunctionCall 19(boolfun(vb2;) 105(param) + SelectionMerge 109 None + BranchConditional 107 108 109 + 108: Label + 110: 21(fvec4) Load 73(mediumfout) + 112: 21(fvec4) CompositeConstruct 111 111 111 111 + 113: 21(fvec4) FAdd 110 112 + Store 73(mediumfout) 113 + Branch 109 + 109: Label + 118: 58(ptr) AccessChain 116(s) 117 + 119: 6(float) Load 118 + 120: 21(fvec4) Load 73(mediumfout) + 121: 21(fvec4) VectorTimesScalar 120 119 + Store 73(mediumfout) 121 + 123: 58(ptr) AccessChain 116(s) 122 + 124: 6(float) Load 123 + 125: 21(fvec4) Load 73(mediumfout) + 126: 21(fvec4) VectorTimesScalar 125 124 + Store 73(mediumfout) 126 + Return + FunctionEnd + 12(foo(vf3;): 9(fvec2) Function None 10 + 11(mv3): 8(ptr) FunctionParameter + 13: Label + 24: 21(fvec4) Load 23(highfin) + 25: 9(fvec2) VectorShuffle 24 24 0 1 + ReturnValue 25 + FunctionEnd +19(boolfun(vb2;): 14(bool) Function None 17 + 18(bv2): 16(ptr) FunctionParameter + 20: Label + 28: 15(bvec2) Load 18(bv2) + 32: 15(bvec2) LogicalEqual 28 31 + 33: 14(bool) All 32 + ReturnValue 33 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out b/deps/glslang/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out new file mode 100644 index 0000000000..922200182b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out @@ -0,0 +1,98 @@ +spv.precisionNonESSamp.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 17 27 39 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "color" + Name 13 "s" + Name 17 "v2" + Name 23 "t" + Name 27 "v3" + Name 31 "vi1" + Name 34 "i1" + Name 39 "iv2" + Name 42 "vi2" + Name 43 "i2" + Decorate 9(color) RelaxedPrecision + Decorate 9(color) Location 0 + Decorate 13(s) RelaxedPrecision + Decorate 13(s) DescriptorSet 0 + Decorate 14 RelaxedPrecision + Decorate 17(v2) RelaxedPrecision + Decorate 17(v2) Location 0 + Decorate 18 RelaxedPrecision + Decorate 19 RelaxedPrecision + Decorate 23(t) DescriptorSet 0 + Decorate 27(v3) RelaxedPrecision + Decorate 27(v3) Location 1 + Decorate 28 RelaxedPrecision + Decorate 31(vi1) RelaxedPrecision + Decorate 34(i1) RelaxedPrecision + Decorate 34(i1) DescriptorSet 0 + Decorate 35 RelaxedPrecision + Decorate 39(iv2) RelaxedPrecision + Decorate 39(iv2) Flat + Decorate 39(iv2) Location 3 + Decorate 40 RelaxedPrecision + Decorate 41 RelaxedPrecision + Decorate 42(vi2) RelaxedPrecision + Decorate 43(i2) DescriptorSet 0 + Decorate 45 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(color): 8(ptr) Variable Output + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(s): 12(ptr) Variable UniformConstant + 15: TypeVector 6(float) 2 + 16: TypePointer Input 15(fvec2) + 17(v2): 16(ptr) Variable Input + 20: TypeImage 6(float) 3D sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 + 23(t): 22(ptr) Variable UniformConstant + 25: TypeVector 6(float) 3 + 26: TypePointer Input 25(fvec3) + 27(v3): 26(ptr) Variable Input + 30: TypePointer Function 7(fvec4) + 32: TypeImage 6(float) 2D nonsampled format:Rgba32f + 33: TypePointer UniformConstant 32 + 34(i1): 33(ptr) Variable UniformConstant + 36: TypeInt 32 1 + 37: TypeVector 36(int) 2 + 38: TypePointer Input 37(ivec2) + 39(iv2): 38(ptr) Variable Input + 43(i2): 33(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 31(vi1): 30(ptr) Variable Function + 42(vi2): 30(ptr) Variable Function + 14: 11 Load 13(s) + 18: 15(fvec2) Load 17(v2) + 19: 7(fvec4) ImageSampleImplicitLod 14 18 + Store 9(color) 19 + 24: 21 Load 23(t) + 28: 25(fvec3) Load 27(v3) + 29: 7(fvec4) ImageSampleImplicitLod 24 28 + Store 9(color) 29 + 35: 32 Load 34(i1) + 40: 37(ivec2) Load 39(iv2) + 41: 7(fvec4) ImageRead 35 40 + Store 31(vi1) 41 + 44: 32 Load 43(i2) + 45: 37(ivec2) Load 39(iv2) + 46: 7(fvec4) ImageRead 44 45 + Store 42(vi2) 46 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out b/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out new file mode 100644 index 0000000000..3b4bfd8aca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.prepost.frag.out @@ -0,0 +1,144 @@ +spv.prepost.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 94 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 90 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "index" + Name 14 "s" + MemberName 14(s) 0 "y" + Name 16 "str" + Name 22 "t" + Name 50 "x" + Name 61 "y" + Name 66 "z" + Name 73 "v" + Name 90 "gl_FragColor" + Decorate 90(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 5 + 10: TypeFloat 32 + 11: TypeInt 32 0 + 12: 11(int) Constant 5 + 13: TypeArray 10(float) 12 + 14(s): TypeStruct 13 + 15: TypePointer Function 14(s) + 17: 6(int) Constant 0 + 18: 6(int) Constant 4 + 19: 10(float) Constant 1073741824 + 20: TypePointer Function 10(float) + 24: 6(int) Constant 1 + 28: 10(float) Constant 1065353216 + 71: TypeVector 10(float) 4 + 72: TypePointer Function 71(fvec4) + 74: 10(float) Constant 1077936128 + 75: 10(float) Constant 1082130432 + 76: 71(fvec4) ConstantComposite 28 19 74 75 + 77: 11(int) Constant 2 + 81: 11(int) Constant 1 + 83: 11(int) Constant 3 + 87: 11(int) Constant 0 + 89: TypePointer Output 71(fvec4) +90(gl_FragColor): 89(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(index): 7(ptr) Variable Function + 16(str): 15(ptr) Variable Function + 22(t): 20(ptr) Variable Function + 50(x): 20(ptr) Variable Function + 61(y): 20(ptr) Variable Function + 66(z): 20(ptr) Variable Function + 73(v): 72(ptr) Variable Function + Store 8(index) 9 + 21: 20(ptr) AccessChain 16(str) 17 18 + Store 21 19 + 23: 6(int) Load 8(index) + 25: 6(int) ISub 23 24 + Store 8(index) 25 + 26: 20(ptr) AccessChain 16(str) 17 25 + 27: 10(float) Load 26 + 29: 10(float) FAdd 27 28 + Store 26 29 + Store 22(t) 29 + 30: 10(float) Load 22(t) + 31: 20(ptr) AccessChain 16(str) 17 18 + 32: 10(float) Load 31 + 33: 10(float) FAdd 32 30 + 34: 20(ptr) AccessChain 16(str) 17 18 + Store 34 33 + 35: 20(ptr) AccessChain 16(str) 17 18 + 36: 10(float) Load 35 + 37: 10(float) FSub 36 28 + Store 35 37 + Store 22(t) 36 + 38: 6(int) Load 8(index) + 39: 6(int) IAdd 38 24 + Store 8(index) 39 + 40: 10(float) Load 22(t) + 41: 20(ptr) AccessChain 16(str) 17 38 + 42: 10(float) Load 41 + 43: 10(float) FAdd 42 40 + 44: 20(ptr) AccessChain 16(str) 17 38 + Store 44 43 + 45: 6(int) Load 8(index) + 46: 6(int) ISub 45 24 + Store 8(index) 46 + 47: 20(ptr) AccessChain 16(str) 17 46 + 48: 10(float) Load 47 + 49: 10(float) FSub 48 28 + Store 47 49 + 51: 20(ptr) AccessChain 16(str) 17 18 + 52: 10(float) Load 51 + Store 50(x) 52 + 53: 10(float) Load 50(x) + 54: 10(float) FAdd 53 28 + Store 50(x) 54 + 55: 10(float) Load 50(x) + 56: 10(float) FSub 55 28 + Store 50(x) 56 + 57: 10(float) Load 50(x) + 58: 10(float) FAdd 57 28 + Store 50(x) 58 + 59: 10(float) Load 50(x) + 60: 10(float) FSub 59 28 + Store 50(x) 60 + 62: 10(float) Load 50(x) + 63: 10(float) Load 50(x) + 64: 10(float) FAdd 63 28 + Store 50(x) 64 + 65: 10(float) FMul 62 64 + Store 61(y) 65 + 67: 10(float) Load 61(y) + 68: 10(float) Load 50(x) + 69: 10(float) FSub 68 28 + Store 50(x) 69 + 70: 10(float) FMul 67 68 + Store 66(z) 70 + Store 73(v) 76 + 78: 20(ptr) AccessChain 73(v) 77 + 79: 10(float) Load 78 + 80: 10(float) FSub 79 28 + Store 78 80 + 82: 20(ptr) AccessChain 73(v) 81 + Store 82 79 + 84: 20(ptr) AccessChain 73(v) 83 + 85: 10(float) Load 84 + 86: 10(float) FSub 85 28 + Store 84 86 + 88: 20(ptr) AccessChain 73(v) 87 + Store 88 86 + 91: 10(float) Load 66(z) + 92: 71(fvec4) Load 73(v) + 93: 71(fvec4) VectorTimesScalar 92 91 + Store 90(gl_FragColor) 93 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out b/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out new file mode 100644 index 0000000000..40ee328461 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.pushConstant.vert.out @@ -0,0 +1,61 @@ +spv.pushConstant.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 24 + Source GLSL 400 + Name 4 "main" + Name 11 "Material" + MemberName 11(Material) 0 "kind" + MemberName 11(Material) 1 "fa" + Name 13 "matInst" + Name 24 "color" + Decorate 10 ArrayStride 4 + MemberDecorate 11(Material) 0 Offset 0 + MemberDecorate 11(Material) 1 Offset 4 + Decorate 11(Material) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(float) 9 + 11(Material): TypeStruct 6(int) 10 + 12: TypePointer PushConstant 11(Material) + 13(matInst): 12(ptr) Variable PushConstant + 14: 6(int) Constant 0 + 15: TypePointer PushConstant 6(int) + 22: TypeVector 7(float) 4 + 23: TypePointer Output 22(fvec4) + 24(color): 23(ptr) Variable Output + 25: 7(float) Constant 1045220557 + 26: 22(fvec4) ConstantComposite 25 25 25 25 + 28: 7(float) Constant 1056964608 + 29: 22(fvec4) ConstantComposite 28 28 28 28 + 31: 7(float) Constant 0 + 32: 22(fvec4) ConstantComposite 31 31 31 31 + 4(main): 2 Function None 3 + 5: Label + 16: 15(ptr) AccessChain 13(matInst) 14 + 17: 6(int) Load 16 + SelectionMerge 21 None + Switch 17 20 + case 1: 18 + case 2: 19 + 20: Label + Store 24(color) 32 + Branch 21 + 18: Label + Store 24(color) 26 + Branch 21 + 19: Label + Store 24(color) 29 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.pushConstantAnon.vert.out b/deps/glslang/glslang/Test/baseResults/spv.pushConstantAnon.vert.out new file mode 100644 index 0000000000..b03855da57 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.pushConstantAnon.vert.out @@ -0,0 +1,64 @@ +spv.pushConstantAnon.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 38 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 24 + Source GLSL 400 + Name 4 "main" + Name 11 "Material" + MemberName 11(Material) 0 "kind" + MemberName 11(Material) 1 "fa" + Name 13 "" + Name 24 "color" + Decorate 10 ArrayStride 4 + MemberDecorate 11(Material) 0 Offset 0 + MemberDecorate 11(Material) 1 Offset 4 + Decorate 11(Material) Block + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(float) 9 + 11(Material): TypeStruct 6(int) 10 + 12: TypePointer PushConstant 11(Material) + 13: 12(ptr) Variable PushConstant + 14: 6(int) Constant 0 + 15: TypePointer PushConstant 6(int) + 22: TypeVector 7(float) 4 + 23: TypePointer Output 22(fvec4) + 24(color): 23(ptr) Variable Output + 25: 7(float) Constant 1045220557 + 26: 22(fvec4) ConstantComposite 25 25 25 25 + 28: 7(float) Constant 1056964608 + 29: 22(fvec4) ConstantComposite 28 28 28 28 + 31: 6(int) Constant 1 + 32: TypePointer PushConstant 7(float) + 4(main): 2 Function None 3 + 5: Label + 16: 15(ptr) AccessChain 13 14 + 17: 6(int) Load 16 + SelectionMerge 21 None + Switch 17 20 + case 1: 18 + case 2: 19 + 20: Label + 33: 32(ptr) AccessChain 13 31 31 + 34: 7(float) Load 33 + 35: 22(fvec4) CompositeConstruct 34 34 34 34 + Store 24(color) 35 + Branch 21 + 18: Label + Store 24(color) 26 + Branch 21 + 19: Label + Store 24(color) 29 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out b/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out new file mode 100644 index 0000000000..ffdc6f8056 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.qualifiers.vert.out @@ -0,0 +1,48 @@ +spv.qualifiers.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 21 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 11 13 15 17 19 + Source GLSL 430 + Name 4 "main" + Name 9 "outVc" + Name 11 "inV" + Name 13 "outVs" + Name 15 "outVf" + Name 17 "outVn" + Name 19 "outVcn" + Decorate 9(outVc) Centroid + Decorate 15(outVf) Flat + Decorate 17(outVn) NoPerspective + Decorate 19(outVcn) NoPerspective + Decorate 19(outVcn) Centroid + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(outVc): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(inV): 10(ptr) Variable Input + 13(outVs): 8(ptr) Variable Output + 15(outVf): 8(ptr) Variable Output + 17(outVn): 8(ptr) Variable Output + 19(outVcn): 8(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(inV) + Store 9(outVc) 12 + 14: 7(fvec4) Load 11(inV) + Store 13(outVs) 14 + 16: 7(fvec4) Load 11(inV) + Store 15(outVf) 16 + 18: 7(fvec4) Load 11(inV) + Store 17(outVn) 18 + 20: 7(fvec4) Load 11(inV) + Store 19(outVcn) 20 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out b/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out new file mode 100644 index 0000000000..33f0d95cde --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.queryL.frag.out @@ -0,0 +1,312 @@ +spv.queryL.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 224 + + Capability Shader + Capability SampledRect + Capability Sampled1D + Capability SampledCubeArray + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 430 + Name 4 "main" + Name 9 "lod" + Name 13 "samp1D" + Name 16 "pf" + Name 23 "isamp2D" + Name 25 "pf2" + Name 34 "usamp3D" + Name 38 "pf3" + Name 46 "sampCube" + Name 55 "isamp1DA" + Name 64 "usamp2DA" + Name 73 "isampCubeA" + Name 82 "samp1Ds" + Name 91 "samp2Ds" + Name 100 "sampCubes" + Name 109 "samp1DAs" + Name 118 "samp2DAs" + Name 127 "sampCubeAs" + Name 134 "levels" + Name 141 "usamp2D" + Name 150 "isamp3D" + Name 159 "isampCube" + Name 173 "samp2DA" + Name 182 "usampCubeA" + Name 219 "sampBuf" + Name 223 "sampRect" + Decorate 13(samp1D) DescriptorSet 0 + Decorate 23(isamp2D) DescriptorSet 0 + Decorate 34(usamp3D) DescriptorSet 0 + Decorate 46(sampCube) DescriptorSet 0 + Decorate 55(isamp1DA) DescriptorSet 0 + Decorate 64(usamp2DA) DescriptorSet 0 + Decorate 73(isampCubeA) DescriptorSet 0 + Decorate 82(samp1Ds) DescriptorSet 0 + Decorate 91(samp2Ds) DescriptorSet 0 + Decorate 100(sampCubes) DescriptorSet 0 + Decorate 109(samp1DAs) DescriptorSet 0 + Decorate 118(samp2DAs) DescriptorSet 0 + Decorate 127(sampCubeAs) DescriptorSet 0 + Decorate 141(usamp2D) DescriptorSet 0 + Decorate 150(isamp3D) DescriptorSet 0 + Decorate 159(isampCube) DescriptorSet 0 + Decorate 173(samp2DA) DescriptorSet 0 + Decorate 182(usampCubeA) DescriptorSet 0 + Decorate 219(sampBuf) DescriptorSet 0 + Decorate 223(sampRect) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(samp1D): 12(ptr) Variable UniformConstant + 15: TypePointer Function 6(float) + 19: TypeInt 32 1 + 20: TypeImage 19(int) 2D sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 + 23(isamp2D): 22(ptr) Variable UniformConstant + 30: TypeInt 32 0 + 31: TypeImage 30(int) 3D sampled format:Unknown + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(usamp3D): 33(ptr) Variable UniformConstant + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 43: TypeImage 6(float) Cube sampled format:Unknown + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(sampCube): 45(ptr) Variable UniformConstant + 52: TypeImage 19(int) 1D array sampled format:Unknown + 53: TypeSampledImage 52 + 54: TypePointer UniformConstant 53 + 55(isamp1DA): 54(ptr) Variable UniformConstant + 61: TypeImage 30(int) 2D array sampled format:Unknown + 62: TypeSampledImage 61 + 63: TypePointer UniformConstant 62 + 64(usamp2DA): 63(ptr) Variable UniformConstant + 70: TypeImage 19(int) Cube array sampled format:Unknown + 71: TypeSampledImage 70 + 72: TypePointer UniformConstant 71 + 73(isampCubeA): 72(ptr) Variable UniformConstant + 79: TypeImage 6(float) 1D depth sampled format:Unknown + 80: TypeSampledImage 79 + 81: TypePointer UniformConstant 80 + 82(samp1Ds): 81(ptr) Variable UniformConstant + 88: TypeImage 6(float) 2D depth sampled format:Unknown + 89: TypeSampledImage 88 + 90: TypePointer UniformConstant 89 + 91(samp2Ds): 90(ptr) Variable UniformConstant + 97: TypeImage 6(float) Cube depth sampled format:Unknown + 98: TypeSampledImage 97 + 99: TypePointer UniformConstant 98 + 100(sampCubes): 99(ptr) Variable UniformConstant + 106: TypeImage 6(float) 1D depth array sampled format:Unknown + 107: TypeSampledImage 106 + 108: TypePointer UniformConstant 107 + 109(samp1DAs): 108(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D depth array sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 + 118(samp2DAs): 117(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube depth array sampled format:Unknown + 125: TypeSampledImage 124 + 126: TypePointer UniformConstant 125 + 127(sampCubeAs): 126(ptr) Variable UniformConstant + 133: TypePointer Function 19(int) + 138: TypeImage 30(int) 2D sampled format:Unknown + 139: TypeSampledImage 138 + 140: TypePointer UniformConstant 139 + 141(usamp2D): 140(ptr) Variable UniformConstant + 147: TypeImage 19(int) 3D sampled format:Unknown + 148: TypeSampledImage 147 + 149: TypePointer UniformConstant 148 + 150(isamp3D): 149(ptr) Variable UniformConstant + 156: TypeImage 19(int) Cube sampled format:Unknown + 157: TypeSampledImage 156 + 158: TypePointer UniformConstant 157 + 159(isampCube): 158(ptr) Variable UniformConstant + 170: TypeImage 6(float) 2D array sampled format:Unknown + 171: TypeSampledImage 170 + 172: TypePointer UniformConstant 171 + 173(samp2DA): 172(ptr) Variable UniformConstant + 179: TypeImage 30(int) Cube array sampled format:Unknown + 180: TypeSampledImage 179 + 181: TypePointer UniformConstant 180 + 182(usampCubeA): 181(ptr) Variable UniformConstant + 216: TypeImage 6(float) Buffer sampled format:Unknown + 217: TypeSampledImage 216 + 218: TypePointer UniformConstant 217 + 219(sampBuf): 218(ptr) Variable UniformConstant + 220: TypeImage 6(float) Rect sampled format:Unknown + 221: TypeSampledImage 220 + 222: TypePointer UniformConstant 221 + 223(sampRect): 222(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(lod): 8(ptr) Variable Function + 16(pf): 15(ptr) Variable Function + 25(pf2): 8(ptr) Variable Function + 38(pf3): 37(ptr) Variable Function + 134(levels): 133(ptr) Variable Function + 14: 11 Load 13(samp1D) + 17: 6(float) Load 16(pf) + 18: 7(fvec2) ImageQueryLod 14 17 + Store 9(lod) 18 + 24: 21 Load 23(isamp2D) + 26: 7(fvec2) Load 25(pf2) + 27: 7(fvec2) ImageQueryLod 24 26 + 28: 7(fvec2) Load 9(lod) + 29: 7(fvec2) FAdd 28 27 + Store 9(lod) 29 + 35: 32 Load 34(usamp3D) + 39: 36(fvec3) Load 38(pf3) + 40: 7(fvec2) ImageQueryLod 35 39 + 41: 7(fvec2) Load 9(lod) + 42: 7(fvec2) FAdd 41 40 + Store 9(lod) 42 + 47: 44 Load 46(sampCube) + 48: 36(fvec3) Load 38(pf3) + 49: 7(fvec2) ImageQueryLod 47 48 + 50: 7(fvec2) Load 9(lod) + 51: 7(fvec2) FAdd 50 49 + Store 9(lod) 51 + 56: 53 Load 55(isamp1DA) + 57: 6(float) Load 16(pf) + 58: 7(fvec2) ImageQueryLod 56 57 + 59: 7(fvec2) Load 9(lod) + 60: 7(fvec2) FAdd 59 58 + Store 9(lod) 60 + 65: 62 Load 64(usamp2DA) + 66: 7(fvec2) Load 25(pf2) + 67: 7(fvec2) ImageQueryLod 65 66 + 68: 7(fvec2) Load 9(lod) + 69: 7(fvec2) FAdd 68 67 + Store 9(lod) 69 + 74: 71 Load 73(isampCubeA) + 75: 36(fvec3) Load 38(pf3) + 76: 7(fvec2) ImageQueryLod 74 75 + 77: 7(fvec2) Load 9(lod) + 78: 7(fvec2) FAdd 77 76 + Store 9(lod) 78 + 83: 80 Load 82(samp1Ds) + 84: 6(float) Load 16(pf) + 85: 7(fvec2) ImageQueryLod 83 84 + 86: 7(fvec2) Load 9(lod) + 87: 7(fvec2) FAdd 86 85 + Store 9(lod) 87 + 92: 89 Load 91(samp2Ds) + 93: 7(fvec2) Load 25(pf2) + 94: 7(fvec2) ImageQueryLod 92 93 + 95: 7(fvec2) Load 9(lod) + 96: 7(fvec2) FAdd 95 94 + Store 9(lod) 96 + 101: 98 Load 100(sampCubes) + 102: 36(fvec3) Load 38(pf3) + 103: 7(fvec2) ImageQueryLod 101 102 + 104: 7(fvec2) Load 9(lod) + 105: 7(fvec2) FAdd 104 103 + Store 9(lod) 105 + 110: 107 Load 109(samp1DAs) + 111: 6(float) Load 16(pf) + 112: 7(fvec2) ImageQueryLod 110 111 + 113: 7(fvec2) Load 9(lod) + 114: 7(fvec2) FAdd 113 112 + Store 9(lod) 114 + 119: 116 Load 118(samp2DAs) + 120: 7(fvec2) Load 25(pf2) + 121: 7(fvec2) ImageQueryLod 119 120 + 122: 7(fvec2) Load 9(lod) + 123: 7(fvec2) FAdd 122 121 + Store 9(lod) 123 + 128: 125 Load 127(sampCubeAs) + 129: 36(fvec3) Load 38(pf3) + 130: 7(fvec2) ImageQueryLod 128 129 + 131: 7(fvec2) Load 9(lod) + 132: 7(fvec2) FAdd 131 130 + Store 9(lod) 132 + 135: 11 Load 13(samp1D) + 136: 10 Image 135 + 137: 19(int) ImageQueryLevels 136 + Store 134(levels) 137 + 142: 139 Load 141(usamp2D) + 143: 138 Image 142 + 144: 19(int) ImageQueryLevels 143 + 145: 19(int) Load 134(levels) + 146: 19(int) IAdd 145 144 + Store 134(levels) 146 + 151: 148 Load 150(isamp3D) + 152: 147 Image 151 + 153: 19(int) ImageQueryLevels 152 + 154: 19(int) Load 134(levels) + 155: 19(int) IAdd 154 153 + Store 134(levels) 155 + 160: 157 Load 159(isampCube) + 161: 156 Image 160 + 162: 19(int) ImageQueryLevels 161 + 163: 19(int) Load 134(levels) + 164: 19(int) IAdd 163 162 + Store 134(levels) 164 + 165: 53 Load 55(isamp1DA) + 166: 52 Image 165 + 167: 19(int) ImageQueryLevels 166 + 168: 19(int) Load 134(levels) + 169: 19(int) IAdd 168 167 + Store 134(levels) 169 + 174: 171 Load 173(samp2DA) + 175: 170 Image 174 + 176: 19(int) ImageQueryLevels 175 + 177: 19(int) Load 134(levels) + 178: 19(int) IAdd 177 176 + Store 134(levels) 178 + 183: 180 Load 182(usampCubeA) + 184: 179 Image 183 + 185: 19(int) ImageQueryLevels 184 + 186: 19(int) Load 134(levels) + 187: 19(int) IAdd 186 185 + Store 134(levels) 187 + 188: 80 Load 82(samp1Ds) + 189: 79 Image 188 + 190: 19(int) ImageQueryLevels 189 + Store 134(levels) 190 + 191: 89 Load 91(samp2Ds) + 192: 88 Image 191 + 193: 19(int) ImageQueryLevels 192 + 194: 19(int) Load 134(levels) + 195: 19(int) IAdd 194 193 + Store 134(levels) 195 + 196: 98 Load 100(sampCubes) + 197: 97 Image 196 + 198: 19(int) ImageQueryLevels 197 + 199: 19(int) Load 134(levels) + 200: 19(int) IAdd 199 198 + Store 134(levels) 200 + 201: 107 Load 109(samp1DAs) + 202: 106 Image 201 + 203: 19(int) ImageQueryLevels 202 + 204: 19(int) Load 134(levels) + 205: 19(int) IAdd 204 203 + Store 134(levels) 205 + 206: 116 Load 118(samp2DAs) + 207: 115 Image 206 + 208: 19(int) ImageQueryLevels 207 + 209: 19(int) Load 134(levels) + 210: 19(int) IAdd 209 208 + Store 134(levels) 210 + 211: 125 Load 127(sampCubeAs) + 212: 124 Image 211 + 213: 19(int) ImageQueryLevels 212 + 214: 19(int) Load 134(levels) + 215: 19(int) IAdd 214 213 + Store 134(levels) 215 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.rankShift.comp.out b/deps/glslang/glslang/Test/baseResults/spv.rankShift.comp.out new file mode 100644 index 0000000000..3ca7514599 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.rankShift.comp.out @@ -0,0 +1,57 @@ +spv.rankShift.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 33 + + Capability Shader + Capability Int64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 54 1 1 + Source GLSL 450 + SourceExtension "GL_ARB_gpu_shader_int64" + Name 4 "main" + Name 8 "result" + Name 11 "arg0" + Name 15 "arg1" + Decorate 11(arg0) Location 4 + Decorate 15(arg1) Location 5 + Decorate 32 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 64 0 + 7: TypePointer Function 6(int64_t) + 9: TypeInt 64 1 + 10: TypePointer UniformConstant 9(int64_t) + 11(arg0): 10(ptr) Variable UniformConstant + 13: TypeInt 32 0 + 14: TypePointer UniformConstant 13(int) + 15(arg1): 14(ptr) Variable UniformConstant + 29: TypeVector 13(int) 3 + 30: 13(int) Constant 54 + 31: 13(int) Constant 1 + 32: 29(ivec3) ConstantComposite 30 31 31 + 4(main): 2 Function None 3 + 5: Label + 8(result): 7(ptr) Variable Function + 12: 9(int64_t) Load 11(arg0) + 16: 13(int) Load 15(arg1) + 17: 9(int64_t) ShiftLeftLogical 12 16 + 18: 6(int64_t) Bitcast 17 + Store 8(result) 18 + 19: 9(int64_t) Load 11(arg0) + 20: 13(int) Load 15(arg1) + 21: 9(int64_t) ShiftRightArithmetic 19 20 + 22: 6(int64_t) Bitcast 21 + Store 8(result) 22 + 23: 13(int) Load 15(arg1) + 24: 6(int64_t) Load 8(result) + 25: 6(int64_t) ShiftLeftLogical 24 23 + Store 8(result) 25 + 26: 13(int) Load 15(arg1) + 27: 6(int64_t) Load 8(result) + 28: 6(int64_t) ShiftRightLogical 27 26 + Store 8(result) 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.register.autoassign-2.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign-2.frag.out new file mode 100644 index 0000000000..533e388036 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign-2.frag.out @@ -0,0 +1,81 @@ +spv.register.autoassign-2.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 44 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 12 "@main(struct-PS_OUTPUT-vf41;" + Name 11 "psout" + Name 18 "g_tScene[0]" + Name 22 "g_tSamp" + Name 31 "g_tScene[1]" + Name 39 "psout" + Name 40 "param" + Name 44 "psout.Color" + Decorate 18(g_tScene[0]) DescriptorSet 0 + Decorate 18(g_tScene[0]) Binding 10 + Decorate 22(g_tSamp) DescriptorSet 0 + Decorate 22(g_tSamp) Binding 5 + Decorate 31(g_tScene[1]) DescriptorSet 0 + Decorate 31(g_tScene[1]) Binding 11 + Decorate 44(psout.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 10: TypeFunction 2 9(ptr) + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypeImage 6(float) 2D sampled format:Unknown + 17: TypePointer UniformConstant 16 + 18(g_tScene[0]): 17(ptr) Variable UniformConstant + 20: TypeSampler + 21: TypePointer UniformConstant 20 + 22(g_tSamp): 21(ptr) Variable UniformConstant + 24: TypeSampledImage 16 + 26: TypeVector 6(float) 2 + 27: 6(float) Constant 1050253722 + 28: 6(float) Constant 1053609165 + 29: 26(fvec2) ConstantComposite 27 28 + 31(g_tScene[1]): 17(ptr) Variable UniformConstant + 37: TypePointer Function 7(fvec4) + 43: TypePointer Output 7(fvec4) + 44(psout.Color): 43(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 39(psout): 9(ptr) Variable Function + 40(param): 9(ptr) Variable Function + 41: 2 FunctionCall 12(@main(struct-PS_OUTPUT-vf41;) 40(param) + 42:8(PS_OUTPUT) Load 40(param) + Store 39(psout) 42 + 45: 37(ptr) AccessChain 39(psout) 15 + 46: 7(fvec4) Load 45 + Store 44(psout.Color) 46 + Return + FunctionEnd +12(@main(struct-PS_OUTPUT-vf41;): 2 Function None 10 + 11(psout): 9(ptr) FunctionParameter + 13: Label + 19: 16 Load 18(g_tScene[0]) + 23: 20 Load 22(g_tSamp) + 25: 24 SampledImage 19 23 + 30: 7(fvec4) ImageSampleImplicitLod 25 29 + 32: 16 Load 31(g_tScene[1]) + 33: 20 Load 22(g_tSamp) + 34: 24 SampledImage 32 33 + 35: 7(fvec4) ImageSampleImplicitLod 34 29 + 36: 7(fvec4) FAdd 30 35 + 38: 37(ptr) AccessChain 11(psout) 15 + Store 38 36 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.frag.out new file mode 100644 index 0000000000..683ae08d48 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.frag.out @@ -0,0 +1,241 @@ +spv.register.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 155 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 151 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 15 "PS_OUTPUT" + MemberName 15(PS_OUTPUT) 0 "Color" + Name 17 "@main_ep(" + Name 21 "g_tTex1" + Name 25 "g_sSamp1" + Name 31 "g_tTex2" + Name 33 "g_sSamp2" + Name 43 "g_tTex3" + Name 50 "g_sSamp3" + Name 68 "g_tTex4" + Name 73 "g_sSamp4" + Name 88 "g_tTex5" + Name 90 "g_sSamp5" + Name 97 "MyStruct_t" + MemberName 97(MyStruct_t) 0 "a" + MemberName 97(MyStruct_t) 1 "b" + MemberName 97(MyStruct_t) 2 "c" + Name 99 "$Global" + MemberName 99($Global) 0 "mystruct" + MemberName 99($Global) 1 "myfloat4_a" + MemberName 99($Global) 2 "myfloat4_b" + MemberName 99($Global) 3 "myint4_a" + Name 101 "" + Name 123 "g_tTex_unused1" + Name 125 "g_sSamp_unused1" + Name 130 "g_tTex_unused2" + Name 132 "g_sSamp_unused2" + Name 141 "psout" + Name 151 "@entryPointOutput.Color" + Name 154 "g_tTex_unused3" + Decorate 21(g_tTex1) DescriptorSet 0 + Decorate 21(g_tTex1) Binding 11 + Decorate 25(g_sSamp1) DescriptorSet 0 + Decorate 25(g_sSamp1) Binding 5 + Decorate 31(g_tTex2) DescriptorSet 0 + Decorate 31(g_tTex2) Binding 14 + Decorate 33(g_sSamp2) DescriptorSet 0 + Decorate 33(g_sSamp2) Binding 6 + Decorate 43(g_tTex3) DescriptorSet 0 + Decorate 43(g_tTex3) Binding 13 + Decorate 50(g_sSamp3) DescriptorSet 0 + Decorate 50(g_sSamp3) Binding 7 + Decorate 68(g_tTex4) DescriptorSet 0 + Decorate 68(g_tTex4) Binding 15 + Decorate 73(g_sSamp4) DescriptorSet 0 + Decorate 73(g_sSamp4) Binding 8 + Decorate 88(g_tTex5) DescriptorSet 0 + Decorate 88(g_tTex5) Binding 16 + Decorate 90(g_sSamp5) DescriptorSet 0 + Decorate 90(g_sSamp5) Binding 9 + MemberDecorate 97(MyStruct_t) 0 Offset 0 + MemberDecorate 97(MyStruct_t) 1 Offset 4 + MemberDecorate 97(MyStruct_t) 2 Offset 16 + MemberDecorate 99($Global) 0 Offset 0 + MemberDecorate 99($Global) 1 Offset 32 + MemberDecorate 99($Global) 2 Offset 48 + MemberDecorate 99($Global) 3 Offset 64 + Decorate 99($Global) Block + Decorate 101 DescriptorSet 0 + Decorate 101 Binding 20 + Decorate 123(g_tTex_unused1) DescriptorSet 0 + Decorate 123(g_tTex_unused1) Binding 10 + Decorate 125(g_sSamp_unused1) DescriptorSet 0 + Decorate 130(g_tTex_unused2) DescriptorSet 0 + Decorate 130(g_tTex_unused2) Binding 12 + Decorate 132(g_sSamp_unused2) DescriptorSet 0 + Decorate 151(@entryPointOutput.Color) Location 0 + Decorate 154(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15(PS_OUTPUT): TypeStruct 7(fvec4) + 16: TypeFunction 15(PS_OUTPUT) + 19: TypeImage 6(float) 1D sampled format:Unknown + 20: TypePointer UniformConstant 19 + 21(g_tTex1): 20(ptr) Variable UniformConstant + 23: TypeSampler + 24: TypePointer UniformConstant 23 + 25(g_sSamp1): 24(ptr) Variable UniformConstant + 27: TypeSampledImage 19 + 29: 6(float) Constant 1036831949 + 31(g_tTex2): 20(ptr) Variable UniformConstant + 33(g_sSamp2): 24(ptr) Variable UniformConstant + 36: 6(float) Constant 1045220557 + 39: TypeInt 32 0 + 40: 39(int) Constant 2 + 41: TypeArray 19 40 + 42: TypePointer UniformConstant 41 + 43(g_tTex3): 42(ptr) Variable UniformConstant + 44: TypeInt 32 1 + 45: 44(int) Constant 0 + 48: TypeArray 23 40 + 49: TypePointer UniformConstant 48 + 50(g_sSamp3): 49(ptr) Variable UniformConstant + 54: 6(float) Constant 1050253722 + 57: 44(int) Constant 1 + 65: 39(int) Constant 3 + 66: TypeArray 19 65 + 67: TypePointer UniformConstant 66 + 68(g_tTex4): 67(ptr) Variable UniformConstant + 71: TypeArray 23 65 + 72: TypePointer UniformConstant 71 + 73(g_sSamp4): 72(ptr) Variable UniformConstant + 77: 6(float) Constant 1053609165 + 80: 44(int) Constant 2 + 88(g_tTex5): 20(ptr) Variable UniformConstant + 90(g_sSamp5): 24(ptr) Variable UniformConstant + 93: 6(float) Constant 1056964608 + 96: TypeVector 6(float) 3 + 97(MyStruct_t): TypeStruct 44(int) 6(float) 96(fvec3) + 98: TypeVector 44(int) 4 + 99($Global): TypeStruct 97(MyStruct_t) 7(fvec4) 7(fvec4) 98(ivec4) + 100: TypePointer Uniform 99($Global) + 101: 100(ptr) Variable Uniform + 102: 39(int) Constant 1 + 103: TypePointer Uniform 6(float) +123(g_tTex_unused1): 20(ptr) Variable UniformConstant +125(g_sSamp_unused1): 24(ptr) Variable UniformConstant + 128: 6(float) Constant 1066192077 +130(g_tTex_unused2): 20(ptr) Variable UniformConstant +132(g_sSamp_unused2): 24(ptr) Variable UniformConstant + 135: 6(float) Constant 1067030938 + 140: TypePointer Function 15(PS_OUTPUT) + 145: TypePointer Function 7(fvec4) + 150: TypePointer Output 7(fvec4) +151(@entryPointOutput.Color): 150(ptr) Variable Output +154(g_tTex_unused3): 20(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 152:15(PS_OUTPUT) FunctionCall 17(@main_ep() + 153: 7(fvec4) CompositeExtract 152 0 + Store 151(@entryPointOutput.Color) 153 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 22: 19 Load 21(g_tTex1) + 26: 23 Load 25(g_sSamp1) + 28: 27 SampledImage 22 26 + 30: 7(fvec4) ImageSampleImplicitLod 28 29 + 32: 19 Load 31(g_tTex2) + 34: 23 Load 33(g_sSamp2) + 35: 27 SampledImage 32 34 + 37: 7(fvec4) ImageSampleImplicitLod 35 36 + 38: 7(fvec4) FAdd 30 37 + 46: 20(ptr) AccessChain 43(g_tTex3) 45 + 47: 19 Load 46 + 51: 24(ptr) AccessChain 50(g_sSamp3) 45 + 52: 23 Load 51 + 53: 27 SampledImage 47 52 + 55: 7(fvec4) ImageSampleImplicitLod 53 54 + 56: 7(fvec4) FAdd 38 55 + 58: 20(ptr) AccessChain 43(g_tTex3) 57 + 59: 19 Load 58 + 60: 24(ptr) AccessChain 50(g_sSamp3) 57 + 61: 23 Load 60 + 62: 27 SampledImage 59 61 + 63: 7(fvec4) ImageSampleImplicitLod 62 54 + 64: 7(fvec4) FAdd 56 63 + 69: 20(ptr) AccessChain 68(g_tTex4) 57 + 70: 19 Load 69 + 74: 24(ptr) AccessChain 73(g_sSamp4) 57 + 75: 23 Load 74 + 76: 27 SampledImage 70 75 + 78: 7(fvec4) ImageSampleImplicitLod 76 77 + 79: 7(fvec4) FAdd 64 78 + 81: 20(ptr) AccessChain 68(g_tTex4) 80 + 82: 19 Load 81 + 83: 24(ptr) AccessChain 73(g_sSamp4) 80 + 84: 23 Load 83 + 85: 27 SampledImage 82 84 + 86: 7(fvec4) ImageSampleImplicitLod 85 77 + 87: 7(fvec4) FAdd 79 86 + 89: 19 Load 88(g_tTex5) + 91: 23 Load 90(g_sSamp5) + 92: 27 SampledImage 89 91 + 94: 7(fvec4) ImageSampleImplicitLod 92 93 + 95: 7(fvec4) FAdd 87 94 + 104: 103(ptr) AccessChain 101 45 80 102 + 105: 6(float) Load 104 + 106: 7(fvec4) CompositeConstruct 105 105 105 105 + 107: 7(fvec4) FAdd 95 106 + ReturnValue 107 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 110: 19 Load 21(g_tTex1) + 111: 23 Load 25(g_sSamp1) + 112: 27 SampledImage 110 111 + 113: 7(fvec4) ImageSampleImplicitLod 112 29 + 114: 20(ptr) AccessChain 43(g_tTex3) 57 + 115: 19 Load 114 + 116: 24(ptr) AccessChain 50(g_sSamp3) 57 + 117: 23 Load 116 + 118: 27 SampledImage 115 117 + 119: 7(fvec4) ImageSampleImplicitLod 118 54 + 120: 7(fvec4) FAdd 113 119 + ReturnValue 120 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 124: 19 Load 123(g_tTex_unused1) + 126: 23 Load 125(g_sSamp_unused1) + 127: 27 SampledImage 124 126 + 129: 7(fvec4) ImageSampleImplicitLod 127 128 + 131: 19 Load 130(g_tTex_unused2) + 133: 23 Load 132(g_sSamp_unused2) + 134: 27 SampledImage 131 133 + 136: 7(fvec4) ImageSampleImplicitLod 134 135 + 137: 7(fvec4) FAdd 129 136 + ReturnValue 137 + FunctionEnd + 17(@main_ep():15(PS_OUTPUT) Function None 16 + 18: Label + 141(psout): 140(ptr) Variable Function + 142: 7(fvec4) FunctionCall 9(Func1() + 143: 7(fvec4) FunctionCall 11(Func2() + 144: 7(fvec4) FAdd 142 143 + 146: 145(ptr) AccessChain 141(psout) 45 + Store 146 144 + 147:15(PS_OUTPUT) Load 141(psout) + ReturnValue 147 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.rangetest.frag.out new file mode 100644 index 0000000000..8eb76c9b74 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.register.autoassign.rangetest.frag.out @@ -0,0 +1,5 @@ +spv.register.autoassign.rangetest.frag +INTERNAL ERROR: mapped binding out of range: g_tSamp +INTERNAL ERROR: mapped binding out of range: g_tScene + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.register.noautoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.noautoassign.frag.out new file mode 100644 index 0000000000..166d92d920 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.register.noautoassign.frag.out @@ -0,0 +1,234 @@ +spv.register.noautoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 155 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 151 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 15 "PS_OUTPUT" + MemberName 15(PS_OUTPUT) 0 "Color" + Name 17 "@main_ep(" + Name 21 "g_tTex1" + Name 25 "g_sSamp1" + Name 31 "g_tTex2" + Name 33 "g_sSamp2" + Name 43 "g_tTex3" + Name 50 "g_sSamp3" + Name 68 "g_tTex4" + Name 73 "g_sSamp4" + Name 88 "g_tTex5" + Name 90 "g_sSamp5" + Name 97 "MyStruct_t" + MemberName 97(MyStruct_t) 0 "a" + MemberName 97(MyStruct_t) 1 "b" + MemberName 97(MyStruct_t) 2 "c" + Name 99 "$Global" + MemberName 99($Global) 0 "mystruct" + MemberName 99($Global) 1 "myfloat4_a" + MemberName 99($Global) 2 "myfloat4_b" + MemberName 99($Global) 3 "myint4_a" + Name 101 "" + Name 123 "g_tTex_unused1" + Name 125 "g_sSamp_unused1" + Name 130 "g_tTex_unused2" + Name 132 "g_sSamp_unused2" + Name 141 "psout" + Name 151 "@entryPointOutput.Color" + Name 154 "g_tTex_unused3" + Decorate 21(g_tTex1) DescriptorSet 0 + Decorate 21(g_tTex1) Binding 11 + Decorate 25(g_sSamp1) DescriptorSet 0 + Decorate 25(g_sSamp1) Binding 5 + Decorate 31(g_tTex2) DescriptorSet 0 + Decorate 33(g_sSamp2) DescriptorSet 0 + Decorate 43(g_tTex3) DescriptorSet 0 + Decorate 43(g_tTex3) Binding 13 + Decorate 50(g_sSamp3) DescriptorSet 0 + Decorate 50(g_sSamp3) Binding 7 + Decorate 68(g_tTex4) DescriptorSet 0 + Decorate 73(g_sSamp4) DescriptorSet 0 + Decorate 88(g_tTex5) DescriptorSet 0 + Decorate 90(g_sSamp5) DescriptorSet 0 + MemberDecorate 97(MyStruct_t) 0 Offset 0 + MemberDecorate 97(MyStruct_t) 1 Offset 4 + MemberDecorate 97(MyStruct_t) 2 Offset 16 + MemberDecorate 99($Global) 0 Offset 0 + MemberDecorate 99($Global) 1 Offset 32 + MemberDecorate 99($Global) 2 Offset 48 + MemberDecorate 99($Global) 3 Offset 64 + Decorate 99($Global) Block + Decorate 101 DescriptorSet 0 + Decorate 123(g_tTex_unused1) DescriptorSet 0 + Decorate 123(g_tTex_unused1) Binding 10 + Decorate 125(g_sSamp_unused1) DescriptorSet 0 + Decorate 130(g_tTex_unused2) DescriptorSet 0 + Decorate 130(g_tTex_unused2) Binding 12 + Decorate 132(g_sSamp_unused2) DescriptorSet 0 + Decorate 151(@entryPointOutput.Color) Location 0 + Decorate 154(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15(PS_OUTPUT): TypeStruct 7(fvec4) + 16: TypeFunction 15(PS_OUTPUT) + 19: TypeImage 6(float) 1D sampled format:Unknown + 20: TypePointer UniformConstant 19 + 21(g_tTex1): 20(ptr) Variable UniformConstant + 23: TypeSampler + 24: TypePointer UniformConstant 23 + 25(g_sSamp1): 24(ptr) Variable UniformConstant + 27: TypeSampledImage 19 + 29: 6(float) Constant 1036831949 + 31(g_tTex2): 20(ptr) Variable UniformConstant + 33(g_sSamp2): 24(ptr) Variable UniformConstant + 36: 6(float) Constant 1045220557 + 39: TypeInt 32 0 + 40: 39(int) Constant 2 + 41: TypeArray 19 40 + 42: TypePointer UniformConstant 41 + 43(g_tTex3): 42(ptr) Variable UniformConstant + 44: TypeInt 32 1 + 45: 44(int) Constant 0 + 48: TypeArray 23 40 + 49: TypePointer UniformConstant 48 + 50(g_sSamp3): 49(ptr) Variable UniformConstant + 54: 6(float) Constant 1050253722 + 57: 44(int) Constant 1 + 65: 39(int) Constant 3 + 66: TypeArray 19 65 + 67: TypePointer UniformConstant 66 + 68(g_tTex4): 67(ptr) Variable UniformConstant + 71: TypeArray 23 65 + 72: TypePointer UniformConstant 71 + 73(g_sSamp4): 72(ptr) Variable UniformConstant + 77: 6(float) Constant 1053609165 + 80: 44(int) Constant 2 + 88(g_tTex5): 20(ptr) Variable UniformConstant + 90(g_sSamp5): 24(ptr) Variable UniformConstant + 93: 6(float) Constant 1056964608 + 96: TypeVector 6(float) 3 + 97(MyStruct_t): TypeStruct 44(int) 6(float) 96(fvec3) + 98: TypeVector 44(int) 4 + 99($Global): TypeStruct 97(MyStruct_t) 7(fvec4) 7(fvec4) 98(ivec4) + 100: TypePointer Uniform 99($Global) + 101: 100(ptr) Variable Uniform + 102: 39(int) Constant 1 + 103: TypePointer Uniform 6(float) +123(g_tTex_unused1): 20(ptr) Variable UniformConstant +125(g_sSamp_unused1): 24(ptr) Variable UniformConstant + 128: 6(float) Constant 1066192077 +130(g_tTex_unused2): 20(ptr) Variable UniformConstant +132(g_sSamp_unused2): 24(ptr) Variable UniformConstant + 135: 6(float) Constant 1067030938 + 140: TypePointer Function 15(PS_OUTPUT) + 145: TypePointer Function 7(fvec4) + 150: TypePointer Output 7(fvec4) +151(@entryPointOutput.Color): 150(ptr) Variable Output +154(g_tTex_unused3): 20(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 152:15(PS_OUTPUT) FunctionCall 17(@main_ep() + 153: 7(fvec4) CompositeExtract 152 0 + Store 151(@entryPointOutput.Color) 153 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 22: 19 Load 21(g_tTex1) + 26: 23 Load 25(g_sSamp1) + 28: 27 SampledImage 22 26 + 30: 7(fvec4) ImageSampleImplicitLod 28 29 + 32: 19 Load 31(g_tTex2) + 34: 23 Load 33(g_sSamp2) + 35: 27 SampledImage 32 34 + 37: 7(fvec4) ImageSampleImplicitLod 35 36 + 38: 7(fvec4) FAdd 30 37 + 46: 20(ptr) AccessChain 43(g_tTex3) 45 + 47: 19 Load 46 + 51: 24(ptr) AccessChain 50(g_sSamp3) 45 + 52: 23 Load 51 + 53: 27 SampledImage 47 52 + 55: 7(fvec4) ImageSampleImplicitLod 53 54 + 56: 7(fvec4) FAdd 38 55 + 58: 20(ptr) AccessChain 43(g_tTex3) 57 + 59: 19 Load 58 + 60: 24(ptr) AccessChain 50(g_sSamp3) 57 + 61: 23 Load 60 + 62: 27 SampledImage 59 61 + 63: 7(fvec4) ImageSampleImplicitLod 62 54 + 64: 7(fvec4) FAdd 56 63 + 69: 20(ptr) AccessChain 68(g_tTex4) 57 + 70: 19 Load 69 + 74: 24(ptr) AccessChain 73(g_sSamp4) 57 + 75: 23 Load 74 + 76: 27 SampledImage 70 75 + 78: 7(fvec4) ImageSampleImplicitLod 76 77 + 79: 7(fvec4) FAdd 64 78 + 81: 20(ptr) AccessChain 68(g_tTex4) 80 + 82: 19 Load 81 + 83: 24(ptr) AccessChain 73(g_sSamp4) 80 + 84: 23 Load 83 + 85: 27 SampledImage 82 84 + 86: 7(fvec4) ImageSampleImplicitLod 85 77 + 87: 7(fvec4) FAdd 79 86 + 89: 19 Load 88(g_tTex5) + 91: 23 Load 90(g_sSamp5) + 92: 27 SampledImage 89 91 + 94: 7(fvec4) ImageSampleImplicitLod 92 93 + 95: 7(fvec4) FAdd 87 94 + 104: 103(ptr) AccessChain 101 45 80 102 + 105: 6(float) Load 104 + 106: 7(fvec4) CompositeConstruct 105 105 105 105 + 107: 7(fvec4) FAdd 95 106 + ReturnValue 107 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 110: 19 Load 21(g_tTex1) + 111: 23 Load 25(g_sSamp1) + 112: 27 SampledImage 110 111 + 113: 7(fvec4) ImageSampleImplicitLod 112 29 + 114: 20(ptr) AccessChain 43(g_tTex3) 57 + 115: 19 Load 114 + 116: 24(ptr) AccessChain 50(g_sSamp3) 57 + 117: 23 Load 116 + 118: 27 SampledImage 115 117 + 119: 7(fvec4) ImageSampleImplicitLod 118 54 + 120: 7(fvec4) FAdd 113 119 + ReturnValue 120 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 124: 19 Load 123(g_tTex_unused1) + 126: 23 Load 125(g_sSamp_unused1) + 127: 27 SampledImage 124 126 + 129: 7(fvec4) ImageSampleImplicitLod 127 128 + 131: 19 Load 130(g_tTex_unused2) + 133: 23 Load 132(g_sSamp_unused2) + 134: 27 SampledImage 131 133 + 136: 7(fvec4) ImageSampleImplicitLod 134 135 + 137: 7(fvec4) FAdd 129 136 + ReturnValue 137 + FunctionEnd + 17(@main_ep():15(PS_OUTPUT) Function None 16 + 18: Label + 141(psout): 140(ptr) Variable Function + 142: 7(fvec4) FunctionCall 9(Func1() + 143: 7(fvec4) FunctionCall 11(Func2() + 144: 7(fvec4) FAdd 142 143 + 146: 145(ptr) AccessChain 141(psout) 45 + Store 146 144 + 147:15(PS_OUTPUT) Load 141(psout) + ReturnValue 147 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.register.subpass.frag.out b/deps/glslang/glslang/Test/baseResults/spv.register.subpass.frag.out new file mode 100644 index 0000000000..c42832a973 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.register.subpass.frag.out @@ -0,0 +1,75 @@ +spv.register.subpass.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 40 + + Capability Shader + Capability InputAttachment + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 38 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 12 "result00" + Name 15 "subpass_f4" + Name 22 "result10" + Name 25 "subpass_ms_f4" + Name 29 "result73" + Name 30 "subpass_2" + Name 38 "@entryPointOutput" + Decorate 15(subpass_f4) DescriptorSet 0 + Decorate 15(subpass_f4) Binding 21 + Decorate 15(subpass_f4) InputAttachmentIndex 1 + Decorate 25(subpass_ms_f4) DescriptorSet 0 + Decorate 25(subpass_ms_f4) Binding 20 + Decorate 25(subpass_ms_f4) InputAttachmentIndex 4 + Decorate 30(subpass_2) DescriptorSet 0 + Decorate 30(subpass_2) Binding 22 + Decorate 30(subpass_2) InputAttachmentIndex 7 + Decorate 38(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Function 7(fvec4) + 13: TypeImage 6(float) SubpassData nonsampled format:Unknown + 14: TypePointer UniformConstant 13 + 15(subpass_f4): 14(ptr) Variable UniformConstant + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypeVector 17(int) 2 + 20: 19(ivec2) ConstantComposite 18 18 + 23: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown + 24: TypePointer UniformConstant 23 +25(subpass_ms_f4): 24(ptr) Variable UniformConstant + 27: 17(int) Constant 3 + 30(subpass_2): 14(ptr) Variable UniformConstant + 33: 6(float) Constant 0 + 34: 7(fvec4) ConstantComposite 33 33 33 33 + 37: TypePointer Output 7(fvec4) +38(@entryPointOutput): 37(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 39: 7(fvec4) FunctionCall 9(@main() + Store 38(@entryPointOutput) 39 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 12(result00): 11(ptr) Variable Function + 22(result10): 11(ptr) Variable Function + 29(result73): 11(ptr) Variable Function + 16: 13 Load 15(subpass_f4) + 21: 7(fvec4) ImageRead 16 20 + Store 12(result00) 21 + 26: 23 Load 25(subpass_ms_f4) + 28: 7(fvec4) ImageRead 26 20 Sample 27 + Store 22(result10) 28 + 31: 13 Load 30(subpass_2) + 32: 7(fvec4) ImageRead 31 20 + Store 29(result73) 32 + ReturnValue 34 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out new file mode 100644 index 0000000000..2ee30bc5cb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.rw.autoassign.frag.out @@ -0,0 +1,74 @@ +spv.rw.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + Capability Image1D + Capability ImageBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 39 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "@main(" + Name 13 "r00" + Name 16 "g_tTex1df1" + Name 23 "r01" + Name 26 "g_tBuf1du1" + Name 30 "psout" + Name 39 "@entryPointOutput.Color" + Decorate 16(g_tTex1df1) DescriptorSet 0 + Decorate 16(g_tTex1df1) Binding 20 + Decorate 26(g_tBuf1du1) DescriptorSet 0 + Decorate 26(g_tBuf1du1) Binding 21 + Decorate 39(@entryPointOutput.Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypeFunction 8(PS_OUTPUT) + 12: TypePointer Function 6(float) + 14: TypeImage 6(float) 1D nonsampled format:R32f + 15: TypePointer UniformConstant 14 + 16(g_tTex1df1): 15(ptr) Variable UniformConstant + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 21: TypeInt 32 0 + 22: TypePointer Function 21(int) + 24: TypeImage 21(int) Buffer nonsampled format:R32ui + 25: TypePointer UniformConstant 24 + 26(g_tBuf1du1): 25(ptr) Variable UniformConstant + 29: TypePointer Function 8(PS_OUTPUT) + 31: 6(float) Constant 0 + 32: 7(fvec4) ConstantComposite 31 31 31 31 + 33: TypePointer Function 7(fvec4) + 38: TypePointer Output 7(fvec4) +39(@entryPointOutput.Color): 38(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 40:8(PS_OUTPUT) FunctionCall 10(@main() + 41: 7(fvec4) CompositeExtract 40 0 + Store 39(@entryPointOutput.Color) 41 + Return + FunctionEnd + 10(@main():8(PS_OUTPUT) Function None 9 + 11: Label + 13(r00): 12(ptr) Variable Function + 23(r01): 22(ptr) Variable Function + 30(psout): 29(ptr) Variable Function + 17: 14 Load 16(g_tTex1df1) + 20: 6(float) ImageRead 17 19 + Store 13(r00) 20 + 27: 24 Load 26(g_tBuf1du1) + 28: 21(int) ImageRead 27 19 + Store 23(r01) 28 + 34: 33(ptr) AccessChain 30(psout) 19 + Store 34 32 + 35:8(PS_OUTPUT) Load 30(psout) + ReturnValue 35 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.sample.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sample.frag.out new file mode 100644 index 0000000000..e4d38f35a6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.sample.frag.out @@ -0,0 +1,32 @@ +spv.sample.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 13 + + Capability Shader + Capability SampleRateShading + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 11 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "color" + Name 11 "samp" + Decorate 9(color) Location 0 + Decorate 11(samp) Sample + Decorate 11(samp) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(color): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(samp): 10(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(samp) + Store 9(color) 12 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.sampleId.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sampleId.frag.out new file mode 100644 index 0000000000..894d8db880 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.sampleId.frag.out @@ -0,0 +1,52 @@ +spv.sampleId.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Shader + Capability SampleRateShading + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 18 20 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 8 "gl_SampleID" + Name 18 "color" + Name 20 "samp" + Decorate 8(gl_SampleID) Flat + Decorate 8(gl_SampleID) BuiltIn SampleId + Decorate 18(color) Location 0 + Decorate 20(samp) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Input 6(int) + 8(gl_SampleID): 7(ptr) Variable Input + 10: 6(int) Constant 3 + 11: TypeBool + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Output 16(fvec4) + 18(color): 17(ptr) Variable Output + 19: TypePointer Input 16(fvec4) + 20(samp): 19(ptr) Variable Input + 23: 15(float) Constant 1073741824 + 4(main): 2 Function None 3 + 5: Label + 9: 6(int) Load 8(gl_SampleID) + 12: 11(bool) SLessThan 9 10 + SelectionMerge 14 None + BranchConditional 12 13 22 + 13: Label + 21: 16(fvec4) Load 20(samp) + Store 18(color) 21 + Branch 14 + 22: Label + 24: 16(fvec4) Load 20(samp) + 25: 16(fvec4) VectorTimesScalar 24 23 + Store 18(color) 25 + Branch 14 + 14: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out new file mode 100644 index 0000000000..470cd423f2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out @@ -0,0 +1,39 @@ +spv.sampleMaskOverrideCoverage.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + Extension "SPV_NV_sample_mask_override_coverage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 19 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_NV_sample_mask_override_coverage" + Name 4 "main" + Name 11 "gl_SampleMask" + Name 19 "color" + Decorate 11(gl_SampleMask) BuiltIn SampleMask + Decorate 11(gl_SampleMask) OverrideCoverageNV + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: 7(int) Constant 1 + 9: TypeArray 6(int) 8 + 10: TypePointer Output 9 +11(gl_SampleMask): 10(ptr) Variable Output + 12: 6(int) Constant 0 + 13: 6(int) Constant 4294967295 + 14: TypePointer Output 6(int) + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypePointer Input 17(fvec4) + 19(color): 18(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 15: 14(ptr) AccessChain 11(gl_SampleMask) 12 + Store 15 13 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.samplePosition.frag.out b/deps/glslang/glslang/Test/baseResults/spv.samplePosition.frag.out new file mode 100644 index 0000000000..882423ee8d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.samplePosition.frag.out @@ -0,0 +1,55 @@ +spv.samplePosition.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 30 + + Capability Shader + Capability SampleRateShading + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 22 24 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "gl_SamplePosition" + Name 22 "color" + Name 24 "samp" + Decorate 9(gl_SamplePosition) BuiltIn SamplePosition + Decorate 22(color) Location 0 + Decorate 24(samp) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Input 7(fvec2) +9(gl_SamplePosition): 8(ptr) Variable Input + 10: TypeInt 32 0 + 11: 10(int) Constant 1 + 12: TypePointer Input 6(float) + 15: 6(float) Constant 1056964608 + 16: TypeBool + 20: TypeVector 6(float) 4 + 21: TypePointer Output 20(fvec4) + 22(color): 21(ptr) Variable Output + 23: TypePointer Input 20(fvec4) + 24(samp): 23(ptr) Variable Input + 27: 6(float) Constant 1073741824 + 4(main): 2 Function None 3 + 5: Label + 13: 12(ptr) AccessChain 9(gl_SamplePosition) 11 + 14: 6(float) Load 13 + 17: 16(bool) FOrdLessThan 14 15 + SelectionMerge 19 None + BranchConditional 17 18 26 + 18: Label + 25: 20(fvec4) Load 24(samp) + Store 22(color) 25 + Branch 19 + 26: Label + 28: 20(fvec4) Load 24(samp) + 29: 20(fvec4) VectorTimesScalar 28 27 + Store 22(color) 29 + Branch 19 + 19: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out b/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out new file mode 100644 index 0000000000..a834efdc8e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.separate.frag.out @@ -0,0 +1,420 @@ +spv.separate.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 319 + + Capability Shader + Capability SampledRect + Capability Sampled1D + Capability SampledCubeArray + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 34 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 6 "foo(" + Name 11 "color" + Name 14 "t2d" + Name 18 "s" + Name 31 "t3d" + Name 34 "i" + Name 41 "sA" + Name 58 "tex2D" + Name 64 "texCube" + Name 71 "texCubeArray" + Name 77 "sShadow" + Name 84 "itexCubeArray" + Name 91 "utexCubeArray" + Name 98 "tex1DArray" + Name 106 "itex1DArray" + Name 113 "utex1D" + Name 120 "itex1D" + Name 127 "utex1DArray" + Name 134 "texBuffer" + Name 146 "tex2DArray" + Name 158 "itex2D" + Name 165 "itex3D" + Name 172 "itexCube" + Name 179 "itex2DArray" + Name 186 "utex2D" + Name 193 "utex3D" + Name 200 "utexCube" + Name 207 "utex2DArray" + Name 214 "itex2DRect" + Name 221 "utex2DRect" + Name 228 "itexBuffer" + Name 235 "utexBuffer" + Name 242 "tex2DMS" + Name 249 "itex2DMS" + Name 256 "utex2DMS" + Name 263 "tex2DMSArray" + Name 270 "itex2DMSArray" + Name 277 "utex2DMSArray" + Name 284 "tex1D" + Name 294 "tex3D" + Name 305 "tex2DRect" + Decorate 14(t2d) DescriptorSet 0 + Decorate 18(s) DescriptorSet 0 + Decorate 31(t3d) DescriptorSet 0 + Decorate 34(i) Flat + Decorate 41(sA) DescriptorSet 0 + Decorate 58(tex2D) DescriptorSet 0 + Decorate 64(texCube) DescriptorSet 0 + Decorate 71(texCubeArray) DescriptorSet 0 + Decorate 77(sShadow) DescriptorSet 0 + Decorate 84(itexCubeArray) DescriptorSet 0 + Decorate 91(utexCubeArray) DescriptorSet 0 + Decorate 98(tex1DArray) DescriptorSet 0 + Decorate 106(itex1DArray) DescriptorSet 0 + Decorate 113(utex1D) DescriptorSet 0 + Decorate 120(itex1D) DescriptorSet 0 + Decorate 127(utex1DArray) DescriptorSet 0 + Decorate 134(texBuffer) DescriptorSet 0 + Decorate 146(tex2DArray) DescriptorSet 0 + Decorate 158(itex2D) DescriptorSet 0 + Decorate 165(itex3D) DescriptorSet 0 + Decorate 172(itexCube) DescriptorSet 0 + Decorate 179(itex2DArray) DescriptorSet 0 + Decorate 186(utex2D) DescriptorSet 0 + Decorate 193(utex3D) DescriptorSet 0 + Decorate 200(utexCube) DescriptorSet 0 + Decorate 207(utex2DArray) DescriptorSet 0 + Decorate 214(itex2DRect) DescriptorSet 0 + Decorate 221(utex2DRect) DescriptorSet 0 + Decorate 228(itexBuffer) DescriptorSet 0 + Decorate 235(utexBuffer) DescriptorSet 0 + Decorate 242(tex2DMS) DescriptorSet 0 + Decorate 249(itex2DMS) DescriptorSet 0 + Decorate 256(utex2DMS) DescriptorSet 0 + Decorate 263(tex2DMSArray) DescriptorSet 0 + Decorate 270(itex2DMSArray) DescriptorSet 0 + Decorate 277(utex2DMSArray) DescriptorSet 0 + Decorate 284(tex1D) DescriptorSet 0 + Decorate 294(tex3D) DescriptorSet 0 + Decorate 305(tex2DRect) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypePointer Output 9(fvec4) + 11(color): 10(ptr) Variable Output + 12: TypeImage 8(float) 2D sampled format:Unknown + 13: TypePointer UniformConstant 12 + 14(t2d): 13(ptr) Variable UniformConstant + 16: TypeSampler + 17: TypePointer UniformConstant 16 + 18(s): 17(ptr) Variable UniformConstant + 20: TypeSampledImage 12 + 22: TypeVector 8(float) 2 + 23: 8(float) Constant 1056964608 + 24: 22(fvec2) ConstantComposite 23 23 + 26: TypeImage 8(float) 3D sampled format:Unknown + 27: TypeInt 32 0 + 28: 27(int) Constant 4 + 29: TypeArray 26 28 + 30: TypePointer UniformConstant 29 + 31(t3d): 30(ptr) Variable UniformConstant + 32: TypeInt 32 1 + 33: TypePointer Input 32(int) + 34(i): 33(ptr) Variable Input + 36: TypePointer UniformConstant 26 + 39: TypeArray 16 28 + 40: TypePointer UniformConstant 39 + 41(sA): 40(ptr) Variable UniformConstant + 42: 32(int) Constant 2 + 45: TypeSampledImage 26 + 47: TypeVector 8(float) 3 + 48: 47(fvec3) ConstantComposite 23 23 23 + 58(tex2D): 13(ptr) Variable UniformConstant + 62: TypeImage 8(float) Cube sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(texCube): 63(ptr) Variable UniformConstant + 67: TypeSampledImage 62 + 69: TypeImage 8(float) Cube array sampled format:Unknown + 70: TypePointer UniformConstant 69 +71(texCubeArray): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 77(sShadow): 17(ptr) Variable UniformConstant + 79: TypeImage 8(float) Cube depth array sampled format:Unknown + 80: TypeSampledImage 79 + 82: TypeImage 32(int) Cube array sampled format:Unknown + 83: TypePointer UniformConstant 82 +84(itexCubeArray): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: TypeImage 27(int) Cube array sampled format:Unknown + 90: TypePointer UniformConstant 89 +91(utexCubeArray): 90(ptr) Variable UniformConstant + 94: TypeSampledImage 89 + 96: TypeImage 8(float) 1D array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(tex1DArray): 97(ptr) Variable UniformConstant + 101: TypeImage 8(float) 1D depth array sampled format:Unknown + 102: TypeSampledImage 101 + 104: TypeImage 32(int) 1D array sampled format:Unknown + 105: TypePointer UniformConstant 104 +106(itex1DArray): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: TypeImage 27(int) 1D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(utex1D): 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeImage 32(int) 1D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(itex1D): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 125: TypeImage 27(int) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(utex1DArray): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypeImage 8(float) Buffer sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(texBuffer): 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 141: TypeImage 8(float) Cube depth sampled format:Unknown + 142: TypeSampledImage 141 + 144: TypeImage 8(float) 2D array sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(tex2DArray): 145(ptr) Variable UniformConstant + 149: TypeSampledImage 144 + 153: TypeImage 8(float) 2D depth array sampled format:Unknown + 154: TypeSampledImage 153 + 156: TypeImage 32(int) 2D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(itex2D): 157(ptr) Variable UniformConstant + 161: TypeSampledImage 156 + 163: TypeImage 32(int) 3D sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(itex3D): 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 170: TypeImage 32(int) Cube sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(itexCube): 171(ptr) Variable UniformConstant + 175: TypeSampledImage 170 + 177: TypeImage 32(int) 2D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(itex2DArray): 178(ptr) Variable UniformConstant + 182: TypeSampledImage 177 + 184: TypeImage 27(int) 2D sampled format:Unknown + 185: TypePointer UniformConstant 184 + 186(utex2D): 185(ptr) Variable UniformConstant + 189: TypeSampledImage 184 + 191: TypeImage 27(int) 3D sampled format:Unknown + 192: TypePointer UniformConstant 191 + 193(utex3D): 192(ptr) Variable UniformConstant + 196: TypeSampledImage 191 + 198: TypeImage 27(int) Cube sampled format:Unknown + 199: TypePointer UniformConstant 198 + 200(utexCube): 199(ptr) Variable UniformConstant + 203: TypeSampledImage 198 + 205: TypeImage 27(int) 2D array sampled format:Unknown + 206: TypePointer UniformConstant 205 +207(utex2DArray): 206(ptr) Variable UniformConstant + 210: TypeSampledImage 205 + 212: TypeImage 32(int) Rect sampled format:Unknown + 213: TypePointer UniformConstant 212 + 214(itex2DRect): 213(ptr) Variable UniformConstant + 217: TypeSampledImage 212 + 219: TypeImage 27(int) Rect sampled format:Unknown + 220: TypePointer UniformConstant 219 + 221(utex2DRect): 220(ptr) Variable UniformConstant + 224: TypeSampledImage 219 + 226: TypeImage 32(int) Buffer sampled format:Unknown + 227: TypePointer UniformConstant 226 + 228(itexBuffer): 227(ptr) Variable UniformConstant + 231: TypeSampledImage 226 + 233: TypeImage 27(int) Buffer sampled format:Unknown + 234: TypePointer UniformConstant 233 + 235(utexBuffer): 234(ptr) Variable UniformConstant + 238: TypeSampledImage 233 + 240: TypeImage 8(float) 2D multi-sampled sampled format:Unknown + 241: TypePointer UniformConstant 240 + 242(tex2DMS): 241(ptr) Variable UniformConstant + 245: TypeSampledImage 240 + 247: TypeImage 32(int) 2D multi-sampled sampled format:Unknown + 248: TypePointer UniformConstant 247 + 249(itex2DMS): 248(ptr) Variable UniformConstant + 252: TypeSampledImage 247 + 254: TypeImage 27(int) 2D multi-sampled sampled format:Unknown + 255: TypePointer UniformConstant 254 + 256(utex2DMS): 255(ptr) Variable UniformConstant + 259: TypeSampledImage 254 + 261: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown + 262: TypePointer UniformConstant 261 +263(tex2DMSArray): 262(ptr) Variable UniformConstant + 266: TypeSampledImage 261 + 268: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown + 269: TypePointer UniformConstant 268 +270(itex2DMSArray): 269(ptr) Variable UniformConstant + 273: TypeSampledImage 268 + 275: TypeImage 27(int) 2D array multi-sampled sampled format:Unknown + 276: TypePointer UniformConstant 275 +277(utex2DMSArray): 276(ptr) Variable UniformConstant + 280: TypeSampledImage 275 + 282: TypeImage 8(float) 1D sampled format:Unknown + 283: TypePointer UniformConstant 282 + 284(tex1D): 283(ptr) Variable UniformConstant + 287: TypeSampledImage 282 + 291: TypeImage 8(float) 1D depth sampled format:Unknown + 292: TypeSampledImage 291 + 294(tex3D): 36(ptr) Variable UniformConstant + 300: TypeImage 8(float) 2D depth sampled format:Unknown + 301: TypeSampledImage 300 + 303: TypeImage 8(float) Rect sampled format:Unknown + 304: TypePointer UniformConstant 303 + 305(tex2DRect): 304(ptr) Variable UniformConstant + 308: TypeSampledImage 303 + 312: TypeImage 8(float) Rect depth sampled format:Unknown + 313: TypeSampledImage 312 + 317: TypeSampledImage 96 + 4(main): 2 Function None 3 + 5: Label + 15: 12 Load 14(t2d) + 19: 16 Load 18(s) + 21: 20 SampledImage 15 19 + 25: 9(fvec4) ImageSampleImplicitLod 21 24 + Store 11(color) 25 + 35: 32(int) Load 34(i) + 37: 36(ptr) AccessChain 31(t3d) 35 + 38: 26 Load 37 + 43: 17(ptr) AccessChain 41(sA) 42 + 44: 16 Load 43 + 46: 45 SampledImage 38 44 + 49: 9(fvec4) ImageSampleImplicitLod 46 48 + 50: 9(fvec4) Load 11(color) + 51: 9(fvec4) FAdd 50 49 + Store 11(color) 51 + 52: 12 Load 14(t2d) + 53: 16 Load 18(s) + 54: 20 SampledImage 52 53 + 55: 9(fvec4) ImageSampleImplicitLod 54 24 + 56: 9(fvec4) Load 11(color) + 57: 9(fvec4) FAdd 56 55 + Store 11(color) 57 + Return + FunctionEnd + 6(foo(): 2 Function None 3 + 7: Label + 59: 12 Load 58(tex2D) + 60: 16 Load 18(s) + 61: 20 SampledImage 59 60 + 65: 62 Load 64(texCube) + 66: 16 Load 18(s) + 68: 67 SampledImage 65 66 + 72: 69 Load 71(texCubeArray) + 73: 16 Load 18(s) + 75: 74 SampledImage 72 73 + 76: 69 Load 71(texCubeArray) + 78: 16 Load 77(sShadow) + 81: 80 SampledImage 76 78 + 85: 82 Load 84(itexCubeArray) + 86: 16 Load 18(s) + 88: 87 SampledImage 85 86 + 92: 89 Load 91(utexCubeArray) + 93: 16 Load 18(s) + 95: 94 SampledImage 92 93 + 99: 96 Load 98(tex1DArray) + 100: 16 Load 77(sShadow) + 103: 102 SampledImage 99 100 + 107: 104 Load 106(itex1DArray) + 108: 16 Load 18(s) + 110: 109 SampledImage 107 108 + 114: 111 Load 113(utex1D) + 115: 16 Load 18(s) + 117: 116 SampledImage 114 115 + 121: 118 Load 120(itex1D) + 122: 16 Load 18(s) + 124: 123 SampledImage 121 122 + 128: 125 Load 127(utex1DArray) + 129: 16 Load 18(s) + 131: 130 SampledImage 128 129 + 135: 132 Load 134(texBuffer) + 136: 16 Load 18(s) + 138: 137 SampledImage 135 136 + 139: 62 Load 64(texCube) + 140: 16 Load 77(sShadow) + 143: 142 SampledImage 139 140 + 147: 144 Load 146(tex2DArray) + 148: 16 Load 18(s) + 150: 149 SampledImage 147 148 + 151: 144 Load 146(tex2DArray) + 152: 16 Load 77(sShadow) + 155: 154 SampledImage 151 152 + 159: 156 Load 158(itex2D) + 160: 16 Load 18(s) + 162: 161 SampledImage 159 160 + 166: 163 Load 165(itex3D) + 167: 16 Load 18(s) + 169: 168 SampledImage 166 167 + 173: 170 Load 172(itexCube) + 174: 16 Load 18(s) + 176: 175 SampledImage 173 174 + 180: 177 Load 179(itex2DArray) + 181: 16 Load 18(s) + 183: 182 SampledImage 180 181 + 187: 184 Load 186(utex2D) + 188: 16 Load 18(s) + 190: 189 SampledImage 187 188 + 194: 191 Load 193(utex3D) + 195: 16 Load 18(s) + 197: 196 SampledImage 194 195 + 201: 198 Load 200(utexCube) + 202: 16 Load 18(s) + 204: 203 SampledImage 201 202 + 208: 205 Load 207(utex2DArray) + 209: 16 Load 18(s) + 211: 210 SampledImage 208 209 + 215: 212 Load 214(itex2DRect) + 216: 16 Load 18(s) + 218: 217 SampledImage 215 216 + 222: 219 Load 221(utex2DRect) + 223: 16 Load 18(s) + 225: 224 SampledImage 222 223 + 229: 226 Load 228(itexBuffer) + 230: 16 Load 18(s) + 232: 231 SampledImage 229 230 + 236: 233 Load 235(utexBuffer) + 237: 16 Load 18(s) + 239: 238 SampledImage 236 237 + 243: 240 Load 242(tex2DMS) + 244: 16 Load 18(s) + 246: 245 SampledImage 243 244 + 250: 247 Load 249(itex2DMS) + 251: 16 Load 18(s) + 253: 252 SampledImage 250 251 + 257: 254 Load 256(utex2DMS) + 258: 16 Load 18(s) + 260: 259 SampledImage 257 258 + 264: 261 Load 263(tex2DMSArray) + 265: 16 Load 18(s) + 267: 266 SampledImage 264 265 + 271: 268 Load 270(itex2DMSArray) + 272: 16 Load 18(s) + 274: 273 SampledImage 271 272 + 278: 275 Load 277(utex2DMSArray) + 279: 16 Load 18(s) + 281: 280 SampledImage 278 279 + 285: 282 Load 284(tex1D) + 286: 16 Load 18(s) + 288: 287 SampledImage 285 286 + 289: 282 Load 284(tex1D) + 290: 16 Load 77(sShadow) + 293: 292 SampledImage 289 290 + 295: 26 Load 294(tex3D) + 296: 16 Load 18(s) + 297: 45 SampledImage 295 296 + 298: 12 Load 58(tex2D) + 299: 16 Load 77(sShadow) + 302: 301 SampledImage 298 299 + 306: 303 Load 305(tex2DRect) + 307: 16 Load 18(s) + 309: 308 SampledImage 306 307 + 310: 303 Load 305(tex2DRect) + 311: 16 Load 77(sShadow) + 314: 313 SampledImage 310 311 + 315: 96 Load 98(tex1DArray) + 316: 16 Load 18(s) + 318: 317 SampledImage 315 316 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.set.vert.out b/deps/glslang/glslang/Test/baseResults/spv.set.vert.out new file mode 100644 index 0000000000..16d771fce6 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.set.vert.out @@ -0,0 +1,45 @@ +spv.set.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 + Source GLSL 450 + Name 4 "main" + Name 9 "color" + Name 10 "setBuf" + MemberName 10(setBuf) 0 "color" + Name 12 "setBufInst" + Name 21 "samp2D" + MemberDecorate 10(setBuf) 0 Offset 0 + Decorate 10(setBuf) BufferBlock + Decorate 12(setBufInst) DescriptorSet 0 + Decorate 12(setBufInst) Binding 8 + Decorate 21(samp2D) DescriptorSet 4 + Decorate 21(samp2D) Binding 7 + 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(setBuf): TypeStruct 7(fvec4) + 11: TypePointer Uniform 10(setBuf) + 12(setBufInst): 11(ptr) Variable Uniform + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: TypePointer Uniform 7(fvec4) + 18: TypeImage 6(float) 2D sampled format:Unknown + 19: TypeSampledImage 18 + 20: TypePointer UniformConstant 19 + 21(samp2D): 20(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 16: 15(ptr) AccessChain 12(setBufInst) 14 + 17: 7(fvec4) Load 16 + Store 9(color) 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out b/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out new file mode 100644 index 0000000000..2f0e5a0b78 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderBallot.comp.out @@ -0,0 +1,373 @@ +spv.shaderBallot.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 298 + + Capability Shader + Capability Int64 + Capability SubgroupBallotKHR + Extension "SPV_KHR_shader_ballot" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32 + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_ARB_gpu_shader_int64" + SourceExtension "GL_ARB_shader_ballot" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubGroupInvocationARB" + Name 12 "gl_SubGroupSizeARB" + Name 19 "relMask" + Name 21 "gl_SubGroupEqMaskARB" + Name 23 "gl_SubGroupGeMaskARB" + Name 26 "gl_SubGroupGtMaskARB" + Name 29 "gl_SubGroupLeMaskARB" + Name 32 "gl_SubGroupLtMaskARB" + Name 52 "Buffers" + MemberName 52(Buffers) 0 "f4" + MemberName 52(Buffers) 1 "i4" + MemberName 52(Buffers) 2 "u4" + Name 55 "data" + Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId + Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize + Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR + Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR + Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR + Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR + Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR + MemberDecorate 52(Buffers) 0 Offset 0 + MemberDecorate 52(Buffers) 1 Offset 16 + MemberDecorate 52(Buffers) 2 Offset 32 + Decorate 52(Buffers) BufferBlock + Decorate 55(data) DescriptorSet 0 + Decorate 55(data) Binding 0 + Decorate 297 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubGroupInvocationARB): 9(ptr) Variable Input +12(gl_SubGroupSizeARB): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeInt 64 0 + 18: TypePointer Function 17(int64_t) + 20: TypePointer Input 17(int64_t) +21(gl_SubGroupEqMaskARB): 20(ptr) Variable Input +23(gl_SubGroupGeMaskARB): 20(ptr) Variable Input +26(gl_SubGroupGtMaskARB): 20(ptr) Variable Input +29(gl_SubGroupLeMaskARB): 20(ptr) Variable Input +32(gl_SubGroupLtMaskARB): 20(ptr) Variable Input + 36: TypeBool + 37: 36(bool) ConstantTrue + 38: TypeVector 6(int) 4 + 42: TypeVector 6(int) 2 + 48: TypeFloat 32 + 49: TypeVector 48(float) 4 + 50: TypeInt 32 1 + 51: TypeVector 50(int) 4 + 52(Buffers): TypeStruct 49(fvec4) 51(ivec4) 38(ivec4) + 53: TypeArray 52(Buffers) 15 + 54: TypePointer Uniform 53 + 55(data): 54(ptr) Variable Uniform + 57: 50(int) Constant 0 + 58: 6(int) Constant 0 + 59: TypePointer Uniform 48(float) + 66: 50(int) Constant 1 + 67: TypeVector 48(float) 2 + 68: TypePointer Uniform 49(fvec4) + 82: 50(int) Constant 2 + 83: TypeVector 48(float) 3 + 99: 50(int) Constant 3 + 114: TypePointer Uniform 50(int) + 121: TypeVector 50(int) 2 + 122: TypePointer Uniform 51(ivec4) + 136: TypeVector 50(int) 3 + 166: TypePointer Uniform 6(int) + 173: TypePointer Uniform 38(ivec4) + 187: TypeVector 6(int) 3 + 295: 6(int) Constant 8 + 296: 6(int) Constant 1 + 297: 187(ivec3) ConstantComposite 295 295 296 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 19(relMask): 18(ptr) Variable Function + 11: 6(int) Load 10(gl_SubGroupInvocationARB) + 13: 6(int) Load 12(gl_SubGroupSizeARB) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 22: 17(int64_t) Load 21(gl_SubGroupEqMaskARB) + 24: 17(int64_t) Load 23(gl_SubGroupGeMaskARB) + 25: 17(int64_t) IAdd 22 24 + 27: 17(int64_t) Load 26(gl_SubGroupGtMaskARB) + 28: 17(int64_t) IAdd 25 27 + 30: 17(int64_t) Load 29(gl_SubGroupLeMaskARB) + 31: 17(int64_t) IAdd 28 30 + 33: 17(int64_t) Load 32(gl_SubGroupLtMaskARB) + 34: 17(int64_t) IAdd 31 33 + Store 19(relMask) 34 + 35: 17(int64_t) Load 19(relMask) + 39: 38(ivec4) SubgroupBallotKHR 37 + 40: 6(int) CompositeExtract 39 0 + 41: 6(int) CompositeExtract 39 1 + 43: 42(ivec2) CompositeConstruct 40 41 + 44: 17(int64_t) Bitcast 43 + 45: 36(bool) IEqual 35 44 + SelectionMerge 47 None + BranchConditional 45 46 216 + 46: Label + 56: 6(int) Load 8(invocation) + 60: 59(ptr) AccessChain 55(data) 57 57 58 + 61: 48(float) Load 60 + 62: 6(int) Load 8(invocation) + 63: 48(float) SubgroupReadInvocationKHR 61 62 + 64: 59(ptr) AccessChain 55(data) 56 57 58 + Store 64 63 + 65: 6(int) Load 8(invocation) + 69: 68(ptr) AccessChain 55(data) 66 57 + 70: 49(fvec4) Load 69 + 71: 67(fvec2) VectorShuffle 70 70 0 1 + 72: 6(int) Load 8(invocation) + 73: 48(float) CompositeExtract 71 0 + 74: 48(float) SubgroupReadInvocationKHR 73 72 + 75: 48(float) CompositeExtract 71 1 + 76: 48(float) SubgroupReadInvocationKHR 75 72 + 77: 67(fvec2) CompositeConstruct 74 76 + 78: 68(ptr) AccessChain 55(data) 65 57 + 79: 49(fvec4) Load 78 + 80: 49(fvec4) VectorShuffle 79 77 4 5 2 3 + Store 78 80 + 81: 6(int) Load 8(invocation) + 84: 68(ptr) AccessChain 55(data) 82 57 + 85: 49(fvec4) Load 84 + 86: 83(fvec3) VectorShuffle 85 85 0 1 2 + 87: 6(int) Load 8(invocation) + 88: 48(float) CompositeExtract 86 0 + 89: 48(float) SubgroupReadInvocationKHR 88 87 + 90: 48(float) CompositeExtract 86 1 + 91: 48(float) SubgroupReadInvocationKHR 90 87 + 92: 48(float) CompositeExtract 86 2 + 93: 48(float) SubgroupReadInvocationKHR 92 87 + 94: 83(fvec3) CompositeConstruct 89 91 93 + 95: 68(ptr) AccessChain 55(data) 81 57 + 96: 49(fvec4) Load 95 + 97: 49(fvec4) VectorShuffle 96 94 4 5 6 3 + Store 95 97 + 98: 6(int) Load 8(invocation) + 100: 68(ptr) AccessChain 55(data) 99 57 + 101: 49(fvec4) Load 100 + 102: 6(int) Load 8(invocation) + 103: 48(float) CompositeExtract 101 0 + 104: 48(float) SubgroupReadInvocationKHR 103 102 + 105: 48(float) CompositeExtract 101 1 + 106: 48(float) SubgroupReadInvocationKHR 105 102 + 107: 48(float) CompositeExtract 101 2 + 108: 48(float) SubgroupReadInvocationKHR 107 102 + 109: 48(float) CompositeExtract 101 3 + 110: 48(float) SubgroupReadInvocationKHR 109 102 + 111: 49(fvec4) CompositeConstruct 104 106 108 110 + 112: 68(ptr) AccessChain 55(data) 98 57 + Store 112 111 + 113: 6(int) Load 8(invocation) + 115: 114(ptr) AccessChain 55(data) 57 66 58 + 116: 50(int) Load 115 + 117: 6(int) Load 8(invocation) + 118: 50(int) SubgroupReadInvocationKHR 116 117 + 119: 114(ptr) AccessChain 55(data) 113 66 58 + Store 119 118 + 120: 6(int) Load 8(invocation) + 123: 122(ptr) AccessChain 55(data) 66 66 + 124: 51(ivec4) Load 123 + 125: 121(ivec2) VectorShuffle 124 124 0 1 + 126: 6(int) Load 8(invocation) + 127: 50(int) CompositeExtract 125 0 + 128: 50(int) SubgroupReadInvocationKHR 127 126 + 129: 50(int) CompositeExtract 125 1 + 130: 50(int) SubgroupReadInvocationKHR 129 126 + 131: 121(ivec2) CompositeConstruct 128 130 + 132: 122(ptr) AccessChain 55(data) 120 66 + 133: 51(ivec4) Load 132 + 134: 51(ivec4) VectorShuffle 133 131 4 5 2 3 + Store 132 134 + 135: 6(int) Load 8(invocation) + 137: 122(ptr) AccessChain 55(data) 82 66 + 138: 51(ivec4) Load 137 + 139: 136(ivec3) VectorShuffle 138 138 0 1 2 + 140: 6(int) Load 8(invocation) + 141: 50(int) CompositeExtract 139 0 + 142: 50(int) SubgroupReadInvocationKHR 141 140 + 143: 50(int) CompositeExtract 139 1 + 144: 50(int) SubgroupReadInvocationKHR 143 140 + 145: 50(int) CompositeExtract 139 2 + 146: 50(int) SubgroupReadInvocationKHR 145 140 + 147: 136(ivec3) CompositeConstruct 142 144 146 + 148: 122(ptr) AccessChain 55(data) 135 66 + 149: 51(ivec4) Load 148 + 150: 51(ivec4) VectorShuffle 149 147 4 5 6 3 + Store 148 150 + 151: 6(int) Load 8(invocation) + 152: 122(ptr) AccessChain 55(data) 99 66 + 153: 51(ivec4) Load 152 + 154: 6(int) Load 8(invocation) + 155: 50(int) CompositeExtract 153 0 + 156: 50(int) SubgroupReadInvocationKHR 155 154 + 157: 50(int) CompositeExtract 153 1 + 158: 50(int) SubgroupReadInvocationKHR 157 154 + 159: 50(int) CompositeExtract 153 2 + 160: 50(int) SubgroupReadInvocationKHR 159 154 + 161: 50(int) CompositeExtract 153 3 + 162: 50(int) SubgroupReadInvocationKHR 161 154 + 163: 51(ivec4) CompositeConstruct 156 158 160 162 + 164: 122(ptr) AccessChain 55(data) 151 66 + Store 164 163 + 165: 6(int) Load 8(invocation) + 167: 166(ptr) AccessChain 55(data) 57 82 58 + 168: 6(int) Load 167 + 169: 6(int) Load 8(invocation) + 170: 6(int) SubgroupReadInvocationKHR 168 169 + 171: 166(ptr) AccessChain 55(data) 165 82 58 + Store 171 170 + 172: 6(int) Load 8(invocation) + 174: 173(ptr) AccessChain 55(data) 66 82 + 175: 38(ivec4) Load 174 + 176: 42(ivec2) VectorShuffle 175 175 0 1 + 177: 6(int) Load 8(invocation) + 178: 6(int) CompositeExtract 176 0 + 179: 6(int) SubgroupReadInvocationKHR 178 177 + 180: 6(int) CompositeExtract 176 1 + 181: 6(int) SubgroupReadInvocationKHR 180 177 + 182: 42(ivec2) CompositeConstruct 179 181 + 183: 173(ptr) AccessChain 55(data) 172 82 + 184: 38(ivec4) Load 183 + 185: 38(ivec4) VectorShuffle 184 182 4 5 2 3 + Store 183 185 + 186: 6(int) Load 8(invocation) + 188: 173(ptr) AccessChain 55(data) 82 82 + 189: 38(ivec4) Load 188 + 190: 187(ivec3) VectorShuffle 189 189 0 1 2 + 191: 6(int) Load 8(invocation) + 192: 6(int) CompositeExtract 190 0 + 193: 6(int) SubgroupReadInvocationKHR 192 191 + 194: 6(int) CompositeExtract 190 1 + 195: 6(int) SubgroupReadInvocationKHR 194 191 + 196: 6(int) CompositeExtract 190 2 + 197: 6(int) SubgroupReadInvocationKHR 196 191 + 198: 187(ivec3) CompositeConstruct 193 195 197 + 199: 173(ptr) AccessChain 55(data) 186 82 + 200: 38(ivec4) Load 199 + 201: 38(ivec4) VectorShuffle 200 198 4 5 6 3 + Store 199 201 + 202: 6(int) Load 8(invocation) + 203: 173(ptr) AccessChain 55(data) 99 82 + 204: 38(ivec4) Load 203 + 205: 6(int) Load 8(invocation) + 206: 6(int) CompositeExtract 204 0 + 207: 6(int) SubgroupReadInvocationKHR 206 205 + 208: 6(int) CompositeExtract 204 1 + 209: 6(int) SubgroupReadInvocationKHR 208 205 + 210: 6(int) CompositeExtract 204 2 + 211: 6(int) SubgroupReadInvocationKHR 210 205 + 212: 6(int) CompositeExtract 204 3 + 213: 6(int) SubgroupReadInvocationKHR 212 205 + 214: 38(ivec4) CompositeConstruct 207 209 211 213 + 215: 173(ptr) AccessChain 55(data) 202 82 + Store 215 214 + Branch 47 + 216: Label + 217: 6(int) Load 8(invocation) + 218: 59(ptr) AccessChain 55(data) 57 57 58 + 219: 48(float) Load 218 + 220: 48(float) SubgroupFirstInvocationKHR 219 + 221: 59(ptr) AccessChain 55(data) 217 57 58 + Store 221 220 + 222: 6(int) Load 8(invocation) + 223: 68(ptr) AccessChain 55(data) 66 57 + 224: 49(fvec4) Load 223 + 225: 67(fvec2) VectorShuffle 224 224 0 1 + 226: 67(fvec2) SubgroupFirstInvocationKHR 225 + 227: 68(ptr) AccessChain 55(data) 222 57 + 228: 49(fvec4) Load 227 + 229: 49(fvec4) VectorShuffle 228 226 4 5 2 3 + Store 227 229 + 230: 6(int) Load 8(invocation) + 231: 68(ptr) AccessChain 55(data) 82 57 + 232: 49(fvec4) Load 231 + 233: 83(fvec3) VectorShuffle 232 232 0 1 2 + 234: 83(fvec3) SubgroupFirstInvocationKHR 233 + 235: 68(ptr) AccessChain 55(data) 230 57 + 236: 49(fvec4) Load 235 + 237: 49(fvec4) VectorShuffle 236 234 4 5 6 3 + Store 235 237 + 238: 6(int) Load 8(invocation) + 239: 68(ptr) AccessChain 55(data) 99 57 + 240: 49(fvec4) Load 239 + 241: 49(fvec4) SubgroupFirstInvocationKHR 240 + 242: 68(ptr) AccessChain 55(data) 238 57 + Store 242 241 + 243: 6(int) Load 8(invocation) + 244: 114(ptr) AccessChain 55(data) 57 66 58 + 245: 50(int) Load 244 + 246: 50(int) SubgroupFirstInvocationKHR 245 + 247: 114(ptr) AccessChain 55(data) 243 66 58 + Store 247 246 + 248: 6(int) Load 8(invocation) + 249: 122(ptr) AccessChain 55(data) 66 66 + 250: 51(ivec4) Load 249 + 251: 121(ivec2) VectorShuffle 250 250 0 1 + 252: 121(ivec2) SubgroupFirstInvocationKHR 251 + 253: 122(ptr) AccessChain 55(data) 248 66 + 254: 51(ivec4) Load 253 + 255: 51(ivec4) VectorShuffle 254 252 4 5 2 3 + Store 253 255 + 256: 6(int) Load 8(invocation) + 257: 122(ptr) AccessChain 55(data) 82 66 + 258: 51(ivec4) Load 257 + 259: 136(ivec3) VectorShuffle 258 258 0 1 2 + 260: 136(ivec3) SubgroupFirstInvocationKHR 259 + 261: 122(ptr) AccessChain 55(data) 256 66 + 262: 51(ivec4) Load 261 + 263: 51(ivec4) VectorShuffle 262 260 4 5 6 3 + Store 261 263 + 264: 6(int) Load 8(invocation) + 265: 122(ptr) AccessChain 55(data) 99 66 + 266: 51(ivec4) Load 265 + 267: 51(ivec4) SubgroupFirstInvocationKHR 266 + 268: 122(ptr) AccessChain 55(data) 264 66 + Store 268 267 + 269: 6(int) Load 8(invocation) + 270: 166(ptr) AccessChain 55(data) 57 82 58 + 271: 6(int) Load 270 + 272: 6(int) SubgroupFirstInvocationKHR 271 + 273: 166(ptr) AccessChain 55(data) 269 82 58 + Store 273 272 + 274: 6(int) Load 8(invocation) + 275: 173(ptr) AccessChain 55(data) 66 82 + 276: 38(ivec4) Load 275 + 277: 42(ivec2) VectorShuffle 276 276 0 1 + 278: 42(ivec2) SubgroupFirstInvocationKHR 277 + 279: 173(ptr) AccessChain 55(data) 274 82 + 280: 38(ivec4) Load 279 + 281: 38(ivec4) VectorShuffle 280 278 4 5 2 3 + Store 279 281 + 282: 6(int) Load 8(invocation) + 283: 173(ptr) AccessChain 55(data) 82 82 + 284: 38(ivec4) Load 283 + 285: 187(ivec3) VectorShuffle 284 284 0 1 2 + 286: 187(ivec3) SubgroupFirstInvocationKHR 285 + 287: 173(ptr) AccessChain 55(data) 282 82 + 288: 38(ivec4) Load 287 + 289: 38(ivec4) VectorShuffle 288 286 4 5 6 3 + Store 287 289 + 290: 6(int) Load 8(invocation) + 291: 173(ptr) AccessChain 55(data) 99 82 + 292: 38(ivec4) Load 291 + 293: 38(ivec4) SubgroupFirstInvocationKHR 292 + 294: 173(ptr) AccessChain 55(data) 290 82 + Store 294 293 + Branch 47 + 47: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out b/deps/glslang/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out new file mode 100644 index 0000000000..df70095c1f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out @@ -0,0 +1,1555 @@ +spv.shaderBallotAMD.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 1343 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Groups + Capability Int16 + Capability StorageUniformBufferBlock16 + Extension "SPV_AMD_gpu_shader_half_float" + Extension "SPV_AMD_gpu_shader_int16" + Extension "SPV_AMD_shader_ballot" + Extension "SPV_KHR_16bit_storage" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_AMD_gpu_shader_half_float" + SourceExtension "GL_AMD_gpu_shader_int16" + SourceExtension "GL_AMD_shader_ballot" + SourceExtension "GL_ARB_gpu_shader_int64" + Name 4 "main" + Name 21 "Buffers" + MemberName 21(Buffers) 0 "i" + MemberName 21(Buffers) 1 "uv" + MemberName 21(Buffers) 2 "fv" + MemberName 21(Buffers) 3 "dv" + MemberName 21(Buffers) 4 "i64" + MemberName 21(Buffers) 5 "u64v" + MemberName 21(Buffers) 6 "f16v" + MemberName 21(Buffers) 7 "i16v" + MemberName 21(Buffers) 8 "u16" + Name 23 "" + MemberDecorate 21(Buffers) 0 Offset 0 + MemberDecorate 21(Buffers) 1 Offset 8 + MemberDecorate 21(Buffers) 2 Offset 16 + MemberDecorate 21(Buffers) 3 Offset 32 + MemberDecorate 21(Buffers) 4 Offset 64 + MemberDecorate 21(Buffers) 5 Offset 80 + MemberDecorate 21(Buffers) 6 Offset 96 + MemberDecorate 21(Buffers) 7 Offset 104 + MemberDecorate 21(Buffers) 8 Offset 112 + Decorate 21(Buffers) BufferBlock + Decorate 23 DescriptorSet 0 + Decorate 23 Binding 0 + Decorate 1342 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: TypeVector 7(int) 2 + 9: TypeFloat 32 + 10: TypeVector 9(float) 3 + 11: TypeFloat 64 + 12: TypeVector 11(float64_t) 4 + 13: TypeInt 64 1 + 14: TypeInt 64 0 + 15: TypeVector 14(int64_t) 2 + 16: TypeFloat 16 + 17: TypeVector 16(float16_t) 3 + 18: TypeInt 16 1 + 19: TypeVector 18(int16_t) 4 + 20: TypeInt 16 0 + 21(Buffers): TypeStruct 6(int) 8(ivec2) 10(fvec3) 12(f64vec4) 13(int64_t) 15(i64vec2) 17(f16vec3) 19(i16vec4) 20(int16_t) + 22: TypePointer Uniform 21(Buffers) + 23: 22(ptr) Variable Uniform + 24: 6(int) Constant 0 + 25: TypePointer Uniform 6(int) + 28: 7(int) Constant 3 + 31: 6(int) Constant 1 + 32: TypePointer Uniform 8(ivec2) + 41: 6(int) Constant 2 + 42: TypePointer Uniform 10(fvec3) + 53: 6(int) Constant 3 + 54: TypePointer Uniform 12(f64vec4) + 67: 6(int) Constant 4 + 68: TypePointer Uniform 13(int64_t) + 73: 6(int) Constant 5 + 74: TypePointer Uniform 15(i64vec2) + 83: 6(int) Constant 6 + 84: TypePointer Uniform 17(f16vec3) + 95: 6(int) Constant 7 + 96: TypePointer Uniform 19(i16vec4) + 109: 6(int) Constant 8 + 110: TypePointer Uniform 20(int16_t) + 1339: TypeVector 7(int) 3 + 1340: 7(int) Constant 8 + 1341: 7(int) Constant 1 + 1342: 1339(ivec3) ConstantComposite 1340 1340 1341 + 4(main): 2 Function None 3 + 5: Label + 26: 25(ptr) AccessChain 23 24 + 27: 6(int) Load 26 + 29: 6(int) GroupSMin 28 Reduce 27 + 30: 25(ptr) AccessChain 23 24 + Store 30 29 + 33: 32(ptr) AccessChain 23 31 + 34: 8(ivec2) Load 33 + 35: 7(int) CompositeExtract 34 0 + 36: 7(int) GroupUMin 28 Reduce 35 + 37: 7(int) CompositeExtract 34 1 + 38: 7(int) GroupUMin 28 Reduce 37 + 39: 8(ivec2) CompositeConstruct 36 38 + 40: 32(ptr) AccessChain 23 31 + Store 40 39 + 43: 42(ptr) AccessChain 23 41 + 44: 10(fvec3) Load 43 + 45: 9(float) CompositeExtract 44 0 + 46: 9(float) GroupFMin 28 Reduce 45 + 47: 9(float) CompositeExtract 44 1 + 48: 9(float) GroupFMin 28 Reduce 47 + 49: 9(float) CompositeExtract 44 2 + 50: 9(float) GroupFMin 28 Reduce 49 + 51: 10(fvec3) CompositeConstruct 46 48 50 + 52: 42(ptr) AccessChain 23 41 + Store 52 51 + 55: 54(ptr) AccessChain 23 53 + 56: 12(f64vec4) Load 55 + 57:11(float64_t) CompositeExtract 56 0 + 58:11(float64_t) GroupFMin 28 Reduce 57 + 59:11(float64_t) CompositeExtract 56 1 + 60:11(float64_t) GroupFMin 28 Reduce 59 + 61:11(float64_t) CompositeExtract 56 2 + 62:11(float64_t) GroupFMin 28 Reduce 61 + 63:11(float64_t) CompositeExtract 56 3 + 64:11(float64_t) GroupFMin 28 Reduce 63 + 65: 12(f64vec4) CompositeConstruct 58 60 62 64 + 66: 54(ptr) AccessChain 23 53 + Store 66 65 + 69: 68(ptr) AccessChain 23 67 + 70: 13(int64_t) Load 69 + 71: 13(int64_t) GroupSMin 28 Reduce 70 + 72: 68(ptr) AccessChain 23 67 + Store 72 71 + 75: 74(ptr) AccessChain 23 73 + 76: 15(i64vec2) Load 75 + 77: 14(int64_t) CompositeExtract 76 0 + 78: 14(int64_t) GroupUMin 28 Reduce 77 + 79: 14(int64_t) CompositeExtract 76 1 + 80: 14(int64_t) GroupUMin 28 Reduce 79 + 81: 15(i64vec2) CompositeConstruct 78 80 + 82: 74(ptr) AccessChain 23 73 + Store 82 81 + 85: 84(ptr) AccessChain 23 83 + 86: 17(f16vec3) Load 85 + 87:16(float16_t) CompositeExtract 86 0 + 88:16(float16_t) GroupFMin 28 Reduce 87 + 89:16(float16_t) CompositeExtract 86 1 + 90:16(float16_t) GroupFMin 28 Reduce 89 + 91:16(float16_t) CompositeExtract 86 2 + 92:16(float16_t) GroupFMin 28 Reduce 91 + 93: 17(f16vec3) CompositeConstruct 88 90 92 + 94: 84(ptr) AccessChain 23 83 + Store 94 93 + 97: 96(ptr) AccessChain 23 95 + 98: 19(i16vec4) Load 97 + 99: 18(int16_t) CompositeExtract 98 0 + 100: 18(int16_t) GroupSMin 28 Reduce 99 + 101: 18(int16_t) CompositeExtract 98 1 + 102: 18(int16_t) GroupSMin 28 Reduce 101 + 103: 18(int16_t) CompositeExtract 98 2 + 104: 18(int16_t) GroupSMin 28 Reduce 103 + 105: 18(int16_t) CompositeExtract 98 3 + 106: 18(int16_t) GroupSMin 28 Reduce 105 + 107: 19(i16vec4) CompositeConstruct 100 102 104 106 + 108: 96(ptr) AccessChain 23 95 + Store 108 107 + 111: 110(ptr) AccessChain 23 109 + 112: 20(int16_t) Load 111 + 113: 20(int16_t) GroupUMin 28 Reduce 112 + 114: 110(ptr) AccessChain 23 109 + Store 114 113 + 115: 25(ptr) AccessChain 23 24 + 116: 6(int) Load 115 + 117: 6(int) GroupSMax 28 Reduce 116 + 118: 25(ptr) AccessChain 23 24 + Store 118 117 + 119: 32(ptr) AccessChain 23 31 + 120: 8(ivec2) Load 119 + 121: 7(int) CompositeExtract 120 0 + 122: 7(int) GroupUMax 28 Reduce 121 + 123: 7(int) CompositeExtract 120 1 + 124: 7(int) GroupUMax 28 Reduce 123 + 125: 8(ivec2) CompositeConstruct 122 124 + 126: 32(ptr) AccessChain 23 31 + Store 126 125 + 127: 42(ptr) AccessChain 23 41 + 128: 10(fvec3) Load 127 + 129: 9(float) CompositeExtract 128 0 + 130: 9(float) GroupFMax 28 Reduce 129 + 131: 9(float) CompositeExtract 128 1 + 132: 9(float) GroupFMax 28 Reduce 131 + 133: 9(float) CompositeExtract 128 2 + 134: 9(float) GroupFMax 28 Reduce 133 + 135: 10(fvec3) CompositeConstruct 130 132 134 + 136: 42(ptr) AccessChain 23 41 + Store 136 135 + 137: 54(ptr) AccessChain 23 53 + 138: 12(f64vec4) Load 137 + 139:11(float64_t) CompositeExtract 138 0 + 140:11(float64_t) GroupFMax 28 Reduce 139 + 141:11(float64_t) CompositeExtract 138 1 + 142:11(float64_t) GroupFMax 28 Reduce 141 + 143:11(float64_t) CompositeExtract 138 2 + 144:11(float64_t) GroupFMax 28 Reduce 143 + 145:11(float64_t) CompositeExtract 138 3 + 146:11(float64_t) GroupFMax 28 Reduce 145 + 147: 12(f64vec4) CompositeConstruct 140 142 144 146 + 148: 54(ptr) AccessChain 23 53 + Store 148 147 + 149: 68(ptr) AccessChain 23 67 + 150: 13(int64_t) Load 149 + 151: 13(int64_t) GroupSMax 28 Reduce 150 + 152: 68(ptr) AccessChain 23 67 + Store 152 151 + 153: 74(ptr) AccessChain 23 73 + 154: 15(i64vec2) Load 153 + 155: 14(int64_t) CompositeExtract 154 0 + 156: 14(int64_t) GroupUMax 28 Reduce 155 + 157: 14(int64_t) CompositeExtract 154 1 + 158: 14(int64_t) GroupUMax 28 Reduce 157 + 159: 15(i64vec2) CompositeConstruct 156 158 + 160: 74(ptr) AccessChain 23 73 + Store 160 159 + 161: 84(ptr) AccessChain 23 83 + 162: 17(f16vec3) Load 161 + 163:16(float16_t) CompositeExtract 162 0 + 164:16(float16_t) GroupFMax 28 Reduce 163 + 165:16(float16_t) CompositeExtract 162 1 + 166:16(float16_t) GroupFMax 28 Reduce 165 + 167:16(float16_t) CompositeExtract 162 2 + 168:16(float16_t) GroupFMax 28 Reduce 167 + 169: 17(f16vec3) CompositeConstruct 164 166 168 + 170: 84(ptr) AccessChain 23 83 + Store 170 169 + 171: 96(ptr) AccessChain 23 95 + 172: 19(i16vec4) Load 171 + 173: 18(int16_t) CompositeExtract 172 0 + 174: 18(int16_t) GroupSMax 28 Reduce 173 + 175: 18(int16_t) CompositeExtract 172 1 + 176: 18(int16_t) GroupSMax 28 Reduce 175 + 177: 18(int16_t) CompositeExtract 172 2 + 178: 18(int16_t) GroupSMax 28 Reduce 177 + 179: 18(int16_t) CompositeExtract 172 3 + 180: 18(int16_t) GroupSMax 28 Reduce 179 + 181: 19(i16vec4) CompositeConstruct 174 176 178 180 + 182: 96(ptr) AccessChain 23 95 + Store 182 181 + 183: 110(ptr) AccessChain 23 109 + 184: 20(int16_t) Load 183 + 185: 20(int16_t) GroupUMax 28 Reduce 184 + 186: 110(ptr) AccessChain 23 109 + Store 186 185 + 187: 25(ptr) AccessChain 23 24 + 188: 6(int) Load 187 + 189: 6(int) GroupIAdd 28 Reduce 188 + 190: 25(ptr) AccessChain 23 24 + Store 190 189 + 191: 32(ptr) AccessChain 23 31 + 192: 8(ivec2) Load 191 + 193: 7(int) CompositeExtract 192 0 + 194: 7(int) GroupIAdd 28 Reduce 193 + 195: 7(int) CompositeExtract 192 1 + 196: 7(int) GroupIAdd 28 Reduce 195 + 197: 8(ivec2) CompositeConstruct 194 196 + 198: 32(ptr) AccessChain 23 31 + Store 198 197 + 199: 42(ptr) AccessChain 23 41 + 200: 10(fvec3) Load 199 + 201: 9(float) CompositeExtract 200 0 + 202: 9(float) GroupFAdd 28 Reduce 201 + 203: 9(float) CompositeExtract 200 1 + 204: 9(float) GroupFAdd 28 Reduce 203 + 205: 9(float) CompositeExtract 200 2 + 206: 9(float) GroupFAdd 28 Reduce 205 + 207: 10(fvec3) CompositeConstruct 202 204 206 + 208: 42(ptr) AccessChain 23 41 + Store 208 207 + 209: 54(ptr) AccessChain 23 53 + 210: 12(f64vec4) Load 209 + 211:11(float64_t) CompositeExtract 210 0 + 212:11(float64_t) GroupFAdd 28 Reduce 211 + 213:11(float64_t) CompositeExtract 210 1 + 214:11(float64_t) GroupFAdd 28 Reduce 213 + 215:11(float64_t) CompositeExtract 210 2 + 216:11(float64_t) GroupFAdd 28 Reduce 215 + 217:11(float64_t) CompositeExtract 210 3 + 218:11(float64_t) GroupFAdd 28 Reduce 217 + 219: 12(f64vec4) CompositeConstruct 212 214 216 218 + 220: 54(ptr) AccessChain 23 53 + Store 220 219 + 221: 68(ptr) AccessChain 23 67 + 222: 13(int64_t) Load 221 + 223: 13(int64_t) GroupIAdd 28 Reduce 222 + 224: 68(ptr) AccessChain 23 67 + Store 224 223 + 225: 74(ptr) AccessChain 23 73 + 226: 15(i64vec2) Load 225 + 227: 14(int64_t) CompositeExtract 226 0 + 228: 14(int64_t) GroupIAdd 28 Reduce 227 + 229: 14(int64_t) CompositeExtract 226 1 + 230: 14(int64_t) GroupIAdd 28 Reduce 229 + 231: 15(i64vec2) CompositeConstruct 228 230 + 232: 74(ptr) AccessChain 23 73 + Store 232 231 + 233: 84(ptr) AccessChain 23 83 + 234: 17(f16vec3) Load 233 + 235:16(float16_t) CompositeExtract 234 0 + 236:16(float16_t) GroupFAdd 28 Reduce 235 + 237:16(float16_t) CompositeExtract 234 1 + 238:16(float16_t) GroupFAdd 28 Reduce 237 + 239:16(float16_t) CompositeExtract 234 2 + 240:16(float16_t) GroupFAdd 28 Reduce 239 + 241: 17(f16vec3) CompositeConstruct 236 238 240 + 242: 84(ptr) AccessChain 23 83 + Store 242 241 + 243: 96(ptr) AccessChain 23 95 + 244: 19(i16vec4) Load 243 + 245: 18(int16_t) CompositeExtract 244 0 + 246: 18(int16_t) GroupIAdd 28 Reduce 245 + 247: 18(int16_t) CompositeExtract 244 1 + 248: 18(int16_t) GroupIAdd 28 Reduce 247 + 249: 18(int16_t) CompositeExtract 244 2 + 250: 18(int16_t) GroupIAdd 28 Reduce 249 + 251: 18(int16_t) CompositeExtract 244 3 + 252: 18(int16_t) GroupIAdd 28 Reduce 251 + 253: 19(i16vec4) CompositeConstruct 246 248 250 252 + 254: 96(ptr) AccessChain 23 95 + Store 254 253 + 255: 110(ptr) AccessChain 23 109 + 256: 20(int16_t) Load 255 + 257: 20(int16_t) GroupIAdd 28 Reduce 256 + 258: 110(ptr) AccessChain 23 109 + Store 258 257 + 259: 25(ptr) AccessChain 23 24 + 260: 6(int) Load 259 + 261: 6(int) GroupSMinNonUniformAMD 28 Reduce 260 + 262: 25(ptr) AccessChain 23 24 + Store 262 261 + 263: 32(ptr) AccessChain 23 31 + 264: 8(ivec2) Load 263 + 265: 7(int) CompositeExtract 264 0 + 266: 7(int) GroupUMinNonUniformAMD 28 Reduce 265 + 267: 7(int) CompositeExtract 264 1 + 268: 7(int) GroupUMinNonUniformAMD 28 Reduce 267 + 269: 8(ivec2) CompositeConstruct 266 268 + 270: 32(ptr) AccessChain 23 31 + Store 270 269 + 271: 42(ptr) AccessChain 23 41 + 272: 10(fvec3) Load 271 + 273: 9(float) CompositeExtract 272 0 + 274: 9(float) GroupFMinNonUniformAMD 28 Reduce 273 + 275: 9(float) CompositeExtract 272 1 + 276: 9(float) GroupFMinNonUniformAMD 28 Reduce 275 + 277: 9(float) CompositeExtract 272 2 + 278: 9(float) GroupFMinNonUniformAMD 28 Reduce 277 + 279: 10(fvec3) CompositeConstruct 274 276 278 + 280: 42(ptr) AccessChain 23 41 + Store 280 279 + 281: 54(ptr) AccessChain 23 53 + 282: 12(f64vec4) Load 281 + 283:11(float64_t) CompositeExtract 282 0 + 284:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 283 + 285:11(float64_t) CompositeExtract 282 1 + 286:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 285 + 287:11(float64_t) CompositeExtract 282 2 + 288:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 287 + 289:11(float64_t) CompositeExtract 282 3 + 290:11(float64_t) GroupFMinNonUniformAMD 28 Reduce 289 + 291: 12(f64vec4) CompositeConstruct 284 286 288 290 + 292: 54(ptr) AccessChain 23 53 + Store 292 291 + 293: 68(ptr) AccessChain 23 67 + 294: 13(int64_t) Load 293 + 295: 13(int64_t) GroupSMinNonUniformAMD 28 Reduce 294 + 296: 68(ptr) AccessChain 23 67 + Store 296 295 + 297: 74(ptr) AccessChain 23 73 + 298: 15(i64vec2) Load 297 + 299: 14(int64_t) CompositeExtract 298 0 + 300: 14(int64_t) GroupUMinNonUniformAMD 28 Reduce 299 + 301: 14(int64_t) CompositeExtract 298 1 + 302: 14(int64_t) GroupUMinNonUniformAMD 28 Reduce 301 + 303: 15(i64vec2) CompositeConstruct 300 302 + 304: 74(ptr) AccessChain 23 73 + Store 304 303 + 305: 84(ptr) AccessChain 23 83 + 306: 17(f16vec3) Load 305 + 307:16(float16_t) CompositeExtract 306 0 + 308:16(float16_t) GroupFMinNonUniformAMD 28 Reduce 307 + 309:16(float16_t) CompositeExtract 306 1 + 310:16(float16_t) GroupFMinNonUniformAMD 28 Reduce 309 + 311:16(float16_t) CompositeExtract 306 2 + 312:16(float16_t) GroupFMinNonUniformAMD 28 Reduce 311 + 313: 17(f16vec3) CompositeConstruct 308 310 312 + 314: 84(ptr) AccessChain 23 83 + Store 314 313 + 315: 96(ptr) AccessChain 23 95 + 316: 19(i16vec4) Load 315 + 317: 18(int16_t) CompositeExtract 316 0 + 318: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 317 + 319: 18(int16_t) CompositeExtract 316 1 + 320: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 319 + 321: 18(int16_t) CompositeExtract 316 2 + 322: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 321 + 323: 18(int16_t) CompositeExtract 316 3 + 324: 18(int16_t) GroupSMinNonUniformAMD 28 Reduce 323 + 325: 19(i16vec4) CompositeConstruct 318 320 322 324 + 326: 96(ptr) AccessChain 23 95 + Store 326 325 + 327: 110(ptr) AccessChain 23 109 + 328: 20(int16_t) Load 327 + 329: 20(int16_t) GroupUMinNonUniformAMD 28 Reduce 328 + 330: 110(ptr) AccessChain 23 109 + Store 330 329 + 331: 25(ptr) AccessChain 23 24 + 332: 6(int) Load 331 + 333: 6(int) GroupSMaxNonUniformAMD 28 Reduce 332 + 334: 25(ptr) AccessChain 23 24 + Store 334 333 + 335: 32(ptr) AccessChain 23 31 + 336: 8(ivec2) Load 335 + 337: 7(int) CompositeExtract 336 0 + 338: 7(int) GroupUMaxNonUniformAMD 28 Reduce 337 + 339: 7(int) CompositeExtract 336 1 + 340: 7(int) GroupUMaxNonUniformAMD 28 Reduce 339 + 341: 8(ivec2) CompositeConstruct 338 340 + 342: 32(ptr) AccessChain 23 31 + Store 342 341 + 343: 42(ptr) AccessChain 23 41 + 344: 10(fvec3) Load 343 + 345: 9(float) CompositeExtract 344 0 + 346: 9(float) GroupFMaxNonUniformAMD 28 Reduce 345 + 347: 9(float) CompositeExtract 344 1 + 348: 9(float) GroupFMaxNonUniformAMD 28 Reduce 347 + 349: 9(float) CompositeExtract 344 2 + 350: 9(float) GroupFMaxNonUniformAMD 28 Reduce 349 + 351: 10(fvec3) CompositeConstruct 346 348 350 + 352: 42(ptr) AccessChain 23 41 + Store 352 351 + 353: 54(ptr) AccessChain 23 53 + 354: 12(f64vec4) Load 353 + 355:11(float64_t) CompositeExtract 354 0 + 356:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 355 + 357:11(float64_t) CompositeExtract 354 1 + 358:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 357 + 359:11(float64_t) CompositeExtract 354 2 + 360:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 359 + 361:11(float64_t) CompositeExtract 354 3 + 362:11(float64_t) GroupFMaxNonUniformAMD 28 Reduce 361 + 363: 12(f64vec4) CompositeConstruct 356 358 360 362 + 364: 54(ptr) AccessChain 23 53 + Store 364 363 + 365: 68(ptr) AccessChain 23 67 + 366: 13(int64_t) Load 365 + 367: 13(int64_t) GroupSMaxNonUniformAMD 28 Reduce 366 + 368: 68(ptr) AccessChain 23 67 + Store 368 367 + 369: 74(ptr) AccessChain 23 73 + 370: 15(i64vec2) Load 369 + 371: 14(int64_t) CompositeExtract 370 0 + 372: 14(int64_t) GroupUMaxNonUniformAMD 28 Reduce 371 + 373: 14(int64_t) CompositeExtract 370 1 + 374: 14(int64_t) GroupUMaxNonUniformAMD 28 Reduce 373 + 375: 15(i64vec2) CompositeConstruct 372 374 + 376: 74(ptr) AccessChain 23 73 + Store 376 375 + 377: 84(ptr) AccessChain 23 83 + 378: 17(f16vec3) Load 377 + 379:16(float16_t) CompositeExtract 378 0 + 380:16(float16_t) GroupFMaxNonUniformAMD 28 Reduce 379 + 381:16(float16_t) CompositeExtract 378 1 + 382:16(float16_t) GroupFMaxNonUniformAMD 28 Reduce 381 + 383:16(float16_t) CompositeExtract 378 2 + 384:16(float16_t) GroupFMaxNonUniformAMD 28 Reduce 383 + 385: 17(f16vec3) CompositeConstruct 380 382 384 + 386: 84(ptr) AccessChain 23 83 + Store 386 385 + 387: 96(ptr) AccessChain 23 95 + 388: 19(i16vec4) Load 387 + 389: 18(int16_t) CompositeExtract 388 0 + 390: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 389 + 391: 18(int16_t) CompositeExtract 388 1 + 392: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 391 + 393: 18(int16_t) CompositeExtract 388 2 + 394: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 393 + 395: 18(int16_t) CompositeExtract 388 3 + 396: 18(int16_t) GroupSMaxNonUniformAMD 28 Reduce 395 + 397: 19(i16vec4) CompositeConstruct 390 392 394 396 + 398: 96(ptr) AccessChain 23 95 + Store 398 397 + 399: 110(ptr) AccessChain 23 109 + 400: 20(int16_t) Load 399 + 401: 20(int16_t) GroupUMaxNonUniformAMD 28 Reduce 400 + 402: 110(ptr) AccessChain 23 109 + Store 402 401 + 403: 25(ptr) AccessChain 23 24 + 404: 6(int) Load 403 + 405: 6(int) GroupIAddNonUniformAMD 28 Reduce 404 + 406: 25(ptr) AccessChain 23 24 + Store 406 405 + 407: 32(ptr) AccessChain 23 31 + 408: 8(ivec2) Load 407 + 409: 7(int) CompositeExtract 408 0 + 410: 7(int) GroupIAddNonUniformAMD 28 Reduce 409 + 411: 7(int) CompositeExtract 408 1 + 412: 7(int) GroupIAddNonUniformAMD 28 Reduce 411 + 413: 8(ivec2) CompositeConstruct 410 412 + 414: 32(ptr) AccessChain 23 31 + Store 414 413 + 415: 42(ptr) AccessChain 23 41 + 416: 10(fvec3) Load 415 + 417: 9(float) CompositeExtract 416 0 + 418: 9(float) GroupFAddNonUniformAMD 28 Reduce 417 + 419: 9(float) CompositeExtract 416 1 + 420: 9(float) GroupFAddNonUniformAMD 28 Reduce 419 + 421: 9(float) CompositeExtract 416 2 + 422: 9(float) GroupFAddNonUniformAMD 28 Reduce 421 + 423: 10(fvec3) CompositeConstruct 418 420 422 + 424: 42(ptr) AccessChain 23 41 + Store 424 423 + 425: 54(ptr) AccessChain 23 53 + 426: 12(f64vec4) Load 425 + 427:11(float64_t) CompositeExtract 426 0 + 428:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 427 + 429:11(float64_t) CompositeExtract 426 1 + 430:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 429 + 431:11(float64_t) CompositeExtract 426 2 + 432:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 431 + 433:11(float64_t) CompositeExtract 426 3 + 434:11(float64_t) GroupFAddNonUniformAMD 28 Reduce 433 + 435: 12(f64vec4) CompositeConstruct 428 430 432 434 + 436: 54(ptr) AccessChain 23 53 + Store 436 435 + 437: 68(ptr) AccessChain 23 67 + 438: 13(int64_t) Load 437 + 439: 13(int64_t) GroupIAddNonUniformAMD 28 Reduce 438 + 440: 68(ptr) AccessChain 23 67 + Store 440 439 + 441: 74(ptr) AccessChain 23 73 + 442: 15(i64vec2) Load 441 + 443: 14(int64_t) CompositeExtract 442 0 + 444: 14(int64_t) GroupIAddNonUniformAMD 28 Reduce 443 + 445: 14(int64_t) CompositeExtract 442 1 + 446: 14(int64_t) GroupIAddNonUniformAMD 28 Reduce 445 + 447: 15(i64vec2) CompositeConstruct 444 446 + 448: 74(ptr) AccessChain 23 73 + Store 448 447 + 449: 84(ptr) AccessChain 23 83 + 450: 17(f16vec3) Load 449 + 451:16(float16_t) CompositeExtract 450 0 + 452:16(float16_t) GroupFAddNonUniformAMD 28 Reduce 451 + 453:16(float16_t) CompositeExtract 450 1 + 454:16(float16_t) GroupFAddNonUniformAMD 28 Reduce 453 + 455:16(float16_t) CompositeExtract 450 2 + 456:16(float16_t) GroupFAddNonUniformAMD 28 Reduce 455 + 457: 17(f16vec3) CompositeConstruct 452 454 456 + 458: 84(ptr) AccessChain 23 83 + Store 458 457 + 459: 96(ptr) AccessChain 23 95 + 460: 19(i16vec4) Load 459 + 461: 18(int16_t) CompositeExtract 460 0 + 462: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 461 + 463: 18(int16_t) CompositeExtract 460 1 + 464: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 463 + 465: 18(int16_t) CompositeExtract 460 2 + 466: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 465 + 467: 18(int16_t) CompositeExtract 460 3 + 468: 18(int16_t) GroupIAddNonUniformAMD 28 Reduce 467 + 469: 19(i16vec4) CompositeConstruct 462 464 466 468 + 470: 96(ptr) AccessChain 23 95 + Store 470 469 + 471: 110(ptr) AccessChain 23 109 + 472: 20(int16_t) Load 471 + 473: 20(int16_t) GroupIAddNonUniformAMD 28 Reduce 472 + 474: 110(ptr) AccessChain 23 109 + Store 474 473 + 475: 25(ptr) AccessChain 23 24 + 476: 6(int) Load 475 + 477: 6(int) GroupSMin 28 InclusiveScan 476 + 478: 25(ptr) AccessChain 23 24 + Store 478 477 + 479: 32(ptr) AccessChain 23 31 + 480: 8(ivec2) Load 479 + 481: 7(int) CompositeExtract 480 0 + 482: 7(int) GroupUMin 28 InclusiveScan 481 + 483: 7(int) CompositeExtract 480 1 + 484: 7(int) GroupUMin 28 InclusiveScan 483 + 485: 8(ivec2) CompositeConstruct 482 484 + 486: 32(ptr) AccessChain 23 31 + Store 486 485 + 487: 42(ptr) AccessChain 23 41 + 488: 10(fvec3) Load 487 + 489: 9(float) CompositeExtract 488 0 + 490: 9(float) GroupFMin 28 InclusiveScan 489 + 491: 9(float) CompositeExtract 488 1 + 492: 9(float) GroupFMin 28 InclusiveScan 491 + 493: 9(float) CompositeExtract 488 2 + 494: 9(float) GroupFMin 28 InclusiveScan 493 + 495: 10(fvec3) CompositeConstruct 490 492 494 + 496: 42(ptr) AccessChain 23 41 + Store 496 495 + 497: 54(ptr) AccessChain 23 53 + 498: 12(f64vec4) Load 497 + 499:11(float64_t) CompositeExtract 498 0 + 500:11(float64_t) GroupFMin 28 InclusiveScan 499 + 501:11(float64_t) CompositeExtract 498 1 + 502:11(float64_t) GroupFMin 28 InclusiveScan 501 + 503:11(float64_t) CompositeExtract 498 2 + 504:11(float64_t) GroupFMin 28 InclusiveScan 503 + 505:11(float64_t) CompositeExtract 498 3 + 506:11(float64_t) GroupFMin 28 InclusiveScan 505 + 507: 12(f64vec4) CompositeConstruct 500 502 504 506 + 508: 54(ptr) AccessChain 23 53 + Store 508 507 + 509: 68(ptr) AccessChain 23 67 + 510: 13(int64_t) Load 509 + 511: 13(int64_t) GroupSMin 28 InclusiveScan 510 + 512: 68(ptr) AccessChain 23 67 + Store 512 511 + 513: 74(ptr) AccessChain 23 73 + 514: 15(i64vec2) Load 513 + 515: 14(int64_t) CompositeExtract 514 0 + 516: 14(int64_t) GroupUMin 28 InclusiveScan 515 + 517: 14(int64_t) CompositeExtract 514 1 + 518: 14(int64_t) GroupUMin 28 InclusiveScan 517 + 519: 15(i64vec2) CompositeConstruct 516 518 + 520: 74(ptr) AccessChain 23 73 + Store 520 519 + 521: 84(ptr) AccessChain 23 83 + 522: 17(f16vec3) Load 521 + 523:16(float16_t) CompositeExtract 522 0 + 524:16(float16_t) GroupFMin 28 InclusiveScan 523 + 525:16(float16_t) CompositeExtract 522 1 + 526:16(float16_t) GroupFMin 28 InclusiveScan 525 + 527:16(float16_t) CompositeExtract 522 2 + 528:16(float16_t) GroupFMin 28 InclusiveScan 527 + 529: 17(f16vec3) CompositeConstruct 524 526 528 + 530: 84(ptr) AccessChain 23 83 + Store 530 529 + 531: 96(ptr) AccessChain 23 95 + 532: 19(i16vec4) Load 531 + 533: 18(int16_t) CompositeExtract 532 0 + 534: 18(int16_t) GroupSMin 28 InclusiveScan 533 + 535: 18(int16_t) CompositeExtract 532 1 + 536: 18(int16_t) GroupSMin 28 InclusiveScan 535 + 537: 18(int16_t) CompositeExtract 532 2 + 538: 18(int16_t) GroupSMin 28 InclusiveScan 537 + 539: 18(int16_t) CompositeExtract 532 3 + 540: 18(int16_t) GroupSMin 28 InclusiveScan 539 + 541: 19(i16vec4) CompositeConstruct 534 536 538 540 + 542: 96(ptr) AccessChain 23 95 + Store 542 541 + 543: 110(ptr) AccessChain 23 109 + 544: 20(int16_t) Load 543 + 545: 20(int16_t) GroupUMin 28 InclusiveScan 544 + 546: 110(ptr) AccessChain 23 109 + Store 546 545 + 547: 25(ptr) AccessChain 23 24 + 548: 6(int) Load 547 + 549: 6(int) GroupSMax 28 InclusiveScan 548 + 550: 25(ptr) AccessChain 23 24 + Store 550 549 + 551: 32(ptr) AccessChain 23 31 + 552: 8(ivec2) Load 551 + 553: 7(int) CompositeExtract 552 0 + 554: 7(int) GroupUMax 28 InclusiveScan 553 + 555: 7(int) CompositeExtract 552 1 + 556: 7(int) GroupUMax 28 InclusiveScan 555 + 557: 8(ivec2) CompositeConstruct 554 556 + 558: 32(ptr) AccessChain 23 31 + Store 558 557 + 559: 42(ptr) AccessChain 23 41 + 560: 10(fvec3) Load 559 + 561: 9(float) CompositeExtract 560 0 + 562: 9(float) GroupFMax 28 InclusiveScan 561 + 563: 9(float) CompositeExtract 560 1 + 564: 9(float) GroupFMax 28 InclusiveScan 563 + 565: 9(float) CompositeExtract 560 2 + 566: 9(float) GroupFMax 28 InclusiveScan 565 + 567: 10(fvec3) CompositeConstruct 562 564 566 + 568: 42(ptr) AccessChain 23 41 + Store 568 567 + 569: 54(ptr) AccessChain 23 53 + 570: 12(f64vec4) Load 569 + 571:11(float64_t) CompositeExtract 570 0 + 572:11(float64_t) GroupFMax 28 InclusiveScan 571 + 573:11(float64_t) CompositeExtract 570 1 + 574:11(float64_t) GroupFMax 28 InclusiveScan 573 + 575:11(float64_t) CompositeExtract 570 2 + 576:11(float64_t) GroupFMax 28 InclusiveScan 575 + 577:11(float64_t) CompositeExtract 570 3 + 578:11(float64_t) GroupFMax 28 InclusiveScan 577 + 579: 12(f64vec4) CompositeConstruct 572 574 576 578 + 580: 54(ptr) AccessChain 23 53 + Store 580 579 + 581: 68(ptr) AccessChain 23 67 + 582: 13(int64_t) Load 581 + 583: 13(int64_t) GroupSMax 28 InclusiveScan 582 + 584: 68(ptr) AccessChain 23 67 + Store 584 583 + 585: 74(ptr) AccessChain 23 73 + 586: 15(i64vec2) Load 585 + 587: 14(int64_t) CompositeExtract 586 0 + 588: 14(int64_t) GroupUMax 28 InclusiveScan 587 + 589: 14(int64_t) CompositeExtract 586 1 + 590: 14(int64_t) GroupUMax 28 InclusiveScan 589 + 591: 15(i64vec2) CompositeConstruct 588 590 + 592: 74(ptr) AccessChain 23 73 + Store 592 591 + 593: 84(ptr) AccessChain 23 83 + 594: 17(f16vec3) Load 593 + 595:16(float16_t) CompositeExtract 594 0 + 596:16(float16_t) GroupFMax 28 InclusiveScan 595 + 597:16(float16_t) CompositeExtract 594 1 + 598:16(float16_t) GroupFMax 28 InclusiveScan 597 + 599:16(float16_t) CompositeExtract 594 2 + 600:16(float16_t) GroupFMax 28 InclusiveScan 599 + 601: 17(f16vec3) CompositeConstruct 596 598 600 + 602: 84(ptr) AccessChain 23 83 + Store 602 601 + 603: 96(ptr) AccessChain 23 95 + 604: 19(i16vec4) Load 603 + 605: 18(int16_t) CompositeExtract 604 0 + 606: 18(int16_t) GroupSMax 28 InclusiveScan 605 + 607: 18(int16_t) CompositeExtract 604 1 + 608: 18(int16_t) GroupSMax 28 InclusiveScan 607 + 609: 18(int16_t) CompositeExtract 604 2 + 610: 18(int16_t) GroupSMax 28 InclusiveScan 609 + 611: 18(int16_t) CompositeExtract 604 3 + 612: 18(int16_t) GroupSMax 28 InclusiveScan 611 + 613: 19(i16vec4) CompositeConstruct 606 608 610 612 + 614: 96(ptr) AccessChain 23 95 + Store 614 613 + 615: 110(ptr) AccessChain 23 109 + 616: 20(int16_t) Load 615 + 617: 20(int16_t) GroupUMax 28 InclusiveScan 616 + 618: 110(ptr) AccessChain 23 109 + Store 618 617 + 619: 25(ptr) AccessChain 23 24 + 620: 6(int) Load 619 + 621: 6(int) GroupIAdd 28 InclusiveScan 620 + 622: 25(ptr) AccessChain 23 24 + Store 622 621 + 623: 32(ptr) AccessChain 23 31 + 624: 8(ivec2) Load 623 + 625: 7(int) CompositeExtract 624 0 + 626: 7(int) GroupIAdd 28 InclusiveScan 625 + 627: 7(int) CompositeExtract 624 1 + 628: 7(int) GroupIAdd 28 InclusiveScan 627 + 629: 8(ivec2) CompositeConstruct 626 628 + 630: 32(ptr) AccessChain 23 31 + Store 630 629 + 631: 42(ptr) AccessChain 23 41 + 632: 10(fvec3) Load 631 + 633: 9(float) CompositeExtract 632 0 + 634: 9(float) GroupFAdd 28 InclusiveScan 633 + 635: 9(float) CompositeExtract 632 1 + 636: 9(float) GroupFAdd 28 InclusiveScan 635 + 637: 9(float) CompositeExtract 632 2 + 638: 9(float) GroupFAdd 28 InclusiveScan 637 + 639: 10(fvec3) CompositeConstruct 634 636 638 + 640: 42(ptr) AccessChain 23 41 + Store 640 639 + 641: 54(ptr) AccessChain 23 53 + 642: 12(f64vec4) Load 641 + 643:11(float64_t) CompositeExtract 642 0 + 644:11(float64_t) GroupFAdd 28 InclusiveScan 643 + 645:11(float64_t) CompositeExtract 642 1 + 646:11(float64_t) GroupFAdd 28 InclusiveScan 645 + 647:11(float64_t) CompositeExtract 642 2 + 648:11(float64_t) GroupFAdd 28 InclusiveScan 647 + 649:11(float64_t) CompositeExtract 642 3 + 650:11(float64_t) GroupFAdd 28 InclusiveScan 649 + 651: 12(f64vec4) CompositeConstruct 644 646 648 650 + 652: 54(ptr) AccessChain 23 53 + Store 652 651 + 653: 68(ptr) AccessChain 23 67 + 654: 13(int64_t) Load 653 + 655: 13(int64_t) GroupIAdd 28 InclusiveScan 654 + 656: 68(ptr) AccessChain 23 67 + Store 656 655 + 657: 74(ptr) AccessChain 23 73 + 658: 15(i64vec2) Load 657 + 659: 14(int64_t) CompositeExtract 658 0 + 660: 14(int64_t) GroupIAdd 28 InclusiveScan 659 + 661: 14(int64_t) CompositeExtract 658 1 + 662: 14(int64_t) GroupIAdd 28 InclusiveScan 661 + 663: 15(i64vec2) CompositeConstruct 660 662 + 664: 74(ptr) AccessChain 23 73 + Store 664 663 + 665: 84(ptr) AccessChain 23 83 + 666: 17(f16vec3) Load 665 + 667:16(float16_t) CompositeExtract 666 0 + 668:16(float16_t) GroupFAdd 28 InclusiveScan 667 + 669:16(float16_t) CompositeExtract 666 1 + 670:16(float16_t) GroupFAdd 28 InclusiveScan 669 + 671:16(float16_t) CompositeExtract 666 2 + 672:16(float16_t) GroupFAdd 28 InclusiveScan 671 + 673: 17(f16vec3) CompositeConstruct 668 670 672 + 674: 84(ptr) AccessChain 23 83 + Store 674 673 + 675: 96(ptr) AccessChain 23 95 + 676: 19(i16vec4) Load 675 + 677: 18(int16_t) CompositeExtract 676 0 + 678: 18(int16_t) GroupIAdd 28 InclusiveScan 677 + 679: 18(int16_t) CompositeExtract 676 1 + 680: 18(int16_t) GroupIAdd 28 InclusiveScan 679 + 681: 18(int16_t) CompositeExtract 676 2 + 682: 18(int16_t) GroupIAdd 28 InclusiveScan 681 + 683: 18(int16_t) CompositeExtract 676 3 + 684: 18(int16_t) GroupIAdd 28 InclusiveScan 683 + 685: 19(i16vec4) CompositeConstruct 678 680 682 684 + 686: 96(ptr) AccessChain 23 95 + Store 686 685 + 687: 110(ptr) AccessChain 23 109 + 688: 20(int16_t) Load 687 + 689: 20(int16_t) GroupIAdd 28 InclusiveScan 688 + 690: 110(ptr) AccessChain 23 109 + Store 690 689 + 691: 25(ptr) AccessChain 23 24 + 692: 6(int) Load 691 + 693: 6(int) GroupSMin 28 ExclusiveScan 692 + 694: 25(ptr) AccessChain 23 24 + Store 694 693 + 695: 32(ptr) AccessChain 23 31 + 696: 8(ivec2) Load 695 + 697: 7(int) CompositeExtract 696 0 + 698: 7(int) GroupUMin 28 ExclusiveScan 697 + 699: 7(int) CompositeExtract 696 1 + 700: 7(int) GroupUMin 28 ExclusiveScan 699 + 701: 8(ivec2) CompositeConstruct 698 700 + 702: 32(ptr) AccessChain 23 31 + Store 702 701 + 703: 42(ptr) AccessChain 23 41 + 704: 10(fvec3) Load 703 + 705: 9(float) CompositeExtract 704 0 + 706: 9(float) GroupFMin 28 ExclusiveScan 705 + 707: 9(float) CompositeExtract 704 1 + 708: 9(float) GroupFMin 28 ExclusiveScan 707 + 709: 9(float) CompositeExtract 704 2 + 710: 9(float) GroupFMin 28 ExclusiveScan 709 + 711: 10(fvec3) CompositeConstruct 706 708 710 + 712: 42(ptr) AccessChain 23 41 + Store 712 711 + 713: 54(ptr) AccessChain 23 53 + 714: 12(f64vec4) Load 713 + 715:11(float64_t) CompositeExtract 714 0 + 716:11(float64_t) GroupFMin 28 ExclusiveScan 715 + 717:11(float64_t) CompositeExtract 714 1 + 718:11(float64_t) GroupFMin 28 ExclusiveScan 717 + 719:11(float64_t) CompositeExtract 714 2 + 720:11(float64_t) GroupFMin 28 ExclusiveScan 719 + 721:11(float64_t) CompositeExtract 714 3 + 722:11(float64_t) GroupFMin 28 ExclusiveScan 721 + 723: 12(f64vec4) CompositeConstruct 716 718 720 722 + 724: 54(ptr) AccessChain 23 53 + Store 724 723 + 725: 68(ptr) AccessChain 23 67 + 726: 13(int64_t) Load 725 + 727: 13(int64_t) GroupSMin 28 ExclusiveScan 726 + 728: 68(ptr) AccessChain 23 67 + Store 728 727 + 729: 74(ptr) AccessChain 23 73 + 730: 15(i64vec2) Load 729 + 731: 14(int64_t) CompositeExtract 730 0 + 732: 14(int64_t) GroupUMin 28 ExclusiveScan 731 + 733: 14(int64_t) CompositeExtract 730 1 + 734: 14(int64_t) GroupUMin 28 ExclusiveScan 733 + 735: 15(i64vec2) CompositeConstruct 732 734 + 736: 74(ptr) AccessChain 23 73 + Store 736 735 + 737: 84(ptr) AccessChain 23 83 + 738: 17(f16vec3) Load 737 + 739:16(float16_t) CompositeExtract 738 0 + 740:16(float16_t) GroupFMin 28 ExclusiveScan 739 + 741:16(float16_t) CompositeExtract 738 1 + 742:16(float16_t) GroupFMin 28 ExclusiveScan 741 + 743:16(float16_t) CompositeExtract 738 2 + 744:16(float16_t) GroupFMin 28 ExclusiveScan 743 + 745: 17(f16vec3) CompositeConstruct 740 742 744 + 746: 84(ptr) AccessChain 23 83 + Store 746 745 + 747: 96(ptr) AccessChain 23 95 + 748: 19(i16vec4) Load 747 + 749: 18(int16_t) CompositeExtract 748 0 + 750: 18(int16_t) GroupSMin 28 ExclusiveScan 749 + 751: 18(int16_t) CompositeExtract 748 1 + 752: 18(int16_t) GroupSMin 28 ExclusiveScan 751 + 753: 18(int16_t) CompositeExtract 748 2 + 754: 18(int16_t) GroupSMin 28 ExclusiveScan 753 + 755: 18(int16_t) CompositeExtract 748 3 + 756: 18(int16_t) GroupSMin 28 ExclusiveScan 755 + 757: 19(i16vec4) CompositeConstruct 750 752 754 756 + 758: 96(ptr) AccessChain 23 95 + Store 758 757 + 759: 110(ptr) AccessChain 23 109 + 760: 20(int16_t) Load 759 + 761: 20(int16_t) GroupUMin 28 ExclusiveScan 760 + 762: 110(ptr) AccessChain 23 109 + Store 762 761 + 763: 25(ptr) AccessChain 23 24 + 764: 6(int) Load 763 + 765: 6(int) GroupSMax 28 ExclusiveScan 764 + 766: 25(ptr) AccessChain 23 24 + Store 766 765 + 767: 32(ptr) AccessChain 23 31 + 768: 8(ivec2) Load 767 + 769: 7(int) CompositeExtract 768 0 + 770: 7(int) GroupUMax 28 ExclusiveScan 769 + 771: 7(int) CompositeExtract 768 1 + 772: 7(int) GroupUMax 28 ExclusiveScan 771 + 773: 8(ivec2) CompositeConstruct 770 772 + 774: 32(ptr) AccessChain 23 31 + Store 774 773 + 775: 42(ptr) AccessChain 23 41 + 776: 10(fvec3) Load 775 + 777: 9(float) CompositeExtract 776 0 + 778: 9(float) GroupFMax 28 ExclusiveScan 777 + 779: 9(float) CompositeExtract 776 1 + 780: 9(float) GroupFMax 28 ExclusiveScan 779 + 781: 9(float) CompositeExtract 776 2 + 782: 9(float) GroupFMax 28 ExclusiveScan 781 + 783: 10(fvec3) CompositeConstruct 778 780 782 + 784: 42(ptr) AccessChain 23 41 + Store 784 783 + 785: 54(ptr) AccessChain 23 53 + 786: 12(f64vec4) Load 785 + 787:11(float64_t) CompositeExtract 786 0 + 788:11(float64_t) GroupFMax 28 ExclusiveScan 787 + 789:11(float64_t) CompositeExtract 786 1 + 790:11(float64_t) GroupFMax 28 ExclusiveScan 789 + 791:11(float64_t) CompositeExtract 786 2 + 792:11(float64_t) GroupFMax 28 ExclusiveScan 791 + 793:11(float64_t) CompositeExtract 786 3 + 794:11(float64_t) GroupFMax 28 ExclusiveScan 793 + 795: 12(f64vec4) CompositeConstruct 788 790 792 794 + 796: 54(ptr) AccessChain 23 53 + Store 796 795 + 797: 68(ptr) AccessChain 23 67 + 798: 13(int64_t) Load 797 + 799: 13(int64_t) GroupSMax 28 ExclusiveScan 798 + 800: 68(ptr) AccessChain 23 67 + Store 800 799 + 801: 74(ptr) AccessChain 23 73 + 802: 15(i64vec2) Load 801 + 803: 14(int64_t) CompositeExtract 802 0 + 804: 14(int64_t) GroupUMax 28 ExclusiveScan 803 + 805: 14(int64_t) CompositeExtract 802 1 + 806: 14(int64_t) GroupUMax 28 ExclusiveScan 805 + 807: 15(i64vec2) CompositeConstruct 804 806 + 808: 74(ptr) AccessChain 23 73 + Store 808 807 + 809: 84(ptr) AccessChain 23 83 + 810: 17(f16vec3) Load 809 + 811:16(float16_t) CompositeExtract 810 0 + 812:16(float16_t) GroupFMax 28 ExclusiveScan 811 + 813:16(float16_t) CompositeExtract 810 1 + 814:16(float16_t) GroupFMax 28 ExclusiveScan 813 + 815:16(float16_t) CompositeExtract 810 2 + 816:16(float16_t) GroupFMax 28 ExclusiveScan 815 + 817: 17(f16vec3) CompositeConstruct 812 814 816 + 818: 84(ptr) AccessChain 23 83 + Store 818 817 + 819: 96(ptr) AccessChain 23 95 + 820: 19(i16vec4) Load 819 + 821: 18(int16_t) CompositeExtract 820 0 + 822: 18(int16_t) GroupSMax 28 ExclusiveScan 821 + 823: 18(int16_t) CompositeExtract 820 1 + 824: 18(int16_t) GroupSMax 28 ExclusiveScan 823 + 825: 18(int16_t) CompositeExtract 820 2 + 826: 18(int16_t) GroupSMax 28 ExclusiveScan 825 + 827: 18(int16_t) CompositeExtract 820 3 + 828: 18(int16_t) GroupSMax 28 ExclusiveScan 827 + 829: 19(i16vec4) CompositeConstruct 822 824 826 828 + 830: 96(ptr) AccessChain 23 95 + Store 830 829 + 831: 110(ptr) AccessChain 23 109 + 832: 20(int16_t) Load 831 + 833: 20(int16_t) GroupUMax 28 ExclusiveScan 832 + 834: 110(ptr) AccessChain 23 109 + Store 834 833 + 835: 25(ptr) AccessChain 23 24 + 836: 6(int) Load 835 + 837: 6(int) GroupIAdd 28 ExclusiveScan 836 + 838: 25(ptr) AccessChain 23 24 + Store 838 837 + 839: 32(ptr) AccessChain 23 31 + 840: 8(ivec2) Load 839 + 841: 7(int) CompositeExtract 840 0 + 842: 7(int) GroupIAdd 28 ExclusiveScan 841 + 843: 7(int) CompositeExtract 840 1 + 844: 7(int) GroupIAdd 28 ExclusiveScan 843 + 845: 8(ivec2) CompositeConstruct 842 844 + 846: 32(ptr) AccessChain 23 31 + Store 846 845 + 847: 42(ptr) AccessChain 23 41 + 848: 10(fvec3) Load 847 + 849: 9(float) CompositeExtract 848 0 + 850: 9(float) GroupFAdd 28 ExclusiveScan 849 + 851: 9(float) CompositeExtract 848 1 + 852: 9(float) GroupFAdd 28 ExclusiveScan 851 + 853: 9(float) CompositeExtract 848 2 + 854: 9(float) GroupFAdd 28 ExclusiveScan 853 + 855: 10(fvec3) CompositeConstruct 850 852 854 + 856: 42(ptr) AccessChain 23 41 + Store 856 855 + 857: 54(ptr) AccessChain 23 53 + 858: 12(f64vec4) Load 857 + 859:11(float64_t) CompositeExtract 858 0 + 860:11(float64_t) GroupFAdd 28 ExclusiveScan 859 + 861:11(float64_t) CompositeExtract 858 1 + 862:11(float64_t) GroupFAdd 28 ExclusiveScan 861 + 863:11(float64_t) CompositeExtract 858 2 + 864:11(float64_t) GroupFAdd 28 ExclusiveScan 863 + 865:11(float64_t) CompositeExtract 858 3 + 866:11(float64_t) GroupFAdd 28 ExclusiveScan 865 + 867: 12(f64vec4) CompositeConstruct 860 862 864 866 + 868: 54(ptr) AccessChain 23 53 + Store 868 867 + 869: 68(ptr) AccessChain 23 67 + 870: 13(int64_t) Load 869 + 871: 13(int64_t) GroupIAdd 28 ExclusiveScan 870 + 872: 68(ptr) AccessChain 23 67 + Store 872 871 + 873: 74(ptr) AccessChain 23 73 + 874: 15(i64vec2) Load 873 + 875: 14(int64_t) CompositeExtract 874 0 + 876: 14(int64_t) GroupIAdd 28 ExclusiveScan 875 + 877: 14(int64_t) CompositeExtract 874 1 + 878: 14(int64_t) GroupIAdd 28 ExclusiveScan 877 + 879: 15(i64vec2) CompositeConstruct 876 878 + 880: 74(ptr) AccessChain 23 73 + Store 880 879 + 881: 84(ptr) AccessChain 23 83 + 882: 17(f16vec3) Load 881 + 883:16(float16_t) CompositeExtract 882 0 + 884:16(float16_t) GroupFAdd 28 ExclusiveScan 883 + 885:16(float16_t) CompositeExtract 882 1 + 886:16(float16_t) GroupFAdd 28 ExclusiveScan 885 + 887:16(float16_t) CompositeExtract 882 2 + 888:16(float16_t) GroupFAdd 28 ExclusiveScan 887 + 889: 17(f16vec3) CompositeConstruct 884 886 888 + 890: 84(ptr) AccessChain 23 83 + Store 890 889 + 891: 96(ptr) AccessChain 23 95 + 892: 19(i16vec4) Load 891 + 893: 18(int16_t) CompositeExtract 892 0 + 894: 18(int16_t) GroupIAdd 28 ExclusiveScan 893 + 895: 18(int16_t) CompositeExtract 892 1 + 896: 18(int16_t) GroupIAdd 28 ExclusiveScan 895 + 897: 18(int16_t) CompositeExtract 892 2 + 898: 18(int16_t) GroupIAdd 28 ExclusiveScan 897 + 899: 18(int16_t) CompositeExtract 892 3 + 900: 18(int16_t) GroupIAdd 28 ExclusiveScan 899 + 901: 19(i16vec4) CompositeConstruct 894 896 898 900 + 902: 96(ptr) AccessChain 23 95 + Store 902 901 + 903: 110(ptr) AccessChain 23 109 + 904: 20(int16_t) Load 903 + 905: 20(int16_t) GroupIAdd 28 ExclusiveScan 904 + 906: 110(ptr) AccessChain 23 109 + Store 906 905 + 907: 25(ptr) AccessChain 23 24 + 908: 6(int) Load 907 + 909: 6(int) GroupSMinNonUniformAMD 28 InclusiveScan 908 + 910: 25(ptr) AccessChain 23 24 + Store 910 909 + 911: 32(ptr) AccessChain 23 31 + 912: 8(ivec2) Load 911 + 913: 7(int) CompositeExtract 912 0 + 914: 7(int) GroupUMinNonUniformAMD 28 InclusiveScan 913 + 915: 7(int) CompositeExtract 912 1 + 916: 7(int) GroupUMinNonUniformAMD 28 InclusiveScan 915 + 917: 8(ivec2) CompositeConstruct 914 916 + 918: 32(ptr) AccessChain 23 31 + Store 918 917 + 919: 42(ptr) AccessChain 23 41 + 920: 10(fvec3) Load 919 + 921: 9(float) CompositeExtract 920 0 + 922: 9(float) GroupFMinNonUniformAMD 28 InclusiveScan 921 + 923: 9(float) CompositeExtract 920 1 + 924: 9(float) GroupFMinNonUniformAMD 28 InclusiveScan 923 + 925: 9(float) CompositeExtract 920 2 + 926: 9(float) GroupFMinNonUniformAMD 28 InclusiveScan 925 + 927: 10(fvec3) CompositeConstruct 922 924 926 + 928: 42(ptr) AccessChain 23 41 + Store 928 927 + 929: 54(ptr) AccessChain 23 53 + 930: 12(f64vec4) Load 929 + 931:11(float64_t) CompositeExtract 930 0 + 932:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 931 + 933:11(float64_t) CompositeExtract 930 1 + 934:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 933 + 935:11(float64_t) CompositeExtract 930 2 + 936:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 935 + 937:11(float64_t) CompositeExtract 930 3 + 938:11(float64_t) GroupFMinNonUniformAMD 28 InclusiveScan 937 + 939: 12(f64vec4) CompositeConstruct 932 934 936 938 + 940: 54(ptr) AccessChain 23 53 + Store 940 939 + 941: 68(ptr) AccessChain 23 67 + 942: 13(int64_t) Load 941 + 943: 13(int64_t) GroupSMinNonUniformAMD 28 InclusiveScan 942 + 944: 68(ptr) AccessChain 23 67 + Store 944 943 + 945: 74(ptr) AccessChain 23 73 + 946: 15(i64vec2) Load 945 + 947: 14(int64_t) CompositeExtract 946 0 + 948: 14(int64_t) GroupUMinNonUniformAMD 28 InclusiveScan 947 + 949: 14(int64_t) CompositeExtract 946 1 + 950: 14(int64_t) GroupUMinNonUniformAMD 28 InclusiveScan 949 + 951: 15(i64vec2) CompositeConstruct 948 950 + 952: 74(ptr) AccessChain 23 73 + Store 952 951 + 953: 84(ptr) AccessChain 23 83 + 954: 17(f16vec3) Load 953 + 955:16(float16_t) CompositeExtract 954 0 + 956:16(float16_t) GroupFMinNonUniformAMD 28 InclusiveScan 955 + 957:16(float16_t) CompositeExtract 954 1 + 958:16(float16_t) GroupFMinNonUniformAMD 28 InclusiveScan 957 + 959:16(float16_t) CompositeExtract 954 2 + 960:16(float16_t) GroupFMinNonUniformAMD 28 InclusiveScan 959 + 961: 17(f16vec3) CompositeConstruct 956 958 960 + 962: 84(ptr) AccessChain 23 83 + Store 962 961 + 963: 96(ptr) AccessChain 23 95 + 964: 19(i16vec4) Load 963 + 965: 18(int16_t) CompositeExtract 964 0 + 966: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 965 + 967: 18(int16_t) CompositeExtract 964 1 + 968: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 967 + 969: 18(int16_t) CompositeExtract 964 2 + 970: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 969 + 971: 18(int16_t) CompositeExtract 964 3 + 972: 18(int16_t) GroupSMinNonUniformAMD 28 InclusiveScan 971 + 973: 19(i16vec4) CompositeConstruct 966 968 970 972 + 974: 96(ptr) AccessChain 23 95 + Store 974 973 + 975: 110(ptr) AccessChain 23 109 + 976: 20(int16_t) Load 975 + 977: 20(int16_t) GroupUMinNonUniformAMD 28 InclusiveScan 976 + 978: 110(ptr) AccessChain 23 109 + Store 978 977 + 979: 25(ptr) AccessChain 23 24 + 980: 6(int) Load 979 + 981: 6(int) GroupSMaxNonUniformAMD 28 InclusiveScan 980 + 982: 25(ptr) AccessChain 23 24 + Store 982 981 + 983: 32(ptr) AccessChain 23 31 + 984: 8(ivec2) Load 983 + 985: 7(int) CompositeExtract 984 0 + 986: 7(int) GroupUMaxNonUniformAMD 28 InclusiveScan 985 + 987: 7(int) CompositeExtract 984 1 + 988: 7(int) GroupUMaxNonUniformAMD 28 InclusiveScan 987 + 989: 8(ivec2) CompositeConstruct 986 988 + 990: 32(ptr) AccessChain 23 31 + Store 990 989 + 991: 42(ptr) AccessChain 23 41 + 992: 10(fvec3) Load 991 + 993: 9(float) CompositeExtract 992 0 + 994: 9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 993 + 995: 9(float) CompositeExtract 992 1 + 996: 9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 995 + 997: 9(float) CompositeExtract 992 2 + 998: 9(float) GroupFMaxNonUniformAMD 28 InclusiveScan 997 + 999: 10(fvec3) CompositeConstruct 994 996 998 + 1000: 42(ptr) AccessChain 23 41 + Store 1000 999 + 1001: 54(ptr) AccessChain 23 53 + 1002: 12(f64vec4) Load 1001 + 1003:11(float64_t) CompositeExtract 1002 0 + 1004:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1003 + 1005:11(float64_t) CompositeExtract 1002 1 + 1006:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1005 + 1007:11(float64_t) CompositeExtract 1002 2 + 1008:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1007 + 1009:11(float64_t) CompositeExtract 1002 3 + 1010:11(float64_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1009 + 1011: 12(f64vec4) CompositeConstruct 1004 1006 1008 1010 + 1012: 54(ptr) AccessChain 23 53 + Store 1012 1011 + 1013: 68(ptr) AccessChain 23 67 + 1014: 13(int64_t) Load 1013 + 1015: 13(int64_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1014 + 1016: 68(ptr) AccessChain 23 67 + Store 1016 1015 + 1017: 74(ptr) AccessChain 23 73 + 1018: 15(i64vec2) Load 1017 + 1019: 14(int64_t) CompositeExtract 1018 0 + 1020: 14(int64_t) GroupUMaxNonUniformAMD 28 InclusiveScan 1019 + 1021: 14(int64_t) CompositeExtract 1018 1 + 1022: 14(int64_t) GroupUMaxNonUniformAMD 28 InclusiveScan 1021 + 1023: 15(i64vec2) CompositeConstruct 1020 1022 + 1024: 74(ptr) AccessChain 23 73 + Store 1024 1023 + 1025: 84(ptr) AccessChain 23 83 + 1026: 17(f16vec3) Load 1025 + 1027:16(float16_t) CompositeExtract 1026 0 + 1028:16(float16_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1027 + 1029:16(float16_t) CompositeExtract 1026 1 + 1030:16(float16_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1029 + 1031:16(float16_t) CompositeExtract 1026 2 + 1032:16(float16_t) GroupFMaxNonUniformAMD 28 InclusiveScan 1031 + 1033: 17(f16vec3) CompositeConstruct 1028 1030 1032 + 1034: 84(ptr) AccessChain 23 83 + Store 1034 1033 + 1035: 96(ptr) AccessChain 23 95 + 1036: 19(i16vec4) Load 1035 + 1037: 18(int16_t) CompositeExtract 1036 0 + 1038: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1037 + 1039: 18(int16_t) CompositeExtract 1036 1 + 1040: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1039 + 1041: 18(int16_t) CompositeExtract 1036 2 + 1042: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1041 + 1043: 18(int16_t) CompositeExtract 1036 3 + 1044: 18(int16_t) GroupSMaxNonUniformAMD 28 InclusiveScan 1043 + 1045: 19(i16vec4) CompositeConstruct 1038 1040 1042 1044 + 1046: 96(ptr) AccessChain 23 95 + Store 1046 1045 + 1047: 110(ptr) AccessChain 23 109 + 1048: 20(int16_t) Load 1047 + 1049: 20(int16_t) GroupUMaxNonUniformAMD 28 InclusiveScan 1048 + 1050: 110(ptr) AccessChain 23 109 + Store 1050 1049 + 1051: 25(ptr) AccessChain 23 24 + 1052: 6(int) Load 1051 + 1053: 6(int) GroupIAddNonUniformAMD 28 InclusiveScan 1052 + 1054: 25(ptr) AccessChain 23 24 + Store 1054 1053 + 1055: 32(ptr) AccessChain 23 31 + 1056: 8(ivec2) Load 1055 + 1057: 7(int) CompositeExtract 1056 0 + 1058: 7(int) GroupIAddNonUniformAMD 28 InclusiveScan 1057 + 1059: 7(int) CompositeExtract 1056 1 + 1060: 7(int) GroupIAddNonUniformAMD 28 InclusiveScan 1059 + 1061: 8(ivec2) CompositeConstruct 1058 1060 + 1062: 32(ptr) AccessChain 23 31 + Store 1062 1061 + 1063: 42(ptr) AccessChain 23 41 + 1064: 10(fvec3) Load 1063 + 1065: 9(float) CompositeExtract 1064 0 + 1066: 9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1065 + 1067: 9(float) CompositeExtract 1064 1 + 1068: 9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1067 + 1069: 9(float) CompositeExtract 1064 2 + 1070: 9(float) GroupFAddNonUniformAMD 28 InclusiveScan 1069 + 1071: 10(fvec3) CompositeConstruct 1066 1068 1070 + 1072: 42(ptr) AccessChain 23 41 + Store 1072 1071 + 1073: 54(ptr) AccessChain 23 53 + 1074: 12(f64vec4) Load 1073 + 1075:11(float64_t) CompositeExtract 1074 0 + 1076:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1075 + 1077:11(float64_t) CompositeExtract 1074 1 + 1078:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1077 + 1079:11(float64_t) CompositeExtract 1074 2 + 1080:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1079 + 1081:11(float64_t) CompositeExtract 1074 3 + 1082:11(float64_t) GroupFAddNonUniformAMD 28 InclusiveScan 1081 + 1083: 12(f64vec4) CompositeConstruct 1076 1078 1080 1082 + 1084: 54(ptr) AccessChain 23 53 + Store 1084 1083 + 1085: 68(ptr) AccessChain 23 67 + 1086: 13(int64_t) Load 1085 + 1087: 13(int64_t) GroupIAddNonUniformAMD 28 InclusiveScan 1086 + 1088: 68(ptr) AccessChain 23 67 + Store 1088 1087 + 1089: 74(ptr) AccessChain 23 73 + 1090: 15(i64vec2) Load 1089 + 1091: 14(int64_t) CompositeExtract 1090 0 + 1092: 14(int64_t) GroupIAddNonUniformAMD 28 InclusiveScan 1091 + 1093: 14(int64_t) CompositeExtract 1090 1 + 1094: 14(int64_t) GroupIAddNonUniformAMD 28 InclusiveScan 1093 + 1095: 15(i64vec2) CompositeConstruct 1092 1094 + 1096: 74(ptr) AccessChain 23 73 + Store 1096 1095 + 1097: 84(ptr) AccessChain 23 83 + 1098: 17(f16vec3) Load 1097 + 1099:16(float16_t) CompositeExtract 1098 0 + 1100:16(float16_t) GroupFAddNonUniformAMD 28 InclusiveScan 1099 + 1101:16(float16_t) CompositeExtract 1098 1 + 1102:16(float16_t) GroupFAddNonUniformAMD 28 InclusiveScan 1101 + 1103:16(float16_t) CompositeExtract 1098 2 + 1104:16(float16_t) GroupFAddNonUniformAMD 28 InclusiveScan 1103 + 1105: 17(f16vec3) CompositeConstruct 1100 1102 1104 + 1106: 84(ptr) AccessChain 23 83 + Store 1106 1105 + 1107: 96(ptr) AccessChain 23 95 + 1108: 19(i16vec4) Load 1107 + 1109: 18(int16_t) CompositeExtract 1108 0 + 1110: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1109 + 1111: 18(int16_t) CompositeExtract 1108 1 + 1112: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1111 + 1113: 18(int16_t) CompositeExtract 1108 2 + 1114: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1113 + 1115: 18(int16_t) CompositeExtract 1108 3 + 1116: 18(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1115 + 1117: 19(i16vec4) CompositeConstruct 1110 1112 1114 1116 + 1118: 96(ptr) AccessChain 23 95 + Store 1118 1117 + 1119: 110(ptr) AccessChain 23 109 + 1120: 20(int16_t) Load 1119 + 1121: 20(int16_t) GroupIAddNonUniformAMD 28 InclusiveScan 1120 + 1122: 110(ptr) AccessChain 23 109 + Store 1122 1121 + 1123: 25(ptr) AccessChain 23 24 + 1124: 6(int) Load 1123 + 1125: 6(int) GroupSMinNonUniformAMD 28 ExclusiveScan 1124 + 1126: 25(ptr) AccessChain 23 24 + Store 1126 1125 + 1127: 32(ptr) AccessChain 23 31 + 1128: 8(ivec2) Load 1127 + 1129: 7(int) CompositeExtract 1128 0 + 1130: 7(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1129 + 1131: 7(int) CompositeExtract 1128 1 + 1132: 7(int) GroupUMinNonUniformAMD 28 ExclusiveScan 1131 + 1133: 8(ivec2) CompositeConstruct 1130 1132 + 1134: 32(ptr) AccessChain 23 31 + Store 1134 1133 + 1135: 42(ptr) AccessChain 23 41 + 1136: 10(fvec3) Load 1135 + 1137: 9(float) CompositeExtract 1136 0 + 1138: 9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1137 + 1139: 9(float) CompositeExtract 1136 1 + 1140: 9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1139 + 1141: 9(float) CompositeExtract 1136 2 + 1142: 9(float) GroupFMinNonUniformAMD 28 ExclusiveScan 1141 + 1143: 10(fvec3) CompositeConstruct 1138 1140 1142 + 1144: 42(ptr) AccessChain 23 41 + Store 1144 1143 + 1145: 54(ptr) AccessChain 23 53 + 1146: 12(f64vec4) Load 1145 + 1147:11(float64_t) CompositeExtract 1146 0 + 1148:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1147 + 1149:11(float64_t) CompositeExtract 1146 1 + 1150:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1149 + 1151:11(float64_t) CompositeExtract 1146 2 + 1152:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1151 + 1153:11(float64_t) CompositeExtract 1146 3 + 1154:11(float64_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1153 + 1155: 12(f64vec4) CompositeConstruct 1148 1150 1152 1154 + 1156: 54(ptr) AccessChain 23 53 + Store 1156 1155 + 1157: 68(ptr) AccessChain 23 67 + 1158: 13(int64_t) Load 1157 + 1159: 13(int64_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1158 + 1160: 68(ptr) AccessChain 23 67 + Store 1160 1159 + 1161: 74(ptr) AccessChain 23 73 + 1162: 15(i64vec2) Load 1161 + 1163: 14(int64_t) CompositeExtract 1162 0 + 1164: 14(int64_t) GroupUMinNonUniformAMD 28 ExclusiveScan 1163 + 1165: 14(int64_t) CompositeExtract 1162 1 + 1166: 14(int64_t) GroupUMinNonUniformAMD 28 ExclusiveScan 1165 + 1167: 15(i64vec2) CompositeConstruct 1164 1166 + 1168: 74(ptr) AccessChain 23 73 + Store 1168 1167 + 1169: 84(ptr) AccessChain 23 83 + 1170: 17(f16vec3) Load 1169 + 1171:16(float16_t) CompositeExtract 1170 0 + 1172:16(float16_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1171 + 1173:16(float16_t) CompositeExtract 1170 1 + 1174:16(float16_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1173 + 1175:16(float16_t) CompositeExtract 1170 2 + 1176:16(float16_t) GroupFMinNonUniformAMD 28 ExclusiveScan 1175 + 1177: 17(f16vec3) CompositeConstruct 1172 1174 1176 + 1178: 84(ptr) AccessChain 23 83 + Store 1178 1177 + 1179: 96(ptr) AccessChain 23 95 + 1180: 19(i16vec4) Load 1179 + 1181: 18(int16_t) CompositeExtract 1180 0 + 1182: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1181 + 1183: 18(int16_t) CompositeExtract 1180 1 + 1184: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1183 + 1185: 18(int16_t) CompositeExtract 1180 2 + 1186: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1185 + 1187: 18(int16_t) CompositeExtract 1180 3 + 1188: 18(int16_t) GroupSMinNonUniformAMD 28 ExclusiveScan 1187 + 1189: 19(i16vec4) CompositeConstruct 1182 1184 1186 1188 + 1190: 96(ptr) AccessChain 23 95 + Store 1190 1189 + 1191: 110(ptr) AccessChain 23 109 + 1192: 20(int16_t) Load 1191 + 1193: 20(int16_t) GroupUMinNonUniformAMD 28 ExclusiveScan 1192 + 1194: 110(ptr) AccessChain 23 109 + Store 1194 1193 + 1195: 25(ptr) AccessChain 23 24 + 1196: 6(int) Load 1195 + 1197: 6(int) GroupSMaxNonUniformAMD 28 ExclusiveScan 1196 + 1198: 25(ptr) AccessChain 23 24 + Store 1198 1197 + 1199: 32(ptr) AccessChain 23 31 + 1200: 8(ivec2) Load 1199 + 1201: 7(int) CompositeExtract 1200 0 + 1202: 7(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1201 + 1203: 7(int) CompositeExtract 1200 1 + 1204: 7(int) GroupUMaxNonUniformAMD 28 ExclusiveScan 1203 + 1205: 8(ivec2) CompositeConstruct 1202 1204 + 1206: 32(ptr) AccessChain 23 31 + Store 1206 1205 + 1207: 42(ptr) AccessChain 23 41 + 1208: 10(fvec3) Load 1207 + 1209: 9(float) CompositeExtract 1208 0 + 1210: 9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1209 + 1211: 9(float) CompositeExtract 1208 1 + 1212: 9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1211 + 1213: 9(float) CompositeExtract 1208 2 + 1214: 9(float) GroupFMaxNonUniformAMD 28 ExclusiveScan 1213 + 1215: 10(fvec3) CompositeConstruct 1210 1212 1214 + 1216: 42(ptr) AccessChain 23 41 + Store 1216 1215 + 1217: 54(ptr) AccessChain 23 53 + 1218: 12(f64vec4) Load 1217 + 1219:11(float64_t) CompositeExtract 1218 0 + 1220:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1219 + 1221:11(float64_t) CompositeExtract 1218 1 + 1222:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1221 + 1223:11(float64_t) CompositeExtract 1218 2 + 1224:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1223 + 1225:11(float64_t) CompositeExtract 1218 3 + 1226:11(float64_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1225 + 1227: 12(f64vec4) CompositeConstruct 1220 1222 1224 1226 + 1228: 54(ptr) AccessChain 23 53 + Store 1228 1227 + 1229: 68(ptr) AccessChain 23 67 + 1230: 13(int64_t) Load 1229 + 1231: 13(int64_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1230 + 1232: 68(ptr) AccessChain 23 67 + Store 1232 1231 + 1233: 74(ptr) AccessChain 23 73 + 1234: 15(i64vec2) Load 1233 + 1235: 14(int64_t) CompositeExtract 1234 0 + 1236: 14(int64_t) GroupUMaxNonUniformAMD 28 ExclusiveScan 1235 + 1237: 14(int64_t) CompositeExtract 1234 1 + 1238: 14(int64_t) GroupUMaxNonUniformAMD 28 ExclusiveScan 1237 + 1239: 15(i64vec2) CompositeConstruct 1236 1238 + 1240: 74(ptr) AccessChain 23 73 + Store 1240 1239 + 1241: 84(ptr) AccessChain 23 83 + 1242: 17(f16vec3) Load 1241 + 1243:16(float16_t) CompositeExtract 1242 0 + 1244:16(float16_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1243 + 1245:16(float16_t) CompositeExtract 1242 1 + 1246:16(float16_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1245 + 1247:16(float16_t) CompositeExtract 1242 2 + 1248:16(float16_t) GroupFMaxNonUniformAMD 28 ExclusiveScan 1247 + 1249: 17(f16vec3) CompositeConstruct 1244 1246 1248 + 1250: 84(ptr) AccessChain 23 83 + Store 1250 1249 + 1251: 96(ptr) AccessChain 23 95 + 1252: 19(i16vec4) Load 1251 + 1253: 18(int16_t) CompositeExtract 1252 0 + 1254: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1253 + 1255: 18(int16_t) CompositeExtract 1252 1 + 1256: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1255 + 1257: 18(int16_t) CompositeExtract 1252 2 + 1258: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1257 + 1259: 18(int16_t) CompositeExtract 1252 3 + 1260: 18(int16_t) GroupSMaxNonUniformAMD 28 ExclusiveScan 1259 + 1261: 19(i16vec4) CompositeConstruct 1254 1256 1258 1260 + 1262: 96(ptr) AccessChain 23 95 + Store 1262 1261 + 1263: 110(ptr) AccessChain 23 109 + 1264: 20(int16_t) Load 1263 + 1265: 20(int16_t) GroupUMaxNonUniformAMD 28 ExclusiveScan 1264 + 1266: 110(ptr) AccessChain 23 109 + Store 1266 1265 + 1267: 25(ptr) AccessChain 23 24 + 1268: 6(int) Load 1267 + 1269: 6(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1268 + 1270: 25(ptr) AccessChain 23 24 + Store 1270 1269 + 1271: 32(ptr) AccessChain 23 31 + 1272: 8(ivec2) Load 1271 + 1273: 7(int) CompositeExtract 1272 0 + 1274: 7(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1273 + 1275: 7(int) CompositeExtract 1272 1 + 1276: 7(int) GroupIAddNonUniformAMD 28 ExclusiveScan 1275 + 1277: 8(ivec2) CompositeConstruct 1274 1276 + 1278: 32(ptr) AccessChain 23 31 + Store 1278 1277 + 1279: 42(ptr) AccessChain 23 41 + 1280: 10(fvec3) Load 1279 + 1281: 9(float) CompositeExtract 1280 0 + 1282: 9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1281 + 1283: 9(float) CompositeExtract 1280 1 + 1284: 9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1283 + 1285: 9(float) CompositeExtract 1280 2 + 1286: 9(float) GroupFAddNonUniformAMD 28 ExclusiveScan 1285 + 1287: 10(fvec3) CompositeConstruct 1282 1284 1286 + 1288: 42(ptr) AccessChain 23 41 + Store 1288 1287 + 1289: 54(ptr) AccessChain 23 53 + 1290: 12(f64vec4) Load 1289 + 1291:11(float64_t) CompositeExtract 1290 0 + 1292:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1291 + 1293:11(float64_t) CompositeExtract 1290 1 + 1294:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1293 + 1295:11(float64_t) CompositeExtract 1290 2 + 1296:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1295 + 1297:11(float64_t) CompositeExtract 1290 3 + 1298:11(float64_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1297 + 1299: 12(f64vec4) CompositeConstruct 1292 1294 1296 1298 + 1300: 54(ptr) AccessChain 23 53 + Store 1300 1299 + 1301: 68(ptr) AccessChain 23 67 + 1302: 13(int64_t) Load 1301 + 1303: 13(int64_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1302 + 1304: 68(ptr) AccessChain 23 67 + Store 1304 1303 + 1305: 74(ptr) AccessChain 23 73 + 1306: 15(i64vec2) Load 1305 + 1307: 14(int64_t) CompositeExtract 1306 0 + 1308: 14(int64_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1307 + 1309: 14(int64_t) CompositeExtract 1306 1 + 1310: 14(int64_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1309 + 1311: 15(i64vec2) CompositeConstruct 1308 1310 + 1312: 74(ptr) AccessChain 23 73 + Store 1312 1311 + 1313: 84(ptr) AccessChain 23 83 + 1314: 17(f16vec3) Load 1313 + 1315:16(float16_t) CompositeExtract 1314 0 + 1316:16(float16_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1315 + 1317:16(float16_t) CompositeExtract 1314 1 + 1318:16(float16_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1317 + 1319:16(float16_t) CompositeExtract 1314 2 + 1320:16(float16_t) GroupFAddNonUniformAMD 28 ExclusiveScan 1319 + 1321: 17(f16vec3) CompositeConstruct 1316 1318 1320 + 1322: 84(ptr) AccessChain 23 83 + Store 1322 1321 + 1323: 96(ptr) AccessChain 23 95 + 1324: 19(i16vec4) Load 1323 + 1325: 18(int16_t) CompositeExtract 1324 0 + 1326: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1325 + 1327: 18(int16_t) CompositeExtract 1324 1 + 1328: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1327 + 1329: 18(int16_t) CompositeExtract 1324 2 + 1330: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1329 + 1331: 18(int16_t) CompositeExtract 1324 3 + 1332: 18(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1331 + 1333: 19(i16vec4) CompositeConstruct 1326 1328 1330 1332 + 1334: 96(ptr) AccessChain 23 95 + Store 1334 1333 + 1335: 110(ptr) AccessChain 23 109 + 1336: 20(int16_t) Load 1335 + 1337: 20(int16_t) GroupIAddNonUniformAMD 28 ExclusiveScan 1336 + 1338: 110(ptr) AccessChain 23 109 + Store 1338 1337 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out b/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out new file mode 100644 index 0000000000..d6b43e8fe9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderDrawParams.vert.out @@ -0,0 +1,102 @@ +spv.shaderDrawParams.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 53 + + Capability Shader + Capability DrawParameters + Extension "SPV_KHR_shader_draw_parameters" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 16 29 37 + Source GLSL 450 + SourceExtension "GL_ARB_shader_draw_parameters" + Name 4 "main" + Name 9 "gl_BaseVertexARB" + Name 16 "gl_BaseInstanceARB" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 27(gl_PerVertex) 3 "gl_CullDistance" + Name 29 "" + Name 34 "Block" + MemberName 34(Block) 0 "pos" + Name 36 "block" + Name 37 "gl_DrawIDARB" + Decorate 9(gl_BaseVertexARB) BuiltIn BaseVertex + Decorate 16(gl_BaseInstanceARB) BuiltIn BaseInstance + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 27(gl_PerVertex) Block + Decorate 31 ArrayStride 16 + Decorate 33 ArrayStride 64 + MemberDecorate 34(Block) 0 Offset 0 + Decorate 34(Block) Block + Decorate 36(block) DescriptorSet 0 + Decorate 36(block) Binding 0 + Decorate 37(gl_DrawIDARB) BuiltIn DrawIndex + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypePointer Input 7(int) +9(gl_BaseVertexARB): 8(ptr) Variable Input + 11: 7(int) Constant 0 +16(gl_BaseInstanceARB): 8(ptr) Variable Input + 22: TypeFloat 32 + 23: TypeVector 22(float) 4 + 24: TypeInt 32 0 + 25: 24(int) Constant 1 + 26: TypeArray 22(float) 25 +27(gl_PerVertex): TypeStruct 23(fvec4) 22(float) 26 26 + 28: TypePointer Output 27(gl_PerVertex) + 29: 28(ptr) Variable Output + 30: 24(int) Constant 4 + 31: TypeArray 23(fvec4) 30 + 32: 24(int) Constant 2 + 33: TypeArray 31 32 + 34(Block): TypeStruct 33 + 35: TypePointer Uniform 34(Block) + 36(block): 35(ptr) Variable Uniform +37(gl_DrawIDARB): 8(ptr) Variable Input + 39: 7(int) Constant 4 + 41: TypePointer Uniform 23(fvec4) + 44: TypePointer Output 23(fvec4) + 47: 7(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 10: 7(int) Load 9(gl_BaseVertexARB) + 12: 6(bool) SGreaterThan 10 11 + 13: 6(bool) LogicalNot 12 + SelectionMerge 15 None + BranchConditional 13 14 15 + 14: Label + 17: 7(int) Load 16(gl_BaseInstanceARB) + 18: 6(bool) SGreaterThan 17 11 + Branch 15 + 15: Label + 19: 6(bool) Phi 12 5 18 14 + SelectionMerge 21 None + BranchConditional 19 20 46 + 20: Label + 38: 7(int) Load 37(gl_DrawIDARB) + 40: 7(int) SMod 38 39 + 42: 41(ptr) AccessChain 36(block) 11 11 40 + 43: 23(fvec4) Load 42 + 45: 44(ptr) AccessChain 29 11 + Store 45 43 + Branch 21 + 46: Label + 48: 7(int) Load 37(gl_DrawIDARB) + 49: 7(int) SMod 48 39 + 50: 41(ptr) AccessChain 36(block) 11 47 49 + 51: 23(fvec4) Load 50 + 52: 44(ptr) AccessChain 29 11 + Store 52 51 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out new file mode 100644 index 0000000000..788d3ee697 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out @@ -0,0 +1,122 @@ +spv.shaderFragMaskAMD.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 80 + + Capability Shader + Capability InputAttachment + Capability FragmentMaskAMD + Extension "SPV_AMD_shader_fragment_mask" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 78 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_shader_fragment_mask" + Name 4 "main" + Name 9 "f4" + Name 14 "fragMask" + Name 18 "s2DMS" + Name 27 "fragIndex" + Name 42 "is2DMSArray" + Name 62 "usubpassMS" + Name 78 "fragColor" + Decorate 18(s2DMS) DescriptorSet 0 + Decorate 18(s2DMS) Binding 0 + Decorate 42(is2DMSArray) DescriptorSet 0 + Decorate 42(is2DMSArray) Binding 1 + Decorate 62(usubpassMS) DescriptorSet 0 + Decorate 62(usubpassMS) Binding 2 + Decorate 62(usubpassMS) InputAttachmentIndex 0 + Decorate 78(fragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 0 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 15: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 16: TypeSampledImage 15 + 17: TypePointer UniformConstant 16 + 18(s2DMS): 17(ptr) Variable UniformConstant + 20: TypeInt 32 1 + 21: TypeVector 20(int) 2 + 22: 20(int) Constant 2 + 23: 20(int) Constant 3 + 24: 21(ivec2) ConstantComposite 22 23 + 29: 12(int) Constant 240 + 31: 20(int) Constant 4 + 34: 12(int) Constant 1 + 39: TypeImage 20(int) 2D array multi-sampled sampled format:Unknown + 40: TypeSampledImage 39 + 41: TypePointer UniformConstant 40 + 42(is2DMSArray): 41(ptr) Variable UniformConstant + 44: TypeVector 20(int) 3 + 45: 20(int) Constant 1 + 46: 44(ivec3) ConstantComposite 22 23 45 + 55: TypeVector 20(int) 4 + 60: TypeImage 12(int) SubpassData multi-sampled nonsampled format:Unknown + 61: TypePointer UniformConstant 60 + 62(usubpassMS): 61(ptr) Variable UniformConstant + 64: 20(int) Constant 0 + 65: 21(ivec2) ConstantComposite 64 64 + 72: TypeVector 12(int) 4 + 77: TypePointer Output 7(fvec4) + 78(fragColor): 77(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(f4): 8(ptr) Variable Function + 14(fragMask): 13(ptr) Variable Function + 27(fragIndex): 13(ptr) Variable Function + Store 9(f4) 11 + 19: 16 Load 18(s2DMS) + 25: 15 Image 19 + 26: 12(int) FragmentMaskFetchAMD 25 24 + Store 14(fragMask) 26 + 28: 12(int) Load 14(fragMask) + 30: 12(int) BitwiseAnd 28 29 + 32: 12(int) ShiftRightLogical 30 31 + Store 27(fragIndex) 32 + 33: 16 Load 18(s2DMS) + 35: 15 Image 33 + 36: 7(fvec4) FragmentFetchAMD 35 24 34 + 37: 7(fvec4) Load 9(f4) + 38: 7(fvec4) FAdd 37 36 + Store 9(f4) 38 + 43: 40 Load 42(is2DMSArray) + 47: 39 Image 43 + 48: 12(int) FragmentMaskFetchAMD 47 46 + Store 14(fragMask) 48 + 49: 12(int) Load 14(fragMask) + 50: 12(int) BitwiseAnd 49 29 + 51: 12(int) ShiftRightLogical 50 31 + Store 27(fragIndex) 51 + 52: 40 Load 42(is2DMSArray) + 53: 12(int) Load 27(fragIndex) + 54: 39 Image 52 + 56: 55(ivec4) FragmentFetchAMD 54 46 53 + 57: 7(fvec4) ConvertSToF 56 + 58: 7(fvec4) Load 9(f4) + 59: 7(fvec4) FAdd 58 57 + Store 9(f4) 59 + 63: 60 Load 62(usubpassMS) + 66: 12(int) FragmentMaskFetchAMD 63 65 + Store 14(fragMask) 66 + 67: 12(int) Load 14(fragMask) + 68: 12(int) BitwiseAnd 67 29 + 69: 12(int) ShiftRightLogical 68 31 + Store 27(fragIndex) 69 + 70: 60 Load 62(usubpassMS) + 71: 12(int) Load 27(fragIndex) + 73: 72(ivec4) FragmentFetchAMD 70 65 71 + 74: 7(fvec4) ConvertUToF 73 + 75: 7(fvec4) Load 9(f4) + 76: 7(fvec4) FAdd 75 74 + Store 9(f4) 76 + 79: 7(fvec4) Load 9(f4) + Store 78(fragColor) 79 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out b/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out new file mode 100644 index 0000000000..e45f585837 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderGroupVote.comp.out @@ -0,0 +1,62 @@ +spv.shaderGroupVote.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 33 + + Capability Shader + Capability SubgroupVoteKHR + Extension "SPV_KHR_subgroup_vote" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 4 4 1 + Source GLSL 450 + SourceExtension "GL_ARB_shader_group_vote" + Name 4 "main" + Name 8 "b1" + Name 10 "Buffers" + MemberName 10(Buffers) 0 "b" + Name 12 "" + MemberDecorate 10(Buffers) 0 Offset 0 + Decorate 10(Buffers) BufferBlock + Decorate 12 DescriptorSet 0 + Decorate 12 Binding 0 + Decorate 32 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypePointer Function 6(bool) + 9: TypeInt 32 0 + 10(Buffers): TypeStruct 9(int) + 11: TypePointer Uniform 10(Buffers) + 12: 11(ptr) Variable Uniform + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: TypePointer Uniform 9(int) + 18: 9(int) Constant 0 + 27: 9(int) Constant 1 + 30: TypeVector 9(int) 3 + 31: 9(int) Constant 4 + 32: 30(ivec3) ConstantComposite 31 31 27 + 4(main): 2 Function None 3 + 5: Label + 8(b1): 7(ptr) Variable Function + 16: 15(ptr) AccessChain 12 14 + 17: 9(int) Load 16 + 19: 6(bool) INotEqual 17 18 + Store 8(b1) 19 + 20: 6(bool) Load 8(b1) + 21: 6(bool) SubgroupAnyKHR 20 + Store 8(b1) 21 + 22: 6(bool) Load 8(b1) + 23: 6(bool) SubgroupAllKHR 22 + Store 8(b1) 23 + 24: 6(bool) Load 8(b1) + 25: 6(bool) SubgroupAllEqualKHR 24 + Store 8(b1) 25 + 26: 6(bool) Load 8(b1) + 28: 9(int) Select 26 27 18 + 29: 15(ptr) AccessChain 12 14 + Store 29 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shaderStencilExport.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shaderStencilExport.frag.out new file mode 100644 index 0000000000..8fc691ee1d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shaderStencilExport.frag.out @@ -0,0 +1,28 @@ +spv.shaderStencilExport.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 10 + + Capability Shader + Capability StencilExportEXT + Extension "SPV_EXT_shader_stencil_export" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_ARB_shader_stencil_export" + Name 4 "main" + Name 8 "gl_FragStencilRefARB" + Decorate 8(gl_FragStencilRefARB) BuiltIn FragStencilRefEXT + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Output 6(int) +8(gl_FragStencilRefARB): 7(ptr) Variable Output + 9: 6(int) Constant 100 + 4(main): 2 Function None 3 + 5: Label + Store 8(gl_FragStencilRefARB) 9 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out new file mode 100644 index 0000000000..3085a55d45 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shiftOps.frag.out @@ -0,0 +1,64 @@ +spv.shiftOps.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 38 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 11 15 25 27 30 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "icolor" + Name 11 "i3" + Name 15 "u1" + Name 25 "ucolor" + Name 27 "u3" + Name 30 "i1" + Decorate 11(i3) Flat + Decorate 15(u1) Flat + Decorate 27(u3) Flat + Decorate 30(i1) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypePointer Output 7(ivec3) + 9(icolor): 8(ptr) Variable Output + 10: TypePointer Input 7(ivec3) + 11(i3): 10(ptr) Variable Input + 13: TypeInt 32 0 + 14: TypePointer Input 13(int) + 15(u1): 14(ptr) Variable Input + 17: TypeVector 13(int) 3 + 20: 13(int) Constant 4 + 24: TypePointer Output 17(ivec3) + 25(ucolor): 24(ptr) Variable Output + 26: TypePointer Input 17(ivec3) + 27(u3): 26(ptr) Variable Input + 29: TypePointer Input 6(int) + 30(i1): 29(ptr) Variable Input + 34: 6(int) Constant 5 + 4(main): 2 Function None 3 + 5: Label + 12: 7(ivec3) Load 11(i3) + 16: 13(int) Load 15(u1) + 18: 17(ivec3) CompositeConstruct 16 16 16 + 19: 7(ivec3) ShiftLeftLogical 12 18 + Store 9(icolor) 19 + 21: 7(ivec3) Load 9(icolor) + 22: 17(ivec3) CompositeConstruct 20 20 20 + 23: 7(ivec3) ShiftLeftLogical 21 22 + Store 9(icolor) 23 + 28: 17(ivec3) Load 27(u3) + 31: 6(int) Load 30(i1) + 32: 7(ivec3) CompositeConstruct 31 31 31 + 33: 17(ivec3) ShiftRightLogical 28 32 + Store 25(ucolor) 33 + 35: 17(ivec3) Load 25(ucolor) + 36: 7(ivec3) CompositeConstruct 34 34 34 + 37: 17(ivec3) ShiftRightLogical 35 36 + Store 25(ucolor) 37 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out b/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out new file mode 100644 index 0000000000..d651824597 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.shortCircuit.frag.out @@ -0,0 +1,235 @@ +spv.shortCircuit.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 147 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 24 34 113 140 142 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 8 "foo(" + Name 12 "of1" + Name 24 "of4" + Name 27 "ub" + Name 34 "ui" + Name 44 "uba" + Name 113 "uf" + Name 140 "uiv4" + Name 142 "uv4" + Name 145 "ub41" + Name 146 "ub42" + Decorate 34(ui) Flat + Decorate 140(uiv4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeFunction 6(bool) + 10: TypeFloat 32 + 11: TypePointer Output 10(float) + 12(of1): 11(ptr) Variable Output + 14: 10(float) Constant 1065353216 + 17: 10(float) Constant 1092616192 + 21: 10(float) Constant 0 + 22: TypeVector 10(float) 4 + 23: TypePointer Output 22(fvec4) + 24(of4): 23(ptr) Variable Output + 25: 22(fvec4) ConstantComposite 21 21 21 21 + 26: TypePointer Private 6(bool) + 27(ub): 26(ptr) Variable Private + 32: TypeInt 32 1 + 33: TypePointer Input 32(int) + 34(ui): 33(ptr) Variable Input + 36: 32(int) Constant 2 + 44(uba): 26(ptr) Variable Private + 112: TypePointer Input 10(float) + 113(uf): 112(ptr) Variable Input + 116: 10(float) Constant 1082130432 + 138: TypeVector 32(int) 4 + 139: TypePointer Input 138(ivec4) + 140(uiv4): 139(ptr) Variable Input + 141: TypePointer Input 22(fvec4) + 142(uv4): 141(ptr) Variable Input + 143: TypeVector 6(bool) 4 + 144: TypePointer Private 143(bvec4) + 145(ub41): 144(ptr) Variable Private + 146(ub42): 144(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + Store 12(of1) 21 + Store 24(of4) 25 + 28: 6(bool) Load 27(ub) + 29: 6(bool) LogicalNot 28 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + 35: 32(int) Load 34(ui) + 37: 6(bool) SGreaterThan 35 36 + Branch 31 + 31: Label + 38: 6(bool) Phi 28 5 37 30 + SelectionMerge 40 None + BranchConditional 38 39 40 + 39: Label + 41: 10(float) Load 12(of1) + 42: 10(float) FAdd 41 14 + Store 12(of1) 42 + Branch 40 + 40: Label + 43: 6(bool) Load 27(ub) + 45: 6(bool) Load 44(uba) + 46: 6(bool) LogicalNot 45 + 47: 6(bool) LogicalAnd 43 46 + SelectionMerge 49 None + BranchConditional 47 48 49 + 48: Label + 50: 10(float) Load 12(of1) + 51: 10(float) FAdd 50 14 + Store 12(of1) 51 + Branch 49 + 49: Label + 52: 6(bool) Load 27(ub) + 53: 6(bool) LogicalNot 52 + SelectionMerge 55 None + BranchConditional 53 54 55 + 54: Label + 56: 6(bool) FunctionCall 8(foo() + Branch 55 + 55: Label + 57: 6(bool) Phi 52 49 56 54 + SelectionMerge 59 None + BranchConditional 57 58 59 + 58: Label + 60: 10(float) Load 12(of1) + 61: 10(float) FAdd 60 14 + Store 12(of1) 61 + Branch 59 + 59: Label + 62: 6(bool) Load 27(ub) + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + 65: 6(bool) FunctionCall 8(foo() + Branch 64 + 64: Label + 66: 6(bool) Phi 62 59 65 63 + SelectionMerge 68 None + BranchConditional 66 67 68 + 67: Label + 69: 10(float) Load 12(of1) + 70: 10(float) FAdd 69 14 + Store 12(of1) 70 + Branch 68 + 68: Label + 71: 6(bool) FunctionCall 8(foo() + 72: 6(bool) Load 27(ub) + 73: 6(bool) LogicalOr 71 72 + SelectionMerge 75 None + BranchConditional 73 74 75 + 74: Label + 76: 10(float) Load 12(of1) + 77: 10(float) FAdd 76 14 + Store 12(of1) 77 + Branch 75 + 75: Label + 78: 6(bool) FunctionCall 8(foo() + 79: 6(bool) Load 27(ub) + 80: 6(bool) LogicalAnd 78 79 + SelectionMerge 82 None + BranchConditional 80 81 82 + 81: Label + 83: 10(float) Load 12(of1) + 84: 10(float) FAdd 83 14 + Store 12(of1) 84 + Branch 82 + 82: Label + 85: 6(bool) Load 27(ub) + 86: 6(bool) LogicalNot 85 + SelectionMerge 88 None + BranchConditional 86 87 88 + 87: Label + 89: 10(float) Load 12(of1) + 90: 10(float) FAdd 89 14 + Store 12(of1) 90 + 91: 6(bool) FOrdGreaterThan 90 14 + Branch 88 + 88: Label + 92: 6(bool) Phi 85 82 91 87 + SelectionMerge 94 None + BranchConditional 92 93 94 + 93: Label + 95: 22(fvec4) Load 24(of4) + 96: 22(fvec4) CompositeConstruct 14 14 14 14 + 97: 22(fvec4) FAdd 95 96 + Store 24(of4) 97 + Branch 94 + 94: Label + 98: 10(float) Load 12(of1) + 99: 10(float) FAdd 98 14 + Store 12(of1) 99 + 100: 6(bool) FOrdGreaterThan 99 14 + 101: 6(bool) Load 27(ub) + 102: 6(bool) LogicalOr 100 101 + SelectionMerge 104 None + BranchConditional 102 103 104 + 103: Label + 105: 22(fvec4) Load 24(of4) + 106: 22(fvec4) CompositeConstruct 14 14 14 14 + 107: 22(fvec4) FAdd 105 106 + Store 24(of4) 107 + Branch 104 + 104: Label + 108: 6(bool) Load 27(ub) + 109: 6(bool) LogicalNot 108 + SelectionMerge 111 None + BranchConditional 109 110 111 + 110: Label + 114: 10(float) Load 113(uf) + 115: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 114 + 117: 10(float) FMul 115 116 + 118: 10(float) Load 12(of1) + 119: 6(bool) FOrdGreaterThan 117 118 + Branch 111 + 111: Label + 120: 6(bool) Phi 108 104 119 110 + SelectionMerge 122 None + BranchConditional 120 121 122 + 121: Label + 123: 10(float) Load 12(of1) + 124: 10(float) FAdd 123 14 + Store 12(of1) 124 + Branch 122 + 122: Label + 125: 6(bool) Load 27(ub) + SelectionMerge 127 None + BranchConditional 125 126 127 + 126: Label + 128: 10(float) Load 113(uf) + 129: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 128 + 130: 10(float) FMul 129 116 + 131: 10(float) Load 12(of1) + 132: 6(bool) FOrdGreaterThan 130 131 + Branch 127 + 127: Label + 133: 6(bool) Phi 125 122 132 126 + SelectionMerge 135 None + BranchConditional 133 134 135 + 134: Label + 136: 10(float) Load 12(of1) + 137: 10(float) FAdd 136 14 + Store 12(of1) 137 + Branch 135 + 135: Label + Return + FunctionEnd + 8(foo(): 6(bool) Function None 7 + 9: Label + 13: 10(float) Load 12(of1) + 15: 10(float) FAdd 13 14 + Store 12(of1) 15 + 16: 10(float) Load 12(of1) + 18: 6(bool) FOrdGreaterThan 16 17 + ReturnValue 18 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out b/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out new file mode 100644 index 0000000000..627b31c1a8 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out @@ -0,0 +1,36 @@ +spv.simpleFunctionCall.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 19 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 17 + ExecutionMode 4 OriginUpperLeft + Source GLSL 150 + Name 4 "main" + Name 9 "foo(" + Name 12 "BaseColor" + Name 17 "gl_FragColor" + Decorate 17(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Input 7(fvec4) + 12(BaseColor): 11(ptr) Variable Input + 16: TypePointer Output 7(fvec4) +17(gl_FragColor): 16(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 18: 7(fvec4) FunctionCall 9(foo() + Store 17(gl_FragColor) 18 + Return + FunctionEnd + 9(foo(): 7(fvec4) Function None 8 + 10: Label + 13: 7(fvec4) Load 12(BaseColor) + ReturnValue 13 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out b/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out new file mode 100644 index 0000000000..8557458545 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.simpleMat.vert.out @@ -0,0 +1,60 @@ +spv.simpleMat.vert +WARNING: 0:3: varying deprecated in version 130; may be removed in future release + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 12 15 19 23 34 + Source GLSL 330 + Name 4 "main" + Name 9 "glPos" + Name 12 "mvp" + Name 15 "v" + Name 19 "f" + Name 23 "am3" + Name 34 "arraym" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(glPos): 8(ptr) Variable Output + 10: TypeMatrix 7(fvec4) 4 + 11: TypePointer Output 10 + 12(mvp): 11(ptr) Variable Output + 14: TypePointer Input 7(fvec4) + 15(v): 14(ptr) Variable Input + 18: TypePointer Output 6(float) + 19(f): 18(ptr) Variable Output + 20: TypeVector 6(float) 3 + 21: TypeMatrix 20(fvec3) 3 + 22: TypePointer Input 21 + 23(am3): 22(ptr) Variable Input + 24: TypeInt 32 1 + 25: 24(int) Constant 2 + 26: TypeInt 32 0 + 27: 26(int) Constant 1 + 28: TypePointer Input 6(float) + 31: 26(int) Constant 3 + 32: TypeArray 10 31 + 33: TypePointer Input 32 + 34(arraym): 33(ptr) Variable Input + 35: 24(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 13: 10 Load 12(mvp) + 16: 7(fvec4) Load 15(v) + 17: 7(fvec4) MatrixTimesVector 13 16 + Store 9(glPos) 17 + 29: 28(ptr) AccessChain 23(am3) 25 27 + 30: 6(float) Load 29 + 36: 28(ptr) AccessChain 34(arraym) 35 25 31 + 37: 6(float) Load 36 + 38: 6(float) FAdd 30 37 + Store 19(f) 38 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out new file mode 100644 index 0000000000..d94f643861 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.sparseTexture.frag.out @@ -0,0 +1,589 @@ +spv.sparseTexture.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 438 + + Capability Shader + Capability ImageGatherExtended + Capability StorageImageMultisample + Capability SampledRect + Capability SparseResidency + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 48 89 365 393 405 423 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_ARB_sparse_texture2" + Name 4 "main" + Name 8 "resident" + Name 13 "texel" + Name 18 "itexel" + Name 23 "utexel" + Name 29 "s2D" + Name 33 "c2" + Name 35 "ResType" + Name 44 "s3D" + Name 48 "c3" + Name 59 "isCube" + Name 62 "ResType" + Name 71 "s2DShadow" + Name 77 "ResType" + Name 86 "sCubeArrayShadow" + Name 89 "c4" + Name 108 "usCubeArray" + Name 111 "ResType" + Name 140 "us2DRect" + Name 154 "s2DArrayShadow" + Name 188 "s2DMS" + Name 228 "is2DArray" + Name 261 "sCubeShadow" + Name 294 "s2DRectShadow" + Name 365 "offsets" + Name 390 "i2D" + Name 393 "ic2" + Name 402 "ii3D" + Name 405 "ic3" + Name 414 "i2DMS" + Name 423 "outColor" + Decorate 29(s2D) DescriptorSet 0 + Decorate 44(s3D) DescriptorSet 0 + Decorate 59(isCube) DescriptorSet 0 + Decorate 71(s2DShadow) DescriptorSet 0 + Decorate 86(sCubeArrayShadow) DescriptorSet 0 + Decorate 108(usCubeArray) DescriptorSet 0 + Decorate 140(us2DRect) DescriptorSet 0 + Decorate 154(s2DArrayShadow) DescriptorSet 0 + Decorate 188(s2DMS) DescriptorSet 0 + Decorate 228(is2DArray) DescriptorSet 0 + Decorate 261(sCubeShadow) DescriptorSet 0 + Decorate 294(s2DRectShadow) DescriptorSet 0 + Decorate 365(offsets) Flat + Decorate 390(i2D) DescriptorSet 0 + Decorate 393(ic2) Flat + Decorate 402(ii3D) DescriptorSet 0 + Decorate 405(ic3) Flat + Decorate 414(i2DMS) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Function 11(fvec4) + 14: 10(float) Constant 0 + 15: 11(fvec4) ConstantComposite 14 14 14 14 + 16: TypeVector 6(int) 4 + 17: TypePointer Function 16(ivec4) + 19: 16(ivec4) ConstantComposite 9 9 9 9 + 20: TypeInt 32 0 + 21: TypeVector 20(int) 4 + 22: TypePointer Function 21(ivec4) + 24: 20(int) Constant 0 + 25: 21(ivec4) ConstantComposite 24 24 24 24 + 26: TypeImage 10(float) 2D sampled format:Unknown + 27: TypeSampledImage 26 + 28: TypePointer UniformConstant 27 + 29(s2D): 28(ptr) Variable UniformConstant + 31: TypeVector 10(float) 2 + 32: TypePointer Input 31(fvec2) + 33(c2): 32(ptr) Variable Input + 35(ResType): TypeStruct 6(int) 11(fvec4) + 41: TypeImage 10(float) 3D sampled format:Unknown + 42: TypeSampledImage 41 + 43: TypePointer UniformConstant 42 + 44(s3D): 43(ptr) Variable UniformConstant + 46: TypeVector 10(float) 3 + 47: TypePointer Input 46(fvec3) + 48(c3): 47(ptr) Variable Input + 50: 10(float) Constant 1073741824 + 56: TypeImage 6(int) Cube sampled format:Unknown + 57: TypeSampledImage 56 + 58: TypePointer UniformConstant 57 + 59(isCube): 58(ptr) Variable UniformConstant + 62(ResType): TypeStruct 6(int) 16(ivec4) + 68: TypeImage 10(float) 2D depth sampled format:Unknown + 69: TypeSampledImage 68 + 70: TypePointer UniformConstant 69 + 71(s2DShadow): 70(ptr) Variable UniformConstant + 74: TypePointer Function 10(float) + 77(ResType): TypeStruct 6(int) 10(float) + 83: TypeImage 10(float) Cube depth array sampled format:Unknown + 84: TypeSampledImage 83 + 85: TypePointer UniformConstant 84 +86(sCubeArrayShadow): 85(ptr) Variable UniformConstant + 88: TypePointer Input 11(fvec4) + 89(c4): 88(ptr) Variable Input + 91: 10(float) Constant 1065353216 + 105: TypeImage 20(int) Cube array sampled format:Unknown + 106: TypeSampledImage 105 + 107: TypePointer UniformConstant 106 +108(usCubeArray): 107(ptr) Variable UniformConstant + 111(ResType): TypeStruct 6(int) 21(ivec4) + 119: 20(int) Constant 1 + 129: TypeVector 6(int) 3 + 130: 6(int) Constant 2 + 131: 129(ivec3) ConstantComposite 130 130 130 + 137: TypeImage 20(int) Rect sampled format:Unknown + 138: TypeSampledImage 137 + 139: TypePointer UniformConstant 138 + 140(us2DRect): 139(ptr) Variable UniformConstant + 143: TypeVector 6(int) 2 + 144: 6(int) Constant 3 + 145: 143(ivec2) ConstantComposite 144 144 + 151: TypeImage 10(float) 2D depth array sampled format:Unknown + 152: TypeSampledImage 151 + 153: TypePointer UniformConstant 152 +154(s2DArrayShadow): 153(ptr) Variable UniformConstant + 157: 6(int) Constant 5 + 158: 143(ivec2) ConstantComposite 157 157 + 159: 20(int) Constant 2 + 185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown + 186: TypeSampledImage 185 + 187: TypePointer UniformConstant 186 + 188(s2DMS): 187(ptr) Variable UniformConstant + 192: 6(int) Constant 4 + 202: 129(ivec3) ConstantComposite 192 192 192 + 225: TypeImage 6(int) 2D array sampled format:Unknown + 226: TypeSampledImage 225 + 227: TypePointer UniformConstant 226 + 228(is2DArray): 227(ptr) Variable UniformConstant + 231: 6(int) Constant 6 + 232: 143(ivec2) ConstantComposite 231 231 + 240: 6(int) Constant 7 + 241: 143(ivec2) ConstantComposite 240 240 + 258: TypeImage 10(float) Cube depth sampled format:Unknown + 259: TypeSampledImage 258 + 260: TypePointer UniformConstant 259 +261(sCubeShadow): 260(ptr) Variable UniformConstant + 291: TypeImage 10(float) Rect depth sampled format:Unknown + 292: TypeSampledImage 291 + 293: TypePointer UniformConstant 292 +294(s2DRectShadow): 293(ptr) Variable UniformConstant + 299: 20(int) Constant 3 + 311: 143(ivec2) ConstantComposite 130 130 + 340: 143(ivec2) ConstantComposite 192 192 + 362: 20(int) Constant 4 + 363: TypeArray 143(ivec2) 362 + 364: TypePointer Input 363 + 365(offsets): 364(ptr) Variable Input + 388: TypeImage 10(float) 2D nonsampled format:Rgba32f + 389: TypePointer UniformConstant 388 + 390(i2D): 389(ptr) Variable UniformConstant + 392: TypePointer Input 143(ivec2) + 393(ic2): 392(ptr) Variable Input + 400: TypeImage 6(int) 3D nonsampled format:Rgba32i + 401: TypePointer UniformConstant 400 + 402(ii3D): 401(ptr) Variable UniformConstant + 404: TypePointer Input 129(ivec3) + 405(ic3): 404(ptr) Variable Input + 412: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f + 413: TypePointer UniformConstant 412 + 414(i2DMS): 413(ptr) Variable UniformConstant + 422: TypePointer Output 11(fvec4) + 423(outColor): 422(ptr) Variable Output + 425: TypeBool + 4(main): 2 Function None 3 + 5: Label + 8(resident): 7(ptr) Variable Function + 13(texel): 12(ptr) Variable Function + 18(itexel): 17(ptr) Variable Function + 23(utexel): 22(ptr) Variable Function + 427: 12(ptr) Variable Function + Store 8(resident) 9 + Store 13(texel) 15 + Store 18(itexel) 19 + Store 23(utexel) 25 + 30: 27 Load 29(s2D) + 34: 31(fvec2) Load 33(c2) + 36: 35(ResType) ImageSparseSampleImplicitLod 30 34 + 37: 11(fvec4) CompositeExtract 36 1 + Store 13(texel) 37 + 38: 6(int) CompositeExtract 36 0 + 39: 6(int) Load 8(resident) + 40: 6(int) BitwiseOr 39 38 + Store 8(resident) 40 + 45: 42 Load 44(s3D) + 49: 46(fvec3) Load 48(c3) + 51: 35(ResType) ImageSparseSampleImplicitLod 45 49 Bias 50 + 52: 11(fvec4) CompositeExtract 51 1 + Store 13(texel) 52 + 53: 6(int) CompositeExtract 51 0 + 54: 6(int) Load 8(resident) + 55: 6(int) BitwiseOr 54 53 + Store 8(resident) 55 + 60: 57 Load 59(isCube) + 61: 46(fvec3) Load 48(c3) + 63: 62(ResType) ImageSparseSampleImplicitLod 60 61 + 64: 16(ivec4) CompositeExtract 63 1 + Store 18(itexel) 64 + 65: 6(int) CompositeExtract 63 0 + 66: 6(int) Load 8(resident) + 67: 6(int) BitwiseOr 66 65 + Store 8(resident) 67 + 72: 69 Load 71(s2DShadow) + 73: 46(fvec3) Load 48(c3) + 75: 74(ptr) AccessChain 13(texel) 24 + 76: 10(float) CompositeExtract 73 2 + 78: 77(ResType) ImageSparseSampleDrefImplicitLod 72 73 76 + 79: 10(float) CompositeExtract 78 1 + Store 75 79 + 80: 6(int) CompositeExtract 78 0 + 81: 6(int) Load 8(resident) + 82: 6(int) BitwiseOr 81 80 + Store 8(resident) 82 + 87: 84 Load 86(sCubeArrayShadow) + 90: 11(fvec4) Load 89(c4) + 92: 74(ptr) AccessChain 13(texel) 24 + 93: 77(ResType) ImageSparseSampleDrefImplicitLod 87 90 91 + 94: 10(float) CompositeExtract 93 1 + Store 92 94 + 95: 6(int) CompositeExtract 93 0 + 96: 6(int) Load 8(resident) + 97: 6(int) BitwiseOr 96 95 + Store 8(resident) 97 + 98: 27 Load 29(s2D) + 99: 31(fvec2) Load 33(c2) + 100: 35(ResType) ImageSparseSampleExplicitLod 98 99 Lod 50 + 101: 11(fvec4) CompositeExtract 100 1 + Store 13(texel) 101 + 102: 6(int) CompositeExtract 100 0 + 103: 6(int) Load 8(resident) + 104: 6(int) BitwiseOr 103 102 + Store 8(resident) 104 + 109: 106 Load 108(usCubeArray) + 110: 11(fvec4) Load 89(c4) + 112:111(ResType) ImageSparseSampleExplicitLod 109 110 Lod 91 + 113: 21(ivec4) CompositeExtract 112 1 + Store 23(utexel) 113 + 114: 6(int) CompositeExtract 112 0 + 115: 6(int) Load 8(resident) + 116: 6(int) BitwiseOr 115 114 + Store 8(resident) 116 + 117: 69 Load 71(s2DShadow) + 118: 46(fvec3) Load 48(c3) + 120: 74(ptr) AccessChain 13(texel) 119 + 121: 10(float) CompositeExtract 118 2 + 122: 77(ResType) ImageSparseSampleDrefExplicitLod 117 118 121 Lod 50 + 123: 10(float) CompositeExtract 122 1 + Store 120 123 + 124: 6(int) CompositeExtract 122 0 + 125: 6(int) Load 8(resident) + 126: 6(int) BitwiseOr 125 124 + Store 8(resident) 126 + 127: 42 Load 44(s3D) + 128: 46(fvec3) Load 48(c3) + 132: 35(ResType) ImageSparseSampleImplicitLod 127 128 Bias ConstOffset 50 131 + 133: 11(fvec4) CompositeExtract 132 1 + Store 13(texel) 133 + 134: 6(int) CompositeExtract 132 0 + 135: 6(int) Load 8(resident) + 136: 6(int) BitwiseOr 135 134 + Store 8(resident) 136 + 141: 138 Load 140(us2DRect) + 142: 31(fvec2) Load 33(c2) + 146:111(ResType) ImageSparseSampleImplicitLod 141 142 ConstOffset 145 + 147: 21(ivec4) CompositeExtract 146 1 + Store 23(utexel) 147 + 148: 6(int) CompositeExtract 146 0 + 149: 6(int) Load 8(resident) + 150: 6(int) BitwiseOr 149 148 + Store 8(resident) 150 + 155: 152 Load 154(s2DArrayShadow) + 156: 11(fvec4) Load 89(c4) + 160: 74(ptr) AccessChain 13(texel) 159 + 161: 10(float) CompositeExtract 156 3 + 162: 77(ResType) ImageSparseSampleDrefImplicitLod 155 156 161 ConstOffset 158 + 163: 10(float) CompositeExtract 162 1 + Store 160 163 + 164: 6(int) CompositeExtract 162 0 + 165: 6(int) Load 8(resident) + 166: 6(int) BitwiseOr 165 164 + Store 8(resident) 166 + 167: 27 Load 29(s2D) + 168: 31(fvec2) Load 33(c2) + 169: 143(ivec2) ConvertFToS 168 + 170: 26 Image 167 + 171: 35(ResType) ImageSparseFetch 170 169 Lod 130 + 172: 11(fvec4) CompositeExtract 171 1 + Store 13(texel) 172 + 173: 6(int) CompositeExtract 171 0 + 174: 6(int) Load 8(resident) + 175: 6(int) BitwiseOr 174 173 + Store 8(resident) 175 + 176: 138 Load 140(us2DRect) + 177: 31(fvec2) Load 33(c2) + 178: 143(ivec2) ConvertFToS 177 + 179: 137 Image 176 + 180:111(ResType) ImageSparseFetch 179 178 + 181: 21(ivec4) CompositeExtract 180 1 + Store 23(utexel) 181 + 182: 6(int) CompositeExtract 180 0 + 183: 6(int) Load 8(resident) + 184: 6(int) BitwiseOr 183 182 + Store 8(resident) 184 + 189: 186 Load 188(s2DMS) + 190: 31(fvec2) Load 33(c2) + 191: 143(ivec2) ConvertFToS 190 + 193: 185 Image 189 + 194: 35(ResType) ImageSparseFetch 193 191 Sample 192 + 195: 11(fvec4) CompositeExtract 194 1 + Store 13(texel) 195 + 196: 6(int) CompositeExtract 194 0 + 197: 6(int) Load 8(resident) + 198: 6(int) BitwiseOr 197 196 + Store 8(resident) 198 + 199: 42 Load 44(s3D) + 200: 46(fvec3) Load 48(c3) + 201: 129(ivec3) ConvertFToS 200 + 203: 41 Image 199 + 204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202 + 205: 11(fvec4) CompositeExtract 204 1 + Store 13(texel) 205 + 206: 6(int) CompositeExtract 204 0 + 207: 6(int) Load 8(resident) + 208: 6(int) BitwiseOr 207 206 + Store 8(resident) 208 + 209: 138 Load 140(us2DRect) + 210: 31(fvec2) Load 33(c2) + 211: 143(ivec2) ConvertFToS 210 + 212: 137 Image 209 + 213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145 + 214: 21(ivec4) CompositeExtract 213 1 + Store 23(utexel) 214 + 215: 6(int) CompositeExtract 213 0 + 216: 6(int) Load 8(resident) + 217: 6(int) BitwiseOr 216 215 + Store 8(resident) 217 + 218: 27 Load 29(s2D) + 219: 31(fvec2) Load 33(c2) + 220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158 + 221: 11(fvec4) CompositeExtract 220 1 + Store 13(texel) 221 + 222: 6(int) CompositeExtract 220 0 + 223: 6(int) Load 8(resident) + 224: 6(int) BitwiseOr 223 222 + Store 8(resident) 224 + 229: 226 Load 228(is2DArray) + 230: 46(fvec3) Load 48(c3) + 233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232 + 234: 16(ivec4) CompositeExtract 233 1 + Store 18(itexel) 234 + 235: 6(int) CompositeExtract 233 0 + 236: 6(int) Load 8(resident) + 237: 6(int) BitwiseOr 236 235 + Store 8(resident) 237 + 238: 69 Load 71(s2DShadow) + 239: 46(fvec3) Load 48(c3) + 242: 74(ptr) AccessChain 13(texel) 159 + 243: 10(float) CompositeExtract 239 2 + 244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241 + 245: 10(float) CompositeExtract 244 1 + Store 242 245 + 246: 6(int) CompositeExtract 244 0 + 247: 6(int) Load 8(resident) + 248: 6(int) BitwiseOr 247 246 + Store 8(resident) 248 + 249: 42 Load 44(s3D) + 250: 46(fvec3) Load 48(c3) + 251: 46(fvec3) Load 48(c3) + 252: 46(fvec3) Load 48(c3) + 253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252 + 254: 11(fvec4) CompositeExtract 253 1 + Store 13(texel) 254 + 255: 6(int) CompositeExtract 253 0 + 256: 6(int) Load 8(resident) + 257: 6(int) BitwiseOr 256 255 + Store 8(resident) 257 + 262: 259 Load 261(sCubeShadow) + 263: 11(fvec4) Load 89(c4) + 264: 46(fvec3) Load 48(c3) + 265: 46(fvec3) Load 48(c3) + 266: 74(ptr) AccessChain 13(texel) 119 + 267: 10(float) CompositeExtract 263 3 + 268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265 + 269: 10(float) CompositeExtract 268 1 + Store 266 269 + 270: 6(int) CompositeExtract 268 0 + 271: 6(int) Load 8(resident) + 272: 6(int) BitwiseOr 271 270 + Store 8(resident) 272 + 273: 106 Load 108(usCubeArray) + 274: 11(fvec4) Load 89(c4) + 275: 46(fvec3) Load 48(c3) + 276: 46(fvec3) Load 48(c3) + 277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276 + 278: 21(ivec4) CompositeExtract 277 1 + Store 23(utexel) 278 + 279: 6(int) CompositeExtract 277 0 + 280: 6(int) Load 8(resident) + 281: 6(int) BitwiseOr 280 279 + Store 8(resident) 281 + 282: 27 Load 29(s2D) + 283: 31(fvec2) Load 33(c2) + 284: 31(fvec2) Load 33(c2) + 285: 31(fvec2) Load 33(c2) + 286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158 + 287: 11(fvec4) CompositeExtract 286 1 + Store 13(texel) 287 + 288: 6(int) CompositeExtract 286 0 + 289: 6(int) Load 8(resident) + 290: 6(int) BitwiseOr 289 288 + Store 8(resident) 290 + 295: 292 Load 294(s2DRectShadow) + 296: 46(fvec3) Load 48(c3) + 297: 31(fvec2) Load 33(c2) + 298: 31(fvec2) Load 33(c2) + 300: 74(ptr) AccessChain 13(texel) 299 + 301: 10(float) CompositeExtract 296 2 + 302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232 + 303: 10(float) CompositeExtract 302 1 + Store 300 303 + 304: 6(int) CompositeExtract 302 0 + 305: 6(int) Load 8(resident) + 306: 6(int) BitwiseOr 305 304 + Store 8(resident) 306 + 307: 226 Load 228(is2DArray) + 308: 46(fvec3) Load 48(c3) + 309: 31(fvec2) Load 33(c2) + 310: 31(fvec2) Load 33(c2) + 312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311 + 313: 16(ivec4) CompositeExtract 312 1 + Store 18(itexel) 313 + 314: 6(int) CompositeExtract 312 0 + 315: 6(int) Load 8(resident) + 316: 6(int) BitwiseOr 315 314 + Store 8(resident) 316 + 317: 27 Load 29(s2D) + 318: 31(fvec2) Load 33(c2) + 319: 35(ResType) ImageSparseGather 317 318 9 + 320: 11(fvec4) CompositeExtract 319 1 + Store 13(texel) 320 + 321: 6(int) CompositeExtract 319 0 + 322: 6(int) Load 8(resident) + 323: 6(int) BitwiseOr 322 321 + Store 8(resident) 323 + 324: 226 Load 228(is2DArray) + 325: 46(fvec3) Load 48(c3) + 326: 62(ResType) ImageSparseGather 324 325 130 + 327: 16(ivec4) CompositeExtract 326 1 + Store 18(itexel) 327 + 328: 6(int) CompositeExtract 326 0 + 329: 6(int) Load 8(resident) + 330: 6(int) BitwiseOr 329 328 + Store 8(resident) 330 + 331: 152 Load 154(s2DArrayShadow) + 332: 46(fvec3) Load 48(c3) + 333: 35(ResType) ImageSparseDrefGather 331 332 50 + 334: 11(fvec4) CompositeExtract 333 1 + Store 13(texel) 334 + 335: 6(int) CompositeExtract 333 0 + 336: 6(int) Load 8(resident) + 337: 6(int) BitwiseOr 336 335 + Store 8(resident) 337 + 338: 27 Load 29(s2D) + 339: 31(fvec2) Load 33(c2) + 341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340 + 342: 11(fvec4) CompositeExtract 341 1 + Store 13(texel) 342 + 343: 6(int) CompositeExtract 341 0 + 344: 6(int) Load 8(resident) + 345: 6(int) BitwiseOr 344 343 + Store 8(resident) 345 + 346: 226 Load 228(is2DArray) + 347: 46(fvec3) Load 48(c3) + 348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158 + 349: 16(ivec4) CompositeExtract 348 1 + Store 18(itexel) 349 + 350: 6(int) CompositeExtract 348 0 + 351: 6(int) Load 8(resident) + 352: 6(int) BitwiseOr 351 350 + Store 8(resident) 352 + 353: 292 Load 294(s2DRectShadow) + 354: 31(fvec2) Load 33(c2) + 355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241 + 356: 11(fvec4) CompositeExtract 355 1 + Store 13(texel) 356 + 357: 6(int) CompositeExtract 355 0 + 358: 6(int) Load 8(resident) + 359: 6(int) BitwiseOr 358 357 + Store 8(resident) 359 + 360: 27 Load 29(s2D) + 361: 31(fvec2) Load 33(c2) + 366: 363 Load 365(offsets) + 367: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 366 + 368: 11(fvec4) CompositeExtract 367 1 + Store 13(texel) 368 + 369: 6(int) CompositeExtract 367 0 + 370: 6(int) Load 8(resident) + 371: 6(int) BitwiseOr 370 369 + Store 8(resident) 371 + 372: 226 Load 228(is2DArray) + 373: 46(fvec3) Load 48(c3) + 374: 363 Load 365(offsets) + 375: 62(ResType) ImageSparseGather 372 373 130 ConstOffsets 374 + 376: 16(ivec4) CompositeExtract 375 1 + Store 18(itexel) 376 + 377: 6(int) CompositeExtract 375 0 + 378: 6(int) Load 8(resident) + 379: 6(int) BitwiseOr 378 377 + Store 8(resident) 379 + 380: 292 Load 294(s2DRectShadow) + 381: 31(fvec2) Load 33(c2) + 382: 363 Load 365(offsets) + 383: 35(ResType) ImageSparseDrefGather 380 381 50 ConstOffsets 382 + 384: 11(fvec4) CompositeExtract 383 1 + Store 13(texel) 384 + 385: 6(int) CompositeExtract 383 0 + 386: 6(int) Load 8(resident) + 387: 6(int) BitwiseOr 386 385 + Store 8(resident) 387 + 391: 388 Load 390(i2D) + 394: 143(ivec2) Load 393(ic2) + 395: 35(ResType) ImageSparseRead 391 394 + 396: 11(fvec4) CompositeExtract 395 1 + Store 13(texel) 396 + 397: 6(int) CompositeExtract 395 0 + 398: 6(int) Load 8(resident) + 399: 6(int) BitwiseOr 398 397 + Store 8(resident) 399 + 403: 400 Load 402(ii3D) + 406: 129(ivec3) Load 405(ic3) + 407: 62(ResType) ImageSparseRead 403 406 + 408: 16(ivec4) CompositeExtract 407 1 + Store 18(itexel) 408 + 409: 6(int) CompositeExtract 407 0 + 410: 6(int) Load 8(resident) + 411: 6(int) BitwiseOr 410 409 + Store 8(resident) 411 + 415: 412 Load 414(i2DMS) + 416: 143(ivec2) Load 393(ic2) + 417: 35(ResType) ImageSparseRead 415 416 Sample 144 + 418: 11(fvec4) CompositeExtract 417 1 + Store 13(texel) 418 + 419: 6(int) CompositeExtract 417 0 + 420: 6(int) Load 8(resident) + 421: 6(int) BitwiseOr 420 419 + Store 8(resident) 421 + 424: 6(int) Load 8(resident) + 426: 425(bool) ImageSparseTexelsResident 424 + SelectionMerge 429 None + BranchConditional 426 428 431 + 428: Label + 430: 11(fvec4) Load 13(texel) + Store 427 430 + Branch 429 + 431: Label + 432: 16(ivec4) Load 18(itexel) + 433: 11(fvec4) ConvertSToF 432 + 434: 21(ivec4) Load 23(utexel) + 435: 11(fvec4) ConvertUToF 434 + 436: 11(fvec4) FAdd 433 435 + Store 427 436 + Branch 429 + 429: Label + 437: 11(fvec4) Load 427 + Store 423(outColor) 437 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out b/deps/glslang/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out new file mode 100644 index 0000000000..f63fd2f5c0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out @@ -0,0 +1,465 @@ +spv.sparseTextureClamp.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 360 + + Capability Shader + Capability SampledRect + Capability SparseResidency + Capability MinLod + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 36 51 95 345 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_ARB_sparse_texture_clamp" + Name 4 "main" + Name 8 "resident" + Name 13 "texel" + Name 18 "itexel" + Name 23 "utexel" + Name 29 "s2D" + Name 33 "c2" + Name 36 "lodClamp" + Name 38 "ResType" + Name 47 "s3D" + Name 51 "c3" + Name 63 "isCube" + Name 67 "ResType" + Name 76 "s2DShadow" + Name 83 "ResType" + Name 92 "sCubeArrayShadow" + Name 95 "c4" + Name 154 "us2DRect" + Name 161 "ResType" + Name 170 "s2DArrayShadow" + Name 218 "sCubeShadow" + Name 235 "usCubeArray" + Name 286 "s2DRectShadow" + Name 305 "is2DArray" + Name 345 "outColor" + Decorate 29(s2D) DescriptorSet 0 + Decorate 47(s3D) DescriptorSet 0 + Decorate 63(isCube) DescriptorSet 0 + Decorate 76(s2DShadow) DescriptorSet 0 + Decorate 92(sCubeArrayShadow) DescriptorSet 0 + Decorate 154(us2DRect) DescriptorSet 0 + Decorate 170(s2DArrayShadow) DescriptorSet 0 + Decorate 218(sCubeShadow) DescriptorSet 0 + Decorate 235(usCubeArray) DescriptorSet 0 + Decorate 286(s2DRectShadow) DescriptorSet 0 + Decorate 305(is2DArray) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Function 11(fvec4) + 14: 10(float) Constant 0 + 15: 11(fvec4) ConstantComposite 14 14 14 14 + 16: TypeVector 6(int) 4 + 17: TypePointer Function 16(ivec4) + 19: 16(ivec4) ConstantComposite 9 9 9 9 + 20: TypeInt 32 0 + 21: TypeVector 20(int) 4 + 22: TypePointer Function 21(ivec4) + 24: 20(int) Constant 0 + 25: 21(ivec4) ConstantComposite 24 24 24 24 + 26: TypeImage 10(float) 2D sampled format:Unknown + 27: TypeSampledImage 26 + 28: TypePointer UniformConstant 27 + 29(s2D): 28(ptr) Variable UniformConstant + 31: TypeVector 10(float) 2 + 32: TypePointer Input 31(fvec2) + 33(c2): 32(ptr) Variable Input + 35: TypePointer Input 10(float) + 36(lodClamp): 35(ptr) Variable Input + 38(ResType): TypeStruct 6(int) 11(fvec4) + 44: TypeImage 10(float) 3D sampled format:Unknown + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(s3D): 46(ptr) Variable UniformConstant + 49: TypeVector 10(float) 3 + 50: TypePointer Input 49(fvec3) + 51(c3): 50(ptr) Variable Input + 54: 10(float) Constant 1073741824 + 60: TypeImage 6(int) Cube sampled format:Unknown + 61: TypeSampledImage 60 + 62: TypePointer UniformConstant 61 + 63(isCube): 62(ptr) Variable UniformConstant + 67(ResType): TypeStruct 6(int) 16(ivec4) + 73: TypeImage 10(float) 2D depth sampled format:Unknown + 74: TypeSampledImage 73 + 75: TypePointer UniformConstant 74 + 76(s2DShadow): 75(ptr) Variable UniformConstant + 80: TypePointer Function 10(float) + 83(ResType): TypeStruct 6(int) 10(float) + 89: TypeImage 10(float) Cube depth array sampled format:Unknown + 90: TypeSampledImage 89 + 91: TypePointer UniformConstant 90 +92(sCubeArrayShadow): 91(ptr) Variable UniformConstant + 94: TypePointer Input 11(fvec4) + 95(c4): 94(ptr) Variable Input + 97: 10(float) Constant 1065353216 + 142: TypeVector 6(int) 3 + 143: 6(int) Constant 2 + 144: 142(ivec3) ConstantComposite 143 143 143 + 151: TypeImage 20(int) Rect sampled format:Unknown + 152: TypeSampledImage 151 + 153: TypePointer UniformConstant 152 + 154(us2DRect): 153(ptr) Variable UniformConstant + 157: TypeVector 6(int) 2 + 158: 6(int) Constant 3 + 159: 157(ivec2) ConstantComposite 158 158 + 161(ResType): TypeStruct 6(int) 21(ivec4) + 167: TypeImage 10(float) 2D depth array sampled format:Unknown + 168: TypeSampledImage 167 + 169: TypePointer UniformConstant 168 +170(s2DArrayShadow): 169(ptr) Variable UniformConstant + 173: 6(int) Constant 5 + 174: 157(ivec2) ConstantComposite 173 173 + 176: 20(int) Constant 2 + 215: TypeImage 10(float) Cube depth sampled format:Unknown + 216: TypeSampledImage 215 + 217: TypePointer UniformConstant 216 +218(sCubeShadow): 217(ptr) Variable UniformConstant + 224: 20(int) Constant 1 + 232: TypeImage 20(int) Cube array sampled format:Unknown + 233: TypeSampledImage 232 + 234: TypePointer UniformConstant 233 +235(usCubeArray): 234(ptr) Variable UniformConstant + 283: TypeImage 10(float) Rect depth sampled format:Unknown + 284: TypeSampledImage 283 + 285: TypePointer UniformConstant 284 +286(s2DRectShadow): 285(ptr) Variable UniformConstant + 291: 6(int) Constant 6 + 292: 157(ivec2) ConstantComposite 291 291 + 294: 20(int) Constant 3 + 302: TypeImage 6(int) 2D array sampled format:Unknown + 303: TypeSampledImage 302 + 304: TypePointer UniformConstant 303 + 305(is2DArray): 304(ptr) Variable UniformConstant + 310: 157(ivec2) ConstantComposite 143 143 + 344: TypePointer Output 11(fvec4) + 345(outColor): 344(ptr) Variable Output + 347: TypeBool + 4(main): 2 Function None 3 + 5: Label + 8(resident): 7(ptr) Variable Function + 13(texel): 12(ptr) Variable Function + 18(itexel): 17(ptr) Variable Function + 23(utexel): 22(ptr) Variable Function + 349: 12(ptr) Variable Function + Store 8(resident) 9 + Store 13(texel) 15 + Store 18(itexel) 19 + Store 23(utexel) 25 + 30: 27 Load 29(s2D) + 34: 31(fvec2) Load 33(c2) + 37: 10(float) Load 36(lodClamp) + 39: 38(ResType) ImageSparseSampleImplicitLod 30 34 MinLod 37 + 40: 11(fvec4) CompositeExtract 39 1 + Store 13(texel) 40 + 41: 6(int) CompositeExtract 39 0 + 42: 6(int) Load 8(resident) + 43: 6(int) BitwiseOr 42 41 + Store 8(resident) 43 + 48: 45 Load 47(s3D) + 52: 49(fvec3) Load 51(c3) + 53: 10(float) Load 36(lodClamp) + 55: 38(ResType) ImageSparseSampleImplicitLod 48 52 Bias MinLod 54 53 + 56: 11(fvec4) CompositeExtract 55 1 + Store 13(texel) 56 + 57: 6(int) CompositeExtract 55 0 + 58: 6(int) Load 8(resident) + 59: 6(int) BitwiseOr 58 57 + Store 8(resident) 59 + 64: 61 Load 63(isCube) + 65: 49(fvec3) Load 51(c3) + 66: 10(float) Load 36(lodClamp) + 68: 67(ResType) ImageSparseSampleImplicitLod 64 65 MinLod 66 + 69: 16(ivec4) CompositeExtract 68 1 + Store 18(itexel) 69 + 70: 6(int) CompositeExtract 68 0 + 71: 6(int) Load 8(resident) + 72: 6(int) BitwiseOr 71 70 + Store 8(resident) 72 + 77: 74 Load 76(s2DShadow) + 78: 49(fvec3) Load 51(c3) + 79: 10(float) Load 36(lodClamp) + 81: 80(ptr) AccessChain 13(texel) 24 + 82: 10(float) CompositeExtract 78 2 + 84: 83(ResType) ImageSparseSampleDrefImplicitLod 77 78 82 MinLod 79 + 85: 10(float) CompositeExtract 84 1 + Store 81 85 + 86: 6(int) CompositeExtract 84 0 + 87: 6(int) Load 8(resident) + 88: 6(int) BitwiseOr 87 86 + Store 8(resident) 88 + 93: 90 Load 92(sCubeArrayShadow) + 96: 11(fvec4) Load 95(c4) + 98: 10(float) Load 36(lodClamp) + 99: 80(ptr) AccessChain 13(texel) 24 + 100: 83(ResType) ImageSparseSampleDrefImplicitLod 93 96 97 MinLod 98 + 101: 10(float) CompositeExtract 100 1 + Store 99 101 + 102: 6(int) CompositeExtract 100 0 + 103: 6(int) Load 8(resident) + 104: 6(int) BitwiseOr 103 102 + Store 8(resident) 104 + 105: 27 Load 29(s2D) + 106: 31(fvec2) Load 33(c2) + 107: 10(float) Load 36(lodClamp) + 108: 11(fvec4) ImageSampleImplicitLod 105 106 MinLod 107 + 109: 11(fvec4) Load 13(texel) + 110: 11(fvec4) FAdd 109 108 + Store 13(texel) 110 + 111: 45 Load 47(s3D) + 112: 49(fvec3) Load 51(c3) + 113: 10(float) Load 36(lodClamp) + 114: 11(fvec4) ImageSampleImplicitLod 111 112 Bias MinLod 54 113 + 115: 11(fvec4) Load 13(texel) + 116: 11(fvec4) FAdd 115 114 + Store 13(texel) 116 + 117: 61 Load 63(isCube) + 118: 49(fvec3) Load 51(c3) + 119: 10(float) Load 36(lodClamp) + 120: 16(ivec4) ImageSampleImplicitLod 117 118 MinLod 119 + 121: 16(ivec4) Load 18(itexel) + 122: 16(ivec4) IAdd 121 120 + Store 18(itexel) 122 + 123: 74 Load 76(s2DShadow) + 124: 49(fvec3) Load 51(c3) + 125: 10(float) Load 36(lodClamp) + 126: 10(float) CompositeExtract 124 2 + 127: 10(float) ImageSampleDrefImplicitLod 123 124 126 MinLod 125 + 128: 80(ptr) AccessChain 13(texel) 24 + 129: 10(float) Load 128 + 130: 10(float) FAdd 129 127 + 131: 80(ptr) AccessChain 13(texel) 24 + Store 131 130 + 132: 90 Load 92(sCubeArrayShadow) + 133: 11(fvec4) Load 95(c4) + 134: 10(float) Load 36(lodClamp) + 135: 10(float) ImageSampleDrefImplicitLod 132 133 97 MinLod 134 + 136: 80(ptr) AccessChain 13(texel) 24 + 137: 10(float) Load 136 + 138: 10(float) FAdd 137 135 + 139: 80(ptr) AccessChain 13(texel) 24 + Store 139 138 + 140: 45 Load 47(s3D) + 141: 49(fvec3) Load 51(c3) + 145: 10(float) Load 36(lodClamp) + 146: 38(ResType) ImageSparseSampleImplicitLod 140 141 Bias ConstOffset MinLod 54 144 145 + 147: 11(fvec4) CompositeExtract 146 1 + Store 13(texel) 147 + 148: 6(int) CompositeExtract 146 0 + 149: 6(int) Load 8(resident) + 150: 6(int) BitwiseOr 149 148 + Store 8(resident) 150 + 155: 152 Load 154(us2DRect) + 156: 31(fvec2) Load 33(c2) + 160: 10(float) Load 36(lodClamp) + 162:161(ResType) ImageSparseSampleImplicitLod 155 156 ConstOffset MinLod 159 160 + 163: 21(ivec4) CompositeExtract 162 1 + Store 23(utexel) 163 + 164: 6(int) CompositeExtract 162 0 + 165: 6(int) Load 8(resident) + 166: 6(int) BitwiseOr 165 164 + Store 8(resident) 166 + 171: 168 Load 170(s2DArrayShadow) + 172: 11(fvec4) Load 95(c4) + 175: 10(float) Load 36(lodClamp) + 177: 80(ptr) AccessChain 13(texel) 176 + 178: 10(float) CompositeExtract 172 3 + 179: 83(ResType) ImageSparseSampleDrefImplicitLod 171 172 178 ConstOffset MinLod 174 175 + 180: 10(float) CompositeExtract 179 1 + Store 177 180 + 181: 6(int) CompositeExtract 179 0 + 182: 6(int) Load 8(resident) + 183: 6(int) BitwiseOr 182 181 + Store 8(resident) 183 + 184: 45 Load 47(s3D) + 185: 49(fvec3) Load 51(c3) + 186: 10(float) Load 36(lodClamp) + 187: 11(fvec4) ImageSampleImplicitLod 184 185 Bias ConstOffset MinLod 54 144 186 + 188: 11(fvec4) Load 13(texel) + 189: 11(fvec4) FAdd 188 187 + Store 13(texel) 189 + 190: 152 Load 154(us2DRect) + 191: 31(fvec2) Load 33(c2) + 192: 10(float) Load 36(lodClamp) + 193: 21(ivec4) ImageSampleImplicitLod 190 191 ConstOffset MinLod 159 192 + 194: 21(ivec4) Load 23(utexel) + 195: 21(ivec4) IAdd 194 193 + Store 23(utexel) 195 + 196: 168 Load 170(s2DArrayShadow) + 197: 11(fvec4) Load 95(c4) + 198: 10(float) Load 36(lodClamp) + 199: 10(float) CompositeExtract 197 3 + 200: 10(float) ImageSampleDrefImplicitLod 196 197 199 ConstOffset MinLod 174 198 + 201: 80(ptr) AccessChain 13(texel) 176 + 202: 10(float) Load 201 + 203: 10(float) FAdd 202 200 + 204: 80(ptr) AccessChain 13(texel) 176 + Store 204 203 + 205: 45 Load 47(s3D) + 206: 49(fvec3) Load 51(c3) + 207: 49(fvec3) Load 51(c3) + 208: 49(fvec3) Load 51(c3) + 209: 10(float) Load 36(lodClamp) + 210: 38(ResType) ImageSparseSampleExplicitLod 205 206 Grad MinLod 207 208 209 + 211: 11(fvec4) CompositeExtract 210 1 + Store 13(texel) 211 + 212: 6(int) CompositeExtract 210 0 + 213: 6(int) Load 8(resident) + 214: 6(int) BitwiseOr 213 212 + Store 8(resident) 214 + 219: 216 Load 218(sCubeShadow) + 220: 11(fvec4) Load 95(c4) + 221: 49(fvec3) Load 51(c3) + 222: 49(fvec3) Load 51(c3) + 223: 10(float) Load 36(lodClamp) + 225: 80(ptr) AccessChain 13(texel) 224 + 226: 10(float) CompositeExtract 220 3 + 227: 83(ResType) ImageSparseSampleDrefExplicitLod 219 220 226 Grad MinLod 221 222 223 + 228: 10(float) CompositeExtract 227 1 + Store 225 228 + 229: 6(int) CompositeExtract 227 0 + 230: 6(int) Load 8(resident) + 231: 6(int) BitwiseOr 230 229 + Store 8(resident) 231 + 236: 233 Load 235(usCubeArray) + 237: 11(fvec4) Load 95(c4) + 238: 49(fvec3) Load 51(c3) + 239: 49(fvec3) Load 51(c3) + 240: 10(float) Load 36(lodClamp) + 241:161(ResType) ImageSparseSampleExplicitLod 236 237 Grad MinLod 238 239 240 + 242: 21(ivec4) CompositeExtract 241 1 + Store 23(utexel) 242 + 243: 6(int) CompositeExtract 241 0 + 244: 6(int) Load 8(resident) + 245: 6(int) BitwiseOr 244 243 + Store 8(resident) 245 + 246: 45 Load 47(s3D) + 247: 49(fvec3) Load 51(c3) + 248: 49(fvec3) Load 51(c3) + 249: 49(fvec3) Load 51(c3) + 250: 10(float) Load 36(lodClamp) + 251: 11(fvec4) ImageSampleExplicitLod 246 247 Grad MinLod 248 249 250 + 252: 11(fvec4) Load 13(texel) + 253: 11(fvec4) FAdd 252 251 + Store 13(texel) 253 + 254: 216 Load 218(sCubeShadow) + 255: 11(fvec4) Load 95(c4) + 256: 49(fvec3) Load 51(c3) + 257: 49(fvec3) Load 51(c3) + 258: 10(float) Load 36(lodClamp) + 259: 10(float) CompositeExtract 255 3 + 260: 10(float) ImageSampleDrefExplicitLod 254 255 259 Grad MinLod 256 257 258 + 261: 80(ptr) AccessChain 13(texel) 224 + 262: 10(float) Load 261 + 263: 10(float) FAdd 262 260 + 264: 80(ptr) AccessChain 13(texel) 224 + Store 264 263 + 265: 233 Load 235(usCubeArray) + 266: 11(fvec4) Load 95(c4) + 267: 49(fvec3) Load 51(c3) + 268: 49(fvec3) Load 51(c3) + 269: 10(float) Load 36(lodClamp) + 270: 21(ivec4) ImageSampleExplicitLod 265 266 Grad MinLod 267 268 269 + 271: 21(ivec4) Load 23(utexel) + 272: 21(ivec4) IAdd 271 270 + Store 23(utexel) 272 + 273: 27 Load 29(s2D) + 274: 31(fvec2) Load 33(c2) + 275: 31(fvec2) Load 33(c2) + 276: 31(fvec2) Load 33(c2) + 277: 10(float) Load 36(lodClamp) + 278: 38(ResType) ImageSparseSampleExplicitLod 273 274 Grad ConstOffset MinLod 275 276 174 277 + 279: 11(fvec4) CompositeExtract 278 1 + Store 13(texel) 279 + 280: 6(int) CompositeExtract 278 0 + 281: 6(int) Load 8(resident) + 282: 6(int) BitwiseOr 281 280 + Store 8(resident) 282 + 287: 284 Load 286(s2DRectShadow) + 288: 49(fvec3) Load 51(c3) + 289: 31(fvec2) Load 33(c2) + 290: 31(fvec2) Load 33(c2) + 293: 10(float) Load 36(lodClamp) + 295: 80(ptr) AccessChain 13(texel) 294 + 296: 10(float) CompositeExtract 288 2 + 297: 83(ResType) ImageSparseSampleDrefExplicitLod 287 288 296 Grad ConstOffset MinLod 289 290 292 293 + 298: 10(float) CompositeExtract 297 1 + Store 295 298 + 299: 6(int) CompositeExtract 297 0 + 300: 6(int) Load 8(resident) + 301: 6(int) BitwiseOr 300 299 + Store 8(resident) 301 + 306: 303 Load 305(is2DArray) + 307: 49(fvec3) Load 51(c3) + 308: 31(fvec2) Load 33(c2) + 309: 31(fvec2) Load 33(c2) + 311: 10(float) Load 36(lodClamp) + 312: 67(ResType) ImageSparseSampleExplicitLod 306 307 Grad ConstOffset MinLod 308 309 310 311 + 313: 16(ivec4) CompositeExtract 312 1 + Store 18(itexel) 313 + 314: 6(int) CompositeExtract 312 0 + 315: 6(int) Load 8(resident) + 316: 6(int) BitwiseOr 315 314 + Store 8(resident) 316 + 317: 27 Load 29(s2D) + 318: 31(fvec2) Load 33(c2) + 319: 31(fvec2) Load 33(c2) + 320: 31(fvec2) Load 33(c2) + 321: 10(float) Load 36(lodClamp) + 322: 11(fvec4) ImageSampleExplicitLod 317 318 Grad ConstOffset MinLod 319 320 174 321 + 323: 11(fvec4) Load 13(texel) + 324: 11(fvec4) FAdd 323 322 + Store 13(texel) 324 + 325: 284 Load 286(s2DRectShadow) + 326: 49(fvec3) Load 51(c3) + 327: 31(fvec2) Load 33(c2) + 328: 31(fvec2) Load 33(c2) + 329: 10(float) Load 36(lodClamp) + 330: 10(float) CompositeExtract 326 2 + 331: 10(float) ImageSampleDrefExplicitLod 325 326 330 Grad ConstOffset MinLod 327 328 292 329 + 332: 80(ptr) AccessChain 13(texel) 294 + 333: 10(float) Load 332 + 334: 10(float) FAdd 333 331 + 335: 80(ptr) AccessChain 13(texel) 294 + Store 335 334 + 336: 303 Load 305(is2DArray) + 337: 49(fvec3) Load 51(c3) + 338: 31(fvec2) Load 33(c2) + 339: 31(fvec2) Load 33(c2) + 340: 10(float) Load 36(lodClamp) + 341: 16(ivec4) ImageSampleExplicitLod 336 337 Grad ConstOffset MinLod 338 339 310 340 + 342: 16(ivec4) Load 18(itexel) + 343: 16(ivec4) IAdd 342 341 + Store 18(itexel) 343 + 346: 6(int) Load 8(resident) + 348: 347(bool) ImageSparseTexelsResident 346 + SelectionMerge 351 None + BranchConditional 348 350 353 + 350: Label + 352: 11(fvec4) Load 13(texel) + Store 349 352 + Branch 351 + 353: Label + 354: 16(ivec4) Load 18(itexel) + 355: 11(fvec4) ConvertSToF 354 + 356: 21(ivec4) Load 23(utexel) + 357: 11(fvec4) ConvertUToF 356 + 358: 11(fvec4) FAdd 355 357 + Store 349 358 + Branch 351 + 351: Label + 359: 11(fvec4) Load 349 + Store 345(outColor) 359 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConst.vert.out b/deps/glslang/glslang/Test/baseResults/spv.specConst.vert.out new file mode 100644 index 0000000000..70fbd09e2e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.specConst.vert.out @@ -0,0 +1,56 @@ +spv.specConst.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// 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 18 "a" + 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(a) 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(a): 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(a) + 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/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out b/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out new file mode 100644 index 0000000000..b8aa3ddfb2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstant.comp.out @@ -0,0 +1,49 @@ +spv.specConstant.comp +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 32 32 1 + Source GLSL 450 + Name 4 "main" + Name 7 "bn" + MemberName 7(bn) 0 "a" + Name 9 "bi" + MemberDecorate 7(bn) 0 Offset 0 + Decorate 7(bn) BufferBlock + Decorate 9(bi) DescriptorSet 0 + Decorate 12 SpecId 18 + Decorate 14 SpecId 19 + Decorate 16 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7(bn): TypeStruct 6(int) + 8: TypePointer Uniform 7(bn) + 9(bi): 8(ptr) Variable Uniform + 10: TypeInt 32 1 + 11: 10(int) Constant 0 + 12: 6(int) SpecConstant 32 + 13: 6(int) Constant 32 + 14: 6(int) SpecConstant 1 + 15: TypeVector 6(int) 3 + 16: 15(ivec3) SpecConstantComposite 12 13 14 + 17: 6(int) Constant 0 + 18: 6(int) SpecConstantOp 81 16 0 + 19: 6(int) Constant 1 + 20: 6(int) SpecConstantOp 81 16 1(GLSL.std.450) + 21: 6(int) SpecConstantOp 132 18 20 + 22: 6(int) Constant 2 + 23: 6(int) SpecConstantOp 81 16 2 + 24: 6(int) SpecConstantOp 132 21 23 + 25: TypePointer Uniform 6(int) + 4(main): 2 Function None 3 + 5: Label + 26: 25(ptr) AccessChain 9(bi) 11 + Store 26 24 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out b/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out new file mode 100644 index 0000000000..ab70471e82 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstant.vert.out @@ -0,0 +1,142 @@ +spv.specConstant.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 81 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 20 22 28 53 + Source GLSL 400 + Name 4 "main" + Name 9 "arraySize" + Name 14 "foo(vf4[s2468];" + Name 13 "p" + Name 17 "builtin_spec_constant(" + Name 20 "color" + Name 22 "ucol" + Name 28 "size" + Name 30 "spBool" + Name 34 "scale" + Name 39 "spDouble" + Name 40 "spFloat" + Name 47 "param" + Name 50 "dupArraySize" + Name 53 "dupUcol" + Name 60 "spDupBool" + Name 63 "dupScale" + Name 67 "spDupDouble" + Name 68 "spDupFloat" + Name 76 "result" + Name 77 "gl_MaxImageUnits" + Decorate 9(arraySize) SpecId 16 + Decorate 30(spBool) SpecId 17 + Decorate 34(scale) SpecId 22 + Decorate 39(spDouble) SpecId 19 + Decorate 40(spFloat) SpecId 18 + Decorate 50(dupArraySize) SpecId 116 + Decorate 60(spDupBool) SpecId 117 + Decorate 63(dupScale) SpecId 122 + Decorate 67(spDupDouble) SpecId 119 + Decorate 68(spDupFloat) SpecId 118 + Decorate 77(gl_MaxImageUnits) SpecId 24 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 1 + 9(arraySize): 8(int) SpecConstant 5 + 10: TypeArray 7(fvec4) 9(arraySize) + 11: TypePointer Function 10 + 12: TypeFunction 2 11(ptr) + 16: TypeFunction 8(int) + 19: TypePointer Output 7(fvec4) + 20(color): 19(ptr) Variable Output + 21: TypePointer Input 10 + 22(ucol): 21(ptr) Variable Input + 23: 8(int) Constant 2 + 24: TypePointer Input 7(fvec4) + 27: TypePointer Output 8(int) + 28(size): 27(ptr) Variable Output + 29: TypeBool + 30(spBool): 29(bool) SpecConstantTrue + 33: TypeInt 32 0 + 34(scale): 33(int) SpecConstant 2 + 38: TypeFloat 64 + 39(spDouble):38(float64_t) SpecConstant 1413754136 1074340347 + 40(spFloat): 6(float) SpecConstant 1078523331 + 41:38(float64_t) SpecConstantOp 115 40(spFloat) +50(dupArraySize): 8(int) SpecConstant 12 + 51: TypeArray 7(fvec4) 50(dupArraySize) + 52: TypePointer Input 51 + 53(dupUcol): 52(ptr) Variable Input + 60(spDupBool): 29(bool) SpecConstantTrue + 63(dupScale): 33(int) SpecConstant 2 + 67(spDupDouble):38(float64_t) SpecConstant 1413754136 1074340347 + 68(spDupFloat): 6(float) SpecConstant 1078523331 + 69:38(float64_t) SpecConstantOp 115 68(spDupFloat) + 75: TypePointer Function 8(int) +77(gl_MaxImageUnits): 8(int) SpecConstant 8 + 4(main): 2 Function None 3 + 5: Label + 47(param): 11(ptr) Variable Function + 25: 24(ptr) AccessChain 22(ucol) 23 + 26: 7(fvec4) Load 25 + Store 20(color) 26 + Store 28(size) 9(arraySize) + SelectionMerge 32 None + BranchConditional 30(spBool) 31 32 + 31: Label + 35: 6(float) ConvertUToF 34(scale) + 36: 7(fvec4) Load 20(color) + 37: 7(fvec4) VectorTimesScalar 36 35 + Store 20(color) 37 + Branch 32 + 32: Label + 42:38(float64_t) FDiv 39(spDouble) 41 + 43: 6(float) FConvert 42 + 44: 7(fvec4) Load 20(color) + 45: 7(fvec4) CompositeConstruct 43 43 43 43 + 46: 7(fvec4) FAdd 44 45 + Store 20(color) 46 + 48: 10 Load 22(ucol) + Store 47(param) 48 + 49: 2 FunctionCall 14(foo(vf4[s2468];) 47(param) + Return + FunctionEnd +14(foo(vf4[s2468];): 2 Function None 12 + 13(p): 11(ptr) FunctionParameter + 15: Label + 54: 24(ptr) AccessChain 53(dupUcol) 23 + 55: 7(fvec4) Load 54 + 56: 7(fvec4) Load 20(color) + 57: 7(fvec4) FAdd 56 55 + Store 20(color) 57 + 58: 8(int) Load 28(size) + 59: 8(int) IAdd 58 50(dupArraySize) + Store 28(size) 59 + SelectionMerge 62 None + BranchConditional 60(spDupBool) 61 62 + 61: Label + 64: 6(float) ConvertUToF 63(dupScale) + 65: 7(fvec4) Load 20(color) + 66: 7(fvec4) VectorTimesScalar 65 64 + Store 20(color) 66 + Branch 62 + 62: Label + 70:38(float64_t) FDiv 67(spDupDouble) 69 + 71: 6(float) FConvert 70 + 72: 7(fvec4) Load 20(color) + 73: 7(fvec4) CompositeConstruct 71 71 71 71 + 74: 7(fvec4) FAdd 72 73 + Store 20(color) 74 + Return + FunctionEnd +17(builtin_spec_constant(): 8(int) Function None 16 + 18: Label + 76(result): 75(ptr) Variable Function + Store 76(result) 77(gl_MaxImageUnits) + 78: 8(int) Load 76(result) + ReturnValue 78 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConstantComposite.vert.out b/deps/glslang/glslang/Test/baseResults/spv.specConstantComposite.vert.out new file mode 100644 index 0000000000..58d4b6a3fd --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstantComposite.vert.out @@ -0,0 +1,87 @@ +spv.specConstantComposite.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 43 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 27 42 + Source GLSL 450 + Name 4 "main" + Name 6 "refer_primary_spec_const(" + Name 8 "refer_composite_spec_const(" + Name 10 "refer_copmosite_dot_dereference(" + Name 12 "refer_composite_bracket_dereference(" + Name 16 "refer_spec_const_array_length(" + Name 18 "declare_spec_const_in_func(" + Name 21 "spec_bool" + Name 27 "color" + Name 28 "spec_int" + Name 33 "len" + Name 37 "spec_float" + Name 39 "spec_double" + Name 42 "global_vec4_array_with_spec_length" + Decorate 21(spec_bool) SpecId 203 + Decorate 28(spec_int) SpecId 200 + Decorate 37(spec_float) SpecId 201 + Decorate 39(spec_double) SpecId 202 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 32 1 + 15: TypeFunction 14(int) + 20: TypeBool + 21(spec_bool): 20(bool) SpecConstantTrue + 24: TypeFloat 32 + 25: TypeVector 24(float) 4 + 26: TypePointer Output 25(fvec4) + 27(color): 26(ptr) Variable Output + 28(spec_int): 14(int) SpecConstant 3 + 32: TypePointer Function 14(int) + 37(spec_float): 24(float) SpecConstant 1078523331 + 38: TypeFloat 64 + 39(spec_double):38(float64_t) SpecConstant 1413754136 1074340347 + 40: TypeArray 25(fvec4) 28(spec_int) + 41: TypePointer Input 40 +42(global_vec4_array_with_spec_length): 41(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd +6(refer_primary_spec_const(): 2 Function None 3 + 7: Label + SelectionMerge 23 None + BranchConditional 21(spec_bool) 22 23 + 22: Label + 29: 24(float) ConvertSToF 28(spec_int) + 30: 25(fvec4) Load 27(color) + 31: 25(fvec4) VectorTimesScalar 30 29 + Store 27(color) 31 + Branch 23 + 23: Label + Return + FunctionEnd +8(refer_composite_spec_const(): 2 Function None 3 + 9: Label + Return + FunctionEnd +10(refer_copmosite_dot_dereference(): 2 Function None 3 + 11: Label + Return + FunctionEnd +12(refer_composite_bracket_dereference(): 2 Function None 3 + 13: Label + Return + FunctionEnd +16(refer_spec_const_array_length(): 14(int) Function None 15 + 17: Label + 33(len): 32(ptr) Variable Function + Store 33(len) 28(spec_int) + 34: 14(int) Load 33(len) + ReturnValue 34 + FunctionEnd +18(declare_spec_const_in_func(): 2 Function None 3 + 19: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out b/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out new file mode 100644 index 0000000000..4bc948b189 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.specConstantOperations.vert.out @@ -0,0 +1,203 @@ +spv.specConstantOperations.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 162 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source GLSL 450 + Name 4 "main" + Name 8 "non_const_array_size_from_spec_const(" + Name 11 "i" + Name 19 "sp_int" + Name 27 "array" + Name 40 "sp_float" + Name 42 "sp_uint" + Name 43 "sp_sint" + Name 45 "sp_double" + Name 135 "a" + Name 136 "b" + Name 137 "c" + Name 142 "ternayArray1" + Decorate 19(sp_int) SpecId 201 + Decorate 40(sp_float) SpecId 200 + Decorate 42(sp_uint) SpecId 202 + Decorate 43(sp_sint) SpecId 203 + Decorate 45(sp_double) SpecId 204 + Decorate 135(a) SpecId 210 + Decorate 136(b) SpecId 211 + Decorate 137(c) SpecId 212 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFunction 6(int) + 10: TypePointer Function 6(int) + 12: 6(int) Constant 0 + 19(sp_int): 6(int) SpecConstant 10 + 20: 6(int) Constant 2 + 21: 6(int) SpecConstantOp 128 19(sp_int) 20 + 22: TypeBool + 24: 6(int) SpecConstantOp 128 19(sp_int) 20 + 25: TypeArray 6(int) 24 + 26: TypePointer Function 25 + 29: 6(int) Constant 1023 + 32: 6(int) Constant 1 + 34: 6(int) SpecConstantOp 128 19(sp_int) 32 + 39: TypeFloat 32 + 40(sp_float): 39(float) SpecConstant 1078530010 + 41: TypeInt 32 0 + 42(sp_uint): 41(int) SpecConstant 100 + 43(sp_sint): 6(int) SpecConstant 4294967286 + 44: TypeFloat 64 + 45(sp_double):44(float64_t) SpecConstant 2333366019 1074118410 + 46: 39(float) SpecConstantOp 115 45(sp_double) + 47:44(float64_t) SpecConstantOp 115 40(sp_float) + 48: 41(int) Constant 0 + 49: 22(bool) SpecConstantOp 171 19(sp_int) 48 + 50: 22(bool) SpecConstantOp 171 42(sp_uint) 48 + 51: 6(int) SpecConstantOp 169 49 32 12 + 52: 41(int) Constant 1 + 53: 41(int) SpecConstantOp 169 49 52 48 + 54: 41(int) SpecConstantOp 128 43(sp_sint) 48 + 55: 6(int) SpecConstantOp 128 42(sp_uint) 48 + 56: 6(int) SpecConstantOp 126 19(sp_int) + 57: 6(int) SpecConstantOp 200 19(sp_int) + 58: 6(int) SpecConstantOp 128 19(sp_int) 20 + 59: 6(int) SpecConstantOp 128 19(sp_int) 20 + 60: 6(int) Constant 3 + 61: 6(int) SpecConstantOp 130 59 60 + 62: 6(int) Constant 4 + 63: 6(int) SpecConstantOp 130 58 62 + 64: 6(int) SpecConstantOp 132 43(sp_sint) 20 + 65: 41(int) Constant 2 + 66: 41(int) SpecConstantOp 132 42(sp_uint) 65 + 67: 6(int) Constant 5 + 68: 6(int) SpecConstantOp 135 64 67 + 69: 41(int) Constant 5 + 70: 41(int) SpecConstantOp 134 66 69 + 71: 6(int) SpecConstantOp 139 43(sp_sint) 62 + 72: 41(int) Constant 4 + 73: 41(int) SpecConstantOp 137 42(sp_uint) 72 + 74: 6(int) SpecConstantOp 132 43(sp_sint) 60 + 75: 6(int) SpecConstantOp 135 74 67 + 76: 6(int) Constant 10 + 77: 6(int) SpecConstantOp 195 43(sp_sint) 76 + 78: 6(int) Constant 20 + 79: 41(int) SpecConstantOp 194 42(sp_uint) 78 + 80: 6(int) SpecConstantOp 196 43(sp_sint) 32 + 81: 41(int) SpecConstantOp 196 42(sp_uint) 20 + 82: 6(int) Constant 256 + 83: 6(int) SpecConstantOp 197 43(sp_sint) 82 + 84: 41(int) Constant 512 + 85: 41(int) SpecConstantOp 198 42(sp_uint) 84 + 86: 22(bool) SpecConstantOp 177 19(sp_int) 43(sp_sint) + 87: 22(bool) SpecConstantOp 170 42(sp_uint) 42(sp_uint) + 88: 22(bool) SpecConstantOp 173 19(sp_int) 43(sp_sint) + 89: 6(int) Constant 30 + 90: TypeVector 6(int) 4 + 91: 90(ivec4) SpecConstantComposite 78 89 19(sp_int) 19(sp_int) + 92: 41(int) Constant 4294967295 + 93: 41(int) Constant 4294967294 + 94: TypeVector 41(int) 4 + 95: 94(ivec4) SpecConstantComposite 42(sp_uint) 42(sp_uint) 92 93 + 96: TypeVector 22(bool) 4 + 97: 94(ivec4) ConstantComposite 48 48 48 48 + 98: 96(bvec4) SpecConstantOp 171 91 97 + 99: 96(bvec4) SpecConstantOp 171 95 97 + 100: 90(ivec4) ConstantComposite 12 12 12 12 + 101: 90(ivec4) ConstantComposite 32 32 32 32 + 102: 90(ivec4) SpecConstantOp 169 98 101 100 + 103: 94(ivec4) ConstantComposite 52 52 52 52 + 104: 94(ivec4) SpecConstantOp 169 98 103 97 + 105: 94(ivec4) SpecConstantOp 128 91 97 + 106: 90(ivec4) SpecConstantOp 128 95 97 + 107: 90(ivec4) SpecConstantOp 200 91 + 108: 90(ivec4) SpecConstantOp 126 91 + 109: 90(ivec4) ConstantComposite 20 20 20 20 + 110: 90(ivec4) SpecConstantOp 128 91 109 + 111: 90(ivec4) SpecConstantOp 128 91 109 + 112: 90(ivec4) ConstantComposite 60 60 60 60 + 113: 90(ivec4) SpecConstantOp 130 111 112 + 114: 90(ivec4) ConstantComposite 62 62 62 62 + 115: 90(ivec4) SpecConstantOp 130 113 114 + 116: 90(ivec4) SpecConstantOp 132 91 109 + 117: 90(ivec4) ConstantComposite 67 67 67 67 + 118: 90(ivec4) SpecConstantOp 135 116 117 + 119: 90(ivec4) SpecConstantOp 139 91 114 + 120: 90(ivec4) ConstantComposite 76 76 76 76 + 121: 90(ivec4) SpecConstantOp 195 91 120 + 122: 90(ivec4) SpecConstantOp 196 91 109 + 123: 6(int) Constant 1024 + 124: 90(ivec4) ConstantComposite 123 123 123 123 + 125: 90(ivec4) SpecConstantOp 197 91 124 + 126: 41(int) Constant 2048 + 127: 94(ivec4) ConstantComposite 126 126 126 126 + 128: 94(ivec4) SpecConstantOp 198 95 127 + 129: 6(int) SpecConstantOp 81 91 0 + 130: TypeVector 6(int) 2 + 131: 130(ivec2) SpecConstantOp 79 91 91 1(GLSL.std.450) 0 + 132: TypeVector 6(int) 3 + 133: 132(ivec3) SpecConstantOp 79 91 91 2 1(GLSL.std.450) 0 + 134: 90(ivec4) SpecConstantOp 79 91 91 1(GLSL.std.450) 2 0 3 + 135(a): 6(int) SpecConstant 4 + 136(b): 6(int) SpecConstant 6 + 137(c): 22(bool) SpecConstantTrue + 138: 22(bool) SpecConstantOp 173 135(a) 136(b) + 139: 6(int) SpecConstantOp 169 138 135(a) 136(b) + 140: TypeArray 6(int) 139 + 141: TypePointer Private 140 +142(ternayArray1): 141(ptr) Variable Private + 143: 6(int) Constant 13 + 144: 6(int) Constant 17 + 145: 6(int) SpecConstantOp 169 137(c) 143 144 + 146: 6(int) SpecConstantOp 169 137(c) 135(a) 144 + 147: 22(bool) ConstantTrue + 148: 6(int) SpecConstantOp 169 147 135(a) 144 + 149: 22(bool) SpecConstantOp 173 135(a) 136(b) + 150: 6(int) SpecConstantOp 128 143 135(a) + 151: 6(int) SpecConstantOp 132 144 136(b) + 152: 6(int) SpecConstantOp 169 149 150 151 + 153: 22(bool) SpecConstantOp 168 137(c) + 154: TypeVector 39(float) 2 + 155: 39(float) Constant 1065353216 + 156: 154(fvec2) ConstantComposite 155 155 + 157: 39(float) Constant 1073741824 + 158: 154(fvec2) ConstantComposite 157 157 + 159: TypeVector 22(bool) 2 + 160: 159(bvec2) SpecConstantComposite 153 153 + 161: 154(fvec2) SpecConstantOp 169 160 156 158 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd +8(non_const_array_size_from_spec_const(): 6(int) Function None 7 + 9: Label + 11(i): 10(ptr) Variable Function + 27(array): 26(ptr) Variable Function + Store 11(i) 12 + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 17 + 17: Label + 18: 6(int) Load 11(i) + 23: 22(bool) SLessThan 18 21 + BranchConditional 23 14 15 + 14: Label + 28: 6(int) Load 11(i) + 30: 10(ptr) AccessChain 27(array) 28 + Store 30 29 + Branch 16 + 16: Label + 31: 6(int) Load 11(i) + 33: 6(int) IAdd 31 32 + Store 11(i) 33 + Branch 13 + 15: Label + 35: 10(ptr) AccessChain 27(array) 34 + 36: 6(int) Load 35 + ReturnValue 36 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out b/deps/glslang/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out new file mode 100644 index 0000000000..40afa15f1c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out @@ -0,0 +1,156 @@ +spv.ssbo.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 99 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 92 95 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 11 "@main(vf4;" + Name 10 "pos" + Name 13 "vTmp" + Name 14 "BufType" + MemberName 14(BufType) 0 "va" + MemberName 14(BufType) 1 "vb" + Name 16 "SB0" + MemberName 16(SB0) 0 "@data" + Name 18 "SB0" + Name 26 "TestCB" + MemberName 26(TestCB) 0 "W" + MemberName 26(TestCB) 1 "H" + Name 28 "" + Name 57 "SB1" + MemberName 57(SB1) 0 "@data" + Name 59 "SB1" + Name 90 "pos" + Name 92 "pos" + Name 95 "@entryPointOutput" + Name 96 "param" + MemberDecorate 14(BufType) 0 Offset 0 + MemberDecorate 14(BufType) 1 Offset 16 + Decorate 15 ArrayStride 32 + MemberDecorate 16(SB0) 0 NonWritable + MemberDecorate 16(SB0) 0 Offset 0 + Decorate 16(SB0) BufferBlock + Decorate 18(SB0) DescriptorSet 0 + Decorate 18(SB0) Binding 30 + MemberDecorate 26(TestCB) 0 Offset 0 + MemberDecorate 26(TestCB) 1 Offset 4 + Decorate 26(TestCB) Block + Decorate 28 DescriptorSet 0 + Decorate 28 Binding 15 + Decorate 56 ArrayStride 32 + MemberDecorate 57(SB1) 0 Offset 0 + Decorate 57(SB1) BufferBlock + Decorate 59(SB1) DescriptorSet 0 + Decorate 59(SB1) Binding 31 + Decorate 92(pos) Location 0 + Decorate 95(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 14(BufType): TypeStruct 7(fvec4) 7(fvec4) + 15: TypeRuntimeArray 14(BufType) + 16(SB0): TypeStruct 15 + 17: TypePointer Uniform 16(SB0) + 18(SB0): 17(ptr) Variable Uniform + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 21: TypeInt 32 0 + 22: 21(int) Constant 1 + 23: TypePointer Function 6(float) + 26(TestCB): TypeStruct 21(int) 21(int) + 27: TypePointer Uniform 26(TestCB) + 28: 27(ptr) Variable Uniform + 29: TypePointer Uniform 21(int) + 34: 21(int) Constant 0 + 39: TypePointer Uniform 7(fvec4) + 52: 19(int) Constant 1 + 56: TypeRuntimeArray 14(BufType) + 57(SB1): TypeStruct 56 + 58: TypePointer Uniform 57(SB1) + 59(SB1): 58(ptr) Variable Uniform + 91: TypePointer Input 7(fvec4) + 92(pos): 91(ptr) Variable Input + 94: TypePointer Output 7(fvec4) +95(@entryPointOutput): 94(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 90(pos): 8(ptr) Variable Function + 96(param): 8(ptr) Variable Function + 93: 7(fvec4) Load 92(pos) + Store 90(pos) 93 + 97: 7(fvec4) Load 90(pos) + Store 96(param) 97 + 98: 7(fvec4) FunctionCall 11(@main(vf4;) 96(param) + Store 95(@entryPointOutput) 98 + Return + FunctionEnd + 11(@main(vf4;): 7(fvec4) Function None 9 + 10(pos): 8(ptr) FunctionParameter + 12: Label + 13(vTmp): 8(ptr) Variable Function + 24: 23(ptr) AccessChain 10(pos) 22 + 25: 6(float) Load 24 + 30: 29(ptr) AccessChain 28 20 + 31: 21(int) Load 30 + 32: 6(float) ConvertUToF 31 + 33: 6(float) FMul 25 32 + 35: 23(ptr) AccessChain 10(pos) 34 + 36: 6(float) Load 35 + 37: 6(float) FAdd 33 36 + 38: 21(int) ConvertFToU 37 + 40: 39(ptr) AccessChain 18(SB0) 20 38 20 + 41: 7(fvec4) Load 40 + 42: 23(ptr) AccessChain 10(pos) 22 + 43: 6(float) Load 42 + 44: 29(ptr) AccessChain 28 20 + 45: 21(int) Load 44 + 46: 6(float) ConvertUToF 45 + 47: 6(float) FMul 43 46 + 48: 23(ptr) AccessChain 10(pos) 34 + 49: 6(float) Load 48 + 50: 6(float) FAdd 47 49 + 51: 21(int) ConvertFToU 50 + 53: 39(ptr) AccessChain 18(SB0) 20 51 52 + 54: 7(fvec4) Load 53 + 55: 7(fvec4) FAdd 41 54 + Store 13(vTmp) 55 + 60: 23(ptr) AccessChain 10(pos) 22 + 61: 6(float) Load 60 + 62: 29(ptr) AccessChain 28 20 + 63: 21(int) Load 62 + 64: 6(float) ConvertUToF 63 + 65: 6(float) FMul 61 64 + 66: 23(ptr) AccessChain 10(pos) 34 + 67: 6(float) Load 66 + 68: 6(float) FAdd 65 67 + 69: 21(int) ConvertFToU 68 + 70: 39(ptr) AccessChain 59(SB1) 20 69 20 + 71: 7(fvec4) Load 70 + 72: 23(ptr) AccessChain 10(pos) 22 + 73: 6(float) Load 72 + 74: 29(ptr) AccessChain 28 20 + 75: 21(int) Load 74 + 76: 6(float) ConvertUToF 75 + 77: 6(float) FMul 73 76 + 78: 23(ptr) AccessChain 10(pos) 34 + 79: 6(float) Load 78 + 80: 6(float) FAdd 77 79 + 81: 21(int) ConvertFToU 80 + 82: 39(ptr) AccessChain 59(SB1) 20 81 52 + 83: 7(fvec4) Load 82 + 84: 7(fvec4) FAdd 71 83 + 85: 7(fvec4) Load 13(vTmp) + 86: 7(fvec4) FAdd 85 84 + Store 13(vTmp) 86 + 87: 7(fvec4) Load 13(vTmp) + ReturnValue 87 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.ssboAlias.frag.out b/deps/glslang/glslang/Test/baseResults/spv.ssboAlias.frag.out new file mode 100644 index 0000000000..f03d2ca9a9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.ssboAlias.frag.out @@ -0,0 +1,86 @@ +spv.ssboAlias.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Source HLSL 500 + Name 4 "main" + Name 9 "@main(" + Name 13 "Buf1" + MemberName 13(Buf1) 0 "@data" + Name 15 "Buf1" + Name 18 "Buf1@count" + MemberName 18(Buf1@count) 0 "@count" + Name 20 "Buf1@count" + Name 28 "Buf2" + Name 29 "Buf2@count" + Name 41 "@entryPointOutput" + Name 43 "Buf3" + Decorate 12 ArrayStride 4 + MemberDecorate 13(Buf1) 0 Offset 0 + Decorate 13(Buf1) BufferBlock + Decorate 15(Buf1) DescriptorSet 0 + Decorate 15(Buf1) Binding 84 + MemberDecorate 18(Buf1@count) 0 Offset 0 + Decorate 18(Buf1@count) BufferBlock + Decorate 20(Buf1@count) DescriptorSet 0 + Decorate 20(Buf1@count) Binding 83 + Decorate 28(Buf2) DescriptorSet 0 + Decorate 28(Buf2) Binding 85 + Decorate 29(Buf2@count) DescriptorSet 0 + Decorate 29(Buf2@count) Binding 86 + Decorate 41(@entryPointOutput) Location 0 + Decorate 43(Buf3) DescriptorSet 0 + Decorate 43(Buf3) Binding 84 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeInt 32 0 + 12: TypeRuntimeArray 11(int) + 13(Buf1): TypeStruct 12 + 14: TypePointer Uniform 13(Buf1) + 15(Buf1): 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18(Buf1@count): TypeStruct 11(int) + 19: TypePointer Uniform 18(Buf1@count) + 20(Buf1@count): 19(ptr) Variable Uniform + 21: TypePointer Uniform 11(int) + 23: 11(int) Constant 1 + 24: 11(int) Constant 0 + 26: 11(int) Constant 10 + 28(Buf2): 14(ptr) Variable Uniform + 29(Buf2@count): 19(ptr) Variable Uniform + 32: 11(int) Constant 20 + 34: 6(float) Constant 1065353216 + 35: 6(float) Constant 1077936128 + 36: 6(float) Constant 1084227584 + 37: 7(fvec4) ConstantComposite 34 35 36 34 + 40: TypePointer Output 7(fvec4) +41(@entryPointOutput): 40(ptr) Variable Output + 43(Buf3): 14(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 42: 7(fvec4) FunctionCall 9(@main() + Store 41(@entryPointOutput) 42 + Return + FunctionEnd + 9(@main(): 7(fvec4) Function None 8 + 10: Label + 22: 21(ptr) AccessChain 20(Buf1@count) 17 + 25: 11(int) AtomicIAdd 22 23 24 23 + 27: 21(ptr) AccessChain 15(Buf1) 17 25 + Store 27 26 + 30: 21(ptr) AccessChain 29(Buf2@count) 17 + 31: 11(int) AtomicIAdd 30 23 24 23 + 33: 21(ptr) AccessChain 28(Buf2) 17 31 + Store 33 32 + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out new file mode 100644 index 0000000000..c01467e7b0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out @@ -0,0 +1,86 @@ +spv.stereoViewRendering.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 38 + + Capability Geometry + Capability Tessellation + Capability ShaderViewportIndexLayerNV + Capability ShaderViewportMaskNV + Capability ShaderStereoViewNV + Extension "SPV_EXT_shader_viewport_index_layer" + Extension "SPV_NV_stereo_view_rendering" + Extension "SPV_NV_viewport_array2" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 16 18 31 37 + ExecutionMode 4 OutputVertices 4 + Source GLSL 450 + SourceExtension "GL_NV_stereo_view_rendering" + SourceExtension "GL_NV_viewport_array2" + Name 4 "main" + Name 12 "gl_PerVertex" + MemberName 12(gl_PerVertex) 0 "gl_SecondaryPositionNV" + MemberName 12(gl_PerVertex) 1 "gl_SecondaryViewportMaskNV" + Name 16 "gl_out" + Name 18 "gl_InvocationID" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 27(gl_PerVertex) 3 "gl_CullDistance" + MemberName 27(gl_PerVertex) 4 "gl_SecondaryPositionNV" + Name 31 "gl_in" + Name 37 "gl_Layer" + MemberDecorate 12(gl_PerVertex) 0 BuiltIn SecondaryPositionNV + MemberDecorate 12(gl_PerVertex) 1 BuiltIn SecondaryViewportMaskNV + Decorate 12(gl_PerVertex) Block + Decorate 18(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 27(gl_PerVertex) Block + Decorate 37(gl_Layer) BuiltIn Layer + Decorate 37(gl_Layer) ViewportRelativeNV + Decorate 37(gl_Layer) SecondaryViewportRelativeNV 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 1 + 9: TypeInt 32 0 + 10: 9(int) Constant 2 + 11: TypeArray 8(int) 10 +12(gl_PerVertex): TypeStruct 7(fvec4) 11 + 13: 9(int) Constant 4 + 14: TypeArray 12(gl_PerVertex) 13 + 15: TypePointer Output 14 + 16(gl_out): 15(ptr) Variable Output + 17: TypePointer Input 8(int) +18(gl_InvocationID): 17(ptr) Variable Input + 20: 8(int) Constant 1 + 21: 8(int) Constant 0 + 22: TypePointer Output 8(int) + 25: 9(int) Constant 1 + 26: TypeArray 6(float) 25 +27(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 26 26 7(fvec4) + 28: 9(int) Constant 32 + 29: TypeArray 27(gl_PerVertex) 28 + 30: TypePointer Input 29 + 31(gl_in): 30(ptr) Variable Input + 32: TypePointer Input 7(fvec4) + 35: TypePointer Output 7(fvec4) + 37(gl_Layer): 22(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 19: 8(int) Load 18(gl_InvocationID) + 23: 22(ptr) AccessChain 16(gl_out) 19 20 21 + Store 23 20 + 24: 8(int) Load 18(gl_InvocationID) + 33: 32(ptr) AccessChain 31(gl_in) 20 21 + 34: 7(fvec4) Load 33 + 36: 35(ptr) AccessChain 16(gl_out) 24 21 + Store 36 34 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.vert.out b/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.vert.out new file mode 100644 index 0000000000..afd8c75a27 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.stereoViewRendering.vert.out @@ -0,0 +1,68 @@ +spv.stereoViewRendering.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 27 + + Capability Shader + Capability Geometry + Capability ShaderViewportIndexLayerNV + Capability ShaderViewportMaskNV + Capability ShaderStereoViewNV + Extension "SPV_EXT_shader_viewport_index_layer" + Extension "SPV_NV_stereo_view_rendering" + Extension "SPV_NV_viewport_array2" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 11 19 23 26 + Source GLSL 450 + SourceExtension "GL_NV_stereo_view_rendering" + SourceExtension "GL_NV_viewport_array2" + Name 4 "main" + Name 11 "gl_SecondaryViewportMaskNV" + Name 19 "gl_SecondaryPositionNV" + Name 21 "gl_PerVertex" + MemberName 21(gl_PerVertex) 0 "gl_Position" + MemberName 21(gl_PerVertex) 1 "gl_PointSize" + MemberName 21(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 21(gl_PerVertex) 3 "gl_CullDistance" + Name 23 "" + Name 26 "gl_Layer" + Decorate 11(gl_SecondaryViewportMaskNV) BuiltIn SecondaryViewportMaskNV + Decorate 19(gl_SecondaryPositionNV) BuiltIn SecondaryPositionNV + MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 21(gl_PerVertex) Block + Decorate 26(gl_Layer) BuiltIn Layer + Decorate 26(gl_Layer) ViewportRelativeNV + Decorate 26(gl_Layer) SecondaryViewportRelativeNV 2 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: 7(int) Constant 1 + 9: TypeArray 6(int) 8 + 10: TypePointer Output 9 +11(gl_SecondaryViewportMaskNV): 10(ptr) Variable Output + 12: 6(int) Constant 0 + 13: 6(int) Constant 1 + 14: TypePointer Output 6(int) + 16: TypeFloat 32 + 17: TypeVector 16(float) 4 + 18: TypePointer Output 17(fvec4) +19(gl_SecondaryPositionNV): 18(ptr) Variable Output + 20: TypeArray 16(float) 8 +21(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 20 20 + 22: TypePointer Output 21(gl_PerVertex) + 23: 22(ptr) Variable Output + 26(gl_Layer): 14(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 15: 14(ptr) AccessChain 11(gl_SecondaryViewportMaskNV) 12 + Store 15 13 + 24: 18(ptr) AccessChain 23 12 + 25: 17(fvec4) Load 24 + Store 19(gl_SecondaryPositionNV) 25 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.storageBuffer.vert.out b/deps/glslang/glslang/Test/baseResults/spv.storageBuffer.vert.out new file mode 100644 index 0000000000..71c3bf28b3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.storageBuffer.vert.out @@ -0,0 +1,67 @@ +spv.storageBuffer.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + Extension "SPV_KHR_storage_buffer_storage_class" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 13 + 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 16 "ub" + MemberName 16(ub) 0 "a" + Name 18 "ubi" + Name 22 "bb" + MemberName 22(bb) 0 "b" + Name 24 "bbi" + 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 + MemberDecorate 16(ub) 0 Offset 0 + Decorate 16(ub) Block + Decorate 18(ubi) DescriptorSet 0 + MemberDecorate 22(bb) 0 Offset 0 + Decorate 22(bb) Block + Decorate 24(bbi) DescriptorSet 0 + 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(ub): TypeStruct 7(fvec4) + 17: TypePointer Uniform 16(ub) + 18(ubi): 17(ptr) Variable Uniform + 19: TypePointer Uniform 7(fvec4) + 22(bb): TypeStruct 7(fvec4) + 23: TypePointer StorageBuffer 22(bb) + 24(bbi): 23(ptr) Variable StorageBuffer + 25: TypePointer StorageBuffer 7(fvec4) + 29: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 20: 19(ptr) AccessChain 18(ubi) 15 + 21: 7(fvec4) Load 20 + 26: 25(ptr) AccessChain 24(bbi) 15 + 27: 7(fvec4) Load 26 + 28: 7(fvec4) FAdd 21 27 + 30: 29(ptr) AccessChain 13 15 + Store 30 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out b/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out new file mode 100644 index 0000000000..ec771cc367 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.structAssignment.frag.out @@ -0,0 +1,99 @@ +spv.structAssignment.frag +WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 31 44 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "lunarStruct1" + MemberName 8(lunarStruct1) 0 "i" + MemberName 8(lunarStruct1) 1 "f" + Name 9 "lunarStruct2" + MemberName 9(lunarStruct2) 0 "i" + MemberName 9(lunarStruct2) 1 "f" + MemberName 9(lunarStruct2) 2 "s1_1" + Name 10 "lunarStruct3" + MemberName 10(lunarStruct3) 0 "s2_1" + MemberName 10(lunarStruct3) 1 "i" + MemberName 10(lunarStruct3) 2 "f" + MemberName 10(lunarStruct3) 3 "s1_1" + Name 12 "foo3" + Name 22 "locals2" + Name 27 "foo2" + Name 31 "gl_FragColor" + Name 40 "samp2D" + Name 44 "coord" + Name 49 "foo" + MemberDecorate 8(lunarStruct1) 0 RelaxedPrecision + MemberDecorate 9(lunarStruct2) 0 RelaxedPrecision + MemberDecorate 10(lunarStruct3) 1 RelaxedPrecision + Decorate 16 RelaxedPrecision + Decorate 31(gl_FragColor) Location 0 + Decorate 40(samp2D) DescriptorSet 0 + Decorate 44(coord) RelaxedPrecision + Decorate 45 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(lunarStruct1): TypeStruct 6(int) 7(float) + 9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1) +10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1) + 11: TypePointer Private 10(lunarStruct3) + 12(foo3): 11(ptr) Variable Private + 13: 6(int) Constant 0 + 14: TypePointer Private 6(int) + 17: TypeBool + 21: TypePointer Function 9(lunarStruct2) + 23: TypePointer Private 9(lunarStruct2) + 27(foo2): 23(ptr) Variable Private + 29: TypeVector 7(float) 4 + 30: TypePointer Output 29(fvec4) +31(gl_FragColor): 30(ptr) Variable Output + 32: 6(int) Constant 2 + 33: 6(int) Constant 1 + 34: TypePointer Function 7(float) + 37: TypeImage 7(float) 2D sampled format:Unknown + 38: TypeSampledImage 37 + 39: TypePointer UniformConstant 38 + 40(samp2D): 39(ptr) Variable UniformConstant + 42: TypeVector 7(float) 2 + 43: TypePointer Input 42(fvec2) + 44(coord): 43(ptr) Variable Input + 48: TypePointer Private 8(lunarStruct1) + 49(foo): 48(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 22(locals2): 21(ptr) Variable Function + 15: 14(ptr) AccessChain 12(foo3) 13 13 + 16: 6(int) Load 15 + 18: 17(bool) SGreaterThan 16 13 + SelectionMerge 20 None + BranchConditional 18 19 26 + 19: Label + 24: 23(ptr) AccessChain 12(foo3) 13 + 25:9(lunarStruct2) Load 24 + Store 22(locals2) 25 + Branch 20 + 26: Label + 28:9(lunarStruct2) Load 27(foo2) + Store 22(locals2) 28 + Branch 20 + 20: Label + 35: 34(ptr) AccessChain 22(locals2) 32 33 + 36: 7(float) Load 35 + 41: 38 Load 40(samp2D) + 45: 42(fvec2) Load 44(coord) + 46: 29(fvec4) ImageSampleImplicitLod 41 45 + 47: 29(fvec4) VectorTimesScalar 46 36 + Store 31(gl_FragColor) 47 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out b/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out new file mode 100644 index 0000000000..a7915b4029 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.structDeref.frag.out @@ -0,0 +1,188 @@ +spv.structDeref.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 123 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 61 99 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "s0" + MemberName 8(s0) 0 "i" + Name 9 "s1" + MemberName 9(s1) 0 "i" + MemberName 9(s1) 1 "f" + MemberName 9(s1) 2 "s0_1" + Name 10 "s2" + MemberName 10(s2) 0 "i" + MemberName 10(s2) 1 "f" + MemberName 10(s2) 2 "s1_1" + Name 14 "s3" + MemberName 14(s3) 0 "s2_1" + MemberName 14(s3) 1 "i" + MemberName 14(s3) 2 "f" + MemberName 14(s3) 3 "s1_1" + Name 16 "foo3" + Name 27 "locals2" + Name 40 "fArray" + Name 46 "locals1Array" + Name 49 "foo1" + Name 53 "locals0" + Name 54 "s00" + MemberName 54(s00) 0 "s0_0" + Name 56 "locals00" + Name 61 "coord" + Name 71 "foo0" + Name 86 "foo00" + Name 99 "gl_FragColor" + Name 116 "samp2D" + Name 122 "foo2" + Decorate 99(gl_FragColor) Location 0 + Decorate 116(samp2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(s0): TypeStruct 6(int) + 9(s1): TypeStruct 6(int) 7(float) 8(s0) + 10(s2): TypeStruct 6(int) 7(float) 9(s1) + 11: TypeInt 32 0 + 12: 11(int) Constant 12 + 13: TypeArray 10(s2) 12 + 14(s3): TypeStruct 13 6(int) 7(float) 9(s1) + 15: TypePointer Private 14(s3) + 16(foo3): 15(ptr) Variable Private + 17: 6(int) Constant 0 + 18: 6(int) Constant 9 + 19: TypePointer Private 6(int) + 22: TypeBool + 26: TypePointer Function 10(s2) + 28: 6(int) Constant 1 + 29: 7(float) Constant 1065353216 + 30: TypePointer Function 7(float) + 32: 6(int) Constant 2 + 33: 8(s0) ConstantComposite 17 + 34: 9(s1) ConstantComposite 17 29 33 + 35: TypePointer Function 9(s1) + 37: 11(int) Constant 6 + 38: TypeArray 7(float) 37 + 39: TypePointer Function 38 + 41: 7(float) Constant 0 + 42: 38 ConstantComposite 41 41 41 41 41 41 + 43: 11(int) Constant 10 + 44: TypeArray 9(s1) 43 + 45: TypePointer Function 44 + 47: 6(int) Constant 6 + 48: TypePointer Private 9(s1) + 49(foo1): 48(ptr) Variable Private + 52: TypePointer Function 8(s0) + 54(s00): TypeStruct 8(s0) + 55: TypePointer Function 54(s00) + 57: 54(s00) ConstantComposite 33 + 59: TypeVector 7(float) 2 + 60: TypePointer Input 59(fvec2) + 61(coord): 60(ptr) Variable Input + 62: 11(int) Constant 0 + 63: TypePointer Input 7(float) + 67: 11(int) Constant 1 + 70: TypePointer Private 8(s0) + 71(foo0): 70(ptr) Variable Private + 75: 7(float) Constant 1073741824 + 76: 7(float) Constant 1077936128 + 77: 7(float) Constant 1082130432 + 78: 7(float) Constant 1084227584 + 79: 38 ConstantComposite 41 29 75 76 77 78 + 85: TypePointer Private 54(s00) + 86(foo00): 85(ptr) Variable Private + 88: TypePointer Function 6(int) + 91: 6(int) Constant 5 + 97: TypeVector 7(float) 4 + 98: TypePointer Output 97(fvec4) +99(gl_FragColor): 98(ptr) Variable Output + 106: 6(int) Constant 3 + 113: TypeImage 7(float) 2D sampled format:Unknown + 114: TypeSampledImage 113 + 115: TypePointer UniformConstant 114 + 116(samp2D): 115(ptr) Variable UniformConstant + 121: TypePointer Private 10(s2) + 122(foo2): 121(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 27(locals2): 26(ptr) Variable Function + 40(fArray): 39(ptr) Variable Function +46(locals1Array): 45(ptr) Variable Function + 53(locals0): 52(ptr) Variable Function + 56(locals00): 55(ptr) Variable Function + 20: 19(ptr) AccessChain 16(foo3) 17 18 17 + 21: 6(int) Load 20 + 23: 22(bool) SGreaterThan 21 17 + SelectionMerge 25 None + BranchConditional 23 24 58 + 24: Label + 31: 30(ptr) AccessChain 27(locals2) 28 + Store 31 29 + 36: 35(ptr) AccessChain 27(locals2) 32 + Store 36 34 + Store 40(fArray) 42 + 50: 9(s1) Load 49(foo1) + 51: 35(ptr) AccessChain 46(locals1Array) 47 + Store 51 50 + Store 53(locals0) 33 + Store 56(locals00) 57 + Branch 25 + 58: Label + 64: 63(ptr) AccessChain 61(coord) 62 + 65: 7(float) Load 64 + 66: 30(ptr) AccessChain 27(locals2) 28 + Store 66 65 + 68: 63(ptr) AccessChain 61(coord) 67 + 69: 7(float) Load 68 + 72: 8(s0) Load 71(foo0) + 73: 9(s1) CompositeConstruct 28 69 72 + 74: 35(ptr) AccessChain 27(locals2) 32 + Store 74 73 + Store 40(fArray) 79 + 80: 35(ptr) AccessChain 27(locals2) 32 + 81: 9(s1) Load 80 + 82: 35(ptr) AccessChain 46(locals1Array) 47 + Store 82 81 + 83: 70(ptr) AccessChain 49(foo1) 32 + 84: 8(s0) Load 83 + Store 53(locals0) 84 + 87: 54(s00) Load 86(foo00) + Store 56(locals00) 87 + Branch 25 + 25: Label + 89: 88(ptr) AccessChain 53(locals0) 17 + 90: 6(int) Load 89 + 92: 22(bool) SGreaterThan 90 91 + SelectionMerge 94 None + BranchConditional 92 93 94 + 93: Label + 95: 52(ptr) AccessChain 56(locals00) 17 + 96: 8(s0) Load 95 + Store 53(locals0) 96 + Branch 94 + 94: Label + 100: 88(ptr) AccessChain 53(locals0) 17 + 101: 6(int) Load 100 + 102: 7(float) ConvertSToF 101 + 103: 30(ptr) AccessChain 46(locals1Array) 47 28 + 104: 7(float) Load 103 + 105: 7(float) FAdd 102 104 + 107: 30(ptr) AccessChain 40(fArray) 106 + 108: 7(float) Load 107 + 109: 7(float) FAdd 105 108 + 110: 30(ptr) AccessChain 27(locals2) 32 28 + 111: 7(float) Load 110 + 112: 7(float) FAdd 109 111 + 117: 114 Load 116(samp2D) + 118: 59(fvec2) Load 61(coord) + 119: 97(fvec4) ImageSampleImplicitLod 117 118 + 120: 97(fvec4) VectorTimesScalar 119 112 + Store 99(gl_FragColor) 120 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out b/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out new file mode 100644 index 0000000000..0592084b90 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.structure.frag.out @@ -0,0 +1,96 @@ +spv.structure.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 60 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 45 54 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "scale" + Name 18 "lunarStruct1" + MemberName 18(lunarStruct1) 0 "i" + MemberName 18(lunarStruct1) 1 "f" + MemberName 18(lunarStruct1) 2 "color" + Name 21 "lunarStruct2" + MemberName 21(lunarStruct2) 0 "i" + MemberName 21(lunarStruct2) 1 "f" + MemberName 21(lunarStruct2) 2 "s1_1" + Name 24 "foo2" + Name 45 "gl_FragColor" + Name 50 "samp2D" + Name 54 "coord" + Name 59 "foo" + Decorate 45(gl_FragColor) Location 0 + Decorate 50(samp2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 0 + 10: TypeInt 32 1 + 11: TypeInt 32 0 + 12: 11(int) Constant 5 + 13: TypeArray 10(int) 12 + 14: 11(int) Constant 4 + 15: TypeArray 6(float) 14 + 16: TypeVector 6(float) 4 + 17: TypeArray 16(fvec4) 12 +18(lunarStruct1): TypeStruct 10(int) 15 17 + 19: 11(int) Constant 7 + 20: TypeArray 18(lunarStruct1) 19 +21(lunarStruct2): TypeStruct 13 6(float) 20 + 22: TypeArray 21(lunarStruct2) 12 + 23: TypePointer Private 22 + 24(foo2): 23(ptr) Variable Private + 25: 10(int) Constant 3 + 26: 10(int) Constant 0 + 27: 10(int) Constant 4 + 28: TypePointer Private 10(int) + 31: TypeBool + 35: 10(int) Constant 2 + 36: 11(int) Constant 0 + 37: TypePointer Private 6(float) + 41: 10(int) Constant 1 + 44: TypePointer Output 16(fvec4) +45(gl_FragColor): 44(ptr) Variable Output + 47: TypeImage 6(float) 2D sampled format:Unknown + 48: TypeSampledImage 47 + 49: TypePointer UniformConstant 48 + 50(samp2D): 49(ptr) Variable UniformConstant + 52: TypeVector 6(float) 2 + 53: TypePointer Input 52(fvec2) + 54(coord): 53(ptr) Variable Input + 58: TypePointer Private 18(lunarStruct1) + 59(foo): 58(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 8(scale): 7(ptr) Variable Function + Store 8(scale) 9 + 29: 28(ptr) AccessChain 24(foo2) 25 26 27 + 30: 10(int) Load 29 + 32: 31(bool) SGreaterThan 30 26 + SelectionMerge 34 None + BranchConditional 32 33 40 + 33: Label + 38: 37(ptr) AccessChain 24(foo2) 25 35 35 35 25 36 + 39: 6(float) Load 38 + Store 8(scale) 39 + Branch 34 + 40: Label + 42: 37(ptr) AccessChain 24(foo2) 25 35 35 41 25 + 43: 6(float) Load 42 + Store 8(scale) 43 + Branch 34 + 34: Label + 46: 6(float) Load 8(scale) + 51: 48 Load 50(samp2D) + 55: 52(fvec2) Load 54(coord) + 56: 16(fvec4) ImageSampleImplicitLod 51 55 + 57: 16(fvec4) VectorTimesScalar 56 46 + Store 45(gl_FragColor) 57 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroup.frag.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.frag.out new file mode 100644 index 0000000000..4dd636e5a2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroup.frag.out @@ -0,0 +1,44 @@ +spv.subgroup.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 17 + + Capability Shader + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 11 13 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 9 "data" + Name 11 "gl_SubgroupSize" + Name 13 "gl_SubgroupInvocationID" + Decorate 9(data) Location 0 + Decorate 11(gl_SubgroupSize) RelaxedPrecision + Decorate 11(gl_SubgroupSize) Flat + Decorate 11(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 12 RelaxedPrecision + Decorate 13(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 13(gl_SubgroupInvocationID) Flat + Decorate 13(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 14 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypePointer Output 7(ivec4) + 9(data): 8(ptr) Variable Output + 10: TypePointer Input 6(int) +11(gl_SubgroupSize): 10(ptr) Variable Input +13(gl_SubgroupInvocationID): 10(ptr) Variable Input + 15: 6(int) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 12: 6(int) Load 11(gl_SubgroupSize) + 14: 6(int) Load 13(gl_SubgroupInvocationID) + 16: 7(ivec4) CompositeConstruct 12 14 15 15 + Store 9(data) 16 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroup.geom.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.geom.out new file mode 100644 index 0000000000..8f134c7123 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroup.geom.out @@ -0,0 +1,62 @@ +spv.subgroup.geom +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Geometry + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 15 18 20 + ExecutionMode 4 InputPoints + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputPoints + ExecutionMode 4 OutputVertices 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 9 "Output" + MemberName 9(Output) 0 "result" + Name 11 "" + Name 15 "gl_PrimitiveIDIn" + Name 18 "gl_SubgroupSize" + Name 20 "gl_SubgroupInvocationID" + Decorate 8 ArrayStride 16 + MemberDecorate 9(Output) 0 Offset 0 + Decorate 9(Output) BufferBlock + Decorate 11 DescriptorSet 0 + Decorate 11 Binding 0 + Decorate 15(gl_PrimitiveIDIn) BuiltIn PrimitiveId + Decorate 18(gl_SubgroupSize) RelaxedPrecision + Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 19 RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 21 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeRuntimeArray 7(ivec4) + 9(Output): TypeStruct 8 + 10: TypePointer Uniform 9(Output) + 11: 10(ptr) Variable Uniform + 12: TypeInt 32 1 + 13: 12(int) Constant 0 + 14: TypePointer Input 12(int) +15(gl_PrimitiveIDIn): 14(ptr) Variable Input + 17: TypePointer Input 6(int) +18(gl_SubgroupSize): 17(ptr) Variable Input +20(gl_SubgroupInvocationID): 17(ptr) Variable Input + 22: 6(int) Constant 0 + 24: TypePointer Uniform 7(ivec4) + 4(main): 2 Function None 3 + 5: Label + 16: 12(int) Load 15(gl_PrimitiveIDIn) + 19: 6(int) Load 18(gl_SubgroupSize) + 21: 6(int) Load 20(gl_SubgroupInvocationID) + 23: 7(ivec4) CompositeConstruct 19 21 22 22 + 25: 24(ptr) AccessChain 11 13 16 + Store 25 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroup.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.tesc.out new file mode 100644 index 0000000000..2a7a96325b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroup.tesc.out @@ -0,0 +1,59 @@ +spv.subgroup.tesc +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Tessellation + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 15 18 20 + ExecutionMode 4 OutputVertices 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 9 "Output" + MemberName 9(Output) 0 "result" + Name 11 "" + Name 15 "gl_PrimitiveID" + Name 18 "gl_SubgroupSize" + Name 20 "gl_SubgroupInvocationID" + Decorate 8 ArrayStride 16 + MemberDecorate 9(Output) 0 Offset 0 + Decorate 9(Output) BufferBlock + Decorate 11 DescriptorSet 0 + Decorate 11 Binding 0 + Decorate 15(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 18(gl_SubgroupSize) RelaxedPrecision + Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 19 RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 21 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeRuntimeArray 7(ivec4) + 9(Output): TypeStruct 8 + 10: TypePointer Uniform 9(Output) + 11: 10(ptr) Variable Uniform + 12: TypeInt 32 1 + 13: 12(int) Constant 0 + 14: TypePointer Input 12(int) +15(gl_PrimitiveID): 14(ptr) Variable Input + 17: TypePointer Input 6(int) +18(gl_SubgroupSize): 17(ptr) Variable Input +20(gl_SubgroupInvocationID): 17(ptr) Variable Input + 22: 6(int) Constant 0 + 24: TypePointer Uniform 7(ivec4) + 4(main): 2 Function None 3 + 5: Label + 16: 12(int) Load 15(gl_PrimitiveID) + 19: 6(int) Load 18(gl_SubgroupSize) + 21: 6(int) Load 20(gl_SubgroupInvocationID) + 23: 7(ivec4) CompositeConstruct 19 21 22 22 + 25: 24(ptr) AccessChain 11 13 16 + Store 25 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroup.tese.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.tese.out new file mode 100644 index 0000000000..68c8076b18 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroup.tese.out @@ -0,0 +1,61 @@ +spv.subgroup.tese +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Tessellation + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationEvaluation 4 "main" 15 18 20 + ExecutionMode 4 Isolines + ExecutionMode 4 SpacingEqual + ExecutionMode 4 VertexOrderCcw + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 9 "Output" + MemberName 9(Output) 0 "result" + Name 11 "" + Name 15 "gl_PrimitiveID" + Name 18 "gl_SubgroupSize" + Name 20 "gl_SubgroupInvocationID" + Decorate 8 ArrayStride 16 + MemberDecorate 9(Output) 0 Offset 0 + Decorate 9(Output) BufferBlock + Decorate 11 DescriptorSet 0 + Decorate 11 Binding 0 + Decorate 15(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 18(gl_SubgroupSize) RelaxedPrecision + Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 19 RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 21 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeRuntimeArray 7(ivec4) + 9(Output): TypeStruct 8 + 10: TypePointer Uniform 9(Output) + 11: 10(ptr) Variable Uniform + 12: TypeInt 32 1 + 13: 12(int) Constant 0 + 14: TypePointer Input 12(int) +15(gl_PrimitiveID): 14(ptr) Variable Input + 17: TypePointer Input 6(int) +18(gl_SubgroupSize): 17(ptr) Variable Input +20(gl_SubgroupInvocationID): 17(ptr) Variable Input + 22: 6(int) Constant 0 + 24: TypePointer Uniform 7(ivec4) + 4(main): 2 Function None 3 + 5: Label + 16: 12(int) Load 15(gl_PrimitiveID) + 19: 6(int) Load 18(gl_SubgroupSize) + 21: 6(int) Load 20(gl_SubgroupInvocationID) + 23: 7(ivec4) CompositeConstruct 19 21 22 22 + 25: 24(ptr) AccessChain 11 13 16 + Store 25 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroup.vert.out b/deps/glslang/glslang/Test/baseResults/spv.subgroup.vert.out new file mode 100644 index 0000000000..e4e7784916 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroup.vert.out @@ -0,0 +1,58 @@ +spv.subgroup.vert +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 26 + + Capability Shader + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 15 18 20 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 9 "Output" + MemberName 9(Output) 0 "result" + Name 11 "" + Name 15 "gl_VertexIndex" + Name 18 "gl_SubgroupSize" + Name 20 "gl_SubgroupInvocationID" + Decorate 8 ArrayStride 16 + MemberDecorate 9(Output) 0 Offset 0 + Decorate 9(Output) BufferBlock + Decorate 11 DescriptorSet 0 + Decorate 11 Binding 0 + Decorate 15(gl_VertexIndex) BuiltIn VertexIndex + Decorate 18(gl_SubgroupSize) RelaxedPrecision + Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 19 RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 21 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeRuntimeArray 7(ivec4) + 9(Output): TypeStruct 8 + 10: TypePointer Uniform 9(Output) + 11: 10(ptr) Variable Uniform + 12: TypeInt 32 1 + 13: 12(int) Constant 0 + 14: TypePointer Input 12(int) +15(gl_VertexIndex): 14(ptr) Variable Input + 17: TypePointer Input 6(int) +18(gl_SubgroupSize): 17(ptr) Variable Input +20(gl_SubgroupInvocationID): 17(ptr) Variable Input + 22: 6(int) Constant 0 + 24: TypePointer Uniform 7(ivec4) + 4(main): 2 Function None 3 + 5: Label + 16: 12(int) Load 15(gl_VertexIndex) + 19: 6(int) Load 18(gl_SubgroupSize) + 21: 6(int) Load 20(gl_SubgroupInvocationID) + 23: 7(ivec4) CompositeConstruct 19 21 22 22 + 25: 24(ptr) AccessChain 11 13 16 + Store 25 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out new file mode 100644 index 0000000000..c38d4d0ae3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out @@ -0,0 +1,2428 @@ +spv.subgroupArithmetic.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 2085 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformArithmetic + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 1 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_arithmetic" + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 24 "Buffers" + MemberName 24(Buffers) 0 "f4" + MemberName 24(Buffers) 1 "i4" + MemberName 24(Buffers) 2 "u4" + MemberName 24(Buffers) 3 "d4" + Name 27 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 24(Buffers) 0 Offset 0 + MemberDecorate 24(Buffers) 1 Offset 16 + MemberDecorate 24(Buffers) 2 Offset 32 + MemberDecorate 24(Buffers) 3 Offset 64 + Decorate 24(Buffers) BufferBlock + Decorate 27(data) DescriptorSet 0 + Decorate 27(data) Binding 0 + Decorate 2084 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 21: TypeVector 6(int) 4 + 22: TypeFloat 64 + 23: TypeVector 22(float64_t) 4 + 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) + 25: TypeArray 24(Buffers) 15 + 26: TypePointer Uniform 25 + 27(data): 26(ptr) Variable Uniform + 29: 19(int) Constant 0 + 30: 6(int) Constant 0 + 31: TypePointer Uniform 17(float) + 34: 6(int) Constant 3 + 38: 19(int) Constant 1 + 39: TypeVector 17(float) 2 + 40: TypePointer Uniform 18(fvec4) + 49: 19(int) Constant 2 + 50: TypeVector 17(float) 3 + 59: 19(int) Constant 3 + 65: TypePointer Uniform 19(int) + 71: TypeVector 19(int) 2 + 72: TypePointer Uniform 20(ivec4) + 81: TypeVector 19(int) 3 + 95: TypePointer Uniform 6(int) + 101: TypeVector 6(int) 2 + 102: TypePointer Uniform 21(ivec4) + 111: TypeVector 6(int) 3 + 125: TypePointer Uniform 22(float64_t) + 131: TypeVector 22(float64_t) 2 + 132: TypePointer Uniform 23(f64vec4) + 141: TypeVector 22(float64_t) 3 + 521: TypeBool + 530: 71(ivec2) ConstantComposite 29 29 + 531: TypeVector 521(bool) 2 + 534: 71(ivec2) ConstantComposite 38 38 + 543: 81(ivec3) ConstantComposite 29 29 29 + 544: TypeVector 521(bool) 3 + 547: 81(ivec3) ConstantComposite 38 38 38 + 555: 20(ivec4) ConstantComposite 29 29 29 29 + 556: TypeVector 521(bool) 4 + 559: 20(ivec4) ConstantComposite 38 38 38 38 + 2082: 6(int) Constant 8 + 2083: 6(int) Constant 1 + 2084: 111(ivec3) ConstantComposite 2082 2083 2083 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 28: 6(int) Load 8(invocation) + 32: 31(ptr) AccessChain 27(data) 29 29 30 + 33: 17(float) Load 32 + 35: 17(float) GroupNonUniformFAdd 34 Reduce 33 + 36: 31(ptr) AccessChain 27(data) 28 29 30 + Store 36 35 + 37: 6(int) Load 8(invocation) + 41: 40(ptr) AccessChain 27(data) 38 29 + 42: 18(fvec4) Load 41 + 43: 39(fvec2) VectorShuffle 42 42 0 1 + 44: 39(fvec2) GroupNonUniformFAdd 34 Reduce 43 + 45: 40(ptr) AccessChain 27(data) 37 29 + 46: 18(fvec4) Load 45 + 47: 18(fvec4) VectorShuffle 46 44 4 5 2 3 + Store 45 47 + 48: 6(int) Load 8(invocation) + 51: 40(ptr) AccessChain 27(data) 49 29 + 52: 18(fvec4) Load 51 + 53: 50(fvec3) VectorShuffle 52 52 0 1 2 + 54: 50(fvec3) GroupNonUniformFAdd 34 Reduce 53 + 55: 40(ptr) AccessChain 27(data) 48 29 + 56: 18(fvec4) Load 55 + 57: 18(fvec4) VectorShuffle 56 54 4 5 6 3 + Store 55 57 + 58: 6(int) Load 8(invocation) + 60: 40(ptr) AccessChain 27(data) 59 29 + 61: 18(fvec4) Load 60 + 62: 18(fvec4) GroupNonUniformFAdd 34 Reduce 61 + 63: 40(ptr) AccessChain 27(data) 58 29 + Store 63 62 + 64: 6(int) Load 8(invocation) + 66: 65(ptr) AccessChain 27(data) 29 38 30 + 67: 19(int) Load 66 + 68: 19(int) GroupNonUniformIAdd 34 Reduce 67 + 69: 65(ptr) AccessChain 27(data) 64 38 30 + Store 69 68 + 70: 6(int) Load 8(invocation) + 73: 72(ptr) AccessChain 27(data) 38 38 + 74: 20(ivec4) Load 73 + 75: 71(ivec2) VectorShuffle 74 74 0 1 + 76: 71(ivec2) GroupNonUniformIAdd 34 Reduce 75 + 77: 72(ptr) AccessChain 27(data) 70 38 + 78: 20(ivec4) Load 77 + 79: 20(ivec4) VectorShuffle 78 76 4 5 2 3 + Store 77 79 + 80: 6(int) Load 8(invocation) + 82: 72(ptr) AccessChain 27(data) 49 38 + 83: 20(ivec4) Load 82 + 84: 81(ivec3) VectorShuffle 83 83 0 1 2 + 85: 81(ivec3) GroupNonUniformIAdd 34 Reduce 84 + 86: 72(ptr) AccessChain 27(data) 80 38 + 87: 20(ivec4) Load 86 + 88: 20(ivec4) VectorShuffle 87 85 4 5 6 3 + Store 86 88 + 89: 6(int) Load 8(invocation) + 90: 72(ptr) AccessChain 27(data) 59 38 + 91: 20(ivec4) Load 90 + 92: 20(ivec4) GroupNonUniformIAdd 34 Reduce 91 + 93: 72(ptr) AccessChain 27(data) 89 38 + Store 93 92 + 94: 6(int) Load 8(invocation) + 96: 95(ptr) AccessChain 27(data) 29 49 30 + 97: 6(int) Load 96 + 98: 6(int) GroupNonUniformIAdd 34 Reduce 97 + 99: 95(ptr) AccessChain 27(data) 94 49 30 + Store 99 98 + 100: 6(int) Load 8(invocation) + 103: 102(ptr) AccessChain 27(data) 38 49 + 104: 21(ivec4) Load 103 + 105: 101(ivec2) VectorShuffle 104 104 0 1 + 106: 101(ivec2) GroupNonUniformIAdd 34 Reduce 105 + 107: 102(ptr) AccessChain 27(data) 100 49 + 108: 21(ivec4) Load 107 + 109: 21(ivec4) VectorShuffle 108 106 4 5 2 3 + Store 107 109 + 110: 6(int) Load 8(invocation) + 112: 102(ptr) AccessChain 27(data) 49 49 + 113: 21(ivec4) Load 112 + 114: 111(ivec3) VectorShuffle 113 113 0 1 2 + 115: 111(ivec3) GroupNonUniformIAdd 34 Reduce 114 + 116: 102(ptr) AccessChain 27(data) 110 49 + 117: 21(ivec4) Load 116 + 118: 21(ivec4) VectorShuffle 117 115 4 5 6 3 + Store 116 118 + 119: 6(int) Load 8(invocation) + 120: 102(ptr) AccessChain 27(data) 59 49 + 121: 21(ivec4) Load 120 + 122: 21(ivec4) GroupNonUniformIAdd 34 Reduce 121 + 123: 102(ptr) AccessChain 27(data) 119 49 + Store 123 122 + 124: 6(int) Load 8(invocation) + 126: 125(ptr) AccessChain 27(data) 29 59 30 + 127:22(float64_t) Load 126 + 128:22(float64_t) GroupNonUniformFAdd 34 Reduce 127 + 129: 125(ptr) AccessChain 27(data) 124 59 30 + Store 129 128 + 130: 6(int) Load 8(invocation) + 133: 132(ptr) AccessChain 27(data) 38 59 + 134: 23(f64vec4) Load 133 + 135:131(f64vec2) VectorShuffle 134 134 0 1 + 136:131(f64vec2) GroupNonUniformFAdd 34 Reduce 135 + 137: 132(ptr) AccessChain 27(data) 130 59 + 138: 23(f64vec4) Load 137 + 139: 23(f64vec4) VectorShuffle 138 136 4 5 2 3 + Store 137 139 + 140: 6(int) Load 8(invocation) + 142: 132(ptr) AccessChain 27(data) 49 59 + 143: 23(f64vec4) Load 142 + 144:141(f64vec3) VectorShuffle 143 143 0 1 2 + 145:141(f64vec3) GroupNonUniformFAdd 34 Reduce 144 + 146: 132(ptr) AccessChain 27(data) 140 59 + 147: 23(f64vec4) Load 146 + 148: 23(f64vec4) VectorShuffle 147 145 4 5 6 3 + Store 146 148 + 149: 6(int) Load 8(invocation) + 150: 132(ptr) AccessChain 27(data) 59 59 + 151: 23(f64vec4) Load 150 + 152: 23(f64vec4) GroupNonUniformFAdd 34 Reduce 151 + 153: 132(ptr) AccessChain 27(data) 149 59 + Store 153 152 + 154: 6(int) Load 8(invocation) + 155: 31(ptr) AccessChain 27(data) 29 29 30 + 156: 17(float) Load 155 + 157: 17(float) GroupNonUniformFMul 34 Reduce 156 + 158: 31(ptr) AccessChain 27(data) 154 29 30 + Store 158 157 + 159: 6(int) Load 8(invocation) + 160: 40(ptr) AccessChain 27(data) 38 29 + 161: 18(fvec4) Load 160 + 162: 39(fvec2) VectorShuffle 161 161 0 1 + 163: 39(fvec2) GroupNonUniformFMul 34 Reduce 162 + 164: 40(ptr) AccessChain 27(data) 159 29 + 165: 18(fvec4) Load 164 + 166: 18(fvec4) VectorShuffle 165 163 4 5 2 3 + Store 164 166 + 167: 6(int) Load 8(invocation) + 168: 40(ptr) AccessChain 27(data) 49 29 + 169: 18(fvec4) Load 168 + 170: 50(fvec3) VectorShuffle 169 169 0 1 2 + 171: 50(fvec3) GroupNonUniformFMul 34 Reduce 170 + 172: 40(ptr) AccessChain 27(data) 167 29 + 173: 18(fvec4) Load 172 + 174: 18(fvec4) VectorShuffle 173 171 4 5 6 3 + Store 172 174 + 175: 6(int) Load 8(invocation) + 176: 40(ptr) AccessChain 27(data) 59 29 + 177: 18(fvec4) Load 176 + 178: 18(fvec4) GroupNonUniformFMul 34 Reduce 177 + 179: 40(ptr) AccessChain 27(data) 175 29 + Store 179 178 + 180: 6(int) Load 8(invocation) + 181: 65(ptr) AccessChain 27(data) 29 38 30 + 182: 19(int) Load 181 + 183: 19(int) GroupNonUniformIMul 34 Reduce 182 + 184: 65(ptr) AccessChain 27(data) 180 38 30 + Store 184 183 + 185: 6(int) Load 8(invocation) + 186: 72(ptr) AccessChain 27(data) 38 38 + 187: 20(ivec4) Load 186 + 188: 71(ivec2) VectorShuffle 187 187 0 1 + 189: 71(ivec2) GroupNonUniformIMul 34 Reduce 188 + 190: 72(ptr) AccessChain 27(data) 185 38 + 191: 20(ivec4) Load 190 + 192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 + Store 190 192 + 193: 6(int) Load 8(invocation) + 194: 72(ptr) AccessChain 27(data) 49 38 + 195: 20(ivec4) Load 194 + 196: 81(ivec3) VectorShuffle 195 195 0 1 2 + 197: 81(ivec3) GroupNonUniformIMul 34 Reduce 196 + 198: 72(ptr) AccessChain 27(data) 193 38 + 199: 20(ivec4) Load 198 + 200: 20(ivec4) VectorShuffle 199 197 4 5 6 3 + Store 198 200 + 201: 6(int) Load 8(invocation) + 202: 72(ptr) AccessChain 27(data) 59 38 + 203: 20(ivec4) Load 202 + 204: 20(ivec4) GroupNonUniformIMul 34 Reduce 203 + 205: 72(ptr) AccessChain 27(data) 201 38 + Store 205 204 + 206: 6(int) Load 8(invocation) + 207: 95(ptr) AccessChain 27(data) 29 49 30 + 208: 6(int) Load 207 + 209: 6(int) GroupNonUniformIMul 34 Reduce 208 + 210: 95(ptr) AccessChain 27(data) 206 49 30 + Store 210 209 + 211: 6(int) Load 8(invocation) + 212: 102(ptr) AccessChain 27(data) 38 49 + 213: 21(ivec4) Load 212 + 214: 101(ivec2) VectorShuffle 213 213 0 1 + 215: 101(ivec2) GroupNonUniformIMul 34 Reduce 214 + 216: 102(ptr) AccessChain 27(data) 211 49 + 217: 21(ivec4) Load 216 + 218: 21(ivec4) VectorShuffle 217 215 4 5 2 3 + Store 216 218 + 219: 6(int) Load 8(invocation) + 220: 102(ptr) AccessChain 27(data) 49 49 + 221: 21(ivec4) Load 220 + 222: 111(ivec3) VectorShuffle 221 221 0 1 2 + 223: 111(ivec3) GroupNonUniformIMul 34 Reduce 222 + 224: 102(ptr) AccessChain 27(data) 219 49 + 225: 21(ivec4) Load 224 + 226: 21(ivec4) VectorShuffle 225 223 4 5 6 3 + Store 224 226 + 227: 6(int) Load 8(invocation) + 228: 102(ptr) AccessChain 27(data) 59 49 + 229: 21(ivec4) Load 228 + 230: 21(ivec4) GroupNonUniformIMul 34 Reduce 229 + 231: 102(ptr) AccessChain 27(data) 227 49 + Store 231 230 + 232: 6(int) Load 8(invocation) + 233: 125(ptr) AccessChain 27(data) 29 59 30 + 234:22(float64_t) Load 233 + 235:22(float64_t) GroupNonUniformFMul 34 Reduce 234 + 236: 125(ptr) AccessChain 27(data) 232 59 30 + Store 236 235 + 237: 6(int) Load 8(invocation) + 238: 132(ptr) AccessChain 27(data) 38 59 + 239: 23(f64vec4) Load 238 + 240:131(f64vec2) VectorShuffle 239 239 0 1 + 241:131(f64vec2) GroupNonUniformFMul 34 Reduce 240 + 242: 132(ptr) AccessChain 27(data) 237 59 + 243: 23(f64vec4) Load 242 + 244: 23(f64vec4) VectorShuffle 243 241 4 5 2 3 + Store 242 244 + 245: 6(int) Load 8(invocation) + 246: 132(ptr) AccessChain 27(data) 49 59 + 247: 23(f64vec4) Load 246 + 248:141(f64vec3) VectorShuffle 247 247 0 1 2 + 249:141(f64vec3) GroupNonUniformFMul 34 Reduce 248 + 250: 132(ptr) AccessChain 27(data) 245 59 + 251: 23(f64vec4) Load 250 + 252: 23(f64vec4) VectorShuffle 251 249 4 5 6 3 + Store 250 252 + 253: 6(int) Load 8(invocation) + 254: 132(ptr) AccessChain 27(data) 59 59 + 255: 23(f64vec4) Load 254 + 256: 23(f64vec4) GroupNonUniformFMul 34 Reduce 255 + 257: 132(ptr) AccessChain 27(data) 253 59 + Store 257 256 + 258: 6(int) Load 8(invocation) + 259: 31(ptr) AccessChain 27(data) 29 29 30 + 260: 17(float) Load 259 + 261: 17(float) GroupNonUniformFMin 34 Reduce 260 + 262: 31(ptr) AccessChain 27(data) 258 29 30 + Store 262 261 + 263: 6(int) Load 8(invocation) + 264: 40(ptr) AccessChain 27(data) 38 29 + 265: 18(fvec4) Load 264 + 266: 39(fvec2) VectorShuffle 265 265 0 1 + 267: 39(fvec2) GroupNonUniformFMin 34 Reduce 266 + 268: 40(ptr) AccessChain 27(data) 263 29 + 269: 18(fvec4) Load 268 + 270: 18(fvec4) VectorShuffle 269 267 4 5 2 3 + Store 268 270 + 271: 6(int) Load 8(invocation) + 272: 40(ptr) AccessChain 27(data) 49 29 + 273: 18(fvec4) Load 272 + 274: 50(fvec3) VectorShuffle 273 273 0 1 2 + 275: 50(fvec3) GroupNonUniformFMin 34 Reduce 274 + 276: 40(ptr) AccessChain 27(data) 271 29 + 277: 18(fvec4) Load 276 + 278: 18(fvec4) VectorShuffle 277 275 4 5 6 3 + Store 276 278 + 279: 6(int) Load 8(invocation) + 280: 40(ptr) AccessChain 27(data) 59 29 + 281: 18(fvec4) Load 280 + 282: 18(fvec4) GroupNonUniformFMin 34 Reduce 281 + 283: 40(ptr) AccessChain 27(data) 279 29 + Store 283 282 + 284: 6(int) Load 8(invocation) + 285: 65(ptr) AccessChain 27(data) 29 38 30 + 286: 19(int) Load 285 + 287: 19(int) GroupNonUniformSMin 34 Reduce 286 + 288: 65(ptr) AccessChain 27(data) 284 38 30 + Store 288 287 + 289: 6(int) Load 8(invocation) + 290: 72(ptr) AccessChain 27(data) 38 38 + 291: 20(ivec4) Load 290 + 292: 71(ivec2) VectorShuffle 291 291 0 1 + 293: 71(ivec2) GroupNonUniformSMin 34 Reduce 292 + 294: 72(ptr) AccessChain 27(data) 289 38 + 295: 20(ivec4) Load 294 + 296: 20(ivec4) VectorShuffle 295 293 4 5 2 3 + Store 294 296 + 297: 6(int) Load 8(invocation) + 298: 72(ptr) AccessChain 27(data) 49 38 + 299: 20(ivec4) Load 298 + 300: 81(ivec3) VectorShuffle 299 299 0 1 2 + 301: 81(ivec3) GroupNonUniformSMin 34 Reduce 300 + 302: 72(ptr) AccessChain 27(data) 297 38 + 303: 20(ivec4) Load 302 + 304: 20(ivec4) VectorShuffle 303 301 4 5 6 3 + Store 302 304 + 305: 6(int) Load 8(invocation) + 306: 72(ptr) AccessChain 27(data) 59 38 + 307: 20(ivec4) Load 306 + 308: 20(ivec4) GroupNonUniformSMin 34 Reduce 307 + 309: 72(ptr) AccessChain 27(data) 305 38 + Store 309 308 + 310: 6(int) Load 8(invocation) + 311: 95(ptr) AccessChain 27(data) 29 49 30 + 312: 6(int) Load 311 + 313: 6(int) GroupNonUniformUMin 34 Reduce 312 + 314: 95(ptr) AccessChain 27(data) 310 49 30 + Store 314 313 + 315: 6(int) Load 8(invocation) + 316: 102(ptr) AccessChain 27(data) 38 49 + 317: 21(ivec4) Load 316 + 318: 101(ivec2) VectorShuffle 317 317 0 1 + 319: 101(ivec2) GroupNonUniformUMin 34 Reduce 318 + 320: 102(ptr) AccessChain 27(data) 315 49 + 321: 21(ivec4) Load 320 + 322: 21(ivec4) VectorShuffle 321 319 4 5 2 3 + Store 320 322 + 323: 6(int) Load 8(invocation) + 324: 102(ptr) AccessChain 27(data) 49 49 + 325: 21(ivec4) Load 324 + 326: 111(ivec3) VectorShuffle 325 325 0 1 2 + 327: 111(ivec3) GroupNonUniformUMin 34 Reduce 326 + 328: 102(ptr) AccessChain 27(data) 323 49 + 329: 21(ivec4) Load 328 + 330: 21(ivec4) VectorShuffle 329 327 4 5 6 3 + Store 328 330 + 331: 6(int) Load 8(invocation) + 332: 102(ptr) AccessChain 27(data) 59 49 + 333: 21(ivec4) Load 332 + 334: 21(ivec4) GroupNonUniformUMin 34 Reduce 333 + 335: 102(ptr) AccessChain 27(data) 331 49 + Store 335 334 + 336: 6(int) Load 8(invocation) + 337: 125(ptr) AccessChain 27(data) 29 59 30 + 338:22(float64_t) Load 337 + 339:22(float64_t) GroupNonUniformFMin 34 Reduce 338 + 340: 125(ptr) AccessChain 27(data) 336 59 30 + Store 340 339 + 341: 6(int) Load 8(invocation) + 342: 132(ptr) AccessChain 27(data) 38 59 + 343: 23(f64vec4) Load 342 + 344:131(f64vec2) VectorShuffle 343 343 0 1 + 345:131(f64vec2) GroupNonUniformFMin 34 Reduce 344 + 346: 132(ptr) AccessChain 27(data) 341 59 + 347: 23(f64vec4) Load 346 + 348: 23(f64vec4) VectorShuffle 347 345 4 5 2 3 + Store 346 348 + 349: 6(int) Load 8(invocation) + 350: 132(ptr) AccessChain 27(data) 49 59 + 351: 23(f64vec4) Load 350 + 352:141(f64vec3) VectorShuffle 351 351 0 1 2 + 353:141(f64vec3) GroupNonUniformFMin 34 Reduce 352 + 354: 132(ptr) AccessChain 27(data) 349 59 + 355: 23(f64vec4) Load 354 + 356: 23(f64vec4) VectorShuffle 355 353 4 5 6 3 + Store 354 356 + 357: 6(int) Load 8(invocation) + 358: 132(ptr) AccessChain 27(data) 59 59 + 359: 23(f64vec4) Load 358 + 360: 23(f64vec4) GroupNonUniformFMin 34 Reduce 359 + 361: 132(ptr) AccessChain 27(data) 357 59 + Store 361 360 + 362: 6(int) Load 8(invocation) + 363: 31(ptr) AccessChain 27(data) 29 29 30 + 364: 17(float) Load 363 + 365: 17(float) GroupNonUniformFMax 34 Reduce 364 + 366: 31(ptr) AccessChain 27(data) 362 29 30 + Store 366 365 + 367: 6(int) Load 8(invocation) + 368: 40(ptr) AccessChain 27(data) 38 29 + 369: 18(fvec4) Load 368 + 370: 39(fvec2) VectorShuffle 369 369 0 1 + 371: 39(fvec2) GroupNonUniformFMax 34 Reduce 370 + 372: 40(ptr) AccessChain 27(data) 367 29 + 373: 18(fvec4) Load 372 + 374: 18(fvec4) VectorShuffle 373 371 4 5 2 3 + Store 372 374 + 375: 6(int) Load 8(invocation) + 376: 40(ptr) AccessChain 27(data) 49 29 + 377: 18(fvec4) Load 376 + 378: 50(fvec3) VectorShuffle 377 377 0 1 2 + 379: 50(fvec3) GroupNonUniformFMax 34 Reduce 378 + 380: 40(ptr) AccessChain 27(data) 375 29 + 381: 18(fvec4) Load 380 + 382: 18(fvec4) VectorShuffle 381 379 4 5 6 3 + Store 380 382 + 383: 6(int) Load 8(invocation) + 384: 40(ptr) AccessChain 27(data) 59 29 + 385: 18(fvec4) Load 384 + 386: 18(fvec4) GroupNonUniformFMax 34 Reduce 385 + 387: 40(ptr) AccessChain 27(data) 383 29 + Store 387 386 + 388: 6(int) Load 8(invocation) + 389: 65(ptr) AccessChain 27(data) 29 38 30 + 390: 19(int) Load 389 + 391: 19(int) GroupNonUniformSMax 34 Reduce 390 + 392: 65(ptr) AccessChain 27(data) 388 38 30 + Store 392 391 + 393: 6(int) Load 8(invocation) + 394: 72(ptr) AccessChain 27(data) 38 38 + 395: 20(ivec4) Load 394 + 396: 71(ivec2) VectorShuffle 395 395 0 1 + 397: 71(ivec2) GroupNonUniformSMax 34 Reduce 396 + 398: 72(ptr) AccessChain 27(data) 393 38 + 399: 20(ivec4) Load 398 + 400: 20(ivec4) VectorShuffle 399 397 4 5 2 3 + Store 398 400 + 401: 6(int) Load 8(invocation) + 402: 72(ptr) AccessChain 27(data) 49 38 + 403: 20(ivec4) Load 402 + 404: 81(ivec3) VectorShuffle 403 403 0 1 2 + 405: 81(ivec3) GroupNonUniformSMax 34 Reduce 404 + 406: 72(ptr) AccessChain 27(data) 401 38 + 407: 20(ivec4) Load 406 + 408: 20(ivec4) VectorShuffle 407 405 4 5 6 3 + Store 406 408 + 409: 6(int) Load 8(invocation) + 410: 72(ptr) AccessChain 27(data) 59 38 + 411: 20(ivec4) Load 410 + 412: 20(ivec4) GroupNonUniformSMax 34 Reduce 411 + 413: 72(ptr) AccessChain 27(data) 409 38 + Store 413 412 + 414: 6(int) Load 8(invocation) + 415: 95(ptr) AccessChain 27(data) 29 49 30 + 416: 6(int) Load 415 + 417: 6(int) GroupNonUniformUMax 34 Reduce 416 + 418: 95(ptr) AccessChain 27(data) 414 49 30 + Store 418 417 + 419: 6(int) Load 8(invocation) + 420: 102(ptr) AccessChain 27(data) 38 49 + 421: 21(ivec4) Load 420 + 422: 101(ivec2) VectorShuffle 421 421 0 1 + 423: 101(ivec2) GroupNonUniformUMax 34 Reduce 422 + 424: 102(ptr) AccessChain 27(data) 419 49 + 425: 21(ivec4) Load 424 + 426: 21(ivec4) VectorShuffle 425 423 4 5 2 3 + Store 424 426 + 427: 6(int) Load 8(invocation) + 428: 102(ptr) AccessChain 27(data) 49 49 + 429: 21(ivec4) Load 428 + 430: 111(ivec3) VectorShuffle 429 429 0 1 2 + 431: 111(ivec3) GroupNonUniformUMax 34 Reduce 430 + 432: 102(ptr) AccessChain 27(data) 427 49 + 433: 21(ivec4) Load 432 + 434: 21(ivec4) VectorShuffle 433 431 4 5 6 3 + Store 432 434 + 435: 6(int) Load 8(invocation) + 436: 102(ptr) AccessChain 27(data) 59 49 + 437: 21(ivec4) Load 436 + 438: 21(ivec4) GroupNonUniformUMax 34 Reduce 437 + 439: 102(ptr) AccessChain 27(data) 435 49 + Store 439 438 + 440: 6(int) Load 8(invocation) + 441: 125(ptr) AccessChain 27(data) 29 59 30 + 442:22(float64_t) Load 441 + 443:22(float64_t) GroupNonUniformFMax 34 Reduce 442 + 444: 125(ptr) AccessChain 27(data) 440 59 30 + Store 444 443 + 445: 6(int) Load 8(invocation) + 446: 132(ptr) AccessChain 27(data) 38 59 + 447: 23(f64vec4) Load 446 + 448:131(f64vec2) VectorShuffle 447 447 0 1 + 449:131(f64vec2) GroupNonUniformFMax 34 Reduce 448 + 450: 132(ptr) AccessChain 27(data) 445 59 + 451: 23(f64vec4) Load 450 + 452: 23(f64vec4) VectorShuffle 451 449 4 5 2 3 + Store 450 452 + 453: 6(int) Load 8(invocation) + 454: 132(ptr) AccessChain 27(data) 49 59 + 455: 23(f64vec4) Load 454 + 456:141(f64vec3) VectorShuffle 455 455 0 1 2 + 457:141(f64vec3) GroupNonUniformFMax 34 Reduce 456 + 458: 132(ptr) AccessChain 27(data) 453 59 + 459: 23(f64vec4) Load 458 + 460: 23(f64vec4) VectorShuffle 459 457 4 5 6 3 + Store 458 460 + 461: 6(int) Load 8(invocation) + 462: 132(ptr) AccessChain 27(data) 59 59 + 463: 23(f64vec4) Load 462 + 464: 23(f64vec4) GroupNonUniformFMax 34 Reduce 463 + 465: 132(ptr) AccessChain 27(data) 461 59 + Store 465 464 + 466: 6(int) Load 8(invocation) + 467: 65(ptr) AccessChain 27(data) 29 38 30 + 468: 19(int) Load 467 + 469: 19(int) GroupNonUniformBitwiseAnd 34 Reduce 468 + 470: 65(ptr) AccessChain 27(data) 466 38 30 + Store 470 469 + 471: 6(int) Load 8(invocation) + 472: 72(ptr) AccessChain 27(data) 38 38 + 473: 20(ivec4) Load 472 + 474: 71(ivec2) VectorShuffle 473 473 0 1 + 475: 71(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 474 + 476: 72(ptr) AccessChain 27(data) 471 38 + 477: 20(ivec4) Load 476 + 478: 20(ivec4) VectorShuffle 477 475 4 5 2 3 + Store 476 478 + 479: 6(int) Load 8(invocation) + 480: 72(ptr) AccessChain 27(data) 49 38 + 481: 20(ivec4) Load 480 + 482: 81(ivec3) VectorShuffle 481 481 0 1 2 + 483: 81(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 482 + 484: 72(ptr) AccessChain 27(data) 479 38 + 485: 20(ivec4) Load 484 + 486: 20(ivec4) VectorShuffle 485 483 4 5 6 3 + Store 484 486 + 487: 6(int) Load 8(invocation) + 488: 72(ptr) AccessChain 27(data) 59 38 + 489: 20(ivec4) Load 488 + 490: 20(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 489 + 491: 72(ptr) AccessChain 27(data) 487 38 + Store 491 490 + 492: 6(int) Load 8(invocation) + 493: 95(ptr) AccessChain 27(data) 29 49 30 + 494: 6(int) Load 493 + 495: 6(int) GroupNonUniformBitwiseAnd 34 Reduce 494 + 496: 95(ptr) AccessChain 27(data) 492 49 30 + Store 496 495 + 497: 6(int) Load 8(invocation) + 498: 102(ptr) AccessChain 27(data) 38 49 + 499: 21(ivec4) Load 498 + 500: 101(ivec2) VectorShuffle 499 499 0 1 + 501: 101(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 500 + 502: 102(ptr) AccessChain 27(data) 497 49 + 503: 21(ivec4) Load 502 + 504: 21(ivec4) VectorShuffle 503 501 4 5 2 3 + Store 502 504 + 505: 6(int) Load 8(invocation) + 506: 102(ptr) AccessChain 27(data) 49 49 + 507: 21(ivec4) Load 506 + 508: 111(ivec3) VectorShuffle 507 507 0 1 2 + 509: 111(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 508 + 510: 102(ptr) AccessChain 27(data) 505 49 + 511: 21(ivec4) Load 510 + 512: 21(ivec4) VectorShuffle 511 509 4 5 6 3 + Store 510 512 + 513: 6(int) Load 8(invocation) + 514: 102(ptr) AccessChain 27(data) 59 49 + 515: 21(ivec4) Load 514 + 516: 21(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 515 + 517: 102(ptr) AccessChain 27(data) 513 49 + Store 517 516 + 518: 6(int) Load 8(invocation) + 519: 65(ptr) AccessChain 27(data) 29 38 30 + 520: 19(int) Load 519 + 522: 521(bool) SLessThan 520 29 + 523: 521(bool) GroupNonUniformLogicalAnd 34 Reduce 522 + 524: 19(int) Select 523 38 29 + 525: 65(ptr) AccessChain 27(data) 518 38 30 + Store 525 524 + 526: 6(int) Load 8(invocation) + 527: 72(ptr) AccessChain 27(data) 38 38 + 528: 20(ivec4) Load 527 + 529: 71(ivec2) VectorShuffle 528 528 0 1 + 532: 531(bvec2) SLessThan 529 530 + 533: 531(bvec2) GroupNonUniformLogicalAnd 34 Reduce 532 + 535: 71(ivec2) Select 533 534 530 + 536: 72(ptr) AccessChain 27(data) 526 38 + 537: 20(ivec4) Load 536 + 538: 20(ivec4) VectorShuffle 537 535 4 5 2 3 + Store 536 538 + 539: 6(int) Load 8(invocation) + 540: 72(ptr) AccessChain 27(data) 38 38 + 541: 20(ivec4) Load 540 + 542: 81(ivec3) VectorShuffle 541 541 0 1 2 + 545: 544(bvec3) SLessThan 542 543 + 546: 544(bvec3) GroupNonUniformLogicalAnd 34 Reduce 545 + 548: 81(ivec3) Select 546 547 543 + 549: 72(ptr) AccessChain 27(data) 539 38 + 550: 20(ivec4) Load 549 + 551: 20(ivec4) VectorShuffle 550 548 4 5 6 3 + Store 549 551 + 552: 6(int) Load 8(invocation) + 553: 72(ptr) AccessChain 27(data) 38 38 + 554: 20(ivec4) Load 553 + 557: 556(bvec4) SLessThan 554 555 + 558: 556(bvec4) GroupNonUniformLogicalAnd 34 Reduce 557 + 560: 20(ivec4) Select 558 559 555 + 561: 72(ptr) AccessChain 27(data) 552 38 + Store 561 560 + 562: 6(int) Load 8(invocation) + 563: 65(ptr) AccessChain 27(data) 29 38 30 + 564: 19(int) Load 563 + 565: 19(int) GroupNonUniformBitwiseOr 34 Reduce 564 + 566: 65(ptr) AccessChain 27(data) 562 38 30 + Store 566 565 + 567: 6(int) Load 8(invocation) + 568: 72(ptr) AccessChain 27(data) 38 38 + 569: 20(ivec4) Load 568 + 570: 71(ivec2) VectorShuffle 569 569 0 1 + 571: 71(ivec2) GroupNonUniformBitwiseOr 34 Reduce 570 + 572: 72(ptr) AccessChain 27(data) 567 38 + 573: 20(ivec4) Load 572 + 574: 20(ivec4) VectorShuffle 573 571 4 5 2 3 + Store 572 574 + 575: 6(int) Load 8(invocation) + 576: 72(ptr) AccessChain 27(data) 49 38 + 577: 20(ivec4) Load 576 + 578: 81(ivec3) VectorShuffle 577 577 0 1 2 + 579: 81(ivec3) GroupNonUniformBitwiseOr 34 Reduce 578 + 580: 72(ptr) AccessChain 27(data) 575 38 + 581: 20(ivec4) Load 580 + 582: 20(ivec4) VectorShuffle 581 579 4 5 6 3 + Store 580 582 + 583: 6(int) Load 8(invocation) + 584: 72(ptr) AccessChain 27(data) 59 38 + 585: 20(ivec4) Load 584 + 586: 20(ivec4) GroupNonUniformBitwiseOr 34 Reduce 585 + 587: 72(ptr) AccessChain 27(data) 583 38 + Store 587 586 + 588: 6(int) Load 8(invocation) + 589: 95(ptr) AccessChain 27(data) 29 49 30 + 590: 6(int) Load 589 + 591: 6(int) GroupNonUniformBitwiseOr 34 Reduce 590 + 592: 95(ptr) AccessChain 27(data) 588 49 30 + Store 592 591 + 593: 6(int) Load 8(invocation) + 594: 102(ptr) AccessChain 27(data) 38 49 + 595: 21(ivec4) Load 594 + 596: 101(ivec2) VectorShuffle 595 595 0 1 + 597: 101(ivec2) GroupNonUniformBitwiseOr 34 Reduce 596 + 598: 102(ptr) AccessChain 27(data) 593 49 + 599: 21(ivec4) Load 598 + 600: 21(ivec4) VectorShuffle 599 597 4 5 2 3 + Store 598 600 + 601: 6(int) Load 8(invocation) + 602: 102(ptr) AccessChain 27(data) 49 49 + 603: 21(ivec4) Load 602 + 604: 111(ivec3) VectorShuffle 603 603 0 1 2 + 605: 111(ivec3) GroupNonUniformBitwiseOr 34 Reduce 604 + 606: 102(ptr) AccessChain 27(data) 601 49 + 607: 21(ivec4) Load 606 + 608: 21(ivec4) VectorShuffle 607 605 4 5 6 3 + Store 606 608 + 609: 6(int) Load 8(invocation) + 610: 102(ptr) AccessChain 27(data) 59 49 + 611: 21(ivec4) Load 610 + 612: 21(ivec4) GroupNonUniformBitwiseOr 34 Reduce 611 + 613: 102(ptr) AccessChain 27(data) 609 49 + Store 613 612 + 614: 6(int) Load 8(invocation) + 615: 65(ptr) AccessChain 27(data) 29 38 30 + 616: 19(int) Load 615 + 617: 521(bool) SLessThan 616 29 + 618: 521(bool) GroupNonUniformLogicalOr 34 Reduce 617 + 619: 19(int) Select 618 38 29 + 620: 65(ptr) AccessChain 27(data) 614 38 30 + Store 620 619 + 621: 6(int) Load 8(invocation) + 622: 72(ptr) AccessChain 27(data) 38 38 + 623: 20(ivec4) Load 622 + 624: 71(ivec2) VectorShuffle 623 623 0 1 + 625: 531(bvec2) SLessThan 624 530 + 626: 531(bvec2) GroupNonUniformLogicalOr 34 Reduce 625 + 627: 71(ivec2) Select 626 534 530 + 628: 72(ptr) AccessChain 27(data) 621 38 + 629: 20(ivec4) Load 628 + 630: 20(ivec4) VectorShuffle 629 627 4 5 2 3 + Store 628 630 + 631: 6(int) Load 8(invocation) + 632: 72(ptr) AccessChain 27(data) 38 38 + 633: 20(ivec4) Load 632 + 634: 81(ivec3) VectorShuffle 633 633 0 1 2 + 635: 544(bvec3) SLessThan 634 543 + 636: 544(bvec3) GroupNonUniformLogicalOr 34 Reduce 635 + 637: 81(ivec3) Select 636 547 543 + 638: 72(ptr) AccessChain 27(data) 631 38 + 639: 20(ivec4) Load 638 + 640: 20(ivec4) VectorShuffle 639 637 4 5 6 3 + Store 638 640 + 641: 6(int) Load 8(invocation) + 642: 72(ptr) AccessChain 27(data) 38 38 + 643: 20(ivec4) Load 642 + 644: 556(bvec4) SLessThan 643 555 + 645: 556(bvec4) GroupNonUniformLogicalOr 34 Reduce 644 + 646: 20(ivec4) Select 645 559 555 + 647: 72(ptr) AccessChain 27(data) 641 38 + Store 647 646 + 648: 6(int) Load 8(invocation) + 649: 65(ptr) AccessChain 27(data) 29 38 30 + 650: 19(int) Load 649 + 651: 19(int) GroupNonUniformBitwiseXor 34 Reduce 650 + 652: 65(ptr) AccessChain 27(data) 648 38 30 + Store 652 651 + 653: 6(int) Load 8(invocation) + 654: 72(ptr) AccessChain 27(data) 38 38 + 655: 20(ivec4) Load 654 + 656: 71(ivec2) VectorShuffle 655 655 0 1 + 657: 71(ivec2) GroupNonUniformBitwiseXor 34 Reduce 656 + 658: 72(ptr) AccessChain 27(data) 653 38 + 659: 20(ivec4) Load 658 + 660: 20(ivec4) VectorShuffle 659 657 4 5 2 3 + Store 658 660 + 661: 6(int) Load 8(invocation) + 662: 72(ptr) AccessChain 27(data) 49 38 + 663: 20(ivec4) Load 662 + 664: 81(ivec3) VectorShuffle 663 663 0 1 2 + 665: 81(ivec3) GroupNonUniformBitwiseXor 34 Reduce 664 + 666: 72(ptr) AccessChain 27(data) 661 38 + 667: 20(ivec4) Load 666 + 668: 20(ivec4) VectorShuffle 667 665 4 5 6 3 + Store 666 668 + 669: 6(int) Load 8(invocation) + 670: 72(ptr) AccessChain 27(data) 59 38 + 671: 20(ivec4) Load 670 + 672: 20(ivec4) GroupNonUniformBitwiseXor 34 Reduce 671 + 673: 72(ptr) AccessChain 27(data) 669 38 + Store 673 672 + 674: 6(int) Load 8(invocation) + 675: 95(ptr) AccessChain 27(data) 29 49 30 + 676: 6(int) Load 675 + 677: 6(int) GroupNonUniformBitwiseXor 34 Reduce 676 + 678: 95(ptr) AccessChain 27(data) 674 49 30 + Store 678 677 + 679: 6(int) Load 8(invocation) + 680: 102(ptr) AccessChain 27(data) 38 49 + 681: 21(ivec4) Load 680 + 682: 101(ivec2) VectorShuffle 681 681 0 1 + 683: 101(ivec2) GroupNonUniformBitwiseXor 34 Reduce 682 + 684: 102(ptr) AccessChain 27(data) 679 49 + 685: 21(ivec4) Load 684 + 686: 21(ivec4) VectorShuffle 685 683 4 5 2 3 + Store 684 686 + 687: 6(int) Load 8(invocation) + 688: 102(ptr) AccessChain 27(data) 49 49 + 689: 21(ivec4) Load 688 + 690: 111(ivec3) VectorShuffle 689 689 0 1 2 + 691: 111(ivec3) GroupNonUniformBitwiseXor 34 Reduce 690 + 692: 102(ptr) AccessChain 27(data) 687 49 + 693: 21(ivec4) Load 692 + 694: 21(ivec4) VectorShuffle 693 691 4 5 6 3 + Store 692 694 + 695: 6(int) Load 8(invocation) + 696: 102(ptr) AccessChain 27(data) 59 49 + 697: 21(ivec4) Load 696 + 698: 21(ivec4) GroupNonUniformBitwiseXor 34 Reduce 697 + 699: 102(ptr) AccessChain 27(data) 695 49 + Store 699 698 + 700: 6(int) Load 8(invocation) + 701: 65(ptr) AccessChain 27(data) 29 38 30 + 702: 19(int) Load 701 + 703: 521(bool) SLessThan 702 29 + 704: 521(bool) GroupNonUniformLogicalXor 34 Reduce 703 + 705: 19(int) Select 704 38 29 + 706: 65(ptr) AccessChain 27(data) 700 38 30 + Store 706 705 + 707: 6(int) Load 8(invocation) + 708: 72(ptr) AccessChain 27(data) 38 38 + 709: 20(ivec4) Load 708 + 710: 71(ivec2) VectorShuffle 709 709 0 1 + 711: 531(bvec2) SLessThan 710 530 + 712: 531(bvec2) GroupNonUniformLogicalXor 34 Reduce 711 + 713: 71(ivec2) Select 712 534 530 + 714: 72(ptr) AccessChain 27(data) 707 38 + 715: 20(ivec4) Load 714 + 716: 20(ivec4) VectorShuffle 715 713 4 5 2 3 + Store 714 716 + 717: 6(int) Load 8(invocation) + 718: 72(ptr) AccessChain 27(data) 38 38 + 719: 20(ivec4) Load 718 + 720: 81(ivec3) VectorShuffle 719 719 0 1 2 + 721: 544(bvec3) SLessThan 720 543 + 722: 544(bvec3) GroupNonUniformLogicalXor 34 Reduce 721 + 723: 81(ivec3) Select 722 547 543 + 724: 72(ptr) AccessChain 27(data) 717 38 + 725: 20(ivec4) Load 724 + 726: 20(ivec4) VectorShuffle 725 723 4 5 6 3 + Store 724 726 + 727: 6(int) Load 8(invocation) + 728: 72(ptr) AccessChain 27(data) 38 38 + 729: 20(ivec4) Load 728 + 730: 556(bvec4) SLessThan 729 555 + 731: 556(bvec4) GroupNonUniformLogicalXor 34 Reduce 730 + 732: 20(ivec4) Select 731 559 555 + 733: 72(ptr) AccessChain 27(data) 727 38 + Store 733 732 + 734: 6(int) Load 8(invocation) + 735: 31(ptr) AccessChain 27(data) 29 29 30 + 736: 17(float) Load 735 + 737: 17(float) GroupNonUniformFAdd 34 InclusiveScan 736 + 738: 31(ptr) AccessChain 27(data) 734 29 30 + Store 738 737 + 739: 6(int) Load 8(invocation) + 740: 40(ptr) AccessChain 27(data) 38 29 + 741: 18(fvec4) Load 740 + 742: 39(fvec2) VectorShuffle 741 741 0 1 + 743: 39(fvec2) GroupNonUniformFAdd 34 InclusiveScan 742 + 744: 40(ptr) AccessChain 27(data) 739 29 + 745: 18(fvec4) Load 744 + 746: 18(fvec4) VectorShuffle 745 743 4 5 2 3 + Store 744 746 + 747: 6(int) Load 8(invocation) + 748: 40(ptr) AccessChain 27(data) 49 29 + 749: 18(fvec4) Load 748 + 750: 50(fvec3) VectorShuffle 749 749 0 1 2 + 751: 50(fvec3) GroupNonUniformFAdd 34 InclusiveScan 750 + 752: 40(ptr) AccessChain 27(data) 747 29 + 753: 18(fvec4) Load 752 + 754: 18(fvec4) VectorShuffle 753 751 4 5 6 3 + Store 752 754 + 755: 6(int) Load 8(invocation) + 756: 40(ptr) AccessChain 27(data) 59 29 + 757: 18(fvec4) Load 756 + 758: 18(fvec4) GroupNonUniformFAdd 34 InclusiveScan 757 + 759: 40(ptr) AccessChain 27(data) 755 29 + Store 759 758 + 760: 6(int) Load 8(invocation) + 761: 65(ptr) AccessChain 27(data) 29 38 30 + 762: 19(int) Load 761 + 763: 19(int) GroupNonUniformIAdd 34 InclusiveScan 762 + 764: 65(ptr) AccessChain 27(data) 760 38 30 + Store 764 763 + 765: 6(int) Load 8(invocation) + 766: 72(ptr) AccessChain 27(data) 38 38 + 767: 20(ivec4) Load 766 + 768: 71(ivec2) VectorShuffle 767 767 0 1 + 769: 71(ivec2) GroupNonUniformIAdd 34 InclusiveScan 768 + 770: 72(ptr) AccessChain 27(data) 765 38 + 771: 20(ivec4) Load 770 + 772: 20(ivec4) VectorShuffle 771 769 4 5 2 3 + Store 770 772 + 773: 6(int) Load 8(invocation) + 774: 72(ptr) AccessChain 27(data) 49 38 + 775: 20(ivec4) Load 774 + 776: 81(ivec3) VectorShuffle 775 775 0 1 2 + 777: 81(ivec3) GroupNonUniformIAdd 34 InclusiveScan 776 + 778: 72(ptr) AccessChain 27(data) 773 38 + 779: 20(ivec4) Load 778 + 780: 20(ivec4) VectorShuffle 779 777 4 5 6 3 + Store 778 780 + 781: 6(int) Load 8(invocation) + 782: 72(ptr) AccessChain 27(data) 59 38 + 783: 20(ivec4) Load 782 + 784: 20(ivec4) GroupNonUniformIAdd 34 InclusiveScan 783 + 785: 72(ptr) AccessChain 27(data) 781 38 + Store 785 784 + 786: 6(int) Load 8(invocation) + 787: 95(ptr) AccessChain 27(data) 29 49 30 + 788: 6(int) Load 787 + 789: 6(int) GroupNonUniformIAdd 34 InclusiveScan 788 + 790: 95(ptr) AccessChain 27(data) 786 49 30 + Store 790 789 + 791: 6(int) Load 8(invocation) + 792: 102(ptr) AccessChain 27(data) 38 49 + 793: 21(ivec4) Load 792 + 794: 101(ivec2) VectorShuffle 793 793 0 1 + 795: 101(ivec2) GroupNonUniformIAdd 34 InclusiveScan 794 + 796: 102(ptr) AccessChain 27(data) 791 49 + 797: 21(ivec4) Load 796 + 798: 21(ivec4) VectorShuffle 797 795 4 5 2 3 + Store 796 798 + 799: 6(int) Load 8(invocation) + 800: 102(ptr) AccessChain 27(data) 49 49 + 801: 21(ivec4) Load 800 + 802: 111(ivec3) VectorShuffle 801 801 0 1 2 + 803: 111(ivec3) GroupNonUniformIAdd 34 InclusiveScan 802 + 804: 102(ptr) AccessChain 27(data) 799 49 + 805: 21(ivec4) Load 804 + 806: 21(ivec4) VectorShuffle 805 803 4 5 6 3 + Store 804 806 + 807: 6(int) Load 8(invocation) + 808: 102(ptr) AccessChain 27(data) 59 49 + 809: 21(ivec4) Load 808 + 810: 21(ivec4) GroupNonUniformIAdd 34 InclusiveScan 809 + 811: 102(ptr) AccessChain 27(data) 807 49 + Store 811 810 + 812: 6(int) Load 8(invocation) + 813: 125(ptr) AccessChain 27(data) 29 59 30 + 814:22(float64_t) Load 813 + 815:22(float64_t) GroupNonUniformFAdd 34 InclusiveScan 814 + 816: 125(ptr) AccessChain 27(data) 812 59 30 + Store 816 815 + 817: 6(int) Load 8(invocation) + 818: 132(ptr) AccessChain 27(data) 38 59 + 819: 23(f64vec4) Load 818 + 820:131(f64vec2) VectorShuffle 819 819 0 1 + 821:131(f64vec2) GroupNonUniformFAdd 34 InclusiveScan 820 + 822: 132(ptr) AccessChain 27(data) 817 59 + 823: 23(f64vec4) Load 822 + 824: 23(f64vec4) VectorShuffle 823 821 4 5 2 3 + Store 822 824 + 825: 6(int) Load 8(invocation) + 826: 132(ptr) AccessChain 27(data) 49 59 + 827: 23(f64vec4) Load 826 + 828:141(f64vec3) VectorShuffle 827 827 0 1 2 + 829:141(f64vec3) GroupNonUniformFAdd 34 InclusiveScan 828 + 830: 132(ptr) AccessChain 27(data) 825 59 + 831: 23(f64vec4) Load 830 + 832: 23(f64vec4) VectorShuffle 831 829 4 5 6 3 + Store 830 832 + 833: 6(int) Load 8(invocation) + 834: 132(ptr) AccessChain 27(data) 59 59 + 835: 23(f64vec4) Load 834 + 836: 23(f64vec4) GroupNonUniformFAdd 34 InclusiveScan 835 + 837: 132(ptr) AccessChain 27(data) 833 59 + Store 837 836 + 838: 6(int) Load 8(invocation) + 839: 31(ptr) AccessChain 27(data) 29 29 30 + 840: 17(float) Load 839 + 841: 17(float) GroupNonUniformFMul 34 InclusiveScan 840 + 842: 31(ptr) AccessChain 27(data) 838 29 30 + Store 842 841 + 843: 6(int) Load 8(invocation) + 844: 40(ptr) AccessChain 27(data) 38 29 + 845: 18(fvec4) Load 844 + 846: 39(fvec2) VectorShuffle 845 845 0 1 + 847: 39(fvec2) GroupNonUniformFMul 34 InclusiveScan 846 + 848: 40(ptr) AccessChain 27(data) 843 29 + 849: 18(fvec4) Load 848 + 850: 18(fvec4) VectorShuffle 849 847 4 5 2 3 + Store 848 850 + 851: 6(int) Load 8(invocation) + 852: 40(ptr) AccessChain 27(data) 49 29 + 853: 18(fvec4) Load 852 + 854: 50(fvec3) VectorShuffle 853 853 0 1 2 + 855: 50(fvec3) GroupNonUniformFMul 34 InclusiveScan 854 + 856: 40(ptr) AccessChain 27(data) 851 29 + 857: 18(fvec4) Load 856 + 858: 18(fvec4) VectorShuffle 857 855 4 5 6 3 + Store 856 858 + 859: 6(int) Load 8(invocation) + 860: 40(ptr) AccessChain 27(data) 59 29 + 861: 18(fvec4) Load 860 + 862: 18(fvec4) GroupNonUniformFMul 34 InclusiveScan 861 + 863: 40(ptr) AccessChain 27(data) 859 29 + Store 863 862 + 864: 6(int) Load 8(invocation) + 865: 65(ptr) AccessChain 27(data) 29 38 30 + 866: 19(int) Load 865 + 867: 19(int) GroupNonUniformIMul 34 InclusiveScan 866 + 868: 65(ptr) AccessChain 27(data) 864 38 30 + Store 868 867 + 869: 6(int) Load 8(invocation) + 870: 72(ptr) AccessChain 27(data) 38 38 + 871: 20(ivec4) Load 870 + 872: 71(ivec2) VectorShuffle 871 871 0 1 + 873: 71(ivec2) GroupNonUniformIMul 34 InclusiveScan 872 + 874: 72(ptr) AccessChain 27(data) 869 38 + 875: 20(ivec4) Load 874 + 876: 20(ivec4) VectorShuffle 875 873 4 5 2 3 + Store 874 876 + 877: 6(int) Load 8(invocation) + 878: 72(ptr) AccessChain 27(data) 49 38 + 879: 20(ivec4) Load 878 + 880: 81(ivec3) VectorShuffle 879 879 0 1 2 + 881: 81(ivec3) GroupNonUniformIMul 34 InclusiveScan 880 + 882: 72(ptr) AccessChain 27(data) 877 38 + 883: 20(ivec4) Load 882 + 884: 20(ivec4) VectorShuffle 883 881 4 5 6 3 + Store 882 884 + 885: 6(int) Load 8(invocation) + 886: 72(ptr) AccessChain 27(data) 59 38 + 887: 20(ivec4) Load 886 + 888: 20(ivec4) GroupNonUniformIMul 34 InclusiveScan 887 + 889: 72(ptr) AccessChain 27(data) 885 38 + Store 889 888 + 890: 6(int) Load 8(invocation) + 891: 95(ptr) AccessChain 27(data) 29 49 30 + 892: 6(int) Load 891 + 893: 6(int) GroupNonUniformIMul 34 InclusiveScan 892 + 894: 95(ptr) AccessChain 27(data) 890 49 30 + Store 894 893 + 895: 6(int) Load 8(invocation) + 896: 102(ptr) AccessChain 27(data) 38 49 + 897: 21(ivec4) Load 896 + 898: 101(ivec2) VectorShuffle 897 897 0 1 + 899: 101(ivec2) GroupNonUniformIMul 34 InclusiveScan 898 + 900: 102(ptr) AccessChain 27(data) 895 49 + 901: 21(ivec4) Load 900 + 902: 21(ivec4) VectorShuffle 901 899 4 5 2 3 + Store 900 902 + 903: 6(int) Load 8(invocation) + 904: 102(ptr) AccessChain 27(data) 49 49 + 905: 21(ivec4) Load 904 + 906: 111(ivec3) VectorShuffle 905 905 0 1 2 + 907: 111(ivec3) GroupNonUniformIMul 34 InclusiveScan 906 + 908: 102(ptr) AccessChain 27(data) 903 49 + 909: 21(ivec4) Load 908 + 910: 21(ivec4) VectorShuffle 909 907 4 5 6 3 + Store 908 910 + 911: 6(int) Load 8(invocation) + 912: 102(ptr) AccessChain 27(data) 59 49 + 913: 21(ivec4) Load 912 + 914: 21(ivec4) GroupNonUniformIMul 34 InclusiveScan 913 + 915: 102(ptr) AccessChain 27(data) 911 49 + Store 915 914 + 916: 6(int) Load 8(invocation) + 917: 125(ptr) AccessChain 27(data) 29 59 30 + 918:22(float64_t) Load 917 + 919:22(float64_t) GroupNonUniformFMul 34 InclusiveScan 918 + 920: 125(ptr) AccessChain 27(data) 916 59 30 + Store 920 919 + 921: 6(int) Load 8(invocation) + 922: 132(ptr) AccessChain 27(data) 38 59 + 923: 23(f64vec4) Load 922 + 924:131(f64vec2) VectorShuffle 923 923 0 1 + 925:131(f64vec2) GroupNonUniformFMul 34 InclusiveScan 924 + 926: 132(ptr) AccessChain 27(data) 921 59 + 927: 23(f64vec4) Load 926 + 928: 23(f64vec4) VectorShuffle 927 925 4 5 2 3 + Store 926 928 + 929: 6(int) Load 8(invocation) + 930: 132(ptr) AccessChain 27(data) 49 59 + 931: 23(f64vec4) Load 930 + 932:141(f64vec3) VectorShuffle 931 931 0 1 2 + 933:141(f64vec3) GroupNonUniformFMul 34 InclusiveScan 932 + 934: 132(ptr) AccessChain 27(data) 929 59 + 935: 23(f64vec4) Load 934 + 936: 23(f64vec4) VectorShuffle 935 933 4 5 6 3 + Store 934 936 + 937: 6(int) Load 8(invocation) + 938: 132(ptr) AccessChain 27(data) 59 59 + 939: 23(f64vec4) Load 938 + 940: 23(f64vec4) GroupNonUniformFMul 34 InclusiveScan 939 + 941: 132(ptr) AccessChain 27(data) 937 59 + Store 941 940 + 942: 6(int) Load 8(invocation) + 943: 31(ptr) AccessChain 27(data) 29 29 30 + 944: 17(float) Load 943 + 945: 17(float) GroupNonUniformFMin 34 InclusiveScan 944 + 946: 31(ptr) AccessChain 27(data) 942 29 30 + Store 946 945 + 947: 6(int) Load 8(invocation) + 948: 40(ptr) AccessChain 27(data) 38 29 + 949: 18(fvec4) Load 948 + 950: 39(fvec2) VectorShuffle 949 949 0 1 + 951: 39(fvec2) GroupNonUniformFMin 34 InclusiveScan 950 + 952: 40(ptr) AccessChain 27(data) 947 29 + 953: 18(fvec4) Load 952 + 954: 18(fvec4) VectorShuffle 953 951 4 5 2 3 + Store 952 954 + 955: 6(int) Load 8(invocation) + 956: 40(ptr) AccessChain 27(data) 49 29 + 957: 18(fvec4) Load 956 + 958: 50(fvec3) VectorShuffle 957 957 0 1 2 + 959: 50(fvec3) GroupNonUniformFMin 34 InclusiveScan 958 + 960: 40(ptr) AccessChain 27(data) 955 29 + 961: 18(fvec4) Load 960 + 962: 18(fvec4) VectorShuffle 961 959 4 5 6 3 + Store 960 962 + 963: 6(int) Load 8(invocation) + 964: 40(ptr) AccessChain 27(data) 59 29 + 965: 18(fvec4) Load 964 + 966: 18(fvec4) GroupNonUniformFMin 34 InclusiveScan 965 + 967: 40(ptr) AccessChain 27(data) 963 29 + Store 967 966 + 968: 6(int) Load 8(invocation) + 969: 65(ptr) AccessChain 27(data) 29 38 30 + 970: 19(int) Load 969 + 971: 19(int) GroupNonUniformSMin 34 InclusiveScan 970 + 972: 65(ptr) AccessChain 27(data) 968 38 30 + Store 972 971 + 973: 6(int) Load 8(invocation) + 974: 72(ptr) AccessChain 27(data) 38 38 + 975: 20(ivec4) Load 974 + 976: 71(ivec2) VectorShuffle 975 975 0 1 + 977: 71(ivec2) GroupNonUniformSMin 34 InclusiveScan 976 + 978: 72(ptr) AccessChain 27(data) 973 38 + 979: 20(ivec4) Load 978 + 980: 20(ivec4) VectorShuffle 979 977 4 5 2 3 + Store 978 980 + 981: 6(int) Load 8(invocation) + 982: 72(ptr) AccessChain 27(data) 49 38 + 983: 20(ivec4) Load 982 + 984: 81(ivec3) VectorShuffle 983 983 0 1 2 + 985: 81(ivec3) GroupNonUniformSMin 34 InclusiveScan 984 + 986: 72(ptr) AccessChain 27(data) 981 38 + 987: 20(ivec4) Load 986 + 988: 20(ivec4) VectorShuffle 987 985 4 5 6 3 + Store 986 988 + 989: 6(int) Load 8(invocation) + 990: 72(ptr) AccessChain 27(data) 59 38 + 991: 20(ivec4) Load 990 + 992: 20(ivec4) GroupNonUniformSMin 34 InclusiveScan 991 + 993: 72(ptr) AccessChain 27(data) 989 38 + Store 993 992 + 994: 6(int) Load 8(invocation) + 995: 95(ptr) AccessChain 27(data) 29 49 30 + 996: 6(int) Load 995 + 997: 6(int) GroupNonUniformUMin 34 InclusiveScan 996 + 998: 95(ptr) AccessChain 27(data) 994 49 30 + Store 998 997 + 999: 6(int) Load 8(invocation) + 1000: 102(ptr) AccessChain 27(data) 38 49 + 1001: 21(ivec4) Load 1000 + 1002: 101(ivec2) VectorShuffle 1001 1001 0 1 + 1003: 101(ivec2) GroupNonUniformUMin 34 InclusiveScan 1002 + 1004: 102(ptr) AccessChain 27(data) 999 49 + 1005: 21(ivec4) Load 1004 + 1006: 21(ivec4) VectorShuffle 1005 1003 4 5 2 3 + Store 1004 1006 + 1007: 6(int) Load 8(invocation) + 1008: 102(ptr) AccessChain 27(data) 49 49 + 1009: 21(ivec4) Load 1008 + 1010: 111(ivec3) VectorShuffle 1009 1009 0 1 2 + 1011: 111(ivec3) GroupNonUniformUMin 34 InclusiveScan 1010 + 1012: 102(ptr) AccessChain 27(data) 1007 49 + 1013: 21(ivec4) Load 1012 + 1014: 21(ivec4) VectorShuffle 1013 1011 4 5 6 3 + Store 1012 1014 + 1015: 6(int) Load 8(invocation) + 1016: 102(ptr) AccessChain 27(data) 59 49 + 1017: 21(ivec4) Load 1016 + 1018: 21(ivec4) GroupNonUniformUMin 34 InclusiveScan 1017 + 1019: 102(ptr) AccessChain 27(data) 1015 49 + Store 1019 1018 + 1020: 6(int) Load 8(invocation) + 1021: 125(ptr) AccessChain 27(data) 29 59 30 + 1022:22(float64_t) Load 1021 + 1023:22(float64_t) GroupNonUniformFMin 34 InclusiveScan 1022 + 1024: 125(ptr) AccessChain 27(data) 1020 59 30 + Store 1024 1023 + 1025: 6(int) Load 8(invocation) + 1026: 132(ptr) AccessChain 27(data) 38 59 + 1027: 23(f64vec4) Load 1026 + 1028:131(f64vec2) VectorShuffle 1027 1027 0 1 + 1029:131(f64vec2) GroupNonUniformFMin 34 InclusiveScan 1028 + 1030: 132(ptr) AccessChain 27(data) 1025 59 + 1031: 23(f64vec4) Load 1030 + 1032: 23(f64vec4) VectorShuffle 1031 1029 4 5 2 3 + Store 1030 1032 + 1033: 6(int) Load 8(invocation) + 1034: 132(ptr) AccessChain 27(data) 49 59 + 1035: 23(f64vec4) Load 1034 + 1036:141(f64vec3) VectorShuffle 1035 1035 0 1 2 + 1037:141(f64vec3) GroupNonUniformFMin 34 InclusiveScan 1036 + 1038: 132(ptr) AccessChain 27(data) 1033 59 + 1039: 23(f64vec4) Load 1038 + 1040: 23(f64vec4) VectorShuffle 1039 1037 4 5 6 3 + Store 1038 1040 + 1041: 6(int) Load 8(invocation) + 1042: 132(ptr) AccessChain 27(data) 59 59 + 1043: 23(f64vec4) Load 1042 + 1044: 23(f64vec4) GroupNonUniformFMin 34 InclusiveScan 1043 + 1045: 132(ptr) AccessChain 27(data) 1041 59 + Store 1045 1044 + 1046: 6(int) Load 8(invocation) + 1047: 31(ptr) AccessChain 27(data) 29 29 30 + 1048: 17(float) Load 1047 + 1049: 17(float) GroupNonUniformFMax 34 InclusiveScan 1048 + 1050: 31(ptr) AccessChain 27(data) 1046 29 30 + Store 1050 1049 + 1051: 6(int) Load 8(invocation) + 1052: 40(ptr) AccessChain 27(data) 38 29 + 1053: 18(fvec4) Load 1052 + 1054: 39(fvec2) VectorShuffle 1053 1053 0 1 + 1055: 39(fvec2) GroupNonUniformFMax 34 InclusiveScan 1054 + 1056: 40(ptr) AccessChain 27(data) 1051 29 + 1057: 18(fvec4) Load 1056 + 1058: 18(fvec4) VectorShuffle 1057 1055 4 5 2 3 + Store 1056 1058 + 1059: 6(int) Load 8(invocation) + 1060: 40(ptr) AccessChain 27(data) 49 29 + 1061: 18(fvec4) Load 1060 + 1062: 50(fvec3) VectorShuffle 1061 1061 0 1 2 + 1063: 50(fvec3) GroupNonUniformFMax 34 InclusiveScan 1062 + 1064: 40(ptr) AccessChain 27(data) 1059 29 + 1065: 18(fvec4) Load 1064 + 1066: 18(fvec4) VectorShuffle 1065 1063 4 5 6 3 + Store 1064 1066 + 1067: 6(int) Load 8(invocation) + 1068: 40(ptr) AccessChain 27(data) 59 29 + 1069: 18(fvec4) Load 1068 + 1070: 18(fvec4) GroupNonUniformFMax 34 InclusiveScan 1069 + 1071: 40(ptr) AccessChain 27(data) 1067 29 + Store 1071 1070 + 1072: 6(int) Load 8(invocation) + 1073: 65(ptr) AccessChain 27(data) 29 38 30 + 1074: 19(int) Load 1073 + 1075: 19(int) GroupNonUniformSMax 34 InclusiveScan 1074 + 1076: 65(ptr) AccessChain 27(data) 1072 38 30 + Store 1076 1075 + 1077: 6(int) Load 8(invocation) + 1078: 72(ptr) AccessChain 27(data) 38 38 + 1079: 20(ivec4) Load 1078 + 1080: 71(ivec2) VectorShuffle 1079 1079 0 1 + 1081: 71(ivec2) GroupNonUniformSMax 34 InclusiveScan 1080 + 1082: 72(ptr) AccessChain 27(data) 1077 38 + 1083: 20(ivec4) Load 1082 + 1084: 20(ivec4) VectorShuffle 1083 1081 4 5 2 3 + Store 1082 1084 + 1085: 6(int) Load 8(invocation) + 1086: 72(ptr) AccessChain 27(data) 49 38 + 1087: 20(ivec4) Load 1086 + 1088: 81(ivec3) VectorShuffle 1087 1087 0 1 2 + 1089: 81(ivec3) GroupNonUniformSMax 34 InclusiveScan 1088 + 1090: 72(ptr) AccessChain 27(data) 1085 38 + 1091: 20(ivec4) Load 1090 + 1092: 20(ivec4) VectorShuffle 1091 1089 4 5 6 3 + Store 1090 1092 + 1093: 6(int) Load 8(invocation) + 1094: 72(ptr) AccessChain 27(data) 59 38 + 1095: 20(ivec4) Load 1094 + 1096: 20(ivec4) GroupNonUniformSMax 34 InclusiveScan 1095 + 1097: 72(ptr) AccessChain 27(data) 1093 38 + Store 1097 1096 + 1098: 6(int) Load 8(invocation) + 1099: 95(ptr) AccessChain 27(data) 29 49 30 + 1100: 6(int) Load 1099 + 1101: 6(int) GroupNonUniformUMax 34 InclusiveScan 1100 + 1102: 95(ptr) AccessChain 27(data) 1098 49 30 + Store 1102 1101 + 1103: 6(int) Load 8(invocation) + 1104: 102(ptr) AccessChain 27(data) 38 49 + 1105: 21(ivec4) Load 1104 + 1106: 101(ivec2) VectorShuffle 1105 1105 0 1 + 1107: 101(ivec2) GroupNonUniformUMax 34 InclusiveScan 1106 + 1108: 102(ptr) AccessChain 27(data) 1103 49 + 1109: 21(ivec4) Load 1108 + 1110: 21(ivec4) VectorShuffle 1109 1107 4 5 2 3 + Store 1108 1110 + 1111: 6(int) Load 8(invocation) + 1112: 102(ptr) AccessChain 27(data) 49 49 + 1113: 21(ivec4) Load 1112 + 1114: 111(ivec3) VectorShuffle 1113 1113 0 1 2 + 1115: 111(ivec3) GroupNonUniformUMax 34 InclusiveScan 1114 + 1116: 102(ptr) AccessChain 27(data) 1111 49 + 1117: 21(ivec4) Load 1116 + 1118: 21(ivec4) VectorShuffle 1117 1115 4 5 6 3 + Store 1116 1118 + 1119: 6(int) Load 8(invocation) + 1120: 102(ptr) AccessChain 27(data) 59 49 + 1121: 21(ivec4) Load 1120 + 1122: 21(ivec4) GroupNonUniformUMax 34 InclusiveScan 1121 + 1123: 102(ptr) AccessChain 27(data) 1119 49 + Store 1123 1122 + 1124: 6(int) Load 8(invocation) + 1125: 125(ptr) AccessChain 27(data) 29 59 30 + 1126:22(float64_t) Load 1125 + 1127:22(float64_t) GroupNonUniformFMax 34 InclusiveScan 1126 + 1128: 125(ptr) AccessChain 27(data) 1124 59 30 + Store 1128 1127 + 1129: 6(int) Load 8(invocation) + 1130: 132(ptr) AccessChain 27(data) 38 59 + 1131: 23(f64vec4) Load 1130 + 1132:131(f64vec2) VectorShuffle 1131 1131 0 1 + 1133:131(f64vec2) GroupNonUniformFMax 34 InclusiveScan 1132 + 1134: 132(ptr) AccessChain 27(data) 1129 59 + 1135: 23(f64vec4) Load 1134 + 1136: 23(f64vec4) VectorShuffle 1135 1133 4 5 2 3 + Store 1134 1136 + 1137: 6(int) Load 8(invocation) + 1138: 132(ptr) AccessChain 27(data) 49 59 + 1139: 23(f64vec4) Load 1138 + 1140:141(f64vec3) VectorShuffle 1139 1139 0 1 2 + 1141:141(f64vec3) GroupNonUniformFMax 34 InclusiveScan 1140 + 1142: 132(ptr) AccessChain 27(data) 1137 59 + 1143: 23(f64vec4) Load 1142 + 1144: 23(f64vec4) VectorShuffle 1143 1141 4 5 6 3 + Store 1142 1144 + 1145: 6(int) Load 8(invocation) + 1146: 132(ptr) AccessChain 27(data) 59 59 + 1147: 23(f64vec4) Load 1146 + 1148: 23(f64vec4) GroupNonUniformFMax 34 InclusiveScan 1147 + 1149: 132(ptr) AccessChain 27(data) 1145 59 + Store 1149 1148 + 1150: 6(int) Load 8(invocation) + 1151: 65(ptr) AccessChain 27(data) 29 38 30 + 1152: 19(int) Load 1151 + 1153: 19(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1152 + 1154: 65(ptr) AccessChain 27(data) 1150 38 30 + Store 1154 1153 + 1155: 6(int) Load 8(invocation) + 1156: 72(ptr) AccessChain 27(data) 38 38 + 1157: 20(ivec4) Load 1156 + 1158: 71(ivec2) VectorShuffle 1157 1157 0 1 + 1159: 71(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1158 + 1160: 72(ptr) AccessChain 27(data) 1155 38 + 1161: 20(ivec4) Load 1160 + 1162: 20(ivec4) VectorShuffle 1161 1159 4 5 2 3 + Store 1160 1162 + 1163: 6(int) Load 8(invocation) + 1164: 72(ptr) AccessChain 27(data) 49 38 + 1165: 20(ivec4) Load 1164 + 1166: 81(ivec3) VectorShuffle 1165 1165 0 1 2 + 1167: 81(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1166 + 1168: 72(ptr) AccessChain 27(data) 1163 38 + 1169: 20(ivec4) Load 1168 + 1170: 20(ivec4) VectorShuffle 1169 1167 4 5 6 3 + Store 1168 1170 + 1171: 6(int) Load 8(invocation) + 1172: 72(ptr) AccessChain 27(data) 59 38 + 1173: 20(ivec4) Load 1172 + 1174: 20(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1173 + 1175: 72(ptr) AccessChain 27(data) 1171 38 + Store 1175 1174 + 1176: 6(int) Load 8(invocation) + 1177: 95(ptr) AccessChain 27(data) 29 49 30 + 1178: 6(int) Load 1177 + 1179: 6(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1178 + 1180: 95(ptr) AccessChain 27(data) 1176 49 30 + Store 1180 1179 + 1181: 6(int) Load 8(invocation) + 1182: 102(ptr) AccessChain 27(data) 38 49 + 1183: 21(ivec4) Load 1182 + 1184: 101(ivec2) VectorShuffle 1183 1183 0 1 + 1185: 101(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1184 + 1186: 102(ptr) AccessChain 27(data) 1181 49 + 1187: 21(ivec4) Load 1186 + 1188: 21(ivec4) VectorShuffle 1187 1185 4 5 2 3 + Store 1186 1188 + 1189: 6(int) Load 8(invocation) + 1190: 102(ptr) AccessChain 27(data) 49 49 + 1191: 21(ivec4) Load 1190 + 1192: 111(ivec3) VectorShuffle 1191 1191 0 1 2 + 1193: 111(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1192 + 1194: 102(ptr) AccessChain 27(data) 1189 49 + 1195: 21(ivec4) Load 1194 + 1196: 21(ivec4) VectorShuffle 1195 1193 4 5 6 3 + Store 1194 1196 + 1197: 6(int) Load 8(invocation) + 1198: 102(ptr) AccessChain 27(data) 59 49 + 1199: 21(ivec4) Load 1198 + 1200: 21(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1199 + 1201: 102(ptr) AccessChain 27(data) 1197 49 + Store 1201 1200 + 1202: 6(int) Load 8(invocation) + 1203: 65(ptr) AccessChain 27(data) 29 38 30 + 1204: 19(int) Load 1203 + 1205: 521(bool) SLessThan 1204 29 + 1206: 521(bool) GroupNonUniformLogicalAnd 34 InclusiveScan 1205 + 1207: 19(int) Select 1206 38 29 + 1208: 65(ptr) AccessChain 27(data) 1202 38 30 + Store 1208 1207 + 1209: 6(int) Load 8(invocation) + 1210: 72(ptr) AccessChain 27(data) 38 38 + 1211: 20(ivec4) Load 1210 + 1212: 71(ivec2) VectorShuffle 1211 1211 0 1 + 1213: 531(bvec2) SLessThan 1212 530 + 1214: 531(bvec2) GroupNonUniformLogicalAnd 34 InclusiveScan 1213 + 1215: 71(ivec2) Select 1214 534 530 + 1216: 72(ptr) AccessChain 27(data) 1209 38 + 1217: 20(ivec4) Load 1216 + 1218: 20(ivec4) VectorShuffle 1217 1215 4 5 2 3 + Store 1216 1218 + 1219: 6(int) Load 8(invocation) + 1220: 72(ptr) AccessChain 27(data) 38 38 + 1221: 20(ivec4) Load 1220 + 1222: 81(ivec3) VectorShuffle 1221 1221 0 1 2 + 1223: 544(bvec3) SLessThan 1222 543 + 1224: 544(bvec3) GroupNonUniformLogicalAnd 34 InclusiveScan 1223 + 1225: 81(ivec3) Select 1224 547 543 + 1226: 72(ptr) AccessChain 27(data) 1219 38 + 1227: 20(ivec4) Load 1226 + 1228: 20(ivec4) VectorShuffle 1227 1225 4 5 6 3 + Store 1226 1228 + 1229: 6(int) Load 8(invocation) + 1230: 72(ptr) AccessChain 27(data) 38 38 + 1231: 20(ivec4) Load 1230 + 1232: 556(bvec4) SLessThan 1231 555 + 1233: 556(bvec4) GroupNonUniformLogicalAnd 34 InclusiveScan 1232 + 1234: 20(ivec4) Select 1233 559 555 + 1235: 72(ptr) AccessChain 27(data) 1229 38 + Store 1235 1234 + 1236: 6(int) Load 8(invocation) + 1237: 65(ptr) AccessChain 27(data) 29 38 30 + 1238: 19(int) Load 1237 + 1239: 19(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1238 + 1240: 65(ptr) AccessChain 27(data) 1236 38 30 + Store 1240 1239 + 1241: 6(int) Load 8(invocation) + 1242: 72(ptr) AccessChain 27(data) 38 38 + 1243: 20(ivec4) Load 1242 + 1244: 71(ivec2) VectorShuffle 1243 1243 0 1 + 1245: 71(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1244 + 1246: 72(ptr) AccessChain 27(data) 1241 38 + 1247: 20(ivec4) Load 1246 + 1248: 20(ivec4) VectorShuffle 1247 1245 4 5 2 3 + Store 1246 1248 + 1249: 6(int) Load 8(invocation) + 1250: 72(ptr) AccessChain 27(data) 49 38 + 1251: 20(ivec4) Load 1250 + 1252: 81(ivec3) VectorShuffle 1251 1251 0 1 2 + 1253: 81(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1252 + 1254: 72(ptr) AccessChain 27(data) 1249 38 + 1255: 20(ivec4) Load 1254 + 1256: 20(ivec4) VectorShuffle 1255 1253 4 5 6 3 + Store 1254 1256 + 1257: 6(int) Load 8(invocation) + 1258: 72(ptr) AccessChain 27(data) 59 38 + 1259: 20(ivec4) Load 1258 + 1260: 20(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1259 + 1261: 72(ptr) AccessChain 27(data) 1257 38 + Store 1261 1260 + 1262: 6(int) Load 8(invocation) + 1263: 95(ptr) AccessChain 27(data) 29 49 30 + 1264: 6(int) Load 1263 + 1265: 6(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1264 + 1266: 95(ptr) AccessChain 27(data) 1262 49 30 + Store 1266 1265 + 1267: 6(int) Load 8(invocation) + 1268: 102(ptr) AccessChain 27(data) 38 49 + 1269: 21(ivec4) Load 1268 + 1270: 101(ivec2) VectorShuffle 1269 1269 0 1 + 1271: 101(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1270 + 1272: 102(ptr) AccessChain 27(data) 1267 49 + 1273: 21(ivec4) Load 1272 + 1274: 21(ivec4) VectorShuffle 1273 1271 4 5 2 3 + Store 1272 1274 + 1275: 6(int) Load 8(invocation) + 1276: 102(ptr) AccessChain 27(data) 49 49 + 1277: 21(ivec4) Load 1276 + 1278: 111(ivec3) VectorShuffle 1277 1277 0 1 2 + 1279: 111(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1278 + 1280: 102(ptr) AccessChain 27(data) 1275 49 + 1281: 21(ivec4) Load 1280 + 1282: 21(ivec4) VectorShuffle 1281 1279 4 5 6 3 + Store 1280 1282 + 1283: 6(int) Load 8(invocation) + 1284: 102(ptr) AccessChain 27(data) 59 49 + 1285: 21(ivec4) Load 1284 + 1286: 21(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1285 + 1287: 102(ptr) AccessChain 27(data) 1283 49 + Store 1287 1286 + 1288: 6(int) Load 8(invocation) + 1289: 65(ptr) AccessChain 27(data) 29 38 30 + 1290: 19(int) Load 1289 + 1291: 521(bool) SLessThan 1290 29 + 1292: 521(bool) GroupNonUniformLogicalOr 34 InclusiveScan 1291 + 1293: 19(int) Select 1292 38 29 + 1294: 65(ptr) AccessChain 27(data) 1288 38 30 + Store 1294 1293 + 1295: 6(int) Load 8(invocation) + 1296: 72(ptr) AccessChain 27(data) 38 38 + 1297: 20(ivec4) Load 1296 + 1298: 71(ivec2) VectorShuffle 1297 1297 0 1 + 1299: 531(bvec2) SLessThan 1298 530 + 1300: 531(bvec2) GroupNonUniformLogicalOr 34 InclusiveScan 1299 + 1301: 71(ivec2) Select 1300 534 530 + 1302: 72(ptr) AccessChain 27(data) 1295 38 + 1303: 20(ivec4) Load 1302 + 1304: 20(ivec4) VectorShuffle 1303 1301 4 5 2 3 + Store 1302 1304 + 1305: 6(int) Load 8(invocation) + 1306: 72(ptr) AccessChain 27(data) 38 38 + 1307: 20(ivec4) Load 1306 + 1308: 81(ivec3) VectorShuffle 1307 1307 0 1 2 + 1309: 544(bvec3) SLessThan 1308 543 + 1310: 544(bvec3) GroupNonUniformLogicalOr 34 InclusiveScan 1309 + 1311: 81(ivec3) Select 1310 547 543 + 1312: 72(ptr) AccessChain 27(data) 1305 38 + 1313: 20(ivec4) Load 1312 + 1314: 20(ivec4) VectorShuffle 1313 1311 4 5 6 3 + Store 1312 1314 + 1315: 6(int) Load 8(invocation) + 1316: 72(ptr) AccessChain 27(data) 38 38 + 1317: 20(ivec4) Load 1316 + 1318: 556(bvec4) SLessThan 1317 555 + 1319: 556(bvec4) GroupNonUniformLogicalOr 34 InclusiveScan 1318 + 1320: 20(ivec4) Select 1319 559 555 + 1321: 72(ptr) AccessChain 27(data) 1315 38 + Store 1321 1320 + 1322: 6(int) Load 8(invocation) + 1323: 65(ptr) AccessChain 27(data) 29 38 30 + 1324: 19(int) Load 1323 + 1325: 19(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1324 + 1326: 65(ptr) AccessChain 27(data) 1322 38 30 + Store 1326 1325 + 1327: 6(int) Load 8(invocation) + 1328: 72(ptr) AccessChain 27(data) 38 38 + 1329: 20(ivec4) Load 1328 + 1330: 71(ivec2) VectorShuffle 1329 1329 0 1 + 1331: 71(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1330 + 1332: 72(ptr) AccessChain 27(data) 1327 38 + 1333: 20(ivec4) Load 1332 + 1334: 20(ivec4) VectorShuffle 1333 1331 4 5 2 3 + Store 1332 1334 + 1335: 6(int) Load 8(invocation) + 1336: 72(ptr) AccessChain 27(data) 49 38 + 1337: 20(ivec4) Load 1336 + 1338: 81(ivec3) VectorShuffle 1337 1337 0 1 2 + 1339: 81(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1338 + 1340: 72(ptr) AccessChain 27(data) 1335 38 + 1341: 20(ivec4) Load 1340 + 1342: 20(ivec4) VectorShuffle 1341 1339 4 5 6 3 + Store 1340 1342 + 1343: 6(int) Load 8(invocation) + 1344: 72(ptr) AccessChain 27(data) 59 38 + 1345: 20(ivec4) Load 1344 + 1346: 20(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1345 + 1347: 72(ptr) AccessChain 27(data) 1343 38 + Store 1347 1346 + 1348: 6(int) Load 8(invocation) + 1349: 95(ptr) AccessChain 27(data) 29 49 30 + 1350: 6(int) Load 1349 + 1351: 6(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1350 + 1352: 95(ptr) AccessChain 27(data) 1348 49 30 + Store 1352 1351 + 1353: 6(int) Load 8(invocation) + 1354: 102(ptr) AccessChain 27(data) 38 49 + 1355: 21(ivec4) Load 1354 + 1356: 101(ivec2) VectorShuffle 1355 1355 0 1 + 1357: 101(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1356 + 1358: 102(ptr) AccessChain 27(data) 1353 49 + 1359: 21(ivec4) Load 1358 + 1360: 21(ivec4) VectorShuffle 1359 1357 4 5 2 3 + Store 1358 1360 + 1361: 6(int) Load 8(invocation) + 1362: 102(ptr) AccessChain 27(data) 49 49 + 1363: 21(ivec4) Load 1362 + 1364: 111(ivec3) VectorShuffle 1363 1363 0 1 2 + 1365: 111(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1364 + 1366: 102(ptr) AccessChain 27(data) 1361 49 + 1367: 21(ivec4) Load 1366 + 1368: 21(ivec4) VectorShuffle 1367 1365 4 5 6 3 + Store 1366 1368 + 1369: 6(int) Load 8(invocation) + 1370: 102(ptr) AccessChain 27(data) 59 49 + 1371: 21(ivec4) Load 1370 + 1372: 21(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1371 + 1373: 102(ptr) AccessChain 27(data) 1369 49 + Store 1373 1372 + 1374: 6(int) Load 8(invocation) + 1375: 65(ptr) AccessChain 27(data) 29 38 30 + 1376: 19(int) Load 1375 + 1377: 521(bool) SLessThan 1376 29 + 1378: 521(bool) GroupNonUniformLogicalXor 34 InclusiveScan 1377 + 1379: 19(int) Select 1378 38 29 + 1380: 65(ptr) AccessChain 27(data) 1374 38 30 + Store 1380 1379 + 1381: 6(int) Load 8(invocation) + 1382: 72(ptr) AccessChain 27(data) 38 38 + 1383: 20(ivec4) Load 1382 + 1384: 71(ivec2) VectorShuffle 1383 1383 0 1 + 1385: 531(bvec2) SLessThan 1384 530 + 1386: 531(bvec2) GroupNonUniformLogicalXor 34 InclusiveScan 1385 + 1387: 71(ivec2) Select 1386 534 530 + 1388: 72(ptr) AccessChain 27(data) 1381 38 + 1389: 20(ivec4) Load 1388 + 1390: 20(ivec4) VectorShuffle 1389 1387 4 5 2 3 + Store 1388 1390 + 1391: 6(int) Load 8(invocation) + 1392: 72(ptr) AccessChain 27(data) 38 38 + 1393: 20(ivec4) Load 1392 + 1394: 81(ivec3) VectorShuffle 1393 1393 0 1 2 + 1395: 544(bvec3) SLessThan 1394 543 + 1396: 544(bvec3) GroupNonUniformLogicalXor 34 InclusiveScan 1395 + 1397: 81(ivec3) Select 1396 547 543 + 1398: 72(ptr) AccessChain 27(data) 1391 38 + 1399: 20(ivec4) Load 1398 + 1400: 20(ivec4) VectorShuffle 1399 1397 4 5 6 3 + Store 1398 1400 + 1401: 6(int) Load 8(invocation) + 1402: 72(ptr) AccessChain 27(data) 38 38 + 1403: 20(ivec4) Load 1402 + 1404: 556(bvec4) SLessThan 1403 555 + 1405: 556(bvec4) GroupNonUniformLogicalXor 34 InclusiveScan 1404 + 1406: 20(ivec4) Select 1405 559 555 + 1407: 72(ptr) AccessChain 27(data) 1401 38 + Store 1407 1406 + 1408: 6(int) Load 8(invocation) + 1409: 31(ptr) AccessChain 27(data) 29 29 30 + 1410: 17(float) Load 1409 + 1411: 17(float) GroupNonUniformFAdd 34 ExclusiveScan 1410 + 1412: 31(ptr) AccessChain 27(data) 1408 29 30 + Store 1412 1411 + 1413: 6(int) Load 8(invocation) + 1414: 40(ptr) AccessChain 27(data) 38 29 + 1415: 18(fvec4) Load 1414 + 1416: 39(fvec2) VectorShuffle 1415 1415 0 1 + 1417: 39(fvec2) GroupNonUniformFAdd 34 ExclusiveScan 1416 + 1418: 40(ptr) AccessChain 27(data) 1413 29 + 1419: 18(fvec4) Load 1418 + 1420: 18(fvec4) VectorShuffle 1419 1417 4 5 2 3 + Store 1418 1420 + 1421: 6(int) Load 8(invocation) + 1422: 40(ptr) AccessChain 27(data) 49 29 + 1423: 18(fvec4) Load 1422 + 1424: 50(fvec3) VectorShuffle 1423 1423 0 1 2 + 1425: 50(fvec3) GroupNonUniformFAdd 34 ExclusiveScan 1424 + 1426: 40(ptr) AccessChain 27(data) 1421 29 + 1427: 18(fvec4) Load 1426 + 1428: 18(fvec4) VectorShuffle 1427 1425 4 5 6 3 + Store 1426 1428 + 1429: 6(int) Load 8(invocation) + 1430: 40(ptr) AccessChain 27(data) 59 29 + 1431: 18(fvec4) Load 1430 + 1432: 18(fvec4) GroupNonUniformFAdd 34 ExclusiveScan 1431 + 1433: 40(ptr) AccessChain 27(data) 1429 29 + Store 1433 1432 + 1434: 6(int) Load 8(invocation) + 1435: 65(ptr) AccessChain 27(data) 29 38 30 + 1436: 19(int) Load 1435 + 1437: 19(int) GroupNonUniformIAdd 34 ExclusiveScan 1436 + 1438: 65(ptr) AccessChain 27(data) 1434 38 30 + Store 1438 1437 + 1439: 6(int) Load 8(invocation) + 1440: 72(ptr) AccessChain 27(data) 38 38 + 1441: 20(ivec4) Load 1440 + 1442: 71(ivec2) VectorShuffle 1441 1441 0 1 + 1443: 71(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1442 + 1444: 72(ptr) AccessChain 27(data) 1439 38 + 1445: 20(ivec4) Load 1444 + 1446: 20(ivec4) VectorShuffle 1445 1443 4 5 2 3 + Store 1444 1446 + 1447: 6(int) Load 8(invocation) + 1448: 72(ptr) AccessChain 27(data) 49 38 + 1449: 20(ivec4) Load 1448 + 1450: 81(ivec3) VectorShuffle 1449 1449 0 1 2 + 1451: 81(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1450 + 1452: 72(ptr) AccessChain 27(data) 1447 38 + 1453: 20(ivec4) Load 1452 + 1454: 20(ivec4) VectorShuffle 1453 1451 4 5 6 3 + Store 1452 1454 + 1455: 6(int) Load 8(invocation) + 1456: 72(ptr) AccessChain 27(data) 59 38 + 1457: 20(ivec4) Load 1456 + 1458: 20(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1457 + 1459: 72(ptr) AccessChain 27(data) 1455 38 + Store 1459 1458 + 1460: 6(int) Load 8(invocation) + 1461: 95(ptr) AccessChain 27(data) 29 49 30 + 1462: 6(int) Load 1461 + 1463: 6(int) GroupNonUniformIAdd 34 ExclusiveScan 1462 + 1464: 95(ptr) AccessChain 27(data) 1460 49 30 + Store 1464 1463 + 1465: 6(int) Load 8(invocation) + 1466: 102(ptr) AccessChain 27(data) 38 49 + 1467: 21(ivec4) Load 1466 + 1468: 101(ivec2) VectorShuffle 1467 1467 0 1 + 1469: 101(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1468 + 1470: 102(ptr) AccessChain 27(data) 1465 49 + 1471: 21(ivec4) Load 1470 + 1472: 21(ivec4) VectorShuffle 1471 1469 4 5 2 3 + Store 1470 1472 + 1473: 6(int) Load 8(invocation) + 1474: 102(ptr) AccessChain 27(data) 49 49 + 1475: 21(ivec4) Load 1474 + 1476: 111(ivec3) VectorShuffle 1475 1475 0 1 2 + 1477: 111(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1476 + 1478: 102(ptr) AccessChain 27(data) 1473 49 + 1479: 21(ivec4) Load 1478 + 1480: 21(ivec4) VectorShuffle 1479 1477 4 5 6 3 + Store 1478 1480 + 1481: 6(int) Load 8(invocation) + 1482: 102(ptr) AccessChain 27(data) 59 49 + 1483: 21(ivec4) Load 1482 + 1484: 21(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1483 + 1485: 102(ptr) AccessChain 27(data) 1481 49 + Store 1485 1484 + 1486: 6(int) Load 8(invocation) + 1487: 125(ptr) AccessChain 27(data) 29 59 30 + 1488:22(float64_t) Load 1487 + 1489:22(float64_t) GroupNonUniformFAdd 34 ExclusiveScan 1488 + 1490: 125(ptr) AccessChain 27(data) 1486 59 30 + Store 1490 1489 + 1491: 6(int) Load 8(invocation) + 1492: 132(ptr) AccessChain 27(data) 38 59 + 1493: 23(f64vec4) Load 1492 + 1494:131(f64vec2) VectorShuffle 1493 1493 0 1 + 1495:131(f64vec2) GroupNonUniformFAdd 34 ExclusiveScan 1494 + 1496: 132(ptr) AccessChain 27(data) 1491 59 + 1497: 23(f64vec4) Load 1496 + 1498: 23(f64vec4) VectorShuffle 1497 1495 4 5 2 3 + Store 1496 1498 + 1499: 6(int) Load 8(invocation) + 1500: 132(ptr) AccessChain 27(data) 49 59 + 1501: 23(f64vec4) Load 1500 + 1502:141(f64vec3) VectorShuffle 1501 1501 0 1 2 + 1503:141(f64vec3) GroupNonUniformFAdd 34 ExclusiveScan 1502 + 1504: 132(ptr) AccessChain 27(data) 1499 59 + 1505: 23(f64vec4) Load 1504 + 1506: 23(f64vec4) VectorShuffle 1505 1503 4 5 6 3 + Store 1504 1506 + 1507: 6(int) Load 8(invocation) + 1508: 132(ptr) AccessChain 27(data) 59 59 + 1509: 23(f64vec4) Load 1508 + 1510: 23(f64vec4) GroupNonUniformFAdd 34 ExclusiveScan 1509 + 1511: 132(ptr) AccessChain 27(data) 1507 59 + Store 1511 1510 + 1512: 6(int) Load 8(invocation) + 1513: 31(ptr) AccessChain 27(data) 29 29 30 + 1514: 17(float) Load 1513 + 1515: 17(float) GroupNonUniformFMul 34 ExclusiveScan 1514 + 1516: 31(ptr) AccessChain 27(data) 1512 29 30 + Store 1516 1515 + 1517: 6(int) Load 8(invocation) + 1518: 40(ptr) AccessChain 27(data) 38 29 + 1519: 18(fvec4) Load 1518 + 1520: 39(fvec2) VectorShuffle 1519 1519 0 1 + 1521: 39(fvec2) GroupNonUniformFMul 34 ExclusiveScan 1520 + 1522: 40(ptr) AccessChain 27(data) 1517 29 + 1523: 18(fvec4) Load 1522 + 1524: 18(fvec4) VectorShuffle 1523 1521 4 5 2 3 + Store 1522 1524 + 1525: 6(int) Load 8(invocation) + 1526: 40(ptr) AccessChain 27(data) 49 29 + 1527: 18(fvec4) Load 1526 + 1528: 50(fvec3) VectorShuffle 1527 1527 0 1 2 + 1529: 50(fvec3) GroupNonUniformFMul 34 ExclusiveScan 1528 + 1530: 40(ptr) AccessChain 27(data) 1525 29 + 1531: 18(fvec4) Load 1530 + 1532: 18(fvec4) VectorShuffle 1531 1529 4 5 6 3 + Store 1530 1532 + 1533: 6(int) Load 8(invocation) + 1534: 40(ptr) AccessChain 27(data) 59 29 + 1535: 18(fvec4) Load 1534 + 1536: 18(fvec4) GroupNonUniformFMul 34 ExclusiveScan 1535 + 1537: 40(ptr) AccessChain 27(data) 1533 29 + Store 1537 1536 + 1538: 6(int) Load 8(invocation) + 1539: 65(ptr) AccessChain 27(data) 29 38 30 + 1540: 19(int) Load 1539 + 1541: 19(int) GroupNonUniformIMul 34 ExclusiveScan 1540 + 1542: 65(ptr) AccessChain 27(data) 1538 38 30 + Store 1542 1541 + 1543: 6(int) Load 8(invocation) + 1544: 72(ptr) AccessChain 27(data) 38 38 + 1545: 20(ivec4) Load 1544 + 1546: 71(ivec2) VectorShuffle 1545 1545 0 1 + 1547: 71(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1546 + 1548: 72(ptr) AccessChain 27(data) 1543 38 + 1549: 20(ivec4) Load 1548 + 1550: 20(ivec4) VectorShuffle 1549 1547 4 5 2 3 + Store 1548 1550 + 1551: 6(int) Load 8(invocation) + 1552: 72(ptr) AccessChain 27(data) 49 38 + 1553: 20(ivec4) Load 1552 + 1554: 81(ivec3) VectorShuffle 1553 1553 0 1 2 + 1555: 81(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1554 + 1556: 72(ptr) AccessChain 27(data) 1551 38 + 1557: 20(ivec4) Load 1556 + 1558: 20(ivec4) VectorShuffle 1557 1555 4 5 6 3 + Store 1556 1558 + 1559: 6(int) Load 8(invocation) + 1560: 72(ptr) AccessChain 27(data) 59 38 + 1561: 20(ivec4) Load 1560 + 1562: 20(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1561 + 1563: 72(ptr) AccessChain 27(data) 1559 38 + Store 1563 1562 + 1564: 6(int) Load 8(invocation) + 1565: 95(ptr) AccessChain 27(data) 29 49 30 + 1566: 6(int) Load 1565 + 1567: 6(int) GroupNonUniformIMul 34 ExclusiveScan 1566 + 1568: 95(ptr) AccessChain 27(data) 1564 49 30 + Store 1568 1567 + 1569: 6(int) Load 8(invocation) + 1570: 102(ptr) AccessChain 27(data) 38 49 + 1571: 21(ivec4) Load 1570 + 1572: 101(ivec2) VectorShuffle 1571 1571 0 1 + 1573: 101(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1572 + 1574: 102(ptr) AccessChain 27(data) 1569 49 + 1575: 21(ivec4) Load 1574 + 1576: 21(ivec4) VectorShuffle 1575 1573 4 5 2 3 + Store 1574 1576 + 1577: 6(int) Load 8(invocation) + 1578: 102(ptr) AccessChain 27(data) 49 49 + 1579: 21(ivec4) Load 1578 + 1580: 111(ivec3) VectorShuffle 1579 1579 0 1 2 + 1581: 111(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1580 + 1582: 102(ptr) AccessChain 27(data) 1577 49 + 1583: 21(ivec4) Load 1582 + 1584: 21(ivec4) VectorShuffle 1583 1581 4 5 6 3 + Store 1582 1584 + 1585: 6(int) Load 8(invocation) + 1586: 102(ptr) AccessChain 27(data) 59 49 + 1587: 21(ivec4) Load 1586 + 1588: 21(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1587 + 1589: 102(ptr) AccessChain 27(data) 1585 49 + Store 1589 1588 + 1590: 6(int) Load 8(invocation) + 1591: 125(ptr) AccessChain 27(data) 29 59 30 + 1592:22(float64_t) Load 1591 + 1593:22(float64_t) GroupNonUniformFMul 34 ExclusiveScan 1592 + 1594: 125(ptr) AccessChain 27(data) 1590 59 30 + Store 1594 1593 + 1595: 6(int) Load 8(invocation) + 1596: 132(ptr) AccessChain 27(data) 38 59 + 1597: 23(f64vec4) Load 1596 + 1598:131(f64vec2) VectorShuffle 1597 1597 0 1 + 1599:131(f64vec2) GroupNonUniformFMul 34 ExclusiveScan 1598 + 1600: 132(ptr) AccessChain 27(data) 1595 59 + 1601: 23(f64vec4) Load 1600 + 1602: 23(f64vec4) VectorShuffle 1601 1599 4 5 2 3 + Store 1600 1602 + 1603: 6(int) Load 8(invocation) + 1604: 132(ptr) AccessChain 27(data) 49 59 + 1605: 23(f64vec4) Load 1604 + 1606:141(f64vec3) VectorShuffle 1605 1605 0 1 2 + 1607:141(f64vec3) GroupNonUniformFMul 34 ExclusiveScan 1606 + 1608: 132(ptr) AccessChain 27(data) 1603 59 + 1609: 23(f64vec4) Load 1608 + 1610: 23(f64vec4) VectorShuffle 1609 1607 4 5 6 3 + Store 1608 1610 + 1611: 6(int) Load 8(invocation) + 1612: 132(ptr) AccessChain 27(data) 59 59 + 1613: 23(f64vec4) Load 1612 + 1614: 23(f64vec4) GroupNonUniformFMul 34 ExclusiveScan 1613 + 1615: 132(ptr) AccessChain 27(data) 1611 59 + Store 1615 1614 + 1616: 6(int) Load 8(invocation) + 1617: 31(ptr) AccessChain 27(data) 29 29 30 + 1618: 17(float) Load 1617 + 1619: 17(float) GroupNonUniformFMin 34 ExclusiveScan 1618 + 1620: 31(ptr) AccessChain 27(data) 1616 29 30 + Store 1620 1619 + 1621: 6(int) Load 8(invocation) + 1622: 40(ptr) AccessChain 27(data) 38 29 + 1623: 18(fvec4) Load 1622 + 1624: 39(fvec2) VectorShuffle 1623 1623 0 1 + 1625: 39(fvec2) GroupNonUniformFMin 34 ExclusiveScan 1624 + 1626: 40(ptr) AccessChain 27(data) 1621 29 + 1627: 18(fvec4) Load 1626 + 1628: 18(fvec4) VectorShuffle 1627 1625 4 5 2 3 + Store 1626 1628 + 1629: 6(int) Load 8(invocation) + 1630: 40(ptr) AccessChain 27(data) 49 29 + 1631: 18(fvec4) Load 1630 + 1632: 50(fvec3) VectorShuffle 1631 1631 0 1 2 + 1633: 50(fvec3) GroupNonUniformFMin 34 ExclusiveScan 1632 + 1634: 40(ptr) AccessChain 27(data) 1629 29 + 1635: 18(fvec4) Load 1634 + 1636: 18(fvec4) VectorShuffle 1635 1633 4 5 6 3 + Store 1634 1636 + 1637: 6(int) Load 8(invocation) + 1638: 40(ptr) AccessChain 27(data) 59 29 + 1639: 18(fvec4) Load 1638 + 1640: 18(fvec4) GroupNonUniformFMin 34 ExclusiveScan 1639 + 1641: 40(ptr) AccessChain 27(data) 1637 29 + Store 1641 1640 + 1642: 6(int) Load 8(invocation) + 1643: 65(ptr) AccessChain 27(data) 29 38 30 + 1644: 19(int) Load 1643 + 1645: 19(int) GroupNonUniformSMin 34 ExclusiveScan 1644 + 1646: 65(ptr) AccessChain 27(data) 1642 38 30 + Store 1646 1645 + 1647: 6(int) Load 8(invocation) + 1648: 72(ptr) AccessChain 27(data) 38 38 + 1649: 20(ivec4) Load 1648 + 1650: 71(ivec2) VectorShuffle 1649 1649 0 1 + 1651: 71(ivec2) GroupNonUniformSMin 34 ExclusiveScan 1650 + 1652: 72(ptr) AccessChain 27(data) 1647 38 + 1653: 20(ivec4) Load 1652 + 1654: 20(ivec4) VectorShuffle 1653 1651 4 5 2 3 + Store 1652 1654 + 1655: 6(int) Load 8(invocation) + 1656: 72(ptr) AccessChain 27(data) 49 38 + 1657: 20(ivec4) Load 1656 + 1658: 81(ivec3) VectorShuffle 1657 1657 0 1 2 + 1659: 81(ivec3) GroupNonUniformSMin 34 ExclusiveScan 1658 + 1660: 72(ptr) AccessChain 27(data) 1655 38 + 1661: 20(ivec4) Load 1660 + 1662: 20(ivec4) VectorShuffle 1661 1659 4 5 6 3 + Store 1660 1662 + 1663: 6(int) Load 8(invocation) + 1664: 72(ptr) AccessChain 27(data) 59 38 + 1665: 20(ivec4) Load 1664 + 1666: 20(ivec4) GroupNonUniformSMin 34 ExclusiveScan 1665 + 1667: 72(ptr) AccessChain 27(data) 1663 38 + Store 1667 1666 + 1668: 6(int) Load 8(invocation) + 1669: 95(ptr) AccessChain 27(data) 29 49 30 + 1670: 6(int) Load 1669 + 1671: 6(int) GroupNonUniformUMin 34 ExclusiveScan 1670 + 1672: 95(ptr) AccessChain 27(data) 1668 49 30 + Store 1672 1671 + 1673: 6(int) Load 8(invocation) + 1674: 102(ptr) AccessChain 27(data) 38 49 + 1675: 21(ivec4) Load 1674 + 1676: 101(ivec2) VectorShuffle 1675 1675 0 1 + 1677: 101(ivec2) GroupNonUniformUMin 34 ExclusiveScan 1676 + 1678: 102(ptr) AccessChain 27(data) 1673 49 + 1679: 21(ivec4) Load 1678 + 1680: 21(ivec4) VectorShuffle 1679 1677 4 5 2 3 + Store 1678 1680 + 1681: 6(int) Load 8(invocation) + 1682: 102(ptr) AccessChain 27(data) 49 49 + 1683: 21(ivec4) Load 1682 + 1684: 111(ivec3) VectorShuffle 1683 1683 0 1 2 + 1685: 111(ivec3) GroupNonUniformUMin 34 ExclusiveScan 1684 + 1686: 102(ptr) AccessChain 27(data) 1681 49 + 1687: 21(ivec4) Load 1686 + 1688: 21(ivec4) VectorShuffle 1687 1685 4 5 6 3 + Store 1686 1688 + 1689: 6(int) Load 8(invocation) + 1690: 102(ptr) AccessChain 27(data) 59 49 + 1691: 21(ivec4) Load 1690 + 1692: 21(ivec4) GroupNonUniformUMin 34 ExclusiveScan 1691 + 1693: 102(ptr) AccessChain 27(data) 1689 49 + Store 1693 1692 + 1694: 6(int) Load 8(invocation) + 1695: 125(ptr) AccessChain 27(data) 29 59 30 + 1696:22(float64_t) Load 1695 + 1697:22(float64_t) GroupNonUniformFMin 34 ExclusiveScan 1696 + 1698: 125(ptr) AccessChain 27(data) 1694 59 30 + Store 1698 1697 + 1699: 6(int) Load 8(invocation) + 1700: 132(ptr) AccessChain 27(data) 38 59 + 1701: 23(f64vec4) Load 1700 + 1702:131(f64vec2) VectorShuffle 1701 1701 0 1 + 1703:131(f64vec2) GroupNonUniformFMin 34 ExclusiveScan 1702 + 1704: 132(ptr) AccessChain 27(data) 1699 59 + 1705: 23(f64vec4) Load 1704 + 1706: 23(f64vec4) VectorShuffle 1705 1703 4 5 2 3 + Store 1704 1706 + 1707: 6(int) Load 8(invocation) + 1708: 132(ptr) AccessChain 27(data) 49 59 + 1709: 23(f64vec4) Load 1708 + 1710:141(f64vec3) VectorShuffle 1709 1709 0 1 2 + 1711:141(f64vec3) GroupNonUniformFMin 34 ExclusiveScan 1710 + 1712: 132(ptr) AccessChain 27(data) 1707 59 + 1713: 23(f64vec4) Load 1712 + 1714: 23(f64vec4) VectorShuffle 1713 1711 4 5 6 3 + Store 1712 1714 + 1715: 6(int) Load 8(invocation) + 1716: 132(ptr) AccessChain 27(data) 59 59 + 1717: 23(f64vec4) Load 1716 + 1718: 23(f64vec4) GroupNonUniformFMin 34 ExclusiveScan 1717 + 1719: 132(ptr) AccessChain 27(data) 1715 59 + Store 1719 1718 + 1720: 6(int) Load 8(invocation) + 1721: 31(ptr) AccessChain 27(data) 29 29 30 + 1722: 17(float) Load 1721 + 1723: 17(float) GroupNonUniformFMax 34 ExclusiveScan 1722 + 1724: 31(ptr) AccessChain 27(data) 1720 29 30 + Store 1724 1723 + 1725: 6(int) Load 8(invocation) + 1726: 40(ptr) AccessChain 27(data) 38 29 + 1727: 18(fvec4) Load 1726 + 1728: 39(fvec2) VectorShuffle 1727 1727 0 1 + 1729: 39(fvec2) GroupNonUniformFMax 34 ExclusiveScan 1728 + 1730: 40(ptr) AccessChain 27(data) 1725 29 + 1731: 18(fvec4) Load 1730 + 1732: 18(fvec4) VectorShuffle 1731 1729 4 5 2 3 + Store 1730 1732 + 1733: 6(int) Load 8(invocation) + 1734: 40(ptr) AccessChain 27(data) 49 29 + 1735: 18(fvec4) Load 1734 + 1736: 50(fvec3) VectorShuffle 1735 1735 0 1 2 + 1737: 50(fvec3) GroupNonUniformFMax 34 ExclusiveScan 1736 + 1738: 40(ptr) AccessChain 27(data) 1733 29 + 1739: 18(fvec4) Load 1738 + 1740: 18(fvec4) VectorShuffle 1739 1737 4 5 6 3 + Store 1738 1740 + 1741: 6(int) Load 8(invocation) + 1742: 40(ptr) AccessChain 27(data) 59 29 + 1743: 18(fvec4) Load 1742 + 1744: 18(fvec4) GroupNonUniformFMax 34 ExclusiveScan 1743 + 1745: 40(ptr) AccessChain 27(data) 1741 29 + Store 1745 1744 + 1746: 6(int) Load 8(invocation) + 1747: 65(ptr) AccessChain 27(data) 29 38 30 + 1748: 19(int) Load 1747 + 1749: 19(int) GroupNonUniformSMax 34 ExclusiveScan 1748 + 1750: 65(ptr) AccessChain 27(data) 1746 38 30 + Store 1750 1749 + 1751: 6(int) Load 8(invocation) + 1752: 72(ptr) AccessChain 27(data) 38 38 + 1753: 20(ivec4) Load 1752 + 1754: 71(ivec2) VectorShuffle 1753 1753 0 1 + 1755: 71(ivec2) GroupNonUniformSMax 34 ExclusiveScan 1754 + 1756: 72(ptr) AccessChain 27(data) 1751 38 + 1757: 20(ivec4) Load 1756 + 1758: 20(ivec4) VectorShuffle 1757 1755 4 5 2 3 + Store 1756 1758 + 1759: 6(int) Load 8(invocation) + 1760: 72(ptr) AccessChain 27(data) 49 38 + 1761: 20(ivec4) Load 1760 + 1762: 81(ivec3) VectorShuffle 1761 1761 0 1 2 + 1763: 81(ivec3) GroupNonUniformSMax 34 ExclusiveScan 1762 + 1764: 72(ptr) AccessChain 27(data) 1759 38 + 1765: 20(ivec4) Load 1764 + 1766: 20(ivec4) VectorShuffle 1765 1763 4 5 6 3 + Store 1764 1766 + 1767: 6(int) Load 8(invocation) + 1768: 72(ptr) AccessChain 27(data) 59 38 + 1769: 20(ivec4) Load 1768 + 1770: 20(ivec4) GroupNonUniformSMax 34 ExclusiveScan 1769 + 1771: 72(ptr) AccessChain 27(data) 1767 38 + Store 1771 1770 + 1772: 6(int) Load 8(invocation) + 1773: 95(ptr) AccessChain 27(data) 29 49 30 + 1774: 6(int) Load 1773 + 1775: 6(int) GroupNonUniformUMax 34 ExclusiveScan 1774 + 1776: 95(ptr) AccessChain 27(data) 1772 49 30 + Store 1776 1775 + 1777: 6(int) Load 8(invocation) + 1778: 102(ptr) AccessChain 27(data) 38 49 + 1779: 21(ivec4) Load 1778 + 1780: 101(ivec2) VectorShuffle 1779 1779 0 1 + 1781: 101(ivec2) GroupNonUniformUMax 34 ExclusiveScan 1780 + 1782: 102(ptr) AccessChain 27(data) 1777 49 + 1783: 21(ivec4) Load 1782 + 1784: 21(ivec4) VectorShuffle 1783 1781 4 5 2 3 + Store 1782 1784 + 1785: 6(int) Load 8(invocation) + 1786: 102(ptr) AccessChain 27(data) 49 49 + 1787: 21(ivec4) Load 1786 + 1788: 111(ivec3) VectorShuffle 1787 1787 0 1 2 + 1789: 111(ivec3) GroupNonUniformUMax 34 ExclusiveScan 1788 + 1790: 102(ptr) AccessChain 27(data) 1785 49 + 1791: 21(ivec4) Load 1790 + 1792: 21(ivec4) VectorShuffle 1791 1789 4 5 6 3 + Store 1790 1792 + 1793: 6(int) Load 8(invocation) + 1794: 102(ptr) AccessChain 27(data) 59 49 + 1795: 21(ivec4) Load 1794 + 1796: 21(ivec4) GroupNonUniformUMax 34 ExclusiveScan 1795 + 1797: 102(ptr) AccessChain 27(data) 1793 49 + Store 1797 1796 + 1798: 6(int) Load 8(invocation) + 1799: 125(ptr) AccessChain 27(data) 29 59 30 + 1800:22(float64_t) Load 1799 + 1801:22(float64_t) GroupNonUniformFMax 34 ExclusiveScan 1800 + 1802: 125(ptr) AccessChain 27(data) 1798 59 30 + Store 1802 1801 + 1803: 6(int) Load 8(invocation) + 1804: 132(ptr) AccessChain 27(data) 38 59 + 1805: 23(f64vec4) Load 1804 + 1806:131(f64vec2) VectorShuffle 1805 1805 0 1 + 1807:131(f64vec2) GroupNonUniformFMax 34 ExclusiveScan 1806 + 1808: 132(ptr) AccessChain 27(data) 1803 59 + 1809: 23(f64vec4) Load 1808 + 1810: 23(f64vec4) VectorShuffle 1809 1807 4 5 2 3 + Store 1808 1810 + 1811: 6(int) Load 8(invocation) + 1812: 132(ptr) AccessChain 27(data) 49 59 + 1813: 23(f64vec4) Load 1812 + 1814:141(f64vec3) VectorShuffle 1813 1813 0 1 2 + 1815:141(f64vec3) GroupNonUniformFMax 34 ExclusiveScan 1814 + 1816: 132(ptr) AccessChain 27(data) 1811 59 + 1817: 23(f64vec4) Load 1816 + 1818: 23(f64vec4) VectorShuffle 1817 1815 4 5 6 3 + Store 1816 1818 + 1819: 6(int) Load 8(invocation) + 1820: 132(ptr) AccessChain 27(data) 59 59 + 1821: 23(f64vec4) Load 1820 + 1822: 23(f64vec4) GroupNonUniformFMax 34 ExclusiveScan 1821 + 1823: 132(ptr) AccessChain 27(data) 1819 59 + Store 1823 1822 + 1824: 6(int) Load 8(invocation) + 1825: 65(ptr) AccessChain 27(data) 29 38 30 + 1826: 19(int) Load 1825 + 1827: 19(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1826 + 1828: 65(ptr) AccessChain 27(data) 1824 38 30 + Store 1828 1827 + 1829: 6(int) Load 8(invocation) + 1830: 72(ptr) AccessChain 27(data) 38 38 + 1831: 20(ivec4) Load 1830 + 1832: 71(ivec2) VectorShuffle 1831 1831 0 1 + 1833: 71(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1832 + 1834: 72(ptr) AccessChain 27(data) 1829 38 + 1835: 20(ivec4) Load 1834 + 1836: 20(ivec4) VectorShuffle 1835 1833 4 5 2 3 + Store 1834 1836 + 1837: 6(int) Load 8(invocation) + 1838: 72(ptr) AccessChain 27(data) 49 38 + 1839: 20(ivec4) Load 1838 + 1840: 81(ivec3) VectorShuffle 1839 1839 0 1 2 + 1841: 81(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1840 + 1842: 72(ptr) AccessChain 27(data) 1837 38 + 1843: 20(ivec4) Load 1842 + 1844: 20(ivec4) VectorShuffle 1843 1841 4 5 6 3 + Store 1842 1844 + 1845: 6(int) Load 8(invocation) + 1846: 72(ptr) AccessChain 27(data) 59 38 + 1847: 20(ivec4) Load 1846 + 1848: 20(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1847 + 1849: 72(ptr) AccessChain 27(data) 1845 38 + Store 1849 1848 + 1850: 6(int) Load 8(invocation) + 1851: 95(ptr) AccessChain 27(data) 29 49 30 + 1852: 6(int) Load 1851 + 1853: 6(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1852 + 1854: 95(ptr) AccessChain 27(data) 1850 49 30 + Store 1854 1853 + 1855: 6(int) Load 8(invocation) + 1856: 102(ptr) AccessChain 27(data) 38 49 + 1857: 21(ivec4) Load 1856 + 1858: 101(ivec2) VectorShuffle 1857 1857 0 1 + 1859: 101(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1858 + 1860: 102(ptr) AccessChain 27(data) 1855 49 + 1861: 21(ivec4) Load 1860 + 1862: 21(ivec4) VectorShuffle 1861 1859 4 5 2 3 + Store 1860 1862 + 1863: 6(int) Load 8(invocation) + 1864: 102(ptr) AccessChain 27(data) 49 49 + 1865: 21(ivec4) Load 1864 + 1866: 111(ivec3) VectorShuffle 1865 1865 0 1 2 + 1867: 111(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1866 + 1868: 102(ptr) AccessChain 27(data) 1863 49 + 1869: 21(ivec4) Load 1868 + 1870: 21(ivec4) VectorShuffle 1869 1867 4 5 6 3 + Store 1868 1870 + 1871: 6(int) Load 8(invocation) + 1872: 102(ptr) AccessChain 27(data) 59 49 + 1873: 21(ivec4) Load 1872 + 1874: 21(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1873 + 1875: 102(ptr) AccessChain 27(data) 1871 49 + Store 1875 1874 + 1876: 6(int) Load 8(invocation) + 1877: 65(ptr) AccessChain 27(data) 29 38 30 + 1878: 19(int) Load 1877 + 1879: 521(bool) SLessThan 1878 29 + 1880: 521(bool) GroupNonUniformLogicalAnd 34 ExclusiveScan 1879 + 1881: 19(int) Select 1880 38 29 + 1882: 65(ptr) AccessChain 27(data) 1876 38 30 + Store 1882 1881 + 1883: 6(int) Load 8(invocation) + 1884: 72(ptr) AccessChain 27(data) 38 38 + 1885: 20(ivec4) Load 1884 + 1886: 71(ivec2) VectorShuffle 1885 1885 0 1 + 1887: 531(bvec2) SLessThan 1886 530 + 1888: 531(bvec2) GroupNonUniformLogicalAnd 34 ExclusiveScan 1887 + 1889: 71(ivec2) Select 1888 534 530 + 1890: 72(ptr) AccessChain 27(data) 1883 38 + 1891: 20(ivec4) Load 1890 + 1892: 20(ivec4) VectorShuffle 1891 1889 4 5 2 3 + Store 1890 1892 + 1893: 6(int) Load 8(invocation) + 1894: 72(ptr) AccessChain 27(data) 38 38 + 1895: 20(ivec4) Load 1894 + 1896: 81(ivec3) VectorShuffle 1895 1895 0 1 2 + 1897: 544(bvec3) SLessThan 1896 543 + 1898: 544(bvec3) GroupNonUniformLogicalAnd 34 ExclusiveScan 1897 + 1899: 81(ivec3) Select 1898 547 543 + 1900: 72(ptr) AccessChain 27(data) 1893 38 + 1901: 20(ivec4) Load 1900 + 1902: 20(ivec4) VectorShuffle 1901 1899 4 5 6 3 + Store 1900 1902 + 1903: 6(int) Load 8(invocation) + 1904: 72(ptr) AccessChain 27(data) 38 38 + 1905: 20(ivec4) Load 1904 + 1906: 556(bvec4) SLessThan 1905 555 + 1907: 556(bvec4) GroupNonUniformLogicalAnd 34 ExclusiveScan 1906 + 1908: 20(ivec4) Select 1907 559 555 + 1909: 72(ptr) AccessChain 27(data) 1903 38 + Store 1909 1908 + 1910: 6(int) Load 8(invocation) + 1911: 65(ptr) AccessChain 27(data) 29 38 30 + 1912: 19(int) Load 1911 + 1913: 19(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 1912 + 1914: 65(ptr) AccessChain 27(data) 1910 38 30 + Store 1914 1913 + 1915: 6(int) Load 8(invocation) + 1916: 72(ptr) AccessChain 27(data) 38 38 + 1917: 20(ivec4) Load 1916 + 1918: 71(ivec2) VectorShuffle 1917 1917 0 1 + 1919: 71(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 1918 + 1920: 72(ptr) AccessChain 27(data) 1915 38 + 1921: 20(ivec4) Load 1920 + 1922: 20(ivec4) VectorShuffle 1921 1919 4 5 2 3 + Store 1920 1922 + 1923: 6(int) Load 8(invocation) + 1924: 72(ptr) AccessChain 27(data) 49 38 + 1925: 20(ivec4) Load 1924 + 1926: 81(ivec3) VectorShuffle 1925 1925 0 1 2 + 1927: 81(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 1926 + 1928: 72(ptr) AccessChain 27(data) 1923 38 + 1929: 20(ivec4) Load 1928 + 1930: 20(ivec4) VectorShuffle 1929 1927 4 5 6 3 + Store 1928 1930 + 1931: 6(int) Load 8(invocation) + 1932: 72(ptr) AccessChain 27(data) 59 38 + 1933: 20(ivec4) Load 1932 + 1934: 20(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 1933 + 1935: 72(ptr) AccessChain 27(data) 1931 38 + Store 1935 1934 + 1936: 6(int) Load 8(invocation) + 1937: 95(ptr) AccessChain 27(data) 29 49 30 + 1938: 6(int) Load 1937 + 1939: 6(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 1938 + 1940: 95(ptr) AccessChain 27(data) 1936 49 30 + Store 1940 1939 + 1941: 6(int) Load 8(invocation) + 1942: 102(ptr) AccessChain 27(data) 38 49 + 1943: 21(ivec4) Load 1942 + 1944: 101(ivec2) VectorShuffle 1943 1943 0 1 + 1945: 101(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 1944 + 1946: 102(ptr) AccessChain 27(data) 1941 49 + 1947: 21(ivec4) Load 1946 + 1948: 21(ivec4) VectorShuffle 1947 1945 4 5 2 3 + Store 1946 1948 + 1949: 6(int) Load 8(invocation) + 1950: 102(ptr) AccessChain 27(data) 49 49 + 1951: 21(ivec4) Load 1950 + 1952: 111(ivec3) VectorShuffle 1951 1951 0 1 2 + 1953: 111(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 1952 + 1954: 102(ptr) AccessChain 27(data) 1949 49 + 1955: 21(ivec4) Load 1954 + 1956: 21(ivec4) VectorShuffle 1955 1953 4 5 6 3 + Store 1954 1956 + 1957: 6(int) Load 8(invocation) + 1958: 102(ptr) AccessChain 27(data) 59 49 + 1959: 21(ivec4) Load 1958 + 1960: 21(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 1959 + 1961: 102(ptr) AccessChain 27(data) 1957 49 + Store 1961 1960 + 1962: 6(int) Load 8(invocation) + 1963: 65(ptr) AccessChain 27(data) 29 38 30 + 1964: 19(int) Load 1963 + 1965: 521(bool) SLessThan 1964 29 + 1966: 521(bool) GroupNonUniformLogicalOr 34 ExclusiveScan 1965 + 1967: 19(int) Select 1966 38 29 + 1968: 65(ptr) AccessChain 27(data) 1962 38 30 + Store 1968 1967 + 1969: 6(int) Load 8(invocation) + 1970: 72(ptr) AccessChain 27(data) 38 38 + 1971: 20(ivec4) Load 1970 + 1972: 71(ivec2) VectorShuffle 1971 1971 0 1 + 1973: 531(bvec2) SLessThan 1972 530 + 1974: 531(bvec2) GroupNonUniformLogicalOr 34 ExclusiveScan 1973 + 1975: 71(ivec2) Select 1974 534 530 + 1976: 72(ptr) AccessChain 27(data) 1969 38 + 1977: 20(ivec4) Load 1976 + 1978: 20(ivec4) VectorShuffle 1977 1975 4 5 2 3 + Store 1976 1978 + 1979: 6(int) Load 8(invocation) + 1980: 72(ptr) AccessChain 27(data) 38 38 + 1981: 20(ivec4) Load 1980 + 1982: 81(ivec3) VectorShuffle 1981 1981 0 1 2 + 1983: 544(bvec3) SLessThan 1982 543 + 1984: 544(bvec3) GroupNonUniformLogicalOr 34 ExclusiveScan 1983 + 1985: 81(ivec3) Select 1984 547 543 + 1986: 72(ptr) AccessChain 27(data) 1979 38 + 1987: 20(ivec4) Load 1986 + 1988: 20(ivec4) VectorShuffle 1987 1985 4 5 6 3 + Store 1986 1988 + 1989: 6(int) Load 8(invocation) + 1990: 72(ptr) AccessChain 27(data) 38 38 + 1991: 20(ivec4) Load 1990 + 1992: 556(bvec4) SLessThan 1991 555 + 1993: 556(bvec4) GroupNonUniformLogicalOr 34 ExclusiveScan 1992 + 1994: 20(ivec4) Select 1993 559 555 + 1995: 72(ptr) AccessChain 27(data) 1989 38 + Store 1995 1994 + 1996: 6(int) Load 8(invocation) + 1997: 65(ptr) AccessChain 27(data) 29 38 30 + 1998: 19(int) Load 1997 + 1999: 19(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 1998 + 2000: 65(ptr) AccessChain 27(data) 1996 38 30 + Store 2000 1999 + 2001: 6(int) Load 8(invocation) + 2002: 72(ptr) AccessChain 27(data) 38 38 + 2003: 20(ivec4) Load 2002 + 2004: 71(ivec2) VectorShuffle 2003 2003 0 1 + 2005: 71(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2004 + 2006: 72(ptr) AccessChain 27(data) 2001 38 + 2007: 20(ivec4) Load 2006 + 2008: 20(ivec4) VectorShuffle 2007 2005 4 5 2 3 + Store 2006 2008 + 2009: 6(int) Load 8(invocation) + 2010: 72(ptr) AccessChain 27(data) 49 38 + 2011: 20(ivec4) Load 2010 + 2012: 81(ivec3) VectorShuffle 2011 2011 0 1 2 + 2013: 81(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2012 + 2014: 72(ptr) AccessChain 27(data) 2009 38 + 2015: 20(ivec4) Load 2014 + 2016: 20(ivec4) VectorShuffle 2015 2013 4 5 6 3 + Store 2014 2016 + 2017: 6(int) Load 8(invocation) + 2018: 72(ptr) AccessChain 27(data) 59 38 + 2019: 20(ivec4) Load 2018 + 2020: 20(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2019 + 2021: 72(ptr) AccessChain 27(data) 2017 38 + Store 2021 2020 + 2022: 6(int) Load 8(invocation) + 2023: 95(ptr) AccessChain 27(data) 29 49 30 + 2024: 6(int) Load 2023 + 2025: 6(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2024 + 2026: 95(ptr) AccessChain 27(data) 2022 49 30 + Store 2026 2025 + 2027: 6(int) Load 8(invocation) + 2028: 102(ptr) AccessChain 27(data) 38 49 + 2029: 21(ivec4) Load 2028 + 2030: 101(ivec2) VectorShuffle 2029 2029 0 1 + 2031: 101(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2030 + 2032: 102(ptr) AccessChain 27(data) 2027 49 + 2033: 21(ivec4) Load 2032 + 2034: 21(ivec4) VectorShuffle 2033 2031 4 5 2 3 + Store 2032 2034 + 2035: 6(int) Load 8(invocation) + 2036: 102(ptr) AccessChain 27(data) 49 49 + 2037: 21(ivec4) Load 2036 + 2038: 111(ivec3) VectorShuffle 2037 2037 0 1 2 + 2039: 111(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2038 + 2040: 102(ptr) AccessChain 27(data) 2035 49 + 2041: 21(ivec4) Load 2040 + 2042: 21(ivec4) VectorShuffle 2041 2039 4 5 6 3 + Store 2040 2042 + 2043: 6(int) Load 8(invocation) + 2044: 102(ptr) AccessChain 27(data) 59 49 + 2045: 21(ivec4) Load 2044 + 2046: 21(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2045 + 2047: 102(ptr) AccessChain 27(data) 2043 49 + Store 2047 2046 + 2048: 6(int) Load 8(invocation) + 2049: 65(ptr) AccessChain 27(data) 29 38 30 + 2050: 19(int) Load 2049 + 2051: 521(bool) SLessThan 2050 29 + 2052: 521(bool) GroupNonUniformLogicalXor 34 ExclusiveScan 2051 + 2053: 19(int) Select 2052 38 29 + 2054: 65(ptr) AccessChain 27(data) 2048 38 30 + Store 2054 2053 + 2055: 6(int) Load 8(invocation) + 2056: 72(ptr) AccessChain 27(data) 38 38 + 2057: 20(ivec4) Load 2056 + 2058: 71(ivec2) VectorShuffle 2057 2057 0 1 + 2059: 531(bvec2) SLessThan 2058 530 + 2060: 531(bvec2) GroupNonUniformLogicalXor 34 ExclusiveScan 2059 + 2061: 71(ivec2) Select 2060 534 530 + 2062: 72(ptr) AccessChain 27(data) 2055 38 + 2063: 20(ivec4) Load 2062 + 2064: 20(ivec4) VectorShuffle 2063 2061 4 5 2 3 + Store 2062 2064 + 2065: 6(int) Load 8(invocation) + 2066: 72(ptr) AccessChain 27(data) 38 38 + 2067: 20(ivec4) Load 2066 + 2068: 81(ivec3) VectorShuffle 2067 2067 0 1 2 + 2069: 544(bvec3) SLessThan 2068 543 + 2070: 544(bvec3) GroupNonUniformLogicalXor 34 ExclusiveScan 2069 + 2071: 81(ivec3) Select 2070 547 543 + 2072: 72(ptr) AccessChain 27(data) 2065 38 + 2073: 20(ivec4) Load 2072 + 2074: 20(ivec4) VectorShuffle 2073 2071 4 5 6 3 + Store 2072 2074 + 2075: 6(int) Load 8(invocation) + 2076: 72(ptr) AccessChain 27(data) 38 38 + 2077: 20(ivec4) Load 2076 + 2078: 556(bvec4) SLessThan 2077 555 + 2079: 556(bvec4) GroupNonUniformLogicalXor 34 ExclusiveScan 2078 + 2080: 20(ivec4) Select 2079 559 555 + 2081: 72(ptr) AccessChain 27(data) 2075 38 + Store 2081 2080 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupBallot.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupBallot.comp.out new file mode 100644 index 0000000000..7b24337be2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupBallot.comp.out @@ -0,0 +1,525 @@ +spv.subgroupBallot.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 417 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformBallot + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32 + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_ballot" + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 19 "relMask" + Name 21 "gl_SubgroupEqMask" + Name 23 "gl_SubgroupGeMask" + Name 26 "gl_SubgroupGtMask" + Name 29 "gl_SubgroupLeMask" + Name 32 "gl_SubgroupLtMask" + Name 35 "result" + Name 46 "Buffers" + MemberName 46(Buffers) 0 "f4" + MemberName 46(Buffers) 1 "i4" + MemberName 46(Buffers) 2 "u4" + MemberName 46(Buffers) 3 "d4" + Name 49 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + Decorate 21(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR + Decorate 23(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR + Decorate 26(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR + Decorate 29(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR + Decorate 32(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR + MemberDecorate 46(Buffers) 0 Offset 0 + MemberDecorate 46(Buffers) 1 Offset 16 + MemberDecorate 46(Buffers) 2 Offset 32 + MemberDecorate 46(Buffers) 3 Offset 64 + Decorate 46(Buffers) BufferBlock + Decorate 49(data) DescriptorSet 0 + Decorate 49(data) Binding 0 + Decorate 416 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeVector 6(int) 4 + 18: TypePointer Function 17(ivec4) + 20: TypePointer Input 17(ivec4) +21(gl_SubgroupEqMask): 20(ptr) Variable Input +23(gl_SubgroupGeMask): 20(ptr) Variable Input +26(gl_SubgroupGtMask): 20(ptr) Variable Input +29(gl_SubgroupLeMask): 20(ptr) Variable Input +32(gl_SubgroupLtMask): 20(ptr) Variable Input + 36: TypeBool + 37: 36(bool) ConstantTrue + 38: 6(int) Constant 3 + 40: TypeFloat 32 + 41: TypeVector 40(float) 4 + 42: TypeInt 32 1 + 43: TypeVector 42(int) 4 + 44: TypeFloat 64 + 45: TypeVector 44(float64_t) 4 + 46(Buffers): TypeStruct 41(fvec4) 43(ivec4) 17(ivec4) 45(f64vec4) + 47: TypeArray 46(Buffers) 15 + 48: TypePointer Uniform 47 + 49(data): 48(ptr) Variable Uniform + 51: 42(int) Constant 2 + 54: 6(int) Constant 0 + 55: TypePointer Uniform 6(int) + 60: 42(int) Constant 1 + 61: 42(int) Constant 0 + 64: 6(int) Constant 1 + 72: 6(int) Constant 2 + 83: TypeVector 36(bool) 4 + 88: TypePointer Uniform 17(ivec4) + 96: TypePointer Uniform 40(float) + 103: TypeVector 40(float) 2 + 104: TypePointer Uniform 41(fvec4) + 114: TypeVector 40(float) 3 + 124: 42(int) Constant 3 + 131: TypePointer Uniform 42(int) + 138: TypeVector 42(int) 2 + 139: TypePointer Uniform 43(ivec4) + 149: TypeVector 42(int) 3 + 171: TypeVector 6(int) 2 + 181: TypeVector 6(int) 3 + 197: TypePointer Uniform 44(float64_t) + 204: TypeVector 44(float64_t) 2 + 205: TypePointer Uniform 45(f64vec4) + 215: TypeVector 44(float64_t) 3 + 242: 138(ivec2) ConstantComposite 61 61 + 243: TypeVector 36(bool) 2 + 247: 138(ivec2) ConstantComposite 60 60 + 256: 149(ivec3) ConstantComposite 61 61 61 + 257: TypeVector 36(bool) 3 + 261: 149(ivec3) ConstantComposite 60 60 60 + 269: 43(ivec4) ConstantComposite 61 61 61 61 + 273: 43(ivec4) ConstantComposite 60 60 60 60 + 415: 6(int) Constant 8 + 416: 181(ivec3) ConstantComposite 415 415 64 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 19(relMask): 18(ptr) Variable Function + 35(result): 18(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 22: 17(ivec4) Load 21(gl_SubgroupEqMask) + 24: 17(ivec4) Load 23(gl_SubgroupGeMask) + 25: 17(ivec4) IAdd 22 24 + 27: 17(ivec4) Load 26(gl_SubgroupGtMask) + 28: 17(ivec4) IAdd 25 27 + 30: 17(ivec4) Load 29(gl_SubgroupLeMask) + 31: 17(ivec4) IAdd 28 30 + 33: 17(ivec4) Load 32(gl_SubgroupLtMask) + 34: 17(ivec4) IAdd 31 33 + Store 19(relMask) 34 + 39: 17(ivec4) GroupNonUniformBallot 38 37 + Store 35(result) 39 + 50: 6(int) Load 8(invocation) + 52: 17(ivec4) Load 35(result) + 53: 6(int) GroupNonUniformBallotBitCount 38 Reduce 52 + 56: 55(ptr) AccessChain 49(data) 50 51 54 + Store 56 53 + 57: 6(int) Load 8(invocation) + 58: 17(ivec4) Load 35(result) + 59: 36(bool) GroupNonUniformBallotBitExtract 38 58 54 + 62: 42(int) Select 59 60 61 + 63: 6(int) Bitcast 62 + 65: 55(ptr) AccessChain 49(data) 57 51 64 + Store 65 63 + 66: 6(int) Load 8(invocation) + 67: 17(ivec4) Load 35(result) + 68: 6(int) GroupNonUniformBallotBitCount 38 InclusiveScan 67 + 69: 17(ivec4) Load 35(result) + 70: 6(int) GroupNonUniformBallotBitCount 38 ExclusiveScan 69 + 71: 6(int) IAdd 68 70 + 73: 55(ptr) AccessChain 49(data) 66 51 72 + Store 73 71 + 74: 6(int) Load 8(invocation) + 75: 17(ivec4) Load 35(result) + 76: 6(int) GroupNonUniformBallotFindLSB 38 75 + 77: 17(ivec4) Load 35(result) + 78: 6(int) GroupNonUniformBallotFindMSB 38 77 + 79: 6(int) IAdd 76 78 + 80: 55(ptr) AccessChain 49(data) 74 51 38 + Store 80 79 + 81: 17(ivec4) Load 19(relMask) + 82: 17(ivec4) Load 35(result) + 84: 83(bvec4) IEqual 81 82 + 85: 36(bool) All 84 + SelectionMerge 87 None + BranchConditional 85 86 87 + 86: Label + 89: 88(ptr) AccessChain 49(data) 61 51 + 90: 17(ivec4) Load 89 + 91: 36(bool) GroupNonUniformInverseBallot 38 90 + Branch 87 + 87: Label + 92: 36(bool) Phi 85 5 91 86 + SelectionMerge 94 None + BranchConditional 92 93 276 + 93: Label + 95: 6(int) Load 8(invocation) + 97: 96(ptr) AccessChain 49(data) 61 61 54 + 98: 40(float) Load 97 + 99: 6(int) Load 8(invocation) + 100: 40(float) GroupNonUniformBroadcast 38 98 99 + 101: 96(ptr) AccessChain 49(data) 95 61 54 + Store 101 100 + 102: 6(int) Load 8(invocation) + 105: 104(ptr) AccessChain 49(data) 60 61 + 106: 41(fvec4) Load 105 + 107: 103(fvec2) VectorShuffle 106 106 0 1 + 108: 6(int) Load 8(invocation) + 109: 103(fvec2) GroupNonUniformBroadcast 38 107 108 + 110: 104(ptr) AccessChain 49(data) 102 61 + 111: 41(fvec4) Load 110 + 112: 41(fvec4) VectorShuffle 111 109 4 5 2 3 + Store 110 112 + 113: 6(int) Load 8(invocation) + 115: 104(ptr) AccessChain 49(data) 51 61 + 116: 41(fvec4) Load 115 + 117: 114(fvec3) VectorShuffle 116 116 0 1 2 + 118: 6(int) Load 8(invocation) + 119: 114(fvec3) GroupNonUniformBroadcast 38 117 118 + 120: 104(ptr) AccessChain 49(data) 113 61 + 121: 41(fvec4) Load 120 + 122: 41(fvec4) VectorShuffle 121 119 4 5 6 3 + Store 120 122 + 123: 6(int) Load 8(invocation) + 125: 104(ptr) AccessChain 49(data) 124 61 + 126: 41(fvec4) Load 125 + 127: 6(int) Load 8(invocation) + 128: 41(fvec4) GroupNonUniformBroadcast 38 126 127 + 129: 104(ptr) AccessChain 49(data) 123 61 + Store 129 128 + 130: 6(int) Load 8(invocation) + 132: 131(ptr) AccessChain 49(data) 61 60 54 + 133: 42(int) Load 132 + 134: 6(int) Load 8(invocation) + 135: 42(int) GroupNonUniformBroadcast 38 133 134 + 136: 131(ptr) AccessChain 49(data) 130 60 54 + Store 136 135 + 137: 6(int) Load 8(invocation) + 140: 139(ptr) AccessChain 49(data) 60 60 + 141: 43(ivec4) Load 140 + 142: 138(ivec2) VectorShuffle 141 141 0 1 + 143: 6(int) Load 8(invocation) + 144: 138(ivec2) GroupNonUniformBroadcast 38 142 143 + 145: 139(ptr) AccessChain 49(data) 137 60 + 146: 43(ivec4) Load 145 + 147: 43(ivec4) VectorShuffle 146 144 4 5 2 3 + Store 145 147 + 148: 6(int) Load 8(invocation) + 150: 139(ptr) AccessChain 49(data) 51 60 + 151: 43(ivec4) Load 150 + 152: 149(ivec3) VectorShuffle 151 151 0 1 2 + 153: 6(int) Load 8(invocation) + 154: 149(ivec3) GroupNonUniformBroadcast 38 152 153 + 155: 139(ptr) AccessChain 49(data) 148 60 + 156: 43(ivec4) Load 155 + 157: 43(ivec4) VectorShuffle 156 154 4 5 6 3 + Store 155 157 + 158: 6(int) Load 8(invocation) + 159: 139(ptr) AccessChain 49(data) 124 60 + 160: 43(ivec4) Load 159 + 161: 6(int) Load 8(invocation) + 162: 43(ivec4) GroupNonUniformBroadcast 38 160 161 + 163: 139(ptr) AccessChain 49(data) 158 60 + Store 163 162 + 164: 6(int) Load 8(invocation) + 165: 55(ptr) AccessChain 49(data) 61 51 54 + 166: 6(int) Load 165 + 167: 6(int) Load 8(invocation) + 168: 6(int) GroupNonUniformBroadcast 38 166 167 + 169: 55(ptr) AccessChain 49(data) 164 51 54 + Store 169 168 + 170: 6(int) Load 8(invocation) + 172: 88(ptr) AccessChain 49(data) 60 51 + 173: 17(ivec4) Load 172 + 174: 171(ivec2) VectorShuffle 173 173 0 1 + 175: 6(int) Load 8(invocation) + 176: 171(ivec2) GroupNonUniformBroadcast 38 174 175 + 177: 88(ptr) AccessChain 49(data) 170 51 + 178: 17(ivec4) Load 177 + 179: 17(ivec4) VectorShuffle 178 176 4 5 2 3 + Store 177 179 + 180: 6(int) Load 8(invocation) + 182: 88(ptr) AccessChain 49(data) 51 51 + 183: 17(ivec4) Load 182 + 184: 181(ivec3) VectorShuffle 183 183 0 1 2 + 185: 6(int) Load 8(invocation) + 186: 181(ivec3) GroupNonUniformBroadcast 38 184 185 + 187: 88(ptr) AccessChain 49(data) 180 51 + 188: 17(ivec4) Load 187 + 189: 17(ivec4) VectorShuffle 188 186 4 5 6 3 + Store 187 189 + 190: 6(int) Load 8(invocation) + 191: 88(ptr) AccessChain 49(data) 124 51 + 192: 17(ivec4) Load 191 + 193: 6(int) Load 8(invocation) + 194: 17(ivec4) GroupNonUniformBroadcast 38 192 193 + 195: 88(ptr) AccessChain 49(data) 190 51 + Store 195 194 + 196: 6(int) Load 8(invocation) + 198: 197(ptr) AccessChain 49(data) 61 124 54 + 199:44(float64_t) Load 198 + 200: 6(int) Load 8(invocation) + 201:44(float64_t) GroupNonUniformBroadcast 38 199 200 + 202: 197(ptr) AccessChain 49(data) 196 124 54 + Store 202 201 + 203: 6(int) Load 8(invocation) + 206: 205(ptr) AccessChain 49(data) 60 124 + 207: 45(f64vec4) Load 206 + 208:204(f64vec2) VectorShuffle 207 207 0 1 + 209: 6(int) Load 8(invocation) + 210:204(f64vec2) GroupNonUniformBroadcast 38 208 209 + 211: 205(ptr) AccessChain 49(data) 203 124 + 212: 45(f64vec4) Load 211 + 213: 45(f64vec4) VectorShuffle 212 210 4 5 2 3 + Store 211 213 + 214: 6(int) Load 8(invocation) + 216: 205(ptr) AccessChain 49(data) 51 124 + 217: 45(f64vec4) Load 216 + 218:215(f64vec3) VectorShuffle 217 217 0 1 2 + 219: 6(int) Load 8(invocation) + 220:215(f64vec3) GroupNonUniformBroadcast 38 218 219 + 221: 205(ptr) AccessChain 49(data) 214 124 + 222: 45(f64vec4) Load 221 + 223: 45(f64vec4) VectorShuffle 222 220 4 5 6 3 + Store 221 223 + 224: 6(int) Load 8(invocation) + 225: 205(ptr) AccessChain 49(data) 124 124 + 226: 45(f64vec4) Load 225 + 227: 6(int) Load 8(invocation) + 228: 45(f64vec4) GroupNonUniformBroadcast 38 226 227 + 229: 205(ptr) AccessChain 49(data) 224 124 + Store 229 228 + 230: 6(int) Load 8(invocation) + 231: 131(ptr) AccessChain 49(data) 61 60 54 + 232: 42(int) Load 231 + 233: 36(bool) SLessThan 232 61 + 234: 6(int) Load 8(invocation) + 235: 36(bool) GroupNonUniformBroadcast 38 233 234 + 236: 42(int) Select 235 60 61 + 237: 131(ptr) AccessChain 49(data) 230 60 54 + Store 237 236 + 238: 6(int) Load 8(invocation) + 239: 139(ptr) AccessChain 49(data) 60 60 + 240: 43(ivec4) Load 239 + 241: 138(ivec2) VectorShuffle 240 240 0 1 + 244: 243(bvec2) SLessThan 241 242 + 245: 6(int) Load 8(invocation) + 246: 243(bvec2) GroupNonUniformBroadcast 38 244 245 + 248: 138(ivec2) Select 246 247 242 + 249: 139(ptr) AccessChain 49(data) 238 60 + 250: 43(ivec4) Load 249 + 251: 43(ivec4) VectorShuffle 250 248 4 5 2 3 + Store 249 251 + 252: 6(int) Load 8(invocation) + 253: 139(ptr) AccessChain 49(data) 60 60 + 254: 43(ivec4) Load 253 + 255: 149(ivec3) VectorShuffle 254 254 0 1 2 + 258: 257(bvec3) SLessThan 255 256 + 259: 6(int) Load 8(invocation) + 260: 257(bvec3) GroupNonUniformBroadcast 38 258 259 + 262: 149(ivec3) Select 260 261 256 + 263: 139(ptr) AccessChain 49(data) 252 60 + 264: 43(ivec4) Load 263 + 265: 43(ivec4) VectorShuffle 264 262 4 5 6 3 + Store 263 265 + 266: 6(int) Load 8(invocation) + 267: 139(ptr) AccessChain 49(data) 60 60 + 268: 43(ivec4) Load 267 + 270: 83(bvec4) SLessThan 268 269 + 271: 6(int) Load 8(invocation) + 272: 83(bvec4) GroupNonUniformBroadcast 38 270 271 + 274: 43(ivec4) Select 272 273 269 + 275: 139(ptr) AccessChain 49(data) 266 60 + Store 275 274 + Branch 94 + 276: Label + 277: 6(int) Load 8(invocation) + 278: 96(ptr) AccessChain 49(data) 61 61 54 + 279: 40(float) Load 278 + 280: 40(float) GroupNonUniformBroadcastFirst 38 279 + 281: 96(ptr) AccessChain 49(data) 277 61 54 + Store 281 280 + 282: 6(int) Load 8(invocation) + 283: 104(ptr) AccessChain 49(data) 60 61 + 284: 41(fvec4) Load 283 + 285: 103(fvec2) VectorShuffle 284 284 0 1 + 286: 103(fvec2) GroupNonUniformBroadcastFirst 38 285 + 287: 104(ptr) AccessChain 49(data) 282 61 + 288: 41(fvec4) Load 287 + 289: 41(fvec4) VectorShuffle 288 286 4 5 2 3 + Store 287 289 + 290: 6(int) Load 8(invocation) + 291: 104(ptr) AccessChain 49(data) 51 61 + 292: 41(fvec4) Load 291 + 293: 114(fvec3) VectorShuffle 292 292 0 1 2 + 294: 114(fvec3) GroupNonUniformBroadcastFirst 38 293 + 295: 104(ptr) AccessChain 49(data) 290 61 + 296: 41(fvec4) Load 295 + 297: 41(fvec4) VectorShuffle 296 294 4 5 6 3 + Store 295 297 + 298: 6(int) Load 8(invocation) + 299: 104(ptr) AccessChain 49(data) 124 61 + 300: 41(fvec4) Load 299 + 301: 41(fvec4) GroupNonUniformBroadcastFirst 38 300 + 302: 104(ptr) AccessChain 49(data) 298 61 + Store 302 301 + 303: 6(int) Load 8(invocation) + 304: 131(ptr) AccessChain 49(data) 61 60 54 + 305: 42(int) Load 304 + 306: 42(int) GroupNonUniformBroadcastFirst 38 305 + 307: 131(ptr) AccessChain 49(data) 303 60 54 + Store 307 306 + 308: 6(int) Load 8(invocation) + 309: 139(ptr) AccessChain 49(data) 60 60 + 310: 43(ivec4) Load 309 + 311: 138(ivec2) VectorShuffle 310 310 0 1 + 312: 138(ivec2) GroupNonUniformBroadcastFirst 38 311 + 313: 139(ptr) AccessChain 49(data) 308 60 + 314: 43(ivec4) Load 313 + 315: 43(ivec4) VectorShuffle 314 312 4 5 2 3 + Store 313 315 + 316: 6(int) Load 8(invocation) + 317: 139(ptr) AccessChain 49(data) 51 60 + 318: 43(ivec4) Load 317 + 319: 149(ivec3) VectorShuffle 318 318 0 1 2 + 320: 149(ivec3) GroupNonUniformBroadcastFirst 38 319 + 321: 139(ptr) AccessChain 49(data) 316 60 + 322: 43(ivec4) Load 321 + 323: 43(ivec4) VectorShuffle 322 320 4 5 6 3 + Store 321 323 + 324: 6(int) Load 8(invocation) + 325: 139(ptr) AccessChain 49(data) 124 60 + 326: 43(ivec4) Load 325 + 327: 43(ivec4) GroupNonUniformBroadcastFirst 38 326 + 328: 139(ptr) AccessChain 49(data) 324 60 + Store 328 327 + 329: 6(int) Load 8(invocation) + 330: 55(ptr) AccessChain 49(data) 61 51 54 + 331: 6(int) Load 330 + 332: 6(int) GroupNonUniformBroadcastFirst 38 331 + 333: 55(ptr) AccessChain 49(data) 329 51 54 + Store 333 332 + 334: 6(int) Load 8(invocation) + 335: 88(ptr) AccessChain 49(data) 60 51 + 336: 17(ivec4) Load 335 + 337: 171(ivec2) VectorShuffle 336 336 0 1 + 338: 171(ivec2) GroupNonUniformBroadcastFirst 38 337 + 339: 88(ptr) AccessChain 49(data) 334 51 + 340: 17(ivec4) Load 339 + 341: 17(ivec4) VectorShuffle 340 338 4 5 2 3 + Store 339 341 + 342: 6(int) Load 8(invocation) + 343: 88(ptr) AccessChain 49(data) 51 51 + 344: 17(ivec4) Load 343 + 345: 181(ivec3) VectorShuffle 344 344 0 1 2 + 346: 181(ivec3) GroupNonUniformBroadcastFirst 38 345 + 347: 88(ptr) AccessChain 49(data) 342 51 + 348: 17(ivec4) Load 347 + 349: 17(ivec4) VectorShuffle 348 346 4 5 6 3 + Store 347 349 + 350: 6(int) Load 8(invocation) + 351: 88(ptr) AccessChain 49(data) 124 51 + 352: 17(ivec4) Load 351 + 353: 17(ivec4) GroupNonUniformBroadcastFirst 38 352 + 354: 88(ptr) AccessChain 49(data) 350 51 + Store 354 353 + 355: 6(int) Load 8(invocation) + 356: 197(ptr) AccessChain 49(data) 61 124 54 + 357:44(float64_t) Load 356 + 358:44(float64_t) GroupNonUniformBroadcastFirst 38 357 + 359: 197(ptr) AccessChain 49(data) 355 124 54 + Store 359 358 + 360: 6(int) Load 8(invocation) + 361: 205(ptr) AccessChain 49(data) 60 124 + 362: 45(f64vec4) Load 361 + 363:204(f64vec2) VectorShuffle 362 362 0 1 + 364:204(f64vec2) GroupNonUniformBroadcastFirst 38 363 + 365: 205(ptr) AccessChain 49(data) 360 124 + 366: 45(f64vec4) Load 365 + 367: 45(f64vec4) VectorShuffle 366 364 4 5 2 3 + Store 365 367 + 368: 6(int) Load 8(invocation) + 369: 205(ptr) AccessChain 49(data) 51 124 + 370: 45(f64vec4) Load 369 + 371:215(f64vec3) VectorShuffle 370 370 0 1 2 + 372:215(f64vec3) GroupNonUniformBroadcastFirst 38 371 + 373: 205(ptr) AccessChain 49(data) 368 124 + 374: 45(f64vec4) Load 373 + 375: 45(f64vec4) VectorShuffle 374 372 4 5 6 3 + Store 373 375 + 376: 6(int) Load 8(invocation) + 377: 205(ptr) AccessChain 49(data) 124 124 + 378: 45(f64vec4) Load 377 + 379: 45(f64vec4) GroupNonUniformBroadcastFirst 38 378 + 380: 205(ptr) AccessChain 49(data) 376 124 + Store 380 379 + 381: 6(int) Load 8(invocation) + 382: 131(ptr) AccessChain 49(data) 61 60 54 + 383: 42(int) Load 382 + 384: 36(bool) SLessThan 383 61 + 385: 36(bool) GroupNonUniformBroadcastFirst 38 384 + 386: 42(int) Select 385 60 61 + 387: 131(ptr) AccessChain 49(data) 381 60 54 + Store 387 386 + 388: 6(int) Load 8(invocation) + 389: 139(ptr) AccessChain 49(data) 60 60 + 390: 43(ivec4) Load 389 + 391: 138(ivec2) VectorShuffle 390 390 0 1 + 392: 243(bvec2) SLessThan 391 242 + 393: 243(bvec2) GroupNonUniformBroadcastFirst 38 392 + 394: 138(ivec2) Select 393 247 242 + 395: 139(ptr) AccessChain 49(data) 388 60 + 396: 43(ivec4) Load 395 + 397: 43(ivec4) VectorShuffle 396 394 4 5 2 3 + Store 395 397 + 398: 6(int) Load 8(invocation) + 399: 139(ptr) AccessChain 49(data) 60 60 + 400: 43(ivec4) Load 399 + 401: 149(ivec3) VectorShuffle 400 400 0 1 2 + 402: 257(bvec3) SLessThan 401 256 + 403: 257(bvec3) GroupNonUniformBroadcastFirst 38 402 + 404: 149(ivec3) Select 403 261 256 + 405: 139(ptr) AccessChain 49(data) 398 60 + 406: 43(ivec4) Load 405 + 407: 43(ivec4) VectorShuffle 406 404 4 5 6 3 + Store 405 407 + 408: 6(int) Load 8(invocation) + 409: 139(ptr) AccessChain 49(data) 60 60 + 410: 43(ivec4) Load 409 + 411: 83(bvec4) SLessThan 410 269 + 412: 83(bvec4) GroupNonUniformBroadcastFirst 38 411 + 413: 43(ivec4) Select 412 273 269 + 414: 139(ptr) AccessChain 49(data) 408 60 + Store 414 413 + Branch 94 + 94: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupBasic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupBasic.comp.out new file mode 100644 index 0000000000..647712fd3d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupBasic.comp.out @@ -0,0 +1,84 @@ +spv.subgroupBasic.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 40 + + Capability Shader + Capability GroupNonUniform + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 14 19 22 25 + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + Name 4 "main" + Name 8 "Buffer" + MemberName 8(Buffer) 0 "a" + Name 10 "data" + Name 14 "gl_SubgroupSize" + Name 19 "gl_SubgroupInvocationID" + Name 22 "gl_NumSubgroups" + Name 25 "gl_SubgroupID" + Decorate 7 ArrayStride 4 + MemberDecorate 8(Buffer) 0 Offset 0 + Decorate 8(Buffer) BufferBlock + Decorate 10(data) DescriptorSet 0 + Decorate 10(data) Binding 0 + Decorate 14(gl_SubgroupSize) RelaxedPrecision + Decorate 14(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 15 RelaxedPrecision + Decorate 19(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 19(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 20 RelaxedPrecision + Decorate 22(gl_NumSubgroups) BuiltIn NumSubgroups + Decorate 25(gl_SubgroupID) BuiltIn SubgroupId + Decorate 39 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeRuntimeArray 6(int) + 8(Buffer): TypeStruct 7 + 9: TypePointer Uniform 8(Buffer) + 10(data): 9(ptr) Variable Uniform + 11: 6(int) Constant 0 + 12: TypeInt 32 0 + 13: TypePointer Input 12(int) +14(gl_SubgroupSize): 13(ptr) Variable Input + 16: 6(int) Constant 1 + 17: TypePointer Uniform 6(int) +19(gl_SubgroupInvocationID): 13(ptr) Variable Input +22(gl_NumSubgroups): 13(ptr) Variable Input +25(gl_SubgroupID): 13(ptr) Variable Input + 27: TypeBool + 28: 12(int) Constant 3 + 32: 12(int) Constant 3400 + 33: 12(int) Constant 72 + 34: 12(int) Constant 264 + 35: 12(int) Constant 2056 + 36: TypeVector 12(int) 3 + 37: 12(int) Constant 8 + 38: 12(int) Constant 1 + 39: 36(ivec3) ConstantComposite 37 37 38 + 4(main): 2 Function None 3 + 5: Label + 15: 12(int) Load 14(gl_SubgroupSize) + 18: 17(ptr) AccessChain 10(data) 11 15 + Store 18 16 + 20: 12(int) Load 19(gl_SubgroupInvocationID) + 21: 17(ptr) AccessChain 10(data) 11 20 + Store 21 16 + 23: 12(int) Load 22(gl_NumSubgroups) + 24: 17(ptr) AccessChain 10(data) 11 23 + Store 24 16 + 26: 12(int) Load 25(gl_SubgroupID) + 29: 27(bool) GroupNonUniformElect 28 + 30: 6(int) Select 29 16 11 + 31: 17(ptr) AccessChain 10(data) 11 26 + Store 31 30 + ControlBarrier 28 28 32 + MemoryBarrier 28 32 + MemoryBarrier 28 33 + MemoryBarrier 28 34 + MemoryBarrier 28 35 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupClustered.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupClustered.comp.out new file mode 100644 index 0000000000..0c5c0c4d68 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupClustered.comp.out @@ -0,0 +1,880 @@ +spv.subgroupClustered.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 737 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformClustered + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 1 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + SourceExtension "GL_KHR_shader_subgroup_clustered" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 24 "Buffers" + MemberName 24(Buffers) 0 "f4" + MemberName 24(Buffers) 1 "i4" + MemberName 24(Buffers) 2 "u4" + MemberName 24(Buffers) 3 "d4" + Name 27 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 24(Buffers) 0 Offset 0 + MemberDecorate 24(Buffers) 1 Offset 16 + MemberDecorate 24(Buffers) 2 Offset 32 + MemberDecorate 24(Buffers) 3 Offset 64 + Decorate 24(Buffers) BufferBlock + Decorate 27(data) DescriptorSet 0 + Decorate 27(data) Binding 0 + Decorate 736 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 21: TypeVector 6(int) 4 + 22: TypeFloat 64 + 23: TypeVector 22(float64_t) 4 + 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) + 25: TypeArray 24(Buffers) 15 + 26: TypePointer Uniform 25 + 27(data): 26(ptr) Variable Uniform + 29: 19(int) Constant 0 + 30: 6(int) Constant 0 + 31: TypePointer Uniform 17(float) + 34: 6(int) Constant 1 + 35: 6(int) Constant 3 + 39: 19(int) Constant 1 + 40: TypeVector 17(float) 2 + 41: TypePointer Uniform 18(fvec4) + 50: 19(int) Constant 2 + 51: TypeVector 17(float) 3 + 60: 19(int) Constant 3 + 66: TypePointer Uniform 19(int) + 72: TypeVector 19(int) 2 + 73: TypePointer Uniform 20(ivec4) + 82: TypeVector 19(int) 3 + 96: TypePointer Uniform 6(int) + 102: TypeVector 6(int) 2 + 103: TypePointer Uniform 21(ivec4) + 112: TypeVector 6(int) 3 + 126: TypePointer Uniform 22(float64_t) + 132: TypeVector 22(float64_t) 2 + 133: TypePointer Uniform 23(f64vec4) + 142: TypeVector 22(float64_t) 3 + 522: TypeBool + 531: 72(ivec2) ConstantComposite 29 29 + 532: TypeVector 522(bool) 2 + 535: 72(ivec2) ConstantComposite 39 39 + 544: 82(ivec3) ConstantComposite 29 29 29 + 545: TypeVector 522(bool) 3 + 548: 82(ivec3) ConstantComposite 39 39 39 + 556: 20(ivec4) ConstantComposite 29 29 29 29 + 557: TypeVector 522(bool) 4 + 560: 20(ivec4) ConstantComposite 39 39 39 39 + 735: 6(int) Constant 8 + 736: 112(ivec3) ConstantComposite 735 34 34 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 28: 6(int) Load 8(invocation) + 32: 31(ptr) AccessChain 27(data) 29 29 30 + 33: 17(float) Load 32 + 36: 17(float) GroupNonUniformFAdd 35 ClusteredReduce 33 34 + 37: 31(ptr) AccessChain 27(data) 28 29 30 + Store 37 36 + 38: 6(int) Load 8(invocation) + 42: 41(ptr) AccessChain 27(data) 39 29 + 43: 18(fvec4) Load 42 + 44: 40(fvec2) VectorShuffle 43 43 0 1 + 45: 40(fvec2) GroupNonUniformFAdd 35 ClusteredReduce 44 34 + 46: 41(ptr) AccessChain 27(data) 38 29 + 47: 18(fvec4) Load 46 + 48: 18(fvec4) VectorShuffle 47 45 4 5 2 3 + Store 46 48 + 49: 6(int) Load 8(invocation) + 52: 41(ptr) AccessChain 27(data) 50 29 + 53: 18(fvec4) Load 52 + 54: 51(fvec3) VectorShuffle 53 53 0 1 2 + 55: 51(fvec3) GroupNonUniformFAdd 35 ClusteredReduce 54 34 + 56: 41(ptr) AccessChain 27(data) 49 29 + 57: 18(fvec4) Load 56 + 58: 18(fvec4) VectorShuffle 57 55 4 5 6 3 + Store 56 58 + 59: 6(int) Load 8(invocation) + 61: 41(ptr) AccessChain 27(data) 60 29 + 62: 18(fvec4) Load 61 + 63: 18(fvec4) GroupNonUniformFAdd 35 ClusteredReduce 62 34 + 64: 41(ptr) AccessChain 27(data) 59 29 + Store 64 63 + 65: 6(int) Load 8(invocation) + 67: 66(ptr) AccessChain 27(data) 29 39 30 + 68: 19(int) Load 67 + 69: 19(int) GroupNonUniformIAdd 35 ClusteredReduce 68 34 + 70: 66(ptr) AccessChain 27(data) 65 39 30 + Store 70 69 + 71: 6(int) Load 8(invocation) + 74: 73(ptr) AccessChain 27(data) 39 39 + 75: 20(ivec4) Load 74 + 76: 72(ivec2) VectorShuffle 75 75 0 1 + 77: 72(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 76 34 + 78: 73(ptr) AccessChain 27(data) 71 39 + 79: 20(ivec4) Load 78 + 80: 20(ivec4) VectorShuffle 79 77 4 5 2 3 + Store 78 80 + 81: 6(int) Load 8(invocation) + 83: 73(ptr) AccessChain 27(data) 50 39 + 84: 20(ivec4) Load 83 + 85: 82(ivec3) VectorShuffle 84 84 0 1 2 + 86: 82(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 85 34 + 87: 73(ptr) AccessChain 27(data) 81 39 + 88: 20(ivec4) Load 87 + 89: 20(ivec4) VectorShuffle 88 86 4 5 6 3 + Store 87 89 + 90: 6(int) Load 8(invocation) + 91: 73(ptr) AccessChain 27(data) 60 39 + 92: 20(ivec4) Load 91 + 93: 20(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 92 34 + 94: 73(ptr) AccessChain 27(data) 90 39 + Store 94 93 + 95: 6(int) Load 8(invocation) + 97: 96(ptr) AccessChain 27(data) 29 50 30 + 98: 6(int) Load 97 + 99: 6(int) GroupNonUniformIAdd 35 ClusteredReduce 98 34 + 100: 96(ptr) AccessChain 27(data) 95 50 30 + Store 100 99 + 101: 6(int) Load 8(invocation) + 104: 103(ptr) AccessChain 27(data) 39 50 + 105: 21(ivec4) Load 104 + 106: 102(ivec2) VectorShuffle 105 105 0 1 + 107: 102(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 106 34 + 108: 103(ptr) AccessChain 27(data) 101 50 + 109: 21(ivec4) Load 108 + 110: 21(ivec4) VectorShuffle 109 107 4 5 2 3 + Store 108 110 + 111: 6(int) Load 8(invocation) + 113: 103(ptr) AccessChain 27(data) 50 50 + 114: 21(ivec4) Load 113 + 115: 112(ivec3) VectorShuffle 114 114 0 1 2 + 116: 112(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 115 34 + 117: 103(ptr) AccessChain 27(data) 111 50 + 118: 21(ivec4) Load 117 + 119: 21(ivec4) VectorShuffle 118 116 4 5 6 3 + Store 117 119 + 120: 6(int) Load 8(invocation) + 121: 103(ptr) AccessChain 27(data) 60 50 + 122: 21(ivec4) Load 121 + 123: 21(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 122 34 + 124: 103(ptr) AccessChain 27(data) 120 50 + Store 124 123 + 125: 6(int) Load 8(invocation) + 127: 126(ptr) AccessChain 27(data) 29 60 30 + 128:22(float64_t) Load 127 + 129:22(float64_t) GroupNonUniformFAdd 35 ClusteredReduce 128 34 + 130: 126(ptr) AccessChain 27(data) 125 60 30 + Store 130 129 + 131: 6(int) Load 8(invocation) + 134: 133(ptr) AccessChain 27(data) 39 60 + 135: 23(f64vec4) Load 134 + 136:132(f64vec2) VectorShuffle 135 135 0 1 + 137:132(f64vec2) GroupNonUniformFAdd 35 ClusteredReduce 136 34 + 138: 133(ptr) AccessChain 27(data) 131 60 + 139: 23(f64vec4) Load 138 + 140: 23(f64vec4) VectorShuffle 139 137 4 5 2 3 + Store 138 140 + 141: 6(int) Load 8(invocation) + 143: 133(ptr) AccessChain 27(data) 50 60 + 144: 23(f64vec4) Load 143 + 145:142(f64vec3) VectorShuffle 144 144 0 1 2 + 146:142(f64vec3) GroupNonUniformFAdd 35 ClusteredReduce 145 34 + 147: 133(ptr) AccessChain 27(data) 141 60 + 148: 23(f64vec4) Load 147 + 149: 23(f64vec4) VectorShuffle 148 146 4 5 6 3 + Store 147 149 + 150: 6(int) Load 8(invocation) + 151: 133(ptr) AccessChain 27(data) 60 60 + 152: 23(f64vec4) Load 151 + 153: 23(f64vec4) GroupNonUniformFAdd 35 ClusteredReduce 152 34 + 154: 133(ptr) AccessChain 27(data) 150 60 + Store 154 153 + 155: 6(int) Load 8(invocation) + 156: 31(ptr) AccessChain 27(data) 29 29 30 + 157: 17(float) Load 156 + 158: 17(float) GroupNonUniformFMul 35 ClusteredReduce 157 34 + 159: 31(ptr) AccessChain 27(data) 155 29 30 + Store 159 158 + 160: 6(int) Load 8(invocation) + 161: 41(ptr) AccessChain 27(data) 39 29 + 162: 18(fvec4) Load 161 + 163: 40(fvec2) VectorShuffle 162 162 0 1 + 164: 40(fvec2) GroupNonUniformFMul 35 ClusteredReduce 163 34 + 165: 41(ptr) AccessChain 27(data) 160 29 + 166: 18(fvec4) Load 165 + 167: 18(fvec4) VectorShuffle 166 164 4 5 2 3 + Store 165 167 + 168: 6(int) Load 8(invocation) + 169: 41(ptr) AccessChain 27(data) 50 29 + 170: 18(fvec4) Load 169 + 171: 51(fvec3) VectorShuffle 170 170 0 1 2 + 172: 51(fvec3) GroupNonUniformFMul 35 ClusteredReduce 171 34 + 173: 41(ptr) AccessChain 27(data) 168 29 + 174: 18(fvec4) Load 173 + 175: 18(fvec4) VectorShuffle 174 172 4 5 6 3 + Store 173 175 + 176: 6(int) Load 8(invocation) + 177: 41(ptr) AccessChain 27(data) 60 29 + 178: 18(fvec4) Load 177 + 179: 18(fvec4) GroupNonUniformFMul 35 ClusteredReduce 178 34 + 180: 41(ptr) AccessChain 27(data) 176 29 + Store 180 179 + 181: 6(int) Load 8(invocation) + 182: 66(ptr) AccessChain 27(data) 29 39 30 + 183: 19(int) Load 182 + 184: 19(int) GroupNonUniformIMul 35 ClusteredReduce 183 34 + 185: 66(ptr) AccessChain 27(data) 181 39 30 + Store 185 184 + 186: 6(int) Load 8(invocation) + 187: 73(ptr) AccessChain 27(data) 39 39 + 188: 20(ivec4) Load 187 + 189: 72(ivec2) VectorShuffle 188 188 0 1 + 190: 72(ivec2) GroupNonUniformIMul 35 ClusteredReduce 189 34 + 191: 73(ptr) AccessChain 27(data) 186 39 + 192: 20(ivec4) Load 191 + 193: 20(ivec4) VectorShuffle 192 190 4 5 2 3 + Store 191 193 + 194: 6(int) Load 8(invocation) + 195: 73(ptr) AccessChain 27(data) 50 39 + 196: 20(ivec4) Load 195 + 197: 82(ivec3) VectorShuffle 196 196 0 1 2 + 198: 82(ivec3) GroupNonUniformIMul 35 ClusteredReduce 197 34 + 199: 73(ptr) AccessChain 27(data) 194 39 + 200: 20(ivec4) Load 199 + 201: 20(ivec4) VectorShuffle 200 198 4 5 6 3 + Store 199 201 + 202: 6(int) Load 8(invocation) + 203: 73(ptr) AccessChain 27(data) 60 39 + 204: 20(ivec4) Load 203 + 205: 20(ivec4) GroupNonUniformIMul 35 ClusteredReduce 204 34 + 206: 73(ptr) AccessChain 27(data) 202 39 + Store 206 205 + 207: 6(int) Load 8(invocation) + 208: 96(ptr) AccessChain 27(data) 29 50 30 + 209: 6(int) Load 208 + 210: 6(int) GroupNonUniformIMul 35 ClusteredReduce 209 34 + 211: 96(ptr) AccessChain 27(data) 207 50 30 + Store 211 210 + 212: 6(int) Load 8(invocation) + 213: 103(ptr) AccessChain 27(data) 39 50 + 214: 21(ivec4) Load 213 + 215: 102(ivec2) VectorShuffle 214 214 0 1 + 216: 102(ivec2) GroupNonUniformIMul 35 ClusteredReduce 215 34 + 217: 103(ptr) AccessChain 27(data) 212 50 + 218: 21(ivec4) Load 217 + 219: 21(ivec4) VectorShuffle 218 216 4 5 2 3 + Store 217 219 + 220: 6(int) Load 8(invocation) + 221: 103(ptr) AccessChain 27(data) 50 50 + 222: 21(ivec4) Load 221 + 223: 112(ivec3) VectorShuffle 222 222 0 1 2 + 224: 112(ivec3) GroupNonUniformIMul 35 ClusteredReduce 223 34 + 225: 103(ptr) AccessChain 27(data) 220 50 + 226: 21(ivec4) Load 225 + 227: 21(ivec4) VectorShuffle 226 224 4 5 6 3 + Store 225 227 + 228: 6(int) Load 8(invocation) + 229: 103(ptr) AccessChain 27(data) 60 50 + 230: 21(ivec4) Load 229 + 231: 21(ivec4) GroupNonUniformIMul 35 ClusteredReduce 230 34 + 232: 103(ptr) AccessChain 27(data) 228 50 + Store 232 231 + 233: 6(int) Load 8(invocation) + 234: 126(ptr) AccessChain 27(data) 29 60 30 + 235:22(float64_t) Load 234 + 236:22(float64_t) GroupNonUniformFMul 35 ClusteredReduce 235 34 + 237: 126(ptr) AccessChain 27(data) 233 60 30 + Store 237 236 + 238: 6(int) Load 8(invocation) + 239: 133(ptr) AccessChain 27(data) 39 60 + 240: 23(f64vec4) Load 239 + 241:132(f64vec2) VectorShuffle 240 240 0 1 + 242:132(f64vec2) GroupNonUniformFMul 35 ClusteredReduce 241 34 + 243: 133(ptr) AccessChain 27(data) 238 60 + 244: 23(f64vec4) Load 243 + 245: 23(f64vec4) VectorShuffle 244 242 4 5 2 3 + Store 243 245 + 246: 6(int) Load 8(invocation) + 247: 133(ptr) AccessChain 27(data) 50 60 + 248: 23(f64vec4) Load 247 + 249:142(f64vec3) VectorShuffle 248 248 0 1 2 + 250:142(f64vec3) GroupNonUniformFMul 35 ClusteredReduce 249 34 + 251: 133(ptr) AccessChain 27(data) 246 60 + 252: 23(f64vec4) Load 251 + 253: 23(f64vec4) VectorShuffle 252 250 4 5 6 3 + Store 251 253 + 254: 6(int) Load 8(invocation) + 255: 133(ptr) AccessChain 27(data) 60 60 + 256: 23(f64vec4) Load 255 + 257: 23(f64vec4) GroupNonUniformFMul 35 ClusteredReduce 256 34 + 258: 133(ptr) AccessChain 27(data) 254 60 + Store 258 257 + 259: 6(int) Load 8(invocation) + 260: 31(ptr) AccessChain 27(data) 29 29 30 + 261: 17(float) Load 260 + 262: 17(float) GroupNonUniformFMin 35 ClusteredReduce 261 34 + 263: 31(ptr) AccessChain 27(data) 259 29 30 + Store 263 262 + 264: 6(int) Load 8(invocation) + 265: 41(ptr) AccessChain 27(data) 39 29 + 266: 18(fvec4) Load 265 + 267: 40(fvec2) VectorShuffle 266 266 0 1 + 268: 40(fvec2) GroupNonUniformFMin 35 ClusteredReduce 267 34 + 269: 41(ptr) AccessChain 27(data) 264 29 + 270: 18(fvec4) Load 269 + 271: 18(fvec4) VectorShuffle 270 268 4 5 2 3 + Store 269 271 + 272: 6(int) Load 8(invocation) + 273: 41(ptr) AccessChain 27(data) 50 29 + 274: 18(fvec4) Load 273 + 275: 51(fvec3) VectorShuffle 274 274 0 1 2 + 276: 51(fvec3) GroupNonUniformFMin 35 ClusteredReduce 275 34 + 277: 41(ptr) AccessChain 27(data) 272 29 + 278: 18(fvec4) Load 277 + 279: 18(fvec4) VectorShuffle 278 276 4 5 6 3 + Store 277 279 + 280: 6(int) Load 8(invocation) + 281: 41(ptr) AccessChain 27(data) 60 29 + 282: 18(fvec4) Load 281 + 283: 18(fvec4) GroupNonUniformFMin 35 ClusteredReduce 282 34 + 284: 41(ptr) AccessChain 27(data) 280 29 + Store 284 283 + 285: 6(int) Load 8(invocation) + 286: 66(ptr) AccessChain 27(data) 29 39 30 + 287: 19(int) Load 286 + 288: 19(int) GroupNonUniformSMin 35 ClusteredReduce 287 34 + 289: 66(ptr) AccessChain 27(data) 285 39 30 + Store 289 288 + 290: 6(int) Load 8(invocation) + 291: 73(ptr) AccessChain 27(data) 39 39 + 292: 20(ivec4) Load 291 + 293: 72(ivec2) VectorShuffle 292 292 0 1 + 294: 72(ivec2) GroupNonUniformSMin 35 ClusteredReduce 293 34 + 295: 73(ptr) AccessChain 27(data) 290 39 + 296: 20(ivec4) Load 295 + 297: 20(ivec4) VectorShuffle 296 294 4 5 2 3 + Store 295 297 + 298: 6(int) Load 8(invocation) + 299: 73(ptr) AccessChain 27(data) 50 39 + 300: 20(ivec4) Load 299 + 301: 82(ivec3) VectorShuffle 300 300 0 1 2 + 302: 82(ivec3) GroupNonUniformSMin 35 ClusteredReduce 301 34 + 303: 73(ptr) AccessChain 27(data) 298 39 + 304: 20(ivec4) Load 303 + 305: 20(ivec4) VectorShuffle 304 302 4 5 6 3 + Store 303 305 + 306: 6(int) Load 8(invocation) + 307: 73(ptr) AccessChain 27(data) 60 39 + 308: 20(ivec4) Load 307 + 309: 20(ivec4) GroupNonUniformSMin 35 ClusteredReduce 308 34 + 310: 73(ptr) AccessChain 27(data) 306 39 + Store 310 309 + 311: 6(int) Load 8(invocation) + 312: 96(ptr) AccessChain 27(data) 29 50 30 + 313: 6(int) Load 312 + 314: 6(int) GroupNonUniformUMin 35 ClusteredReduce 313 34 + 315: 96(ptr) AccessChain 27(data) 311 50 30 + Store 315 314 + 316: 6(int) Load 8(invocation) + 317: 103(ptr) AccessChain 27(data) 39 50 + 318: 21(ivec4) Load 317 + 319: 102(ivec2) VectorShuffle 318 318 0 1 + 320: 102(ivec2) GroupNonUniformUMin 35 ClusteredReduce 319 34 + 321: 103(ptr) AccessChain 27(data) 316 50 + 322: 21(ivec4) Load 321 + 323: 21(ivec4) VectorShuffle 322 320 4 5 2 3 + Store 321 323 + 324: 6(int) Load 8(invocation) + 325: 103(ptr) AccessChain 27(data) 50 50 + 326: 21(ivec4) Load 325 + 327: 112(ivec3) VectorShuffle 326 326 0 1 2 + 328: 112(ivec3) GroupNonUniformUMin 35 ClusteredReduce 327 34 + 329: 103(ptr) AccessChain 27(data) 324 50 + 330: 21(ivec4) Load 329 + 331: 21(ivec4) VectorShuffle 330 328 4 5 6 3 + Store 329 331 + 332: 6(int) Load 8(invocation) + 333: 103(ptr) AccessChain 27(data) 60 50 + 334: 21(ivec4) Load 333 + 335: 21(ivec4) GroupNonUniformUMin 35 ClusteredReduce 334 34 + 336: 103(ptr) AccessChain 27(data) 332 50 + Store 336 335 + 337: 6(int) Load 8(invocation) + 338: 126(ptr) AccessChain 27(data) 29 60 30 + 339:22(float64_t) Load 338 + 340:22(float64_t) GroupNonUniformFMin 35 ClusteredReduce 339 34 + 341: 126(ptr) AccessChain 27(data) 337 60 30 + Store 341 340 + 342: 6(int) Load 8(invocation) + 343: 133(ptr) AccessChain 27(data) 39 60 + 344: 23(f64vec4) Load 343 + 345:132(f64vec2) VectorShuffle 344 344 0 1 + 346:132(f64vec2) GroupNonUniformFMin 35 ClusteredReduce 345 34 + 347: 133(ptr) AccessChain 27(data) 342 60 + 348: 23(f64vec4) Load 347 + 349: 23(f64vec4) VectorShuffle 348 346 4 5 2 3 + Store 347 349 + 350: 6(int) Load 8(invocation) + 351: 133(ptr) AccessChain 27(data) 50 60 + 352: 23(f64vec4) Load 351 + 353:142(f64vec3) VectorShuffle 352 352 0 1 2 + 354:142(f64vec3) GroupNonUniformFMin 35 ClusteredReduce 353 34 + 355: 133(ptr) AccessChain 27(data) 350 60 + 356: 23(f64vec4) Load 355 + 357: 23(f64vec4) VectorShuffle 356 354 4 5 6 3 + Store 355 357 + 358: 6(int) Load 8(invocation) + 359: 133(ptr) AccessChain 27(data) 60 60 + 360: 23(f64vec4) Load 359 + 361: 23(f64vec4) GroupNonUniformFMin 35 ClusteredReduce 360 34 + 362: 133(ptr) AccessChain 27(data) 358 60 + Store 362 361 + 363: 6(int) Load 8(invocation) + 364: 31(ptr) AccessChain 27(data) 29 29 30 + 365: 17(float) Load 364 + 366: 17(float) GroupNonUniformFMax 35 ClusteredReduce 365 34 + 367: 31(ptr) AccessChain 27(data) 363 29 30 + Store 367 366 + 368: 6(int) Load 8(invocation) + 369: 41(ptr) AccessChain 27(data) 39 29 + 370: 18(fvec4) Load 369 + 371: 40(fvec2) VectorShuffle 370 370 0 1 + 372: 40(fvec2) GroupNonUniformFMax 35 ClusteredReduce 371 34 + 373: 41(ptr) AccessChain 27(data) 368 29 + 374: 18(fvec4) Load 373 + 375: 18(fvec4) VectorShuffle 374 372 4 5 2 3 + Store 373 375 + 376: 6(int) Load 8(invocation) + 377: 41(ptr) AccessChain 27(data) 50 29 + 378: 18(fvec4) Load 377 + 379: 51(fvec3) VectorShuffle 378 378 0 1 2 + 380: 51(fvec3) GroupNonUniformFMax 35 ClusteredReduce 379 34 + 381: 41(ptr) AccessChain 27(data) 376 29 + 382: 18(fvec4) Load 381 + 383: 18(fvec4) VectorShuffle 382 380 4 5 6 3 + Store 381 383 + 384: 6(int) Load 8(invocation) + 385: 41(ptr) AccessChain 27(data) 60 29 + 386: 18(fvec4) Load 385 + 387: 18(fvec4) GroupNonUniformFMax 35 ClusteredReduce 386 34 + 388: 41(ptr) AccessChain 27(data) 384 29 + Store 388 387 + 389: 6(int) Load 8(invocation) + 390: 66(ptr) AccessChain 27(data) 29 39 30 + 391: 19(int) Load 390 + 392: 19(int) GroupNonUniformSMax 35 ClusteredReduce 391 34 + 393: 66(ptr) AccessChain 27(data) 389 39 30 + Store 393 392 + 394: 6(int) Load 8(invocation) + 395: 73(ptr) AccessChain 27(data) 39 39 + 396: 20(ivec4) Load 395 + 397: 72(ivec2) VectorShuffle 396 396 0 1 + 398: 72(ivec2) GroupNonUniformSMax 35 ClusteredReduce 397 34 + 399: 73(ptr) AccessChain 27(data) 394 39 + 400: 20(ivec4) Load 399 + 401: 20(ivec4) VectorShuffle 400 398 4 5 2 3 + Store 399 401 + 402: 6(int) Load 8(invocation) + 403: 73(ptr) AccessChain 27(data) 50 39 + 404: 20(ivec4) Load 403 + 405: 82(ivec3) VectorShuffle 404 404 0 1 2 + 406: 82(ivec3) GroupNonUniformSMax 35 ClusteredReduce 405 34 + 407: 73(ptr) AccessChain 27(data) 402 39 + 408: 20(ivec4) Load 407 + 409: 20(ivec4) VectorShuffle 408 406 4 5 6 3 + Store 407 409 + 410: 6(int) Load 8(invocation) + 411: 73(ptr) AccessChain 27(data) 60 39 + 412: 20(ivec4) Load 411 + 413: 20(ivec4) GroupNonUniformSMax 35 ClusteredReduce 412 34 + 414: 73(ptr) AccessChain 27(data) 410 39 + Store 414 413 + 415: 6(int) Load 8(invocation) + 416: 96(ptr) AccessChain 27(data) 29 50 30 + 417: 6(int) Load 416 + 418: 6(int) GroupNonUniformUMax 35 ClusteredReduce 417 34 + 419: 96(ptr) AccessChain 27(data) 415 50 30 + Store 419 418 + 420: 6(int) Load 8(invocation) + 421: 103(ptr) AccessChain 27(data) 39 50 + 422: 21(ivec4) Load 421 + 423: 102(ivec2) VectorShuffle 422 422 0 1 + 424: 102(ivec2) GroupNonUniformUMax 35 ClusteredReduce 423 34 + 425: 103(ptr) AccessChain 27(data) 420 50 + 426: 21(ivec4) Load 425 + 427: 21(ivec4) VectorShuffle 426 424 4 5 2 3 + Store 425 427 + 428: 6(int) Load 8(invocation) + 429: 103(ptr) AccessChain 27(data) 50 50 + 430: 21(ivec4) Load 429 + 431: 112(ivec3) VectorShuffle 430 430 0 1 2 + 432: 112(ivec3) GroupNonUniformUMax 35 ClusteredReduce 431 34 + 433: 103(ptr) AccessChain 27(data) 428 50 + 434: 21(ivec4) Load 433 + 435: 21(ivec4) VectorShuffle 434 432 4 5 6 3 + Store 433 435 + 436: 6(int) Load 8(invocation) + 437: 103(ptr) AccessChain 27(data) 60 50 + 438: 21(ivec4) Load 437 + 439: 21(ivec4) GroupNonUniformUMax 35 ClusteredReduce 438 34 + 440: 103(ptr) AccessChain 27(data) 436 50 + Store 440 439 + 441: 6(int) Load 8(invocation) + 442: 126(ptr) AccessChain 27(data) 29 60 30 + 443:22(float64_t) Load 442 + 444:22(float64_t) GroupNonUniformFMax 35 ClusteredReduce 443 34 + 445: 126(ptr) AccessChain 27(data) 441 60 30 + Store 445 444 + 446: 6(int) Load 8(invocation) + 447: 133(ptr) AccessChain 27(data) 39 60 + 448: 23(f64vec4) Load 447 + 449:132(f64vec2) VectorShuffle 448 448 0 1 + 450:132(f64vec2) GroupNonUniformFMax 35 ClusteredReduce 449 34 + 451: 133(ptr) AccessChain 27(data) 446 60 + 452: 23(f64vec4) Load 451 + 453: 23(f64vec4) VectorShuffle 452 450 4 5 2 3 + Store 451 453 + 454: 6(int) Load 8(invocation) + 455: 133(ptr) AccessChain 27(data) 50 60 + 456: 23(f64vec4) Load 455 + 457:142(f64vec3) VectorShuffle 456 456 0 1 2 + 458:142(f64vec3) GroupNonUniformFMax 35 ClusteredReduce 457 34 + 459: 133(ptr) AccessChain 27(data) 454 60 + 460: 23(f64vec4) Load 459 + 461: 23(f64vec4) VectorShuffle 460 458 4 5 6 3 + Store 459 461 + 462: 6(int) Load 8(invocation) + 463: 133(ptr) AccessChain 27(data) 60 60 + 464: 23(f64vec4) Load 463 + 465: 23(f64vec4) GroupNonUniformFMax 35 ClusteredReduce 464 34 + 466: 133(ptr) AccessChain 27(data) 462 60 + Store 466 465 + 467: 6(int) Load 8(invocation) + 468: 66(ptr) AccessChain 27(data) 29 39 30 + 469: 19(int) Load 468 + 470: 19(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 469 34 + 471: 66(ptr) AccessChain 27(data) 467 39 30 + Store 471 470 + 472: 6(int) Load 8(invocation) + 473: 73(ptr) AccessChain 27(data) 39 39 + 474: 20(ivec4) Load 473 + 475: 72(ivec2) VectorShuffle 474 474 0 1 + 476: 72(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 475 34 + 477: 73(ptr) AccessChain 27(data) 472 39 + 478: 20(ivec4) Load 477 + 479: 20(ivec4) VectorShuffle 478 476 4 5 2 3 + Store 477 479 + 480: 6(int) Load 8(invocation) + 481: 73(ptr) AccessChain 27(data) 50 39 + 482: 20(ivec4) Load 481 + 483: 82(ivec3) VectorShuffle 482 482 0 1 2 + 484: 82(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 483 34 + 485: 73(ptr) AccessChain 27(data) 480 39 + 486: 20(ivec4) Load 485 + 487: 20(ivec4) VectorShuffle 486 484 4 5 6 3 + Store 485 487 + 488: 6(int) Load 8(invocation) + 489: 73(ptr) AccessChain 27(data) 60 39 + 490: 20(ivec4) Load 489 + 491: 20(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 490 34 + 492: 73(ptr) AccessChain 27(data) 488 39 + Store 492 491 + 493: 6(int) Load 8(invocation) + 494: 96(ptr) AccessChain 27(data) 29 50 30 + 495: 6(int) Load 494 + 496: 6(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 495 34 + 497: 96(ptr) AccessChain 27(data) 493 50 30 + Store 497 496 + 498: 6(int) Load 8(invocation) + 499: 103(ptr) AccessChain 27(data) 39 50 + 500: 21(ivec4) Load 499 + 501: 102(ivec2) VectorShuffle 500 500 0 1 + 502: 102(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 501 34 + 503: 103(ptr) AccessChain 27(data) 498 50 + 504: 21(ivec4) Load 503 + 505: 21(ivec4) VectorShuffle 504 502 4 5 2 3 + Store 503 505 + 506: 6(int) Load 8(invocation) + 507: 103(ptr) AccessChain 27(data) 50 50 + 508: 21(ivec4) Load 507 + 509: 112(ivec3) VectorShuffle 508 508 0 1 2 + 510: 112(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 509 34 + 511: 103(ptr) AccessChain 27(data) 506 50 + 512: 21(ivec4) Load 511 + 513: 21(ivec4) VectorShuffle 512 510 4 5 6 3 + Store 511 513 + 514: 6(int) Load 8(invocation) + 515: 103(ptr) AccessChain 27(data) 60 50 + 516: 21(ivec4) Load 515 + 517: 21(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 516 34 + 518: 103(ptr) AccessChain 27(data) 514 50 + Store 518 517 + 519: 6(int) Load 8(invocation) + 520: 66(ptr) AccessChain 27(data) 29 39 30 + 521: 19(int) Load 520 + 523: 522(bool) SLessThan 521 29 + 524: 522(bool) GroupNonUniformLogicalAnd 35 ClusteredReduce 523 34 + 525: 19(int) Select 524 39 29 + 526: 66(ptr) AccessChain 27(data) 519 39 30 + Store 526 525 + 527: 6(int) Load 8(invocation) + 528: 73(ptr) AccessChain 27(data) 39 39 + 529: 20(ivec4) Load 528 + 530: 72(ivec2) VectorShuffle 529 529 0 1 + 533: 532(bvec2) SLessThan 530 531 + 534: 532(bvec2) GroupNonUniformLogicalAnd 35 ClusteredReduce 533 34 + 536: 72(ivec2) Select 534 535 531 + 537: 73(ptr) AccessChain 27(data) 527 39 + 538: 20(ivec4) Load 537 + 539: 20(ivec4) VectorShuffle 538 536 4 5 2 3 + Store 537 539 + 540: 6(int) Load 8(invocation) + 541: 73(ptr) AccessChain 27(data) 39 39 + 542: 20(ivec4) Load 541 + 543: 82(ivec3) VectorShuffle 542 542 0 1 2 + 546: 545(bvec3) SLessThan 543 544 + 547: 545(bvec3) GroupNonUniformLogicalAnd 35 ClusteredReduce 546 34 + 549: 82(ivec3) Select 547 548 544 + 550: 73(ptr) AccessChain 27(data) 540 39 + 551: 20(ivec4) Load 550 + 552: 20(ivec4) VectorShuffle 551 549 4 5 6 3 + Store 550 552 + 553: 6(int) Load 8(invocation) + 554: 73(ptr) AccessChain 27(data) 39 39 + 555: 20(ivec4) Load 554 + 558: 557(bvec4) SLessThan 555 556 + 559: 557(bvec4) GroupNonUniformLogicalAnd 35 ClusteredReduce 558 34 + 561: 20(ivec4) Select 559 560 556 + 562: 73(ptr) AccessChain 27(data) 553 39 + Store 562 561 + 563: 6(int) Load 8(invocation) + 564: 66(ptr) AccessChain 27(data) 29 39 30 + 565: 19(int) Load 564 + 566: 19(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 565 34 + 567: 66(ptr) AccessChain 27(data) 563 39 30 + Store 567 566 + 568: 6(int) Load 8(invocation) + 569: 73(ptr) AccessChain 27(data) 39 39 + 570: 20(ivec4) Load 569 + 571: 72(ivec2) VectorShuffle 570 570 0 1 + 572: 72(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 571 34 + 573: 73(ptr) AccessChain 27(data) 568 39 + 574: 20(ivec4) Load 573 + 575: 20(ivec4) VectorShuffle 574 572 4 5 2 3 + Store 573 575 + 576: 6(int) Load 8(invocation) + 577: 73(ptr) AccessChain 27(data) 50 39 + 578: 20(ivec4) Load 577 + 579: 82(ivec3) VectorShuffle 578 578 0 1 2 + 580: 82(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 579 34 + 581: 73(ptr) AccessChain 27(data) 576 39 + 582: 20(ivec4) Load 581 + 583: 20(ivec4) VectorShuffle 582 580 4 5 6 3 + Store 581 583 + 584: 6(int) Load 8(invocation) + 585: 73(ptr) AccessChain 27(data) 60 39 + 586: 20(ivec4) Load 585 + 587: 20(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 586 34 + 588: 73(ptr) AccessChain 27(data) 584 39 + Store 588 587 + 589: 6(int) Load 8(invocation) + 590: 96(ptr) AccessChain 27(data) 29 50 30 + 591: 6(int) Load 590 + 592: 6(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 591 34 + 593: 96(ptr) AccessChain 27(data) 589 50 30 + Store 593 592 + 594: 6(int) Load 8(invocation) + 595: 103(ptr) AccessChain 27(data) 39 50 + 596: 21(ivec4) Load 595 + 597: 102(ivec2) VectorShuffle 596 596 0 1 + 598: 102(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 597 34 + 599: 103(ptr) AccessChain 27(data) 594 50 + 600: 21(ivec4) Load 599 + 601: 21(ivec4) VectorShuffle 600 598 4 5 2 3 + Store 599 601 + 602: 6(int) Load 8(invocation) + 603: 103(ptr) AccessChain 27(data) 50 50 + 604: 21(ivec4) Load 603 + 605: 112(ivec3) VectorShuffle 604 604 0 1 2 + 606: 112(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 605 34 + 607: 103(ptr) AccessChain 27(data) 602 50 + 608: 21(ivec4) Load 607 + 609: 21(ivec4) VectorShuffle 608 606 4 5 6 3 + Store 607 609 + 610: 6(int) Load 8(invocation) + 611: 103(ptr) AccessChain 27(data) 60 50 + 612: 21(ivec4) Load 611 + 613: 21(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 612 34 + 614: 103(ptr) AccessChain 27(data) 610 50 + Store 614 613 + 615: 6(int) Load 8(invocation) + 616: 66(ptr) AccessChain 27(data) 29 39 30 + 617: 19(int) Load 616 + 618: 522(bool) SLessThan 617 29 + 619: 522(bool) GroupNonUniformLogicalOr 35 ClusteredReduce 618 34 + 620: 19(int) Select 619 39 29 + 621: 66(ptr) AccessChain 27(data) 615 39 30 + Store 621 620 + 622: 6(int) Load 8(invocation) + 623: 73(ptr) AccessChain 27(data) 39 39 + 624: 20(ivec4) Load 623 + 625: 72(ivec2) VectorShuffle 624 624 0 1 + 626: 532(bvec2) SLessThan 625 531 + 627: 532(bvec2) GroupNonUniformLogicalOr 35 ClusteredReduce 626 34 + 628: 72(ivec2) Select 627 535 531 + 629: 73(ptr) AccessChain 27(data) 622 39 + 630: 20(ivec4) Load 629 + 631: 20(ivec4) VectorShuffle 630 628 4 5 2 3 + Store 629 631 + 632: 6(int) Load 8(invocation) + 633: 73(ptr) AccessChain 27(data) 39 39 + 634: 20(ivec4) Load 633 + 635: 82(ivec3) VectorShuffle 634 634 0 1 2 + 636: 545(bvec3) SLessThan 635 544 + 637: 545(bvec3) GroupNonUniformLogicalOr 35 ClusteredReduce 636 34 + 638: 82(ivec3) Select 637 548 544 + 639: 73(ptr) AccessChain 27(data) 632 39 + 640: 20(ivec4) Load 639 + 641: 20(ivec4) VectorShuffle 640 638 4 5 6 3 + Store 639 641 + 642: 6(int) Load 8(invocation) + 643: 73(ptr) AccessChain 27(data) 39 39 + 644: 20(ivec4) Load 643 + 645: 557(bvec4) SLessThan 644 556 + 646: 557(bvec4) GroupNonUniformLogicalOr 35 ClusteredReduce 645 34 + 647: 20(ivec4) Select 646 560 556 + 648: 73(ptr) AccessChain 27(data) 642 39 + Store 648 647 + 649: 6(int) Load 8(invocation) + 650: 66(ptr) AccessChain 27(data) 29 39 30 + 651: 19(int) Load 650 + 652: 19(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 651 34 + 653: 66(ptr) AccessChain 27(data) 649 39 30 + Store 653 652 + 654: 6(int) Load 8(invocation) + 655: 73(ptr) AccessChain 27(data) 39 39 + 656: 20(ivec4) Load 655 + 657: 72(ivec2) VectorShuffle 656 656 0 1 + 658: 72(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 657 34 + 659: 73(ptr) AccessChain 27(data) 654 39 + 660: 20(ivec4) Load 659 + 661: 20(ivec4) VectorShuffle 660 658 4 5 2 3 + Store 659 661 + 662: 6(int) Load 8(invocation) + 663: 73(ptr) AccessChain 27(data) 50 39 + 664: 20(ivec4) Load 663 + 665: 82(ivec3) VectorShuffle 664 664 0 1 2 + 666: 82(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 665 34 + 667: 73(ptr) AccessChain 27(data) 662 39 + 668: 20(ivec4) Load 667 + 669: 20(ivec4) VectorShuffle 668 666 4 5 6 3 + Store 667 669 + 670: 6(int) Load 8(invocation) + 671: 73(ptr) AccessChain 27(data) 60 39 + 672: 20(ivec4) Load 671 + 673: 20(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 672 34 + 674: 73(ptr) AccessChain 27(data) 670 39 + Store 674 673 + 675: 6(int) Load 8(invocation) + 676: 96(ptr) AccessChain 27(data) 29 50 30 + 677: 6(int) Load 676 + 678: 6(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 677 34 + 679: 96(ptr) AccessChain 27(data) 675 50 30 + Store 679 678 + 680: 6(int) Load 8(invocation) + 681: 103(ptr) AccessChain 27(data) 39 50 + 682: 21(ivec4) Load 681 + 683: 102(ivec2) VectorShuffle 682 682 0 1 + 684: 102(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 683 34 + 685: 103(ptr) AccessChain 27(data) 680 50 + 686: 21(ivec4) Load 685 + 687: 21(ivec4) VectorShuffle 686 684 4 5 2 3 + Store 685 687 + 688: 6(int) Load 8(invocation) + 689: 103(ptr) AccessChain 27(data) 50 50 + 690: 21(ivec4) Load 689 + 691: 112(ivec3) VectorShuffle 690 690 0 1 2 + 692: 112(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 691 34 + 693: 103(ptr) AccessChain 27(data) 688 50 + 694: 21(ivec4) Load 693 + 695: 21(ivec4) VectorShuffle 694 692 4 5 6 3 + Store 693 695 + 696: 6(int) Load 8(invocation) + 697: 103(ptr) AccessChain 27(data) 60 50 + 698: 21(ivec4) Load 697 + 699: 21(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 698 34 + 700: 103(ptr) AccessChain 27(data) 696 50 + Store 700 699 + 701: 6(int) Load 8(invocation) + 702: 66(ptr) AccessChain 27(data) 29 39 30 + 703: 19(int) Load 702 + 704: 522(bool) SLessThan 703 29 + 705: 522(bool) GroupNonUniformLogicalXor 35 ClusteredReduce 704 34 + 706: 19(int) Select 705 39 29 + 707: 66(ptr) AccessChain 27(data) 701 39 30 + Store 707 706 + 708: 6(int) Load 8(invocation) + 709: 73(ptr) AccessChain 27(data) 39 39 + 710: 20(ivec4) Load 709 + 711: 72(ivec2) VectorShuffle 710 710 0 1 + 712: 532(bvec2) SLessThan 711 531 + 713: 532(bvec2) GroupNonUniformLogicalXor 35 ClusteredReduce 712 34 + 714: 72(ivec2) Select 713 535 531 + 715: 73(ptr) AccessChain 27(data) 708 39 + 716: 20(ivec4) Load 715 + 717: 20(ivec4) VectorShuffle 716 714 4 5 2 3 + Store 715 717 + 718: 6(int) Load 8(invocation) + 719: 73(ptr) AccessChain 27(data) 39 39 + 720: 20(ivec4) Load 719 + 721: 82(ivec3) VectorShuffle 720 720 0 1 2 + 722: 545(bvec3) SLessThan 721 544 + 723: 545(bvec3) GroupNonUniformLogicalXor 35 ClusteredReduce 722 34 + 724: 82(ivec3) Select 723 548 544 + 725: 73(ptr) AccessChain 27(data) 718 39 + 726: 20(ivec4) Load 725 + 727: 20(ivec4) VectorShuffle 726 724 4 5 6 3 + Store 725 727 + 728: 6(int) Load 8(invocation) + 729: 73(ptr) AccessChain 27(data) 39 39 + 730: 20(ivec4) Load 729 + 731: 557(bvec4) SLessThan 730 556 + 732: 557(bvec4) GroupNonUniformLogicalXor 35 ClusteredReduce 731 34 + 733: 20(ivec4) Select 732 560 556 + 734: 73(ptr) AccessChain 27(data) 728 39 + Store 734 733 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out new file mode 100644 index 0000000000..911ff72dca --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupClusteredNeg.comp.out @@ -0,0 +1,13 @@ +spv.subgroupClusteredNeg.comp +ERROR: 0:22: 'cluster size' : argument must be at least 1 +ERROR: 0:24: 'cluster size' : argument must be a power of 2 +ERROR: 0:27: 'cluster size' : argument must be a power of 2 +ERROR: 0:29: 'cluster size' : argument must be at least 1 +ERROR: 0:31: 'cluster size' : argument must be at least 1 +ERROR: 0:33: 'cluster size' : argument must be compile-time constant +ERROR: 0:36: 'cluster size' : argument must be compile-time constant +ERROR: 0:37: 'cluster size' : argument must be compile-time constant +ERROR: 8 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out new file mode 100644 index 0000000000..527a62e6c3 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out @@ -0,0 +1,2872 @@ +spv.subgroupPartitioned.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 2506 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformPartitionedNV + Extension "SPV_NV_shader_subgroup_partitioned" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 1 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + SourceExtension "GL_NV_shader_subgroup_partitioned" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 19 "ballot" + Name 28 "Buffers" + MemberName 28(Buffers) 0 "f4" + MemberName 28(Buffers) 1 "i4" + MemberName 28(Buffers) 2 "u4" + MemberName 28(Buffers) 3 "d4" + Name 31 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 28(Buffers) 0 Offset 0 + MemberDecorate 28(Buffers) 1 Offset 16 + MemberDecorate 28(Buffers) 2 Offset 32 + MemberDecorate 28(Buffers) 3 Offset 64 + Decorate 28(Buffers) BufferBlock + Decorate 31(data) DescriptorSet 0 + Decorate 31(data) Binding 0 + Decorate 2505 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeVector 6(int) 4 + 18: TypePointer Function 17(ivec4) + 22: TypeFloat 32 + 23: TypeVector 22(float) 4 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypeFloat 64 + 27: TypeVector 26(float64_t) 4 + 28(Buffers): TypeStruct 23(fvec4) 25(ivec4) 17(ivec4) 27(f64vec4) + 29: TypeArray 28(Buffers) 15 + 30: TypePointer Uniform 29 + 31(data): 30(ptr) Variable Uniform + 33: 24(int) Constant 2 + 34: 24(int) Constant 0 + 35: 6(int) Constant 0 + 36: TypePointer Uniform 22(float) + 40: TypePointer Uniform 17(ivec4) + 43: TypeVector 22(float) 2 + 44: TypePointer Uniform 23(fvec4) + 51: TypeVector 22(float) 3 + 63: 24(int) Constant 1 + 64: TypePointer Uniform 24(int) + 70: TypeVector 24(int) 2 + 71: TypePointer Uniform 25(ivec4) + 78: TypeVector 24(int) 3 + 90: TypePointer Uniform 6(int) + 96: TypeVector 6(int) 2 + 103: TypeVector 6(int) 3 + 115: 24(int) Constant 3 + 116: TypePointer Uniform 26(float64_t) + 122: TypeVector 26(float64_t) 2 + 123: TypePointer Uniform 27(f64vec4) + 130: TypeVector 26(float64_t) 3 + 144: TypeBool + 152: TypeVector 144(bool) 2 + 153: 96(ivec2) ConstantComposite 35 35 + 161: TypeVector 144(bool) 3 + 162: 103(ivec3) ConstantComposite 35 35 35 + 169: TypeVector 144(bool) 4 + 170: 17(ivec4) ConstantComposite 35 35 35 35 + 178: 6(int) Constant 3 + 727: 70(ivec2) ConstantComposite 34 34 + 731: 70(ivec2) ConstantComposite 63 63 + 740: 78(ivec3) ConstantComposite 34 34 34 + 744: 78(ivec3) ConstantComposite 63 63 63 + 752: 25(ivec4) ConstantComposite 34 34 34 34 + 756: 25(ivec4) ConstantComposite 63 63 63 63 + 2503: 6(int) Constant 8 + 2504: 6(int) Constant 1 + 2505: 103(ivec3) ConstantComposite 2503 2504 2504 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 19(ballot): 18(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 20: 6(int) Load 8(invocation) + 21: 17(ivec4) GroupNonUniformPartitionNV 20 + Store 19(ballot) 21 + 32: 6(int) Load 8(invocation) + 37: 36(ptr) AccessChain 31(data) 34 34 35 + 38: 22(float) Load 37 + 39: 17(ivec4) GroupNonUniformPartitionNV 38 + 41: 40(ptr) AccessChain 31(data) 32 33 + Store 41 39 + 42: 6(int) Load 8(invocation) + 45: 44(ptr) AccessChain 31(data) 34 34 + 46: 23(fvec4) Load 45 + 47: 43(fvec2) VectorShuffle 46 46 0 1 + 48: 17(ivec4) GroupNonUniformPartitionNV 47 + 49: 40(ptr) AccessChain 31(data) 42 33 + Store 49 48 + 50: 6(int) Load 8(invocation) + 52: 44(ptr) AccessChain 31(data) 34 34 + 53: 23(fvec4) Load 52 + 54: 51(fvec3) VectorShuffle 53 53 0 1 2 + 55: 17(ivec4) GroupNonUniformPartitionNV 54 + 56: 40(ptr) AccessChain 31(data) 50 33 + Store 56 55 + 57: 6(int) Load 8(invocation) + 58: 44(ptr) AccessChain 31(data) 34 34 + 59: 23(fvec4) Load 58 + 60: 17(ivec4) GroupNonUniformPartitionNV 59 + 61: 40(ptr) AccessChain 31(data) 57 33 + Store 61 60 + 62: 6(int) Load 8(invocation) + 65: 64(ptr) AccessChain 31(data) 34 63 35 + 66: 24(int) Load 65 + 67: 17(ivec4) GroupNonUniformPartitionNV 66 + 68: 40(ptr) AccessChain 31(data) 62 33 + Store 68 67 + 69: 6(int) Load 8(invocation) + 72: 71(ptr) AccessChain 31(data) 34 63 + 73: 25(ivec4) Load 72 + 74: 70(ivec2) VectorShuffle 73 73 0 1 + 75: 17(ivec4) GroupNonUniformPartitionNV 74 + 76: 40(ptr) AccessChain 31(data) 69 33 + Store 76 75 + 77: 6(int) Load 8(invocation) + 79: 71(ptr) AccessChain 31(data) 34 63 + 80: 25(ivec4) Load 79 + 81: 78(ivec3) VectorShuffle 80 80 0 1 2 + 82: 17(ivec4) GroupNonUniformPartitionNV 81 + 83: 40(ptr) AccessChain 31(data) 77 33 + Store 83 82 + 84: 6(int) Load 8(invocation) + 85: 71(ptr) AccessChain 31(data) 34 63 + 86: 25(ivec4) Load 85 + 87: 17(ivec4) GroupNonUniformPartitionNV 86 + 88: 40(ptr) AccessChain 31(data) 84 33 + Store 88 87 + 89: 6(int) Load 8(invocation) + 91: 90(ptr) AccessChain 31(data) 34 33 35 + 92: 6(int) Load 91 + 93: 17(ivec4) GroupNonUniformPartitionNV 92 + 94: 40(ptr) AccessChain 31(data) 89 33 + Store 94 93 + 95: 6(int) Load 8(invocation) + 97: 40(ptr) AccessChain 31(data) 34 33 + 98: 17(ivec4) Load 97 + 99: 96(ivec2) VectorShuffle 98 98 0 1 + 100: 17(ivec4) GroupNonUniformPartitionNV 99 + 101: 40(ptr) AccessChain 31(data) 95 33 + Store 101 100 + 102: 6(int) Load 8(invocation) + 104: 40(ptr) AccessChain 31(data) 34 33 + 105: 17(ivec4) Load 104 + 106: 103(ivec3) VectorShuffle 105 105 0 1 2 + 107: 17(ivec4) GroupNonUniformPartitionNV 106 + 108: 40(ptr) AccessChain 31(data) 102 33 + Store 108 107 + 109: 6(int) Load 8(invocation) + 110: 40(ptr) AccessChain 31(data) 34 33 + 111: 17(ivec4) Load 110 + 112: 17(ivec4) GroupNonUniformPartitionNV 111 + 113: 40(ptr) AccessChain 31(data) 109 33 + Store 113 112 + 114: 6(int) Load 8(invocation) + 117: 116(ptr) AccessChain 31(data) 34 115 35 + 118:26(float64_t) Load 117 + 119: 17(ivec4) GroupNonUniformPartitionNV 118 + 120: 40(ptr) AccessChain 31(data) 114 33 + Store 120 119 + 121: 6(int) Load 8(invocation) + 124: 123(ptr) AccessChain 31(data) 34 115 + 125: 27(f64vec4) Load 124 + 126:122(f64vec2) VectorShuffle 125 125 0 1 + 127: 17(ivec4) GroupNonUniformPartitionNV 126 + 128: 40(ptr) AccessChain 31(data) 121 33 + Store 128 127 + 129: 6(int) Load 8(invocation) + 131: 123(ptr) AccessChain 31(data) 34 115 + 132: 27(f64vec4) Load 131 + 133:130(f64vec3) VectorShuffle 132 132 0 1 2 + 134: 17(ivec4) GroupNonUniformPartitionNV 133 + 135: 40(ptr) AccessChain 31(data) 129 33 + Store 135 134 + 136: 6(int) Load 8(invocation) + 137: 123(ptr) AccessChain 31(data) 34 115 + 138: 27(f64vec4) Load 137 + 139: 17(ivec4) GroupNonUniformPartitionNV 138 + 140: 40(ptr) AccessChain 31(data) 136 33 + Store 140 139 + 141: 6(int) Load 8(invocation) + 142: 64(ptr) AccessChain 31(data) 34 63 35 + 143: 24(int) Load 142 + 145: 144(bool) INotEqual 143 35 + 146: 17(ivec4) GroupNonUniformPartitionNV 145 + 147: 40(ptr) AccessChain 31(data) 141 33 + Store 147 146 + 148: 6(int) Load 8(invocation) + 149: 71(ptr) AccessChain 31(data) 34 63 + 150: 25(ivec4) Load 149 + 151: 70(ivec2) VectorShuffle 150 150 0 1 + 154: 152(bvec2) INotEqual 151 153 + 155: 17(ivec4) GroupNonUniformPartitionNV 154 + 156: 40(ptr) AccessChain 31(data) 148 33 + Store 156 155 + 157: 6(int) Load 8(invocation) + 158: 71(ptr) AccessChain 31(data) 34 63 + 159: 25(ivec4) Load 158 + 160: 78(ivec3) VectorShuffle 159 159 0 1 2 + 163: 161(bvec3) INotEqual 160 162 + 164: 17(ivec4) GroupNonUniformPartitionNV 163 + 165: 40(ptr) AccessChain 31(data) 157 33 + Store 165 164 + 166: 6(int) Load 8(invocation) + 167: 71(ptr) AccessChain 31(data) 34 63 + 168: 25(ivec4) Load 167 + 171: 169(bvec4) INotEqual 168 170 + 172: 17(ivec4) GroupNonUniformPartitionNV 171 + 173: 40(ptr) AccessChain 31(data) 166 33 + Store 173 172 + 174: 6(int) Load 8(invocation) + 175: 36(ptr) AccessChain 31(data) 34 34 35 + 176: 22(float) Load 175 + 177: 17(ivec4) Load 19(ballot) + 179: 22(float) GroupNonUniformFAdd 178 PartitionedReduceNV 176 177 + 180: 36(ptr) AccessChain 31(data) 174 34 35 + Store 180 179 + 181: 6(int) Load 8(invocation) + 182: 44(ptr) AccessChain 31(data) 63 34 + 183: 23(fvec4) Load 182 + 184: 43(fvec2) VectorShuffle 183 183 0 1 + 185: 17(ivec4) Load 19(ballot) + 186: 43(fvec2) GroupNonUniformFAdd 178 PartitionedReduceNV 184 185 + 187: 44(ptr) AccessChain 31(data) 181 34 + 188: 23(fvec4) Load 187 + 189: 23(fvec4) VectorShuffle 188 186 4 5 2 3 + Store 187 189 + 190: 6(int) Load 8(invocation) + 191: 44(ptr) AccessChain 31(data) 33 34 + 192: 23(fvec4) Load 191 + 193: 51(fvec3) VectorShuffle 192 192 0 1 2 + 194: 17(ivec4) Load 19(ballot) + 195: 51(fvec3) GroupNonUniformFAdd 178 PartitionedReduceNV 193 194 + 196: 44(ptr) AccessChain 31(data) 190 34 + 197: 23(fvec4) Load 196 + 198: 23(fvec4) VectorShuffle 197 195 4 5 6 3 + Store 196 198 + 199: 6(int) Load 8(invocation) + 200: 44(ptr) AccessChain 31(data) 115 34 + 201: 23(fvec4) Load 200 + 202: 17(ivec4) Load 19(ballot) + 203: 23(fvec4) GroupNonUniformFAdd 178 PartitionedReduceNV 201 202 + 204: 44(ptr) AccessChain 31(data) 199 34 + Store 204 203 + 205: 6(int) Load 8(invocation) + 206: 64(ptr) AccessChain 31(data) 34 63 35 + 207: 24(int) Load 206 + 208: 17(ivec4) Load 19(ballot) + 209: 24(int) GroupNonUniformIAdd 178 PartitionedReduceNV 207 208 + 210: 64(ptr) AccessChain 31(data) 205 63 35 + Store 210 209 + 211: 6(int) Load 8(invocation) + 212: 71(ptr) AccessChain 31(data) 63 63 + 213: 25(ivec4) Load 212 + 214: 70(ivec2) VectorShuffle 213 213 0 1 + 215: 17(ivec4) Load 19(ballot) + 216: 70(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 214 215 + 217: 71(ptr) AccessChain 31(data) 211 63 + 218: 25(ivec4) Load 217 + 219: 25(ivec4) VectorShuffle 218 216 4 5 2 3 + Store 217 219 + 220: 6(int) Load 8(invocation) + 221: 71(ptr) AccessChain 31(data) 33 63 + 222: 25(ivec4) Load 221 + 223: 78(ivec3) VectorShuffle 222 222 0 1 2 + 224: 17(ivec4) Load 19(ballot) + 225: 78(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 223 224 + 226: 71(ptr) AccessChain 31(data) 220 63 + 227: 25(ivec4) Load 226 + 228: 25(ivec4) VectorShuffle 227 225 4 5 6 3 + Store 226 228 + 229: 6(int) Load 8(invocation) + 230: 71(ptr) AccessChain 31(data) 115 63 + 231: 25(ivec4) Load 230 + 232: 17(ivec4) Load 19(ballot) + 233: 25(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 231 232 + 234: 71(ptr) AccessChain 31(data) 229 63 + Store 234 233 + 235: 6(int) Load 8(invocation) + 236: 90(ptr) AccessChain 31(data) 34 33 35 + 237: 6(int) Load 236 + 238: 17(ivec4) Load 19(ballot) + 239: 6(int) GroupNonUniformIAdd 178 PartitionedReduceNV 237 238 + 240: 90(ptr) AccessChain 31(data) 235 33 35 + Store 240 239 + 241: 6(int) Load 8(invocation) + 242: 40(ptr) AccessChain 31(data) 63 33 + 243: 17(ivec4) Load 242 + 244: 96(ivec2) VectorShuffle 243 243 0 1 + 245: 17(ivec4) Load 19(ballot) + 246: 96(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 244 245 + 247: 40(ptr) AccessChain 31(data) 241 33 + 248: 17(ivec4) Load 247 + 249: 17(ivec4) VectorShuffle 248 246 4 5 2 3 + Store 247 249 + 250: 6(int) Load 8(invocation) + 251: 40(ptr) AccessChain 31(data) 33 33 + 252: 17(ivec4) Load 251 + 253: 103(ivec3) VectorShuffle 252 252 0 1 2 + 254: 17(ivec4) Load 19(ballot) + 255: 103(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 253 254 + 256: 40(ptr) AccessChain 31(data) 250 33 + 257: 17(ivec4) Load 256 + 258: 17(ivec4) VectorShuffle 257 255 4 5 6 3 + Store 256 258 + 259: 6(int) Load 8(invocation) + 260: 40(ptr) AccessChain 31(data) 115 33 + 261: 17(ivec4) Load 260 + 262: 17(ivec4) Load 19(ballot) + 263: 17(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 261 262 + 264: 40(ptr) AccessChain 31(data) 259 33 + Store 264 263 + 265: 6(int) Load 8(invocation) + 266: 116(ptr) AccessChain 31(data) 34 115 35 + 267:26(float64_t) Load 266 + 268: 17(ivec4) Load 19(ballot) + 269:26(float64_t) GroupNonUniformFAdd 178 PartitionedReduceNV 267 268 + 270: 116(ptr) AccessChain 31(data) 265 115 35 + Store 270 269 + 271: 6(int) Load 8(invocation) + 272: 123(ptr) AccessChain 31(data) 63 115 + 273: 27(f64vec4) Load 272 + 274:122(f64vec2) VectorShuffle 273 273 0 1 + 275: 17(ivec4) Load 19(ballot) + 276:122(f64vec2) GroupNonUniformFAdd 178 PartitionedReduceNV 274 275 + 277: 123(ptr) AccessChain 31(data) 271 115 + 278: 27(f64vec4) Load 277 + 279: 27(f64vec4) VectorShuffle 278 276 4 5 2 3 + Store 277 279 + 280: 6(int) Load 8(invocation) + 281: 123(ptr) AccessChain 31(data) 33 115 + 282: 27(f64vec4) Load 281 + 283:130(f64vec3) VectorShuffle 282 282 0 1 2 + 284: 17(ivec4) Load 19(ballot) + 285:130(f64vec3) GroupNonUniformFAdd 178 PartitionedReduceNV 283 284 + 286: 123(ptr) AccessChain 31(data) 280 115 + 287: 27(f64vec4) Load 286 + 288: 27(f64vec4) VectorShuffle 287 285 4 5 6 3 + Store 286 288 + 289: 6(int) Load 8(invocation) + 290: 123(ptr) AccessChain 31(data) 115 115 + 291: 27(f64vec4) Load 290 + 292: 17(ivec4) Load 19(ballot) + 293: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedReduceNV 291 292 + 294: 123(ptr) AccessChain 31(data) 289 115 + Store 294 293 + 295: 6(int) Load 8(invocation) + 296: 36(ptr) AccessChain 31(data) 34 34 35 + 297: 22(float) Load 296 + 298: 17(ivec4) Load 19(ballot) + 299: 22(float) GroupNonUniformFMul 178 PartitionedReduceNV 297 298 + 300: 36(ptr) AccessChain 31(data) 295 34 35 + Store 300 299 + 301: 6(int) Load 8(invocation) + 302: 44(ptr) AccessChain 31(data) 63 34 + 303: 23(fvec4) Load 302 + 304: 43(fvec2) VectorShuffle 303 303 0 1 + 305: 17(ivec4) Load 19(ballot) + 306: 43(fvec2) GroupNonUniformFMul 178 PartitionedReduceNV 304 305 + 307: 44(ptr) AccessChain 31(data) 301 34 + 308: 23(fvec4) Load 307 + 309: 23(fvec4) VectorShuffle 308 306 4 5 2 3 + Store 307 309 + 310: 6(int) Load 8(invocation) + 311: 44(ptr) AccessChain 31(data) 33 34 + 312: 23(fvec4) Load 311 + 313: 51(fvec3) VectorShuffle 312 312 0 1 2 + 314: 17(ivec4) Load 19(ballot) + 315: 51(fvec3) GroupNonUniformFMul 178 PartitionedReduceNV 313 314 + 316: 44(ptr) AccessChain 31(data) 310 34 + 317: 23(fvec4) Load 316 + 318: 23(fvec4) VectorShuffle 317 315 4 5 6 3 + Store 316 318 + 319: 6(int) Load 8(invocation) + 320: 44(ptr) AccessChain 31(data) 115 34 + 321: 23(fvec4) Load 320 + 322: 17(ivec4) Load 19(ballot) + 323: 23(fvec4) GroupNonUniformFMul 178 PartitionedReduceNV 321 322 + 324: 44(ptr) AccessChain 31(data) 319 34 + Store 324 323 + 325: 6(int) Load 8(invocation) + 326: 64(ptr) AccessChain 31(data) 34 63 35 + 327: 24(int) Load 326 + 328: 17(ivec4) Load 19(ballot) + 329: 24(int) GroupNonUniformIMul 178 PartitionedReduceNV 327 328 + 330: 64(ptr) AccessChain 31(data) 325 63 35 + Store 330 329 + 331: 6(int) Load 8(invocation) + 332: 71(ptr) AccessChain 31(data) 63 63 + 333: 25(ivec4) Load 332 + 334: 70(ivec2) VectorShuffle 333 333 0 1 + 335: 17(ivec4) Load 19(ballot) + 336: 70(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 334 335 + 337: 71(ptr) AccessChain 31(data) 331 63 + 338: 25(ivec4) Load 337 + 339: 25(ivec4) VectorShuffle 338 336 4 5 2 3 + Store 337 339 + 340: 6(int) Load 8(invocation) + 341: 71(ptr) AccessChain 31(data) 33 63 + 342: 25(ivec4) Load 341 + 343: 78(ivec3) VectorShuffle 342 342 0 1 2 + 344: 17(ivec4) Load 19(ballot) + 345: 78(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 343 344 + 346: 71(ptr) AccessChain 31(data) 340 63 + 347: 25(ivec4) Load 346 + 348: 25(ivec4) VectorShuffle 347 345 4 5 6 3 + Store 346 348 + 349: 6(int) Load 8(invocation) + 350: 71(ptr) AccessChain 31(data) 115 63 + 351: 25(ivec4) Load 350 + 352: 17(ivec4) Load 19(ballot) + 353: 25(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 351 352 + 354: 71(ptr) AccessChain 31(data) 349 63 + Store 354 353 + 355: 6(int) Load 8(invocation) + 356: 90(ptr) AccessChain 31(data) 34 33 35 + 357: 6(int) Load 356 + 358: 17(ivec4) Load 19(ballot) + 359: 6(int) GroupNonUniformIMul 178 PartitionedReduceNV 357 358 + 360: 90(ptr) AccessChain 31(data) 355 33 35 + Store 360 359 + 361: 6(int) Load 8(invocation) + 362: 40(ptr) AccessChain 31(data) 63 33 + 363: 17(ivec4) Load 362 + 364: 96(ivec2) VectorShuffle 363 363 0 1 + 365: 17(ivec4) Load 19(ballot) + 366: 96(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 364 365 + 367: 40(ptr) AccessChain 31(data) 361 33 + 368: 17(ivec4) Load 367 + 369: 17(ivec4) VectorShuffle 368 366 4 5 2 3 + Store 367 369 + 370: 6(int) Load 8(invocation) + 371: 40(ptr) AccessChain 31(data) 33 33 + 372: 17(ivec4) Load 371 + 373: 103(ivec3) VectorShuffle 372 372 0 1 2 + 374: 17(ivec4) Load 19(ballot) + 375: 103(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 373 374 + 376: 40(ptr) AccessChain 31(data) 370 33 + 377: 17(ivec4) Load 376 + 378: 17(ivec4) VectorShuffle 377 375 4 5 6 3 + Store 376 378 + 379: 6(int) Load 8(invocation) + 380: 40(ptr) AccessChain 31(data) 115 33 + 381: 17(ivec4) Load 380 + 382: 17(ivec4) Load 19(ballot) + 383: 17(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 381 382 + 384: 40(ptr) AccessChain 31(data) 379 33 + Store 384 383 + 385: 6(int) Load 8(invocation) + 386: 116(ptr) AccessChain 31(data) 34 115 35 + 387:26(float64_t) Load 386 + 388: 17(ivec4) Load 19(ballot) + 389:26(float64_t) GroupNonUniformFMul 178 PartitionedReduceNV 387 388 + 390: 116(ptr) AccessChain 31(data) 385 115 35 + Store 390 389 + 391: 6(int) Load 8(invocation) + 392: 123(ptr) AccessChain 31(data) 63 115 + 393: 27(f64vec4) Load 392 + 394:122(f64vec2) VectorShuffle 393 393 0 1 + 395: 17(ivec4) Load 19(ballot) + 396:122(f64vec2) GroupNonUniformFMul 178 PartitionedReduceNV 394 395 + 397: 123(ptr) AccessChain 31(data) 391 115 + 398: 27(f64vec4) Load 397 + 399: 27(f64vec4) VectorShuffle 398 396 4 5 2 3 + Store 397 399 + 400: 6(int) Load 8(invocation) + 401: 123(ptr) AccessChain 31(data) 33 115 + 402: 27(f64vec4) Load 401 + 403:130(f64vec3) VectorShuffle 402 402 0 1 2 + 404: 17(ivec4) Load 19(ballot) + 405:130(f64vec3) GroupNonUniformFMul 178 PartitionedReduceNV 403 404 + 406: 123(ptr) AccessChain 31(data) 400 115 + 407: 27(f64vec4) Load 406 + 408: 27(f64vec4) VectorShuffle 407 405 4 5 6 3 + Store 406 408 + 409: 6(int) Load 8(invocation) + 410: 123(ptr) AccessChain 31(data) 115 115 + 411: 27(f64vec4) Load 410 + 412: 17(ivec4) Load 19(ballot) + 413: 27(f64vec4) GroupNonUniformFMul 178 PartitionedReduceNV 411 412 + 414: 123(ptr) AccessChain 31(data) 409 115 + Store 414 413 + 415: 6(int) Load 8(invocation) + 416: 36(ptr) AccessChain 31(data) 34 34 35 + 417: 22(float) Load 416 + 418: 17(ivec4) Load 19(ballot) + 419: 22(float) GroupNonUniformFMin 178 PartitionedReduceNV 417 418 + 420: 36(ptr) AccessChain 31(data) 415 34 35 + Store 420 419 + 421: 6(int) Load 8(invocation) + 422: 44(ptr) AccessChain 31(data) 63 34 + 423: 23(fvec4) Load 422 + 424: 43(fvec2) VectorShuffle 423 423 0 1 + 425: 17(ivec4) Load 19(ballot) + 426: 43(fvec2) GroupNonUniformFMin 178 PartitionedReduceNV 424 425 + 427: 44(ptr) AccessChain 31(data) 421 34 + 428: 23(fvec4) Load 427 + 429: 23(fvec4) VectorShuffle 428 426 4 5 2 3 + Store 427 429 + 430: 6(int) Load 8(invocation) + 431: 44(ptr) AccessChain 31(data) 33 34 + 432: 23(fvec4) Load 431 + 433: 51(fvec3) VectorShuffle 432 432 0 1 2 + 434: 17(ivec4) Load 19(ballot) + 435: 51(fvec3) GroupNonUniformFMin 178 PartitionedReduceNV 433 434 + 436: 44(ptr) AccessChain 31(data) 430 34 + 437: 23(fvec4) Load 436 + 438: 23(fvec4) VectorShuffle 437 435 4 5 6 3 + Store 436 438 + 439: 6(int) Load 8(invocation) + 440: 44(ptr) AccessChain 31(data) 115 34 + 441: 23(fvec4) Load 440 + 442: 17(ivec4) Load 19(ballot) + 443: 23(fvec4) GroupNonUniformFMin 178 PartitionedReduceNV 441 442 + 444: 44(ptr) AccessChain 31(data) 439 34 + Store 444 443 + 445: 6(int) Load 8(invocation) + 446: 64(ptr) AccessChain 31(data) 34 63 35 + 447: 24(int) Load 446 + 448: 17(ivec4) Load 19(ballot) + 449: 24(int) GroupNonUniformSMin 178 PartitionedReduceNV 447 448 + 450: 64(ptr) AccessChain 31(data) 445 63 35 + Store 450 449 + 451: 6(int) Load 8(invocation) + 452: 71(ptr) AccessChain 31(data) 63 63 + 453: 25(ivec4) Load 452 + 454: 70(ivec2) VectorShuffle 453 453 0 1 + 455: 17(ivec4) Load 19(ballot) + 456: 70(ivec2) GroupNonUniformSMin 178 PartitionedReduceNV 454 455 + 457: 71(ptr) AccessChain 31(data) 451 63 + 458: 25(ivec4) Load 457 + 459: 25(ivec4) VectorShuffle 458 456 4 5 2 3 + Store 457 459 + 460: 6(int) Load 8(invocation) + 461: 71(ptr) AccessChain 31(data) 33 63 + 462: 25(ivec4) Load 461 + 463: 78(ivec3) VectorShuffle 462 462 0 1 2 + 464: 17(ivec4) Load 19(ballot) + 465: 78(ivec3) GroupNonUniformSMin 178 PartitionedReduceNV 463 464 + 466: 71(ptr) AccessChain 31(data) 460 63 + 467: 25(ivec4) Load 466 + 468: 25(ivec4) VectorShuffle 467 465 4 5 6 3 + Store 466 468 + 469: 6(int) Load 8(invocation) + 470: 71(ptr) AccessChain 31(data) 115 63 + 471: 25(ivec4) Load 470 + 472: 17(ivec4) Load 19(ballot) + 473: 25(ivec4) GroupNonUniformSMin 178 PartitionedReduceNV 471 472 + 474: 71(ptr) AccessChain 31(data) 469 63 + Store 474 473 + 475: 6(int) Load 8(invocation) + 476: 90(ptr) AccessChain 31(data) 34 33 35 + 477: 6(int) Load 476 + 478: 17(ivec4) Load 19(ballot) + 479: 6(int) GroupNonUniformUMin 178 PartitionedReduceNV 477 478 + 480: 90(ptr) AccessChain 31(data) 475 33 35 + Store 480 479 + 481: 6(int) Load 8(invocation) + 482: 40(ptr) AccessChain 31(data) 63 33 + 483: 17(ivec4) Load 482 + 484: 96(ivec2) VectorShuffle 483 483 0 1 + 485: 17(ivec4) Load 19(ballot) + 486: 96(ivec2) GroupNonUniformUMin 178 PartitionedReduceNV 484 485 + 487: 40(ptr) AccessChain 31(data) 481 33 + 488: 17(ivec4) Load 487 + 489: 17(ivec4) VectorShuffle 488 486 4 5 2 3 + Store 487 489 + 490: 6(int) Load 8(invocation) + 491: 40(ptr) AccessChain 31(data) 33 33 + 492: 17(ivec4) Load 491 + 493: 103(ivec3) VectorShuffle 492 492 0 1 2 + 494: 17(ivec4) Load 19(ballot) + 495: 103(ivec3) GroupNonUniformUMin 178 PartitionedReduceNV 493 494 + 496: 40(ptr) AccessChain 31(data) 490 33 + 497: 17(ivec4) Load 496 + 498: 17(ivec4) VectorShuffle 497 495 4 5 6 3 + Store 496 498 + 499: 6(int) Load 8(invocation) + 500: 40(ptr) AccessChain 31(data) 115 33 + 501: 17(ivec4) Load 500 + 502: 17(ivec4) Load 19(ballot) + 503: 17(ivec4) GroupNonUniformUMin 178 PartitionedReduceNV 501 502 + 504: 40(ptr) AccessChain 31(data) 499 33 + Store 504 503 + 505: 6(int) Load 8(invocation) + 506: 116(ptr) AccessChain 31(data) 34 115 35 + 507:26(float64_t) Load 506 + 508: 17(ivec4) Load 19(ballot) + 509:26(float64_t) GroupNonUniformFMin 178 PartitionedReduceNV 507 508 + 510: 116(ptr) AccessChain 31(data) 505 115 35 + Store 510 509 + 511: 6(int) Load 8(invocation) + 512: 123(ptr) AccessChain 31(data) 63 115 + 513: 27(f64vec4) Load 512 + 514:122(f64vec2) VectorShuffle 513 513 0 1 + 515: 17(ivec4) Load 19(ballot) + 516:122(f64vec2) GroupNonUniformFMin 178 PartitionedReduceNV 514 515 + 517: 123(ptr) AccessChain 31(data) 511 115 + 518: 27(f64vec4) Load 517 + 519: 27(f64vec4) VectorShuffle 518 516 4 5 2 3 + Store 517 519 + 520: 6(int) Load 8(invocation) + 521: 123(ptr) AccessChain 31(data) 33 115 + 522: 27(f64vec4) Load 521 + 523:130(f64vec3) VectorShuffle 522 522 0 1 2 + 524: 17(ivec4) Load 19(ballot) + 525:130(f64vec3) GroupNonUniformFMin 178 PartitionedReduceNV 523 524 + 526: 123(ptr) AccessChain 31(data) 520 115 + 527: 27(f64vec4) Load 526 + 528: 27(f64vec4) VectorShuffle 527 525 4 5 6 3 + Store 526 528 + 529: 6(int) Load 8(invocation) + 530: 123(ptr) AccessChain 31(data) 115 115 + 531: 27(f64vec4) Load 530 + 532: 17(ivec4) Load 19(ballot) + 533: 27(f64vec4) GroupNonUniformFMin 178 PartitionedReduceNV 531 532 + 534: 123(ptr) AccessChain 31(data) 529 115 + Store 534 533 + 535: 6(int) Load 8(invocation) + 536: 36(ptr) AccessChain 31(data) 34 34 35 + 537: 22(float) Load 536 + 538: 17(ivec4) Load 19(ballot) + 539: 22(float) GroupNonUniformFMax 178 PartitionedReduceNV 537 538 + 540: 36(ptr) AccessChain 31(data) 535 34 35 + Store 540 539 + 541: 6(int) Load 8(invocation) + 542: 44(ptr) AccessChain 31(data) 63 34 + 543: 23(fvec4) Load 542 + 544: 43(fvec2) VectorShuffle 543 543 0 1 + 545: 17(ivec4) Load 19(ballot) + 546: 43(fvec2) GroupNonUniformFMax 178 PartitionedReduceNV 544 545 + 547: 44(ptr) AccessChain 31(data) 541 34 + 548: 23(fvec4) Load 547 + 549: 23(fvec4) VectorShuffle 548 546 4 5 2 3 + Store 547 549 + 550: 6(int) Load 8(invocation) + 551: 44(ptr) AccessChain 31(data) 33 34 + 552: 23(fvec4) Load 551 + 553: 51(fvec3) VectorShuffle 552 552 0 1 2 + 554: 17(ivec4) Load 19(ballot) + 555: 51(fvec3) GroupNonUniformFMax 178 PartitionedReduceNV 553 554 + 556: 44(ptr) AccessChain 31(data) 550 34 + 557: 23(fvec4) Load 556 + 558: 23(fvec4) VectorShuffle 557 555 4 5 6 3 + Store 556 558 + 559: 6(int) Load 8(invocation) + 560: 44(ptr) AccessChain 31(data) 115 34 + 561: 23(fvec4) Load 560 + 562: 17(ivec4) Load 19(ballot) + 563: 23(fvec4) GroupNonUniformFMax 178 PartitionedReduceNV 561 562 + 564: 44(ptr) AccessChain 31(data) 559 34 + Store 564 563 + 565: 6(int) Load 8(invocation) + 566: 64(ptr) AccessChain 31(data) 34 63 35 + 567: 24(int) Load 566 + 568: 17(ivec4) Load 19(ballot) + 569: 24(int) GroupNonUniformSMax 178 PartitionedReduceNV 567 568 + 570: 64(ptr) AccessChain 31(data) 565 63 35 + Store 570 569 + 571: 6(int) Load 8(invocation) + 572: 71(ptr) AccessChain 31(data) 63 63 + 573: 25(ivec4) Load 572 + 574: 70(ivec2) VectorShuffle 573 573 0 1 + 575: 17(ivec4) Load 19(ballot) + 576: 70(ivec2) GroupNonUniformSMax 178 PartitionedReduceNV 574 575 + 577: 71(ptr) AccessChain 31(data) 571 63 + 578: 25(ivec4) Load 577 + 579: 25(ivec4) VectorShuffle 578 576 4 5 2 3 + Store 577 579 + 580: 6(int) Load 8(invocation) + 581: 71(ptr) AccessChain 31(data) 33 63 + 582: 25(ivec4) Load 581 + 583: 78(ivec3) VectorShuffle 582 582 0 1 2 + 584: 17(ivec4) Load 19(ballot) + 585: 78(ivec3) GroupNonUniformSMax 178 PartitionedReduceNV 583 584 + 586: 71(ptr) AccessChain 31(data) 580 63 + 587: 25(ivec4) Load 586 + 588: 25(ivec4) VectorShuffle 587 585 4 5 6 3 + Store 586 588 + 589: 6(int) Load 8(invocation) + 590: 71(ptr) AccessChain 31(data) 115 63 + 591: 25(ivec4) Load 590 + 592: 17(ivec4) Load 19(ballot) + 593: 25(ivec4) GroupNonUniformSMax 178 PartitionedReduceNV 591 592 + 594: 71(ptr) AccessChain 31(data) 589 63 + Store 594 593 + 595: 6(int) Load 8(invocation) + 596: 90(ptr) AccessChain 31(data) 34 33 35 + 597: 6(int) Load 596 + 598: 17(ivec4) Load 19(ballot) + 599: 6(int) GroupNonUniformUMax 178 PartitionedReduceNV 597 598 + 600: 90(ptr) AccessChain 31(data) 595 33 35 + Store 600 599 + 601: 6(int) Load 8(invocation) + 602: 40(ptr) AccessChain 31(data) 63 33 + 603: 17(ivec4) Load 602 + 604: 96(ivec2) VectorShuffle 603 603 0 1 + 605: 17(ivec4) Load 19(ballot) + 606: 96(ivec2) GroupNonUniformUMax 178 PartitionedReduceNV 604 605 + 607: 40(ptr) AccessChain 31(data) 601 33 + 608: 17(ivec4) Load 607 + 609: 17(ivec4) VectorShuffle 608 606 4 5 2 3 + Store 607 609 + 610: 6(int) Load 8(invocation) + 611: 40(ptr) AccessChain 31(data) 33 33 + 612: 17(ivec4) Load 611 + 613: 103(ivec3) VectorShuffle 612 612 0 1 2 + 614: 17(ivec4) Load 19(ballot) + 615: 103(ivec3) GroupNonUniformUMax 178 PartitionedReduceNV 613 614 + 616: 40(ptr) AccessChain 31(data) 610 33 + 617: 17(ivec4) Load 616 + 618: 17(ivec4) VectorShuffle 617 615 4 5 6 3 + Store 616 618 + 619: 6(int) Load 8(invocation) + 620: 40(ptr) AccessChain 31(data) 115 33 + 621: 17(ivec4) Load 620 + 622: 17(ivec4) Load 19(ballot) + 623: 17(ivec4) GroupNonUniformUMax 178 PartitionedReduceNV 621 622 + 624: 40(ptr) AccessChain 31(data) 619 33 + Store 624 623 + 625: 6(int) Load 8(invocation) + 626: 116(ptr) AccessChain 31(data) 34 115 35 + 627:26(float64_t) Load 626 + 628: 17(ivec4) Load 19(ballot) + 629:26(float64_t) GroupNonUniformFMax 178 PartitionedReduceNV 627 628 + 630: 116(ptr) AccessChain 31(data) 625 115 35 + Store 630 629 + 631: 6(int) Load 8(invocation) + 632: 123(ptr) AccessChain 31(data) 63 115 + 633: 27(f64vec4) Load 632 + 634:122(f64vec2) VectorShuffle 633 633 0 1 + 635: 17(ivec4) Load 19(ballot) + 636:122(f64vec2) GroupNonUniformFMax 178 PartitionedReduceNV 634 635 + 637: 123(ptr) AccessChain 31(data) 631 115 + 638: 27(f64vec4) Load 637 + 639: 27(f64vec4) VectorShuffle 638 636 4 5 2 3 + Store 637 639 + 640: 6(int) Load 8(invocation) + 641: 123(ptr) AccessChain 31(data) 33 115 + 642: 27(f64vec4) Load 641 + 643:130(f64vec3) VectorShuffle 642 642 0 1 2 + 644: 17(ivec4) Load 19(ballot) + 645:130(f64vec3) GroupNonUniformFMax 178 PartitionedReduceNV 643 644 + 646: 123(ptr) AccessChain 31(data) 640 115 + 647: 27(f64vec4) Load 646 + 648: 27(f64vec4) VectorShuffle 647 645 4 5 6 3 + Store 646 648 + 649: 6(int) Load 8(invocation) + 650: 123(ptr) AccessChain 31(data) 115 115 + 651: 27(f64vec4) Load 650 + 652: 17(ivec4) Load 19(ballot) + 653: 27(f64vec4) GroupNonUniformFMax 178 PartitionedReduceNV 651 652 + 654: 123(ptr) AccessChain 31(data) 649 115 + Store 654 653 + 655: 6(int) Load 8(invocation) + 656: 64(ptr) AccessChain 31(data) 34 63 35 + 657: 24(int) Load 656 + 658: 17(ivec4) Load 19(ballot) + 659: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 657 658 + 660: 64(ptr) AccessChain 31(data) 655 63 35 + Store 660 659 + 661: 6(int) Load 8(invocation) + 662: 71(ptr) AccessChain 31(data) 63 63 + 663: 25(ivec4) Load 662 + 664: 70(ivec2) VectorShuffle 663 663 0 1 + 665: 17(ivec4) Load 19(ballot) + 666: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 664 665 + 667: 71(ptr) AccessChain 31(data) 661 63 + 668: 25(ivec4) Load 667 + 669: 25(ivec4) VectorShuffle 668 666 4 5 2 3 + Store 667 669 + 670: 6(int) Load 8(invocation) + 671: 71(ptr) AccessChain 31(data) 33 63 + 672: 25(ivec4) Load 671 + 673: 78(ivec3) VectorShuffle 672 672 0 1 2 + 674: 17(ivec4) Load 19(ballot) + 675: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 673 674 + 676: 71(ptr) AccessChain 31(data) 670 63 + 677: 25(ivec4) Load 676 + 678: 25(ivec4) VectorShuffle 677 675 4 5 6 3 + Store 676 678 + 679: 6(int) Load 8(invocation) + 680: 71(ptr) AccessChain 31(data) 115 63 + 681: 25(ivec4) Load 680 + 682: 17(ivec4) Load 19(ballot) + 683: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 681 682 + 684: 71(ptr) AccessChain 31(data) 679 63 + Store 684 683 + 685: 6(int) Load 8(invocation) + 686: 90(ptr) AccessChain 31(data) 34 33 35 + 687: 6(int) Load 686 + 688: 17(ivec4) Load 19(ballot) + 689: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 687 688 + 690: 90(ptr) AccessChain 31(data) 685 33 35 + Store 690 689 + 691: 6(int) Load 8(invocation) + 692: 40(ptr) AccessChain 31(data) 63 33 + 693: 17(ivec4) Load 692 + 694: 96(ivec2) VectorShuffle 693 693 0 1 + 695: 17(ivec4) Load 19(ballot) + 696: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 694 695 + 697: 40(ptr) AccessChain 31(data) 691 33 + 698: 17(ivec4) Load 697 + 699: 17(ivec4) VectorShuffle 698 696 4 5 2 3 + Store 697 699 + 700: 6(int) Load 8(invocation) + 701: 40(ptr) AccessChain 31(data) 33 33 + 702: 17(ivec4) Load 701 + 703: 103(ivec3) VectorShuffle 702 702 0 1 2 + 704: 17(ivec4) Load 19(ballot) + 705: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 703 704 + 706: 40(ptr) AccessChain 31(data) 700 33 + 707: 17(ivec4) Load 706 + 708: 17(ivec4) VectorShuffle 707 705 4 5 6 3 + Store 706 708 + 709: 6(int) Load 8(invocation) + 710: 40(ptr) AccessChain 31(data) 115 33 + 711: 17(ivec4) Load 710 + 712: 17(ivec4) Load 19(ballot) + 713: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 711 712 + 714: 40(ptr) AccessChain 31(data) 709 33 + Store 714 713 + 715: 6(int) Load 8(invocation) + 716: 64(ptr) AccessChain 31(data) 34 63 35 + 717: 24(int) Load 716 + 718: 144(bool) SLessThan 717 34 + 719: 17(ivec4) Load 19(ballot) + 720: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 718 719 + 721: 24(int) Select 720 63 34 + 722: 64(ptr) AccessChain 31(data) 715 63 35 + Store 722 721 + 723: 6(int) Load 8(invocation) + 724: 71(ptr) AccessChain 31(data) 63 63 + 725: 25(ivec4) Load 724 + 726: 70(ivec2) VectorShuffle 725 725 0 1 + 728: 152(bvec2) SLessThan 726 727 + 729: 17(ivec4) Load 19(ballot) + 730: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 728 729 + 732: 70(ivec2) Select 730 731 727 + 733: 71(ptr) AccessChain 31(data) 723 63 + 734: 25(ivec4) Load 733 + 735: 25(ivec4) VectorShuffle 734 732 4 5 2 3 + Store 733 735 + 736: 6(int) Load 8(invocation) + 737: 71(ptr) AccessChain 31(data) 63 63 + 738: 25(ivec4) Load 737 + 739: 78(ivec3) VectorShuffle 738 738 0 1 2 + 741: 161(bvec3) SLessThan 739 740 + 742: 17(ivec4) Load 19(ballot) + 743: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 741 742 + 745: 78(ivec3) Select 743 744 740 + 746: 71(ptr) AccessChain 31(data) 736 63 + 747: 25(ivec4) Load 746 + 748: 25(ivec4) VectorShuffle 747 745 4 5 6 3 + Store 746 748 + 749: 6(int) Load 8(invocation) + 750: 71(ptr) AccessChain 31(data) 63 63 + 751: 25(ivec4) Load 750 + 753: 169(bvec4) SLessThan 751 752 + 754: 17(ivec4) Load 19(ballot) + 755: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 753 754 + 757: 25(ivec4) Select 755 756 752 + 758: 71(ptr) AccessChain 31(data) 749 63 + Store 758 757 + 759: 6(int) Load 8(invocation) + 760: 64(ptr) AccessChain 31(data) 34 63 35 + 761: 24(int) Load 760 + 762: 17(ivec4) Load 19(ballot) + 763: 24(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 761 762 + 764: 64(ptr) AccessChain 31(data) 759 63 35 + Store 764 763 + 765: 6(int) Load 8(invocation) + 766: 71(ptr) AccessChain 31(data) 63 63 + 767: 25(ivec4) Load 766 + 768: 70(ivec2) VectorShuffle 767 767 0 1 + 769: 17(ivec4) Load 19(ballot) + 770: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 768 769 + 771: 71(ptr) AccessChain 31(data) 765 63 + 772: 25(ivec4) Load 771 + 773: 25(ivec4) VectorShuffle 772 770 4 5 2 3 + Store 771 773 + 774: 6(int) Load 8(invocation) + 775: 71(ptr) AccessChain 31(data) 33 63 + 776: 25(ivec4) Load 775 + 777: 78(ivec3) VectorShuffle 776 776 0 1 2 + 778: 17(ivec4) Load 19(ballot) + 779: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 777 778 + 780: 71(ptr) AccessChain 31(data) 774 63 + 781: 25(ivec4) Load 780 + 782: 25(ivec4) VectorShuffle 781 779 4 5 6 3 + Store 780 782 + 783: 6(int) Load 8(invocation) + 784: 71(ptr) AccessChain 31(data) 115 63 + 785: 25(ivec4) Load 784 + 786: 17(ivec4) Load 19(ballot) + 787: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 785 786 + 788: 71(ptr) AccessChain 31(data) 783 63 + Store 788 787 + 789: 6(int) Load 8(invocation) + 790: 90(ptr) AccessChain 31(data) 34 33 35 + 791: 6(int) Load 790 + 792: 17(ivec4) Load 19(ballot) + 793: 6(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 791 792 + 794: 90(ptr) AccessChain 31(data) 789 33 35 + Store 794 793 + 795: 6(int) Load 8(invocation) + 796: 40(ptr) AccessChain 31(data) 63 33 + 797: 17(ivec4) Load 796 + 798: 96(ivec2) VectorShuffle 797 797 0 1 + 799: 17(ivec4) Load 19(ballot) + 800: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 798 799 + 801: 40(ptr) AccessChain 31(data) 795 33 + 802: 17(ivec4) Load 801 + 803: 17(ivec4) VectorShuffle 802 800 4 5 2 3 + Store 801 803 + 804: 6(int) Load 8(invocation) + 805: 40(ptr) AccessChain 31(data) 33 33 + 806: 17(ivec4) Load 805 + 807: 103(ivec3) VectorShuffle 806 806 0 1 2 + 808: 17(ivec4) Load 19(ballot) + 809: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 807 808 + 810: 40(ptr) AccessChain 31(data) 804 33 + 811: 17(ivec4) Load 810 + 812: 17(ivec4) VectorShuffle 811 809 4 5 6 3 + Store 810 812 + 813: 6(int) Load 8(invocation) + 814: 40(ptr) AccessChain 31(data) 115 33 + 815: 17(ivec4) Load 814 + 816: 17(ivec4) Load 19(ballot) + 817: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 815 816 + 818: 40(ptr) AccessChain 31(data) 813 33 + Store 818 817 + 819: 6(int) Load 8(invocation) + 820: 64(ptr) AccessChain 31(data) 34 63 35 + 821: 24(int) Load 820 + 822: 144(bool) SLessThan 821 34 + 823: 17(ivec4) Load 19(ballot) + 824: 144(bool) GroupNonUniformLogicalOr 178 PartitionedReduceNV 822 823 + 825: 24(int) Select 824 63 34 + 826: 64(ptr) AccessChain 31(data) 819 63 35 + Store 826 825 + 827: 6(int) Load 8(invocation) + 828: 71(ptr) AccessChain 31(data) 63 63 + 829: 25(ivec4) Load 828 + 830: 70(ivec2) VectorShuffle 829 829 0 1 + 831: 152(bvec2) SLessThan 830 727 + 832: 17(ivec4) Load 19(ballot) + 833: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedReduceNV 831 832 + 834: 70(ivec2) Select 833 731 727 + 835: 71(ptr) AccessChain 31(data) 827 63 + 836: 25(ivec4) Load 835 + 837: 25(ivec4) VectorShuffle 836 834 4 5 2 3 + Store 835 837 + 838: 6(int) Load 8(invocation) + 839: 71(ptr) AccessChain 31(data) 63 63 + 840: 25(ivec4) Load 839 + 841: 78(ivec3) VectorShuffle 840 840 0 1 2 + 842: 161(bvec3) SLessThan 841 740 + 843: 17(ivec4) Load 19(ballot) + 844: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedReduceNV 842 843 + 845: 78(ivec3) Select 844 744 740 + 846: 71(ptr) AccessChain 31(data) 838 63 + 847: 25(ivec4) Load 846 + 848: 25(ivec4) VectorShuffle 847 845 4 5 6 3 + Store 846 848 + 849: 6(int) Load 8(invocation) + 850: 71(ptr) AccessChain 31(data) 63 63 + 851: 25(ivec4) Load 850 + 852: 169(bvec4) SLessThan 851 752 + 853: 17(ivec4) Load 19(ballot) + 854: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedReduceNV 852 853 + 855: 25(ivec4) Select 854 756 752 + 856: 71(ptr) AccessChain 31(data) 849 63 + Store 856 855 + 857: 6(int) Load 8(invocation) + 858: 64(ptr) AccessChain 31(data) 34 63 35 + 859: 24(int) Load 858 + 860: 17(ivec4) Load 19(ballot) + 861: 24(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 859 860 + 862: 64(ptr) AccessChain 31(data) 857 63 35 + Store 862 861 + 863: 6(int) Load 8(invocation) + 864: 71(ptr) AccessChain 31(data) 63 63 + 865: 25(ivec4) Load 864 + 866: 70(ivec2) VectorShuffle 865 865 0 1 + 867: 17(ivec4) Load 19(ballot) + 868: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 866 867 + 869: 71(ptr) AccessChain 31(data) 863 63 + 870: 25(ivec4) Load 869 + 871: 25(ivec4) VectorShuffle 870 868 4 5 2 3 + Store 869 871 + 872: 6(int) Load 8(invocation) + 873: 71(ptr) AccessChain 31(data) 33 63 + 874: 25(ivec4) Load 873 + 875: 78(ivec3) VectorShuffle 874 874 0 1 2 + 876: 17(ivec4) Load 19(ballot) + 877: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 875 876 + 878: 71(ptr) AccessChain 31(data) 872 63 + 879: 25(ivec4) Load 878 + 880: 25(ivec4) VectorShuffle 879 877 4 5 6 3 + Store 878 880 + 881: 6(int) Load 8(invocation) + 882: 71(ptr) AccessChain 31(data) 115 63 + 883: 25(ivec4) Load 882 + 884: 17(ivec4) Load 19(ballot) + 885: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 883 884 + 886: 71(ptr) AccessChain 31(data) 881 63 + Store 886 885 + 887: 6(int) Load 8(invocation) + 888: 90(ptr) AccessChain 31(data) 34 33 35 + 889: 6(int) Load 888 + 890: 17(ivec4) Load 19(ballot) + 891: 6(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 889 890 + 892: 90(ptr) AccessChain 31(data) 887 33 35 + Store 892 891 + 893: 6(int) Load 8(invocation) + 894: 40(ptr) AccessChain 31(data) 63 33 + 895: 17(ivec4) Load 894 + 896: 96(ivec2) VectorShuffle 895 895 0 1 + 897: 17(ivec4) Load 19(ballot) + 898: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 896 897 + 899: 40(ptr) AccessChain 31(data) 893 33 + 900: 17(ivec4) Load 899 + 901: 17(ivec4) VectorShuffle 900 898 4 5 2 3 + Store 899 901 + 902: 6(int) Load 8(invocation) + 903: 40(ptr) AccessChain 31(data) 33 33 + 904: 17(ivec4) Load 903 + 905: 103(ivec3) VectorShuffle 904 904 0 1 2 + 906: 17(ivec4) Load 19(ballot) + 907: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 905 906 + 908: 40(ptr) AccessChain 31(data) 902 33 + 909: 17(ivec4) Load 908 + 910: 17(ivec4) VectorShuffle 909 907 4 5 6 3 + Store 908 910 + 911: 6(int) Load 8(invocation) + 912: 40(ptr) AccessChain 31(data) 115 33 + 913: 17(ivec4) Load 912 + 914: 17(ivec4) Load 19(ballot) + 915: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 913 914 + 916: 40(ptr) AccessChain 31(data) 911 33 + Store 916 915 + 917: 6(int) Load 8(invocation) + 918: 64(ptr) AccessChain 31(data) 34 63 35 + 919: 24(int) Load 918 + 920: 144(bool) SLessThan 919 34 + 921: 17(ivec4) Load 19(ballot) + 922: 144(bool) GroupNonUniformLogicalXor 178 PartitionedReduceNV 920 921 + 923: 24(int) Select 922 63 34 + 924: 64(ptr) AccessChain 31(data) 917 63 35 + Store 924 923 + 925: 6(int) Load 8(invocation) + 926: 71(ptr) AccessChain 31(data) 63 63 + 927: 25(ivec4) Load 926 + 928: 70(ivec2) VectorShuffle 927 927 0 1 + 929: 152(bvec2) SLessThan 928 727 + 930: 17(ivec4) Load 19(ballot) + 931: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedReduceNV 929 930 + 932: 70(ivec2) Select 931 731 727 + 933: 71(ptr) AccessChain 31(data) 925 63 + 934: 25(ivec4) Load 933 + 935: 25(ivec4) VectorShuffle 934 932 4 5 2 3 + Store 933 935 + 936: 6(int) Load 8(invocation) + 937: 71(ptr) AccessChain 31(data) 63 63 + 938: 25(ivec4) Load 937 + 939: 78(ivec3) VectorShuffle 938 938 0 1 2 + 940: 161(bvec3) SLessThan 939 740 + 941: 17(ivec4) Load 19(ballot) + 942: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedReduceNV 940 941 + 943: 78(ivec3) Select 942 744 740 + 944: 71(ptr) AccessChain 31(data) 936 63 + 945: 25(ivec4) Load 944 + 946: 25(ivec4) VectorShuffle 945 943 4 5 6 3 + Store 944 946 + 947: 6(int) Load 8(invocation) + 948: 71(ptr) AccessChain 31(data) 63 63 + 949: 25(ivec4) Load 948 + 950: 169(bvec4) SLessThan 949 752 + 951: 17(ivec4) Load 19(ballot) + 952: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedReduceNV 950 951 + 953: 25(ivec4) Select 952 756 752 + 954: 71(ptr) AccessChain 31(data) 947 63 + Store 954 953 + 955: 6(int) Load 8(invocation) + 956: 36(ptr) AccessChain 31(data) 34 34 35 + 957: 22(float) Load 956 + 958: 17(ivec4) Load 19(ballot) + 959: 22(float) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 957 958 + 960: 36(ptr) AccessChain 31(data) 955 34 35 + Store 960 959 + 961: 6(int) Load 8(invocation) + 962: 44(ptr) AccessChain 31(data) 63 34 + 963: 23(fvec4) Load 962 + 964: 43(fvec2) VectorShuffle 963 963 0 1 + 965: 17(ivec4) Load 19(ballot) + 966: 43(fvec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 964 965 + 967: 44(ptr) AccessChain 31(data) 961 34 + 968: 23(fvec4) Load 967 + 969: 23(fvec4) VectorShuffle 968 966 4 5 2 3 + Store 967 969 + 970: 6(int) Load 8(invocation) + 971: 44(ptr) AccessChain 31(data) 33 34 + 972: 23(fvec4) Load 971 + 973: 51(fvec3) VectorShuffle 972 972 0 1 2 + 974: 17(ivec4) Load 19(ballot) + 975: 51(fvec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 973 974 + 976: 44(ptr) AccessChain 31(data) 970 34 + 977: 23(fvec4) Load 976 + 978: 23(fvec4) VectorShuffle 977 975 4 5 6 3 + Store 976 978 + 979: 6(int) Load 8(invocation) + 980: 44(ptr) AccessChain 31(data) 115 34 + 981: 23(fvec4) Load 980 + 982: 17(ivec4) Load 19(ballot) + 983: 23(fvec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 981 982 + 984: 44(ptr) AccessChain 31(data) 979 34 + Store 984 983 + 985: 6(int) Load 8(invocation) + 986: 64(ptr) AccessChain 31(data) 34 63 35 + 987: 24(int) Load 986 + 988: 17(ivec4) Load 19(ballot) + 989: 24(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 987 988 + 990: 64(ptr) AccessChain 31(data) 985 63 35 + Store 990 989 + 991: 6(int) Load 8(invocation) + 992: 71(ptr) AccessChain 31(data) 63 63 + 993: 25(ivec4) Load 992 + 994: 70(ivec2) VectorShuffle 993 993 0 1 + 995: 17(ivec4) Load 19(ballot) + 996: 70(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 994 995 + 997: 71(ptr) AccessChain 31(data) 991 63 + 998: 25(ivec4) Load 997 + 999: 25(ivec4) VectorShuffle 998 996 4 5 2 3 + Store 997 999 + 1000: 6(int) Load 8(invocation) + 1001: 71(ptr) AccessChain 31(data) 33 63 + 1002: 25(ivec4) Load 1001 + 1003: 78(ivec3) VectorShuffle 1002 1002 0 1 2 + 1004: 17(ivec4) Load 19(ballot) + 1005: 78(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1003 1004 + 1006: 71(ptr) AccessChain 31(data) 1000 63 + 1007: 25(ivec4) Load 1006 + 1008: 25(ivec4) VectorShuffle 1007 1005 4 5 6 3 + Store 1006 1008 + 1009: 6(int) Load 8(invocation) + 1010: 71(ptr) AccessChain 31(data) 115 63 + 1011: 25(ivec4) Load 1010 + 1012: 17(ivec4) Load 19(ballot) + 1013: 25(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1011 1012 + 1014: 71(ptr) AccessChain 31(data) 1009 63 + Store 1014 1013 + 1015: 6(int) Load 8(invocation) + 1016: 90(ptr) AccessChain 31(data) 34 33 35 + 1017: 6(int) Load 1016 + 1018: 17(ivec4) Load 19(ballot) + 1019: 6(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1017 1018 + 1020: 90(ptr) AccessChain 31(data) 1015 33 35 + Store 1020 1019 + 1021: 6(int) Load 8(invocation) + 1022: 40(ptr) AccessChain 31(data) 63 33 + 1023: 17(ivec4) Load 1022 + 1024: 96(ivec2) VectorShuffle 1023 1023 0 1 + 1025: 17(ivec4) Load 19(ballot) + 1026: 96(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1024 1025 + 1027: 40(ptr) AccessChain 31(data) 1021 33 + 1028: 17(ivec4) Load 1027 + 1029: 17(ivec4) VectorShuffle 1028 1026 4 5 2 3 + Store 1027 1029 + 1030: 6(int) Load 8(invocation) + 1031: 40(ptr) AccessChain 31(data) 33 33 + 1032: 17(ivec4) Load 1031 + 1033: 103(ivec3) VectorShuffle 1032 1032 0 1 2 + 1034: 17(ivec4) Load 19(ballot) + 1035: 103(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1033 1034 + 1036: 40(ptr) AccessChain 31(data) 1030 33 + 1037: 17(ivec4) Load 1036 + 1038: 17(ivec4) VectorShuffle 1037 1035 4 5 6 3 + Store 1036 1038 + 1039: 6(int) Load 8(invocation) + 1040: 40(ptr) AccessChain 31(data) 115 33 + 1041: 17(ivec4) Load 1040 + 1042: 17(ivec4) Load 19(ballot) + 1043: 17(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1041 1042 + 1044: 40(ptr) AccessChain 31(data) 1039 33 + Store 1044 1043 + 1045: 6(int) Load 8(invocation) + 1046: 116(ptr) AccessChain 31(data) 34 115 35 + 1047:26(float64_t) Load 1046 + 1048: 17(ivec4) Load 19(ballot) + 1049:26(float64_t) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1047 1048 + 1050: 116(ptr) AccessChain 31(data) 1045 115 35 + Store 1050 1049 + 1051: 6(int) Load 8(invocation) + 1052: 123(ptr) AccessChain 31(data) 63 115 + 1053: 27(f64vec4) Load 1052 + 1054:122(f64vec2) VectorShuffle 1053 1053 0 1 + 1055: 17(ivec4) Load 19(ballot) + 1056:122(f64vec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1054 1055 + 1057: 123(ptr) AccessChain 31(data) 1051 115 + 1058: 27(f64vec4) Load 1057 + 1059: 27(f64vec4) VectorShuffle 1058 1056 4 5 2 3 + Store 1057 1059 + 1060: 6(int) Load 8(invocation) + 1061: 123(ptr) AccessChain 31(data) 33 115 + 1062: 27(f64vec4) Load 1061 + 1063:130(f64vec3) VectorShuffle 1062 1062 0 1 2 + 1064: 17(ivec4) Load 19(ballot) + 1065:130(f64vec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1063 1064 + 1066: 123(ptr) AccessChain 31(data) 1060 115 + 1067: 27(f64vec4) Load 1066 + 1068: 27(f64vec4) VectorShuffle 1067 1065 4 5 6 3 + Store 1066 1068 + 1069: 6(int) Load 8(invocation) + 1070: 123(ptr) AccessChain 31(data) 115 115 + 1071: 27(f64vec4) Load 1070 + 1072: 17(ivec4) Load 19(ballot) + 1073: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1071 1072 + 1074: 123(ptr) AccessChain 31(data) 1069 115 + Store 1074 1073 + 1075: 6(int) Load 8(invocation) + 1076: 36(ptr) AccessChain 31(data) 34 34 35 + 1077: 22(float) Load 1076 + 1078: 17(ivec4) Load 19(ballot) + 1079: 22(float) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1077 1078 + 1080: 36(ptr) AccessChain 31(data) 1075 34 35 + Store 1080 1079 + 1081: 6(int) Load 8(invocation) + 1082: 44(ptr) AccessChain 31(data) 63 34 + 1083: 23(fvec4) Load 1082 + 1084: 43(fvec2) VectorShuffle 1083 1083 0 1 + 1085: 17(ivec4) Load 19(ballot) + 1086: 43(fvec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1084 1085 + 1087: 44(ptr) AccessChain 31(data) 1081 34 + 1088: 23(fvec4) Load 1087 + 1089: 23(fvec4) VectorShuffle 1088 1086 4 5 2 3 + Store 1087 1089 + 1090: 6(int) Load 8(invocation) + 1091: 44(ptr) AccessChain 31(data) 33 34 + 1092: 23(fvec4) Load 1091 + 1093: 51(fvec3) VectorShuffle 1092 1092 0 1 2 + 1094: 17(ivec4) Load 19(ballot) + 1095: 51(fvec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1093 1094 + 1096: 44(ptr) AccessChain 31(data) 1090 34 + 1097: 23(fvec4) Load 1096 + 1098: 23(fvec4) VectorShuffle 1097 1095 4 5 6 3 + Store 1096 1098 + 1099: 6(int) Load 8(invocation) + 1100: 44(ptr) AccessChain 31(data) 115 34 + 1101: 23(fvec4) Load 1100 + 1102: 17(ivec4) Load 19(ballot) + 1103: 23(fvec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1101 1102 + 1104: 44(ptr) AccessChain 31(data) 1099 34 + Store 1104 1103 + 1105: 6(int) Load 8(invocation) + 1106: 64(ptr) AccessChain 31(data) 34 63 35 + 1107: 24(int) Load 1106 + 1108: 17(ivec4) Load 19(ballot) + 1109: 24(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1107 1108 + 1110: 64(ptr) AccessChain 31(data) 1105 63 35 + Store 1110 1109 + 1111: 6(int) Load 8(invocation) + 1112: 71(ptr) AccessChain 31(data) 63 63 + 1113: 25(ivec4) Load 1112 + 1114: 70(ivec2) VectorShuffle 1113 1113 0 1 + 1115: 17(ivec4) Load 19(ballot) + 1116: 70(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1114 1115 + 1117: 71(ptr) AccessChain 31(data) 1111 63 + 1118: 25(ivec4) Load 1117 + 1119: 25(ivec4) VectorShuffle 1118 1116 4 5 2 3 + Store 1117 1119 + 1120: 6(int) Load 8(invocation) + 1121: 71(ptr) AccessChain 31(data) 33 63 + 1122: 25(ivec4) Load 1121 + 1123: 78(ivec3) VectorShuffle 1122 1122 0 1 2 + 1124: 17(ivec4) Load 19(ballot) + 1125: 78(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1123 1124 + 1126: 71(ptr) AccessChain 31(data) 1120 63 + 1127: 25(ivec4) Load 1126 + 1128: 25(ivec4) VectorShuffle 1127 1125 4 5 6 3 + Store 1126 1128 + 1129: 6(int) Load 8(invocation) + 1130: 71(ptr) AccessChain 31(data) 115 63 + 1131: 25(ivec4) Load 1130 + 1132: 17(ivec4) Load 19(ballot) + 1133: 25(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1131 1132 + 1134: 71(ptr) AccessChain 31(data) 1129 63 + Store 1134 1133 + 1135: 6(int) Load 8(invocation) + 1136: 90(ptr) AccessChain 31(data) 34 33 35 + 1137: 6(int) Load 1136 + 1138: 17(ivec4) Load 19(ballot) + 1139: 6(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1137 1138 + 1140: 90(ptr) AccessChain 31(data) 1135 33 35 + Store 1140 1139 + 1141: 6(int) Load 8(invocation) + 1142: 40(ptr) AccessChain 31(data) 63 33 + 1143: 17(ivec4) Load 1142 + 1144: 96(ivec2) VectorShuffle 1143 1143 0 1 + 1145: 17(ivec4) Load 19(ballot) + 1146: 96(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1144 1145 + 1147: 40(ptr) AccessChain 31(data) 1141 33 + 1148: 17(ivec4) Load 1147 + 1149: 17(ivec4) VectorShuffle 1148 1146 4 5 2 3 + Store 1147 1149 + 1150: 6(int) Load 8(invocation) + 1151: 40(ptr) AccessChain 31(data) 33 33 + 1152: 17(ivec4) Load 1151 + 1153: 103(ivec3) VectorShuffle 1152 1152 0 1 2 + 1154: 17(ivec4) Load 19(ballot) + 1155: 103(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1153 1154 + 1156: 40(ptr) AccessChain 31(data) 1150 33 + 1157: 17(ivec4) Load 1156 + 1158: 17(ivec4) VectorShuffle 1157 1155 4 5 6 3 + Store 1156 1158 + 1159: 6(int) Load 8(invocation) + 1160: 40(ptr) AccessChain 31(data) 115 33 + 1161: 17(ivec4) Load 1160 + 1162: 17(ivec4) Load 19(ballot) + 1163: 17(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1161 1162 + 1164: 40(ptr) AccessChain 31(data) 1159 33 + Store 1164 1163 + 1165: 6(int) Load 8(invocation) + 1166: 116(ptr) AccessChain 31(data) 34 115 35 + 1167:26(float64_t) Load 1166 + 1168: 17(ivec4) Load 19(ballot) + 1169:26(float64_t) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1167 1168 + 1170: 116(ptr) AccessChain 31(data) 1165 115 35 + Store 1170 1169 + 1171: 6(int) Load 8(invocation) + 1172: 123(ptr) AccessChain 31(data) 63 115 + 1173: 27(f64vec4) Load 1172 + 1174:122(f64vec2) VectorShuffle 1173 1173 0 1 + 1175: 17(ivec4) Load 19(ballot) + 1176:122(f64vec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1174 1175 + 1177: 123(ptr) AccessChain 31(data) 1171 115 + 1178: 27(f64vec4) Load 1177 + 1179: 27(f64vec4) VectorShuffle 1178 1176 4 5 2 3 + Store 1177 1179 + 1180: 6(int) Load 8(invocation) + 1181: 123(ptr) AccessChain 31(data) 33 115 + 1182: 27(f64vec4) Load 1181 + 1183:130(f64vec3) VectorShuffle 1182 1182 0 1 2 + 1184: 17(ivec4) Load 19(ballot) + 1185:130(f64vec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1183 1184 + 1186: 123(ptr) AccessChain 31(data) 1180 115 + 1187: 27(f64vec4) Load 1186 + 1188: 27(f64vec4) VectorShuffle 1187 1185 4 5 6 3 + Store 1186 1188 + 1189: 6(int) Load 8(invocation) + 1190: 123(ptr) AccessChain 31(data) 115 115 + 1191: 27(f64vec4) Load 1190 + 1192: 17(ivec4) Load 19(ballot) + 1193: 27(f64vec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1191 1192 + 1194: 123(ptr) AccessChain 31(data) 1189 115 + Store 1194 1193 + 1195: 6(int) Load 8(invocation) + 1196: 36(ptr) AccessChain 31(data) 34 34 35 + 1197: 22(float) Load 1196 + 1198: 17(ivec4) Load 19(ballot) + 1199: 22(float) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1197 1198 + 1200: 36(ptr) AccessChain 31(data) 1195 34 35 + Store 1200 1199 + 1201: 6(int) Load 8(invocation) + 1202: 44(ptr) AccessChain 31(data) 63 34 + 1203: 23(fvec4) Load 1202 + 1204: 43(fvec2) VectorShuffle 1203 1203 0 1 + 1205: 17(ivec4) Load 19(ballot) + 1206: 43(fvec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1204 1205 + 1207: 44(ptr) AccessChain 31(data) 1201 34 + 1208: 23(fvec4) Load 1207 + 1209: 23(fvec4) VectorShuffle 1208 1206 4 5 2 3 + Store 1207 1209 + 1210: 6(int) Load 8(invocation) + 1211: 44(ptr) AccessChain 31(data) 33 34 + 1212: 23(fvec4) Load 1211 + 1213: 51(fvec3) VectorShuffle 1212 1212 0 1 2 + 1214: 17(ivec4) Load 19(ballot) + 1215: 51(fvec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1213 1214 + 1216: 44(ptr) AccessChain 31(data) 1210 34 + 1217: 23(fvec4) Load 1216 + 1218: 23(fvec4) VectorShuffle 1217 1215 4 5 6 3 + Store 1216 1218 + 1219: 6(int) Load 8(invocation) + 1220: 44(ptr) AccessChain 31(data) 115 34 + 1221: 23(fvec4) Load 1220 + 1222: 17(ivec4) Load 19(ballot) + 1223: 23(fvec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1221 1222 + 1224: 44(ptr) AccessChain 31(data) 1219 34 + Store 1224 1223 + 1225: 6(int) Load 8(invocation) + 1226: 64(ptr) AccessChain 31(data) 34 63 35 + 1227: 24(int) Load 1226 + 1228: 17(ivec4) Load 19(ballot) + 1229: 24(int) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1227 1228 + 1230: 64(ptr) AccessChain 31(data) 1225 63 35 + Store 1230 1229 + 1231: 6(int) Load 8(invocation) + 1232: 71(ptr) AccessChain 31(data) 63 63 + 1233: 25(ivec4) Load 1232 + 1234: 70(ivec2) VectorShuffle 1233 1233 0 1 + 1235: 17(ivec4) Load 19(ballot) + 1236: 70(ivec2) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1234 1235 + 1237: 71(ptr) AccessChain 31(data) 1231 63 + 1238: 25(ivec4) Load 1237 + 1239: 25(ivec4) VectorShuffle 1238 1236 4 5 2 3 + Store 1237 1239 + 1240: 6(int) Load 8(invocation) + 1241: 71(ptr) AccessChain 31(data) 33 63 + 1242: 25(ivec4) Load 1241 + 1243: 78(ivec3) VectorShuffle 1242 1242 0 1 2 + 1244: 17(ivec4) Load 19(ballot) + 1245: 78(ivec3) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1243 1244 + 1246: 71(ptr) AccessChain 31(data) 1240 63 + 1247: 25(ivec4) Load 1246 + 1248: 25(ivec4) VectorShuffle 1247 1245 4 5 6 3 + Store 1246 1248 + 1249: 6(int) Load 8(invocation) + 1250: 71(ptr) AccessChain 31(data) 115 63 + 1251: 25(ivec4) Load 1250 + 1252: 17(ivec4) Load 19(ballot) + 1253: 25(ivec4) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1251 1252 + 1254: 71(ptr) AccessChain 31(data) 1249 63 + Store 1254 1253 + 1255: 6(int) Load 8(invocation) + 1256: 90(ptr) AccessChain 31(data) 34 33 35 + 1257: 6(int) Load 1256 + 1258: 17(ivec4) Load 19(ballot) + 1259: 6(int) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1257 1258 + 1260: 90(ptr) AccessChain 31(data) 1255 33 35 + Store 1260 1259 + 1261: 6(int) Load 8(invocation) + 1262: 40(ptr) AccessChain 31(data) 63 33 + 1263: 17(ivec4) Load 1262 + 1264: 96(ivec2) VectorShuffle 1263 1263 0 1 + 1265: 17(ivec4) Load 19(ballot) + 1266: 96(ivec2) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1264 1265 + 1267: 40(ptr) AccessChain 31(data) 1261 33 + 1268: 17(ivec4) Load 1267 + 1269: 17(ivec4) VectorShuffle 1268 1266 4 5 2 3 + Store 1267 1269 + 1270: 6(int) Load 8(invocation) + 1271: 40(ptr) AccessChain 31(data) 33 33 + 1272: 17(ivec4) Load 1271 + 1273: 103(ivec3) VectorShuffle 1272 1272 0 1 2 + 1274: 17(ivec4) Load 19(ballot) + 1275: 103(ivec3) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1273 1274 + 1276: 40(ptr) AccessChain 31(data) 1270 33 + 1277: 17(ivec4) Load 1276 + 1278: 17(ivec4) VectorShuffle 1277 1275 4 5 6 3 + Store 1276 1278 + 1279: 6(int) Load 8(invocation) + 1280: 40(ptr) AccessChain 31(data) 115 33 + 1281: 17(ivec4) Load 1280 + 1282: 17(ivec4) Load 19(ballot) + 1283: 17(ivec4) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1281 1282 + 1284: 40(ptr) AccessChain 31(data) 1279 33 + Store 1284 1283 + 1285: 6(int) Load 8(invocation) + 1286: 116(ptr) AccessChain 31(data) 34 115 35 + 1287:26(float64_t) Load 1286 + 1288: 17(ivec4) Load 19(ballot) + 1289:26(float64_t) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1287 1288 + 1290: 116(ptr) AccessChain 31(data) 1285 115 35 + Store 1290 1289 + 1291: 6(int) Load 8(invocation) + 1292: 123(ptr) AccessChain 31(data) 63 115 + 1293: 27(f64vec4) Load 1292 + 1294:122(f64vec2) VectorShuffle 1293 1293 0 1 + 1295: 17(ivec4) Load 19(ballot) + 1296:122(f64vec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1294 1295 + 1297: 123(ptr) AccessChain 31(data) 1291 115 + 1298: 27(f64vec4) Load 1297 + 1299: 27(f64vec4) VectorShuffle 1298 1296 4 5 2 3 + Store 1297 1299 + 1300: 6(int) Load 8(invocation) + 1301: 123(ptr) AccessChain 31(data) 33 115 + 1302: 27(f64vec4) Load 1301 + 1303:130(f64vec3) VectorShuffle 1302 1302 0 1 2 + 1304: 17(ivec4) Load 19(ballot) + 1305:130(f64vec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1303 1304 + 1306: 123(ptr) AccessChain 31(data) 1300 115 + 1307: 27(f64vec4) Load 1306 + 1308: 27(f64vec4) VectorShuffle 1307 1305 4 5 6 3 + Store 1306 1308 + 1309: 6(int) Load 8(invocation) + 1310: 123(ptr) AccessChain 31(data) 115 115 + 1311: 27(f64vec4) Load 1310 + 1312: 17(ivec4) Load 19(ballot) + 1313: 27(f64vec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1311 1312 + 1314: 123(ptr) AccessChain 31(data) 1309 115 + Store 1314 1313 + 1315: 6(int) Load 8(invocation) + 1316: 36(ptr) AccessChain 31(data) 34 34 35 + 1317: 22(float) Load 1316 + 1318: 17(ivec4) Load 19(ballot) + 1319: 22(float) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1317 1318 + 1320: 36(ptr) AccessChain 31(data) 1315 34 35 + Store 1320 1319 + 1321: 6(int) Load 8(invocation) + 1322: 44(ptr) AccessChain 31(data) 63 34 + 1323: 23(fvec4) Load 1322 + 1324: 43(fvec2) VectorShuffle 1323 1323 0 1 + 1325: 17(ivec4) Load 19(ballot) + 1326: 43(fvec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1324 1325 + 1327: 44(ptr) AccessChain 31(data) 1321 34 + 1328: 23(fvec4) Load 1327 + 1329: 23(fvec4) VectorShuffle 1328 1326 4 5 2 3 + Store 1327 1329 + 1330: 6(int) Load 8(invocation) + 1331: 44(ptr) AccessChain 31(data) 33 34 + 1332: 23(fvec4) Load 1331 + 1333: 51(fvec3) VectorShuffle 1332 1332 0 1 2 + 1334: 17(ivec4) Load 19(ballot) + 1335: 51(fvec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1333 1334 + 1336: 44(ptr) AccessChain 31(data) 1330 34 + 1337: 23(fvec4) Load 1336 + 1338: 23(fvec4) VectorShuffle 1337 1335 4 5 6 3 + Store 1336 1338 + 1339: 6(int) Load 8(invocation) + 1340: 44(ptr) AccessChain 31(data) 115 34 + 1341: 23(fvec4) Load 1340 + 1342: 17(ivec4) Load 19(ballot) + 1343: 23(fvec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1341 1342 + 1344: 44(ptr) AccessChain 31(data) 1339 34 + Store 1344 1343 + 1345: 6(int) Load 8(invocation) + 1346: 64(ptr) AccessChain 31(data) 34 63 35 + 1347: 24(int) Load 1346 + 1348: 17(ivec4) Load 19(ballot) + 1349: 24(int) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1347 1348 + 1350: 64(ptr) AccessChain 31(data) 1345 63 35 + Store 1350 1349 + 1351: 6(int) Load 8(invocation) + 1352: 71(ptr) AccessChain 31(data) 63 63 + 1353: 25(ivec4) Load 1352 + 1354: 70(ivec2) VectorShuffle 1353 1353 0 1 + 1355: 17(ivec4) Load 19(ballot) + 1356: 70(ivec2) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1354 1355 + 1357: 71(ptr) AccessChain 31(data) 1351 63 + 1358: 25(ivec4) Load 1357 + 1359: 25(ivec4) VectorShuffle 1358 1356 4 5 2 3 + Store 1357 1359 + 1360: 6(int) Load 8(invocation) + 1361: 71(ptr) AccessChain 31(data) 33 63 + 1362: 25(ivec4) Load 1361 + 1363: 78(ivec3) VectorShuffle 1362 1362 0 1 2 + 1364: 17(ivec4) Load 19(ballot) + 1365: 78(ivec3) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1363 1364 + 1366: 71(ptr) AccessChain 31(data) 1360 63 + 1367: 25(ivec4) Load 1366 + 1368: 25(ivec4) VectorShuffle 1367 1365 4 5 6 3 + Store 1366 1368 + 1369: 6(int) Load 8(invocation) + 1370: 71(ptr) AccessChain 31(data) 115 63 + 1371: 25(ivec4) Load 1370 + 1372: 17(ivec4) Load 19(ballot) + 1373: 25(ivec4) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1371 1372 + 1374: 71(ptr) AccessChain 31(data) 1369 63 + Store 1374 1373 + 1375: 6(int) Load 8(invocation) + 1376: 90(ptr) AccessChain 31(data) 34 33 35 + 1377: 6(int) Load 1376 + 1378: 17(ivec4) Load 19(ballot) + 1379: 6(int) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1377 1378 + 1380: 90(ptr) AccessChain 31(data) 1375 33 35 + Store 1380 1379 + 1381: 6(int) Load 8(invocation) + 1382: 40(ptr) AccessChain 31(data) 63 33 + 1383: 17(ivec4) Load 1382 + 1384: 96(ivec2) VectorShuffle 1383 1383 0 1 + 1385: 17(ivec4) Load 19(ballot) + 1386: 96(ivec2) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1384 1385 + 1387: 40(ptr) AccessChain 31(data) 1381 33 + 1388: 17(ivec4) Load 1387 + 1389: 17(ivec4) VectorShuffle 1388 1386 4 5 2 3 + Store 1387 1389 + 1390: 6(int) Load 8(invocation) + 1391: 40(ptr) AccessChain 31(data) 33 33 + 1392: 17(ivec4) Load 1391 + 1393: 103(ivec3) VectorShuffle 1392 1392 0 1 2 + 1394: 17(ivec4) Load 19(ballot) + 1395: 103(ivec3) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1393 1394 + 1396: 40(ptr) AccessChain 31(data) 1390 33 + 1397: 17(ivec4) Load 1396 + 1398: 17(ivec4) VectorShuffle 1397 1395 4 5 6 3 + Store 1396 1398 + 1399: 6(int) Load 8(invocation) + 1400: 40(ptr) AccessChain 31(data) 115 33 + 1401: 17(ivec4) Load 1400 + 1402: 17(ivec4) Load 19(ballot) + 1403: 17(ivec4) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1401 1402 + 1404: 40(ptr) AccessChain 31(data) 1399 33 + Store 1404 1403 + 1405: 6(int) Load 8(invocation) + 1406: 116(ptr) AccessChain 31(data) 34 115 35 + 1407:26(float64_t) Load 1406 + 1408: 17(ivec4) Load 19(ballot) + 1409:26(float64_t) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1407 1408 + 1410: 116(ptr) AccessChain 31(data) 1405 115 35 + Store 1410 1409 + 1411: 6(int) Load 8(invocation) + 1412: 123(ptr) AccessChain 31(data) 63 115 + 1413: 27(f64vec4) Load 1412 + 1414:122(f64vec2) VectorShuffle 1413 1413 0 1 + 1415: 17(ivec4) Load 19(ballot) + 1416:122(f64vec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1414 1415 + 1417: 123(ptr) AccessChain 31(data) 1411 115 + 1418: 27(f64vec4) Load 1417 + 1419: 27(f64vec4) VectorShuffle 1418 1416 4 5 2 3 + Store 1417 1419 + 1420: 6(int) Load 8(invocation) + 1421: 123(ptr) AccessChain 31(data) 33 115 + 1422: 27(f64vec4) Load 1421 + 1423:130(f64vec3) VectorShuffle 1422 1422 0 1 2 + 1424: 17(ivec4) Load 19(ballot) + 1425:130(f64vec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1423 1424 + 1426: 123(ptr) AccessChain 31(data) 1420 115 + 1427: 27(f64vec4) Load 1426 + 1428: 27(f64vec4) VectorShuffle 1427 1425 4 5 6 3 + Store 1426 1428 + 1429: 6(int) Load 8(invocation) + 1430: 123(ptr) AccessChain 31(data) 115 115 + 1431: 27(f64vec4) Load 1430 + 1432: 17(ivec4) Load 19(ballot) + 1433: 27(f64vec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1431 1432 + 1434: 123(ptr) AccessChain 31(data) 1429 115 + Store 1434 1433 + 1435: 6(int) Load 8(invocation) + 1436: 64(ptr) AccessChain 31(data) 34 63 35 + 1437: 24(int) Load 1436 + 1438: 17(ivec4) Load 19(ballot) + 1439: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1437 1438 + 1440: 64(ptr) AccessChain 31(data) 1435 63 35 + Store 1440 1439 + 1441: 6(int) Load 8(invocation) + 1442: 71(ptr) AccessChain 31(data) 63 63 + 1443: 25(ivec4) Load 1442 + 1444: 70(ivec2) VectorShuffle 1443 1443 0 1 + 1445: 17(ivec4) Load 19(ballot) + 1446: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1444 1445 + 1447: 71(ptr) AccessChain 31(data) 1441 63 + 1448: 25(ivec4) Load 1447 + 1449: 25(ivec4) VectorShuffle 1448 1446 4 5 2 3 + Store 1447 1449 + 1450: 6(int) Load 8(invocation) + 1451: 71(ptr) AccessChain 31(data) 33 63 + 1452: 25(ivec4) Load 1451 + 1453: 78(ivec3) VectorShuffle 1452 1452 0 1 2 + 1454: 17(ivec4) Load 19(ballot) + 1455: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1453 1454 + 1456: 71(ptr) AccessChain 31(data) 1450 63 + 1457: 25(ivec4) Load 1456 + 1458: 25(ivec4) VectorShuffle 1457 1455 4 5 6 3 + Store 1456 1458 + 1459: 6(int) Load 8(invocation) + 1460: 71(ptr) AccessChain 31(data) 115 63 + 1461: 25(ivec4) Load 1460 + 1462: 17(ivec4) Load 19(ballot) + 1463: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1461 1462 + 1464: 71(ptr) AccessChain 31(data) 1459 63 + Store 1464 1463 + 1465: 6(int) Load 8(invocation) + 1466: 90(ptr) AccessChain 31(data) 34 33 35 + 1467: 6(int) Load 1466 + 1468: 17(ivec4) Load 19(ballot) + 1469: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1467 1468 + 1470: 90(ptr) AccessChain 31(data) 1465 33 35 + Store 1470 1469 + 1471: 6(int) Load 8(invocation) + 1472: 40(ptr) AccessChain 31(data) 63 33 + 1473: 17(ivec4) Load 1472 + 1474: 96(ivec2) VectorShuffle 1473 1473 0 1 + 1475: 17(ivec4) Load 19(ballot) + 1476: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1474 1475 + 1477: 40(ptr) AccessChain 31(data) 1471 33 + 1478: 17(ivec4) Load 1477 + 1479: 17(ivec4) VectorShuffle 1478 1476 4 5 2 3 + Store 1477 1479 + 1480: 6(int) Load 8(invocation) + 1481: 40(ptr) AccessChain 31(data) 33 33 + 1482: 17(ivec4) Load 1481 + 1483: 103(ivec3) VectorShuffle 1482 1482 0 1 2 + 1484: 17(ivec4) Load 19(ballot) + 1485: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1483 1484 + 1486: 40(ptr) AccessChain 31(data) 1480 33 + 1487: 17(ivec4) Load 1486 + 1488: 17(ivec4) VectorShuffle 1487 1485 4 5 6 3 + Store 1486 1488 + 1489: 6(int) Load 8(invocation) + 1490: 40(ptr) AccessChain 31(data) 115 33 + 1491: 17(ivec4) Load 1490 + 1492: 17(ivec4) Load 19(ballot) + 1493: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1491 1492 + 1494: 40(ptr) AccessChain 31(data) 1489 33 + Store 1494 1493 + 1495: 6(int) Load 8(invocation) + 1496: 64(ptr) AccessChain 31(data) 34 63 35 + 1497: 24(int) Load 1496 + 1498: 144(bool) SLessThan 1497 34 + 1499: 17(ivec4) Load 19(ballot) + 1500: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1498 1499 + 1501: 24(int) Select 1500 63 34 + 1502: 64(ptr) AccessChain 31(data) 1495 63 35 + Store 1502 1501 + 1503: 6(int) Load 8(invocation) + 1504: 71(ptr) AccessChain 31(data) 63 63 + 1505: 25(ivec4) Load 1504 + 1506: 70(ivec2) VectorShuffle 1505 1505 0 1 + 1507: 152(bvec2) SLessThan 1506 727 + 1508: 17(ivec4) Load 19(ballot) + 1509: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1507 1508 + 1510: 70(ivec2) Select 1509 731 727 + 1511: 71(ptr) AccessChain 31(data) 1503 63 + 1512: 25(ivec4) Load 1511 + 1513: 25(ivec4) VectorShuffle 1512 1510 4 5 2 3 + Store 1511 1513 + 1514: 6(int) Load 8(invocation) + 1515: 71(ptr) AccessChain 31(data) 63 63 + 1516: 25(ivec4) Load 1515 + 1517: 78(ivec3) VectorShuffle 1516 1516 0 1 2 + 1518: 161(bvec3) SLessThan 1517 740 + 1519: 17(ivec4) Load 19(ballot) + 1520: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1518 1519 + 1521: 78(ivec3) Select 1520 744 740 + 1522: 71(ptr) AccessChain 31(data) 1514 63 + 1523: 25(ivec4) Load 1522 + 1524: 25(ivec4) VectorShuffle 1523 1521 4 5 6 3 + Store 1522 1524 + 1525: 6(int) Load 8(invocation) + 1526: 71(ptr) AccessChain 31(data) 63 63 + 1527: 25(ivec4) Load 1526 + 1528: 169(bvec4) SLessThan 1527 752 + 1529: 17(ivec4) Load 19(ballot) + 1530: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1528 1529 + 1531: 25(ivec4) Select 1530 756 752 + 1532: 71(ptr) AccessChain 31(data) 1525 63 + Store 1532 1531 + 1533: 6(int) Load 8(invocation) + 1534: 64(ptr) AccessChain 31(data) 34 63 35 + 1535: 24(int) Load 1534 + 1536: 17(ivec4) Load 19(ballot) + 1537: 24(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1535 1536 + 1538: 64(ptr) AccessChain 31(data) 1533 63 35 + Store 1538 1537 + 1539: 6(int) Load 8(invocation) + 1540: 71(ptr) AccessChain 31(data) 63 63 + 1541: 25(ivec4) Load 1540 + 1542: 70(ivec2) VectorShuffle 1541 1541 0 1 + 1543: 17(ivec4) Load 19(ballot) + 1544: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1542 1543 + 1545: 71(ptr) AccessChain 31(data) 1539 63 + 1546: 25(ivec4) Load 1545 + 1547: 25(ivec4) VectorShuffle 1546 1544 4 5 2 3 + Store 1545 1547 + 1548: 6(int) Load 8(invocation) + 1549: 71(ptr) AccessChain 31(data) 33 63 + 1550: 25(ivec4) Load 1549 + 1551: 78(ivec3) VectorShuffle 1550 1550 0 1 2 + 1552: 17(ivec4) Load 19(ballot) + 1553: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1551 1552 + 1554: 71(ptr) AccessChain 31(data) 1548 63 + 1555: 25(ivec4) Load 1554 + 1556: 25(ivec4) VectorShuffle 1555 1553 4 5 6 3 + Store 1554 1556 + 1557: 6(int) Load 8(invocation) + 1558: 71(ptr) AccessChain 31(data) 115 63 + 1559: 25(ivec4) Load 1558 + 1560: 17(ivec4) Load 19(ballot) + 1561: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1559 1560 + 1562: 71(ptr) AccessChain 31(data) 1557 63 + Store 1562 1561 + 1563: 6(int) Load 8(invocation) + 1564: 90(ptr) AccessChain 31(data) 34 33 35 + 1565: 6(int) Load 1564 + 1566: 17(ivec4) Load 19(ballot) + 1567: 6(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1565 1566 + 1568: 90(ptr) AccessChain 31(data) 1563 33 35 + Store 1568 1567 + 1569: 6(int) Load 8(invocation) + 1570: 40(ptr) AccessChain 31(data) 63 33 + 1571: 17(ivec4) Load 1570 + 1572: 96(ivec2) VectorShuffle 1571 1571 0 1 + 1573: 17(ivec4) Load 19(ballot) + 1574: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1572 1573 + 1575: 40(ptr) AccessChain 31(data) 1569 33 + 1576: 17(ivec4) Load 1575 + 1577: 17(ivec4) VectorShuffle 1576 1574 4 5 2 3 + Store 1575 1577 + 1578: 6(int) Load 8(invocation) + 1579: 40(ptr) AccessChain 31(data) 33 33 + 1580: 17(ivec4) Load 1579 + 1581: 103(ivec3) VectorShuffle 1580 1580 0 1 2 + 1582: 17(ivec4) Load 19(ballot) + 1583: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1581 1582 + 1584: 40(ptr) AccessChain 31(data) 1578 33 + 1585: 17(ivec4) Load 1584 + 1586: 17(ivec4) VectorShuffle 1585 1583 4 5 6 3 + Store 1584 1586 + 1587: 6(int) Load 8(invocation) + 1588: 40(ptr) AccessChain 31(data) 115 33 + 1589: 17(ivec4) Load 1588 + 1590: 17(ivec4) Load 19(ballot) + 1591: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1589 1590 + 1592: 40(ptr) AccessChain 31(data) 1587 33 + Store 1592 1591 + 1593: 6(int) Load 8(invocation) + 1594: 64(ptr) AccessChain 31(data) 34 63 35 + 1595: 24(int) Load 1594 + 1596: 144(bool) SLessThan 1595 34 + 1597: 17(ivec4) Load 19(ballot) + 1598: 144(bool) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1596 1597 + 1599: 24(int) Select 1598 63 34 + 1600: 64(ptr) AccessChain 31(data) 1593 63 35 + Store 1600 1599 + 1601: 6(int) Load 8(invocation) + 1602: 71(ptr) AccessChain 31(data) 63 63 + 1603: 25(ivec4) Load 1602 + 1604: 70(ivec2) VectorShuffle 1603 1603 0 1 + 1605: 152(bvec2) SLessThan 1604 727 + 1606: 17(ivec4) Load 19(ballot) + 1607: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1605 1606 + 1608: 70(ivec2) Select 1607 731 727 + 1609: 71(ptr) AccessChain 31(data) 1601 63 + 1610: 25(ivec4) Load 1609 + 1611: 25(ivec4) VectorShuffle 1610 1608 4 5 2 3 + Store 1609 1611 + 1612: 6(int) Load 8(invocation) + 1613: 71(ptr) AccessChain 31(data) 63 63 + 1614: 25(ivec4) Load 1613 + 1615: 78(ivec3) VectorShuffle 1614 1614 0 1 2 + 1616: 161(bvec3) SLessThan 1615 740 + 1617: 17(ivec4) Load 19(ballot) + 1618: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1616 1617 + 1619: 78(ivec3) Select 1618 744 740 + 1620: 71(ptr) AccessChain 31(data) 1612 63 + 1621: 25(ivec4) Load 1620 + 1622: 25(ivec4) VectorShuffle 1621 1619 4 5 6 3 + Store 1620 1622 + 1623: 6(int) Load 8(invocation) + 1624: 71(ptr) AccessChain 31(data) 63 63 + 1625: 25(ivec4) Load 1624 + 1626: 169(bvec4) SLessThan 1625 752 + 1627: 17(ivec4) Load 19(ballot) + 1628: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1626 1627 + 1629: 25(ivec4) Select 1628 756 752 + 1630: 71(ptr) AccessChain 31(data) 1623 63 + Store 1630 1629 + 1631: 6(int) Load 8(invocation) + 1632: 64(ptr) AccessChain 31(data) 34 63 35 + 1633: 24(int) Load 1632 + 1634: 17(ivec4) Load 19(ballot) + 1635: 24(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1633 1634 + 1636: 64(ptr) AccessChain 31(data) 1631 63 35 + Store 1636 1635 + 1637: 6(int) Load 8(invocation) + 1638: 71(ptr) AccessChain 31(data) 63 63 + 1639: 25(ivec4) Load 1638 + 1640: 70(ivec2) VectorShuffle 1639 1639 0 1 + 1641: 17(ivec4) Load 19(ballot) + 1642: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1640 1641 + 1643: 71(ptr) AccessChain 31(data) 1637 63 + 1644: 25(ivec4) Load 1643 + 1645: 25(ivec4) VectorShuffle 1644 1642 4 5 2 3 + Store 1643 1645 + 1646: 6(int) Load 8(invocation) + 1647: 71(ptr) AccessChain 31(data) 33 63 + 1648: 25(ivec4) Load 1647 + 1649: 78(ivec3) VectorShuffle 1648 1648 0 1 2 + 1650: 17(ivec4) Load 19(ballot) + 1651: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1649 1650 + 1652: 71(ptr) AccessChain 31(data) 1646 63 + 1653: 25(ivec4) Load 1652 + 1654: 25(ivec4) VectorShuffle 1653 1651 4 5 6 3 + Store 1652 1654 + 1655: 6(int) Load 8(invocation) + 1656: 71(ptr) AccessChain 31(data) 115 63 + 1657: 25(ivec4) Load 1656 + 1658: 17(ivec4) Load 19(ballot) + 1659: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1657 1658 + 1660: 71(ptr) AccessChain 31(data) 1655 63 + Store 1660 1659 + 1661: 6(int) Load 8(invocation) + 1662: 90(ptr) AccessChain 31(data) 34 33 35 + 1663: 6(int) Load 1662 + 1664: 17(ivec4) Load 19(ballot) + 1665: 6(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1663 1664 + 1666: 90(ptr) AccessChain 31(data) 1661 33 35 + Store 1666 1665 + 1667: 6(int) Load 8(invocation) + 1668: 40(ptr) AccessChain 31(data) 63 33 + 1669: 17(ivec4) Load 1668 + 1670: 96(ivec2) VectorShuffle 1669 1669 0 1 + 1671: 17(ivec4) Load 19(ballot) + 1672: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1670 1671 + 1673: 40(ptr) AccessChain 31(data) 1667 33 + 1674: 17(ivec4) Load 1673 + 1675: 17(ivec4) VectorShuffle 1674 1672 4 5 2 3 + Store 1673 1675 + 1676: 6(int) Load 8(invocation) + 1677: 40(ptr) AccessChain 31(data) 33 33 + 1678: 17(ivec4) Load 1677 + 1679: 103(ivec3) VectorShuffle 1678 1678 0 1 2 + 1680: 17(ivec4) Load 19(ballot) + 1681: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1679 1680 + 1682: 40(ptr) AccessChain 31(data) 1676 33 + 1683: 17(ivec4) Load 1682 + 1684: 17(ivec4) VectorShuffle 1683 1681 4 5 6 3 + Store 1682 1684 + 1685: 6(int) Load 8(invocation) + 1686: 40(ptr) AccessChain 31(data) 115 33 + 1687: 17(ivec4) Load 1686 + 1688: 17(ivec4) Load 19(ballot) + 1689: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1687 1688 + 1690: 40(ptr) AccessChain 31(data) 1685 33 + Store 1690 1689 + 1691: 6(int) Load 8(invocation) + 1692: 64(ptr) AccessChain 31(data) 34 63 35 + 1693: 24(int) Load 1692 + 1694: 144(bool) SLessThan 1693 34 + 1695: 17(ivec4) Load 19(ballot) + 1696: 144(bool) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1694 1695 + 1697: 24(int) Select 1696 63 34 + 1698: 64(ptr) AccessChain 31(data) 1691 63 35 + Store 1698 1697 + 1699: 6(int) Load 8(invocation) + 1700: 71(ptr) AccessChain 31(data) 63 63 + 1701: 25(ivec4) Load 1700 + 1702: 70(ivec2) VectorShuffle 1701 1701 0 1 + 1703: 152(bvec2) SLessThan 1702 727 + 1704: 17(ivec4) Load 19(ballot) + 1705: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1703 1704 + 1706: 70(ivec2) Select 1705 731 727 + 1707: 71(ptr) AccessChain 31(data) 1699 63 + 1708: 25(ivec4) Load 1707 + 1709: 25(ivec4) VectorShuffle 1708 1706 4 5 2 3 + Store 1707 1709 + 1710: 6(int) Load 8(invocation) + 1711: 71(ptr) AccessChain 31(data) 63 63 + 1712: 25(ivec4) Load 1711 + 1713: 78(ivec3) VectorShuffle 1712 1712 0 1 2 + 1714: 161(bvec3) SLessThan 1713 740 + 1715: 17(ivec4) Load 19(ballot) + 1716: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1714 1715 + 1717: 78(ivec3) Select 1716 744 740 + 1718: 71(ptr) AccessChain 31(data) 1710 63 + 1719: 25(ivec4) Load 1718 + 1720: 25(ivec4) VectorShuffle 1719 1717 4 5 6 3 + Store 1718 1720 + 1721: 6(int) Load 8(invocation) + 1722: 71(ptr) AccessChain 31(data) 63 63 + 1723: 25(ivec4) Load 1722 + 1724: 169(bvec4) SLessThan 1723 752 + 1725: 17(ivec4) Load 19(ballot) + 1726: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1724 1725 + 1727: 25(ivec4) Select 1726 756 752 + 1728: 71(ptr) AccessChain 31(data) 1721 63 + Store 1728 1727 + 1729: 6(int) Load 8(invocation) + 1730: 36(ptr) AccessChain 31(data) 34 34 35 + 1731: 22(float) Load 1730 + 1732: 17(ivec4) Load 19(ballot) + 1733: 22(float) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1731 1732 + 1734: 36(ptr) AccessChain 31(data) 1729 34 35 + Store 1734 1733 + 1735: 6(int) Load 8(invocation) + 1736: 44(ptr) AccessChain 31(data) 63 34 + 1737: 23(fvec4) Load 1736 + 1738: 43(fvec2) VectorShuffle 1737 1737 0 1 + 1739: 17(ivec4) Load 19(ballot) + 1740: 43(fvec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1738 1739 + 1741: 44(ptr) AccessChain 31(data) 1735 34 + 1742: 23(fvec4) Load 1741 + 1743: 23(fvec4) VectorShuffle 1742 1740 4 5 2 3 + Store 1741 1743 + 1744: 6(int) Load 8(invocation) + 1745: 44(ptr) AccessChain 31(data) 33 34 + 1746: 23(fvec4) Load 1745 + 1747: 51(fvec3) VectorShuffle 1746 1746 0 1 2 + 1748: 17(ivec4) Load 19(ballot) + 1749: 51(fvec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1747 1748 + 1750: 44(ptr) AccessChain 31(data) 1744 34 + 1751: 23(fvec4) Load 1750 + 1752: 23(fvec4) VectorShuffle 1751 1749 4 5 6 3 + Store 1750 1752 + 1753: 6(int) Load 8(invocation) + 1754: 44(ptr) AccessChain 31(data) 115 34 + 1755: 23(fvec4) Load 1754 + 1756: 17(ivec4) Load 19(ballot) + 1757: 23(fvec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1755 1756 + 1758: 44(ptr) AccessChain 31(data) 1753 34 + Store 1758 1757 + 1759: 6(int) Load 8(invocation) + 1760: 64(ptr) AccessChain 31(data) 34 63 35 + 1761: 24(int) Load 1760 + 1762: 17(ivec4) Load 19(ballot) + 1763: 24(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1761 1762 + 1764: 64(ptr) AccessChain 31(data) 1759 63 35 + Store 1764 1763 + 1765: 6(int) Load 8(invocation) + 1766: 71(ptr) AccessChain 31(data) 63 63 + 1767: 25(ivec4) Load 1766 + 1768: 70(ivec2) VectorShuffle 1767 1767 0 1 + 1769: 17(ivec4) Load 19(ballot) + 1770: 70(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1768 1769 + 1771: 71(ptr) AccessChain 31(data) 1765 63 + 1772: 25(ivec4) Load 1771 + 1773: 25(ivec4) VectorShuffle 1772 1770 4 5 2 3 + Store 1771 1773 + 1774: 6(int) Load 8(invocation) + 1775: 71(ptr) AccessChain 31(data) 33 63 + 1776: 25(ivec4) Load 1775 + 1777: 78(ivec3) VectorShuffle 1776 1776 0 1 2 + 1778: 17(ivec4) Load 19(ballot) + 1779: 78(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1777 1778 + 1780: 71(ptr) AccessChain 31(data) 1774 63 + 1781: 25(ivec4) Load 1780 + 1782: 25(ivec4) VectorShuffle 1781 1779 4 5 6 3 + Store 1780 1782 + 1783: 6(int) Load 8(invocation) + 1784: 71(ptr) AccessChain 31(data) 115 63 + 1785: 25(ivec4) Load 1784 + 1786: 17(ivec4) Load 19(ballot) + 1787: 25(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1785 1786 + 1788: 71(ptr) AccessChain 31(data) 1783 63 + Store 1788 1787 + 1789: 6(int) Load 8(invocation) + 1790: 90(ptr) AccessChain 31(data) 34 33 35 + 1791: 6(int) Load 1790 + 1792: 17(ivec4) Load 19(ballot) + 1793: 6(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1791 1792 + 1794: 90(ptr) AccessChain 31(data) 1789 33 35 + Store 1794 1793 + 1795: 6(int) Load 8(invocation) + 1796: 40(ptr) AccessChain 31(data) 63 33 + 1797: 17(ivec4) Load 1796 + 1798: 96(ivec2) VectorShuffle 1797 1797 0 1 + 1799: 17(ivec4) Load 19(ballot) + 1800: 96(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1798 1799 + 1801: 40(ptr) AccessChain 31(data) 1795 33 + 1802: 17(ivec4) Load 1801 + 1803: 17(ivec4) VectorShuffle 1802 1800 4 5 2 3 + Store 1801 1803 + 1804: 6(int) Load 8(invocation) + 1805: 40(ptr) AccessChain 31(data) 33 33 + 1806: 17(ivec4) Load 1805 + 1807: 103(ivec3) VectorShuffle 1806 1806 0 1 2 + 1808: 17(ivec4) Load 19(ballot) + 1809: 103(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1807 1808 + 1810: 40(ptr) AccessChain 31(data) 1804 33 + 1811: 17(ivec4) Load 1810 + 1812: 17(ivec4) VectorShuffle 1811 1809 4 5 6 3 + Store 1810 1812 + 1813: 6(int) Load 8(invocation) + 1814: 40(ptr) AccessChain 31(data) 115 33 + 1815: 17(ivec4) Load 1814 + 1816: 17(ivec4) Load 19(ballot) + 1817: 17(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1815 1816 + 1818: 40(ptr) AccessChain 31(data) 1813 33 + Store 1818 1817 + 1819: 6(int) Load 8(invocation) + 1820: 116(ptr) AccessChain 31(data) 34 115 35 + 1821:26(float64_t) Load 1820 + 1822: 17(ivec4) Load 19(ballot) + 1823:26(float64_t) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1821 1822 + 1824: 116(ptr) AccessChain 31(data) 1819 115 35 + Store 1824 1823 + 1825: 6(int) Load 8(invocation) + 1826: 123(ptr) AccessChain 31(data) 63 115 + 1827: 27(f64vec4) Load 1826 + 1828:122(f64vec2) VectorShuffle 1827 1827 0 1 + 1829: 17(ivec4) Load 19(ballot) + 1830:122(f64vec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1828 1829 + 1831: 123(ptr) AccessChain 31(data) 1825 115 + 1832: 27(f64vec4) Load 1831 + 1833: 27(f64vec4) VectorShuffle 1832 1830 4 5 2 3 + Store 1831 1833 + 1834: 6(int) Load 8(invocation) + 1835: 123(ptr) AccessChain 31(data) 33 115 + 1836: 27(f64vec4) Load 1835 + 1837:130(f64vec3) VectorShuffle 1836 1836 0 1 2 + 1838: 17(ivec4) Load 19(ballot) + 1839:130(f64vec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1837 1838 + 1840: 123(ptr) AccessChain 31(data) 1834 115 + 1841: 27(f64vec4) Load 1840 + 1842: 27(f64vec4) VectorShuffle 1841 1839 4 5 6 3 + Store 1840 1842 + 1843: 6(int) Load 8(invocation) + 1844: 123(ptr) AccessChain 31(data) 115 115 + 1845: 27(f64vec4) Load 1844 + 1846: 17(ivec4) Load 19(ballot) + 1847: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1845 1846 + 1848: 123(ptr) AccessChain 31(data) 1843 115 + Store 1848 1847 + 1849: 6(int) Load 8(invocation) + 1850: 36(ptr) AccessChain 31(data) 34 34 35 + 1851: 22(float) Load 1850 + 1852: 17(ivec4) Load 19(ballot) + 1853: 22(float) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1851 1852 + 1854: 36(ptr) AccessChain 31(data) 1849 34 35 + Store 1854 1853 + 1855: 6(int) Load 8(invocation) + 1856: 44(ptr) AccessChain 31(data) 63 34 + 1857: 23(fvec4) Load 1856 + 1858: 43(fvec2) VectorShuffle 1857 1857 0 1 + 1859: 17(ivec4) Load 19(ballot) + 1860: 43(fvec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1858 1859 + 1861: 44(ptr) AccessChain 31(data) 1855 34 + 1862: 23(fvec4) Load 1861 + 1863: 23(fvec4) VectorShuffle 1862 1860 4 5 2 3 + Store 1861 1863 + 1864: 6(int) Load 8(invocation) + 1865: 44(ptr) AccessChain 31(data) 33 34 + 1866: 23(fvec4) Load 1865 + 1867: 51(fvec3) VectorShuffle 1866 1866 0 1 2 + 1868: 17(ivec4) Load 19(ballot) + 1869: 51(fvec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1867 1868 + 1870: 44(ptr) AccessChain 31(data) 1864 34 + 1871: 23(fvec4) Load 1870 + 1872: 23(fvec4) VectorShuffle 1871 1869 4 5 6 3 + Store 1870 1872 + 1873: 6(int) Load 8(invocation) + 1874: 44(ptr) AccessChain 31(data) 115 34 + 1875: 23(fvec4) Load 1874 + 1876: 17(ivec4) Load 19(ballot) + 1877: 23(fvec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1875 1876 + 1878: 44(ptr) AccessChain 31(data) 1873 34 + Store 1878 1877 + 1879: 6(int) Load 8(invocation) + 1880: 64(ptr) AccessChain 31(data) 34 63 35 + 1881: 24(int) Load 1880 + 1882: 17(ivec4) Load 19(ballot) + 1883: 24(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1881 1882 + 1884: 64(ptr) AccessChain 31(data) 1879 63 35 + Store 1884 1883 + 1885: 6(int) Load 8(invocation) + 1886: 71(ptr) AccessChain 31(data) 63 63 + 1887: 25(ivec4) Load 1886 + 1888: 70(ivec2) VectorShuffle 1887 1887 0 1 + 1889: 17(ivec4) Load 19(ballot) + 1890: 70(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1888 1889 + 1891: 71(ptr) AccessChain 31(data) 1885 63 + 1892: 25(ivec4) Load 1891 + 1893: 25(ivec4) VectorShuffle 1892 1890 4 5 2 3 + Store 1891 1893 + 1894: 6(int) Load 8(invocation) + 1895: 71(ptr) AccessChain 31(data) 33 63 + 1896: 25(ivec4) Load 1895 + 1897: 78(ivec3) VectorShuffle 1896 1896 0 1 2 + 1898: 17(ivec4) Load 19(ballot) + 1899: 78(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1897 1898 + 1900: 71(ptr) AccessChain 31(data) 1894 63 + 1901: 25(ivec4) Load 1900 + 1902: 25(ivec4) VectorShuffle 1901 1899 4 5 6 3 + Store 1900 1902 + 1903: 6(int) Load 8(invocation) + 1904: 71(ptr) AccessChain 31(data) 115 63 + 1905: 25(ivec4) Load 1904 + 1906: 17(ivec4) Load 19(ballot) + 1907: 25(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1905 1906 + 1908: 71(ptr) AccessChain 31(data) 1903 63 + Store 1908 1907 + 1909: 6(int) Load 8(invocation) + 1910: 90(ptr) AccessChain 31(data) 34 33 35 + 1911: 6(int) Load 1910 + 1912: 17(ivec4) Load 19(ballot) + 1913: 6(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1911 1912 + 1914: 90(ptr) AccessChain 31(data) 1909 33 35 + Store 1914 1913 + 1915: 6(int) Load 8(invocation) + 1916: 40(ptr) AccessChain 31(data) 63 33 + 1917: 17(ivec4) Load 1916 + 1918: 96(ivec2) VectorShuffle 1917 1917 0 1 + 1919: 17(ivec4) Load 19(ballot) + 1920: 96(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1918 1919 + 1921: 40(ptr) AccessChain 31(data) 1915 33 + 1922: 17(ivec4) Load 1921 + 1923: 17(ivec4) VectorShuffle 1922 1920 4 5 2 3 + Store 1921 1923 + 1924: 6(int) Load 8(invocation) + 1925: 40(ptr) AccessChain 31(data) 33 33 + 1926: 17(ivec4) Load 1925 + 1927: 103(ivec3) VectorShuffle 1926 1926 0 1 2 + 1928: 17(ivec4) Load 19(ballot) + 1929: 103(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1927 1928 + 1930: 40(ptr) AccessChain 31(data) 1924 33 + 1931: 17(ivec4) Load 1930 + 1932: 17(ivec4) VectorShuffle 1931 1929 4 5 6 3 + Store 1930 1932 + 1933: 6(int) Load 8(invocation) + 1934: 40(ptr) AccessChain 31(data) 115 33 + 1935: 17(ivec4) Load 1934 + 1936: 17(ivec4) Load 19(ballot) + 1937: 17(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1935 1936 + 1938: 40(ptr) AccessChain 31(data) 1933 33 + Store 1938 1937 + 1939: 6(int) Load 8(invocation) + 1940: 116(ptr) AccessChain 31(data) 34 115 35 + 1941:26(float64_t) Load 1940 + 1942: 17(ivec4) Load 19(ballot) + 1943:26(float64_t) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1941 1942 + 1944: 116(ptr) AccessChain 31(data) 1939 115 35 + Store 1944 1943 + 1945: 6(int) Load 8(invocation) + 1946: 123(ptr) AccessChain 31(data) 63 115 + 1947: 27(f64vec4) Load 1946 + 1948:122(f64vec2) VectorShuffle 1947 1947 0 1 + 1949: 17(ivec4) Load 19(ballot) + 1950:122(f64vec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1948 1949 + 1951: 123(ptr) AccessChain 31(data) 1945 115 + 1952: 27(f64vec4) Load 1951 + 1953: 27(f64vec4) VectorShuffle 1952 1950 4 5 2 3 + Store 1951 1953 + 1954: 6(int) Load 8(invocation) + 1955: 123(ptr) AccessChain 31(data) 33 115 + 1956: 27(f64vec4) Load 1955 + 1957:130(f64vec3) VectorShuffle 1956 1956 0 1 2 + 1958: 17(ivec4) Load 19(ballot) + 1959:130(f64vec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1957 1958 + 1960: 123(ptr) AccessChain 31(data) 1954 115 + 1961: 27(f64vec4) Load 1960 + 1962: 27(f64vec4) VectorShuffle 1961 1959 4 5 6 3 + Store 1960 1962 + 1963: 6(int) Load 8(invocation) + 1964: 123(ptr) AccessChain 31(data) 115 115 + 1965: 27(f64vec4) Load 1964 + 1966: 17(ivec4) Load 19(ballot) + 1967: 27(f64vec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1965 1966 + 1968: 123(ptr) AccessChain 31(data) 1963 115 + Store 1968 1967 + 1969: 6(int) Load 8(invocation) + 1970: 36(ptr) AccessChain 31(data) 34 34 35 + 1971: 22(float) Load 1970 + 1972: 17(ivec4) Load 19(ballot) + 1973: 22(float) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1971 1972 + 1974: 36(ptr) AccessChain 31(data) 1969 34 35 + Store 1974 1973 + 1975: 6(int) Load 8(invocation) + 1976: 44(ptr) AccessChain 31(data) 63 34 + 1977: 23(fvec4) Load 1976 + 1978: 43(fvec2) VectorShuffle 1977 1977 0 1 + 1979: 17(ivec4) Load 19(ballot) + 1980: 43(fvec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1978 1979 + 1981: 44(ptr) AccessChain 31(data) 1975 34 + 1982: 23(fvec4) Load 1981 + 1983: 23(fvec4) VectorShuffle 1982 1980 4 5 2 3 + Store 1981 1983 + 1984: 6(int) Load 8(invocation) + 1985: 44(ptr) AccessChain 31(data) 33 34 + 1986: 23(fvec4) Load 1985 + 1987: 51(fvec3) VectorShuffle 1986 1986 0 1 2 + 1988: 17(ivec4) Load 19(ballot) + 1989: 51(fvec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1987 1988 + 1990: 44(ptr) AccessChain 31(data) 1984 34 + 1991: 23(fvec4) Load 1990 + 1992: 23(fvec4) VectorShuffle 1991 1989 4 5 6 3 + Store 1990 1992 + 1993: 6(int) Load 8(invocation) + 1994: 44(ptr) AccessChain 31(data) 115 34 + 1995: 23(fvec4) Load 1994 + 1996: 17(ivec4) Load 19(ballot) + 1997: 23(fvec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1995 1996 + 1998: 44(ptr) AccessChain 31(data) 1993 34 + Store 1998 1997 + 1999: 6(int) Load 8(invocation) + 2000: 64(ptr) AccessChain 31(data) 34 63 35 + 2001: 24(int) Load 2000 + 2002: 17(ivec4) Load 19(ballot) + 2003: 24(int) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2001 2002 + 2004: 64(ptr) AccessChain 31(data) 1999 63 35 + Store 2004 2003 + 2005: 6(int) Load 8(invocation) + 2006: 71(ptr) AccessChain 31(data) 63 63 + 2007: 25(ivec4) Load 2006 + 2008: 70(ivec2) VectorShuffle 2007 2007 0 1 + 2009: 17(ivec4) Load 19(ballot) + 2010: 70(ivec2) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2008 2009 + 2011: 71(ptr) AccessChain 31(data) 2005 63 + 2012: 25(ivec4) Load 2011 + 2013: 25(ivec4) VectorShuffle 2012 2010 4 5 2 3 + Store 2011 2013 + 2014: 6(int) Load 8(invocation) + 2015: 71(ptr) AccessChain 31(data) 33 63 + 2016: 25(ivec4) Load 2015 + 2017: 78(ivec3) VectorShuffle 2016 2016 0 1 2 + 2018: 17(ivec4) Load 19(ballot) + 2019: 78(ivec3) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2017 2018 + 2020: 71(ptr) AccessChain 31(data) 2014 63 + 2021: 25(ivec4) Load 2020 + 2022: 25(ivec4) VectorShuffle 2021 2019 4 5 6 3 + Store 2020 2022 + 2023: 6(int) Load 8(invocation) + 2024: 71(ptr) AccessChain 31(data) 115 63 + 2025: 25(ivec4) Load 2024 + 2026: 17(ivec4) Load 19(ballot) + 2027: 25(ivec4) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2025 2026 + 2028: 71(ptr) AccessChain 31(data) 2023 63 + Store 2028 2027 + 2029: 6(int) Load 8(invocation) + 2030: 90(ptr) AccessChain 31(data) 34 33 35 + 2031: 6(int) Load 2030 + 2032: 17(ivec4) Load 19(ballot) + 2033: 6(int) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2031 2032 + 2034: 90(ptr) AccessChain 31(data) 2029 33 35 + Store 2034 2033 + 2035: 6(int) Load 8(invocation) + 2036: 40(ptr) AccessChain 31(data) 63 33 + 2037: 17(ivec4) Load 2036 + 2038: 96(ivec2) VectorShuffle 2037 2037 0 1 + 2039: 17(ivec4) Load 19(ballot) + 2040: 96(ivec2) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2038 2039 + 2041: 40(ptr) AccessChain 31(data) 2035 33 + 2042: 17(ivec4) Load 2041 + 2043: 17(ivec4) VectorShuffle 2042 2040 4 5 2 3 + Store 2041 2043 + 2044: 6(int) Load 8(invocation) + 2045: 40(ptr) AccessChain 31(data) 33 33 + 2046: 17(ivec4) Load 2045 + 2047: 103(ivec3) VectorShuffle 2046 2046 0 1 2 + 2048: 17(ivec4) Load 19(ballot) + 2049: 103(ivec3) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2047 2048 + 2050: 40(ptr) AccessChain 31(data) 2044 33 + 2051: 17(ivec4) Load 2050 + 2052: 17(ivec4) VectorShuffle 2051 2049 4 5 6 3 + Store 2050 2052 + 2053: 6(int) Load 8(invocation) + 2054: 40(ptr) AccessChain 31(data) 115 33 + 2055: 17(ivec4) Load 2054 + 2056: 17(ivec4) Load 19(ballot) + 2057: 17(ivec4) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2055 2056 + 2058: 40(ptr) AccessChain 31(data) 2053 33 + Store 2058 2057 + 2059: 6(int) Load 8(invocation) + 2060: 116(ptr) AccessChain 31(data) 34 115 35 + 2061:26(float64_t) Load 2060 + 2062: 17(ivec4) Load 19(ballot) + 2063:26(float64_t) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2061 2062 + 2064: 116(ptr) AccessChain 31(data) 2059 115 35 + Store 2064 2063 + 2065: 6(int) Load 8(invocation) + 2066: 123(ptr) AccessChain 31(data) 63 115 + 2067: 27(f64vec4) Load 2066 + 2068:122(f64vec2) VectorShuffle 2067 2067 0 1 + 2069: 17(ivec4) Load 19(ballot) + 2070:122(f64vec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2068 2069 + 2071: 123(ptr) AccessChain 31(data) 2065 115 + 2072: 27(f64vec4) Load 2071 + 2073: 27(f64vec4) VectorShuffle 2072 2070 4 5 2 3 + Store 2071 2073 + 2074: 6(int) Load 8(invocation) + 2075: 123(ptr) AccessChain 31(data) 33 115 + 2076: 27(f64vec4) Load 2075 + 2077:130(f64vec3) VectorShuffle 2076 2076 0 1 2 + 2078: 17(ivec4) Load 19(ballot) + 2079:130(f64vec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2077 2078 + 2080: 123(ptr) AccessChain 31(data) 2074 115 + 2081: 27(f64vec4) Load 2080 + 2082: 27(f64vec4) VectorShuffle 2081 2079 4 5 6 3 + Store 2080 2082 + 2083: 6(int) Load 8(invocation) + 2084: 123(ptr) AccessChain 31(data) 115 115 + 2085: 27(f64vec4) Load 2084 + 2086: 17(ivec4) Load 19(ballot) + 2087: 27(f64vec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2085 2086 + 2088: 123(ptr) AccessChain 31(data) 2083 115 + Store 2088 2087 + 2089: 6(int) Load 8(invocation) + 2090: 36(ptr) AccessChain 31(data) 34 34 35 + 2091: 22(float) Load 2090 + 2092: 17(ivec4) Load 19(ballot) + 2093: 22(float) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2091 2092 + 2094: 36(ptr) AccessChain 31(data) 2089 34 35 + Store 2094 2093 + 2095: 6(int) Load 8(invocation) + 2096: 44(ptr) AccessChain 31(data) 63 34 + 2097: 23(fvec4) Load 2096 + 2098: 43(fvec2) VectorShuffle 2097 2097 0 1 + 2099: 17(ivec4) Load 19(ballot) + 2100: 43(fvec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2098 2099 + 2101: 44(ptr) AccessChain 31(data) 2095 34 + 2102: 23(fvec4) Load 2101 + 2103: 23(fvec4) VectorShuffle 2102 2100 4 5 2 3 + Store 2101 2103 + 2104: 6(int) Load 8(invocation) + 2105: 44(ptr) AccessChain 31(data) 33 34 + 2106: 23(fvec4) Load 2105 + 2107: 51(fvec3) VectorShuffle 2106 2106 0 1 2 + 2108: 17(ivec4) Load 19(ballot) + 2109: 51(fvec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2107 2108 + 2110: 44(ptr) AccessChain 31(data) 2104 34 + 2111: 23(fvec4) Load 2110 + 2112: 23(fvec4) VectorShuffle 2111 2109 4 5 6 3 + Store 2110 2112 + 2113: 6(int) Load 8(invocation) + 2114: 44(ptr) AccessChain 31(data) 115 34 + 2115: 23(fvec4) Load 2114 + 2116: 17(ivec4) Load 19(ballot) + 2117: 23(fvec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2115 2116 + 2118: 44(ptr) AccessChain 31(data) 2113 34 + Store 2118 2117 + 2119: 6(int) Load 8(invocation) + 2120: 64(ptr) AccessChain 31(data) 34 63 35 + 2121: 24(int) Load 2120 + 2122: 17(ivec4) Load 19(ballot) + 2123: 24(int) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2121 2122 + 2124: 64(ptr) AccessChain 31(data) 2119 63 35 + Store 2124 2123 + 2125: 6(int) Load 8(invocation) + 2126: 71(ptr) AccessChain 31(data) 63 63 + 2127: 25(ivec4) Load 2126 + 2128: 70(ivec2) VectorShuffle 2127 2127 0 1 + 2129: 17(ivec4) Load 19(ballot) + 2130: 70(ivec2) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2128 2129 + 2131: 71(ptr) AccessChain 31(data) 2125 63 + 2132: 25(ivec4) Load 2131 + 2133: 25(ivec4) VectorShuffle 2132 2130 4 5 2 3 + Store 2131 2133 + 2134: 6(int) Load 8(invocation) + 2135: 71(ptr) AccessChain 31(data) 33 63 + 2136: 25(ivec4) Load 2135 + 2137: 78(ivec3) VectorShuffle 2136 2136 0 1 2 + 2138: 17(ivec4) Load 19(ballot) + 2139: 78(ivec3) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2137 2138 + 2140: 71(ptr) AccessChain 31(data) 2134 63 + 2141: 25(ivec4) Load 2140 + 2142: 25(ivec4) VectorShuffle 2141 2139 4 5 6 3 + Store 2140 2142 + 2143: 6(int) Load 8(invocation) + 2144: 71(ptr) AccessChain 31(data) 115 63 + 2145: 25(ivec4) Load 2144 + 2146: 17(ivec4) Load 19(ballot) + 2147: 25(ivec4) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2145 2146 + 2148: 71(ptr) AccessChain 31(data) 2143 63 + Store 2148 2147 + 2149: 6(int) Load 8(invocation) + 2150: 90(ptr) AccessChain 31(data) 34 33 35 + 2151: 6(int) Load 2150 + 2152: 17(ivec4) Load 19(ballot) + 2153: 6(int) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2151 2152 + 2154: 90(ptr) AccessChain 31(data) 2149 33 35 + Store 2154 2153 + 2155: 6(int) Load 8(invocation) + 2156: 40(ptr) AccessChain 31(data) 63 33 + 2157: 17(ivec4) Load 2156 + 2158: 96(ivec2) VectorShuffle 2157 2157 0 1 + 2159: 17(ivec4) Load 19(ballot) + 2160: 96(ivec2) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2158 2159 + 2161: 40(ptr) AccessChain 31(data) 2155 33 + 2162: 17(ivec4) Load 2161 + 2163: 17(ivec4) VectorShuffle 2162 2160 4 5 2 3 + Store 2161 2163 + 2164: 6(int) Load 8(invocation) + 2165: 40(ptr) AccessChain 31(data) 33 33 + 2166: 17(ivec4) Load 2165 + 2167: 103(ivec3) VectorShuffle 2166 2166 0 1 2 + 2168: 17(ivec4) Load 19(ballot) + 2169: 103(ivec3) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2167 2168 + 2170: 40(ptr) AccessChain 31(data) 2164 33 + 2171: 17(ivec4) Load 2170 + 2172: 17(ivec4) VectorShuffle 2171 2169 4 5 6 3 + Store 2170 2172 + 2173: 6(int) Load 8(invocation) + 2174: 40(ptr) AccessChain 31(data) 115 33 + 2175: 17(ivec4) Load 2174 + 2176: 17(ivec4) Load 19(ballot) + 2177: 17(ivec4) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2175 2176 + 2178: 40(ptr) AccessChain 31(data) 2173 33 + Store 2178 2177 + 2179: 6(int) Load 8(invocation) + 2180: 116(ptr) AccessChain 31(data) 34 115 35 + 2181:26(float64_t) Load 2180 + 2182: 17(ivec4) Load 19(ballot) + 2183:26(float64_t) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2181 2182 + 2184: 116(ptr) AccessChain 31(data) 2179 115 35 + Store 2184 2183 + 2185: 6(int) Load 8(invocation) + 2186: 123(ptr) AccessChain 31(data) 63 115 + 2187: 27(f64vec4) Load 2186 + 2188:122(f64vec2) VectorShuffle 2187 2187 0 1 + 2189: 17(ivec4) Load 19(ballot) + 2190:122(f64vec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2188 2189 + 2191: 123(ptr) AccessChain 31(data) 2185 115 + 2192: 27(f64vec4) Load 2191 + 2193: 27(f64vec4) VectorShuffle 2192 2190 4 5 2 3 + Store 2191 2193 + 2194: 6(int) Load 8(invocation) + 2195: 123(ptr) AccessChain 31(data) 33 115 + 2196: 27(f64vec4) Load 2195 + 2197:130(f64vec3) VectorShuffle 2196 2196 0 1 2 + 2198: 17(ivec4) Load 19(ballot) + 2199:130(f64vec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2197 2198 + 2200: 123(ptr) AccessChain 31(data) 2194 115 + 2201: 27(f64vec4) Load 2200 + 2202: 27(f64vec4) VectorShuffle 2201 2199 4 5 6 3 + Store 2200 2202 + 2203: 6(int) Load 8(invocation) + 2204: 123(ptr) AccessChain 31(data) 115 115 + 2205: 27(f64vec4) Load 2204 + 2206: 17(ivec4) Load 19(ballot) + 2207: 27(f64vec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2205 2206 + 2208: 123(ptr) AccessChain 31(data) 2203 115 + Store 2208 2207 + 2209: 6(int) Load 8(invocation) + 2210: 64(ptr) AccessChain 31(data) 34 63 35 + 2211: 24(int) Load 2210 + 2212: 17(ivec4) Load 19(ballot) + 2213: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2211 2212 + 2214: 64(ptr) AccessChain 31(data) 2209 63 35 + Store 2214 2213 + 2215: 6(int) Load 8(invocation) + 2216: 71(ptr) AccessChain 31(data) 63 63 + 2217: 25(ivec4) Load 2216 + 2218: 70(ivec2) VectorShuffle 2217 2217 0 1 + 2219: 17(ivec4) Load 19(ballot) + 2220: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2218 2219 + 2221: 71(ptr) AccessChain 31(data) 2215 63 + 2222: 25(ivec4) Load 2221 + 2223: 25(ivec4) VectorShuffle 2222 2220 4 5 2 3 + Store 2221 2223 + 2224: 6(int) Load 8(invocation) + 2225: 71(ptr) AccessChain 31(data) 33 63 + 2226: 25(ivec4) Load 2225 + 2227: 78(ivec3) VectorShuffle 2226 2226 0 1 2 + 2228: 17(ivec4) Load 19(ballot) + 2229: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2227 2228 + 2230: 71(ptr) AccessChain 31(data) 2224 63 + 2231: 25(ivec4) Load 2230 + 2232: 25(ivec4) VectorShuffle 2231 2229 4 5 6 3 + Store 2230 2232 + 2233: 6(int) Load 8(invocation) + 2234: 71(ptr) AccessChain 31(data) 115 63 + 2235: 25(ivec4) Load 2234 + 2236: 17(ivec4) Load 19(ballot) + 2237: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2235 2236 + 2238: 71(ptr) AccessChain 31(data) 2233 63 + Store 2238 2237 + 2239: 6(int) Load 8(invocation) + 2240: 90(ptr) AccessChain 31(data) 34 33 35 + 2241: 6(int) Load 2240 + 2242: 17(ivec4) Load 19(ballot) + 2243: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2241 2242 + 2244: 90(ptr) AccessChain 31(data) 2239 33 35 + Store 2244 2243 + 2245: 6(int) Load 8(invocation) + 2246: 40(ptr) AccessChain 31(data) 63 33 + 2247: 17(ivec4) Load 2246 + 2248: 96(ivec2) VectorShuffle 2247 2247 0 1 + 2249: 17(ivec4) Load 19(ballot) + 2250: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2248 2249 + 2251: 40(ptr) AccessChain 31(data) 2245 33 + 2252: 17(ivec4) Load 2251 + 2253: 17(ivec4) VectorShuffle 2252 2250 4 5 2 3 + Store 2251 2253 + 2254: 6(int) Load 8(invocation) + 2255: 40(ptr) AccessChain 31(data) 33 33 + 2256: 17(ivec4) Load 2255 + 2257: 103(ivec3) VectorShuffle 2256 2256 0 1 2 + 2258: 17(ivec4) Load 19(ballot) + 2259: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2257 2258 + 2260: 40(ptr) AccessChain 31(data) 2254 33 + 2261: 17(ivec4) Load 2260 + 2262: 17(ivec4) VectorShuffle 2261 2259 4 5 6 3 + Store 2260 2262 + 2263: 6(int) Load 8(invocation) + 2264: 40(ptr) AccessChain 31(data) 115 33 + 2265: 17(ivec4) Load 2264 + 2266: 17(ivec4) Load 19(ballot) + 2267: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2265 2266 + 2268: 40(ptr) AccessChain 31(data) 2263 33 + Store 2268 2267 + 2269: 6(int) Load 8(invocation) + 2270: 64(ptr) AccessChain 31(data) 34 63 35 + 2271: 24(int) Load 2270 + 2272: 144(bool) SLessThan 2271 34 + 2273: 17(ivec4) Load 19(ballot) + 2274: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2272 2273 + 2275: 24(int) Select 2274 63 34 + 2276: 64(ptr) AccessChain 31(data) 2269 63 35 + Store 2276 2275 + 2277: 6(int) Load 8(invocation) + 2278: 71(ptr) AccessChain 31(data) 63 63 + 2279: 25(ivec4) Load 2278 + 2280: 70(ivec2) VectorShuffle 2279 2279 0 1 + 2281: 152(bvec2) SLessThan 2280 727 + 2282: 17(ivec4) Load 19(ballot) + 2283: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2281 2282 + 2284: 70(ivec2) Select 2283 731 727 + 2285: 71(ptr) AccessChain 31(data) 2277 63 + 2286: 25(ivec4) Load 2285 + 2287: 25(ivec4) VectorShuffle 2286 2284 4 5 2 3 + Store 2285 2287 + 2288: 6(int) Load 8(invocation) + 2289: 71(ptr) AccessChain 31(data) 63 63 + 2290: 25(ivec4) Load 2289 + 2291: 78(ivec3) VectorShuffle 2290 2290 0 1 2 + 2292: 161(bvec3) SLessThan 2291 740 + 2293: 17(ivec4) Load 19(ballot) + 2294: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2292 2293 + 2295: 78(ivec3) Select 2294 744 740 + 2296: 71(ptr) AccessChain 31(data) 2288 63 + 2297: 25(ivec4) Load 2296 + 2298: 25(ivec4) VectorShuffle 2297 2295 4 5 6 3 + Store 2296 2298 + 2299: 6(int) Load 8(invocation) + 2300: 71(ptr) AccessChain 31(data) 63 63 + 2301: 25(ivec4) Load 2300 + 2302: 169(bvec4) SLessThan 2301 752 + 2303: 17(ivec4) Load 19(ballot) + 2304: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2302 2303 + 2305: 25(ivec4) Select 2304 756 752 + 2306: 71(ptr) AccessChain 31(data) 2299 63 + Store 2306 2305 + 2307: 6(int) Load 8(invocation) + 2308: 64(ptr) AccessChain 31(data) 34 63 35 + 2309: 24(int) Load 2308 + 2310: 17(ivec4) Load 19(ballot) + 2311: 24(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2309 2310 + 2312: 64(ptr) AccessChain 31(data) 2307 63 35 + Store 2312 2311 + 2313: 6(int) Load 8(invocation) + 2314: 71(ptr) AccessChain 31(data) 63 63 + 2315: 25(ivec4) Load 2314 + 2316: 70(ivec2) VectorShuffle 2315 2315 0 1 + 2317: 17(ivec4) Load 19(ballot) + 2318: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2316 2317 + 2319: 71(ptr) AccessChain 31(data) 2313 63 + 2320: 25(ivec4) Load 2319 + 2321: 25(ivec4) VectorShuffle 2320 2318 4 5 2 3 + Store 2319 2321 + 2322: 6(int) Load 8(invocation) + 2323: 71(ptr) AccessChain 31(data) 33 63 + 2324: 25(ivec4) Load 2323 + 2325: 78(ivec3) VectorShuffle 2324 2324 0 1 2 + 2326: 17(ivec4) Load 19(ballot) + 2327: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2325 2326 + 2328: 71(ptr) AccessChain 31(data) 2322 63 + 2329: 25(ivec4) Load 2328 + 2330: 25(ivec4) VectorShuffle 2329 2327 4 5 6 3 + Store 2328 2330 + 2331: 6(int) Load 8(invocation) + 2332: 71(ptr) AccessChain 31(data) 115 63 + 2333: 25(ivec4) Load 2332 + 2334: 17(ivec4) Load 19(ballot) + 2335: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2333 2334 + 2336: 71(ptr) AccessChain 31(data) 2331 63 + Store 2336 2335 + 2337: 6(int) Load 8(invocation) + 2338: 90(ptr) AccessChain 31(data) 34 33 35 + 2339: 6(int) Load 2338 + 2340: 17(ivec4) Load 19(ballot) + 2341: 6(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2339 2340 + 2342: 90(ptr) AccessChain 31(data) 2337 33 35 + Store 2342 2341 + 2343: 6(int) Load 8(invocation) + 2344: 40(ptr) AccessChain 31(data) 63 33 + 2345: 17(ivec4) Load 2344 + 2346: 96(ivec2) VectorShuffle 2345 2345 0 1 + 2347: 17(ivec4) Load 19(ballot) + 2348: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2346 2347 + 2349: 40(ptr) AccessChain 31(data) 2343 33 + 2350: 17(ivec4) Load 2349 + 2351: 17(ivec4) VectorShuffle 2350 2348 4 5 2 3 + Store 2349 2351 + 2352: 6(int) Load 8(invocation) + 2353: 40(ptr) AccessChain 31(data) 33 33 + 2354: 17(ivec4) Load 2353 + 2355: 103(ivec3) VectorShuffle 2354 2354 0 1 2 + 2356: 17(ivec4) Load 19(ballot) + 2357: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2355 2356 + 2358: 40(ptr) AccessChain 31(data) 2352 33 + 2359: 17(ivec4) Load 2358 + 2360: 17(ivec4) VectorShuffle 2359 2357 4 5 6 3 + Store 2358 2360 + 2361: 6(int) Load 8(invocation) + 2362: 40(ptr) AccessChain 31(data) 115 33 + 2363: 17(ivec4) Load 2362 + 2364: 17(ivec4) Load 19(ballot) + 2365: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2363 2364 + 2366: 40(ptr) AccessChain 31(data) 2361 33 + Store 2366 2365 + 2367: 6(int) Load 8(invocation) + 2368: 64(ptr) AccessChain 31(data) 34 63 35 + 2369: 24(int) Load 2368 + 2370: 144(bool) SLessThan 2369 34 + 2371: 17(ivec4) Load 19(ballot) + 2372: 144(bool) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2370 2371 + 2373: 24(int) Select 2372 63 34 + 2374: 64(ptr) AccessChain 31(data) 2367 63 35 + Store 2374 2373 + 2375: 6(int) Load 8(invocation) + 2376: 71(ptr) AccessChain 31(data) 63 63 + 2377: 25(ivec4) Load 2376 + 2378: 70(ivec2) VectorShuffle 2377 2377 0 1 + 2379: 152(bvec2) SLessThan 2378 727 + 2380: 17(ivec4) Load 19(ballot) + 2381: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2379 2380 + 2382: 70(ivec2) Select 2381 731 727 + 2383: 71(ptr) AccessChain 31(data) 2375 63 + 2384: 25(ivec4) Load 2383 + 2385: 25(ivec4) VectorShuffle 2384 2382 4 5 2 3 + Store 2383 2385 + 2386: 6(int) Load 8(invocation) + 2387: 71(ptr) AccessChain 31(data) 63 63 + 2388: 25(ivec4) Load 2387 + 2389: 78(ivec3) VectorShuffle 2388 2388 0 1 2 + 2390: 161(bvec3) SLessThan 2389 740 + 2391: 17(ivec4) Load 19(ballot) + 2392: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2390 2391 + 2393: 78(ivec3) Select 2392 744 740 + 2394: 71(ptr) AccessChain 31(data) 2386 63 + 2395: 25(ivec4) Load 2394 + 2396: 25(ivec4) VectorShuffle 2395 2393 4 5 6 3 + Store 2394 2396 + 2397: 6(int) Load 8(invocation) + 2398: 71(ptr) AccessChain 31(data) 63 63 + 2399: 25(ivec4) Load 2398 + 2400: 169(bvec4) SLessThan 2399 752 + 2401: 17(ivec4) Load 19(ballot) + 2402: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2400 2401 + 2403: 25(ivec4) Select 2402 756 752 + 2404: 71(ptr) AccessChain 31(data) 2397 63 + Store 2404 2403 + 2405: 6(int) Load 8(invocation) + 2406: 64(ptr) AccessChain 31(data) 34 63 35 + 2407: 24(int) Load 2406 + 2408: 17(ivec4) Load 19(ballot) + 2409: 24(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2407 2408 + 2410: 64(ptr) AccessChain 31(data) 2405 63 35 + Store 2410 2409 + 2411: 6(int) Load 8(invocation) + 2412: 71(ptr) AccessChain 31(data) 63 63 + 2413: 25(ivec4) Load 2412 + 2414: 70(ivec2) VectorShuffle 2413 2413 0 1 + 2415: 17(ivec4) Load 19(ballot) + 2416: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2414 2415 + 2417: 71(ptr) AccessChain 31(data) 2411 63 + 2418: 25(ivec4) Load 2417 + 2419: 25(ivec4) VectorShuffle 2418 2416 4 5 2 3 + Store 2417 2419 + 2420: 6(int) Load 8(invocation) + 2421: 71(ptr) AccessChain 31(data) 33 63 + 2422: 25(ivec4) Load 2421 + 2423: 78(ivec3) VectorShuffle 2422 2422 0 1 2 + 2424: 17(ivec4) Load 19(ballot) + 2425: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2423 2424 + 2426: 71(ptr) AccessChain 31(data) 2420 63 + 2427: 25(ivec4) Load 2426 + 2428: 25(ivec4) VectorShuffle 2427 2425 4 5 6 3 + Store 2426 2428 + 2429: 6(int) Load 8(invocation) + 2430: 71(ptr) AccessChain 31(data) 115 63 + 2431: 25(ivec4) Load 2430 + 2432: 17(ivec4) Load 19(ballot) + 2433: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2431 2432 + 2434: 71(ptr) AccessChain 31(data) 2429 63 + Store 2434 2433 + 2435: 6(int) Load 8(invocation) + 2436: 90(ptr) AccessChain 31(data) 34 33 35 + 2437: 6(int) Load 2436 + 2438: 17(ivec4) Load 19(ballot) + 2439: 6(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2437 2438 + 2440: 90(ptr) AccessChain 31(data) 2435 33 35 + Store 2440 2439 + 2441: 6(int) Load 8(invocation) + 2442: 40(ptr) AccessChain 31(data) 63 33 + 2443: 17(ivec4) Load 2442 + 2444: 96(ivec2) VectorShuffle 2443 2443 0 1 + 2445: 17(ivec4) Load 19(ballot) + 2446: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2444 2445 + 2447: 40(ptr) AccessChain 31(data) 2441 33 + 2448: 17(ivec4) Load 2447 + 2449: 17(ivec4) VectorShuffle 2448 2446 4 5 2 3 + Store 2447 2449 + 2450: 6(int) Load 8(invocation) + 2451: 40(ptr) AccessChain 31(data) 33 33 + 2452: 17(ivec4) Load 2451 + 2453: 103(ivec3) VectorShuffle 2452 2452 0 1 2 + 2454: 17(ivec4) Load 19(ballot) + 2455: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2453 2454 + 2456: 40(ptr) AccessChain 31(data) 2450 33 + 2457: 17(ivec4) Load 2456 + 2458: 17(ivec4) VectorShuffle 2457 2455 4 5 6 3 + Store 2456 2458 + 2459: 6(int) Load 8(invocation) + 2460: 40(ptr) AccessChain 31(data) 115 33 + 2461: 17(ivec4) Load 2460 + 2462: 17(ivec4) Load 19(ballot) + 2463: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2461 2462 + 2464: 40(ptr) AccessChain 31(data) 2459 33 + Store 2464 2463 + 2465: 6(int) Load 8(invocation) + 2466: 64(ptr) AccessChain 31(data) 34 63 35 + 2467: 24(int) Load 2466 + 2468: 144(bool) SLessThan 2467 34 + 2469: 17(ivec4) Load 19(ballot) + 2470: 144(bool) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2468 2469 + 2471: 24(int) Select 2470 63 34 + 2472: 64(ptr) AccessChain 31(data) 2465 63 35 + Store 2472 2471 + 2473: 6(int) Load 8(invocation) + 2474: 71(ptr) AccessChain 31(data) 63 63 + 2475: 25(ivec4) Load 2474 + 2476: 70(ivec2) VectorShuffle 2475 2475 0 1 + 2477: 152(bvec2) SLessThan 2476 727 + 2478: 17(ivec4) Load 19(ballot) + 2479: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2477 2478 + 2480: 70(ivec2) Select 2479 731 727 + 2481: 71(ptr) AccessChain 31(data) 2473 63 + 2482: 25(ivec4) Load 2481 + 2483: 25(ivec4) VectorShuffle 2482 2480 4 5 2 3 + Store 2481 2483 + 2484: 6(int) Load 8(invocation) + 2485: 71(ptr) AccessChain 31(data) 63 63 + 2486: 25(ivec4) Load 2485 + 2487: 78(ivec3) VectorShuffle 2486 2486 0 1 2 + 2488: 161(bvec3) SLessThan 2487 740 + 2489: 17(ivec4) Load 19(ballot) + 2490: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2488 2489 + 2491: 78(ivec3) Select 2490 744 740 + 2492: 71(ptr) AccessChain 31(data) 2484 63 + 2493: 25(ivec4) Load 2492 + 2494: 25(ivec4) VectorShuffle 2493 2491 4 5 6 3 + Store 2492 2494 + 2495: 6(int) Load 8(invocation) + 2496: 71(ptr) AccessChain 31(data) 63 63 + 2497: 25(ivec4) Load 2496 + 2498: 169(bvec4) SLessThan 2497 752 + 2499: 17(ivec4) Load 19(ballot) + 2500: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2498 2499 + 2501: 25(ivec4) Select 2500 756 752 + 2502: 71(ptr) AccessChain 31(data) 2495 63 + Store 2502 2501 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupQuad.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupQuad.comp.out new file mode 100644 index 0000000000..0299fc9ab4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupQuad.comp.out @@ -0,0 +1,739 @@ +spv.subgroupQuad.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 616 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformQuad + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 1 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + SourceExtension "GL_KHR_shader_subgroup_quad" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 24 "Buffers" + MemberName 24(Buffers) 0 "f4" + MemberName 24(Buffers) 1 "i4" + MemberName 24(Buffers) 2 "u4" + MemberName 24(Buffers) 3 "d4" + Name 27 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 24(Buffers) 0 Offset 0 + MemberDecorate 24(Buffers) 1 Offset 16 + MemberDecorate 24(Buffers) 2 Offset 32 + MemberDecorate 24(Buffers) 3 Offset 64 + Decorate 24(Buffers) BufferBlock + Decorate 27(data) DescriptorSet 0 + Decorate 27(data) Binding 0 + Decorate 615 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 21: TypeVector 6(int) 4 + 22: TypeFloat 64 + 23: TypeVector 22(float64_t) 4 + 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) + 25: TypeArray 24(Buffers) 15 + 26: TypePointer Uniform 25 + 27(data): 26(ptr) Variable Uniform + 29: 19(int) Constant 0 + 30: 6(int) Constant 0 + 31: TypePointer Uniform 17(float) + 34: 6(int) Constant 1 + 35: 6(int) Constant 3 + 39: 19(int) Constant 1 + 40: TypeVector 17(float) 2 + 41: TypePointer Uniform 18(fvec4) + 50: 19(int) Constant 2 + 51: TypeVector 17(float) 3 + 60: 19(int) Constant 3 + 66: TypePointer Uniform 19(int) + 72: TypeVector 19(int) 2 + 73: TypePointer Uniform 20(ivec4) + 82: TypeVector 19(int) 3 + 96: TypePointer Uniform 6(int) + 102: TypeVector 6(int) 2 + 103: TypePointer Uniform 21(ivec4) + 112: TypeVector 6(int) 3 + 126: TypePointer Uniform 22(float64_t) + 132: TypeVector 22(float64_t) 2 + 133: TypePointer Uniform 23(f64vec4) + 142: TypeVector 22(float64_t) 3 + 158: TypeBool + 167: 72(ivec2) ConstantComposite 29 29 + 168: TypeVector 158(bool) 2 + 171: 72(ivec2) ConstantComposite 39 39 + 180: 82(ivec3) ConstantComposite 29 29 29 + 181: TypeVector 158(bool) 3 + 184: 82(ivec3) ConstantComposite 39 39 39 + 192: 20(ivec4) ConstantComposite 29 29 29 29 + 193: TypeVector 158(bool) 4 + 196: 20(ivec4) ConstantComposite 39 39 39 39 + 478: 6(int) Constant 2 + 614: 6(int) Constant 8 + 615: 112(ivec3) ConstantComposite 614 34 34 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 28: 6(int) Load 8(invocation) + 32: 31(ptr) AccessChain 27(data) 29 29 30 + 33: 17(float) Load 32 + 36: 17(float) GroupNonUniformQuadBroadcast 35 33 34 + 37: 31(ptr) AccessChain 27(data) 28 29 30 + Store 37 36 + 38: 6(int) Load 8(invocation) + 42: 41(ptr) AccessChain 27(data) 39 29 + 43: 18(fvec4) Load 42 + 44: 40(fvec2) VectorShuffle 43 43 0 1 + 45: 40(fvec2) GroupNonUniformQuadBroadcast 35 44 34 + 46: 41(ptr) AccessChain 27(data) 38 29 + 47: 18(fvec4) Load 46 + 48: 18(fvec4) VectorShuffle 47 45 4 5 2 3 + Store 46 48 + 49: 6(int) Load 8(invocation) + 52: 41(ptr) AccessChain 27(data) 50 29 + 53: 18(fvec4) Load 52 + 54: 51(fvec3) VectorShuffle 53 53 0 1 2 + 55: 51(fvec3) GroupNonUniformQuadBroadcast 35 54 34 + 56: 41(ptr) AccessChain 27(data) 49 29 + 57: 18(fvec4) Load 56 + 58: 18(fvec4) VectorShuffle 57 55 4 5 6 3 + Store 56 58 + 59: 6(int) Load 8(invocation) + 61: 41(ptr) AccessChain 27(data) 60 29 + 62: 18(fvec4) Load 61 + 63: 18(fvec4) GroupNonUniformQuadBroadcast 35 62 34 + 64: 41(ptr) AccessChain 27(data) 59 29 + Store 64 63 + 65: 6(int) Load 8(invocation) + 67: 66(ptr) AccessChain 27(data) 29 39 30 + 68: 19(int) Load 67 + 69: 19(int) GroupNonUniformQuadBroadcast 35 68 34 + 70: 66(ptr) AccessChain 27(data) 65 39 30 + Store 70 69 + 71: 6(int) Load 8(invocation) + 74: 73(ptr) AccessChain 27(data) 39 39 + 75: 20(ivec4) Load 74 + 76: 72(ivec2) VectorShuffle 75 75 0 1 + 77: 72(ivec2) GroupNonUniformQuadBroadcast 35 76 34 + 78: 73(ptr) AccessChain 27(data) 71 39 + 79: 20(ivec4) Load 78 + 80: 20(ivec4) VectorShuffle 79 77 4 5 2 3 + Store 78 80 + 81: 6(int) Load 8(invocation) + 83: 73(ptr) AccessChain 27(data) 50 39 + 84: 20(ivec4) Load 83 + 85: 82(ivec3) VectorShuffle 84 84 0 1 2 + 86: 82(ivec3) GroupNonUniformQuadBroadcast 35 85 34 + 87: 73(ptr) AccessChain 27(data) 81 39 + 88: 20(ivec4) Load 87 + 89: 20(ivec4) VectorShuffle 88 86 4 5 6 3 + Store 87 89 + 90: 6(int) Load 8(invocation) + 91: 73(ptr) AccessChain 27(data) 60 39 + 92: 20(ivec4) Load 91 + 93: 20(ivec4) GroupNonUniformQuadBroadcast 35 92 34 + 94: 73(ptr) AccessChain 27(data) 90 39 + Store 94 93 + 95: 6(int) Load 8(invocation) + 97: 96(ptr) AccessChain 27(data) 29 50 30 + 98: 6(int) Load 97 + 99: 6(int) GroupNonUniformQuadBroadcast 35 98 34 + 100: 96(ptr) AccessChain 27(data) 95 50 30 + Store 100 99 + 101: 6(int) Load 8(invocation) + 104: 103(ptr) AccessChain 27(data) 39 50 + 105: 21(ivec4) Load 104 + 106: 102(ivec2) VectorShuffle 105 105 0 1 + 107: 102(ivec2) GroupNonUniformQuadBroadcast 35 106 34 + 108: 103(ptr) AccessChain 27(data) 101 50 + 109: 21(ivec4) Load 108 + 110: 21(ivec4) VectorShuffle 109 107 4 5 2 3 + Store 108 110 + 111: 6(int) Load 8(invocation) + 113: 103(ptr) AccessChain 27(data) 50 50 + 114: 21(ivec4) Load 113 + 115: 112(ivec3) VectorShuffle 114 114 0 1 2 + 116: 112(ivec3) GroupNonUniformQuadBroadcast 35 115 34 + 117: 103(ptr) AccessChain 27(data) 111 50 + 118: 21(ivec4) Load 117 + 119: 21(ivec4) VectorShuffle 118 116 4 5 6 3 + Store 117 119 + 120: 6(int) Load 8(invocation) + 121: 103(ptr) AccessChain 27(data) 60 50 + 122: 21(ivec4) Load 121 + 123: 21(ivec4) GroupNonUniformQuadBroadcast 35 122 34 + 124: 103(ptr) AccessChain 27(data) 120 50 + Store 124 123 + 125: 6(int) Load 8(invocation) + 127: 126(ptr) AccessChain 27(data) 29 60 30 + 128:22(float64_t) Load 127 + 129:22(float64_t) GroupNonUniformQuadBroadcast 35 128 34 + 130: 126(ptr) AccessChain 27(data) 125 60 30 + Store 130 129 + 131: 6(int) Load 8(invocation) + 134: 133(ptr) AccessChain 27(data) 39 60 + 135: 23(f64vec4) Load 134 + 136:132(f64vec2) VectorShuffle 135 135 0 1 + 137:132(f64vec2) GroupNonUniformQuadBroadcast 35 136 34 + 138: 133(ptr) AccessChain 27(data) 131 60 + 139: 23(f64vec4) Load 138 + 140: 23(f64vec4) VectorShuffle 139 137 4 5 2 3 + Store 138 140 + 141: 6(int) Load 8(invocation) + 143: 133(ptr) AccessChain 27(data) 50 60 + 144: 23(f64vec4) Load 143 + 145:142(f64vec3) VectorShuffle 144 144 0 1 2 + 146:142(f64vec3) GroupNonUniformQuadBroadcast 35 145 34 + 147: 133(ptr) AccessChain 27(data) 141 60 + 148: 23(f64vec4) Load 147 + 149: 23(f64vec4) VectorShuffle 148 146 4 5 6 3 + Store 147 149 + 150: 6(int) Load 8(invocation) + 151: 133(ptr) AccessChain 27(data) 60 60 + 152: 23(f64vec4) Load 151 + 153: 23(f64vec4) GroupNonUniformQuadBroadcast 35 152 34 + 154: 133(ptr) AccessChain 27(data) 150 60 + Store 154 153 + 155: 6(int) Load 8(invocation) + 156: 66(ptr) AccessChain 27(data) 29 39 30 + 157: 19(int) Load 156 + 159: 158(bool) SLessThan 157 29 + 160: 158(bool) GroupNonUniformQuadBroadcast 35 159 34 + 161: 19(int) Select 160 39 29 + 162: 66(ptr) AccessChain 27(data) 155 39 30 + Store 162 161 + 163: 6(int) Load 8(invocation) + 164: 73(ptr) AccessChain 27(data) 39 39 + 165: 20(ivec4) Load 164 + 166: 72(ivec2) VectorShuffle 165 165 0 1 + 169: 168(bvec2) SLessThan 166 167 + 170: 168(bvec2) GroupNonUniformQuadBroadcast 35 169 34 + 172: 72(ivec2) Select 170 171 167 + 173: 73(ptr) AccessChain 27(data) 163 39 + 174: 20(ivec4) Load 173 + 175: 20(ivec4) VectorShuffle 174 172 4 5 2 3 + Store 173 175 + 176: 6(int) Load 8(invocation) + 177: 73(ptr) AccessChain 27(data) 39 39 + 178: 20(ivec4) Load 177 + 179: 82(ivec3) VectorShuffle 178 178 0 1 2 + 182: 181(bvec3) SLessThan 179 180 + 183: 181(bvec3) GroupNonUniformQuadBroadcast 35 182 34 + 185: 82(ivec3) Select 183 184 180 + 186: 73(ptr) AccessChain 27(data) 176 39 + 187: 20(ivec4) Load 186 + 188: 20(ivec4) VectorShuffle 187 185 4 5 6 3 + Store 186 188 + 189: 6(int) Load 8(invocation) + 190: 73(ptr) AccessChain 27(data) 39 39 + 191: 20(ivec4) Load 190 + 194: 193(bvec4) SLessThan 191 192 + 195: 193(bvec4) GroupNonUniformQuadBroadcast 35 194 34 + 197: 20(ivec4) Select 195 196 192 + 198: 73(ptr) AccessChain 27(data) 189 39 + Store 198 197 + 199: 6(int) Load 8(invocation) + 200: 31(ptr) AccessChain 27(data) 29 29 30 + 201: 17(float) Load 200 + 202: 17(float) GroupNonUniformQuadSwap 35 201 30 + 203: 31(ptr) AccessChain 27(data) 199 29 30 + Store 203 202 + 204: 6(int) Load 8(invocation) + 205: 41(ptr) AccessChain 27(data) 39 29 + 206: 18(fvec4) Load 205 + 207: 40(fvec2) VectorShuffle 206 206 0 1 + 208: 40(fvec2) GroupNonUniformQuadSwap 35 207 30 + 209: 41(ptr) AccessChain 27(data) 204 29 + 210: 18(fvec4) Load 209 + 211: 18(fvec4) VectorShuffle 210 208 4 5 2 3 + Store 209 211 + 212: 6(int) Load 8(invocation) + 213: 41(ptr) AccessChain 27(data) 50 29 + 214: 18(fvec4) Load 213 + 215: 51(fvec3) VectorShuffle 214 214 0 1 2 + 216: 51(fvec3) GroupNonUniformQuadSwap 35 215 30 + 217: 41(ptr) AccessChain 27(data) 212 29 + 218: 18(fvec4) Load 217 + 219: 18(fvec4) VectorShuffle 218 216 4 5 6 3 + Store 217 219 + 220: 6(int) Load 8(invocation) + 221: 41(ptr) AccessChain 27(data) 60 29 + 222: 18(fvec4) Load 221 + 223: 18(fvec4) GroupNonUniformQuadSwap 35 222 30 + 224: 41(ptr) AccessChain 27(data) 220 29 + Store 224 223 + 225: 6(int) Load 8(invocation) + 226: 66(ptr) AccessChain 27(data) 29 39 30 + 227: 19(int) Load 226 + 228: 19(int) GroupNonUniformQuadSwap 35 227 30 + 229: 66(ptr) AccessChain 27(data) 225 39 30 + Store 229 228 + 230: 6(int) Load 8(invocation) + 231: 73(ptr) AccessChain 27(data) 39 39 + 232: 20(ivec4) Load 231 + 233: 72(ivec2) VectorShuffle 232 232 0 1 + 234: 72(ivec2) GroupNonUniformQuadSwap 35 233 30 + 235: 73(ptr) AccessChain 27(data) 230 39 + 236: 20(ivec4) Load 235 + 237: 20(ivec4) VectorShuffle 236 234 4 5 2 3 + Store 235 237 + 238: 6(int) Load 8(invocation) + 239: 73(ptr) AccessChain 27(data) 50 39 + 240: 20(ivec4) Load 239 + 241: 82(ivec3) VectorShuffle 240 240 0 1 2 + 242: 82(ivec3) GroupNonUniformQuadSwap 35 241 30 + 243: 73(ptr) AccessChain 27(data) 238 39 + 244: 20(ivec4) Load 243 + 245: 20(ivec4) VectorShuffle 244 242 4 5 6 3 + Store 243 245 + 246: 6(int) Load 8(invocation) + 247: 73(ptr) AccessChain 27(data) 60 39 + 248: 20(ivec4) Load 247 + 249: 20(ivec4) GroupNonUniformQuadSwap 35 248 30 + 250: 73(ptr) AccessChain 27(data) 246 39 + Store 250 249 + 251: 6(int) Load 8(invocation) + 252: 96(ptr) AccessChain 27(data) 29 50 30 + 253: 6(int) Load 252 + 254: 6(int) GroupNonUniformQuadSwap 35 253 30 + 255: 96(ptr) AccessChain 27(data) 251 50 30 + Store 255 254 + 256: 6(int) Load 8(invocation) + 257: 103(ptr) AccessChain 27(data) 39 50 + 258: 21(ivec4) Load 257 + 259: 102(ivec2) VectorShuffle 258 258 0 1 + 260: 102(ivec2) GroupNonUniformQuadSwap 35 259 30 + 261: 103(ptr) AccessChain 27(data) 256 50 + 262: 21(ivec4) Load 261 + 263: 21(ivec4) VectorShuffle 262 260 4 5 2 3 + Store 261 263 + 264: 6(int) Load 8(invocation) + 265: 103(ptr) AccessChain 27(data) 50 50 + 266: 21(ivec4) Load 265 + 267: 112(ivec3) VectorShuffle 266 266 0 1 2 + 268: 112(ivec3) GroupNonUniformQuadSwap 35 267 30 + 269: 103(ptr) AccessChain 27(data) 264 50 + 270: 21(ivec4) Load 269 + 271: 21(ivec4) VectorShuffle 270 268 4 5 6 3 + Store 269 271 + 272: 6(int) Load 8(invocation) + 273: 103(ptr) AccessChain 27(data) 60 50 + 274: 21(ivec4) Load 273 + 275: 21(ivec4) GroupNonUniformQuadSwap 35 274 30 + 276: 103(ptr) AccessChain 27(data) 272 50 + Store 276 275 + 277: 6(int) Load 8(invocation) + 278: 126(ptr) AccessChain 27(data) 29 60 30 + 279:22(float64_t) Load 278 + 280:22(float64_t) GroupNonUniformQuadSwap 35 279 30 + 281: 126(ptr) AccessChain 27(data) 277 60 30 + Store 281 280 + 282: 6(int) Load 8(invocation) + 283: 133(ptr) AccessChain 27(data) 39 60 + 284: 23(f64vec4) Load 283 + 285:132(f64vec2) VectorShuffle 284 284 0 1 + 286:132(f64vec2) GroupNonUniformQuadSwap 35 285 30 + 287: 133(ptr) AccessChain 27(data) 282 60 + 288: 23(f64vec4) Load 287 + 289: 23(f64vec4) VectorShuffle 288 286 4 5 2 3 + Store 287 289 + 290: 6(int) Load 8(invocation) + 291: 133(ptr) AccessChain 27(data) 50 60 + 292: 23(f64vec4) Load 291 + 293:142(f64vec3) VectorShuffle 292 292 0 1 2 + 294:142(f64vec3) GroupNonUniformQuadSwap 35 293 30 + 295: 133(ptr) AccessChain 27(data) 290 60 + 296: 23(f64vec4) Load 295 + 297: 23(f64vec4) VectorShuffle 296 294 4 5 6 3 + Store 295 297 + 298: 6(int) Load 8(invocation) + 299: 133(ptr) AccessChain 27(data) 60 60 + 300: 23(f64vec4) Load 299 + 301: 23(f64vec4) GroupNonUniformQuadSwap 35 300 30 + 302: 133(ptr) AccessChain 27(data) 298 60 + Store 302 301 + 303: 6(int) Load 8(invocation) + 304: 66(ptr) AccessChain 27(data) 29 39 30 + 305: 19(int) Load 304 + 306: 158(bool) SLessThan 305 29 + 307: 158(bool) GroupNonUniformQuadSwap 35 306 30 + 308: 19(int) Select 307 39 29 + 309: 66(ptr) AccessChain 27(data) 303 39 30 + Store 309 308 + 310: 6(int) Load 8(invocation) + 311: 73(ptr) AccessChain 27(data) 39 39 + 312: 20(ivec4) Load 311 + 313: 72(ivec2) VectorShuffle 312 312 0 1 + 314: 168(bvec2) SLessThan 313 167 + 315: 168(bvec2) GroupNonUniformQuadSwap 35 314 30 + 316: 72(ivec2) Select 315 171 167 + 317: 73(ptr) AccessChain 27(data) 310 39 + 318: 20(ivec4) Load 317 + 319: 20(ivec4) VectorShuffle 318 316 4 5 2 3 + Store 317 319 + 320: 6(int) Load 8(invocation) + 321: 73(ptr) AccessChain 27(data) 39 39 + 322: 20(ivec4) Load 321 + 323: 82(ivec3) VectorShuffle 322 322 0 1 2 + 324: 181(bvec3) SLessThan 323 180 + 325: 181(bvec3) GroupNonUniformQuadSwap 35 324 30 + 326: 82(ivec3) Select 325 184 180 + 327: 73(ptr) AccessChain 27(data) 320 39 + 328: 20(ivec4) Load 327 + 329: 20(ivec4) VectorShuffle 328 326 4 5 6 3 + Store 327 329 + 330: 6(int) Load 8(invocation) + 331: 73(ptr) AccessChain 27(data) 39 39 + 332: 20(ivec4) Load 331 + 333: 193(bvec4) SLessThan 332 192 + 334: 193(bvec4) GroupNonUniformQuadSwap 35 333 30 + 335: 20(ivec4) Select 334 196 192 + 336: 73(ptr) AccessChain 27(data) 330 39 + Store 336 335 + 337: 6(int) Load 8(invocation) + 338: 31(ptr) AccessChain 27(data) 29 29 30 + 339: 17(float) Load 338 + 340: 17(float) GroupNonUniformQuadSwap 35 339 34 + 341: 31(ptr) AccessChain 27(data) 337 29 30 + Store 341 340 + 342: 6(int) Load 8(invocation) + 343: 41(ptr) AccessChain 27(data) 39 29 + 344: 18(fvec4) Load 343 + 345: 40(fvec2) VectorShuffle 344 344 0 1 + 346: 40(fvec2) GroupNonUniformQuadSwap 35 345 34 + 347: 41(ptr) AccessChain 27(data) 342 29 + 348: 18(fvec4) Load 347 + 349: 18(fvec4) VectorShuffle 348 346 4 5 2 3 + Store 347 349 + 350: 6(int) Load 8(invocation) + 351: 41(ptr) AccessChain 27(data) 50 29 + 352: 18(fvec4) Load 351 + 353: 51(fvec3) VectorShuffle 352 352 0 1 2 + 354: 51(fvec3) GroupNonUniformQuadSwap 35 353 34 + 355: 41(ptr) AccessChain 27(data) 350 29 + 356: 18(fvec4) Load 355 + 357: 18(fvec4) VectorShuffle 356 354 4 5 6 3 + Store 355 357 + 358: 6(int) Load 8(invocation) + 359: 41(ptr) AccessChain 27(data) 60 29 + 360: 18(fvec4) Load 359 + 361: 18(fvec4) GroupNonUniformQuadSwap 35 360 34 + 362: 41(ptr) AccessChain 27(data) 358 29 + Store 362 361 + 363: 6(int) Load 8(invocation) + 364: 66(ptr) AccessChain 27(data) 29 39 30 + 365: 19(int) Load 364 + 366: 19(int) GroupNonUniformQuadSwap 35 365 34 + 367: 66(ptr) AccessChain 27(data) 363 39 30 + Store 367 366 + 368: 6(int) Load 8(invocation) + 369: 73(ptr) AccessChain 27(data) 39 39 + 370: 20(ivec4) Load 369 + 371: 72(ivec2) VectorShuffle 370 370 0 1 + 372: 72(ivec2) GroupNonUniformQuadSwap 35 371 34 + 373: 73(ptr) AccessChain 27(data) 368 39 + 374: 20(ivec4) Load 373 + 375: 20(ivec4) VectorShuffle 374 372 4 5 2 3 + Store 373 375 + 376: 6(int) Load 8(invocation) + 377: 73(ptr) AccessChain 27(data) 50 39 + 378: 20(ivec4) Load 377 + 379: 82(ivec3) VectorShuffle 378 378 0 1 2 + 380: 82(ivec3) GroupNonUniformQuadSwap 35 379 34 + 381: 73(ptr) AccessChain 27(data) 376 39 + 382: 20(ivec4) Load 381 + 383: 20(ivec4) VectorShuffle 382 380 4 5 6 3 + Store 381 383 + 384: 6(int) Load 8(invocation) + 385: 73(ptr) AccessChain 27(data) 60 39 + 386: 20(ivec4) Load 385 + 387: 20(ivec4) GroupNonUniformQuadSwap 35 386 34 + 388: 73(ptr) AccessChain 27(data) 384 39 + Store 388 387 + 389: 6(int) Load 8(invocation) + 390: 96(ptr) AccessChain 27(data) 29 50 30 + 391: 6(int) Load 390 + 392: 6(int) GroupNonUniformQuadSwap 35 391 34 + 393: 96(ptr) AccessChain 27(data) 389 50 30 + Store 393 392 + 394: 6(int) Load 8(invocation) + 395: 103(ptr) AccessChain 27(data) 39 50 + 396: 21(ivec4) Load 395 + 397: 102(ivec2) VectorShuffle 396 396 0 1 + 398: 102(ivec2) GroupNonUniformQuadSwap 35 397 34 + 399: 103(ptr) AccessChain 27(data) 394 50 + 400: 21(ivec4) Load 399 + 401: 21(ivec4) VectorShuffle 400 398 4 5 2 3 + Store 399 401 + 402: 6(int) Load 8(invocation) + 403: 103(ptr) AccessChain 27(data) 50 50 + 404: 21(ivec4) Load 403 + 405: 112(ivec3) VectorShuffle 404 404 0 1 2 + 406: 112(ivec3) GroupNonUniformQuadSwap 35 405 34 + 407: 103(ptr) AccessChain 27(data) 402 50 + 408: 21(ivec4) Load 407 + 409: 21(ivec4) VectorShuffle 408 406 4 5 6 3 + Store 407 409 + 410: 6(int) Load 8(invocation) + 411: 103(ptr) AccessChain 27(data) 60 50 + 412: 21(ivec4) Load 411 + 413: 21(ivec4) GroupNonUniformQuadSwap 35 412 34 + 414: 103(ptr) AccessChain 27(data) 410 50 + Store 414 413 + 415: 6(int) Load 8(invocation) + 416: 126(ptr) AccessChain 27(data) 29 60 30 + 417:22(float64_t) Load 416 + 418:22(float64_t) GroupNonUniformQuadSwap 35 417 34 + 419: 126(ptr) AccessChain 27(data) 415 60 30 + Store 419 418 + 420: 6(int) Load 8(invocation) + 421: 133(ptr) AccessChain 27(data) 39 60 + 422: 23(f64vec4) Load 421 + 423:132(f64vec2) VectorShuffle 422 422 0 1 + 424:132(f64vec2) GroupNonUniformQuadSwap 35 423 34 + 425: 133(ptr) AccessChain 27(data) 420 60 + 426: 23(f64vec4) Load 425 + 427: 23(f64vec4) VectorShuffle 426 424 4 5 2 3 + Store 425 427 + 428: 6(int) Load 8(invocation) + 429: 133(ptr) AccessChain 27(data) 50 60 + 430: 23(f64vec4) Load 429 + 431:142(f64vec3) VectorShuffle 430 430 0 1 2 + 432:142(f64vec3) GroupNonUniformQuadSwap 35 431 34 + 433: 133(ptr) AccessChain 27(data) 428 60 + 434: 23(f64vec4) Load 433 + 435: 23(f64vec4) VectorShuffle 434 432 4 5 6 3 + Store 433 435 + 436: 6(int) Load 8(invocation) + 437: 133(ptr) AccessChain 27(data) 60 60 + 438: 23(f64vec4) Load 437 + 439: 23(f64vec4) GroupNonUniformQuadSwap 35 438 34 + 440: 133(ptr) AccessChain 27(data) 436 60 + Store 440 439 + 441: 6(int) Load 8(invocation) + 442: 66(ptr) AccessChain 27(data) 29 39 30 + 443: 19(int) Load 442 + 444: 158(bool) SLessThan 443 29 + 445: 158(bool) GroupNonUniformQuadSwap 35 444 34 + 446: 19(int) Select 445 39 29 + 447: 66(ptr) AccessChain 27(data) 441 39 30 + Store 447 446 + 448: 6(int) Load 8(invocation) + 449: 73(ptr) AccessChain 27(data) 39 39 + 450: 20(ivec4) Load 449 + 451: 72(ivec2) VectorShuffle 450 450 0 1 + 452: 168(bvec2) SLessThan 451 167 + 453: 168(bvec2) GroupNonUniformQuadSwap 35 452 34 + 454: 72(ivec2) Select 453 171 167 + 455: 73(ptr) AccessChain 27(data) 448 39 + 456: 20(ivec4) Load 455 + 457: 20(ivec4) VectorShuffle 456 454 4 5 2 3 + Store 455 457 + 458: 6(int) Load 8(invocation) + 459: 73(ptr) AccessChain 27(data) 39 39 + 460: 20(ivec4) Load 459 + 461: 82(ivec3) VectorShuffle 460 460 0 1 2 + 462: 181(bvec3) SLessThan 461 180 + 463: 181(bvec3) GroupNonUniformQuadSwap 35 462 34 + 464: 82(ivec3) Select 463 184 180 + 465: 73(ptr) AccessChain 27(data) 458 39 + 466: 20(ivec4) Load 465 + 467: 20(ivec4) VectorShuffle 466 464 4 5 6 3 + Store 465 467 + 468: 6(int) Load 8(invocation) + 469: 73(ptr) AccessChain 27(data) 39 39 + 470: 20(ivec4) Load 469 + 471: 193(bvec4) SLessThan 470 192 + 472: 193(bvec4) GroupNonUniformQuadSwap 35 471 34 + 473: 20(ivec4) Select 472 196 192 + 474: 73(ptr) AccessChain 27(data) 468 39 + Store 474 473 + 475: 6(int) Load 8(invocation) + 476: 31(ptr) AccessChain 27(data) 29 29 30 + 477: 17(float) Load 476 + 479: 17(float) GroupNonUniformQuadSwap 35 477 478 + 480: 31(ptr) AccessChain 27(data) 475 29 30 + Store 480 479 + 481: 6(int) Load 8(invocation) + 482: 41(ptr) AccessChain 27(data) 39 29 + 483: 18(fvec4) Load 482 + 484: 40(fvec2) VectorShuffle 483 483 0 1 + 485: 40(fvec2) GroupNonUniformQuadSwap 35 484 478 + 486: 41(ptr) AccessChain 27(data) 481 29 + 487: 18(fvec4) Load 486 + 488: 18(fvec4) VectorShuffle 487 485 4 5 2 3 + Store 486 488 + 489: 6(int) Load 8(invocation) + 490: 41(ptr) AccessChain 27(data) 50 29 + 491: 18(fvec4) Load 490 + 492: 51(fvec3) VectorShuffle 491 491 0 1 2 + 493: 51(fvec3) GroupNonUniformQuadSwap 35 492 478 + 494: 41(ptr) AccessChain 27(data) 489 29 + 495: 18(fvec4) Load 494 + 496: 18(fvec4) VectorShuffle 495 493 4 5 6 3 + Store 494 496 + 497: 6(int) Load 8(invocation) + 498: 41(ptr) AccessChain 27(data) 60 29 + 499: 18(fvec4) Load 498 + 500: 18(fvec4) GroupNonUniformQuadSwap 35 499 478 + 501: 41(ptr) AccessChain 27(data) 497 29 + Store 501 500 + 502: 6(int) Load 8(invocation) + 503: 66(ptr) AccessChain 27(data) 29 39 30 + 504: 19(int) Load 503 + 505: 19(int) GroupNonUniformQuadSwap 35 504 478 + 506: 66(ptr) AccessChain 27(data) 502 39 30 + Store 506 505 + 507: 6(int) Load 8(invocation) + 508: 73(ptr) AccessChain 27(data) 39 39 + 509: 20(ivec4) Load 508 + 510: 72(ivec2) VectorShuffle 509 509 0 1 + 511: 72(ivec2) GroupNonUniformQuadSwap 35 510 478 + 512: 73(ptr) AccessChain 27(data) 507 39 + 513: 20(ivec4) Load 512 + 514: 20(ivec4) VectorShuffle 513 511 4 5 2 3 + Store 512 514 + 515: 6(int) Load 8(invocation) + 516: 73(ptr) AccessChain 27(data) 50 39 + 517: 20(ivec4) Load 516 + 518: 82(ivec3) VectorShuffle 517 517 0 1 2 + 519: 82(ivec3) GroupNonUniformQuadSwap 35 518 478 + 520: 73(ptr) AccessChain 27(data) 515 39 + 521: 20(ivec4) Load 520 + 522: 20(ivec4) VectorShuffle 521 519 4 5 6 3 + Store 520 522 + 523: 6(int) Load 8(invocation) + 524: 73(ptr) AccessChain 27(data) 60 39 + 525: 20(ivec4) Load 524 + 526: 20(ivec4) GroupNonUniformQuadSwap 35 525 478 + 527: 73(ptr) AccessChain 27(data) 523 39 + Store 527 526 + 528: 6(int) Load 8(invocation) + 529: 96(ptr) AccessChain 27(data) 29 50 30 + 530: 6(int) Load 529 + 531: 6(int) GroupNonUniformQuadSwap 35 530 478 + 532: 96(ptr) AccessChain 27(data) 528 50 30 + Store 532 531 + 533: 6(int) Load 8(invocation) + 534: 103(ptr) AccessChain 27(data) 39 50 + 535: 21(ivec4) Load 534 + 536: 102(ivec2) VectorShuffle 535 535 0 1 + 537: 102(ivec2) GroupNonUniformQuadSwap 35 536 478 + 538: 103(ptr) AccessChain 27(data) 533 50 + 539: 21(ivec4) Load 538 + 540: 21(ivec4) VectorShuffle 539 537 4 5 2 3 + Store 538 540 + 541: 6(int) Load 8(invocation) + 542: 103(ptr) AccessChain 27(data) 50 50 + 543: 21(ivec4) Load 542 + 544: 112(ivec3) VectorShuffle 543 543 0 1 2 + 545: 112(ivec3) GroupNonUniformQuadSwap 35 544 478 + 546: 103(ptr) AccessChain 27(data) 541 50 + 547: 21(ivec4) Load 546 + 548: 21(ivec4) VectorShuffle 547 545 4 5 6 3 + Store 546 548 + 549: 6(int) Load 8(invocation) + 550: 103(ptr) AccessChain 27(data) 60 50 + 551: 21(ivec4) Load 550 + 552: 21(ivec4) GroupNonUniformQuadSwap 35 551 478 + 553: 103(ptr) AccessChain 27(data) 549 50 + Store 553 552 + 554: 6(int) Load 8(invocation) + 555: 126(ptr) AccessChain 27(data) 29 60 30 + 556:22(float64_t) Load 555 + 557:22(float64_t) GroupNonUniformQuadSwap 35 556 478 + 558: 126(ptr) AccessChain 27(data) 554 60 30 + Store 558 557 + 559: 6(int) Load 8(invocation) + 560: 133(ptr) AccessChain 27(data) 39 60 + 561: 23(f64vec4) Load 560 + 562:132(f64vec2) VectorShuffle 561 561 0 1 + 563:132(f64vec2) GroupNonUniformQuadSwap 35 562 478 + 564: 133(ptr) AccessChain 27(data) 559 60 + 565: 23(f64vec4) Load 564 + 566: 23(f64vec4) VectorShuffle 565 563 4 5 2 3 + Store 564 566 + 567: 6(int) Load 8(invocation) + 568: 133(ptr) AccessChain 27(data) 50 60 + 569: 23(f64vec4) Load 568 + 570:142(f64vec3) VectorShuffle 569 569 0 1 2 + 571:142(f64vec3) GroupNonUniformQuadSwap 35 570 478 + 572: 133(ptr) AccessChain 27(data) 567 60 + 573: 23(f64vec4) Load 572 + 574: 23(f64vec4) VectorShuffle 573 571 4 5 6 3 + Store 572 574 + 575: 6(int) Load 8(invocation) + 576: 133(ptr) AccessChain 27(data) 60 60 + 577: 23(f64vec4) Load 576 + 578: 23(f64vec4) GroupNonUniformQuadSwap 35 577 478 + 579: 133(ptr) AccessChain 27(data) 575 60 + Store 579 578 + 580: 6(int) Load 8(invocation) + 581: 66(ptr) AccessChain 27(data) 29 39 30 + 582: 19(int) Load 581 + 583: 158(bool) SLessThan 582 29 + 584: 158(bool) GroupNonUniformQuadSwap 35 583 478 + 585: 19(int) Select 584 39 29 + 586: 66(ptr) AccessChain 27(data) 580 39 30 + Store 586 585 + 587: 6(int) Load 8(invocation) + 588: 73(ptr) AccessChain 27(data) 39 39 + 589: 20(ivec4) Load 588 + 590: 72(ivec2) VectorShuffle 589 589 0 1 + 591: 168(bvec2) SLessThan 590 167 + 592: 168(bvec2) GroupNonUniformQuadSwap 35 591 478 + 593: 72(ivec2) Select 592 171 167 + 594: 73(ptr) AccessChain 27(data) 587 39 + 595: 20(ivec4) Load 594 + 596: 20(ivec4) VectorShuffle 595 593 4 5 2 3 + Store 594 596 + 597: 6(int) Load 8(invocation) + 598: 73(ptr) AccessChain 27(data) 39 39 + 599: 20(ivec4) Load 598 + 600: 82(ivec3) VectorShuffle 599 599 0 1 2 + 601: 181(bvec3) SLessThan 600 180 + 602: 181(bvec3) GroupNonUniformQuadSwap 35 601 478 + 603: 82(ivec3) Select 602 184 180 + 604: 73(ptr) AccessChain 27(data) 597 39 + 605: 20(ivec4) Load 604 + 606: 20(ivec4) VectorShuffle 605 603 4 5 6 3 + Store 604 606 + 607: 6(int) Load 8(invocation) + 608: 73(ptr) AccessChain 27(data) 39 39 + 609: 20(ivec4) Load 608 + 610: 193(bvec4) SLessThan 609 192 + 611: 193(bvec4) GroupNonUniformQuadSwap 35 610 478 + 612: 20(ivec4) Select 611 196 192 + 613: 73(ptr) AccessChain 27(data) 607 39 + Store 613 612 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffle.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffle.comp.out new file mode 100644 index 0000000000..2f5e4aa58f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffle.comp.out @@ -0,0 +1,462 @@ +spv.subgroupShuffle.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 379 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformShuffle + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + SourceExtension "GL_KHR_shader_subgroup_shuffle" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 24 "Buffers" + MemberName 24(Buffers) 0 "f4" + MemberName 24(Buffers) 1 "i4" + MemberName 24(Buffers) 2 "u4" + MemberName 24(Buffers) 3 "d4" + Name 27 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 24(Buffers) 0 Offset 0 + MemberDecorate 24(Buffers) 1 Offset 16 + MemberDecorate 24(Buffers) 2 Offset 32 + MemberDecorate 24(Buffers) 3 Offset 64 + Decorate 24(Buffers) BufferBlock + Decorate 27(data) DescriptorSet 0 + Decorate 27(data) Binding 0 + Decorate 378 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 21: TypeVector 6(int) 4 + 22: TypeFloat 64 + 23: TypeVector 22(float64_t) 4 + 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) + 25: TypeArray 24(Buffers) 15 + 26: TypePointer Uniform 25 + 27(data): 26(ptr) Variable Uniform + 29: 19(int) Constant 0 + 30: 6(int) Constant 0 + 31: TypePointer Uniform 17(float) + 35: 6(int) Constant 3 + 39: 19(int) Constant 1 + 40: TypeVector 17(float) 2 + 41: TypePointer Uniform 18(fvec4) + 51: 19(int) Constant 2 + 52: TypeVector 17(float) 3 + 62: 19(int) Constant 3 + 69: TypePointer Uniform 19(int) + 76: TypeVector 19(int) 2 + 77: TypePointer Uniform 20(ivec4) + 87: TypeVector 19(int) 3 + 103: TypePointer Uniform 6(int) + 110: TypeVector 6(int) 2 + 111: TypePointer Uniform 21(ivec4) + 121: TypeVector 6(int) 3 + 137: TypePointer Uniform 22(float64_t) + 144: TypeVector 22(float64_t) 2 + 145: TypePointer Uniform 23(f64vec4) + 155: TypeVector 22(float64_t) 3 + 173: TypeBool + 183: 76(ivec2) ConstantComposite 29 29 + 184: TypeVector 173(bool) 2 + 188: 76(ivec2) ConstantComposite 39 39 + 197: 87(ivec3) ConstantComposite 29 29 29 + 198: TypeVector 173(bool) 3 + 202: 87(ivec3) ConstantComposite 39 39 39 + 210: 20(ivec4) ConstantComposite 29 29 29 29 + 211: TypeVector 173(bool) 4 + 215: 20(ivec4) ConstantComposite 39 39 39 39 + 376: 6(int) Constant 8 + 377: 6(int) Constant 1 + 378: 121(ivec3) ConstantComposite 376 376 377 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 28: 6(int) Load 8(invocation) + 32: 31(ptr) AccessChain 27(data) 29 29 30 + 33: 17(float) Load 32 + 34: 6(int) Load 8(invocation) + 36: 17(float) GroupNonUniformShuffle 35 33 34 + 37: 31(ptr) AccessChain 27(data) 28 29 30 + Store 37 36 + 38: 6(int) Load 8(invocation) + 42: 41(ptr) AccessChain 27(data) 39 29 + 43: 18(fvec4) Load 42 + 44: 40(fvec2) VectorShuffle 43 43 0 1 + 45: 6(int) Load 8(invocation) + 46: 40(fvec2) GroupNonUniformShuffle 35 44 45 + 47: 41(ptr) AccessChain 27(data) 38 29 + 48: 18(fvec4) Load 47 + 49: 18(fvec4) VectorShuffle 48 46 4 5 2 3 + Store 47 49 + 50: 6(int) Load 8(invocation) + 53: 41(ptr) AccessChain 27(data) 51 29 + 54: 18(fvec4) Load 53 + 55: 52(fvec3) VectorShuffle 54 54 0 1 2 + 56: 6(int) Load 8(invocation) + 57: 52(fvec3) GroupNonUniformShuffle 35 55 56 + 58: 41(ptr) AccessChain 27(data) 50 29 + 59: 18(fvec4) Load 58 + 60: 18(fvec4) VectorShuffle 59 57 4 5 6 3 + Store 58 60 + 61: 6(int) Load 8(invocation) + 63: 41(ptr) AccessChain 27(data) 62 29 + 64: 18(fvec4) Load 63 + 65: 6(int) Load 8(invocation) + 66: 18(fvec4) GroupNonUniformShuffle 35 64 65 + 67: 41(ptr) AccessChain 27(data) 61 29 + Store 67 66 + 68: 6(int) Load 8(invocation) + 70: 69(ptr) AccessChain 27(data) 29 39 30 + 71: 19(int) Load 70 + 72: 6(int) Load 8(invocation) + 73: 19(int) GroupNonUniformShuffle 35 71 72 + 74: 69(ptr) AccessChain 27(data) 68 39 30 + Store 74 73 + 75: 6(int) Load 8(invocation) + 78: 77(ptr) AccessChain 27(data) 39 39 + 79: 20(ivec4) Load 78 + 80: 76(ivec2) VectorShuffle 79 79 0 1 + 81: 6(int) Load 8(invocation) + 82: 76(ivec2) GroupNonUniformShuffle 35 80 81 + 83: 77(ptr) AccessChain 27(data) 75 39 + 84: 20(ivec4) Load 83 + 85: 20(ivec4) VectorShuffle 84 82 4 5 2 3 + Store 83 85 + 86: 6(int) Load 8(invocation) + 88: 77(ptr) AccessChain 27(data) 51 39 + 89: 20(ivec4) Load 88 + 90: 87(ivec3) VectorShuffle 89 89 0 1 2 + 91: 6(int) Load 8(invocation) + 92: 87(ivec3) GroupNonUniformShuffle 35 90 91 + 93: 77(ptr) AccessChain 27(data) 86 39 + 94: 20(ivec4) Load 93 + 95: 20(ivec4) VectorShuffle 94 92 4 5 6 3 + Store 93 95 + 96: 6(int) Load 8(invocation) + 97: 77(ptr) AccessChain 27(data) 62 39 + 98: 20(ivec4) Load 97 + 99: 6(int) Load 8(invocation) + 100: 20(ivec4) GroupNonUniformShuffle 35 98 99 + 101: 77(ptr) AccessChain 27(data) 96 39 + Store 101 100 + 102: 6(int) Load 8(invocation) + 104: 103(ptr) AccessChain 27(data) 29 51 30 + 105: 6(int) Load 104 + 106: 6(int) Load 8(invocation) + 107: 6(int) GroupNonUniformShuffle 35 105 106 + 108: 103(ptr) AccessChain 27(data) 102 51 30 + Store 108 107 + 109: 6(int) Load 8(invocation) + 112: 111(ptr) AccessChain 27(data) 39 51 + 113: 21(ivec4) Load 112 + 114: 110(ivec2) VectorShuffle 113 113 0 1 + 115: 6(int) Load 8(invocation) + 116: 110(ivec2) GroupNonUniformShuffle 35 114 115 + 117: 111(ptr) AccessChain 27(data) 109 51 + 118: 21(ivec4) Load 117 + 119: 21(ivec4) VectorShuffle 118 116 4 5 2 3 + Store 117 119 + 120: 6(int) Load 8(invocation) + 122: 111(ptr) AccessChain 27(data) 51 51 + 123: 21(ivec4) Load 122 + 124: 121(ivec3) VectorShuffle 123 123 0 1 2 + 125: 6(int) Load 8(invocation) + 126: 121(ivec3) GroupNonUniformShuffle 35 124 125 + 127: 111(ptr) AccessChain 27(data) 120 51 + 128: 21(ivec4) Load 127 + 129: 21(ivec4) VectorShuffle 128 126 4 5 6 3 + Store 127 129 + 130: 6(int) Load 8(invocation) + 131: 111(ptr) AccessChain 27(data) 62 51 + 132: 21(ivec4) Load 131 + 133: 6(int) Load 8(invocation) + 134: 21(ivec4) GroupNonUniformShuffle 35 132 133 + 135: 111(ptr) AccessChain 27(data) 130 51 + Store 135 134 + 136: 6(int) Load 8(invocation) + 138: 137(ptr) AccessChain 27(data) 29 62 30 + 139:22(float64_t) Load 138 + 140: 6(int) Load 8(invocation) + 141:22(float64_t) GroupNonUniformShuffle 35 139 140 + 142: 137(ptr) AccessChain 27(data) 136 62 30 + Store 142 141 + 143: 6(int) Load 8(invocation) + 146: 145(ptr) AccessChain 27(data) 39 62 + 147: 23(f64vec4) Load 146 + 148:144(f64vec2) VectorShuffle 147 147 0 1 + 149: 6(int) Load 8(invocation) + 150:144(f64vec2) GroupNonUniformShuffle 35 148 149 + 151: 145(ptr) AccessChain 27(data) 143 62 + 152: 23(f64vec4) Load 151 + 153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3 + Store 151 153 + 154: 6(int) Load 8(invocation) + 156: 145(ptr) AccessChain 27(data) 51 62 + 157: 23(f64vec4) Load 156 + 158:155(f64vec3) VectorShuffle 157 157 0 1 2 + 159: 6(int) Load 8(invocation) + 160:155(f64vec3) GroupNonUniformShuffle 35 158 159 + 161: 145(ptr) AccessChain 27(data) 154 62 + 162: 23(f64vec4) Load 161 + 163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3 + Store 161 163 + 164: 6(int) Load 8(invocation) + 165: 145(ptr) AccessChain 27(data) 62 62 + 166: 23(f64vec4) Load 165 + 167: 6(int) Load 8(invocation) + 168: 23(f64vec4) GroupNonUniformShuffle 35 166 167 + 169: 145(ptr) AccessChain 27(data) 164 62 + Store 169 168 + 170: 6(int) Load 8(invocation) + 171: 69(ptr) AccessChain 27(data) 29 39 30 + 172: 19(int) Load 171 + 174: 173(bool) SLessThan 172 29 + 175: 6(int) Load 8(invocation) + 176: 173(bool) GroupNonUniformShuffle 35 174 175 + 177: 19(int) Select 176 39 29 + 178: 69(ptr) AccessChain 27(data) 170 39 30 + Store 178 177 + 179: 6(int) Load 8(invocation) + 180: 77(ptr) AccessChain 27(data) 39 39 + 181: 20(ivec4) Load 180 + 182: 76(ivec2) VectorShuffle 181 181 0 1 + 185: 184(bvec2) SLessThan 182 183 + 186: 6(int) Load 8(invocation) + 187: 184(bvec2) GroupNonUniformShuffle 35 185 186 + 189: 76(ivec2) Select 187 188 183 + 190: 77(ptr) AccessChain 27(data) 179 39 + 191: 20(ivec4) Load 190 + 192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 + Store 190 192 + 193: 6(int) Load 8(invocation) + 194: 77(ptr) AccessChain 27(data) 39 39 + 195: 20(ivec4) Load 194 + 196: 87(ivec3) VectorShuffle 195 195 0 1 2 + 199: 198(bvec3) SLessThan 196 197 + 200: 6(int) Load 8(invocation) + 201: 198(bvec3) GroupNonUniformShuffle 35 199 200 + 203: 87(ivec3) Select 201 202 197 + 204: 77(ptr) AccessChain 27(data) 193 39 + 205: 20(ivec4) Load 204 + 206: 20(ivec4) VectorShuffle 205 203 4 5 6 3 + Store 204 206 + 207: 6(int) Load 8(invocation) + 208: 77(ptr) AccessChain 27(data) 39 39 + 209: 20(ivec4) Load 208 + 212: 211(bvec4) SLessThan 209 210 + 213: 6(int) Load 8(invocation) + 214: 211(bvec4) GroupNonUniformShuffle 35 212 213 + 216: 20(ivec4) Select 214 215 210 + 217: 77(ptr) AccessChain 27(data) 207 39 + Store 217 216 + 218: 6(int) Load 8(invocation) + 219: 31(ptr) AccessChain 27(data) 29 29 30 + 220: 17(float) Load 219 + 221: 6(int) Load 8(invocation) + 222: 17(float) GroupNonUniformShuffleXor 35 220 221 + 223: 31(ptr) AccessChain 27(data) 218 29 30 + Store 223 222 + 224: 6(int) Load 8(invocation) + 225: 41(ptr) AccessChain 27(data) 39 29 + 226: 18(fvec4) Load 225 + 227: 40(fvec2) VectorShuffle 226 226 0 1 + 228: 6(int) Load 8(invocation) + 229: 40(fvec2) GroupNonUniformShuffleXor 35 227 228 + 230: 41(ptr) AccessChain 27(data) 224 29 + 231: 18(fvec4) Load 230 + 232: 18(fvec4) VectorShuffle 231 229 4 5 2 3 + Store 230 232 + 233: 6(int) Load 8(invocation) + 234: 41(ptr) AccessChain 27(data) 51 29 + 235: 18(fvec4) Load 234 + 236: 52(fvec3) VectorShuffle 235 235 0 1 2 + 237: 6(int) Load 8(invocation) + 238: 52(fvec3) GroupNonUniformShuffleXor 35 236 237 + 239: 41(ptr) AccessChain 27(data) 233 29 + 240: 18(fvec4) Load 239 + 241: 18(fvec4) VectorShuffle 240 238 4 5 6 3 + Store 239 241 + 242: 6(int) Load 8(invocation) + 243: 41(ptr) AccessChain 27(data) 62 29 + 244: 18(fvec4) Load 243 + 245: 6(int) Load 8(invocation) + 246: 18(fvec4) GroupNonUniformShuffleXor 35 244 245 + 247: 41(ptr) AccessChain 27(data) 242 29 + Store 247 246 + 248: 6(int) Load 8(invocation) + 249: 69(ptr) AccessChain 27(data) 29 39 30 + 250: 19(int) Load 249 + 251: 6(int) Load 8(invocation) + 252: 19(int) GroupNonUniformShuffleXor 35 250 251 + 253: 69(ptr) AccessChain 27(data) 248 39 30 + Store 253 252 + 254: 6(int) Load 8(invocation) + 255: 77(ptr) AccessChain 27(data) 39 39 + 256: 20(ivec4) Load 255 + 257: 76(ivec2) VectorShuffle 256 256 0 1 + 258: 6(int) Load 8(invocation) + 259: 76(ivec2) GroupNonUniformShuffleXor 35 257 258 + 260: 77(ptr) AccessChain 27(data) 254 39 + 261: 20(ivec4) Load 260 + 262: 20(ivec4) VectorShuffle 261 259 4 5 2 3 + Store 260 262 + 263: 6(int) Load 8(invocation) + 264: 77(ptr) AccessChain 27(data) 51 39 + 265: 20(ivec4) Load 264 + 266: 87(ivec3) VectorShuffle 265 265 0 1 2 + 267: 6(int) Load 8(invocation) + 268: 87(ivec3) GroupNonUniformShuffleXor 35 266 267 + 269: 77(ptr) AccessChain 27(data) 263 39 + 270: 20(ivec4) Load 269 + 271: 20(ivec4) VectorShuffle 270 268 4 5 6 3 + Store 269 271 + 272: 6(int) Load 8(invocation) + 273: 77(ptr) AccessChain 27(data) 62 39 + 274: 20(ivec4) Load 273 + 275: 6(int) Load 8(invocation) + 276: 20(ivec4) GroupNonUniformShuffleXor 35 274 275 + 277: 77(ptr) AccessChain 27(data) 272 39 + Store 277 276 + 278: 6(int) Load 8(invocation) + 279: 103(ptr) AccessChain 27(data) 29 51 30 + 280: 6(int) Load 279 + 281: 6(int) Load 8(invocation) + 282: 6(int) GroupNonUniformShuffleXor 35 280 281 + 283: 103(ptr) AccessChain 27(data) 278 51 30 + Store 283 282 + 284: 6(int) Load 8(invocation) + 285: 111(ptr) AccessChain 27(data) 39 51 + 286: 21(ivec4) Load 285 + 287: 110(ivec2) VectorShuffle 286 286 0 1 + 288: 6(int) Load 8(invocation) + 289: 110(ivec2) GroupNonUniformShuffleXor 35 287 288 + 290: 111(ptr) AccessChain 27(data) 284 51 + 291: 21(ivec4) Load 290 + 292: 21(ivec4) VectorShuffle 291 289 4 5 2 3 + Store 290 292 + 293: 6(int) Load 8(invocation) + 294: 111(ptr) AccessChain 27(data) 51 51 + 295: 21(ivec4) Load 294 + 296: 121(ivec3) VectorShuffle 295 295 0 1 2 + 297: 6(int) Load 8(invocation) + 298: 121(ivec3) GroupNonUniformShuffleXor 35 296 297 + 299: 111(ptr) AccessChain 27(data) 293 51 + 300: 21(ivec4) Load 299 + 301: 21(ivec4) VectorShuffle 300 298 4 5 6 3 + Store 299 301 + 302: 6(int) Load 8(invocation) + 303: 111(ptr) AccessChain 27(data) 62 51 + 304: 21(ivec4) Load 303 + 305: 6(int) Load 8(invocation) + 306: 21(ivec4) GroupNonUniformShuffleXor 35 304 305 + 307: 111(ptr) AccessChain 27(data) 302 51 + Store 307 306 + 308: 6(int) Load 8(invocation) + 309: 137(ptr) AccessChain 27(data) 29 62 30 + 310:22(float64_t) Load 309 + 311: 6(int) Load 8(invocation) + 312:22(float64_t) GroupNonUniformShuffleXor 35 310 311 + 313: 137(ptr) AccessChain 27(data) 308 62 30 + Store 313 312 + 314: 6(int) Load 8(invocation) + 315: 145(ptr) AccessChain 27(data) 39 62 + 316: 23(f64vec4) Load 315 + 317:144(f64vec2) VectorShuffle 316 316 0 1 + 318: 6(int) Load 8(invocation) + 319:144(f64vec2) GroupNonUniformShuffleXor 35 317 318 + 320: 145(ptr) AccessChain 27(data) 314 62 + 321: 23(f64vec4) Load 320 + 322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3 + Store 320 322 + 323: 6(int) Load 8(invocation) + 324: 145(ptr) AccessChain 27(data) 51 62 + 325: 23(f64vec4) Load 324 + 326:155(f64vec3) VectorShuffle 325 325 0 1 2 + 327: 6(int) Load 8(invocation) + 328:155(f64vec3) GroupNonUniformShuffleXor 35 326 327 + 329: 145(ptr) AccessChain 27(data) 323 62 + 330: 23(f64vec4) Load 329 + 331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3 + Store 329 331 + 332: 6(int) Load 8(invocation) + 333: 145(ptr) AccessChain 27(data) 62 62 + 334: 23(f64vec4) Load 333 + 335: 6(int) Load 8(invocation) + 336: 23(f64vec4) GroupNonUniformShuffleXor 35 334 335 + 337: 145(ptr) AccessChain 27(data) 332 62 + Store 337 336 + 338: 6(int) Load 8(invocation) + 339: 69(ptr) AccessChain 27(data) 29 39 30 + 340: 19(int) Load 339 + 341: 173(bool) SLessThan 340 29 + 342: 6(int) Load 8(invocation) + 343: 173(bool) GroupNonUniformShuffleXor 35 341 342 + 344: 19(int) Select 343 39 29 + 345: 69(ptr) AccessChain 27(data) 338 39 30 + Store 345 344 + 346: 6(int) Load 8(invocation) + 347: 77(ptr) AccessChain 27(data) 39 39 + 348: 20(ivec4) Load 347 + 349: 76(ivec2) VectorShuffle 348 348 0 1 + 350: 184(bvec2) SLessThan 349 183 + 351: 6(int) Load 8(invocation) + 352: 184(bvec2) GroupNonUniformShuffleXor 35 350 351 + 353: 76(ivec2) Select 352 188 183 + 354: 77(ptr) AccessChain 27(data) 346 39 + 355: 20(ivec4) Load 354 + 356: 20(ivec4) VectorShuffle 355 353 4 5 2 3 + Store 354 356 + 357: 6(int) Load 8(invocation) + 358: 77(ptr) AccessChain 27(data) 39 39 + 359: 20(ivec4) Load 358 + 360: 87(ivec3) VectorShuffle 359 359 0 1 2 + 361: 198(bvec3) SLessThan 360 197 + 362: 6(int) Load 8(invocation) + 363: 198(bvec3) GroupNonUniformShuffleXor 35 361 362 + 364: 87(ivec3) Select 363 202 197 + 365: 77(ptr) AccessChain 27(data) 357 39 + 366: 20(ivec4) Load 365 + 367: 20(ivec4) VectorShuffle 366 364 4 5 6 3 + Store 365 367 + 368: 6(int) Load 8(invocation) + 369: 77(ptr) AccessChain 27(data) 39 39 + 370: 20(ivec4) Load 369 + 371: 211(bvec4) SLessThan 370 210 + 372: 6(int) Load 8(invocation) + 373: 211(bvec4) GroupNonUniformShuffleXor 35 371 372 + 374: 20(ivec4) Select 373 215 210 + 375: 77(ptr) AccessChain 27(data) 368 39 + Store 375 374 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out new file mode 100644 index 0000000000..757d4cab34 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out @@ -0,0 +1,462 @@ +spv.subgroupShuffleRelative.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 379 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformShuffleRelative + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 24 "Buffers" + MemberName 24(Buffers) 0 "f4" + MemberName 24(Buffers) 1 "i4" + MemberName 24(Buffers) 2 "u4" + MemberName 24(Buffers) 3 "d4" + Name 27 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 24(Buffers) 0 Offset 0 + MemberDecorate 24(Buffers) 1 Offset 16 + MemberDecorate 24(Buffers) 2 Offset 32 + MemberDecorate 24(Buffers) 3 Offset 64 + Decorate 24(Buffers) BufferBlock + Decorate 27(data) DescriptorSet 0 + Decorate 27(data) Binding 0 + Decorate 378 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 21: TypeVector 6(int) 4 + 22: TypeFloat 64 + 23: TypeVector 22(float64_t) 4 + 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) + 25: TypeArray 24(Buffers) 15 + 26: TypePointer Uniform 25 + 27(data): 26(ptr) Variable Uniform + 29: 19(int) Constant 0 + 30: 6(int) Constant 0 + 31: TypePointer Uniform 17(float) + 35: 6(int) Constant 3 + 39: 19(int) Constant 1 + 40: TypeVector 17(float) 2 + 41: TypePointer Uniform 18(fvec4) + 51: 19(int) Constant 2 + 52: TypeVector 17(float) 3 + 62: 19(int) Constant 3 + 69: TypePointer Uniform 19(int) + 76: TypeVector 19(int) 2 + 77: TypePointer Uniform 20(ivec4) + 87: TypeVector 19(int) 3 + 103: TypePointer Uniform 6(int) + 110: TypeVector 6(int) 2 + 111: TypePointer Uniform 21(ivec4) + 121: TypeVector 6(int) 3 + 137: TypePointer Uniform 22(float64_t) + 144: TypeVector 22(float64_t) 2 + 145: TypePointer Uniform 23(f64vec4) + 155: TypeVector 22(float64_t) 3 + 173: TypeBool + 183: 76(ivec2) ConstantComposite 29 29 + 184: TypeVector 173(bool) 2 + 188: 76(ivec2) ConstantComposite 39 39 + 197: 87(ivec3) ConstantComposite 29 29 29 + 198: TypeVector 173(bool) 3 + 202: 87(ivec3) ConstantComposite 39 39 39 + 210: 20(ivec4) ConstantComposite 29 29 29 29 + 211: TypeVector 173(bool) 4 + 215: 20(ivec4) ConstantComposite 39 39 39 39 + 376: 6(int) Constant 8 + 377: 6(int) Constant 1 + 378: 121(ivec3) ConstantComposite 376 376 377 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 28: 6(int) Load 8(invocation) + 32: 31(ptr) AccessChain 27(data) 29 29 30 + 33: 17(float) Load 32 + 34: 6(int) Load 8(invocation) + 36: 17(float) GroupNonUniformShuffleUp 35 33 34 + 37: 31(ptr) AccessChain 27(data) 28 29 30 + Store 37 36 + 38: 6(int) Load 8(invocation) + 42: 41(ptr) AccessChain 27(data) 39 29 + 43: 18(fvec4) Load 42 + 44: 40(fvec2) VectorShuffle 43 43 0 1 + 45: 6(int) Load 8(invocation) + 46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45 + 47: 41(ptr) AccessChain 27(data) 38 29 + 48: 18(fvec4) Load 47 + 49: 18(fvec4) VectorShuffle 48 46 4 5 2 3 + Store 47 49 + 50: 6(int) Load 8(invocation) + 53: 41(ptr) AccessChain 27(data) 51 29 + 54: 18(fvec4) Load 53 + 55: 52(fvec3) VectorShuffle 54 54 0 1 2 + 56: 6(int) Load 8(invocation) + 57: 52(fvec3) GroupNonUniformShuffleUp 35 55 56 + 58: 41(ptr) AccessChain 27(data) 50 29 + 59: 18(fvec4) Load 58 + 60: 18(fvec4) VectorShuffle 59 57 4 5 6 3 + Store 58 60 + 61: 6(int) Load 8(invocation) + 63: 41(ptr) AccessChain 27(data) 62 29 + 64: 18(fvec4) Load 63 + 65: 6(int) Load 8(invocation) + 66: 18(fvec4) GroupNonUniformShuffleUp 35 64 65 + 67: 41(ptr) AccessChain 27(data) 61 29 + Store 67 66 + 68: 6(int) Load 8(invocation) + 70: 69(ptr) AccessChain 27(data) 29 39 30 + 71: 19(int) Load 70 + 72: 6(int) Load 8(invocation) + 73: 19(int) GroupNonUniformShuffleUp 35 71 72 + 74: 69(ptr) AccessChain 27(data) 68 39 30 + Store 74 73 + 75: 6(int) Load 8(invocation) + 78: 77(ptr) AccessChain 27(data) 39 39 + 79: 20(ivec4) Load 78 + 80: 76(ivec2) VectorShuffle 79 79 0 1 + 81: 6(int) Load 8(invocation) + 82: 76(ivec2) GroupNonUniformShuffleUp 35 80 81 + 83: 77(ptr) AccessChain 27(data) 75 39 + 84: 20(ivec4) Load 83 + 85: 20(ivec4) VectorShuffle 84 82 4 5 2 3 + Store 83 85 + 86: 6(int) Load 8(invocation) + 88: 77(ptr) AccessChain 27(data) 51 39 + 89: 20(ivec4) Load 88 + 90: 87(ivec3) VectorShuffle 89 89 0 1 2 + 91: 6(int) Load 8(invocation) + 92: 87(ivec3) GroupNonUniformShuffleUp 35 90 91 + 93: 77(ptr) AccessChain 27(data) 86 39 + 94: 20(ivec4) Load 93 + 95: 20(ivec4) VectorShuffle 94 92 4 5 6 3 + Store 93 95 + 96: 6(int) Load 8(invocation) + 97: 77(ptr) AccessChain 27(data) 62 39 + 98: 20(ivec4) Load 97 + 99: 6(int) Load 8(invocation) + 100: 20(ivec4) GroupNonUniformShuffleUp 35 98 99 + 101: 77(ptr) AccessChain 27(data) 96 39 + Store 101 100 + 102: 6(int) Load 8(invocation) + 104: 103(ptr) AccessChain 27(data) 29 51 30 + 105: 6(int) Load 104 + 106: 6(int) Load 8(invocation) + 107: 6(int) GroupNonUniformShuffleUp 35 105 106 + 108: 103(ptr) AccessChain 27(data) 102 51 30 + Store 108 107 + 109: 6(int) Load 8(invocation) + 112: 111(ptr) AccessChain 27(data) 39 51 + 113: 21(ivec4) Load 112 + 114: 110(ivec2) VectorShuffle 113 113 0 1 + 115: 6(int) Load 8(invocation) + 116: 110(ivec2) GroupNonUniformShuffleUp 35 114 115 + 117: 111(ptr) AccessChain 27(data) 109 51 + 118: 21(ivec4) Load 117 + 119: 21(ivec4) VectorShuffle 118 116 4 5 2 3 + Store 117 119 + 120: 6(int) Load 8(invocation) + 122: 111(ptr) AccessChain 27(data) 51 51 + 123: 21(ivec4) Load 122 + 124: 121(ivec3) VectorShuffle 123 123 0 1 2 + 125: 6(int) Load 8(invocation) + 126: 121(ivec3) GroupNonUniformShuffleUp 35 124 125 + 127: 111(ptr) AccessChain 27(data) 120 51 + 128: 21(ivec4) Load 127 + 129: 21(ivec4) VectorShuffle 128 126 4 5 6 3 + Store 127 129 + 130: 6(int) Load 8(invocation) + 131: 111(ptr) AccessChain 27(data) 62 51 + 132: 21(ivec4) Load 131 + 133: 6(int) Load 8(invocation) + 134: 21(ivec4) GroupNonUniformShuffleUp 35 132 133 + 135: 111(ptr) AccessChain 27(data) 130 51 + Store 135 134 + 136: 6(int) Load 8(invocation) + 138: 137(ptr) AccessChain 27(data) 29 62 30 + 139:22(float64_t) Load 138 + 140: 6(int) Load 8(invocation) + 141:22(float64_t) GroupNonUniformShuffleUp 35 139 140 + 142: 137(ptr) AccessChain 27(data) 136 62 30 + Store 142 141 + 143: 6(int) Load 8(invocation) + 146: 145(ptr) AccessChain 27(data) 39 62 + 147: 23(f64vec4) Load 146 + 148:144(f64vec2) VectorShuffle 147 147 0 1 + 149: 6(int) Load 8(invocation) + 150:144(f64vec2) GroupNonUniformShuffleUp 35 148 149 + 151: 145(ptr) AccessChain 27(data) 143 62 + 152: 23(f64vec4) Load 151 + 153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3 + Store 151 153 + 154: 6(int) Load 8(invocation) + 156: 145(ptr) AccessChain 27(data) 51 62 + 157: 23(f64vec4) Load 156 + 158:155(f64vec3) VectorShuffle 157 157 0 1 2 + 159: 6(int) Load 8(invocation) + 160:155(f64vec3) GroupNonUniformShuffleUp 35 158 159 + 161: 145(ptr) AccessChain 27(data) 154 62 + 162: 23(f64vec4) Load 161 + 163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3 + Store 161 163 + 164: 6(int) Load 8(invocation) + 165: 145(ptr) AccessChain 27(data) 62 62 + 166: 23(f64vec4) Load 165 + 167: 6(int) Load 8(invocation) + 168: 23(f64vec4) GroupNonUniformShuffleUp 35 166 167 + 169: 145(ptr) AccessChain 27(data) 164 62 + Store 169 168 + 170: 6(int) Load 8(invocation) + 171: 69(ptr) AccessChain 27(data) 29 39 30 + 172: 19(int) Load 171 + 174: 173(bool) SLessThan 172 29 + 175: 6(int) Load 8(invocation) + 176: 173(bool) GroupNonUniformShuffleUp 35 174 175 + 177: 19(int) Select 176 39 29 + 178: 69(ptr) AccessChain 27(data) 170 39 30 + Store 178 177 + 179: 6(int) Load 8(invocation) + 180: 77(ptr) AccessChain 27(data) 39 39 + 181: 20(ivec4) Load 180 + 182: 76(ivec2) VectorShuffle 181 181 0 1 + 185: 184(bvec2) SLessThan 182 183 + 186: 6(int) Load 8(invocation) + 187: 184(bvec2) GroupNonUniformShuffleUp 35 185 186 + 189: 76(ivec2) Select 187 188 183 + 190: 77(ptr) AccessChain 27(data) 179 39 + 191: 20(ivec4) Load 190 + 192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 + Store 190 192 + 193: 6(int) Load 8(invocation) + 194: 77(ptr) AccessChain 27(data) 39 39 + 195: 20(ivec4) Load 194 + 196: 87(ivec3) VectorShuffle 195 195 0 1 2 + 199: 198(bvec3) SLessThan 196 197 + 200: 6(int) Load 8(invocation) + 201: 198(bvec3) GroupNonUniformShuffleUp 35 199 200 + 203: 87(ivec3) Select 201 202 197 + 204: 77(ptr) AccessChain 27(data) 193 39 + 205: 20(ivec4) Load 204 + 206: 20(ivec4) VectorShuffle 205 203 4 5 6 3 + Store 204 206 + 207: 6(int) Load 8(invocation) + 208: 77(ptr) AccessChain 27(data) 39 39 + 209: 20(ivec4) Load 208 + 212: 211(bvec4) SLessThan 209 210 + 213: 6(int) Load 8(invocation) + 214: 211(bvec4) GroupNonUniformShuffleUp 35 212 213 + 216: 20(ivec4) Select 214 215 210 + 217: 77(ptr) AccessChain 27(data) 207 39 + Store 217 216 + 218: 6(int) Load 8(invocation) + 219: 31(ptr) AccessChain 27(data) 29 29 30 + 220: 17(float) Load 219 + 221: 6(int) Load 8(invocation) + 222: 17(float) GroupNonUniformShuffleDown 35 220 221 + 223: 31(ptr) AccessChain 27(data) 218 29 30 + Store 223 222 + 224: 6(int) Load 8(invocation) + 225: 41(ptr) AccessChain 27(data) 39 29 + 226: 18(fvec4) Load 225 + 227: 40(fvec2) VectorShuffle 226 226 0 1 + 228: 6(int) Load 8(invocation) + 229: 40(fvec2) GroupNonUniformShuffleDown 35 227 228 + 230: 41(ptr) AccessChain 27(data) 224 29 + 231: 18(fvec4) Load 230 + 232: 18(fvec4) VectorShuffle 231 229 4 5 2 3 + Store 230 232 + 233: 6(int) Load 8(invocation) + 234: 41(ptr) AccessChain 27(data) 51 29 + 235: 18(fvec4) Load 234 + 236: 52(fvec3) VectorShuffle 235 235 0 1 2 + 237: 6(int) Load 8(invocation) + 238: 52(fvec3) GroupNonUniformShuffleDown 35 236 237 + 239: 41(ptr) AccessChain 27(data) 233 29 + 240: 18(fvec4) Load 239 + 241: 18(fvec4) VectorShuffle 240 238 4 5 6 3 + Store 239 241 + 242: 6(int) Load 8(invocation) + 243: 41(ptr) AccessChain 27(data) 62 29 + 244: 18(fvec4) Load 243 + 245: 6(int) Load 8(invocation) + 246: 18(fvec4) GroupNonUniformShuffleDown 35 244 245 + 247: 41(ptr) AccessChain 27(data) 242 29 + Store 247 246 + 248: 6(int) Load 8(invocation) + 249: 69(ptr) AccessChain 27(data) 29 39 30 + 250: 19(int) Load 249 + 251: 6(int) Load 8(invocation) + 252: 19(int) GroupNonUniformShuffleDown 35 250 251 + 253: 69(ptr) AccessChain 27(data) 248 39 30 + Store 253 252 + 254: 6(int) Load 8(invocation) + 255: 77(ptr) AccessChain 27(data) 39 39 + 256: 20(ivec4) Load 255 + 257: 76(ivec2) VectorShuffle 256 256 0 1 + 258: 6(int) Load 8(invocation) + 259: 76(ivec2) GroupNonUniformShuffleDown 35 257 258 + 260: 77(ptr) AccessChain 27(data) 254 39 + 261: 20(ivec4) Load 260 + 262: 20(ivec4) VectorShuffle 261 259 4 5 2 3 + Store 260 262 + 263: 6(int) Load 8(invocation) + 264: 77(ptr) AccessChain 27(data) 51 39 + 265: 20(ivec4) Load 264 + 266: 87(ivec3) VectorShuffle 265 265 0 1 2 + 267: 6(int) Load 8(invocation) + 268: 87(ivec3) GroupNonUniformShuffleDown 35 266 267 + 269: 77(ptr) AccessChain 27(data) 263 39 + 270: 20(ivec4) Load 269 + 271: 20(ivec4) VectorShuffle 270 268 4 5 6 3 + Store 269 271 + 272: 6(int) Load 8(invocation) + 273: 77(ptr) AccessChain 27(data) 62 39 + 274: 20(ivec4) Load 273 + 275: 6(int) Load 8(invocation) + 276: 20(ivec4) GroupNonUniformShuffleDown 35 274 275 + 277: 77(ptr) AccessChain 27(data) 272 39 + Store 277 276 + 278: 6(int) Load 8(invocation) + 279: 103(ptr) AccessChain 27(data) 29 51 30 + 280: 6(int) Load 279 + 281: 6(int) Load 8(invocation) + 282: 6(int) GroupNonUniformShuffleDown 35 280 281 + 283: 103(ptr) AccessChain 27(data) 278 51 30 + Store 283 282 + 284: 6(int) Load 8(invocation) + 285: 111(ptr) AccessChain 27(data) 39 51 + 286: 21(ivec4) Load 285 + 287: 110(ivec2) VectorShuffle 286 286 0 1 + 288: 6(int) Load 8(invocation) + 289: 110(ivec2) GroupNonUniformShuffleDown 35 287 288 + 290: 111(ptr) AccessChain 27(data) 284 51 + 291: 21(ivec4) Load 290 + 292: 21(ivec4) VectorShuffle 291 289 4 5 2 3 + Store 290 292 + 293: 6(int) Load 8(invocation) + 294: 111(ptr) AccessChain 27(data) 51 51 + 295: 21(ivec4) Load 294 + 296: 121(ivec3) VectorShuffle 295 295 0 1 2 + 297: 6(int) Load 8(invocation) + 298: 121(ivec3) GroupNonUniformShuffleDown 35 296 297 + 299: 111(ptr) AccessChain 27(data) 293 51 + 300: 21(ivec4) Load 299 + 301: 21(ivec4) VectorShuffle 300 298 4 5 6 3 + Store 299 301 + 302: 6(int) Load 8(invocation) + 303: 111(ptr) AccessChain 27(data) 62 51 + 304: 21(ivec4) Load 303 + 305: 6(int) Load 8(invocation) + 306: 21(ivec4) GroupNonUniformShuffleDown 35 304 305 + 307: 111(ptr) AccessChain 27(data) 302 51 + Store 307 306 + 308: 6(int) Load 8(invocation) + 309: 137(ptr) AccessChain 27(data) 29 62 30 + 310:22(float64_t) Load 309 + 311: 6(int) Load 8(invocation) + 312:22(float64_t) GroupNonUniformShuffleDown 35 310 311 + 313: 137(ptr) AccessChain 27(data) 308 62 30 + Store 313 312 + 314: 6(int) Load 8(invocation) + 315: 145(ptr) AccessChain 27(data) 39 62 + 316: 23(f64vec4) Load 315 + 317:144(f64vec2) VectorShuffle 316 316 0 1 + 318: 6(int) Load 8(invocation) + 319:144(f64vec2) GroupNonUniformShuffleDown 35 317 318 + 320: 145(ptr) AccessChain 27(data) 314 62 + 321: 23(f64vec4) Load 320 + 322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3 + Store 320 322 + 323: 6(int) Load 8(invocation) + 324: 145(ptr) AccessChain 27(data) 51 62 + 325: 23(f64vec4) Load 324 + 326:155(f64vec3) VectorShuffle 325 325 0 1 2 + 327: 6(int) Load 8(invocation) + 328:155(f64vec3) GroupNonUniformShuffleDown 35 326 327 + 329: 145(ptr) AccessChain 27(data) 323 62 + 330: 23(f64vec4) Load 329 + 331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3 + Store 329 331 + 332: 6(int) Load 8(invocation) + 333: 145(ptr) AccessChain 27(data) 62 62 + 334: 23(f64vec4) Load 333 + 335: 6(int) Load 8(invocation) + 336: 23(f64vec4) GroupNonUniformShuffleDown 35 334 335 + 337: 145(ptr) AccessChain 27(data) 332 62 + Store 337 336 + 338: 6(int) Load 8(invocation) + 339: 69(ptr) AccessChain 27(data) 29 39 30 + 340: 19(int) Load 339 + 341: 173(bool) SLessThan 340 29 + 342: 6(int) Load 8(invocation) + 343: 173(bool) GroupNonUniformShuffleDown 35 341 342 + 344: 19(int) Select 343 39 29 + 345: 69(ptr) AccessChain 27(data) 338 39 30 + Store 345 344 + 346: 6(int) Load 8(invocation) + 347: 77(ptr) AccessChain 27(data) 39 39 + 348: 20(ivec4) Load 347 + 349: 76(ivec2) VectorShuffle 348 348 0 1 + 350: 184(bvec2) SLessThan 349 183 + 351: 6(int) Load 8(invocation) + 352: 184(bvec2) GroupNonUniformShuffleDown 35 350 351 + 353: 76(ivec2) Select 352 188 183 + 354: 77(ptr) AccessChain 27(data) 346 39 + 355: 20(ivec4) Load 354 + 356: 20(ivec4) VectorShuffle 355 353 4 5 2 3 + Store 354 356 + 357: 6(int) Load 8(invocation) + 358: 77(ptr) AccessChain 27(data) 39 39 + 359: 20(ivec4) Load 358 + 360: 87(ivec3) VectorShuffle 359 359 0 1 2 + 361: 198(bvec3) SLessThan 360 197 + 362: 6(int) Load 8(invocation) + 363: 198(bvec3) GroupNonUniformShuffleDown 35 361 362 + 364: 87(ivec3) Select 363 202 197 + 365: 77(ptr) AccessChain 27(data) 357 39 + 366: 20(ivec4) Load 365 + 367: 20(ivec4) VectorShuffle 366 364 4 5 6 3 + Store 365 367 + 368: 6(int) Load 8(invocation) + 369: 77(ptr) AccessChain 27(data) 39 39 + 370: 20(ivec4) Load 369 + 371: 211(bvec4) SLessThan 370 210 + 372: 6(int) Load 8(invocation) + 373: 211(bvec4) GroupNonUniformShuffleDown 35 371 372 + 374: 20(ivec4) Select 373 215 210 + 375: 77(ptr) AccessChain 27(data) 368 39 + Store 375 374 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subgroupVote.comp.out b/deps/glslang/glslang/Test/baseResults/spv.subgroupVote.comp.out new file mode 100644 index 0000000000..89213da1ae --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subgroupVote.comp.out @@ -0,0 +1,288 @@ +spv.subgroupVote.comp +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 216 + + Capability Shader + Capability Float64 + Capability GroupNonUniform + Capability GroupNonUniformVote + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 10 12 + ExecutionMode 4 LocalSize 8 8 1 + Source GLSL 450 + SourceExtension "GL_KHR_shader_subgroup_basic" + SourceExtension "GL_KHR_shader_subgroup_vote" + Name 4 "main" + Name 8 "invocation" + Name 10 "gl_SubgroupInvocationID" + Name 12 "gl_SubgroupSize" + Name 24 "Buffers" + MemberName 24(Buffers) 0 "f4" + MemberName 24(Buffers) 1 "i4" + MemberName 24(Buffers) 2 "u4" + MemberName 24(Buffers) 3 "d4" + MemberName 24(Buffers) 4 "r" + Name 27 "data" + Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision + Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId + Decorate 11 RelaxedPrecision + Decorate 12(gl_SubgroupSize) RelaxedPrecision + Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 16 RelaxedPrecision + MemberDecorate 24(Buffers) 0 Offset 0 + MemberDecorate 24(Buffers) 1 Offset 16 + MemberDecorate 24(Buffers) 2 Offset 32 + MemberDecorate 24(Buffers) 3 Offset 64 + MemberDecorate 24(Buffers) 4 Offset 96 + Decorate 24(Buffers) BufferBlock + Decorate 27(data) DescriptorSet 0 + Decorate 27(data) Binding 0 + Decorate 215 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_SubgroupInvocationID): 9(ptr) Variable Input +12(gl_SubgroupSize): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 21: TypeVector 6(int) 4 + 22: TypeFloat 64 + 23: TypeVector 22(float64_t) 4 + 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 19(int) + 25: TypeArray 24(Buffers) 15 + 26: TypePointer Uniform 25 + 27(data): 26(ptr) Variable Uniform + 29: 19(int) Constant 4 + 30: TypePointer Uniform 19(int) + 33: 19(int) Constant 0 + 34: TypeBool + 36: 6(int) Constant 3 + 41: 6(int) Constant 0 + 42: TypePointer Uniform 17(float) + 46: 19(int) Constant 1 + 50: TypeVector 17(float) 2 + 51: TypePointer Uniform 18(fvec4) + 59: 19(int) Constant 2 + 60: TypeVector 17(float) 3 + 68: 19(int) Constant 3 + 81: TypeVector 19(int) 2 + 82: TypePointer Uniform 20(ivec4) + 90: TypeVector 19(int) 3 + 104: TypePointer Uniform 6(int) + 111: TypeVector 6(int) 2 + 112: TypePointer Uniform 21(ivec4) + 120: TypeVector 6(int) 3 + 142: TypePointer Uniform 22(float64_t) + 149: TypeVector 22(float64_t) 2 + 150: TypePointer Uniform 23(f64vec4) + 158: TypeVector 22(float64_t) 3 + 182: 81(ivec2) ConstantComposite 33 33 + 183: TypeVector 34(bool) 2 + 194: 90(ivec3) ConstantComposite 33 33 33 + 195: TypeVector 34(bool) 3 + 205: 20(ivec4) ConstantComposite 33 33 33 33 + 206: TypeVector 34(bool) 4 + 213: 6(int) Constant 8 + 214: 6(int) Constant 1 + 215: 120(ivec3) ConstantComposite 213 213 214 + 4(main): 2 Function None 3 + 5: Label + 8(invocation): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_SubgroupInvocationID) + 13: 6(int) Load 12(gl_SubgroupSize) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 28: 6(int) Load 8(invocation) + 31: 30(ptr) AccessChain 27(data) 28 29 + 32: 19(int) Load 31 + 35: 34(bool) SLessThan 32 33 + 37: 34(bool) GroupNonUniformAll 36 35 + SelectionMerge 39 None + BranchConditional 37 38 133 + 38: Label + 40: 6(int) Load 8(invocation) + 43: 42(ptr) AccessChain 27(data) 33 33 41 + 44: 17(float) Load 43 + 45: 34(bool) GroupNonUniformAllEqual 36 44 + 47: 19(int) Select 45 46 33 + 48: 30(ptr) AccessChain 27(data) 40 29 + Store 48 47 + 49: 6(int) Load 8(invocation) + 52: 51(ptr) AccessChain 27(data) 46 33 + 53: 18(fvec4) Load 52 + 54: 50(fvec2) VectorShuffle 53 53 0 1 + 55: 34(bool) GroupNonUniformAllEqual 36 54 + 56: 19(int) Select 55 46 33 + 57: 30(ptr) AccessChain 27(data) 49 29 + Store 57 56 + 58: 6(int) Load 8(invocation) + 61: 51(ptr) AccessChain 27(data) 59 33 + 62: 18(fvec4) Load 61 + 63: 60(fvec3) VectorShuffle 62 62 0 1 2 + 64: 34(bool) GroupNonUniformAllEqual 36 63 + 65: 19(int) Select 64 46 33 + 66: 30(ptr) AccessChain 27(data) 58 29 + Store 66 65 + 67: 6(int) Load 8(invocation) + 69: 51(ptr) AccessChain 27(data) 68 33 + 70: 18(fvec4) Load 69 + 71: 34(bool) GroupNonUniformAllEqual 36 70 + 72: 19(int) Select 71 46 33 + 73: 30(ptr) AccessChain 27(data) 67 29 + Store 73 72 + 74: 6(int) Load 8(invocation) + 75: 30(ptr) AccessChain 27(data) 33 46 41 + 76: 19(int) Load 75 + 77: 34(bool) GroupNonUniformAllEqual 36 76 + 78: 19(int) Select 77 46 33 + 79: 30(ptr) AccessChain 27(data) 74 29 + Store 79 78 + 80: 6(int) Load 8(invocation) + 83: 82(ptr) AccessChain 27(data) 46 46 + 84: 20(ivec4) Load 83 + 85: 81(ivec2) VectorShuffle 84 84 0 1 + 86: 34(bool) GroupNonUniformAllEqual 36 85 + 87: 19(int) Select 86 46 33 + 88: 30(ptr) AccessChain 27(data) 80 29 + Store 88 87 + 89: 6(int) Load 8(invocation) + 91: 82(ptr) AccessChain 27(data) 59 46 + 92: 20(ivec4) Load 91 + 93: 90(ivec3) VectorShuffle 92 92 0 1 2 + 94: 34(bool) GroupNonUniformAllEqual 36 93 + 95: 19(int) Select 94 46 33 + 96: 30(ptr) AccessChain 27(data) 89 29 + Store 96 95 + 97: 6(int) Load 8(invocation) + 98: 82(ptr) AccessChain 27(data) 68 46 + 99: 20(ivec4) Load 98 + 100: 34(bool) GroupNonUniformAllEqual 36 99 + 101: 19(int) Select 100 46 33 + 102: 30(ptr) AccessChain 27(data) 97 29 + Store 102 101 + 103: 6(int) Load 8(invocation) + 105: 104(ptr) AccessChain 27(data) 33 59 41 + 106: 6(int) Load 105 + 107: 34(bool) GroupNonUniformAllEqual 36 106 + 108: 19(int) Select 107 46 33 + 109: 30(ptr) AccessChain 27(data) 103 29 + Store 109 108 + 110: 6(int) Load 8(invocation) + 113: 112(ptr) AccessChain 27(data) 46 59 + 114: 21(ivec4) Load 113 + 115: 111(ivec2) VectorShuffle 114 114 0 1 + 116: 34(bool) GroupNonUniformAllEqual 36 115 + 117: 19(int) Select 116 46 33 + 118: 30(ptr) AccessChain 27(data) 110 29 + Store 118 117 + 119: 6(int) Load 8(invocation) + 121: 112(ptr) AccessChain 27(data) 59 59 + 122: 21(ivec4) Load 121 + 123: 120(ivec3) VectorShuffle 122 122 0 1 2 + 124: 34(bool) GroupNonUniformAllEqual 36 123 + 125: 19(int) Select 124 46 33 + 126: 30(ptr) AccessChain 27(data) 119 29 + Store 126 125 + 127: 6(int) Load 8(invocation) + 128: 112(ptr) AccessChain 27(data) 68 59 + 129: 21(ivec4) Load 128 + 130: 34(bool) GroupNonUniformAllEqual 36 129 + 131: 19(int) Select 130 46 33 + 132: 30(ptr) AccessChain 27(data) 127 29 + Store 132 131 + Branch 39 + 133: Label + 134: 6(int) Load 8(invocation) + 135: 30(ptr) AccessChain 27(data) 134 29 + 136: 19(int) Load 135 + 137: 34(bool) SLessThan 136 33 + 138: 34(bool) GroupNonUniformAny 36 137 + SelectionMerge 140 None + BranchConditional 138 139 140 + 139: Label + 141: 6(int) Load 8(invocation) + 143: 142(ptr) AccessChain 27(data) 33 68 41 + 144:22(float64_t) Load 143 + 145: 34(bool) GroupNonUniformAllEqual 36 144 + 146: 19(int) Select 145 46 33 + 147: 30(ptr) AccessChain 27(data) 141 29 + Store 147 146 + 148: 6(int) Load 8(invocation) + 151: 150(ptr) AccessChain 27(data) 46 68 + 152: 23(f64vec4) Load 151 + 153:149(f64vec2) VectorShuffle 152 152 0 1 + 154: 34(bool) GroupNonUniformAllEqual 36 153 + 155: 19(int) Select 154 46 33 + 156: 30(ptr) AccessChain 27(data) 148 29 + Store 156 155 + 157: 6(int) Load 8(invocation) + 159: 150(ptr) AccessChain 27(data) 59 68 + 160: 23(f64vec4) Load 159 + 161:158(f64vec3) VectorShuffle 160 160 0 1 2 + 162: 34(bool) GroupNonUniformAllEqual 36 161 + 163: 19(int) Select 162 46 33 + 164: 30(ptr) AccessChain 27(data) 157 29 + Store 164 163 + 165: 6(int) Load 8(invocation) + 166: 150(ptr) AccessChain 27(data) 68 68 + 167: 23(f64vec4) Load 166 + 168: 34(bool) GroupNonUniformAllEqual 36 167 + 169: 19(int) Select 168 46 33 + 170: 30(ptr) AccessChain 27(data) 165 29 + Store 170 169 + 171: 6(int) Load 8(invocation) + 172: 30(ptr) AccessChain 27(data) 33 46 41 + 173: 19(int) Load 172 + 174: 34(bool) SLessThan 173 33 + 175: 34(bool) GroupNonUniformAllEqual 36 174 + 176: 19(int) Select 175 46 33 + 177: 30(ptr) AccessChain 27(data) 171 29 + Store 177 176 + 178: 6(int) Load 8(invocation) + 179: 82(ptr) AccessChain 27(data) 46 46 + 180: 20(ivec4) Load 179 + 181: 81(ivec2) VectorShuffle 180 180 0 1 + 184: 183(bvec2) SLessThan 181 182 + 185: 34(bool) GroupNonUniformAllEqual 36 184 + 186: 19(int) Select 185 46 33 + 187: 81(ivec2) CompositeConstruct 186 186 + 188: 19(int) CompositeExtract 187 0 + 189: 30(ptr) AccessChain 27(data) 178 29 + Store 189 188 + 190: 6(int) Load 8(invocation) + 191: 82(ptr) AccessChain 27(data) 46 46 + 192: 20(ivec4) Load 191 + 193: 90(ivec3) VectorShuffle 192 192 0 1 2 + 196: 195(bvec3) SLessThan 193 194 + 197: 34(bool) GroupNonUniformAllEqual 36 196 + 198: 19(int) Select 197 46 33 + 199: 90(ivec3) CompositeConstruct 198 198 198 + 200: 19(int) CompositeExtract 199 0 + 201: 30(ptr) AccessChain 27(data) 190 29 + Store 201 200 + 202: 6(int) Load 8(invocation) + 203: 82(ptr) AccessChain 27(data) 46 46 + 204: 20(ivec4) Load 203 + 207: 206(bvec4) SLessThan 204 205 + 208: 34(bool) GroupNonUniformAllEqual 36 207 + 209: 19(int) Select 208 46 33 + 210: 20(ivec4) CompositeConstruct 209 209 209 209 + 211: 19(int) CompositeExtract 210 0 + 212: 30(ptr) AccessChain 27(data) 202 29 + Store 212 211 + Branch 140 + 140: Label + Branch 39 + 39: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out b/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out new file mode 100644 index 0000000000..044243e21f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.subpass.frag.out @@ -0,0 +1,112 @@ +spv.subpass.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 67 + + Capability Shader + Capability InputAttachment + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 15 27 53 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 11 "foo(iIPM1;" + Name 10 "sb" + Name 15 "icolor" + Name 27 "color" + Name 30 "sub" + Name 35 "subMS" + Name 42 "isub" + Name 45 "isubMS" + Name 53 "ucolor" + Name 56 "usub" + Name 61 "usubMS" + Decorate 30(sub) DescriptorSet 0 + Decorate 30(sub) InputAttachmentIndex 1 + Decorate 35(subMS) DescriptorSet 0 + Decorate 35(subMS) InputAttachmentIndex 2 + Decorate 42(isub) DescriptorSet 0 + Decorate 42(isub) InputAttachmentIndex 3 + Decorate 45(isubMS) DescriptorSet 0 + Decorate 45(isubMS) InputAttachmentIndex 4 + Decorate 56(usub) DescriptorSet 0 + Decorate 56(usub) InputAttachmentIndex 5 + Decorate 61(usubMS) DescriptorSet 0 + Decorate 61(usubMS) InputAttachmentIndex 6 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown + 8: TypePointer UniformConstant 7 + 9: TypeFunction 2 8(ptr) + 13: TypeVector 6(int) 4 + 14: TypePointer Output 13(ivec4) + 15(icolor): 14(ptr) Variable Output + 17: 6(int) Constant 3 + 18: 6(int) Constant 0 + 19: TypeVector 6(int) 2 + 20: 19(ivec2) ConstantComposite 18 18 + 24: TypeFloat 32 + 25: TypeVector 24(float) 4 + 26: TypePointer Output 25(fvec4) + 27(color): 26(ptr) Variable Output + 28: TypeImage 24(float) SubpassData nonsampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(sub): 29(ptr) Variable UniformConstant + 33: TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(subMS): 34(ptr) Variable UniformConstant + 40: TypeImage 6(int) SubpassData nonsampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(isub): 41(ptr) Variable UniformConstant + 45(isubMS): 8(ptr) Variable UniformConstant + 50: TypeInt 32 0 + 51: TypeVector 50(int) 4 + 52: TypePointer Output 51(ivec4) + 53(ucolor): 52(ptr) Variable Output + 54: TypeImage 50(int) SubpassData nonsampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(usub): 55(ptr) Variable UniformConstant + 59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown + 60: TypePointer UniformConstant 59 + 61(usubMS): 60(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 31: 28 Load 30(sub) + 32: 25(fvec4) ImageRead 31 20 + Store 27(color) 32 + 36: 33 Load 35(subMS) + 37: 25(fvec4) ImageRead 36 20 Sample 17 + 38: 25(fvec4) Load 27(color) + 39: 25(fvec4) FAdd 38 37 + Store 27(color) 39 + 43: 40 Load 42(isub) + 44: 13(ivec4) ImageRead 43 20 + Store 15(icolor) 44 + 46: 7 Load 45(isubMS) + 47: 13(ivec4) ImageRead 46 20 Sample 17 + 48: 13(ivec4) Load 15(icolor) + 49: 13(ivec4) IAdd 48 47 + Store 15(icolor) 49 + 57: 54 Load 56(usub) + 58: 51(ivec4) ImageRead 57 20 + Store 53(ucolor) 58 + 62: 59 Load 61(usubMS) + 63: 51(ivec4) ImageRead 62 20 Sample 17 + 64: 51(ivec4) Load 53(ucolor) + 65: 51(ivec4) IAdd 64 63 + Store 53(ucolor) 65 + 66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS) + Return + FunctionEnd + 11(foo(iIPM1;): 2 Function None 9 + 10(sb): 8(ptr) FunctionParameter + 12: Label + 16: 7 Load 10(sb) + 21: 13(ivec4) ImageRead 16 20 Sample 17 + 22: 13(ivec4) Load 15(icolor) + 23: 13(ivec4) IAdd 22 21 + Store 15(icolor) 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out b/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out new file mode 100644 index 0000000000..47cc5d4c12 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.switch.frag.out @@ -0,0 +1,527 @@ +spv.switch.frag +WARNING: 0:121: 'switch' : last case/default label not followed by statements +WARNING: 0:134: 'switch' : last case/default label not followed by statements +WARNING: 0:139: 'switch' : last case/default label not followed by statements + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 269 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 62 75 129 227 233 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 15 "foo1(vf4;vf4;i1;" + Name 12 "v1" + Name 13 "v2" + Name 14 "i1" + Name 20 "foo2(vf4;vf4;i1;" + Name 17 "v1" + Name 18 "v2" + Name 19 "i1" + Name 60 "local" + Name 62 "c" + Name 73 "f" + Name 75 "x" + Name 129 "d" + Name 155 "i" + Name 175 "j" + Name 227 "color" + Name 233 "v" + Name 234 "param" + Name 236 "param" + Name 238 "param" + Name 246 "param" + Name 248 "param" + Name 250 "param" + Decorate 15(foo1(vf4;vf4;i1;) RelaxedPrecision + Decorate 12(v1) RelaxedPrecision + Decorate 13(v2) RelaxedPrecision + Decorate 14(i1) RelaxedPrecision + Decorate 20(foo2(vf4;vf4;i1;) RelaxedPrecision + Decorate 17(v1) RelaxedPrecision + Decorate 18(v2) RelaxedPrecision + Decorate 19(i1) RelaxedPrecision + Decorate 22 RelaxedPrecision + Decorate 27 RelaxedPrecision + Decorate 29 RelaxedPrecision + Decorate 31 RelaxedPrecision + Decorate 32 RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 40 RelaxedPrecision + Decorate 46 RelaxedPrecision + Decorate 51 RelaxedPrecision + Decorate 53 RelaxedPrecision + Decorate 54 RelaxedPrecision + Decorate 55 RelaxedPrecision + Decorate 60(local) RelaxedPrecision + Decorate 62(c) RelaxedPrecision + Decorate 62(c) Flat + Decorate 63 RelaxedPrecision + Decorate 64 RelaxedPrecision + Decorate 66 RelaxedPrecision + Decorate 67 RelaxedPrecision + Decorate 73(f) RelaxedPrecision + Decorate 75(x) RelaxedPrecision + Decorate 76 RelaxedPrecision + Decorate 77 RelaxedPrecision + Decorate 79 RelaxedPrecision + Decorate 80 RelaxedPrecision + Decorate 82 RelaxedPrecision + Decorate 83 RelaxedPrecision + Decorate 85 RelaxedPrecision + Decorate 90 RelaxedPrecision + Decorate 91 RelaxedPrecision + Decorate 92 RelaxedPrecision + Decorate 93 RelaxedPrecision + Decorate 94 RelaxedPrecision + Decorate 95 RelaxedPrecision + Decorate 96 RelaxedPrecision + Decorate 97 RelaxedPrecision + Decorate 99 RelaxedPrecision + Decorate 100 RelaxedPrecision + Decorate 101 RelaxedPrecision + Decorate 102 RelaxedPrecision + Decorate 104 RelaxedPrecision + Decorate 108 RelaxedPrecision + Decorate 109 RelaxedPrecision + Decorate 110 RelaxedPrecision + Decorate 111 RelaxedPrecision + Decorate 113 RelaxedPrecision + Decorate 114 RelaxedPrecision + Decorate 115 RelaxedPrecision + Decorate 116 RelaxedPrecision + Decorate 119 RelaxedPrecision + Decorate 124 RelaxedPrecision + Decorate 125 RelaxedPrecision + Decorate 126 RelaxedPrecision + Decorate 127 RelaxedPrecision + Decorate 129(d) RelaxedPrecision + Decorate 129(d) Flat + Decorate 130 RelaxedPrecision + Decorate 134 RelaxedPrecision + Decorate 135 RelaxedPrecision + Decorate 136 RelaxedPrecision + Decorate 137 RelaxedPrecision + Decorate 138 RelaxedPrecision + Decorate 139 RelaxedPrecision + Decorate 140 RelaxedPrecision + Decorate 142 RelaxedPrecision + Decorate 143 RelaxedPrecision + Decorate 144 RelaxedPrecision + Decorate 145 RelaxedPrecision + Decorate 146 RelaxedPrecision + Decorate 150 RelaxedPrecision + Decorate 151 RelaxedPrecision + Decorate 152 RelaxedPrecision + Decorate 153 RelaxedPrecision + Decorate 155(i) RelaxedPrecision + Decorate 162 RelaxedPrecision + Decorate 166 RelaxedPrecision + Decorate 171 RelaxedPrecision + Decorate 172 RelaxedPrecision + Decorate 173 RelaxedPrecision + Decorate 174 RelaxedPrecision + Decorate 175(j) RelaxedPrecision + Decorate 182 RelaxedPrecision + Decorate 185 RelaxedPrecision + Decorate 186 RelaxedPrecision + Decorate 187 RelaxedPrecision + Decorate 193 RelaxedPrecision + Decorate 194 RelaxedPrecision + Decorate 196 RelaxedPrecision + Decorate 197 RelaxedPrecision + Decorate 198 RelaxedPrecision + Decorate 199 RelaxedPrecision + Decorate 202 RelaxedPrecision + Decorate 203 RelaxedPrecision + Decorate 204 RelaxedPrecision + Decorate 205 RelaxedPrecision + Decorate 207 RelaxedPrecision + Decorate 213 RelaxedPrecision + Decorate 214 RelaxedPrecision + Decorate 215 RelaxedPrecision + Decorate 219 RelaxedPrecision + Decorate 220 RelaxedPrecision + Decorate 221 RelaxedPrecision + Decorate 222 RelaxedPrecision + Decorate 227(color) RelaxedPrecision + Decorate 228 RelaxedPrecision + Decorate 229 RelaxedPrecision + Decorate 230 RelaxedPrecision + Decorate 231 RelaxedPrecision + Decorate 233(v) RelaxedPrecision + Decorate 235 RelaxedPrecision + Decorate 237 RelaxedPrecision + Decorate 239 RelaxedPrecision + Decorate 240 RelaxedPrecision + Decorate 243 RelaxedPrecision + Decorate 244 RelaxedPrecision + Decorate 245 RelaxedPrecision + Decorate 247 RelaxedPrecision + Decorate 249 RelaxedPrecision + Decorate 251 RelaxedPrecision + Decorate 252 RelaxedPrecision + Decorate 254 RelaxedPrecision + Decorate 255 RelaxedPrecision + Decorate 256 RelaxedPrecision + Decorate 257 RelaxedPrecision + Decorate 264 RelaxedPrecision + 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) 8(ptr) 10(ptr) + 36: 6(float) Constant 0 + 37: 7(fvec4) ConstantComposite 36 36 36 36 + 48: 6(float) Constant 1065353216 + 49: 7(fvec4) ConstantComposite 48 48 48 48 + 61: TypePointer Input 9(int) + 62(c): 61(ptr) Variable Input + 65: 9(int) Constant 1 + 72: TypePointer Function 6(float) + 74: TypePointer Input 6(float) + 75(x): 74(ptr) Variable Input + 129(d): 61(ptr) Variable Input + 156: 9(int) Constant 0 + 163: 9(int) Constant 10 + 164: TypeBool + 176: 9(int) Constant 20 + 183: 9(int) Constant 30 + 188: 6(float) Constant 1120429670 + 208: 6(float) Constant 1079739679 + 226: TypePointer Output 6(float) + 227(color): 226(ptr) Variable Output + 232: TypePointer Input 7(fvec4) + 233(v): 232(ptr) Variable Input + 241: TypeInt 32 0 + 242: 241(int) Constant 1 + 253: 241(int) Constant 2 + 4(main): 2 Function None 3 + 5: Label + 60(local): 10(ptr) Variable Function + 73(f): 72(ptr) Variable Function + 155(i): 10(ptr) Variable Function + 175(j): 10(ptr) Variable Function + 234(param): 8(ptr) Variable Function + 236(param): 8(ptr) Variable Function + 238(param): 10(ptr) Variable Function + 246(param): 8(ptr) Variable Function + 248(param): 8(ptr) Variable Function + 250(param): 10(ptr) Variable Function + 63: 9(int) Load 62(c) + Store 60(local) 63 + 64: 9(int) Load 60(local) + 66: 9(int) IAdd 64 65 + Store 60(local) 66 + 67: 9(int) Load 62(c) + SelectionMerge 71 None + Switch 67 70 + case 1: 68 + case 2: 69 + 70: Label + 82: 6(float) Load 75(x) + 83: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 82 + Store 73(f) 83 + Branch 71 + 68: Label + 76: 6(float) Load 75(x) + 77: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 76 + Store 73(f) 77 + Branch 71 + 69: Label + 79: 6(float) Load 75(x) + 80: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 79 + Store 73(f) 80 + Branch 71 + 71: Label + 85: 9(int) Load 62(c) + SelectionMerge 89 None + Switch 85 88 + case 1: 86 + case 2: 87 + 88: Label + 99: 6(float) Load 75(x) + 100: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 99 + 101: 6(float) Load 73(f) + 102: 6(float) FAdd 101 100 + Store 73(f) 102 + Branch 89 + 86: Label + 90: 6(float) Load 75(x) + 91: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 90 + 92: 6(float) Load 73(f) + 93: 6(float) FAdd 92 91 + Store 73(f) 93 + Branch 87 + 87: Label + 94: 6(float) Load 75(x) + 95: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 94 + 96: 6(float) Load 73(f) + 97: 6(float) FAdd 96 95 + Store 73(f) 97 + Branch 89 + 89: Label + 104: 9(int) Load 62(c) + SelectionMerge 107 None + Switch 104 107 + case 1: 105 + case 2: 106 + 105: Label + 108: 6(float) Load 75(x) + 109: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 108 + 110: 6(float) Load 73(f) + 111: 6(float) FAdd 110 109 + Store 73(f) 111 + Branch 107 + 106: Label + 113: 6(float) Load 75(x) + 114: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 113 + 115: 6(float) Load 73(f) + 116: 6(float) FAdd 115 114 + Store 73(f) 116 + Branch 107 + 107: Label + 119: 9(int) Load 62(c) + SelectionMerge 123 None + Switch 119 122 + case 1: 120 + case 2: 121 + 122: Label + 150: 6(float) Load 75(x) + 151: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 150 + 152: 6(float) Load 73(f) + 153: 6(float) FAdd 152 151 + Store 73(f) 153 + Branch 123 + 120: Label + 124: 6(float) Load 75(x) + 125: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 124 + 126: 6(float) Load 73(f) + 127: 6(float) FAdd 126 125 + Store 73(f) 127 + Branch 123 + 121: Label + 130: 9(int) Load 129(d) + SelectionMerge 133 None + Switch 130 133 + case 1: 131 + case 2: 132 + 131: Label + 134: 6(float) Load 75(x) + 135: 6(float) Load 75(x) + 136: 6(float) FMul 134 135 + 137: 6(float) Load 75(x) + 138: 6(float) FMul 136 137 + 139: 6(float) Load 73(f) + 140: 6(float) FAdd 139 138 + Store 73(f) 140 + Branch 133 + 132: Label + 142: 6(float) Load 75(x) + 143: 6(float) Load 75(x) + 144: 6(float) FMul 142 143 + 145: 6(float) Load 73(f) + 146: 6(float) FAdd 145 144 + Store 73(f) 146 + Branch 133 + 133: Label + Branch 123 + 123: Label + Store 155(i) 156 + Branch 157 + 157: Label + LoopMerge 159 160 None + Branch 161 + 161: Label + 162: 9(int) Load 155(i) + 165: 164(bool) SLessThan 162 163 + BranchConditional 165 158 159 + 158: Label + 166: 9(int) Load 62(c) + SelectionMerge 170 None + Switch 166 169 + case 1: 167 + case 2: 168 + 169: Label + 202: 6(float) Load 75(x) + 203: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 202 + 204: 6(float) Load 73(f) + 205: 6(float) FAdd 204 203 + Store 73(f) 205 + Branch 170 + 167: Label + 171: 6(float) Load 75(x) + 172: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 171 + 173: 6(float) Load 73(f) + 174: 6(float) FAdd 173 172 + Store 73(f) 174 + Store 175(j) 176 + Branch 177 + 177: Label + LoopMerge 179 180 None + Branch 181 + 181: Label + 182: 9(int) Load 175(j) + 184: 164(bool) SLessThan 182 183 + BranchConditional 184 178 179 + 178: Label + 185: 6(float) Load 73(f) + 186: 6(float) FAdd 185 48 + Store 73(f) 186 + 187: 6(float) Load 73(f) + 189: 164(bool) FOrdLessThan 187 188 + SelectionMerge 191 None + BranchConditional 189 190 191 + 190: Label + Branch 179 + 191: Label + Branch 180 + 180: Label + 193: 9(int) Load 175(j) + 194: 9(int) IAdd 193 65 + Store 175(j) 194 + Branch 177 + 179: Label + Branch 170 + 168: Label + 196: 6(float) Load 75(x) + 197: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 196 + 198: 6(float) Load 73(f) + 199: 6(float) FAdd 198 197 + Store 73(f) 199 + Branch 170 + 170: Label + 207: 6(float) Load 73(f) + 209: 164(bool) FOrdLessThan 207 208 + SelectionMerge 211 None + BranchConditional 209 210 211 + 210: Label + Branch 159 + 211: Label + Branch 160 + 160: Label + 213: 9(int) Load 155(i) + 214: 9(int) IAdd 213 65 + Store 155(i) 214 + Branch 157 + 159: Label + 215: 9(int) Load 62(c) + SelectionMerge 218 None + Switch 215 218 + case 1: 216 + case 2: 217 + 216: Label + 219: 6(float) Load 75(x) + 220: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 219 + 221: 6(float) Load 73(f) + 222: 6(float) FAdd 221 220 + Store 73(f) 222 + Branch 218 + 217: Label + Branch 218 + 218: Label + 228: 6(float) Load 73(f) + 229: 9(int) Load 60(local) + 230: 6(float) ConvertSToF 229 + 231: 6(float) FAdd 228 230 + Store 227(color) 231 + 235: 7(fvec4) Load 233(v) + Store 234(param) 235 + 237: 7(fvec4) Load 233(v) + Store 236(param) 237 + 239: 9(int) Load 62(c) + Store 238(param) 239 + 240: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 234(param) 236(param) 238(param) + 243: 6(float) CompositeExtract 240 1 + 244: 6(float) Load 227(color) + 245: 6(float) FAdd 244 243 + Store 227(color) 245 + 247: 7(fvec4) Load 233(v) + Store 246(param) 247 + 249: 7(fvec4) Load 233(v) + Store 248(param) 249 + 251: 9(int) Load 62(c) + Store 250(param) 251 + 252: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 246(param) 248(param) 250(param) + 254: 6(float) CompositeExtract 252 2 + 255: 6(float) Load 227(color) + 256: 6(float) FAdd 255 254 + Store 227(color) 256 + 257: 9(int) Load 62(c) + SelectionMerge 260 None + Switch 257 259 + case 0: 258 + 259: Label + Branch 260 + 258: Label + Branch 260 + 260: Label + 264: 9(int) Load 62(c) + SelectionMerge 266 None + Switch 264 265 + 265: Label + Branch 266 + 266: Label + Return + FunctionEnd +15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11 + 12(v1): 8(ptr) FunctionParameter + 13(v2): 8(ptr) FunctionParameter + 14(i1): 10(ptr) FunctionParameter + 16: Label + 22: 9(int) Load 14(i1) + SelectionMerge 26 None + Switch 22 26 + case 0: 23 + case 2: 24 + case 1: 24 + case 3: 25 + 23: Label + 27: 7(fvec4) Load 12(v1) + ReturnValue 27 + 24: Label + 29: 7(fvec4) Load 13(v2) + ReturnValue 29 + 25: Label + 31: 7(fvec4) Load 12(v1) + 32: 7(fvec4) Load 13(v2) + 33: 7(fvec4) FMul 31 32 + ReturnValue 33 + 26: Label + ReturnValue 37 + FunctionEnd +20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11 + 17(v1): 8(ptr) FunctionParameter + 18(v2): 8(ptr) FunctionParameter + 19(i1): 10(ptr) FunctionParameter + 21: Label + 40: 9(int) Load 19(i1) + SelectionMerge 45 None + Switch 40 45 + case 0: 41 + case 2: 42 + case 1: 43 + case 3: 44 + 41: Label + 46: 7(fvec4) Load 17(v1) + ReturnValue 46 + 42: Label + ReturnValue 49 + 43: Label + 51: 7(fvec4) Load 18(v2) + ReturnValue 51 + 44: Label + 53: 7(fvec4) Load 17(v1) + 54: 7(fvec4) Load 18(v2) + 55: 7(fvec4) FMul 53 54 + ReturnValue 55 + 45: Label + ReturnValue 37 + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out b/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out new file mode 100644 index 0000000000..2a132d5824 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.swizzle.frag.out @@ -0,0 +1,167 @@ +spv.swizzle.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 108 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 30 69 107 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "blendscale" + Name 12 "w" + Name 14 "u" + Name 16 "w_dep" + Name 18 "w_reorder" + Name 20 "w2" + Name 22 "w_flow" + Name 30 "t" + Name 49 "w_undef" + Name 56 "p" + Name 69 "gl_FragColor" + Name 81 "c" + Name 83 "rep" + Name 107 "blend" + Decorate 69(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1071971828 + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 13: TypePointer Input 10(fvec4) + 14(u): 13(ptr) Variable Input + 25: TypeInt 32 0 + 26: 25(int) Constant 2 + 28: TypeVector 6(float) 2 + 29: TypePointer Input 28(fvec2) + 30(t): 29(ptr) Variable Input + 35: 25(int) Constant 0 + 40: 25(int) Constant 1 + 54: TypeBool + 55: TypePointer Private 54(bool) + 56(p): 55(ptr) Variable Private + 60: TypePointer Input 6(float) + 68: TypePointer Output 10(fvec4) +69(gl_FragColor): 68(ptr) Variable Output + 80: TypePointer Function 28(fvec2) + 84: 6(float) Constant 0 + 85: 6(float) Constant 1065353216 + 86: 10(fvec4) ConstantComposite 84 84 84 85 + 92: 6(float) Constant 3212836864 + 102: 6(float) Constant 1079613850 + 107(blend): 60(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(blendscale): 7(ptr) Variable Function + 12(w): 11(ptr) Variable Function + 16(w_dep): 11(ptr) Variable Function + 18(w_reorder): 11(ptr) Variable Function + 20(w2): 11(ptr) Variable Function + 22(w_flow): 11(ptr) Variable Function + 49(w_undef): 11(ptr) Variable Function + 81(c): 80(ptr) Variable Function + 83(rep): 11(ptr) Variable Function + Store 8(blendscale) 9 + 15: 10(fvec4) Load 14(u) + Store 12(w) 15 + 17: 10(fvec4) Load 14(u) + Store 16(w_dep) 17 + 19: 10(fvec4) Load 14(u) + Store 18(w_reorder) 19 + 21: 10(fvec4) Load 14(u) + Store 20(w2) 21 + 23: 10(fvec4) Load 14(u) + Store 22(w_flow) 23 + 24: 6(float) Load 8(blendscale) + 27: 7(ptr) AccessChain 18(w_reorder) 26 + Store 27 24 + 31: 28(fvec2) Load 30(t) + 32: 10(fvec4) Load 12(w) + 33: 10(fvec4) VectorShuffle 32 31 0 5 2 4 + Store 12(w) 33 + 34: 6(float) Load 8(blendscale) + 36: 7(ptr) AccessChain 18(w_reorder) 35 + Store 36 34 + 37: 10(fvec4) Load 14(u) + 38: 10(fvec4) VectorShuffle 37 37 2 3 0 1 + Store 20(w2) 38 + 39: 6(float) Load 8(blendscale) + 41: 7(ptr) AccessChain 18(w_reorder) 40 + Store 41 39 + 42: 10(fvec4) Load 20(w2) + 43: 28(fvec2) VectorShuffle 42 42 0 2 + 44: 10(fvec4) Load 16(w_dep) + 45: 10(fvec4) VectorShuffle 44 43 4 5 2 3 + Store 16(w_dep) 45 + 46: 28(fvec2) Load 30(t) + 47: 10(fvec4) Load 16(w_dep) + 48: 10(fvec4) VectorShuffle 47 46 0 1 4 5 + Store 16(w_dep) 48 + 50: 10(fvec4) Load 14(u) + 51: 28(fvec2) VectorShuffle 50 50 2 3 + 52: 10(fvec4) Load 49(w_undef) + 53: 10(fvec4) VectorShuffle 52 51 4 5 2 3 + Store 49(w_undef) 53 + 57: 54(bool) Load 56(p) + SelectionMerge 59 None + BranchConditional 57 58 64 + 58: Label + 61: 60(ptr) AccessChain 30(t) 35 + 62: 6(float) Load 61 + 63: 7(ptr) AccessChain 22(w_flow) 35 + Store 63 62 + Branch 59 + 64: Label + 65: 60(ptr) AccessChain 30(t) 40 + 66: 6(float) Load 65 + 67: 7(ptr) AccessChain 22(w_flow) 35 + Store 67 66 + Branch 59 + 59: Label + 70: 10(fvec4) Load 18(w_reorder) + 71: 10(fvec4) Load 49(w_undef) + 72: 10(fvec4) Load 12(w) + 73: 10(fvec4) Load 20(w2) + 74: 10(fvec4) FMul 72 73 + 75: 10(fvec4) Load 16(w_dep) + 76: 10(fvec4) FMul 74 75 + 77: 10(fvec4) Load 22(w_flow) + 78: 10(fvec4) FMul 76 77 + 79: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78 + Store 69(gl_FragColor) 79 + 82: 28(fvec2) Load 30(t) + Store 81(c) 82 + Store 83(rep) 86 + 87: 7(ptr) AccessChain 81(c) 35 + 88: 6(float) Load 87 + 89: 54(bool) FOrdLessThan 88 84 + SelectionMerge 91 None + BranchConditional 89 90 91 + 90: Label + 93: 7(ptr) AccessChain 81(c) 35 + 94: 6(float) Load 93 + 95: 6(float) FMul 94 92 + 96: 7(ptr) AccessChain 81(c) 35 + Store 96 95 + Branch 91 + 91: Label + 97: 7(ptr) AccessChain 81(c) 35 + 98: 6(float) Load 97 + 99: 54(bool) FOrdLessThanEqual 98 85 + SelectionMerge 101 None + BranchConditional 99 100 101 + 100: Label + 103: 7(ptr) AccessChain 83(rep) 35 + Store 103 102 + Branch 101 + 101: Label + 104: 10(fvec4) Load 83(rep) + 105: 10(fvec4) Load 69(gl_FragColor) + 106: 10(fvec4) FAdd 105 104 + Store 69(gl_FragColor) 106 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out b/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out new file mode 100644 index 0000000000..0aee7ae729 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.swizzleInversion.frag.out @@ -0,0 +1,75 @@ +spv.swizzleInversion.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 46 + + Capability Shader + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 37 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "v43" + Name 12 "in4" + Name 17 "v42" + Name 23 "v44" + Name 29 "v41" + Name 35 "v33" + Name 37 "in3" + Name 40 "v32" + Name 43 "v31" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 10: TypeVector 6(float) 4 + 11: TypePointer Input 10(fvec4) + 12(in4): 11(ptr) Variable Input + 15: TypeVector 6(float) 2 + 16: TypePointer Function 15(fvec2) + 18: TypeInt 32 1 + 19: 18(int) Constant 1 + 22: TypePointer Function 10(fvec4) + 24: 6(float) Constant 1073741824 + 25: 15(fvec2) ConstantComposite 24 24 + 28: TypePointer Function 6(float) + 30: TypeInt 32 0 + 31: 30(int) Constant 1 + 32: TypePointer Input 6(float) + 36: TypePointer Input 7(fvec3) + 37(in3): 36(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(v43): 8(ptr) Variable Function + 17(v42): 16(ptr) Variable Function + 23(v44): 22(ptr) Variable Function + 29(v41): 28(ptr) Variable Function + 35(v33): 8(ptr) Variable Function + 40(v32): 16(ptr) Variable Function + 43(v31): 28(ptr) Variable Function + 13: 10(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 12(in4) + 14: 7(fvec3) VectorShuffle 13 13 3 2 0 + Store 9(v43) 14 + 20: 10(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 12(in4) 19 + 21: 15(fvec2) VectorShuffle 20 20 2 0 + Store 17(v42) 21 + 26: 10(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 12(in4) 25 + 27: 10(fvec4) VectorShuffle 26 26 2 1 0 3 + Store 23(v44) 27 + 33: 32(ptr) AccessChain 12(in4) 31 + 34: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33 25 + Store 29(v41) 34 + 38: 7(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 37(in3) + 39: 7(fvec3) VectorShuffle 38 38 1 2 0 + Store 35(v33) 39 + 41: 7(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 37(in3) 19 + 42: 15(fvec2) VectorShuffle 41 41 2 0 + Store 40(v32) 42 + 44: 32(ptr) AccessChain 12(in4) 31 + 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 44 25 + Store 43(v31) 45 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.test.frag.out b/deps/glslang/glslang/Test/baseResults/spv.test.frag.out new file mode 100644 index 0000000000..b5fccc32a5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.test.frag.out @@ -0,0 +1,85 @@ +spv.test.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 55 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 22 37 43 46 49 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 8 "blendscale" + Name 12 "v" + Name 16 "texSampler2D" + Name 20 "t" + Name 22 "scale" + Name 29 "w" + Name 33 "texSampler3D" + Name 37 "coords" + Name 43 "gl_FragColor" + Name 46 "u" + Name 49 "blend" + Decorate 16(texSampler2D) DescriptorSet 0 + Decorate 33(texSampler3D) DescriptorSet 0 + Decorate 43(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1071971828 + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 13: TypeImage 6(float) 2D sampled format:Unknown + 14: TypeSampledImage 13 + 15: TypePointer UniformConstant 14 +16(texSampler2D): 15(ptr) Variable UniformConstant + 18: TypeVector 6(float) 2 + 19: TypePointer Input 18(fvec2) + 20(t): 19(ptr) Variable Input + 22(scale): 19(ptr) Variable Input + 30: TypeImage 6(float) 3D sampled format:Unknown + 31: TypeSampledImage 30 + 32: TypePointer UniformConstant 31 +33(texSampler3D): 32(ptr) Variable UniformConstant + 35: TypeVector 6(float) 3 + 36: TypePointer Input 35(fvec3) + 37(coords): 36(ptr) Variable Input + 42: TypePointer Output 10(fvec4) +43(gl_FragColor): 42(ptr) Variable Output + 45: TypePointer Input 10(fvec4) + 46(u): 45(ptr) Variable Input + 48: TypePointer Input 6(float) + 49(blend): 48(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(blendscale): 7(ptr) Variable Function + 12(v): 11(ptr) Variable Function + 29(w): 11(ptr) Variable Function + Store 8(blendscale) 9 + 17: 14 Load 16(texSampler2D) + 21: 18(fvec2) Load 20(t) + 23: 18(fvec2) Load 22(scale) + 24: 18(fvec2) FAdd 21 23 + 25: 18(fvec2) Load 22(scale) + 26: 18(fvec2) FDiv 24 25 + 27: 10(fvec4) ImageSampleImplicitLod 17 26 + 28: 10(fvec4) VectorShuffle 27 27 3 2 1 0 + Store 12(v) 28 + 34: 31 Load 33(texSampler3D) + 38: 35(fvec3) Load 37(coords) + 39: 10(fvec4) ImageSampleImplicitLod 34 38 + 40: 10(fvec4) Load 12(v) + 41: 10(fvec4) FAdd 39 40 + Store 29(w) 41 + 44: 10(fvec4) Load 29(w) + 47: 10(fvec4) Load 46(u) + 50: 6(float) Load 49(blend) + 51: 6(float) Load 8(blendscale) + 52: 6(float) FMul 50 51 + 53: 10(fvec4) CompositeConstruct 52 52 52 52 + 54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 44 47 53 + Store 43(gl_FragColor) 54 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.test.vert.out b/deps/glslang/glslang/Test/baseResults/spv.test.vert.out new file mode 100644 index 0000000000..3303c88b54 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.test.vert.out @@ -0,0 +1,45 @@ +spv.test.vert +WARNING: 0:5: attribute deprecated in version 130; may be removed in future release + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 11 15 18 21 + Source GLSL 140 + Name 4 "main" + Name 9 "uv" + Name 11 "uv_in" + Name 15 "gl_Position" + Name 18 "transform" + Name 21 "position" + Decorate 15(gl_Position) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Output 7(fvec2) + 9(uv): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec2) + 11(uv_in): 10(ptr) Variable Input + 13: TypeVector 6(float) 4 + 14: TypePointer Output 13(fvec4) + 15(gl_Position): 14(ptr) Variable Output + 16: TypeMatrix 13(fvec4) 4 + 17: TypePointer Input 16 + 18(transform): 17(ptr) Variable Input + 20: TypePointer Input 13(fvec4) + 21(position): 20(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 12: 7(fvec2) Load 11(uv_in) + Store 9(uv) 12 + 19: 16 Load 18(transform) + 22: 13(fvec4) Load 21(position) + 23: 13(fvec4) MatrixTimesVector 19 22 + Store 15(gl_Position) 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out b/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out new file mode 100644 index 0000000000..e685018f09 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.texture.frag.out @@ -0,0 +1,396 @@ +spv.texture.frag +WARNING: 0:10: varying deprecated in version 130; may be removed in future release +WARNING: 0:11: varying deprecated in version 130; may be removed in future release +WARNING: 0:12: varying deprecated in version 130; may be removed in future release + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 305 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 47 291 294 297 303 304 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "blendscale" + Name 10 "bias" + Name 12 "lod" + Name 14 "proj" + Name 15 "coords1D" + Name 18 "coords3D" + Name 24 "coords4D" + Name 26 "color" + Name 32 "texSampler1D" + Name 47 "coords2D" + Name 76 "texSampler2D" + Name 104 "texSampler3D" + Name 130 "texSamplerCube" + Name 145 "shadowSampler1D" + Name 164 "shadowSampler2D" + Name 221 "iCoords2D" + Name 226 "iLod" + Name 236 "gradX" + Name 239 "gradY" + Name 291 "gl_FragColor" + Name 294 "u" + Name 297 "blend" + Name 303 "scale" + Name 304 "t" + Decorate 32(texSampler1D) DescriptorSet 0 + Decorate 76(texSampler2D) DescriptorSet 0 + Decorate 104(texSampler3D) DescriptorSet 0 + Decorate 130(texSamplerCube) DescriptorSet 0 + Decorate 145(shadowSampler1D) DescriptorSet 0 + Decorate 164(shadowSampler2D) DescriptorSet 0 + Decorate 291(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1071971828 + 11: 6(float) Constant 1073741824 + 13: 6(float) Constant 1077936128 + 16: TypeVector 6(float) 3 + 17: TypePointer Function 16(fvec3) + 19: 6(float) Constant 1076753334 + 20: 6(float) Constant 1079836148 + 21: 16(fvec3) ConstantComposite 9 19 20 + 22: TypeVector 6(float) 4 + 23: TypePointer Function 22(fvec4) + 25: 22(fvec4) ConstantComposite 9 19 20 11 + 27: 6(float) Constant 0 + 28: 22(fvec4) ConstantComposite 27 27 27 27 + 29: TypeImage 6(float) 1D sampled format:Unknown + 30: TypeSampledImage 29 + 31: TypePointer UniformConstant 30 +32(texSampler1D): 31(ptr) Variable UniformConstant + 45: TypeVector 6(float) 2 + 46: TypePointer Input 45(fvec2) + 47(coords2D): 46(ptr) Variable Input + 73: TypeImage 6(float) 2D sampled format:Unknown + 74: TypeSampledImage 73 + 75: TypePointer UniformConstant 74 +76(texSampler2D): 75(ptr) Variable UniformConstant + 101: TypeImage 6(float) 3D sampled format:Unknown + 102: TypeSampledImage 101 + 103: TypePointer UniformConstant 102 +104(texSampler3D): 103(ptr) Variable UniformConstant + 127: TypeImage 6(float) Cube sampled format:Unknown + 128: TypeSampledImage 127 + 129: TypePointer UniformConstant 128 +130(texSamplerCube): 129(ptr) Variable UniformConstant + 142: TypeImage 6(float) 1D depth sampled format:Unknown + 143: TypeSampledImage 142 + 144: TypePointer UniformConstant 143 +145(shadowSampler1D): 144(ptr) Variable UniformConstant + 161: TypeImage 6(float) 2D depth sampled format:Unknown + 162: TypeSampledImage 161 + 163: TypePointer UniformConstant 162 +164(shadowSampler2D): 163(ptr) Variable UniformConstant + 218: TypeInt 32 1 + 219: TypeVector 218(int) 2 + 220: TypePointer Function 219(ivec2) + 222: 218(int) Constant 0 + 223: 218(int) Constant 5 + 224: 219(ivec2) ConstantComposite 222 223 + 225: TypePointer Function 218(int) + 227: 218(int) Constant 1 + 235: TypePointer Function 45(fvec2) + 264: 218(int) Constant 3 + 265: 218(int) Constant 4294967289 + 266: 219(ivec2) ConstantComposite 264 265 + 290: TypePointer Output 22(fvec4) +291(gl_FragColor): 290(ptr) Variable Output + 293: TypePointer Input 22(fvec4) + 294(u): 293(ptr) Variable Input + 296: TypePointer Input 6(float) + 297(blend): 296(ptr) Variable Input + 303(scale): 46(ptr) Variable Input + 304(t): 46(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(blendscale): 7(ptr) Variable Function + 10(bias): 7(ptr) Variable Function + 12(lod): 7(ptr) Variable Function + 14(proj): 7(ptr) Variable Function + 15(coords1D): 7(ptr) Variable Function + 18(coords3D): 17(ptr) Variable Function + 24(coords4D): 23(ptr) Variable Function + 26(color): 23(ptr) Variable Function + 221(iCoords2D): 220(ptr) Variable Function + 226(iLod): 225(ptr) Variable Function + 236(gradX): 235(ptr) Variable Function + 239(gradY): 235(ptr) Variable Function + Store 8(blendscale) 9 + Store 10(bias) 11 + Store 12(lod) 13 + Store 14(proj) 11 + Store 15(coords1D) 9 + Store 18(coords3D) 21 + Store 24(coords4D) 25 + Store 26(color) 28 + 33: 30 Load 32(texSampler1D) + 34: 6(float) Load 15(coords1D) + 35: 22(fvec4) ImageSampleImplicitLod 33 34 + 36: 22(fvec4) Load 26(color) + 37: 22(fvec4) FAdd 36 35 + Store 26(color) 37 + 38: 30 Load 32(texSampler1D) + 39: 6(float) Load 15(coords1D) + 40: 6(float) Load 10(bias) + 41: 22(fvec4) ImageSampleImplicitLod 38 39 Bias 40 + 42: 22(fvec4) Load 26(color) + 43: 22(fvec4) FAdd 42 41 + Store 26(color) 43 + 44: 30 Load 32(texSampler1D) + 48: 45(fvec2) Load 47(coords2D) + 49: 22(fvec4) ImageSampleProjImplicitLod 44 48 + 50: 22(fvec4) Load 26(color) + 51: 22(fvec4) FAdd 50 49 + Store 26(color) 51 + 52: 30 Load 32(texSampler1D) + 53: 22(fvec4) Load 24(coords4D) + 54: 6(float) CompositeExtract 53 3 + 55: 22(fvec4) CompositeInsert 54 53 1 + 56: 22(fvec4) ImageSampleProjImplicitLod 52 55 + 57: 22(fvec4) Load 26(color) + 58: 22(fvec4) FAdd 57 56 + Store 26(color) 58 + 59: 30 Load 32(texSampler1D) + 60: 45(fvec2) Load 47(coords2D) + 61: 6(float) Load 10(bias) + 62: 22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61 + 63: 22(fvec4) Load 26(color) + 64: 22(fvec4) FAdd 63 62 + Store 26(color) 64 + 65: 30 Load 32(texSampler1D) + 66: 22(fvec4) Load 24(coords4D) + 67: 6(float) Load 10(bias) + 68: 6(float) CompositeExtract 66 3 + 69: 22(fvec4) CompositeInsert 68 66 1 + 70: 22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67 + 71: 22(fvec4) Load 26(color) + 72: 22(fvec4) FAdd 71 70 + Store 26(color) 72 + 77: 74 Load 76(texSampler2D) + 78: 45(fvec2) Load 47(coords2D) + 79: 22(fvec4) ImageSampleImplicitLod 77 78 + 80: 22(fvec4) Load 26(color) + 81: 22(fvec4) FAdd 80 79 + Store 26(color) 81 + 82: 74 Load 76(texSampler2D) + 83: 45(fvec2) Load 47(coords2D) + 84: 6(float) Load 10(bias) + 85: 22(fvec4) ImageSampleImplicitLod 82 83 Bias 84 + 86: 22(fvec4) Load 26(color) + 87: 22(fvec4) FAdd 86 85 + Store 26(color) 87 + 88: 74 Load 76(texSampler2D) + 89: 16(fvec3) Load 18(coords3D) + 90: 22(fvec4) ImageSampleProjImplicitLod 88 89 + 91: 22(fvec4) Load 26(color) + 92: 22(fvec4) FAdd 91 90 + Store 26(color) 92 + 93: 74 Load 76(texSampler2D) + 94: 22(fvec4) Load 24(coords4D) + 95: 6(float) Load 10(bias) + 96: 6(float) CompositeExtract 94 3 + 97: 22(fvec4) CompositeInsert 96 94 2 + 98: 22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95 + 99: 22(fvec4) Load 26(color) + 100: 22(fvec4) FAdd 99 98 + Store 26(color) 100 + 105: 102 Load 104(texSampler3D) + 106: 16(fvec3) Load 18(coords3D) + 107: 22(fvec4) ImageSampleImplicitLod 105 106 + 108: 22(fvec4) Load 26(color) + 109: 22(fvec4) FAdd 108 107 + Store 26(color) 109 + 110: 102 Load 104(texSampler3D) + 111: 16(fvec3) Load 18(coords3D) + 112: 6(float) Load 10(bias) + 113: 22(fvec4) ImageSampleImplicitLod 110 111 Bias 112 + 114: 22(fvec4) Load 26(color) + 115: 22(fvec4) FAdd 114 113 + Store 26(color) 115 + 116: 102 Load 104(texSampler3D) + 117: 22(fvec4) Load 24(coords4D) + 118: 22(fvec4) ImageSampleProjImplicitLod 116 117 + 119: 22(fvec4) Load 26(color) + 120: 22(fvec4) FAdd 119 118 + Store 26(color) 120 + 121: 102 Load 104(texSampler3D) + 122: 22(fvec4) Load 24(coords4D) + 123: 6(float) Load 10(bias) + 124: 22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123 + 125: 22(fvec4) Load 26(color) + 126: 22(fvec4) FAdd 125 124 + Store 26(color) 126 + 131: 128 Load 130(texSamplerCube) + 132: 16(fvec3) Load 18(coords3D) + 133: 22(fvec4) ImageSampleImplicitLod 131 132 + 134: 22(fvec4) Load 26(color) + 135: 22(fvec4) FAdd 134 133 + Store 26(color) 135 + 136: 128 Load 130(texSamplerCube) + 137: 16(fvec3) Load 18(coords3D) + 138: 6(float) Load 10(bias) + 139: 22(fvec4) ImageSampleImplicitLod 136 137 Bias 138 + 140: 22(fvec4) Load 26(color) + 141: 22(fvec4) FAdd 140 139 + Store 26(color) 141 + 146: 143 Load 145(shadowSampler1D) + 147: 16(fvec3) Load 18(coords3D) + 148: 6(float) CompositeExtract 147 2 + 149: 6(float) ImageSampleDrefImplicitLod 146 147 148 + 150: 22(fvec4) Load 26(color) + 151: 22(fvec4) CompositeConstruct 149 149 149 149 + 152: 22(fvec4) FAdd 150 151 + Store 26(color) 152 + 153: 143 Load 145(shadowSampler1D) + 154: 16(fvec3) Load 18(coords3D) + 155: 6(float) Load 10(bias) + 156: 6(float) CompositeExtract 154 2 + 157: 6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155 + 158: 22(fvec4) Load 26(color) + 159: 22(fvec4) CompositeConstruct 157 157 157 157 + 160: 22(fvec4) FAdd 158 159 + Store 26(color) 160 + 165: 162 Load 164(shadowSampler2D) + 166: 16(fvec3) Load 18(coords3D) + 167: 6(float) CompositeExtract 166 2 + 168: 6(float) ImageSampleDrefImplicitLod 165 166 167 + 169: 22(fvec4) Load 26(color) + 170: 22(fvec4) CompositeConstruct 168 168 168 168 + 171: 22(fvec4) FAdd 169 170 + Store 26(color) 171 + 172: 162 Load 164(shadowSampler2D) + 173: 16(fvec3) Load 18(coords3D) + 174: 6(float) Load 10(bias) + 175: 6(float) CompositeExtract 173 2 + 176: 6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174 + 177: 22(fvec4) Load 26(color) + 178: 22(fvec4) CompositeConstruct 176 176 176 176 + 179: 22(fvec4) FAdd 177 178 + Store 26(color) 179 + 180: 143 Load 145(shadowSampler1D) + 181: 22(fvec4) Load 24(coords4D) + 182: 6(float) CompositeExtract 181 2 + 183: 6(float) CompositeExtract 181 3 + 184: 22(fvec4) CompositeInsert 183 181 1 + 185: 6(float) ImageSampleProjDrefImplicitLod 180 184 182 + 186: 22(fvec4) Load 26(color) + 187: 22(fvec4) CompositeConstruct 185 185 185 185 + 188: 22(fvec4) FAdd 186 187 + Store 26(color) 188 + 189: 143 Load 145(shadowSampler1D) + 190: 22(fvec4) Load 24(coords4D) + 191: 6(float) Load 10(bias) + 192: 6(float) CompositeExtract 190 2 + 193: 6(float) CompositeExtract 190 3 + 194: 22(fvec4) CompositeInsert 193 190 1 + 195: 6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191 + 196: 22(fvec4) Load 26(color) + 197: 22(fvec4) CompositeConstruct 195 195 195 195 + 198: 22(fvec4) FAdd 196 197 + Store 26(color) 198 + 199: 162 Load 164(shadowSampler2D) + 200: 22(fvec4) Load 24(coords4D) + 201: 6(float) CompositeExtract 200 2 + 202: 6(float) CompositeExtract 200 3 + 203: 22(fvec4) CompositeInsert 202 200 2 + 204: 6(float) ImageSampleProjDrefImplicitLod 199 203 201 + 205: 22(fvec4) Load 26(color) + 206: 22(fvec4) CompositeConstruct 204 204 204 204 + 207: 22(fvec4) FAdd 205 206 + Store 26(color) 207 + 208: 162 Load 164(shadowSampler2D) + 209: 22(fvec4) Load 24(coords4D) + 210: 6(float) Load 10(bias) + 211: 6(float) CompositeExtract 209 2 + 212: 6(float) CompositeExtract 209 3 + 213: 22(fvec4) CompositeInsert 212 209 2 + 214: 6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210 + 215: 22(fvec4) Load 26(color) + 216: 22(fvec4) CompositeConstruct 214 214 214 214 + 217: 22(fvec4) FAdd 215 216 + Store 26(color) 217 + Store 221(iCoords2D) 224 + Store 226(iLod) 227 + 228: 74 Load 76(texSampler2D) + 229: 219(ivec2) Load 221(iCoords2D) + 230: 218(int) Load 226(iLod) + 231: 73 Image 228 + 232: 22(fvec4) ImageFetch 231 229 Lod 230 + 233: 22(fvec4) Load 26(color) + 234: 22(fvec4) FAdd 233 232 + Store 26(color) 234 + 237: 45(fvec2) Load 47(coords2D) + 238: 45(fvec2) DPdx 237 + Store 236(gradX) 238 + 240: 45(fvec2) Load 47(coords2D) + 241: 45(fvec2) DPdy 240 + Store 239(gradY) 241 + 242: 74 Load 76(texSampler2D) + 243: 45(fvec2) Load 47(coords2D) + 244: 45(fvec2) Load 236(gradX) + 245: 45(fvec2) Load 239(gradY) + 246: 22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245 + 247: 22(fvec4) Load 26(color) + 248: 22(fvec4) FAdd 247 246 + Store 26(color) 248 + 249: 74 Load 76(texSampler2D) + 250: 45(fvec2) Load 47(coords2D) + 251: 6(float) Load 14(proj) + 252: 6(float) CompositeExtract 250 0 + 253: 6(float) CompositeExtract 250 1 + 254: 16(fvec3) CompositeConstruct 252 253 251 + 255: 45(fvec2) Load 236(gradX) + 256: 45(fvec2) Load 239(gradY) + 257: 22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256 + 258: 22(fvec4) Load 26(color) + 259: 22(fvec4) FAdd 258 257 + Store 26(color) 259 + 260: 74 Load 76(texSampler2D) + 261: 45(fvec2) Load 47(coords2D) + 262: 45(fvec2) Load 236(gradX) + 263: 45(fvec2) Load 239(gradY) + 267: 22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266 + 268: 22(fvec4) Load 26(color) + 269: 22(fvec4) FAdd 268 267 + Store 26(color) 269 + 270: 74 Load 76(texSampler2D) + 271: 16(fvec3) Load 18(coords3D) + 272: 45(fvec2) Load 236(gradX) + 273: 45(fvec2) Load 239(gradY) + 274: 22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266 + 275: 22(fvec4) Load 26(color) + 276: 22(fvec4) FAdd 275 274 + Store 26(color) 276 + 277: 162 Load 164(shadowSampler2D) + 278: 45(fvec2) Load 47(coords2D) + 279: 6(float) Load 12(lod) + 280: 6(float) CompositeExtract 278 0 + 281: 6(float) CompositeExtract 278 1 + 282: 16(fvec3) CompositeConstruct 280 281 279 + 283: 45(fvec2) Load 236(gradX) + 284: 45(fvec2) Load 239(gradY) + 285: 6(float) CompositeExtract 282 2 + 286: 6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284 + 287: 22(fvec4) Load 26(color) + 288: 22(fvec4) CompositeConstruct 286 286 286 286 + 289: 22(fvec4) FAdd 287 288 + Store 26(color) 289 + 292: 22(fvec4) Load 26(color) + 295: 22(fvec4) Load 294(u) + 298: 6(float) Load 297(blend) + 299: 6(float) Load 8(blendscale) + 300: 6(float) FMul 298 299 + 301: 22(fvec4) CompositeConstruct 300 300 300 300 + 302: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301 + Store 291(gl_FragColor) 302 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out b/deps/glslang/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out new file mode 100644 index 0000000000..ef8bbf6ac2 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out @@ -0,0 +1,37 @@ +spv.texture.sampler.transform.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 17 + ExecutionMode 4 OriginUpperLeft + Source GLSL 440 + Name 4 "main" + Name 9 "color" + Name 13 "tex" + Name 17 "coord" + Decorate 13(tex) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(color): 8(ptr) Variable Output + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(tex): 12(ptr) Variable UniformConstant + 15: TypeVector 6(float) 2 + 16: TypePointer Input 15(fvec2) + 17(coord): 16(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 14: 11 Load 13(tex) + 18: 15(fvec2) Load 17(coord) + 19: 7(fvec4) ImageSampleImplicitLod 14 18 + Store 9(color) 19 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out b/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out new file mode 100644 index 0000000000..0c1b7a14bc --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.texture.vert.out @@ -0,0 +1,201 @@ +spv.texture.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 39 148 + Source GLSL 140 + Name 4 "main" + Name 8 "lod" + Name 10 "coords1D" + Name 14 "coords3D" + Name 20 "coords4D" + Name 23 "color" + Name 29 "texSampler1D" + Name 39 "coords2D" + Name 56 "texSampler2D" + Name 80 "texSampler3D" + Name 96 "texSamplerCube" + Name 106 "shadowSampler1D" + Name 118 "shadowSampler2D" + Name 148 "gl_Position" + Decorate 29(texSampler1D) DescriptorSet 0 + Decorate 56(texSampler2D) DescriptorSet 0 + Decorate 80(texSampler3D) DescriptorSet 0 + Decorate 96(texSamplerCube) DescriptorSet 0 + Decorate 106(shadowSampler1D) DescriptorSet 0 + Decorate 118(shadowSampler2D) DescriptorSet 0 + Decorate 148(gl_Position) BuiltIn Position + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1077936128 + 11: 6(float) Constant 1071971828 + 12: TypeVector 6(float) 3 + 13: TypePointer Function 12(fvec3) + 15: 6(float) Constant 1076753334 + 16: 6(float) Constant 1079836148 + 17: 12(fvec3) ConstantComposite 11 15 16 + 18: TypeVector 6(float) 4 + 19: TypePointer Function 18(fvec4) + 21: 6(float) Constant 1073741824 + 22: 18(fvec4) ConstantComposite 11 15 16 21 + 24: 6(float) Constant 0 + 25: 18(fvec4) ConstantComposite 24 24 24 24 + 26: TypeImage 6(float) 1D sampled format:Unknown + 27: TypeSampledImage 26 + 28: TypePointer UniformConstant 27 +29(texSampler1D): 28(ptr) Variable UniformConstant + 37: TypeVector 6(float) 2 + 38: TypePointer Input 37(fvec2) + 39(coords2D): 38(ptr) Variable Input + 53: TypeImage 6(float) 2D sampled format:Unknown + 54: TypeSampledImage 53 + 55: TypePointer UniformConstant 54 +56(texSampler2D): 55(ptr) Variable UniformConstant + 77: TypeImage 6(float) 3D sampled format:Unknown + 78: TypeSampledImage 77 + 79: TypePointer UniformConstant 78 +80(texSampler3D): 79(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube sampled format:Unknown + 94: TypeSampledImage 93 + 95: TypePointer UniformConstant 94 +96(texSamplerCube): 95(ptr) Variable UniformConstant + 103: TypeImage 6(float) 1D depth sampled format:Unknown + 104: TypeSampledImage 103 + 105: TypePointer UniformConstant 104 +106(shadowSampler1D): 105(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D depth sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 +118(shadowSampler2D): 117(ptr) Variable UniformConstant + 147: TypePointer Output 18(fvec4) +148(gl_Position): 147(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(lod): 7(ptr) Variable Function + 10(coords1D): 7(ptr) Variable Function + 14(coords3D): 13(ptr) Variable Function + 20(coords4D): 19(ptr) Variable Function + 23(color): 19(ptr) Variable Function + Store 8(lod) 9 + Store 10(coords1D) 11 + Store 14(coords3D) 17 + Store 20(coords4D) 22 + Store 23(color) 25 + 30: 27 Load 29(texSampler1D) + 31: 6(float) Load 10(coords1D) + 32: 6(float) Load 8(lod) + 33: 18(fvec4) ImageSampleExplicitLod 30 31 Lod 32 + 34: 18(fvec4) Load 23(color) + 35: 18(fvec4) FAdd 34 33 + Store 23(color) 35 + 36: 27 Load 29(texSampler1D) + 40: 37(fvec2) Load 39(coords2D) + 41: 6(float) Load 8(lod) + 42: 18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41 + 43: 18(fvec4) Load 23(color) + 44: 18(fvec4) FAdd 43 42 + Store 23(color) 44 + 45: 27 Load 29(texSampler1D) + 46: 18(fvec4) Load 20(coords4D) + 47: 6(float) Load 8(lod) + 48: 6(float) CompositeExtract 46 3 + 49: 18(fvec4) CompositeInsert 48 46 1 + 50: 18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47 + 51: 18(fvec4) Load 23(color) + 52: 18(fvec4) FAdd 51 50 + Store 23(color) 52 + 57: 54 Load 56(texSampler2D) + 58: 37(fvec2) Load 39(coords2D) + 59: 6(float) Load 8(lod) + 60: 18(fvec4) ImageSampleExplicitLod 57 58 Lod 59 + 61: 18(fvec4) Load 23(color) + 62: 18(fvec4) FAdd 61 60 + Store 23(color) 62 + 63: 54 Load 56(texSampler2D) + 64: 12(fvec3) Load 14(coords3D) + 65: 6(float) Load 8(lod) + 66: 18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65 + 67: 18(fvec4) Load 23(color) + 68: 18(fvec4) FAdd 67 66 + Store 23(color) 68 + 69: 54 Load 56(texSampler2D) + 70: 18(fvec4) Load 20(coords4D) + 71: 6(float) Load 8(lod) + 72: 6(float) CompositeExtract 70 3 + 73: 18(fvec4) CompositeInsert 72 70 2 + 74: 18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71 + 75: 18(fvec4) Load 23(color) + 76: 18(fvec4) FAdd 75 74 + Store 23(color) 76 + 81: 78 Load 80(texSampler3D) + 82: 12(fvec3) Load 14(coords3D) + 83: 6(float) Load 8(lod) + 84: 18(fvec4) ImageSampleExplicitLod 81 82 Lod 83 + 85: 18(fvec4) Load 23(color) + 86: 18(fvec4) FAdd 85 84 + Store 23(color) 86 + 87: 78 Load 80(texSampler3D) + 88: 18(fvec4) Load 20(coords4D) + 89: 6(float) Load 8(lod) + 90: 18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89 + 91: 18(fvec4) Load 23(color) + 92: 18(fvec4) FAdd 91 90 + Store 23(color) 92 + 97: 94 Load 96(texSamplerCube) + 98: 12(fvec3) Load 14(coords3D) + 99: 6(float) Load 8(lod) + 100: 18(fvec4) ImageSampleExplicitLod 97 98 Lod 99 + 101: 18(fvec4) Load 23(color) + 102: 18(fvec4) FAdd 101 100 + Store 23(color) 102 + 107: 104 Load 106(shadowSampler1D) + 108: 12(fvec3) Load 14(coords3D) + 109: 6(float) Load 8(lod) + 110: 6(float) CompositeExtract 108 2 + 111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109 + 112: 18(fvec4) Load 23(color) + 113: 18(fvec4) CompositeConstruct 111 111 111 111 + 114: 18(fvec4) FAdd 112 113 + Store 23(color) 114 + 119: 116 Load 118(shadowSampler2D) + 120: 12(fvec3) Load 14(coords3D) + 121: 6(float) Load 8(lod) + 122: 6(float) CompositeExtract 120 2 + 123: 6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121 + 124: 18(fvec4) Load 23(color) + 125: 18(fvec4) CompositeConstruct 123 123 123 123 + 126: 18(fvec4) FAdd 124 125 + Store 23(color) 126 + 127: 104 Load 106(shadowSampler1D) + 128: 18(fvec4) Load 20(coords4D) + 129: 6(float) Load 8(lod) + 130: 6(float) CompositeExtract 128 2 + 131: 6(float) CompositeExtract 128 3 + 132: 18(fvec4) CompositeInsert 131 128 1 + 133: 6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129 + 134: 18(fvec4) Load 23(color) + 135: 18(fvec4) CompositeConstruct 133 133 133 133 + 136: 18(fvec4) FAdd 134 135 + Store 23(color) 136 + 137: 116 Load 118(shadowSampler2D) + 138: 18(fvec4) Load 20(coords4D) + 139: 6(float) Load 8(lod) + 140: 6(float) CompositeExtract 138 2 + 141: 6(float) CompositeExtract 138 3 + 142: 18(fvec4) CompositeInsert 141 138 2 + 143: 6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139 + 144: 18(fvec4) Load 23(color) + 145: 18(fvec4) CompositeConstruct 143 143 143 143 + 146: 18(fvec4) FAdd 144 145 + Store 23(color) 146 + 149: 18(fvec4) Load 23(color) + Store 148(gl_Position) 149 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.textureBuffer.vert.out b/deps/glslang/glslang/Test/baseResults/spv.textureBuffer.vert.out new file mode 100644 index 0000000000..e327cb487d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.textureBuffer.vert.out @@ -0,0 +1,64 @@ +spv.textureBuffer.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 42 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source GLSL 450 + Name 4 "main" + Name 9 "tBuf" + Name 13 "s" + Name 23 "sBuf" + Name 32 "utBuf" + Name 38 "itBuf" + Decorate 9(tBuf) DescriptorSet 0 + Decorate 13(s) DescriptorSet 0 + Decorate 23(sBuf) DescriptorSet 0 + Decorate 32(utBuf) DescriptorSet 0 + Decorate 38(itBuf) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) Buffer sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(tBuf): 8(ptr) Variable UniformConstant + 11: TypeSampler + 12: TypePointer UniformConstant 11 + 13(s): 12(ptr) Variable UniformConstant + 15: TypeSampledImage 7 + 17: TypeInt 32 1 + 18: 17(int) Constant 13 + 20: TypeVector 6(float) 4 + 22: TypePointer UniformConstant 15 + 23(sBuf): 22(ptr) Variable UniformConstant + 29: TypeInt 32 0 + 30: TypeImage 29(int) Buffer sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(utBuf): 31(ptr) Variable UniformConstant + 34: TypeVector 29(int) 4 + 36: TypeImage 17(int) Buffer sampled format:Unknown + 37: TypePointer UniformConstant 36 + 38(itBuf): 37(ptr) Variable UniformConstant + 40: TypeVector 17(int) 4 + 4(main): 2 Function None 3 + 5: Label + 10: 7 Load 9(tBuf) + 14: 11 Load 13(s) + 16: 15 SampledImage 10 14 + 19: 7 Image 16 + 21: 20(fvec4) ImageFetch 19 18 + 24: 15 Load 23(sBuf) + 25: 7 Image 24 + 26: 20(fvec4) ImageFetch 25 18 + 27: 7 Load 9(tBuf) + 28: 20(fvec4) ImageFetch 27 18 + 33: 30 Load 32(utBuf) + 35: 34(ivec4) ImageFetch 33 18 + 39: 36 Load 38(itBuf) + 41: 40(ivec4) ImageFetch 39 18 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out b/deps/glslang/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out new file mode 100644 index 0000000000..faa4dba23b --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out @@ -0,0 +1,385 @@ +spv.textureGatherBiasLod.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 298 + + Capability Shader + Capability ImageGatherExtended + Capability SparseResidency + Capability SampledCubeArray + Capability ImageGatherBiasLodAMD + Extension "SPV_AMD_texture_gather_bias_lod" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 25 37 61 176 296 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_texture_gather_bias_lod" + SourceExtension "GL_ARB_sparse_texture2" + Name 4 "main" + Name 9 "texel" + Name 12 "result" + Name 16 "s2D" + Name 20 "c2" + Name 25 "bias" + Name 33 "s2DArray" + Name 37 "c3" + Name 47 "sCube" + Name 58 "sCubeArray" + Name 61 "c4" + Name 104 "ResType" + Name 176 "lod" + Name 296 "fragColor" + Decorate 16(s2D) DescriptorSet 0 + Decorate 33(s2DArray) DescriptorSet 0 + Decorate 47(sCube) DescriptorSet 0 + Decorate 58(sCubeArray) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 0 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: TypeImage 6(float) 2D sampled format:Unknown + 14: TypeSampledImage 13 + 15: TypePointer UniformConstant 14 + 16(s2D): 15(ptr) Variable UniformConstant + 18: TypeVector 6(float) 2 + 19: TypePointer Input 18(fvec2) + 20(c2): 19(ptr) Variable Input + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: TypePointer Input 6(float) + 25(bias): 24(ptr) Variable Input + 30: TypeImage 6(float) 2D array sampled format:Unknown + 31: TypeSampledImage 30 + 32: TypePointer UniformConstant 31 + 33(s2DArray): 32(ptr) Variable UniformConstant + 35: TypeVector 6(float) 3 + 36: TypePointer Input 35(fvec3) + 37(c3): 36(ptr) Variable Input + 39: 22(int) Constant 1 + 44: TypeImage 6(float) Cube sampled format:Unknown + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(sCube): 46(ptr) Variable UniformConstant + 50: 22(int) Constant 2 + 55: TypeImage 6(float) Cube array sampled format:Unknown + 56: TypeSampledImage 55 + 57: TypePointer UniformConstant 56 + 58(sCubeArray): 57(ptr) Variable UniformConstant + 60: TypePointer Input 7(fvec4) + 61(c4): 60(ptr) Variable Input + 63: 22(int) Constant 3 + 70: TypeVector 22(int) 2 + 71: 70(ivec2) ConstantComposite 23 23 + 78: 70(ivec2) ConstantComposite 23 39 + 85: TypeInt 32 0 + 86: 85(int) Constant 4 + 87: TypeArray 70(ivec2) 86 + 88: 70(ivec2) ConstantComposite 39 23 + 89: 70(ivec2) ConstantComposite 39 39 + 90: 87 ConstantComposite 71 78 88 89 + 104(ResType): TypeStruct 22(int) 7(fvec4) + 176(lod): 24(ptr) Variable Input + 295: TypePointer Output 7(fvec4) + 296(fragColor): 295(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(texel): 8(ptr) Variable Function + 12(result): 8(ptr) Variable Function + Store 9(texel) 11 + Store 12(result) 11 + 17: 14 Load 16(s2D) + 21: 18(fvec2) Load 20(c2) + 26: 6(float) Load 25(bias) + 27: 7(fvec4) ImageGather 17 21 23 Bias 26 + 28: 7(fvec4) Load 9(texel) + 29: 7(fvec4) FAdd 28 27 + Store 9(texel) 29 + 34: 31 Load 33(s2DArray) + 38: 35(fvec3) Load 37(c3) + 40: 6(float) Load 25(bias) + 41: 7(fvec4) ImageGather 34 38 39 Bias 40 + 42: 7(fvec4) Load 9(texel) + 43: 7(fvec4) FAdd 42 41 + Store 9(texel) 43 + 48: 45 Load 47(sCube) + 49: 35(fvec3) Load 37(c3) + 51: 6(float) Load 25(bias) + 52: 7(fvec4) ImageGather 48 49 50 Bias 51 + 53: 7(fvec4) Load 9(texel) + 54: 7(fvec4) FAdd 53 52 + Store 9(texel) 54 + 59: 56 Load 58(sCubeArray) + 62: 7(fvec4) Load 61(c4) + 64: 6(float) Load 25(bias) + 65: 7(fvec4) ImageGather 59 62 63 Bias 64 + 66: 7(fvec4) Load 9(texel) + 67: 7(fvec4) FAdd 66 65 + Store 9(texel) 67 + 68: 14 Load 16(s2D) + 69: 18(fvec2) Load 20(c2) + 72: 6(float) Load 25(bias) + 73: 7(fvec4) ImageGather 68 69 23 Bias ConstOffset 72 71 + 74: 7(fvec4) Load 9(texel) + 75: 7(fvec4) FAdd 74 73 + Store 9(texel) 75 + 76: 31 Load 33(s2DArray) + 77: 35(fvec3) Load 37(c3) + 79: 6(float) Load 25(bias) + 80: 7(fvec4) ImageGather 76 77 39 Bias ConstOffset 79 78 + 81: 7(fvec4) Load 9(texel) + 82: 7(fvec4) FAdd 81 80 + Store 9(texel) 82 + 83: 14 Load 16(s2D) + 84: 18(fvec2) Load 20(c2) + 91: 6(float) Load 25(bias) + 92: 7(fvec4) ImageGather 83 84 23 Bias ConstOffsets 91 90 + 93: 7(fvec4) Load 9(texel) + 94: 7(fvec4) FAdd 93 92 + Store 9(texel) 94 + 95: 31 Load 33(s2DArray) + 96: 35(fvec3) Load 37(c3) + 97: 6(float) Load 25(bias) + 98: 7(fvec4) ImageGather 95 96 39 Bias ConstOffsets 97 90 + 99: 7(fvec4) Load 9(texel) + 100: 7(fvec4) FAdd 99 98 + Store 9(texel) 100 + 101: 14 Load 16(s2D) + 102: 18(fvec2) Load 20(c2) + 103: 6(float) Load 25(bias) + 105:104(ResType) ImageSparseGather 101 102 23 Bias 103 + 106: 7(fvec4) CompositeExtract 105 1 + Store 12(result) 106 + 107: 22(int) CompositeExtract 105 0 + 108: 7(fvec4) Load 12(result) + 109: 7(fvec4) Load 9(texel) + 110: 7(fvec4) FAdd 109 108 + Store 9(texel) 110 + 111: 31 Load 33(s2DArray) + 112: 35(fvec3) Load 37(c3) + 113: 6(float) Load 25(bias) + 114:104(ResType) ImageSparseGather 111 112 39 Bias 113 + 115: 7(fvec4) CompositeExtract 114 1 + Store 12(result) 115 + 116: 22(int) CompositeExtract 114 0 + 117: 7(fvec4) Load 12(result) + 118: 7(fvec4) Load 9(texel) + 119: 7(fvec4) FAdd 118 117 + Store 9(texel) 119 + 120: 45 Load 47(sCube) + 121: 35(fvec3) Load 37(c3) + 122: 6(float) Load 25(bias) + 123:104(ResType) ImageSparseGather 120 121 50 Bias 122 + 124: 7(fvec4) CompositeExtract 123 1 + Store 12(result) 124 + 125: 22(int) CompositeExtract 123 0 + 126: 7(fvec4) Load 12(result) + 127: 7(fvec4) Load 9(texel) + 128: 7(fvec4) FAdd 127 126 + Store 9(texel) 128 + 129: 56 Load 58(sCubeArray) + 130: 7(fvec4) Load 61(c4) + 131: 6(float) Load 25(bias) + 132:104(ResType) ImageSparseGather 129 130 50 Bias 131 + 133: 7(fvec4) CompositeExtract 132 1 + Store 12(result) 133 + 134: 22(int) CompositeExtract 132 0 + 135: 7(fvec4) Load 12(result) + 136: 7(fvec4) Load 9(texel) + 137: 7(fvec4) FAdd 136 135 + Store 9(texel) 137 + 138: 14 Load 16(s2D) + 139: 18(fvec2) Load 20(c2) + 140: 6(float) Load 25(bias) + 141:104(ResType) ImageSparseGather 138 139 23 Bias ConstOffset 140 71 + 142: 7(fvec4) CompositeExtract 141 1 + Store 12(result) 142 + 143: 22(int) CompositeExtract 141 0 + 144: 7(fvec4) Load 12(result) + 145: 7(fvec4) Load 9(texel) + 146: 7(fvec4) FAdd 145 144 + Store 9(texel) 146 + 147: 31 Load 33(s2DArray) + 148: 35(fvec3) Load 37(c3) + 149: 6(float) Load 25(bias) + 150:104(ResType) ImageSparseGather 147 148 39 Bias ConstOffset 149 78 + 151: 7(fvec4) CompositeExtract 150 1 + Store 12(result) 151 + 152: 22(int) CompositeExtract 150 0 + 153: 7(fvec4) Load 12(result) + 154: 7(fvec4) Load 9(texel) + 155: 7(fvec4) FAdd 154 153 + Store 9(texel) 155 + 156: 14 Load 16(s2D) + 157: 18(fvec2) Load 20(c2) + 158: 6(float) Load 25(bias) + 159:104(ResType) ImageSparseGather 156 157 23 Bias ConstOffsets 158 90 + 160: 7(fvec4) CompositeExtract 159 1 + Store 12(result) 160 + 161: 22(int) CompositeExtract 159 0 + 162: 7(fvec4) Load 12(result) + 163: 7(fvec4) Load 9(texel) + 164: 7(fvec4) FAdd 163 162 + Store 9(texel) 164 + 165: 31 Load 33(s2DArray) + 166: 35(fvec3) Load 37(c3) + 167: 6(float) Load 25(bias) + 168:104(ResType) ImageSparseGather 165 166 39 Bias ConstOffsets 167 90 + 169: 7(fvec4) CompositeExtract 168 1 + Store 12(result) 169 + 170: 22(int) CompositeExtract 168 0 + 171: 7(fvec4) Load 12(result) + 172: 7(fvec4) Load 9(texel) + 173: 7(fvec4) FAdd 172 171 + Store 9(texel) 173 + 174: 14 Load 16(s2D) + 175: 18(fvec2) Load 20(c2) + 177: 6(float) Load 176(lod) + 178: 7(fvec4) ImageGather 174 175 23 Lod 177 + 179: 7(fvec4) Load 9(texel) + 180: 7(fvec4) FAdd 179 178 + Store 9(texel) 180 + 181: 31 Load 33(s2DArray) + 182: 35(fvec3) Load 37(c3) + 183: 6(float) Load 176(lod) + 184: 7(fvec4) ImageGather 181 182 39 Lod 183 + 185: 7(fvec4) Load 9(texel) + 186: 7(fvec4) FAdd 185 184 + Store 9(texel) 186 + 187: 45 Load 47(sCube) + 188: 35(fvec3) Load 37(c3) + 189: 6(float) Load 176(lod) + 190: 7(fvec4) ImageGather 187 188 50 Lod 189 + 191: 7(fvec4) Load 9(texel) + 192: 7(fvec4) FAdd 191 190 + Store 9(texel) 192 + 193: 56 Load 58(sCubeArray) + 194: 7(fvec4) Load 61(c4) + 195: 6(float) Load 176(lod) + 196: 7(fvec4) ImageGather 193 194 63 Lod 195 + 197: 7(fvec4) Load 9(texel) + 198: 7(fvec4) FAdd 197 196 + Store 9(texel) 198 + 199: 14 Load 16(s2D) + 200: 18(fvec2) Load 20(c2) + 201: 6(float) Load 176(lod) + 202: 7(fvec4) ImageGather 199 200 23 Lod ConstOffset 201 71 + 203: 7(fvec4) Load 9(texel) + 204: 7(fvec4) FAdd 203 202 + Store 9(texel) 204 + 205: 31 Load 33(s2DArray) + 206: 35(fvec3) Load 37(c3) + 207: 6(float) Load 176(lod) + 208: 7(fvec4) ImageGather 205 206 39 Lod ConstOffset 207 78 + 209: 7(fvec4) Load 9(texel) + 210: 7(fvec4) FAdd 209 208 + Store 9(texel) 210 + 211: 14 Load 16(s2D) + 212: 18(fvec2) Load 20(c2) + 213: 6(float) Load 176(lod) + 214: 7(fvec4) ImageGather 211 212 23 Lod ConstOffsets 213 90 + 215: 7(fvec4) Load 9(texel) + 216: 7(fvec4) FAdd 215 214 + Store 9(texel) 216 + 217: 31 Load 33(s2DArray) + 218: 35(fvec3) Load 37(c3) + 219: 6(float) Load 176(lod) + 220: 7(fvec4) ImageGather 217 218 39 Lod ConstOffsets 219 90 + 221: 7(fvec4) Load 9(texel) + 222: 7(fvec4) FAdd 221 220 + Store 9(texel) 222 + 223: 14 Load 16(s2D) + 224: 18(fvec2) Load 20(c2) + 225: 6(float) Load 176(lod) + 226:104(ResType) ImageSparseGather 223 224 23 Lod 225 + 227: 7(fvec4) CompositeExtract 226 1 + Store 12(result) 227 + 228: 22(int) CompositeExtract 226 0 + 229: 7(fvec4) Load 12(result) + 230: 7(fvec4) Load 9(texel) + 231: 7(fvec4) FAdd 230 229 + Store 9(texel) 231 + 232: 31 Load 33(s2DArray) + 233: 35(fvec3) Load 37(c3) + 234: 6(float) Load 176(lod) + 235:104(ResType) ImageSparseGather 232 233 39 Lod 234 + 236: 7(fvec4) CompositeExtract 235 1 + Store 12(result) 236 + 237: 22(int) CompositeExtract 235 0 + 238: 7(fvec4) Load 12(result) + 239: 7(fvec4) Load 9(texel) + 240: 7(fvec4) FAdd 239 238 + Store 9(texel) 240 + 241: 45 Load 47(sCube) + 242: 35(fvec3) Load 37(c3) + 243: 6(float) Load 176(lod) + 244:104(ResType) ImageSparseGather 241 242 50 Lod 243 + 245: 7(fvec4) CompositeExtract 244 1 + Store 12(result) 245 + 246: 22(int) CompositeExtract 244 0 + 247: 7(fvec4) Load 12(result) + 248: 7(fvec4) Load 9(texel) + 249: 7(fvec4) FAdd 248 247 + Store 9(texel) 249 + 250: 56 Load 58(sCubeArray) + 251: 7(fvec4) Load 61(c4) + 252: 6(float) Load 176(lod) + 253:104(ResType) ImageSparseGather 250 251 50 Lod 252 + 254: 7(fvec4) CompositeExtract 253 1 + Store 12(result) 254 + 255: 22(int) CompositeExtract 253 0 + 256: 7(fvec4) Load 12(result) + 257: 7(fvec4) Load 9(texel) + 258: 7(fvec4) FAdd 257 256 + Store 9(texel) 258 + 259: 14 Load 16(s2D) + 260: 18(fvec2) Load 20(c2) + 261: 6(float) Load 176(lod) + 262:104(ResType) ImageSparseGather 259 260 23 Lod ConstOffset 261 71 + 263: 7(fvec4) CompositeExtract 262 1 + Store 12(result) 263 + 264: 22(int) CompositeExtract 262 0 + 265: 7(fvec4) Load 12(result) + 266: 7(fvec4) Load 9(texel) + 267: 7(fvec4) FAdd 266 265 + Store 9(texel) 267 + 268: 31 Load 33(s2DArray) + 269: 35(fvec3) Load 37(c3) + 270: 6(float) Load 176(lod) + 271:104(ResType) ImageSparseGather 268 269 39 Lod ConstOffset 270 78 + 272: 7(fvec4) CompositeExtract 271 1 + Store 12(result) 272 + 273: 22(int) CompositeExtract 271 0 + 274: 7(fvec4) Load 12(result) + 275: 7(fvec4) Load 9(texel) + 276: 7(fvec4) FAdd 275 274 + Store 9(texel) 276 + 277: 14 Load 16(s2D) + 278: 18(fvec2) Load 20(c2) + 279: 6(float) Load 176(lod) + 280:104(ResType) ImageSparseGather 277 278 23 Lod ConstOffsets 279 90 + 281: 7(fvec4) CompositeExtract 280 1 + Store 12(result) 281 + 282: 22(int) CompositeExtract 280 0 + 283: 7(fvec4) Load 12(result) + 284: 7(fvec4) Load 9(texel) + 285: 7(fvec4) FAdd 284 283 + Store 9(texel) 285 + 286: 31 Load 33(s2DArray) + 287: 35(fvec3) Load 37(c3) + 288: 6(float) Load 176(lod) + 289:104(ResType) ImageSparseGather 286 287 39 Lod ConstOffsets 288 90 + 290: 7(fvec4) CompositeExtract 289 1 + Store 12(result) 290 + 291: 22(int) CompositeExtract 289 0 + 292: 7(fvec4) Load 12(result) + 293: 7(fvec4) Load 9(texel) + 294: 7(fvec4) FAdd 293 292 + Store 9(texel) 294 + 297: 7(fvec4) Load 9(texel) + Store 296(fragColor) 297 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.types.frag.out b/deps/glslang/glslang/Test/baseResults/spv.types.frag.out new file mode 100644 index 0000000000..e6fd3e0c20 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.types.frag.out @@ -0,0 +1,337 @@ +spv.types.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 260 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 98 105 107 114 116 123 125 132 134 141 143 150 152 159 161 165 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 8 "b" + Name 10 "u_b" + Name 12 "i_b" + Name 17 "b2" + Name 19 "u_b2" + Name 24 "i_b2" + Name 38 "b3" + Name 40 "u_b3" + Name 43 "i_b3" + Name 63 "b4" + Name 65 "u_b4" + Name 68 "i_b4" + Name 94 "i" + Name 96 "u_i" + Name 98 "i_i" + Name 103 "i2" + Name 105 "u_i2" + Name 107 "i_i2" + Name 112 "i3" + Name 114 "u_i3" + Name 116 "i_i3" + Name 121 "i4" + Name 123 "u_i4" + Name 125 "i_i4" + Name 130 "f" + Name 132 "u_f" + Name 134 "i_f" + Name 139 "f2" + Name 141 "u_f2" + Name 143 "i_f2" + Name 148 "f3" + Name 150 "u_f3" + Name 152 "i_f3" + Name 157 "f4" + Name 159 "u_f4" + Name 161 "i_f4" + Name 165 "gl_FragColor" + Decorate 96(u_i) Flat + Decorate 98(i_i) Flat + Decorate 105(u_i2) Flat + Decorate 107(i_i2) Flat + Decorate 114(u_i3) Flat + Decorate 116(i_i3) Flat + Decorate 123(u_i4) Flat + Decorate 125(i_i4) Flat + Decorate 165(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypePointer Function 6(bool) + 9: TypePointer Private 6(bool) + 10(u_b): 9(ptr) Variable Private + 12(i_b): 9(ptr) Variable Private + 15: TypeVector 6(bool) 2 + 16: TypePointer Function 15(bvec2) + 18: TypePointer Private 15(bvec2) + 19(u_b2): 18(ptr) Variable Private + 20: TypeInt 32 0 + 21: 20(int) Constant 0 + 24(i_b2): 18(ptr) Variable Private + 28: 20(int) Constant 1 + 36: TypeVector 6(bool) 3 + 37: TypePointer Function 36(bvec3) + 39: TypePointer Private 36(bvec3) + 40(u_b3): 39(ptr) Variable Private + 43(i_b3): 39(ptr) Variable Private + 53: 20(int) Constant 2 + 61: TypeVector 6(bool) 4 + 62: TypePointer Function 61(bvec4) + 64: TypePointer Private 61(bvec4) + 65(u_b4): 64(ptr) Variable Private + 68(i_b4): 64(ptr) Variable Private + 84: 20(int) Constant 3 + 92: TypeInt 32 1 + 93: TypePointer Function 92(int) + 95: TypePointer Input 92(int) + 96(u_i): 95(ptr) Variable Input + 98(i_i): 95(ptr) Variable Input + 101: TypeVector 92(int) 2 + 102: TypePointer Function 101(ivec2) + 104: TypePointer Input 101(ivec2) + 105(u_i2): 104(ptr) Variable Input + 107(i_i2): 104(ptr) Variable Input + 110: TypeVector 92(int) 3 + 111: TypePointer Function 110(ivec3) + 113: TypePointer Input 110(ivec3) + 114(u_i3): 113(ptr) Variable Input + 116(i_i3): 113(ptr) Variable Input + 119: TypeVector 92(int) 4 + 120: TypePointer Function 119(ivec4) + 122: TypePointer Input 119(ivec4) + 123(u_i4): 122(ptr) Variable Input + 125(i_i4): 122(ptr) Variable Input + 128: TypeFloat 32 + 129: TypePointer Function 128(float) + 131: TypePointer Input 128(float) + 132(u_f): 131(ptr) Variable Input + 134(i_f): 131(ptr) Variable Input + 137: TypeVector 128(float) 2 + 138: TypePointer Function 137(fvec2) + 140: TypePointer Input 137(fvec2) + 141(u_f2): 140(ptr) Variable Input + 143(i_f2): 140(ptr) Variable Input + 146: TypeVector 128(float) 3 + 147: TypePointer Function 146(fvec3) + 149: TypePointer Input 146(fvec3) + 150(u_f3): 149(ptr) Variable Input + 152(i_f3): 149(ptr) Variable Input + 155: TypeVector 128(float) 4 + 156: TypePointer Function 155(fvec4) + 158: TypePointer Input 155(fvec4) + 159(u_f4): 158(ptr) Variable Input + 161(i_f4): 158(ptr) Variable Input + 164: TypePointer Output 155(fvec4) +165(gl_FragColor): 164(ptr) Variable Output + 257: 128(float) Constant 1065353216 + 258: 155(fvec4) ConstantComposite 257 257 257 257 + 4(main): 2 Function None 3 + 5: Label + 8(b): 7(ptr) Variable Function + 17(b2): 16(ptr) Variable Function + 38(b3): 37(ptr) Variable Function + 63(b4): 62(ptr) Variable Function + 94(i): 93(ptr) Variable Function + 103(i2): 102(ptr) Variable Function + 112(i3): 111(ptr) Variable Function + 121(i4): 120(ptr) Variable Function + 130(f): 129(ptr) Variable Function + 139(f2): 138(ptr) Variable Function + 148(f3): 147(ptr) Variable Function + 157(f4): 156(ptr) Variable Function + 194: 156(ptr) Variable Function + 11: 6(bool) Load 10(u_b) + 13: 6(bool) Load 12(i_b) + 14: 6(bool) LogicalAnd 11 13 + Store 8(b) 14 + 22: 9(ptr) AccessChain 19(u_b2) 21 + 23: 6(bool) Load 22 + 25: 9(ptr) AccessChain 24(i_b2) 21 + 26: 6(bool) Load 25 + 27: 6(bool) LogicalAnd 23 26 + 29: 9(ptr) AccessChain 19(u_b2) 28 + 30: 6(bool) Load 29 + 31: 6(bool) LogicalAnd 27 30 + 32: 9(ptr) AccessChain 24(i_b2) 28 + 33: 6(bool) Load 32 + 34: 6(bool) LogicalAnd 31 33 + 35: 15(bvec2) CompositeConstruct 34 34 + Store 17(b2) 35 + 41: 9(ptr) AccessChain 40(u_b3) 21 + 42: 6(bool) Load 41 + 44: 9(ptr) AccessChain 43(i_b3) 21 + 45: 6(bool) Load 44 + 46: 6(bool) LogicalAnd 42 45 + 47: 9(ptr) AccessChain 40(u_b3) 28 + 48: 6(bool) Load 47 + 49: 6(bool) LogicalAnd 46 48 + 50: 9(ptr) AccessChain 43(i_b3) 28 + 51: 6(bool) Load 50 + 52: 6(bool) LogicalAnd 49 51 + 54: 9(ptr) AccessChain 40(u_b3) 53 + 55: 6(bool) Load 54 + 56: 6(bool) LogicalAnd 52 55 + 57: 9(ptr) AccessChain 43(i_b3) 53 + 58: 6(bool) Load 57 + 59: 6(bool) LogicalAnd 56 58 + 60: 36(bvec3) CompositeConstruct 59 59 59 + Store 38(b3) 60 + 66: 9(ptr) AccessChain 65(u_b4) 21 + 67: 6(bool) Load 66 + 69: 9(ptr) AccessChain 68(i_b4) 21 + 70: 6(bool) Load 69 + 71: 6(bool) LogicalAnd 67 70 + 72: 9(ptr) AccessChain 65(u_b4) 28 + 73: 6(bool) Load 72 + 74: 6(bool) LogicalAnd 71 73 + 75: 9(ptr) AccessChain 68(i_b4) 28 + 76: 6(bool) Load 75 + 77: 6(bool) LogicalAnd 74 76 + 78: 9(ptr) AccessChain 65(u_b4) 53 + 79: 6(bool) Load 78 + 80: 6(bool) LogicalAnd 77 79 + 81: 9(ptr) AccessChain 68(i_b4) 53 + 82: 6(bool) Load 81 + 83: 6(bool) LogicalAnd 80 82 + 85: 9(ptr) AccessChain 65(u_b4) 84 + 86: 6(bool) Load 85 + 87: 6(bool) LogicalAnd 83 86 + 88: 9(ptr) AccessChain 68(i_b4) 84 + 89: 6(bool) Load 88 + 90: 6(bool) LogicalAnd 87 89 + 91: 61(bvec4) CompositeConstruct 90 90 90 90 + Store 63(b4) 91 + 97: 92(int) Load 96(u_i) + 99: 92(int) Load 98(i_i) + 100: 92(int) IAdd 97 99 + Store 94(i) 100 + 106: 101(ivec2) Load 105(u_i2) + 108: 101(ivec2) Load 107(i_i2) + 109: 101(ivec2) IAdd 106 108 + Store 103(i2) 109 + 115: 110(ivec3) Load 114(u_i3) + 117: 110(ivec3) Load 116(i_i3) + 118: 110(ivec3) IAdd 115 117 + Store 112(i3) 118 + 124: 119(ivec4) Load 123(u_i4) + 126: 119(ivec4) Load 125(i_i4) + 127: 119(ivec4) IAdd 124 126 + Store 121(i4) 127 + 133: 128(float) Load 132(u_f) + 135: 128(float) Load 134(i_f) + 136: 128(float) FAdd 133 135 + Store 130(f) 136 + 142: 137(fvec2) Load 141(u_f2) + 144: 137(fvec2) Load 143(i_f2) + 145: 137(fvec2) FAdd 142 144 + Store 139(f2) 145 + 151: 146(fvec3) Load 150(u_f3) + 153: 146(fvec3) Load 152(i_f3) + 154: 146(fvec3) FAdd 151 153 + Store 148(f3) 154 + 160: 155(fvec4) Load 159(u_f4) + 162: 155(fvec4) Load 161(i_f4) + 163: 155(fvec4) FAdd 160 162 + Store 157(f4) 163 + 166: 6(bool) Load 8(b) + 167: 7(ptr) AccessChain 17(b2) 21 + 168: 6(bool) Load 167 + 169: 6(bool) LogicalOr 166 168 + 170: 7(ptr) AccessChain 17(b2) 28 + 171: 6(bool) Load 170 + 172: 6(bool) LogicalOr 169 171 + 173: 7(ptr) AccessChain 38(b3) 21 + 174: 6(bool) Load 173 + 175: 6(bool) LogicalOr 172 174 + 176: 7(ptr) AccessChain 38(b3) 28 + 177: 6(bool) Load 176 + 178: 6(bool) LogicalOr 175 177 + 179: 7(ptr) AccessChain 38(b3) 53 + 180: 6(bool) Load 179 + 181: 6(bool) LogicalOr 178 180 + 182: 7(ptr) AccessChain 63(b4) 21 + 183: 6(bool) Load 182 + 184: 6(bool) LogicalOr 181 183 + 185: 7(ptr) AccessChain 63(b4) 28 + 186: 6(bool) Load 185 + 187: 6(bool) LogicalOr 184 186 + 188: 7(ptr) AccessChain 63(b4) 53 + 189: 6(bool) Load 188 + 190: 6(bool) LogicalOr 187 189 + 191: 7(ptr) AccessChain 63(b4) 84 + 192: 6(bool) Load 191 + 193: 6(bool) LogicalOr 190 192 + SelectionMerge 196 None + BranchConditional 193 195 256 + 195: Label + 197: 92(int) Load 94(i) + 198: 93(ptr) AccessChain 103(i2) 21 + 199: 92(int) Load 198 + 200: 92(int) IAdd 197 199 + 201: 93(ptr) AccessChain 103(i2) 28 + 202: 92(int) Load 201 + 203: 92(int) IAdd 200 202 + 204: 93(ptr) AccessChain 112(i3) 21 + 205: 92(int) Load 204 + 206: 92(int) IAdd 203 205 + 207: 93(ptr) AccessChain 112(i3) 28 + 208: 92(int) Load 207 + 209: 92(int) IAdd 206 208 + 210: 93(ptr) AccessChain 112(i3) 53 + 211: 92(int) Load 210 + 212: 92(int) IAdd 209 211 + 213: 93(ptr) AccessChain 121(i4) 21 + 214: 92(int) Load 213 + 215: 92(int) IAdd 212 214 + 216: 93(ptr) AccessChain 121(i4) 28 + 217: 92(int) Load 216 + 218: 92(int) IAdd 215 217 + 219: 93(ptr) AccessChain 121(i4) 53 + 220: 92(int) Load 219 + 221: 92(int) IAdd 218 220 + 222: 93(ptr) AccessChain 121(i4) 84 + 223: 92(int) Load 222 + 224: 92(int) IAdd 221 223 + 225: 128(float) ConvertSToF 224 + 226: 128(float) Load 130(f) + 227: 128(float) FAdd 225 226 + 228: 129(ptr) AccessChain 139(f2) 21 + 229: 128(float) Load 228 + 230: 128(float) FAdd 227 229 + 231: 129(ptr) AccessChain 139(f2) 28 + 232: 128(float) Load 231 + 233: 128(float) FAdd 230 232 + 234: 129(ptr) AccessChain 148(f3) 21 + 235: 128(float) Load 234 + 236: 128(float) FAdd 233 235 + 237: 129(ptr) AccessChain 148(f3) 28 + 238: 128(float) Load 237 + 239: 128(float) FAdd 236 238 + 240: 129(ptr) AccessChain 148(f3) 53 + 241: 128(float) Load 240 + 242: 128(float) FAdd 239 241 + 243: 129(ptr) AccessChain 157(f4) 21 + 244: 128(float) Load 243 + 245: 128(float) FAdd 242 244 + 246: 129(ptr) AccessChain 157(f4) 28 + 247: 128(float) Load 246 + 248: 128(float) FAdd 245 247 + 249: 129(ptr) AccessChain 157(f4) 53 + 250: 128(float) Load 249 + 251: 128(float) FAdd 248 250 + 252: 129(ptr) AccessChain 157(f4) 84 + 253: 128(float) Load 252 + 254: 128(float) FAdd 251 253 + 255: 155(fvec4) CompositeConstruct 254 254 254 254 + Store 194 255 + Branch 196 + 256: Label + Store 194 258 + Branch 196 + 196: Label + 259: 155(fvec4) Load 194 + Store 165(gl_FragColor) 259 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.uint.frag.out b/deps/glslang/glslang/Test/baseResults/spv.uint.frag.out new file mode 100644 index 0000000000..af0ad85a37 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.uint.frag.out @@ -0,0 +1,441 @@ +spv.uint.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 213 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 15 68 77 206 208 210 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 8 "count" + Name 12 "u" + Name 15 "t" + Name 55 "shiftedii" + Name 57 "shiftedui" + Name 59 "shiftediu" + Name 60 "shifteduu" + Name 68 "c" + Name 72 "usampler" + Name 77 "tc" + Name 111 "af" + Name 115 "ab" + Name 118 "ai" + Name 152 "mask1" + Name 154 "mask2" + Name 156 "mask3" + Name 160 "mask4" + Name 206 "f" + Name 208 "v" + Name 210 "i" + Name 212 "b" + Decorate 8(count) RelaxedPrecision + Decorate 12(u) RelaxedPrecision + Decorate 15(t) RelaxedPrecision + Decorate 15(t) Flat + Decorate 19 RelaxedPrecision + Decorate 21 RelaxedPrecision + Decorate 27 RelaxedPrecision + Decorate 28 RelaxedPrecision + Decorate 32 RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 38 RelaxedPrecision + Decorate 39 RelaxedPrecision + Decorate 43 RelaxedPrecision + Decorate 44 RelaxedPrecision + Decorate 48 RelaxedPrecision + Decorate 49 RelaxedPrecision + Decorate 53 RelaxedPrecision + Decorate 54 RelaxedPrecision + Decorate 55(shiftedii) RelaxedPrecision + Decorate 57(shiftedui) RelaxedPrecision + Decorate 59(shiftediu) RelaxedPrecision + Decorate 60(shifteduu) RelaxedPrecision + Decorate 61 RelaxedPrecision + Decorate 62 RelaxedPrecision + Decorate 68(c) RelaxedPrecision + Decorate 72(usampler) RelaxedPrecision + Decorate 72(usampler) DescriptorSet 0 + Decorate 73 RelaxedPrecision + Decorate 77(tc) RelaxedPrecision + Decorate 78 RelaxedPrecision + Decorate 79 RelaxedPrecision + Decorate 80 RelaxedPrecision + Decorate 81 RelaxedPrecision + Decorate 85 RelaxedPrecision + Decorate 86 RelaxedPrecision + Decorate 88 RelaxedPrecision + Decorate 89 RelaxedPrecision + Decorate 90 RelaxedPrecision + Decorate 91 RelaxedPrecision + Decorate 92 RelaxedPrecision + Decorate 97 RelaxedPrecision + Decorate 98 RelaxedPrecision + Decorate 101 RelaxedPrecision + Decorate 102 RelaxedPrecision + Decorate 105 RelaxedPrecision + Decorate 111(af) RelaxedPrecision + Decorate 112 RelaxedPrecision + Decorate 113 RelaxedPrecision + Decorate 116 RelaxedPrecision + Decorate 118(ai) RelaxedPrecision + Decorate 119 RelaxedPrecision + Decorate 120 RelaxedPrecision + Decorate 121 RelaxedPrecision + Decorate 122 RelaxedPrecision + Decorate 124 RelaxedPrecision + Decorate 125 RelaxedPrecision + Decorate 126 RelaxedPrecision + Decorate 127 RelaxedPrecision + Decorate 128 RelaxedPrecision + Decorate 129 RelaxedPrecision + Decorate 130 RelaxedPrecision + Decorate 131 RelaxedPrecision + Decorate 135 RelaxedPrecision + Decorate 136 RelaxedPrecision + Decorate 140 RelaxedPrecision + Decorate 141 RelaxedPrecision + Decorate 145 RelaxedPrecision + Decorate 146 RelaxedPrecision + Decorate 150 RelaxedPrecision + Decorate 151 RelaxedPrecision + Decorate 152(mask1) RelaxedPrecision + Decorate 154(mask2) RelaxedPrecision + Decorate 156(mask3) RelaxedPrecision + Decorate 157 RelaxedPrecision + Decorate 159 RelaxedPrecision + Decorate 160(mask4) RelaxedPrecision + Decorate 162 RelaxedPrecision + Decorate 163 RelaxedPrecision + Decorate 167 RelaxedPrecision + Decorate 168 RelaxedPrecision + Decorate 169 RelaxedPrecision + Decorate 170 RelaxedPrecision + Decorate 171 RelaxedPrecision + Decorate 175 RelaxedPrecision + Decorate 176 RelaxedPrecision + Decorate 177 RelaxedPrecision + Decorate 178 RelaxedPrecision + Decorate 179 RelaxedPrecision + Decorate 180 RelaxedPrecision + Decorate 184 RelaxedPrecision + Decorate 185 RelaxedPrecision + Decorate 186 RelaxedPrecision + Decorate 187 RelaxedPrecision + Decorate 188 RelaxedPrecision + Decorate 192 RelaxedPrecision + Decorate 193 RelaxedPrecision + Decorate 194 RelaxedPrecision + Decorate 195 RelaxedPrecision + Decorate 196 RelaxedPrecision + Decorate 197 RelaxedPrecision + Decorate 198 RelaxedPrecision + Decorate 202 RelaxedPrecision + Decorate 203 RelaxedPrecision + Decorate 206(f) RelaxedPrecision + Decorate 208(v) RelaxedPrecision + Decorate 208(v) Flat + Decorate 210(i) RelaxedPrecision + Decorate 210(i) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1 + 10: TypeInt 32 0 + 11: TypePointer Function 10(int) + 13: TypeVector 10(int) 2 + 14: TypePointer Input 13(ivec2) + 15(t): 14(ptr) Variable Input + 16: 10(int) Constant 1 + 17: TypePointer Input 10(int) + 20: 10(int) Constant 3 + 22: TypeBool + 23: 22(bool) ConstantTrue + 26: 6(int) Constant 2 + 31: 6(int) Constant 3 + 34: 22(bool) ConstantFalse + 37: 6(int) Constant 5 + 42: 6(int) Constant 7 + 47: 6(int) Constant 11 + 52: 6(int) Constant 13 + 56: 6(int) Constant 4294967295 + 58: 10(int) Constant 4194303 + 66: TypeVector 10(int) 4 + 67: TypePointer Output 66(ivec4) + 68(c): 67(ptr) Variable Output + 69: TypeImage 10(int) 2D sampled format:Unknown + 70: TypeSampledImage 69 + 71: TypePointer UniformConstant 70 + 72(usampler): 71(ptr) Variable UniformConstant + 74: TypeFloat 32 + 75: TypeVector 74(float) 2 + 76: TypePointer Input 75(fvec2) + 77(tc): 76(ptr) Variable Input + 87: 74(float) Constant 1065353216 + 99: 74(float) Constant 1073741824 + 100: 75(fvec2) ConstantComposite 99 99 + 103: 10(int) Constant 0 + 106: 10(int) Constant 4 + 110: TypePointer Function 74(float) + 114: TypePointer Function 22(bool) + 134: 6(int) Constant 17 + 139: 6(int) Constant 19 + 144: 6(int) Constant 23 + 149: 6(int) Constant 27 + 153: 10(int) Constant 161 + 155: 10(int) Constant 2576 + 158: 6(int) Constant 4 + 161: 10(int) Constant 2737 + 199: 10(int) Constant 4294967295 + 200: TypePointer Output 10(int) + 205: TypePointer Input 74(float) + 206(f): 205(ptr) Variable Input + 207: TypePointer Input 66(ivec4) + 208(v): 207(ptr) Variable Input + 209: TypePointer Input 6(int) + 210(i): 209(ptr) Variable Input + 211: TypePointer Private 22(bool) + 212(b): 211(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 8(count): 7(ptr) Variable Function + 12(u): 11(ptr) Variable Function + 55(shiftedii): 7(ptr) Variable Function + 57(shiftedui): 11(ptr) Variable Function + 59(shiftediu): 7(ptr) Variable Function + 60(shifteduu): 11(ptr) Variable Function + 111(af): 110(ptr) Variable Function + 115(ab): 114(ptr) Variable Function + 118(ai): 7(ptr) Variable Function + 152(mask1): 11(ptr) Variable Function + 154(mask2): 11(ptr) Variable Function + 156(mask3): 11(ptr) Variable Function + 160(mask4): 11(ptr) Variable Function + Store 8(count) 9 + 18: 17(ptr) AccessChain 15(t) 16 + 19: 10(int) Load 18 + 21: 10(int) IAdd 19 20 + Store 12(u) 21 + SelectionMerge 25 None + BranchConditional 23 24 25 + 24: Label + 27: 6(int) Load 8(count) + 28: 6(int) IMul 27 26 + Store 8(count) 28 + Branch 25 + 25: Label + SelectionMerge 30 None + BranchConditional 23 29 30 + 29: Label + 32: 6(int) Load 8(count) + 33: 6(int) IMul 32 31 + Store 8(count) 33 + Branch 30 + 30: Label + SelectionMerge 36 None + BranchConditional 34 35 36 + 35: Label + 38: 6(int) Load 8(count) + 39: 6(int) IMul 38 37 + Store 8(count) 39 + Branch 36 + 36: Label + SelectionMerge 41 None + BranchConditional 23 40 41 + 40: Label + 43: 6(int) Load 8(count) + 44: 6(int) IMul 43 42 + Store 8(count) 44 + Branch 41 + 41: Label + SelectionMerge 46 None + BranchConditional 23 45 46 + 45: Label + 48: 6(int) Load 8(count) + 49: 6(int) IMul 48 47 + Store 8(count) 49 + Branch 46 + 46: Label + SelectionMerge 51 None + BranchConditional 34 50 51 + 50: Label + 53: 6(int) Load 8(count) + 54: 6(int) IMul 53 52 + Store 8(count) 54 + Branch 51 + 51: Label + Store 55(shiftedii) 56 + Store 57(shiftedui) 58 + Store 59(shiftediu) 56 + Store 60(shifteduu) 58 + 61: 6(int) Load 55(shiftedii) + 62: 6(int) Load 59(shiftediu) + 63: 22(bool) IEqual 61 62 + SelectionMerge 65 None + BranchConditional 63 64 65 + 64: Label + 73: 70 Load 72(usampler) + 78: 75(fvec2) Load 77(tc) + 79: 66(ivec4) ImageSampleImplicitLod 73 78 + Store 68(c) 79 + Branch 65 + 65: Label + 80: 10(int) Load 57(shiftedui) + 81: 10(int) Load 60(shifteduu) + 82: 22(bool) IEqual 80 81 + SelectionMerge 84 None + BranchConditional 82 83 84 + 83: Label + 85: 70 Load 72(usampler) + 86: 75(fvec2) Load 77(tc) + 88: 75(fvec2) CompositeConstruct 87 87 + 89: 75(fvec2) FAdd 86 88 + 90: 66(ivec4) ImageSampleImplicitLod 85 89 + Store 68(c) 90 + Branch 84 + 84: Label + 91: 6(int) Load 55(shiftedii) + 92: 10(int) Load 57(shiftedui) + 93: 6(int) Bitcast 92 + 94: 22(bool) IEqual 91 93 + SelectionMerge 96 None + BranchConditional 94 95 96 + 95: Label + 97: 70 Load 72(usampler) + 98: 75(fvec2) Load 77(tc) + 101: 75(fvec2) FSub 98 100 + 102: 66(ivec4) ImageSampleImplicitLod 97 101 + Store 68(c) 102 + Branch 96 + 96: Label + 104: 17(ptr) AccessChain 15(t) 103 + 105: 10(int) Load 104 + 107: 22(bool) UGreaterThan 105 106 + SelectionMerge 109 None + BranchConditional 107 108 109 + 108: Label + 112: 10(int) Load 12(u) + 113: 74(float) ConvertUToF 112 + Store 111(af) 113 + 116: 10(int) Load 12(u) + 117: 22(bool) INotEqual 116 103 + Store 115(ab) 117 + 119: 10(int) Load 12(u) + 120: 6(int) Bitcast 119 + Store 118(ai) 120 + 121: 74(float) Load 111(af) + 122: 10(int) ConvertFToU 121 + 123: 22(bool) Load 115(ab) + 124: 10(int) Select 123 16 103 + 125: 6(int) Load 118(ai) + 126: 10(int) Bitcast 125 + 127: 6(int) Load 8(count) + 128: 10(int) Bitcast 127 + 129: 66(ivec4) CompositeConstruct 122 124 126 128 + 130: 66(ivec4) Load 68(c) + 131: 66(ivec4) IAdd 130 129 + Store 68(c) 131 + Branch 109 + 109: Label + SelectionMerge 133 None + BranchConditional 23 132 133 + 132: Label + 135: 6(int) Load 8(count) + 136: 6(int) IMul 135 134 + Store 8(count) 136 + Branch 133 + 133: Label + SelectionMerge 138 None + BranchConditional 34 137 138 + 137: Label + 140: 6(int) Load 8(count) + 141: 6(int) IMul 140 139 + Store 8(count) 141 + Branch 138 + 138: Label + SelectionMerge 143 None + BranchConditional 23 142 143 + 142: Label + 145: 6(int) Load 8(count) + 146: 6(int) IMul 145 144 + Store 8(count) 146 + Branch 143 + 143: Label + SelectionMerge 148 None + BranchConditional 23 147 148 + 147: Label + 150: 6(int) Load 8(count) + 151: 6(int) IMul 150 149 + Store 8(count) 151 + Branch 148 + 148: Label + Store 152(mask1) 153 + Store 154(mask2) 155 + 157: 10(int) Load 152(mask1) + 159: 10(int) ShiftLeftLogical 157 158 + Store 156(mask3) 159 + Store 160(mask4) 161 + 162: 10(int) Load 156(mask3) + 163: 10(int) Load 154(mask2) + 164: 22(bool) IEqual 162 163 + SelectionMerge 166 None + BranchConditional 164 165 166 + 165: Label + 167: 6(int) Load 8(count) + 168: 6(int) IMul 167 26 + Store 8(count) 168 + Branch 166 + 166: Label + 169: 10(int) Load 156(mask3) + 170: 10(int) Load 152(mask1) + 171: 10(int) BitwiseAnd 169 170 + 172: 22(bool) INotEqual 171 103 + SelectionMerge 174 None + BranchConditional 172 173 174 + 173: Label + 175: 6(int) Load 8(count) + 176: 6(int) IMul 175 31 + Store 8(count) 176 + Branch 174 + 174: Label + 177: 10(int) Load 152(mask1) + 178: 10(int) Load 156(mask3) + 179: 10(int) BitwiseOr 177 178 + 180: 10(int) Load 160(mask4) + 181: 22(bool) IEqual 179 180 + SelectionMerge 183 None + BranchConditional 181 182 183 + 182: Label + 184: 6(int) Load 8(count) + 185: 6(int) IMul 184 37 + Store 8(count) 185 + Branch 183 + 183: Label + 186: 10(int) Load 152(mask1) + 187: 10(int) Load 160(mask4) + 188: 10(int) BitwiseXor 186 187 + 189: 22(bool) IEqual 188 155 + SelectionMerge 191 None + BranchConditional 189 190 191 + 190: Label + 192: 6(int) Load 8(count) + 193: 6(int) IMul 192 42 + Store 8(count) 193 + Branch 191 + 191: Label + 194: 6(int) Load 8(count) + 195: 10(int) Bitcast 194 + 196: 66(ivec4) CompositeConstruct 195 195 195 195 + 197: 66(ivec4) Load 68(c) + 198: 66(ivec4) IAdd 197 196 + Store 68(c) 198 + 201: 200(ptr) AccessChain 68(c) 103 + 202: 10(int) Load 201 + 203: 10(int) IAdd 202 199 + 204: 200(ptr) AccessChain 68(c) 103 + Store 204 203 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out b/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out new file mode 100644 index 0000000000..ff5855c106 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.uniformArray.frag.out @@ -0,0 +1,77 @@ +spv.uniformArray.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 53 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 25 35 47 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "texColor" + Name 14 "color" + Name 25 "inColor" + Name 35 "alpha" + Name 47 "gl_FragColor" + Name 52 "texSampler2D" + Decorate 47(gl_FragColor) Location 0 + Decorate 52(texSampler2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeInt 32 0 + 11: 10(int) Constant 6 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer Input 12 + 14(color): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Input 7(fvec4) + 23: TypeVector 6(float) 3 + 24: TypePointer Input 23(fvec3) + 25(inColor): 24(ptr) Variable Input + 32: 10(int) Constant 16 + 33: TypeArray 6(float) 32 + 34: TypePointer Input 33 + 35(alpha): 34(ptr) Variable Input + 36: 15(int) Constant 12 + 37: TypePointer Input 6(float) + 40: 10(int) Constant 3 + 41: TypePointer Function 6(float) + 46: TypePointer Output 7(fvec4) +47(gl_FragColor): 46(ptr) Variable Output + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypeSampledImage 49 + 51: TypePointer UniformConstant 50 +52(texSampler2D): 51(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(texColor): 8(ptr) Variable Function + 18: 17(ptr) AccessChain 14(color) 16 + 19: 7(fvec4) Load 18 + 20: 17(ptr) AccessChain 14(color) 16 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 19 21 + Store 9(texColor) 22 + 26: 23(fvec3) Load 25(inColor) + 27: 7(fvec4) Load 9(texColor) + 28: 23(fvec3) VectorShuffle 27 27 0 1 2 + 29: 23(fvec3) FAdd 28 26 + 30: 7(fvec4) Load 9(texColor) + 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 + Store 9(texColor) 31 + 38: 37(ptr) AccessChain 35(alpha) 36 + 39: 6(float) Load 38 + 42: 41(ptr) AccessChain 9(texColor) 40 + 43: 6(float) Load 42 + 44: 6(float) FAdd 43 39 + 45: 41(ptr) AccessChain 9(texColor) 40 + Store 45 44 + 48: 7(fvec4) Load 9(texColor) + Store 47(gl_FragColor) 48 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out b/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out new file mode 100644 index 0000000000..e0010dfcde --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.variableArrayIndex.frag.out @@ -0,0 +1,144 @@ +spv.variableArrayIndex.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 93 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 10 20 34 36 54 63 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 8 "iLocal" + Name 10 "Count" + Name 13 "lunarStruct1" + MemberName 13(lunarStruct1) 0 "i" + MemberName 13(lunarStruct1) 1 "f" + Name 14 "lunarStruct2" + MemberName 14(lunarStruct2) 0 "i" + MemberName 14(lunarStruct2) 1 "f" + MemberName 14(lunarStruct2) 2 "s1_1" + Name 18 "lunarStruct3" + MemberName 18(lunarStruct3) 0 "s2_1" + MemberName 18(lunarStruct3) 1 "i" + MemberName 18(lunarStruct3) 2 "f" + MemberName 18(lunarStruct3) 3 "s1_1" + Name 20 "foo3" + Name 30 "scale" + Name 34 "foo2" + Name 36 "foo" + Name 54 "gl_FragColor" + Name 59 "samp2D" + Name 63 "coord" + Name 69 "constructed" + Decorate 10(Count) Flat + Decorate 20(foo3) Flat + Decorate 34(foo2) Flat + Decorate 36(foo) Flat + Decorate 54(gl_FragColor) Location 0 + Decorate 59(samp2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) + 10(Count): 9(ptr) Variable Input + 12: TypeFloat 32 +13(lunarStruct1): TypeStruct 6(int) 12(float) +14(lunarStruct2): TypeStruct 6(int) 12(float) 13(lunarStruct1) + 15: TypeInt 32 0 + 16: 15(int) Constant 3 + 17: TypeArray 14(lunarStruct2) 16 +18(lunarStruct3): TypeStruct 17 6(int) 12(float) 13(lunarStruct1) + 19: TypePointer Input 18(lunarStruct3) + 20(foo3): 19(ptr) Variable Input + 21: 6(int) Constant 0 + 22: 6(int) Constant 1 + 25: TypeBool + 29: TypePointer Function 12(float) + 31: 15(int) Constant 5 + 32: TypeArray 14(lunarStruct2) 31 + 33: TypePointer Input 32 + 34(foo2): 33(ptr) Variable Input + 35: TypePointer Input 13(lunarStruct1) + 36(foo): 35(ptr) Variable Input + 41: 6(int) Constant 2 + 46: TypePointer Input 12(float) + 52: TypeVector 12(float) 4 + 53: TypePointer Output 52(fvec4) +54(gl_FragColor): 53(ptr) Variable Output + 56: TypeImage 12(float) 2D sampled format:Unknown + 57: TypeSampledImage 56 + 58: TypePointer UniformConstant 57 + 59(samp2D): 58(ptr) Variable UniformConstant + 61: TypeVector 12(float) 2 + 62: TypePointer Input 61(fvec2) + 63(coord): 62(ptr) Variable Input + 67: TypeArray 61(fvec2) 16 + 68: TypePointer Function 67 + 73: 12(float) Constant 1065353216 + 74: 12(float) Constant 1073741824 + 75: 61(fvec2) ConstantComposite 73 74 + 79: TypePointer Function 61(fvec2) + 4(main): 2 Function None 3 + 5: Label + 8(iLocal): 7(ptr) Variable Function + 30(scale): 29(ptr) Variable Function + 69(constructed): 68(ptr) Variable Function + 11: 6(int) Load 10(Count) + Store 8(iLocal) 11 + 23: 9(ptr) AccessChain 20(foo3) 21 22 21 + 24: 6(int) Load 23 + 26: 25(bool) SGreaterThan 24 21 + SelectionMerge 28 None + BranchConditional 26 27 49 + 27: Label + 37: 9(ptr) AccessChain 36(foo) 21 + 38: 6(int) Load 37 + 39: 9(ptr) AccessChain 20(foo3) 21 38 21 + 40: 6(int) Load 39 + 42: 6(int) IAdd 40 41 + 43: 6(int) Load 8(iLocal) + 44: 6(int) IAdd 43 22 + Store 8(iLocal) 44 + 45: 6(int) IAdd 42 44 + 47: 46(ptr) AccessChain 34(foo2) 45 41 22 + 48: 12(float) Load 47 + Store 30(scale) 48 + Branch 28 + 49: Label + 50: 46(ptr) AccessChain 20(foo3) 21 21 41 22 + 51: 12(float) Load 50 + Store 30(scale) 51 + Branch 28 + 28: Label + 55: 12(float) Load 30(scale) + 60: 57 Load 59(samp2D) + 64: 61(fvec2) Load 63(coord) + 65: 52(fvec4) ImageSampleImplicitLod 60 64 + 66: 52(fvec4) VectorTimesScalar 65 55 + Store 54(gl_FragColor) 66 + 70: 61(fvec2) Load 63(coord) + 71: 12(float) Load 30(scale) + 72: 61(fvec2) CompositeConstruct 71 71 + 76: 67 CompositeConstruct 70 72 75 + Store 69(constructed) 76 + 77: 9(ptr) AccessChain 36(foo) 21 + 78: 6(int) Load 77 + 80: 79(ptr) AccessChain 69(constructed) 78 + 81: 61(fvec2) Load 80 + 82: 9(ptr) AccessChain 36(foo) 21 + 83: 6(int) Load 82 + 84: 79(ptr) AccessChain 69(constructed) 83 + 85: 61(fvec2) Load 84 + 86: 12(float) CompositeExtract 81 0 + 87: 12(float) CompositeExtract 81 1 + 88: 12(float) CompositeExtract 85 0 + 89: 12(float) CompositeExtract 85 1 + 90: 52(fvec4) CompositeConstruct 86 87 88 89 + 91: 52(fvec4) Load 54(gl_FragColor) + 92: 52(fvec4) FAdd 91 90 + Store 54(gl_FragColor) 92 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out b/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out new file mode 100644 index 0000000000..0acfdd9276 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.varyingArray.frag.out @@ -0,0 +1,86 @@ +spv.varyingArray.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 61 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 19 34 39 45 48 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "texColor" + Name 13 "texSampler2D" + Name 19 "TexCoord" + Name 34 "color" + Name 39 "alpha" + Name 45 "gl_FragColor" + Name 48 "foo" + Decorate 13(texSampler2D) DescriptorSet 0 + Decorate 45(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 +13(texSampler2D): 12(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 6 + 17: TypeArray 7(fvec4) 16 + 18: TypePointer Input 17 + 19(TexCoord): 18(ptr) Variable Input + 20: TypeInt 32 1 + 21: 20(int) Constant 4 + 22: TypePointer Input 7(fvec4) + 25: 20(int) Constant 5 + 29: TypeVector 6(float) 2 + 34(color): 22(ptr) Variable Input + 38: TypePointer Input 6(float) + 39(alpha): 38(ptr) Variable Input + 41: 15(int) Constant 3 + 42: TypePointer Function 6(float) + 44: TypePointer Output 7(fvec4) +45(gl_FragColor): 44(ptr) Variable Output + 46: TypeArray 7(fvec4) 41 + 47: TypePointer Input 46 + 48(foo): 47(ptr) Variable Input + 49: 20(int) Constant 1 + 52: 20(int) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 9(texColor): 8(ptr) Variable Function + 14: 11 Load 13(texSampler2D) + 23: 22(ptr) AccessChain 19(TexCoord) 21 + 24: 7(fvec4) Load 23 + 26: 22(ptr) AccessChain 19(TexCoord) 25 + 27: 7(fvec4) Load 26 + 28: 7(fvec4) FAdd 24 27 + 30: 6(float) CompositeExtract 28 0 + 31: 6(float) CompositeExtract 28 1 + 32: 29(fvec2) CompositeConstruct 30 31 + 33: 7(fvec4) ImageSampleImplicitLod 14 32 + Store 9(texColor) 33 + 35: 7(fvec4) Load 34(color) + 36: 7(fvec4) Load 9(texColor) + 37: 7(fvec4) FAdd 36 35 + Store 9(texColor) 37 + 40: 6(float) Load 39(alpha) + 43: 42(ptr) AccessChain 9(texColor) 41 + Store 43 40 + 50: 22(ptr) AccessChain 48(foo) 49 + 51: 7(fvec4) Load 50 + 53: 22(ptr) AccessChain 19(TexCoord) 52 + 54: 7(fvec4) Load 53 + 55: 7(fvec4) FAdd 51 54 + 56: 22(ptr) AccessChain 19(TexCoord) 21 + 57: 7(fvec4) Load 56 + 58: 7(fvec4) FAdd 55 57 + 59: 7(fvec4) Load 9(texColor) + 60: 7(fvec4) FAdd 58 59 + Store 45(gl_FragColor) 60 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out b/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out new file mode 100644 index 0000000000..ffe785914c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out @@ -0,0 +1,99 @@ +spv.varyingArrayIndirect.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 70 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 19 22 30 31 45 50 56 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "texColor" + Name 13 "texSampler2D" + Name 19 "userIn" + Name 22 "b" + Name 30 "TexCoord" + Name 31 "a" + Name 45 "color" + Name 50 "alpha" + Name 56 "gl_FragColor" + Decorate 13(texSampler2D) DescriptorSet 0 + Decorate 22(b) Flat + Decorate 31(a) Flat + Decorate 56(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 +13(texSampler2D): 12(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 2 + 17: TypeArray 7(fvec4) 16 + 18: TypePointer Input 17 + 19(userIn): 18(ptr) Variable Input + 20: TypeInt 32 1 + 21: TypePointer Input 20(int) + 22(b): 21(ptr) Variable Input + 24: TypePointer Input 7(fvec4) + 27: 15(int) Constant 6 + 28: TypeArray 7(fvec4) 27 + 29: TypePointer Input 28 + 30(TexCoord): 29(ptr) Variable Input + 31(a): 21(ptr) Variable Input + 36: 20(int) Constant 5 + 40: TypeVector 6(float) 2 + 45(color): 24(ptr) Variable Input + 49: TypePointer Input 6(float) + 50(alpha): 49(ptr) Variable Input + 52: 15(int) Constant 3 + 53: TypePointer Function 6(float) + 55: TypePointer Output 7(fvec4) +56(gl_FragColor): 55(ptr) Variable Output + 57: 20(int) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 9(texColor): 8(ptr) Variable Function + 14: 11 Load 13(texSampler2D) + 23: 20(int) Load 22(b) + 25: 24(ptr) AccessChain 19(userIn) 23 + 26: 7(fvec4) Load 25 + 32: 20(int) Load 31(a) + 33: 24(ptr) AccessChain 30(TexCoord) 32 + 34: 7(fvec4) Load 33 + 35: 7(fvec4) FAdd 26 34 + 37: 24(ptr) AccessChain 30(TexCoord) 36 + 38: 7(fvec4) Load 37 + 39: 7(fvec4) FAdd 35 38 + 41: 6(float) CompositeExtract 39 0 + 42: 6(float) CompositeExtract 39 1 + 43: 40(fvec2) CompositeConstruct 41 42 + 44: 7(fvec4) ImageSampleImplicitLod 14 43 + Store 9(texColor) 44 + 46: 7(fvec4) Load 45(color) + 47: 7(fvec4) Load 9(texColor) + 48: 7(fvec4) FAdd 47 46 + Store 9(texColor) 48 + 51: 6(float) Load 50(alpha) + 54: 53(ptr) AccessChain 9(texColor) 52 + Store 54 51 + 58: 24(ptr) AccessChain 30(TexCoord) 57 + 59: 7(fvec4) Load 58 + 60: 20(int) Load 22(b) + 61: 24(ptr) AccessChain 30(TexCoord) 60 + 62: 7(fvec4) Load 61 + 63: 7(fvec4) FAdd 59 62 + 64: 7(fvec4) Load 9(texColor) + 65: 7(fvec4) FAdd 63 64 + 66: 20(int) Load 31(a) + 67: 24(ptr) AccessChain 19(userIn) 66 + 68: 7(fvec4) Load 67 + 69: 7(fvec4) FAdd 65 68 + Store 56(gl_FragColor) 69 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.vecMatConstruct.frag.out b/deps/glslang/glslang/Test/baseResults/spv.vecMatConstruct.frag.out new file mode 100644 index 0000000000..57ecd67ed1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.vecMatConstruct.frag.out @@ -0,0 +1,87 @@ +spv.vecMatConstruct.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 62 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "v2" + Name 13 "m" + Name 19 "v3" + Name 27 "v4" + Name 37 "iv2" + Name 45 "iv3" + Name 54 "iv4" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeVector 6(float) 3 + 11: TypeMatrix 10(fvec3) 4 + 12: TypePointer Function 11 + 18: TypePointer Function 10(fvec3) + 25: TypeVector 6(float) 4 + 26: TypePointer Function 25(fvec4) + 34: TypeInt 32 1 + 35: TypeVector 34(int) 2 + 36: TypePointer Function 35(ivec2) + 43: TypeVector 34(int) 3 + 44: TypePointer Function 43(ivec3) + 52: TypeVector 34(int) 4 + 53: TypePointer Function 52(ivec4) + 4(main): 2 Function None 3 + 5: Label + 9(v2): 8(ptr) Variable Function + 13(m): 12(ptr) Variable Function + 19(v3): 18(ptr) Variable Function + 27(v4): 26(ptr) Variable Function + 37(iv2): 36(ptr) Variable Function + 45(iv3): 44(ptr) Variable Function + 54(iv4): 53(ptr) Variable Function + 14: 11 Load 13(m) + 15: 6(float) CompositeExtract 14 0 0 + 16: 6(float) CompositeExtract 14 0 1 + 17: 7(fvec2) CompositeConstruct 15 16 + Store 9(v2) 17 + 20: 11 Load 13(m) + 21: 6(float) CompositeExtract 20 0 0 + 22: 6(float) CompositeExtract 20 0 1 + 23: 6(float) CompositeExtract 20 0 2 + 24: 10(fvec3) CompositeConstruct 21 22 23 + Store 19(v3) 24 + 28: 11 Load 13(m) + 29: 6(float) CompositeExtract 28 0 0 + 30: 6(float) CompositeExtract 28 0 1 + 31: 6(float) CompositeExtract 28 0 2 + 32: 6(float) CompositeExtract 28 1 0 + 33: 25(fvec4) CompositeConstruct 29 30 31 32 + Store 27(v4) 33 + 38: 11 Load 13(m) + 39: 6(float) CompositeExtract 38 0 0 + 40: 6(float) CompositeExtract 38 0 1 + 41: 7(fvec2) CompositeConstruct 39 40 + 42: 35(ivec2) ConvertFToS 41 + Store 37(iv2) 42 + 46: 11 Load 13(m) + 47: 6(float) CompositeExtract 46 0 0 + 48: 6(float) CompositeExtract 46 0 1 + 49: 6(float) CompositeExtract 46 0 2 + 50: 10(fvec3) CompositeConstruct 47 48 49 + 51: 43(ivec3) ConvertFToS 50 + Store 45(iv3) 51 + 55: 11 Load 13(m) + 56: 6(float) CompositeExtract 55 0 0 + 57: 6(float) CompositeExtract 55 0 1 + 58: 6(float) CompositeExtract 55 0 2 + 59: 6(float) CompositeExtract 55 1 0 + 60: 25(fvec4) CompositeConstruct 56 57 58 59 + 61: 52(ivec4) ConvertFToS 60 + Store 54(iv4) 61 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.tesc.out b/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.tesc.out new file mode 100644 index 0000000000..a9c9ba2542 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.tesc.out @@ -0,0 +1,58 @@ +spv.viewportArray2.tesc +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 25 + + Capability Geometry + Capability Tessellation + Capability MultiViewport + Capability ShaderViewportIndexLayerNV + Capability ShaderViewportMaskNV + Extension "SPV_EXT_shader_viewport_index_layer" + Extension "SPV_NV_viewport_array2" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 14 16 22 24 + ExecutionMode 4 OutputVertices 4 + Source GLSL 450 + SourceExtension "GL_NV_viewport_array2" + Name 4 "main" + Name 10 "gl_PerVertex" + MemberName 10(gl_PerVertex) 0 "gl_ViewportMask" + Name 14 "gl_out" + Name 16 "gl_InvocationID" + Name 22 "gl_ViewportIndex" + Name 24 "gl_Layer" + MemberDecorate 10(gl_PerVertex) 0 BuiltIn ViewportMaskNV + Decorate 10(gl_PerVertex) Block + Decorate 16(gl_InvocationID) BuiltIn InvocationId + Decorate 22(gl_ViewportIndex) BuiltIn ViewportIndex + Decorate 24(gl_Layer) BuiltIn Layer + Decorate 24(gl_Layer) ViewportRelativeNV + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: 7(int) Constant 2 + 9: TypeArray 6(int) 8 +10(gl_PerVertex): TypeStruct 9 + 11: 7(int) Constant 4 + 12: TypeArray 10(gl_PerVertex) 11 + 13: TypePointer Output 12 + 14(gl_out): 13(ptr) Variable Output + 15: TypePointer Input 6(int) +16(gl_InvocationID): 15(ptr) Variable Input + 18: 6(int) Constant 0 + 19: 6(int) Constant 1 + 20: TypePointer Output 6(int) +22(gl_ViewportIndex): 20(ptr) Variable Output + 23: 6(int) Constant 2 + 24(gl_Layer): 20(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 17: 6(int) Load 16(gl_InvocationID) + 21: 20(ptr) AccessChain 14(gl_out) 17 18 18 + Store 21 19 + Store 22(gl_ViewportIndex) 23 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.vert.out b/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.vert.out new file mode 100644 index 0000000000..df116cfce5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.viewportArray2.vert.out @@ -0,0 +1,47 @@ +spv.viewportArray2.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 19 + + Capability Shader + Capability Geometry + Capability MultiViewport + Capability ShaderViewportIndexLayerNV + Capability ShaderViewportMaskNV + Extension "SPV_EXT_shader_viewport_index_layer" + Extension "SPV_NV_viewport_array2" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 11 16 18 + Source GLSL 450 + SourceExtension "GL_ARB_shader_viewport_layer_array" + SourceExtension "GL_NV_viewport_array2" + Name 4 "main" + Name 11 "gl_ViewportMask" + Name 16 "gl_ViewportIndex" + Name 18 "gl_Layer" + Decorate 11(gl_ViewportMask) BuiltIn ViewportMaskNV + Decorate 16(gl_ViewportIndex) BuiltIn ViewportIndex + Decorate 18(gl_Layer) BuiltIn Layer + Decorate 18(gl_Layer) ViewportRelativeNV + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: 7(int) Constant 1 + 9: TypeArray 6(int) 8 + 10: TypePointer Output 9 +11(gl_ViewportMask): 10(ptr) Variable Output + 12: 6(int) Constant 0 + 13: 6(int) Constant 1 + 14: TypePointer Output 6(int) +16(gl_ViewportIndex): 14(ptr) Variable Output + 17: 6(int) Constant 2 + 18(gl_Layer): 14(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 15: 14(ptr) AccessChain 11(gl_ViewportMask) 12 + Store 15 13 + Store 16(gl_ViewportIndex) 17 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out b/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out new file mode 100644 index 0000000000..fbaee8784f --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.voidFunction.frag.out @@ -0,0 +1,72 @@ +spv.voidFunction.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 43 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 24 37 40 42 + ExecutionMode 4 OriginUpperLeft + Source GLSL 400 + Name 4 "main" + Name 6 "foo(" + Name 8 "foo2(" + Name 12 "bar" + Name 22 "outColor" + Name 24 "bigColor" + Name 37 "gl_FragColor" + Name 40 "BaseColor" + Name 42 "d" + Decorate 37(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypePointer Private 10(float) + 12(bar): 11(ptr) Variable Private + 13: 10(float) Constant 1073741824 + 15: 10(float) Constant 1065353216 + 20: TypeVector 10(float) 4 + 21: TypePointer Function 20(fvec4) + 23: TypePointer Input 20(fvec4) + 24(bigColor): 23(ptr) Variable Input + 29: TypeInt 32 0 + 30: 29(int) Constant 0 + 31: TypePointer Function 10(float) + 36: TypePointer Output 20(fvec4) +37(gl_FragColor): 36(ptr) Variable Output + 40(BaseColor): 23(ptr) Variable Input + 41: TypePointer Input 10(float) + 42(d): 41(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 22(outColor): 21(ptr) Variable Function + Store 12(bar) 13 + 25: 20(fvec4) Load 24(bigColor) + Store 22(outColor) 25 + 26: 2 FunctionCall 6(foo() + 27: 2 FunctionCall 8(foo2() + 28: 10(float) Load 12(bar) + 32: 31(ptr) AccessChain 22(outColor) 30 + 33: 10(float) Load 32 + 34: 10(float) FAdd 33 28 + 35: 31(ptr) AccessChain 22(outColor) 30 + Store 35 34 + 38: 20(fvec4) Load 22(outColor) + Store 37(gl_FragColor) 38 + Return + FunctionEnd + 6(foo(): 2 Function None 3 + 7: Label + 14: 10(float) Load 12(bar) + 16: 10(float) FAdd 14 15 + Store 12(bar) 16 + Return + FunctionEnd + 8(foo2(): 2 Function None 3 + 9: Label + 18: 10(float) Load 12(bar) + 19: 10(float) FAdd 18 15 + Store 12(bar) 19 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out new file mode 100644 index 0000000000..9955053d3c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out @@ -0,0 +1,305 @@ +spv.vulkan100.subgroupArithmetic.comp +ERROR: 0:19: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:20: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:21: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:22: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:24: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:25: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:26: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:27: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:29: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:30: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:31: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:32: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:34: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:35: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:36: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:37: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:39: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:40: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:41: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:42: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:44: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:45: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:46: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:47: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:49: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:50: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:51: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:52: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:54: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:55: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:56: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:57: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:59: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:60: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:61: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:62: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:64: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:65: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:66: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:67: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:69: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:70: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:71: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:72: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:74: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:75: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:76: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:77: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:79: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:80: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:81: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:82: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:84: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:85: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:86: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:87: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:89: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:90: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:91: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:92: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:94: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:95: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:96: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:97: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:99: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:100: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:101: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:102: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:104: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:105: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:106: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:107: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:109: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:110: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:111: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:112: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:114: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:115: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:116: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:117: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:119: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:120: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:121: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:122: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:124: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:125: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:126: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:127: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:129: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:130: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:131: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:132: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:134: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:135: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:136: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:137: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:139: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:140: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:141: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:142: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:144: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:145: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:146: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:147: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:149: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:150: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:151: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:152: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:154: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:155: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:156: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:157: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:159: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:160: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:161: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:162: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:164: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:165: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:166: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:167: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:169: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:170: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:171: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:172: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:174: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:175: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:176: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:177: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:179: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:180: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:181: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:182: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:184: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:185: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:186: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:187: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:189: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:190: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:191: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:192: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:194: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:195: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:196: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:197: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:199: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:200: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:201: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:202: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:204: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:205: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:206: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:207: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:209: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:210: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:211: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:212: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:214: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:215: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:216: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:217: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:219: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:220: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:221: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:222: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:224: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:225: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:226: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:227: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:229: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:230: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:231: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:232: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:234: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:235: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:236: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:237: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:239: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:240: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:241: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:242: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:244: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:245: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:246: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:247: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:249: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:250: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:251: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:252: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:254: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:255: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:256: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:257: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:259: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:260: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:261: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:262: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:264: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:265: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:266: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:267: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:269: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:270: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:271: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:272: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:274: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:275: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:276: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:277: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:279: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:280: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:281: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:282: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:284: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:285: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:286: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:287: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:289: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:290: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:291: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:292: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:294: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:295: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:296: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:297: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:299: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:300: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:301: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:302: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:304: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:305: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:306: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:307: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:309: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:310: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:311: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:312: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:314: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:315: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:316: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:317: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:319: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:320: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:321: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:322: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:324: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:325: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:326: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:327: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:329: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:330: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:331: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:332: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:334: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:335: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:336: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:337: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:339: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:340: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:341: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:342: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:344: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:345: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:346: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:347: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:349: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:350: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:351: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:352: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:354: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:355: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:356: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:357: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:359: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:360: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:361: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:362: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:364: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:365: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:366: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:367: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:369: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:370: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:371: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:372: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:374: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:375: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:376: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:377: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:379: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:380: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:381: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:382: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:384: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:385: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:386: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:387: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:389: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:390: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:391: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:392: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 300 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out new file mode 100644 index 0000000000..3116ac1106 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out @@ -0,0 +1,326 @@ +spv.vulkan100.subgroupPartitioned.comp +ERROR: 0:19: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:21: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:22: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:23: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:24: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:26: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:27: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:28: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:29: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:31: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:32: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:33: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:34: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:36: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:37: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:38: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:39: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:41: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:42: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:43: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:44: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:46: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:47: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:48: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:49: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:51: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:52: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:53: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:54: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:56: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:57: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:58: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:59: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:61: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:62: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:63: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:64: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:66: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:67: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:68: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:69: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:71: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:72: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:73: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:74: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:76: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:77: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:78: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:79: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:81: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:82: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:83: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:84: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:86: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:87: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:88: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:89: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:91: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:92: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:93: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:94: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:96: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:97: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:98: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:99: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:101: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:102: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:103: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:104: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:106: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:107: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:108: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:109: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:111: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:112: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:113: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:114: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:116: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:117: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:118: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:119: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:121: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:122: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:123: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:124: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:126: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:127: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:128: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:129: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:131: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:132: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:133: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:134: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:136: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:137: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:138: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:139: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:141: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:142: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:143: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:144: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:146: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:147: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:148: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:149: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:151: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:152: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:153: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:154: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:156: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:157: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:158: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:159: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:161: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:162: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:163: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:164: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:166: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:167: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:168: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:169: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:171: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:172: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:173: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:174: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:176: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:177: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:178: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:179: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:181: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:182: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:183: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:184: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:186: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:187: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:188: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:189: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:191: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:192: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:193: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:194: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:196: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:197: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:198: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:199: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:201: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:202: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:203: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:204: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:206: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:207: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:208: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:209: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:211: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:212: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:213: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:214: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:216: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:217: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:218: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:219: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:221: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:222: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:223: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:224: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:226: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:227: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:228: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:229: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:231: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:232: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:233: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:234: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:236: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:237: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:238: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:239: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:241: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:242: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:243: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:244: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:246: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:247: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:248: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:249: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:251: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:252: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:253: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:254: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:256: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:257: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:258: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:259: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:261: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:262: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:263: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:264: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:266: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:267: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:268: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:269: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:271: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:272: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:273: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:274: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:276: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:277: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:278: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:279: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:281: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:282: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:283: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:284: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:286: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:287: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:288: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:289: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:291: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:292: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:293: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:294: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:296: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:297: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:298: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:299: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:301: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:302: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:303: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:304: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:306: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:307: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:308: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:309: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:311: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:312: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:313: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:314: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:316: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:317: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:318: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:319: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:321: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:322: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:323: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:324: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:326: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:327: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:328: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:329: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:331: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:332: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:333: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:334: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:336: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:337: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:338: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:339: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:341: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:342: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:343: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:344: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:346: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:347: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:348: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:349: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:351: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:352: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:353: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:354: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:356: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:357: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:358: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:359: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:361: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:362: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:363: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:364: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:366: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:367: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:368: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:369: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:371: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:372: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:373: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:374: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:376: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:377: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:378: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:379: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:381: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:382: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:383: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:384: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:386: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:387: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:388: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:389: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:391: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:392: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:393: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:394: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:396: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:397: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:398: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:399: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:401: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:402: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:403: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:404: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:406: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:407: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:408: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:409: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:411: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:412: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:413: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:414: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:416: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:417: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:418: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 0:419: 'subgroup op' : requires SPIR-V 1.3 +ERROR: 321 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/spv.vulkan110.int16.frag.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan110.int16.frag.out new file mode 100644 index 0000000000..b6936f8c0d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.vulkan110.int16.frag.out @@ -0,0 +1,741 @@ +spv.vulkan110.int16.frag +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 523 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability Int16 + Capability Int8 + Capability StorageUniform16 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_KHX_shader_explicit_arithmetic_types" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_float64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int16" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int32" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64" + SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int8" + Name 4 "main" + Name 6 "literal(" + Name 8 "typeCast16(" + Name 10 "operators(" + Name 12 "builtinFuncs(" + Name 16 "i16" + Name 24 "Uniforms" + MemberName 24(Uniforms) 0 "index" + Name 26 "" + Name 33 "indexable" + Name 38 "u16" + Name 46 "indexable" + Name 51 "i32v" + Name 54 "i16v" + Name 59 "u16v" + Name 67 "u32v" + Name 74 "i64v" + Name 80 "u64v" + Name 94 "f16v" + Name 100 "f32v" + Name 106 "f64v" + Name 154 "i8v" + Name 163 "u8v" + Name 176 "bv" + Name 195 "u16v" + Name 200 "i16" + Name 220 "i" + Name 227 "uv" + Name 243 "i64" + Name 281 "b" + Name 343 "i16v" + Name 346 "i16" + Name 356 "u16v" + Name 358 "u16" + Name 428 "i32" + Name 431 "i64" + Name 434 "i16v4" + Name 437 "u32" + Name 438 "u16v2" + Name 442 "u64" + Name 445 "u16v4" + Name 457 "bv" + Name 518 "Block" + MemberName 518(Block) 0 "i16" + MemberName 518(Block) 1 "i16v2" + MemberName 518(Block) 2 "i16v3" + MemberName 518(Block) 3 "i16v4" + MemberName 518(Block) 4 "u16" + MemberName 518(Block) 5 "u16v2" + MemberName 518(Block) 6 "u16v3" + MemberName 518(Block) 7 "u16v4" + Name 520 "block" + Name 521 "si16" + Name 522 "su16" + MemberDecorate 24(Uniforms) 0 Offset 0 + Decorate 24(Uniforms) Block + Decorate 26 DescriptorSet 0 + Decorate 26 Binding 0 + MemberDecorate 518(Block) 0 Offset 0 + MemberDecorate 518(Block) 1 Offset 4 + MemberDecorate 518(Block) 2 Offset 8 + MemberDecorate 518(Block) 3 Offset 16 + MemberDecorate 518(Block) 4 Offset 24 + MemberDecorate 518(Block) 5 Offset 28 + MemberDecorate 518(Block) 6 Offset 32 + MemberDecorate 518(Block) 7 Offset 40 + Decorate 518(Block) Block + Decorate 520(block) DescriptorSet 0 + Decorate 520(block) Binding 1 + Decorate 521(si16) SpecId 100 + Decorate 522(su16) SpecId 101 + 2: TypeVoid + 3: TypeFunction 2 + 14: TypeInt 16 1 + 15: TypePointer Function 14(int16_t) + 17: TypeInt 32 0 + 18: 17(int) Constant 3 + 19: TypeArray 14(int16_t) 18 + 20: 14(int16_t) Constant 4294962927 + 21: 14(int16_t) Constant 4294967295 + 22: 14(int16_t) Constant 16384 + 23: 19 ConstantComposite 20 21 22 + 24(Uniforms): TypeStruct 17(int) + 25: TypePointer Uniform 24(Uniforms) + 26: 25(ptr) Variable Uniform + 27: TypeInt 32 1 + 28: 27(int) Constant 0 + 29: TypePointer Uniform 17(int) + 32: TypePointer Function 19 + 36: TypeInt 16 0 + 37: TypePointer Function 36(int16_t) + 39: TypeArray 36(int16_t) 18 + 40: 36(int16_t) Constant 65535 + 41: 36(int16_t) Constant 32767 + 42: 39 ConstantComposite 40 40 41 + 45: TypePointer Function 39 + 49: TypeVector 27(int) 2 + 50: TypePointer Function 49(ivec2) + 52: TypeVector 14(int16_t) 2 + 53: TypePointer Function 52(i16vec2) + 57: TypeVector 36(int16_t) 2 + 58: TypePointer Function 57(i16vec2) + 61: TypeVector 17(int) 2 + 66: TypePointer Function 61(ivec2) + 71: TypeInt 64 1 + 72: TypeVector 71(int64_t) 2 + 73: TypePointer Function 72(i64vec2) + 77: TypeInt 64 0 + 78: TypeVector 77(int64_t) 2 + 79: TypePointer Function 78(i64vec2) + 91: TypeFloat 16 + 92: TypeVector 91(float16_t) 2 + 93: TypePointer Function 92(f16vec2) + 97: TypeFloat 32 + 98: TypeVector 97(float) 2 + 99: TypePointer Function 98(fvec2) + 103: TypeFloat 64 + 104: TypeVector 103(float64_t) 2 + 105: TypePointer Function 104(f64vec2) + 151: TypeInt 8 1 + 152: TypeVector 151(int8_t) 2 + 153: TypePointer Function 152(i8vec2) + 158: TypeInt 8 0 + 159: TypeVector 158(int8_t) 2 + 162: TypePointer Function 159(i8vec2) + 173: TypeBool + 174: TypeVector 173(bool) 2 + 175: TypePointer Function 174(bvec2) + 178: 14(int16_t) Constant 0 + 179: 14(int16_t) Constant 1 + 180: 52(i16vec2) ConstantComposite 178 178 + 181: 52(i16vec2) ConstantComposite 179 179 + 184: 36(int16_t) Constant 0 + 185: 36(int16_t) Constant 1 + 186: 57(i16vec2) ConstantComposite 184 184 + 187: 57(i16vec2) ConstantComposite 185 185 + 193: TypeVector 36(int16_t) 3 + 194: TypePointer Function 193(i16vec3) + 197: TypeVector 14(int16_t) 3 + 219: TypePointer Function 27(int) + 225: TypeVector 17(int) 3 + 226: TypePointer Function 225(ivec3) + 242: TypePointer Function 71(int64_t) + 264: 17(int) Constant 1 + 270: 17(int) Constant 2 + 276: TypeVector 27(int) 3 + 280: TypePointer Function 173(bool) + 282: 17(int) Constant 0 + 296: TypePointer Function 17(int) + 354: 52(i16vec2) ConstantComposite 21 21 + 363:193(i16vec3) ConstantComposite 184 184 184 + 405: 173(bool) ConstantTrue + 412: 173(bool) ConstantFalse + 413: 174(bvec2) ConstantComposite 412 412 + 425: TypeVector 173(bool) 3 + 426: 425(bvec3) ConstantComposite 412 412 412 + 432: TypeVector 14(int16_t) 4 + 433: TypePointer Function 432(i16vec4) + 441: TypePointer Function 77(int64_t) + 443: TypeVector 36(int16_t) 4 + 444: TypePointer Function 443(i16vec4) + 456: TypePointer Function 425(bvec3) + 518(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) + 519: TypePointer Uniform 518(Block) + 520(block): 519(ptr) Variable Uniform + 521(si16): 14(int16_t) SpecConstant 4294967286 + 522(su16): 36(int16_t) SpecConstant 20 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 16(i16): 15(ptr) Variable Function + 33(indexable): 32(ptr) Variable Function + 38(u16): 37(ptr) Variable Function + 46(indexable): 45(ptr) Variable Function + 30: 29(ptr) AccessChain 26 28 + 31: 17(int) Load 30 + Store 33(indexable) 23 + 34: 15(ptr) AccessChain 33(indexable) 31 + 35: 14(int16_t) Load 34 + Store 16(i16) 35 + 43: 29(ptr) AccessChain 26 28 + 44: 17(int) Load 43 + Store 46(indexable) 42 + 47: 37(ptr) AccessChain 46(indexable) 44 + 48: 36(int16_t) Load 47 + Store 38(u16) 48 + Return + FunctionEnd + 8(typeCast16(): 2 Function None 3 + 9: Label + 51(i32v): 50(ptr) Variable Function + 54(i16v): 53(ptr) Variable Function + 59(u16v): 58(ptr) Variable Function + 67(u32v): 66(ptr) Variable Function + 74(i64v): 73(ptr) Variable Function + 80(u64v): 79(ptr) Variable Function + 94(f16v): 93(ptr) Variable Function + 100(f32v): 99(ptr) Variable Function + 106(f64v): 105(ptr) Variable Function + 154(i8v): 153(ptr) Variable Function + 163(u8v): 162(ptr) Variable Function + 176(bv): 175(ptr) Variable Function + 55: 52(i16vec2) Load 54(i16v) + 56: 49(ivec2) SConvert 55 + Store 51(i32v) 56 + 60: 57(i16vec2) Load 59(u16v) + 62: 61(ivec2) UConvert 60 + 63: 49(ivec2) Bitcast 62 + Store 51(i32v) 63 + 64: 52(i16vec2) Load 54(i16v) + 65: 57(i16vec2) Bitcast 64 + Store 59(u16v) 65 + 68: 52(i16vec2) Load 54(i16v) + 69: 49(ivec2) SConvert 68 + 70: 61(ivec2) Bitcast 69 + Store 67(u32v) 70 + 75: 52(i16vec2) Load 54(i16v) + 76: 72(i64vec2) SConvert 75 + Store 74(i64v) 76 + 81: 52(i16vec2) Load 54(i16v) + 82: 72(i64vec2) SConvert 81 + 83: 78(i64vec2) Bitcast 82 + Store 80(u64v) 83 + 84: 57(i16vec2) Load 59(u16v) + 85: 61(ivec2) UConvert 84 + Store 67(u32v) 85 + 86: 57(i16vec2) Load 59(u16v) + 87: 78(i64vec2) UConvert 86 + 88: 72(i64vec2) Bitcast 87 + Store 74(i64v) 88 + 89: 57(i16vec2) Load 59(u16v) + 90: 78(i64vec2) UConvert 89 + Store 80(u64v) 90 + 95: 52(i16vec2) Load 54(i16v) + 96: 92(f16vec2) ConvertSToF 95 + Store 94(f16v) 96 + 101: 52(i16vec2) Load 54(i16v) + 102: 98(fvec2) ConvertSToF 101 + Store 100(f32v) 102 + 107: 52(i16vec2) Load 54(i16v) + 108:104(f64vec2) ConvertSToF 107 + Store 106(f64v) 108 + 109: 57(i16vec2) Load 59(u16v) + 110: 92(f16vec2) ConvertUToF 109 + Store 94(f16v) 110 + 111: 57(i16vec2) Load 59(u16v) + 112: 98(fvec2) ConvertUToF 111 + Store 100(f32v) 112 + 113: 57(i16vec2) Load 59(u16v) + 114:104(f64vec2) ConvertUToF 113 + Store 106(f64v) 114 + 115: 52(i16vec2) Load 54(i16v) + 116: 49(ivec2) SConvert 115 + Store 51(i32v) 116 + 117: 57(i16vec2) Load 59(u16v) + 118: 61(ivec2) UConvert 117 + 119: 49(ivec2) Bitcast 118 + Store 51(i32v) 119 + 120: 52(i16vec2) Load 54(i16v) + 121: 57(i16vec2) Bitcast 120 + Store 59(u16v) 121 + 122: 52(i16vec2) Load 54(i16v) + 123: 49(ivec2) SConvert 122 + 124: 61(ivec2) Bitcast 123 + Store 67(u32v) 124 + 125: 52(i16vec2) Load 54(i16v) + 126: 72(i64vec2) SConvert 125 + Store 74(i64v) 126 + 127: 52(i16vec2) Load 54(i16v) + 128: 72(i64vec2) SConvert 127 + 129: 78(i64vec2) Bitcast 128 + Store 80(u64v) 129 + 130: 57(i16vec2) Load 59(u16v) + 131: 61(ivec2) UConvert 130 + Store 67(u32v) 131 + 132: 57(i16vec2) Load 59(u16v) + 133: 78(i64vec2) UConvert 132 + 134: 72(i64vec2) Bitcast 133 + Store 74(i64v) 134 + 135: 57(i16vec2) Load 59(u16v) + 136: 78(i64vec2) UConvert 135 + 137: 72(i64vec2) Bitcast 136 + 138: 78(i64vec2) Bitcast 137 + Store 80(u64v) 138 + 139: 52(i16vec2) Load 54(i16v) + 140: 92(f16vec2) ConvertSToF 139 + Store 94(f16v) 140 + 141: 52(i16vec2) Load 54(i16v) + 142: 98(fvec2) ConvertSToF 141 + Store 100(f32v) 142 + 143: 52(i16vec2) Load 54(i16v) + 144:104(f64vec2) ConvertSToF 143 + Store 106(f64v) 144 + 145: 57(i16vec2) Load 59(u16v) + 146: 92(f16vec2) ConvertUToF 145 + Store 94(f16v) 146 + 147: 57(i16vec2) Load 59(u16v) + 148: 98(fvec2) ConvertUToF 147 + Store 100(f32v) 148 + 149: 57(i16vec2) Load 59(u16v) + 150:104(f64vec2) ConvertUToF 149 + Store 106(f64v) 150 + 155: 52(i16vec2) Load 54(i16v) + 156: 152(i8vec2) SConvert 155 + Store 154(i8v) 156 + 157: 57(i16vec2) Load 59(u16v) + 160: 159(i8vec2) UConvert 157 + 161: 152(i8vec2) Bitcast 160 + Store 154(i8v) 161 + 164: 52(i16vec2) Load 54(i16v) + 165: 152(i8vec2) SConvert 164 + 166: 159(i8vec2) Bitcast 165 + Store 163(u8v) 166 + 167: 57(i16vec2) Load 59(u16v) + 168: 159(i8vec2) UConvert 167 + Store 163(u8v) 168 + 169: 57(i16vec2) Load 59(u16v) + 170: 159(i8vec2) UConvert 169 + 171: 57(i16vec2) UConvert 170 + 172: 52(i16vec2) Bitcast 171 + Store 54(i16v) 172 + 177: 174(bvec2) Load 176(bv) + 182: 52(i16vec2) Select 177 181 180 + Store 54(i16v) 182 + 183: 174(bvec2) Load 176(bv) + 188: 57(i16vec2) Select 183 187 186 + Store 59(u16v) 188 + 189: 52(i16vec2) Load 54(i16v) + 190: 174(bvec2) INotEqual 189 186 + Store 176(bv) 190 + 191: 57(i16vec2) Load 59(u16v) + 192: 174(bvec2) INotEqual 191 186 + Store 176(bv) 192 + Return + FunctionEnd + 10(operators(): 2 Function None 3 + 11: Label + 195(u16v): 194(ptr) Variable Function + 200(i16): 15(ptr) Variable Function + 220(i): 219(ptr) Variable Function + 227(uv): 226(ptr) Variable Function + 243(i64): 242(ptr) Variable Function + 281(b): 280(ptr) Variable Function + 196:193(i16vec3) Load 195(u16v) + 198:197(i16vec3) CompositeConstruct 179 179 179 + 199:193(i16vec3) IAdd 196 198 + Store 195(u16v) 199 + 201: 14(int16_t) Load 200(i16) + 202: 14(int16_t) ISub 201 179 + Store 200(i16) 202 + 203: 14(int16_t) Load 200(i16) + 204: 14(int16_t) IAdd 203 179 + Store 200(i16) 204 + 205:193(i16vec3) Load 195(u16v) + 206:197(i16vec3) CompositeConstruct 179 179 179 + 207:193(i16vec3) ISub 205 206 + Store 195(u16v) 207 + 208:193(i16vec3) Load 195(u16v) + 209:193(i16vec3) Not 208 + Store 195(u16v) 209 + 210: 14(int16_t) Load 200(i16) + Store 200(i16) 210 + 211:193(i16vec3) Load 195(u16v) + 212:193(i16vec3) SNegate 211 + Store 195(u16v) 212 + 213: 14(int16_t) Load 200(i16) + 214: 14(int16_t) Load 200(i16) + 215: 14(int16_t) IAdd 214 213 + Store 200(i16) 215 + 216:193(i16vec3) Load 195(u16v) + 217:193(i16vec3) Load 195(u16v) + 218:193(i16vec3) ISub 217 216 + Store 195(u16v) 218 + 221: 14(int16_t) Load 200(i16) + 222: 27(int) SConvert 221 + 223: 27(int) Load 220(i) + 224: 27(int) IMul 223 222 + Store 220(i) 224 + 228:193(i16vec3) Load 195(u16v) + 229: 225(ivec3) UConvert 228 + 230: 225(ivec3) Load 227(uv) + 231: 225(ivec3) UDiv 230 229 + Store 227(uv) 231 + 232: 14(int16_t) Load 200(i16) + 233: 27(int) SConvert 232 + 234: 17(int) Bitcast 233 + 235: 225(ivec3) Load 227(uv) + 236: 225(ivec3) CompositeConstruct 234 234 234 + 237: 225(ivec3) UMod 235 236 + Store 227(uv) 237 + 238:193(i16vec3) Load 195(u16v) + 239: 225(ivec3) UConvert 238 + 240: 225(ivec3) Load 227(uv) + 241: 225(ivec3) IAdd 239 240 + Store 227(uv) 241 + 244: 14(int16_t) Load 200(i16) + 245: 71(int64_t) SConvert 244 + 246: 71(int64_t) Load 243(i64) + 247: 71(int64_t) ISub 245 246 + Store 243(i64) 247 + 248:193(i16vec3) Load 195(u16v) + 249: 225(ivec3) UConvert 248 + 250: 225(ivec3) Load 227(uv) + 251: 225(ivec3) IMul 249 250 + Store 227(uv) 251 + 252: 14(int16_t) Load 200(i16) + 253: 71(int64_t) SConvert 252 + 254: 71(int64_t) Load 243(i64) + 255: 71(int64_t) IMul 253 254 + Store 243(i64) 255 + 256: 14(int16_t) Load 200(i16) + 257: 27(int) SConvert 256 + 258: 27(int) Load 220(i) + 259: 27(int) SMod 257 258 + Store 220(i) 259 + 260: 14(int16_t) Load 200(i16) + 261:193(i16vec3) Load 195(u16v) + 262:197(i16vec3) CompositeConstruct 260 260 260 + 263:193(i16vec3) ShiftLeftLogical 261 262 + Store 195(u16v) 263 + 265: 37(ptr) AccessChain 195(u16v) 264 + 266: 36(int16_t) Load 265 + 267: 14(int16_t) Load 200(i16) + 268: 14(int16_t) ShiftRightArithmetic 267 266 + Store 200(i16) 268 + 269: 14(int16_t) Load 200(i16) + 271: 37(ptr) AccessChain 195(u16v) 270 + 272: 36(int16_t) Load 271 + 273: 14(int16_t) ShiftLeftLogical 269 272 + Store 200(i16) 273 + 274:193(i16vec3) Load 195(u16v) + 275: 27(int) Load 220(i) + 277: 276(ivec3) CompositeConstruct 275 275 275 + 278:193(i16vec3) ShiftLeftLogical 274 277 + 279: 225(ivec3) UConvert 278 + Store 227(uv) 279 + 283: 37(ptr) AccessChain 195(u16v) 282 + 284: 36(int16_t) Load 283 + 285: 14(int16_t) Load 200(i16) + 286: 36(int16_t) Bitcast 285 + 287: 173(bool) INotEqual 284 286 + Store 281(b) 287 + 288: 14(int16_t) Load 200(i16) + 289: 36(int16_t) Bitcast 288 + 290: 37(ptr) AccessChain 195(u16v) 282 + 291: 36(int16_t) Load 290 + 292: 173(bool) IEqual 289 291 + Store 281(b) 292 + 293: 37(ptr) AccessChain 195(u16v) 282 + 294: 36(int16_t) Load 293 + 295: 17(int) UConvert 294 + 297: 296(ptr) AccessChain 227(uv) 264 + 298: 17(int) Load 297 + 299: 173(bool) UGreaterThan 295 298 + Store 281(b) 299 + 300: 14(int16_t) Load 200(i16) + 301: 27(int) SConvert 300 + 302: 27(int) Load 220(i) + 303: 173(bool) SLessThan 301 302 + Store 281(b) 303 + 304: 37(ptr) AccessChain 195(u16v) 264 + 305: 36(int16_t) Load 304 + 306: 17(int) UConvert 305 + 307: 296(ptr) AccessChain 227(uv) 282 + 308: 17(int) Load 307 + 309: 173(bool) UGreaterThanEqual 306 308 + Store 281(b) 309 + 310: 14(int16_t) Load 200(i16) + 311: 27(int) SConvert 310 + 312: 27(int) Load 220(i) + 313: 173(bool) SLessThanEqual 311 312 + Store 281(b) 313 + 314: 14(int16_t) Load 200(i16) + 315: 27(int) SConvert 314 + 316: 17(int) Bitcast 315 + 317: 225(ivec3) Load 227(uv) + 318: 225(ivec3) CompositeConstruct 316 316 316 + 319: 225(ivec3) BitwiseOr 317 318 + Store 227(uv) 319 + 320: 14(int16_t) Load 200(i16) + 321: 27(int) SConvert 320 + 322: 27(int) Load 220(i) + 323: 27(int) BitwiseOr 321 322 + Store 220(i) 323 + 324: 14(int16_t) Load 200(i16) + 325: 71(int64_t) SConvert 324 + 326: 71(int64_t) Load 243(i64) + 327: 71(int64_t) BitwiseAnd 326 325 + Store 243(i64) 327 + 328:193(i16vec3) Load 195(u16v) + 329: 225(ivec3) UConvert 328 + 330: 225(ivec3) Load 227(uv) + 331: 225(ivec3) BitwiseAnd 329 330 + Store 227(uv) 331 + 332: 14(int16_t) Load 200(i16) + 333: 27(int) SConvert 332 + 334: 17(int) Bitcast 333 + 335: 225(ivec3) Load 227(uv) + 336: 225(ivec3) CompositeConstruct 334 334 334 + 337: 225(ivec3) BitwiseXor 335 336 + Store 227(uv) 337 + 338:193(i16vec3) Load 195(u16v) + 339: 14(int16_t) Load 200(i16) + 340: 36(int16_t) Bitcast 339 + 341:193(i16vec3) CompositeConstruct 340 340 340 + 342:193(i16vec3) BitwiseXor 338 341 + Store 195(u16v) 342 + Return + FunctionEnd +12(builtinFuncs(): 2 Function None 3 + 13: Label + 343(i16v): 53(ptr) Variable Function + 346(i16): 15(ptr) Variable Function + 356(u16v): 194(ptr) Variable Function + 358(u16): 37(ptr) Variable Function + 428(i32): 219(ptr) Variable Function + 431(i64): 242(ptr) Variable Function + 434(i16v4): 433(ptr) Variable Function + 437(u32): 296(ptr) Variable Function + 438(u16v2): 58(ptr) Variable Function + 442(u64): 441(ptr) Variable Function + 445(u16v4): 444(ptr) Variable Function + 457(bv): 456(ptr) Variable Function + 344: 52(i16vec2) Load 343(i16v) + 345: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344 + Store 343(i16v) 345 + 347: 14(int16_t) Load 346(i16) + 348: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 347 + Store 346(i16) 348 + 349: 52(i16vec2) Load 343(i16v) + 350: 14(int16_t) Load 346(i16) + 351: 52(i16vec2) CompositeConstruct 350 350 + 352: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351 + Store 343(i16v) 352 + 353: 52(i16vec2) Load 343(i16v) + 355: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354 + Store 343(i16v) 355 + 357:193(i16vec3) Load 356(u16v) + 359: 36(int16_t) Load 358(u16) + 360:193(i16vec3) CompositeConstruct 359 359 359 + 361:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360 + Store 356(u16v) 361 + 362:193(i16vec3) Load 356(u16v) + 364:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363 + Store 356(u16v) 364 + 365: 52(i16vec2) Load 343(i16v) + 366: 14(int16_t) Load 346(i16) + 367: 52(i16vec2) CompositeConstruct 366 366 + 368: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367 + Store 343(i16v) 368 + 369: 52(i16vec2) Load 343(i16v) + 370: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354 + Store 343(i16v) 370 + 371:193(i16vec3) Load 356(u16v) + 372: 36(int16_t) Load 358(u16) + 373:193(i16vec3) CompositeConstruct 372 372 372 + 374:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373 + Store 356(u16v) 374 + 375:193(i16vec3) Load 356(u16v) + 376:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363 + Store 356(u16v) 376 + 377: 52(i16vec2) Load 343(i16v) + 378: 14(int16_t) Load 346(i16) + 379: 14(int16_t) SNegate 378 + 380: 14(int16_t) Load 346(i16) + 381: 52(i16vec2) CompositeConstruct 379 379 + 382: 52(i16vec2) CompositeConstruct 380 380 + 383: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382 + Store 343(i16v) 383 + 384: 52(i16vec2) Load 343(i16v) + 385: 52(i16vec2) Load 343(i16v) + 386: 52(i16vec2) SNegate 385 + 387: 52(i16vec2) Load 343(i16v) + 388: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387 + Store 343(i16v) 388 + 389:193(i16vec3) Load 356(u16v) + 390: 36(int16_t) Load 358(u16) + 391: 36(int16_t) SNegate 390 + 392: 36(int16_t) Load 358(u16) + 393:193(i16vec3) CompositeConstruct 391 391 391 + 394:193(i16vec3) CompositeConstruct 392 392 392 + 395:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394 + Store 356(u16v) 395 + 396:193(i16vec3) Load 356(u16v) + 397:193(i16vec3) Load 356(u16v) + 398:193(i16vec3) SNegate 397 + 399:193(i16vec3) Load 356(u16v) + 400:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399 + Store 356(u16v) 400 + 401: 15(ptr) AccessChain 343(i16v) 282 + 402: 14(int16_t) Load 401 + 403: 15(ptr) AccessChain 343(i16v) 264 + 404: 14(int16_t) Load 403 + 406: 14(int16_t) Select 405 404 402 + Store 346(i16) 406 + 407: 14(int16_t) Load 346(i16) + 408: 52(i16vec2) CompositeConstruct 407 407 + 409: 14(int16_t) Load 346(i16) + 410: 14(int16_t) SNegate 409 + 411: 52(i16vec2) CompositeConstruct 410 410 + 414: 52(i16vec2) Select 413 411 408 + Store 343(i16v) 414 + 415: 37(ptr) AccessChain 356(u16v) 282 + 416: 36(int16_t) Load 415 + 417: 37(ptr) AccessChain 356(u16v) 264 + 418: 36(int16_t) Load 417 + 419: 36(int16_t) Select 405 418 416 + Store 358(u16) 419 + 420: 36(int16_t) Load 358(u16) + 421:193(i16vec3) CompositeConstruct 420 420 420 + 422: 36(int16_t) Load 358(u16) + 423: 36(int16_t) SNegate 422 + 424:193(i16vec3) CompositeConstruct 423 423 423 + 427:193(i16vec3) Select 426 424 421 + Store 356(u16v) 427 + 429: 52(i16vec2) Load 343(i16v) + 430: 27(int) Bitcast 429 + Store 428(i32) 430 + 435:432(i16vec4) Load 434(i16v4) + 436: 71(int64_t) Bitcast 435 + Store 431(i64) 436 + 439: 57(i16vec2) Load 438(u16v2) + 440: 17(int) Bitcast 439 + Store 437(u32) 440 + 446:443(i16vec4) Load 445(u16v4) + 447: 77(int64_t) Bitcast 446 + Store 442(u64) 447 + 448: 27(int) Load 428(i32) + 449: 52(i16vec2) Bitcast 448 + Store 343(i16v) 449 + 450: 71(int64_t) Load 431(i64) + 451:432(i16vec4) Bitcast 450 + Store 434(i16v4) 451 + 452: 17(int) Load 437(u32) + 453: 57(i16vec2) Bitcast 452 + Store 438(u16v2) 453 + 454: 77(int64_t) Load 442(u64) + 455:443(i16vec4) Bitcast 454 + Store 445(u16v4) 455 + 458:193(i16vec3) Load 356(u16v) + 459: 36(int16_t) Load 358(u16) + 460:193(i16vec3) CompositeConstruct 459 459 459 + 461: 425(bvec3) ULessThan 458 460 + Store 457(bv) 461 + 462: 52(i16vec2) Load 343(i16v) + 463: 14(int16_t) Load 346(i16) + 464: 52(i16vec2) CompositeConstruct 463 463 + 465: 174(bvec2) SLessThan 462 464 + 466: 425(bvec3) Load 457(bv) + 467: 425(bvec3) VectorShuffle 466 465 3 4 2 + Store 457(bv) 467 + 468:193(i16vec3) Load 356(u16v) + 469: 36(int16_t) Load 358(u16) + 470:193(i16vec3) CompositeConstruct 469 469 469 + 471: 425(bvec3) ULessThanEqual 468 470 + Store 457(bv) 471 + 472: 52(i16vec2) Load 343(i16v) + 473: 14(int16_t) Load 346(i16) + 474: 52(i16vec2) CompositeConstruct 473 473 + 475: 174(bvec2) SLessThanEqual 472 474 + 476: 425(bvec3) Load 457(bv) + 477: 425(bvec3) VectorShuffle 476 475 3 4 2 + Store 457(bv) 477 + 478:193(i16vec3) Load 356(u16v) + 479: 36(int16_t) Load 358(u16) + 480:193(i16vec3) CompositeConstruct 479 479 479 + 481: 425(bvec3) UGreaterThan 478 480 + Store 457(bv) 481 + 482: 52(i16vec2) Load 343(i16v) + 483: 14(int16_t) Load 346(i16) + 484: 52(i16vec2) CompositeConstruct 483 483 + 485: 174(bvec2) SGreaterThan 482 484 + 486: 425(bvec3) Load 457(bv) + 487: 425(bvec3) VectorShuffle 486 485 3 4 2 + Store 457(bv) 487 + 488:193(i16vec3) Load 356(u16v) + 489: 36(int16_t) Load 358(u16) + 490:193(i16vec3) CompositeConstruct 489 489 489 + 491: 425(bvec3) UGreaterThanEqual 488 490 + Store 457(bv) 491 + 492: 52(i16vec2) Load 343(i16v) + 493: 14(int16_t) Load 346(i16) + 494: 52(i16vec2) CompositeConstruct 493 493 + 495: 174(bvec2) SGreaterThanEqual 492 494 + 496: 425(bvec3) Load 457(bv) + 497: 425(bvec3) VectorShuffle 496 495 3 4 2 + Store 457(bv) 497 + 498:193(i16vec3) Load 356(u16v) + 499: 36(int16_t) Load 358(u16) + 500:193(i16vec3) CompositeConstruct 499 499 499 + 501: 425(bvec3) IEqual 498 500 + Store 457(bv) 501 + 502: 52(i16vec2) Load 343(i16v) + 503: 14(int16_t) Load 346(i16) + 504: 52(i16vec2) CompositeConstruct 503 503 + 505: 174(bvec2) IEqual 502 504 + 506: 425(bvec3) Load 457(bv) + 507: 425(bvec3) VectorShuffle 506 505 3 4 2 + Store 457(bv) 507 + 508:193(i16vec3) Load 356(u16v) + 509: 36(int16_t) Load 358(u16) + 510:193(i16vec3) CompositeConstruct 509 509 509 + 511: 425(bvec3) INotEqual 508 510 + Store 457(bv) 511 + 512: 52(i16vec2) Load 343(i16v) + 513: 14(int16_t) Load 346(i16) + 514: 52(i16vec2) CompositeConstruct 513 513 + 515: 174(bvec2) INotEqual 512 514 + 516: 425(bvec3) Load 457(bv) + 517: 425(bvec3) VectorShuffle 516 515 3 4 2 + Store 457(bv) 517 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/deps/glslang/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out new file mode 100644 index 0000000000..77eafc242e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out @@ -0,0 +1,66 @@ +spv.vulkan110.storageBuffer.vert +// Module Version 10300 +// Generated by (magic number): 80007 +// Id's are bound by 31 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 13 + 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 16 "ub" + MemberName 16(ub) 0 "a" + Name 18 "ubi" + Name 22 "bb" + MemberName 22(bb) 0 "b" + Name 24 "bbi" + 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 + MemberDecorate 16(ub) 0 Offset 0 + Decorate 16(ub) Block + Decorate 18(ubi) DescriptorSet 0 + MemberDecorate 22(bb) 0 Offset 0 + Decorate 22(bb) Block + Decorate 24(bbi) DescriptorSet 0 + 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(ub): TypeStruct 7(fvec4) + 17: TypePointer Uniform 16(ub) + 18(ubi): 17(ptr) Variable Uniform + 19: TypePointer Uniform 7(fvec4) + 22(bb): TypeStruct 7(fvec4) + 23: TypePointer StorageBuffer 22(bb) + 24(bbi): 23(ptr) Variable StorageBuffer + 25: TypePointer StorageBuffer 7(fvec4) + 29: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 20: 19(ptr) AccessChain 18(ubi) 15 + 21: 7(fvec4) Load 20 + 26: 25(ptr) AccessChain 24(bbi) 15 + 27: 7(fvec4) Load 26 + 28: 7(fvec4) FAdd 21 27 + 30: 29(ptr) AccessChain 13 15 + Store 30 28 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.while-continue-break.vert.out b/deps/glslang/glslang/Test/baseResults/spv.while-continue-break.vert.out new file mode 100644 index 0000000000..d49bca09b1 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.while-continue-break.vert.out @@ -0,0 +1,73 @@ +spv.while-continue-break.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 41 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source ESSL 310 + Name 4 "main" + Name 8 "i" + Name 19 "A" + Name 27 "B" + Name 29 "C" + Name 39 "D" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 10 + 17: TypeBool + 20: 6(int) Constant 1 + 22: 6(int) Constant 2 + 31: 6(int) Constant 5 + 40: 6(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 19(A): 7(ptr) Variable Function + 27(B): 7(ptr) Variable Function + 29(C): 7(ptr) Variable Function + 39(D): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + Store 19(A) 20 + 21: 6(int) Load 8(i) + 23: 6(int) SMod 21 22 + 24: 17(bool) IEqual 23 9 + SelectionMerge 26 None + BranchConditional 24 25 26 + 25: Label + Store 27(B) 22 + Branch 13 + 26: Label + 30: 6(int) Load 8(i) + 32: 6(int) SMod 30 31 + 33: 17(bool) IEqual 32 9 + SelectionMerge 35 None + BranchConditional 33 34 35 + 34: Label + Store 27(B) 22 + Branch 12 + 35: Label + 37: 6(int) Load 8(i) + 38: 6(int) IAdd 37 20 + Store 8(i) 38 + Branch 13 + 13: Label + Branch 10 + 12: Label + Store 39(D) 40 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out b/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out new file mode 100644 index 0000000000..b507da3ed0 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.while-simple.vert.out @@ -0,0 +1,42 @@ +spv.while-simple.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 22 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source ESSL 310 + Name 4 "main" + Name 8 "i" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16: 6(int) Constant 10 + 17: TypeBool + 20: 6(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(i) + 18: 17(bool) SLessThan 15 16 + BranchConditional 18 11 12 + 11: Label + 19: 6(int) Load 8(i) + 21: 6(int) IAdd 19 20 + Store 8(i) 21 + Branch 13 + 13: Label + Branch 10 + 12: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out new file mode 100644 index 0000000000..e29497235e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.whileLoop.frag.out @@ -0,0 +1,62 @@ +spv.whileLoop.frag +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 24 28 33 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 24 "d" + Name 28 "bigColor" + Name 33 "gl_FragColor" + Decorate 33(gl_FragColor) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 20: TypePointer Function 6(float) + 23: TypePointer Input 6(float) + 24(d): 23(ptr) Variable Input + 26: TypeBool + 28(bigColor): 10(ptr) Variable Input + 32: TypePointer Output 7(fvec4) +33(gl_FragColor): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + LoopMerge 15 16 None + Branch 17 + 17: Label + 21: 20(ptr) AccessChain 9(color) 19 + 22: 6(float) Load 21 + 25: 6(float) Load 24(d) + 27: 26(bool) FOrdLessThan 22 25 + BranchConditional 27 14 15 + 14: Label + 29: 7(fvec4) Load 28(bigColor) + 30: 7(fvec4) Load 9(color) + 31: 7(fvec4) FAdd 30 29 + Store 9(color) 31 + Branch 16 + 16: Label + Branch 13 + 15: Label + 34: 7(fvec4) Load 9(color) + Store 33(gl_FragColor) 34 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.xfb.vert.out b/deps/glslang/glslang/Test/baseResults/spv.xfb.vert.out new file mode 100644 index 0000000000..3cd93d5001 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.xfb.vert.out @@ -0,0 +1,55 @@ +spv.xfb.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 16 + + Capability Shader + Capability TransformFeedback + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 8 11 14 15 + ExecutionMode 4 Xfb + Source GLSL 450 + Name 4 "main" + Name 8 "out1" + Name 9 "outXfb" + MemberName 9(outXfb) 0 "out2" + Name 11 "" + Name 12 "outXfb2" + MemberName 12(outXfb2) 0 "out3" + Name 14 "" + Name 15 "out4" + Decorate 8(out1) Location 0 + Decorate 8(out1) XfbBuffer 3 + Decorate 8(out1) XfbStride 48 + Decorate 8(out1) Offset 12 + MemberDecorate 9(outXfb) 0 Offset 8 + Decorate 9(outXfb) Block + Decorate 11 Location 1 + Decorate 11 XfbBuffer 2 + Decorate 11 XfbStride 32 + MemberDecorate 12(outXfb2) 0 Offset 60 + Decorate 12(outXfb2) Block + Decorate 14 Location 3 + Decorate 14 XfbBuffer 1 + Decorate 14 XfbStride 64 + Decorate 15(out4) Location 4 + Decorate 15(out4) XfbBuffer 0 + Decorate 15(out4) XfbStride 8 + Decorate 15(out4) Offset 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) + 8(out1): 7(ptr) Variable Output + 9(outXfb): TypeStruct 6(float) + 10: TypePointer Output 9(outXfb) + 11: 10(ptr) Variable Output + 12(outXfb2): TypeStruct 6(float) + 13: TypePointer Output 12(outXfb2) + 14: 13(ptr) Variable Output + 15(out4): 7(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.xfb2.vert.out b/deps/glslang/glslang/Test/baseResults/spv.xfb2.vert.out new file mode 100644 index 0000000000..a8551a1a70 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.xfb2.vert.out @@ -0,0 +1,68 @@ +spv.xfb2.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 35 + + Capability Shader + Capability TransformFeedback + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 14 + ExecutionMode 4 Xfb + Source GLSL 450 + Name 4 "main" + Name 8 "gl_PerVertex" + MemberName 8(gl_PerVertex) 0 "gl_Position" + Name 10 "" + Name 14 "position" + Name 17 "ComponentsBlock" + MemberName 17(ComponentsBlock) 0 "c1" + MemberName 17(ComponentsBlock) 1 "c2" + Name 19 "components" + MemberDecorate 8(gl_PerVertex) 0 Offset 16 + MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position + Decorate 8(gl_PerVertex) Block + Decorate 10 XfbBuffer 3 + Decorate 10 XfbStride 32 + Decorate 14(position) Location 0 + MemberDecorate 17(ComponentsBlock) 0 Offset 0 + MemberDecorate 17(ComponentsBlock) 1 Offset 16 + Decorate 17(ComponentsBlock) Block + Decorate 19(components) DescriptorSet 0 + Decorate 19(components) Binding 5 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(gl_PerVertex): TypeStruct 7(fvec4) + 9: TypePointer Output 8(gl_PerVertex) + 10: 9(ptr) Variable Output + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: TypePointer Input 7(fvec4) + 14(position): 13(ptr) Variable Input + 16: TypeVector 6(float) 2 +17(ComponentsBlock): TypeStruct 7(fvec4) 16(fvec2) + 18: TypePointer Uniform 17(ComponentsBlock) + 19(components): 18(ptr) Variable Uniform + 20: TypePointer Uniform 7(fvec4) + 24: 11(int) Constant 1 + 25: TypePointer Uniform 16(fvec2) + 28: 6(float) Constant 0 + 33: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 15: 7(fvec4) Load 14(position) + 21: 20(ptr) AccessChain 19(components) 12 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FAdd 15 22 + 26: 25(ptr) AccessChain 19(components) 24 + 27: 16(fvec2) Load 26 + 29: 6(float) CompositeExtract 27 0 + 30: 6(float) CompositeExtract 27 1 + 31: 7(fvec4) CompositeConstruct 29 30 28 28 + 32: 7(fvec4) FAdd 23 31 + 34: 33(ptr) AccessChain 10 12 + Store 34 32 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/spv.xfb3.vert.out b/deps/glslang/glslang/Test/baseResults/spv.xfb3.vert.out new file mode 100644 index 0000000000..0218847e3e --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/spv.xfb3.vert.out @@ -0,0 +1,68 @@ +spv.xfb3.vert +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 35 + + Capability Shader + Capability TransformFeedback + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 14 + ExecutionMode 4 Xfb + Source GLSL 450 + Name 4 "main" + Name 8 "gl_PerVertex" + MemberName 8(gl_PerVertex) 0 "gl_Position" + Name 10 "" + Name 14 "position" + Name 17 "ComponentsBlock" + MemberName 17(ComponentsBlock) 0 "c1" + MemberName 17(ComponentsBlock) 1 "c2" + Name 19 "components" + MemberDecorate 8(gl_PerVertex) 0 Offset 16 + MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position + Decorate 8(gl_PerVertex) Block + Decorate 10 XfbBuffer 3 + Decorate 10 XfbStride 80 + Decorate 14(position) Location 0 + MemberDecorate 17(ComponentsBlock) 0 Offset 0 + MemberDecorate 17(ComponentsBlock) 1 Offset 16 + Decorate 17(ComponentsBlock) Block + Decorate 19(components) DescriptorSet 0 + Decorate 19(components) Binding 5 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(gl_PerVertex): TypeStruct 7(fvec4) + 9: TypePointer Output 8(gl_PerVertex) + 10: 9(ptr) Variable Output + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: TypePointer Input 7(fvec4) + 14(position): 13(ptr) Variable Input + 16: TypeVector 6(float) 2 +17(ComponentsBlock): TypeStruct 7(fvec4) 16(fvec2) + 18: TypePointer Uniform 17(ComponentsBlock) + 19(components): 18(ptr) Variable Uniform + 20: TypePointer Uniform 7(fvec4) + 24: 11(int) Constant 1 + 25: TypePointer Uniform 16(fvec2) + 28: 6(float) Constant 0 + 33: TypePointer Output 7(fvec4) + 4(main): 2 Function None 3 + 5: Label + 15: 7(fvec4) Load 14(position) + 21: 20(ptr) AccessChain 19(components) 12 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FAdd 15 22 + 26: 25(ptr) AccessChain 19(components) 24 + 27: 16(fvec2) Load 26 + 29: 6(float) CompositeExtract 27 0 + 30: 6(float) CompositeExtract 27 1 + 31: 7(fvec4) CompositeConstruct 29 30 28 28 + 32: 7(fvec4) FAdd 23 31 + 34: 33(ptr) AccessChain 10 12 + Store 34 32 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/stringToDouble.vert.out b/deps/glslang/glslang/Test/baseResults/stringToDouble.vert.out new file mode 100644 index 0000000000..b4c073cbe5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/stringToDouble.vert.out @@ -0,0 +1,903 @@ +stringToDouble.vert +Shader version: 460 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'w1' ( temp float) +0:5 Constant: +0:5 0.000000 +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'w2' ( temp float) +0:6 Constant: +0:6 1.000000 +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'w3' ( temp float) +0:7 Constant: +0:7 7.000000 +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'w4' ( temp float) +0:8 Constant: +0:8 130000.000000 +0:9 Sequence +0:9 move second child to first child ( temp float) +0:9 'w5' ( temp float) +0:9 Constant: +0:9 123456789.000000 +0:10 Sequence +0:10 move second child to first child ( temp double) +0:10 'w6' ( temp double) +0:10 Constant: +0:10 1.2345678901235e+15 +0:11 Sequence +0:11 move second child to first child ( temp double) +0:11 'w7' ( temp double) +0:11 Constant: +0:11 1.2345678901235e+16 +0:12 Sequence +0:12 move second child to first child ( temp double) +0:12 'w8' ( temp double) +0:12 Constant: +0:12 1.2345678901235e+17 +0:13 Sequence +0:13 move second child to first child ( temp double) +0:13 'w9' ( temp double) +0:13 Constant: +0:13 1.2345678901235e+19 +0:14 Sequence +0:14 move second child to first child ( temp double) +0:14 'w10' ( temp double) +0:14 Constant: +0:14 1.2345678901235e+24 +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'e1' ( temp float) +0:16 Constant: +0:16 0.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'e2' ( temp float) +0:17 Constant: +0:17 1.000000 +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'e3' ( temp float) +0:18 Constant: +0:18 0.000000 +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'e4' ( temp float) +0:19 Constant: +0:19 1.0000000000000e+15 +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'e5' ( temp float) +0:20 Constant: +0:20 1.0000000000000e+16 +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'e6' ( temp float) +0:21 Constant: +0:21 0.000000 +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'e7' ( temp float) +0:22 Constant: +0:22 1.0000000000000e-15 +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'e8' ( temp float) +0:23 Constant: +0:23 1.0000000000000e-16 +0:24 Sequence +0:24 move second child to first child ( temp double) +0:24 'e9' ( temp double) +0:24 Constant: +0:24 1.0000000000000e+100 +0:25 Sequence +0:25 move second child to first child ( temp double) +0:25 'e10' ( temp double) +0:25 Constant: +0:25 1.0000000000000e+308 +0:26 Sequence +0:26 move second child to first child ( temp double) +0:26 'e11' ( temp double) +0:26 Constant: +0:26 1.0000000000000e-307 +0:27 Sequence +0:27 move second child to first child ( temp double) +0:27 'e12' ( temp double) +0:27 Constant: +0:27 +1.#INF +0:28 Sequence +0:28 move second child to first child ( temp double) +0:28 'e13' ( temp double) +0:28 Constant: +0:28 0.000000 +0:29 Sequence +0:29 move second child to first child ( temp double) +0:29 'e24' ( temp double) +0:29 Constant: +0:29 +1.#INF +0:30 Sequence +0:30 move second child to first child ( temp double) +0:30 'e25' ( temp double) +0:30 Constant: +0:30 0.000000 +0:32 Sequence +0:32 move second child to first child ( temp double) +0:32 'f1' ( temp double) +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp double) +0:33 'f2' ( temp double) +0:33 Constant: +0:33 0.125000 +0:34 Sequence +0:34 move second child to first child ( temp double) +0:34 'f31' ( temp double) +0:34 Constant: +0:34 0.100000 +0:35 Sequence +0:35 move second child to first child ( temp double) +0:35 'f32' ( temp double) +0:35 Constant: +0:35 0.200000 +0:36 Sequence +0:36 move second child to first child ( temp double) +0:36 'f33' ( temp double) +0:36 Constant: +0:36 0.300000 +0:37 Sequence +0:37 move second child to first child ( temp double) +0:37 'f34' ( temp double) +0:37 Constant: +0:37 0.400000 +0:38 Sequence +0:38 move second child to first child ( temp double) +0:38 'f35' ( temp double) +0:38 Constant: +0:38 0.500000 +0:39 Sequence +0:39 move second child to first child ( temp double) +0:39 'f36' ( temp double) +0:39 Constant: +0:39 0.600000 +0:40 Sequence +0:40 move second child to first child ( temp double) +0:40 'f37' ( temp double) +0:40 Constant: +0:40 0.700000 +0:41 Sequence +0:41 move second child to first child ( temp double) +0:41 'f38' ( temp double) +0:41 Constant: +0:41 0.800000 +0:42 Sequence +0:42 move second child to first child ( temp double) +0:42 'f39' ( temp double) +0:42 Constant: +0:42 0.900000 +0:43 Sequence +0:43 move second child to first child ( temp double) +0:43 'f4' ( temp double) +0:43 Constant: +0:43 0.333333 +0:44 Sequence +0:44 move second child to first child ( temp double) +0:44 'f51' ( temp double) +0:44 Constant: +0:44 7.8347500000000e-37 +0:45 Sequence +0:45 move second child to first child ( temp double) +0:45 'f52' ( temp double) +0:45 Constant: +0:45 7.8347500000000e-37 +0:46 Sequence +0:46 move second child to first child ( temp double) +0:46 'f53' ( temp double) +0:46 Constant: +0:46 7.8347500000000e-37 +0:47 Sequence +0:47 move second child to first child ( temp double) +0:47 'f54' ( temp double) +0:47 Constant: +0:47 7.8347500000000e-37 +0:48 Sequence +0:48 move second child to first child ( temp double) +0:48 'f61' ( temp double) +0:48 Constant: +0:48 4.000000 +0:49 Sequence +0:49 move second child to first child ( temp double) +0:49 'f62' ( temp double) +0:49 Constant: +0:49 40.000000 +0:50 Sequence +0:50 move second child to first child ( temp double) +0:50 'f63' ( temp double) +0:50 Constant: +0:50 0.000000 +0:51 Sequence +0:51 move second child to first child ( temp double) +0:51 'f64' ( temp double) +0:51 Constant: +0:51 4.000000 +0:52 Sequence +0:52 move second child to first child ( temp double) +0:52 'f65' ( temp double) +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child ( temp double) +0:53 'f66' ( temp double) +0:53 Constant: +0:53 0.004000 +0:54 Sequence +0:54 move second child to first child ( temp double) +0:54 'f67' ( temp double) +0:54 Constant: +0:54 0.400000 +0:55 Sequence +0:55 move second child to first child ( temp double) +0:55 'f68' ( temp double) +0:55 Constant: +0:55 0.040000 +0:57 Sequence +0:57 move second child to first child ( temp double) +0:57 'c1' ( temp double) +0:57 Constant: +0:57 0.000810 +0:58 Sequence +0:58 move second child to first child ( temp double) +0:58 'c2' ( temp double) +0:58 Constant: +0:58 7.300000 +0:59 Sequence +0:59 move second child to first child ( temp double) +0:59 'c3' ( temp double) +0:59 Constant: +0:59 3.450000 +0:60 Sequence +0:60 move second child to first child ( temp double) +0:60 'c4' ( temp double) +0:60 Constant: +0:60 0.003570 +0:61 Sequence +0:61 move second child to first child ( temp double) +0:61 'c5' ( temp double) +0:61 Constant: +0:61 439.000000 +0:62 Sequence +0:62 move second child to first child ( temp double) +0:62 'c6' ( temp double) +0:62 Constant: +0:62 522000.000000 +0:63 Sequence +0:63 move second child to first child ( temp double) +0:63 'c7' ( temp double) +0:63 Constant: +0:63 61000000.000000 +0:64 Sequence +0:64 move second child to first child ( temp double) +0:64 'c8' ( temp double) +0:64 Constant: +0:64 0.610000 +0:65 Sequence +0:65 move second child to first child ( temp double) +0:65 'c9' ( temp double) +0:65 Constant: +0:65 1.2345678901235e+18 +0:66 Sequence +0:66 move second child to first child ( temp double) +0:66 'c10' ( temp double) +0:66 Constant: +0:66 1.0000000000000e+21 +0:67 Sequence +0:67 move second child to first child ( temp double) +0:67 'c11' ( temp double) +0:67 Constant: +0:67 1230000.004560 +0:68 Sequence +0:68 move second child to first child ( temp double) +0:68 'c12' ( temp double) +0:68 Constant: +0:68 1230.000004 +0:69 Sequence +0:69 move second child to first child ( temp double) +0:69 'c13' ( temp double) +0:69 Constant: +0:69 123.000000 +0:70 Sequence +0:70 move second child to first child ( temp double) +0:70 'c14' ( temp double) +0:70 Constant: +0:70 102.300000 +0:71 Sequence +0:71 move second child to first child ( temp double) +0:71 'c15' ( temp double) +0:71 Constant: +0:71 1.2003000000456e+12 +0:72 Sequence +0:72 move second child to first child ( temp double) +0:72 'c16' ( temp double) +0:72 Constant: +0:72 123000000456.000000 +0:73 Sequence +0:73 move second child to first child ( temp double) +0:73 'c17' ( temp double) +0:73 Constant: +0:73 1.2300000045600e+12 +0:74 Sequence +0:74 move second child to first child ( temp double) +0:74 'c18' ( temp double) +0:74 Constant: +0:74 1.2300000045601e+12 +0:76 Sequence +0:76 move second child to first child ( temp double) +0:76 'b11' ( temp double) +0:76 Constant: +0:76 7.2057594037928e+16 +0:77 Sequence +0:77 move second child to first child ( temp double) +0:77 'b12' ( temp double) +0:77 Constant: +0:77 7.2057594037928e+16 +0:78 Sequence +0:78 move second child to first child ( temp double) +0:78 'b13' ( temp double) +0:78 Constant: +0:78 7.2057594037928e+16 +0:79 Sequence +0:79 move second child to first child ( temp double) +0:79 'b14' ( temp double) +0:79 Constant: +0:79 7.2057594037928e+16 +0:80 Sequence +0:80 move second child to first child ( temp double) +0:80 'b15' ( temp double) +0:80 Constant: +0:80 7.2057594037928e+16 +0:81 Sequence +0:81 move second child to first child ( temp double) +0:81 'b21' ( temp double) +0:81 Constant: +0:81 9.2233720368548e+18 +0:82 Sequence +0:82 move second child to first child ( temp double) +0:82 'b22' ( temp double) +0:82 Constant: +0:82 9.2233720368548e+18 +0:83 Sequence +0:83 move second child to first child ( temp double) +0:83 'b23' ( temp double) +0:83 Constant: +0:83 9.2233720368548e+18 +0:84 Sequence +0:84 move second child to first child ( temp double) +0:84 'b24' ( temp double) +0:84 Constant: +0:84 9.2233720368548e+18 +0:85 Sequence +0:85 move second child to first child ( temp double) +0:85 'b25' ( temp double) +0:85 Constant: +0:85 9.2233720368548e+18 +0:86 Sequence +0:86 move second child to first child ( temp double) +0:86 'b31' ( temp double) +0:86 Constant: +0:86 1.0141204801826e+31 +0:87 Sequence +0:87 move second child to first child ( temp double) +0:87 'b32' ( temp double) +0:87 Constant: +0:87 1.0141204801826e+31 +0:88 Sequence +0:88 move second child to first child ( temp double) +0:88 'b33' ( temp double) +0:88 Constant: +0:88 1.0141204801826e+31 +0:89 Sequence +0:89 move second child to first child ( temp double) +0:89 'b34' ( temp double) +0:89 Constant: +0:89 1.0141204801826e+31 +0:90 Sequence +0:90 move second child to first child ( temp double) +0:90 'b35' ( temp double) +0:90 Constant: +0:90 1.0141204801826e+31 +0:91 Sequence +0:91 move second child to first child ( temp double) +0:91 'b41' ( temp double) +0:91 Constant: +0:91 5.7089907708238e+45 +0:92 Sequence +0:92 move second child to first child ( temp double) +0:92 'b42' ( temp double) +0:92 Constant: +0:92 5.7089907708238e+45 +0:93 Sequence +0:93 move second child to first child ( temp double) +0:93 'b43' ( temp double) +0:93 Constant: +0:93 5.7089907708238e+45 +0:94 Sequence +0:94 move second child to first child ( temp double) +0:94 'b44' ( temp double) +0:94 Constant: +0:94 5.7089907708238e+45 +0:95 Sequence +0:95 move second child to first child ( temp double) +0:95 'b45' ( temp double) +0:95 Constant: +0:95 5.7089907708238e+45 +0:97 Sequence +0:97 move second child to first child ( temp double) +0:97 'pi' ( temp double) +0:97 Constant: +0:97 3.141593 +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 460 +0:? Sequence +0:3 Function Definition: main( ( global void) +0:3 Function Parameters: +0:5 Sequence +0:5 Sequence +0:5 move second child to first child ( temp float) +0:5 'w1' ( temp float) +0:5 Constant: +0:5 0.000000 +0:6 Sequence +0:6 move second child to first child ( temp float) +0:6 'w2' ( temp float) +0:6 Constant: +0:6 1.000000 +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'w3' ( temp float) +0:7 Constant: +0:7 7.000000 +0:8 Sequence +0:8 move second child to first child ( temp float) +0:8 'w4' ( temp float) +0:8 Constant: +0:8 130000.000000 +0:9 Sequence +0:9 move second child to first child ( temp float) +0:9 'w5' ( temp float) +0:9 Constant: +0:9 123456789.000000 +0:10 Sequence +0:10 move second child to first child ( temp double) +0:10 'w6' ( temp double) +0:10 Constant: +0:10 1.2345678901235e+15 +0:11 Sequence +0:11 move second child to first child ( temp double) +0:11 'w7' ( temp double) +0:11 Constant: +0:11 1.2345678901235e+16 +0:12 Sequence +0:12 move second child to first child ( temp double) +0:12 'w8' ( temp double) +0:12 Constant: +0:12 1.2345678901235e+17 +0:13 Sequence +0:13 move second child to first child ( temp double) +0:13 'w9' ( temp double) +0:13 Constant: +0:13 1.2345678901235e+19 +0:14 Sequence +0:14 move second child to first child ( temp double) +0:14 'w10' ( temp double) +0:14 Constant: +0:14 1.2345678901235e+24 +0:16 Sequence +0:16 move second child to first child ( temp float) +0:16 'e1' ( temp float) +0:16 Constant: +0:16 0.000000 +0:17 Sequence +0:17 move second child to first child ( temp float) +0:17 'e2' ( temp float) +0:17 Constant: +0:17 1.000000 +0:18 Sequence +0:18 move second child to first child ( temp float) +0:18 'e3' ( temp float) +0:18 Constant: +0:18 0.000000 +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'e4' ( temp float) +0:19 Constant: +0:19 1.0000000000000e+15 +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'e5' ( temp float) +0:20 Constant: +0:20 1.0000000000000e+16 +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'e6' ( temp float) +0:21 Constant: +0:21 0.000000 +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'e7' ( temp float) +0:22 Constant: +0:22 1.0000000000000e-15 +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'e8' ( temp float) +0:23 Constant: +0:23 1.0000000000000e-16 +0:24 Sequence +0:24 move second child to first child ( temp double) +0:24 'e9' ( temp double) +0:24 Constant: +0:24 1.0000000000000e+100 +0:25 Sequence +0:25 move second child to first child ( temp double) +0:25 'e10' ( temp double) +0:25 Constant: +0:25 1.0000000000000e+308 +0:26 Sequence +0:26 move second child to first child ( temp double) +0:26 'e11' ( temp double) +0:26 Constant: +0:26 1.0000000000000e-307 +0:27 Sequence +0:27 move second child to first child ( temp double) +0:27 'e12' ( temp double) +0:27 Constant: +0:27 +1.#INF +0:28 Sequence +0:28 move second child to first child ( temp double) +0:28 'e13' ( temp double) +0:28 Constant: +0:28 0.000000 +0:29 Sequence +0:29 move second child to first child ( temp double) +0:29 'e24' ( temp double) +0:29 Constant: +0:29 +1.#INF +0:30 Sequence +0:30 move second child to first child ( temp double) +0:30 'e25' ( temp double) +0:30 Constant: +0:30 0.000000 +0:32 Sequence +0:32 move second child to first child ( temp double) +0:32 'f1' ( temp double) +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child ( temp double) +0:33 'f2' ( temp double) +0:33 Constant: +0:33 0.125000 +0:34 Sequence +0:34 move second child to first child ( temp double) +0:34 'f31' ( temp double) +0:34 Constant: +0:34 0.100000 +0:35 Sequence +0:35 move second child to first child ( temp double) +0:35 'f32' ( temp double) +0:35 Constant: +0:35 0.200000 +0:36 Sequence +0:36 move second child to first child ( temp double) +0:36 'f33' ( temp double) +0:36 Constant: +0:36 0.300000 +0:37 Sequence +0:37 move second child to first child ( temp double) +0:37 'f34' ( temp double) +0:37 Constant: +0:37 0.400000 +0:38 Sequence +0:38 move second child to first child ( temp double) +0:38 'f35' ( temp double) +0:38 Constant: +0:38 0.500000 +0:39 Sequence +0:39 move second child to first child ( temp double) +0:39 'f36' ( temp double) +0:39 Constant: +0:39 0.600000 +0:40 Sequence +0:40 move second child to first child ( temp double) +0:40 'f37' ( temp double) +0:40 Constant: +0:40 0.700000 +0:41 Sequence +0:41 move second child to first child ( temp double) +0:41 'f38' ( temp double) +0:41 Constant: +0:41 0.800000 +0:42 Sequence +0:42 move second child to first child ( temp double) +0:42 'f39' ( temp double) +0:42 Constant: +0:42 0.900000 +0:43 Sequence +0:43 move second child to first child ( temp double) +0:43 'f4' ( temp double) +0:43 Constant: +0:43 0.333333 +0:44 Sequence +0:44 move second child to first child ( temp double) +0:44 'f51' ( temp double) +0:44 Constant: +0:44 7.8347500000000e-37 +0:45 Sequence +0:45 move second child to first child ( temp double) +0:45 'f52' ( temp double) +0:45 Constant: +0:45 7.8347500000000e-37 +0:46 Sequence +0:46 move second child to first child ( temp double) +0:46 'f53' ( temp double) +0:46 Constant: +0:46 7.8347500000000e-37 +0:47 Sequence +0:47 move second child to first child ( temp double) +0:47 'f54' ( temp double) +0:47 Constant: +0:47 7.8347500000000e-37 +0:48 Sequence +0:48 move second child to first child ( temp double) +0:48 'f61' ( temp double) +0:48 Constant: +0:48 4.000000 +0:49 Sequence +0:49 move second child to first child ( temp double) +0:49 'f62' ( temp double) +0:49 Constant: +0:49 40.000000 +0:50 Sequence +0:50 move second child to first child ( temp double) +0:50 'f63' ( temp double) +0:50 Constant: +0:50 0.000000 +0:51 Sequence +0:51 move second child to first child ( temp double) +0:51 'f64' ( temp double) +0:51 Constant: +0:51 4.000000 +0:52 Sequence +0:52 move second child to first child ( temp double) +0:52 'f65' ( temp double) +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child ( temp double) +0:53 'f66' ( temp double) +0:53 Constant: +0:53 0.004000 +0:54 Sequence +0:54 move second child to first child ( temp double) +0:54 'f67' ( temp double) +0:54 Constant: +0:54 0.400000 +0:55 Sequence +0:55 move second child to first child ( temp double) +0:55 'f68' ( temp double) +0:55 Constant: +0:55 0.040000 +0:57 Sequence +0:57 move second child to first child ( temp double) +0:57 'c1' ( temp double) +0:57 Constant: +0:57 0.000810 +0:58 Sequence +0:58 move second child to first child ( temp double) +0:58 'c2' ( temp double) +0:58 Constant: +0:58 7.300000 +0:59 Sequence +0:59 move second child to first child ( temp double) +0:59 'c3' ( temp double) +0:59 Constant: +0:59 3.450000 +0:60 Sequence +0:60 move second child to first child ( temp double) +0:60 'c4' ( temp double) +0:60 Constant: +0:60 0.003570 +0:61 Sequence +0:61 move second child to first child ( temp double) +0:61 'c5' ( temp double) +0:61 Constant: +0:61 439.000000 +0:62 Sequence +0:62 move second child to first child ( temp double) +0:62 'c6' ( temp double) +0:62 Constant: +0:62 522000.000000 +0:63 Sequence +0:63 move second child to first child ( temp double) +0:63 'c7' ( temp double) +0:63 Constant: +0:63 61000000.000000 +0:64 Sequence +0:64 move second child to first child ( temp double) +0:64 'c8' ( temp double) +0:64 Constant: +0:64 0.610000 +0:65 Sequence +0:65 move second child to first child ( temp double) +0:65 'c9' ( temp double) +0:65 Constant: +0:65 1.2345678901235e+18 +0:66 Sequence +0:66 move second child to first child ( temp double) +0:66 'c10' ( temp double) +0:66 Constant: +0:66 1.0000000000000e+21 +0:67 Sequence +0:67 move second child to first child ( temp double) +0:67 'c11' ( temp double) +0:67 Constant: +0:67 1230000.004560 +0:68 Sequence +0:68 move second child to first child ( temp double) +0:68 'c12' ( temp double) +0:68 Constant: +0:68 1230.000004 +0:69 Sequence +0:69 move second child to first child ( temp double) +0:69 'c13' ( temp double) +0:69 Constant: +0:69 123.000000 +0:70 Sequence +0:70 move second child to first child ( temp double) +0:70 'c14' ( temp double) +0:70 Constant: +0:70 102.300000 +0:71 Sequence +0:71 move second child to first child ( temp double) +0:71 'c15' ( temp double) +0:71 Constant: +0:71 1.2003000000456e+12 +0:72 Sequence +0:72 move second child to first child ( temp double) +0:72 'c16' ( temp double) +0:72 Constant: +0:72 123000000456.000000 +0:73 Sequence +0:73 move second child to first child ( temp double) +0:73 'c17' ( temp double) +0:73 Constant: +0:73 1.2300000045600e+12 +0:74 Sequence +0:74 move second child to first child ( temp double) +0:74 'c18' ( temp double) +0:74 Constant: +0:74 1.2300000045601e+12 +0:76 Sequence +0:76 move second child to first child ( temp double) +0:76 'b11' ( temp double) +0:76 Constant: +0:76 7.2057594037928e+16 +0:77 Sequence +0:77 move second child to first child ( temp double) +0:77 'b12' ( temp double) +0:77 Constant: +0:77 7.2057594037928e+16 +0:78 Sequence +0:78 move second child to first child ( temp double) +0:78 'b13' ( temp double) +0:78 Constant: +0:78 7.2057594037928e+16 +0:79 Sequence +0:79 move second child to first child ( temp double) +0:79 'b14' ( temp double) +0:79 Constant: +0:79 7.2057594037928e+16 +0:80 Sequence +0:80 move second child to first child ( temp double) +0:80 'b15' ( temp double) +0:80 Constant: +0:80 7.2057594037928e+16 +0:81 Sequence +0:81 move second child to first child ( temp double) +0:81 'b21' ( temp double) +0:81 Constant: +0:81 9.2233720368548e+18 +0:82 Sequence +0:82 move second child to first child ( temp double) +0:82 'b22' ( temp double) +0:82 Constant: +0:82 9.2233720368548e+18 +0:83 Sequence +0:83 move second child to first child ( temp double) +0:83 'b23' ( temp double) +0:83 Constant: +0:83 9.2233720368548e+18 +0:84 Sequence +0:84 move second child to first child ( temp double) +0:84 'b24' ( temp double) +0:84 Constant: +0:84 9.2233720368548e+18 +0:85 Sequence +0:85 move second child to first child ( temp double) +0:85 'b25' ( temp double) +0:85 Constant: +0:85 9.2233720368548e+18 +0:86 Sequence +0:86 move second child to first child ( temp double) +0:86 'b31' ( temp double) +0:86 Constant: +0:86 1.0141204801826e+31 +0:87 Sequence +0:87 move second child to first child ( temp double) +0:87 'b32' ( temp double) +0:87 Constant: +0:87 1.0141204801826e+31 +0:88 Sequence +0:88 move second child to first child ( temp double) +0:88 'b33' ( temp double) +0:88 Constant: +0:88 1.0141204801826e+31 +0:89 Sequence +0:89 move second child to first child ( temp double) +0:89 'b34' ( temp double) +0:89 Constant: +0:89 1.0141204801826e+31 +0:90 Sequence +0:90 move second child to first child ( temp double) +0:90 'b35' ( temp double) +0:90 Constant: +0:90 1.0141204801826e+31 +0:91 Sequence +0:91 move second child to first child ( temp double) +0:91 'b41' ( temp double) +0:91 Constant: +0:91 5.7089907708238e+45 +0:92 Sequence +0:92 move second child to first child ( temp double) +0:92 'b42' ( temp double) +0:92 Constant: +0:92 5.7089907708238e+45 +0:93 Sequence +0:93 move second child to first child ( temp double) +0:93 'b43' ( temp double) +0:93 Constant: +0:93 5.7089907708238e+45 +0:94 Sequence +0:94 move second child to first child ( temp double) +0:94 'b44' ( temp double) +0:94 Constant: +0:94 5.7089907708238e+45 +0:95 Sequence +0:95 move second child to first child ( temp double) +0:95 'b45' ( temp double) +0:95 Constant: +0:95 5.7089907708238e+45 +0:97 Sequence +0:97 move second child to first child ( temp double) +0:97 'pi' ( temp double) +0:97 Constant: +0:97 3.141593 +0:? Linker Objects +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out b/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out new file mode 100644 index 0000000000..5bd2ca89a7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/structAssignment.frag.out @@ -0,0 +1,103 @@ +structAssignment.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:29 Function Definition: main( ( global void) +0:29 Function Parameters: +0:? Sequence +0:33 Test condition and select ( temp void) +0:33 Condition +0:33 Compare Greater Than ( temp bool) +0:33 i: direct index for structure ( global int) +0:33 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:33 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 true case +0:34 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 Constant: +0:34 0 (const int) +0:33 false case +0:36 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:36 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:36 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:38 vector-scale ( temp 4-component vector of float) +0:38 f: direct index for structure ( global float) +0:38 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:38 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:38 Constant: +0:38 2 (const int) +0:38 Constant: +0:38 1 (const int) +0:38 texture ( global 4-component vector of float) +0:38 'sampler' ( uniform sampler2D) +0:38 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global float f}) +0:? 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:29 Function Definition: main( ( global void) +0:29 Function Parameters: +0:? Sequence +0:33 Test condition and select ( temp void) +0:33 Condition +0:33 Compare Greater Than ( temp bool) +0:33 i: direct index for structure ( global int) +0:33 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:33 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 true case +0:34 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 s2_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 Constant: +0:34 0 (const int) +0:33 false case +0:36 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:36 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:36 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:38 move second child to first child ( temp 4-component vector of float) +0:38 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:38 vector-scale ( temp 4-component vector of float) +0:38 f: direct index for structure ( global float) +0:38 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:38 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:38 Constant: +0:38 2 (const int) +0:38 Constant: +0:38 1 (const int) +0:38 texture ( global 4-component vector of float) +0:38 'sampler' ( uniform sampler2D) +0:38 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global float f}) +0:? 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'foo3' ( uniform structure{ global structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) + diff --git a/deps/glslang/glslang/Test/baseResults/structDeref.frag.out b/deps/glslang/glslang/Test/baseResults/structDeref.frag.out new file mode 100644 index 0000000000..c3f964c759 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/structDeref.frag.out @@ -0,0 +1,345 @@ +structDeref.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:41 Function Definition: main( ( global void) +0:41 Function Parameters: +0:? Sequence +0:51 Test condition and select ( temp void) +0:51 Condition +0:51 Compare Greater Than ( temp bool) +0:51 i: direct index for structure ( global int) +0:51 direct index ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:51 s2_1: direct index for structure ( global 12-element array of structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:51 'foo3' ( uniform structure{ global 12-element array of structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 9 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 true case +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 f: direct index for structure ( global float) +0:52 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 1.000000 +0:53 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:53 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:53 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:53 Constant: +0:53 2 (const int) +0:53 Constant: +0:53 0 (const int) +0:53 1.000000 +0:53 0 (const int) +0:54 move second child to first child ( temp 6-element array of float) +0:54 'fArray' ( temp 6-element array of float) +0:54 Constant: +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:55 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:55 direct index ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:55 'locals1Array' ( temp 10-element array of structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:55 Constant: +0:55 6 (const int) +0:55 'foo1' ( uniform structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:56 move second child to first child ( temp structure{ global int i}) +0:56 'locals0' ( temp structure{ global int i}) +0:56 Constant: +0:56 0 (const int) +0:57 move second child to first child ( temp structure{ global structure{ global int i} s0_0}) +0:57 'locals00' ( temp structure{ global structure{ global int i} s0_0}) +0:57 Constant: +0:57 0 (const int) +0:51 false case +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 f: direct index for structure ( global float) +0:59 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:59 Constant: +0:59 1 (const int) +0:59 direct index ( temp float) +0:59 'coord' ( smooth in 2-component vector of float) +0:59 Constant: +0:59 0 (const int) +0:60 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:60 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:60 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:60 Constant: +0:60 2 (const int) +0:60 Construct structure ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:60 Constant: +0:60 1 (const int) +0:60 direct index ( temp float) +0:60 'coord' ( smooth in 2-component vector of float) +0:60 Constant: +0:60 1 (const int) +0:60 'foo0' ( uniform structure{ global int i}) +0:61 move second child to first child ( temp 6-element array of float) +0:61 'fArray' ( temp 6-element array of float) +0:61 Constant: +0:61 0.000000 +0:61 1.000000 +0:61 2.000000 +0:61 3.000000 +0:61 4.000000 +0:61 5.000000 +0:62 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 direct index ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 'locals1Array' ( temp 10-element array of structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 Constant: +0:62 6 (const int) +0:62 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:62 Constant: +0:62 2 (const int) +0:63 move second child to first child ( temp structure{ global int i}) +0:63 'locals0' ( temp structure{ global int i}) +0:63 s0_1: direct index for structure ( global structure{ global int i}) +0:63 'foo1' ( uniform structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:63 Constant: +0:63 2 (const int) +0:64 move second child to first child ( temp structure{ global structure{ global int i} s0_0}) +0:64 'locals00' ( temp structure{ global structure{ global int i} s0_0}) +0:64 'foo00' ( uniform structure{ global structure{ global int i} s0_0}) +0:67 Test condition and select ( temp void) +0:67 Condition +0:67 Compare Greater Than ( temp bool) +0:67 i: direct index for structure ( global int) +0:67 'locals0' ( temp structure{ global int i}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 5 (const int) +0:67 true case +0:68 move second child to first child ( temp structure{ global int i}) +0:68 'locals0' ( temp structure{ global int i}) +0:68 s0_0: direct index for structure ( global structure{ global int i}) +0:68 'locals00' ( temp structure{ global structure{ global int i} s0_0}) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child ( temp 4-component vector of float) +0:70 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:70 vector-scale ( temp 4-component vector of float) +0:70 add ( temp float) +0:70 add ( temp float) +0:70 add ( temp float) +0:70 Convert int to float ( temp float) +0:70 i: direct index for structure ( global int) +0:70 'locals0' ( temp structure{ global int i}) +0:70 Constant: +0:70 0 (const int) +0:70 f: direct index for structure ( global float) +0:70 direct index ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:70 'locals1Array' ( temp 10-element array of structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:70 Constant: +0:70 6 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 direct index ( temp float) +0:70 'fArray' ( temp 6-element array of float) +0:70 Constant: +0:70 3 (const int) +0:70 f: direct index for structure ( global float) +0:70 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:70 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:70 Constant: +0:70 2 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 texture ( global 4-component vector of float) +0:70 'sampler' ( uniform sampler2D) +0:70 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo0' ( uniform structure{ global int i}) +0:? 'foo1' ( uniform structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:? 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:? 'foo3' ( uniform structure{ global 12-element array of structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:? 'foo00' ( uniform structure{ global structure{ global int i} s0_0}) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:41 Function Definition: main( ( global void) +0:41 Function Parameters: +0:? Sequence +0:51 Test condition and select ( temp void) +0:51 Condition +0:51 Compare Greater Than ( temp bool) +0:51 i: direct index for structure ( global int) +0:51 direct index ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:51 s2_1: direct index for structure ( global 12-element array of structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:51 'foo3' ( uniform structure{ global 12-element array of structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 9 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 0 (const int) +0:51 true case +0:52 Sequence +0:52 move second child to first child ( temp float) +0:52 f: direct index for structure ( global float) +0:52 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 1.000000 +0:53 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:53 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:53 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:53 Constant: +0:53 2 (const int) +0:53 Constant: +0:53 0 (const int) +0:53 1.000000 +0:53 0 (const int) +0:54 move second child to first child ( temp 6-element array of float) +0:54 'fArray' ( temp 6-element array of float) +0:54 Constant: +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:54 0.000000 +0:55 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:55 direct index ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:55 'locals1Array' ( temp 10-element array of structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:55 Constant: +0:55 6 (const int) +0:55 'foo1' ( uniform structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:56 move second child to first child ( temp structure{ global int i}) +0:56 'locals0' ( temp structure{ global int i}) +0:56 Constant: +0:56 0 (const int) +0:57 move second child to first child ( temp structure{ global structure{ global int i} s0_0}) +0:57 'locals00' ( temp structure{ global structure{ global int i} s0_0}) +0:57 Constant: +0:57 0 (const int) +0:51 false case +0:59 Sequence +0:59 move second child to first child ( temp float) +0:59 f: direct index for structure ( global float) +0:59 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:59 Constant: +0:59 1 (const int) +0:59 direct index ( temp float) +0:59 'coord' ( smooth in 2-component vector of float) +0:59 Constant: +0:59 0 (const int) +0:60 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:60 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:60 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:60 Constant: +0:60 2 (const int) +0:60 Construct structure ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:60 Constant: +0:60 1 (const int) +0:60 direct index ( temp float) +0:60 'coord' ( smooth in 2-component vector of float) +0:60 Constant: +0:60 1 (const int) +0:60 'foo0' ( uniform structure{ global int i}) +0:61 move second child to first child ( temp 6-element array of float) +0:61 'fArray' ( temp 6-element array of float) +0:61 Constant: +0:61 0.000000 +0:61 1.000000 +0:61 2.000000 +0:61 3.000000 +0:61 4.000000 +0:61 5.000000 +0:62 move second child to first child ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 direct index ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 'locals1Array' ( temp 10-element array of structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 Constant: +0:62 6 (const int) +0:62 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:62 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:62 Constant: +0:62 2 (const int) +0:63 move second child to first child ( temp structure{ global int i}) +0:63 'locals0' ( temp structure{ global int i}) +0:63 s0_1: direct index for structure ( global structure{ global int i}) +0:63 'foo1' ( uniform structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:63 Constant: +0:63 2 (const int) +0:64 move second child to first child ( temp structure{ global structure{ global int i} s0_0}) +0:64 'locals00' ( temp structure{ global structure{ global int i} s0_0}) +0:64 'foo00' ( uniform structure{ global structure{ global int i} s0_0}) +0:67 Test condition and select ( temp void) +0:67 Condition +0:67 Compare Greater Than ( temp bool) +0:67 i: direct index for structure ( global int) +0:67 'locals0' ( temp structure{ global int i}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 5 (const int) +0:67 true case +0:68 move second child to first child ( temp structure{ global int i}) +0:68 'locals0' ( temp structure{ global int i}) +0:68 s0_0: direct index for structure ( global structure{ global int i}) +0:68 'locals00' ( temp structure{ global structure{ global int i} s0_0}) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child ( temp 4-component vector of float) +0:70 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:70 vector-scale ( temp 4-component vector of float) +0:70 add ( temp float) +0:70 add ( temp float) +0:70 add ( temp float) +0:70 Convert int to float ( temp float) +0:70 i: direct index for structure ( global int) +0:70 'locals0' ( temp structure{ global int i}) +0:70 Constant: +0:70 0 (const int) +0:70 f: direct index for structure ( global float) +0:70 direct index ( temp structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:70 'locals1Array' ( temp 10-element array of structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:70 Constant: +0:70 6 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 direct index ( temp float) +0:70 'fArray' ( temp 6-element array of float) +0:70 Constant: +0:70 3 (const int) +0:70 f: direct index for structure ( global float) +0:70 s1_1: direct index for structure ( global structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:70 'locals2' ( temp structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:70 Constant: +0:70 2 (const int) +0:70 Constant: +0:70 1 (const int) +0:70 texture ( global 4-component vector of float) +0:70 'sampler' ( uniform sampler2D) +0:70 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo0' ( uniform structure{ global int i}) +0:? 'foo1' ( uniform structure{ global int i, global float f, global structure{ global int i} s0_1}) +0:? 'foo2' ( uniform structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:? 'foo3' ( uniform structure{ global 12-element array of structure{ global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f, global structure{ global int i} s0_1} s1_1}) +0:? 'foo00' ( uniform structure{ global structure{ global int i} s0_0}) + diff --git a/deps/glslang/glslang/Test/baseResults/structure.frag.out b/deps/glslang/glslang/Test/baseResults/structure.frag.out new file mode 100644 index 0000000000..d12dceb4fa --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/structure.frag.out @@ -0,0 +1,165 @@ +structure.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'scale' ( temp float) +0:22 Constant: +0:22 0.000000 +0:24 Test condition and select ( temp void) +0:24 Condition +0:24 Compare Greater Than ( temp bool) +0:24 direct index ( temp int) +0:24 i: direct index for structure ( global 5-element array of int) +0:24 direct index ( temp structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:24 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:24 Constant: +0:24 3 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 4 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 true case +0:25 move second child to first child ( temp float) +0:25 'scale' ( temp float) +0:25 direct index ( temp float) +0:25 direct index ( temp 4-component vector of float) +0:25 color: direct index for structure ( global 5-element array of 4-component vector of float) +0:25 direct index ( temp structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:25 s1_1: direct index for structure ( global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:25 direct index ( temp structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:25 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:25 Constant: +0:25 3 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 3 (const int) +0:25 Constant: +0:25 0 (const int) +0:24 false case +0:27 move second child to first child ( temp float) +0:27 'scale' ( temp float) +0:27 direct index ( temp float) +0:27 f: direct index for structure ( global 4-element array of float) +0:27 direct index ( temp structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:27 s1_1: direct index for structure ( global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:27 direct index ( temp structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:27 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:27 Constant: +0:27 3 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 3 (const int) +0:29 move second child to first child ( temp 4-component vector of float) +0:29 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:29 vector-scale ( temp 4-component vector of float) +0:29 'scale' ( temp float) +0:29 texture ( global 4-component vector of float) +0:29 'sampler' ( uniform sampler2D) +0:29 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:? 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:20 Function Definition: main( ( global void) +0:20 Function Parameters: +0:22 Sequence +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'scale' ( temp float) +0:22 Constant: +0:22 0.000000 +0:24 Test condition and select ( temp void) +0:24 Condition +0:24 Compare Greater Than ( temp bool) +0:24 direct index ( temp int) +0:24 i: direct index for structure ( global 5-element array of int) +0:24 direct index ( temp structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:24 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:24 Constant: +0:24 3 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 Constant: +0:24 4 (const int) +0:24 Constant: +0:24 0 (const int) +0:24 true case +0:25 move second child to first child ( temp float) +0:25 'scale' ( temp float) +0:25 direct index ( temp float) +0:25 direct index ( temp 4-component vector of float) +0:25 color: direct index for structure ( global 5-element array of 4-component vector of float) +0:25 direct index ( temp structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:25 s1_1: direct index for structure ( global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:25 direct index ( temp structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:25 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:25 Constant: +0:25 3 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 3 (const int) +0:25 Constant: +0:25 0 (const int) +0:24 false case +0:27 move second child to first child ( temp float) +0:27 'scale' ( temp float) +0:27 direct index ( temp float) +0:27 f: direct index for structure ( global 4-element array of float) +0:27 direct index ( temp structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:27 s1_1: direct index for structure ( global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:27 direct index ( temp structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:27 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) +0:27 Constant: +0:27 3 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 2 (const int) +0:27 Constant: +0:27 1 (const int) +0:27 Constant: +0:27 3 (const int) +0:29 move second child to first child ( temp 4-component vector of float) +0:29 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:29 vector-scale ( temp 4-component vector of float) +0:29 'scale' ( temp float) +0:29 texture ( global 4-component vector of float) +0:29 'sampler' ( uniform sampler2D) +0:29 'coord' ( smooth in 2-component vector of float) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color}) +0:? 'foo2' ( uniform 5-element array of structure{ global 5-element array of int i, global float f, global 7-element array of structure{ global int i, global 4-element array of float f, global 5-element array of 4-component vector of float color} s1_1}) + diff --git a/deps/glslang/glslang/Test/baseResults/switch.frag.out b/deps/glslang/glslang/Test/baseResults/switch.frag.out new file mode 100644 index 0000000000..9649c9bb73 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/switch.frag.out @@ -0,0 +1,691 @@ +switch.frag +ERROR: 0:11: 'switch' : condition must be a scalar integer expression +ERROR: 0:14: 'switch' : condition must be a scalar integer expression +ERROR: 0:21: 'switch' : last case/default label not followed by statements +ERROR: 0:28: 'switch' : cannot have statements before first case/default label +ERROR: 0:43: 'default' : duplicate label +ERROR: 0:63: 'case' : duplicated value +ERROR: 0:65: 'case' : scalar integer expression required +ERROR: 0:67: 'case' : constant expression required +ERROR: 0:89: '' : break statement only allowed in switch and loops +ERROR: 0:99: 'case' : cannot be nested inside control flow +ERROR: 0:104: 'case' : cannot be nested inside control flow +ERROR: 0:108: 'case' : cannot be nested inside control flow +ERROR: 0:115: 'default' : cannot be nested inside control flow +ERROR: 0:119: 'case' : cannot appear outside switch statement +ERROR: 0:120: 'default' : cannot appear outside switch statement +ERROR: 0:126: 'onlyInSwitch' : undeclared identifier +ERROR: 0:128: 'switch' : last case/default label not followed by statements +ERROR: 0:140: 'nestedX' : undeclared identifier +ERROR: 0:157: 'nestedZ' : undeclared identifier +ERROR: 19 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:? Sequence +0:11 'f' ( temp highp float) +0:14 'a' ( temp 2-element array of mediump int) +0:17 'c' ( uniform mediump int) +0:21 switch +0:21 condition +0:21 'c' ( uniform mediump int) +0:21 body +0:21 Sequence +0:23 case: with expression +0:23 Constant: +0:23 2 (const int) +0:21 Sequence +0:21 Branch: Break +0:26 switch +0:26 condition +0:26 'c' ( uniform mediump int) +0:26 body +0:26 Sequence +0:28 Sequence +0:28 move second child to first child ( temp highp float) +0:28 'f' ( temp highp float) +0:28 sine ( global highp float) +0:28 'x' ( smooth in highp float) +0:29 case: with expression +0:29 Constant: +0:29 2 (const int) +0:? Sequence +0:30 move second child to first child ( temp highp float) +0:30 'f' ( temp highp float) +0:30 cosine ( global highp float) +0:30 'x' ( smooth in highp float) +0:31 Branch: Break +0:34 switch +0:34 condition +0:34 'c' ( uniform mediump int) +0:34 body +0:34 Sequence +0:35 default: +0:? Sequence +0:36 Branch: Break +0:37 case: with expression +0:37 Constant: +0:37 1 (const int) +0:? Sequence +0:38 move second child to first child ( temp highp float) +0:38 'f' ( temp highp float) +0:38 sine ( global highp float) +0:38 'x' ( smooth in highp float) +0:39 Branch: Break +0:40 case: with expression +0:40 Constant: +0:40 2 (const int) +0:? Sequence +0:41 move second child to first child ( temp highp float) +0:41 'f' ( temp highp float) +0:41 cosine ( global highp float) +0:41 'x' ( smooth in highp float) +0:42 Branch: Break +0:43 default: +0:? Sequence +0:44 move second child to first child ( temp highp float) +0:44 'f' ( temp highp float) +0:44 tangent ( global highp float) +0:44 'x' ( smooth in highp float) +0:47 switch +0:47 condition +0:47 'c' ( uniform mediump int) +0:47 body +0:47 Sequence +0:48 case: with expression +0:48 Constant: +0:48 1 (const int) +0:? Sequence +0:49 move second child to first child ( temp highp float) +0:49 'f' ( temp highp float) +0:49 sine ( global highp float) +0:49 'x' ( smooth in highp float) +0:50 Branch: Break +0:51 case: with expression +0:51 Constant: +0:51 2 (const int) +0:? Sequence +0:52 switch +0:52 condition +0:52 'd' ( uniform mediump int) +0:52 body +0:52 Sequence +0:53 case: with expression +0:53 Constant: +0:53 1 (const int) +0:? Sequence +0:54 move second child to first child ( temp highp float) +0:54 'f' ( temp highp float) +0:54 component-wise multiply ( temp highp float) +0:54 component-wise multiply ( temp highp float) +0:54 'x' ( smooth in highp float) +0:54 'x' ( smooth in highp float) +0:54 'x' ( smooth in highp float) +0:55 Branch: Break +0:56 case: with expression +0:56 Constant: +0:56 2 (const int) +0:? Sequence +0:57 move second child to first child ( temp highp float) +0:57 'f' ( temp highp float) +0:57 component-wise multiply ( temp highp float) +0:57 'x' ( smooth in highp float) +0:57 'x' ( smooth in highp float) +0:58 Branch: Break +0:60 Branch: Break +0:61 default: +0:? Sequence +0:62 move second child to first child ( temp highp float) +0:62 'f' ( temp highp float) +0:62 tangent ( global highp float) +0:62 'x' ( smooth in highp float) +0:63 case: with expression +0:63 Constant: +0:63 1 (const int) +0:? Sequence +0:64 Branch: Break +0:65 case: with expression +0:65 Constant: +0:65 3.800000 +0:? Sequence +0:66 Branch: Break +0:67 case: with expression +0:67 'c' ( uniform mediump int) +0:? Sequence +0:68 Branch: Break +0:71 switch +0:71 condition +0:71 'c' ( uniform mediump int) +0:71 body +0:71 Sequence +0:72 case: with expression +0:72 Constant: +0:72 1 (const int) +0:? Sequence +0:73 move second child to first child ( temp highp float) +0:73 'f' ( temp highp float) +0:73 sine ( global highp float) +0:73 'x' ( smooth in highp float) +0:74 Branch: Break +0:75 case: with expression +0:75 Constant: +0:75 2 (const int) +0:? Sequence +0:76 switch +0:76 condition +0:76 'd' ( uniform mediump int) +0:76 body +0:76 Sequence +0:77 case: with expression +0:77 Constant: +0:77 1 (const int) +0:? Sequence +0:78 move second child to first child ( temp highp float) +0:78 'f' ( temp highp float) +0:78 component-wise multiply ( temp highp float) +0:78 component-wise multiply ( temp highp float) +0:78 'x' ( smooth in highp float) +0:78 'x' ( smooth in highp float) +0:78 'x' ( smooth in highp float) +0:79 Branch: Break +0:80 case: with expression +0:80 Constant: +0:80 2 (const int) +0:? Sequence +0:81 move second child to first child ( temp highp float) +0:81 'f' ( temp highp float) +0:81 component-wise multiply ( temp highp float) +0:81 'x' ( smooth in highp float) +0:81 'x' ( smooth in highp float) +0:82 Branch: Break +0:84 Branch: Break +0:85 default: +0:? Sequence +0:86 move second child to first child ( temp highp float) +0:86 'f' ( temp highp float) +0:86 tangent ( global highp float) +0:86 'x' ( smooth in highp float) +0:89 Branch: Break +0:91 switch +0:91 condition +0:91 'c' ( uniform mediump int) +0:91 body +0:91 Sequence +0:92 case: with expression +0:92 Constant: +0:92 1 (const int) +0:? Sequence +0:93 move second child to first child ( temp highp float) +0:93 'f' ( temp highp float) +0:93 sine ( global highp float) +0:93 'x' ( smooth in highp float) +0:94 Branch: Break +0:95 case: with expression +0:95 Constant: +0:95 2 (const int) +0:? Sequence +0:96 switch +0:96 condition +0:96 'd' ( uniform mediump int) +0:96 body +0:96 Sequence +0:97 case: with expression +0:97 Constant: +0:97 1 (const int) +0:? Sequence +0:? Sequence +0:100 Branch: Break +0:102 move second child to first child ( temp highp float) +0:102 'f' ( temp highp float) +0:102 component-wise multiply ( temp highp float) +0:102 component-wise multiply ( temp highp float) +0:102 'x' ( smooth in highp float) +0:102 'x' ( smooth in highp float) +0:102 'x' ( smooth in highp float) +0:103 Test condition and select ( temp void) +0:103 Condition +0:103 Compare Less Than ( temp bool) +0:103 'c' ( uniform mediump int) +0:103 'd' ( uniform mediump int) +0:103 true case +0:? Sequence +0:105 move second child to first child ( temp highp float) +0:105 'f' ( temp highp float) +0:105 component-wise multiply ( temp highp float) +0:105 'x' ( smooth in highp float) +0:105 'x' ( smooth in highp float) +0:107 Test condition and select ( temp void) +0:107 Condition +0:107 Compare Less Than ( temp bool) +0:107 'd' ( uniform mediump int) +0:107 'c' ( uniform mediump int) +0:107 true case is null +0:109 Branch: Break +0:111 Branch: Break +0:112 case: with expression +0:112 Constant: +0:112 4 (const int) +0:? Sequence +0:113 move second child to first child ( temp highp float) +0:113 'f' ( temp highp float) +0:113 tangent ( global highp float) +0:113 'x' ( smooth in highp float) +0:114 Test condition and select ( temp void) +0:114 Condition +0:114 Compare Less Than ( temp bool) +0:114 'f' ( temp highp float) +0:114 Constant: +0:114 0.000000 +0:114 true case is null +0:116 Branch: Break +0:122 switch +0:122 condition +0:122 Constant: +0:122 0 (const int) +0:122 body +0:122 Sequence +0:123 default: +0:? Sequence +0:124 Sequence +0:124 move second child to first child ( temp mediump int) +0:124 'onlyInSwitch' ( temp mediump int) +0:124 Constant: +0:124 0 (const int) +0:126 'onlyInSwitch' ( temp float) +0:128 switch +0:128 condition +0:128 Constant: +0:128 0 (const int) +0:128 body +0:128 Sequence +0:129 default: +0:128 Sequence +0:128 Branch: Break +0:133 switch +0:133 condition +0:133 'c' ( uniform mediump int) +0:133 body +0:133 Sequence +0:134 case: with expression +0:134 Constant: +0:134 1 (const int) +0:? Sequence +0:? Sequence +0:137 Branch: Break +0:139 case: with expression +0:139 Constant: +0:139 2 (const int) +0:? Sequence +0:140 'nestedX' ( temp float) +0:143 Branch: Break +0:144 case: with expression +0:144 Constant: +0:144 3 (const int) +0:? Sequence +0:146 Branch: Break +0:147 Branch: Break +0:148 case: with expression +0:148 Constant: +0:148 4 (const int) +0:? Sequence +0:149 Sequence +0:149 move second child to first child ( temp mediump int) +0:149 'linearY' ( temp mediump int) +0:149 'linearZ' ( temp mediump int) +0:150 Branch: Break +0:151 case: with expression +0:151 Constant: +0:151 5 (const int) +0:? Sequence +0:153 Branch: Break +0:154 case: with expression +0:154 Constant: +0:154 6 (const int) +0:? Sequence +0:155 Constant: +0:155 4 (const int) +0:157 'nestedZ' ( temp float) +0:? Linker Objects +0:? 'c' ( uniform mediump int) +0:? 'd' ( uniform mediump int) +0:? 'x' ( smooth in highp float) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:6 Function Definition: main( ( global void) +0:6 Function Parameters: +0:? Sequence +0:11 'f' ( temp highp float) +0:14 'a' ( temp 2-element array of mediump int) +0:17 'c' ( uniform mediump int) +0:21 switch +0:21 condition +0:21 'c' ( uniform mediump int) +0:21 body +0:21 Sequence +0:23 case: with expression +0:23 Constant: +0:23 2 (const int) +0:21 Sequence +0:21 Branch: Break +0:26 switch +0:26 condition +0:26 'c' ( uniform mediump int) +0:26 body +0:26 Sequence +0:28 Sequence +0:28 move second child to first child ( temp highp float) +0:28 'f' ( temp highp float) +0:28 sine ( global highp float) +0:28 'x' ( smooth in highp float) +0:29 case: with expression +0:29 Constant: +0:29 2 (const int) +0:? Sequence +0:30 move second child to first child ( temp highp float) +0:30 'f' ( temp highp float) +0:30 cosine ( global highp float) +0:30 'x' ( smooth in highp float) +0:31 Branch: Break +0:34 switch +0:34 condition +0:34 'c' ( uniform mediump int) +0:34 body +0:34 Sequence +0:35 default: +0:? Sequence +0:36 Branch: Break +0:37 case: with expression +0:37 Constant: +0:37 1 (const int) +0:? Sequence +0:38 move second child to first child ( temp highp float) +0:38 'f' ( temp highp float) +0:38 sine ( global highp float) +0:38 'x' ( smooth in highp float) +0:39 Branch: Break +0:40 case: with expression +0:40 Constant: +0:40 2 (const int) +0:? Sequence +0:41 move second child to first child ( temp highp float) +0:41 'f' ( temp highp float) +0:41 cosine ( global highp float) +0:41 'x' ( smooth in highp float) +0:42 Branch: Break +0:43 default: +0:? Sequence +0:44 move second child to first child ( temp highp float) +0:44 'f' ( temp highp float) +0:44 tangent ( global highp float) +0:44 'x' ( smooth in highp float) +0:47 switch +0:47 condition +0:47 'c' ( uniform mediump int) +0:47 body +0:47 Sequence +0:48 case: with expression +0:48 Constant: +0:48 1 (const int) +0:? Sequence +0:49 move second child to first child ( temp highp float) +0:49 'f' ( temp highp float) +0:49 sine ( global highp float) +0:49 'x' ( smooth in highp float) +0:50 Branch: Break +0:51 case: with expression +0:51 Constant: +0:51 2 (const int) +0:? Sequence +0:52 switch +0:52 condition +0:52 'd' ( uniform mediump int) +0:52 body +0:52 Sequence +0:53 case: with expression +0:53 Constant: +0:53 1 (const int) +0:? Sequence +0:54 move second child to first child ( temp highp float) +0:54 'f' ( temp highp float) +0:54 component-wise multiply ( temp highp float) +0:54 component-wise multiply ( temp highp float) +0:54 'x' ( smooth in highp float) +0:54 'x' ( smooth in highp float) +0:54 'x' ( smooth in highp float) +0:55 Branch: Break +0:56 case: with expression +0:56 Constant: +0:56 2 (const int) +0:? Sequence +0:57 move second child to first child ( temp highp float) +0:57 'f' ( temp highp float) +0:57 component-wise multiply ( temp highp float) +0:57 'x' ( smooth in highp float) +0:57 'x' ( smooth in highp float) +0:58 Branch: Break +0:60 Branch: Break +0:61 default: +0:? Sequence +0:62 move second child to first child ( temp highp float) +0:62 'f' ( temp highp float) +0:62 tangent ( global highp float) +0:62 'x' ( smooth in highp float) +0:63 case: with expression +0:63 Constant: +0:63 1 (const int) +0:? Sequence +0:64 Branch: Break +0:65 case: with expression +0:65 Constant: +0:65 3.800000 +0:? Sequence +0:66 Branch: Break +0:67 case: with expression +0:67 'c' ( uniform mediump int) +0:? Sequence +0:68 Branch: Break +0:71 switch +0:71 condition +0:71 'c' ( uniform mediump int) +0:71 body +0:71 Sequence +0:72 case: with expression +0:72 Constant: +0:72 1 (const int) +0:? Sequence +0:73 move second child to first child ( temp highp float) +0:73 'f' ( temp highp float) +0:73 sine ( global highp float) +0:73 'x' ( smooth in highp float) +0:74 Branch: Break +0:75 case: with expression +0:75 Constant: +0:75 2 (const int) +0:? Sequence +0:76 switch +0:76 condition +0:76 'd' ( uniform mediump int) +0:76 body +0:76 Sequence +0:77 case: with expression +0:77 Constant: +0:77 1 (const int) +0:? Sequence +0:78 move second child to first child ( temp highp float) +0:78 'f' ( temp highp float) +0:78 component-wise multiply ( temp highp float) +0:78 component-wise multiply ( temp highp float) +0:78 'x' ( smooth in highp float) +0:78 'x' ( smooth in highp float) +0:78 'x' ( smooth in highp float) +0:79 Branch: Break +0:80 case: with expression +0:80 Constant: +0:80 2 (const int) +0:? Sequence +0:81 move second child to first child ( temp highp float) +0:81 'f' ( temp highp float) +0:81 component-wise multiply ( temp highp float) +0:81 'x' ( smooth in highp float) +0:81 'x' ( smooth in highp float) +0:82 Branch: Break +0:84 Branch: Break +0:85 default: +0:? Sequence +0:86 move second child to first child ( temp highp float) +0:86 'f' ( temp highp float) +0:86 tangent ( global highp float) +0:86 'x' ( smooth in highp float) +0:89 Branch: Break +0:91 switch +0:91 condition +0:91 'c' ( uniform mediump int) +0:91 body +0:91 Sequence +0:92 case: with expression +0:92 Constant: +0:92 1 (const int) +0:? Sequence +0:93 move second child to first child ( temp highp float) +0:93 'f' ( temp highp float) +0:93 sine ( global highp float) +0:93 'x' ( smooth in highp float) +0:94 Branch: Break +0:95 case: with expression +0:95 Constant: +0:95 2 (const int) +0:? Sequence +0:96 switch +0:96 condition +0:96 'd' ( uniform mediump int) +0:96 body +0:96 Sequence +0:97 case: with expression +0:97 Constant: +0:97 1 (const int) +0:? Sequence +0:? Sequence +0:100 Branch: Break +0:102 move second child to first child ( temp highp float) +0:102 'f' ( temp highp float) +0:102 component-wise multiply ( temp highp float) +0:102 component-wise multiply ( temp highp float) +0:102 'x' ( smooth in highp float) +0:102 'x' ( smooth in highp float) +0:102 'x' ( smooth in highp float) +0:103 Test condition and select ( temp void) +0:103 Condition +0:103 Compare Less Than ( temp bool) +0:103 'c' ( uniform mediump int) +0:103 'd' ( uniform mediump int) +0:103 true case +0:? Sequence +0:105 move second child to first child ( temp highp float) +0:105 'f' ( temp highp float) +0:105 component-wise multiply ( temp highp float) +0:105 'x' ( smooth in highp float) +0:105 'x' ( smooth in highp float) +0:107 Test condition and select ( temp void) +0:107 Condition +0:107 Compare Less Than ( temp bool) +0:107 'd' ( uniform mediump int) +0:107 'c' ( uniform mediump int) +0:107 true case is null +0:109 Branch: Break +0:111 Branch: Break +0:112 case: with expression +0:112 Constant: +0:112 4 (const int) +0:? Sequence +0:113 move second child to first child ( temp highp float) +0:113 'f' ( temp highp float) +0:113 tangent ( global highp float) +0:113 'x' ( smooth in highp float) +0:114 Test condition and select ( temp void) +0:114 Condition +0:114 Compare Less Than ( temp bool) +0:114 'f' ( temp highp float) +0:114 Constant: +0:114 0.000000 +0:114 true case is null +0:116 Branch: Break +0:122 switch +0:122 condition +0:122 Constant: +0:122 0 (const int) +0:122 body +0:122 Sequence +0:123 default: +0:? Sequence +0:124 Sequence +0:124 move second child to first child ( temp mediump int) +0:124 'onlyInSwitch' ( temp mediump int) +0:124 Constant: +0:124 0 (const int) +0:126 'onlyInSwitch' ( temp float) +0:128 switch +0:128 condition +0:128 Constant: +0:128 0 (const int) +0:128 body +0:128 Sequence +0:129 default: +0:128 Sequence +0:128 Branch: Break +0:133 switch +0:133 condition +0:133 'c' ( uniform mediump int) +0:133 body +0:133 Sequence +0:134 case: with expression +0:134 Constant: +0:134 1 (const int) +0:? Sequence +0:? Sequence +0:137 Branch: Break +0:139 case: with expression +0:139 Constant: +0:139 2 (const int) +0:? Sequence +0:140 'nestedX' ( temp float) +0:143 Branch: Break +0:144 case: with expression +0:144 Constant: +0:144 3 (const int) +0:? Sequence +0:146 Branch: Break +0:147 Branch: Break +0:148 case: with expression +0:148 Constant: +0:148 4 (const int) +0:? Sequence +0:149 Sequence +0:149 move second child to first child ( temp mediump int) +0:149 'linearY' ( temp mediump int) +0:149 'linearZ' ( temp mediump int) +0:150 Branch: Break +0:151 case: with expression +0:151 Constant: +0:151 5 (const int) +0:? Sequence +0:153 Branch: Break +0:154 case: with expression +0:154 Constant: +0:154 6 (const int) +0:? Sequence +0:155 Constant: +0:155 4 (const int) +0:157 'nestedZ' ( temp float) +0:? Linker Objects +0:? 'c' ( uniform mediump int) +0:? 'd' ( uniform mediump int) +0:? 'x' ( smooth in highp float) + diff --git a/deps/glslang/glslang/Test/baseResults/swizzle.frag.out b/deps/glslang/glslang/Test/baseResults/swizzle.frag.out new file mode 100644 index 0000000000..b66a945dc4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/swizzle.frag.out @@ -0,0 +1,423 @@ +swizzle.frag +Shader version: 110 +0:? Sequence +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'blendscale' ( temp float) +0:11 Constant: +0:11 1.789000 +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'w' ( temp 4-component vector of float) +0:13 'u' ( uniform 4-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'w_dep' ( temp 4-component vector of float) +0:15 'u' ( uniform 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'w_reorder' ( temp 4-component vector of float) +0:16 'u' ( uniform 4-component vector of float) +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'w2' ( temp 4-component vector of float) +0:17 'u' ( uniform 4-component vector of float) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'w_flow' ( temp 4-component vector of float) +0:18 'u' ( uniform 4-component vector of float) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 'w_reorder' ( temp 4-component vector of float) +0:20 Constant: +0:20 2 (const int) +0:20 'blendscale' ( temp float) +0:22 move second child to first child ( temp 2-component vector of float) +0:22 vector swizzle ( temp 2-component vector of float) +0:22 'w' ( temp 4-component vector of float) +0:22 Sequence +0:22 Constant: +0:22 3 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 't' ( smooth in 2-component vector of float) +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 'w_reorder' ( temp 4-component vector of float) +0:24 Constant: +0:24 0 (const int) +0:24 'blendscale' ( temp float) +0:26 move second child to first child ( temp 4-component vector of float) +0:26 vector swizzle ( temp 4-component vector of float) +0:26 'w2' ( temp 4-component vector of float) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Constant: +0:26 3 (const int) +0:26 vector swizzle ( temp 4-component vector of float) +0:26 'u' ( uniform 4-component vector of float) +0:26 Sequence +0:26 Constant: +0:26 2 (const int) +0:26 Constant: +0:26 3 (const int) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:28 move second child to first child ( temp float) +0:28 direct index ( temp float) +0:28 'w_reorder' ( temp 4-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:28 'blendscale' ( temp float) +0:30 move second child to first child ( temp 2-component vector of float) +0:30 vector swizzle ( temp 2-component vector of float) +0:30 'w_dep' ( temp 4-component vector of float) +0:30 Sequence +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 vector swizzle ( temp 2-component vector of float) +0:30 'w2' ( temp 4-component vector of float) +0:30 Sequence +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 2 (const int) +0:31 move second child to first child ( temp 2-component vector of float) +0:31 vector swizzle ( temp 2-component vector of float) +0:31 'w_dep' ( temp 4-component vector of float) +0:31 Sequence +0:31 Constant: +0:31 2 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 't' ( smooth in 2-component vector of float) +0:33 move second child to first child ( temp 2-component vector of float) +0:33 vector swizzle ( temp 2-component vector of float) +0:33 'w_undef' ( temp 4-component vector of float) +0:33 Sequence +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 vector swizzle ( temp 2-component vector of float) +0:33 'u' ( uniform 4-component vector of float) +0:33 Sequence +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 3 (const int) +0:35 Test condition and select ( temp void) +0:35 Condition +0:35 'p' ( uniform bool) +0:35 true case +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 'w_flow' ( temp 4-component vector of float) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp float) +0:36 't' ( smooth in 2-component vector of float) +0:36 Constant: +0:36 0 (const int) +0:35 false case +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 'w_flow' ( temp 4-component vector of float) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp float) +0:38 't' ( smooth in 2-component vector of float) +0:38 Constant: +0:38 1 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:40 mix ( global 4-component vector of float) +0:40 'w_reorder' ( temp 4-component vector of float) +0:40 'w_undef' ( temp 4-component vector of float) +0:40 component-wise multiply ( temp 4-component vector of float) +0:40 component-wise multiply ( temp 4-component vector of float) +0:40 component-wise multiply ( temp 4-component vector of float) +0:40 'w' ( temp 4-component vector of float) +0:40 'w2' ( temp 4-component vector of float) +0:40 'w_dep' ( temp 4-component vector of float) +0:40 'w_flow' ( temp 4-component vector of float) +0:42 Sequence +0:42 move second child to first child ( temp 2-component vector of float) +0:42 'c' ( temp 2-component vector of float) +0:42 't' ( smooth in 2-component vector of float) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'rep' ( temp 4-component vector of float) +0:43 Constant: +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:45 Test condition and select ( temp void) +0:45 Condition +0:45 Compare Less Than ( temp bool) +0:45 direct index ( temp float) +0:45 'c' ( temp 2-component vector of float) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 0.000000 +0:45 true case +0:46 multiply second child into first child ( temp float) +0:46 direct index ( temp float) +0:46 'c' ( temp 2-component vector of float) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 -1.000000 +0:48 Test condition and select ( temp void) +0:48 Condition +0:48 Compare Less Than or Equal ( temp bool) +0:48 direct index ( temp float) +0:48 'c' ( temp 2-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 1.000000 +0:48 true case +0:49 move second child to first child ( temp float) +0:49 direct index ( temp float) +0:49 'rep' ( temp 4-component vector of float) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3.400000 +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:51 'rep' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'blend' ( uniform float) +0:? 'u' ( uniform 4-component vector of float) +0:? 'p' ( uniform bool) +0:? 't' ( smooth in 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:9 Function Definition: main( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Sequence +0:11 move second child to first child ( temp float) +0:11 'blendscale' ( temp float) +0:11 Constant: +0:11 1.789000 +0:13 Sequence +0:13 move second child to first child ( temp 4-component vector of float) +0:13 'w' ( temp 4-component vector of float) +0:13 'u' ( uniform 4-component vector of float) +0:15 Sequence +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'w_dep' ( temp 4-component vector of float) +0:15 'u' ( uniform 4-component vector of float) +0:16 Sequence +0:16 move second child to first child ( temp 4-component vector of float) +0:16 'w_reorder' ( temp 4-component vector of float) +0:16 'u' ( uniform 4-component vector of float) +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'w2' ( temp 4-component vector of float) +0:17 'u' ( uniform 4-component vector of float) +0:18 Sequence +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'w_flow' ( temp 4-component vector of float) +0:18 'u' ( uniform 4-component vector of float) +0:20 move second child to first child ( temp float) +0:20 direct index ( temp float) +0:20 'w_reorder' ( temp 4-component vector of float) +0:20 Constant: +0:20 2 (const int) +0:20 'blendscale' ( temp float) +0:22 move second child to first child ( temp 2-component vector of float) +0:22 vector swizzle ( temp 2-component vector of float) +0:22 'w' ( temp 4-component vector of float) +0:22 Sequence +0:22 Constant: +0:22 3 (const int) +0:22 Constant: +0:22 1 (const int) +0:22 't' ( smooth in 2-component vector of float) +0:24 move second child to first child ( temp float) +0:24 direct index ( temp float) +0:24 'w_reorder' ( temp 4-component vector of float) +0:24 Constant: +0:24 0 (const int) +0:24 'blendscale' ( temp float) +0:26 move second child to first child ( temp 4-component vector of float) +0:26 vector swizzle ( temp 4-component vector of float) +0:26 'w2' ( temp 4-component vector of float) +0:26 Sequence +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:26 Constant: +0:26 2 (const int) +0:26 Constant: +0:26 3 (const int) +0:26 vector swizzle ( temp 4-component vector of float) +0:26 'u' ( uniform 4-component vector of float) +0:26 Sequence +0:26 Constant: +0:26 2 (const int) +0:26 Constant: +0:26 3 (const int) +0:26 Constant: +0:26 0 (const int) +0:26 Constant: +0:26 1 (const int) +0:28 move second child to first child ( temp float) +0:28 direct index ( temp float) +0:28 'w_reorder' ( temp 4-component vector of float) +0:28 Constant: +0:28 1 (const int) +0:28 'blendscale' ( temp float) +0:30 move second child to first child ( temp 2-component vector of float) +0:30 vector swizzle ( temp 2-component vector of float) +0:30 'w_dep' ( temp 4-component vector of float) +0:30 Sequence +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 vector swizzle ( temp 2-component vector of float) +0:30 'w2' ( temp 4-component vector of float) +0:30 Sequence +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 2 (const int) +0:31 move second child to first child ( temp 2-component vector of float) +0:31 vector swizzle ( temp 2-component vector of float) +0:31 'w_dep' ( temp 4-component vector of float) +0:31 Sequence +0:31 Constant: +0:31 2 (const int) +0:31 Constant: +0:31 3 (const int) +0:31 't' ( smooth in 2-component vector of float) +0:33 move second child to first child ( temp 2-component vector of float) +0:33 vector swizzle ( temp 2-component vector of float) +0:33 'w_undef' ( temp 4-component vector of float) +0:33 Sequence +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 vector swizzle ( temp 2-component vector of float) +0:33 'u' ( uniform 4-component vector of float) +0:33 Sequence +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 3 (const int) +0:35 Test condition and select ( temp void) +0:35 Condition +0:35 'p' ( uniform bool) +0:35 true case +0:36 move second child to first child ( temp float) +0:36 direct index ( temp float) +0:36 'w_flow' ( temp 4-component vector of float) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp float) +0:36 't' ( smooth in 2-component vector of float) +0:36 Constant: +0:36 0 (const int) +0:35 false case +0:38 move second child to first child ( temp float) +0:38 direct index ( temp float) +0:38 'w_flow' ( temp 4-component vector of float) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp float) +0:38 't' ( smooth in 2-component vector of float) +0:38 Constant: +0:38 1 (const int) +0:40 move second child to first child ( temp 4-component vector of float) +0:40 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:40 mix ( global 4-component vector of float) +0:40 'w_reorder' ( temp 4-component vector of float) +0:40 'w_undef' ( temp 4-component vector of float) +0:40 component-wise multiply ( temp 4-component vector of float) +0:40 component-wise multiply ( temp 4-component vector of float) +0:40 component-wise multiply ( temp 4-component vector of float) +0:40 'w' ( temp 4-component vector of float) +0:40 'w2' ( temp 4-component vector of float) +0:40 'w_dep' ( temp 4-component vector of float) +0:40 'w_flow' ( temp 4-component vector of float) +0:42 Sequence +0:42 move second child to first child ( temp 2-component vector of float) +0:42 'c' ( temp 2-component vector of float) +0:42 't' ( smooth in 2-component vector of float) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'rep' ( temp 4-component vector of float) +0:43 Constant: +0:43 0.000000 +0:43 0.000000 +0:43 0.000000 +0:43 1.000000 +0:45 Test condition and select ( temp void) +0:45 Condition +0:45 Compare Less Than ( temp bool) +0:45 direct index ( temp float) +0:45 'c' ( temp 2-component vector of float) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 0.000000 +0:45 true case +0:46 multiply second child into first child ( temp float) +0:46 direct index ( temp float) +0:46 'c' ( temp 2-component vector of float) +0:46 Constant: +0:46 0 (const int) +0:46 Constant: +0:46 -1.000000 +0:48 Test condition and select ( temp void) +0:48 Condition +0:48 Compare Less Than or Equal ( temp bool) +0:48 direct index ( temp float) +0:48 'c' ( temp 2-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 1.000000 +0:48 true case +0:49 move second child to first child ( temp float) +0:49 direct index ( temp float) +0:49 'rep' ( temp 4-component vector of float) +0:49 Constant: +0:49 0 (const int) +0:49 Constant: +0:49 3.400000 +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:51 'rep' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'blend' ( uniform float) +0:? 'u' ( uniform 4-component vector of float) +0:? 'p' ( uniform bool) +0:? 't' ( smooth in 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/syntaxError.frag.out b/deps/glslang/glslang/Test/baseResults/syntaxError.frag.out new file mode 100644 index 0000000000..b6ebea3ea4 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/syntaxError.frag.out @@ -0,0 +1,24 @@ +syntaxError.frag +ERROR: 0:9: 'vec5' : undeclared identifier +ERROR: 0:9: '' : syntax error, unexpected IDENTIFIER, expecting COMMA or SEMICOLON +ERROR: 2 compilation errors. No code generated. + + +Shader version: 120 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + + +Linked fragment stage: + + +Shader version: 120 +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + diff --git a/deps/glslang/glslang/Test/baseResults/test.conf b/deps/glslang/glslang/Test/baseResults/test.conf new file mode 100644 index 0000000000..f156c5c6d5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/test.conf @@ -0,0 +1,92 @@ +MaxLights 32 +MaxClipPlanes 6 +MaxTextureUnits 32 +MaxTextureCoords 32 +MaxVertexAttribs 64 +MaxVertexUniformComponents 4096 +MaxVaryingFloats 64 +MaxVertexTextureImageUnits 32 +MaxCombinedTextureImageUnits 80 +MaxTextureImageUnits 32 +MaxFragmentUniformComponents 4096 +MaxDrawBuffers 32 +MaxVertexUniformVectors 128 +MaxVaryingVectors 8 +MaxFragmentUniformVectors 16 +MaxVertexOutputVectors 16 +MaxFragmentInputVectors 15 +MinProgramTexelOffset -8 +MaxProgramTexelOffset 7 +MaxClipDistances 8 +MaxComputeWorkGroupCountX 65535 +MaxComputeWorkGroupCountY 65535 +MaxComputeWorkGroupCountZ 65535 +MaxComputeWorkGroupSizeX 1024 +MaxComputeWorkGroupSizeY 1024 +MaxComputeWorkGroupSizeZ 64 +MaxComputeUniformComponents 1024 +MaxComputeTextureImageUnits 16 +MaxComputeImageUniforms 8 +MaxComputeAtomicCounters 8 +MaxComputeAtomicCounterBuffers 1 +MaxVaryingComponents 60 +MaxVertexOutputComponents 64 +MaxGeometryInputComponents 64 +MaxGeometryOutputComponents 128 +MaxFragmentInputComponents 128 +MaxImageUnits 8 +MaxCombinedImageUnitsAndFragmentOutputs 8 +MaxCombinedShaderOutputResources 8 +MaxImageSamples 0 +MaxVertexImageUniforms 0 +MaxTessControlImageUniforms 0 +MaxTessEvaluationImageUniforms 0 +MaxGeometryImageUniforms 0 +MaxFragmentImageUniforms 8 +MaxCombinedImageUniforms 8 +MaxGeometryTextureImageUnits 16 +MaxGeometryOutputVertices 256 +MaxGeometryTotalOutputComponents 1024 +MaxGeometryUniformComponents 1024 +MaxGeometryVaryingComponents 64 +MaxTessControlInputComponents 128 +MaxTessControlOutputComponents 128 +MaxTessControlTextureImageUnits 16 +MaxTessControlUniformComponents 1024 +MaxTessControlTotalOutputComponents 4096 +MaxTessEvaluationInputComponents 128 +MaxTessEvaluationOutputComponents 128 +MaxTessEvaluationTextureImageUnits 16 +MaxTessEvaluationUniformComponents 1024 +MaxTessPatchComponents 120 +MaxPatchVertices 32 +MaxTessGenLevel 64 +MaxViewports 16 +MaxVertexAtomicCounters 0 +MaxTessControlAtomicCounters 0 +MaxTessEvaluationAtomicCounters 0 +MaxGeometryAtomicCounters 0 +MaxFragmentAtomicCounters 8 +MaxCombinedAtomicCounters 8 +MaxAtomicCounterBindings 1 +MaxVertexAtomicCounterBuffers 0 +MaxTessControlAtomicCounterBuffers 0 +MaxTessEvaluationAtomicCounterBuffers 0 +MaxGeometryAtomicCounterBuffers 0 +MaxFragmentAtomicCounterBuffers 1 +MaxCombinedAtomicCounterBuffers 1 +MaxAtomicCounterBufferSize 16384 +MaxTransformFeedbackBuffers 4 +MaxTransformFeedbackInterleavedComponents 64 +MaxCullDistances 8 +MaxCombinedClipAndCullDistances 8 +MaxSamples 4 +nonInductiveForLoops 1 +whileLoops 1 +doWhileLoops 1 +generalUniformIndexing 1 +generalAttributeMatrixVectorIndexing 1 +generalVaryingIndexing 1 +generalSamplerIndexing 1 +generalVariableIndexing 1 +generalConstantMatrixVectorIndexing 1 diff --git a/deps/glslang/glslang/Test/baseResults/test.frag.out b/deps/glslang/glslang/Test/baseResults/test.frag.out new file mode 100644 index 0000000000..4f6faaf9a5 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/test.frag.out @@ -0,0 +1,115 @@ +test.frag +Shader version: 110 +0:? Sequence +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'blendscale' ( temp float) +0:15 Constant: +0:15 1.789000 +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'v' ( temp 4-component vector of float) +0:17 vector swizzle ( temp 4-component vector of float) +0:17 texture ( global 4-component vector of float) +0:17 'texSampler2D' ( uniform sampler2D) +0:17 divide ( temp 2-component vector of float) +0:17 add ( temp 2-component vector of float) +0:17 't' ( smooth in 2-component vector of float) +0:17 'scale' ( uniform 2-component vector of float) +0:17 'scale' ( uniform 2-component vector of float) +0:17 Sequence +0:17 Constant: +0:17 3 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:19 'w' ( temp 4-component vector of float) +0:19 add ( temp 4-component vector of float) +0:19 texture ( global 4-component vector of float) +0:19 'texSampler3D' ( uniform sampler3D) +0:19 'coords' ( smooth in 3-component vector of float) +0:19 'v' ( temp 4-component vector of float) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:21 mix ( global 4-component vector of float) +0:21 'w' ( temp 4-component vector of float) +0:21 'u' ( uniform 4-component vector of float) +0:21 component-wise multiply ( temp float) +0:21 'blend' ( uniform float) +0:21 'blendscale' ( temp float) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'texSampler3D' ( uniform sampler3D) +0:? 'blend' ( uniform float) +0:? 'scale' ( uniform 2-component vector of float) +0:? 'u' ( uniform 4-component vector of float) +0:? 't' ( smooth in 2-component vector of float) +0:? 'coords' ( smooth in 3-component vector of float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:13 Function Definition: main( ( global void) +0:13 Function Parameters: +0:15 Sequence +0:15 Sequence +0:15 move second child to first child ( temp float) +0:15 'blendscale' ( temp float) +0:15 Constant: +0:15 1.789000 +0:17 Sequence +0:17 move second child to first child ( temp 4-component vector of float) +0:17 'v' ( temp 4-component vector of float) +0:17 vector swizzle ( temp 4-component vector of float) +0:17 texture ( global 4-component vector of float) +0:17 'texSampler2D' ( uniform sampler2D) +0:17 divide ( temp 2-component vector of float) +0:17 add ( temp 2-component vector of float) +0:17 't' ( smooth in 2-component vector of float) +0:17 'scale' ( uniform 2-component vector of float) +0:17 'scale' ( uniform 2-component vector of float) +0:17 Sequence +0:17 Constant: +0:17 3 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:19 Sequence +0:19 move second child to first child ( temp 4-component vector of float) +0:19 'w' ( temp 4-component vector of float) +0:19 add ( temp 4-component vector of float) +0:19 texture ( global 4-component vector of float) +0:19 'texSampler3D' ( uniform sampler3D) +0:19 'coords' ( smooth in 3-component vector of float) +0:19 'v' ( temp 4-component vector of float) +0:21 move second child to first child ( temp 4-component vector of float) +0:21 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:21 mix ( global 4-component vector of float) +0:21 'w' ( temp 4-component vector of float) +0:21 'u' ( uniform 4-component vector of float) +0:21 component-wise multiply ( temp float) +0:21 'blend' ( uniform float) +0:21 'blendscale' ( temp float) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'texSampler3D' ( uniform sampler3D) +0:? 'blend' ( uniform float) +0:? 'scale' ( uniform 2-component vector of float) +0:? 'u' ( uniform 4-component vector of float) +0:? 't' ( smooth in 2-component vector of float) +0:? 'coords' ( smooth in 3-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/texture.frag.out b/deps/glslang/glslang/Test/baseResults/texture.frag.out new file mode 100644 index 0000000000..8e9a7105ea --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/texture.frag.out @@ -0,0 +1,564 @@ +texture.frag +WARNING: 0:14: varying deprecated in version 130; may be removed in future release +WARNING: 0:15: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:17 Function Definition: main( ( global void) +0:17 Function Parameters: +0:19 Sequence +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'blendscale' ( temp float) +0:19 Constant: +0:19 1.789000 +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'bias' ( temp float) +0:20 Constant: +0:20 2.000000 +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'lod' ( temp float) +0:21 Constant: +0:21 3.000000 +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'proj' ( temp float) +0:22 Constant: +0:22 2.000000 +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'coords1D' ( temp float) +0:23 Constant: +0:23 1.789000 +0:24 Sequence +0:24 move second child to first child ( temp 3-component vector of float) +0:24 'coords3D' ( temp 3-component vector of float) +0:24 Constant: +0:24 1.789000 +0:24 2.718000 +0:24 3.453000 +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'coords4D' ( temp 4-component vector of float) +0:25 Constant: +0:25 1.789000 +0:25 2.718000 +0:25 3.453000 +0:25 2.000000 +0:26 Sequence +0:26 move second child to first child ( temp 4-component vector of float) +0:26 'color' ( temp 4-component vector of float) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:28 add second child into first child ( temp 4-component vector of float) +0:28 'color' ( temp 4-component vector of float) +0:28 texture ( global 4-component vector of float) +0:28 'texSampler1D' ( uniform sampler1D) +0:28 'coords1D' ( temp float) +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'color' ( temp 4-component vector of float) +0:29 texture ( global 4-component vector of float) +0:29 'texSampler1D' ( uniform sampler1D) +0:29 'coords1D' ( temp float) +0:29 'bias' ( temp float) +0:30 add second child into first child ( temp 4-component vector of float) +0:30 'color' ( temp 4-component vector of float) +0:30 textureProj ( global 4-component vector of float) +0:30 'texSampler1D' ( uniform sampler1D) +0:30 'coords2D' ( smooth in 2-component vector of float) +0:31 add second child into first child ( temp 4-component vector of float) +0:31 'color' ( temp 4-component vector of float) +0:31 textureProj ( global 4-component vector of float) +0:31 'texSampler1D' ( uniform sampler1D) +0:31 'coords4D' ( temp 4-component vector of float) +0:32 add second child into first child ( temp 4-component vector of float) +0:32 'color' ( temp 4-component vector of float) +0:32 textureProj ( global 4-component vector of float) +0:32 'texSampler1D' ( uniform sampler1D) +0:32 'coords2D' ( smooth in 2-component vector of float) +0:32 'bias' ( temp float) +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'color' ( temp 4-component vector of float) +0:33 textureProj ( global 4-component vector of float) +0:33 'texSampler1D' ( uniform sampler1D) +0:33 'coords4D' ( temp 4-component vector of float) +0:33 'bias' ( temp float) +0:35 add second child into first child ( temp 4-component vector of float) +0:35 'color' ( temp 4-component vector of float) +0:35 texture ( global 4-component vector of float) +0:35 'texSampler2D' ( uniform sampler2D) +0:35 'coords2D' ( smooth in 2-component vector of float) +0:36 add second child into first child ( temp 4-component vector of float) +0:36 'color' ( temp 4-component vector of float) +0:36 texture ( global 4-component vector of float) +0:36 'texSampler2D' ( uniform sampler2D) +0:36 'coords2D' ( smooth in 2-component vector of float) +0:36 'bias' ( temp float) +0:37 add second child into first child ( temp 4-component vector of float) +0:37 'color' ( temp 4-component vector of float) +0:37 textureProj ( global 4-component vector of float) +0:37 'texSampler2D' ( uniform sampler2D) +0:37 'coords3D' ( temp 3-component vector of float) +0:38 add second child into first child ( temp 4-component vector of float) +0:38 'color' ( temp 4-component vector of float) +0:38 textureProj ( global 4-component vector of float) +0:38 'texSampler2D' ( uniform sampler2D) +0:38 'coords4D' ( temp 4-component vector of float) +0:38 'bias' ( temp float) +0:40 add second child into first child ( temp 4-component vector of float) +0:40 'color' ( temp 4-component vector of float) +0:40 texture ( global 4-component vector of float) +0:40 'texSampler3D' ( uniform sampler3D) +0:40 'coords3D' ( temp 3-component vector of float) +0:41 add second child into first child ( temp 4-component vector of float) +0:41 'color' ( temp 4-component vector of float) +0:41 texture ( global 4-component vector of float) +0:41 'texSampler3D' ( uniform sampler3D) +0:41 'coords3D' ( temp 3-component vector of float) +0:41 'bias' ( temp float) +0:42 add second child into first child ( temp 4-component vector of float) +0:42 'color' ( temp 4-component vector of float) +0:42 textureProj ( global 4-component vector of float) +0:42 'texSampler3D' ( uniform sampler3D) +0:42 'coords4D' ( temp 4-component vector of float) +0:43 add second child into first child ( temp 4-component vector of float) +0:43 'color' ( temp 4-component vector of float) +0:43 textureProj ( global 4-component vector of float) +0:43 'texSampler3D' ( uniform sampler3D) +0:43 'coords4D' ( temp 4-component vector of float) +0:43 'bias' ( temp float) +0:45 add second child into first child ( temp 4-component vector of float) +0:45 'color' ( temp 4-component vector of float) +0:45 texture ( global 4-component vector of float) +0:45 'texSamplerCube' ( uniform samplerCube) +0:45 'coords3D' ( temp 3-component vector of float) +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'color' ( temp 4-component vector of float) +0:46 texture ( global 4-component vector of float) +0:46 'texSamplerCube' ( uniform samplerCube) +0:46 'coords3D' ( temp 3-component vector of float) +0:46 'bias' ( temp float) +0:48 add second child into first child ( temp 4-component vector of float) +0:48 'color' ( temp 4-component vector of float) +0:48 texture ( global 4-component vector of float) +0:48 'shadowSampler1D' ( uniform sampler1DShadow) +0:48 'coords3D' ( temp 3-component vector of float) +0:49 add second child into first child ( temp 4-component vector of float) +0:49 'color' ( temp 4-component vector of float) +0:49 texture ( global 4-component vector of float) +0:49 'shadowSampler1D' ( uniform sampler1DShadow) +0:49 'coords3D' ( temp 3-component vector of float) +0:49 'bias' ( temp float) +0:50 add second child into first child ( temp 4-component vector of float) +0:50 'color' ( temp 4-component vector of float) +0:50 texture ( global 4-component vector of float) +0:50 'shadowSampler2D' ( uniform sampler2DShadow) +0:50 'coords3D' ( temp 3-component vector of float) +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'color' ( temp 4-component vector of float) +0:51 texture ( global 4-component vector of float) +0:51 'shadowSampler2D' ( uniform sampler2DShadow) +0:51 'coords3D' ( temp 3-component vector of float) +0:51 'bias' ( temp float) +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'color' ( temp 4-component vector of float) +0:52 textureProj ( global 4-component vector of float) +0:52 'shadowSampler1D' ( uniform sampler1DShadow) +0:52 'coords4D' ( temp 4-component vector of float) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'color' ( temp 4-component vector of float) +0:53 textureProj ( global 4-component vector of float) +0:53 'shadowSampler1D' ( uniform sampler1DShadow) +0:53 'coords4D' ( temp 4-component vector of float) +0:53 'bias' ( temp float) +0:54 add second child into first child ( temp 4-component vector of float) +0:54 'color' ( temp 4-component vector of float) +0:54 textureProj ( global 4-component vector of float) +0:54 'shadowSampler2D' ( uniform sampler2DShadow) +0:54 'coords4D' ( temp 4-component vector of float) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'color' ( temp 4-component vector of float) +0:55 textureProj ( global 4-component vector of float) +0:55 'shadowSampler2D' ( uniform sampler2DShadow) +0:55 'coords4D' ( temp 4-component vector of float) +0:55 'bias' ( temp float) +0:57 Sequence +0:57 move second child to first child ( temp 2-component vector of int) +0:57 'iCoords2D' ( temp 2-component vector of int) +0:57 Constant: +0:57 0 (const int) +0:57 5 (const int) +0:58 Sequence +0:58 move second child to first child ( temp int) +0:58 'iLod' ( temp int) +0:58 Constant: +0:58 1 (const int) +0:60 add second child into first child ( temp 4-component vector of float) +0:60 'color' ( temp 4-component vector of float) +0:60 textureFetch ( global 4-component vector of float) +0:60 'texSampler2D' ( uniform sampler2D) +0:60 'iCoords2D' ( temp 2-component vector of int) +0:60 'iLod' ( temp int) +0:62 Sequence +0:62 move second child to first child ( temp 2-component vector of float) +0:62 'gradX' ( temp 2-component vector of float) +0:62 dPdx ( global 2-component vector of float) +0:62 'coords2D' ( smooth in 2-component vector of float) +0:63 Sequence +0:63 move second child to first child ( temp 2-component vector of float) +0:63 'gradY' ( temp 2-component vector of float) +0:63 dPdy ( global 2-component vector of float) +0:63 'coords2D' ( smooth in 2-component vector of float) +0:66 add second child into first child ( temp 4-component vector of float) +0:66 'color' ( temp 4-component vector of float) +0:66 textureGrad ( global 4-component vector of float) +0:66 'texSampler2D' ( uniform sampler2D) +0:66 'coords2D' ( smooth in 2-component vector of float) +0:66 'gradX' ( temp 2-component vector of float) +0:66 'gradY' ( temp 2-component vector of float) +0:67 add second child into first child ( temp 4-component vector of float) +0:67 'color' ( temp 4-component vector of float) +0:67 textureProjGrad ( global 4-component vector of float) +0:67 'texSampler2D' ( uniform sampler2D) +0:67 Construct vec3 ( temp 3-component vector of float) +0:67 'coords2D' ( smooth in 2-component vector of float) +0:67 'proj' ( temp float) +0:67 'gradX' ( temp 2-component vector of float) +0:67 'gradY' ( temp 2-component vector of float) +0:68 add second child into first child ( temp 4-component vector of float) +0:68 'color' ( temp 4-component vector of float) +0:68 textureGradOffset ( global 4-component vector of float) +0:68 'texSampler2D' ( uniform sampler2D) +0:68 'coords2D' ( smooth in 2-component vector of float) +0:68 'gradX' ( temp 2-component vector of float) +0:68 'gradY' ( temp 2-component vector of float) +0:68 Constant: +0:68 3 (const int) +0:68 -7 (const int) +0:69 add second child into first child ( temp 4-component vector of float) +0:69 'color' ( temp 4-component vector of float) +0:69 textureProjGradOffset ( global 4-component vector of float) +0:69 'texSampler2D' ( uniform sampler2D) +0:69 'coords3D' ( temp 3-component vector of float) +0:69 'gradX' ( temp 2-component vector of float) +0:69 'gradY' ( temp 2-component vector of float) +0:69 Constant: +0:69 3 (const int) +0:69 -7 (const int) +0:70 add second child into first child ( temp 4-component vector of float) +0:70 'color' ( temp 4-component vector of float) +0:70 textureGrad ( global float) +0:70 'shadowSampler2D' ( uniform sampler2DShadow) +0:70 Construct vec3 ( temp 3-component vector of float) +0:70 'coords2D' ( smooth in 2-component vector of float) +0:70 'lod' ( temp float) +0:70 'gradX' ( temp 2-component vector of float) +0:70 'gradY' ( temp 2-component vector of float) +0:72 move second child to first child ( temp 4-component vector of float) +0:72 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:72 mix ( global 4-component vector of float) +0:72 'color' ( temp 4-component vector of float) +0:72 'u' ( uniform 4-component vector of float) +0:72 component-wise multiply ( temp float) +0:72 'blend' ( uniform float) +0:72 'blendscale' ( temp float) +0:? Linker Objects +0:? 'texSampler1D' ( uniform sampler1D) +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'texSampler3D' ( uniform sampler3D) +0:? 'texSamplerCube' ( uniform samplerCube) +0:? 'shadowSampler1D' ( uniform sampler1DShadow) +0:? 'shadowSampler2D' ( uniform sampler2DShadow) +0:? 'blend' ( uniform float) +0:? 'scale' ( uniform 2-component vector of float) +0:? 'u' ( uniform 4-component vector of float) +0:? 't' ( smooth in 2-component vector of float) +0:? 'coords2D' ( smooth in 2-component vector of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:17 Function Definition: main( ( global void) +0:17 Function Parameters: +0:19 Sequence +0:19 Sequence +0:19 move second child to first child ( temp float) +0:19 'blendscale' ( temp float) +0:19 Constant: +0:19 1.789000 +0:20 Sequence +0:20 move second child to first child ( temp float) +0:20 'bias' ( temp float) +0:20 Constant: +0:20 2.000000 +0:21 Sequence +0:21 move second child to first child ( temp float) +0:21 'lod' ( temp float) +0:21 Constant: +0:21 3.000000 +0:22 Sequence +0:22 move second child to first child ( temp float) +0:22 'proj' ( temp float) +0:22 Constant: +0:22 2.000000 +0:23 Sequence +0:23 move second child to first child ( temp float) +0:23 'coords1D' ( temp float) +0:23 Constant: +0:23 1.789000 +0:24 Sequence +0:24 move second child to first child ( temp 3-component vector of float) +0:24 'coords3D' ( temp 3-component vector of float) +0:24 Constant: +0:24 1.789000 +0:24 2.718000 +0:24 3.453000 +0:25 Sequence +0:25 move second child to first child ( temp 4-component vector of float) +0:25 'coords4D' ( temp 4-component vector of float) +0:25 Constant: +0:25 1.789000 +0:25 2.718000 +0:25 3.453000 +0:25 2.000000 +0:26 Sequence +0:26 move second child to first child ( temp 4-component vector of float) +0:26 'color' ( temp 4-component vector of float) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:28 add second child into first child ( temp 4-component vector of float) +0:28 'color' ( temp 4-component vector of float) +0:28 texture ( global 4-component vector of float) +0:28 'texSampler1D' ( uniform sampler1D) +0:28 'coords1D' ( temp float) +0:29 add second child into first child ( temp 4-component vector of float) +0:29 'color' ( temp 4-component vector of float) +0:29 texture ( global 4-component vector of float) +0:29 'texSampler1D' ( uniform sampler1D) +0:29 'coords1D' ( temp float) +0:29 'bias' ( temp float) +0:30 add second child into first child ( temp 4-component vector of float) +0:30 'color' ( temp 4-component vector of float) +0:30 textureProj ( global 4-component vector of float) +0:30 'texSampler1D' ( uniform sampler1D) +0:30 'coords2D' ( smooth in 2-component vector of float) +0:31 add second child into first child ( temp 4-component vector of float) +0:31 'color' ( temp 4-component vector of float) +0:31 textureProj ( global 4-component vector of float) +0:31 'texSampler1D' ( uniform sampler1D) +0:31 'coords4D' ( temp 4-component vector of float) +0:32 add second child into first child ( temp 4-component vector of float) +0:32 'color' ( temp 4-component vector of float) +0:32 textureProj ( global 4-component vector of float) +0:32 'texSampler1D' ( uniform sampler1D) +0:32 'coords2D' ( smooth in 2-component vector of float) +0:32 'bias' ( temp float) +0:33 add second child into first child ( temp 4-component vector of float) +0:33 'color' ( temp 4-component vector of float) +0:33 textureProj ( global 4-component vector of float) +0:33 'texSampler1D' ( uniform sampler1D) +0:33 'coords4D' ( temp 4-component vector of float) +0:33 'bias' ( temp float) +0:35 add second child into first child ( temp 4-component vector of float) +0:35 'color' ( temp 4-component vector of float) +0:35 texture ( global 4-component vector of float) +0:35 'texSampler2D' ( uniform sampler2D) +0:35 'coords2D' ( smooth in 2-component vector of float) +0:36 add second child into first child ( temp 4-component vector of float) +0:36 'color' ( temp 4-component vector of float) +0:36 texture ( global 4-component vector of float) +0:36 'texSampler2D' ( uniform sampler2D) +0:36 'coords2D' ( smooth in 2-component vector of float) +0:36 'bias' ( temp float) +0:37 add second child into first child ( temp 4-component vector of float) +0:37 'color' ( temp 4-component vector of float) +0:37 textureProj ( global 4-component vector of float) +0:37 'texSampler2D' ( uniform sampler2D) +0:37 'coords3D' ( temp 3-component vector of float) +0:38 add second child into first child ( temp 4-component vector of float) +0:38 'color' ( temp 4-component vector of float) +0:38 textureProj ( global 4-component vector of float) +0:38 'texSampler2D' ( uniform sampler2D) +0:38 'coords4D' ( temp 4-component vector of float) +0:38 'bias' ( temp float) +0:40 add second child into first child ( temp 4-component vector of float) +0:40 'color' ( temp 4-component vector of float) +0:40 texture ( global 4-component vector of float) +0:40 'texSampler3D' ( uniform sampler3D) +0:40 'coords3D' ( temp 3-component vector of float) +0:41 add second child into first child ( temp 4-component vector of float) +0:41 'color' ( temp 4-component vector of float) +0:41 texture ( global 4-component vector of float) +0:41 'texSampler3D' ( uniform sampler3D) +0:41 'coords3D' ( temp 3-component vector of float) +0:41 'bias' ( temp float) +0:42 add second child into first child ( temp 4-component vector of float) +0:42 'color' ( temp 4-component vector of float) +0:42 textureProj ( global 4-component vector of float) +0:42 'texSampler3D' ( uniform sampler3D) +0:42 'coords4D' ( temp 4-component vector of float) +0:43 add second child into first child ( temp 4-component vector of float) +0:43 'color' ( temp 4-component vector of float) +0:43 textureProj ( global 4-component vector of float) +0:43 'texSampler3D' ( uniform sampler3D) +0:43 'coords4D' ( temp 4-component vector of float) +0:43 'bias' ( temp float) +0:45 add second child into first child ( temp 4-component vector of float) +0:45 'color' ( temp 4-component vector of float) +0:45 texture ( global 4-component vector of float) +0:45 'texSamplerCube' ( uniform samplerCube) +0:45 'coords3D' ( temp 3-component vector of float) +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'color' ( temp 4-component vector of float) +0:46 texture ( global 4-component vector of float) +0:46 'texSamplerCube' ( uniform samplerCube) +0:46 'coords3D' ( temp 3-component vector of float) +0:46 'bias' ( temp float) +0:48 add second child into first child ( temp 4-component vector of float) +0:48 'color' ( temp 4-component vector of float) +0:48 texture ( global 4-component vector of float) +0:48 'shadowSampler1D' ( uniform sampler1DShadow) +0:48 'coords3D' ( temp 3-component vector of float) +0:49 add second child into first child ( temp 4-component vector of float) +0:49 'color' ( temp 4-component vector of float) +0:49 texture ( global 4-component vector of float) +0:49 'shadowSampler1D' ( uniform sampler1DShadow) +0:49 'coords3D' ( temp 3-component vector of float) +0:49 'bias' ( temp float) +0:50 add second child into first child ( temp 4-component vector of float) +0:50 'color' ( temp 4-component vector of float) +0:50 texture ( global 4-component vector of float) +0:50 'shadowSampler2D' ( uniform sampler2DShadow) +0:50 'coords3D' ( temp 3-component vector of float) +0:51 add second child into first child ( temp 4-component vector of float) +0:51 'color' ( temp 4-component vector of float) +0:51 texture ( global 4-component vector of float) +0:51 'shadowSampler2D' ( uniform sampler2DShadow) +0:51 'coords3D' ( temp 3-component vector of float) +0:51 'bias' ( temp float) +0:52 add second child into first child ( temp 4-component vector of float) +0:52 'color' ( temp 4-component vector of float) +0:52 textureProj ( global 4-component vector of float) +0:52 'shadowSampler1D' ( uniform sampler1DShadow) +0:52 'coords4D' ( temp 4-component vector of float) +0:53 add second child into first child ( temp 4-component vector of float) +0:53 'color' ( temp 4-component vector of float) +0:53 textureProj ( global 4-component vector of float) +0:53 'shadowSampler1D' ( uniform sampler1DShadow) +0:53 'coords4D' ( temp 4-component vector of float) +0:53 'bias' ( temp float) +0:54 add second child into first child ( temp 4-component vector of float) +0:54 'color' ( temp 4-component vector of float) +0:54 textureProj ( global 4-component vector of float) +0:54 'shadowSampler2D' ( uniform sampler2DShadow) +0:54 'coords4D' ( temp 4-component vector of float) +0:55 add second child into first child ( temp 4-component vector of float) +0:55 'color' ( temp 4-component vector of float) +0:55 textureProj ( global 4-component vector of float) +0:55 'shadowSampler2D' ( uniform sampler2DShadow) +0:55 'coords4D' ( temp 4-component vector of float) +0:55 'bias' ( temp float) +0:57 Sequence +0:57 move second child to first child ( temp 2-component vector of int) +0:57 'iCoords2D' ( temp 2-component vector of int) +0:57 Constant: +0:57 0 (const int) +0:57 5 (const int) +0:58 Sequence +0:58 move second child to first child ( temp int) +0:58 'iLod' ( temp int) +0:58 Constant: +0:58 1 (const int) +0:60 add second child into first child ( temp 4-component vector of float) +0:60 'color' ( temp 4-component vector of float) +0:60 textureFetch ( global 4-component vector of float) +0:60 'texSampler2D' ( uniform sampler2D) +0:60 'iCoords2D' ( temp 2-component vector of int) +0:60 'iLod' ( temp int) +0:62 Sequence +0:62 move second child to first child ( temp 2-component vector of float) +0:62 'gradX' ( temp 2-component vector of float) +0:62 dPdx ( global 2-component vector of float) +0:62 'coords2D' ( smooth in 2-component vector of float) +0:63 Sequence +0:63 move second child to first child ( temp 2-component vector of float) +0:63 'gradY' ( temp 2-component vector of float) +0:63 dPdy ( global 2-component vector of float) +0:63 'coords2D' ( smooth in 2-component vector of float) +0:66 add second child into first child ( temp 4-component vector of float) +0:66 'color' ( temp 4-component vector of float) +0:66 textureGrad ( global 4-component vector of float) +0:66 'texSampler2D' ( uniform sampler2D) +0:66 'coords2D' ( smooth in 2-component vector of float) +0:66 'gradX' ( temp 2-component vector of float) +0:66 'gradY' ( temp 2-component vector of float) +0:67 add second child into first child ( temp 4-component vector of float) +0:67 'color' ( temp 4-component vector of float) +0:67 textureProjGrad ( global 4-component vector of float) +0:67 'texSampler2D' ( uniform sampler2D) +0:67 Construct vec3 ( temp 3-component vector of float) +0:67 'coords2D' ( smooth in 2-component vector of float) +0:67 'proj' ( temp float) +0:67 'gradX' ( temp 2-component vector of float) +0:67 'gradY' ( temp 2-component vector of float) +0:68 add second child into first child ( temp 4-component vector of float) +0:68 'color' ( temp 4-component vector of float) +0:68 textureGradOffset ( global 4-component vector of float) +0:68 'texSampler2D' ( uniform sampler2D) +0:68 'coords2D' ( smooth in 2-component vector of float) +0:68 'gradX' ( temp 2-component vector of float) +0:68 'gradY' ( temp 2-component vector of float) +0:68 Constant: +0:68 3 (const int) +0:68 -7 (const int) +0:69 add second child into first child ( temp 4-component vector of float) +0:69 'color' ( temp 4-component vector of float) +0:69 textureProjGradOffset ( global 4-component vector of float) +0:69 'texSampler2D' ( uniform sampler2D) +0:69 'coords3D' ( temp 3-component vector of float) +0:69 'gradX' ( temp 2-component vector of float) +0:69 'gradY' ( temp 2-component vector of float) +0:69 Constant: +0:69 3 (const int) +0:69 -7 (const int) +0:70 add second child into first child ( temp 4-component vector of float) +0:70 'color' ( temp 4-component vector of float) +0:70 textureGrad ( global float) +0:70 'shadowSampler2D' ( uniform sampler2DShadow) +0:70 Construct vec3 ( temp 3-component vector of float) +0:70 'coords2D' ( smooth in 2-component vector of float) +0:70 'lod' ( temp float) +0:70 'gradX' ( temp 2-component vector of float) +0:70 'gradY' ( temp 2-component vector of float) +0:72 move second child to first child ( temp 4-component vector of float) +0:72 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:72 mix ( global 4-component vector of float) +0:72 'color' ( temp 4-component vector of float) +0:72 'u' ( uniform 4-component vector of float) +0:72 component-wise multiply ( temp float) +0:72 'blend' ( uniform float) +0:72 'blendscale' ( temp float) +0:? Linker Objects +0:? 'texSampler1D' ( uniform sampler1D) +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'texSampler3D' ( uniform sampler3D) +0:? 'texSamplerCube' ( uniform samplerCube) +0:? 'shadowSampler1D' ( uniform sampler1DShadow) +0:? 'shadowSampler2D' ( uniform sampler2DShadow) +0:? 'blend' ( uniform float) +0:? 'scale' ( uniform 2-component vector of float) +0:? 'u' ( uniform 4-component vector of float) +0:? 't' ( smooth in 2-component vector of float) +0:? 'coords2D' ( smooth in 2-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/tokenLength.vert.out b/deps/glslang/glslang/Test/baseResults/tokenLength.vert.out new file mode 100644 index 0000000000..8c31da9212 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/tokenLength.vert.out @@ -0,0 +1,220 @@ +tokenLength.vert +ERROR: 0:9: '' : numeric literal too big +ERROR: 0:10: '' : numeric literal too big +ERROR: 0:13: '' : octal literal too big +ERROR: 0:14: '' : hexadecimal literal too big +ERROR: 0:23: '' : float literal too long +ERROR: 0:32: '' : name too long +ERROR: 0:33: '' : hexadecimal literal too big +ERROR: 0:34: '' : numeric literal too long +ERROR: 0:34: '' : octal literal too big +ERROR: 0:35: '' : numeric literal too long +ERROR: 0:35: '' : numeric literal too big +ERROR: 0:36: '' : float literal too long +WARNING: 0:39: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 +ERROR: 0:40: '' : name too long +WARNING: 0:40: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 +ERROR: 0:43: '' : name too long +ERROR: 0:44: '#extension' : ':' missing after extension name +ERROR: 0:47: '#error' : in long non - zero # if +ERROR: 0:50: '#error' : in long zero # if +ERROR: 0:52: '' : numeric literal too long +ERROR: 0:53: '#error' : in too long # if +ERROR: 0:56: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +ERROR: 0:59: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +ERROR: 0:62: '' : name too long +ERROR: 0:62: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +ERROR: 0:67: '' : numeric literal too long +ERROR: 0:70: '' : name too long +ERROR: 0:70: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +ERROR: 26 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:9 Sequence +0:9 move second child to first child ( temp highp int) +0:9 'E1' ( global highp int) +0:9 Constant: +0:9 -1 (const int) +0:10 Sequence +0:10 move second child to first child ( temp highp int) +0:10 'E2' ( global highp int) +0:10 Constant: +0:10 -1 (const int) +0:11 Sequence +0:11 move second child to first child ( temp highp int) +0:11 'B' ( global highp int) +0:11 Constant: +0:11 -1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp highp int) +0:13 'OE' ( global highp int) +0:13 Constant: +0:13 -1 (const int) +0:14 Sequence +0:14 move second child to first child ( temp highp int) +0:14 'HE' ( global highp int) +0:14 Constant: +0:14 -1 (const int) +0:17 Sequence +0:17 move second child to first child ( temp highp float) +0:17 'F' ( global highp float) +0:17 Constant: +0:17 1.012346 +0:20 Sequence +0:20 move second child to first child ( temp highp float) +0:20 'G' ( global highp float) +0:20 Constant: +0:20 1.012346 +0:23 Sequence +0:23 move second child to first child ( temp highp float) +0:23 'E3' ( global highp float) +0:23 Constant: +0:23 1.012346 +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 move second child to first child ( temp highp 4-component vector of float) +0:27 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:28 Construct vec4 ( temp highp 4-component vector of float) +0:27 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) +0:28 Convert int to float ( temp highp float) +0:28 'B' ( global highp int) +0:28 'F' ( global highp float) +0:28 'G' ( global highp float) +0:33 Sequence +0:33 move second child to first child ( temp highp int) +0:33 'superH' ( global highp int) +0:33 Constant: +0:33 -1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp highp int) +0:34 'superO' ( global highp int) +0:34 Constant: +0:34 -1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp highp int) +0:35 'superI' ( global highp int) +0:35 Constant: +0:35 -1 (const int) +0:36 Sequence +0:36 move second child to first child ( temp highp float) +0:36 'superF' ( global highp float) +0:36 Constant: +0:36 1.012346 +0:? Linker Objects +0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) +0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) +0:? 'E1' ( global highp int) +0:? 'E2' ( global highp int) +0:? 'B' ( global highp int) +0:? 'OE' ( global highp int) +0:? 'HE' ( global highp int) +0:? 'F' ( global highp float) +0:? 'G' ( global highp float) +0:? 'E3' ( global highp float) +0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' ( global highp float) +0:? 'superH' ( global highp int) +0:? 'superO' ( global highp int) +0:? 'superI' ( global highp int) +0:? 'superF' ( global highp float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + + +Linked vertex stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:9 Sequence +0:9 move second child to first child ( temp highp int) +0:9 'E1' ( global highp int) +0:9 Constant: +0:9 -1 (const int) +0:10 Sequence +0:10 move second child to first child ( temp highp int) +0:10 'E2' ( global highp int) +0:10 Constant: +0:10 -1 (const int) +0:11 Sequence +0:11 move second child to first child ( temp highp int) +0:11 'B' ( global highp int) +0:11 Constant: +0:11 -1 (const int) +0:13 Sequence +0:13 move second child to first child ( temp highp int) +0:13 'OE' ( global highp int) +0:13 Constant: +0:13 -1 (const int) +0:14 Sequence +0:14 move second child to first child ( temp highp int) +0:14 'HE' ( global highp int) +0:14 Constant: +0:14 -1 (const int) +0:17 Sequence +0:17 move second child to first child ( temp highp float) +0:17 'F' ( global highp float) +0:17 Constant: +0:17 1.012346 +0:20 Sequence +0:20 move second child to first child ( temp highp float) +0:20 'G' ( global highp float) +0:20 Constant: +0:20 1.012346 +0:23 Sequence +0:23 move second child to first child ( temp highp float) +0:23 'E3' ( global highp float) +0:23 Constant: +0:23 1.012346 +0:25 Function Definition: main( ( global void) +0:25 Function Parameters: +0:27 Sequence +0:27 move second child to first child ( temp highp 4-component vector of float) +0:27 'gl_Position' ( gl_Position highp 4-component vector of float Position) +0:28 Construct vec4 ( temp highp 4-component vector of float) +0:27 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) +0:28 Convert int to float ( temp highp float) +0:28 'B' ( global highp int) +0:28 'F' ( global highp float) +0:28 'G' ( global highp float) +0:33 Sequence +0:33 move second child to first child ( temp highp int) +0:33 'superH' ( global highp int) +0:33 Constant: +0:33 -1 (const int) +0:34 Sequence +0:34 move second child to first child ( temp highp int) +0:34 'superO' ( global highp int) +0:34 Constant: +0:34 -1 (const int) +0:35 Sequence +0:35 move second child to first child ( temp highp int) +0:35 'superI' ( global highp int) +0:35 Constant: +0:35 -1 (const int) +0:36 Sequence +0:36 move second child to first child ( temp highp float) +0:36 'superF' ( global highp float) +0:36 Constant: +0:36 1.012346 +0:? Linker Objects +0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) +0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' ( in highp float) +0:? 'E1' ( global highp int) +0:? 'E2' ( global highp int) +0:? 'B' ( global highp int) +0:? 'OE' ( global highp int) +0:? 'HE' ( global highp int) +0:? 'F' ( global highp float) +0:? 'G' ( global highp float) +0:? 'E3' ( global highp float) +0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' ( global highp float) +0:? 'superH' ( global highp int) +0:? 'superO' ( global highp int) +0:? 'superI' ( global highp int) +0:? 'superF' ( global highp float) +0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/tokenPaste.vert.out b/deps/glslang/glslang/Test/baseResults/tokenPaste.vert.out new file mode 100644 index 0000000000..b5ba9a5f87 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/tokenPaste.vert.out @@ -0,0 +1,119 @@ +tokenPaste.vert +ERROR: 0:38: '##' : unexpected location +ERROR: 0:40: '##' : unexpected location; end of replacement list +ERROR: 0:49: '##' : combined tokens are too long +ERROR: 0:52: '##' : not supported for these tokens +ERROR: 0:69: '##' : combined token is invalid +ERROR: 0:82: 'macro expansion' : Too few args in Macro rec +ERROR: 0:82: '##' : unexpected location +ERROR: 0:82: '##' : unexpected location +ERROR: 0:86: '##' : unexpected location; end of argument +ERROR: 9 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:52 Sequence +0:52 move second child to first child ( temp int) +0:52 'a' ( global int) +0:52 Constant: +0:52 11 (const int) +0:58 Sequence +0:58 move second child to first child ( temp int) +0:58 'cop' ( global int) +0:58 Constant: +0:58 160 (const int) +0:59 Sequence +0:59 move second child to first child ( temp bool) +0:59 'dop' ( global bool) +0:59 Constant: +0:59 true (const bool) +0:63 Function Definition: ShouldntExpandToThis( ( global void) +0:63 Function Parameters: +0:65 Sequence +0:65 Sequence +0:65 move second child to first child ( temp int) +0:65 'e' ( temp int) +0:65 Constant: +0:65 16 (const int) +0:66 right shift second child into first child ( temp int) +0:66 'e' ( temp int) +0:66 Constant: +0:66 2 (const int) +0:69 Sequence +0:69 move second child to first child ( temp bool) +0:69 'f' ( temp bool) +0:69 Compare Greater Than ( temp bool) +0:69 'e' ( temp int) +0:69 Constant: +0:69 5 (const int) +0:? Linker Objects +0:? 'SecondExpansion' ( global int) +0:? 'PostPasteExpansion' ( global int) +0:? 'foo27' ( global float) +0:? 'foo155' ( uniform float) +0:? 'foo719' ( global float) +0:? 'barfoo' ( uniform float) +0:? 'argless' ( global float) +0:? 'dc1' ( global float) +0:? 'dc2' ( global float) +0:? 'foo875' ( uniform float) +0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345' ( global float) +0:? 'a' ( global int) +0:? 'aop' ( const int) +0:? 10 (const int) +0:? 'bop' ( const int) +0:? 4 (const int) +0:? 'cop' ( global int) +0:? 'dop' ( global bool) +0:? 'argPaste2' ( uniform int) +0:? 'argPaste20suff' ( uniform int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +Shader version: 450 +ERROR: node is still EOpNull! +0:52 Sequence +0:52 move second child to first child ( temp int) +0:52 'a' ( global int) +0:52 Constant: +0:52 11 (const int) +0:58 Sequence +0:58 move second child to first child ( temp int) +0:58 'cop' ( global int) +0:58 Constant: +0:58 160 (const int) +0:59 Sequence +0:59 move second child to first child ( temp bool) +0:59 'dop' ( global bool) +0:59 Constant: +0:59 true (const bool) +0:? Linker Objects +0:? 'SecondExpansion' ( global int) +0:? 'PostPasteExpansion' ( global int) +0:? 'foo27' ( global float) +0:? 'foo155' ( uniform float) +0:? 'foo719' ( global float) +0:? 'barfoo' ( uniform float) +0:? 'argless' ( global float) +0:? 'dc1' ( global float) +0:? 'dc2' ( global float) +0:? 'foo875' ( uniform float) +0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345' ( global float) +0:? 'a' ( global int) +0:? 'aop' ( const int) +0:? 10 (const int) +0:? 'bop' ( const int) +0:? 4 (const int) +0:? 'cop' ( global int) +0:? 'dop' ( global bool) +0:? 'argPaste2' ( uniform int) +0:? 'argPaste20suff' ( uniform int) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/types.frag.out b/deps/glslang/glslang/Test/baseResults/types.frag.out new file mode 100644 index 0000000000..94815b66ec --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/types.frag.out @@ -0,0 +1,677 @@ +types.frag +Shader version: 130 +0:? Sequence +0:33 Function Definition: main( ( global void) +0:33 Function Parameters: +0:35 Sequence +0:35 Sequence +0:35 move second child to first child ( temp bool) +0:35 'b' ( temp bool) +0:35 logical-and ( temp bool) +0:35 'u_b' ( uniform bool) +0:35 'i_b' ( uniform bool) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of bool) +0:36 'b2' ( temp 2-component vector of bool) +0:36 Construct bvec2 ( temp 2-component vector of bool) +0:36 logical-and ( temp bool) +0:36 logical-and ( temp bool) +0:36 logical-and ( temp bool) +0:36 direct index ( temp bool) +0:36 'u_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp bool) +0:36 'i_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp bool) +0:36 'u_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 1 (const int) +0:36 direct index ( temp bool) +0:36 'i_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 3-component vector of bool) +0:37 'b3' ( temp 3-component vector of bool) +0:37 Construct bvec3 ( temp 3-component vector of bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 direct index ( temp bool) +0:37 'u_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp bool) +0:37 'i_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp bool) +0:37 'u_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 1 (const int) +0:37 direct index ( temp bool) +0:37 'i_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 1 (const int) +0:37 direct index ( temp bool) +0:37 'u_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 2 (const int) +0:37 direct index ( temp bool) +0:37 'i_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 2 (const int) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of bool) +0:38 'b4' ( temp 4-component vector of bool) +0:38 Construct bvec4 ( temp 4-component vector of bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 2 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 2 (const int) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 3 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp int) +0:40 'i' ( temp int) +0:40 add ( temp int) +0:40 'u_i' ( uniform int) +0:40 'i_i' ( flat in int) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of int) +0:41 'i2' ( temp 2-component vector of int) +0:41 add ( temp 2-component vector of int) +0:41 'u_i2' ( uniform 2-component vector of int) +0:41 'i_i2' ( flat in 2-component vector of int) +0:42 Sequence +0:42 move second child to first child ( temp 3-component vector of int) +0:42 'i3' ( temp 3-component vector of int) +0:42 add ( temp 3-component vector of int) +0:42 'u_i3' ( uniform 3-component vector of int) +0:42 'i_i3' ( flat in 3-component vector of int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'i4' ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:43 'u_i4' ( uniform 4-component vector of int) +0:43 'i_i4' ( flat in 4-component vector of int) +0:45 Sequence +0:45 move second child to first child ( temp float) +0:45 'f' ( temp float) +0:45 add ( temp float) +0:45 'u_f' ( uniform float) +0:45 'i_f' ( smooth in float) +0:46 Sequence +0:46 move second child to first child ( temp 2-component vector of float) +0:46 'f2' ( temp 2-component vector of float) +0:46 add ( temp 2-component vector of float) +0:46 'u_f2' ( uniform 2-component vector of float) +0:46 'i_f2' ( smooth in 2-component vector of float) +0:47 Sequence +0:47 move second child to first child ( temp 3-component vector of float) +0:47 'f3' ( temp 3-component vector of float) +0:47 add ( temp 3-component vector of float) +0:47 'u_f3' ( uniform 3-component vector of float) +0:47 'i_f3' ( smooth in 3-component vector of float) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'f4' ( temp 4-component vector of float) +0:48 add ( temp 4-component vector of float) +0:48 'u_f4' ( uniform 4-component vector of float) +0:48 'i_f4' ( smooth in 4-component vector of float) +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:60 Test condition and select ( temp 4-component vector of float) +0:60 Condition +0:59 logical-or ( temp bool) +0:58 logical-or ( temp bool) +0:57 logical-or ( temp bool) +0:56 logical-or ( temp bool) +0:55 logical-or ( temp bool) +0:54 logical-or ( temp bool) +0:53 logical-or ( temp bool) +0:52 logical-or ( temp bool) +0:51 logical-or ( temp bool) +0:51 'b' ( temp bool) +0:52 direct index ( temp bool) +0:52 'b2' ( temp 2-component vector of bool) +0:52 Constant: +0:52 0 (const int) +0:53 direct index ( temp bool) +0:53 'b2' ( temp 2-component vector of bool) +0:53 Constant: +0:53 1 (const int) +0:54 direct index ( temp bool) +0:54 'b3' ( temp 3-component vector of bool) +0:54 Constant: +0:54 0 (const int) +0:55 direct index ( temp bool) +0:55 'b3' ( temp 3-component vector of bool) +0:55 Constant: +0:55 1 (const int) +0:56 direct index ( temp bool) +0:56 'b3' ( temp 3-component vector of bool) +0:56 Constant: +0:56 2 (const int) +0:57 direct index ( temp bool) +0:57 'b4' ( temp 4-component vector of bool) +0:57 Constant: +0:57 0 (const int) +0:58 direct index ( temp bool) +0:58 'b4' ( temp 4-component vector of bool) +0:58 Constant: +0:58 1 (const int) +0:59 direct index ( temp bool) +0:59 'b4' ( temp 4-component vector of bool) +0:59 Constant: +0:59 2 (const int) +0:60 direct index ( temp bool) +0:60 'b4' ( temp 4-component vector of bool) +0:60 Constant: +0:60 3 (const int) +0:60 true case +0:79 Construct vec4 ( temp 4-component vector of float) +0:79 add ( temp float) +0:78 add ( temp float) +0:77 add ( temp float) +0:76 add ( temp float) +0:75 add ( temp float) +0:74 add ( temp float) +0:73 add ( temp float) +0:72 add ( temp float) +0:71 add ( temp float) +0:70 add ( temp float) +0:69 Convert int to float ( temp float) +0:69 add ( temp int) +0:68 add ( temp int) +0:67 add ( temp int) +0:66 add ( temp int) +0:65 add ( temp int) +0:64 add ( temp int) +0:63 add ( temp int) +0:62 add ( temp int) +0:61 add ( temp int) +0:61 'i' ( temp int) +0:62 direct index ( temp int) +0:62 'i2' ( temp 2-component vector of int) +0:62 Constant: +0:62 0 (const int) +0:63 direct index ( temp int) +0:63 'i2' ( temp 2-component vector of int) +0:63 Constant: +0:63 1 (const int) +0:64 direct index ( temp int) +0:64 'i3' ( temp 3-component vector of int) +0:64 Constant: +0:64 0 (const int) +0:65 direct index ( temp int) +0:65 'i3' ( temp 3-component vector of int) +0:65 Constant: +0:65 1 (const int) +0:66 direct index ( temp int) +0:66 'i3' ( temp 3-component vector of int) +0:66 Constant: +0:66 2 (const int) +0:67 direct index ( temp int) +0:67 'i4' ( temp 4-component vector of int) +0:67 Constant: +0:67 0 (const int) +0:68 direct index ( temp int) +0:68 'i4' ( temp 4-component vector of int) +0:68 Constant: +0:68 1 (const int) +0:69 direct index ( temp int) +0:69 'i4' ( temp 4-component vector of int) +0:69 Constant: +0:69 2 (const int) +0:70 direct index ( temp int) +0:70 'i4' ( temp 4-component vector of int) +0:70 Constant: +0:70 3 (const int) +0:71 'f' ( temp float) +0:72 direct index ( temp float) +0:72 'f2' ( temp 2-component vector of float) +0:72 Constant: +0:72 0 (const int) +0:73 direct index ( temp float) +0:73 'f2' ( temp 2-component vector of float) +0:73 Constant: +0:73 1 (const int) +0:74 direct index ( temp float) +0:74 'f3' ( temp 3-component vector of float) +0:74 Constant: +0:74 0 (const int) +0:75 direct index ( temp float) +0:75 'f3' ( temp 3-component vector of float) +0:75 Constant: +0:75 1 (const int) +0:76 direct index ( temp float) +0:76 'f3' ( temp 3-component vector of float) +0:76 Constant: +0:76 2 (const int) +0:77 direct index ( temp float) +0:77 'f4' ( temp 4-component vector of float) +0:77 Constant: +0:77 0 (const int) +0:78 direct index ( temp float) +0:78 'f4' ( temp 4-component vector of float) +0:78 Constant: +0:78 1 (const int) +0:79 direct index ( temp float) +0:79 'f4' ( temp 4-component vector of float) +0:79 Constant: +0:79 2 (const int) +0:80 direct index ( temp float) +0:80 'f4' ( temp 4-component vector of float) +0:80 Constant: +0:80 3 (const int) +0:60 false case +0:80 Constant: +0:80 1.000000 +0:80 1.000000 +0:80 1.000000 +0:80 1.000000 +0:? Linker Objects +0:? 'u_b' ( uniform bool) +0:? 'u_b2' ( uniform 2-component vector of bool) +0:? 'u_b3' ( uniform 3-component vector of bool) +0:? 'u_b4' ( uniform 4-component vector of bool) +0:? 'u_i' ( uniform int) +0:? 'u_i2' ( uniform 2-component vector of int) +0:? 'u_i3' ( uniform 3-component vector of int) +0:? 'u_i4' ( uniform 4-component vector of int) +0:? 'u_f' ( uniform float) +0:? 'u_f2' ( uniform 2-component vector of float) +0:? 'u_f3' ( uniform 3-component vector of float) +0:? 'u_f4' ( uniform 4-component vector of float) +0:? 'i_b' ( uniform bool) +0:? 'i_b2' ( uniform 2-component vector of bool) +0:? 'i_b3' ( uniform 3-component vector of bool) +0:? 'i_b4' ( uniform 4-component vector of bool) +0:? 'i_i' ( flat in int) +0:? 'i_i2' ( flat in 2-component vector of int) +0:? 'i_i3' ( flat in 3-component vector of int) +0:? 'i_i4' ( flat in 4-component vector of int) +0:? 'i_f' ( smooth in float) +0:? 'i_f2' ( smooth in 2-component vector of float) +0:? 'i_f3' ( smooth in 3-component vector of float) +0:? 'i_f4' ( smooth in 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:33 Function Definition: main( ( global void) +0:33 Function Parameters: +0:35 Sequence +0:35 Sequence +0:35 move second child to first child ( temp bool) +0:35 'b' ( temp bool) +0:35 logical-and ( temp bool) +0:35 'u_b' ( uniform bool) +0:35 'i_b' ( uniform bool) +0:36 Sequence +0:36 move second child to first child ( temp 2-component vector of bool) +0:36 'b2' ( temp 2-component vector of bool) +0:36 Construct bvec2 ( temp 2-component vector of bool) +0:36 logical-and ( temp bool) +0:36 logical-and ( temp bool) +0:36 logical-and ( temp bool) +0:36 direct index ( temp bool) +0:36 'u_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp bool) +0:36 'i_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 0 (const int) +0:36 direct index ( temp bool) +0:36 'u_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 1 (const int) +0:36 direct index ( temp bool) +0:36 'i_b2' ( uniform 2-component vector of bool) +0:36 Constant: +0:36 1 (const int) +0:37 Sequence +0:37 move second child to first child ( temp 3-component vector of bool) +0:37 'b3' ( temp 3-component vector of bool) +0:37 Construct bvec3 ( temp 3-component vector of bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 logical-and ( temp bool) +0:37 direct index ( temp bool) +0:37 'u_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp bool) +0:37 'i_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 0 (const int) +0:37 direct index ( temp bool) +0:37 'u_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 1 (const int) +0:37 direct index ( temp bool) +0:37 'i_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 1 (const int) +0:37 direct index ( temp bool) +0:37 'u_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 2 (const int) +0:37 direct index ( temp bool) +0:37 'i_b3' ( uniform 3-component vector of bool) +0:37 Constant: +0:37 2 (const int) +0:38 Sequence +0:38 move second child to first child ( temp 4-component vector of bool) +0:38 'b4' ( temp 4-component vector of bool) +0:38 Construct bvec4 ( temp 4-component vector of bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 logical-and ( temp bool) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 0 (const int) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 1 (const int) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 2 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 2 (const int) +0:38 direct index ( temp bool) +0:38 'u_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 3 (const int) +0:38 direct index ( temp bool) +0:38 'i_b4' ( uniform 4-component vector of bool) +0:38 Constant: +0:38 3 (const int) +0:40 Sequence +0:40 move second child to first child ( temp int) +0:40 'i' ( temp int) +0:40 add ( temp int) +0:40 'u_i' ( uniform int) +0:40 'i_i' ( flat in int) +0:41 Sequence +0:41 move second child to first child ( temp 2-component vector of int) +0:41 'i2' ( temp 2-component vector of int) +0:41 add ( temp 2-component vector of int) +0:41 'u_i2' ( uniform 2-component vector of int) +0:41 'i_i2' ( flat in 2-component vector of int) +0:42 Sequence +0:42 move second child to first child ( temp 3-component vector of int) +0:42 'i3' ( temp 3-component vector of int) +0:42 add ( temp 3-component vector of int) +0:42 'u_i3' ( uniform 3-component vector of int) +0:42 'i_i3' ( flat in 3-component vector of int) +0:43 Sequence +0:43 move second child to first child ( temp 4-component vector of int) +0:43 'i4' ( temp 4-component vector of int) +0:43 add ( temp 4-component vector of int) +0:43 'u_i4' ( uniform 4-component vector of int) +0:43 'i_i4' ( flat in 4-component vector of int) +0:45 Sequence +0:45 move second child to first child ( temp float) +0:45 'f' ( temp float) +0:45 add ( temp float) +0:45 'u_f' ( uniform float) +0:45 'i_f' ( smooth in float) +0:46 Sequence +0:46 move second child to first child ( temp 2-component vector of float) +0:46 'f2' ( temp 2-component vector of float) +0:46 add ( temp 2-component vector of float) +0:46 'u_f2' ( uniform 2-component vector of float) +0:46 'i_f2' ( smooth in 2-component vector of float) +0:47 Sequence +0:47 move second child to first child ( temp 3-component vector of float) +0:47 'f3' ( temp 3-component vector of float) +0:47 add ( temp 3-component vector of float) +0:47 'u_f3' ( uniform 3-component vector of float) +0:47 'i_f3' ( smooth in 3-component vector of float) +0:48 Sequence +0:48 move second child to first child ( temp 4-component vector of float) +0:48 'f4' ( temp 4-component vector of float) +0:48 add ( temp 4-component vector of float) +0:48 'u_f4' ( uniform 4-component vector of float) +0:48 'i_f4' ( smooth in 4-component vector of float) +0:50 move second child to first child ( temp 4-component vector of float) +0:50 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:60 Test condition and select ( temp 4-component vector of float) +0:60 Condition +0:59 logical-or ( temp bool) +0:58 logical-or ( temp bool) +0:57 logical-or ( temp bool) +0:56 logical-or ( temp bool) +0:55 logical-or ( temp bool) +0:54 logical-or ( temp bool) +0:53 logical-or ( temp bool) +0:52 logical-or ( temp bool) +0:51 logical-or ( temp bool) +0:51 'b' ( temp bool) +0:52 direct index ( temp bool) +0:52 'b2' ( temp 2-component vector of bool) +0:52 Constant: +0:52 0 (const int) +0:53 direct index ( temp bool) +0:53 'b2' ( temp 2-component vector of bool) +0:53 Constant: +0:53 1 (const int) +0:54 direct index ( temp bool) +0:54 'b3' ( temp 3-component vector of bool) +0:54 Constant: +0:54 0 (const int) +0:55 direct index ( temp bool) +0:55 'b3' ( temp 3-component vector of bool) +0:55 Constant: +0:55 1 (const int) +0:56 direct index ( temp bool) +0:56 'b3' ( temp 3-component vector of bool) +0:56 Constant: +0:56 2 (const int) +0:57 direct index ( temp bool) +0:57 'b4' ( temp 4-component vector of bool) +0:57 Constant: +0:57 0 (const int) +0:58 direct index ( temp bool) +0:58 'b4' ( temp 4-component vector of bool) +0:58 Constant: +0:58 1 (const int) +0:59 direct index ( temp bool) +0:59 'b4' ( temp 4-component vector of bool) +0:59 Constant: +0:59 2 (const int) +0:60 direct index ( temp bool) +0:60 'b4' ( temp 4-component vector of bool) +0:60 Constant: +0:60 3 (const int) +0:60 true case +0:79 Construct vec4 ( temp 4-component vector of float) +0:79 add ( temp float) +0:78 add ( temp float) +0:77 add ( temp float) +0:76 add ( temp float) +0:75 add ( temp float) +0:74 add ( temp float) +0:73 add ( temp float) +0:72 add ( temp float) +0:71 add ( temp float) +0:70 add ( temp float) +0:69 Convert int to float ( temp float) +0:69 add ( temp int) +0:68 add ( temp int) +0:67 add ( temp int) +0:66 add ( temp int) +0:65 add ( temp int) +0:64 add ( temp int) +0:63 add ( temp int) +0:62 add ( temp int) +0:61 add ( temp int) +0:61 'i' ( temp int) +0:62 direct index ( temp int) +0:62 'i2' ( temp 2-component vector of int) +0:62 Constant: +0:62 0 (const int) +0:63 direct index ( temp int) +0:63 'i2' ( temp 2-component vector of int) +0:63 Constant: +0:63 1 (const int) +0:64 direct index ( temp int) +0:64 'i3' ( temp 3-component vector of int) +0:64 Constant: +0:64 0 (const int) +0:65 direct index ( temp int) +0:65 'i3' ( temp 3-component vector of int) +0:65 Constant: +0:65 1 (const int) +0:66 direct index ( temp int) +0:66 'i3' ( temp 3-component vector of int) +0:66 Constant: +0:66 2 (const int) +0:67 direct index ( temp int) +0:67 'i4' ( temp 4-component vector of int) +0:67 Constant: +0:67 0 (const int) +0:68 direct index ( temp int) +0:68 'i4' ( temp 4-component vector of int) +0:68 Constant: +0:68 1 (const int) +0:69 direct index ( temp int) +0:69 'i4' ( temp 4-component vector of int) +0:69 Constant: +0:69 2 (const int) +0:70 direct index ( temp int) +0:70 'i4' ( temp 4-component vector of int) +0:70 Constant: +0:70 3 (const int) +0:71 'f' ( temp float) +0:72 direct index ( temp float) +0:72 'f2' ( temp 2-component vector of float) +0:72 Constant: +0:72 0 (const int) +0:73 direct index ( temp float) +0:73 'f2' ( temp 2-component vector of float) +0:73 Constant: +0:73 1 (const int) +0:74 direct index ( temp float) +0:74 'f3' ( temp 3-component vector of float) +0:74 Constant: +0:74 0 (const int) +0:75 direct index ( temp float) +0:75 'f3' ( temp 3-component vector of float) +0:75 Constant: +0:75 1 (const int) +0:76 direct index ( temp float) +0:76 'f3' ( temp 3-component vector of float) +0:76 Constant: +0:76 2 (const int) +0:77 direct index ( temp float) +0:77 'f4' ( temp 4-component vector of float) +0:77 Constant: +0:77 0 (const int) +0:78 direct index ( temp float) +0:78 'f4' ( temp 4-component vector of float) +0:78 Constant: +0:78 1 (const int) +0:79 direct index ( temp float) +0:79 'f4' ( temp 4-component vector of float) +0:79 Constant: +0:79 2 (const int) +0:80 direct index ( temp float) +0:80 'f4' ( temp 4-component vector of float) +0:80 Constant: +0:80 3 (const int) +0:60 false case +0:80 Constant: +0:80 1.000000 +0:80 1.000000 +0:80 1.000000 +0:80 1.000000 +0:? Linker Objects +0:? 'u_b' ( uniform bool) +0:? 'u_b2' ( uniform 2-component vector of bool) +0:? 'u_b3' ( uniform 3-component vector of bool) +0:? 'u_b4' ( uniform 4-component vector of bool) +0:? 'u_i' ( uniform int) +0:? 'u_i2' ( uniform 2-component vector of int) +0:? 'u_i3' ( uniform 3-component vector of int) +0:? 'u_i4' ( uniform 4-component vector of int) +0:? 'u_f' ( uniform float) +0:? 'u_f2' ( uniform 2-component vector of float) +0:? 'u_f3' ( uniform 3-component vector of float) +0:? 'u_f4' ( uniform 4-component vector of float) +0:? 'i_b' ( uniform bool) +0:? 'i_b2' ( uniform 2-component vector of bool) +0:? 'i_b3' ( uniform 3-component vector of bool) +0:? 'i_b4' ( uniform 4-component vector of bool) +0:? 'i_i' ( flat in int) +0:? 'i_i2' ( flat in 2-component vector of int) +0:? 'i_i3' ( flat in 3-component vector of int) +0:? 'i_i4' ( flat in 4-component vector of int) +0:? 'i_f' ( smooth in float) +0:? 'i_f2' ( smooth in 2-component vector of float) +0:? 'i_f3' ( smooth in 3-component vector of float) +0:? 'i_f4' ( smooth in 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/uint.frag.out b/deps/glslang/glslang/Test/baseResults/uint.frag.out new file mode 100644 index 0000000000..3a12d6b7cb --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/uint.frag.out @@ -0,0 +1,607 @@ +uint.frag +ERROR: 0:2: 'uint' : must be qualified as flat in +ERROR: 0:6: 'in' : cannot be bool +ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const initializer +ERROR: 0:24: 'const' : non-matching or non-convertible constant type for const initializer +ERROR: 0:34: 'const' : non-matching or non-convertible constant type for const initializer +ERROR: 0:37: 'const' : non-matching or non-convertible constant type for const initializer +ERROR: 0:48: '=' : cannot convert from ' const int' to ' temp mediump uint' +ERROR: 0:51: '=' : cannot convert from ' const int' to ' temp mediump uint' +ERROR: 0:63: 'float' : type requires declaration of default precision qualifier +ERROR: 9 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp mediump int) +0:17 'count' ( temp mediump int) +0:17 Constant: +0:17 1 (const int) +0:19 Sequence +0:19 move second child to first child ( temp mediump uint) +0:19 'u' ( temp mediump uint) +0:19 add ( temp mediump uint) +0:19 direct index ( temp mediump uint) +0:19 't' ( flat in mediump 2-component vector of uint) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 3 (const uint) +0:27 Test condition and select ( temp void) +0:27 Condition +0:27 Constant: +0:27 true (const bool) +0:27 true case +0:28 multiply second child into first child ( temp mediump int) +0:28 'count' ( temp mediump int) +0:28 Constant: +0:28 2 (const int) +0:29 Test condition and select ( temp void) +0:29 Condition +0:29 Constant: +0:29 true (const bool) +0:29 true case +0:30 multiply second child into first child ( temp mediump int) +0:30 'count' ( temp mediump int) +0:30 Constant: +0:30 3 (const int) +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Constant: +0:31 false (const bool) +0:31 true case +0:32 multiply second child into first child ( temp mediump int) +0:32 'count' ( temp mediump int) +0:32 Constant: +0:32 5 (const int) +0:41 Test condition and select ( temp void) +0:41 Condition +0:41 Constant: +0:41 true (const bool) +0:41 true case +0:42 multiply second child into first child ( temp mediump int) +0:42 'count' ( temp mediump int) +0:42 Constant: +0:42 7 (const int) +0:43 Test condition and select ( temp void) +0:43 Condition +0:43 Constant: +0:43 true (const bool) +0:43 true case +0:44 multiply second child into first child ( temp mediump int) +0:44 'count' ( temp mediump int) +0:44 Constant: +0:44 11 (const int) +0:45 Test condition and select ( temp void) +0:45 Condition +0:45 Constant: +0:45 false (const bool) +0:45 true case +0:46 multiply second child into first child ( temp mediump int) +0:46 'count' ( temp mediump int) +0:46 Constant: +0:46 13 (const int) +0:49 Sequence +0:49 move second child to first child ( temp mediump int) +0:49 'shiftedii' ( temp mediump int) +0:49 Constant: +0:49 -1 (const int) +0:50 Sequence +0:50 move second child to first child ( temp mediump uint) +0:50 'shiftedui' ( temp mediump uint) +0:50 Constant: +0:50 4194303 (const uint) +0:52 Sequence +0:52 move second child to first child ( temp mediump int) +0:52 'shiftediu' ( temp mediump int) +0:52 Constant: +0:52 -1 (const int) +0:53 Sequence +0:53 move second child to first child ( temp mediump uint) +0:53 'shifteduu' ( temp mediump uint) +0:53 Constant: +0:53 4194303 (const uint) +0:55 Test condition and select ( temp void) +0:55 Condition +0:55 Compare Equal ( temp bool) +0:55 'shiftedii' ( temp mediump int) +0:55 'shiftediu' ( temp mediump int) +0:55 true case +0:56 move second child to first child ( temp mediump 4-component vector of uint) +0:56 'c' ( out mediump 4-component vector of uint) +0:56 texture ( global lowp 4-component vector of uint, operation at highp) +0:56 'usampler' ( uniform lowp usampler2D) +0:56 'tc' ( smooth in highp 2-component vector of float) +0:57 Test condition and select ( temp void) +0:57 Condition +0:57 Compare Equal ( temp bool) +0:57 'shiftedui' ( temp mediump uint) +0:57 'shifteduu' ( temp mediump uint) +0:57 true case +0:58 move second child to first child ( temp mediump 4-component vector of uint) +0:58 'c' ( out mediump 4-component vector of uint) +0:58 texture ( global lowp 4-component vector of uint, operation at highp) +0:58 'usampler' ( uniform lowp usampler2D) +0:58 add ( temp highp 2-component vector of float) +0:58 'tc' ( smooth in highp 2-component vector of float) +0:58 Constant: +0:58 1.000000 +0:59 Test condition and select ( temp void) +0:59 Condition +0:59 Compare Equal ( temp bool) +0:59 'shiftedii' ( temp mediump int) +0:59 Convert uint to int ( temp int) +0:59 'shiftedui' ( temp mediump uint) +0:59 true case +0:60 move second child to first child ( temp mediump 4-component vector of uint) +0:60 'c' ( out mediump 4-component vector of uint) +0:60 texture ( global lowp 4-component vector of uint, operation at highp) +0:60 'usampler' ( uniform lowp usampler2D) +0:60 subtract ( temp highp 2-component vector of float) +0:60 'tc' ( smooth in highp 2-component vector of float) +0:60 Constant: +0:60 2.000000 +0:60 2.000000 +0:62 Test condition and select ( temp void) +0:62 Condition +0:62 Compare Greater Than ( temp bool) +0:62 direct index ( temp mediump uint) +0:62 't' ( flat in mediump 2-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 4 (const uint) +0:62 true case +0:63 Sequence +0:63 Sequence +0:63 move second child to first child ( temp mediump float) +0:63 'af' ( temp mediump float) +0:63 Convert uint to float ( temp mediump float) +0:63 'u' ( temp mediump uint) +0:64 Sequence +0:64 move second child to first child ( temp bool) +0:64 'ab' ( temp bool) +0:64 Convert uint to bool ( temp bool) +0:64 'u' ( temp mediump uint) +0:65 Sequence +0:65 move second child to first child ( temp mediump int) +0:65 'ai' ( temp mediump int) +0:65 Convert uint to int ( temp mediump int) +0:65 'u' ( temp mediump uint) +0:67 add second child into first child ( temp mediump 4-component vector of uint) +0:67 'c' ( out mediump 4-component vector of uint) +0:67 Construct uvec4 ( temp mediump 4-component vector of uint) +0:67 Convert float to uint ( temp mediump uint) +0:67 'af' ( temp mediump float) +0:67 Convert bool to uint ( temp mediump uint) +0:67 'ab' ( temp bool) +0:67 Convert int to uint ( temp mediump uint) +0:67 'ai' ( temp mediump int) +0:67 Convert int to uint ( temp mediump uint) +0:67 'count' ( temp mediump int) +0:75 Test condition and select ( temp void) +0:75 Condition +0:75 Constant: +0:75 true (const bool) +0:75 true case +0:76 multiply second child into first child ( temp mediump int) +0:76 'count' ( temp mediump int) +0:76 Constant: +0:76 17 (const int) +0:78 Test condition and select ( temp void) +0:78 Condition +0:78 Constant: +0:78 false (const bool) +0:78 true case +0:79 multiply second child into first child ( temp mediump int) +0:79 'count' ( temp mediump int) +0:79 Constant: +0:79 19 (const int) +0:81 Test condition and select ( temp void) +0:81 Condition +0:81 Constant: +0:81 true (const bool) +0:81 true case +0:82 multiply second child into first child ( temp mediump int) +0:82 'count' ( temp mediump int) +0:82 Constant: +0:82 23 (const int) +0:84 Test condition and select ( temp void) +0:84 Condition +0:84 Constant: +0:84 true (const bool) +0:84 true case +0:85 multiply second child into first child ( temp mediump int) +0:85 'count' ( temp mediump int) +0:85 Constant: +0:85 27 (const int) +0:87 Sequence +0:87 move second child to first child ( temp mediump uint) +0:87 'mask1' ( temp mediump uint) +0:87 Constant: +0:87 161 (const uint) +0:88 Sequence +0:88 move second child to first child ( temp mediump uint) +0:88 'mask2' ( temp mediump uint) +0:88 Constant: +0:88 2576 (const uint) +0:89 Sequence +0:89 move second child to first child ( temp mediump uint) +0:89 'mask3' ( temp mediump uint) +0:89 left-shift ( temp mediump uint) +0:89 'mask1' ( temp mediump uint) +0:89 Constant: +0:89 4 (const int) +0:90 Sequence +0:90 move second child to first child ( temp mediump uint) +0:90 'mask4' ( temp mediump uint) +0:90 Constant: +0:90 2737 (const uint) +0:92 Test condition and select ( temp void) +0:92 Condition +0:92 Compare Equal ( temp bool) +0:92 'mask3' ( temp mediump uint) +0:92 'mask2' ( temp mediump uint) +0:92 true case +0:93 multiply second child into first child ( temp mediump int) +0:93 'count' ( temp mediump int) +0:93 Constant: +0:93 100 (const int) +0:95 Test condition and select ( temp void) +0:95 Condition +0:95 Compare Not Equal ( temp bool) +0:95 bitwise and ( temp mediump uint) +0:95 'mask3' ( temp mediump uint) +0:95 'mask1' ( temp mediump uint) +0:95 Constant: +0:95 0 (const uint) +0:95 true case +0:96 multiply second child into first child ( temp mediump int) +0:96 'count' ( temp mediump int) +0:96 Constant: +0:96 101 (const int) +0:98 Test condition and select ( temp void) +0:98 Condition +0:98 Compare Equal ( temp bool) +0:98 inclusive-or ( temp mediump uint) +0:98 'mask1' ( temp mediump uint) +0:98 'mask3' ( temp mediump uint) +0:98 'mask4' ( temp mediump uint) +0:98 true case +0:99 multiply second child into first child ( temp mediump int) +0:99 'count' ( temp mediump int) +0:99 Constant: +0:99 102 (const int) +0:101 Test condition and select ( temp void) +0:101 Condition +0:101 Compare Equal ( temp bool) +0:101 exclusive-or ( temp mediump uint) +0:101 'mask1' ( temp mediump uint) +0:101 'mask4' ( temp mediump uint) +0:101 Constant: +0:101 2576 (const uint) +0:101 true case +0:102 multiply second child into first child ( temp mediump int) +0:102 'count' ( temp mediump int) +0:102 Constant: +0:102 103 (const int) +0:104 add second child into first child ( temp mediump 4-component vector of uint) +0:104 'c' ( out mediump 4-component vector of uint) +0:104 Construct uvec4 ( temp mediump 4-component vector of uint) +0:104 Convert int to uint ( temp mediump uint) +0:104 'count' ( temp mediump int) +0:? Linker Objects +0:? 'badu' ( smooth in mediump 2-component vector of uint) +0:? 't' ( flat in mediump 2-component vector of uint) +0:? 'f' ( smooth in highp float) +0:? 'tc' ( smooth in highp 2-component vector of float) +0:? 'bad' ( smooth in bool) +0:? 'v' ( uniform mediump 4-component vector of uint) +0:? 'i' ( uniform mediump int) +0:? 'b' ( uniform bool) +0:? 'c' ( out mediump 4-component vector of uint) +0:? 'usampler' ( uniform lowp usampler2D) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:15 Function Definition: main( ( global void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child ( temp mediump int) +0:17 'count' ( temp mediump int) +0:17 Constant: +0:17 1 (const int) +0:19 Sequence +0:19 move second child to first child ( temp mediump uint) +0:19 'u' ( temp mediump uint) +0:19 add ( temp mediump uint) +0:19 direct index ( temp mediump uint) +0:19 't' ( flat in mediump 2-component vector of uint) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 3 (const uint) +0:27 Test condition and select ( temp void) +0:27 Condition +0:27 Constant: +0:27 true (const bool) +0:27 true case +0:28 multiply second child into first child ( temp mediump int) +0:28 'count' ( temp mediump int) +0:28 Constant: +0:28 2 (const int) +0:29 Test condition and select ( temp void) +0:29 Condition +0:29 Constant: +0:29 true (const bool) +0:29 true case +0:30 multiply second child into first child ( temp mediump int) +0:30 'count' ( temp mediump int) +0:30 Constant: +0:30 3 (const int) +0:31 Test condition and select ( temp void) +0:31 Condition +0:31 Constant: +0:31 false (const bool) +0:31 true case +0:32 multiply second child into first child ( temp mediump int) +0:32 'count' ( temp mediump int) +0:32 Constant: +0:32 5 (const int) +0:41 Test condition and select ( temp void) +0:41 Condition +0:41 Constant: +0:41 true (const bool) +0:41 true case +0:42 multiply second child into first child ( temp mediump int) +0:42 'count' ( temp mediump int) +0:42 Constant: +0:42 7 (const int) +0:43 Test condition and select ( temp void) +0:43 Condition +0:43 Constant: +0:43 true (const bool) +0:43 true case +0:44 multiply second child into first child ( temp mediump int) +0:44 'count' ( temp mediump int) +0:44 Constant: +0:44 11 (const int) +0:45 Test condition and select ( temp void) +0:45 Condition +0:45 Constant: +0:45 false (const bool) +0:45 true case +0:46 multiply second child into first child ( temp mediump int) +0:46 'count' ( temp mediump int) +0:46 Constant: +0:46 13 (const int) +0:49 Sequence +0:49 move second child to first child ( temp mediump int) +0:49 'shiftedii' ( temp mediump int) +0:49 Constant: +0:49 -1 (const int) +0:50 Sequence +0:50 move second child to first child ( temp mediump uint) +0:50 'shiftedui' ( temp mediump uint) +0:50 Constant: +0:50 4194303 (const uint) +0:52 Sequence +0:52 move second child to first child ( temp mediump int) +0:52 'shiftediu' ( temp mediump int) +0:52 Constant: +0:52 -1 (const int) +0:53 Sequence +0:53 move second child to first child ( temp mediump uint) +0:53 'shifteduu' ( temp mediump uint) +0:53 Constant: +0:53 4194303 (const uint) +0:55 Test condition and select ( temp void) +0:55 Condition +0:55 Compare Equal ( temp bool) +0:55 'shiftedii' ( temp mediump int) +0:55 'shiftediu' ( temp mediump int) +0:55 true case +0:56 move second child to first child ( temp mediump 4-component vector of uint) +0:56 'c' ( out mediump 4-component vector of uint) +0:56 texture ( global lowp 4-component vector of uint, operation at highp) +0:56 'usampler' ( uniform lowp usampler2D) +0:56 'tc' ( smooth in highp 2-component vector of float) +0:57 Test condition and select ( temp void) +0:57 Condition +0:57 Compare Equal ( temp bool) +0:57 'shiftedui' ( temp mediump uint) +0:57 'shifteduu' ( temp mediump uint) +0:57 true case +0:58 move second child to first child ( temp mediump 4-component vector of uint) +0:58 'c' ( out mediump 4-component vector of uint) +0:58 texture ( global lowp 4-component vector of uint, operation at highp) +0:58 'usampler' ( uniform lowp usampler2D) +0:58 add ( temp highp 2-component vector of float) +0:58 'tc' ( smooth in highp 2-component vector of float) +0:58 Constant: +0:58 1.000000 +0:59 Test condition and select ( temp void) +0:59 Condition +0:59 Compare Equal ( temp bool) +0:59 'shiftedii' ( temp mediump int) +0:59 Convert uint to int ( temp int) +0:59 'shiftedui' ( temp mediump uint) +0:59 true case +0:60 move second child to first child ( temp mediump 4-component vector of uint) +0:60 'c' ( out mediump 4-component vector of uint) +0:60 texture ( global lowp 4-component vector of uint, operation at highp) +0:60 'usampler' ( uniform lowp usampler2D) +0:60 subtract ( temp highp 2-component vector of float) +0:60 'tc' ( smooth in highp 2-component vector of float) +0:60 Constant: +0:60 2.000000 +0:60 2.000000 +0:62 Test condition and select ( temp void) +0:62 Condition +0:62 Compare Greater Than ( temp bool) +0:62 direct index ( temp mediump uint) +0:62 't' ( flat in mediump 2-component vector of uint) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 4 (const uint) +0:62 true case +0:63 Sequence +0:63 Sequence +0:63 move second child to first child ( temp mediump float) +0:63 'af' ( temp mediump float) +0:63 Convert uint to float ( temp mediump float) +0:63 'u' ( temp mediump uint) +0:64 Sequence +0:64 move second child to first child ( temp bool) +0:64 'ab' ( temp bool) +0:64 Convert uint to bool ( temp bool) +0:64 'u' ( temp mediump uint) +0:65 Sequence +0:65 move second child to first child ( temp mediump int) +0:65 'ai' ( temp mediump int) +0:65 Convert uint to int ( temp mediump int) +0:65 'u' ( temp mediump uint) +0:67 add second child into first child ( temp mediump 4-component vector of uint) +0:67 'c' ( out mediump 4-component vector of uint) +0:67 Construct uvec4 ( temp mediump 4-component vector of uint) +0:67 Convert float to uint ( temp mediump uint) +0:67 'af' ( temp mediump float) +0:67 Convert bool to uint ( temp mediump uint) +0:67 'ab' ( temp bool) +0:67 Convert int to uint ( temp mediump uint) +0:67 'ai' ( temp mediump int) +0:67 Convert int to uint ( temp mediump uint) +0:67 'count' ( temp mediump int) +0:75 Test condition and select ( temp void) +0:75 Condition +0:75 Constant: +0:75 true (const bool) +0:75 true case +0:76 multiply second child into first child ( temp mediump int) +0:76 'count' ( temp mediump int) +0:76 Constant: +0:76 17 (const int) +0:78 Test condition and select ( temp void) +0:78 Condition +0:78 Constant: +0:78 false (const bool) +0:78 true case +0:79 multiply second child into first child ( temp mediump int) +0:79 'count' ( temp mediump int) +0:79 Constant: +0:79 19 (const int) +0:81 Test condition and select ( temp void) +0:81 Condition +0:81 Constant: +0:81 true (const bool) +0:81 true case +0:82 multiply second child into first child ( temp mediump int) +0:82 'count' ( temp mediump int) +0:82 Constant: +0:82 23 (const int) +0:84 Test condition and select ( temp void) +0:84 Condition +0:84 Constant: +0:84 true (const bool) +0:84 true case +0:85 multiply second child into first child ( temp mediump int) +0:85 'count' ( temp mediump int) +0:85 Constant: +0:85 27 (const int) +0:87 Sequence +0:87 move second child to first child ( temp mediump uint) +0:87 'mask1' ( temp mediump uint) +0:87 Constant: +0:87 161 (const uint) +0:88 Sequence +0:88 move second child to first child ( temp mediump uint) +0:88 'mask2' ( temp mediump uint) +0:88 Constant: +0:88 2576 (const uint) +0:89 Sequence +0:89 move second child to first child ( temp mediump uint) +0:89 'mask3' ( temp mediump uint) +0:89 left-shift ( temp mediump uint) +0:89 'mask1' ( temp mediump uint) +0:89 Constant: +0:89 4 (const int) +0:90 Sequence +0:90 move second child to first child ( temp mediump uint) +0:90 'mask4' ( temp mediump uint) +0:90 Constant: +0:90 2737 (const uint) +0:92 Test condition and select ( temp void) +0:92 Condition +0:92 Compare Equal ( temp bool) +0:92 'mask3' ( temp mediump uint) +0:92 'mask2' ( temp mediump uint) +0:92 true case +0:93 multiply second child into first child ( temp mediump int) +0:93 'count' ( temp mediump int) +0:93 Constant: +0:93 100 (const int) +0:95 Test condition and select ( temp void) +0:95 Condition +0:95 Compare Not Equal ( temp bool) +0:95 bitwise and ( temp mediump uint) +0:95 'mask3' ( temp mediump uint) +0:95 'mask1' ( temp mediump uint) +0:95 Constant: +0:95 0 (const uint) +0:95 true case +0:96 multiply second child into first child ( temp mediump int) +0:96 'count' ( temp mediump int) +0:96 Constant: +0:96 101 (const int) +0:98 Test condition and select ( temp void) +0:98 Condition +0:98 Compare Equal ( temp bool) +0:98 inclusive-or ( temp mediump uint) +0:98 'mask1' ( temp mediump uint) +0:98 'mask3' ( temp mediump uint) +0:98 'mask4' ( temp mediump uint) +0:98 true case +0:99 multiply second child into first child ( temp mediump int) +0:99 'count' ( temp mediump int) +0:99 Constant: +0:99 102 (const int) +0:101 Test condition and select ( temp void) +0:101 Condition +0:101 Compare Equal ( temp bool) +0:101 exclusive-or ( temp mediump uint) +0:101 'mask1' ( temp mediump uint) +0:101 'mask4' ( temp mediump uint) +0:101 Constant: +0:101 2576 (const uint) +0:101 true case +0:102 multiply second child into first child ( temp mediump int) +0:102 'count' ( temp mediump int) +0:102 Constant: +0:102 103 (const int) +0:104 add second child into first child ( temp mediump 4-component vector of uint) +0:104 'c' ( out mediump 4-component vector of uint) +0:104 Construct uvec4 ( temp mediump 4-component vector of uint) +0:104 Convert int to uint ( temp mediump uint) +0:104 'count' ( temp mediump int) +0:? Linker Objects +0:? 'badu' ( smooth in mediump 2-component vector of uint) +0:? 't' ( flat in mediump 2-component vector of uint) +0:? 'f' ( smooth in highp float) +0:? 'tc' ( smooth in highp 2-component vector of float) +0:? 'bad' ( smooth in bool) +0:? 'v' ( uniform mediump 4-component vector of uint) +0:? 'i' ( uniform mediump int) +0:? 'b' ( uniform bool) +0:? 'c' ( out mediump 4-component vector of uint) +0:? 'usampler' ( uniform lowp usampler2D) + diff --git a/deps/glslang/glslang/Test/baseResults/uniformArray.frag.out b/deps/glslang/glslang/Test/baseResults/uniformArray.frag.out new file mode 100644 index 0000000000..51b9ff034d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/uniformArray.frag.out @@ -0,0 +1,97 @@ +uniformArray.frag +Shader version: 130 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'texColor' ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 direct index ( temp 4-component vector of float) +0:9 'color' ( uniform 6-element array of 4-component vector of float) +0:9 Constant: +0:9 1 (const int) +0:9 direct index ( temp 4-component vector of float) +0:9 'color' ( uniform 6-element array of 4-component vector of float) +0:9 Constant: +0:9 1 (const int) +0:11 add second child into first child ( temp 3-component vector of float) +0:11 vector swizzle ( temp 3-component vector of float) +0:11 'texColor' ( temp 4-component vector of float) +0:11 Sequence +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 'inColor' ( uniform 3-component vector of float) +0:13 add second child into first child ( temp float) +0:13 direct index ( temp float) +0:13 'texColor' ( temp 4-component vector of float) +0:13 Constant: +0:13 3 (const int) +0:13 direct index ( temp float) +0:13 'alpha' ( uniform 16-element array of float) +0:13 Constant: +0:13 12 (const int) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:15 'texColor' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'inColor' ( uniform 3-component vector of float) +0:? 'color' ( uniform 6-element array of 4-component vector of float) +0:? 'alpha' ( uniform 16-element array of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'texColor' ( temp 4-component vector of float) +0:9 add ( temp 4-component vector of float) +0:9 direct index ( temp 4-component vector of float) +0:9 'color' ( uniform 6-element array of 4-component vector of float) +0:9 Constant: +0:9 1 (const int) +0:9 direct index ( temp 4-component vector of float) +0:9 'color' ( uniform 6-element array of 4-component vector of float) +0:9 Constant: +0:9 1 (const int) +0:11 add second child into first child ( temp 3-component vector of float) +0:11 vector swizzle ( temp 3-component vector of float) +0:11 'texColor' ( temp 4-component vector of float) +0:11 Sequence +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 Constant: +0:11 2 (const int) +0:11 'inColor' ( uniform 3-component vector of float) +0:13 add second child into first child ( temp float) +0:13 direct index ( temp float) +0:13 'texColor' ( temp 4-component vector of float) +0:13 Constant: +0:13 3 (const int) +0:13 direct index ( temp float) +0:13 'alpha' ( uniform 16-element array of float) +0:13 Constant: +0:13 12 (const int) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:15 'texColor' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'inColor' ( uniform 3-component vector of float) +0:? 'color' ( uniform 6-element array of 4-component vector of float) +0:? 'alpha' ( uniform 16-element array of float) + diff --git a/deps/glslang/glslang/Test/baseResults/variableArrayIndex.frag.out b/deps/glslang/glslang/Test/baseResults/variableArrayIndex.frag.out new file mode 100644 index 0000000000..ddfb25bfbf --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/variableArrayIndex.frag.out @@ -0,0 +1,225 @@ +variableArrayIndex.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:29 Function Definition: main( ( global void) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child ( temp int) +0:32 'iLocal' ( temp int) +0:32 'Count' ( uniform int) +0:34 Test condition and select ( temp void) +0:34 Condition +0:34 Compare Greater Than ( temp bool) +0:34 i: direct index for structure ( global int) +0:34 direct index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 s2_1: direct index for structure ( global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 true case +0:35 move second child to first child ( temp float) +0:35 'scale' ( temp float) +0:35 f: direct index for structure ( global float) +0:35 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:35 indirect index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 'foo2' ( uniform 5-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 add ( temp int) +0:35 add ( temp int) +0:35 i: direct index for structure ( global int) +0:35 indirect index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 s2_1: direct index for structure ( global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 Constant: +0:35 0 (const int) +0:35 i: direct index for structure ( global int) +0:35 'foo' ( uniform structure{ global int i, global float f}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 2 (const int) +0:35 Pre-Increment ( temp int) +0:35 'iLocal' ( temp int) +0:35 Constant: +0:35 2 (const int) +0:35 Constant: +0:35 1 (const int) +0:34 false case +0:37 move second child to first child ( temp float) +0:37 'scale' ( temp float) +0:37 f: direct index for structure ( global float) +0:37 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:37 direct index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:37 s2_1: direct index for structure ( global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:37 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 Constant: +0:37 1 (const int) +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:43 vector-scale ( temp 4-component vector of float) +0:43 'scale' ( temp float) +0:43 texture ( global 4-component vector of float) +0:43 'sampler' ( uniform sampler2D) +0:43 'coord' ( smooth in 2-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp 3-element array of 2-component vector of float) +0:45 'constructed' ( temp 3-element array of 2-component vector of float) +0:45 Construct vec2 ( temp 3-element array of 2-component vector of float) +0:45 'coord' ( smooth in 2-component vector of float) +0:45 Construct vec2 ( temp 2-component vector of float) +0:45 'scale' ( temp float) +0:45 Constant: +0:45 1.000000 +0:45 2.000000 +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:46 Construct vec4 ( temp 4-component vector of float) +0:46 indirect index ( temp 2-component vector of float) +0:46 'constructed' ( temp 3-element array of 2-component vector of float) +0:46 i: direct index for structure ( global int) +0:46 'foo' ( uniform structure{ global int i, global float f}) +0:46 Constant: +0:46 0 (const int) +0:46 indirect index ( temp 2-component vector of float) +0:46 'constructed' ( temp 3-element array of 2-component vector of float) +0:46 i: direct index for structure ( global int) +0:46 'foo' ( uniform structure{ global int i, global float f}) +0:46 Constant: +0:46 0 (const int) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global float f}) +0:? 'foo2' ( uniform 5-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'Count' ( uniform int) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:29 Function Definition: main( ( global void) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child ( temp int) +0:32 'iLocal' ( temp int) +0:32 'Count' ( uniform int) +0:34 Test condition and select ( temp void) +0:34 Condition +0:34 Compare Greater Than ( temp bool) +0:34 i: direct index for structure ( global int) +0:34 direct index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 s2_1: direct index for structure ( global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 0 (const int) +0:34 true case +0:35 move second child to first child ( temp float) +0:35 'scale' ( temp float) +0:35 f: direct index for structure ( global float) +0:35 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:35 indirect index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 'foo2' ( uniform 5-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 add ( temp int) +0:35 add ( temp int) +0:35 i: direct index for structure ( global int) +0:35 indirect index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 s2_1: direct index for structure ( global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:35 Constant: +0:35 0 (const int) +0:35 i: direct index for structure ( global int) +0:35 'foo' ( uniform structure{ global int i, global float f}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 2 (const int) +0:35 Pre-Increment ( temp int) +0:35 'iLocal' ( temp int) +0:35 Constant: +0:35 2 (const int) +0:35 Constant: +0:35 1 (const int) +0:34 false case +0:37 move second child to first child ( temp float) +0:37 'scale' ( temp float) +0:37 f: direct index for structure ( global float) +0:37 s1_1: direct index for structure ( global structure{ global int i, global float f}) +0:37 direct index ( temp structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:37 s2_1: direct index for structure ( global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:37 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 0 (const int) +0:37 Constant: +0:37 2 (const int) +0:37 Constant: +0:37 1 (const int) +0:43 move second child to first child ( temp 4-component vector of float) +0:43 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:43 vector-scale ( temp 4-component vector of float) +0:43 'scale' ( temp float) +0:43 texture ( global 4-component vector of float) +0:43 'sampler' ( uniform sampler2D) +0:43 'coord' ( smooth in 2-component vector of float) +0:45 Sequence +0:45 move second child to first child ( temp 3-element array of 2-component vector of float) +0:45 'constructed' ( temp 3-element array of 2-component vector of float) +0:45 Construct vec2 ( temp 3-element array of 2-component vector of float) +0:45 'coord' ( smooth in 2-component vector of float) +0:45 Construct vec2 ( temp 2-component vector of float) +0:45 'scale' ( temp float) +0:45 Constant: +0:45 1.000000 +0:45 2.000000 +0:46 add second child into first child ( temp 4-component vector of float) +0:46 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:46 Construct vec4 ( temp 4-component vector of float) +0:46 indirect index ( temp 2-component vector of float) +0:46 'constructed' ( temp 3-element array of 2-component vector of float) +0:46 i: direct index for structure ( global int) +0:46 'foo' ( uniform structure{ global int i, global float f}) +0:46 Constant: +0:46 0 (const int) +0:46 indirect index ( temp 2-component vector of float) +0:46 'constructed' ( temp 3-element array of 2-component vector of float) +0:46 i: direct index for structure ( global int) +0:46 'foo' ( uniform structure{ global int i, global float f}) +0:46 Constant: +0:46 0 (const int) +0:? Linker Objects +0:? 'sampler' ( uniform sampler2D) +0:? 'coord' ( smooth in 2-component vector of float) +0:? 'foo' ( uniform structure{ global int i, global float f}) +0:? 'foo2' ( uniform 5-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'foo3' ( uniform structure{ global 3-element array of structure{ global int i, global float f, global structure{ global int i, global float f} s1_1} s2_1, global int i, global float f, global structure{ global int i, global float f} s1_1}) +0:? 'Count' ( uniform int) + diff --git a/deps/glslang/glslang/Test/baseResults/varyingArray.frag.out b/deps/glslang/glslang/Test/baseResults/varyingArray.frag.out new file mode 100644 index 0000000000..a7b9d23d7d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/varyingArray.frag.out @@ -0,0 +1,118 @@ +varyingArray.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:6: varying deprecated in version 130; may be removed in future release +WARNING: 0:8: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'texColor' ( temp 4-component vector of float) +0:12 texture ( global 4-component vector of float) +0:12 'texSampler2D' ( uniform sampler2D) +0:12 Construct vec2 ( temp 2-component vector of float) +0:12 add ( temp 4-component vector of float) +0:12 direct index ( smooth temp 4-component vector of float TexCoord) +0:12 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:12 Constant: +0:12 4 (const int) +0:12 direct index ( smooth temp 4-component vector of float TexCoord) +0:12 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:12 Constant: +0:12 5 (const int) +0:14 add second child into first child ( temp 4-component vector of float) +0:14 'texColor' ( temp 4-component vector of float) +0:14 'color' ( smooth in 4-component vector of float) +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float) +0:16 'texColor' ( temp 4-component vector of float) +0:16 Constant: +0:16 3 (const int) +0:16 'alpha' ( smooth in float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 direct index ( smooth temp 4-component vector of float) +0:18 'foo' ( smooth in 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( smooth temp 4-component vector of float TexCoord) +0:18 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( smooth temp 4-component vector of float TexCoord) +0:18 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:18 Constant: +0:18 4 (const int) +0:18 'texColor' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'color' ( smooth in 4-component vector of float) +0:? 'alpha' ( smooth in float) +0:? 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:? 'foo' ( smooth in 3-element array of 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 Sequence +0:12 move second child to first child ( temp 4-component vector of float) +0:12 'texColor' ( temp 4-component vector of float) +0:12 texture ( global 4-component vector of float) +0:12 'texSampler2D' ( uniform sampler2D) +0:12 Construct vec2 ( temp 2-component vector of float) +0:12 add ( temp 4-component vector of float) +0:12 direct index ( smooth temp 4-component vector of float TexCoord) +0:12 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:12 Constant: +0:12 4 (const int) +0:12 direct index ( smooth temp 4-component vector of float TexCoord) +0:12 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:12 Constant: +0:12 5 (const int) +0:14 add second child into first child ( temp 4-component vector of float) +0:14 'texColor' ( temp 4-component vector of float) +0:14 'color' ( smooth in 4-component vector of float) +0:16 move second child to first child ( temp float) +0:16 direct index ( temp float) +0:16 'texColor' ( temp 4-component vector of float) +0:16 Constant: +0:16 3 (const int) +0:16 'alpha' ( smooth in float) +0:18 move second child to first child ( temp 4-component vector of float) +0:18 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 add ( temp 4-component vector of float) +0:18 direct index ( smooth temp 4-component vector of float) +0:18 'foo' ( smooth in 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 direct index ( smooth temp 4-component vector of float TexCoord) +0:18 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:18 Constant: +0:18 0 (const int) +0:18 direct index ( smooth temp 4-component vector of float TexCoord) +0:18 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:18 Constant: +0:18 4 (const int) +0:18 'texColor' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'color' ( smooth in 4-component vector of float) +0:? 'alpha' ( smooth in float) +0:? 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:? 'foo' ( smooth in 3-element array of 4-component vector of float) + diff --git a/deps/glslang/glslang/Test/baseResults/varyingArrayIndirect.frag.out b/deps/glslang/glslang/Test/baseResults/varyingArrayIndirect.frag.out new file mode 100644 index 0000000000..23872b4174 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/varyingArrayIndirect.frag.out @@ -0,0 +1,124 @@ +varyingArrayIndirect.frag +WARNING: 0:3: varying deprecated in version 130; may be removed in future release +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:6: varying deprecated in version 130; may be removed in future release +WARNING: 0:8: varying deprecated in version 130; may be removed in future release + +Shader version: 130 +0:? Sequence +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'texColor' ( temp 4-component vector of float) +0:14 texture ( global 4-component vector of float) +0:14 'texSampler2D' ( uniform sampler2D) +0:14 Construct vec2 ( temp 2-component vector of float) +0:14 add ( temp 4-component vector of float) +0:14 add ( temp 4-component vector of float) +0:14 indirect index ( smooth temp 4-component vector of float) +0:14 'userIn' ( smooth in 2-element array of 4-component vector of float) +0:14 'b' ( uniform int) +0:14 indirect index ( smooth temp 4-component vector of float TexCoord) +0:14 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:14 'a' ( uniform int) +0:14 direct index ( smooth temp 4-component vector of float TexCoord) +0:14 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:14 Constant: +0:14 5 (const int) +0:16 add second child into first child ( temp 4-component vector of float) +0:16 'texColor' ( temp 4-component vector of float) +0:16 'color' ( smooth in 4-component vector of float) +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 'texColor' ( temp 4-component vector of float) +0:18 Constant: +0:18 3 (const int) +0:18 'alpha' ( smooth in float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:20 add ( temp 4-component vector of float) +0:20 add ( temp 4-component vector of float) +0:20 add ( temp 4-component vector of float) +0:20 direct index ( smooth temp 4-component vector of float TexCoord) +0:20 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index ( smooth temp 4-component vector of float TexCoord) +0:20 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:20 'b' ( uniform int) +0:20 'texColor' ( temp 4-component vector of float) +0:20 indirect index ( smooth temp 4-component vector of float) +0:20 'userIn' ( smooth in 2-element array of 4-component vector of float) +0:20 'a' ( uniform int) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'color' ( smooth in 4-component vector of float) +0:? 'alpha' ( smooth in float) +0:? 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:? 'userIn' ( smooth in 2-element array of 4-component vector of float) +0:? 'a' ( uniform int) +0:? 'b' ( uniform int) + + +Linked fragment stage: + + +Shader version: 130 +0:? Sequence +0:12 Function Definition: main( ( global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Sequence +0:14 move second child to first child ( temp 4-component vector of float) +0:14 'texColor' ( temp 4-component vector of float) +0:14 texture ( global 4-component vector of float) +0:14 'texSampler2D' ( uniform sampler2D) +0:14 Construct vec2 ( temp 2-component vector of float) +0:14 add ( temp 4-component vector of float) +0:14 add ( temp 4-component vector of float) +0:14 indirect index ( smooth temp 4-component vector of float) +0:14 'userIn' ( smooth in 2-element array of 4-component vector of float) +0:14 'b' ( uniform int) +0:14 indirect index ( smooth temp 4-component vector of float TexCoord) +0:14 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:14 'a' ( uniform int) +0:14 direct index ( smooth temp 4-component vector of float TexCoord) +0:14 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:14 Constant: +0:14 5 (const int) +0:16 add second child into first child ( temp 4-component vector of float) +0:16 'texColor' ( temp 4-component vector of float) +0:16 'color' ( smooth in 4-component vector of float) +0:18 move second child to first child ( temp float) +0:18 direct index ( temp float) +0:18 'texColor' ( temp 4-component vector of float) +0:18 Constant: +0:18 3 (const int) +0:18 'alpha' ( smooth in float) +0:20 move second child to first child ( temp 4-component vector of float) +0:20 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:20 add ( temp 4-component vector of float) +0:20 add ( temp 4-component vector of float) +0:20 add ( temp 4-component vector of float) +0:20 direct index ( smooth temp 4-component vector of float TexCoord) +0:20 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:20 Constant: +0:20 0 (const int) +0:20 indirect index ( smooth temp 4-component vector of float TexCoord) +0:20 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:20 'b' ( uniform int) +0:20 'texColor' ( temp 4-component vector of float) +0:20 indirect index ( smooth temp 4-component vector of float) +0:20 'userIn' ( smooth in 2-element array of 4-component vector of float) +0:20 'a' ( uniform int) +0:? Linker Objects +0:? 'texSampler2D' ( uniform sampler2D) +0:? 'color' ( smooth in 4-component vector of float) +0:? 'alpha' ( smooth in float) +0:? 'gl_TexCoord' ( smooth in 6-element array of 4-component vector of float TexCoord) +0:? 'userIn' ( smooth in 2-element array of 4-component vector of float) +0:? 'a' ( uniform int) +0:? 'b' ( uniform int) + diff --git a/deps/glslang/glslang/Test/baseResults/versionsClean.frag.out b/deps/glslang/glslang/Test/baseResults/versionsClean.frag.out new file mode 100644 index 0000000000..721d73c039 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/versionsClean.frag.out @@ -0,0 +1,44 @@ +versionsClean.frag +ERROR: #version: statement must appear first in es-profile shader; before comments or newlines +ERROR: 0:34: '#version' : must occur first in shader +ERROR: 2 compilation errors. No code generated. + + +Shader version: 300 +ERROR: node is still EOpNull! +0:41 Function Definition: main( ( global void) +0:41 Function Parameters: +0:43 Sequence +0:43 move second child to first child ( temp highp 4-component vector of float) +0:43 'foo' ( out highp 4-component vector of float) +0:43 Construct vec4 ( temp highp 4-component vector of float) +0:43 'color' ( smooth in highp 3-component vector of float) +0:43 Constant: +0:43 142.000000 +0:44 Branch: Kill +0:? Linker Objects +0:? 'color' ( smooth in highp 3-component vector of float) +0:? 'foo' ( out highp 4-component vector of float) +0:? 'bar' ( uniform highp sampler2DArrayShadow) + + +Linked fragment stage: + + +Shader version: 300 +ERROR: node is still EOpNull! +0:41 Function Definition: main( ( global void) +0:41 Function Parameters: +0:43 Sequence +0:43 move second child to first child ( temp highp 4-component vector of float) +0:43 'foo' ( out highp 4-component vector of float) +0:43 Construct vec4 ( temp highp 4-component vector of float) +0:43 'color' ( smooth in highp 3-component vector of float) +0:43 Constant: +0:43 142.000000 +0:44 Branch: Kill +0:? Linker Objects +0:? 'color' ( smooth in highp 3-component vector of float) +0:? 'foo' ( out highp 4-component vector of float) +0:? 'bar' ( uniform highp sampler2DArrayShadow) + diff --git a/deps/glslang/glslang/Test/baseResults/versionsClean.vert.out b/deps/glslang/glslang/Test/baseResults/versionsClean.vert.out new file mode 100644 index 0000000000..4b098be72d --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/versionsClean.vert.out @@ -0,0 +1,47 @@ +versionsClean.vert +Shader version: 420 +0:? Sequence +0:40 Function Definition: main( ( global void) +0:40 Function Parameters: +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:42 Constant: +0:42 0 (const uint) +0:42 Construct vec4 ( temp 4-component vector of float) +0:42 'color' ( in 3-component vector of float) +0:42 Constant: +0:42 142.000000 +0:? Linker Objects +0:? 'color' ( in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 420 +0:? Sequence +0:40 Function Definition: main( ( global void) +0:40 Function Parameters: +0:42 Sequence +0:42 move second child to first child ( temp 4-component vector of float) +0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:42 Constant: +0:42 0 (const uint) +0:42 Construct vec4 ( temp 4-component vector of float) +0:42 'color' ( in 3-component vector of float) +0:42 Constant: +0:42 142.000000 +0:? Linker Objects +0:? 'color' ( in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/versionsErrors.frag.out b/deps/glslang/glslang/Test/baseResults/versionsErrors.frag.out new file mode 100644 index 0000000000..dbeb941ab7 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/versionsErrors.frag.out @@ -0,0 +1,44 @@ +versionsErrors.frag +ERROR: #version: versions before 150 do not allow a profile token +ERROR: 0:38: 'attribute' : not supported in this stage: fragment +ERROR: 0:40: 'sampler2DRect' : Reserved word. +ERROR: 0:44: 'floating-point suffix' : not supported for this version or the enabled extensions +ERROR: 4 compilation errors. No code generated. + + +Shader version: 110 +ERROR: node is still EOpNull! +0:42 Function Definition: main( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:44 Construct vec4 ( temp 4-component vector of float) +0:44 'color' ( smooth in 3-component vector of float) +0:44 Constant: +0:44 142.000000 +0:45 Branch: Kill +0:? Linker Objects +0:? 'color' ( smooth in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) + + +Linked fragment stage: + + +Shader version: 110 +ERROR: node is still EOpNull! +0:42 Function Definition: main( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:44 Construct vec4 ( temp 4-component vector of float) +0:44 'color' ( smooth in 3-component vector of float) +0:44 Constant: +0:44 142.000000 +0:45 Branch: Kill +0:? Linker Objects +0:? 'color' ( smooth in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) + diff --git a/deps/glslang/glslang/Test/baseResults/versionsErrors.vert.out b/deps/glslang/glslang/Test/baseResults/versionsErrors.vert.out new file mode 100644 index 0000000000..6551364e9a --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/versionsErrors.vert.out @@ -0,0 +1,57 @@ +versionsErrors.vert +WARNING: 0:38: attribute deprecated in version 130; may be removed in future release +ERROR: 0:38: 'attribute' : no longer supported in core profile; removed in version 420 +ERROR: 0:45: 'discard' : not supported in this stage: vertex +ERROR: 2 compilation errors. No code generated. + + +Shader version: 420 +Requested GL_ARB_texture_rectangle +ERROR: node is still EOpNull! +0:42 Function Definition: main( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:44 Constant: +0:44 0 (const uint) +0:44 Construct vec4 ( temp 4-component vector of float) +0:44 'color' ( in 3-component vector of float) +0:44 Constant: +0:44 142.000000 +0:45 Branch: Kill +0:? Linker Objects +0:? 'color' ( in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 420 +Requested GL_ARB_texture_rectangle +ERROR: node is still EOpNull! +0:42 Function Definition: main( ( global void) +0:42 Function Parameters: +0:44 Sequence +0:44 move second child to first child ( temp 4-component vector of float) +0:44 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) +0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:44 Constant: +0:44 0 (const uint) +0:44 Construct vec4 ( temp 4-component vector of float) +0:44 'color' ( in 3-component vector of float) +0:44 Constant: +0:44 142.000000 +0:45 Branch: Kill +0:? Linker Objects +0:? 'color' ( in 3-component vector of float) +0:? 'foo' ( uniform sampler2DRect) +0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/deps/glslang/glslang/Test/baseResults/voidFunction.frag.out b/deps/glslang/glslang/Test/baseResults/voidFunction.frag.out new file mode 100644 index 0000000000..a38509f85c --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/voidFunction.frag.out @@ -0,0 +1,91 @@ +voidFunction.frag +Shader version: 120 +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'bar' ( global float) +0:7 Constant: +0:7 2.000000 +0:9 Function Definition: foo( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Post-Increment ( temp float) +0:11 'bar' ( global float) +0:13 Branch: Return +0:16 Function Definition: foo2( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 Post-Increment ( temp float) +0:18 'bar' ( global float) +0:21 Function Definition: main( ( global void) +0:21 Function Parameters: +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'outColor' ( temp 4-component vector of float) +0:23 'bigColor' ( uniform 4-component vector of float) +0:25 Function Call: foo( ( global void) +0:27 Function Call: foo2( ( global void) +0:29 add second child into first child ( temp float) +0:29 direct index ( temp float) +0:29 'outColor' ( temp 4-component vector of float) +0:29 Constant: +0:29 0 (const int) +0:29 'bar' ( global float) +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:31 'outColor' ( temp 4-component vector of float) +0:33 Branch: Return +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'bar' ( global float) + + +Linked fragment stage: + + +Shader version: 120 +0:? Sequence +0:7 Sequence +0:7 move second child to first child ( temp float) +0:7 'bar' ( global float) +0:7 Constant: +0:7 2.000000 +0:9 Function Definition: foo( ( global void) +0:9 Function Parameters: +0:11 Sequence +0:11 Post-Increment ( temp float) +0:11 'bar' ( global float) +0:13 Branch: Return +0:16 Function Definition: foo2( ( global void) +0:16 Function Parameters: +0:18 Sequence +0:18 Post-Increment ( temp float) +0:18 'bar' ( global float) +0:21 Function Definition: main( ( global void) +0:21 Function Parameters: +0:23 Sequence +0:23 Sequence +0:23 move second child to first child ( temp 4-component vector of float) +0:23 'outColor' ( temp 4-component vector of float) +0:23 'bigColor' ( uniform 4-component vector of float) +0:25 Function Call: foo( ( global void) +0:27 Function Call: foo2( ( global void) +0:29 add second child into first child ( temp float) +0:29 direct index ( temp float) +0:29 'outColor' ( temp 4-component vector of float) +0:29 Constant: +0:29 0 (const int) +0:29 'bar' ( global float) +0:31 move second child to first child ( temp 4-component vector of float) +0:31 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:31 'outColor' ( temp 4-component vector of float) +0:33 Branch: Return +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) +0:? 'bar' ( global float) + diff --git a/deps/glslang/glslang/Test/baseResults/vulkan.ast.vert.out b/deps/glslang/glslang/Test/baseResults/vulkan.ast.vert.out new file mode 100644 index 0000000000..72a45705ee --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/vulkan.ast.vert.out @@ -0,0 +1,325 @@ +vulkan.ast.vert +Shader version: 450 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Convert float to bool ( temp bool) +0:9 'scf1' ( specialization-constant const highp float) +0:9 1.000000 +0:10 Construct bool ( specialization-constant const bool) +0:10 'scbt' ( specialization-constant const bool) +0:10 true (const bool) +0:11 Convert int to bool ( specialization-constant const bool) +0:11 'sci2' ( specialization-constant const highp int) +0:11 2 (const int) +0:13 Construct float ( temp float) +0:13 'scf1' ( specialization-constant const highp float) +0:13 1.000000 +0:14 Convert bool to float ( temp float) +0:14 'scbt' ( specialization-constant const bool) +0:14 true (const bool) +0:15 Convert int to float ( temp float) +0:15 'sci2' ( specialization-constant const highp int) +0:15 2 (const int) +0:17 Convert float to int ( temp int) +0:17 'scf1' ( specialization-constant const highp float) +0:17 1.000000 +0:18 Convert bool to int ( specialization-constant const int) +0:18 'scbt' ( specialization-constant const bool) +0:18 true (const bool) +0:19 Construct int ( specialization-constant const int) +0:19 'sci2' ( specialization-constant const highp int) +0:19 2 (const int) +0:21 component-wise multiply ( temp highp float) +0:21 'scf1' ( specialization-constant const highp float) +0:21 1.000000 +0:21 'scf1' ( specialization-constant const highp float) +0:21 1.000000 +0:22 logical-or ( specialization-constant const bool) +0:22 'scbt' ( specialization-constant const bool) +0:22 true (const bool) +0:22 'scbt' ( specialization-constant const bool) +0:22 true (const bool) +0:23 component-wise multiply ( specialization-constant const highp int) +0:23 'sci2' ( specialization-constant const highp int) +0:23 2 (const int) +0:23 'sci2' ( specialization-constant const highp int) +0:23 2 (const int) +0:24 add ( temp highp float) +0:24 'scf1' ( specialization-constant const highp float) +0:24 1.000000 +0:24 Convert int to float ( temp highp float) +0:24 'sci2' ( specialization-constant const highp int) +0:24 2 (const int) +0:26 Negate value ( temp highp float) +0:26 'scf1' ( specialization-constant const highp float) +0:26 1.000000 +0:27 Negate conditional ( specialization-constant const bool) +0:27 'scbt' ( specialization-constant const bool) +0:27 true (const bool) +0:28 Negate value ( specialization-constant const highp int) +0:28 'sci2' ( specialization-constant const highp int) +0:28 2 (const int) +0:30 Compare Greater Than ( temp bool) +0:30 'scf1' ( specialization-constant const highp float) +0:30 1.000000 +0:30 'scf1' ( specialization-constant const highp float) +0:30 1.000000 +0:31 Compare Greater Than ( specialization-constant const bool) +0:31 'sci2' ( specialization-constant const highp int) +0:31 2 (const int) +0:31 'sci2' ( specialization-constant const highp int) +0:31 2 (const int) +0:33 Compare Not Equal ( temp bool) +0:33 'scf1' ( specialization-constant const highp float) +0:33 1.000000 +0:33 'scf1' ( specialization-constant const highp float) +0:33 1.000000 +0:34 Compare Not Equal ( specialization-constant const bool) +0:34 'scbt' ( specialization-constant const bool) +0:34 true (const bool) +0:34 'scbt' ( specialization-constant const bool) +0:34 true (const bool) +0:35 Compare Not Equal ( specialization-constant const bool) +0:35 'sci2' ( specialization-constant const highp int) +0:35 2 (const int) +0:35 'sci2' ( specialization-constant const highp int) +0:35 2 (const int) +0:37 Construct ivec2 ( specialization-constant const 2-component vector of int) +0:37 'sci2' ( specialization-constant const highp int) +0:37 2 (const int) +0:37 'sci2' ( specialization-constant const highp int) +0:37 2 (const int) +0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int) +0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:40 Construct vec2 ( temp 2-component vector of float) +0:40 'scf1' ( specialization-constant const highp float) +0:40 1.000000 +0:40 'scf1' ( specialization-constant const highp float) +0:40 1.000000 +0:41 Construct vec2 ( temp 2-element array of 2-component vector of float) +0:41 Construct vec2 ( temp 2-component vector of float) +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:41 Construct vec2 ( temp 2-component vector of float) +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:? Linker Objects +0:? 'scf1' ( specialization-constant const highp float) +0:? 1.000000 +0:? 'scbt' ( specialization-constant const bool) +0:? true (const bool) +0:? 'sci2' ( specialization-constant const highp int) +0:? 2 (const int) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Convert float to bool ( temp bool) +0:9 'scf1' ( specialization-constant const highp float) +0:9 1.000000 +0:10 Construct bool ( specialization-constant const bool) +0:10 'scbt' ( specialization-constant const bool) +0:10 true (const bool) +0:11 Convert int to bool ( specialization-constant const bool) +0:11 'sci2' ( specialization-constant const highp int) +0:11 2 (const int) +0:13 Construct float ( temp float) +0:13 'scf1' ( specialization-constant const highp float) +0:13 1.000000 +0:14 Convert bool to float ( temp float) +0:14 'scbt' ( specialization-constant const bool) +0:14 true (const bool) +0:15 Convert int to float ( temp float) +0:15 'sci2' ( specialization-constant const highp int) +0:15 2 (const int) +0:17 Convert float to int ( temp int) +0:17 'scf1' ( specialization-constant const highp float) +0:17 1.000000 +0:18 Convert bool to int ( specialization-constant const int) +0:18 'scbt' ( specialization-constant const bool) +0:18 true (const bool) +0:19 Construct int ( specialization-constant const int) +0:19 'sci2' ( specialization-constant const highp int) +0:19 2 (const int) +0:21 component-wise multiply ( temp highp float) +0:21 'scf1' ( specialization-constant const highp float) +0:21 1.000000 +0:21 'scf1' ( specialization-constant const highp float) +0:21 1.000000 +0:22 logical-or ( specialization-constant const bool) +0:22 'scbt' ( specialization-constant const bool) +0:22 true (const bool) +0:22 'scbt' ( specialization-constant const bool) +0:22 true (const bool) +0:23 component-wise multiply ( specialization-constant const highp int) +0:23 'sci2' ( specialization-constant const highp int) +0:23 2 (const int) +0:23 'sci2' ( specialization-constant const highp int) +0:23 2 (const int) +0:24 add ( temp highp float) +0:24 'scf1' ( specialization-constant const highp float) +0:24 1.000000 +0:24 Convert int to float ( temp highp float) +0:24 'sci2' ( specialization-constant const highp int) +0:24 2 (const int) +0:26 Negate value ( temp highp float) +0:26 'scf1' ( specialization-constant const highp float) +0:26 1.000000 +0:27 Negate conditional ( specialization-constant const bool) +0:27 'scbt' ( specialization-constant const bool) +0:27 true (const bool) +0:28 Negate value ( specialization-constant const highp int) +0:28 'sci2' ( specialization-constant const highp int) +0:28 2 (const int) +0:30 Compare Greater Than ( temp bool) +0:30 'scf1' ( specialization-constant const highp float) +0:30 1.000000 +0:30 'scf1' ( specialization-constant const highp float) +0:30 1.000000 +0:31 Compare Greater Than ( specialization-constant const bool) +0:31 'sci2' ( specialization-constant const highp int) +0:31 2 (const int) +0:31 'sci2' ( specialization-constant const highp int) +0:31 2 (const int) +0:33 Compare Not Equal ( temp bool) +0:33 'scf1' ( specialization-constant const highp float) +0:33 1.000000 +0:33 'scf1' ( specialization-constant const highp float) +0:33 1.000000 +0:34 Compare Not Equal ( specialization-constant const bool) +0:34 'scbt' ( specialization-constant const bool) +0:34 true (const bool) +0:34 'scbt' ( specialization-constant const bool) +0:34 true (const bool) +0:35 Compare Not Equal ( specialization-constant const bool) +0:35 'sci2' ( specialization-constant const highp int) +0:35 2 (const int) +0:35 'sci2' ( specialization-constant const highp int) +0:35 2 (const int) +0:37 Construct ivec2 ( specialization-constant const 2-component vector of int) +0:37 'sci2' ( specialization-constant const highp int) +0:37 2 (const int) +0:37 'sci2' ( specialization-constant const highp int) +0:37 2 (const int) +0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int) +0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:38 'sci2' ( specialization-constant const highp int) +0:38 2 (const int) +0:40 Construct vec2 ( temp 2-component vector of float) +0:40 'scf1' ( specialization-constant const highp float) +0:40 1.000000 +0:40 'scf1' ( specialization-constant const highp float) +0:40 1.000000 +0:41 Construct vec2 ( temp 2-element array of 2-component vector of float) +0:41 Construct vec2 ( temp 2-component vector of float) +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:41 Construct vec2 ( temp 2-component vector of float) +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:41 'scf1' ( specialization-constant const highp float) +0:41 1.000000 +0:? Linker Objects +0:? 'scf1' ( specialization-constant const highp float) +0:? 1.000000 +0:? 'scbt' ( specialization-constant const bool) +0:? true (const bool) +0:? 'sci2' ( specialization-constant const highp int) +0:? 2 (const int) + +// Module Version 10000 +// Generated by (magic number): 80007 +// Id's are bound by 50 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source GLSL 450 + Name 4 "main" + Name 7 "scf1" + Name 11 "scbt" + Name 13 "sci2" + Decorate 7(scf1) SpecId 200 + Decorate 11(scbt) SpecId 201 + Decorate 13(sci2) SpecId 202 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7(scf1): 6(float) SpecConstant 1065353216 + 8: TypeBool + 9: 6(float) Constant 0 + 11(scbt): 8(bool) SpecConstantTrue + 12: TypeInt 32 1 + 13(sci2): 12(int) SpecConstant 2 + 14: TypeInt 32 0 + 15: 14(int) Constant 0 + 16: 8(bool) SpecConstantOp 171 13(sci2) 15 + 17: 6(float) Constant 1065353216 + 21: 12(int) Constant 0 + 22: 12(int) Constant 1 + 23: 12(int) SpecConstantOp 169 11(scbt) 22 21 + 25: 8(bool) SpecConstantOp 166 11(scbt) 11(scbt) + 26: 12(int) SpecConstantOp 132 13(sci2) 13(sci2) + 30: 8(bool) SpecConstantOp 168 11(scbt) + 31: 12(int) SpecConstantOp 126 13(sci2) + 33: 8(bool) SpecConstantOp 173 13(sci2) 13(sci2) + 35: 8(bool) SpecConstantOp 165 11(scbt) 11(scbt) + 36: 8(bool) SpecConstantOp 171 13(sci2) 13(sci2) + 37: TypeVector 12(int) 2 + 38: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2) + 39: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2) + 40: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2) + 41: 14(int) Constant 2 + 42: TypeArray 37(ivec2) 41 + 44: TypeVector 6(float) 2 + 48: TypeArray 44(fvec2) 41 + 4(main): 2 Function None 3 + 5: Label + 10: 8(bool) FOrdNotEqual 7(scf1) 9 + 18: 6(float) Select 11(scbt) 17 9 + 19: 6(float) ConvertSToF 13(sci2) + 20: 12(int) ConvertFToS 7(scf1) + 24: 6(float) FMul 7(scf1) 7(scf1) + 27: 6(float) ConvertSToF 13(sci2) + 28: 6(float) FAdd 7(scf1) 27 + 29: 6(float) FNegate 7(scf1) + 32: 8(bool) FOrdGreaterThan 7(scf1) 7(scf1) + 34: 8(bool) FOrdNotEqual 7(scf1) 7(scf1) + 43: 42 CompositeConstruct 39 40 + 45: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1) + 46: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1) + 47: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1) + 49: 48 CompositeConstruct 46 47 + Return + FunctionEnd diff --git a/deps/glslang/glslang/Test/baseResults/vulkan.comp.out b/deps/glslang/glslang/Test/baseResults/vulkan.comp.out new file mode 100644 index 0000000000..e56dca48e9 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/vulkan.comp.out @@ -0,0 +1,6 @@ +vulkan.comp +ERROR: 0:5: 'local_size' : cannot change previously set size +ERROR: 1 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/vulkan.frag.out b/deps/glslang/glslang/Test/baseResults/vulkan.frag.out new file mode 100644 index 0000000000..e46345ce95 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/vulkan.frag.out @@ -0,0 +1,64 @@ +vulkan.frag +ERROR: 0:3: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:4: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:5: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:6: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:8: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:9: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:10: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:14: 'sampler2D' : sampler-constructor requires two arguments +ERROR: 0:15: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type +ERROR: 0:16: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type +ERROR: 0:17: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler' +ERROR: 0:18: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler' +ERROR: 0:19: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler' +ERROR: 0:21: 'sampler3D' : sampler-constructor cannot make an array of samplers +ERROR: 0:22: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type +ERROR: 0:23: 'sampler2D' : sampler-constructor first argument must match type and dimensionality of constructor type +ERROR: 0:24: 'sampler2D' : sampler-constructor second argument presence of shadow must match constructor presence of shadow +ERROR: 0:25: 'sampler2DShadow' : sampler-constructor second argument presence of shadow must match constructor presence of shadow +ERROR: 0:28: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: s2D +ERROR: 0:29: 'sampler3D' : sampler-constructor cannot make an array of samplers +ERROR: 0:29: 'sampler3D' : sampler/image types can only be used in uniform variables or function parameters: s3d +ERROR: 0:29: '=' : cannot convert from ' const float' to ' global 4-element array of highp sampler3D' +ERROR: 0:31: 'location' : SPIR-V requires location for user input/output +ERROR: 0:39: 'push_constant' : can only be used with a uniform +ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan +ERROR: 0:43: 'push_constant' : can only be used with a block +ERROR: 0:45: 'push_constant' : cannot declare a default, can only be used on a block +ERROR: 0:51: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:52: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:52: 'input_attachment_index' : can only be used with a subpass +ERROR: 0:53: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:53: 'input_attachment_index' : can only be used with a subpass +ERROR: 0:54: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:54: 'subpass' : requires an input_attachment_index layout qualifier +ERROR: 0:55: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:60: 'subpassLoadMS' : no matching overloaded function found +ERROR: 0:61: 'subpassLoad' : no matching overloaded function found +ERROR: 0:63: 'subpassLoadMS' : no matching overloaded function found +ERROR: 0:66: 'subroutine' : not allowed when generating SPIR-V +ERROR: 0:66: 'subroutine' : feature not yet implemented +ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V +ERROR: 0:67: 'subroutine' : feature not yet implemented +ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan +ERROR: 0:73: 'texture' : no matching overloaded function found +ERROR: 0:74: 'imageStore' : no matching overloaded function found +WARNING: 0:82: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" +ERROR: 0:91: 'call argument' : sampler constructor must appear at point of use +ERROR: 0:92: 'call argument' : sampler constructor must appear at point of use +ERROR: 0:93: ',' : sampler constructor must appear at point of use +ERROR: 0:94: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' temp sampler2D' and a right operand of type ' temp sampler2D' (or there is no acceptable conversion) +ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use +ERROR: 0:96: 'gl_NumSamples' : undeclared identifier +ERROR: 0:101: 'noise1' : no matching overloaded function found +ERROR: 0:102: 'noise2' : no matching overloaded function found +ERROR: 0:103: 'noise3' : no matching overloaded function found +ERROR: 0:104: 'noise4' : no matching overloaded function found +ERROR: 55 compilation errors. No code generated. + + +ERROR: Linking fragment stage: Only one push_constant block is allowed per stage + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/vulkan.vert.out b/deps/glslang/glslang/Test/baseResults/vulkan.vert.out new file mode 100644 index 0000000000..19fdade554 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/vulkan.vert.out @@ -0,0 +1,43 @@ +vulkan.vert +ERROR: 0:3: 'subpass input' : not supported in this stage: vertex +ERROR: 0:3: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:4: 'subpass input' : not supported in this stage: vertex +ERROR: 0:4: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:5: 'subpass input' : not supported in this stage: vertex +ERROR: 0:5: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:6: 'subpass input' : not supported in this stage: vertex +ERROR: 0:6: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:7: 'subpass input' : not supported in this stage: vertex +ERROR: 0:7: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:8: 'subpass input' : not supported in this stage: vertex +ERROR: 0:8: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:10: 'location' : SPIR-V requires location for user input/output +ERROR: 0:12: 'constant_id' : can only be applied to a scalar +ERROR: 0:13: 'constant_id' : specialization-constant id already used +ERROR: 0:13: 'binding' : sampler/texture/image requires layout(binding=X) +ERROR: 0:13: 'constant_id' : can only be applied to 'const'-qualified scalar +ERROR: 0:13: 'constant_id' : cannot be applied to this type +ERROR: 0:14: 'constant_id' : specialization-constant id is too large +ERROR: 0:15: 'constant_id' : can only be applied to a scalar +ERROR: 0:16: 'constant_id' : specialization-constant id already used +ERROR: 0:16: 'constant_id' : cannot declare a default, can only be used on a scalar +ERROR: 0:20: 'subpassLoad' : no matching overloaded function found +ERROR: 0:20: 'assign' : cannot convert from ' const float' to ' smooth out highp 4-component vector of float' +ERROR: 0:23: 'atomic counter types' : not allowed when using GLSL for Vulkan +ERROR: 0:24: 'shared' : not allowed when generating SPIR-V +ERROR: 0:25: 'packed' : not allowed when generating SPIR-V +ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a specialization constant +ERROR: 0:34: '=' : can't use with types containing arrays sized with a specialization constant +ERROR: 0:35: '==' : can't use with types containing arrays sized with a specialization constant +ERROR: 0:39: 'set' : cannot be used with push_constant +ERROR: 0:49: '[]' : only outermost dimension of an array of arrays can be a specialization constant +ERROR: 0:50: '[]' : only outermost dimension of an array of arrays can be a specialization constant +ERROR: 0:51: '[]' : only outermost dimension of an array of arrays can be a specialization constant +ERROR: 0:54: '[]' : only outermost dimension of an array of arrays can be a specialization constant +ERROR: 0:54: 'location' : SPIR-V requires location for user input/output +ERROR: 0:58: 'location' : SPIR-V requires location for user input/output +ERROR: 0:65: 'location' : overlapping use of location 10 +ERROR: 38 compilation errors. No code generated. + + +SPIR-V is not generated for failed compile or link diff --git a/deps/glslang/glslang/Test/baseResults/whileLoop.frag.out b/deps/glslang/glslang/Test/baseResults/whileLoop.frag.out new file mode 100644 index 0000000000..cfe972da93 --- /dev/null +++ b/deps/glslang/glslang/Test/baseResults/whileLoop.frag.out @@ -0,0 +1,65 @@ +whileLoop.frag +Shader version: 110 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'color' ( temp 4-component vector of float) +0:9 'BaseColor' ( smooth in 4-component vector of float) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than ( temp bool) +0:11 direct index ( temp float) +0:11 'color' ( temp 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 'd' ( uniform float) +0:11 Loop Body +0:12 Sequence +0:12 add second child into first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'bigColor' ( uniform 4-component vector of float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:15 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + + +Linked fragment stage: + + +Shader version: 110 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:9 Sequence +0:9 Sequence +0:9 move second child to first child ( temp 4-component vector of float) +0:9 'color' ( temp 4-component vector of float) +0:9 'BaseColor' ( smooth in 4-component vector of float) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than ( temp bool) +0:11 direct index ( temp float) +0:11 'color' ( temp 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 'd' ( uniform float) +0:11 Loop Body +0:12 Sequence +0:12 add second child into first child ( temp 4-component vector of float) +0:12 'color' ( temp 4-component vector of float) +0:12 'bigColor' ( uniform 4-component vector of float) +0:15 move second child to first child ( temp 4-component vector of float) +0:15 'gl_FragColor' ( fragColor 4-component vector of float FragColor) +0:15 'color' ( temp 4-component vector of float) +0:? Linker Objects +0:? 'bigColor' ( uniform 4-component vector of float) +0:? 'BaseColor' ( smooth in 4-component vector of float) +0:? 'd' ( uniform float) + diff --git a/deps/glslang/glslang/Test/bump b/deps/glslang/glslang/Test/bump new file mode 100644 index 0000000000..f23be33b62 --- /dev/null +++ b/deps/glslang/glslang/Test/bump @@ -0,0 +1,2 @@ +cp localResults/* baseResults/ + diff --git a/deps/glslang/glslang/Test/comment.frag b/deps/glslang/glslang/Test/comment.frag new file mode 100644 index 0000000000..f5c565c22f --- /dev/null +++ b/deps/glslang/glslang/Test/comment.frag @@ -0,0 +1,19 @@ + + // +/* anotehn t* ontuh * / tnoahnt /* oo */ +/* multi line... + +ao */ +/* no escape \ +oanot */ +// escape nothing \o oeu +// escape newline \ +still in a comment +// escape newline \ + +// a different comment +#version 430 core +in vec4 v; +void main() {} + + diff --git a/deps/glslang/glslang/Test/compoundsuffix.frag.hlsl b/deps/glslang/glslang/Test/compoundsuffix.frag.hlsl new file mode 100644 index 0000000000..59322acda0 --- /dev/null +++ b/deps/glslang/glslang/Test/compoundsuffix.frag.hlsl @@ -0,0 +1,6 @@ +void main(out float4 fragColor : SV_TARGET0) +{ + fragColor = 1; +} + + diff --git a/deps/glslang/glslang/Test/compoundsuffix.vert.glsl b/deps/glslang/glslang/Test/compoundsuffix.vert.glsl new file mode 100644 index 0000000000..26862fff15 --- /dev/null +++ b/deps/glslang/glslang/Test/compoundsuffix.vert.glsl @@ -0,0 +1,4 @@ +void main() +{ + gl_Position = vec4(1.0); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/conditionalDiscard.frag b/deps/glslang/glslang/Test/conditionalDiscard.frag new file mode 100644 index 0000000000..58e6fa5d50 --- /dev/null +++ b/deps/glslang/glslang/Test/conditionalDiscard.frag @@ -0,0 +1,14 @@ +#version 110 + +uniform sampler2D tex; +varying vec2 coord; + +void main (void) +{ + vec4 v = texture2D(tex, coord); + + if (v == vec4(0.1,0.2,0.3,0.4)) + discard; + + gl_FragColor = v; +} diff --git a/deps/glslang/glslang/Test/constErrors.frag b/deps/glslang/glslang/Test/constErrors.frag new file mode 100644 index 0000000000..0067af1180 --- /dev/null +++ b/deps/glslang/glslang/Test/constErrors.frag @@ -0,0 +1,35 @@ +#version 330 + +in vec4 inVar; +out vec4 outVar; + +const int constInt = 3; + +uniform int uniformInt; + +void main() +{ + const int a1 = 2; // okay + const int a2 = constInt; // okay + const int a3 = uniformInt; // error + + vec4 c[constInt]; // okay + vec4 d[uniformInt]; // error + vec4 e[constInt + uniformInt]; // error + vec4 f[uniformInt + constInt]; // error + + vec4 g[int(sin(0.3)) + 1]; // okay +} + +const struct S { + vec3 v3; + ivec2 iv2; +} s = S(vec3(3.0), ivec2(3, constInt + uniformInt)); // ERROR, non-const y componenent + +const struct S2 { + vec3 v3; + ivec2 iv2; + mat2x4 m; +} s2 = S2(vec3(3.0), ivec2(3, constInt), mat2x4(1.0, 2.0, 3.0, inVar.x, 5.0, 6.0, 7.0, 8.0)); // ERROR, non-constant matrix + +const float f = 3; // okay, type conversion diff --git a/deps/glslang/glslang/Test/constFold.frag b/deps/glslang/glslang/Test/constFold.frag new file mode 100644 index 0000000000..730607885c --- /dev/null +++ b/deps/glslang/glslang/Test/constFold.frag @@ -0,0 +1,148 @@ +#version 430 + +const int a = 1; +const int b = 2; +const int c = a + b; // 3 +const int d = c - a; // 2 +const float e = float(d); // 2.0 +const float f = e * float(c); // 6.0 +const float g = f / float(d); // 3.0 + +const vec2 pytho = vec2(3.0, 4.0); + +in vec4 inv; +out vec4 FragColor; +out vec2 out2; +out vec4 out3; +out vec4 out4; +out ivec4 out5; +out vec3 out6; +out vec4 out7; +out vec4 out8; +out vec4 out9; +out vec4 out10; +out vec4 out11; +out ivec2 out12; +out uvec3 out13; + +void main() +{ + vec4 dx = dFdx(inv); + const ivec4 v = ivec4(a, b, c, d); + vec4 array2[v.y]; // 2 + const ivec4 u = ~v; + + const float h = degrees(g); // 171.88 + + FragColor = vec4(e, f, g, h); // 2, 6, 3, 171.88 + + vec4 array3[c]; // 3 + vec4 arrayMax[int(max(float(array2.length()), float(array3.length())))]; + vec4 arrayMin[int(min(float(array2.length()), float(array3.length())))]; + FragColor = vec4(arrayMax.length(), arrayMin.length(), sin(3.14), cos(3.14)); // 3, 2, .00159, -.999 + out2 = length(pytho) + normalize(pytho) + dFdx(pytho) + dFdy(pytho) + fwidth(pytho); // 5+3/5, 5+4/5 + out3 = vec4(exp(3.0), log(10.0), exp2(4.0), log2(256.0)); // 20.08, 2.3, 16, 8 + out4 = vec4(sqrt(100.0), inversesqrt(100.0), abs(-4.7), abs(10.9)); // 10, .1, 4.7, 10.9 + out5 = ivec4(abs(-8) + sign(0), abs(17), sign(-12), sign(9)); // 8, 17, -1, 1 + out6 = vec3(sign(-8.8), sign(18.0), sign(0.0)); // -1.0, 1.0, 0.0 + out7 = vec4(floor(4.2), ceil(-4.1), trunc(5.9), trunc(-5.9)); // 4, -4, 5, -5 + out8 = vec4(round(4.4), round(4.6), roundEven(4.5), roundEven(-5.5)); // 4, 5, 4, -6 + out9 = vec4(roundEven(7.5), roundEven(-4.5), fract(2.345), fract(-2.6)); // 8, -4, .345, 0.4 + out10 = vec4(isinf(4.0/0.0), isinf(-3.0/0.0), isinf(0.0/0.0), isinf(-93048593405938405938405.0)); // true, true, false, false -> 1.0, 1.0, 0.0, 0.0 + out11 = vec4(isnan(4.0/0.0), isnan(-3.0/0.0), isnan(0.0/0.0), isnan(-93048593405938405938405.0)); // false, false, true, false -> 0.0, 1.0, 0.0, 0.0 + out11 = vec4(tan(0.8), atan(1.029), atan(8.0, 10.0), atan(10000.0)); // 1.029, 0.8, 0.6747, 1.57 + out11 = vec4(asin(0.0), asin(0.5), acos(0.0), acos(0.5)); // 0.0, .523599, 1.57, 1.047 + + const vec4 v1 = vec4(1.0, 0.0, 0.5, -0.2); + const vec4 v2 = vec4(0.2, 0.3, 0.4, 0.5); + out11 = atan(v1, v2); // 1.373401, 0.0, 0.896055, -0.380506 + + const ivec2 v3 = ivec2(15.0, 17.0); + const ivec2 v4 = ivec2(17.0, 15.0); + out12 = min(v3, 16); // 15, 16 + out12 = max(v3, v4); // 17, 17 + out2 = pow(vec2(v3), vec2(2.5, 3.0)); // 871.4, 4913 + out13 = clamp(uvec3(1, 20, 50), 10u, 30u); // 10, 20, 30 + out2 = mix(vec2(3.0, 4.0), vec2(5.0, 6.0), bvec2(false, true)); // 3.0, 6.0 + out2 = mix(vec2(3.0, 4.0), vec2(5.0, 6.0), 0.25); // 3.5, 4.5 + out2 = step(0.5, vec2(0.2, 0.6)); // 0.0, 1.0 + out11 = smoothstep(50.0, 60.0, vec4(40.0, 51.0, 55.0, 70.0)); // 0.0, 0.028, 0.5, 1.0 +} + +const struct S { + vec3 v3; + ivec2 iv2; + mat2x4 m; +} s = S(vec3(3.0), ivec2(3, a + b), mat2x4(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0)); + +void foo() +{ + float a[s.iv2.y]; // 3 element array + a[0] = s.m[1].z; // 7.0 + b % 0; // int + b / 0; + e / 0; + const uint ua = 5; + const uvec2 ub = uvec2(6, 7); + const uint uc = 8; + ub % 4u; + 0u % uc; + ub % 0u; +} + +const mat2 m2 = mat2(2, 3, 4, 5); +const mat3 m3 = mat3(m2); +const int mc = int(m3[2][2]); +float a1[mc]; +float a2[int(m3[2][1]) + 2]; // size 2 +float a3[int(m3[1][0])]; // size 4 +const vec2 v2 = vec2(1, 2); +const vec3 v3 = vec3(3, 4, 5); +float a4[uint(mat3(v2, v3, v2, v2)[2][2])]; // size 2 + +void foo2() +{ + a1[0]; // array size 1 + a2[0]; // array size 2 + a3[0]; // array size 4 + a4[0]; // array size 2 + v2[-1]; // ERROR + v3[4]; // ERROR + m3[0][-2]; // ERROR + m2[-1][1]; // ERROR + m3[1][3]; // ERROR + m3[3][1]; // ERROR + int p; + p = -2147483647 / -1; + p = -2147483648 / -1; + p = 2147483647 / -1; + float f = vec4(7.8 < 2.4 ? -1.333 : 1.444).a; + f = vec4(inv.x < 2.4 ? -1.0 : 1.0).a; // not folded, ensuring no propagation +} + +const mat2 mm2 = mat2(1.0, 2.0, 3.0, 4.0); +const mat3x2 mm32 = mat3x2(10.0, 11.0, 12.0, 13.0, 14.0, 15.0); + +void foo3() +{ + mat3x2 r32 = mm2 * mm32; +} + +struct cag { + int i; + float f; + bool b; +}; +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); +} + +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/deps/glslang/glslang/Test/constFoldIntMin.frag b/deps/glslang/glslang/Test/constFoldIntMin.frag new file mode 100644 index 0000000000..68618326cb --- /dev/null +++ b/deps/glslang/glslang/Test/constFoldIntMin.frag @@ -0,0 +1,12 @@ +#version 460 core +#extension GL_AMD_gpu_shader_int16 : enable +#extension GL_ARB_gpu_shader_int64 : enable + +void a(){ + int16_t u = -32768S / -1S; // SHRT_MIN + int v = -2147483648 / -1; // INT_MIN + int64_t w = -9223372036854775808L / -1L; // LLONG_MIN + int16_t x = -32768S % -1S; // SHRT_MIN + int y = -2147483648 % -1; // INT_MIN + int64_t z = -9223372036854775808L % -1L; // LLONG_MIN +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/conversion.frag b/deps/glslang/glslang/Test/conversion.frag new file mode 100644 index 0000000000..f17293b89d --- /dev/null +++ b/deps/glslang/glslang/Test/conversion.frag @@ -0,0 +1,112 @@ +#version 130 + +uniform bool u_b; +uniform bvec2 u_b2; +uniform bvec3 u_b3; +uniform bvec4 u_b4; + +uniform int u_i; +uniform ivec2 u_i2; +uniform ivec3 u_i3; +uniform ivec4 u_i4; + +uniform float u_f; +uniform vec2 u_f2; +uniform vec3 u_f3; +uniform vec4 u_f4; + +uniform bool i_b; +uniform bvec2 i_b2; +uniform bvec3 i_b3; +uniform bvec4 i_b4; + +flat in int i_i; +flat in ivec2 i_i2; +flat in ivec3 i_i3; +flat in ivec4 i_i4; + +in float i_f; +in vec2 i_f2; +in vec3 i_f3; +in vec4 i_f4; + +void main() +{ + bool b = bool(u_i) ^^ bool(u_f); + bvec2 b2 = bvec2(u_i, u_f); + bvec3 b3 = bvec3(u_i, u_f, i_i); + bvec4 b4 = bvec4(u_i, u_f, i_i, i_f); + + int i = int(u_f) + int(b); + ivec2 i2 = ivec2(u_f2) + ivec2(b2); + ivec3 i3 = ivec3(u_f3) + ivec3(b3); + ivec4 i4 = ivec4(u_f4) + ivec4(b4); + + float f = i; + vec2 f2 = i2; + vec3 f3 = i3; + vec4 f4 = i4; + + f += (float(i) + float(b)); + f2 -= vec2(i2) + vec2(b2); + f3 /= vec3(i3) + vec3(b3); + f4 += vec4(i4) + vec4(b4); + + f4 += vec4(bvec4(i_i4)); + f4 += vec4(bvec4(u_f4)); + + f += f - i; + f2 += vec2(f, i) + i2; + f3 += i3 + vec3(f, i, f); + f4 += vec4(b, i, f, i) + i4; + + f2 += vec2(f, i) * i; + f3 += vec3(f, i, f) + i; + f4 += i - vec4(b, i, f, i); + + i2 += ivec2(f, i); + i3 += ivec3(f, i, f); + i4 += ivec4(b, i, f, i); + + if (f < i || i < f || + f2 == i2 || + i3 != f3) + f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y); + + gl_FragColor = + b || + b2.x || + b2.y || + b3.x || + b3.y || + b3.z || + b4.x || + b4.y || + b4.z || + b4.w ? vec4( + i + + i2.x + + i2.y + + i3.x + + i3.y + + i3.z + + i4.x + + i4.y + + i4.z + + i4.w + + f + + f2.x + + f2.y + + f3.x + + f3.y + + f3.z + + f4.x + + f4.y + + f4.z + + f4.w) : vec4(1.0); + + // with constants... + ivec4 cv2 = ivec4(1.0); + bvec4 cv5 = bvec4(cv2); + gl_FragColor += float(cv5); +} diff --git a/deps/glslang/glslang/Test/cppBad.vert b/deps/glslang/glslang/Test/cppBad.vert new file mode 100644 index 0000000000..0044c44fce --- /dev/null +++ b/deps/glslang/glslang/Test/cppBad.vert @@ -0,0 +1,5 @@ +#define m#0# +#if m +#endif +#define n() +int n" \ No newline at end of file diff --git a/deps/glslang/glslang/Test/cppBad2.vert b/deps/glslang/glslang/Test/cppBad2.vert new file mode 100644 index 0000000000..5e61b49ef3 --- /dev/null +++ b/deps/glslang/glslang/Test/cppBad2.vert @@ -0,0 +1,3 @@ +#define a b( +#define b(x) +b(a) \ No newline at end of file diff --git a/deps/glslang/glslang/Test/cppComplexExpr.vert b/deps/glslang/glslang/Test/cppComplexExpr.vert new file mode 100644 index 0000000000..bce5ffa379 --- /dev/null +++ b/deps/glslang/glslang/Test/cppComplexExpr.vert @@ -0,0 +1,183 @@ +#version 300 es +#define ON1 +#define ON2 +float sum = 0.0; + +void main() +{ +#if defined(ON1) && (defined(OFF) || defined(ON2)) +//yes + sum += 1.0; +#endif + +#if !defined(ON1) || (defined(OFF) || (!defined(OFF2) && defined(ON2))) +//yes + sum += 20.0; +#endif + +#if defined(ON1) && (defined(OFF) || !defined(ON2)) +//no + sum += 0.1; +#endif + +#if !defined(ON1) || (defined(OFF) || !defined(OFF2) && !defined(ON2)) +//no + sum += 0.2; +#endif + +#if !defined(ON1) || !defined(OFF) || defined(ON2) && defined(OFF2) +//yes + sum += 300.0; +#endif + +#if (!defined(ON1) || !defined(OFF) || defined(ON2)) && defined(OFF2) +//no + sum += 0.4; +#endif + +// sum should be 321.0 + gl_Position = vec4(sum); +} + +#define ADD(a, b) a + b + ((a) + ((b))); + +float foo() +{ + return ADD(gl_Position.xyxwx, 3.0) // ERROR, should be this line number + return ADD(gl_Position.y, 3.0) +} + +#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \ + antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \ + antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \ + a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \ + anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \ + ontehanutoe hnuathoena aoteha aonetuha + +// identical +#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \ + antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \ + antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \ + a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \ + anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \ + ontehanutoe hnuathoena aoteha aonetuha + +// ERROR, one character different +#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \ + antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \ + antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \ + a ntoehanu tunth nsont uhansoethasn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \ + anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \ + ontehanutoe hnuathoena aoteha aonetuha + +#define BIGARGS1(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu +#define BIGARGS2(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu +#define BIGARGS3(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu +#define BIGARGS4(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu + + +#define foobar(a, b) a + b + +#if foobar(1.1, 2.2) +#error good macro +#else +#error bad macro +#endif + +#if foobar(1 +; +# +# +#endif +#if foobar(1, +; +# +# +#endif +float c = foobar(1.1, 2.2 + ); +#if foobar(1.1, 2.2 +) +#if foobar(1.1, 2.2 +#endif +#endif + +#define VAL0 0 +#define VAL1 1 + +#if UNDEF +#error bad 0 +#else +#error good 0 +#endif + +#if VAL1 || UNDEF +#error good 1 +#else +#error bad 1 +#endif + +#if VAL1 && UNDEF // UNDEF ERROR +#endif + +#if VAL0 || UNDEF // UNDEF ERROR +#endif + +#if VAL0 && UNDEF +#error bad 2 +#else +#error good 1 +#endif + +#if VAL1 || (VAL1 && UNDEF) +#error good 3 +#else +#error bad 3 +#endif + +#if VAL1 && (VAL1 || UNDEF) +#error good 4 +#else +#error bad 4 +#endif + +#if VAL1 < VAL1 || VAL1 > VAL1 || UNDEF // UNDEF ERROR +#endif + +#if VAL1 < VAL1 || VAL1 > VAL1 && UNDEF +#endif + +#if VAL1 || UNDEF && UNDEF2 +#endif + +#if VAL0 || UNDEF && UNDEF2 // UNDEF ERROR +#endif + +#if (VAL1 || UNDEF) && UNDEF2 // UNDEF2 ERROR +#endif + +#if (VAL0 && UNDEF) || UNDEF2 // UNDEF2 ERROR +#endif + +#line 3000 +#error line of this error should be 3000 + +#define __LINE__ 30 +#define __FILE__ +#define __VERSION__ +#define GL_SOME_EXTENSION +#undef __LINE__ +#undef __FILE__ +#undef __VERSION__ +#undef GL_SOME_EXTENSION + +#line 4000 +#line 200 % 0 // ERROR, div by 0 +#if __LINE__ / 0 // ERROR, div by 0 +#endif + +#if 7% // ERROR incomplete expression + +#line 10000 +#if 0 +// ERROR, EOF \ No newline at end of file diff --git a/deps/glslang/glslang/Test/cppDeepNest.frag b/deps/glslang/glslang/Test/cppDeepNest.frag new file mode 100644 index 0000000000..51c436e4f9 --- /dev/null +++ b/deps/glslang/glslang/Test/cppDeepNest.frag @@ -0,0 +1,117 @@ +#ifdef O +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#if +#endif diff --git a/deps/glslang/glslang/Test/cppIndent.vert b/deps/glslang/glslang/Test/cppIndent.vert new file mode 100644 index 0000000000..41bb12e4a7 --- /dev/null +++ b/deps/glslang/glslang/Test/cppIndent.vert @@ -0,0 +1,61 @@ +#version 110 + +#define ON + +float sum = 0.0; + +void main() +{ + +#ifdef ON +//yes +sum += 1.0; +#endif + +#ifdef OFF + //no + sum += 20.0; +#endif + + #if defined(ON) + //yes + sum += 300.0; + #endif + + #if defined(OFF) + //no + sum += 4000.0; + #endif + + #if !defined(ON) + //no + sum += 50000.0; + #endif + + #if !defined(OFF) + //yes + sum += 600000.0; + #endif + + #if defined (ON) && defined (OFF) +//no +sum += 7000000.0; + #endif + +#if defined ( ON ) && ! defined(OFF) +//yes +sum += 80000000.0; +#endif + +#if defined(OFF) || defined(ON) +//yes +sum += 900000000.0; +#endif + +// sum should be 980600301.0 + gl_Position = vec4(sum); +} + +#define FUNC(a,b) a+b +// needs to be last test in file due to syntax error +void foo986(){ FUNC( (((2)))), 4); } // ERROR, too few arguments ) diff --git a/deps/glslang/glslang/Test/cppIntMinOverNegativeOne.frag b/deps/glslang/glslang/Test/cppIntMinOverNegativeOne.frag new file mode 100644 index 0000000000..b7e0a95364 --- /dev/null +++ b/deps/glslang/glslang/Test/cppIntMinOverNegativeOne.frag @@ -0,0 +1,6 @@ +#if (-2147483648 / -1) != 0 +#error INT_MIN / -1 should yield 0, something went wrong. +#endif +#if (-2147483648 % -1) != 0 +#error INT_MIN % -1 should yield 0, something went wrong. +#endif \ No newline at end of file diff --git a/deps/glslang/glslang/Test/cppNest.vert b/deps/glslang/glslang/Test/cppNest.vert new file mode 100644 index 0000000000..26038ea965 --- /dev/null +++ b/deps/glslang/glslang/Test/cppNest.vert @@ -0,0 +1,177 @@ +#version 110 + +#define ON + +float sum = 0.0; + +void main() +{ + +#ifdef ON +//yes +sum += 1.0; + + #ifdef OFF + //no + sum += 20.0; + #endif + + #if defined(ON) + //yes + sum += 300.0; + #endif + +#endif + + +#if defined(OFF) +//no +sum += 4000.0; + +#if !defined(ON) +//no +sum += 50000.0; +#endif + + //no + sum += 0.1; + #ifdef ON + //no + sum += 0.2; + #endif + + //no + sum += 0.01; + #ifdef ON + //no + sum += 0.02; + #else + //no + sum += 0.03; + #endif + +//no + sum + 0.3; + +#endif + + +#if !defined(OFF) +//yes +sum += 600000.0; + + #if defined(ON) && !defined(OFF) + //yes + sum += 80000000.0; + + #if defined(OFF) || defined(ON) + //yes + sum += 900000000.0; + + #if defined(ON) && defined(OFF) + //no + sum += 0.7; + #elif !defined(OFF) + //yes + sum += 7000000.0; + #endif + + #endif + + #endif + +#endif + +// sum should be 987600301.0 + gl_Position = vec4(sum); +} + +#define A 1 +#define C 0 +#define E 0 +#define F 1 +#if A + #if C + #if E + int selected4 = 1; + #elif F + int selected4 = 2; + #else + int selected4 = 3; + #endif + #endif + int selected4 = 4; +#endif + +#define ZA 1 +#define ZC 1 +#define ZE 0 +#define ZF 1 +#if ZA + #if ZC + #if ZE + int selected2 = 1; + #elif ZF + int selected2 = 2; + #else + int selected2 = 3; + #endif + #endif +#endif + +#define AZA 1 +#define AZC 1 +#define AZE 0 +#define AZF 0 +#if AZA + #if AZC + #if AZE + int selected3 = 1; + #elif AZF + int selected3 = 2; + #else + int selected3 = 3; + #endif + #endif +#endif + +// ERROR cases... + +#if 0 +int; +#else +int; +#elif 1 +int; +#endif + +#if 0 +int; +#else +int; +#else +int; +#endif + +#if 0 + #if 0 + int; + #else + int; + #elif 1 + int; + #endif + + #if 0 + int; + #else + int; + #else + int; + #endif +#endif + +#define FUNC(a,b) a+b +void foo985(){ FUNC( (((2))), ((3),4)); } +// needs to be last test in file +void foo987(){ FUNC(((); } // ERROR, EOF in argument diff --git a/deps/glslang/glslang/Test/cppPassMacroName.frag b/deps/glslang/glslang/Test/cppPassMacroName.frag new file mode 100644 index 0000000000..046629f2c6 --- /dev/null +++ b/deps/glslang/glslang/Test/cppPassMacroName.frag @@ -0,0 +1,30 @@ +#define f1(i) ((i)*(i)) +#define I2(f, n) f(n) + f(n+1) +#define I3(f, n) I2(f, n) + f(n+2) + +#define FL_f1(i) ((i)*(i)) +#define FL_I2(f, n) f(n) + f(n+0.2) +#define FL_I3(f, n) FL_I2(f, n) + f(n+0.5) + +void main() +{ + int f1 = 4; + int f2 = f1; + int f3 = f1(3); + int f4 = I2(f1, 0); + int f5 = I3(f1, 0); + + highp float fl_f5 = FL_I3(FL_f1, 0.1); +} + +// f5 = I3(f1, 0) +// = I2(f1, 0) + f1(0 + 2) +// = f1(0) + f1(0+1) + f1(0+2) +// = 0*0 + 1*1 + 2*2 +// = 5 + +// fl_f5 = FL_I3(FL_f1, 0.1) +// = FL_I2(FL_f1, 0.1) + FL_f1(0.1 + 0.5) +// = FL_f1(0.1) + FL_f1(0.1 + 0.2) + FL_f1(0.1 + 0.5) +// = 0.1*0.1 + 0.3*0.3 + 0.6*0.6 +// = 0.46 diff --git a/deps/glslang/glslang/Test/cppRelaxSkipTokensErrors.vert b/deps/glslang/glslang/Test/cppRelaxSkipTokensErrors.vert new file mode 100644 index 0000000000..b30af0c9f9 --- /dev/null +++ b/deps/glslang/glslang/Test/cppRelaxSkipTokensErrors.vert @@ -0,0 +1,14 @@ +#version 110 + +#if 0 +3.5L +3.5h +2034h +1.#INF +0x1234567812345L +12323394203923879234L +0123s; +123s; +0123456712345671234L +"string" +#endif diff --git a/deps/glslang/glslang/Test/cppSimple.vert b/deps/glslang/glslang/Test/cppSimple.vert new file mode 100644 index 0000000000..fdd14221b6 --- /dev/null +++ b/deps/glslang/glslang/Test/cppSimple.vert @@ -0,0 +1,353 @@ +#version 400 + +#define ON + +float sum = 0.0; + +void main() +{ + +#ifdef ON +//yes +sum += 1.0; +#endif + +#ifdef OFF +//no +sum += 20.0; +#endif + +#if defined(ON) +//yes +sum += 300.0; +#endif + +#if defined(OFF) +//no +sum += 4000.0; +#endif + +#if !defined(ON) +//no +sum += 50000.0; +#endif + +#ifndef OFF +//yes +sum += 600000.0; +#else +//no +sum += 0.6; +#endif + +#if defined(ON) && defined(OFF) +//no +sum += 0.7; +#elif !defined(OFF) +//yes +sum += 7000000.0; +#endif + +#if defined(ON) && !defined(OFF) +//yes +sum += 80000000.0; +#endif + +#if defined(OFF) || defined(ON) +//yes +sum += 900000000.0; +#endif + +#if NEVER_DEFINED +//no +sum += 0.04; +#else +sum += 0.05; +#endif + +// sum should be 987600301.7 + gl_Position = vec4(sum); +} + +#define A 0 +# define B 0 + # define C 0 + +#if (A == B) || (A == C) +#error good1 +#endif + +#if A == B || (A == C) +#error good2 +#endif + +#if (A == B || (A == C)) +#error good3 +#endif + +#if (AA == BB) || (AA == CC) +#error good4 +#endif + +#if AA == BB || (AA == CC) +#error good5 +#endif + +#if ((AA == BB || (AA == CC))) +#error good6 +#endif + +#if (A == B || (A == C) +#error bad1 +#endif + +#if A == B || A == C) +#error bad2 +#endif + +#if (A == B || (A == C) +#error bad3 +#endif + +#if AA == BB) || (AA == CC) +#error bad4 +#endif + +#if AA == BB || (AA == CC +#error bad5 +#endif + +#if ((AA == BB || (AA == CC)))) +#error bad6 +#endif extra tokens + +int linenumber = __LINE__; +int filenumber = __FILE__; +int version = __VERSION__; + +#define PI (3.14) +#define TWOPI (2.0 * PI) +float twoPi = TWOPI; + +//#define PASTE(a,b) a ## b +//float PASTE(tod, ay) = 17; + +"boo" // ERROR +int a = length("aoenatuh"); // ERROR +#define QUOTE "abcd" // okay +'int'; // ERROR +#define SINGLE 'a' // okay +// ERROR: all the following are reserved +#define GL_ +#define GL_Macro 1 +#define __M +#define M__ +#define ABC__DE abc + +#if 4 +#else extra +#elif +// ERROR elif after else +#endif + +#if blah + #if 0 + #else extra + #ifdef M + #else + #else + // ERROR else after else + #endif extra + #endif +#endif + +#define m1(a,a) // ERROR +#define m2(a,b) + +// okay +#define m3 (a) +#define m3 (a) + +// ERROR +#define m4(b) +#define m4 (b) + +// ERROR +#define m5 (b) +#define m5(b) + +// ERROR +#define m6(a) +#define m6 + +// ERROR (whitespace) +#define m7 (a) +#define m7 ( a) + +#define m80(a,b) is + exactly m3 the same +#define m80(a,b) is + exactly m3 the same + +// ERROR +#define m8(a,b) almost + exactly m3 the same +#define m8(a,b) almost + exactly m3 thee same + +// ERROR +#define m9(a,b,c) aoe +#define m9(a,d,c) aoe + +#define n1 0xf +int n = n1; + +#define f1 .08e-2Lf +double f = f1; + +#undef __VERSION__ +#undef GL_ARB_texture_rectangle + +# + # + # +## +# # +# 0x25 +#### +####ff +#########ff fg 0x25 +#pragma +#pragma(aoent) + # pragma +#pragma STDGL +#pragma optimize( on) +#pragma optimize(off) +#pragma debug( on) +#pragma debug(off ) +#pragma optimize( on) anoteun +#pragma optimize(off +#pragma debug( on) ( +#pragma debug(off aoeua) +#pragma optimize( on) +#pragma optimize(off,) +#pragma debug( on, aoeu) +#pragma debugoff ) +#pragma aontheu natoeh uantheo uasotea noeahuonea uonethau onethuanoeth aunotehau noeth anthoeua anoethuantoeh uantoehu natoehu naoteh unotaehu noethua onetuh aou +# \ + +# \ + error good continuation + +#flizbit + +#define directive error + +#directive directive was expanded + +#line 12000 +#error line should be 12000 +#line 13000 7 +#error line should be 13000, string 7 +#define L1 14000 +#define L2 13 +#define F1 5 +#define F2 7 +#line L1 + L2 +#error line should be 14013, string 7 +#line L1 + L2 F1 + F2 // antoeuh sat comment +#error line should be 14013, string 12 +#line L1 + L2 + F1 + F2 +#error line should be 14025, string 12 +#line 1234 F1 + F2 extra +#define empty_extra +#line 1235 F1 + F2 empty_extra +#define moreEmpty empty_extra +#line 1236 F1 + F2 moreEmpty empty_extra // okay, lots of nothin +#line 1237 F1 + F2 moreEmpty empty_extra extra // ERROR, 'extra' +#line 1238 F1 + F2 moreEmpty empty_extra +#line 1239 empty_extra F1 empty_extra + empty_extra F2 empty_extra moreEmpty empty_extra +#line (20000) +#error line should be 20000 +#line (20000+10) +#error line should be 20010 +#line +20020 +#error line should be 20020 + +#define VAL1 1.0 +#define VAL2 2.0 + +#define RES2 /* test a multiline + comment in a macro definition */ (RES1 * VAL2) +#define RES1 (VAL2 / VAL1) +#define RES2 /* comment */(RES1 * VAL2) +#define /* */SUM_VALUES (RES2 + RES1) + +void foo234() +{ + gl_Position = vec4(SUM_VALUES); +} + +// more whitespace recording tests +#define SPACE_AT_END(a,b) spaceAtEndIsOkay +#define SPACE_AT_END(a,b) spaceAtEndIsOkay // space at end + +#define SPACE_AT_BEGIN(a,b)spaceAtBeginIsOkay +#define SPACE_AT_BEGIN(a,b) spaceAtBeginIsOkay + +// space in middle is an error +#define SPACE_IN_MIDDLE(a,b) space +in middle +#define SPACE_IN_MIDDLE(a,b) space + in middle + +#define FIRSTPART 17 +#define SECONDPART + 5 + +#if FIRSTPART SECONDPART == 22 +#error good evaluation 1 +#endif + +#if moreEmpty FIRSTPART moreEmpty SECONDPART moreEmpty == moreEmpty 22 moreEmpty +#error good evaluation 2 +#endif + +// ERRORS... +#line 9000 +#if defined(OUNH +#endif +#if defined OUNH) +#endif + +// recursion (okay) +#define RECURSE RECURSE +int RECURSE; +#define R2 R1 +#define R1 R2 +#undef RECURSE +int R1 = RECURSE; + +#define FOOOM(a,b) a + b +int aoeua = FOOOM; +#if FOOOM +#endif + +#line 9500 +#if\376 +#endif +#if \376 +#endif +#if \377 +#endif +#error\377 +#error \ 376 +#error \377 + +// ERROR for macro expansion to yield 'defined' +#line 9600 +#define DEF_MAC +#define DEF_DEFINED defined +#if DEF_DEFINED DEF_MAC +#error DEF_DEFINED then +#else +#error DEF_DEFINED else +#endif + +#line 10000 +#if 1 +#else +// ERROR, missing #endif \ No newline at end of file diff --git a/deps/glslang/glslang/Test/dataOut.frag b/deps/glslang/glslang/Test/dataOut.frag new file mode 100644 index 0000000000..258f534eaf --- /dev/null +++ b/deps/glslang/glslang/Test/dataOut.frag @@ -0,0 +1,8 @@ +#version 130 + +varying vec4 Color; + +void main() +{ + gl_FragData[1] = Color; +} diff --git a/deps/glslang/glslang/Test/dataOutIndirect.frag b/deps/glslang/glslang/Test/dataOutIndirect.frag new file mode 100644 index 0000000000..d6b8667d73 --- /dev/null +++ b/deps/glslang/glslang/Test/dataOutIndirect.frag @@ -0,0 +1,10 @@ +#version 130 + +varying vec4 Color; + +uniform int i; + +void main() +{ + gl_FragData[i] = Color; +} diff --git a/deps/glslang/glslang/Test/dce.frag b/deps/glslang/glslang/Test/dce.frag new file mode 100644 index 0000000000..119a98ddfe --- /dev/null +++ b/deps/glslang/glslang/Test/dce.frag @@ -0,0 +1,56 @@ +#version 400 + +const bool flag = false; + +int c = 0; + +void bar() +{ + if (flag) + ++c; // should still show up in AST + else + ++c; + + flag ? ++c : ++c; // both should still show up in AST + + switch (c) { + case 1: + ++c; + break; + ++c; // should still show up in AST + case 2: + break; + ++c; // should still show up in AST + default: + break; + } + + for (int i = 0; i < 0; ++i) + ++c; // should still show up in AST + + for (int i = 0; i < 10; ++i) { + if (c < 3) { + break; + ++c; // should still show up in AST + } else { + continue; + ++c; // should still show up in AST + } + } + + return; + + ++c; // should still show up in AST +} + +int foo() // not called, but should still show up in AST +{ + if (c > 4) { + return 4; + ++c; // should still show up in AST + } + + return 5; + + ++c; // should still show up in AST +} diff --git a/deps/glslang/glslang/Test/decls.frag b/deps/glslang/glslang/Test/decls.frag new file mode 100644 index 0000000000..486e796328 --- /dev/null +++ b/deps/glslang/glslang/Test/decls.frag @@ -0,0 +1,49 @@ +#version 120 + +int a; +int b, c; +int d1 = 1; +int e2 = 2, f; +int g, h3 = 3; + +int i4[4]; +int j, k5[5]; +int m6[6], m7[7]; +int n8[8], p; + +int ii4[4] = int[](1, 2, 3, 4); +int ij, ik5[5] = int[](5, 6, 7, 8, 9); +int im2[2] = int[](10, 11), im3[3] = int[](12, 13, 14); +int in8[4] = int[](21, 22, 23, 24), ip; + +void vi4[4] = int[](1, 2, 3, 4); +void vj, vk5[5] = int[](5, 6, 7, 8, 9); +void vm2[2] = int[](10, 11), vm3[3] = int[](12, 13, 14); +void vn8[4] = int[](21, 22, 23, 24), vp; + +const int cii4[4] = int[](1, 2, 3, 4); +const int cij, cik5[5] = int[](5, 6, 7, 8, 9); +const int cim2[2] = int[](10, 11), cim3[3] = int[](12, 13, 14); +const int cin8[4] = int[](21, 22, 23, 24), cip; + +uniform int uii4[4] = int[](1, 2, 3, 4); +uniform int uij, uik5[5] = int[](5, 6, 7, 8, 9); +uniform int uim2[2] = int[](10, 11), uim3[3] = int[](12, 13, 14); +uniform int uin8[4] = int[](21, 22, 23, 24), uip; + +int gl_vi4[4] = int[](1, 2, 3, 4); +int gl_vj, gl_vk5[5] = int[](5, 6, 7, 8, 9); +int gl_vm2[2] = int[](10, 11), gl_vm3[3] = int[](12, 13, 14); +int gl_vn8[4] = int[](21, 22, 23, 24), gl_vp; + +void main() +{ + while (bool cond = b < c); + while (int icond = b); + while (bool gl_cond = b < c); +} + +int foob__vi4[4] = int[](1, 2, 3, 4); +int foob__vj, foob__vk5[5] = int[](5, 6, 7, 8, 9); +int __foobvm2[2] = int[](10, 11), __foobvm3[3] = int[](12, 13, 14); +int foob__vn8[4] = int[](21, 22, 23, 24), foob__vp; diff --git a/deps/glslang/glslang/Test/deepRvalue.frag b/deps/glslang/glslang/Test/deepRvalue.frag new file mode 100644 index 0000000000..4d88086673 --- /dev/null +++ b/deps/glslang/glslang/Test/deepRvalue.frag @@ -0,0 +1,36 @@ +#version 120 + +uniform sampler2D sampler; + +vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0); +vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0); +vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0); +vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0); + +struct str { + int a; + vec2 b[3]; + bool c; +}; + +void main() +{ + mat4 m = mat4(v1, v2, v3, v4); + + mat4 mm = matrixCompMult(m, m); + float f = mm[1].w; // should be 19 * 19 = 361 + + // do a deep access to a spontaneous r-value + float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841 + + float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0 + + float i = texture2D(sampler, vec2(0.5,0.5)).y; + + i += (i > 0.1 ? v1 : v2)[3]; + + str t; + i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0 + + gl_FragColor = vec4(f, g, h, i); +} diff --git a/deps/glslang/glslang/Test/depthOut.frag b/deps/glslang/glslang/Test/depthOut.frag new file mode 100644 index 0000000000..5a89271016 --- /dev/null +++ b/deps/glslang/glslang/Test/depthOut.frag @@ -0,0 +1,10 @@ +#version 130 + +varying vec4 Color; +varying float Depth; + +void main() +{ + gl_FragDepth = Depth; + gl_FragColor = Color; +} diff --git a/deps/glslang/glslang/Test/discard-dce.frag b/deps/glslang/glslang/Test/discard-dce.frag new file mode 100644 index 0000000000..f2fef4d115 --- /dev/null +++ b/deps/glslang/glslang/Test/discard-dce.frag @@ -0,0 +1,35 @@ +#version 110 +varying vec2 tex_coord; + +void main (void) +{ + vec4 white = vec4(1.0); + vec4 black = vec4(0.2); + vec4 color = white; + + // First, cut out our circle + float x = tex_coord.x*2.0 - 1.0; + float y = tex_coord.y*2.0 - 1.0; + + float radius = sqrt(x*x + y*y); + if (radius > 1.0) { + if (radius > 1.1) { + ++color; + } + + gl_FragColor = color; + + if (radius > 1.2) { + ++color; + } + + discard; + } + + // If we're near an edge, darken us a tiny bit + if (radius >= 0.75) + color -= abs(pow(radius, 16.0)/2.0); + + gl_FragColor = color; + +} diff --git a/deps/glslang/glslang/Test/doWhileLoop.frag b/deps/glslang/glslang/Test/doWhileLoop.frag new file mode 100644 index 0000000000..3d6f93c519 --- /dev/null +++ b/deps/glslang/glslang/Test/doWhileLoop.frag @@ -0,0 +1,16 @@ +#version 110 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +void main() +{ + vec4 color = BaseColor; + + do { + color += bigColor; + } while (color.x < d); + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/earlyReturnDiscard.frag b/deps/glslang/glslang/Test/earlyReturnDiscard.frag new file mode 100644 index 0000000000..718ea72f30 --- /dev/null +++ b/deps/glslang/glslang/Test/earlyReturnDiscard.frag @@ -0,0 +1,102 @@ +#version 110 + +uniform float d; +uniform vec4 bigColor, smallColor; +uniform vec4 otherColor; + +varying float c; + +uniform float threshhold; +uniform float threshhold2; +uniform float threshhold3; + +uniform float minimum; + +varying vec4 BaseColor; + +uniform bool b; + +void main() +{ + vec4 color = BaseColor; + vec4 color2; + + color2 = otherColor; + + if (c > d) + color += bigColor; + else + color += smallColor; + + if (color.z < minimum) + return; + + color.z++; + + if (color.z > threshhold) + discard; + + color++; + + // Two path, different rest + if (color.w > threshhold2) { + if (color.z > threshhold2) + return; + else if (b) + color.z++; + else { + if (color.x < minimum) { + discard; + } else { + color++; + } + } + } else { + if (b) + discard; + else + return; + } + + + // // Two path, shared rest + // if (color.w > threshhold2) { + // if (color.z > threshhold2) + // return; + // else if (b) + // color++; + // else { + // if (color.x < minimum) { + // discard; + // } else { + // color++; + // } + // } + // } else { + // if (b) + // discard; + // else + // return; + // } + + + // // One path + // if (color.w > threshhold2) { + // if (color.z > threshhold2) + // return; + // else { + // if (color.x < minimum) { + // discard; + // } else { + // color++; + // } + // } + // } else { + // if (b) + // discard; + // else + // return; + // } + + gl_FragColor = color * color2; +} diff --git a/deps/glslang/glslang/Test/empty.frag b/deps/glslang/glslang/Test/empty.frag new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deps/glslang/glslang/Test/empty2.frag b/deps/glslang/glslang/Test/empty2.frag new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/deps/glslang/glslang/Test/empty2.frag @@ -0,0 +1 @@ + diff --git a/deps/glslang/glslang/Test/empty3.frag b/deps/glslang/glslang/Test/empty3.frag new file mode 100644 index 0000000000..14cd83d77f --- /dev/null +++ b/deps/glslang/glslang/Test/empty3.frag @@ -0,0 +1 @@ +#version 110 diff --git a/deps/glslang/glslang/Test/errors.frag b/deps/glslang/glslang/Test/errors.frag new file mode 100644 index 0000000000..99cf2b9365 --- /dev/null +++ b/deps/glslang/glslang/Test/errors.frag @@ -0,0 +1,4 @@ +int main(int foo) +{ + return 1; +} diff --git a/deps/glslang/glslang/Test/es-link1.frag b/deps/glslang/glslang/Test/es-link1.frag new file mode 100644 index 0000000000..fe4da41d03 --- /dev/null +++ b/deps/glslang/glslang/Test/es-link1.frag @@ -0,0 +1,8 @@ +#version 100 + +mediump vec4 calculateColor(); + +void main() +{ + gl_FragColor = calculateColor(); +} diff --git a/deps/glslang/glslang/Test/es-link2.frag b/deps/glslang/glslang/Test/es-link2.frag new file mode 100644 index 0000000000..e7b5a4779b --- /dev/null +++ b/deps/glslang/glslang/Test/es-link2.frag @@ -0,0 +1,8 @@ +#version 100 + +varying mediump vec4 varyingColor; + +mediump vec4 calculateColor() +{ + return varyingColor * 0.5; +} diff --git a/deps/glslang/glslang/Test/findFunction.frag b/deps/glslang/glslang/Test/findFunction.frag new file mode 100644 index 0000000000..7e180650b0 --- /dev/null +++ b/deps/glslang/glslang/Test/findFunction.frag @@ -0,0 +1,46 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable + +int64_t func(int8_t a, int16_t b, int16_t c) +{ + return int64_t(a | b + c); +} + +int64_t func(int8_t a, int16_t b, int32_t c) +{ + return int64_t(a | b - c); +} + +int64_t func(int32_t a, int32_t b, int32_t c) +{ + return int64_t(a / b + c); +} + +int64_t func(float16_t a, float16_t b, float32_t c) +{ + return int64_t(a - b * c); +} + +int64_t func(float16_t a, int16_t b, float32_t c) +{ + return int64_t(a - b * c); +} + +void main() +{ + int8_t x; + int16_t y; + int32_t z; + int64_t w; + float16_t f16; + float64_t f64; + int64_t b1 = func(x, y, z); + int64_t b2 = func(y, y, z); // tie + int64_t b3 = func(y, y, w); // No match + int64_t b4 = func(y, z, f16); // No match + int64_t b5 = func(y, y, f16); + int64_t b7 = func(f16, f16, y); + int64_t b8 = func(f16, f16, f64); // No match + int64_t b9 = func(f16, x, f16); // tie +} diff --git a/deps/glslang/glslang/Test/flowControl.frag b/deps/glslang/glslang/Test/flowControl.frag new file mode 100644 index 0000000000..eaa6fb1da4 --- /dev/null +++ b/deps/glslang/glslang/Test/flowControl.frag @@ -0,0 +1,23 @@ +#version 120 + +uniform float d; +uniform vec4 bigColor, smallColor; +uniform vec4 otherColor; + +varying float c; +varying vec4 BaseColor; + +void main() +{ + vec4 color = BaseColor; + vec4 color2; + + color2 = otherColor; + + if (c > d) + color += bigColor; + else + color += smallColor; + + gl_FragColor = color * color2; +} diff --git a/deps/glslang/glslang/Test/foo.h b/deps/glslang/glslang/Test/foo.h new file mode 100644 index 0000000000..7f79340b6d --- /dev/null +++ b/deps/glslang/glslang/Test/foo.h @@ -0,0 +1 @@ +#error should not be included \ No newline at end of file diff --git a/deps/glslang/glslang/Test/forLoop.frag b/deps/glslang/glslang/Test/forLoop.frag new file mode 100644 index 0000000000..117ecad159 --- /dev/null +++ b/deps/glslang/glslang/Test/forLoop.frag @@ -0,0 +1,41 @@ +#version 130 + +uniform vec4 bigColor; +in vec4 BaseColor; +in float f; + +uniform int Count; +uniform uvec4 v4; + +void main() +{ + vec4 color = BaseColor; + + for (int i = 0; i < Count; ++i) { + color += bigColor; + } + + gl_FragColor = color; + + float sum = 0.0; + for (int i = 0; i < 4; ++i) + sum += v4[i]; + + vec4 tv4; + + for (int i = 0; i < 4; ++i) + tv4[i] = v4[i] * 4u; + + gl_FragColor += vec4(sum) + tv4; + + vec4 r; + r.xyz = BaseColor.xyz; + + for (int i = 0; i < Count; ++i) + r.w = f; + + gl_FragColor.xyz += r.xyz; + + for (int i = 0; i < 16; i += 4) + gl_FragColor *= f; +} diff --git a/deps/glslang/glslang/Test/forwardRef.frag b/deps/glslang/glslang/Test/forwardRef.frag new file mode 100644 index 0000000000..49f3504eac --- /dev/null +++ b/deps/glslang/glslang/Test/forwardRef.frag @@ -0,0 +1,37 @@ +#version 110 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +void bar(); +float foo(vec4); +float unreachableReturn(); + +void main() +{ + vec4 color = vec4(foo(BaseColor)); + + bar(); + float f = unreachableReturn(); + + gl_FragColor = color * f; +} + +void bar() +{ +} + +float unreachableReturn() +{ + bar(); + if (d < 4.2) + return 1.2; + else + return 4.5; +} + +float foo(vec4 bar) +{ + return bar.x + bar.y; +} diff --git a/deps/glslang/glslang/Test/functionCall.frag b/deps/glslang/glslang/Test/functionCall.frag new file mode 100644 index 0000000000..e1fc0e07fb --- /dev/null +++ b/deps/glslang/glslang/Test/functionCall.frag @@ -0,0 +1,44 @@ +#version 130 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +float h = 0.0; + +float foo(vec4 bar) +{ + return bar.x + bar.y; +} + +void bar() +{ +} + +float unreachableReturn() +{ + if (d < 4.2) + return 1.2; + else + return 4.5; + // might be another return inserted here by builders, has to be correct type +} + +float missingReturn() +{ + if (d < 4.5) { + h = d; + return 3.9; + } +} + +void main() +{ + vec4 color = vec4(foo(BaseColor)); + + bar(); + float f = unreachableReturn(); + float g = missingReturn(); + + gl_FragColor = color * f * h; +} diff --git a/deps/glslang/glslang/Test/functionSemantics.frag b/deps/glslang/glslang/Test/functionSemantics.frag new file mode 100644 index 0000000000..e5c3ed00e9 --- /dev/null +++ b/deps/glslang/glslang/Test/functionSemantics.frag @@ -0,0 +1,75 @@ +#version 400 + +uniform float u; + +int foo(int a, const int b, in int c, const in int d, out int e, inout int f) +{ + int sum = a + b + c + d + f; // no e, it is out only + // sum should be 47 now + + a *= 64; + // no b, it is read only + c *= 64; + // no d, it is read only + e = 64 * 16; // e starts undefined + f *= 64; + + sum += a + 64 * b + c + 64 * d + e + f; // everything has a value now, totaling of 64(1+2+4+8+16+32) = 64*63 = 4032 + // sum should be 4032 + 47 = 4079 + + return sum; +} + +int foo2(float a, vec3 b, out int r) +{ + r = int(3.0 * a); + return int(5.0 * b.y); +} + +int foo3() +{ + if (u > 3.2) { + discard; + return 1000000; + } + + return 2000000; +} + +void main() +{ + int e; + int t = 2; + struct s { + ivec4 t; + } f; + f.t.y = 32; + + // test the different qualifers + int color = foo(1, 2, t+t, 8, e, f.t.y); + + color += 128 * (e + f.t.y); // right side should be 128(64(16 + 32)) = 393216 + // sum should be 4079 + 393216 = 397295 + + // test conversions + float arg; + float ret; + ret = foo2(4, ivec3(1,2,3), arg); // ret = 10, param = 12.0 + color += int(ret + arg); // adds 22, for total of 397317 + + color += foo3(); // theoretically, add 2000000, for total of 2397317 + + gl_FragColor = vec4(color); +} + +vec3 m(vec2); +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/deps/glslang/glslang/Test/glsl.-D-U.frag b/deps/glslang/glslang/Test/glsl.-D-U.frag new file mode 100644 index 0000000000..4d2325f1da --- /dev/null +++ b/deps/glslang/glslang/Test/glsl.-D-U.frag @@ -0,0 +1,32 @@ +#version 450 + +#define IN_SHADER + +layout(location=0) out vec4 color; + +void main() +{ +#if FOO==200 + color = vec4(1.0); +#else + #error expected FOO 200 +#endif + +#ifdef IN_SHADER + color++; +#else + #error IN_SHADER was undef +#endif + +#ifdef UNDEFED + #error UNDEFED defined +#else + color *= 3.0; +#endif + +#if MUL == 400 + color *= MUL; +#else + #error bad MUL +#endif +} diff --git a/deps/glslang/glslang/Test/glsl.entryPointRename.vert b/deps/glslang/glslang/Test/glsl.entryPointRename.vert new file mode 100644 index 0000000000..7fc6b7a1bd --- /dev/null +++ b/deps/glslang/glslang/Test/glsl.entryPointRename.vert @@ -0,0 +1,11 @@ +#version 460 + +void bar() +{ + gl_Position = vec4(1); +} + +void main() +{ + gl_Position = vec4(1); +} diff --git a/deps/glslang/glslang/Test/glsl.entryPointRename2.vert b/deps/glslang/glslang/Test/glsl.entryPointRename2.vert new file mode 100644 index 0000000000..0473e9bc4c --- /dev/null +++ b/deps/glslang/glslang/Test/glsl.entryPointRename2.vert @@ -0,0 +1,6 @@ +#version 460 + +void bar() +{ + gl_Position = vec4(1); +} diff --git a/deps/glslang/glslang/Test/glslangValidator b/deps/glslang/glslang/Test/glslangValidator new file mode 100644 index 0000000000..856aa1a995 --- /dev/null +++ b/deps/glslang/glslang/Test/glslangValidator @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +../build/install/bin/glslangValidator $* diff --git a/deps/glslang/glslang/Test/glspv.esversion.vert b/deps/glslang/glslang/Test/glspv.esversion.vert new file mode 100644 index 0000000000..23501bf620 --- /dev/null +++ b/deps/glslang/glslang/Test/glspv.esversion.vert @@ -0,0 +1,5 @@ +#version 310 es + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/glspv.frag b/deps/glslang/glslang/Test/glspv.frag new file mode 100644 index 0000000000..7a73cb8d9a --- /dev/null +++ b/deps/glslang/glslang/Test/glspv.frag @@ -0,0 +1,28 @@ +#version 450 + +#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() +{ +} + +uniform float f; // ERROR, no location +layout(location = 2) uniform float g; +uniform sampler2D s1; // ERROR, no binding +layout(location = 3) uniform sampler2D s2; // ERROR, no binding + +void noise() +{ + noise1(vec4(1)); + noise2(4.0); + noise3(vec2(3)); + noise4(1); +} + +uniform atomic_uint atomic; // ERROR, no binding +layout(input_attachment_index = 1) uniform subpassInput sub; // ERROR, no inputs diff --git a/deps/glslang/glslang/Test/glspv.version.frag b/deps/glslang/glslang/Test/glspv.version.frag new file mode 100644 index 0000000000..c9c6779e86 --- /dev/null +++ b/deps/glslang/glslang/Test/glspv.version.frag @@ -0,0 +1,5 @@ +#version 330 compatibility + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/glspv.version.vert b/deps/glslang/glslang/Test/glspv.version.vert new file mode 100644 index 0000000000..c8573b7bb3 --- /dev/null +++ b/deps/glslang/glslang/Test/glspv.version.vert @@ -0,0 +1,5 @@ +#version 150 + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/glspv.vert b/deps/glslang/glslang/Test/glspv.vert new file mode 100644 index 0000000000..b44814653a --- /dev/null +++ b/deps/glslang/glslang/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, no binding +layout(packed) uniform Bt4 { int a; } bt4; // ERROR, no shared, no binding + +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/deps/glslang/glslang/Test/hlsl.-D-U.frag b/deps/glslang/glslang/Test/hlsl.-D-U.frag new file mode 100644 index 0000000000..0a02222081 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.-D-U.frag @@ -0,0 +1,31 @@ + +#define IN_SHADER + +static float4 color; + +void main() +{ +#if FOO==200 + color = 1.0; +#else + #error expected FOO 200 +#endif + +#ifdef FOO + color -= 5.0; +#else + #error expected FOO 200 +#endif + +#ifdef IN_SHADER + color++; +#else + #error IN_SHADER was undef +#endif + +#ifdef UNDEFED + #error UNDEFED defined +#else + color *= 3.0; +#endif +} diff --git a/deps/glslang/glslang/Test/hlsl.PointSize.geom b/deps/glslang/glslang/Test/hlsl.PointSize.geom new file mode 100644 index 0000000000..ef66fc8914 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.PointSize.geom @@ -0,0 +1,11 @@ +struct S { + [[vk::builtin("PointSize")]] float ps : PSIZE; +}; + +[maxvertexcount(4)] +void main([[vk::builtin("PointSize")]] triangle in uint ps[3], + inout LineStream OutputStream) +{ + S s; + OutputStream.Append(s); +} diff --git a/deps/glslang/glslang/Test/hlsl.PointSize.vert b/deps/glslang/glslang/Test/hlsl.PointSize.vert new file mode 100644 index 0000000000..4b357e073f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.PointSize.vert @@ -0,0 +1,4 @@ +[[vk::builtin("PointSize")]] float main() +{ + return 2.3; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.aliasOpaque.frag b/deps/glslang/glslang/Test/hlsl.aliasOpaque.frag new file mode 100644 index 0000000000..8b1cceff91 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.aliasOpaque.frag @@ -0,0 +1,29 @@ +struct OS { + SamplerState ss; + float a; + Texture2D tex; +}; + +SamplerState gss; +SamplerState gss2; +Texture2D gtex; + +float4 osCall(OS s) +{ + return s.a * s.tex.Sample(s.ss, float2(0.2, 0.3)); +} + +float4 main() : SV_TARGET0 +{ + OS os; + os.ss = gss2; + os.ss = gss; + os.tex = gtex; + os.a = 3.0; + + // this should give an error + //SamplerState localss; + //localss = gss2; + + return osCall(os); +} diff --git a/deps/glslang/glslang/Test/hlsl.amend.frag b/deps/glslang/glslang/Test/hlsl.amend.frag new file mode 100644 index 0000000000..7c182739cd --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.amend.frag @@ -0,0 +1,28 @@ +float4 a; +float b; +static float4 m = a * b; +void f1() +{ + a * b; +} + +float3 c; + +void f2() +{ + a.x + b + c.x; +} + +void f3() +{ + c; +} + +int d; + +void f4() +{ + d * a; +} + +int e; \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.array.flatten.frag b/deps/glslang/glslang/Test/hlsl.array.flatten.frag new file mode 100644 index 0000000000..987ce1bf32 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.array.flatten.frag @@ -0,0 +1,38 @@ + +// uniform Texture1D g_tex3[3][2]; // TODO: legal in HLSL, but we don't handle it yet. + +uniform Texture1D g_tex[3]; +uniform Texture1D g_tex_explicit[3] : register(t1); + +SamplerState g_samp[3]; +SamplerState g_samp_explicit[3] : register(s5); + +uniform float3x3 g_mats[4]; +uniform float3x3 g_mats_explicit[4] : register(b10); +uniform float g_floats[4]; + +// uniform float g_floats[4] = { 10, 11, 12, 13 }; // TODO: ... add when initializer lists can be flattened. + +float4 TestFn1() +{ + return g_tex[1].Sample(g_samp[1], 0.2); +} + +float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3]) +{ + return l_tex[2].Sample(l_samp[2], 0.2); +} + +static int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +void main(out PS_OUTPUT ps_output) +{ + // test flattening for local assignment initialization + SamplerState local_sampler_array[3] = g_samp; + Texture1D local_texture_array[3] = g_tex; + float local_float_array[4] = g_floats; + + ps_output.color = TestFn1() + TestFn2(g_tex, g_samp); +} diff --git a/deps/glslang/glslang/Test/hlsl.array.frag b/deps/glslang/glslang/Test/hlsl.array.frag new file mode 100644 index 0000000000..ff0004fd83 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.array.frag @@ -0,0 +1,18 @@ +float4 a[4]; + +struct { + float4 m[7]; +} s[11]; + +static float4 C = float4(1,2,3,4); +float4 a1[1] = { float4(1,2,3,4) }; +float4 a2[2] = { float4(1,2,3,4), float4(5,2,3,4), }; +const float4 c1[1] = { float4(1,2,3,4) }; +static const float4 c2[2] = { C, float4(1,2,3,4), }; + +float4 PixelShaderFunction(int i : sem1, float4 input[3] : sem2) : SV_TARGET0 +{ + float4 b[10] = { C, C, C, C, C, C, C, C, C, C }; + float4 tmp = C + a1[0] + c1[0] + a2[i] + c2[i]; + return a[1] + a[i] + input[2] + input[i] + b[5] + b[i] + s[i].m[i] + tmp; +} diff --git a/deps/glslang/glslang/Test/hlsl.array.implicit-size.frag b/deps/glslang/glslang/Test/hlsl.array.implicit-size.frag new file mode 100644 index 0000000000..e7a54f4662 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.array.implicit-size.frag @@ -0,0 +1,32 @@ + +// array size from initializer +static float g_array [ ] = { 1, 2, 3, 4, 5 }; + +// Unused: array size from initializer +static float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; + +// Test initializer sizing for arrayed structs +static struct mystruct { + int i; + float f; +} g_mystruct[] = { + { 1, 2.0 }, + { 3, 4.0 }, +}; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +// INVALID: implicit size requires an initializer expression. +// uniform float bad[]; + +// INVALID: function parameters cannot be implicitly sized +// void BadFunction(int a[]) { } + +void main(out PS_OUTPUT ps_output) +{ + // local array sized from initializers + float l_array[] = { 1, 2, 3 }; + int idx; + + ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx]; +} diff --git a/deps/glslang/glslang/Test/hlsl.array.multidim.frag b/deps/glslang/glslang/Test/hlsl.array.multidim.frag new file mode 100644 index 0000000000..524a8896e0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.array.multidim.frag @@ -0,0 +1,20 @@ + +float float_array[5][4][3]; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float4 float4_array_1[2][3]; + float4 float4_array_2[5][3]; + + float4_array_1[1][2] = float_array[2][3][1]; + float4_array_2[1] = float4_array_1[0]; + + PS_OUTPUT psout; + psout.Color = float4_array_1[1][2]; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.assoc.frag b/deps/glslang/glslang/Test/hlsl.assoc.frag new file mode 100644 index 0000000000..8ce1050cd1 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.assoc.frag @@ -0,0 +1,11 @@ +float4 PixelShaderFunction( + float4 a1, + float4 a2, + float4 a3, + float4 a4, + float4 a5 + ) : COLOR0 +{ + a1 = a2 = a3 = a4 = a5; + return a1 + a2 + a3 + a4 + a5; +} diff --git a/deps/glslang/glslang/Test/hlsl.attribute.expression.comp b/deps/glslang/glslang/Test/hlsl.attribute.expression.comp new file mode 100644 index 0000000000..535fbad42c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.attribute.expression.comp @@ -0,0 +1,15 @@ + +uniform int bound; + +#define FOO 3 +#define BAR 2 + +[numthreads(2+2, 2*3, (1+FOO)*BAR)] +float4 main() : SV_TARGET +{ + [unroll(5*2 + 1) ] + for (int x=0; x buffer1; + +[[vk::binding(3, 2)]] +StructuredBuffer buffer3; + +[[vk::input_attachment_index(4)]] +Texture2D attach; + +[[vk::constant_id(13)]] const int ci = 11; + +[[vk::push_constant]] cbuffer pcBuf { int a; }; + +[[vk::location(7)]] float4 +main([[vk::location(8)]] float4 input: A) : B +{ + return input + attach.Load(float2(0.5));// * a; +} diff --git a/deps/glslang/glslang/Test/hlsl.attributeGlobalBuffer.frag b/deps/glslang/glslang/Test/hlsl.attributeGlobalBuffer.frag new file mode 100644 index 0000000000..a1177dab23 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.attributeGlobalBuffer.frag @@ -0,0 +1,8 @@ +[[vk::global_cbuffer_binding(5, 2)]] +float4 u1; +float4 u2; + +float4 main() : SV_Target0 +{ + return u1 + u2; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.automap.frag b/deps/glslang/glslang/Test/hlsl.automap.frag new file mode 100644 index 0000000000..da1e885fce --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.automap.frag @@ -0,0 +1,57 @@ +// Test register class offsets for different resource types + +SamplerState s1 : register(s1); +SamplerComparisonState s2 : register(s2); + +Texture1D t1 : register(t1); +Texture2D t2 : register(t2); +Texture3D t3 : register(t3); +StructuredBuffer t4 : register(t4); +ByteAddressBuffer t5 : register(t5); +Buffer t6 : register(t6); + +RWTexture1D u1 : register(u1); +RWTexture2D u2 : register(u2); +RWTexture3D u3 : register(u3); + +RWBuffer u4 : register(u4); +RWByteAddressBuffer u5 : register(u5); +RWStructuredBuffer u6 : register(u6); +AppendStructuredBuffer u7 : register(u7); +ConsumeStructuredBuffer u8 : register(u8); + +cbuffer cb : register(b1) { + int cb1; +}; + +tbuffer tb : register(t7) { + int tb1; +}; + +float4 main() : SV_Target0 +{ + t1; + t2; + t3; + t4[0]; + t5.Load(0); + t6; + + s1; + s2; + + u1; + u2; + u3; + + u4[0]; + u5.Load(0); + u6[0]; + u7; + u8; + + cb1; + tb1; + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.basic.comp b/deps/glslang/glslang/Test/hlsl.basic.comp new file mode 100644 index 0000000000..1d95239ed8 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.basic.comp @@ -0,0 +1,6 @@ +groupshared float4 a[100]; + +void main(int dti : SV_DispatchThreadID, int gti : SV_GroupThreadID) +{ + dti - gti; +} diff --git a/deps/glslang/glslang/Test/hlsl.basic.geom b/deps/glslang/glslang/Test/hlsl.basic.geom new file mode 100644 index 0000000000..79b061ee0a --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.basic.geom @@ -0,0 +1,25 @@ +struct PSInput +{ + float myfloat : SOME_SEMANTIC; + int something : ANOTHER_SEMANTIC; +}; + +struct nametest { + int Append; // these are valid names even though they are also method names. + int RestartStrip; // ... +}; + +[maxvertexcount(4)] +void main(triangle in uint VertexID[3] : VertexID, + triangle uint test[3] : FOO, + inout LineStream OutputStream) +{ + PSInput Vert; + + Vert.myfloat = test[0] + test[1] + test[2]; + Vert.something = VertexID[0]; + + OutputStream.Append(Vert); + OutputStream.Append(Vert); + OutputStream.RestartStrip(); +} diff --git a/deps/glslang/glslang/Test/hlsl.boolConv.vert b/deps/glslang/glslang/Test/hlsl.boolConv.vert new file mode 100644 index 0000000000..6182b29641 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.boolConv.vert @@ -0,0 +1,20 @@ +static bool a, b = true; +float4 main() : SV_Position +{ + int r = 0; + + r += a + b; + r += a - b; + r += a * b; + r += a / b; + r += a % b; + + r += a & b; + r += a | b; + r += a ^ b; + + r += a << b; + r += a >> b; + + return r; +} diff --git a/deps/glslang/glslang/Test/hlsl.buffer.frag b/deps/glslang/glslang/Test/hlsl.buffer.frag new file mode 100644 index 0000000000..73f42e8f01 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.buffer.frag @@ -0,0 +1,47 @@ +cbuffer buf1 { + float4 v1; +}; // extraneous ; + +tbuffer buf2 { + float4 v2; +}; // extraneous ; + +cbuffer cbufName { + float4 v3 : packoffset(c0); + int i3 : packoffset(c1.y); +} + +tbuffer tbufName : register(t8) { + float4 v4 : packoffset(c1); + int i4 : packoffset(c3); + float f1 : packoffset(c3.w); + float f3 : packoffset(c4.x); + float f4 : packoffset(c4.y); + float f5 : packoffset(c4.z); + float f6 : packoffset(c); + float f7 : packoffset(c8); + float3x4 m1 : packoffset(c7); + row_major float3x4 m2 : packoffset(c11); + column_major float3x4 m3 : packoffset(c15); + float3x4 m4 : packoffset(c19); +} + +float foo() // float looks like identifier, but can't be part of tbuffer +{ + return 1.0; +} + +struct id { + float4 a; +}; + +cbuffer cbufName2 { + float4 v24; +} + +id PixelShaderFunction(float4 input : SV_POSITION) : SV_TARGET0 // id looks like id for cbuffer name, but can't be +{ + id ret; + ret.a = v24 + (input + v1 + v2 + v3 + v4) * foo(); + return ret; +} diff --git a/deps/glslang/glslang/Test/hlsl.calculatelod.dx10.frag b/deps/glslang/glslang/Test/hlsl.calculatelod.dx10.frag new file mode 100644 index 0000000000..0fb760726c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.calculatelod.dx10.frag @@ -0,0 +1,44 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // LOD queries do not pass array level in coordinate. + float txval10 = g_tTex1df4a . CalculateLevelOfDetail(g_sSamp, 0.1); + float txval11 = g_tTex1di4a . CalculateLevelOfDetail(g_sSamp, 0.2); + float txval12 = g_tTex1du4a . CalculateLevelOfDetail(g_sSamp, 0.3); + + float txval20 = g_tTex2df4a . CalculateLevelOfDetail(g_sSamp, float2(0.1, 0.2)); + float txval21 = g_tTex2di4a . CalculateLevelOfDetail(g_sSamp, float2(0.3, 0.4)); + float txval22 = g_tTex2du4a . CalculateLevelOfDetail(g_sSamp, float2(0.5, 0.6)); + + float txval40 = g_tTexcdf4a . CalculateLevelOfDetail(g_sSamp, float3(0.1, 0.2, 0.3)); + float txval41 = g_tTexcdi4a . CalculateLevelOfDetail(g_sSamp, float3(0.4, 0.5, 0.6)); + float txval42 = g_tTexcdu4a . CalculateLevelOfDetail(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.calculatelodunclamped.dx10.frag b/deps/glslang/glslang/Test/hlsl.calculatelodunclamped.dx10.frag new file mode 100644 index 0000000000..4c79aed85d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.calculatelodunclamped.dx10.frag @@ -0,0 +1,44 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // LOD queries do not pass array level in coordinate. + float txval10 = g_tTex1df4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.1); + float txval11 = g_tTex1di4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.2); + float txval12 = g_tTex1du4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.3); + + float txval20 = g_tTex2df4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.1, 0.2)); + float txval21 = g_tTex2di4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.3, 0.4)); + float txval22 = g_tTex2du4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.5, 0.6)); + + float txval40 = g_tTexcdf4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.1, 0.2, 0.3)); + float txval41 = g_tTexcdi4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.4, 0.5, 0.6)); + float txval42 = g_tTexcdu4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.cast.frag b/deps/glslang/glslang/Test/hlsl.cast.frag new file mode 100644 index 0000000000..c8dc8212d0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.cast.frag @@ -0,0 +1,4 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return (float4)input + (int4)input + (float4)1.198; +} diff --git a/deps/glslang/glslang/Test/hlsl.cbuffer-identifier.vert b/deps/glslang/glslang/Test/hlsl.cbuffer-identifier.vert new file mode 100644 index 0000000000..8362f5cace --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.cbuffer-identifier.vert @@ -0,0 +1,32 @@ + +cbuffer ConstantBuffer : register( b0 ) +{ + matrix World; + matrix View; + matrix Projection; +}; + +struct VS_INPUT +{ + float4 Pos : POSITION; + float3 Norm : NORMAL; +}; + +struct PS_INPUT +{ + float4 Pos : SV_POSITION; + float3 Norm : TEXCOORD0; +}; + +PS_INPUT main( VS_INPUT input ) +{ + int ConstantBuffer = 42; // test ConstantBuffer as an identifier + + PS_INPUT output = (PS_INPUT)0; + output.Pos = mul( input.Pos, World ); + output.Pos = mul( output.Pos, View ); + output.Pos = mul( output.Pos, Projection ); + output.Norm = mul( input.Norm, World ); // Work when output.Norm = mul( input.Norm, (float3x3)World ); + + return output; +} diff --git a/deps/glslang/glslang/Test/hlsl.charLit.vert b/deps/glslang/glslang/Test/hlsl.charLit.vert new file mode 100644 index 0000000000..36c4a1e5e0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.charLit.vert @@ -0,0 +1,17 @@ +float4 main() : SV_Position +{ + uint a1 = 'A'; + int a2 = '0'; + + int a3 = '\a'; + a3 += '\b'; + a3 += '\t'; + a3 += '\n'; + a3 += '\v'; + a3 += '\f'; + a3 += '\r'; + + int a10 = '\c'; + + return a1 + a2 + a3 + a10; +} diff --git a/deps/glslang/glslang/Test/hlsl.clip.frag b/deps/glslang/glslang/Test/hlsl.clip.frag new file mode 100644 index 0000000000..a44c9e9503 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clip.frag @@ -0,0 +1,12 @@ + +float GetEntitySelectClip() +{ + return 1.0f; +} + +float4 main() : SV_TARGET +{ + clip(GetEntitySelectClip()); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-1.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-1.frag new file mode 100644 index 0000000000..10813b30ba --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-1.frag @@ -0,0 +1,6 @@ +float4 main(in float4 pos : SV_Position, + in float clip : SV_ClipDistance, + in float cull : SV_CullDistance) : SV_Target0 +{ + return pos + clip + cull; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-1.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-1.geom new file mode 100644 index 0000000000..76c34b3551 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-1.geom @@ -0,0 +1,19 @@ +struct S { + float4 pos : SV_Position; + float2 clip : SV_ClipDistance0; +}; + +[maxvertexcount(3)] +void main(triangle in float4 pos[3] : SV_Position, + triangle in uint VertexID[3] : VertexID, + inout LineStream OutputStream, + triangle in float4 clip[3] : SV_ClipDistance) // externally: an array 3 of array 4 (not vec4!) of float. +{ + S s; + + s.pos = pos[0]; + s.clip = clip[0].xy; + + OutputStream.Append(s); +} + diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-1.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-1.vert new file mode 100644 index 0000000000..bcebafc333 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-1.vert @@ -0,0 +1,8 @@ +void main(out float4 pos : SV_Position, + out float clip : SV_ClipDistance, // scalar float + out float cull : SV_CullDistance) // scalar float +{ + pos = 1.0f.xxxx; + clip = 0.5f; + cull = 0.51f; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-2.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-2.frag new file mode 100644 index 0000000000..b6f88d567a --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-2.frag @@ -0,0 +1,7 @@ +float4 main(in float4 pos : SV_Position, + in float2 clip[2] : SV_ClipDistance, // array of vector float + in float2 cull[2] : SV_CullDistance) : SV_Target0 // array of vector float +{ + + return pos + clip[0][0] + cull[0][0]; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-2.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-2.geom new file mode 100644 index 0000000000..90f047feb7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-2.geom @@ -0,0 +1,19 @@ +struct S { + float4 pos : SV_Position; + float2 clip[2] : SV_ClipDistance0; +}; + +[maxvertexcount(3)] +void main(triangle in float4 pos[3] : SV_Position, + triangle in uint VertexID[3] : VertexID, + inout LineStream OutputStream, + triangle in float2 clip[3][2] : SV_ClipDistance) // externally: an array 3 of array 4 of float. +{ + S s; + + s.pos = pos[0]; + s.clip[0] = clip[0][0]; + s.clip[1] = clip[0][1]; + + OutputStream.Append(s); +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-2.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-2.vert new file mode 100644 index 0000000000..bf8c0ee029 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-2.vert @@ -0,0 +1,15 @@ +void main(out float4 pos : SV_Position, + out float2 clip[2] : SV_ClipDistance, // array of vector float + out float2 cull[2] : SV_CullDistance) // array of vector float +{ + pos = 1.0f.xxxx; + clip[0].x = 0.5f; + clip[0].y = 0.6f; + clip[1].x = 0.7f; + clip[1].y = 0.8f; + + cull[0].x = 0.525f; + cull[0].y = 0.625f; + cull[1].x = 0.725f; + cull[1].y = 0.825f; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-3.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-3.frag new file mode 100644 index 0000000000..e2b6b8627e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-3.frag @@ -0,0 +1,6 @@ +float4 main(in float4 pos : SV_Position, + in float clip[2] : SV_ClipDistance, // array of scalar float + in float cull[2] : SV_CullDistance) : SV_Target0 // array of scalar float +{ + return pos + clip[0] + cull[0]; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-3.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-3.geom new file mode 100644 index 0000000000..2aa4cd46d4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-3.geom @@ -0,0 +1,20 @@ +struct S { + float4 pos : SV_Position; + float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally. + float2 clip1 : SV_ClipDistance1; +}; + +[maxvertexcount(3)] +void main(triangle in float4 pos[3] : SV_Position, + triangle in uint VertexID[3] : VertexID, + inout LineStream OutputStream, + triangle in float4 clip[3] : SV_ClipDistance) // externally: an array 3 of array 4 (not vec4!) of float. +{ + S s; + + s.pos = pos[0]; + s.clip0 = clip[0].xy; + s.clip1 = clip[0].zw; + + OutputStream.Append(s); +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-3.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-3.vert new file mode 100644 index 0000000000..a759a9ccf4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-3.vert @@ -0,0 +1,13 @@ +void main(out float4 pos : SV_Position, + out float clip[2] : SV_ClipDistance, // array of scalar float + out float cull[2] : SV_CullDistance) // array of scalar float +{ + pos = 1.0f.xxxx; + clip[0] = 0.5f; + clip[1] = 0.6f; + + cull[0] = 0.525f; + cull[1] = 0.625f; +} + + diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-4.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-4.frag new file mode 100644 index 0000000000..61441604ae --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-4.frag @@ -0,0 +1,9 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float4 ClipRect : SV_ClipDistance0; // vector in split struct +}; + +float4 main(const VS_OUTPUT v) : SV_Target0 +{ + return v.Position + v.ClipRect; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-4.geom b/deps/glslang/glslang/Test/hlsl.clipdistance-4.geom new file mode 100644 index 0000000000..ff296a88ce --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-4.geom @@ -0,0 +1,21 @@ +struct S { + float4 pos : SV_Position; + float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally. + float2 clip1 : SV_ClipDistance1; +}; + +[maxvertexcount(3)] +void main(triangle in float4 pos[3] : SV_Position, + triangle in uint VertexID[3] : VertexID, + inout LineStream OutputStream, + triangle in float2 clip0[3] : SV_ClipDistance0, // test input arrayed semantic vars + triangle in float2 clip1[3] : SV_ClipDistance1) +{ + S s; + + s.pos = pos[0]; + s.clip0 = clip0[0]; + s.clip1 = clip1[0]; + + OutputStream.Append(s); +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-4.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-4.vert new file mode 100644 index 0000000000..5e0d082f14 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-4.vert @@ -0,0 +1,21 @@ +struct VS_INPUT { + float4 Position : POSITION; +}; + +struct VS_OUTPUT { + float4 Position : SV_Position; + float4 ClipRect : SV_ClipDistance0; // vector in split struct +}; + +VS_OUTPUT main(const VS_INPUT v) +{ + VS_OUTPUT Output; + Output.Position = 0; + + Output.ClipRect.x = 1; + Output.ClipRect.y = 2; + Output.ClipRect.z = 3; + Output.ClipRect.w = 4; + + return Output; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-5.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-5.frag new file mode 100644 index 0000000000..472299948d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-5.frag @@ -0,0 +1,9 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float2 ClipRect[2] : SV_ClipDistance0; // array of float2 in split struct +}; + +float4 main(const VS_OUTPUT v) : SV_Target0 +{ + return v.Position + v.ClipRect[0].x + v.ClipRect[1].x; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-5.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-5.vert new file mode 100644 index 0000000000..02fb86270d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-5.vert @@ -0,0 +1,21 @@ +struct VS_INPUT { + float4 Position : POSITION; +}; + +struct VS_OUTPUT { + float4 Position : SV_Position; + float2 ClipRect[2] : SV_ClipDistance0; // array of float2 in split struct +}; + +VS_OUTPUT main(const VS_INPUT v) +{ + VS_OUTPUT Output; + Output.Position = 0; + + Output.ClipRect[0].x = 1; + Output.ClipRect[0].y = 2; + Output.ClipRect[1].x = 3; + Output.ClipRect[1].y = 4; + + return Output; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-6.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-6.frag new file mode 100644 index 0000000000..646197be7e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-6.frag @@ -0,0 +1,10 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float4 clip0 : SV_ClipDistance0; // multiple semantic IDs, two vec4s (no extra packing) + float4 clip1 : SV_ClipDistance1; // ... +}; + +float4 main(VS_OUTPUT v) : SV_Target0 +{ + return v.Position + v.clip0 + v.clip1; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-6.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-6.vert new file mode 100644 index 0000000000..d68c2254cc --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-6.vert @@ -0,0 +1,23 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float4 clip0 : SV_ClipDistance0; // multiple semantic IDs, two vec4s (no extra packing) + float4 clip1 : SV_ClipDistance1; // ... +}; + +VS_OUTPUT main() +{ + VS_OUTPUT Output; + Output.Position = 0; + + Output.clip0.x = 0; + Output.clip0.y = 1; + Output.clip0.z = 2; + Output.clip0.w = 3; + + Output.clip1.x = 4; + Output.clip1.y = 5; + Output.clip1.z = 6; + Output.clip1.w = 7; + + return Output; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-7.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-7.frag new file mode 100644 index 0000000000..1a26df8a4f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-7.frag @@ -0,0 +1,10 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+vec4 (skip) + float4 clip1 : SV_ClipDistance1; // ... +}; + +float4 main(VS_OUTPUT v) : SV_Target0 +{ + return v.Position + v.clip0.x + v.clip1.x; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-7.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-7.vert new file mode 100644 index 0000000000..c615d1f8c9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-7.vert @@ -0,0 +1,23 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+vec4 (skip) + float4 clip1 : SV_ClipDistance1; // ... +}; + +VS_OUTPUT main() +{ + VS_OUTPUT Output; + Output.Position = 0; + + Output.clip0.x = 0; + Output.clip0.y = 1; + Output.clip0.z = 2; + // Position 3 is skipped + + Output.clip1.x = 4; + Output.clip1.y = 5; + Output.clip1.z = 6; + Output.clip1.w = 7; + + return Output; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-8.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-8.frag new file mode 100644 index 0000000000..2edf1948f1 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-8.frag @@ -0,0 +1,10 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack) + float clip1 : SV_ClipDistance1; // ... +}; + +float4 main(VS_OUTPUT v) : SV_Target0 +{ + return v.Position + v.clip0.x + v.clip1; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-8.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-8.vert new file mode 100644 index 0000000000..c6377d2ddd --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-8.vert @@ -0,0 +1,20 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; + float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack) + float clip1 : SV_ClipDistance1; // ... +}; + +VS_OUTPUT main() +{ + VS_OUTPUT Output; + Output.Position = 0; + + Output.clip0.x = 0; + Output.clip0.y = 1; + Output.clip0.z = 2; + + // Position 3 is packed from clip1's float + Output.clip1 = 3; + + return Output; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-9.frag b/deps/glslang/glslang/Test/hlsl.clipdistance-9.frag new file mode 100644 index 0000000000..cbe940af36 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-9.frag @@ -0,0 +1,8 @@ + +// Test packing 0 and 1 semantics into single array[4], from in fn params. +float4 main(in float4 Position : SV_Position, + in float3 clip0 : SV_ClipDistance0, + in float clip1 : SV_ClipDistance1) : SV_Target0 +{ + return Position + clip0.x + clip1; +} diff --git a/deps/glslang/glslang/Test/hlsl.clipdistance-9.vert b/deps/glslang/glslang/Test/hlsl.clipdistance-9.vert new file mode 100644 index 0000000000..d48830703b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.clipdistance-9.vert @@ -0,0 +1,19 @@ +struct VS_OUTPUT { + float4 Position : SV_Position; +}; + +// Test packing 0 and 1 semantics into single array[4] output, from out fn params. +VS_OUTPUT main(out float3 clip0 : SV_ClipDistance0, out float clip1 : SV_ClipDistance1) +{ + VS_OUTPUT Output; + Output.Position = 0; + + clip0.x = 0; + clip0.y = 1; + clip0.z = 2; + + // Position 3 is packed from clip1's float + clip1 = 3; + + return Output; +} diff --git a/deps/glslang/glslang/Test/hlsl.color.hull.tesc b/deps/glslang/glslang/Test/hlsl.color.hull.tesc new file mode 100644 index 0000000000..73d9ad0340 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.color.hull.tesc @@ -0,0 +1,74 @@ +///////////// +// GLOBALS // +///////////// +cbuffer TessellationBuffer : register(b0) +{ + float tessellationAmount; + float3 padding; +}; + + +////////////// +// TYPEDEFS // +////////////// +struct HullInputType +{ + float3 position : POSITION; + float4 color : COLOR; +}; + +struct ConstantOutputType +{ + float edges[3] : SV_TessFactor; + float inside : SV_InsideTessFactor; +}; + +struct HullOutputType +{ + float3 position : POSITION; + float4 color : COLOR; +}; + + +//////////////////////////////////////////////////////////////////////////////// +// Patch Constant Function +//////////////////////////////////////////////////////////////////////////////// +ConstantOutputType ColorPatchConstantFunction(InputPatch inputPatch, uint patchId : SV_PrimitiveID) +{ + ConstantOutputType output; + + + // Set the tessellation factors for the three edges of the triangle. + output.edges[0] = tessellationAmount; + output.edges[1] = tessellationAmount; + output.edges[2] = tessellationAmount; + + // Set the tessellation factor for tessallating inside the triangle. + output.inside = tessellationAmount; + + return output; +} + + +//////////////////////////////////////////////////////////////////////////////// +// Hull Shader +//////////////////////////////////////////////////////////////////////////////// +[domain("tri")] +[partitioning("integer")] +[outputtopology("triangle_cw")] +[outputcontrolpoints(3)] +[patchconstantfunc("ColorPatchConstantFunction")] + +HullOutputType main(InputPatch patch, uint pointId : SV_OutputControlPointID, uint patchId : SV_PrimitiveID) +{ + HullOutputType output; + + // Set the position for this control point as the output position. + output.position = patch[pointId].position; + + // Set the input color as the output color. + output.color = patch[pointId].color; + + return output; +} + diff --git a/deps/glslang/glslang/Test/hlsl.comparison.vec.frag b/deps/glslang/glslang/Test/hlsl.comparison.vec.frag new file mode 100644 index 0000000000..b8f93c9f94 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.comparison.vec.frag @@ -0,0 +1,34 @@ +uniform float4 uf4; + +void Bug1( float4 a ) +{ + float4 v04 = float4( 0.0, 0.0, 0.0, 0.0 ); + float v01 = 0.0; + + bool4 r00 = a == v04; + bool4 r01 = a != v04; + bool4 r02 = a < v04; + bool4 r03 = a > v04; + + bool4 r10 = a == v01; + bool4 r11 = a != v01; + bool4 r12 = a < v01; + bool4 r13 = a > v01; + + bool4 r20 = v01 == a; + bool4 r21 = v01 != a; + bool4 r22 = v01 < a; + bool4 r23 = v01 > a; +} + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.conditional.frag b/deps/glslang/glslang/Test/hlsl.conditional.frag new file mode 100644 index 0000000000..91f75eec7f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.conditional.frag @@ -0,0 +1,42 @@ +float4 c4; +float4 t4; +float4 f4; +float t; +float f; + +float4 vectorCond() +{ + return (c4 ? t4 : f4) + + (c4 ? t : f ) + + (t4 < f4 ? t4 : f4) + + (c4 ? t : f4); +} + +float4 scalarCond() +{ + float4 ret = t != f ? t * f4 : 1; + return ret; +} + +float2 fbSelect(bool2 cnd, float2 src0, float2 src1) +{ + return cnd ? src0 : src1; +} + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + int a = 1 < 2 ? 3 < 4 ? 5 : 6 : 7; + int b = 1 < 2 ? 3 > 4 ? 5 : 6 : 7; + int c = 1 > 2 ? 3 > 4 ? 5 : 6 : 7; + int d = 1 > 2 ? 3 < 4 ? 5 : 6 : 7; + float4 ret = a * input + + b * input + + c * input + + d * input; + int e; + e = a = b ? c = d : 10, b = a ? d = c : 11; + float4 f; + f = ret.x < input.y ? c * input : d * input; + return e * ret + f + vectorCond() + scalarCond() + + float4(fbSelect(bool2(true, false), float2(1.0, 2.0), float2(3.0, 4.0)), 10.0, 10.0); +} diff --git a/deps/glslang/glslang/Test/hlsl.constantbuffer.frag b/deps/glslang/glslang/Test/hlsl.constantbuffer.frag new file mode 100644 index 0000000000..c2b3a00ca9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.constantbuffer.frag @@ -0,0 +1,26 @@ + +struct c1_t { + float4 x; +}; + +struct c2_t { + bool x; + float y; +}; + +ConstantBuffer cb1 : register(b12); +ConstantBuffer cb2[3]; +ConstantBuffer cb3[2][4]; + +cbuffer cbuff { + int c1; +}; + +float4 main() : SV_Target0 +{ + if (cb3[1][2].x) + return cb1.x + cb2[1].y + c1; + else + return cb3[1][3].y; +} + diff --git a/deps/glslang/glslang/Test/hlsl.constructArray.vert b/deps/glslang/glslang/Test/hlsl.constructArray.vert new file mode 100644 index 0000000000..52c4b6f0c9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.constructArray.vert @@ -0,0 +1,10 @@ +float4 main() : SV_POSITION +{ + int4 int4_array[3]; + float4 float4_array_times[2] = (float4[2])int4_array; + float2 float2_array_times2[4] = (float2[4])int4_array; + int4 int4_array2[2] = (int4[2])int4_array; + int int1_array[2] = (int[2])int4_array; + + return (float4)0.0; +} diff --git a/deps/glslang/glslang/Test/hlsl.constructexpr.frag b/deps/glslang/glslang/Test/hlsl.constructexpr.frag new file mode 100644 index 0000000000..7048f62cdf --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.constructexpr.frag @@ -0,0 +1,17 @@ +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + // Evaluates to a sequence: 3, 4, 5, 6, 7, 8, and a float2(9,10), float2(11,12) sequence + (int(3)); + (int(3) + int(1)); + (int(3) + int(1) + int(1)); + (((int(6)))); + (int(7.0)); + ((int((2)) ? 8 : 8)); + (float2(9, 10), float2(11, 12)); + + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +} diff --git a/deps/glslang/glslang/Test/hlsl.constructimat.frag b/deps/glslang/glslang/Test/hlsl.constructimat.frag new file mode 100644 index 0000000000..f320ba152b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.constructimat.frag @@ -0,0 +1,52 @@ +int main() : SV_TARGET +{ + // integer mat constructors + const int4x4 var441 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; + const int4x4 var442 = int4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); + int4x4 var443 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; + int4x4 var444 = int4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); + + const int4x2 var421 = { 0,1, 1,1, 1,0, 0,0 }; + const int4x2 var422 = int4x2( 0,1, 1,1, 1,0, 0,0 ); + int4x2 var423 = { 0,1, 1,1, 1,0, 0,0 }; + int4x2 var424 = int4x2( 0,1, 1,1, 1,0, 0,0 ); + + const int3x2 var321 = { 0,1, 1,1, 1,0 }; + const int3x2 var322 = int3x2( 0,1, 1,1, 1,0 ); + int3x2 var323 = { 0,1, 1,1, 1,0 }; + int3x2 var234 = int3x2( 0,1, 1,1, 1,0); + + // unsigned integer mat constructors + const uint4x4 uvar441 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; + const uint4x4 uvar442 = uint4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); + uint4x4 uvar443 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; + uint4x4 uvar444 = uint4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); + + const uint4x2 uvar421 = { 0,1, 1,1, 1,0, 0,0 }; + const uint4x2 uvar422 = uint4x2( 0,1, 1,1, 1,0, 0,0 ); + uint4x2 uvar423 = { 0,1, 1,1, 1,0, 0,0 }; + uint4x2 uvar424 = uint4x2( 0,1, 1,1, 1,0, 0,0 ); + + const uint3x2 uvar321 = { 0,1, 1,1, 1,0 }; + const uint3x2 uvar322 = uint3x2( 0,1, 1,1, 1,0 ); + uint3x2 uvar323 = { 0,1, 1,1, 1,0 }; + uint3x2 uvar234 = uint3x2( 0,1, 1,1, 1,0); + + // boolean mat constructors + const bool4x4 bvar441 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; + const bool4x4 bvar442 = bool4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); + bool4x4 bvar443 = { 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 }; + bool4x4 bvar444 = bool4x4( 0,1,0,0, 1,1,0,0, 1,0,0,0, 0,0,0,0 ); + + const bool4x2 bvar421 = { 0,1, 1,1, 1,0, 0,0 }; + const bool4x2 bvar422 = bool4x2( 0,1, 1,1, 1,0, 0,0 ); + bool4x2 bvar423 = { 0,1, 1,1, 1,0, 0,0 }; + bool4x2 bvar424 = bool4x2( 0,1, 1,1, 1,0, 0,0 ); + + const bool3x2 bvar321 = { 0,1, 1,1, 1,0 }; + const bool3x2 bvar322 = bool3x2( 0,1, 1,1, 1,0 ); + bool3x2 bvar323 = { 0,1, 1,1, 1,0 }; + bool3x2 bvar234 = bool3x2( 0,1, 1,1, 1,0); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.coverage.frag b/deps/glslang/glslang/Test/hlsl.coverage.frag new file mode 100644 index 0000000000..c6cd0194de --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.coverage.frag @@ -0,0 +1,20 @@ + +// Verify that coverage mask is an array, as required by SPIR-V. + +struct PS_INPUT +{ +}; + +struct PS_OUTPUT +{ + float4 vColor : SV_Target0; + uint nCoverageMask : SV_Coverage; +}; + +PS_OUTPUT main( PS_INPUT i ) +{ + PS_OUTPUT o; + o.vColor = float4(1.0, 0.0, 0.0, 1.0); + o.nCoverageMask = 0; + return o; +} diff --git a/deps/glslang/glslang/Test/hlsl.dashI.vert b/deps/glslang/glslang/Test/hlsl.dashI.vert new file mode 100644 index 0000000000..a432be51e9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.dashI.vert @@ -0,0 +1,13 @@ +// For -Iinc1/path1 -Iinc1/path2 +// bar.h from local directory will define i1, while the ones from inc1/path1 and inc1/path2 will not. +// notHere.h is only in inc1/path1 and inc2/path2, and only inc1/path1 defines p1, p2, and p3 +// parent.h is local again, and defines i4 + +#include "bar.h" +#include "notHere.h" +#include "parent.h" + +float4 main() : SV_Position +{ + return i1 + i4 + p1 + p2 + p3; +} diff --git a/deps/glslang/glslang/Test/hlsl.deadFunctionMissingBody.vert b/deps/glslang/glslang/Test/hlsl.deadFunctionMissingBody.vert new file mode 100644 index 0000000000..a5f965abcb --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.deadFunctionMissingBody.vert @@ -0,0 +1,8 @@ +float4 main(): SV_Target0 { return 0; } +struct Surface { float3 albedo; }; +Surface surfaceShader(float fade); +Surface surfaceShaderExec() +{ + float fade = 0; + return surfaceShader(0); +} diff --git a/deps/glslang/glslang/Test/hlsl.depthGreater.frag b/deps/glslang/glslang/Test/hlsl.depthGreater.frag new file mode 100644 index 0000000000..ca41f08967 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.depthGreater.frag @@ -0,0 +1,4 @@ +void PixelShaderFunction(out float depth : SV_DepthGreaterEqual) +{ + depth = 0.2; +} diff --git a/deps/glslang/glslang/Test/hlsl.depthLess.frag b/deps/glslang/glslang/Test/hlsl.depthLess.frag new file mode 100644 index 0000000000..aca7dbb8b6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.depthLess.frag @@ -0,0 +1,4 @@ +float PixelShaderFunction() : SV_DepthLessEqual +{ + return 0.2; +} diff --git a/deps/glslang/glslang/Test/hlsl.discard.frag b/deps/glslang/glslang/Test/hlsl.discard.frag new file mode 100644 index 0000000000..7d9271c9cf --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.discard.frag @@ -0,0 +1,14 @@ +void foo(float f) +{ + if (f < 1.0) + discard; +} + +void PixelShaderFunction(float4 input) : COLOR0 +{ + foo(input.z); + if (input.x) + discard; + float f = input.x; + discard; +} diff --git a/deps/glslang/glslang/Test/hlsl.doLoop.frag b/deps/glslang/glslang/Test/hlsl.doLoop.frag new file mode 100644 index 0000000000..0318dc8f39 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.doLoop.frag @@ -0,0 +1,9 @@ +float4 PixelShaderFunction(float input) : COLOR0 +{ + [unroll] do {} while (false); + [unroll] do {;} while (false); + do { return (float4)input; } while (input > 2.0); + do ++input; while (input < 10.0); + do while (++input < 10.0); while (++input < 10.0); // nest while inside do-while + return (float4)input; +} diff --git a/deps/glslang/glslang/Test/hlsl.domain.1.tese b/deps/glslang/glslang/Test/hlsl.domain.1.tese new file mode 100644 index 0000000000..7366e9bc6f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.domain.1.tese @@ -0,0 +1,32 @@ + +struct ds_in_t +{ + float4 pos : POSITION; + float3 norm : TEXCOORD0; +}; + +struct pcf_in_t +{ + float flTessFactor [3] : SV_TessFactor; + float flInsideTessFactor : SV_InsideTessFactor; +}; + +struct gs_in_t +{ + float4 pos : POSITION; + float3 norm : TEXCOORD0; +}; + +[domain ( "tri" )] +gs_in_t main (const OutputPatch i, float f : msem, float3 tesscoord : SV_DomainLocation, pcf_in_t pcf_data ) +{ + gs_in_t o; + + o.pos = i[0].pos + tesscoord.x * f; + o.norm = i[0].norm + tesscoord.y; + + tesscoord.z; + + return o; +} + diff --git a/deps/glslang/glslang/Test/hlsl.domain.2.tese b/deps/glslang/glslang/Test/hlsl.domain.2.tese new file mode 100644 index 0000000000..ffb53f1f99 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.domain.2.tese @@ -0,0 +1,35 @@ +// This will test having the PCF input to the domain shader not be given at the end of +// the argument list. We must move it to the end of the linkage in this case. + +struct ds_in_t +{ + float4 pos : POSITION; + float3 norm : TEXCOORD0; +}; + +struct pcf_in_t +{ + float flTessFactor [3] : SV_TessFactor; + float flInsideTessFactor : SV_InsideTessFactor; + float foo : PCF_FOO; +}; + +struct gs_in_t +{ + float4 pos : POSITION; + float3 norm : TEXCOORD0; +}; + +[domain ( "tri" )] +gs_in_t main (pcf_in_t pcf_data, const OutputPatch i, float3 tesscoord : SV_DomainLocation) +{ + gs_in_t o; + + o.pos = i[0].pos + tesscoord.x; + o.norm = i[0].norm + tesscoord.y; + + tesscoord.z; + + return o; +} + diff --git a/deps/glslang/glslang/Test/hlsl.domain.3.tese b/deps/glslang/glslang/Test/hlsl.domain.3.tese new file mode 100644 index 0000000000..aeceedacb9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.domain.3.tese @@ -0,0 +1,31 @@ +// Test vec2 tessellation coordinate: the IO form should be a vec3, copied to a vec2 +// at the entry point boundary. + +struct ds_in_t +{ + float4 pos : POSITION; + float3 norm : TEXCOORD0; +}; + +struct pcf_in_t +{ + float flTessFactor [3] : SV_TessFactor; + float flInsideTessFactor : SV_InsideTessFactor; +}; + +struct gs_in_t +{ + float4 pos : POSITION; + float3 norm : TEXCOORD0; +}; + +[domain ( "isoline" )] +gs_in_t main (const OutputPatch i, float2 tesscoord : SV_DomainLocation, pcf_in_t pcf_data ) +{ + gs_in_t o; + + o.pos = i[0].pos + tesscoord.x; + o.norm = i[0].norm + tesscoord.y; + + return o; +} diff --git a/deps/glslang/glslang/Test/hlsl.emptystruct.init.vert b/deps/glslang/glslang/Test/hlsl.emptystruct.init.vert new file mode 100644 index 0000000000..02050f8ba1 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.emptystruct.init.vert @@ -0,0 +1,8 @@ +struct Test { }; + +static const Test Test_Empty; + +float4 main(in uint vertexIndex : VERTEXID) : VS_OUT_POSITION +{ + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.emptystructreturn.frag b/deps/glslang/glslang/Test/hlsl.emptystructreturn.frag new file mode 100644 index 0000000000..f6a772a328 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.emptystructreturn.frag @@ -0,0 +1,13 @@ +struct ps_in +{ +}; + +struct ps_out +{ +}; + +ps_out main (ps_in i) +{ + ps_out o; + return o; +} diff --git a/deps/glslang/glslang/Test/hlsl.emptystructreturn.vert b/deps/glslang/glslang/Test/hlsl.emptystructreturn.vert new file mode 100644 index 0000000000..8ac6578e46 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.emptystructreturn.vert @@ -0,0 +1,13 @@ +struct vs_in +{ +}; + +struct vs_out +{ +}; + +vs_out main (vs_in i) +{ + vs_out o; + return o; +} diff --git a/deps/glslang/glslang/Test/hlsl.entry-in.frag b/deps/glslang/glslang/Test/hlsl.entry-in.frag new file mode 100644 index 0000000000..e15955ddd5 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.entry-in.frag @@ -0,0 +1,20 @@ +struct InParam { + float2 v; + float4 fragCoord : SV_POSITION; + int2 i2; +}; + +float fun(InParam p) +{ + return p.v.y + p.fragCoord.x; +} + +float4 PixelShaderFunction(InParam i) : COLOR0 +{ + InParam local; + local = i; + float ret1 = fun(local); + float ret2 = fun(i); + + return local.fragCoord * ret1 * ret2; +} diff --git a/deps/glslang/glslang/Test/hlsl.entry-out.frag b/deps/glslang/glslang/Test/hlsl.entry-out.frag new file mode 100644 index 0000000000..27b4dd6428 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.entry-out.frag @@ -0,0 +1,23 @@ +struct OutParam { + float2 v; + int2 i; +}; + +void fun(out OutParam op) +{ + op.v = float2(0.4); + op.i = int2(7); +} + +float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam out3) : COLOR0 +{ + out1 = input; + out2.v = 2.0; + out2.i = 3; + OutParam local; + local.v = 12.0; + local.i = 13; + fun(out3); + + return out1; +} diff --git a/deps/glslang/glslang/Test/hlsl.entry.rename.frag b/deps/glslang/glslang/Test/hlsl.entry.rename.frag new file mode 100644 index 0000000000..188dfc58a7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.entry.rename.frag @@ -0,0 +1,15 @@ + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void not_the_entry_point() { } +int also_not_the_entry_point; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.explicitDescriptorSet.frag b/deps/glslang/glslang/Test/hlsl.explicitDescriptorSet.frag new file mode 100644 index 0000000000..1cff8d303f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.explicitDescriptorSet.frag @@ -0,0 +1,15 @@ +SamplerState g_sSamp : register(s1); + +Texture1D g_tTex1df4 : register(t0); + +SamplerState g_sSamp2_amb; +uniform float floatval_amb; + +Buffer floatbuff; + +float4 main() : SV_Target0 +{ + g_sSamp2_amb; + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.flatten.return.frag b/deps/glslang/glslang/Test/hlsl.flatten.return.frag new file mode 100644 index 0000000000..4aa3f50192 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.flatten.return.frag @@ -0,0 +1,18 @@ + +struct PS_OUTPUT +{ + float4 color : SV_Target0; + float other_struct_member1; + float other_struct_member2; + float other_struct_member3; +}; + +PS_OUTPUT Func1() +{ + return PS_OUTPUT(float4(1,1,1,1), 2, 3, 4); +} + +PS_OUTPUT main() +{ + return Func1(); +} diff --git a/deps/glslang/glslang/Test/hlsl.flattenOpaque.frag b/deps/glslang/glslang/Test/hlsl.flattenOpaque.frag new file mode 100644 index 0000000000..279be8a0bd --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.flattenOpaque.frag @@ -0,0 +1,40 @@ +struct os { + sampler2D s2D; +}; + +struct os2 { + sampler2D s2D; + Texture2D tex; +}; + +Texture2D tex; +os s; +os2 s2; + +float4 osCall1(os s) +{ + return tex.Sample(s.s2D, float2(0.2, 0.3)); +} + +float4 osCall2(os s, float2 f2) +{ + return tex.Sample(s.s2D, f2); +} + +float4 os2Call1(os2 s) +{ + return s.tex.Sample(s.s2D, float2(0.2, 0.3)); +} + +float4 os2Call2(os2 s, float2 f2) +{ + return s.tex.Sample(s.s2D, f2); +} + +float4 main() : SV_TARGET0 +{ + return osCall1(s) + + osCall2(s, float2(0.2, 0.3)) + + os2Call1(s2) + + os2Call2(s2, float2(0.2, 0.3)); +} diff --git a/deps/glslang/glslang/Test/hlsl.flattenOpaqueInit.vert b/deps/glslang/glslang/Test/hlsl.flattenOpaqueInit.vert new file mode 100644 index 0000000000..9ed8bc7a2c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.flattenOpaqueInit.vert @@ -0,0 +1,27 @@ +struct FxaaTex { SamplerState smpl; Texture2D tex; }; +SamplerState g_tInputTexture_sampler; Texture2D g_tInputTexture; + +float4 lookUp(FxaaTex tex) +{ + return tex.tex.Sample(tex.smpl, float2(0.3, 0.4)); +} + +FxaaTex fillOpaque() +{ + FxaaTex t; + t.smpl = g_tInputTexture_sampler; + t.tex = g_tInputTexture; + return t; +} + +float4 main() : SV_TARGET0 +{ + FxaaTex tex1 = { g_tInputTexture_sampler, g_tInputTexture }; + float4 res = lookUp(tex1); + FxaaTex tex2 = fillOpaque(); + res += lookUp(tex2); + FxaaTex tex3 = tex1; + res += lookUp(tex3); + + return res; +} diff --git a/deps/glslang/glslang/Test/hlsl.flattenOpaqueInitMix.vert b/deps/glslang/glslang/Test/hlsl.flattenOpaqueInitMix.vert new file mode 100644 index 0000000000..2e712ee5bb --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.flattenOpaqueInitMix.vert @@ -0,0 +1,13 @@ +struct FxaaTex { SamplerState smpl; Texture2D tex; float f; }; +SamplerState g_tInputTexture_sampler; Texture2D g_tInputTexture; + +float4 lookUp(FxaaTex tex) +{ + return tex.tex.Sample(tex.smpl, float2(tex.f, tex.f)); +} + +float4 main() : SV_TARGET0 +{ + FxaaTex tex = { g_tInputTexture_sampler, g_tInputTexture, 0.5 }; + return lookUp(tex); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.flattenSubset.frag b/deps/glslang/glslang/Test/hlsl.flattenSubset.frag new file mode 100644 index 0000000000..c80e093c8b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.flattenSubset.frag @@ -0,0 +1,36 @@ +struct S0 +{ + int x; + int y; + SamplerState ss; +}; + +struct S1 +{ + float b; + SamplerState samplerState; + S0 s0; + int a; +}; + +struct S2 +{ + int a1; + int a2; + int a3; + int a4; + int a5; + S1 resources; +}; + +SamplerState samp; +Texture2D tex; + +float4 main(float4 vpos : VPOS) : COLOR0 +{ + S1 s1; + S2 s2; + s1.s0.ss = samp; + s2.resources = s1; + return tex.Sample(s2.resources.s0.ss, float2(0.5)); +} diff --git a/deps/glslang/glslang/Test/hlsl.flattenSubset2.frag b/deps/glslang/glslang/Test/hlsl.flattenSubset2.frag new file mode 100644 index 0000000000..753475dc1f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.flattenSubset2.frag @@ -0,0 +1,24 @@ +struct Nested { float y; Texture2D texNested; }; +struct A { Nested n; float x; }; +struct B { Nested n; Texture2D tex; }; + +Texture2D someTex; + +float4 main(float4 vpos : VPOS) : COLOR0 +{ + A a1, a2; + B b; + + // Assignment of nested structs to nested structs + a1.n = a2.n; + b .n = a1.n; + + // Assignment of nested struct to standalone + Nested n = b.n; + + // Assignment to nestested struct members + a2.n.texNested = someTex; + a1.n.y = 1.0; + + return float4(0,0,0,0); +} diff --git a/deps/glslang/glslang/Test/hlsl.float1.frag b/deps/glslang/glslang/Test/hlsl.float1.frag new file mode 100644 index 0000000000..f9c0a6e0b4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.float1.frag @@ -0,0 +1,7 @@ +static float1 f1 = float1(1.0); +static float scalar = 2.0; + +float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0 +{ + return f1 * scalar + inFloat1 * inScalar; +} diff --git a/deps/glslang/glslang/Test/hlsl.float4.frag b/deps/glslang/glslang/Test/hlsl.float4.frag new file mode 100644 index 0000000000..b541f5d325 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.float4.frag @@ -0,0 +1,11 @@ +float4 AmbientColor = float4(1, 0.5, 0, 1); + +bool ff1 : SV_IsFrontFace; +float ff2 : packoffset(c1.y); +float4 ff3 : packoffset(c2) : register(ps_5_0, s0) ; +float4 ff4 : VPOS : packoffset(c3) : register(ps_5_0, s1) ; + +float4 ShaderFunction(float4 input) : COLOR0 +{ + return input * AmbientColor; +} diff --git a/deps/glslang/glslang/Test/hlsl.forLoop.frag b/deps/glslang/glslang/Test/hlsl.forLoop.frag new file mode 100644 index 0000000000..9cf60ee460 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.forLoop.frag @@ -0,0 +1,17 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + for (;;) ; + for (++input; ; ) ; + [unroll] for (; any(input != input); ) {} + for (; any(input != input); ) { return -input; } + for (--input; any(input != input); input += 2) { return -input; } + for (;;) if (input.x > 2.0) break; + for (;;) if (input.x > 2.0) continue; + float ii; + for (int ii = -1; ii < 3; ++ii) if (ii == 2) continue; + --ii; + for (int first = 0, second = 1; ;) first + second; + for ( int i = 0, count = int(ii); i < count; i++ ); + for (float first = 0, second[2], third; first < second[0]; ++second[1]) first + second[1] + third; + for (--ii, --ii, --ii;;) ii; +} diff --git a/deps/glslang/glslang/Test/hlsl.frag b/deps/glslang/glslang/Test/hlsl.frag new file mode 100644 index 0000000000..1620ed5882 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.frag @@ -0,0 +1,12 @@ +float4 AmbientColor = float4(1, 0.5, 0, 1); +float AmbientIntensity = 0.1; + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return input * AmbientIntensity + AmbientColor; + return input * input + input * input; + return input + input * input + input; + return ++input * -+-+--input; + return input++ + ++input; + return sin(input); +} diff --git a/deps/glslang/glslang/Test/hlsl.fraggeom.frag b/deps/glslang/glslang/Test/hlsl.fraggeom.frag new file mode 100644 index 0000000000..5592e857a6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.fraggeom.frag @@ -0,0 +1,17 @@ +// test geometry shader in fragment shader. GS attributes should be successfully ignored. + +struct myVertex { + float4 pos : SV_Position; +}; + +[maxvertexcount(1)] +void GS_Draw(point myVertex IN, inout PointStream OutputStream) +{ + OutputStream.Append(IN); + OutputStream.RestartStrip(); +} + +float4 main() : SV_TARGET +{ + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.function.frag b/deps/glslang/glslang/Test/hlsl.function.frag new file mode 100644 index 0000000000..5834b31964 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.function.frag @@ -0,0 +1,25 @@ +float4 fun0() +{ + return 1.0f; +} + +uint fun2(float4 col) +{ + return 7; +} + +float4 fun4(uint id1, uniform uint id2) +{ + return id1 * id2; +} + +float4 fun1(int index) +{ + uint entityId = fun2(fun0()); + return fun4(entityId, entityId); +} + +int main() : SV_TARGET +{ + return fun1; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.gather.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.gather.array.dx10.frag new file mode 100644 index 0000000000..788c333b09 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gather.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // No 1D gathers + + float4 txval20 = g_tTex2df4a . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval21 = g_tTex2di4a . Gather(g_sSamp, float3(0.3, 0.4, 0.5)); + uint4 txval22 = g_tTex2du4a . Gather(g_sSamp, float3(0.5, 0.6, 0.7)); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4a . Gather(g_sSamp, float4(0.1, 0.2, 0.3, 0.4)); + int4 txval41 = g_tTexcdi4a . Gather(g_sSamp, float4(0.4, 0.5, 0.6, 0.7)); + uint4 txval42 = g_tTexcdu4a . Gather(g_sSamp, float4(0.7, 0.8, 0.9, 1.0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gather.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.gather.basic.dx10.frag new file mode 100644 index 0000000000..be0cd31f64 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gather.basic.dx10.frag @@ -0,0 +1,48 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6)); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gather.basic.dx10.vert b/deps/glslang/glslang/Test/hlsl.gather.basic.dx10.vert new file mode 100644 index 0000000000..4996f18cb8 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gather.basic.dx10.vert @@ -0,0 +1,46 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + // no 1D gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6)); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9)); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gather.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.gather.offset.dx10.frag new file mode 100644 index 0000000000..4d095c0eff --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gather.offset.dx10.frag @@ -0,0 +1,44 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D Gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4), int2(1,1)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6), int2(1,-1)); + + // no 3D gathers + // No Cube offset gathers + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gather.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.gather.offsetarray.dx10.frag new file mode 100644 index 0000000000..5cc925259f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gather.offsetarray.dx10.frag @@ -0,0 +1,36 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // No 1D gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3), int2(1,0)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float3(0.3, 0.4, 0.4), int2(1,1)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float3(0.5, 0.6, 0.7), int2(1,-1)); + + // No 3D gathers + // No Cube offset gathers + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gatherRGBA.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.gatherRGBA.array.dx10.frag new file mode 100644 index 0000000000..279b6d606b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gatherRGBA.array.dx10.frag @@ -0,0 +1,71 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4a . GatherRed(g_sSamp, c3); + int4 txval01 = g_tTex2di4a . GatherRed(g_sSamp, c3); + uint4 txval02 = g_tTex2du4a . GatherRed(g_sSamp, c3); + + float4 txval10 = g_tTex2df4a . GatherGreen(g_sSamp, c3); + int4 txval11 = g_tTex2di4a . GatherGreen(g_sSamp, c3); + uint4 txval12 = g_tTex2du4a . GatherGreen(g_sSamp, c3); + + float4 txval20 = g_tTex2df4a . GatherBlue(g_sSamp, c3); + int4 txval21 = g_tTex2di4a . GatherBlue(g_sSamp, c3); + uint4 txval22 = g_tTex2du4a . GatherBlue(g_sSamp, c3); + + float4 txval30 = g_tTex2df4a . GatherAlpha(g_sSamp, c3); + int4 txval31 = g_tTex2di4a . GatherAlpha(g_sSamp, c3); + uint4 txval32 = g_tTex2du4a . GatherAlpha(g_sSamp, c3); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4a . GatherRed(g_sSamp, c4); + int4 txval41 = g_tTexcdi4a . GatherRed(g_sSamp, c4); + uint4 txval42 = g_tTexcdu4a . GatherRed(g_sSamp, c4); + + float4 txval50 = g_tTexcdf4a . GatherGreen(g_sSamp, c4); + int4 txval51 = g_tTexcdi4a . GatherGreen(g_sSamp, c4); + uint4 txval52 = g_tTexcdu4a . GatherGreen(g_sSamp, c4); + + float4 txval60 = g_tTexcdf4a . GatherBlue(g_sSamp, c4); + int4 txval61 = g_tTexcdi4a . GatherBlue(g_sSamp, c4); + uint4 txval62 = g_tTexcdu4a . GatherBlue(g_sSamp, c4); + + float4 txval70 = g_tTexcdf4a . GatherAlpha(g_sSamp, c4); + int4 txval71 = g_tTexcdi4a . GatherAlpha(g_sSamp, c4); + uint4 txval72 = g_tTexcdu4a . GatherAlpha(g_sSamp, c4); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gatherRGBA.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.gatherRGBA.basic.dx10.frag new file mode 100644 index 0000000000..17fae19306 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gatherRGBA.basic.dx10.frag @@ -0,0 +1,77 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4 . GatherRed(g_sSamp, c2); + int4 txval01 = g_tTex2di4 . GatherRed(g_sSamp, c2); + uint4 txval02 = g_tTex2du4 . GatherRed(g_sSamp, c2); + + float4 txval10 = g_tTex2df4 . GatherGreen(g_sSamp, c2); + int4 txval11 = g_tTex2di4 . GatherGreen(g_sSamp, c2); + uint4 txval12 = g_tTex2du4 . GatherGreen(g_sSamp, c2); + + float4 txval20 = g_tTex2df4 . GatherBlue(g_sSamp, c2); + int4 txval21 = g_tTex2di4 . GatherBlue(g_sSamp, c2); + uint4 txval22 = g_tTex2du4 . GatherBlue(g_sSamp, c2); + + float4 txval30 = g_tTex2df4 . GatherAlpha(g_sSamp, c2); + int4 txval31 = g_tTex2di4 . GatherAlpha(g_sSamp, c2); + uint4 txval32 = g_tTex2du4 . GatherAlpha(g_sSamp, c2); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . GatherRed(g_sSamp, c3); + int4 txval41 = g_tTexcdi4 . GatherRed(g_sSamp, c3); + uint4 txval42 = g_tTexcdu4 . GatherRed(g_sSamp, c3); + + float4 txval50 = g_tTexcdf4 . GatherGreen(g_sSamp, c3); + int4 txval51 = g_tTexcdi4 . GatherGreen(g_sSamp, c3); + uint4 txval52 = g_tTexcdu4 . GatherGreen(g_sSamp, c3); + + float4 txval60 = g_tTexcdf4 . GatherBlue(g_sSamp, c3); + int4 txval61 = g_tTexcdi4 . GatherBlue(g_sSamp, c3); + uint4 txval62 = g_tTexcdu4 . GatherBlue(g_sSamp, c3); + + float4 txval70 = g_tTexcdf4 . GatherAlpha(g_sSamp, c3); + int4 txval71 = g_tTexcdi4 . GatherAlpha(g_sSamp, c3); + uint4 txval72 = g_tTexcdu4 . GatherAlpha(g_sSamp, c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gatherRGBA.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.gatherRGBA.offset.dx10.frag new file mode 100644 index 0000000000..a8909b4a40 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gatherRGBA.offset.dx10.frag @@ -0,0 +1,116 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2); + int4 txval011 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2); + uint4 txval021 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2); + + float4 txval004 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, status); + // int4 txval01s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, status); + // uint4 txval02s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, status); + + // float4 txval004s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2); + int4 txval111 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2); + uint4 txval121 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2); + + float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, status); + // int4 txval11s = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, status); + // uint4 txval12s = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, status); + + // float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2); + int4 txval211 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2); + uint4 txval221 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2); + + float4 txval204 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, status); + // int4 txval21s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, status); + // uint4 txval22s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, status); + + float4 txval301 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2); + int4 txval311 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2); + uint4 txval321 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2); + + float4 txval304 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, status); + // int4 txval31s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, status); + // uint4 txval32s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gatherRGBA.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.gatherRGBA.offsetarray.dx10.frag new file mode 100644 index 0000000000..ca32f56b15 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gatherRGBA.offsetarray.dx10.frag @@ -0,0 +1,110 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2); + int4 txval011 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2); + uint4 txval021 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2); + + float4 txval004 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, status); + // int4 txval01s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, status); + // uint4 txval02s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, status); + + // float4 txval004s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2); + int4 txval111 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2); + uint4 txval121 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2); + + float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, status); + // int4 txval11s = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, status); + // uint4 txval12s = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, status); + + // float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2); + int4 txval211 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2); + uint4 txval221 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2); + + float4 txval204 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, status); + // int4 txval21s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, status); + // uint4 txval22s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, status); + + float4 txval301 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2); + int4 txval311 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2); + uint4 txval321 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2); + + float4 txval304 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, status); + // int4 txval31s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, status); + // uint4 txval32s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag new file mode 100644 index 0000000000..b6310acb64 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.array.dx10.frag @@ -0,0 +1,74 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval80 = g_tTex2df4a . GatherCmp(g_sSampCmp, c3, .75); + int4 txval81 = g_tTex2di4a . GatherCmp(g_sSampCmp, c3, .75); + uint4 txval82 = g_tTex2du4a . GatherCmp(g_sSampCmp, c3, .75); + + float4 txval00 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, .75); + int4 txval01 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, .75); + uint4 txval02 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, .75); + + float4 txval10 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, .75); + int4 txval11 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, .75); + uint4 txval12 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, .75); + + float4 txval20 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, .75); + int4 txval21 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, .75); + uint4 txval22 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, .75); + + float4 txval30 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, .75); + int4 txval31 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, .75); + uint4 txval32 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, .75); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4a . GatherCmpRed(g_sSampCmp, c4, .75); + int4 txval41 = g_tTexcdi4a . GatherCmpRed(g_sSampCmp, c4, .75); + uint4 txval42 = g_tTexcdu4a . GatherCmpRed(g_sSampCmp, c4, .75); + + float4 txval50 = g_tTexcdf4a . GatherCmpGreen(g_sSampCmp, c4, .75); + int4 txval51 = g_tTexcdi4a . GatherCmpGreen(g_sSampCmp, c4, .75); + uint4 txval52 = g_tTexcdu4a . GatherCmpGreen(g_sSampCmp, c4, .75); + + float4 txval60 = g_tTexcdf4a . GatherCmpBlue(g_sSampCmp, c4, .75); + int4 txval61 = g_tTexcdi4a . GatherCmpBlue(g_sSampCmp, c4, .75); + uint4 txval62 = g_tTexcdu4a . GatherCmpBlue(g_sSampCmp, c4, .75); + + float4 txval70 = g_tTexcdf4a . GatherCmpAlpha(g_sSampCmp, c4, .75); + int4 txval71 = g_tTexcdi4a . GatherCmpAlpha(g_sSampCmp, c4, .75); + uint4 txval72 = g_tTexcdu4a . GatherCmpAlpha(g_sSampCmp, c4, .75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag new file mode 100644 index 0000000000..94ef576dd0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.basic.dx10.frag @@ -0,0 +1,84 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75); + int4 txval01 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75); + uint4 txval02 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75); + + float4 txval10 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); + int4 txval11 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); + uint4 txval12 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); + + float4 txval20 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); + int4 txval21 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); + uint4 txval22 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); + + float4 txval30 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); + int4 txval31 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); + uint4 txval32 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); + + float4 txval80 = g_tTex2df4 . GatherCmp(g_sSampCmp, c2, 0.75); + int4 txval81 = g_tTex2di4 . GatherCmp(g_sSampCmp, c2, 0.75); + uint4 txval82 = g_tTex2du4 . GatherCmp(g_sSampCmp, c2, 0.75); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . GatherCmpRed(g_sSampCmp, c3, 0.75); + int4 txval41 = g_tTexcdi4 . GatherCmpRed(g_sSampCmp, c3, 0.75); + uint4 txval42 = g_tTexcdu4 . GatherCmpRed(g_sSampCmp, c3, 0.75); + + float4 txval50 = g_tTexcdf4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); + int4 txval51 = g_tTexcdi4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); + uint4 txval52 = g_tTexcdu4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); + + float4 txval60 = g_tTexcdf4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); + int4 txval61 = g_tTexcdi4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); + uint4 txval62 = g_tTexcdu4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); + + float4 txval70 = g_tTexcdf4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); + int4 txval71 = g_tTexcdi4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); + uint4 txval72 = g_tTexcdu4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); + + float4 txval90 = g_tTexcdf4 . GatherCmp(g_sSampCmp, c3, 0.75); + int4 txval91 = g_tTexcdi4 . GatherCmp(g_sSampCmp, c3, 0.75); + uint4 txval92 = g_tTexcdu4 . GatherCmp(g_sSampCmp, c3, 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag new file mode 100644 index 0000000000..7287fe48e6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offset.dx10.frag @@ -0,0 +1,114 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + + + + + + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, int2(1,0)); + int4 txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, int2(1,-1)); + uint4 txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, int2(1,1)); + + float4 txval004 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + int4 txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, int2(1,-1), int2(1,-1), int2(1,-1), int2(1,-1)); + uint4 txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, int2(1,1), int2(1,1), int2(1,1), int2(1,1)); + + float4 txval401 = g_tTex2df4 . GatherCmp(g_sSampCmp, c2, 0.75, int2(1,0)); + int4 txval411 = g_tTex2di4 . GatherCmp(g_sSampCmp, c2, 0.75, int2(1,-1)); + uint4 txval421 = g_tTex2du4 . GatherCmp(g_sSampCmp, c2, 0.75, int2(1,1)); + + // GatherCmpGreen not implemented pending OpImageDrefGather component input + // float4 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0)); + // int4 txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0)); + // uint4 txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0)); + + // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + // int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + // uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + + // float4 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), status); + // int4 txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), status); + // uint4 txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), status); + + // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + // int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + // uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + + // GatherCmpBlue not implemented pending OpImageDrefGather component input + // float4 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0)); + // int4 txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0)); + // uint4 txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0)); + + // float4 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + // int4 txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + // uint4 txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + + // float4 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + // int4 txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + // uint4 txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + + // float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), status); + // int4 txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), status); + // uint4 txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, int2(1,0), status); + + // GatherCmpAlpha not implemented pending OpImageDrefGather component input + // float4 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0)); + // int4 txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0)); + // uint4 txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0)); + + // float4 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + // int4 txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + // uint4 txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0)); + + // float4 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + // int4 txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + // uint4 txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), int2(1,0), int2(1,0), int2(1,0), status); + + // float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), status); + // int4 txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), status); + // uint4 txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, int2(1,0), status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag new file mode 100644 index 0000000000..7f381bb1e7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag @@ -0,0 +1,113 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval401 = g_tTex2df4a . GatherCmp(g_sSampCmp, c3, 0.75, o2); + int4 txval411 = g_tTex2di4a . GatherCmp(g_sSampCmp, c3, 0.75, o2); + uint4 txval421 = g_tTex2du4a . GatherCmp(g_sSampCmp, c3, 0.75, o2); + + float4 txval001 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); + int4 txval011 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); + uint4 txval021 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); + + float4 txval004 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval01s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval02s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); + + // float4 txval004s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); + int4 txval111 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); + uint4 txval121 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); + + float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval11s = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval12s = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); + + // float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); + int4 txval211 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); + uint4 txval221 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); + + float4 txval204 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval21s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval22s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); + + float4 txval301 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); + int4 txval311 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); + uint4 txval321 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); + + float4 txval304 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval31s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval32s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.getdimensions.dx10.frag b/deps/glslang/glslang/Test/hlsl.getdimensions.dx10.frag new file mode 100644 index 0000000000..bd9cc3b9a7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.getdimensions.dx10.frag @@ -0,0 +1,280 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +Texture2DMS g_tTex2dmsf4; +Texture2DMS g_tTex2dmsi4; +Texture2DMS g_tTex2dmsu4; + +Texture2DMSArray g_tTex2dmsf4a; +Texture2DMSArray g_tTex2dmsi4a; +Texture2DMSArray g_tTex2dmsu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint MipLevel; + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + float WidthF; + float HeightF; + float ElementsF; + float DepthF; + float NumberOfLevelsF; + float NumberOfSamplesF; + + // 1D, float tx, uint params + g_tTex1df4 . GetDimensions(WidthU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + // 1D, int, uint params + g_tTex1di4 . GetDimensions(WidthU); + g_tTex1di4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + // 1D, uint, uint params + g_tTex1du4 . GetDimensions(WidthU); + g_tTex1du4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + // 1DArray, float tx, uint params + g_tTex1df4a . GetDimensions(WidthU, ElementsU); + g_tTex1df4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); + + // 1DArray, int, uint params + g_tTex1di4a . GetDimensions(WidthU, ElementsU); + g_tTex1di4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); + + // 1DArray, uint, uint params + g_tTex1du4a . GetDimensions(WidthU, ElementsU); + g_tTex1du4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); + + // 2D, float tx, uint params + g_tTex2df4 . GetDimensions(WidthU, HeightU); + g_tTex2df4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // 2D, int, uint params + g_tTex2di4 . GetDimensions(WidthU, HeightU); + g_tTex2di4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // 2D, uint, uint params + g_tTex2du4 . GetDimensions(WidthU, HeightU); + g_tTex2du4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // 2Darray, float tx, uint params + g_tTex2df4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2df4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 2Darray, int, uint params + g_tTex2di4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2di4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 2Darray, uint, uint params + g_tTex2du4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2du4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 3D, float tx, uint params + g_tTex3df4 . GetDimensions(WidthU, HeightU, DepthU); + g_tTex3df4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); + + // 3D, int, uint params + g_tTex3di4 . GetDimensions(WidthU, HeightU, DepthU); + g_tTex3di4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); + + // 3D, uint, uint params + g_tTex3du4 . GetDimensions(WidthU, HeightU, DepthU); + g_tTex3du4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); + + // Cube, float tx, uint params + g_tTexcdf4 . GetDimensions(WidthU, HeightU); + g_tTexcdf4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // Cube, int, uint params + g_tTexcdi4 . GetDimensions(WidthU, HeightU); + g_tTexcdi4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // Cube, uint, uint params + g_tTexcdu4 . GetDimensions(WidthU, HeightU); + g_tTexcdu4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // Cubearray, float tx, uint params + g_tTexcdf4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTexcdf4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // Cubearray, int, uint params + g_tTexcdi4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTexcdi4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // Cubearray, uint, uint params + g_tTexcdu4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTexcdu4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 2DMS, float tx, uint params + g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + // 2DMS, int tx, uint params + g_tTex2dmsi4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + // 2DMS, uint tx, uint params + g_tTex2dmsu4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + // 2DMSArray, float tx, uint params + g_tTex2dmsf4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); + + // 2DMSArray, int tx, uint params + g_tTex2dmsi4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); + + // 2DMSArray, uint tx, uint params + g_tTex2dmsu4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); + + // TODO: *************************************************** + // Change this to 1 to enable float overloads when the HLSL + // function overload resolution is fixed. +#define OVERLOAD_FIX 0 + + // TODO: enable when function overload resolution rules are fixed +#if OVERLOAD_FIX + // 1D, float tx, float params + g_tTex1df4 . GetDimensions(WidthF); + g_tTex1df4 . GetDimensions(6, WidthF, NumberOfLevelsF); + + // 1D, int, float params + g_tTex1di4 . GetDimensions(WidthF); + g_tTex1di4 . GetDimensions(6, WidthF, NumberOfLevelsF); + + // 1D, uint, float params + g_tTex1du4 . GetDimensions(WidthF); + g_tTex1du4 . GetDimensions(6, WidthF, NumberOfLevelsF); + + // 1DArray, float tx, float params + g_tTex1df4a . GetDimensions(WidthF, ElementsF); + g_tTex1df4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); + + // 1DArray, int, float params + g_tTex1di4a . GetDimensions(WidthF, ElementsF); + g_tTex1di4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); + + // 1DArray, uint, float params + g_tTex1du4a . GetDimensions(WidthF, ElementsF); + g_tTex1du4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); + + // 2D, float tx, float params + g_tTex2df4 . GetDimensions(WidthF, HeightF); + g_tTex2df4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // 2D, int, float params + g_tTex2di4 . GetDimensions(WidthF, HeightF); + g_tTex2di4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // 2D, uint, float params + g_tTex2du4 . GetDimensions(WidthF, HeightF); + g_tTex2du4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // 2Darray, float tx, float params + g_tTex2df4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTex2df4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 2Darray, int, float params + g_tTex2di4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTex2di4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 2Darray, uint, float params + g_tTex2du4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTex2du4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 3D, float tx, float params + g_tTex3df4 . GetDimensions(WidthF, HeightF, DepthF); + g_tTex3df4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); + + // 3D, int, float params + g_tTex3di4 . GetDimensions(WidthF, HeightF, DepthF); + g_tTex3di4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); + + // 3D, uint, float params + g_tTex3du4 . GetDimensions(WidthF, HeightF, DepthF); + g_tTex3du4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); + + // Cube, float tx, float params + g_tTexcdf4 . GetDimensions(WidthF, HeightF); + g_tTexcdf4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // Cube, int, float params + g_tTexcdi4 . GetDimensions(WidthF, HeightF); + g_tTexcdi4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // Cube, uint, float params + g_tTexcdu4 . GetDimensions(WidthF, HeightF); + g_tTexcdu4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // Cubearray, float tx, float params + g_tTexcdf4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTexcdf4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // Cubearray, int, float params + g_tTexcdi4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTexcdi4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // Cubearray, uint, float params + g_tTexcdu4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTexcdu4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 2DMS, float tx, uint params + g_tTex2dmsf4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); + + // 2DMS, int tx, uint params + g_tTex2dmsi4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); + + // 2DMS, uint tx, uint params + g_tTex2dmsu4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); + + // 2DMSArray, float tx, uint params + g_tTex2dmsf4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); + + // 2DMSArray, int tx, uint params + g_tTex2dmsi4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); + + // 2DMSArray, uint tx, uint params + g_tTex2dmsu4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); +#endif // OVERLOAD_FIX + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.getdimensions.dx10.vert b/deps/glslang/glslang/Test/hlsl.getdimensions.dx10.vert new file mode 100644 index 0000000000..0249b1c237 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.getdimensions.dx10.vert @@ -0,0 +1,27 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + uint WidthU; + uint NumberOfLevelsU; + + // Most of the tests are in the hlsl.getdimensions.dx10.frag on the fragment side. + // This is just to establish that GetDimensions appears in the vertex stage. + + // 1D, float tx, uint params + g_tTex1df4 . GetDimensions(WidthU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.getdimensions.rw.dx10.frag b/deps/glslang/glslang/Test/hlsl.getdimensions.rw.dx10.frag new file mode 100644 index 0000000000..957a808280 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.getdimensions.rw.dx10.frag @@ -0,0 +1,96 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint MipLevel; + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + float WidthF; + float HeightF; + float ElementsF; + float DepthF; + float NumberOfLevelsF; + float NumberOfSamplesF; + + // 1D, float/int/uint, uint params + g_tTex1df4.GetDimensions(WidthU); + g_tTex1di4.GetDimensions(WidthU); + g_tTex1du4.GetDimensions(WidthU); + + // buffer, float/int/uint, uint params + g_tBuffF.GetDimensions(WidthU); + g_tBuffI.GetDimensions(WidthU); + g_tBuffU.GetDimensions(WidthU); + + // 1DArray, float/int/uint, uint params + g_tTex1df4a.GetDimensions(WidthU, ElementsU); + g_tTex1di4a.GetDimensions(WidthU, ElementsU); + g_tTex1du4a.GetDimensions(WidthU, ElementsU); + + // 2D, float/int/uint, uint params + g_tTex2df4.GetDimensions(WidthU, HeightU); + g_tTex2di4.GetDimensions(WidthU, HeightU); + g_tTex2du4.GetDimensions(WidthU, HeightU); + + // 2DArray, float/int/uint, uint params + g_tTex2df4a.GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2di4a.GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2du4a.GetDimensions(WidthU, HeightU, ElementsU); + + // 3D, float/int/uint, uint params + g_tTex3df4.GetDimensions(WidthU, HeightU, DepthU); + g_tTex3di4.GetDimensions(WidthU, HeightU, DepthU); + g_tTex3du4.GetDimensions(WidthU, HeightU, DepthU); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag b/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag new file mode 100644 index 0000000000..a1182fb6b0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.getsampleposition.dx10.frag @@ -0,0 +1,23 @@ +SamplerState g_sSamp : register(s0); + +Texture2DMS g_tTex2dmsf4; +Texture2DMSArray g_tTex2dmsf4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main(int sample : SAMPLE) +{ + PS_OUTPUT psout; + + float2 r00 = g_tTex2dmsf4.GetSamplePosition(sample); + float2 r01 = g_tTex2dmsf4a.GetSamplePosition(sample); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.global-const-init.frag b/deps/glslang/glslang/Test/hlsl.global-const-init.frag new file mode 100644 index 0000000000..d8f36c9664 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.global-const-init.frag @@ -0,0 +1,14 @@ + +cbuffer CB { + float4 foo; +}; + +static const float4 bar = foo; // test const (in the immutable sense) initializer from non-const. + +static const float2 a1[2] = { { 1, 2 }, { foo.x, 4 } }; // not entirely constant +static const float2 a2[2] = { { 5, 6 }, { 7, 8 } }; // entirely constant + +float4 main() : SV_Target0 +{ + return bar; +} diff --git a/deps/glslang/glslang/Test/hlsl.groupid.comp b/deps/glslang/glslang/Test/hlsl.groupid.comp new file mode 100644 index 0000000000..e5b0de4260 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.groupid.comp @@ -0,0 +1,9 @@ +RWTexture2D < float4 > OutputTexture; + +// Test conversion between SPIR-V required uint3 group id, and sub-vec3 shader declaration. + +[ numthreads ( 8 , 8 , 1 ) ] +void main ( uint2 vGroupId : SV_GroupID ) +{ + OutputTexture[ vGroupId . xy ] = float4(1.0, 0.0, 0.0, 1.0); +} diff --git a/deps/glslang/glslang/Test/hlsl.gs-hs-mix.tesc b/deps/glslang/glslang/Test/hlsl.gs-hs-mix.tesc new file mode 100644 index 0000000000..451969611e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.gs-hs-mix.tesc @@ -0,0 +1,119 @@ +cbuffer UniformBlock0 : register(b0) +{ + float4x4 model_view_matrix; + float4x4 proj_matrix; + float4x4 model_view_proj_matrix; + float3x3 normal_matrix; + float3 color; + float3 view_dir; + float3 tess_factor; +}; + +// ============================================================================= +// Hull Shader +// ============================================================================= +struct HSInput { + float3 PositionWS : POSITION; + float3 NormalWS : NORMAL; +}; + +struct HSOutput { + float3 PositionWS : POSITION; +}; + +struct HSTrianglePatchConstant { + float EdgeTessFactor[3] : SV_TessFactor; + float InsideTessFactor : SV_InsideTessFactor; + float3 NormalWS[3] : NORMAL; +}; + +HSTrianglePatchConstant HSPatchConstant(InputPatch patch) +{ + float3 roundedEdgeTessFactor = tess_factor; + float roundedInsideTessFactor = 3; + float insideTessFactor = 1; + + HSTrianglePatchConstant result; + + // Edge and inside tessellation factors + result.EdgeTessFactor[0] = roundedEdgeTessFactor.x; + result.EdgeTessFactor[1] = roundedEdgeTessFactor.y; + result.EdgeTessFactor[2] = roundedEdgeTessFactor.z; + result.InsideTessFactor = roundedInsideTessFactor; + + // Constant data + result.NormalWS[0] = patch[0].NormalWS; + result.NormalWS[1] = patch[1].NormalWS; + result.NormalWS[2] = patch[2].NormalWS; + + return result; +} + +[domain("tri")] +[partitioning("fractional_odd")] +[outputtopology("triangle_ccw")] +[outputcontrolpoints(3)] +[patchconstantfunc("HSPatchConstant")] +HSOutput HSMain( + InputPatch patch, + uint id : SV_OutputControlPointID +) +{ + HSOutput output; + output.PositionWS = patch[id].PositionWS; + return output; +} + +// ============================================================================= +// Geometry Shader +// ============================================================================= +struct GSVertexInput { + float3 PositionWS : POSITION; + float3 NormalWS : NORMAL; +}; + +struct GSVertexOutput { + float4 PositionCS : SV_POSITION; +}; + +[maxvertexcount(6)] +void GSMain( + triangle GSVertexInput input[3], + inout LineStream output +) +{ + + float3 P0 = input[0].PositionWS.xyz; + float3 P1 = input[1].PositionWS.xyz; + float3 P2 = input[2].PositionWS.xyz; + + GSVertexOutput vertex; + // Totally hacky... + P0.z += 0.001; + P1.z += 0.001; + P2.z += 0.001; + float4 Q0 = mul(proj_matrix, float4(P0, 1.0)); + float4 Q1 = mul(proj_matrix, float4(P1, 1.0)); + float4 Q2 = mul(proj_matrix, float4(P2, 1.0)); + + // Edge 0 + vertex.PositionCS = Q0; + output.Append(vertex); + vertex.PositionCS = Q1; + output.Append(vertex); + output.RestartStrip(); + + // Edge 1 + vertex.PositionCS = Q1; + output.Append(vertex); + vertex.PositionCS = Q2; + output.Append(vertex); + output.RestartStrip(); + + // Edge 2 + vertex.PositionCS = Q2; + output.Append(vertex); + vertex.PositionCS = Q0; + output.Append(vertex); + output.RestartStrip(); +} diff --git a/deps/glslang/glslang/Test/hlsl.hlslOffset.vert b/deps/glslang/glslang/Test/hlsl.hlslOffset.vert new file mode 100644 index 0000000000..aa95f6a344 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hlslOffset.vert @@ -0,0 +1,20 @@ +cbuffer b { + float m0; + float3 m4; + ////// + float m16; + float3 m20 : packoffset(c1.y); + ///// + float3 m36 : packoffset(c2.y); + ///// + float2 m56 : packoffset(c3.z); + ///// + float m64; + float2 m68; + float m76; + ////// + float m80; + float2 m96[1]; +}; + +void main() {} diff --git a/deps/glslang/glslang/Test/hlsl.hull.1.tesc b/deps/glslang/glslang/Test/hlsl.hull.1.tesc new file mode 100644 index 0000000000..4959b45331 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.1.tesc @@ -0,0 +1,39 @@ +// *** +// invocation ID coming from input to entry point +// *** + +struct VS_OUT +{ + float3 cpoint : CPOINT; +}; + +struct HS_CONSTANT_OUT +{ + float edges[2] : SV_TessFactor; +}; + +struct HS_OUT +{ + float3 cpoint : CPOINT; +}; + +[domain("isoline")] +[partitioning("integer")] +[outputtopology("line")] +[outputcontrolpoints(4)] +[patchconstantfunc("PCF")] +HS_OUT main(InputPatch ip, uint m_cpid : SV_OutputControlPointID) +{ + HS_OUT output; + output.cpoint = ip[0].cpoint; + return output; +} + +HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId) +{ + HS_CONSTANT_OUT output; + + output.edges[0] = 2.0f; + output.edges[1] = 8.0f; + return output; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.2.tesc b/deps/glslang/glslang/Test/hlsl.hull.2.tesc new file mode 100644 index 0000000000..3c0afcc5d6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.2.tesc @@ -0,0 +1,39 @@ +// *** +// invocation ID coming from synthesized variable +// *** + +struct VS_OUT +{ + float3 cpoint : CPOINT; +}; + +struct HS_CONSTANT_OUT +{ + float edges[2] : SV_TessFactor; +}; + +struct HS_OUT +{ + float3 cpoint : CPOINT; +}; + +[domain("isoline")] +[partitioning("integer")] +[outputtopology("line")] +[outputcontrolpoints(4)] +[patchconstantfunc("PCF")] +HS_OUT main(InputPatch ip) +{ + HS_OUT output; + output.cpoint = ip[0].cpoint; + return output; +} + +HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId, float4 pos : SV_Position) +{ + HS_CONSTANT_OUT output; + + output.edges[0] = 2.0f; + output.edges[1] = 8.0f; + return output; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.3.tesc b/deps/glslang/glslang/Test/hlsl.hull.3.tesc new file mode 100644 index 0000000000..8509dca1e3 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.3.tesc @@ -0,0 +1,39 @@ +// *** +// invocation ID coming from synthesized variable +// *** + +struct VS_OUT +{ + float3 cpoint : CPOINT; +}; + +struct HS_CONSTANT_OUT +{ + float edges[2] : SV_TessFactor; +}; + +struct HS_OUT +{ + float3 cpoint : CPOINT; +}; + +[domain("tri")] +[partitioning("integer")] +[outputtopology("point")] +[outputcontrolpoints(4)] +[patchconstantfunc("PCF")] +HS_OUT main(InputPatch ip) +{ + HS_OUT output; + output.cpoint = ip[0].cpoint; + return output; +} + +HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId, float4 pos : SV_Position) +{ + HS_CONSTANT_OUT output; + + output.edges[0] = 2.0f; + output.edges[1] = 8.0f; + return output; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.4.tesc b/deps/glslang/glslang/Test/hlsl.hull.4.tesc new file mode 100644 index 0000000000..cd2b094436 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.4.tesc @@ -0,0 +1,43 @@ + +// Test mixed InputPatch structure: user and builtin members. Hull shaders involve extra +// logic in this case due to patch constant function call synthesis. + +// This example tests the main EP and the PCF EP both having an input patch. + +struct HS_Main_Output +{ + float4 m_Position : SV_POSITION ; +}; + +struct HS_Output +{ + float fTessFactor [ 3 ] : SV_TessFactor ; + float fInsideTessFactor : SV_InsideTessFactor ; +}; + +struct HS_Input +{ + float4 m_Position : SV_POSITION; + float4 m_Normal : TEXCOORD2; +}; + +HS_Output HS_ConstFunc ( InputPatch < HS_Input , 3 > I ) +{ + HS_Output O = (HS_Output)0; + + O.fInsideTessFactor = I [ 0 ].m_Position.w + I [ 0 ].m_Normal.w; + + return O; +} + +[ domain ( "tri" ) ] +[ partitioning ( "fractional_odd" ) ] +[ outputtopology ( "triangle_cw" ) ] +[ patchconstantfunc ( "HS_ConstFunc" ) ] +[ outputcontrolpoints ( 3 ) ] +HS_Main_Output main( InputPatch < HS_Input , 3 > I , uint cpid : SV_OutputControlPointID ) +{ + HS_Main_Output output = ( HS_Main_Output ) 0 ; + output.m_Position = 0; + return output ; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.5.tesc b/deps/glslang/glslang/Test/hlsl.hull.5.tesc new file mode 100644 index 0000000000..c9e511ebf4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.5.tesc @@ -0,0 +1,43 @@ + +// Test mixed InputPatch structure: user and builtin members. Hull shaders involve extra +// logic in this case due to patch constant function call synthesis. + +// This example tests the PCF EP having an InputPatch, but the main EP does not. + +struct HS_Main_Output +{ + float4 m_Position : SV_POSITION ; +}; + +struct HS_Output +{ + float fTessFactor [ 3 ] : SV_TessFactor ; + float fInsideTessFactor : SV_InsideTessFactor ; +}; + +struct HS_Input +{ + float4 m_Position : SV_POSITION; + float4 m_Normal : TEXCOORD2; +}; + +HS_Output HS_ConstFunc ( InputPatch < HS_Input , 3 > I ) +{ + HS_Output O = (HS_Output)0; + + O.fInsideTessFactor = I [ 0 ].m_Position.w + I [ 0 ].m_Normal.w; + + return O; +} + +[ domain ( "tri" ) ] +[ partitioning ( "fractional_odd" ) ] +[ outputtopology ( "triangle_cw" ) ] +[ patchconstantfunc ( "HS_ConstFunc" ) ] +[ outputcontrolpoints ( 3 ) ] +HS_Main_Output main( uint cpid : SV_OutputControlPointID ) +{ + HS_Main_Output output = ( HS_Main_Output ) 0 ; + output.m_Position = 0; + return output ; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-1.tesc b/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-1.tesc new file mode 100644 index 0000000000..3e329f253b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-1.tesc @@ -0,0 +1,43 @@ +// *** +// per-control-point invocation of PCF from entry point return value +// *** + +struct hs_in_t +{ + float3 val : TEXCOORD0; +}; + +struct hs_pcf_t +{ + float tfactor[3] : SV_TessFactor; // must turn into a size 4 array in SPIR-V + float flInFactor : SV_InsideTessFactor; // must turn into a size 2 array in SPIR-V +}; + +struct hs_out_t +{ + float3 val : TEXCOORD0; +}; + +[ domain ("tri") ] +[ partitioning ("fractional_odd") ] +[ outputtopology ("triangle_cw") ] +[ outputcontrolpoints (3) ] +[ patchconstantfunc ( "PCF" ) ] +hs_out_t main (InputPatch i , uint cpid : SV_OutputControlPointID) +{ + hs_out_t o; + o.val = cpid; + return o; +} + +hs_pcf_t PCF( const OutputPatch pcf_out) +{ + hs_pcf_t o; + + o.tfactor[0] = pcf_out[0].val.x; + o.tfactor[1] = pcf_out[1].val.x; + o.tfactor[2] = pcf_out[2].val.x; + o.flInFactor = 4; + + return o; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-2.tesc b/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-2.tesc new file mode 100644 index 0000000000..1f65ce4b1e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.ctrlpt-2.tesc @@ -0,0 +1,47 @@ +// *** +// per-control-point invocation of PCF from entry point return value with +// both OutputPatch and InputPatch given to PCF. +// *** + +struct hs_in_t +{ + float3 val : TEXCOORD0; +}; + +struct hs_pcf_t +{ + float tfactor[3] : SV_TessFactor; // must turn into a size 4 array in SPIR-V + float flInFactor : SV_InsideTessFactor; // must turn into a size 2 array in SPIR-V +}; + +struct hs_out_t +{ + float3 val : TEXCOORD0; +}; + +[ domain ("tri") ] +[ partitioning ("fractional_odd") ] +[ outputtopology ("triangle_cw") ] +[ outputcontrolpoints (3) ] +[ patchconstantfunc ( "PCF" ) ] +hs_out_t main (InputPatch i , uint cpid : SV_OutputControlPointID) +{ + i[0].val; + + hs_out_t o; + o.val = cpid; + return o; +} + +hs_pcf_t PCF( const OutputPatch pcf_out, + const InputPatch pcf_in) +{ + hs_pcf_t o; + + o.tfactor[0] = pcf_out[0].val.x; + o.tfactor[1] = pcf_out[1].val.x; + o.tfactor[2] = pcf_out[2].val.x; + o.flInFactor = 4; + + return o; +} diff --git a/deps/glslang/glslang/Test/hlsl.hull.void.tesc b/deps/glslang/glslang/Test/hlsl.hull.void.tesc new file mode 100644 index 0000000000..c96ecb4312 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.hull.void.tesc @@ -0,0 +1,34 @@ +// *** +// void patchconstantfunction input and return +// *** + +struct VS_OUT +{ + float3 cpoint : CPOINT; +}; + +struct HS_CONSTANT_OUT +{ + float edges[2] : SV_TessFactor; +}; + +struct HS_OUT +{ + float3 cpoint : CPOINT; +}; + +[domain("tri")] +[partitioning("fractional_even")] +[outputtopology("triangle_ccw")] +[outputcontrolpoints(3)] +[patchconstantfunc("PCF")] +HS_OUT main(InputPatch ip) +{ + HS_OUT output; + output.cpoint = ip[0].cpoint; + return output; +} + +void PCF() +{ +} diff --git a/deps/glslang/glslang/Test/hlsl.identifier.sample.frag b/deps/glslang/glslang/Test/hlsl.identifier.sample.frag new file mode 100644 index 0000000000..d3f824272f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.identifier.sample.frag @@ -0,0 +1,18 @@ + +struct MyStruct { + sample float a; + noperspective float b; + linear float c; + centroid float d; +}; + +int sample(int x) { return x; } // HLSL allows this as an identifier as well. + +float4 main() : SV_Target0 +{ + // HLSL allows this as an identifier as well. + // However, this is not true of other qualifier keywords such as "linear". + float4 sample = float4(3,4,5,6); + + return sample.rgba; // 'sample' can participate in an expression. +} diff --git a/deps/glslang/glslang/Test/hlsl.if.frag b/deps/glslang/glslang/Test/hlsl.if.frag new file mode 100644 index 0000000000..b62eda1518 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.if.frag @@ -0,0 +1,35 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + if (all(input == input)) + return input; + + if (all(input == input)) + return input; + else + return -input; + + if (all(input == input)) + ; + + if (all(input == input)) + ; + else + ; + + [flatten] if (all(input == input)) { + return input; + } + + if (all(input == input)) { + return input; + } else { + return -input; + } + + int ii; + if (float ii = input.z) + ++ii; + ++ii; + if (float(ii) == 1.0) + ++ii; +} diff --git a/deps/glslang/glslang/Test/hlsl.imagefetch-subvec4.comp b/deps/glslang/glslang/Test/hlsl.imagefetch-subvec4.comp new file mode 100644 index 0000000000..2a83dd27ca --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.imagefetch-subvec4.comp @@ -0,0 +1,8 @@ +Texture3D IN: register(t0); +RWTexture3D OUT: register(u1); + +[numthreads(8,8,8)] +void main(uint3 tid: SV_DispatchThreadID) +{ + OUT[tid] = IN[tid]; +} diff --git a/deps/glslang/glslang/Test/hlsl.implicitBool.frag b/deps/glslang/glslang/Test/hlsl.implicitBool.frag new file mode 100644 index 0000000000..c6aea9d1ea --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.implicitBool.frag @@ -0,0 +1,32 @@ +float condf; +int condi; +float1 condf1; +int1 condi1; + +float4 main() : SV_Target0 +{ + float4 a = float4(2.0, 2.0, 2.0, 2.0); + if (condi) + return a + 1.0; + if (condf) + return a + 2.0; + if (condf1) + return a + 3.0; + if (condi1) + return a + 4.0; + if (condi && condf || condf1) + return a + 5.0; + + float f = condf; + while (f) { --f; } + + int i = condi; + do { --i; } while (i); + + for (; i; ) { --i; } + + float g = condf ? 7.0 : 8.0; + a += g; + + return a - 1.0; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.include.vert b/deps/glslang/glslang/Test/hlsl.include.vert new file mode 100644 index 0000000000..683398e527 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.include.vert @@ -0,0 +1,8 @@ +#include "bar.h" +#include "./inc1/bar.h" +#include "inc2\bar.h" + +float4 main() : SV_Position +{ + return i1 + i2 + i3 + i4 + i5 + i6; +} diff --git a/deps/glslang/glslang/Test/hlsl.includeNegative.vert b/deps/glslang/glslang/Test/hlsl.includeNegative.vert new file mode 100644 index 0000000000..64d31fab99 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.includeNegative.vert @@ -0,0 +1,8 @@ +#include "foo.h" +#include "inc2/../foo.h" +#include "inc1/badInc.h" + +float4 main() : SV_Position +{ +#error in main +} diff --git a/deps/glslang/glslang/Test/hlsl.inf.vert b/deps/glslang/glslang/Test/hlsl.inf.vert new file mode 100644 index 0000000000..d57b83793b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.inf.vert @@ -0,0 +1,11 @@ +float4 main() : SV_Position +{ + float f1 = -1.#INF; + float f2 = 1.#INF; + float f3 = +1.#INF; + float f4 = f2 * 1.#INF + 1.#INF; + const float f5 = -1.#INF; + const float f6 = f5 * 0.0f; + + return (float4)(f1 + f2 + f3 + f4 + f5 + f6); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.init.frag b/deps/glslang/glslang/Test/hlsl.init.frag new file mode 100644 index 0000000000..8caf3c7d94 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.init.frag @@ -0,0 +1,41 @@ +static float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2); +static float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2}; +static float a2 = 0.2, b2; +static float a3, b3 = 0.3; +static float a4, b4 = 0.4, c4; +static float a5 = 0.5, b5, c5 = 1.5; + +struct Single1 { int f; }; +static Single1 single1 = { 10 }; + +struct Single2 { uint2 v; }; +static Single2 single2 = { { 1, 2 } }; + +struct Single3 { Single1 s1; }; +static Single3 single3 = { { 3 } }; + +struct Single4 { Single2 s1; }; +static Single4 single4 = { { { 4u, 5u } } }; + +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; +} + +cbuffer Constants +{ + float a = 1.0f, b, c = 2.0f; +}; diff --git a/deps/glslang/glslang/Test/hlsl.init2.frag b/deps/glslang/glslang/Test/hlsl.init2.frag new file mode 100644 index 0000000000..2b9b7e688c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.init2.frag @@ -0,0 +1,51 @@ + +void Test1() +{ + struct mystruct { float2 a; }; + mystruct test1 = { + { 1, 2, }, // test trailing commas in list + }; + + mystruct test2 = { + float2(3, 4), + }; + + // mystruct test3 = { + // { { 5, 6, } }, // TODO: test unneeded levels + // }; + + float test4 = { 7, } ; // test scalar initialization + + struct mystruct2 { float a; float b; float c; }; + mystruct2 test5 = { {8,}, {9,}, {10}, }; + const mystruct2 constTest5 = { {8,}, {9,}, {10}, }; + constTest5.c; + + const float step = 1.f; + float n = 0; + const float3 a[8] = { + normalize(float3(1, 1, 1)) * (n += step), + normalize(float3(-1, -1, -1)) * (n += step), + normalize(float3(-1, -1, 1)) * (n += step), + normalize(float3(-1, 1, -1)) * (n += step), + normalize(float3(-1, 1, 1)) * (n += step), + normalize(float3(1, -1, -1)) * (n += step), + normalize(float3(1, -1, 1)) * (n += step), + normalize(float3(1, 1, -1)) * (n += step) }; + + const struct one { float3 a; } oneNonConst = { normalize(float3(-1, 1, 1)) * (n += step) }; + const struct two { float3 a; + float3 b; } twoNonConst = { normalize(float3(-1, 1, 1)) * (n += step), + normalize(float3(-1, 1, 1)) * (n += step) }; +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + Test1(); + + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +} diff --git a/deps/glslang/glslang/Test/hlsl.inoutquals.frag b/deps/glslang/glslang/Test/hlsl.inoutquals.frag new file mode 100644 index 0000000000..6a124f8dd0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.inoutquals.frag @@ -0,0 +1,26 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +inline void MyFunc(in float x, out float y, inout float z, in out float w) +{ + y = x; + z = y; + x = -1; // no effect since x = in param + w *= 1; +} + +PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage) +{ + PS_OUTPUT psout; + + float x = 7, y, z = 3; + MyFunc(x, y, z, inpos.w); + + psout.Color = float4(x, y, z, 1); + psout.Depth = inpos.w; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.frag b/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.frag new file mode 100644 index 0000000000..fde87c9daa --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.frag @@ -0,0 +1,37 @@ + +float PixelShaderFunctionS(float inF0, float inF1) +{ + float r000 = frexp(inF0, inF1); + return 0.0; +} + +float2 PixelShaderFunction2(float2 inF0, float2 inF1) +{ + float2 r000 = frexp(inF0, inF1); + return float2(1,2); +} + +float3 PixelShaderFunction3(float3 inF0, float3 inF1) +{ + float3 r000 = frexp(inF0, inF1); + return float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0, float4 inF1) +{ + float4 r000 = frexp(inF0, inF1); + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS(MT) \ + MT r000 = frexp(inF0, inF1); + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.vert b/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.vert new file mode 100644 index 0000000000..f0fd5e0015 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsic.frexp.vert @@ -0,0 +1,28 @@ +float VertexShaderFunctionS(float inF0, float inF1) +{ + frexp(inF0, inF1); + return 0.0; +} + +float2 VertexShaderFunction2(float2 inF0, float2 inF1) +{ + frexp(inF0, inF1); + return float2(1,2); +} + +float3 VertexShaderFunction3(float3 inF0, float3 inF1) +{ + frexp(inF0, inF1); + return float3(1,2,3); +} + +float4 VertexShaderFunction4(float4 inF0, float4 inF1) +{ + frexp(inF0, inF1); + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + frexp(inF0, inF1); + diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.barriers.comp b/deps/glslang/glslang/Test/hlsl.intrinsics.barriers.comp new file mode 100644 index 0000000000..c9f6a8d743 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.barriers.comp @@ -0,0 +1,13 @@ + +float ComputeShaderFunction() +{ + AllMemoryBarrier(); + AllMemoryBarrierWithGroupSync(); + DeviceMemoryBarrier(); + DeviceMemoryBarrierWithGroupSync(); + GroupMemoryBarrier(); + GroupMemoryBarrierWithGroupSync(); + + return 0.0; +} + diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.comp b/deps/glslang/glslang/Test/hlsl.intrinsics.comp new file mode 100644 index 0000000000..bce2d27d81 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.comp @@ -0,0 +1,129 @@ + + +groupshared uint gs_ua; +groupshared uint gs_ub; +groupshared uint gs_uc; +groupshared uint2 gs_ua2; +groupshared uint2 gs_ub2; +groupshared uint2 gs_uc2; +groupshared uint3 gs_ua3; +groupshared uint3 gs_ub3; +groupshared uint3 gs_uc3; +groupshared uint4 gs_ua4; +groupshared uint4 gs_ub4; +groupshared uint4 gs_uc4; + +float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) +{ + uint out_u1; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua, gs_ub); + InterlockedAdd(gs_ua, gs_ub, out_u1); + InterlockedAnd(gs_ua, gs_ub); + InterlockedAnd(gs_ua, gs_ub, out_u1); + InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); + InterlockedExchange(gs_ua, gs_ub, out_u1); + InterlockedMax(gs_ua, gs_ub); + InterlockedMax(gs_ua, gs_ub, out_u1); + InterlockedMin(gs_ua, gs_ub); + InterlockedMin(gs_ua, gs_ub, out_u1); + InterlockedOr(gs_ua, gs_ub); + InterlockedOr(gs_ua, gs_ub, out_u1); + InterlockedXor(gs_ua, gs_ub); + InterlockedXor(gs_ua, gs_ub, out_u1); + + // CheckAccessFullyMapped(3); // TODO: ... + + return 0.0; +} + +float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +{ + uint2 out_u2; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua2, gs_ub2); + InterlockedAdd(gs_ua2, gs_ub2, out_u2); + InterlockedAnd(gs_ua2, gs_ub2); + InterlockedAnd(gs_ua2, gs_ub2, out_u2); + InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); + InterlockedExchange(gs_ua2, gs_ub2, out_u2); + InterlockedMax(gs_ua2, gs_ub2); + InterlockedMax(gs_ua2, gs_ub2, out_u2); + InterlockedMin(gs_ua2, gs_ub2); + InterlockedMin(gs_ua2, gs_ub2, out_u2); + InterlockedOr(gs_ua2, gs_ub2); + InterlockedOr(gs_ua2, gs_ub2, out_u2); + InterlockedXor(gs_ua2, gs_ub2); + InterlockedXor(gs_ua2, gs_ub2, out_u2); + + // TODO: ... add when float1 prototypes are generated + return float2(1,2); +} + +float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +{ + uint3 out_u3; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua3, gs_ub3); + InterlockedAdd(gs_ua3, gs_ub3, out_u3); + InterlockedAnd(gs_ua3, gs_ub3); + InterlockedAnd(gs_ua3, gs_ub3, out_u3); + InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); + InterlockedExchange(gs_ua3, gs_ub3, out_u3); + InterlockedMax(gs_ua3, gs_ub3); + InterlockedMax(gs_ua3, gs_ub3, out_u3); + InterlockedMin(gs_ua3, gs_ub3); + InterlockedMin(gs_ua3, gs_ub3, out_u3); + InterlockedOr(gs_ua3, gs_ub3); + InterlockedOr(gs_ua3, gs_ub3, out_u3); + InterlockedXor(gs_ua3, gs_ub3); + InterlockedXor(gs_ua3, gs_ub3, out_u3); + + // TODO: ... add when float1 prototypes are generated + return float3(1,2,3); +} + +float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) +{ + uint4 out_u4; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua4, gs_ub4); + InterlockedAdd(gs_ua4, gs_ub4, out_u4); + InterlockedAnd(gs_ua4, gs_ub4); + InterlockedAnd(gs_ua4, gs_ub4, out_u4); + InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); + InterlockedExchange(gs_ua4, gs_ub4, out_u4); + InterlockedMax(gs_ua4, gs_ub4); + InterlockedMax(gs_ua4, gs_ub4, out_u4); + InterlockedMin(gs_ua4, gs_ub4); + InterlockedMin(gs_ua4, gs_ub4, out_u4); + InterlockedOr(gs_ua4, gs_ub4); + InterlockedOr(gs_ua4, gs_ub4, out_u4); + InterlockedXor(gs_ua4, gs_ub4); + InterlockedXor(gs_ua4, gs_ub4, out_u4); + + // TODO: ... add when float1 prototypes are generated + return float4(1,2,3,4); +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag new file mode 100644 index 0000000000..295374fb78 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.d3dcolortoubyte4.frag @@ -0,0 +1,7 @@ + +uniform float4 col4; + +int4 main() : SV_Target0 +{ + return D3DCOLORtoUBYTE4(col4); +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.double.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.double.frag new file mode 100644 index 0000000000..013422a8c1 --- /dev/null +++ b/deps/glslang/glslang/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/deps/glslang/glslang/Test/hlsl.intrinsics.evalfns.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.evalfns.frag new file mode 100644 index 0000000000..96387068a9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.evalfns.frag @@ -0,0 +1,10 @@ + +void main(float inF1, float2 inF2, float3 inF3, float4 inF4, int2 inI2) : COLOR +{ + EvaluateAttributeSnapped(inF1, int2(8,15)); + EvaluateAttributeSnapped(inF2, int2(0,1)); + EvaluateAttributeSnapped(inF3, int2(3,10)); + EvaluateAttributeSnapped(inF4, int2(7,8)); + + EvaluateAttributeSnapped(inF1, inI2); +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag new file mode 100644 index 0000000000..f406860ebd --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.f1632.frag @@ -0,0 +1,29 @@ +float PixelShaderFunctionS(uint inF0) +{ + return f16tof32(inF0); +} + +float1 PixelShaderFunction1(uint1 inF0) +{ + return f16tof32(inF0); +} + +float2 PixelShaderFunction2(uint2 inF0) +{ + return f16tof32(inF0); +} + +float3 PixelShaderFunction3(uint3 inF0) +{ + return f16tof32(inF0); +} + +float4 PixelShaderFunction(uint4 inF0) +{ + return f16tof32(inF0); +} + +float4 main() : SV_Target0 +{ + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.f3216.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.f3216.frag new file mode 100644 index 0000000000..f31136d9e8 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.f3216.frag @@ -0,0 +1,29 @@ +uint PixelShaderFunctionS(float inF0) +{ + return f32tof16(inF0); +} + +uint1 PixelShaderFunction1(float1 inF0) +{ + return f32tof16(inF0); +} + +uint2 PixelShaderFunction2(float2 inF0) +{ + return f32tof16(inF0); +} + +uint3 PixelShaderFunction3(float3 inF0) +{ + return f32tof16(inF0); +} + +uint4 PixelShaderFunction(float4 inF0) +{ + return f32tof16(inF0); +} + +float4 main() : SV_Target0 +{ + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.frag new file mode 100644 index 0000000000..41b5f54cbd --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.frag @@ -0,0 +1,492 @@ + + +groupshared uint gs_ua; +groupshared uint gs_ub; +groupshared uint gs_uc; +groupshared uint2 gs_ua2; +groupshared uint2 gs_ub2; +groupshared uint2 gs_uc2; +groupshared uint3 gs_ua3; +groupshared uint3 gs_ub3; +groupshared uint3 gs_uc3; +groupshared uint4 gs_ua4; +groupshared uint4 gs_ub4; +groupshared uint4 gs_uc4; + +float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, int inU1) +{ + uint out_u1; + + 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(inU1); + float r007 = asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics + float r009 = atan(inF0); + float r010 = atan2(inF0, inF1); + float r011 = ceil(inF0); + float r012 = clamp(inF0, inF1, inF2); + clip(inF0); + clip(r005); + float r014 = cos(inF0); + float r015 = cosh(inF0); + int 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)); + 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); + float r033 = fmod(inF0, inF1); + float r034 = frac(inF0); + 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); + 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. + float r061 = trunc(inF0); + + return 0.0; +} + +float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +{ + uint2 out_u2; + + 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 + float2 r009 = atan(inF0); + float2 r010 = atan2(inF0, inF1); + float2 r011 = ceil(inF0); + float2 r012 = clamp(inF0, inF1, inF2); + clip(inF0); + clip(inU0); + float2 r013 = cos(inF0); + float2 r015 = cosh(inF0); + int2 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)); + 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); + float2 r035 = fmod(inF0, inF1); + float2 r036 = frac(inF0); + 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); + 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. + float2 r066 = trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float2(1,2); +} + +float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +{ + uint3 out_u3; + + 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 + float3 r009 = atan(inF0); + float3 r010 = atan2(inF0, inF1); + float3 r011 = ceil(inF0); + float3 r012 = clamp(inF0, inF1, inF2); + clip(inF0); + clip(inU0); + 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)); + 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); + float3 r036 = fmod(inF0, inF1); + float3 r037 = frac(inF0); + float3 r039 = fwidth(inF0); + bool3 r040 = isinf(inF0); + bool3 r041 = isnan(inF0); + float3 r042 = ldexp(inF0, inF1); + float3 r039a = lerp(inF0, inF1, inF2); + float3 r039b = lerp(inF0, inF1, 0.3); // test vec,vec,scalar lerp + 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); + 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. + float3 r067 = trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) +{ + uint4 out_u4; + + 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 + float4 r009 = atan(inF0); + float4 r010 = atan2(inF0, inF1); + float4 r011 = ceil(inF0); + float4 r012 = clamp(inF0, inF1, inF2); + clip(inF0); + clip(inU0); + 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)); + 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); + float4 r036 = fmod(inF0, inF1); + float4 r037 = frac(inF0); + 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); + 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. + float4 r067 = trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float4(1,2,3,4); +} + +// TODO: for mats: +// asfloat(inU0); \ +// asint(inF0); \ +// asuint(inF0); \ + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS(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 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 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS(float2x2); + + // TODO: ... add when float1 prototypes are generated + return float2x2(2,2,2,2); +} + +float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS(float3x3); + + // TODO: ... add when float1 prototypes are generated + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + 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); +} + +#define TESTGENMUL(ST, VT, MT) \ + ST r0 = mul(inF0, inF1); \ + VT r1 = mul(inFV0, inF0); \ + VT r2 = mul(inF0, inFV0); \ + ST r3 = mul(inFV0, inFV1); \ + VT r4 = mul(inFM0, inFV0); \ + VT r5 = mul(inFV0, inFM0); \ + MT r6 = mul(inFM0, inF0); \ + MT r7 = mul(inF0, inFM0); \ + MT r8 = mul(inFM0, inFM1); + + +void TestGenMul2(float inF0, float inF1, + float2 inFV0, float2 inFV1, + float2x2 inFM0, float2x2 inFM1) +{ + TESTGENMUL(float, float2, float2x2); +} + +void TestGenMul3(float inF0, float inF1, + float3 inFV0, float3 inFV1, + float3x3 inFM0, float3x3 inFM1) +{ + TESTGENMUL(float, float3, float3x3); +} + +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); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.lit.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.lit.frag new file mode 100644 index 0000000000..bf4069a823 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.lit.frag @@ -0,0 +1,4 @@ +void PixelShaderFunction(float n_dot_l, float n_dot_h, float m) +{ + float4 r0 = lit(n_dot_l, n_dot_h, m); +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.negative.comp b/deps/glslang/glslang/Test/hlsl.intrinsics.negative.comp new file mode 100644 index 0000000000..fe612d6e79 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.negative.comp @@ -0,0 +1,201 @@ +float ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0) +{ + uint out_u1; + + // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(3.0); // expected error: only valid on integers + // clip(inF0); // expected error: only valid in pixel stage + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // ddx(inF0); // expected error: only valid in pixel stage + // ddx_coarse(inF0); // expected error: only valid in pixel stage + // ddx_fine(inF0); // expected error: only valid in pixel stage + // ddy(inF0); // expected error: only valid in pixel stage + // ddy_coarse(inF0); // expected error: only valid in pixel stage + // ddy_fine(inF0); // expected error: only valid in pixel stage + // determinant(inF0); // expected error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // length(inF0); // expect error: invalid on scalars + // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + // normalize(inF0); // expect error: invalid on scalars + // reflect(inF0, inF1); // expect error: invalid on scalars + // refract(inF0, inF1, inF2); // expect error: invalid on scalars + // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return 0.0; +} + +float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +{ + // TODO: ... add when float1 prototypes are generated + + // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + + return 0.0; +} + +float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +{ + uint2 out_u2; + + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float2(1,2); +} + +float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +{ + uint3 out_u3; + + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float3(1,2,3); +} + +float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) +{ + uint4 out_u4; + + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // determinant(inF0); // expect error: only valid on mats + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + // EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs + // fma(inF0, inF1, inF2); // 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 + // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float4(1,2,3,4); +} + diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.negative.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.negative.frag new file mode 100644 index 0000000000..8afaf87746 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.negative.frag @@ -0,0 +1,136 @@ +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 + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(3.0); // expected error: only valid on integers + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expected error: only valid on mats + // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + // fma(inF0, inF1, inF2); // 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 + // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // GroupMemoryBarrier(); // TODO: expected error: invalid in fragment stage + // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage + length(inF0); // expected error: invalid on scalars + msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + normalize(inF0); // expected error: invalid on scalars + reflect(inF0, inF1); // expected error: invalid on scalars + refract(inF0, inF1, inF2); // expected error: invalid on scalars + refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expected error: only valid on mats + + return 0.0; +} + +float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +{ + // TODO: ... add when float1 prototypes are generated + + GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + + return 0.0; +} + +float2 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 + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + // fma(inF0, inF1, inF2); // 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 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +{ + CheckAccessFullyMapped(inF0); // expected error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + // fma(inF0, inF1, inF2); // 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 float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) +{ + CheckAccessFullyMapped(inF0); // expected error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + // fma(inF0, inF1, inF2); // 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 float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + countbits(inF0); \ + D3DCOLORtoUBYTE4(inF0); \ + cross(inF0, inF1); \ + f16tof32(inF0); \ + firstbithigh(inF0); \ + firstbitlow(inF0); \ + reversebits(inF0); \ + length(inF0); \ + noise(inF0); \ + normalize(inF0); \ + reflect(inF0, inF1); \ + refract(inF0, inF1, 1.0); \ + reversebits(inF0); \ + + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float2x2(2,2,2,2); +} + +float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.negative.vert b/deps/glslang/glslang/Test/hlsl.intrinsics.negative.vert new file mode 100644 index 0000000000..6224b25e46 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.negative.vert @@ -0,0 +1,247 @@ +static uint gs_ua; +static uint gs_ub; +static uint gs_uc; +static uint2 gs_ua2; +static uint2 gs_ub2; +static uint2 gs_uc2; +static uint3 gs_ua3; +static uint3 gs_ub3; +static uint3 gs_uc3; +static uint4 gs_ua4; +static uint4 gs_ub4; +static uint4 gs_uc4; + +float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0) +{ + uint out_u1; + + // AllMemoryBarrier(); // expected error: only valid in compute stage + // AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(3.0); // expected error: only valid on integers + // CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages + // clip(inF0); // expected error: only valid in pixel stage + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages + // DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage + // ddx(inF0); // expected error: only valid in pixel stage + // ddx_coarse(inF0); // expected error: only valid in pixel stage + // ddx_fine(inF0); // expected error: only valid in pixel stage + // ddy(inF0); // expected error: only valid in pixel stage + // ddy_coarse(inF0); // expected error: only valid in pixel stage + // ddy_fine(inF0); // expected error: only valid in pixel stage + // determinant(inF0); // expected error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // GroupMemoryBarrier(); // expected error: only valid in compute stage + // GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage + // length(inF0); // expect error: invalid on scalars + // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + // normalize(inF0); // expect error: invalid on scalars + // reflect(inF0, inF1); // expect error: invalid on scalars + // refract(inF0, inF1, inF2); // expect error: invalid on scalars + // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return 0.0; +} + +float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +{ + // TODO: ... add when float1 prototypes are generated + + // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + + return 0.0; +} + +float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +{ + uint2 out_u2; + + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float2(1,2); +} + +float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +{ + uint3 out_u3; + + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float3(1,2,3); +} + +float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) +{ + uint4 out_u4; + + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // determinant(inF0); // expect error: only valid on mats + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // 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); // 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 + // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float2x2(2,2,2,2); +} + +float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.promote.down.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.promote.down.frag new file mode 100644 index 0000000000..5f4882b262 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.promote.down.frag @@ -0,0 +1,22 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +PS_OUTPUT main() +{ + uint r00 = countbits(f); + uint2 r01 = reversebits(f2); + + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.promote.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.promote.frag new file mode 100644 index 0000000000..89d3e68040 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.promote.frag @@ -0,0 +1,79 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +Buffer g_tTexbfs; +Texture1D g_tTex1df4; +uint upos; +float fpos; + +PS_OUTPUT main() +{ + // Same shapes: + + float r00 = max(b, f); + uint r01 = max(b, u); + int r02 = max(b, i); + float r03 = max(i, f); + float r04 = max(u, f); + + float2 r10 = max(b2, f2); + uint2 r11 = max(b2, u2); + int2 r12 = max(b2, i2); + float2 r13 = max(i2, f2); + float2 r14 = max(u2, f2); + + float2 r20 = clamp(i2, u2, f2); // 3 args, converts all to best type. + uint2 r21 = clamp(b2, u2, b2); + float2 r22 = clamp(b2, f2, b2); + + // Mixed shapes: + float2 r30 = max(b, f2); + uint2 r31 = max(b, u2); + int2 r32 = max(b, i2); + float2 r33 = max(i, f2); + float2 r34 = max(u, f2); + + float2 r40 = clamp(i, u2, f2); // 3 args, converts all to best type. + uint2 r41 = clamp(b2, u, b2); + float2 r42 = clamp(b2, f, b); + int2 r43 = clamp(i, i2, u2); + + float r50 = g_tTexbfs.Load(upos); + float r51 = g_tTexbfs.Load(fpos); + + int MipLevel; + + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + int WidthI; + int HeightI; + int ElementsI; + int DepthI; + int NumberOfLevelsI; + int NumberOfSamplesI; + + g_tTex1df4 . GetDimensions(WidthI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); + + // max(i2, f2); + PS_OUTPUT ps_output; + ps_output.color = r00; + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.promote.outputs.frag b/deps/glslang/glslang/Test/hlsl.intrinsics.promote.outputs.frag new file mode 100644 index 0000000000..42fa3e806d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.promote.outputs.frag @@ -0,0 +1,49 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +Buffer g_tTexbfs; +Texture1D g_tTex1df4; +uint upos; +float fpos; + +PS_OUTPUT main() +{ + int MipLevel; + + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + int WidthI; + int HeightI; + int ElementsI; + int DepthI; + int NumberOfLevelsI; + int NumberOfSamplesI; + + saturate(fpos); + + // Test output promotions + g_tTex1df4 . GetDimensions(WidthI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); + + // max(i2, f2); + PS_OUTPUT ps_output; + ps_output.color = 0; + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.intrinsics.vert b/deps/glslang/glslang/Test/hlsl.intrinsics.vert new file mode 100644 index 0000000000..c442f16a50 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.intrinsics.vert @@ -0,0 +1,414 @@ +float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(7); + degrees(inF0); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); + log(inF0); + log10(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + pow(inF0, inF1); + radians(inF0); + reversebits(2); + round(inF0); + rsqrt(inF0); + saturate(inF0); + sign(inF0); + sin(inF0); + sincos(inF0, inF1, inF2); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + return 0.0; +} + +float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int2(7,3)); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); + length(inF0); + log(inF0); + log10(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int2(1,2)); + round(inF0); + rsqrt(inF0); + saturate(inF0); + sign(inF0); + sin(inF0); + sincos(inF0, inF1, inF2); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float2(1,2); +} + +float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int3(7,3,5)); + cross(inF0, inF1); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); + length(inF0); + log(inF0); + log10(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int3(1,2,3)); + round(inF0); + rsqrt(inF0); + saturate(inF0); + sign(inF0); + sin(inF0); + sincos(inF0, inF1, inF2); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float3(1,2,3); +} + +float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int4(7,3,5,2)); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + 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); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); + length(inF0); + log(inF0); + log10(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int4(1,2,3,4)); + round(inF0); + rsqrt(inF0); + saturate(inF0); + sign(inF0); + sin(inF0); + sincos(inF0, inF1, inF2); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float4(1,2,3,4); +} + +// TODO: for mats: +// asfloat(inU0); \ +// asint(inF0); \ +// asuint(inF0); \ + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + all(inF0); \ + abs(inF0); \ + acos(inF0); \ + any(inF0); \ + asin(inF0); \ + atan(inF0); \ + atan2(inF0, inF1); \ + ceil(inF0); \ + clamp(inF0, inF1, inF2); \ + cos(inF0); \ + cosh(inF0); \ + degrees(inF0); \ + determinant(inF0); \ + exp(inF0); \ + exp2(inF0); \ + firstbithigh(7); \ + firstbitlow(7); \ + floor(inF0); \ + fmod(inF0, inF1); \ + frac(inF0); \ + ldexp(inF0, inF1); \ + lerp(inF0, inF1, inF2); \ + 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); + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS(); + + // TODO: ... add when float1 prototypes are generated + return float2x2(2,2,2,2); +} + +float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS(); + + // TODO: ... add when float1 prototypes are generated + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS(); + + // TODO: ... add when float1 prototypes are generated + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} + +#define TESTGENMUL(ST, VT, MT) \ + ST r0 = mul(inF0, inF1); \ + VT r1 = mul(inFV0, inF0); \ + VT r2 = mul(inF0, inFV0); \ + ST r3 = mul(inFV0, inFV1); \ + VT r4 = mul(inFM0, inFV0); \ + VT r5 = mul(inFV0, inFM0); \ + MT r6 = mul(inFM0, inF0); \ + MT r7 = mul(inF0, inFM0); \ + MT r8 = mul(inFM0, inFM1); + + +void TestGenMul2(float inF0, float inF1, + float2 inFV0, float2 inFV1, + float2x2 inFM0, float2x2 inFM1) +{ + TESTGENMUL(float, float2, float2x2); +} + +void TestGenMul3(float inF0, float inF1, + float3 inFV0, float3 inFV1, + float3x3 inFM0, float3x3 inFM1) +{ + TESTGENMUL(float, float3, float3x3); +} + +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/deps/glslang/glslang/Test/hlsl.isfinite.frag b/deps/glslang/glslang/Test/hlsl.isfinite.frag new file mode 100644 index 0000000000..6e40f6a8e3 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.isfinite.frag @@ -0,0 +1,18 @@ + +uniform float f; +uniform float2 f2; +uniform float3 f3; + +bool test1(float v) +{ + return !isnan(v) && isfinite(v); +} + +float4 main() : SV_Target0 +{ + isfinite(f); + isfinite(f2); + isfinite(f3); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.layout.frag b/deps/glslang/glslang/Test/hlsl.layout.frag new file mode 100644 index 0000000000..a4fa5af258 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.layout.frag @@ -0,0 +1,19 @@ +layout(set=3,binding=5) tbuffer tbufName { + layout(offset = 16) float4 v1; +}; + +layout(push_constant) tbuffer tbufName2 { + float4 v5; +}; + +layout(constant_id=17) const int specConst = 10; + +tbuffer tbufName2 : layout(set=4,binding=7) { + layout(offset = 16) float4 v1PostLayout; +}; + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + float4 layout = 2.0; + return input + v1 + v5 + v1PostLayout * layout; +} diff --git a/deps/glslang/glslang/Test/hlsl.layoutOverride.vert b/deps/glslang/glslang/Test/hlsl.layoutOverride.vert new file mode 100644 index 0000000000..4c006018bc --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.layoutOverride.vert @@ -0,0 +1,7 @@ +layout(set=2,binding=0) Texture2D tex : register(t16); +SamplerState samp; + +float4 main() : SV_Position +{ + return tex.Sample(samp, float2(0.2, 0.3)); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.load.2dms.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.2dms.dx10.frag new file mode 100644 index 0000000000..29974f58e0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.2dms.dx10.frag @@ -0,0 +1,56 @@ +SamplerState g_sSamp : register(s0); + +Texture2DMS g_tTex2dmsf4; +Texture2DMS g_tTex2dmsi4; +Texture2DMS g_tTex2dmsu4; + +Texture2DMSArray g_tTex2dmsf4a; +Texture2DMSArray g_tTex2dmsi4a; +Texture2DMSArray g_tTex2dmsu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 2DMS, no offset + g_tTex2dmsf4.Load(c2, 3); + g_tTex2dmsi4.Load(c2, 3); + g_tTex2dmsu4.Load(c2, 3); + + // 2DMS, offset + g_tTex2dmsf4.Load(c2, 3, o2); + g_tTex2dmsi4.Load(c2, 3, o2); + g_tTex2dmsu4.Load(c2, 3, o2); + + // 2DMSArray, no offset + g_tTex2dmsf4a.Load(c3, 3); + g_tTex2dmsi4a.Load(c3, 3); + g_tTex2dmsu4a.Load(c3, 3); + + // 2DMSArray, offset + g_tTex2dmsf4a.Load(c3, 3, o2); + g_tTex2dmsi4a.Load(c3, 3, o2); + g_tTex2dmsu4a.Load(c3, 3, o2); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} + diff --git a/deps/glslang/glslang/Test/hlsl.load.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.array.dx10.frag new file mode 100644 index 0000000000..253de3e261 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.array.dx10.frag @@ -0,0 +1,71 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + g_tTex1df4a.Load(c3); + g_tTex1di4a.Load(c3); + g_tTex1du4a.Load(c3); + + // 2DArray + g_tTex2df4a.Load(c4); + g_tTex2di4a.Load(c4); + g_tTex2du4a.Load(c4); + + // Offset has no Cube or CubeArray forms + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.basic.dx10.frag new file mode 100644 index 0000000000..abb594e3a5 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.basic.dx10.frag @@ -0,0 +1,76 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c2); + g_tTex1di4.Load(c2); + g_tTex1du4.Load(c2); + + // 2D + g_tTex2df4.Load(c3); + g_tTex2di4.Load(c3); + g_tTex2du4.Load(c3); + + // 3D + g_tTex3df4.Load(c4); + g_tTex3di4.Load(c4); + g_tTex3du4.Load(c4); + + // Offset has no Cube or CubeArray forms + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.basic.dx10.vert b/deps/glslang/glslang/Test/hlsl.load.basic.dx10.vert new file mode 100644 index 0000000000..750b98401c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.basic.dx10.vert @@ -0,0 +1,70 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + // 1D + g_tTex1df4.Load(c2); + g_tTex1di4.Load(c2); + g_tTex1du4.Load(c2); + + // 2D + g_tTex2df4.Load(c3); + g_tTex2di4.Load(c3); + g_tTex2du4.Load(c3); + + // 3D + g_tTex3df4.Load(c4); + g_tTex3di4.Load(c4); + g_tTex3du4.Load(c4); + + // Offset has no Cube or CubeArray forms + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.buffer.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.buffer.dx10.frag new file mode 100644 index 0000000000..60a61df67d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.buffer.dx10.frag @@ -0,0 +1,38 @@ +uniform Buffer g_tTexbf4_test : register(t0); + +Buffer g_tTexbf4; // default is float4 +Buffer g_tTexbi4; +Buffer g_tTexbu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Buffer + float4 r00 = g_tTexbf4.Load(c1); + int4 r01 = g_tTexbi4.Load(c1); + uint4 r02 = g_tTexbu4.Load(c1); + + // TODO: other types that can be put in sampler buffers, like float2x2, and float3. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.buffer.float.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.buffer.float.dx10.frag new file mode 100644 index 0000000000..eeea9a63e2 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.buffer.float.dx10.frag @@ -0,0 +1,38 @@ +uniform Buffer g_tTexbfs_test : register(t0); + +Buffer g_tTexbfs; +Buffer g_tTexbis; +Buffer g_tTexbus; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Buffer + float r00 = g_tTexbfs.Load(c1); + int r01 = g_tTexbis.Load(c1); + uint r02 = g_tTexbus.Load(c1); + + // TODO: other types that can be put in sampler buffers, like float2x2, and float3. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.offset.dx10.frag new file mode 100644 index 0000000000..bc946eead7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.offset.dx10.frag @@ -0,0 +1,76 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c2, o1); + g_tTex1di4.Load(c2, o1); + g_tTex1du4.Load(c2, o1); + + // 2D + g_tTex2df4.Load(c3, o2); + g_tTex2di4.Load(c3, o2); + g_tTex2du4.Load(c3, o2); + + // 3D + g_tTex3df4.Load(c4, o3); + g_tTex3di4.Load(c4, o3); + g_tTex3du4.Load(c4, o3); + + // Offset has no Cube or CubeArray forms + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.offsetarray.dx10.frag new file mode 100644 index 0000000000..12b6a9e5a2 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.offsetarray.dx10.frag @@ -0,0 +1,69 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + g_tTex1df4a.Load(c3, o1); + g_tTex1di4a.Load(c3, o1); + g_tTex1du4a.Load(c3, o1); + + // 2DArray + g_tTex2df4a.Load(c4, o2); + g_tTex2di4a.Load(c4, o2); + g_tTex2du4a.Load(c4, o2); + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.rwbuffer.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.rwbuffer.dx10.frag new file mode 100644 index 0000000000..accd5f0c1e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.rwbuffer.dx10.frag @@ -0,0 +1,32 @@ + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + g_tBuffF.Load(c1); + g_tBuffU.Load(c1); + g_tBuffI.Load(c1); + + psout.Color = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.rwtexture.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.rwtexture.array.dx10.frag new file mode 100644 index 0000000000..38e290962b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.rwtexture.array.dx10.frag @@ -0,0 +1,57 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4a.Load(c2); + g_tTex1di4a.Load(c2); + g_tTex1du4a.Load(c2); + + // 2D + g_tTex2df4a.Load(c3); + g_tTex2di4a.Load(c3); + g_tTex2du4a.Load(c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.load.rwtexture.dx10.frag b/deps/glslang/glslang/Test/hlsl.load.rwtexture.dx10.frag new file mode 100644 index 0000000000..c09507766f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.load.rwtexture.dx10.frag @@ -0,0 +1,62 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c1); + g_tTex1di4.Load(c1); + g_tTex1du4.Load(c1); + + // 2D + g_tTex2df4.Load(c2); + g_tTex2di4.Load(c2); + g_tTex2du4.Load(c2); + + // 3D + g_tTex3df4.Load(c3); + g_tTex3di4.Load(c3); + g_tTex3du4.Load(c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.localStructuredBuffer.comp b/deps/glslang/glslang/Test/hlsl.localStructuredBuffer.comp new file mode 100644 index 0000000000..34e06e001e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.localStructuredBuffer.comp @@ -0,0 +1,4 @@ +RWStructuredBuffer srt0; +void main() { + RWStructuredBuffer srt0Local = srt0; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.logical.binary.frag b/deps/glslang/glslang/Test/hlsl.logical.binary.frag new file mode 100644 index 0000000000..06bc9f2f05 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.logical.binary.frag @@ -0,0 +1,21 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + if (ival && fval); + if (ival || fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/deps/glslang/glslang/Test/hlsl.logical.binary.vec.frag b/deps/glslang/glslang/Test/hlsl.logical.binary.vec.frag new file mode 100644 index 0000000000..e94c8f5b03 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.logical.binary.vec.frag @@ -0,0 +1,24 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool4 b4a, b4b; +uniform bool b1a, b1b; + +PS_OUTPUT main() +{ + bool4 r00 = !b4a; + bool4 r01 = b4a && b4b; // vec, vec + bool4 r02 = b4a || b4b; // vec, vec + + bool4 r10 = b1a && b4b; // scalar, vec + bool4 r11 = b1a || b4b; // scalar, vec + + bool4 r20 = b4a && b1b; // vec, scalar + bool4 r21 = b4a || b1b; // vec, scalar + + PS_OUTPUT psout; + psout.Color = r00 || r01 || r02 || r10 || r11 || r20 || r21; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.logical.unary.frag b/deps/glslang/glslang/Test/hlsl.logical.unary.frag new file mode 100644 index 0000000000..cbcb3bfc41 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.logical.unary.frag @@ -0,0 +1,29 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + !ival; // scalar int + !ival4; // vector int + + !fval; // scalar float + !fval4; // vector float + + if (ival); + if (fval); + if (!ival); + if (!fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/deps/glslang/glslang/Test/hlsl.logicalConvert.frag b/deps/glslang/glslang/Test/hlsl.logicalConvert.frag new file mode 100644 index 0000000000..b353eb1eed --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.logicalConvert.frag @@ -0,0 +1,23 @@ +float4 main() : SV_TARGET +{ + if (!(0) && (0) || (!1)) + return 0.0.xxxx; + if (0) + return 0.0.xxxx; + if (!(bool)0) + return 0.0.xxxx; + if (!0) + return 0.0.xxxx; + if (!(bool)1) + return 0.0.xxxx; + if (!1) + return 0.0.xxxx; + if (0 || 1) + return 0.0.xxxx; + if (1 && 0) + return 0.0.xxxx; + if (1 || false) + return 0.0.xxxx; + if (true && 1) + return 0.0.xxxx; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.loopattr.frag b/deps/glslang/glslang/Test/hlsl.loopattr.frag new file mode 100644 index 0000000000..5b4d374f5f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.loopattr.frag @@ -0,0 +1,14 @@ + +float4 main() : SV_Target0 +{ + // Unroll hint + [unroll(5) ] for (int x=0; x<5; ++x); + + // Don't unroll hint + [loop] for (int y=0; y<5; ++y); + + // No hint + for (int z=0; z<5; ++z); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.matNx1.frag b/deps/glslang/glslang/Test/hlsl.matNx1.frag new file mode 100644 index 0000000000..515bd47074 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matNx1.frag @@ -0,0 +1,31 @@ + +void TestMatNx1() +{ + float1x1 f1x1; + float2x1 f2x1; + float3x1 f3x1; + float4x1 f4x1; + + float1x2 f1x2; + float1x3 f1x3; + float1x4 f1x4; + + float1x1 r00 = transpose(f1x1); + float1x2 r01 = transpose(f2x1); + float1x3 r02 = transpose(f3x1); + float1x4 r03 = transpose(f4x1); + + float1x1 r10 = transpose(f1x1); + float2x1 r11 = transpose(f1x2); + float3x1 r12 = transpose(f1x3); + float4x1 r13 = transpose(f1x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.matType.bool.frag b/deps/glslang/glslang/Test/hlsl.matType.bool.frag new file mode 100644 index 0000000000..e4a62e36c6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matType.bool.frag @@ -0,0 +1,53 @@ + +void TestBoolMatTypes() +{ + bool1x1 b1x1; + bool2x1 b2x1; + bool3x1 b3x1; + bool4x1 b4x1; + + bool1x2 b1x2; + bool2x2 b2x2; + bool3x2 b3x2; + bool4x2 b4x2; + + bool1x3 b1x3; + bool2x3 b2x3; + bool3x3 b3x3; + bool4x3 b4x3; + + bool1x4 b1x4; + bool2x4 b2x4; + bool3x4 b3x4; + bool4x4 b4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + bool1x1 r00 = transpose(b1x1); + bool1x2 r01 = transpose(b2x1); + bool1x3 r02 = transpose(b3x1); + bool1x4 r03 = transpose(b4x1); + + bool2x1 r10 = transpose(b1x2); + bool2x2 r11 = transpose(b2x2); + bool2x3 r12 = transpose(b3x2); + bool2x4 r13 = transpose(b4x2); + + bool3x1 r20 = transpose(b1x3); + bool3x2 r21 = transpose(b2x3); + bool3x3 r22 = transpose(b3x3); + bool3x4 r23 = transpose(b4x3); + + bool4x1 r30 = transpose(b1x4); + bool4x2 r31 = transpose(b2x4); + bool4x3 r32 = transpose(b3x4); + bool4x4 r33 = transpose(b4x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.matType.frag b/deps/glslang/glslang/Test/hlsl.matType.frag new file mode 100644 index 0000000000..ee7c047635 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matType.frag @@ -0,0 +1,11 @@ +float1 f1 = float1(1.0); +float1x1 fmat11; +float4x1 fmat41; +float1x2 fmat12; +double2x3 dmat23; +int4x4 int44; + +float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0 +{ + return inFloat1; +} diff --git a/deps/glslang/glslang/Test/hlsl.matType.int.frag b/deps/glslang/glslang/Test/hlsl.matType.int.frag new file mode 100644 index 0000000000..09e9f2ad57 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matType.int.frag @@ -0,0 +1,97 @@ + +void TestIntMatTypes() +{ + int1x1 i1x1; + int2x1 i2x1; + int3x1 i3x1; + int4x1 i4x1; + + int1x2 i1x2; + int2x2 i2x2; + int3x2 i3x2; + int4x2 i4x2; + + int1x3 i1x3; + int2x3 i2x3; + int3x3 i3x3; + int4x3 i4x3; + + int1x4 i1x4; + int2x4 i2x4; + int3x4 i3x4; + int4x4 i4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + int1x1 r00 = transpose(i1x1); + int1x2 r01 = transpose(i2x1); + int1x3 r02 = transpose(i3x1); + int1x4 r03 = transpose(i4x1); + + int2x1 r10 = transpose(i1x2); + int2x2 r11 = transpose(i2x2); + int2x3 r12 = transpose(i3x2); + int2x4 r13 = transpose(i4x2); + + int3x1 r20 = transpose(i1x3); + int3x2 r21 = transpose(i2x3); + int3x3 r22 = transpose(i3x3); + int3x4 r23 = transpose(i4x3); + + int4x1 r30 = transpose(i1x4); + int4x2 r31 = transpose(i2x4); + int4x3 r32 = transpose(i3x4); + int4x4 r33 = transpose(i4x4); +} + +void TestUintMatTypes() +{ + uint1x1 u1x1; + uint2x1 u2x1; + uint3x1 u3x1; + uint4x1 u4x1; + + uint1x2 u1x2; + uint2x2 u2x2; + uint3x2 u3x2; + uint4x2 u4x2; + + uint1x3 u1x3; + uint2x3 u2x3; + uint3x3 u3x3; + uint4x3 u4x3; + + uint1x4 u1x4; + uint2x4 u2x4; + uint3x4 u3x4; + uint4x4 u4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + uint1x1 r00 = transpose(u1x1); + uint1x2 r01 = transpose(u2x1); + uint1x3 r02 = transpose(u3x1); + uint1x4 r03 = transpose(u4x1); + + uint2x1 r10 = transpose(u1x2); + uint2x2 r11 = transpose(u2x2); + uint2x3 r12 = transpose(u3x2); + uint2x4 r13 = transpose(u4x2); + + uint3x1 r20 = transpose(u1x3); + uint3x2 r21 = transpose(u2x3); + uint3x3 r22 = transpose(u3x3); + uint3x4 r23 = transpose(u4x3); + + uint4x1 r30 = transpose(u1x4); + uint4x2 r31 = transpose(u2x4); + uint4x3 r32 = transpose(u3x4); + uint4x4 r33 = transpose(u4x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/deps/glslang/glslang/Test/hlsl.matpack-1.frag b/deps/glslang/glslang/Test/hlsl.matpack-1.frag new file mode 100644 index 0000000000..5d02a3e464 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matpack-1.frag @@ -0,0 +1,27 @@ +struct MyBuffer1 +{ + column_major float4x4 mat1; + row_major float4x4 mat2; + float4 vec1; + float foo; +}; + +struct MyBuffer2 +{ + row_major float4x4 mat1; + float4 vec1; +}; + +cbuffer Example +{ + MyBuffer1 g_MyBuffer1; + MyBuffer2 g_MyBuffer2; + column_major float4x4 mat1a; +}; + +float4 main() : SV_Target0 +{ + return mul(g_MyBuffer1.mat1, g_MyBuffer1.vec1) + + mul(g_MyBuffer2.mat1, g_MyBuffer2.vec1); +} + diff --git a/deps/glslang/glslang/Test/hlsl.matpack-pragma.frag b/deps/glslang/glslang/Test/hlsl.matpack-pragma.frag new file mode 100644 index 0000000000..a9a283354f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matpack-pragma.frag @@ -0,0 +1,33 @@ +#pragma pack_matrix(row_major) + +struct MyBuffer1 +{ + column_major float4x4 mat1; + row_major float4x4 mat2; + /*floating*/ float4x4 mat3; +}; + +#pragma pack_matrix(column_major) + +struct MyBuffer2 +{ + column_major float4x4 mat1; + row_major float4x4 mat2; + /*floating*/ float4x4 mat3; +}; + +#pragma pack_matrix(random_string_foo) + +cbuffer Example +{ + MyBuffer1 g_MyBuffer1; + MyBuffer2 g_MyBuffer2; + column_major float4x4 mat1a; +}; + +float4 main() : SV_Target0 +{ + return + g_MyBuffer1.mat1[0] + g_MyBuffer1.mat2[0] + g_MyBuffer1.mat3[0] + + g_MyBuffer2.mat1[0] + g_MyBuffer2.mat2[0] + g_MyBuffer2.mat3[0]; +} diff --git a/deps/glslang/glslang/Test/hlsl.matrixSwizzle.vert b/deps/glslang/glslang/Test/hlsl.matrixSwizzle.vert new file mode 100644 index 0000000000..c06996b31f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matrixSwizzle.vert @@ -0,0 +1,33 @@ +void ShaderFunction(float inf) : COLOR0 +{ + float3x4 m; + + // tests that convert to non-matrix swizzles + + m._34 = 1.0; // AST should have a normal component select + m._m23 = 2.0; // same code + m[2][3] = 2.0; // same code + + m._11_12_13_14 = float4(3.0); // AST should have normal column selection (first row) + m._m10_m11_m12_m13 = float4(3.0); // AST should have normal column selection (second row) + m[1] = float4(3.0); // same code + + // tests that stay as matrix swizzles + + float3 f3; + m._11_22_23 = f3; + m._21_12_31 = float3(5.0); + m._11_12_21 = 2 * f3; + + // r-value + f3 = m._21_12_31; +} + +float3x3 createMat3x3(float3 a, float3 b, float3 c) +{ + float3x3 m; + m._11_21_31 = a; + m._12_22_32 = b; + m._13_23_33 = c; + return m; +} diff --git a/deps/glslang/glslang/Test/hlsl.matrixindex.frag b/deps/glslang/glslang/Test/hlsl.matrixindex.frag new file mode 100644 index 0000000000..f352c0e556 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.matrixindex.frag @@ -0,0 +1,49 @@ +uniform int idx; +uniform float3x2 um; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + // matrices of 3 rows, 2 columns (regardless of row vs col major storage) + const float3x2 m1 = { { 10, 11 }, // row-wise initialization + { 12, 13 }, + { 14, 15 } }; + + const float3x2 m2 = { 20, 21, 22, 23, 24, 25 }; // component-wise matrix initialization is allowed + const float3x2 m3 = { 30, 31, 33, 33, 34, 35 }; // component-wise matrix initialization is allowed + + // These can be observed in the AST post-const folding to ensure we obtain the right value, + // as given in comments to the right of each line. Note that the first indirection into a + // matrix returns a row vector. + float e1_00 = m1[0][0]; // 10 + float e1_01 = m1[0][1]; // 11 + float e1_10 = m1[1][0]; // 12 + float e1_11 = m1[1][1]; // 13 + float e1_20 = m1[2][0]; // 14 + float e1_21 = m1[2][1]; // 15 + + float e2_00 = m2[0][0]; // 20 + float e2_01 = m2[0][1]; // 21 + float e2_10 = m2[1][0]; // 22 + float e2_11 = m2[1][1]; // 23 + float e2_20 = m2[2][0]; // 24 + float e2_21 = m2[2][1]; // 25 + + // float e3a_00 = m3._m00; // TODO... also as an lvalue for a non-const matrix + // float e3b_00 = m3._11; // TODO... also as an lvalue for a non-const matrix + + float2 r0a = m1[0]; // row0: 10,11: types must match: constant index into constant + float2 r1a = m1[1]; // row1: 12,13: ... + float2 r2a = m1[2]; // row2: 14,15: ... + + float2 r0b = m2[idx]; // types should match: variable index into constant + float2 r0c = um[idx]; // types should match: variable index into variable + + PS_OUTPUT psout; + psout.Color = e2_11; // 23 + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.max.frag b/deps/glslang/glslang/Test/hlsl.max.frag new file mode 100644 index 0000000000..6d1ea0b129 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.max.frag @@ -0,0 +1,4 @@ +float4 PixelShaderFunction(float4 input1, float4 input2) : COLOR0 +{ + return max(input1, input2); +} diff --git a/deps/glslang/glslang/Test/hlsl.memberFunCall.frag b/deps/glslang/glslang/Test/hlsl.memberFunCall.frag new file mode 100644 index 0000000000..27d3f6e017 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.memberFunCall.frag @@ -0,0 +1,16 @@ +float method3(float a) { return 1.0; } + +struct myContext { + float method1() { return method2(); } + float method2() { return method3(1.0); } + float method3(float a) { return method4(a, a); } + float method4(float a, float b) { return a + b + f; } + float f; +}; + +float4 main() : SV_TARGET0 +{ + myContext context; + context.f = 3.0; + return (float4)context.method1(); +} diff --git a/deps/glslang/glslang/Test/hlsl.mintypes.frag b/deps/glslang/glslang/Test/hlsl.mintypes.frag new file mode 100644 index 0000000000..ad47e68e3b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.mintypes.frag @@ -0,0 +1,49 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform min16float b1a, b1b; + +PS_OUTPUT main() +{ + min16float mf16; + min16float1 mf16_1; + min16float2 mf16_2; + min16float3 mf16_3; + min16float4 mf16_4; + + min10float mf10; + min10float1 mf10_1; + min10float2 mf10_2; + min10float3 mf10_3; + min10float4 mf12_4; + + min16int mi16; + min16int1 mi16_1; + min16int2 mi16_2; + min16int3 mi16_3; + min16int4 mi16_4; + + min12int mi12; + min12int1 mi12_1; + min12int2 mi12_2; + min12int3 mi12_3; + min12int4 mi12_4; + + min16uint mu16; + min16uint1 mu16_1; + min16uint2 mu16_2; + min16uint3 mu16_3; + min16uint4 mu16_4; + + mf16_2 + mf16; + mf10_2 + mf10; + mi16_2 + mi16; + mi12_2 + mi12; + mu16_2 + mu16; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.mip.negative.frag b/deps/glslang/glslang/Test/hlsl.mip.negative.frag new file mode 100644 index 0000000000..900d385063 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.mip.negative.frag @@ -0,0 +1,9 @@ +Texture2D g_tTex2df4; + +float4 main() : SV_Target0 +{ + g_tTex2df4.mips.mips[2][uint2(3, 4)]; // error to chain like this + + return 0; +} + diff --git a/deps/glslang/glslang/Test/hlsl.mip.negative2.frag b/deps/glslang/glslang/Test/hlsl.mip.negative2.frag new file mode 100644 index 0000000000..c07179eb28 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.mip.negative2.frag @@ -0,0 +1,9 @@ +Texture2D g_tTex2df4; + +float4 main() : SV_Target0 +{ + g_tTex2df4.r[2][uint2(3, 4)]; // '.r' not valid on texture object + + return 0; +} + diff --git a/deps/glslang/glslang/Test/hlsl.mip.operator.frag b/deps/glslang/glslang/Test/hlsl.mip.operator.frag new file mode 100644 index 0000000000..af4f150136 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.mip.operator.frag @@ -0,0 +1,14 @@ +Texture2DArray g_tTex2df4a; +Texture2D g_tTex2df4; + +float4 main() : SV_Target0 +{ + return g_tTex2df4.mips[2][uint2(3, 4)] + + + // test float->uint cast on the mip arg + g_tTex2df4a.mips[5.2][uint3(6, 7, 8)] + + + // Test nesting involving .mips operators: + // ....outer operator mip level...... .....outer operator coordinate.... + g_tTex2df4.mips[ g_tTex2df4.mips[9][uint2(10,11)][0] ][ g_tTex2df4.mips[13][uint2(14,15)].xy ]; +} diff --git a/deps/glslang/glslang/Test/hlsl.mul-truncate.frag b/deps/glslang/glslang/Test/hlsl.mul-truncate.frag new file mode 100644 index 0000000000..7ce2c22dbf --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.mul-truncate.frag @@ -0,0 +1,38 @@ + +// Test v*v, v*m, m*v, and m*m argument clamping. + +cbuffer Matrix +{ + float4x4 m44; + float4x3 m43; + float3x4 m34; + float3x3 m33; + float2x4 m24; + float4x2 m42; + float4 v4; + float3 v3; + float2 v2; +} + +float4 main() : SV_Target0 +{ + // v*v: + float r00 = mul(v2, v3); // float = float2*float3; // clamp to float2 dot product + float r01 = mul(v4, v2); // float = float4*float2; // clamp to float2 dot product + + // v*m + float4 r10 = mul(v3, m44); // float4 = float3 * float4x4; // clamp mat to float3x4; + float4 r11 = mul(v4, m34); // truncate vector to vec3 + + // m*v + float4 r20 = mul(m44, v3); // float4 = float4x4 * float3; // clamp mat to float4x3; + float4 r21 = mul(m43, v4); // truncate vector to vec3 + + // m*m + float2x3 r30 = mul(m24, m33); // float2x3 = float2x4 * float3x3; + float3x4 r31 = mul(m33, m24); // float3x4 = float3x3 * float2x4; + float3x2 r32 = mul(m33, m42); // float3x2 = float3x3 * float4x2; + float4x3 r33 = mul(m42, m33); // float4x3 = float4x2 * float3x3; + + return r10 + r11 + r20 + r21 + r00 + r01 + r30[0].x + r31[0] + r32[0].x + transpose(r33)[0]; +} diff --git a/deps/glslang/glslang/Test/hlsl.multiDescriptorSet.frag b/deps/glslang/glslang/Test/hlsl.multiDescriptorSet.frag new file mode 100644 index 0000000000..6c4be21ef3 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.multiDescriptorSet.frag @@ -0,0 +1,45 @@ +Texture2D txDiffuseA : register( t0 ); +Texture2D txDiffuseB : register( t1 ); + +SamplerState samLinearA : register( s0 ); +SamplerState samLinearB : register( s1 ); + +cbuffer cbNeverChanges : register( b0 ) +{ + matrix View; +}; + +cbuffer cbChangeOnResize : register( b1 ) +{ + matrix Projection; +}; + +cbuffer cbChangesEveryFrame : register( b2 ) +{ + matrix World; + float4 vMeshColor; +}; + + +struct VS_INPUT +{ + float4 Pos : POSITION; + float2 Tex : TEXCOORD0; +}; + +struct PS_INPUT +{ + float4 Pos : SV_POSITION; + float2 Tex : TEXCOORD0; +}; + + +float4 main( PS_INPUT input) : SV_Target +{ + PS_INPUT output = (PS_INPUT)0; + output.Pos = mul( input.Pos, World ); + output.Pos = mul( output.Pos, View ); + output.Pos = mul( output.Pos, Projection ); + output.Tex = input.Tex; + return txDiffuseA.Sample( samLinearA, output.Tex ) * vMeshColor; +} diff --git a/deps/glslang/glslang/Test/hlsl.multiEntry.vert b/deps/glslang/glslang/Test/hlsl.multiEntry.vert new file mode 100644 index 0000000000..d155c26d1e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.multiEntry.vert @@ -0,0 +1,11 @@ +Buffer Position; + +float4 FakeEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION +{ + return Position.Load(Index); +} + +float4 RealEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION +{ + return FakeEntrypoint(Index); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.multiReturn.frag b/deps/glslang/glslang/Test/hlsl.multiReturn.frag new file mode 100644 index 0000000000..fdab772109 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.multiReturn.frag @@ -0,0 +1,19 @@ +struct S { + float f; + float3 v; + float3x3 m; +}; + +cbuffer bufName { + S s; +}; + +S foo() +{ + return s; +} + +void main() +{ + foo(); +} diff --git a/deps/glslang/glslang/Test/hlsl.namespace.frag b/deps/glslang/glslang/Test/hlsl.namespace.frag new file mode 100644 index 0000000000..76c3062d6a --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.namespace.frag @@ -0,0 +1,23 @@ +static float4 v1; +static float4 v2; + +namespace N1 { + float4 getVec() { return v1; } +} + +namespace N2 { + static float gf; + float4 getVec() { return v2; } + namespace N3 { + float4 getVec() { return v2; } + + class C1 { + float4 getVec() { return v2; } + }; + } +} + +float4 main() : SV_Target0 +{ + return N1::getVec() + N2::getVec() + N2::N3::getVec() + N2::N3::C1::getVec() * N2::gf; +} diff --git a/deps/glslang/glslang/Test/hlsl.noSemantic.functionality1.comp b/deps/glslang/glslang/Test/hlsl.noSemantic.functionality1.comp new file mode 100644 index 0000000000..ac9a7a9321 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.noSemantic.functionality1.comp @@ -0,0 +1,7 @@ +AppendStructuredBuffer Buf : register(u0); + +[numthreads(1, 1, 1)] +void main() +{ + Buf.Append(1.0f.xxxx); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.nonint-index.frag b/deps/glslang/glslang/Test/hlsl.nonint-index.frag new file mode 100644 index 0000000000..c7a751e306 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.nonint-index.frag @@ -0,0 +1,9 @@ +static const float array[3] = { 1, 2, 3 }; + +float main(float input : IN) : SV_Target0 +{ + // non-integer indexes get converted to uints: + // uint(input) 3.0 2.0 1.0 + return array[input] + array[2.0] + array[true] + array[false]; +} + diff --git a/deps/glslang/glslang/Test/hlsl.nonstaticMemberFunction.frag b/deps/glslang/glslang/Test/hlsl.nonstaticMemberFunction.frag new file mode 100644 index 0000000000..3655ed0f9f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.nonstaticMemberFunction.frag @@ -0,0 +1,35 @@ +static float2 i = float2(1.0, 2.0); + +struct type1 +{ + void setmem(float4 m) { memVar = m; } + void seti(int si) { i = si; } + float4 memVar; + float4 memFun(float4 a) : SV_Position + { + return i * a + memVar; + } + int memFun(int a) : SV_Position + { + return i + a - memVar.z; + } + int i; +}; + +static float2 j = i; + +struct type2 +{ + float2 memFun() { return i; } +}; + +float4 main() : SV_Target0 +{ + type1 test; + test.setmem(float4(2.0,2.0,2.0,2.0)); + test.seti(17); + float4 f4 = float4(1.0,1.0,1.0,1.0); + f4 += test.memFun(float4(5.0f,5.0f,5.0f,5.0f)); + f4 += test.memFun(7); + return f4; +} diff --git a/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag b/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag new file mode 100644 index 0000000000..bccb786da0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.numericsuffixes.frag @@ -0,0 +1,24 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + // Test numeric suffixes + float r00 = 1.0f; // float + uint r01 = 1u; // lower uint + uint r02 = 2U; // upper uint + uint r03 = 0xabcu; // lower hex uint + uint r04 = 0xABCU; // upper hex uint (upper 0X is not accepted) + int r05 = 5l; // lower long int + int r06 = 6L; // upper long int + int r07 = 071; // octal + uint r08 = 072u; // unsigned octal + float r09 = 1.h; // half + float r10 = 1.H; // half + float r11 = 1.1h; // half + float r12 = 1.1H; // half + + PS_OUTPUT ps_output; + ps_output.color = r07; // gets 71 octal = 57 decimal + return ps_output; +} diff --git a/deps/glslang/glslang/Test/hlsl.numthreads.comp b/deps/glslang/glslang/Test/hlsl.numthreads.comp new file mode 100644 index 0000000000..0871d3f746 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.numthreads.comp @@ -0,0 +1,11 @@ + +[numthreads(8,8,1)] +void main(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numthreads(1,4,8)] +void main_aux2(uint3 tid : SV_DispatchThreadID ) +{ +} + diff --git a/deps/glslang/glslang/Test/hlsl.opaque-type-bug.frag b/deps/glslang/glslang/Test/hlsl.opaque-type-bug.frag new file mode 100644 index 0000000000..f4ccaea290 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.opaque-type-bug.frag @@ -0,0 +1,16 @@ + +Texture2D MyTexture : register(t0); + +//---------------------------------------------------------------------------------------- +void TexFunc(in const Texture2D t2D, out float3 RGB) +{ + RGB = 0; +} + +//----------------------------------------------------------------------------------- +void main() +{ + float3 final_RGB; + + TexFunc(MyTexture, final_RGB); +} diff --git a/deps/glslang/glslang/Test/hlsl.overload.frag b/deps/glslang/glslang/Test/hlsl.overload.frag new file mode 100644 index 0000000000..b5ddf49322 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.overload.frag @@ -0,0 +1,142 @@ +// function selection under type conversion +void foo1(double a, bool b) {} +void foo1(double a, uint b) {} +void foo1(double a, int b) {} +void foo1(double a, float b) {} +void foo1(double a, double b){} + +// uint -> int +void foo2(int a, bool b) {} +void foo2(int a, uint b) {} +void foo2(int a, int b) {} +void foo2(int a, float b) {} +void foo2(int a, double b){} + +// everything can promote +void foo3(bool b) {} +void foo4(uint b) {} +void foo5(int b) {} +void foo6(float b) {} +void foo7(double b){} + +// shorter forward chain better than longer or backward chain +void foo8(float) {} +void foo8(double) {} +void foo9(int) {} +void foo9(uint) {} +void foo10(bool) {} +void foo10(int) {} + +// shape change is worse +void foo11(float3) {} +void foo11(double) {} +void foo11(int3) {} +void foo11(uint) {} +void foo12(float1) {} +void foo12(double3) {} +void foo16(uint) {} +void foo16(uint2) {} + +// shape change +void foo13(float3) {} +void foo14(int1) {} +void foo15(bool1) {} + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + bool b; + double d; + uint u; + int i; + float f; + + foo1(d, b); + foo1(d, d); + foo1(d, u); + foo1(d, i); + foo1(d, f); + + foo1(f, b); + foo1(f, d); + foo1(f, u); + foo1(f, i); + foo1(f, f); + + foo1(u, b); + foo1(u, d); + foo1(u, u); + foo1(u, i); + foo1(u, f); + + foo1(i, b); + foo1(i, d); + foo1(i, u); + foo1(i, i); + foo1(i, f); + + foo2(u, b); + foo2(u, d); + foo2(u, u); + foo2(u, i); + foo2(u, f); + + foo2(i, b); + foo2(i, d); + foo2(i, u); + foo2(i, i); + foo2(i, f); + + foo3(b); + foo3(d); + foo3(u); + foo3(i); + foo3(f); + + foo4(b); + foo4(d); + foo4(u); + foo4(i); + foo4(f); + + foo5(b); + foo5(d); + foo5(u); + foo5(i); + foo5(f); + + foo6(b); + foo6(d); + foo6(u); + foo6(i); + foo6(f); + + foo7(b); + foo7(d); + foo7(u); + foo7(i); + foo7(f); + + foo8(b); + foo8(u); + foo8(i); + + foo9(b); + foo9(f); + foo9(d); + + foo10(u); + foo10(f); + foo10(d); + + foo11(b); + foo11(f); + foo12(float3(f)); + foo16(int2(i,i)); + + foo13(f); + foo14(int4(i)); + foo15(b); + foo15(bool3(b)); + + return input; +} diff --git a/deps/glslang/glslang/Test/hlsl.params.default.frag b/deps/glslang/glslang/Test/hlsl.params.default.frag new file mode 100644 index 0000000000..42ad84f845 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.params.default.frag @@ -0,0 +1,51 @@ +uniform int4 ui4; + +static const int cia = -4; +static const int cib = -42; + +// ERROR: Ambiguous with fn1 below. +// int4 fn1(int4 p0) { return int4(1,2,3,4); } + +int4 fn1(int4 p0, bool b1, bool b2 = false) { + return p0; +} + +int4 fn1(int4 p0, + int4 p1 : FOO = int4(-1,-2,-3, cia), + int p2[2] : BAR = { int(1), 2 }, + int p3 = abs(cib) ) +{ + return p0 + p1 + p2[0] + p3; +} + +// These should not be ambiguous if given either an int or a float explicit second parameter. +int4 fn2(int4 p0, int x = 3) +{ + return int4(10,11,12,13); +} + +int4 fn2(int4 p0, float x = sin(3.3)) // OK to have a const expression as a default value +{ + return p0 + int4(20,21,22,23); +} + +void fn3(int p0 = 3) { } + + +int4 main() : SV_Target0 +{ + int myarray[2] = {30,31}; + + fn3(); + fn3(5); + + return fn1(100) + + fn1(101, ui4) + + fn1(102, ui4, myarray) + + fn1(103, ui4, myarray, 99) + + fn1(104, false) + + fn1(105, false, true) + + + fn2(110, 11.11) + // calls int4, float form + fn2(111, 12); // calls int4, int form +} diff --git a/deps/glslang/glslang/Test/hlsl.params.default.negative.frag b/deps/glslang/glslang/Test/hlsl.params.default.negative.frag new file mode 100644 index 0000000000..c9ff330b5c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.params.default.negative.frag @@ -0,0 +1,50 @@ +uniform int4 ui4; +uniform float ufvar; + +static const int cia = -4; +static const int cib = -42; + +int4 fn1(int4 p0) { return int4(1,2,3,4); } + +int4 fn1(int4 p0, bool b1, bool b2 = false) { + return p0; +} + +int4 fn1(int4 p0, + int4 p1 : FOO = int4(-1,-2,-3, cia), + int p2[2] : BAR = { int(1), 2 }, + int p3 = abs(cib) ) +{ + return p0 + p1 + p2[0] + p3; +} + +// These should not be ambiguous if given either an int or a float explicit second parameter. +int4 fn2(int4 p0, int x = 3) +{ + return int4(10,11,12,13); +} + +int4 fn2(int4 p0, float x = ufvar) // ERROR: non-const expression +{ + return p0 + int4(20,21,22,23); +} + +void fn3(int p0 = 5, int p1) // ERROR no-default param after default param +{ +} + +int4 main() : SV_Target0 +{ + int myarray[2] = {30,31}; + + return fn1(100) + // ERROR: ambiguous + fn1(101, ui4) + + fn1(102, ui4, myarray) + + fn1(103, ui4, myarray, 99) + + fn1(104, false) + + fn1(105, false, true) + + + fn2(112) + // ERROR: ambiguous + fn2(110, 11.11) + // calls int4, float form + fn2(111, 12); // calls int4, int form +} diff --git a/deps/glslang/glslang/Test/hlsl.partialFlattenLocal.vert b/deps/glslang/glslang/Test/hlsl.partialFlattenLocal.vert new file mode 100644 index 0000000000..9d6cdc900c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.partialFlattenLocal.vert @@ -0,0 +1,27 @@ +Texture2D tex; + +struct Packed { + Texture2D tex; + float3 pos[3]; + float2 uv[2]; + float x; + int n; +}; + +float4 main(float4 pos : POSITION) : SV_POSITION +{ + Packed packed; + packed.tex = tex; + packed.pos[0] = float3(0, 0, 0); + packed.uv[0] = float2(0, 1); + packed.x = 1.0; + packed.n = 3; + + for (int i = 0; i < 1; ++i) { + packed.pos[i].xy += packed.uv[i]; + } + + Packed packed2 = packed; + + return pos + float4(packed2.pos[0], 0); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.partialFlattenMixed.vert b/deps/glslang/glslang/Test/hlsl.partialFlattenMixed.vert new file mode 100644 index 0000000000..3fc9d68e23 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.partialFlattenMixed.vert @@ -0,0 +1,16 @@ +Texture2D tex[2]; + +struct Packed { + int a; + Texture2D membTex[2]; + int b; +}; + +float4 main(float4 pos : POSITION) : SV_POSITION +{ + Packed packed; + + packed.membTex = tex; + + return pos; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.partialInit.frag b/deps/glslang/glslang/Test/hlsl.partialInit.frag new file mode 100644 index 0000000000..01aee8e60b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.partialInit.frag @@ -0,0 +1,36 @@ +struct outs { + int a; + float b; + bool c; + float4 v; +}; + +static float4 gv = {0,0,1}; +static float gfa[3] = {0,0}; + +struct Nest { + float4x3 m; + outs os; + bool b; +}; + +outs PixelShaderFunction(float4 input) : COLOR0 +{ + outs o2 = { 3 }; + outs o4; + o4.v = gv * gfa[2]; + outs o1 = { }; + outs o3 = (outs)0; + o4 = (outs)0; + o4.c = o1.c; + Nest nest = (Nest)0; + + float2 gf2a[4] = { }; + int cgi = { }; + o4.b = gf2a[2].y * cgi; + + return o4; +} + +static const float2 cgf2a[3]; +static const int ci; diff --git a/deps/glslang/glslang/Test/hlsl.pp.line.frag b/deps/glslang/glslang/Test/hlsl.pp.line.frag new file mode 100644 index 0000000000..6f0273dcb2 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.pp.line.frag @@ -0,0 +1,24 @@ + +#line 1 + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +#line 2 + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + +#line 123 "SomeFile.frag" + + int thisLineIs = __LINE__; // gets 124 + + psout.Color = float4(thisLineIs, 0, 0, 1); + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.pp.tokenpasting.frag b/deps/glslang/glslang/Test/hlsl.pp.tokenpasting.frag new file mode 100644 index 0000000000..5415670fe0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.pp.tokenpasting.frag @@ -0,0 +1,18 @@ + +#define foobarblee zzzz + +#define ar qqqq + +#define MACRO1(x,y) foo##x##y +// #define MACRO2 abc##def + +// #define SPACE_IN_MACRO int var1 + +float4 main() : SV_Target0 +{ + // float MACRO2 = 10; + float MACRO1(b##ar,blee) = 3; + + return float4(foobarblee,0,0,0); +} + diff --git a/deps/glslang/glslang/Test/hlsl.pp.vert b/deps/glslang/glslang/Test/hlsl.pp.vert new file mode 100644 index 0000000000..4b0a451239 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.pp.vert @@ -0,0 +1,17 @@ +#define A defined(B) + +#if A +int badGlobal1; +#else +int goodGlobal1; +#endif + +#define B + +#if A +int goodGlobal2; +#else +int badGlobal2; +#endif + +void main() {} diff --git a/deps/glslang/glslang/Test/hlsl.precedence.frag b/deps/glslang/glslang/Test/hlsl.precedence.frag new file mode 100644 index 0000000000..6ed71739ba --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.precedence.frag @@ -0,0 +1,9 @@ +float4 PixelShaderFunction( + float4 a1, + float4 a2, + float4 a3, + float4 a4 + ) : COLOR0 +{ + return a1 + a2 * a3 + a4 + float4(a1.rgb * a2.rgb, a3.a); +} diff --git a/deps/glslang/glslang/Test/hlsl.precedence2.frag b/deps/glslang/glslang/Test/hlsl.precedence2.frag new file mode 100644 index 0000000000..0d3f583a81 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.precedence2.frag @@ -0,0 +1,9 @@ +int PixelShaderFunction( + int a1, + int a2, + int a3, + int a4 + ) : COLOR0 +{ + return (a1 * a2 + a3 << a4) + (a1 << a2 + a3 * a4); +} diff --git a/deps/glslang/glslang/Test/hlsl.precise.frag b/deps/glslang/glslang/Test/hlsl.precise.frag new file mode 100644 index 0000000000..77454e0728 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.precise.frag @@ -0,0 +1,14 @@ + +struct PS_OUTPUT { precise float4 color : SV_Target0; }; + +static precise float precisefloat; + +void MyFunction(in precise float myfloat, out precise float3 myfloat3) { } + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +} + diff --git a/deps/glslang/glslang/Test/hlsl.preprocessor.frag b/deps/glslang/glslang/Test/hlsl.preprocessor.frag new file mode 100644 index 0000000000..dba341efdd --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.preprocessor.frag @@ -0,0 +1,13 @@ +#define DEFINE_TEXTURE(name) Texture2D name; SamplerState name##_ss; +#define SAMPLE_TEXTURE(name, uv) name.Sample(name##_ss, (uv).xy) + +#define test_texture2 test_texture + +DEFINE_TEXTURE(test_texture) + +float4 main(float4 input : TEXCOORD0) : SV_TARGET +{ + float4 tex = SAMPLE_TEXTURE(test_texture2, input.xy); + return tex; +} + diff --git a/deps/glslang/glslang/Test/hlsl.promote.atomic.frag b/deps/glslang/glslang/Test/hlsl.promote.atomic.frag new file mode 100644 index 0000000000..2b46225bc8 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.promote.atomic.frag @@ -0,0 +1,17 @@ + +RWBuffer s_uintbuff; // UINT RWBuffer ... + +float4 main() : SV_Target +{ + int Loc; // ... with INT variables + int Inc; + int Orig; + + // This must select the uint flavor of SPIR-V atomic op, and promote + // the other arguments as required. The output value from the + // imageAtomicAdd AST will be converted to an int for 'Orig'. + InterlockedAdd(s_uintbuff[Loc], Inc, Orig); + + return float4(0,0,0,0); +} + diff --git a/deps/glslang/glslang/Test/hlsl.promote.binary.frag b/deps/glslang/glslang/Test/hlsl.promote.binary.frag new file mode 100644 index 0000000000..0203bed99b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.promote.binary.frag @@ -0,0 +1,28 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool bval; +uniform bool4 bval4; +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + ival % fval; + ival4 % fval4; + + bval % fval; + bval4 % fval4; + + int l_int = 1; + l_int %= fval; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} + diff --git a/deps/glslang/glslang/Test/hlsl.promote.vec1.frag b/deps/glslang/glslang/Test/hlsl.promote.vec1.frag new file mode 100644 index 0000000000..a674ccbaa9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.promote.vec1.frag @@ -0,0 +1,16 @@ + +float4 main() : SV_Target +{ + float f1a; + float1 f1b; + + f1a = f1b; // convert float1 to float + f1b = f1a; // convert float to float1 + + float3 f3; + step(0.0, f3); + + sin(f1b); // test 1-vectors in intrinsics + + return float4(0,0,0,0); +} diff --git a/deps/glslang/glslang/Test/hlsl.promotions.frag b/deps/glslang/glslang/Test/hlsl.promotions.frag new file mode 100644 index 0000000000..647096d451 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.promotions.frag @@ -0,0 +1,201 @@ + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int3 i3; +uniform bool3 b3; +uniform float3 f3; +uniform uint3 u3; +uniform double3 d3; + +uniform int is; +uniform bool bs; +uniform float fs; +uniform uint us; +uniform double ds; + +void Fn_F3(float3 x) { } +void Fn_I3(int3 x) { } +void Fn_U3(uint3 x) { } +void Fn_B3(bool3 x) { } +void Fn_D3(double3 x) { } + +// ----------- Test implicit conversions on function returns ----------- +float3 Fn_R_F3I(out float3 p) { p = i3; return i3; } +float3 Fn_R_F3U(out float3 p) { p = u3; return u3; } +float3 Fn_R_F3B(out float3 p) { p = b3; return b3; } +float3 Fn_R_F3D(out float3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. + +int3 Fn_R_I3U(out int3 p) { p = u3; return u3; } +int3 Fn_R_I3B(out int3 p) { p = b3; return b3; } +int3 Fn_R_I3F(out int3 p) { p = f3; return f3; } +int3 Fn_R_I3D(out int3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. + +uint3 Fn_R_U3I(out uint3 p) { p = i3; return i3; } +uint3 Fn_R_U3F(out uint3 p) { p = f3; return f3; } +uint3 Fn_R_U3B(out uint3 p) { p = b3; return b3; } +uint3 Fn_R_U3D(out uint3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. + +bool3 Fn_R_B3I(out bool3 p) { p = i3; return i3; } +bool3 Fn_R_B3U(out bool3 p) { p = u3; return u3; } +bool3 Fn_R_B3F(out bool3 p) { p = f3; return f3; } +bool3 Fn_R_B3D(out bool3 p) { p = d3; return d3; } + +double3 Fn_R_D3I(out double3 p) { p = i3; return i3; } +double3 Fn_R_D3U(out double3 p) { p = u3; return u3; } +double3 Fn_R_D3B(out double3 p) { p = b3; return b3; } +double3 Fn_R_D3F(out double3 p) { p = f3; return f3; } + +PS_OUTPUT main() +{ + // ----------- assignment conversions ----------- + float3 r00 = i3; + float3 r01 = b3; + float3 r02 = u3; + float3 r03 = d3; // valid, but loss of precision on downconversion. + + int3 r10 = b3; + int3 r11 = u3; + int3 r12 = f3; + int3 r13 = d3; // valid, but loss of precision on downconversion. + + uint3 r20 = b3; + uint3 r21 = i3; + uint3 r22 = f3; + uint3 r23 = d3; // valid, but loss of precision on downconversion. + + bool3 r30 = i3; + bool3 r31 = u3; + bool3 r32 = f3; + bool3 r33 = d3; + + double3 r40 = i3; + double3 r41 = u3; + double3 r42 = f3; + double3 r43 = b3; + + // ----------- assign ops: vector times vector ----------- + r00 *= i3; + r01 *= b3; + r02 *= u3; + r03 *= d3; // valid, but loss of precision on downconversion. + + r10 *= b3; + r11 *= u3; + r12 *= f3; + r13 *= d3; // valid, but loss of precision on downconversion. + + r20 *= b3; + r21 *= i3; + r22 *= f3; + r23 *= d3; // valid, but loss of precision on downconversion. + + // No mul operator for bools + + r40 *= i3; + r41 *= u3; + r42 *= f3; + r43 *= b3; + + // ----------- assign ops: vector times scalar ----------- + r00 *= is; + r01 *= bs; + r02 *= us; + r03 *= ds; // valid, but loss of precision on downconversion. + + r10 *= bs; + r11 *= us; + r12 *= fs; + r13 *= ds; // valid, but loss of precision on downconversion. + + r20 *= bs; + r21 *= is; + r22 *= fs; + r23 *= ds; // valid, but loss of precision on downconversion. + + // No mul operator for bools + + r40 *= is; + r41 *= us; + r42 *= fs; + r43 *= bs; + + +#define FN_OVERLOADS 0 // change to 1 when overloads under promotions are in place + +#if FN_OVERLOADS + Fn_F3(i3); + Fn_F3(u3); + Fn_F3(f3); + Fn_F3(b3); + Fn_F3(d3); // valid, but loss of precision on downconversion. + + Fn_I3(i3); + Fn_I3(u3); + Fn_I3(f3); + Fn_I3(b3); + Fn_I3(d3); // valid, but loss of precision on downconversion. + + Fn_U3(i3); + Fn_U3(u3); + Fn_U3(f3); + Fn_U3(b3); + Fn_U3(d3); // valid, but loss of precision on downconversion. + + Fn_B3(i3); + Fn_B3(u3); + Fn_B3(f3); + Fn_B3(b3); + Fn_B3(d3); + + Fn_D3(i3); + Fn_D3(u3); + Fn_D3(f3); + Fn_D3(b3); + Fn_D3(d3); + + Fn_F3(i3.x); + Fn_F3(u3.x); + Fn_F3(f3.x); + Fn_F3(b3.x); + Fn_F3(d3.x); // valid, but loss of precision on downconversion. + + Fn_I3(i3.x); + Fn_I3(u3.x); + Fn_I3(f3.x); + Fn_I3(b3.x); + Fn_I3(d3.x); // valid, but loss of precision on downconversion. + + Fn_U3(i3.x); + Fn_U3(u3.x); + Fn_U3(f3.x); + Fn_U3(b3.x); + Fn_U3(d3.x); // valid, but loss of precision on downconversion. + + Fn_B3(i3.x); + Fn_B3(u3.x); + Fn_B3(f3.x); + Fn_B3(b3.x); + Fn_B3(d3.x); + + Fn_D3(i3.x); + Fn_D3(u3.x); + Fn_D3(f3.x); + Fn_D3(b3.x); + Fn_D3(d3.x); +#endif + + const int si = 3; + const float sf = 1.2; + + int c1 = si * sf; // 3.6 (not 3!) + int c2 = sf * si; // 3.6 (not 3!) + + float4 outval = float4(si * sf, sf*si, c1, c2); + + PS_OUTPUT psout; + psout.Color = outval; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.reflection.binding.frag b/deps/glslang/glslang/Test/hlsl.reflection.binding.frag new file mode 100644 index 0000000000..25b22c975d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.reflection.binding.frag @@ -0,0 +1,34 @@ + +uniform float u1 : register(b2); + +uniform SamplerState s1 : register(s5); +uniform SamplerState s1a[3] : register(s6); + +uniform Texture1D t1 : register(t15); +uniform Texture1D t1a[3] : register(t16); + +cbuffer cbuff1 : register(b2) { + float4 c1_a; + int c1_b; + float c1_c; +}; + +cbuffer cbuff2 : register(b3) { + float4 c2_a; + int c2_b; + float c2_c; +}; + +struct PS_OUTPUT +{ + float4 Color : Sv_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = + t1.Sample(s1, 0.3) + + t1a[0].Sample(s1a[0], 0.3) + + c1_a + c1_b + c1_c + + c2_a + c2_b + c2_c; +} diff --git a/deps/glslang/glslang/Test/hlsl.reflection.vert b/deps/glslang/glslang/Test/hlsl.reflection.vert new file mode 100644 index 0000000000..06207c74f8 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.reflection.vert @@ -0,0 +1,138 @@ + +cbuffer nameless { + float3 anonMember1; + float3x2 m23; + int scalarAfterm23; + float4 anonDeadMember2; + float4 anonMember3; + int scalarBeforeArray; + float floatArray[5]; + int scalarAfterArray; + float2x2 m22[9]; +}; + +cbuffer c_nameless { + float3 c_anonMember1; + float3x2 c_m23; + int c_scalarAfterm23; + float4 c_anonDeadMember2; + float4 c_anonMember3; +}; + +cbuffer namelessdead { + int a; +}; + +struct N1 { + float a; +}; + +struct N2 { + float b; + float c; + float d; +}; + +struct N3 { + N1 n1; + N2 n2; +}; + +cbuffer nested { + N3 foo; +} + +struct TS { + int a; + int dead; +}; + +uniform TS s; + +uniform float uf1; +uniform float uf2; +uniform float ufDead3; +uniform float ufDead4; + +uniform float2x2 dm22[10]; + +struct deep1 { + float2 va[3]; + bool b; +}; + +struct deep2 { + int i; + deep1 d1[4]; +}; + +struct deep3 { + float4 iv4; + deep2 d2; + int3 v3; +}; + +uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; + +const bool control = true; + +void deadFunction() +{ + float4 v = anonDeadMember2; + float f = ufDead4; +} + +void liveFunction2() +{ + float3 v = anonMember1; + float f = uf1; +} + +tbuffer abl { + float foo1; +} + +tbuffer abl2 { + float foo2; +} + +void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attributeFloat3, in float4 attributeFloat4, in float4x4 attributeMat4) +{ + liveFunction2(); + + if (! control) + deadFunction(); + + float f; + int i; + if (control) { + liveFunction2(); + f = anonMember3.z; + f = s.a; + f = m23[1].y + scalarAfterm23; + f = c_m23[1].y + c_scalarAfterm23; + f += scalarBeforeArray; + f += floatArray[2]; + f += floatArray[4]; + f += scalarAfterArray; + f += m22[i][1][0]; + f += dm22[3][0][1]; + f += m22[2][1].y; + f += foo.n1.a + foo.n2.b + foo.n2.c + foo.n2.d; + f += deepA[i].d2.d1[2].va[1].x; + f += deepB[1].d2.d1[i].va[1].x; + f += deepB[i].d2.d1[i].va[1].x; + deep3 d = deepC[1]; + deep3 da[2] = deepD; + } else + f = ufDead3; + + f += foo1 + foo2; + f += foo2; + + f += attributeFloat; + f += attributeFloat2.x; + f += attributeFloat3.x; + f += attributeFloat4.x; + f += attributeMat4[0][1]; +} diff --git a/deps/glslang/glslang/Test/hlsl.rw.atomics.frag b/deps/glslang/glslang/Test/hlsl.rw.atomics.frag new file mode 100644 index 0000000000..930d650127 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.rw.atomics.frag @@ -0,0 +1,244 @@ +SamplerState g_sSamp; + +RWTexture1D g_tTex1df1; +RWTexture1D g_tTex1di1; +RWTexture1D g_tTex1du1; + +RWTexture2D g_tTex2df1; +RWTexture2D g_tTex2di1; +RWTexture2D g_tTex2du1; + +RWTexture3D g_tTex3df1; +RWTexture3D g_tTex3di1; +RWTexture3D g_tTex3du1; + +RWTexture1DArray g_tTex1df1a; +RWTexture1DArray g_tTex1di1a; +RWTexture1DArray g_tTex1du1a; + +RWTexture2DArray g_tTex2df1a; +RWTexture2DArray g_tTex2di1a; +RWTexture2DArray g_tTex2du1a; + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform uint u1; +uniform uint2 u2; +uniform uint3 u3; +uniform uint u1b; +uniform uint u1c; + +uniform int i1; +uniform int2 i2; +uniform int3 i3; +uniform int i1b; +uniform int i1c; + +PS_OUTPUT main() +{ + uint out_u1; + int out_i1; + + // 1D int + InterlockedAdd(g_tTex1di1[i1], i1b); + InterlockedAdd(g_tTex1di1[i1], i1, out_i1); + InterlockedAnd(g_tTex1di1[i1], i1b); + InterlockedAnd(g_tTex1di1[i1], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1[i1], i1, out_i1); + InterlockedMax(g_tTex1di1[i1], i1b); + InterlockedMax(g_tTex1di1[i1], i1, out_i1); + InterlockedMin(g_tTex1di1[i1], i1b); + InterlockedMin(g_tTex1di1[i1], i1, out_i1); + InterlockedOr(g_tTex1di1[i1], i1b); + InterlockedOr(g_tTex1di1[i1], i1, out_i1); + InterlockedXor(g_tTex1di1[i1], i1b); + InterlockedXor(g_tTex1di1[i1], i1, out_i1); + + // 1D uint + InterlockedAdd(g_tTex1du1[u1], u1); + InterlockedAdd(g_tTex1du1[u1], u1, out_u1); + InterlockedAnd(g_tTex1du1[u1], u1); + InterlockedAnd(g_tTex1du1[u1], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1[u1], u1, out_u1); + InterlockedMax(g_tTex1du1[u1], u1); + InterlockedMax(g_tTex1du1[u1], u1, out_u1); + InterlockedMin(g_tTex1du1[u1], u1); + InterlockedMin(g_tTex1du1[u1], u1, out_u1); + InterlockedOr(g_tTex1du1[u1], u1); + InterlockedOr(g_tTex1du1[u1], u1, out_u1); + InterlockedXor(g_tTex1du1[u1], u1); + InterlockedXor(g_tTex1du1[u1], u1, out_u1); + + // 2D int + InterlockedAdd(g_tTex2di1[i2], i1b); + InterlockedAdd(g_tTex2di1[i2], i1, out_i1); + InterlockedAnd(g_tTex2di1[i2], i1b); + InterlockedAnd(g_tTex2di1[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex2di1[i2], i1, out_i1); + InterlockedMax(g_tTex2di1[i2], i1b); + InterlockedMax(g_tTex2di1[i2], i1, out_i1); + InterlockedMin(g_tTex2di1[i2], i1b); + InterlockedMin(g_tTex2di1[i2], i1, out_i1); + InterlockedOr(g_tTex2di1[i2], i1b); + InterlockedOr(g_tTex2di1[i2], i1, out_i1); + InterlockedXor(g_tTex2di1[i2], i1b); + InterlockedXor(g_tTex2di1[i2], i1, out_i1); + + // 2D uint + InterlockedAdd(g_tTex2du1[u2], u1); + InterlockedAdd(g_tTex2du1[u2], u1, out_u1); + InterlockedAnd(g_tTex2du1[u2], u1); + InterlockedAnd(g_tTex2du1[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex2du1[u2], u1, out_u1); + InterlockedMax(g_tTex2du1[u2], u1); + InterlockedMax(g_tTex2du1[u2], u1, out_u1); + InterlockedMin(g_tTex2du1[u2], u1); + InterlockedMin(g_tTex2du1[u2], u1, out_u1); + InterlockedOr(g_tTex2du1[u2], u1); + InterlockedOr(g_tTex2du1[u2], u1, out_u1); + InterlockedXor(g_tTex2du1[u2], u1); + InterlockedXor(g_tTex2du1[u2], u1, out_u1); + + // 3D int + InterlockedAdd(g_tTex3di1[i3], i1b); + InterlockedAdd(g_tTex3di1[i3], i1, out_i1); + InterlockedAnd(g_tTex3di1[i3], i1b); + InterlockedAnd(g_tTex3di1[i3], i1, out_i1); + InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1); + InterlockedExchange(g_tTex3di1[i3], i1, out_i1); + InterlockedMax(g_tTex3di1[i3], i1b); + InterlockedMax(g_tTex3di1[i3], i1, out_i1); + InterlockedMin(g_tTex3di1[i3], i1b); + InterlockedMin(g_tTex3di1[i3], i1, out_i1); + InterlockedOr(g_tTex3di1[i3], i1b); + InterlockedOr(g_tTex3di1[i3], i1, out_i1); + InterlockedXor(g_tTex3di1[i3], i1b); + InterlockedXor(g_tTex3di1[i3], i1, out_i1); + + // 3D uint + InterlockedAdd(g_tTex3du1[u3], u1); + InterlockedAdd(g_tTex3du1[u3], u1, out_u1); + InterlockedAnd(g_tTex3du1[u3], u1); + InterlockedAnd(g_tTex3du1[u3], u1, out_u1); + InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1); + InterlockedExchange(g_tTex3du1[u3], u1, out_u1); + InterlockedMax(g_tTex3du1[u3], u1); + InterlockedMax(g_tTex3du1[u3], u1, out_u1); + InterlockedMin(g_tTex3du1[u3], u1); + InterlockedMin(g_tTex3du1[u3], u1, out_u1); + InterlockedOr(g_tTex3du1[u3], u1); + InterlockedOr(g_tTex3du1[u3], u1, out_u1); + InterlockedXor(g_tTex3du1[u3], u1); + InterlockedXor(g_tTex3du1[u3], u1, out_u1); + + // 1D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 1D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // 2D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 2D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // buffer int + InterlockedAdd(g_tBuffI[i1], i1b); + InterlockedAdd(g_tBuffI[i1], i1, out_i1); + InterlockedAnd(g_tBuffI[i1], i1b); + InterlockedAnd(g_tBuffI[i1], i1, out_i1); + InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tBuffI[i1], i1, out_i1); + InterlockedMax(g_tBuffI[i1], i1b); + InterlockedMax(g_tBuffI[i1], i1, out_i1); + InterlockedMin(g_tBuffI[i1], i1b); + InterlockedMin(g_tBuffI[i1], i1, out_i1); + InterlockedOr(g_tBuffI[i1], i1b); + InterlockedOr(g_tBuffI[i1], i1, out_i1); + InterlockedXor(g_tBuffI[i1], i1b); + InterlockedXor(g_tBuffI[i1], i1, out_i1); + + // buffer uint + InterlockedAdd(g_tBuffU[u1], u1); + InterlockedAdd(g_tBuffU[u1], u1, out_u1); + InterlockedAnd(g_tBuffU[u1], u1); + InterlockedAnd(g_tBuffU[u1], u1, out_u1); + InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tBuffU[u1], u1, out_u1); + InterlockedMax(g_tBuffU[u1], u1); + InterlockedMax(g_tBuffU[u1], u1, out_u1); + InterlockedMin(g_tBuffU[u1], u1); + InterlockedMin(g_tBuffU[u1], u1, out_u1); + InterlockedOr(g_tBuffU[u1], u1); + InterlockedOr(g_tBuffU[u1], u1, out_u1); + InterlockedXor(g_tBuffU[u1], u1); + InterlockedXor(g_tBuffU[u1], u1, out_u1); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.rw.bracket.frag b/deps/glslang/glslang/Test/hlsl.rw.bracket.frag new file mode 100644 index 0000000000..9390e8de10 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.rw.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float4 uf4; +uniform int4 ui4; +uniform uint4 uu4; + +int4 Fn1(in int4 x) { return x; } +uint4 Fn1(in uint4 x) { return x; } +float4 Fn1(in float4 x) { return x; } + +void Fn2(out int4 x) { x = int4(0); } +void Fn2(out uint4 x) { x = uint4(0); } +void Fn2(out float4 x) { x = float4(0); } + +float4 SomeValue() { return c4; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4[c1]; + + float4 r00 = g_tTex1df4[c1]; + int4 r01 = g_tTex1di4[c1]; + uint4 r02 = g_tTex1du4[c1]; + + // 2D + float4 r10 = g_tTex2df4[c2]; + int4 r11 = g_tTex2di4[c2]; + uint4 r12 = g_tTex2du4[c2]; + + // 3D + float4 r20 = g_tTex3df4[c3]; + int4 r21 = g_tTex3di4[c3]; + uint4 r22 = g_tTex3du4[c3]; + + float4 lf4 = uf4; + + // Test as L-values + // 1D + g_tTex1df4[c1] = SomeValue(); // complex R-value + g_tTex1df4[c1] = lf4; + g_tTex1di4[c1] = int4(2,2,3,4); + g_tTex1du4[c1] = uint4(3,2,3,4); + + // Test some operator= things, which need to do both a load and a store. + float4 val1 = (g_tTex1df4[c1] *= 2.0); + g_tTex1df4[c1] -= 3.0; + g_tTex1df4[c1] += 4.0; + + g_tTex1di4[c1] /= 2; + g_tTex1di4[c1] %= 2; + g_tTex1di4[c1] &= 0xffff; + g_tTex1di4[c1] |= 0xf0f0; + g_tTex1di4[c1] <<= 2; + g_tTex1di4[c1] >>= 2; + + // 2D + g_tTex2df4[c2] = SomeValue(); // complex L-value + g_tTex2df4[c2] = lf4; + g_tTex2di4[c2] = int4(5,2,3,4); + g_tTex2du4[c2] = uint4(6,2,3,4); + + // 3D + g_tTex3df4[c3] = SomeValue(); // complex L-value + g_tTex3df4[c3] = lf4; + g_tTex3di4[c3] = int4(8,6,7,8); + g_tTex3du4[c3] = uint4(9,2,3,4); + + // Test function calling + Fn1(g_tTex1df4[c1]); // in + Fn1(g_tTex1di4[c1]); // in + Fn1(g_tTex1du4[c1]); // in + + Fn2(g_tTex1df4[c1]); // out + Fn2(g_tTex1di4[c1]); // out + Fn2(g_tTex1du4[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df4[c1]; + ++g_tTex1di4[c1]; + ++g_tTex1du4[c1]; + + --g_tTex1df4[c1]; + --g_tTex1di4[c1]; + --g_tTex1du4[c1]; + + // post-ops + g_tTex1df4[c1]++; + g_tTex1du4[c1]--; + g_tTex1di4[c1]++; + + g_tTex1df4[c1]--; + g_tTex1di4[c1]++; + g_tTex1du4[c1]--; + + // read and write + g_tTex1df4[1] = g_tTex2df4[int2(2,3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.rw.register.frag b/deps/glslang/glslang/Test/hlsl.rw.register.frag new file mode 100644 index 0000000000..e82e419a08 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.rw.register.frag @@ -0,0 +1,18 @@ + +RWTexture1D g_tTex1df1 : register(u2); +RWBuffer g_tBuf1du1 : register(U3); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float r00 = g_tTex1df1[0]; + uint r01 = g_tBuf1du1[0]; + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.rw.scalar.bracket.frag b/deps/glslang/glslang/Test/hlsl.rw.scalar.bracket.frag new file mode 100644 index 0000000000..e185f05d17 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.rw.scalar.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df1; +RWTexture1D g_tTex1di1; +RWTexture1D g_tTex1du1; + +RWTexture2D g_tTex2df1; +RWTexture2D g_tTex2di1; +RWTexture2D g_tTex2du1; + +RWTexture3D g_tTex3df1; +RWTexture3D g_tTex3di1; +RWTexture3D g_tTex3du1; + +RWTexture1DArray g_tTex1df1a; +RWTexture1DArray g_tTex1di1a; +RWTexture1DArray g_tTex1du1a; + +RWTexture2DArray g_tTex2df1a; +RWTexture2DArray g_tTex2di1a; +RWTexture2DArray g_tTex2du1a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float uf1; +uniform int ui1; +uniform uint uu1; + +int Fn1(in int x) { return x; } +uint Fn1(in uint x) { return x; } +float Fn1(in float x) { return x; } + +void Fn2(out int x) { x = int(0); } +void Fn2(out uint x) { x = uint(0); } +void Fn2(out float x) { x = float(0); } + +float SomeValue() { return c1; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df1[c1]; + + float r00 = g_tTex1df1[c1]; + int r01 = g_tTex1di1[c1]; + uint r02 = g_tTex1du1[c1]; + + // 2D + float r10 = g_tTex2df1[c2]; + int r11 = g_tTex2di1[c2]; + uint r12 = g_tTex2du1[c2]; + + // 3D + float r20 = g_tTex3df1[c3]; + int r21 = g_tTex3di1[c3]; + uint r22 = g_tTex3du1[c3]; + + float lf1 = uf1; + + // Test as L-values + // 1D + g_tTex1df1[c1] = SomeValue(); // complex R-value + g_tTex1df1[c1] = lf1; + g_tTex1di1[c1] = int(2); + g_tTex1du1[c1] = uint(3); + + // Test some operator= things, which need to do both a load and a store. + float val1 = (g_tTex1df1[c1] *= 2.0); + g_tTex1df1[c1] -= 3.0; + g_tTex1df1[c1] += 4.0; + + g_tTex1di1[c1] /= 2; + g_tTex1di1[c1] %= 2; + g_tTex1di1[c1] &= 0xffff; + g_tTex1di1[c1] |= 0xf0f0; + g_tTex1di1[c1] <<= 2; + g_tTex1di1[c1] >>= 2; + + // 2D + g_tTex2df1[c2] = SomeValue(); // complex L-value + g_tTex2df1[c2] = lf1; + g_tTex2di1[c2] = int(5); + g_tTex2du1[c2] = uint(6); + + // 3D + g_tTex3df1[c3] = SomeValue(); // complex L-value + g_tTex3df1[c3] = lf1; + g_tTex3di1[c3] = int(8); + g_tTex3du1[c3] = uint(9); + + // Test function calling + Fn1(g_tTex1df1[c1]); // in + Fn1(g_tTex1di1[c1]); // in + Fn1(g_tTex1du1[c1]); // in + + Fn2(g_tTex1df1[c1]); // out + Fn2(g_tTex1di1[c1]); // out + Fn2(g_tTex1du1[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df1[c1]; + ++g_tTex1di1[c1]; + ++g_tTex1du1[c1]; + + --g_tTex1df1[c1]; + --g_tTex1di1[c1]; + --g_tTex1du1[c1]; + + // post-ops + g_tTex1df1[c1]++; + g_tTex1du1[c1]--; + g_tTex1di1[c1]++; + + g_tTex1df1[c1]--; + g_tTex1di1[c1]++; + g_tTex1du1[c1]--; + + // read and write + g_tTex1df1[1] = g_tTex2df1[int2(2, 3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.rw.swizzle.frag b/deps/glslang/glslang/Test/hlsl.rw.swizzle.frag new file mode 100644 index 0000000000..356ed73dd3 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.rw.swizzle.frag @@ -0,0 +1,28 @@ +RWTexture2D rwtx; +RWBuffer buf; + +float3 SomeValue() { return float3(1,2,3); } + +float4 main() : SV_Target0 +{ + int2 tc2 = { 0, 0 }; + int tc = 0; + + // Test swizzles and partial updates of L-values when writing to buffers and writable textures. + rwtx[tc2].zyx = float3(1,2,3); // full swizzle, simple RHS + rwtx[tc2].zyx = SomeValue(); // full swizzle, complex RHS + rwtx[tc2].zyx = 2; // full swizzle, modify op + + // Partial updates not yet supported. + // Partial values, which will use swizzles. + // buf[tc].yz = 42; // partial swizzle, simple RHS + // buf[tc].yz = SomeValue().x; // partial swizzle, complex RHS + // buf[tc].yz += 43; // partial swizzle, modify op + + // // Partial values, which will use index. + // buf[tc].y = 44; // single index, simple RHS + // buf[tc].y = SomeValue().x; // single index, complex RHS + // buf[tc].y += 45; // single index, modify op + + return 0.0; +} diff --git a/deps/glslang/glslang/Test/hlsl.rw.vec2.bracket.frag b/deps/glslang/glslang/Test/hlsl.rw.vec2.bracket.frag new file mode 100644 index 0000000000..7b4a10a8a6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.rw.vec2.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df2; +RWTexture1D g_tTex1di2; +RWTexture1D g_tTex1du2; + +RWTexture2D g_tTex2df2; +RWTexture2D g_tTex2di2; +RWTexture2D g_tTex2du2; + +RWTexture3D g_tTex3df2; +RWTexture3D g_tTex3di2; +RWTexture3D g_tTex3du2; + +RWTexture1DArray g_tTex1df2a; +RWTexture1DArray g_tTex1di2a; +RWTexture1DArray g_tTex1du2a; + +RWTexture2DArray g_tTex2df2a; +RWTexture2DArray g_tTex2di2a; +RWTexture2DArray g_tTex2du2a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float2 uf2; +uniform int2 ui2; +uniform uint2 uu2; + +int2 Fn1(in int2 x) { return x; } +uint2 Fn1(in uint2 x) { return x; } +float2 Fn1(in float2 x) { return x; } + +void Fn2(out int2 x) { x = int2(0,0); } +void Fn2(out uint2 x) { x = uint2(0,0); } +void Fn2(out float2 x) { x = float2(0,0); } + +float2 SomeValue() { return c2; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df2[c1]; + + float2 r00 = g_tTex1df2[c1]; + int2 r01 = g_tTex1di2[c1]; + uint2 r02 = g_tTex1du2[c1]; + + // 2D + float2 r10 = g_tTex2df2[c2]; + int2 r11 = g_tTex2di2[c2]; + uint2 r12 = g_tTex2du2[c2]; + + // 3D + float2 r20 = g_tTex3df2[c3]; + int2 r21 = g_tTex3di2[c3]; + uint2 r22 = g_tTex3du2[c3]; + + float2 lf2 = uf2; + + // Test as L-values + // 1D + g_tTex1df2[c1] = SomeValue(); // complex R-value + g_tTex1df2[c1] = lf2; + g_tTex1di2[c1] = int2(2,2); + g_tTex1du2[c1] = uint2(3,2); + + // Test some operator= things, which need to do both a load and a store. + float2 val1 = (g_tTex1df2[c1] *= 2.0); + g_tTex1df2[c1] -= 3.0; + g_tTex1df2[c1] += 4.0; + + g_tTex1di2[c1] /= 2; + g_tTex1di2[c1] %= 2; + g_tTex1di2[c1] &= 0xffff; + g_tTex1di2[c1] |= 0xf0f0; + g_tTex1di2[c1] <<= 2; + g_tTex1di2[c1] >>= 2; + + // 2D + g_tTex2df2[c2] = SomeValue(); // complex L-value + g_tTex2df2[c2] = lf2; + g_tTex2di2[c2] = int2(5,2); + g_tTex2du2[c2] = uint2(6,2); + + // 3D + g_tTex3df2[c3] = SomeValue(); // complex L-value + g_tTex3df2[c3] = lf2; + g_tTex3di2[c3] = int2(8,6); + g_tTex3du2[c3] = uint2(9,2); + + // Test function calling + Fn1(g_tTex1df2[c1]); // in + Fn1(g_tTex1di2[c1]); // in + Fn1(g_tTex1du2[c1]); // in + + Fn2(g_tTex1df2[c1]); // out + Fn2(g_tTex1di2[c1]); // out + Fn2(g_tTex1du2[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df2[c1]; + ++g_tTex1di2[c1]; + ++g_tTex1du2[c1]; + + --g_tTex1df2[c1]; + --g_tTex1di2[c1]; + --g_tTex1du2[c1]; + + // post-ops + g_tTex1df2[c1]++; + g_tTex1du2[c1]--; + g_tTex1di2[c1]++; + + g_tTex1df2[c1]--; + g_tTex1di2[c1]++; + g_tTex1du2[c1]--; + + // read and write + g_tTex1df2[1] = g_tTex2df2[int2(2,3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.sample.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.sample.array.dx10.frag new file mode 100644 index 0000000000..2c6800459c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.sample.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, float2(0.2, 0.3)); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, float2(0.3, 0.4)); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float3(0.3, 0.4, 0.5)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float3(0.5, 0.6, 0.7)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float4(0.1, 0.2, 0.3, 0.4)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float4(0.4, 0.5, 0.6, 0.7)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float4(0.7, 0.8, 0.9, 1.0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.sample.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.sample.basic.dx10.frag new file mode 100644 index 0000000000..03e83ef9bc --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.sample.basic.dx10.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.sample.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.sample.offset.dx10.frag new file mode 100644 index 0000000000..65ce7e4818 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.sample.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1, 1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2, 1); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3, 1); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4), int2(1,1)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6), int2(1,-1)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3), int3(1,0,1)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6), int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9), int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.sample.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.sample.offsetarray.dx10.frag new file mode 100644 index 0000000000..616c8dddf7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.sample.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, float2(0.1, 0.2), 0); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, float2(0.2, 0.3), 1); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, float2(0.3, 0.4), 2); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3), int2(0,0)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float3(0.3, 0.4, 0.5), int2(0,0)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float3(0.5, 0.6, 0.7), int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.sample.sub-vec4.dx10.frag b/deps/glslang/glslang/Test/hlsl.sample.sub-vec4.dx10.frag new file mode 100644 index 0000000000..991d976a1d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.sample.sub-vec4.dx10.frag @@ -0,0 +1,24 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df1; +Texture1D g_tTex1df2; +Texture1D g_tTex1df3; +Texture1D g_tTex1df4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float txval10 = g_tTex1df1 . Sample(g_sSamp, 0.1); + float2 txval11 = g_tTex1df2 . Sample(g_sSamp, 0.2); + float3 txval12 = g_tTex1df3 . Sample(g_sSamp, 0.2); + float4 txval13 = g_tTex1df4 . Sample(g_sSamp, 0.2); + + psout.Color = 1.0; + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplebias.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplebias.array.dx10.frag new file mode 100644 index 0000000000..ba4e197f93 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplebias.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5); + + float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.5); + int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.5); + uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.5); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplebias.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplebias.basic.dx10.frag new file mode 100644 index 0000000000..0913861683 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplebias.basic.dx10.frag @@ -0,0 +1,51 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5); + + float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); + uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); + + float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); + uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplebias.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplebias.offset.dx10.frag new file mode 100644 index 0000000000..6f2f94c8e4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplebias.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5, 1); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5, 1); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5, 1); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5, int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5, int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5, int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplebias.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplebias.offsetarray.dx10.frag new file mode 100644 index 0000000000..b5f6296862 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplebias.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, 0); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5, 1); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, 2); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int2(0,0)); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5, int2(0,0)); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5, int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.array.dx10.frag new file mode 100644 index 0000000000..f0e0a3dcfb --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.array.dx10.frag @@ -0,0 +1,60 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r10 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r12 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r14 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + + // 2DArray + float r30 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r32 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r34 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + // CubeArray + float r60 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r62 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r64 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.basic.dx10.frag new file mode 100644 index 0000000000..cb73e14f66 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.basic.dx10.frag @@ -0,0 +1,61 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r00 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75); + float r02 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75); + float r04 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75); + + // 2D + float r20 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r22 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r24 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + + // *** There's no SampleCmp on 3D textures + + float r50 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r52 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r54 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.dualmode.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.dualmode.frag new file mode 100644 index 0000000000..5b600f3b6e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.dualmode.frag @@ -0,0 +1,14 @@ +SamplerState g_sSamp : register(s0); +SamplerComparisonState g_sSampCmp : register(s1); + +uniform Texture1D g_tTex : register(t3); + +float4 main() : SV_Target0 +{ + // This texture is used with both shadow modes. It will need post-compilation + // legalization. + g_tTex.SampleCmp(g_sSampCmp, 0.1, 0.75); + g_tTex.Sample(g_sSamp, 0.1); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.negative.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.negative.frag new file mode 100644 index 0000000000..8851982129 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.negative.frag @@ -0,0 +1,13 @@ + +Texture2D g_nonShadowTex; +Texture2D g_shadowTex; +SamplerState g_shadowSampler; +SamplerComparisonState g_shadowSamplerComp; + +float4 main() : SV_Target0 +{ + g_shadowTex.SampleCmp(g_shadowSamplerComp, float2(0,0), 0); // OK + g_nonShadowTex.SampleCmp(g_shadowSampler, float2(0,0), 0); // ERROR (should be comparison sampler) + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.negative2.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.negative2.frag new file mode 100644 index 0000000000..33a2133ab0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.negative2.frag @@ -0,0 +1,10 @@ + +Texture2D g_shadowTex; +SamplerState g_shadowSampler; + +float4 main() : SV_Target0 +{ + g_shadowTex.GatherCmpRed(g_shadowSampler, float2(0,0), 0, int2(0,0)); // ERROR (should be comparison sampler) + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.offset.dx10.frag new file mode 100644 index 0000000000..444dac8e69 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.offset.dx10.frag @@ -0,0 +1,66 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r01 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + float r03 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + float r05 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + + // 2D + float r21 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r23 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r25 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + + // *** There's no SampleCmp on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + // Cube + // float r51 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + // float r53 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + // float r55 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmp.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmp.offsetarray.dx10.frag new file mode 100644 index 0000000000..319d5cddb4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmp.offsetarray.dx10.frag @@ -0,0 +1,67 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r11 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r13 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r15 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + + // 2DArray + float r31 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r33 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r35 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + // *** There's no SampleCmp on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + + // CubeArray + // float r61 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r63 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r65 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.array.dx10.frag new file mode 100644 index 0000000000..41b6a793a9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.array.dx10.frag @@ -0,0 +1,60 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r10 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r12 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r14 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + + // 2DArray + float r30 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r32 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r34 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + // CubeArray + float r60 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r62 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r64 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.basic.dx10.frag new file mode 100644 index 0000000000..841530a1d1 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.basic.dx10.frag @@ -0,0 +1,61 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r00 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + float r02 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + float r04 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + + // 2D + float r20 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r22 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r24 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + + // *** There's no SampleCmpLevelZero on 3D textures + + float r50 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r52 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r54 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.offset.dx10.frag new file mode 100644 index 0000000000..290774e27e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.offset.dx10.frag @@ -0,0 +1,66 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r01 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + float r03 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + float r05 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + + // 2D + float r21 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r23 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r25 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + + // *** There's no SampleCmpLevelZero on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + // Cube + // float r51 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + // float r53 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + // float r55 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag new file mode 100644 index 0000000000..b57502eaae --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag @@ -0,0 +1,67 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r11 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r13 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r15 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + + // 2DArray + float r31 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r33 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r35 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + // *** There's no SampleCmpLevelZero on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + + // CubeArray + // float r61 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r63 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r65 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplegrad.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplegrad.array.dx10.frag new file mode 100644 index 0000000000..c442b7f8ea --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplegrad.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplegrad.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplegrad.basic.dx10.frag new file mode 100644 index 0000000000..84236f2ab9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplegrad.basic.dx10.frag @@ -0,0 +1,51 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplegrad.basic.dx10.vert b/deps/glslang/glslang/Test/hlsl.samplegrad.basic.dx10.vert new file mode 100644 index 0000000000..43ec621376 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplegrad.basic.dx10.vert @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplegrad.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplegrad.offset.dx10.frag new file mode 100644 index 0000000000..c643be2528 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplegrad.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2, 1); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2, 1); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2, 1); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplegrad.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplegrad.offsetarray.dx10.frag new file mode 100644 index 0000000000..3adcd1846a --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplegrad.offsetarray.dx10.frag @@ -0,0 +1,39 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplelevel.array.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplelevel.array.dx10.frag new file mode 100644 index 0000000000..c52aeb29c5 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplelevel.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4a . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval11 = g_tTex1di4a . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75); + uint4 txval12 = g_tTex1du4a . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + + float4 txval20 = g_tTex2df4a . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval21 = g_tTex2di4a . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75); + uint4 txval22 = g_tTex2du4a . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75); + + float4 txval40 = g_tTexcdf4a . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + int4 txval41 = g_tTexcdi4a . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75); + uint4 txval42 = g_tTexcdu4a . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplelevel.basic.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplelevel.basic.dx10.frag new file mode 100644 index 0000000000..fb363ae8f0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplelevel.basic.dx10.frag @@ -0,0 +1,52 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplelevel.basic.dx10.vert b/deps/glslang/glslang/Test/hlsl.samplelevel.basic.dx10.vert new file mode 100644 index 0000000000..03febcffab --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplelevel.basic.dx10.vert @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplelevel.offset.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplelevel.offset.dx10.frag new file mode 100644 index 0000000000..1490611663 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplelevel.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75, 1); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75, 1); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75, 1); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75, int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75, int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75, int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.samplelevel.offsetarray.dx10.frag b/deps/glslang/glslang/Test/hlsl.samplelevel.offsetarray.dx10.frag new file mode 100644 index 0000000000..5c7bd71afe --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.samplelevel.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, 0); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75, 1); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, 2); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(0,0)); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75, int2(0,0)); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75, int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.scalar-length.frag b/deps/glslang/glslang/Test/hlsl.scalar-length.frag new file mode 100644 index 0000000000..2b7ebdb92d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.scalar-length.frag @@ -0,0 +1,6 @@ +float4 main() : SV_Target0 +{ + float4 test = { 0, 1, 2, 3 }; + + return length(test.a); +} diff --git a/deps/glslang/glslang/Test/hlsl.scalar2matrix.frag b/deps/glslang/glslang/Test/hlsl.scalar2matrix.frag new file mode 100644 index 0000000000..406887574b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.scalar2matrix.frag @@ -0,0 +1,28 @@ + +void Fn1(float4x4 p) { } + +float4 main() : SV_TARGET +{ + const float4x4 mat1c = 0.20; + const float4x4 mat2c = {2, 2.1, 2.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + const float4x4 mat3c = (float4x4)float1(0.1); + + float4x4 mat1 = 0.25; + float4x4 mat2 = {3, 3.1, 3.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + float4x4 mat3 = (float4x4)0.375; + // float4x4 mat5 = (float4x4)Fn2(); // TODO: enable when compex rvalue handling is in place + + float4x4 mat4; + mat4 = 0.75; + mat4 = float4x4(4, 4.1, 4.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + mat4 = (float4x4)0.5; + + mat4 *= 0.75; + mat4 += 0.75; + mat4 -= 0.5; + mat4 /= 2.0; + + Fn1(5.0); // test calling fn accepting matrix with scalar type + + return mat1c[0] + mat3c[0] + mat1[1] + mat4[2]; +} diff --git a/deps/glslang/glslang/Test/hlsl.scalarCast.vert b/deps/glslang/glslang/Test/hlsl.scalarCast.vert new file mode 100644 index 0000000000..83bfd6eb20 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.scalarCast.vert @@ -0,0 +1,37 @@ +struct VertexOut { + float4 position : SV_Position; + float2 texCoord : TEXCOORD; +}; +VertexOut r0() { + const float f = 2.0; + return (VertexOut)f; +} +VertexOut r1() { + const float f = 2.0; + return (VertexOut)(f + 1.0); +} +VertexOut r2() { + const float f = 2.0; + return (VertexOut)(sin(f)); +} +VertexOut r3() { + float f = 2.0; + return (VertexOut)f; +} +VertexOut r4() { + float f = 2.0; + return (VertexOut)(f + 1.0); +} +VertexOut r5() { + float f = 2.0; + return (VertexOut)(sin(f)); +} +VertexOut main() { + VertexOut v0 = r0(); + VertexOut v1 = r1(); + VertexOut v2 = r2(); + VertexOut v3 = r3(); + VertexOut v4 = r4(); + VertexOut v5 = r5(); + return (VertexOut)1; +} diff --git a/deps/glslang/glslang/Test/hlsl.scope.frag b/deps/glslang/glslang/Test/hlsl.scope.frag new file mode 100644 index 0000000000..a5309ca2a6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.scope.frag @@ -0,0 +1,30 @@ +void PixelShaderFunction(float4 input) : COLOR0 +{ + int x; + x; + { + float x; + x; + { + bool x; + x; + { + float3 x; + x; + } + x; + } + x; + } + x; + + if (x > 0) + bool x; + + while (x > 0) + bool x; + + do { + bool x; + } while (x > 0); +} diff --git a/deps/glslang/glslang/Test/hlsl.self_cast.frag b/deps/glslang/glslang/Test/hlsl.self_cast.frag new file mode 100644 index 0000000000..8ef402708f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.self_cast.frag @@ -0,0 +1,25 @@ +struct Test0 {}; +struct Test1 { float f; }; + +void main() +{ + { + Test0 a; + Test0 b = (Test0)a; + } + + { + Test1 a; + Test1 b = (Test1)a; + } + + { + Test0 a[2]; + Test0 b[2] = (Test0[2])a; + } + + { + Test1 a[2]; + Test1 b[2] = (Test1[2])a; + } +} diff --git a/deps/glslang/glslang/Test/hlsl.semantic-1.vert b/deps/glslang/glslang/Test/hlsl.semantic-1.vert new file mode 100644 index 0000000000..ec92428caf --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.semantic-1.vert @@ -0,0 +1,24 @@ +#define DLAYER 3 + +#define DMACRO1 TEXCOORD1 +#define DMACRO(num) TEXCOORD##num + +struct S { + float4 pos : POSITION; + float2 UV0 : TEXCOORD0; + float2 UV1 : DMACRO1; + float2 UV2 : DMACRO(2); + float2 UV3 : DMACRO(DLAYER); +}; + + +S main(float4 v : POSITION) +{ + S s; + s.pos = v; + s.UV0 = float2(v.x,v.x); + s.UV1 = float2(v.y,v.y); + s.UV2 = float2(v.z,v.z); + s.UV3 = float2(v.w,v.w); + return s; +} diff --git a/deps/glslang/glslang/Test/hlsl.semantic.geom b/deps/glslang/glslang/Test/hlsl.semantic.geom new file mode 100644 index 0000000000..fc6a53ab4c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.semantic.geom @@ -0,0 +1,16 @@ +struct S { + float clip0 : SV_Position; + float clip0 : SV_ClipDistance0; + float cull0 : SV_CullDistance0; + uint vpai : SV_ViewportArrayIndex; + uint rtai : SV_RenderTargetArrayIndex; + int ii : SV_InstanceID; +}; + +[maxvertexcount(4)] +void main(triangle in uint VertexID[3] : VertexID, + inout LineStream OutputStream) +{ + S s; + OutputStream.Append(s); +} diff --git a/deps/glslang/glslang/Test/hlsl.semantic.vert b/deps/glslang/glslang/Test/hlsl.semantic.vert new file mode 100644 index 0000000000..1845dc3c72 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.semantic.vert @@ -0,0 +1,13 @@ +struct S { + float clip0 : SV_ClipDistance0; + float clip1 : SV_ClipDistance1; + float cull0 : SV_CullDistance0; + float cull1 : SV_CullDistance1; + int ii : SV_InstanceID; +}; + +S main(S ins) +{ + S s; + return s; +} diff --git a/deps/glslang/glslang/Test/hlsl.semicolons.frag b/deps/glslang/glslang/Test/hlsl.semicolons.frag new file mode 100644 index 0000000000..28fdedd997 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.semicolons.frag @@ -0,0 +1,19 @@ + +void MyFunc() { } + +;;; +; +; ; ; // HLSL allows stray global scope semicolons. + +void MyFunc2() {;;;}; + +struct PS_OUTPUT { float4 color : SV_Target0; };;;;; + +;PS_OUTPUT main() +{ + PS_OUTPUT ps_output;;; + ; + ps_output.color = 1.0; + return ps_output; +}; + diff --git a/deps/glslang/glslang/Test/hlsl.shapeConv.frag b/deps/glslang/glslang/Test/hlsl.shapeConv.frag new file mode 100644 index 0000000000..bc09d80a35 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.shapeConv.frag @@ -0,0 +1,49 @@ +float4 PixelShaderFunction(float4 input, float f) : COLOR0 +{ + float4 v; + v = 1; + v = 2.0; + v = f; + float3 u; + u = float(1); + u = float(2.0); + u = float(f); + float2 w = 2.0; + float V = 1; + float3 MyVal = V; + + float3 foo; + foo > 4.0; + foo >= 5.0; + 6.0 < foo; + 7.0 <= foo; + + all(v.x == v); + any(f != v); + + float1 f1; + + f1 == v; + v < f1; + f1.x; + f1.xxx; + + const float4 f4 = 3.0; + + uint ui; + uint3 ui3; + + ui >> ui3; + ui3 >> ui; + + v *= f1; + f1 *= v; + + float3 mixed = u * v; + f = u; + f1 = u; + float sf = v; + float1 sf1 = v; + + return input * f4; +} diff --git a/deps/glslang/glslang/Test/hlsl.shapeConvRet.frag b/deps/glslang/glslang/Test/hlsl.shapeConvRet.frag new file mode 100644 index 0000000000..7d7755821a --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.shapeConvRet.frag @@ -0,0 +1,9 @@ +int3 foo() +{ + return 13; +} + +float4 main(float f) +{ + return f; +} diff --git a/deps/glslang/glslang/Test/hlsl.shift.per-set.frag b/deps/glslang/glslang/Test/hlsl.shift.per-set.frag new file mode 100644 index 0000000000..9c29f9d96c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.shift.per-set.frag @@ -0,0 +1,59 @@ +// Test register class offsets for different resource types + +SamplerState s1 : register(s1, space1); +SamplerComparisonState s2 : register(s2, space2); + +Texture1D t1 : register(t1, space1); +Texture2D t2 : register(t2, space1); +Texture3D t3 : register(t1, space2); + +StructuredBuffer t4 : register(t1, space3); + +ByteAddressBuffer t5 : register(t2, space3); +Buffer t6 : register(t3, space3); + +RWTexture1D u1 : register(u1, space1); +RWTexture2D u2 : register(u2, space2); +RWTexture3D u3 : register(u3, space2); + +RWBuffer u4 : register(u4, space1); +RWByteAddressBuffer u5 : register(u4, space2); +RWStructuredBuffer u6 : register(u4, space3); +AppendStructuredBuffer u7 : register(u4, space4); +ConsumeStructuredBuffer u8 : register(u4, space5); + +cbuffer cb : register(b1, space6) { + int cb1; +}; + +tbuffer tb : register(t7) { + int tb1; +}; + +float4 main() : SV_Target0 +{ + t1; + t2; + t3; + t4[0]; + t5.Load(0); + t6; + + s1; + s2; + + u1; + u2; + u3; + + u4[0]; + u5.Load(0); + u6[0]; + u7; + u8; + + cb1; + tb1; + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.sin.frag b/deps/glslang/glslang/Test/hlsl.sin.frag new file mode 100644 index 0000000000..edf087deb4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.sin.frag @@ -0,0 +1,4 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return sin(input); +} diff --git a/deps/glslang/glslang/Test/hlsl.snorm.uav.comp b/deps/glslang/glslang/Test/hlsl.snorm.uav.comp new file mode 100644 index 0000000000..c6cafebeb9 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.snorm.uav.comp @@ -0,0 +1,15 @@ + +unorm float4 uf4; + +Texture3D ResultInU: register(t0); +RWTexture3D ResultOutU: register(u0); + +Texture3D ResultInS: register(t1); +RWTexture3D ResultOutS: register(u1); + +[numthreads(16, 16, 1)] +void main(uint3 tid: SV_DispatchThreadID) +{ + ResultOutS[tid] = ResultInS[tid] + uf4; + ResultOutU[tid] = ResultInU[tid]; +} diff --git a/deps/glslang/glslang/Test/hlsl.staticMemberFunction.frag b/deps/glslang/glslang/Test/hlsl.staticMemberFunction.frag new file mode 100644 index 0000000000..700aa82c3e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.staticMemberFunction.frag @@ -0,0 +1,22 @@ +struct Test +{ + float4 memVar; + static float4 staticMemFun(float4 a) : SV_Position + { + return 2 * a; + } + static int staticMemFun(int a) : SV_Position + { + return 2 + a; + } + int i; +}; + +float4 main() : SV_Target0 +{ + Test test; + float4 f4 = float4(1.0,1.0,1.0,1.0); + f4 += Test::staticMemFun(float4(5.0f,5.0f,5.0f,5.0f)); + f4 += Test::staticMemFun(7); + return f4; +} diff --git a/deps/glslang/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp b/deps/glslang/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp new file mode 100644 index 0000000000..5400d81f0b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp @@ -0,0 +1,8 @@ +RWByteAddressBuffer buffer; + +[numthreads(64, 1, 1)] +void main( uint3 dispatchThreadID : SV_DispatchThreadID) +{ + if(dispatchThreadID.x == 0) + buffer.Store(0, 2); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.string.frag b/deps/glslang/glslang/Test/hlsl.string.frag new file mode 100644 index 0000000000..572e73b797 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.string.frag @@ -0,0 +1,12 @@ +string s = "string1"; +string e = ""; +string bracket < string a = "nested" ; > ; +string brackets < string b = "nest1" ; string c = "nest2" ; float test [ 4 ] = { 1.0 , 1.0 , 1.0 , 1.0 } ; vector a = float3(2.0); > ; +string brackete1 < > ; +string brackete2 < ; > ; +string brackete3 < ; ; > ; + +float main(float f) +{ + return f; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.stringtoken.frag b/deps/glslang/glslang/Test/hlsl.stringtoken.frag new file mode 100644 index 0000000000..fe785e6d6f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.stringtoken.frag @@ -0,0 +1,20 @@ + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +Texture2D TestTexture < + string TestAttribute1 = "TestAttribute"; + string TestAttribute2 = "false"; + int TestAttribute3 = 3; +>; + +uniform float4 TestUF ; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = float4(0,0,0,1); + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.frag b/deps/glslang/glslang/Test/hlsl.struct.frag new file mode 100644 index 0000000000..33199e0674 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.frag @@ -0,0 +1,53 @@ +struct { +}; + +struct { + bool b; +}; + +struct myS { + bool b, c; + float4 a, d; +}; + +myS s1; + +static class { + float4 i; +} s2; + +struct IN_S { + linear float4 a; + nointerpolation bool b; + noperspective centroid float1 c; + sample centroid float2 d; + bool ff1 : SV_IsFrontFace; + bool ff2 : packoffset(c0.y); + bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ; + float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) ; +}; + +float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]); +float ff6 : packoffset(c102.y) : register(s3[5]); + +struct empty {}; + +struct containEmpty { + empty e; +}; + +float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 +{ + class FS { + bool3 b3; + } s3; + + s3 == s3; + s2.i = s.ff4; + + containEmpty ce; + empty e; + e = ce.e; + + return input; +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split-1.vert b/deps/glslang/glslang/Test/hlsl.struct.split-1.vert new file mode 100644 index 0000000000..ce5f51f921 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split-1.vert @@ -0,0 +1,25 @@ + +struct VS_INPUT +{ + int x0_in : foo0; + float4 Pos_in : SV_Position; + int x1_in : foo1; +}; + +struct VS_OUTPUT +{ + int x0_out : foo0; + float4 Pos_out : SV_Position; + int x1_out : foo1; +}; + +VS_OUTPUT main(VS_INPUT vsin, float4 Pos_loose : SV_Position) +{ + VS_OUTPUT vsout; + + vsout.x0_out = vsin.x0_in; + vsout.Pos_out = vsin.Pos_in + Pos_loose; + vsout.x1_out = vsin.x1_in; + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split.array.geom b/deps/glslang/glslang/Test/hlsl.struct.split.array.geom new file mode 100644 index 0000000000..9008df1685 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split.array.geom @@ -0,0 +1,21 @@ +struct PSInput +{ + float4 Pos : SV_POSITION; + float2 TexCoord : TEXCOORD; + float3 TerrainPos : TERRAINPOS; + uint VertexID : VertexID; +}; + +typedef PSInput foo_t[2][3]; + +[maxvertexcount(4)] +void main(point uint v[1] : VertexID, inout TriangleStream OutputStream) +{ + foo_t Verts; + + PSInput Out = (PSInput) 0; + + for (int x=0; x<2; ++x) + for (int y=0; y<2; ++y) + Verts[x][y] = Out; +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split.assign.frag b/deps/glslang/glslang/Test/hlsl.struct.split.assign.frag new file mode 100644 index 0000000000..d9921f30e6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split.assign.frag @@ -0,0 +1,12 @@ +struct S { + float f; + float4 pos : SV_Position; +}; + +float4 main(int i, S input[3]) : COLOR0 +{ + S a[3]; + input = a; + + return a[1].pos; +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split.call.vert b/deps/glslang/glslang/Test/hlsl.struct.split.call.vert new file mode 100644 index 0000000000..543adebb36 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split.call.vert @@ -0,0 +1,32 @@ +// Test passing split structs to functions. + +struct VS_INPUT +{ + int x0_in : foo0; + float4 Pos_in : SV_Position; + int x1_in : foo1; +}; + +struct VS_OUTPUT +{ + int x0_out : foo0; + float4 Pos_out : SV_Position; + int x1_out : foo1; +}; + +void Fn1(VS_INPUT fn1_in, VS_OUTPUT fn1_out) { + fn1_in.Pos_in + fn1_out.Pos_out; +} + +VS_OUTPUT main(VS_INPUT vsin) +{ + VS_OUTPUT vsout; + + vsout.x0_out = vsin.x0_in; + vsout.Pos_out = vsin.Pos_in; + vsout.x1_out = vsin.x1_in; + + Fn1(vsin, vsout); + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split.nested.geom b/deps/glslang/glslang/Test/hlsl.struct.split.nested.geom new file mode 100644 index 0000000000..8bcc5b994a --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split.nested.geom @@ -0,0 +1,34 @@ + +struct STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO +{ + float m0_array[2] : mysemA; + int m1 : mysemB; +}; + +struct PS_IN +{ + float4 pos : SV_Position; + float2 tc : TEXCOORD0; + // float c : SV_ClipDistance0; +}; + +struct GS_OUT +{ + PS_IN psIn; + STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO contains_no_builtin_io; +}; + + +[maxvertexcount(3)] +void main(triangle PS_IN tin[3], inout TriangleStream ts ) +{ + GS_OUT o; + + o.psIn.pos = float4(1,2,3,4); + o.psIn.tc = float2(5,6); + o.contains_no_builtin_io.m0_array[0] = 2.3; + o.contains_no_builtin_io.m0_array[1] = 2.3; + o.contains_no_builtin_io.m1 = 2; + + ts.Append(o); +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split.trivial.geom b/deps/glslang/glslang/Test/hlsl.struct.split.trivial.geom new file mode 100644 index 0000000000..343da38e1c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split.trivial.geom @@ -0,0 +1,21 @@ + +struct PS_IN +{ + float4 pos : SV_Position; +}; + +struct GS_OUT +{ + float4 pos : SV_Position; +}; + +[maxvertexcount(3)] +void main(triangle PS_IN i[3], inout TriangleStream ts) +{ + GS_OUT o; + + for (int x=0; x<3; ++x) { + o.pos = i[x].pos; + ts.Append(o); + } +} diff --git a/deps/glslang/glslang/Test/hlsl.struct.split.trivial.vert b/deps/glslang/glslang/Test/hlsl.struct.split.trivial.vert new file mode 100644 index 0000000000..351e4182ae --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.struct.split.trivial.vert @@ -0,0 +1,22 @@ + +// Test trivial case for structure splitting: the IN and OUT structs have ONLY an interstage IO. +// This should fall back to flattening, and not produce any empty structures. + +struct VS_INPUT +{ + float4 Pos_in : SV_Position; +}; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main(VS_INPUT vsin, float4 Pos_loose : SV_Position) +{ + VS_OUTPUT vsout; + + vsout.Pos = vsin.Pos_in + Pos_loose; + + return vsout; +} diff --git a/deps/glslang/glslang/Test/hlsl.structIoFourWay.frag b/deps/glslang/glslang/Test/hlsl.structIoFourWay.frag new file mode 100644 index 0000000000..bca135e733 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structIoFourWay.frag @@ -0,0 +1,18 @@ +struct T { + float f : packoffset(c4.y); // artificial, but validates all different treatments: uniform offset + centroid float g; // interpolant input + float d: SV_DepthGreaterEqual; // fragment output + float4 normal; // non-IO +}; + +T s; // loose uniform + +cbuffer buff { + T t : packoffset(c5.z); +}; + +T main(T t : myInput) : SV_Target0 +{ + T local; + return local; +} diff --git a/deps/glslang/glslang/Test/hlsl.structStructName.frag b/deps/glslang/glslang/Test/hlsl.structStructName.frag new file mode 100644 index 0000000000..f8bf90c74e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structStructName.frag @@ -0,0 +1,7 @@ +struct S { int s; }; + +int main() +{ + struct S t; + return t.s; +} diff --git a/deps/glslang/glslang/Test/hlsl.structarray.flatten.frag b/deps/glslang/glslang/Test/hlsl.structarray.flatten.frag new file mode 100644 index 0000000000..eedb931da6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structarray.flatten.frag @@ -0,0 +1,28 @@ +SamplerState g_samp; +Texture1D g_tex; + +struct tex_t { + SamplerState samp; + Texture1D tex; + int nonopaque_thing; +}; + +struct tex_with_arrays_t { + SamplerState samp[2]; + Texture1D tex[2]; + int nonopaque_thing; +}; + +uniform tex_t g_texdata; +uniform tex_t g_texdata_array[3]; +uniform tex_with_arrays_t g_texdata_array2[3]; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +void main(out PS_OUTPUT ps_output) +{ + ps_output.color = + g_texdata.tex.Sample(g_texdata.samp, 0.5) + + g_texdata_array[1].tex.Sample(g_texdata_array[1].samp, 0.4) + + g_texdata_array2[1].tex[0].Sample(g_texdata_array2[1].samp[0], 0.3); +} diff --git a/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom b/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom new file mode 100644 index 0000000000..990532d32e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structarray.flatten.geom @@ -0,0 +1,23 @@ + +struct VertexData { + float4 position : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +struct PS_IN { + float4 position : SV_POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +[maxvertexcount(4)] +void main(line VertexData vin[2], inout TriangleStream outStream) +{ + PS_IN vout; + + vout.color = vin[1].color; + vout.uv = vin[1].uv; + vout.position = vin[1].position; + outStream.Append(vout); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.append.fn.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.append.fn.frag new file mode 100644 index 0000000000..668bc1e8ea --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.append.fn.frag @@ -0,0 +1,23 @@ + +// float4 Fn1(ConsumeStructuredBuffer arg_c) +// { +// return arg_c.Consume(); +// } + +float4 Fn2(AppendStructuredBuffer arg_a, ConsumeStructuredBuffer arg_c) +{ + arg_a.Append(float4(1,2,3,4)); + return arg_c.Consume(); +} + +AppendStructuredBuffer sbuf_a; +ConsumeStructuredBuffer sbuf_c; + +AppendStructuredBuffer sbuf_unused; + +float4 main(uint pos : FOO) : SV_Target0 +{ + // Fn1(sbuf_c); + + return Fn2(sbuf_a, sbuf_c); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.append.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.append.frag new file mode 100644 index 0000000000..4c4bc3fc56 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.append.frag @@ -0,0 +1,11 @@ +AppendStructuredBuffer sbuf_a; +ConsumeStructuredBuffer sbuf_c; + +AppendStructuredBuffer sbuf_unused; + +float4 main(uint pos : FOO) : SV_Target0 +{ + sbuf_a.Append(float4(1,2,3,4)); + + return sbuf_c.Consume(); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.atomics.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.atomics.frag new file mode 100644 index 0000000000..f389e27981 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.atomics.frag @@ -0,0 +1,25 @@ + +RWByteAddressBuffer sbuf; + +float4 main(uint pos : FOO) : SV_Target0 +{ + uint u; + + sbuf.InterlockedAdd(8, 1); + sbuf.InterlockedAdd(8, 1, u); + sbuf.InterlockedAnd(8, 1); + sbuf.InterlockedAnd(8, 1, u); + sbuf.InterlockedCompareExchange(8, 1, 2, u); + // sbuf.InterlockedCompareStore(8, 1, 2); // TODO: ... + sbuf.InterlockedExchange(8, 1, u); + sbuf.InterlockedMax(8, 1); + sbuf.InterlockedMax(8, 1, u); + sbuf.InterlockedMin(8, 1); + sbuf.InterlockedMin(8, 1, u); + sbuf.InterlockedOr(8, 1); + sbuf.InterlockedOr(8, 1, u); + sbuf.InterlockedXor(8, 1); + sbuf.InterlockedXor(8, 1, u); + + return sbuf.Load(pos); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.byte.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.byte.frag new file mode 100644 index 0000000000..2d504da1cf --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.byte.frag @@ -0,0 +1,13 @@ + +ByteAddressBuffer sbuf; + +float4 main(uint pos : FOO) : SV_Target0 +{ + uint size; + sbuf.GetDimensions(size); + + return sbuf.Load(pos) + + float4(sbuf.Load2(pos+4), 0, 0) + + float4(sbuf.Load3(pos+8), 0) + + sbuf.Load4(pos+12); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.coherent.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.coherent.frag new file mode 100644 index 0000000000..1c60ef5aa4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.coherent.frag @@ -0,0 +1,23 @@ +struct sb_t +{ + float3 color; + bool test; +}; + + +globallycoherent RWStructuredBuffer sbuf; +globallycoherent RWStructuredBuffer sbuf2; + +float4 main(uint pos : FOO) : SV_Target0 +{ + sbuf2[pos+1] = 42; + + uint size; + uint stride; + sbuf.GetDimensions(size, stride); + + if (sbuf[pos].test) + return float4(sbuf[pos].color + sbuf2[pos], 0); + else + return size + stride; +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.floatidx.comp b/deps/glslang/glslang/Test/hlsl.structbuffer.floatidx.comp new file mode 100644 index 0000000000..0ddf0c21c4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.floatidx.comp @@ -0,0 +1,19 @@ +struct sb_t +{ + float4 color; + uint2 threadId; +}; + +RWTexture2D outtx; +ConsumeStructuredBuffer csb : register(u1); +RWStructuredBuffer rwsb; + +[numthreads(1, 1, 1)] +void main(uint3 nThreadId : SV_DispatchThreadID) +{ + sb_t data = csb.Consume(); + float2 coord = float2(data.threadId.xy); + outtx[coord] = data.color; + + rwsb[coord.x] = rwsb.Load(coord.y); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.fn.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.fn.frag new file mode 100644 index 0000000000..d043d3b534 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.fn.frag @@ -0,0 +1,24 @@ + +StructuredBuffer sbuf : register(t10); + +uint4 get(in StructuredBuffer sb, uint bufferOffset) +{ + return sb[bufferOffset]; +} + +void set(in RWStructuredBuffer sb, uint bufferOffset, uint4 data) +{ + sb[bufferOffset] = data; +} + +RWStructuredBuffer sbuf2; + +// Not shared, because of type difference. +StructuredBuffer sbuf3 : register(t12); + +float4 main(uint pos : FOO) : SV_Target0 +{ + set(sbuf2, 2, get(sbuf, 3)); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.fn2.comp b/deps/glslang/glslang/Test/hlsl.structbuffer.fn2.comp new file mode 100644 index 0000000000..e651e91939 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.fn2.comp @@ -0,0 +1,15 @@ +ByteAddressBuffer g_input: register(t0); +RWBuffer g_output : register(u1); + +uint2 testLoad(uint loc, ByteAddressBuffer buffer) +{ + uint2 result = buffer.Load2(loc); + return result; +} + +[numthreads(256, 1, 1)] +void main(uint dispatchId : SV_DispatchThreadID) +{ + uint2 result = testLoad(dispatchId, g_input); + g_output[dispatchId] = result; +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.frag new file mode 100644 index 0000000000..4eb6912bf4 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.frag @@ -0,0 +1,23 @@ +struct sb_t +{ + float3 color; + bool test; + bool test2; +}; // stride = 20 + +StructuredBuffer sbuf : register(c10); +StructuredBuffer sbuf2; + +float4 main(uint pos : FOO) : SV_Target0 +{ + sb_t mydata = sbuf.Load(pos); + + uint size; + uint stride; + sbuf.GetDimensions(size, stride); + + if (sbuf[pos].test) + return float4(sbuf[pos].color + sbuf2[pos], 0); + else + return mydata.color.x + size + stride; +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.incdec.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.incdec.frag new file mode 100644 index 0000000000..108dcb6103 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.incdec.frag @@ -0,0 +1,19 @@ +RWStructuredBuffer sbuf_rw_i; +RWStructuredBuffer sbuf_rw_d; + +RWStructuredBuffer sbuf_rw_nocounter; // doesn't use inc or dec + +float4 main(uint pos : FOO) : SV_Target0 +{ + uint4 result = 0; + + sbuf_rw_i[7]; + sbuf_rw_d[7]; + + sbuf_rw_nocounter[5] = 2; + + uint c1 = sbuf_rw_i.IncrementCounter(); + uint c2 = sbuf_rw_d.DecrementCounter(); + + return float4(result.x, result.y, c1, c2); +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.rw.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.rw.frag new file mode 100644 index 0000000000..31104847c6 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.rw.frag @@ -0,0 +1,23 @@ +struct sb_t +{ + float3 color; + bool test; +}; + + +RWStructuredBuffer sbuf; +RWStructuredBuffer sbuf2; + +float4 main(uint pos : FOO) : SV_Target0 +{ + sbuf2[pos+1] = 42; + + uint size; + uint stride; + sbuf.GetDimensions(size, stride); + + if (sbuf[pos].test) + return float4(sbuf[pos].color + sbuf2[pos], 0); + else + return size + stride; +} diff --git a/deps/glslang/glslang/Test/hlsl.structbuffer.rwbyte.frag b/deps/glslang/glslang/Test/hlsl.structbuffer.rwbyte.frag new file mode 100644 index 0000000000..d0b957d75c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structbuffer.rwbyte.frag @@ -0,0 +1,15 @@ + +RWByteAddressBuffer sbuf; + +float4 main(uint pos : FOO) : SV_Target0 +{ + uint size; + sbuf.GetDimensions(size); + + sbuf.Store(pos, sbuf.Load(pos)); + sbuf.Store2(pos, sbuf.Load2(pos)); + sbuf.Store3(pos, sbuf.Load3(pos)); + sbuf.Store4(pos, sbuf.Load4(pos)); + + return sbuf.Load(pos); +} diff --git a/deps/glslang/glslang/Test/hlsl.structin.vert b/deps/glslang/glslang/Test/hlsl.structin.vert new file mode 100644 index 0000000000..20a26dd9eb --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.structin.vert @@ -0,0 +1,17 @@ +struct VI { + float4 m[2] : mysemA; + float4 coord : SV_POSITION; + linear float4 b : mysemB; +}; + +VI main(float4 d : mysem, VI vi, float4 e : mysem) +{ + VI local; + + local.b = vi.m[1] + vi.m[0] + (float4)vi.coord.x + d + e; + local.coord = (float4)1; + local.m[0] = (float4)2; + local.m[1] = (float4)3; + + return local; +} diff --git a/deps/glslang/glslang/Test/hlsl.subpass.frag b/deps/glslang/glslang/Test/hlsl.subpass.frag new file mode 100644 index 0000000000..20a717f8fc --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.subpass.frag @@ -0,0 +1,113 @@ + +layout(input_attachment_index = 1) SubpassInput subpass_f4 : register(t1); +layout(input_attachment_index = 2) SubpassInput subpass_i4; +layout(input_attachment_index = 3) SubpassInput subpass_u4; + +layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f4; +layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i4; +layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u4; + +layout(input_attachment_index = 1) SubpassInput subpass_f3; +layout(input_attachment_index = 2) SubpassInput subpass_i3; +layout(input_attachment_index = 3) SubpassInput subpass_u3; + +layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f3; +layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i3; +layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u3; + +layout(input_attachment_index = 1) SubpassInput subpass_f2; +layout(input_attachment_index = 2) SubpassInput subpass_i2; +layout(input_attachment_index = 3) SubpassInput subpass_u2; + +layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f2; +layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i2; +layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u2; + +layout(input_attachment_index = 1) SubpassInput subpass_f; +layout(input_attachment_index = 2) SubpassInput subpass_i; +layout(input_attachment_index = 3) SubpassInput subpass_u; + +layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f; +layout(input_attachment_index = 5) SubpassInputMS subpass_ms_i; +layout(input_attachment_index = 6) SubpassInputMS subpass_ms_u; + +[[vk::input_attachment_index(7)]] SubpassInput subpass_2; + +struct mystruct_f_t +{ + float c0; + float2 c1; + float c2; +}; + +struct mystruct_i_t +{ + int c0; + int2 c1; + int c2; +}; + +struct mystruct_u_t +{ + uint c0; + uint2 c1; + uint c2; +}; + +// TODO: ... +// layout(input_attachment_index = 7) SubpassInput subpass_fs; +// layout(input_attachment_index = 8) SubpassInputMS subpass_ms_fs; + +// layout(input_attachment_index = 7) SubpassInput subpass_is; +// layout(input_attachment_index = 8) SubpassInputMS subpass_ms_is; + +// layout(input_attachment_index = 7) SubpassInput subpass_us; +// layout(input_attachment_index = 8) SubpassInputMS subpass_ms_us; + +float4 main() : SV_Target0 +{ + float4 result00 = subpass_f4.SubpassLoad(); + int4 result01 = subpass_i4.SubpassLoad(); + uint4 result02 = subpass_u4.SubpassLoad(); + + float4 result10 = subpass_ms_f4.SubpassLoad(3); + int4 result11 = subpass_ms_i4.SubpassLoad(3); + uint4 result12 = subpass_ms_u4.SubpassLoad(3); + + float3 result20 = subpass_f3.SubpassLoad(); + int3 result21 = subpass_i3.SubpassLoad(); + uint3 result22 = subpass_u3.SubpassLoad(); + + float3 result30 = subpass_ms_f3.SubpassLoad(3); + int3 result31 = subpass_ms_i3.SubpassLoad(3); + uint3 result32 = subpass_ms_u3.SubpassLoad(3); + + float2 result40 = subpass_f2.SubpassLoad(); + int2 result41 = subpass_i2.SubpassLoad(); + uint2 result42 = subpass_u2.SubpassLoad(); + + float2 result50 = subpass_ms_f2.SubpassLoad(2); + int2 result51 = subpass_ms_i2.SubpassLoad(2); + uint2 result52 = subpass_ms_u2.SubpassLoad(2); + + float result60 = subpass_f.SubpassLoad(); + int result61 = subpass_i.SubpassLoad(); + uint result62 = subpass_u.SubpassLoad(); + + float result70 = subpass_ms_f.SubpassLoad(2); + int result71 = subpass_ms_i.SubpassLoad(2); + uint result72 = subpass_ms_u.SubpassLoad(2); + + float4 result73 = subpass_2.SubpassLoad(); + + // TODO: + // mystruct_f_t result80 = subpass_fs.SubpassLoad(); + // mystruct_i_t result81 = subpass_is.SubpassLoad(); + // mystruct_u_t result82 = subpass_us.SubpassLoad(); + + // mystruct_f_t result90 = subpass_ms_sf.SubpassLoad(2); + // mystruct_i_t result91 = subpass_ms_if.SubpassLoad(2); + // mystruct_u_t result92 = subpass_ms_uf.SubpassLoad(2); + + return 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.switch.frag b/deps/glslang/glslang/Test/hlsl.switch.frag new file mode 100644 index 0000000000..78ebfef343 --- /dev/null +++ b/deps/glslang/glslang/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; + } + + [branch] 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/deps/glslang/glslang/Test/hlsl.swizzle.frag b/deps/glslang/glslang/Test/hlsl.swizzle.frag new file mode 100644 index 0000000000..9e87c6d773 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.swizzle.frag @@ -0,0 +1,6 @@ +static float4 AmbientColor = float4(1, 0.5, 0, 1); + +float4 ShaderFunction(float4 input) : COLOR0 +{ + return input.wwyx * float4(AmbientColor.z); +} diff --git a/deps/glslang/glslang/Test/hlsl.synthesizeInput.frag b/deps/glslang/glslang/Test/hlsl.synthesizeInput.frag new file mode 100644 index 0000000000..c4b2fa4c82 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.synthesizeInput.frag @@ -0,0 +1,9 @@ +struct PSInput { + float interp; + uint no_interp; +}; + +float4 main(PSInput input : INPUT) : SV_TARGET +{ + return float4(float(input.no_interp), input.interp, 0, 1); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.target.frag b/deps/glslang/glslang/Test/hlsl.target.frag new file mode 100644 index 0000000000..5317236a04 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.target.frag @@ -0,0 +1,10 @@ +struct PSInput { + float interp; + uint no_interp; +}; + +void main(PSInput input : INPUT, out float4 out1 : SV_TARGET1, out float4 out2 : SV_TARGET3) +{ + out1 = 1; + out2 = 0; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.targetStruct1.frag b/deps/glslang/glslang/Test/hlsl.targetStruct1.frag new file mode 100644 index 0000000000..7fcc0827d3 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.targetStruct1.frag @@ -0,0 +1,19 @@ +struct PSInput { + float interp; + uint no_interp; +}; + +struct PSOutput { + float4 o1 : SV_TARGET2; + float4 o2 : SV_TARGET1; +}; + +PSOutput main(PSInput input : INPUT, out float4 po : SV_TARGET0) +{ + PSOutput pso; + pso.o1 = float4(float(input.no_interp), input.interp, 0, 1); + pso.o2 = 1; + po = 0; + + return pso; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.targetStruct2.frag b/deps/glslang/glslang/Test/hlsl.targetStruct2.frag new file mode 100644 index 0000000000..e62ba0f6e2 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.targetStruct2.frag @@ -0,0 +1,19 @@ +struct PSInput { + float interp; + uint no_interp; +}; + +struct PSOutput { + float4 o1 : SV_TARGET1; + float4 o2 : SV_TARGET0; +}; + +PSOutput main(PSInput input : INPUT, out float4 po : SV_TARGET0) : SV_TARGET2 +{ + PSOutput pso; + pso.o1 = float4(float(input.no_interp), input.interp, 0, 1); + pso.o2 = 1; + po = 0; + + return pso; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.templatetypes.frag b/deps/glslang/glslang/Test/hlsl.templatetypes.frag new file mode 100644 index 0000000000..379120d9bd --- /dev/null +++ b/deps/glslang/glslang/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/deps/glslang/glslang/Test/hlsl.templatetypes.negative.frag b/deps/glslang/glslang/Test/hlsl.templatetypes.negative.frag new file mode 100644 index 0000000000..aa54f3c683 --- /dev/null +++ b/deps/glslang/glslang/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/deps/glslang/glslang/Test/hlsl.texture.struct.frag b/deps/glslang/glslang/Test/hlsl.texture.struct.frag new file mode 100644 index 0000000000..461469cd48 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.texture.struct.frag @@ -0,0 +1,55 @@ +struct s1_t { + float c0; + float2 c1; + float c2; +}; + +struct s2_t { + float c0; + float3 c1; +}; + +struct s3_t { + float2 c0; + float1 c1; +}; + +struct s4_t { + int c0; + int2 c1; + int c2; +}; + +struct s5_t { + uint c0; + uint c1; +}; + +SamplerState g_sSamp; +Texture2D g_tTex2s1; +Texture2D g_tTex2s2; +Texture2D g_tTex2s3; +Texture2D g_tTex2s4; +Texture2D g_tTex2s5; + +Texture2D g_tTex2s1a; // same type as g_tTex2s1, to test fn signature matching. + +// function overloading to test name mangling with textures templatized on structs +s1_t fn1(Texture2D t1) { return t1 . Sample(g_sSamp, float2(0.6, 0.61)); } +s2_t fn1(Texture2D t2) { return t2 . Sample(g_sSamp, float2(0.6, 0.61)); } + +float4 main() : SV_Target0 +{ + s1_t s1 = g_tTex2s1 . Sample(g_sSamp, float2(0.1, 0.11)); + s2_t s2 = g_tTex2s2 . Sample(g_sSamp, float2(0.2, 0.21)); + s3_t s3 = g_tTex2s3 . Sample(g_sSamp, float2(0.3, 0.31)); + s4_t s4 = g_tTex2s4 . Sample(g_sSamp, float2(0.4, 0.41)); + s5_t s5 = g_tTex2s5 . Sample(g_sSamp, float2(0.5, 0.51)); + + s1_t r0 = fn1(g_tTex2s1); + s2_t r1 = fn1(g_tTex2s2); + s1_t r2 = fn1(g_tTex2s1a); + + return 0; +} + diff --git a/deps/glslang/glslang/Test/hlsl.texture.subvec4.frag b/deps/glslang/glslang/Test/hlsl.texture.subvec4.frag new file mode 100644 index 0000000000..56fd4106ce --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.texture.subvec4.frag @@ -0,0 +1,41 @@ + +Texture2DMS g_tTex2dmsf1; +Texture2DMS g_tTex2dmsf2; +Texture2DMS g_tTex2dmsf3; +Texture2DMS g_tTex2dmsf4; + +Texture2D g_tTex2df1; +Texture2D g_tTex2df2; +Texture2D g_tTex2df3; +Texture2D g_tTex2df4; + +SamplerState g_sSamp; + +float4 main() : SV_Target0 +{ + uint MipLevel; + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + g_tTex2dmsf1 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + g_tTex2dmsf2 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + g_tTex2dmsf3 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + g_tTex2dmsf1 . Load(int2(1,2), 3); + g_tTex2dmsf2 . Load(int2(1,2), 3); + g_tTex2dmsf3 . Load(int2(1,2), 3); + g_tTex2dmsf4 . Load(int2(1,2), 3); + + g_tTex2df1 . Sample(g_sSamp, float2(.1, .2)); + g_tTex2df2 . Sample(g_sSamp, float2(.1, .2)); + g_tTex2df3 . Sample(g_sSamp, float2(.1, .2)); + g_tTex2df4 . Sample(g_sSamp, float2(.1, .2)); + + return 0; +} + diff --git a/deps/glslang/glslang/Test/hlsl.texturebuffer.frag b/deps/glslang/glslang/Test/hlsl.texturebuffer.frag new file mode 100644 index 0000000000..d06974656c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.texturebuffer.frag @@ -0,0 +1,17 @@ + +struct Data { + float4 f; + int4 i; +}; + +TextureBuffer TextureBuffer_var : register(t0); + +tbuffer tbuf2 { + float4 f2; + int4 i2; +}; + +float4 main(float4 pos : SV_POSITION) : SV_TARGET +{ + return TextureBuffer_var.f + f2; +} diff --git a/deps/glslang/glslang/Test/hlsl.this.frag b/deps/glslang/glslang/Test/hlsl.this.frag new file mode 100644 index 0000000000..645fe5134f --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.this.frag @@ -0,0 +1,29 @@ +static float2 var = float2(1.0, 2.0); + +struct type1 +{ + int memFun1(int3 var) + { + return var.z + this.var + var2; + } + int memFun2(int a) + { + int3 var = int3(1,2,3); + return var.z + (int)bar.y + this.var2; + } + float2 bar; + int var; + int var2; +}; + +float4 main() : SV_Target0 +{ + type1 T; + T.bar = var; + T.var = 7; + T.var2 = 9; + int i = T.memFun1(int3(10,11,12)); + i += T.memFun2(17); + + return float4(i,i,i,i); +} diff --git a/deps/glslang/glslang/Test/hlsl.tristream-append.geom b/deps/glslang/glslang/Test/hlsl.tristream-append.geom new file mode 100644 index 0000000000..208607d372 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.tristream-append.geom @@ -0,0 +1,18 @@ +struct GSPS_INPUT +{ +}; + +// Test Append() method appearing before declaration of entry point's stream output. + +void EmitVertex(in GSPS_INPUT output, inout TriangleStream TriStream) +{ + TriStream.Append( output ); +} + +[maxvertexcount(3)] +void main( triangle GSPS_INPUT input[3], inout TriangleStream TriStream ) +{ + EmitVertex(input[0], TriStream); + EmitVertex(input[1], TriStream); + EmitVertex(input[2], TriStream); +} diff --git a/deps/glslang/glslang/Test/hlsl.tx.bracket.frag b/deps/glslang/glslang/Test/hlsl.tx.bracket.frag new file mode 100644 index 0000000000..0d3d81f82c --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.tx.bracket.frag @@ -0,0 +1,73 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +int4 Fn1(in int4 x) { return x; } +uint4 Fn1(in uint4 x) { return x; } +float4 Fn1(in float4 x) { return x; } + +float4 SomeValue() { return c4; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4[c1]; + + float4 r00 = g_tTex1df4[c1]; + int4 r01 = g_tTex1di4[c1]; + uint4 r02 = g_tTex1du4[c1]; + + // 2D + float4 r10 = g_tTex2df4[c2]; + int4 r11 = g_tTex2di4[c2]; + uint4 r12 = g_tTex2du4[c2]; + + // 3D + float4 r20 = g_tTex3df4[c3]; + int4 r21 = g_tTex3di4[c3]; + uint4 r22 = g_tTex3du4[c3]; + + // Test function calling + Fn1(g_tTex1df4[c1]); // in + Fn1(g_tTex1di4[c1]); // in + Fn1(g_tTex1du4[c1]); // in + + psout.Color = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/hlsl.tx.overload.frag b/deps/glslang/glslang/Test/hlsl.tx.overload.frag new file mode 100644 index 0000000000..8b83ddfc99 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.tx.overload.frag @@ -0,0 +1,17 @@ + +Texture2D tf1; +Texture2D tf4; + +RWTexture2D twf1; +RWTexture2D twf4; + +float Func(Texture2D DummyTex) { return 1.0f; } +float4 Func(Texture2D DummyTex) { return float4(0,0,0,0); } + +float Func(RWTexture2D DummyTex) { return 1.0f; } +float4 Func(RWTexture2D DummyTex) { return float4(0,0,0,0); } + +float4 main() : SV_TARGET +{ + return Func(tf1) + Func(tf4) + Func(twf1) + Func(twf4); +} diff --git a/deps/glslang/glslang/Test/hlsl.type.half.frag b/deps/glslang/glslang/Test/hlsl.type.half.frag new file mode 100644 index 0000000000..a78afabf95 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.type.half.frag @@ -0,0 +1,28 @@ + +float4 main() : SV_Target0 +{ + half h0 = 0; + half1 h1 = 1; + half2 h2 = 2; + half3 h3 = 3; + half4 h4 = 4; + + half1x1 h11; + half1x2 h12; + half1x3 h13; + half1x4 h14; + half2x1 h21; + half2x2 h22 = half2x2(1,2,3,4); + half2x3 h23 = (half2x3)4.9; + half2x4 h24; + half3x1 h31; + half3x2 h32; + half3x3 h33; + half3x4 h34; + half4x1 h41; + half4x2 h42; + half4x3 h43; + half4x4 h44; + + return h23._11 + h4.y + h0; +} diff --git a/deps/glslang/glslang/Test/hlsl.type.identifier.frag b/deps/glslang/glslang/Test/hlsl.type.identifier.frag new file mode 100644 index 0000000000..4e53a82ff1 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.type.identifier.frag @@ -0,0 +1,31 @@ + +struct foo_t { + float float; +}; + +float fn(float float) { return float; } + +float4 main() : SV_Target0 +{ + float float = 7; + bool bool[2] = { float, float }; + int int = bool[1]; + uint uint = float + int; + min16float min16float = uint; + min10float min10float = min16float; + half half = 0.5; + + { + foo_t float; + float.float = 42; + } + + bool[0] = bool[1]; + + float = float + int + uint + min16float + min10float + (bool[0] ? int : float) + fn(float); + + half2x3 half2x3; + half2x3._11 = (float) * float; + + return float + half2x3._11; +} diff --git a/deps/glslang/glslang/Test/hlsl.typeGraphCopy.vert b/deps/glslang/glslang/Test/hlsl.typeGraphCopy.vert new file mode 100644 index 0000000000..a4677c1050 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.typeGraphCopy.vert @@ -0,0 +1,24 @@ +struct N1 { + int a; + float b; +}; + +struct N2 { + N1 s1; + N1 s2; +}; + +struct N3 { + N2 t1; + N1 t2; + N2 t3; +}; + +typedef N3 T3; + +T3 foo; + +float main() +{ + return foo.t3.s2.b; +} diff --git a/deps/glslang/glslang/Test/hlsl.typedef.frag b/deps/glslang/glslang/Test/hlsl.typedef.frag new file mode 100644 index 0000000000..b09785e6d8 --- /dev/null +++ b/deps/glslang/glslang/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/deps/glslang/glslang/Test/hlsl.void.frag b/deps/glslang/glslang/Test/hlsl.void.frag new file mode 100644 index 0000000000..950bbd7524 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.void.frag @@ -0,0 +1,9 @@ +void foo1() {} +void foo2(void) {} + +void PixelShaderFunction(float4 input) : COLOR0 +{ + foo1(); + foo2(); + return; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/hlsl.wavebroadcast.comp b/deps/glslang/glslang/Test/hlsl.wavebroadcast.comp new file mode 100644 index 0000000000..4498305ca0 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.wavebroadcast.comp @@ -0,0 +1,53 @@ +struct Types +{ + uint4 u; + int4 i; + float4 f; + double4 d; +}; + +RWStructuredBuffer data; + +[numthreads(32, 16, 1)] +void CSMain(uint3 dti : SV_DispatchThreadID) +{ + data[dti.x].u = WaveReadLaneAt(data[dti.x].u, 13); + data[dti.x].u.x = WaveReadLaneAt(data[dti.x].u.x, 13); + data[dti.x].u.xy = WaveReadLaneAt(data[dti.x].u.xy, 13); + data[dti.x].u.xyz = WaveReadLaneAt(data[dti.x].u.xyz, 13); + + data[dti.x].i = WaveReadLaneAt(data[dti.x].i, 13); + data[dti.x].i.x = WaveReadLaneAt(data[dti.x].i.x, 13); + data[dti.x].i.xy = WaveReadLaneAt(data[dti.x].i.xy, 13); + data[dti.x].i.xyz = WaveReadLaneAt(data[dti.x].i.xyz, 13); + + data[dti.x].f = WaveReadLaneAt(data[dti.x].f, 13); + data[dti.x].f.x = WaveReadLaneAt(data[dti.x].f.x, 13); + data[dti.x].f.xy = WaveReadLaneAt(data[dti.x].f.xy, 13); + data[dti.x].f.xyz = WaveReadLaneAt(data[dti.x].f.xyz, 13); + + data[dti.x].d = WaveReadLaneFirst(data[dti.x].d); + data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x); + data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy); + data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz); + + data[dti.x].u = WaveReadLaneFirst(data[dti.x].u); + data[dti.x].u.x = WaveReadLaneFirst(data[dti.x].u.x); + data[dti.x].u.xy = WaveReadLaneFirst(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveReadLaneFirst(data[dti.x].u.xyz); + + data[dti.x].i = WaveReadLaneFirst(data[dti.x].i); + data[dti.x].i.x = WaveReadLaneFirst(data[dti.x].i.x); + data[dti.x].i.xy = WaveReadLaneFirst(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveReadLaneFirst(data[dti.x].i.xyz); + + data[dti.x].f = WaveReadLaneFirst(data[dti.x].f); + data[dti.x].f.x = WaveReadLaneFirst(data[dti.x].f.x); + data[dti.x].f.xy = WaveReadLaneFirst(data[dti.x].f.xy); + data[dti.x].f.xyz = WaveReadLaneFirst(data[dti.x].f.xyz); + + data[dti.x].d = WaveReadLaneFirst(data[dti.x].d); + data[dti.x].d.x = WaveReadLaneFirst(data[dti.x].d.x); + data[dti.x].d.xy = WaveReadLaneFirst(data[dti.x].d.xy); + data[dti.x].d.xyz = WaveReadLaneFirst(data[dti.x].d.xyz); +} diff --git a/deps/glslang/glslang/Test/hlsl.waveprefix.comp b/deps/glslang/glslang/Test/hlsl.waveprefix.comp new file mode 100644 index 0000000000..e4b4367d99 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.waveprefix.comp @@ -0,0 +1,55 @@ +struct Types +{ + uint4 u; + int4 i; + float4 f; + double4 d; +}; + +RWStructuredBuffer data; + +[numthreads(32, 16, 1)] +void CSMain(uint3 dti : SV_DispatchThreadID) +{ + data[dti.x].u = WavePrefixSum(data[dti.x].u); + data[dti.x].u.x = WavePrefixSum(data[dti.x].u.x); + data[dti.x].u.xy = WavePrefixSum(data[dti.x].u.xy); + data[dti.x].u.xyz = WavePrefixSum(data[dti.x].u.xyz); + + data[dti.x].i = WavePrefixSum(data[dti.x].i); + data[dti.x].i.x = WavePrefixSum(data[dti.x].i.x); + data[dti.x].i.xy = WavePrefixSum(data[dti.x].i.xy); + data[dti.x].i.xyz = WavePrefixSum(data[dti.x].i.xyz); + + data[dti.x].f = WavePrefixSum(data[dti.x].f); + data[dti.x].f.x = WavePrefixSum(data[dti.x].f.x); + data[dti.x].f.xy = WavePrefixSum(data[dti.x].f.xy); + data[dti.x].f.xyz = WavePrefixSum(data[dti.x].f.xyz); + + data[dti.x].d = WavePrefixSum(data[dti.x].d); + data[dti.x].d.x = WavePrefixSum(data[dti.x].d.x); + data[dti.x].d.xy = WavePrefixSum(data[dti.x].d.xy); + data[dti.x].d.xyz = WavePrefixSum(data[dti.x].d.xyz); + + data[dti.x].u = WavePrefixProduct(data[dti.x].u); + data[dti.x].u.x = WavePrefixProduct(data[dti.x].u.x); + data[dti.x].u.xy = WavePrefixProduct(data[dti.x].u.xy); + data[dti.x].u.xyz = WavePrefixProduct(data[dti.x].u.xyz); + + data[dti.x].i = WavePrefixProduct(data[dti.x].i); + data[dti.x].i.x = WavePrefixProduct(data[dti.x].i.x); + data[dti.x].i.xy = WavePrefixProduct(data[dti.x].i.xy); + data[dti.x].i.xyz = WavePrefixProduct(data[dti.x].i.xyz); + + data[dti.x].f = WavePrefixProduct(data[dti.x].f); + data[dti.x].f.x = WavePrefixProduct(data[dti.x].f.x); + data[dti.x].f.xy = WavePrefixProduct(data[dti.x].f.xy); + data[dti.x].f.xyz = WavePrefixProduct(data[dti.x].f.xyz); + + data[dti.x].d = WavePrefixProduct(data[dti.x].d); + data[dti.x].d.x = WavePrefixProduct(data[dti.x].d.x); + data[dti.x].d.xy = WavePrefixProduct(data[dti.x].d.xy); + data[dti.x].d.xyz = WavePrefixProduct(data[dti.x].d.xyz); + + data[dti.x].u.x = WavePrefixCountBits(data[dti.x].u.x == 0); +} diff --git a/deps/glslang/glslang/Test/hlsl.wavequad.comp b/deps/glslang/glslang/Test/hlsl.wavequad.comp new file mode 100644 index 0000000000..34e8b7828b --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.wavequad.comp @@ -0,0 +1,153 @@ +struct Types +{ + uint4 u; + int4 i; + float4 f; + double4 d; +}; + +RWStructuredBuffer data; + +[numthreads(32, 16, 1)] +void CSMain(uint3 dti : SV_DispatchThreadID) +{ + data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 0); + data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 0); + data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 0); + data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 0); + + data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 0); + data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 0); + data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 0); + data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 0); + + data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 0); + data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 0); + data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 0); + data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 0); + + data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 0); + data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 0); + data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 0); + data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 0); + + data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 1); + data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 1); + data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 1); + data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 1); + + data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 1); + data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 1); + data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 1); + data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 1); + + data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 1); + data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 1); + data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 1); + data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 1); + + data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 1); + data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 1); + data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 1); + data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 1); + + data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 2); + data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 2); + data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 2); + data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 2); + + data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 2); + data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 2); + data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 2); + data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 2); + + data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 2); + data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 2); + data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 2); + data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 2); + + data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 2); + data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 2); + data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 2); + data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 2); + + data[dti.x].u = QuadReadLaneAt(data[dti.x].u, 3); + data[dti.x].u.x = QuadReadLaneAt(data[dti.x].u.x, 3); + data[dti.x].u.xy = QuadReadLaneAt(data[dti.x].u.xy, 3); + data[dti.x].u.xyz = QuadReadLaneAt(data[dti.x].u.xyz, 3); + + data[dti.x].i = QuadReadLaneAt(data[dti.x].i, 3); + data[dti.x].i.x = QuadReadLaneAt(data[dti.x].i.x, 3); + data[dti.x].i.xy = QuadReadLaneAt(data[dti.x].i.xy, 3); + data[dti.x].i.xyz = QuadReadLaneAt(data[dti.x].i.xyz, 3); + + data[dti.x].f = QuadReadLaneAt(data[dti.x].f, 3); + data[dti.x].f.x = QuadReadLaneAt(data[dti.x].f.x, 3); + data[dti.x].f.xy = QuadReadLaneAt(data[dti.x].f.xy, 3); + data[dti.x].f.xyz = QuadReadLaneAt(data[dti.x].f.xyz, 3); + + data[dti.x].d = QuadReadLaneAt(data[dti.x].d, 3); + data[dti.x].d.x = QuadReadLaneAt(data[dti.x].d.x, 3); + data[dti.x].d.xy = QuadReadLaneAt(data[dti.x].d.xy, 3); + data[dti.x].d.xyz = QuadReadLaneAt(data[dti.x].d.xyz, 3); + + data[dti.x].u = QuadReadAcrossX(data[dti.x].u); + data[dti.x].u.x = QuadReadAcrossX(data[dti.x].u.x); + data[dti.x].u.xy = QuadReadAcrossX(data[dti.x].u.xy); + data[dti.x].u.xyz = QuadReadAcrossX(data[dti.x].u.xyz); + + data[dti.x].i = QuadReadAcrossX(data[dti.x].i); + data[dti.x].i.x = QuadReadAcrossX(data[dti.x].i.x); + data[dti.x].i.xy = QuadReadAcrossX(data[dti.x].i.xy); + data[dti.x].i.xyz = QuadReadAcrossX(data[dti.x].i.xyz); + + data[dti.x].f = QuadReadAcrossX(data[dti.x].f); + data[dti.x].f.x = QuadReadAcrossX(data[dti.x].f.x); + data[dti.x].f.xy = QuadReadAcrossX(data[dti.x].f.xy); + data[dti.x].f.xyz = QuadReadAcrossX(data[dti.x].f.xyz); + + data[dti.x].d = QuadReadAcrossX(data[dti.x].d); + data[dti.x].d.x = QuadReadAcrossX(data[dti.x].d.x); + data[dti.x].d.xy = QuadReadAcrossX(data[dti.x].d.xy); + data[dti.x].d.xyz = QuadReadAcrossX(data[dti.x].d.xyz); + + data[dti.x].u = QuadReadAcrossY(data[dti.x].u); + data[dti.x].u.x = QuadReadAcrossY(data[dti.x].u.x); + data[dti.x].u.xy = QuadReadAcrossY(data[dti.x].u.xy); + data[dti.x].u.xyz = QuadReadAcrossY(data[dti.x].u.xyz); + + data[dti.x].i = QuadReadAcrossY(data[dti.x].i); + data[dti.x].i.x = QuadReadAcrossY(data[dti.x].i.x); + data[dti.x].i.xy = QuadReadAcrossY(data[dti.x].i.xy); + data[dti.x].i.xyz = QuadReadAcrossY(data[dti.x].i.xyz); + + data[dti.x].f = QuadReadAcrossY(data[dti.x].f); + data[dti.x].f.x = QuadReadAcrossY(data[dti.x].f.x); + data[dti.x].f.xy = QuadReadAcrossY(data[dti.x].f.xy); + data[dti.x].f.xyz = QuadReadAcrossY(data[dti.x].f.xyz); + + data[dti.x].d = QuadReadAcrossY(data[dti.x].d); + data[dti.x].d.x = QuadReadAcrossY(data[dti.x].d.x); + data[dti.x].d.xy = QuadReadAcrossY(data[dti.x].d.xy); + data[dti.x].d.xyz = QuadReadAcrossY(data[dti.x].d.xyz); + + data[dti.x].u = QuadReadAcrossDiagonal(data[dti.x].u); + data[dti.x].u.x = QuadReadAcrossDiagonal(data[dti.x].u.x); + data[dti.x].u.xy = QuadReadAcrossDiagonal(data[dti.x].u.xy); + data[dti.x].u.xyz = QuadReadAcrossDiagonal(data[dti.x].u.xyz); + + data[dti.x].i = QuadReadAcrossDiagonal(data[dti.x].i); + data[dti.x].i.x = QuadReadAcrossDiagonal(data[dti.x].i.x); + data[dti.x].i.xy = QuadReadAcrossDiagonal(data[dti.x].i.xy); + data[dti.x].i.xyz = QuadReadAcrossDiagonal(data[dti.x].i.xyz); + + data[dti.x].f = QuadReadAcrossDiagonal(data[dti.x].f); + data[dti.x].f.x = QuadReadAcrossDiagonal(data[dti.x].f.x); + data[dti.x].f.xy = QuadReadAcrossDiagonal(data[dti.x].f.xy); + data[dti.x].f.xyz = QuadReadAcrossDiagonal(data[dti.x].f.xyz); + + data[dti.x].d = QuadReadAcrossDiagonal(data[dti.x].d); + data[dti.x].d.x = QuadReadAcrossDiagonal(data[dti.x].d.x); + data[dti.x].d.xy = QuadReadAcrossDiagonal(data[dti.x].d.xy); + data[dti.x].d.xyz = QuadReadAcrossDiagonal(data[dti.x].d.xyz); +} diff --git a/deps/glslang/glslang/Test/hlsl.wavequery.comp b/deps/glslang/glslang/Test/hlsl.wavequery.comp new file mode 100644 index 0000000000..a689e11975 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.wavequery.comp @@ -0,0 +1,7 @@ +RWStructuredBuffer data; + +[numthreads(32, 16, 1)] +void CSMain() +{ + data[WaveGetLaneIndex()] = (WaveIsFirstLane()) ? WaveGetLaneCount() : 0; +} diff --git a/deps/glslang/glslang/Test/hlsl.wavequery.frag b/deps/glslang/glslang/Test/hlsl.wavequery.frag new file mode 100644 index 0000000000..d1437f0645 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.wavequery.frag @@ -0,0 +1,11 @@ +float4 PixelShaderFunction() : COLOR0 +{ + if (WaveIsFirstLane()) + { + return float4(1, 2, 3, 4); + } + else + { + return float4(4, 3, 2, 1); + } +} diff --git a/deps/glslang/glslang/Test/hlsl.wavereduction.comp b/deps/glslang/glslang/Test/hlsl.wavereduction.comp new file mode 100644 index 0000000000..b7604ad9ad --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.wavereduction.comp @@ -0,0 +1,125 @@ +struct Types +{ + uint4 u; + int4 i; + float4 f; + double4 d; +}; + +RWStructuredBuffer data; + +[numthreads(32, 16, 1)] +void CSMain(uint3 dti : SV_DispatchThreadID) +{ + data[dti.x].u = WaveActiveSum(data[dti.x].u); + data[dti.x].u.x = WaveActiveSum(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveSum(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveSum(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveSum(data[dti.x].i); + data[dti.x].i.x = WaveActiveSum(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveSum(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveSum(data[dti.x].i.xyz); + + data[dti.x].f = WaveActiveSum(data[dti.x].f); + data[dti.x].f.x = WaveActiveSum(data[dti.x].f.x); + data[dti.x].f.xy = WaveActiveSum(data[dti.x].f.xy); + data[dti.x].f.xyz = WaveActiveSum(data[dti.x].f.xyz); + + data[dti.x].d = WaveActiveSum(data[dti.x].d); + data[dti.x].d.x = WaveActiveSum(data[dti.x].d.x); + data[dti.x].d.xy = WaveActiveSum(data[dti.x].d.xy); + data[dti.x].d.xyz = WaveActiveSum(data[dti.x].d.xyz); + + data[dti.x].u = WaveActiveProduct(data[dti.x].u); + data[dti.x].u.x = WaveActiveProduct(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveProduct(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveProduct(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveProduct(data[dti.x].i); + data[dti.x].i.x = WaveActiveProduct(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveProduct(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveProduct(data[dti.x].i.xyz); + + data[dti.x].f = WaveActiveProduct(data[dti.x].f); + data[dti.x].f.x = WaveActiveProduct(data[dti.x].f.x); + data[dti.x].f.xy = WaveActiveProduct(data[dti.x].f.xy); + data[dti.x].f.xyz = WaveActiveProduct(data[dti.x].f.xyz); + + data[dti.x].d = WaveActiveProduct(data[dti.x].d); + data[dti.x].d.x = WaveActiveProduct(data[dti.x].d.x); + data[dti.x].d.xy = WaveActiveProduct(data[dti.x].d.xy); + data[dti.x].d.xyz = WaveActiveProduct(data[dti.x].d.xyz); + + data[dti.x].u = WaveActiveMin(data[dti.x].u); + data[dti.x].u.x = WaveActiveMin(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveMin(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveMin(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveMin(data[dti.x].i); + data[dti.x].i.x = WaveActiveMin(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveMin(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveMin(data[dti.x].i.xyz); + + data[dti.x].f = WaveActiveMin(data[dti.x].f); + data[dti.x].f.x = WaveActiveMin(data[dti.x].f.x); + data[dti.x].f.xy = WaveActiveMin(data[dti.x].f.xy); + data[dti.x].f.xyz = WaveActiveMin(data[dti.x].f.xyz); + + data[dti.x].d = WaveActiveMin(data[dti.x].d); + data[dti.x].d.x = WaveActiveMin(data[dti.x].d.x); + data[dti.x].d.xy = WaveActiveMin(data[dti.x].d.xy); + data[dti.x].d.xyz = WaveActiveMin(data[dti.x].d.xyz); + + data[dti.x].u = WaveActiveMax(data[dti.x].u); + data[dti.x].u.x = WaveActiveMax(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveMax(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveMax(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveMax(data[dti.x].i); + data[dti.x].i.x = WaveActiveMax(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveMax(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveMax(data[dti.x].i.xyz); + + data[dti.x].f = WaveActiveMax(data[dti.x].f); + data[dti.x].f.x = WaveActiveMax(data[dti.x].f.x); + data[dti.x].f.xy = WaveActiveMax(data[dti.x].f.xy); + data[dti.x].f.xyz = WaveActiveMax(data[dti.x].f.xyz); + + data[dti.x].d = WaveActiveMax(data[dti.x].d); + data[dti.x].d.x = WaveActiveMax(data[dti.x].d.x); + data[dti.x].d.xy = WaveActiveMax(data[dti.x].d.xy); + data[dti.x].d.xyz = WaveActiveMax(data[dti.x].d.xyz); + + data[dti.x].u = WaveActiveBitAnd(data[dti.x].u); + data[dti.x].u.x = WaveActiveBitAnd(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveBitAnd(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveBitAnd(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveBitAnd(data[dti.x].i); + data[dti.x].i.x = WaveActiveBitAnd(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveBitAnd(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveBitAnd(data[dti.x].i.xyz); + + data[dti.x].u = WaveActiveBitOr(data[dti.x].u); + data[dti.x].u.x = WaveActiveBitOr(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveBitOr(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveBitOr(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveBitOr(data[dti.x].i); + data[dti.x].i.x = WaveActiveBitOr(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveBitOr(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveBitOr(data[dti.x].i.xyz); + + data[dti.x].u = WaveActiveBitXor(data[dti.x].u); + data[dti.x].u.x = WaveActiveBitXor(data[dti.x].u.x); + data[dti.x].u.xy = WaveActiveBitXor(data[dti.x].u.xy); + data[dti.x].u.xyz = WaveActiveBitXor(data[dti.x].u.xyz); + + data[dti.x].i = WaveActiveBitXor(data[dti.x].i); + data[dti.x].i.x = WaveActiveBitXor(data[dti.x].i.x); + data[dti.x].i.xy = WaveActiveBitXor(data[dti.x].i.xy); + data[dti.x].i.xyz = WaveActiveBitXor(data[dti.x].i.xyz); + + data[dti.x].u.x = WaveActiveCountBits(data[dti.x].u.x == 0); +} diff --git a/deps/glslang/glslang/Test/hlsl.wavevote.comp b/deps/glslang/glslang/Test/hlsl.wavevote.comp new file mode 100644 index 0000000000..0370e69b7d --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.wavevote.comp @@ -0,0 +1,10 @@ +RWStructuredBuffer data; + +[numthreads(32, 16, 1)] +void CSMain(uint3 dti : SV_DispatchThreadID) +{ + data[dti.x] = WaveActiveBallot(WaveActiveAnyTrue(dti.x == 0)); + data[dti.y] = WaveActiveBallot(WaveActiveAllTrue(dti.y == 0)); + data[dti.z] = WaveActiveBallot(WaveActiveAllEqualBool(dti.z == 0)); + data[dti.z] = WaveActiveBallot(WaveActiveAllEqual(dti.z)); +} diff --git a/deps/glslang/glslang/Test/hlsl.whileLoop.frag b/deps/glslang/glslang/Test/hlsl.whileLoop.frag new file mode 100644 index 0000000000..e4084ae7eb --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.whileLoop.frag @@ -0,0 +1,7 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + while (any(input != input)) { return input; } + while (false) ; + [unroll] while (false) { } + while ((false)) { } +} diff --git a/deps/glslang/glslang/Test/hlsl.y-negate-1.vert b/deps/glslang/glslang/Test/hlsl.y-negate-1.vert new file mode 100644 index 0000000000..ee62ec24b7 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.y-negate-1.vert @@ -0,0 +1,9 @@ + +// Test Y negation from entry point return + +float4 pos; + +float4 main() : SV_Position +{ + return pos; +} diff --git a/deps/glslang/glslang/Test/hlsl.y-negate-2.vert b/deps/glslang/glslang/Test/hlsl.y-negate-2.vert new file mode 100644 index 0000000000..01fa6ce71e --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.y-negate-2.vert @@ -0,0 +1,8 @@ +// Test Y negation from entry point out parameter + +float4 pos; + +void main(out float4 position : SV_Position) +{ + position = pos; +} diff --git a/deps/glslang/glslang/Test/hlsl.y-negate-3.vert b/deps/glslang/glslang/Test/hlsl.y-negate-3.vert new file mode 100644 index 0000000000..a0c4a8d639 --- /dev/null +++ b/deps/glslang/glslang/Test/hlsl.y-negate-3.vert @@ -0,0 +1,18 @@ +// Test Y negation from entry point out parameter + +float4 position; + +struct VS_OUT { + float4 pos : SV_Position; + int somethingelse; +}; + +VS_OUT main() +{ + VS_OUT vsout; + + vsout.pos = position; + vsout.somethingelse = 42; + + return vsout; +} diff --git a/deps/glslang/glslang/Test/implicitInnerAtomicUint.frag b/deps/glslang/glslang/Test/implicitInnerAtomicUint.frag new file mode 100644 index 0000000000..bb76516fd6 --- /dev/null +++ b/deps/glslang/glslang/Test/implicitInnerAtomicUint.frag @@ -0,0 +1,2 @@ +#version 460 +layout(binding = 0) uniform atomic_uint c[1][]; \ No newline at end of file diff --git a/deps/glslang/glslang/Test/inc1/badInc.h b/deps/glslang/glslang/Test/inc1/badInc.h new file mode 100644 index 0000000000..a77135538c --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/badInc.h @@ -0,0 +1 @@ +#include "parentBad" diff --git a/deps/glslang/glslang/Test/inc1/bar.h b/deps/glslang/glslang/Test/inc1/bar.h new file mode 100644 index 0000000000..1a650fb6ad --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/bar.h @@ -0,0 +1,3 @@ +float4 i2; + +#include "foo.h" diff --git a/deps/glslang/glslang/Test/inc1/foo.h b/deps/glslang/glslang/Test/inc1/foo.h new file mode 100644 index 0000000000..1819034d55 --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/foo.h @@ -0,0 +1,3 @@ +#include "parent.h" + +float4 i3; diff --git a/deps/glslang/glslang/Test/inc1/path1/bar.h b/deps/glslang/glslang/Test/inc1/path1/bar.h new file mode 100644 index 0000000000..46141dd1bc --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/path1/bar.h @@ -0,0 +1 @@ +float4 i9991; diff --git a/deps/glslang/glslang/Test/inc1/path1/local.h b/deps/glslang/glslang/Test/inc1/path1/local.h new file mode 100644 index 0000000000..b3aac8e3af --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/path1/local.h @@ -0,0 +1 @@ +float4 p2; diff --git a/deps/glslang/glslang/Test/inc1/path1/notHere.h b/deps/glslang/glslang/Test/inc1/path1/notHere.h new file mode 100644 index 0000000000..2e7d56a67b --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/path1/notHere.h @@ -0,0 +1,4 @@ +float4 p1; + +#include "local.h" +#include "remote.h" diff --git a/deps/glslang/glslang/Test/inc1/path2/bar.h b/deps/glslang/glslang/Test/inc1/path2/bar.h new file mode 100644 index 0000000000..46141dd1bc --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/path2/bar.h @@ -0,0 +1 @@ +float4 i9991; diff --git a/deps/glslang/glslang/Test/inc1/path2/notHere.h b/deps/glslang/glslang/Test/inc1/path2/notHere.h new file mode 100644 index 0000000000..63f4ca47c8 --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/path2/notHere.h @@ -0,0 +1 @@ +float4 paoeu1; diff --git a/deps/glslang/glslang/Test/inc1/path2/remote.h b/deps/glslang/glslang/Test/inc1/path2/remote.h new file mode 100644 index 0000000000..c925d27adc --- /dev/null +++ b/deps/glslang/glslang/Test/inc1/path2/remote.h @@ -0,0 +1 @@ +float4 p3; diff --git a/deps/glslang/glslang/Test/inc2/bar.h b/deps/glslang/glslang/Test/inc2/bar.h new file mode 100644 index 0000000000..901c058e7b --- /dev/null +++ b/deps/glslang/glslang/Test/inc2/bar.h @@ -0,0 +1,2 @@ +#include "foo.h" +float4 i5; diff --git a/deps/glslang/glslang/Test/inc2/foo.h b/deps/glslang/glslang/Test/inc2/foo.h new file mode 100644 index 0000000000..fd09e808c4 --- /dev/null +++ b/deps/glslang/glslang/Test/inc2/foo.h @@ -0,0 +1 @@ +float4 i6; \ No newline at end of file diff --git a/deps/glslang/glslang/Test/include.vert b/deps/glslang/glslang/Test/include.vert new file mode 100644 index 0000000000..192a4891a4 --- /dev/null +++ b/deps/glslang/glslang/Test/include.vert @@ -0,0 +1,16 @@ +#version 450 + +#extension GL_GOOGLE_include_directive : enable + +#define float4 vec4 + +#include "bar.h" +#include "./inc1/bar.h" +#include "inc2\bar.h" + +out vec4 color; + +void main() +{ + color = i1 + i2 + i3 + i4 + i5 + i6; +} diff --git a/deps/glslang/glslang/Test/invalidSwizzle.vert b/deps/glslang/glslang/Test/invalidSwizzle.vert new file mode 100644 index 0000000000..799ff872d5 --- /dev/null +++ b/deps/glslang/glslang/Test/invalidSwizzle.vert @@ -0,0 +1,10 @@ +#version 420 + +void f(); +uniform sampler2D s; + +void main() { + vec2 v = s.rr; // Swizzles do not apply to samplers + f().xx; // Scalar swizzle does not apply to void + f().xy; // Vector swizzle does not apply either +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/length.frag b/deps/glslang/glslang/Test/length.frag new file mode 100644 index 0000000000..74c286f333 --- /dev/null +++ b/deps/glslang/glslang/Test/length.frag @@ -0,0 +1,18 @@ +#version 120 + +uniform vec4 u[3]; + +#ifdef TEST_POST_110 +varying vec2 v[]; +#else +varying vec2 v[2]; +#endif + +void main() +{ + int a[5]; + + vec2 t = v[0] + v[1]; + + gl_FragColor = vec4(u.length() * v.length() * a.length()); +} diff --git a/deps/glslang/glslang/Test/lineContinuation.vert b/deps/glslang/glslang/Test/lineContinuation.vert new file mode 100644 index 0000000000..471f3a3422 --- /dev/null +++ b/deps/glslang/glslang/Test/lineContinuation.vert @@ -0,0 +1,151 @@ +#version 300 es + +// this file cont\ +ains no errors other than the #error which are there to see if line numbering for errors is correct + +#error e1 + +float f\ +oo; // same as 'float foo;' + +#error e2 + +#define MAIN void main() \ + { \ +gl_Position = vec4(foo); \ +} + +#error e3 + +MAIN + +vec4 foo2(vec4 a) +{ + vec4 b = a; \ + return b; +} + +// aoeuntheo unatehutna \ antaehnathe +// anteonuth $ natohe " ' +// anteonuth natohe + +#define FOO int /* \ +*/ goodDecl; + +FOO + +#define A int q1 = \ 1 +#define B int q2 = \1 +#define C int q3 = $ 1 +#define D int q4 = @ 1 + +const highp int a1 = \ 4; // ERROR +const highp int a2 = @ 3; // ERROR +const highp int a3 = $4; // ERROR +const highp int a4 = a2\; // ERROR + +A; +B; +C; +D; + +# \ + +# \ + error good continuation + +#define AA1 a \ b +#define AA2 a \\ b +#define AA3 a \\\ b +#define AA4 a \\\\ b + +// anoetuh nonaetu \\\\\\ +still in comment + +const int abdece = 10; +const int aoeuntaoehu = abd\ +\ +\ +\ +\ +\ +ece; + +float funkyf = \ +.\ +1\ +2\ +3\ +e\ ++\ +1\ +7\ +;\ +int funkyh\ +=\ +0\ +x\ +f\ +4\ +; +int funkyo =\ +0\ +4\ +2\ +; +int c = \ +11; +int d = 1\ +2; + +#define FOOM(a,b) a + b + +#if FO\ +OM(2\ +,\ +3) +int bar103 = 17; +#endif + +// ERROR +#if FOOM(2, +3) +int bar104 = 19; +#endif + +// ERROR +#if FOOM( +2,3) +int bar105 = 19; +#endif + +int bar106 = FOOM(5,7); +int bar107 = FOOM // okay + ( + 2 + , + 3 + ) + ; + +void foo203209409() +{ + bar107 \ ++= 37; + bar107 *\ += 38; + bar107 /=\ +39; + bar107 +\ +41; +} + +#define QUOTE "ab\ +cd" + +void foo230920394() +{ + // syntax error + bar107 +\ + = 42; +} diff --git a/deps/glslang/glslang/Test/lineContinuation100.vert b/deps/glslang/glslang/Test/lineContinuation100.vert new file mode 100644 index 0000000000..e632023cc5 --- /dev/null +++ b/deps/glslang/glslang/Test/lineContinuation100.vert @@ -0,0 +1,56 @@ +#version 100 + +// non-line continuation comment \ +#error good error + + + +float f\ +oo; // same as 'float foo;' + +#error e2 + +#define MAIN void main() \ + { \ +gl_Position = vec4(foo); \ +} + +#error e3 + +MAIN + +vec4 foo2(vec4 a) +{ + vec4 b = a; \ + return b; +} + +// aoeuntheo unatehutna \ antaehnathe +// anteonuth $ natohe " ' +// anteonuth natohe +/*@*/ +/* *@/*/ +//@ + +#define A int q1 = \ 1 +#define B int q2 = \1 +#define C int q3 = $ 1 +#define D int q4 = @ 1 + +const highp int a1 = \ 4; // ERROR +const highp int a2 = @ 3; // ERROR +const highp int a3 = $4; // ERROR +const highp int a4 = a2\; // ERROR + +A; +B; +C; +D; + +# \ + +# \ + error bad continuation + +#define QUOTE "ab\ +cd" diff --git a/deps/glslang/glslang/Test/link1.frag b/deps/glslang/glslang/Test/link1.frag new file mode 100644 index 0000000000..2b8d95a851 --- /dev/null +++ b/deps/glslang/glslang/Test/link1.frag @@ -0,0 +1,38 @@ +#version 130 + +uniform vec4 uv4; +uniform vec3 glass; + +const int ci = 8; + +vec4 a = ci * uv4; + +in vec3 iv3; +in vec4 cup; + +void main() +{ +} + +vec4 b = ci * a; + +ivec2 foo(mat2 m) +{ + return ivec2(m[0]); +} + +vec4 c = b * b; + +const vec3 cv3 = vec3(43.0, 0.34, 9.9); +const vec3 cv3n = vec3(43.0, 0.34, 9.9); +const vec3 cv3e = vec3(43.0, 0.34, 9.9); +uniform mat2 um2 = mat2(4.0); +uniform mat2 um2n = mat2(4.0); +uniform mat2 um2e = mat2(4.0); +struct S { + int a; + float b; +}; +uniform S s = S(82, 3.9); +uniform S sn; +uniform S se = S(82, 3.9); diff --git a/deps/glslang/glslang/Test/link1.vk.frag b/deps/glslang/glslang/Test/link1.vk.frag new file mode 100644 index 0000000000..167e78ee75 --- /dev/null +++ b/deps/glslang/glslang/Test/link1.vk.frag @@ -0,0 +1,24 @@ +#version 450 + +vec4 getColor(); + +layout(location=0) out vec4 color; + +int a1[]; // max size from link1 +int a2[]; // max size from link2 +int b[5]; +int c[]; +int i; + +buffer bnameRuntime { float r[]; }; +buffer bnameImplicit { float m[]; }; + +void main() +{ + color = getColor(); + + a1[8] = 1; + a2[1] = 1; + b[i] = 1; + c[3] = 1; +} diff --git a/deps/glslang/glslang/Test/link2.frag b/deps/glslang/glslang/Test/link2.frag new file mode 100644 index 0000000000..7c698917e1 --- /dev/null +++ b/deps/glslang/glslang/Test/link2.frag @@ -0,0 +1,36 @@ +#version 130 + +uniform vec4 uv4; +uniform vec2 glass; + +const int ci = 8; + +vec4 d = ci * uv4; + +in vec3 iv3; +flat in vec4 cup; + +vec4 e = ci * d; + +ivec2 foo() +{ + return ivec2(2); +} + +vec4 f = e * e; + +const vec3 cv3 = vec3(43.0, 0.34, 9.9); +const vec3 cv3e = vec3(43.0, 0.34, 2.9); +uniform mat2 um2 = mat2(4.0); +uniform mat2 um2n; +uniform mat2 um2e = mat2(3.0); +struct S { + int a; + float b; +}; +uniform S s = S(82, 3.9); +uniform S sn = S(82, 3.9); +uniform S se = S(81, 3.9); + +#extension GL_OES_texture_3D : enable +#extension GL_OES_standard_derivatives : enable diff --git a/deps/glslang/glslang/Test/link2.vk.frag b/deps/glslang/glslang/Test/link2.vk.frag new file mode 100644 index 0000000000..b80402ca55 --- /dev/null +++ b/deps/glslang/glslang/Test/link2.vk.frag @@ -0,0 +1,23 @@ +#version 450 + +layout(binding=1) uniform sampler2D s2D; + +int a1[]; // max size from link1 +int a2[]; // max size from link2 +int b[]; +int c[7]; +int i; + +buffer bnameRuntime { float r[]; }; +buffer bnameImplicit { float m[4]; }; + +vec4 getColor() +{ + a1[2] = 1; + a2[9] = 1; + b[2] = 1; + c[3] = 1; + c[i] = 1; + + return texture(s2D, vec2(0.5)); +} diff --git a/deps/glslang/glslang/Test/link3.frag b/deps/glslang/glslang/Test/link3.frag new file mode 100644 index 0000000000..f886b23f92 --- /dev/null +++ b/deps/glslang/glslang/Test/link3.frag @@ -0,0 +1,9 @@ +#version 300 es + +precision highp float; + +in vec2 iv3; + +#extension GL_OES_standard_derivatives : enable +#extension GL_OES_EGL_image_external : require +#extension GL_OES_texture_3D : enable diff --git a/deps/glslang/glslang/Test/localAggregates.frag b/deps/glslang/glslang/Test/localAggregates.frag new file mode 100644 index 0000000000..d8a7fb18d2 --- /dev/null +++ b/deps/glslang/glslang/Test/localAggregates.frag @@ -0,0 +1,72 @@ +#version 130 + +uniform sampler2D sampler; +varying vec2 coord; +varying vec4 color; + +struct s1 { + int i; + float f; +}; + +struct s2 { + int i; + float f; + s1 s1_1; + vec4 bleh; +}; + +struct s3 { + s2 s2_1; + int i; + float f; + s1 s1_1; +}; + + +uniform s1 foo; +uniform s2 foo2; +uniform s3 foo3; + +uniform float[16] uFloatArray; +uniform int condition; + +void main() +{ + s2 locals2; + s3 locals3; + float localFArray[16]; + int localIArray[8]; + + locals2 = foo3.s2_1; + + if (foo3.s2_1.i > 0) { + locals2.s1_1.f = 1.0; + localFArray[4] = coord.x; + localIArray[2] = foo3.s2_1.i; + } else { + locals2.s1_1.f = coord.x; + localFArray[4] = 1.0; + localIArray[2] = 0; + } + + if (localIArray[2] == 0) + ++localFArray[4]; + + float localArray[16]; + int x = 5; + localArray[x] = coord.x; + + float[16] a; + + for (int i = 0; i < 16; i++) + a[i] = 0.0; + + if (condition == 1) + a = localArray; + + locals2.bleh = color; + locals2.bleh.z = coord.y; + + gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture2D(sampler, coord); +} diff --git a/deps/glslang/glslang/Test/loops.frag b/deps/glslang/glslang/Test/loops.frag new file mode 100644 index 0000000000..ce2d2a0b24 --- /dev/null +++ b/deps/glslang/glslang/Test/loops.frag @@ -0,0 +1,320 @@ +#version 130 +uniform vec4 bigColor; +uniform vec4 bigColor1_1; +uniform vec4 bigColor1_2; +uniform vec4 bigColor1_3; +uniform vec4 bigColor2; +uniform vec4 bigColor3; +uniform vec4 bigColor4; +uniform vec4 bigColor5; +uniform vec4 bigColor6; +uniform vec4 bigColor7; +uniform vec4 bigColor8; + +varying vec4 BaseColor; + +uniform float d; +uniform float d2; +uniform float d3; +uniform float d4; +uniform float d5; +uniform float d6; +uniform float d7; +uniform float d8; +uniform float d9; +uniform float d10; +uniform float d11; +uniform float d12; +uniform float d13; +uniform float d14; +uniform float d15; +uniform float d16; +uniform float d17; +uniform float d18; +uniform float d19; +uniform float d20; +uniform float d21; +uniform float d22; +uniform float d23; +uniform float d24; +uniform float d25; +uniform float d26; +uniform float d27; +uniform float d28; +uniform float d29; +uniform float d30; +uniform float d31; +uniform float d32; +uniform float d33; +uniform float d34; + +uniform int Count; + +void main() +{ + vec4 color = BaseColor; + + // Not a real loop + while (true) { + if (color.x < 0.33) { + color += vec4(0.33); + break; + } + if (color.x < 0.66) { + color += vec4(0.66); + break; + } + + color += vec4(0.33); + break; + } + + // While + while (color.x < d) { + color += bigColor; + } + + // While (latchy) + while (color.z < d) { + color += bigColor1_1; + if (color.w < d) + continue; + + color += bigColor1_1; + } + + // While (constant) + while (color.x < 42.0) { + ++color; + } + + // While (complicated-conditional) + while (color.w < d2 && color.y < d3) { + color += bigColor1_2; + } + + // While (multi-exit) + while (color.z < d3) { + color += bigColor1_3; + if (color.y < d4) + break; + color += bigColor1_3; + } + + // For (dynamic) + for (int i = 0; i < Count; ++i) { + color += bigColor2; + } + + // Do while + do { + color += bigColor3; + } while (color.x < d2); + + // For (static) + for (int i = 0; i < 42; ++i) { + color.z += d3; + } + + // For (static) flow-control + for (int i = 0; i < 100; ++i) { + if (color.z < 20.0) + color.x++; + else + color.y++; + if (color.w < 20.0) + if (color.z > color.y) + 0; // do nothing + } + + // For (static) flow-control with latch merge + for (int i = 0; i < 120; ++i) { + if (color.z < 20.0) + color.x++; + else + color.y++; + } + + // For (static) latchy + for (int i = 0; i < 42; ++i) { + color.z += d3; + if (color.x < d4) + continue; + ++color.w; + } + + // For (static) multi-exit + for (int i = 0; i < 42; ++i) { + color.z += d3; + if (color.x < d4) + break; + ++color.w; + } + + // Latchy + do { + color += bigColor4; + if (color.x < d4) + continue; + if (color.y < d4) + color.y += d4; + else + color.x += d4; + } while (color.z < d4); + + // Do while flow control + do { + color += bigColor5; + if (color.y < d5) + color.y += d5; + } while (color.x < d5); + + // If then loop + if (color.x < d6) { + while (color.y < d6) + color += bigColor6; + } else { + while (color.z < d6) + color.z += bigColor6.z; + } + + // If then multi-exit + if (color.x < d6) { + while (color.y < d6) { + color += bigColor6; + if (d7 < 1.0) + break; + } + + } else { + while (color.z < d6) + color.z += bigColor6.z; + } + + + // Multi-exit + do { + if (d7 < 0.0) + break; + + color += bigColor7; + + if (d7 < 1.0) { + color.z++; + break; + } + + color += BaseColor; + + } while (true); + + + // Multi-exit2 + do { + // invariant conditional break at the top of the loop. This could be a + // situation where unswitching the loop has no real increases in code + // size. + if (d8 < 0.0) + break; + + color += bigColor7; + + if (d8 < 1.0) { + color.z++; + if (d8 < 2.0) { + color.y++; + } else { + color.x++; + } + break; + } + + color += BaseColor; + + } while (color.z < d8); + + // Deep exit + while (color.w < d9) { + if (d9 > d8) { + if (color.x <= d7) { + if (color.z == 5.0) + color.w++; + else + break; + } + } + + } + + // No end loop-back. + while (color.z < d10) { + color.y++; + if (color.y < d11) { + color.z++; + if (color.w < d12) + color.w++; + else + color.x++; + continue; + } + + color++; + break; + } + + // Multi-continue + while (color.x < 10.0) { + color += bigColor8; + + if (color.z < d8) + if (color.w < d6) + continue; + + color.y += bigColor8.x; + } + + color++; + gl_FragColor = color; + + // Early Return + while (color.x < d14) { + if (color.y < d15) { + return; + } + else + color++; + } + + color++; + + while (color.w < d16) { + color.w++; + } + + + // While (complicated-conditional) + while (color.w < d2 && color.y < d3) { + color += bigColor1_2; + if (color.z < d3) + return; + } + + + do { + if (color.y < d18) + return; + color++; + } while (color.x < d17); + + // Early Discard + while (color.y < d16) { + if (color.w < d16) { + discard; + } else + color++; + } + + color++; + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/loopsArtificial.frag b/deps/glslang/glslang/Test/loopsArtificial.frag new file mode 100644 index 0000000000..2f196af8ed --- /dev/null +++ b/deps/glslang/glslang/Test/loopsArtificial.frag @@ -0,0 +1,96 @@ +#version 130 +uniform vec4 bigColor; +uniform vec4 bigColor1_1; +uniform vec4 bigColor1_2; +uniform vec4 bigColor1_3; +uniform vec4 bigColor2; +uniform vec4 bigColor3; +uniform vec4 bigColor4; +uniform vec4 bigColor5; +uniform vec4 bigColor6; +uniform vec4 bigColor7; +uniform vec4 bigColor8; + +varying vec4 BaseColor; + +uniform float d; +uniform float d2; +uniform float d3; +uniform float d4; +uniform float d5; +uniform float d6; +uniform float d7; +uniform float d8; +uniform float d9; +uniform float d10; +uniform float d11; +uniform float d12; +uniform float d13; +uniform float d14; +uniform float d15; +uniform float d16; +uniform float d17; +uniform float d18; +uniform float d19; +uniform float d20; +uniform float d21; +uniform float d22; +uniform float d23; +uniform float d24; +uniform float d25; +uniform float d26; +uniform float d27; +uniform float d28; +uniform float d29; +uniform float d30; +uniform float d31; +uniform float d32; +uniform float d33; +uniform float d34; + +uniform int Count; + +void main() +{ + vec4 color = BaseColor; + + // Latchy2 + do { + color += bigColor4; + if (color.x < d4) { + color.z += 2.0; + if (color.z < d4) { + color.x++; + continue; + } + } + if (color.y < d4) + color.y += d4; + else + color.x += d4; + } while (color.z < d4); + + // Immediate dominator + while (color.w < d13) { + if (color.z < d13) + color++; + else + color--; + // code from Latchy 2 + color += bigColor4; + if (color.x < d4) { + color.z += 2.0; + if (color.z < d4) { + color.x++; + continue; + } + } + if (color.y < d4) + color.y += d4; + else + color.x += d4; + } + + color++; + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/mains.frag b/deps/glslang/glslang/Test/mains.frag new file mode 100644 index 0000000000..5756a3e131 --- /dev/null +++ b/deps/glslang/glslang/Test/mains.frag @@ -0,0 +1,9 @@ +#version 300 es + +void main() +{ +} + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/mains1.frag b/deps/glslang/glslang/Test/mains1.frag new file mode 100644 index 0000000000..e0de2e1e10 --- /dev/null +++ b/deps/glslang/glslang/Test/mains1.frag @@ -0,0 +1,5 @@ +#version 110 + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/mains2.frag b/deps/glslang/glslang/Test/mains2.frag new file mode 100644 index 0000000000..e0de2e1e10 --- /dev/null +++ b/deps/glslang/glslang/Test/mains2.frag @@ -0,0 +1,5 @@ +#version 110 + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/makeDoc b/deps/glslang/glslang/Test/makeDoc new file mode 100644 index 0000000000..c9d598ec41 --- /dev/null +++ b/deps/glslang/glslang/Test/makeDoc @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +./glslangValidator -p > instDesc +asciidoc --backend=html5 instDesc diff --git a/deps/glslang/glslang/Test/matrix.frag b/deps/glslang/glslang/Test/matrix.frag new file mode 100644 index 0000000000..150e0434f6 --- /dev/null +++ b/deps/glslang/glslang/Test/matrix.frag @@ -0,0 +1,55 @@ +#version 130 + +//#define TEST_POST_110 + +uniform mat3 colorTransform; +varying vec3 Color; +uniform mat4 m, n; + +#ifdef TEST_POST_110 +uniform mat4x3 um43; +uniform mat3x4 un34; +#else +uniform mat4 um43; +uniform mat4 un34; +#endif + +varying vec4 v; + +#ifdef TEST_POST_110 +varying vec3 u; +#else +varying vec4 u; +#endif + +void main() +{ + gl_FragColor = vec4(un34[1]); + gl_FragColor += vec4(Color * colorTransform, 1.0); + + if (m != n) + gl_FragColor += v; + else { + gl_FragColor += m * v; + gl_FragColor += v * (m - n); + } + +#ifdef TEST_POST_110 + mat3x4 m34 = outerProduct(v, u); + m34 += mat4(v.x); + m34 += mat4(u, u.x, u, u.x, u, u.x, u.x); +#else + mat4 m34 = mat4(v.x*u.x, v.x*u.y, v.x*u.z, v.x*u.w, + v.y*u.x, v.y*u.y, v.y*u.z, v.y*u.w, + v.z*u.x, v.z*u.y, v.z*u.z, v.z*u.w, + v.w*u.x, v.w*u.y, v.w*u.z, v.w*u.w); + m34 += mat4(v.x); + m34 += mat4(u, u.x, u, u.x, u, u.x, u.x); + +#endif + + if (m34 == un34) + gl_FragColor += m34 * u; + else + gl_FragColor += (un34 * um43) * v; +} diff --git a/deps/glslang/glslang/Test/matrix2.frag b/deps/glslang/glslang/Test/matrix2.frag new file mode 100644 index 0000000000..df65804401 --- /dev/null +++ b/deps/glslang/glslang/Test/matrix2.frag @@ -0,0 +1,51 @@ +#version 150 + +uniform mat3 colorTransform; +varying vec3 Color; +uniform mat4 m, n; + +uniform mat4x3 um43; +uniform mat3x4 un34; +uniform mat2 um2; +uniform mat3 um3; +uniform mat4 um4; + +varying vec4 v; + +varying vec3 u; + +out vec4 FragColor; + +void main() +{ + mat3x4 m34 = outerProduct(v, u); + + m34 += mat3x4(4.3); + + FragColor = vec4(Color, 1.0); + FragColor *= vec4(FragColor * m34, 1.0); + + m34 *= v.x; + + mat4 m44 = mat4(un34); + + m44 += m34 * um43; + + FragColor += (-m44) * v; + + FragColor *= matrixCompMult(m44, m44); + + m34 = transpose(um43); + FragColor *= vec4(FragColor * m34, 1.0); + FragColor *= vec4(determinant(um4)); + mat2 inv = inverse(um2); + FragColor *= vec4(inv[0][0], inv[1][0], inv[0][1], inv[1][1]); + mat3 inv3 = inverse(um3); + FragColor *= vec4(inv3[2][1]); + + mat4 inv4 = inverse(um4); + FragColor *= inv4; + + FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w); + m34 *= colorTransform; +} diff --git a/deps/glslang/glslang/Test/matrixError.vert b/deps/glslang/glslang/Test/matrixError.vert new file mode 100644 index 0000000000..0ad145b255 --- /dev/null +++ b/deps/glslang/glslang/Test/matrixError.vert @@ -0,0 +1,24 @@ +#version 120 + +attribute vec3 v3; + +uniform mat3x2 m32; + +const mat2x4 m24 = mat2x4(1.0, 2.0, + 3.0, 4.0, + 3.0, 4.0, + 3.0, 4.0, 5.0); // ERROR, too many arguments + +void main() +{ + mat2x3 m23; + vec3 a, b; + + a = v3 * m23; // ERROR, type mismatch + b = m32 * v3; // ERROR, type mismatch + m23.xy; // ERROR, can't use . + + gl_Position = vec4(m23 * m32 * v3, m24[2][4]); // ERROR, 2 and 4 are out of range + m23 *= m23; // ERROR, right side needs to be square + m23 *= m32; // ERROR, left columns must match right rows +} diff --git a/deps/glslang/glslang/Test/maxClipDistances.vert b/deps/glslang/glslang/Test/maxClipDistances.vert new file mode 100644 index 0000000000..62ddfeb995 --- /dev/null +++ b/deps/glslang/glslang/Test/maxClipDistances.vert @@ -0,0 +1,7 @@ +#version 130 + +out float gl_ClipDistance[8]; // OK, 8 is gl_MaxClipDistances + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/max_vertices_0.geom b/deps/glslang/glslang/Test/max_vertices_0.geom new file mode 100644 index 0000000000..4a420be10f --- /dev/null +++ b/deps/glslang/glslang/Test/max_vertices_0.geom @@ -0,0 +1,12 @@ +#version 330 + +layout(points) in; +layout(triangle_strip, max_vertices = 0) out; +in highp vec4 v_geom_FragColor[]; +out highp vec4 v_frag_FragColor; + +void main (void) +{ + EndPrimitive(); + EndPrimitive(); +} diff --git a/deps/glslang/glslang/Test/missingBodies.vert b/deps/glslang/glslang/Test/missingBodies.vert new file mode 100644 index 0000000000..04b7181549 --- /dev/null +++ b/deps/glslang/glslang/Test/missingBodies.vert @@ -0,0 +1,24 @@ +#version 450 + +void bar(); +void foo() { bar(); } + +void B(); +void C(int); +void C(int, int) { } +void C(bool); +void A() { B(); C(1); C(true); C(1, 2); } + +void main() +{ + foo(); + C(true); +} + +int ret1(); + +int f1 = ret1(); + +int ret2() { return 3; } + +int f2 = ret2(); diff --git a/deps/glslang/glslang/Test/mixedArrayDecls.frag b/deps/glslang/glslang/Test/mixedArrayDecls.frag new file mode 100644 index 0000000000..aff4f78a56 --- /dev/null +++ b/deps/glslang/glslang/Test/mixedArrayDecls.frag @@ -0,0 +1,30 @@ +#version 450 + +struct S { + int[3] a[2], b[5]; +}; + +S s; + +int[5] c[4], d[8]; +int[9] e[], f[]; +int e[11][9]; +int f[13][9]; + +int[14] g[], h[]; + +int [14][15][6] foo(int[6] p[14][15]) { return p; } + +void main() +{ + g[3]; + h[2]; +} + +float[4][3][2] bar() { float[3][2] a[4]; return a; } + +in inbname { + float[7] f[8][9]; +} inbinst[4][5][6]; + +float[3][2] barm[4]() { float[3][2] a[4]; return a; } // ERROR diff --git a/deps/glslang/glslang/Test/negativeArraySize.comp b/deps/glslang/glslang/Test/negativeArraySize.comp new file mode 100644 index 0000000000..20636c0a7d --- /dev/null +++ b/deps/glslang/glslang/Test/negativeArraySize.comp @@ -0,0 +1,10 @@ +#version 310 es + +#ifdef GL_ES +precision mediump float; +#endif + +void main() +{ + float f[-2]; // cannot declare arrays with negative size +} diff --git a/deps/glslang/glslang/Test/newTexture.frag b/deps/glslang/glslang/Test/newTexture.frag new file mode 100644 index 0000000000..30e77dce63 --- /dev/null +++ b/deps/glslang/glslang/Test/newTexture.frag @@ -0,0 +1,75 @@ +#version 430 + +uniform samplerBuffer sb; +uniform sampler2DRect sr; +uniform sampler2D s2D; +uniform sampler3D s3D; +uniform samplerCube sCube; +uniform samplerCubeShadow sCubeShadow; +uniform sampler2DShadow s2DShadow; +uniform sampler2DArray s2DArray; +uniform sampler2DArrayShadow s2DArrayShadow; + +uniform isampler2D is2D; +uniform isampler3D is3D; +uniform isamplerCube isCube; +uniform isampler2DArray is2DArray; +uniform isampler2DMS is2Dms; + +uniform usampler2D us2D; +uniform usampler3D us3D; +uniform usamplerCube usCube; +uniform usampler2DArray us2DArray; + +in float c1D; +in vec2 c2D; +in vec3 c3D; +in vec4 c4D; + +flat in int ic1D; +flat in ivec2 ic2D; +flat in ivec3 ic3D; +flat in ivec4 ic4D; + +out vec4 FragData; + +void main() +{ + vec4 v = texture(s2D, c2D); + v += textureProj(s3D, c4D); + v += textureLod(s2DArray, c3D, 1.2); + v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); + v += texelFetch(s3D, ic3D, ic1D); + v += texelFetchOffset(s2D, ic2D, 4, ivec2(3)); + v += texelFetchOffset(sr, ic2D, ivec2(4)); + v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3)); + v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3)); + v += textureGrad(sCube, c3D, c3D, c3D); + v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3)); + v += textureProjGrad(s3D, c4D, c3D, c3D); + v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3)); + + ivec4 iv = texture(is2D, c2D); + v += vec4(iv); + iv = textureProjOffset(is2D, c4D, ivec2(3)); + v += vec4(iv); + iv = textureProjLod(is2D, c3D, c1D); + v += vec4(iv); + iv = textureProjGrad(is2D, c3D, c2D, c2D); + v += vec4(iv); + iv = texture(is3D, c3D, 4.2); + v += vec4(iv); + iv = textureLod(isCube, c3D, c1D); + v += vec4(iv); + iv = texelFetch(is2DArray, ic3D, ic1D); + v += vec4(iv); + iv += texelFetch(is2Dms, ic2D, ic1D); + v += vec4(iv); + v += texelFetch(sb, ic1D); + v += texelFetch(sr, ic2D); + + ivec2 iv2 = textureSize(sCubeShadow, 2); + // iv2 += textureSize(is2Dms); + + FragData = v + vec4(iv2, 0.0, 0.0); +} diff --git a/deps/glslang/glslang/Test/noMain.vert b/deps/glslang/glslang/Test/noMain.vert new file mode 100644 index 0000000000..e83be04765 --- /dev/null +++ b/deps/glslang/glslang/Test/noMain.vert @@ -0,0 +1,5 @@ +#version 300 es + +void foo() +{ +} diff --git a/deps/glslang/glslang/Test/noMain1.geom b/deps/glslang/glslang/Test/noMain1.geom new file mode 100644 index 0000000000..ab0834f9ce --- /dev/null +++ b/deps/glslang/glslang/Test/noMain1.geom @@ -0,0 +1,7 @@ +#version 110 + +void foo() +{ +} + +layout(points) out; \ No newline at end of file diff --git a/deps/glslang/glslang/Test/noMain2.geom b/deps/glslang/glslang/Test/noMain2.geom new file mode 100644 index 0000000000..9fb5fd7d2d --- /dev/null +++ b/deps/glslang/glslang/Test/noMain2.geom @@ -0,0 +1,7 @@ +#version 150 + +void bar() +{ +} + +layout(line_strip) out; diff --git a/deps/glslang/glslang/Test/nonSquare.vert b/deps/glslang/glslang/Test/nonSquare.vert new file mode 100644 index 0000000000..0974425917 --- /dev/null +++ b/deps/glslang/glslang/Test/nonSquare.vert @@ -0,0 +1,25 @@ +#version 120 + +attribute vec3 v3; +attribute vec4 v4; + +uniform mat3x2 m32; + +const vec2 cv2 = vec2(10.0, 20.0); +const mat2x4 m24 = mat2x4(3.0); +const mat4x2 m42 = mat4x2(1.0, 2.0, + 3.0, 4.0, + 5.0, 6.0, + 7.0, 8.0); + +void main() +{ + mat2x3 m23; + vec2 a, b; + + a = v3 * m23; + b = m32 * v3; + + gl_Position = vec4(m23 * m32 * v3, m24[1][3]) + + (m24 * m42) * v4 + cv2 * m42 + m24 * cv2 + vec4(cv2[1], cv2.x, m42[2][1], m42[2][0]); +} diff --git a/deps/glslang/glslang/Test/nonVulkan.frag b/deps/glslang/glslang/Test/nonVulkan.frag new file mode 100644 index 0000000000..425e8402db --- /dev/null +++ b/deps/glslang/glslang/Test/nonVulkan.frag @@ -0,0 +1,9 @@ +#version 450 + +layout(constant_id = 17) const int arraySize = 12; // ERROR +layout(input_attachment_index = 1) int foo; // ERROR +layout(push_constant) uniform ubn { int a; } ubi; // ERROR + +#ifdef VULKAN +#error VULKAN should not be defined +#endif diff --git a/deps/glslang/glslang/Test/nonuniform.frag b/deps/glslang/glslang/Test/nonuniform.frag new file mode 100644 index 0000000000..3f3dd67a71 --- /dev/null +++ b/deps/glslang/glslang/Test/nonuniform.frag @@ -0,0 +1,33 @@ +#version 450 + +int nonuniformEXT; + +#extension GL_EXT_nonuniform_qualifier : enable + +nonuniformEXT in vec4 nu_inv4; +nonuniformEXT float nu_gf; + +nonuniformEXT out vec4 nu_outv4; // ERROR, out +nonuniformEXT uniform vec4 nu_uv4; // ERROR, uniform +nonuniformEXT const float nu_constf = 1.0; // ERROR, const + +nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f) +{ + return nupi; +} + +void main() +{ + nonuniformEXT int nu_li; + nonuniformEXT const int nu_ci = 2; // ERROR, const + + foo(nu_li, nu_li); + + int a; + nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2); + nu_li = nonuniformEXT(a, a); // ERROR, too many arguments + nu_li = nonuniformEXT(); // ERROR, no arguments +} + +layout(location=1) in struct S { float a; nonuniformEXT float b; } ins; // ERROR, not on member +layout(location=3) in inbName { float a; nonuniformEXT float b; } inb; // ERROR, not on member diff --git a/deps/glslang/glslang/Test/nosuffix b/deps/glslang/glslang/Test/nosuffix new file mode 100644 index 0000000000..26862fff15 --- /dev/null +++ b/deps/glslang/glslang/Test/nosuffix @@ -0,0 +1,4 @@ +void main() +{ + gl_Position = vec4(1.0); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/numeral.frag b/deps/glslang/glslang/Test/numeral.frag new file mode 100644 index 0000000000..39814f4edd --- /dev/null +++ b/deps/glslang/glslang/Test/numeral.frag @@ -0,0 +1,106 @@ +#version 400 + +void main() +{ + int o00 = 00; + int o000 = 000; + int o0000 = 0000; + int o5 = 05; + int o05 = 005; + int o006 = 0006; + int o7 = 07; + int o58 = 072; + int omax = 037777777777; + int o8 = 08; // ERROR + int o08 = 008; // ERROR + int o009 = 0009; // ERROR + int obig = 07324327323472347234; // ERROR + int omax1 = 040000000000; // ERROR + + uint uo5 = 05u; + uint uo6 = 06u; + uint uo7 = 07u; + uint uo8 = 08u; // ERROR + uint uo9 = 09u; // ERROR + + int h0 = 0x0; + int h00 = 0x00; + int h000 = 0x000; + int h1 = 0x1; + int h2 = 0x00000002; + int h300 = 0x000300; + int hABCDEF = 0xAbCdEF; + int hFFFFFFFF = 0xFFFFFFFF; + int h12345678 = 0xBC614E; + int hToBeOrNotToBe = 0x2b | ~0x2B; + + uint uh0 = 0x0u; + uint uhg = (0xcu); + uint uh000 = 0x000u; + uint uh1 = 0x1u; + uint uh2 = 0x00000002u; + uint uh300 = 0x000300u; + uint uhABCDEF = 0xAbCdEFu; + uint uhFFFFFFFF = 0xFFFFFFFFu; + uint uh12345678 = 0xBC614Eu; + uint uhToBeOrNotToBe = 0x2bu | ~0x2BU; + + //int he1 = 0xG; // ERROR + int he2 = 0x; // ERROR + int hbig = 0xFFFFFFFF1; // ERROR + + float f1 = 1.0; + float f2 = 2.; + float f3 = 3e0; + float f4 = 40e-1; + float f5 = 05.; + float f6 = 006.; + float f7 = .7e1; + float f8 = 08e0; + float f9 = .9e+1; + float f10 = 10.0; + float f11 = .011e+3; + float f12 = .0012e4; + float f543 = 000000543.; + float f6789 = 00006789.; + float f88 = 0000088.; + + float g1 = 5.3876e4; + float g2 = 4000000000e-11; + float g3 = 1e+5; + float g4 = 7.321E-3; + float g5 = 3.2E+4; + float g6 = 0.5e-5; + float g7 = 0.45; + float g8 = 6.e10; + + double gf1 = 1.0lf; + double gf2 = 2.Lf; + double gf3 = .3e1lF; + double gf4 = .4e1LF; + float gf5 = 5.f; + float gf6 = 6.F; + + //float e1 = 1..; // ERROR + //float e2 = 2.l; // ERROR + //float e3 = ..3; // ERROR + //float e4 = 4ee1; // ERROR + float e5 = 5f; // ERROR +} + +layout (location = 2) out vec4 c2; +layout (location = 3u) out vec4 c3; +layout (location = 04) out vec4 c4; +layout (location = 005u) out vec4 c5; +layout (location = 0x6) out vec4 c6; +layout (location = 0x7u) out vec4 c7; + +uint g1 = 4294967296u; // ERROR, too big +uint g2 = 4294967295u; +uint g3 = 4294967294u; +int g4 = 4294967296; // ERROR, too big +int g5 = 4294967295; +int g6 = 4294967294; +float inf1 = -1.#INF; +float inf2 = 1.#INF; +float inf3 = +1.#INF; diff --git a/deps/glslang/glslang/Test/nvShaderNoperspectiveInterpolation.frag b/deps/glslang/glslang/Test/nvShaderNoperspectiveInterpolation.frag new file mode 100644 index 0000000000..15c191d039 --- /dev/null +++ b/deps/glslang/glslang/Test/nvShaderNoperspectiveInterpolation.frag @@ -0,0 +1,15 @@ +#version 300 es + +precision mediump float; + +noperspective in vec4 bad; // ERROR + +#extension GL_NV_shader_noperspective_interpolation : enable + +noperspective in vec4 color; + +out vec4 fragColor; + +void main() { + fragColor = color; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/overlongLiteral.frag b/deps/glslang/glslang/Test/overlongLiteral.frag new file mode 100644 index 0000000000..c351ed6b8b --- /dev/null +++ b/deps/glslang/glslang/Test/overlongLiteral.frag @@ -0,0 +1 @@ +0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; diff --git a/deps/glslang/glslang/Test/parent.h b/deps/glslang/glslang/Test/parent.h new file mode 100644 index 0000000000..9ef68e0b84 --- /dev/null +++ b/deps/glslang/glslang/Test/parent.h @@ -0,0 +1 @@ +float4 i4; diff --git a/deps/glslang/glslang/Test/parentBad b/deps/glslang/glslang/Test/parentBad new file mode 100644 index 0000000000..e54c10d059 --- /dev/null +++ b/deps/glslang/glslang/Test/parentBad @@ -0,0 +1,3 @@ +int a; + +#error bad parent diff --git a/deps/glslang/glslang/Test/pointCoord.frag b/deps/glslang/glslang/Test/pointCoord.frag new file mode 100644 index 0000000000..8dc9e746db --- /dev/null +++ b/deps/glslang/glslang/Test/pointCoord.frag @@ -0,0 +1,15 @@ +precision highp float; + +uniform sampler2D sampler; + +void main() +{ + vec4 color; + + if (length(gl_PointCoord) < 0.3) + color = texture2D(sampler, gl_PointCoord); + else + color = vec4(0.0); + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/precise.tesc b/deps/glslang/glslang/Test/precise.tesc new file mode 100644 index 0000000000..c541540cbb --- /dev/null +++ b/deps/glslang/glslang/Test/precise.tesc @@ -0,0 +1,109 @@ +#version 450 +#extension GL_EXT_tessellation_shader : require +#extension GL_EXT_gpu_shader5 : require + +float minimal() { + precise float result = 5.0; + float a = 10.0; + float b = 20.0; + float c = 30.0; + float d = 40.0; + result = a * b + c * d; // c * d, a * b and rvalue1 + rvalue2 should be 'noContraction'. + return result; +} + +void continuous_assignment() { + precise float result = 5.0; + float a = 10.0; + float b = 20.0; + result = a = b + 4; // b + 4 should be 'noContraction'. +} + +void convert() { + precise double result; + float a = 10.0; + float b = 20.0; + b = a + b; // a + b should be 'noContraction'. + result = double(b); // convert operation should not be 'noContraction'. +} + +float loop_for() { + precise float r1 = 5.0; + precise float r2 = 10.0; + int a = 10; + int b = 20; + int c = 30; + for (int i = 0; i < a; i++) { + r1 += 3.12 + b + i; // 'noContration', this make i++ also 'noContraction' + c += 1; // 'noContration' + } + a += 1; // a + 1 should not be 'noContraction'. + r2 = c; // The calculation of c should be 'noContration'. + return float(r1 + r2); // conversion should not be 'noContration'. +} + +void loop_array(void) { + precise float result; + + int x = 22; + int y = 33; + + float a0[3]; + result += float(x) + float(y); // x + y should be 'noContraction' also result + rvalue. + + for (int i = 0; i < 3; ++i) { + // a's dereference + 2 should be 'noContraction'. + result += a0[i] + 2; + // result + 1 and 3 - rvalue should be 'noContraction'. + a0[i] = 3 - result++; + } +} + +void loop_while() { + precise float result = 5.0; + int a = 10; + int b = 20; + while (result < 10) { + result += 3.12 + b; // result + 3.12 should be 'noContraction'. + } + result = a + b + 5; // b + 5 should not be 'noCtraction' because all operands are integers. + result = 11.1; +} + +float fma_not_decorated() { + precise float result; + float a = 1.0; + float b = 2.0; + float c = 3.0; + b = b + c; // b + c should be decorated with 'noContraction' + result = fma(a, b, c); // fma() should not be decorated with 'noContradtion' + return result; +} + +precise float precise_return_exp_func() { + float a = 1.0; + float b = 2.0; + return a + b; // the ADD operation should be 'noContraction' +} + +precise float precise_return_val_func() { + float a = 1.0; + float b = 2.0; + float result = a + b; // the ADD operation should be 'noContraction' + return result; +} + +float precise_func_parameter(float b, precise out float c) { + float a = 0.5; + c = a + b; // noContration + return a - b; // Not noContraction +} + +mat3 matrix (mat2x3 a, mat3x2 b) { + mat2x3 c = mat2x3(1.0, 2.0, 3.0, 4.0, 5.0, 6.0); + precise mat3 result; + result = (a + c) * b; // should be noContraction + return result; +} + +void main(){} diff --git a/deps/glslang/glslang/Test/precise_struct_block.vert b/deps/glslang/glslang/Test/precise_struct_block.vert new file mode 100644 index 0000000000..279b4b09df --- /dev/null +++ b/deps/glslang/glslang/Test/precise_struct_block.vert @@ -0,0 +1,89 @@ +#version 450 + +struct T { + float f1; + float f2; +}; + +out B1 {precise T s; float x;} partial_precise_block; +precise out B2 {T s; float x;} all_precise_block; + +float struct_member() { + float a = 1.0; + float b = 2.0; + float c = 3.0; + float d = 4.0; + + precise float result; + + T S, S2, S3; + + S2.f1 = a + 0.2; // NoContraction + S2.f2 = b + 0.2; // NOT NoContraction + S3.f1 = a + b; // NOT NoContraction + S = S2; // "precise" propagated through parent object nodes + result = S.f1 + 0.1; // the ADD operation should be NoContraction + + return result; +} + +float complex_array_struct() { + precise float result; + struct T1 { + float t1_array[3]; + float t1_scalar; + }; + struct T2 { + T1 t1a[5]; + T1 t1b[6]; + T1 t1c[7]; + }; + struct T3 {float f; T2 t2; vec4 v; int p;}; + T3 t3[10]; + for(int i=0; i<10; i++) { + t3[i].f = i / 3.0; // Not NoContraction + t3[i].v = vec4(i * 1.5); // NoContraction + t3[i].p = i + 1; + for(int j=0; j<5; j++) { + for(int k = 0; k<3; k++) { + t3[i].t2.t1a[j].t1_array[k] = i * j + k; // Not NoContraction + } + t3[i].t2.t1a[j].t1_scalar = j * 2.0 / i; // Not NoContration + } + + for(int j=0; j<6; j++) { + for(int k = 0; k<3; k++) { + t3[i].t2.t1b[j].t1_array[k] = i * j + k; // Not NoContraction + } + t3[i].t2.t1b[j].t1_scalar = j * 2.0 / i; // NoContraction + } + + for(int j=0; j<6; j++) { + for(int k = 0; k<3; k++) { + t3[i].t2.t1c[j].t1_array[k] = i * j + k; // Not NoContraction because all operands are integers + } + t3[i].t2.t1c[j].t1_scalar = j * 2.0 / i; // Not NoContraction + } + } + int i = 2; + result = t3[5].t2.t1c[6].t1_array[1] + + t3[2].t2.t1b[1].t1_scalar + + t3[i - 1].v.xy.x; // NoContraction + return result; +} + +float out_block() { + float a = 0.1; + float b = 0.2; + partial_precise_block.s.f1 = a + b; // NoContraction + partial_precise_block.s.f2 = a - b; // NoContraction + partial_precise_block.x = a * b; // Not NoContraction + + all_precise_block.s.f1 = a + b + 1.0; // NoContraction + all_precise_block.s.f2 = a - b - 1.0; // NoContraction + all_precise_block.x = a * b * 2.0; // Also NoContraction + + return a + b; // Not NoContraction +} + +void main(){} diff --git a/deps/glslang/glslang/Test/precision.frag b/deps/glslang/glslang/Test/precision.frag new file mode 100644 index 0000000000..e24fa52ccf --- /dev/null +++ b/deps/glslang/glslang/Test/precision.frag @@ -0,0 +1,76 @@ +#version 100 + +varying vec3 color; // ERRROR, there is no default qualifier for float + +lowp vec2 foo(mediump vec3 mv3) +{ + highp vec4 hv4; + return hv4.xy; +} + +int global_medium; + +uniform lowp sampler2D samplerLow; +uniform mediump sampler2D samplerMed; +uniform highp sampler2D samplerHigh; + +precision highp int; +precision highp ivec2; // ERROR +precision mediump int[2]; // ERROR +vec4 uint; // okay +precision mediump vec4; // ERROR + +int global_high; + +void main() +{ + lowp int sum = global_medium + global_high; + + gl_FragColor = vec4(color, 1.0); + + int level1_high; + sum += level1_high; + + precision lowp int; + int level1_low; + sum += level1_low; + + // test maxing precisions of args to get precision of builtin + lowp float arg1; + mediump float arg2; + lowp float d = distance(arg1, arg2); + + { + int level2_low; + sum += level2_low; + + precision highp int; + int level2_high; + sum += level2_high; + do { + if (true) { + precision mediump int; + int level4_medium; + sum += level4_medium; + } + int level3_high; + sum += level3_high; + } while (true); + int level2_high2; + sum += level2_high2; + } + int level1_low3; + sum += level1_low3; + + sum += 4 + ((ivec2(level1_low3) * ivec2(level1_high) + ivec2((/* comma operator */level1_low3, level1_high)))).x; + + texture2D(samplerLow, vec2(0.1, 0.2)); + texture2D(samplerMed, vec2(0.1, 0.2)); + texture2D(samplerHigh, vec2(0.1, 0.2)); +} + +precision mediump bool; // ERROR +//precision mediump struct { int a; } s; // ERROR +struct s {int a;}; +precision mediump s; // ERROR +mediump bvec2 b2; // ERROR diff --git a/deps/glslang/glslang/Test/precision.vert b/deps/glslang/glslang/Test/precision.vert new file mode 100644 index 0000000000..5d073488c9 --- /dev/null +++ b/deps/glslang/glslang/Test/precision.vert @@ -0,0 +1,25 @@ +#version 300 es + +in vec4 pos; + +uniform sampler2D s2D; +uniform samplerCube sCube; +uniform isampler2DArray is2DAbad; // ERROR, no default precision +uniform sampler2DArrayShadow s2dASbad; // ERROR, no default precision + +precision highp sampler2D; +precision mediump sampler2DArrayShadow; + +uniform sampler2DArrayShadow s2dAS; +uniform isampler2DArray is2DAbad2; // ERROR, still no default precision + +uniform sampler2D s2Dhigh; + +void main() +{ + vec4 t = texture(s2D, vec2(0.1, 0.2)); + t += texture(s2Dhigh, vec2(0.1, 0.2)); + t += texture(s2dAS, vec4(0.5)); + + gl_Position = pos; +} diff --git a/deps/glslang/glslang/Test/prepost.frag b/deps/glslang/glslang/Test/prepost.frag new file mode 100644 index 0000000000..dfd456660a --- /dev/null +++ b/deps/glslang/glslang/Test/prepost.frag @@ -0,0 +1,38 @@ +#version 140 + +void main() +{ + struct s { + float y[5]; + } str; + + float t; + int index = 5; // all indexing is 4 + + str.y[4] = 2.0; // 2.0 + t = ++str.y[--index]; // 3.0 + str.y[4] += t; // 6.0 + t = str.y[4]--; // 5.0 (t = 6.0) + str.y[index++] += t; // 11.0 + --str.y[--index]; // 10.0 + + float x = str.y[4]; + ++x; + --x; + x++; + x--; + + // x is 10.0 + + float y = x * ++x; // 10 * 11 + float z = y * x--; // 110 * 11 + + // x is 10.0 + // z is 1210.0 + + vec4 v = vec4(1.0, 2.0, 3.0, 4.0); + v.y = v.z--; // (1,3,2,4) + v.x = --v.w; // (3,3,2,3) + + gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0) +} diff --git a/deps/glslang/glslang/Test/preprocessor.cpp_style___FILE__.vert b/deps/glslang/glslang/Test/preprocessor.cpp_style___FILE__.vert new file mode 100644 index 0000000000..6d2bc1d810 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.cpp_style___FILE__.vert @@ -0,0 +1,36 @@ +#extension GL_GOOGLE_cpp_style_line_directive : enable + +__FILE__ + +#line 150 "a.h" +__FILE__ + +#line 24 +__FILE__ + +#line 42 +__FILE__ + +#line 30 "b.cc" +__FILE__ + +#line 10 3 +__FILE__ + +#line 48 +__FILE__ + +#line 4 +__FILE__ + +#line 55 100 +__FILE__ + +#line 1000 "c" +__FILE__ + +#line 42 1 +__FILE__ + +#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it" +__FILE__ diff --git a/deps/glslang/glslang/Test/preprocessor.cpp_style_line_directive.vert b/deps/glslang/glslang/Test/preprocessor.cpp_style_line_directive.vert new file mode 100644 index 0000000000..90fb2614d5 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.cpp_style_line_directive.vert @@ -0,0 +1,36 @@ +#extension GL_GOOGLE_cpp_style_line_directive : enable + +#error at "0:3" + +#line 150 "a.h" +#error at "a.h:150" + +#line 24 +#error at "a.h:24" + +#line 42 +#error at "a.h:42" + +#line 30 "b.cc" +#error at "b.cc:30" + +#line 10 3 +#error at "3:10" + +#line 48 +#error at "3:48" + +#line 4 +#error at "3:4" + +#line 55 100 +#error at "100:55" + +#line 1000 "c" +#error at "c:1000" + +#line 42 1 +#error at "1:42" + +#line 42 "this-is-a-quite-long-name-maybe-i-should-shorten-it" +#error at "this-is-a-quite-long-name-maybe-i-should-shorten-it:42" diff --git a/deps/glslang/glslang/Test/preprocessor.defined.vert b/deps/glslang/glslang/Test/preprocessor.defined.vert new file mode 100644 index 0000000000..375e4d3d7e --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.defined.vert @@ -0,0 +1,2 @@ +#define defined_not_really +#define defined // ERROR: "defined" can't be (un)defined: diff --git a/deps/glslang/glslang/Test/preprocessor.edge_cases.vert b/deps/glslang/glslang/Test/preprocessor.edge_cases.vert new file mode 100644 index 0000000000..95bfbb3a1a --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.edge_cases.vert @@ -0,0 +1,15 @@ +#version 310 es +#define X(Y) /* + */ Y + 2 + +#define Y(Z) 2 * Z// asdf + +#define Z(Y) /* + */ \ + 2 /* + */ + 3 \ + * Y + +void main() { + gl_Position = vec4(X(3) + Y(4) + Z(2)); +} diff --git a/deps/glslang/glslang/Test/preprocessor.eof_missing.vert b/deps/glslang/glslang/Test/preprocessor.eof_missing.vert new file mode 100644 index 0000000000..9177314832 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.eof_missing.vert @@ -0,0 +1 @@ +noEOF \ No newline at end of file diff --git a/deps/glslang/glslang/Test/preprocessor.errors.vert b/deps/glslang/glslang/Test/preprocessor.errors.vert new file mode 100644 index 0000000000..ca83848fa0 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.errors.vert @@ -0,0 +1,20 @@ +#version 310 es + +#define X 1 + +#if X + #ifdef Y + #error This should not show up in pp output. + #endif + #error This should show up in pp output. +#else + #error This should not show up in pp output. +#endif + +#def X +#if Y + +#extension a + +int main() { +} diff --git a/deps/glslang/glslang/Test/preprocessor.extensions.vert b/deps/glslang/glslang/Test/preprocessor.extensions.vert new file mode 100644 index 0000000000..07455d544e --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.extensions.vert @@ -0,0 +1,12 @@ +#version 310 es + +#extension GL_EXT_geometry_shader: enable +#extension GL_EXT_frag_depth: disable +#extension GL_EXT_gpu_shader5: require +#extension GL_EXT_shader_texture_image_samples: warn + +#extension unknown_extension: require + +int main() { +} + diff --git a/deps/glslang/glslang/Test/preprocessor.function_macro.vert b/deps/glslang/glslang/Test/preprocessor.function_macro.vert new file mode 100644 index 0000000000..577ea7e358 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.function_macro.vert @@ -0,0 +1,20 @@ +#version 310 es + + +#define X(n) n + 1 +#define Y(n, z) n + z +#define Z(f) X(f) + +#define REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(X1, X2, X3, X4, X5, X6, X7,\ + X8, X9, X10, X11, X12) X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12 + +#define A(\ + Y\ + )\ +4 + 3 + Y + +int main() { + gl_Position = vec4(X(3), Y(3, 4), Z(3)); + gl_Position = vec4(REALLY_LONG_MACRO_NAME_WITH_MANY_PARAMETERS(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)); + gl_Position = vec4(A(3)); +} diff --git a/deps/glslang/glslang/Test/preprocessor.include.disabled.vert b/deps/glslang/glslang/Test/preprocessor.include.disabled.vert new file mode 100644 index 0000000000..865baa189d --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.include.disabled.vert @@ -0,0 +1,6 @@ +#line 8000 +#include +#include 123 +#include "foo" +#include "foo" garbage +#include "no-eol" \ No newline at end of file diff --git a/deps/glslang/glslang/Test/preprocessor.include.enabled.vert b/deps/glslang/glslang/Test/preprocessor.include.enabled.vert new file mode 100644 index 0000000000..985eae2ce5 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.include.enabled.vert @@ -0,0 +1,20 @@ +#extension GL_GOOGLE_include_directive : enable +#line 8000 +#include +#include 123 +#include "foo.oeu" +#include "foo.oeu/ao eu/ao.h" +#include "foo" +#include +#include +#include +#include "foo.oe>" +#include +#include "foo2.h" garbage +#include garbage +// max length +#include +// too long +#include +#include "no-eol" \ No newline at end of file diff --git a/deps/glslang/glslang/Test/preprocessor.line.frag b/deps/glslang/glslang/Test/preprocessor.line.frag new file mode 100644 index 0000000000..0b7ac7663f --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.line.frag @@ -0,0 +1,4 @@ +#version 310 es +#line 1 2 +#pragma something +void main() {} diff --git a/deps/glslang/glslang/Test/preprocessor.line.vert b/deps/glslang/glslang/Test/preprocessor.line.vert new file mode 100644 index 0000000000..fed6bba2a9 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.line.vert @@ -0,0 +1,39 @@ +#line 300 + +#line 2 + + + + + +#line __LINE__ + 3 + + +#line __FILE__ + 2 + +#line __FILE__ * __LINE__ + + +#define X 4 + +#line X + +#undef X + +#define X(y) y + 3 + 2 + +#line X(3) + +void main() { + gl_Position = vec4(__LINE__); +} + +#line X(3) 4 + +#define Z(y, q) \ + y*q*2 q + +#line Z(2, 3) + +#line 1 + diff --git a/deps/glslang/glslang/Test/preprocessor.many.endif.vert b/deps/glslang/glslang/Test/preprocessor.many.endif.vert new file mode 100644 index 0000000000..7b049629fd --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.many.endif.vert @@ -0,0 +1,10 @@ +#endif +#endif +#endif +#endif +#endif +#endif +#endif + +#if +#else diff --git a/deps/glslang/glslang/Test/preprocessor.pragma.vert b/deps/glslang/glslang/Test/preprocessor.pragma.vert new file mode 100644 index 0000000000..0ae7ee2124 --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.pragma.vert @@ -0,0 +1,13 @@ +#version 310 es + +#pragma optimize(on) +#pragma optimize(off) +#pragma debug(on) +#pragma debug(off) + +#pragma undefined_pragma(x, 4) + +#pragma once + +int main() { +} diff --git a/deps/glslang/glslang/Test/preprocessor.simple.vert b/deps/glslang/glslang/Test/preprocessor.simple.vert new file mode 100644 index 0000000000..352227192b --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.simple.vert @@ -0,0 +1,29 @@ +#version 310 es +#define X 1 +#define Y clamp +#define Z X + +#define F 1, 2 + +#define make_function \ + float fn ( float x ) \ + {\ + return x + 4.0; \ + } + +make_function + +int main() { + gl_Position = vec4(X); + gl_Position = Y(1, 2, 3); + gl_Position = vec4(Z); + gl_Position = vec4(F); + gl_Position = vec4(fn(3)); + [] . ++ -- + + - * % / - ! ~ + << >> < > <= >= + == != + & ^ | && ^^ || ? : + += -= *= /= %= <<= >>= &= |= ^= + 1.2 2E10 5u -5lf +} diff --git a/deps/glslang/glslang/Test/preprocessor.success_if_parse_would_fail.vert b/deps/glslang/glslang/Test/preprocessor.success_if_parse_would_fail.vert new file mode 100644 index 0000000000..ed1ad0c0ee --- /dev/null +++ b/deps/glslang/glslang/Test/preprocessor.success_if_parse_would_fail.vert @@ -0,0 +1,4 @@ +int x() { + something that shouldnt compile; +} + diff --git a/deps/glslang/glslang/Test/recurse1.frag b/deps/glslang/glslang/Test/recurse1.frag new file mode 100644 index 0000000000..66b4c3fea0 --- /dev/null +++ b/deps/glslang/glslang/Test/recurse1.frag @@ -0,0 +1,48 @@ +#version 330 core + +// cross-unit recursion + +void main() {} + +// two-level recursion + +float cbar(int); + +void cfoo(float) +{ + cbar(2); +} + +// four-level, out of order + +void CB(); +void CD(); +void CA() { CB(); } +void CC() { CD(); } + +// high degree + +void CBT(); +void CDT(); +void CAT() { CBT(); CBT(); CBT(); } +void CCT() { CDT(); CDT(); CBT(); } + +// not recursive + +void norA() {} +void norB() { norA(); } +void norC() { norA(); } +void norD() { norA(); } +void norE() { norB(); } +void norF() { norB(); } +void norG() { norE(); } +void norH() { norE(); } +void norI() { norE(); } + +// not recursive, but with a call leading into a cycle if ignoring direction + +void norcA() { } +void norcB() { norcA(); } +void norcC() { norcB(); } +void norcD() { norcC(); norcB(); } // head of cycle +void norcE() { norcD(); } // lead into cycle diff --git a/deps/glslang/glslang/Test/recurse1.vert b/deps/glslang/glslang/Test/recurse1.vert new file mode 100644 index 0000000000..e2dbce00e6 --- /dev/null +++ b/deps/glslang/glslang/Test/recurse1.vert @@ -0,0 +1,44 @@ +#version 330 core + +void main() {} + +float bar(int); + +// direct recursion + +void self() +{ + self(); +} + +// two-level recursion + +void foo(float) +{ + bar(2); +} + +float bar(int) +{ + foo(4.2); + + return 3.2; +} + +// four-level, out of order + +void B(); +void D(); +void A() { B(); } +void C() { D(); } +void B() { C(); } +void D() { A(); } + +// high degree + +void BT(); +void DT(); +void AT() { BT(); BT(); BT(); } +void CT() { DT(); AT(); DT(); BT(); } +void BT() { CT(); CT(); CT(); } +void DT() { AT(); } diff --git a/deps/glslang/glslang/Test/recurse2.frag b/deps/glslang/glslang/Test/recurse2.frag new file mode 100644 index 0000000000..d649fef6b4 --- /dev/null +++ b/deps/glslang/glslang/Test/recurse2.frag @@ -0,0 +1,28 @@ +#version 330 core + +// cross-unit recursion + +// two-level recursion + +void cfoo(float); + +float cbar(int) +{ + cfoo(4.2); + + return 3.2; +} + +// four-level, out of order + +void CA(); +void CC(); +void CB() { CC(); } +void CD() { CA(); } + +// high degree + +void CAT(); +void CCT(); +void CBT() { CCT(); CCT(); CCT(); } +void CDT() { CAT(); } diff --git a/deps/glslang/glslang/Test/reflection.vert b/deps/glslang/glslang/Test/reflection.vert new file mode 100644 index 0000000000..7549f0816d --- /dev/null +++ b/deps/glslang/glslang/Test/reflection.vert @@ -0,0 +1,206 @@ +#version 440 core + +layout(std140, row_major) uniform nameless { + vec3 anonMember1; + mat3x2 m23; + int scalarAfterm23; + vec4 anonDeadMember2; + vec4 anonMember3; + int scalarBeforeArray; + float floatArray[5]; + int scalarAfterArray; + mat2x2 m22[9]; +}; + +layout(std140, column_major) uniform c_nameless { + vec3 c_anonMember1; + mat3x2 c_m23; + int c_scalarAfterm23; + vec4 c_anonDeadMember2; + vec4 c_anonMember3; +}; + +layout(std140) uniform named { + vec3 deadMember1; + int scalar; + vec4 member2; + vec4 member3; + vec2 memvec2; + float memf1; + bool memf2; + int memf3; + vec2 memvec2a; + mat2x2 m22[7]; +} ablock; + +layout(std140) uniform namelessdead { + int a; +}; + +layout(std140) uniform namedDead { + int b; +} bblock; + +struct N1 { + float a; +}; + +struct N2 { + float b; + float c; + float d; +}; + +struct N3 { + N1 n1; + N2 n2; +}; + +layout(std140) uniform nested { + N3 foo; +} nest; + +struct TS { + int a; + int dead; +}; + +uniform TS s; + +uniform float uf1; +uniform float uf2; +uniform float ufDead3; +uniform float ufDead4; + +uniform writeonly uimage2D image_ui2D; +uniform sampler2D sampler_2D; +uniform sampler2DMSArray sampler_2DMSArray; + +uniform mat2 dm22[10]; + +struct deep1 { + vec2 va[3]; + bool b; +}; + +struct deep2 { + int i; + deep1 d1[4]; +}; + +struct deep3 { + vec4 iv4; + deep2 d2; + ivec3 v3; +}; + +in float attributeFloat; +layout(location = 2) in vec2 attributeFloat2; +in vec3 attributeFloat3; +in vec4 attributeFloat4; +in mat4 attributeMat4; + +uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; + +const bool control = true; + +void deadFunction() +{ + vec3 v3 = ablock.deadMember1; + vec4 v = anonDeadMember2; + float f = ufDead4; +} + +void liveFunction2() +{ + vec3 v = anonMember1; + float f = uf1; +} + +void liveFunction1(writeonly uimage2D p_ui2D, sampler2D p_2D, sampler2DMSArray p_2DMSArray) + +{ + liveFunction2(); + float f = uf2; + vec4 v = ablock.member3; +} + +uniform abl { + float foo; +} arrBl[4]; + +uniform abl2 { + float foo; +} arrBl2[4]; + +buffer buf1 { + float scalar; + float runtimeArray[]; +} buf1i; + +buffer buf2 { + float scalar; + N2 runtimeArray[]; +} buf2i; + +buffer buf3 { + float scalar; + float runtimeArray[]; +} buf3i; + +buffer buf4 { + float scalar; + N2 runtimeArray[]; +} buf4i; + +void main() +{ + liveFunction1(image_ui2D, sampler_2D, sampler_2DMSArray); + liveFunction2(); + + if (! control) + deadFunction(); + + float f; + int i; + if (control) { + liveFunction2(); + f = anonMember3.z; + f = s.a; + f = ablock.scalar; + f = m23[1].y + scalarAfterm23; + f = c_m23[1].y + c_scalarAfterm23; + f += scalarBeforeArray; + f += floatArray[2]; + f += floatArray[4]; + f += scalarAfterArray; + f += ablock.memvec2.x; + f += ablock.memf1; + f += float(ablock.memf2); + f += ablock.memf3; + f += ablock.memvec2a.y; + f += ablock.m22[i][1][0]; + f += dm22[3][0][1]; + f += m22[2][1].y; + f += nest.foo.n1.a + nest.foo.n2.b + nest.foo.n2.c + nest.foo.n2.d; + f += deepA[i].d2.d1[2].va[1].x; + f += deepB[1].d2.d1[i].va[1].x; + f += deepB[i].d2.d1[i].va[1].x; + deep3 d = deepC[1]; + deep3 da[2] = deepD; + } else + f = ufDead3; + + f += arrBl[2].foo + arrBl[0].foo; + f += arrBl2[i].foo; + + f += attributeFloat; + f += attributeFloat2.x; + f += attributeFloat3.x; + f += attributeFloat4.x; + f += attributeMat4[0][1]; + f += buf1i.runtimeArray[3]; + f += buf2i.runtimeArray[3].c; + f += buf3i.runtimeArray[gl_InstanceID]; + f += buf4i.runtimeArray[gl_InstanceID].c; +} diff --git a/deps/glslang/glslang/Test/remap.basic.dcefunc.frag b/deps/glslang/glslang/Test/remap.basic.dcefunc.frag new file mode 100644 index 0000000000..714120ab85 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.basic.dcefunc.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/deps/glslang/glslang/Test/remap.basic.everything.frag b/deps/glslang/glslang/Test/remap.basic.everything.frag new file mode 100644 index 0000000000..714120ab85 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.basic.everything.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/deps/glslang/glslang/Test/remap.basic.none.frag b/deps/glslang/glslang/Test/remap.basic.none.frag new file mode 100644 index 0000000000..714120ab85 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.basic.none.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/deps/glslang/glslang/Test/remap.basic.strip.frag b/deps/glslang/glslang/Test/remap.basic.strip.frag new file mode 100644 index 0000000000..714120ab85 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.basic.strip.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/deps/glslang/glslang/Test/remap.hlsl.sample.basic.everything.frag b/deps/glslang/glslang/Test/remap.hlsl.sample.basic.everything.frag new file mode 100644 index 0000000000..03e83ef9bc --- /dev/null +++ b/deps/glslang/glslang/Test/remap.hlsl.sample.basic.everything.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/remap.hlsl.sample.basic.none.frag b/deps/glslang/glslang/Test/remap.hlsl.sample.basic.none.frag new file mode 100644 index 0000000000..03e83ef9bc --- /dev/null +++ b/deps/glslang/glslang/Test/remap.hlsl.sample.basic.none.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/remap.hlsl.sample.basic.strip.frag b/deps/glslang/glslang/Test/remap.hlsl.sample.basic.strip.frag new file mode 100644 index 0000000000..03e83ef9bc --- /dev/null +++ b/deps/glslang/glslang/Test/remap.hlsl.sample.basic.strip.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/deps/glslang/glslang/Test/remap.hlsl.templatetypes.everything.frag b/deps/glslang/glslang/Test/remap.hlsl.templatetypes.everything.frag new file mode 100644 index 0000000000..f48c98a74b --- /dev/null +++ b/deps/glslang/glslang/Test/remap.hlsl.templatetypes.everything.frag @@ -0,0 +1,47 @@ + +float main(float4 input) : COLOR0 +{ + vector r00 = float4(1,2,3,4); // vector means float4 + float4 r01 = vector(2,3,4,5); // vector means float4 + + 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/deps/glslang/glslang/Test/remap.hlsl.templatetypes.none.frag b/deps/glslang/glslang/Test/remap.hlsl.templatetypes.none.frag new file mode 100644 index 0000000000..f48c98a74b --- /dev/null +++ b/deps/glslang/glslang/Test/remap.hlsl.templatetypes.none.frag @@ -0,0 +1,47 @@ + +float main(float4 input) : COLOR0 +{ + vector r00 = float4(1,2,3,4); // vector means float4 + float4 r01 = vector(2,3,4,5); // vector means float4 + + 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/deps/glslang/glslang/Test/remap.if.everything.frag b/deps/glslang/glslang/Test/remap.if.everything.frag new file mode 100644 index 0000000000..3fedfc437a --- /dev/null +++ b/deps/glslang/glslang/Test/remap.if.everything.frag @@ -0,0 +1,12 @@ +#version 450 + +in float inf; +out vec4 outf4; + +void main() +{ + if (inf > 2.0) + outf4 = vec4(inf); + else + outf4 = vec4(inf + -.5); +} diff --git a/deps/glslang/glslang/Test/remap.if.none.frag b/deps/glslang/glslang/Test/remap.if.none.frag new file mode 100644 index 0000000000..3fedfc437a --- /dev/null +++ b/deps/glslang/glslang/Test/remap.if.none.frag @@ -0,0 +1,12 @@ +#version 450 + +in float inf; +out vec4 outf4; + +void main() +{ + if (inf > 2.0) + outf4 = vec4(inf); + else + outf4 = vec4(inf + -.5); +} diff --git a/deps/glslang/glslang/Test/remap.invalid-spirv-1.spv b/deps/glslang/glslang/Test/remap.invalid-spirv-1.spv new file mode 100644 index 0000000000..e5d59d4fbf Binary files /dev/null and b/deps/glslang/glslang/Test/remap.invalid-spirv-1.spv differ diff --git a/deps/glslang/glslang/Test/remap.invalid-spirv-2.spv b/deps/glslang/glslang/Test/remap.invalid-spirv-2.spv new file mode 100644 index 0000000000..df8c96d8aa Binary files /dev/null and b/deps/glslang/glslang/Test/remap.invalid-spirv-2.spv differ diff --git a/deps/glslang/glslang/Test/remap.literal64.everything.spv b/deps/glslang/glslang/Test/remap.literal64.everything.spv new file mode 100644 index 0000000000..88103c4948 Binary files /dev/null and b/deps/glslang/glslang/Test/remap.literal64.everything.spv differ diff --git a/deps/glslang/glslang/Test/remap.literal64.none.spv b/deps/glslang/glslang/Test/remap.literal64.none.spv new file mode 100644 index 0000000000..88103c4948 Binary files /dev/null and b/deps/glslang/glslang/Test/remap.literal64.none.spv differ diff --git a/deps/glslang/glslang/Test/remap.similar_1a.everything.frag b/deps/glslang/glslang/Test/remap.similar_1a.everything.frag new file mode 100644 index 0000000000..6eddbc51a9 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.similar_1a.everything.frag @@ -0,0 +1,29 @@ +#version 450 + +in float inf; +in flat ivec4 ini4; +out vec4 outf4; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) + return Test1(bound); + else + return float(bound * 2 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/deps/glslang/glslang/Test/remap.similar_1a.none.frag b/deps/glslang/glslang/Test/remap.similar_1a.none.frag new file mode 100644 index 0000000000..6eddbc51a9 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.similar_1a.none.frag @@ -0,0 +1,29 @@ +#version 450 + +in float inf; +in flat ivec4 ini4; +out vec4 outf4; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) + return Test1(bound); + else + return float(bound * 2 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/deps/glslang/glslang/Test/remap.similar_1b.everything.frag b/deps/glslang/glslang/Test/remap.similar_1b.everything.frag new file mode 100644 index 0000000000..460094515c --- /dev/null +++ b/deps/glslang/glslang/Test/remap.similar_1b.everything.frag @@ -0,0 +1,30 @@ +#version 450 + +out vec4 outf4; +in flat ivec4 ini4; +in float inf; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) { + return Test1(bound * 2); + } else + return float(bound * 4 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/deps/glslang/glslang/Test/remap.similar_1b.none.frag b/deps/glslang/glslang/Test/remap.similar_1b.none.frag new file mode 100644 index 0000000000..460094515c --- /dev/null +++ b/deps/glslang/glslang/Test/remap.similar_1b.none.frag @@ -0,0 +1,30 @@ +#version 450 + +out vec4 outf4; +in flat ivec4 ini4; +in float inf; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) { + return Test1(bound * 2); + } else + return float(bound * 4 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/deps/glslang/glslang/Test/remap.specconst.comp b/deps/glslang/glslang/Test/remap.specconst.comp new file mode 100644 index 0000000000..52ac07aa05 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.specconst.comp @@ -0,0 +1,7 @@ +#version 450 + +layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; + +shared int foo[gl_WorkGroupSize.x + gl_WorkGroupSize.y * gl_WorkGroupSize.z]; + +void main () {} diff --git a/deps/glslang/glslang/Test/remap.switch.everything.frag b/deps/glslang/glslang/Test/remap.switch.everything.frag new file mode 100644 index 0000000000..140c0792b0 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.switch.everything.frag @@ -0,0 +1,16 @@ +#version 450 + +precision highp float; + +layout(location = 0) out mediump vec4 FragColor; +layout(location = 0) in vec4 in0; + +void main() +{ + switch(int(in0.w)) { + case 0: FragColor = vec4(in0.x + 0); break; + case 1: FragColor = vec4(in0.y + 1); break; + case 2: FragColor = vec4(in0.z + 2); break; + default: FragColor = vec4(-1); + } +} diff --git a/deps/glslang/glslang/Test/remap.switch.none.frag b/deps/glslang/glslang/Test/remap.switch.none.frag new file mode 100644 index 0000000000..140c0792b0 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.switch.none.frag @@ -0,0 +1,16 @@ +#version 450 + +precision highp float; + +layout(location = 0) out mediump vec4 FragColor; +layout(location = 0) in vec4 in0; + +void main() +{ + switch(int(in0.w)) { + case 0: FragColor = vec4(in0.x + 0); break; + case 1: FragColor = vec4(in0.y + 1); break; + case 2: FragColor = vec4(in0.z + 2); break; + default: FragColor = vec4(-1); + } +} diff --git a/deps/glslang/glslang/Test/remap.uniformarray.everything.frag b/deps/glslang/glslang/Test/remap.uniformarray.everything.frag new file mode 100644 index 0000000000..4f642e6e97 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.uniformarray.everything.frag @@ -0,0 +1,17 @@ +#version 140 + +uniform sampler2D texSampler2D; +in vec3 inColor; +in vec4 color[6]; +in float alpha[16]; + +void main() +{ + vec4 texColor = color[1] + color[1]; + + texColor.xyz += inColor; + + texColor.a += alpha[12]; + + gl_FragColor = texColor; +} diff --git a/deps/glslang/glslang/Test/remap.uniformarray.none.frag b/deps/glslang/glslang/Test/remap.uniformarray.none.frag new file mode 100644 index 0000000000..4f642e6e97 --- /dev/null +++ b/deps/glslang/glslang/Test/remap.uniformarray.none.frag @@ -0,0 +1,17 @@ +#version 140 + +uniform sampler2D texSampler2D; +in vec3 inColor; +in vec4 color[6]; +in float alpha[16]; + +void main() +{ + vec4 texColor = color[1] + color[1]; + + texColor.xyz += inColor; + + texColor.a += alpha[12]; + + gl_FragColor = texColor; +} diff --git a/deps/glslang/glslang/Test/runtests b/deps/glslang/glslang/Test/runtests new file mode 100644 index 0000000000..a084cb5cd7 --- /dev/null +++ b/deps/glslang/glslang/Test/runtests @@ -0,0 +1,230 @@ +#!/usr/bin/env bash + +TARGETDIR=localResults +BASEDIR=baseResults +EXE=../build/install/bin/glslangValidator +REMAPEXE=../build/install/bin/spirv-remap +HASERROR=0 +mkdir -p localResults + +if [ -a localtestlist ] + then + 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 < localtestlist +fi + +rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv + +# +# special tests +# + +$EXE badMacroArgs.frag > $TARGETDIR/badMacroArgs.frag.out +diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASERROR=1 + +# +# reflection tests +# +echo Running reflection... +$EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out +diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 +$EXE -D -Od -e flizv -l -q -C -V -Od hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out +diff -b $BASEDIR/hlsl.reflection.vert.out $TARGETDIR/hlsl.reflection.vert.out || HASERROR=1 +$EXE -D -Od -e main -l -q -C -V -Od hlsl.reflection.binding.frag > $TARGETDIR/hlsl.reflection.binding.frag.out +diff -b $BASEDIR/hlsl.reflection.binding.frag.out $TARGETDIR/hlsl.reflection.binding.frag.out || HASERROR=1 +$EXE -D -Od -e main -l -q --hlsl-iomap --auto-map-bindings --stb 10 --sbb 20 --ssb 30 --suavb 40 --scb 50 -D -V -e main -Od hlsl.automap.frag > $TARGETDIR/hlsl.automap.frag.out +diff -b $BASEDIR/hlsl.automap.frag.out $TARGETDIR/hlsl.automap.frag.out || HASERROR=1 + +# +# multi-threaded test +# +echo Comparing single thread to multithread for all tests in current directory... +$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 ] +then + rm singleThread.out + rm multiThread.out +fi + +# +# entry point renaming tests +# +echo Running entry-point renaming tests +$EXE -i -H -V -D -Od -e main_in_spv --ku --source-entrypoint main -Od hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out +diff -b $BASEDIR/hlsl.entry.rename.frag.out $TARGETDIR/hlsl.entry.rename.frag.out || HASERROR=1 + +# +# Testing ill-defined uncalled function +# +echo Running ill-defined uncalled function +$EXE -D -Od -e main -H -Od hlsl.deadFunctionMissingBody.vert > $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out +diff -b $BASEDIR/hlsl.deadFunctionMissingBody.vert.out $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out || HASERROR=1 + +if [ $HASERROR -eq 0 ] +then + echo Tests Succeeded. +else + echo Tests Failed. +fi + +# +# Testing -S and compound suffixes +# +echo Running explicit stage test and compound suffix tests +$EXE -Od -i -S vert nosuffix > $TARGETDIR/nosuffix.out +diff -b $BASEDIR/nosuffix.out $TARGETDIR/nosuffix.out || HASERROR=1 +$EXE -Od -i compoundsuffix.vert.glsl > $TARGETDIR/compoundsuffix.vert.glsl +diff -b $BASEDIR/compoundsuffix.vert.glsl $TARGETDIR/compoundsuffix.vert.glsl || HASERROR=1 +$EXE -Od -e main -H compoundsuffix.frag.hlsl > $TARGETDIR/compoundsuffix.frag.hlsl +diff -b $BASEDIR/compoundsuffix.frag.hlsl $TARGETDIR/compoundsuffix.frag.hlsl || HASERROR=1 + +# +# Testing --hlsl-offsets +# +echo Running hlsl offsets +$EXE -i --hlsl-offsets -H spv.hlslOffsets.vert > $TARGETDIR/spv.hlslOffsets.vert.out +diff -b $BASEDIR/spv.hlslOffsets.vert.out $TARGETDIR/spv.hlslOffsets.vert.out || HASERROR=1 + +echo Running hlsl offsets +$EXE -i --hlsl-offsets -D -Od -e main -H -Od hlsl.hlslOffset.vert > $TARGETDIR/hlsl.hlslOffset.vert.out +diff -b $BASEDIR/hlsl.hlslOffset.vert.out $TARGETDIR/hlsl.hlslOffset.vert.out || HASERROR=1 + +# +# Testing --resource-set-binding +# +echo Configuring HLSL descriptor set and binding number manually +$EXE -V -D -Od -e main -H -Od hlsl.multiDescriptorSet.frag --rsb frag t0 0 0 t1 1 0 s0 0 1 s1 1 1 b0 2 0 b1 2 1 b2 2 2 > $TARGETDIR/hlsl.multiDescriptorSet.frag.out +diff -b $BASEDIR/hlsl.multiDescriptorSet.frag.out $TARGETDIR/hlsl.multiDescriptorSet.frag.out || HASERROR=1 + +$EXE -V -D -Od -e main -H -Od hlsl.explicitDescriptorSet.frag --hlsl-iomap --amb --ssb 10 --stb 20 --rsb 4 > $TARGETDIR/hlsl.explicitDescriptorSet.frag.out +diff -b $BASEDIR/hlsl.explicitDescriptorSet.frag.out $TARGETDIR/hlsl.explicitDescriptorSet.frag.out || HASERROR=1 + +$EXE -V -D -Od -e main -H -Od hlsl.explicitDescriptorSet.frag --hlsl-iomap --amb --ssb 10 --stb 20 --rsb frag 3 > $TARGETDIR/hlsl.explicitDescriptorSet-2.frag.out +diff -b $BASEDIR/hlsl.explicitDescriptorSet-2.frag.out $TARGETDIR/hlsl.explicitDescriptorSet-2.frag.out || HASERROR=1 + +# +# Testing per-descriptor-set IO map shift +# +echo 'Testing per-descriptor-set IO map shift' +$EXE -e main --hlsl-iomap --ssb 10 1 15 2 --stb 20 --stb 25 2 --suavb 30 --suavb 40 2 --sub 50 6 -i -q -D -Od -V hlsl.shift.per-set.frag > $TARGETDIR/hlsl.shift.per-set.frag.out || HASERROR=1 +diff -b $BASEDIR/hlsl.shift.per-set.frag.out $TARGETDIR/hlsl.shift.per-set.frag.out || HASERROR=1 + +# +# Testing location error +# +echo Testing SPV no location +$EXE -V -C spv.noLocation.vert > $TARGETDIR/spv.noLocation.vert.out +diff -b $BASEDIR/spv.noLocation.vert.out $TARGETDIR/spv.noLocation.vert.out || HASERROR=1 +$EXE -G -H --aml spv.noBuiltInLoc.vert > $TARGETDIR/spv.noBuiltInLoc.vert.out +diff -b $BASEDIR/spv.noBuiltInLoc.vert.out $TARGETDIR/spv.noBuiltInLoc.vert.out || HASERROR=1 +$EXE -G spv.looseUniformNoLoc.vert > $TARGETDIR/spv.looseUniformNoLoc.vert.out +diff -b $BASEDIR/spv.looseUniformNoLoc.vert.out $TARGETDIR/spv.looseUniformNoLoc.vert.out || HASERROR=1 + +# +# Testing debug information +# +echo Testing SPV Debug Information +$EXE -g --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf \ + -G -H spv.debugInfo.frag --rsb frag 3 > $TARGETDIR/spv.debugInfo.frag.out +diff -b $BASEDIR/spv.debugInfo.frag.out $TARGETDIR/spv.debugInfo.frag.out || HASERROR=1 +$EXE -g -Od --target-env vulkan1.1 --relaxed-errors --suppress-warnings --aml --hlsl-offsets --nsf \ + -G -H spv.debugInfo.frag --rsb frag 3 > $TARGETDIR/spv.debugInfo.1.1.frag.out +diff -b $BASEDIR/spv.debugInfo.1.1.frag.out $TARGETDIR/spv.debugInfo.1.1.frag.out || HASERROR=1 +$EXE -g -D -Od -e newMain -g --amb --aml --fua --hlsl-iomap --nsf --sib 1 --ssb 2 --sbb 3 --stb 4 --suavb 5 --sub 6 \ + --sep origMain -H -Od spv.hlslDebugInfo.vert --rsb vert t0 0 0 > $TARGETDIR/spv.hlslDebugInfo.frag.out +diff -b $BASEDIR/spv.hlslDebugInfo.frag.out $TARGETDIR/spv.hlslDebugInfo.frag.out || HASERROR=1 + +# +# Testing Includer +# +echo Testing Includer +$EXE -D -Od -e main -H -Od ../Test/hlsl.include.vert > $TARGETDIR/hlsl.include.vert.out +diff -b $BASEDIR/hlsl.include.vert.out $TARGETDIR/hlsl.include.vert.out || HASERROR=1 +$EXE -D -Od -e main -H -Od hlsl.includeNegative.vert > $TARGETDIR/hlsl.includeNegative.vert.out +diff -b $BASEDIR/hlsl.includeNegative.vert.out $TARGETDIR/hlsl.includeNegative.vert.out || HASERROR=1 +$EXE -l -i include.vert > $TARGETDIR/include.vert.out +diff -b $BASEDIR/include.vert.out $TARGETDIR/include.vert.out || HASERROR=1 +$EXE -D -Od -e main -H -Od -Iinc1/path1 -Iinc1/path2 hlsl.dashI.vert > $TARGETDIR/hlsl.dashI.vert.out +diff -b $BASEDIR/hlsl.dashI.vert.out $TARGETDIR/hlsl.dashI.vert.out || HASERROR=1 + +# +# Testing -D and -U +# +echo "Testing -D and -U" +$EXE -DUNDEFED -UIN_SHADER -DFOO=200 -i -l -UUNDEFED -DMUL=FOO*2 glsl.-D-U.frag > $TARGETDIR/glsl.-D-U.frag.out +diff -b $BASEDIR/glsl.-D-U.frag.out $TARGETDIR/glsl.-D-U.frag.out || HASERROR=1 +$EXE -D -Od -e main -V -i -DUNDEFED -UIN_SHADER -DFOO=200 -UUNDEFED -Od hlsl.-D-U.frag > $TARGETDIR/hlsl.-D-U.frag.out +diff -b $BASEDIR/hlsl.-D-U.frag.out $TARGETDIR/hlsl.-D-U.frag.out || HASERROR=1 + +# +# Test --client and --target-env +# +echo "Testing --client and --target-env" +$EXE --client vulkan100 spv.targetVulkan.vert || HASERROR=1 +$EXE --client opengl100 spv.targetOpenGL.vert || HASERROR=1 +$EXE --target-env vulkan1.0 spv.targetVulkan.vert || HASERROR=1 +$EXE --target-env vulkan1.1 spv.targetVulkan.vert || HASERROR=1 +$EXE --target-env opengl spv.targetOpenGL.vert || HASERROR=1 +$EXE -V100 spv.targetVulkan.vert || HASERROR=1 +$EXE -G100 spv.targetOpenGL.vert || HASERROR=1 + +# +# Testing GLSL entry point rename +# +echo "Testing GLSL entry point rename" +$EXE -H -e foo --source-entrypoint main glsl.entryPointRename.vert > $TARGETDIR/glsl.entryPointRename.vert.out +diff -b $BASEDIR/glsl.entryPointRename.vert.out $TARGETDIR/glsl.entryPointRename.vert.out || HASERROR=1 +$EXE -H -e foo --source-entrypoint bar glsl.entryPointRename.vert > $TARGETDIR/glsl.entryPointRename.vert.bad.out +diff -b $BASEDIR/glsl.entryPointRename.vert.bad.out $TARGETDIR/glsl.entryPointRename.vert.bad.out || HASERROR=1 +$EXE -H -e foo --source-entrypoint main glsl.entryPointRename2.vert > $TARGETDIR/glsl.entryPointRename2.vert.out +diff -b $BASEDIR/glsl.entryPointRename2.vert.out $TARGETDIR/glsl.entryPointRename2.vert.out || HASERROR=1 + +# +# Testing remapper error handling +# +echo "Testing remapper error handling" +$REMAPEXE --do-everything -i remap.invalid-spirv-1.spv -o $TARGETDIR > $TARGETDIR/remap.invalid-spirv-1.out && HASERROR=1 +diff -b $BASEDIR/remap.invalid-spirv-1.out $TARGETDIR/remap.invalid-spirv-1.out || HASERROR=1 +$REMAPEXE --do-everything -i remap.invalid-spirv-2.spv -o $TARGETDIR > $TARGETDIR/remap.invalid-spirv-2.out && HASERROR=1 +diff -b $BASEDIR/remap.invalid-spirv-2.out $TARGETDIR/remap.invalid-spirv-2.out || HASERROR=1 + +# +# Testing position Y inversion +# +echo "Testing position Y inversion" +$EXE -H -e main -V -D -Od -H -i --iy hlsl.y-negate-1.vert > $TARGETDIR/hlsl.y-negate-1.vert.out +diff -b $BASEDIR/hlsl.y-negate-1.vert.out $TARGETDIR/hlsl.y-negate-1.vert.out || HASERROR=1 +$EXE -H -e main -V -D -Od -H -i --invert-y hlsl.y-negate-2.vert > $TARGETDIR/hlsl.y-negate-2.vert.out +diff -b $BASEDIR/hlsl.y-negate-2.vert.out $TARGETDIR/hlsl.y-negate-2.vert.out || HASERROR=1 +$EXE -H -e main -V -D -Od -H -i --invert-y hlsl.y-negate-3.vert > $TARGETDIR/hlsl.y-negate-3.vert.out +diff -b $BASEDIR/hlsl.y-negate-3.vert.out $TARGETDIR/hlsl.y-negate-3.vert.out || HASERROR=1 + +# +# Testing hlsl_functionality1 +# +$EXE -H -e main -D -Od -fhlsl_functionality1 hlsl.structbuffer.incdec.frag > \ + $TARGETDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out +diff -b $BASEDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out $TARGETDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out || HASERROR=1 +$EXE -H -e main -D -Od -fhlsl_functionality1 hlsl.noSemantic.functionality1.comp > \ + $TARGETDIR/hlsl.noSemantic.functionality1.comp.out +diff -b $BASEDIR/hlsl.noSemantic.functionality1.comp.out $TARGETDIR/hlsl.noSemantic.functionality1.comp.out || HASERROR=1 + +# +# Final checking +# +if [ $HASERROR -eq 0 ] +then + echo Tests Succeeded. +else + echo Tests Failed. +fi + +rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv + +exit $HASERROR diff --git a/deps/glslang/glslang/Test/runtimeArray.vert b/deps/glslang/glslang/Test/runtimeArray.vert new file mode 100644 index 0000000000..a5da4f4191 --- /dev/null +++ b/deps/glslang/glslang/Test/runtimeArray.vert @@ -0,0 +1,110 @@ +#version 450 core + +buffer bn { + int a[]; + float b[]; +} buf; + +uniform un { + int a[]; + float b[]; +} ubuf; + +buffer bna { + int a[]; + float b[]; +} bufa[4]; + +uniform una { + int a[]; + float b[]; +} ubufa[4]; + +buffer abn { + int aba[]; + float abb[]; +}; + +uniform aun { + int aua[]; + float aub[]; +}; + +layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[]; +layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[]; +layout(binding=3) uniform uname { float a; } uniformBuffer[]; +layout(binding=4) buffer bname { float b; } storageBuffer[]; +layout(binding=5) uniform sampler2D sampledImage[]; +layout(binding=6, r32f) uniform image2D storageImage[]; +layout(binding=8) uniform samplerBuffer uniformTexelBuffer[]; +layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[]; + +int i; + +void main() +{ + ubuf.a[3]; + ubuf.b[3]; + buf.a[3]; + buf.b[3]; + + ubufa[3].a[3]; + ubufa[3].b[3]; + bufa[3].a[3]; + bufa[3].b[3]; + + aua[3]; + aub[3]; + aba[3]; + abb[3]; + + ubuf.a[i]; // ERROR + ubuf.b[i]; // ERROR + buf.a[i]; // ERROR + buf.b[i]; + + ubuf.a.length(); // ERROR + ubuf.b.length(); // ERROR + buf.a.length(); // ERROR + buf.b.length(); + + ubufa[1].a[i]; // ERROR + ubufa[1].b[i]; // ERROR + bufa[1].a[i]; // ERROR + bufa[1].b[i]; + + ubufa[1].a.length(); // ERROR + ubufa[1].b.length(); // ERROR + bufa[1].a.length(); // ERROR + bufa[1].b.length(); + + aua[i]; // ERROR + aub[i]; // ERROR + aba[i]; // ERROR + abb[i]; + + aua.length(); // ERROR + aub.length(); // ERROR + aba.length(); // ERROR + abb.length(); + + uniformTexelBufferDyn[1]; + storageTexelBufferDyn[1]; + uniformBuffer[1]; + storageBuffer[1]; + sampledImage[1]; + storageImage[1]; + uniformTexelBuffer[1]; + storageTexelBuffer[1]; + + uniformTexelBufferDyn[i]; // ERROR, need extension + storageTexelBufferDyn[i]; // ERROR, need extension + uniformBuffer[i]; // ERROR, need extension + storageBuffer[i]; // ERROR, need extension + sampledImage[i]; // ERROR, need extension + storageImage[i]; // ERROR, need extension + uniformTexelBuffer[i]; // ERROR, need extension + storageTexelBuffer[i]; // ERROR, need extension + + float local[] = ubuf.b; // ERROR, can initialize with runtime-sized array +} diff --git a/deps/glslang/glslang/Test/sample.frag b/deps/glslang/glslang/Test/sample.frag new file mode 100644 index 0000000000..d9b9f5cc4f --- /dev/null +++ b/deps/glslang/glslang/Test/sample.frag @@ -0,0 +1,41 @@ +// +//Copyright (C) 2002-2004 3Dlabs Inc. Ltd. +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// +#version 110 + +varying vec3 color; + +void main() +{ + gl_FragColor = vec4(color, 1.0); +} diff --git a/deps/glslang/glslang/Test/sample.frag.out b/deps/glslang/glslang/Test/sample.frag.out new file mode 100644 index 0000000000..8885dbac07 --- /dev/null +++ b/deps/glslang/glslang/Test/sample.frag.out @@ -0,0 +1,15 @@ +#### BEGIN COMPILER 0 INFO LOG #### +0:? Sequence +0:37 Function Definition: main( (void) +0:37 Function Parameters: +0:39 Sequence +0:39 move second child to first child (4-component vector of float) +0:39 'gl_FragColor' (FragColor 4-component vector of float) +0:39 Construct vec4 (4-component vector of float) +0:39 'color' (varying in 3-component vector of float) +0:39 1.000000 (const float) + +#### END COMPILER 0 INFO LOG #### +#### BEGIN LINKER INFO LOG #### + +#### END LINKER INFO LOG #### diff --git a/deps/glslang/glslang/Test/sample.vert b/deps/glslang/glslang/Test/sample.vert new file mode 100644 index 0000000000..8cda91f962 --- /dev/null +++ b/deps/glslang/glslang/Test/sample.vert @@ -0,0 +1,43 @@ +// +//Copyright (C) 2002-2004 3Dlabs Inc. Ltd. +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// +#version 110 + +varying vec3 color; + +void main() +{ + color = vec3(1.0, 1.0, 1.0); + + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} diff --git a/deps/glslang/glslang/Test/sample.vert.out b/deps/glslang/glslang/Test/sample.vert.out new file mode 100644 index 0000000000..aef6bb144b --- /dev/null +++ b/deps/glslang/glslang/Test/sample.vert.out @@ -0,0 +1,20 @@ +#### BEGIN COMPILER 0 INFO LOG #### +0:? Sequence +0:37 Function Definition: main( (void) +0:37 Function Parameters: +0:39 Sequence +0:39 move second child to first child (3-component vector of float) +0:39 'color' (varying out 3-component vector of float) +0:39 1.000000 (const float) +0:39 1.000000 (const float) +0:39 1.000000 (const float) +0:41 move second child to first child (4-component vector of float) +0:41 'gl_Position' (Position 4-component vector of float) +0:41 matrix-times-vector (4-component vector of float) +0:41 'gl_ModelViewProjectionMatrix' (uniform 4X4 matrix of float) +0:41 'gl_Vertex' (attribute 4-component vector of float) + +#### END COMPILER 0 INFO LOG #### +#### BEGIN LINKER INFO LOG #### + +#### END LINKER INFO LOG #### diff --git a/deps/glslang/glslang/Test/simpleFunctionCall.frag b/deps/glslang/glslang/Test/simpleFunctionCall.frag new file mode 100644 index 0000000000..59f0ccd58f --- /dev/null +++ b/deps/glslang/glslang/Test/simpleFunctionCall.frag @@ -0,0 +1,15 @@ +#version 150 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +vec4 foo() +{ + return BaseColor; +} + +void main() +{ + gl_FragColor = foo(); +} diff --git a/deps/glslang/glslang/Test/specExamples.frag b/deps/glslang/glslang/Test/specExamples.frag new file mode 100644 index 0000000000..7eec45e951 --- /dev/null +++ b/deps/glslang/glslang/Test/specExamples.frag @@ -0,0 +1,237 @@ +#version 430 + +#extension GL_3DL_array_objects : enable + +int a = 0xffffffff; // 32 bits, a gets the value -1 +int b = 0xffffffffU; // ERROR: can't convert uint to int +uint c = 0xffffffff; // 32 bits, c gets the value 0xFFFFFFFF +uint d = 0xffffffffU; // 32 bits, d gets the value 0xFFFFFFFF +int e = -1; // the literal is "1", then negation is performed, + // and the resulting non-literal 32-bit signed + // bit pattern of 0xFFFFFFFF is assigned, giving e + // the value of -1. +uint f = -1u; // the literal is "1u", then negation is performed, + // and the resulting non-literal 32-bit unsigned + // bit pattern of 0xFFFFFFFF is assigned, giving f + // the value of 0xFFFFFFFF. +int g = 3000000000; // a signed decimal literal taking 32 bits, + // setting the sign bit, g gets -1294967296 +int h = 0xA0000000; // okay, 32-bit signed hexadecimal +int i = 5000000000; // ERROR: needs more than 32 bits +int j = 0xFFFFFFFFF; // ERROR: needs more that 32 bits +int k = 0x80000000; // k gets -2147483648 == 0x80000000 +int l = 2147483648; // l gets -2147483648 (the literal set the sign bit) + +float fa, fb = 1.5; // single-precision floating-point +double fc, fd = 2.0LF; // double-precision floating-point + +vec2 texcoord1, texcoord2; +vec3 position; +vec4 myRGBA; +ivec2 textureLookup; +bvec3 less; + +mat2 mat2D; +mat3 optMatrix; +mat4 view, projection; +mat4x4 view; // an alternate way of declaring a mat4 +mat3x2 m; // a matrix with 3 columns and 2 rows +dmat4 highPrecisionMVP; +dmat2x4 dm; + +struct light { + float intensity; + vec3 position; +} lightVar; + +struct S { float f; }; + +struct T { + //S; // Error: anonymous structures disallowed + //struct { ... }; // Error: embedded structures disallowed + S s; // Okay: nested structures with name are allowed +}; + +float frequencies[3]; +uniform vec4 lightPosition[4]; +light lights[]; +const int numLights = 2; +light lights[numLights]; + +in vec3 normal; +centroid in vec2 TexCoord; +invariant centroid in vec4 Color; +noperspective in float temperature; +flat in vec3 myColor; +noperspective centroid in vec2 myTexCoord; + +uniform vec4 lightPosition; +uniform vec3 color = vec3(0.7, 0.7, 0.2); // value assigned at link time + +in Material { + smooth in vec4 Color1; // legal, input inside in block + smooth vec4 Color2; // legal, 'in' inherited from 'in Material' + vec2 TexCoordA; // legal, TexCoord is an input + uniform float Atten; // illegal, mismatched storage qualifier + +}; + +in Light { + vec4 LightPos; + vec3 LightColor; +}; +in ColoredTexture { + vec4 Color; + vec2 TexCoord; +} Materiala; // instance name +vec3 Color; // different Color than Material.Color + +in vec4 gl_FragCoord; // redeclaration that changes nothing is allowed + +// All the following are allowed redeclaration that change behavior +layout(origin_upper_left) in vec4 gl_FragCoord; +layout(pixel_center_integer) in vec4 gl_FragCoord; +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; + +layout(early_fragment_tests) in; + +// compute shader: +layout (local_size_x = 32, local_size_y = 32) in; +layout (local_size_x = 8) in; + +layout(location = 3) out vec4 color; +layout(location = 3, index = 1) out vec4 factor; +layout(location = 2) out vec4 colors[3]; + +layout (depth_greater) out float gl_FragDepth; + +// redeclaration that changes nothing is allowed +out float gl_FragDepth; + +// assume it may be modified in any way +layout (depth_any) out float gl_FragDepth; + +// assume it may be modified such that its value will only increase +layout (depth_greater) out float gl_FragDepth; + +// assume it may be modified such that its value will only decrease +layout (depth_less) out float gl_FragDepth; + +// assume it will not be modified +layout (depth_unchanged) out float gl_FragDepth; + +in vec4 gl_Color; // predeclared by the fragment language +flat in vec4 gl_Color; // redeclared by user to be flat + + +float[5] foo(float[5]) +{ + return float[5](3.4, 4.2, 5.0, 5.2, 1.1); +} + +precision highp float; +precision highp int; +precision mediump int; +precision highp float; + +void main() +{ + { + float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1); + } + { + float a[5] = float[](3.4, 4.2, 5.0, 5.2, 1.1); // same thing + } + { + vec4 a[3][2]; // size-3 array of size-2 array of vec4 + vec4[2] a1[3]; // size-3 array of size-2 array of vec4 + vec4[3][2] a2; // size-3 array of size-2 array of vec4 + vec4 b[2] = vec4[2](vec4(0.0), vec4(0.1)); + vec4[3][2] a3 = vec4[3][2](b, b, b); // constructor + void foo(vec4[3][2]); // prototype with unnamed parameter + vec4 a4[3][2] = {vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0)), + vec4[2](vec4(0.0), vec4(1.0)) }; + } + { + float a[5]; + { + float b[] = a; // b is explicitly size 5 + } + { + float b[5] = a; // means the same thing + } + { + float b[] = float[](1,2,3,4,5); // also explicitly sizes to 5 + } + a.length(); // returns 5 + } + { + vec4 a[3][2]; + a.length(); // this is 3 + a[x].length(); // this is 2 + } + // for an array b containing a member array a: + b[++x].a.length(); // b is never dereferenced, but “++x” is evaluated + + // for an array s of a shader storage object containing a member array a: + s[x].a.length(); // s is dereferenced; x needs to be a valid index + // + //All of the following declarations result in a compile-time error. + //float a[2] = { 3.4, 4.2, 5.0 }; // illegal + //vec2 b = { 1.0, 2.0, 3.0 }; // illegal + //mat3x3 c = { vec3(0.0), vec3(1.0), vec3(2.0), vec3(3.0) }; // illegal + //mat2x2 d = { 1.0, 0.0, 0.0, 1.0 }; // illegal, can't flatten nesting + //struct { + // float a; + // int b; + //} e = { 1.2, 2, 3 }; // illegal + + struct { + float a; + int b; + } e = { 1.2, 2 }; // legal, all types match + + struct { + float a; + int b; + } e = { 1, 3 }; // legal, first initializer is converted + + //All of the following declarations result in a compile-time error. + //int a = true; // illegal + //vec4 b[2] = { vec4(0.0), 1.0 }; // illegal + //mat4x2 c = { vec3(0.0), vec3(1.0) }; // illegal + + //struct S1 { + // vec4 a; + // vec4 b; + //}; + + //struct { + // float s; + // float t; + //} d[] = { S1(vec4(0.0), vec4(1.1)) }; // illegal + + { + float a[] = float[](3.4, 4.2, 5.0, 5.2, 1.1); + float b[] = { 3.4, 4.2, 5.0, 5.2, 1.1 }; + float c[] = a; // c is explicitly size 5 + float d[5] = b; // means the same thing + } + { + const vec3 zAxis = vec3 (0.0, 0.0, 1.0); + const float ceiling = a + b; // a and b not necessarily constants + } + { + in vec4 position; + in vec3 normal; + in vec2 texCoord[4]; + } + { + lowp float color; + out mediump vec2 P; + lowp ivec2 foo(lowp mat3); + highp mat4 m; + } + +} diff --git a/deps/glslang/glslang/Test/specExamples.vert b/deps/glslang/glslang/Test/specExamples.vert new file mode 100644 index 0000000000..9df1561fea --- /dev/null +++ b/deps/glslang/glslang/Test/specExamples.vert @@ -0,0 +1,196 @@ +#version 430 + +#extension GL_3DL_array_objects : enable + +out Vertex { + vec4 Position; // API transform/feedback will use “Vertex.Position” + vec2 Texture; +} Coords; // shader will use “Coords.Position” + +out Vertex2 { + vec4 Color; // API will use “Color” +}; + +uniform Transform { // API uses “Transform[2]” to refer to instance 2 + mat4 ModelViewMatrix; + mat4 ModelViewProjectionMatrix; + vec4 a[]; // array will get implicitly sized + float Deformation; +} transforms[4]; + +layout(location = 3) in vec4 normal; +layout(location = 6) in vec4 colors[3]; +layout(location = 9) in mat4 transforms2[2]; + +layout(location = 3) struct S { + vec3 a1; + mat2 b; + vec4 c[2]; +} s; + +layout(triangles, invocations = 6) in; + +layout(lines) in; // legal for Color2, input size is 2, matching Color2 + +layout(triangle_strip, max_vertices = 60) out; // order does not matter +layout(max_vertices = 60) out; // redeclaration okay +layout(triangle_strip) out; // redeclaration okay +//layout(points) out; // error, contradicts triangle_strip +//layout(max_vertices = 30) out; // error, contradicts 60 + +layout(stream = 1) out; + +layout(stream=1) out; // default is now stream 1 +out vec4 var1; // var1 gets default stream (1) +layout(stream=2) out Block1 { // "Block1" belongs to stream 2 + layout(stream=2) vec4 var2; // redundant block member stream decl + layout(stream=3) vec2 var3; // ILLEGAL (must match block stream) + vec3 var4; // belongs to stream 2 +}; +layout(stream=0) out; // default is now stream 0 +out vec4 var5; // var5 gets default stream (0) +out Block2 { // "Block2" gets default stream (0) + vec4 var6; +}; +layout(stream=3) out vec4 var7; // var7 belongs to stream 3 + +layout(shared, column_major) uniform; +layout(shared, column_major) buffer; + +layout(row_major, column_major) + +layout(shared, row_major) uniform; // default is now shared and row_major + +layout(std140) uniform Transform2 { // layout of this block is std140 + mat4 M1; // row_major + layout(column_major) mat4 M2; // column major + mat3 N1; // row_major +}; + +layout(column_major) uniform T3 { // shared and column_major + mat4 M13; // column_major + layout(row_major) mat4 m14; // row major + mat3 N12; // column_major +}; + +// in one compilation unit... +layout(binding=3) uniform sampler2D s17; // s bound to unit 3 + +// in another compilation unit... +uniform sampler2D s17; // okay, s still bound at 3 + +// in another compilation unit... +//layout(binding=4) uniform sampler2D s; // ERROR: contradictory bindings + +layout (binding = 2, offset = 4) uniform atomic_uint a2; + +layout (binding = 2) uniform atomic_uint bar; + +layout (binding = 2, offset = 4) uniform atomic_uint; + +layout (binding = 2) uniform atomic_uint bar; // offset is 4 +layout (offset = 8) uniform atomic_uint bar23; // error, no default binding + +layout (binding=3, offset=4) uniform atomic_uint a2; // offset = 4 +layout (binding=2) uniform atomic_uint b2; // offset = 0 +layout (binding=3) uniform atomic_uint c2; // offset = 8 +layout (binding=2) uniform atomic_uint d2; // offset = 4 + +//layout (offset=4) // error, must include binding +//layout (binding=1, offset=0) a; // okay +//layout (binding=2, offset=0) b; // okay +//layout (binding=1, offset=0) c; // error, offsets must not be shared +// // between a and c +//layout (binding=1, offset=2) d; // error, overlaps offset 0 of a + +flat in vec4 gl_FrontColor; // input to geometry shader, no “gl_in[]” +flat out vec4 gl_FrontColor; // output from geometry shader + +invariant gl_Position; // make existing gl_Position be invariant + +out vec3 ColorInv; +invariant ColorIvn; // make existing Color be invariant + +invariant centroid out vec3 Color4; +precise out vec4 position; + +out vec3 Color5; +precise Color5; // make existing Color be precise +in vec4 a, b, c, d; +precise out vec4 v; + +coherent buffer Block { + readonly vec4 member1; + vec4 member2; +}; + +buffer Block2a { + coherent readonly vec4 member1A; + coherent vec4 member2A; +}; + +shared vec4 shv; + +vec4 funcA(restrict image2D a) { } + +vec4 funcB(image2D a) { } +layout(rgba32f) uniform image2D img1; +layout(rgba32f) coherent uniform image2D img2; + +float func(float e, float f, float g, float h) +{ + return (e*f) + (g*h); // no constraint on order or + // operator consistency +} + +float func2(float e, float f, float g, float h) +{ + precise float result = (e*f) + (g*h); // ensures same precision for + // the two multiplies + return result; +} + +float func3(float i, float j, precise out float k) +{ + k = i * i + j; // precise, due to declaration +} + +void main() +{ + vec3 r = vec3(a * b); // precise, used to compute v.xyz + vec3 s = vec3(c * d); // precise, used to compute v.xyz + v.xyz = r + s; // precise + v.w = (a.w * b.w) + (c.w * d.w); // precise + v.x = func(a.x, b.x, c.x, d.x); // values computed in func() + // are NOT precise + v.x = func2(a.x, b.x, c.x, d.x); // precise! + func3(a.x * b.x, c.x * d.x, v.x); // precise! + + funcA(img1); // OK, adding "restrict" is allowed + funcB(img2); // illegal, stripping "coherent" is not + + { + struct light { + float intensity; + vec3 position; + }; + + light lightVar = light(3.0, vec3(1.0, 2.0, 3.0)); + } + { + const float c[3] = float[3](5.0, 7.2, 1.1); + const float d[3] = float[](5.0, 7.2, 1.1); + + float g; + float a[5] = float[5](g, 1, g, 2.3, g); + float b[3]; + + b = float[3](g, g + 1.0, g + 2.0); + } + { + vec4 b[2] = { vec4(1.0), vec4(1.0) }; + vec4[3][2](b, b, b); // constructor + vec4[][2](b, b, b); // constructor, valid, size deduced + vec4[3][](b, b, b); // compile-time error, invalid type constructed + } +} diff --git a/deps/glslang/glslang/Test/spv.100ops.frag b/deps/glslang/glslang/Test/spv.100ops.frag new file mode 100644 index 0000000000..43452a1f11 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.100ops.frag @@ -0,0 +1,27 @@ +#version 310 es + +lowp float foo(); + +in lowp float low, high; + +lowp float face1 = 11.0; + +out lowp vec4 Color; + +void main() +{ + int z = 3; + + if (2.0 * low + 1.0 < high) + ++z; + + Color = face1 * vec4(z) + foo(); +} + +lowp float face2 = -2.0; + +lowp float foo() +{ + // testing if face2 initializer insert logic is correct in main + return face2; +} diff --git a/deps/glslang/glslang/Test/spv.130.frag b/deps/glslang/glslang/Test/spv.130.frag new file mode 100644 index 0000000000..e7fdd38898 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.130.frag @@ -0,0 +1,93 @@ +#version 140 +#extension GL_ARB_texture_gather : enable + +vec3 a; +float b; + +in vec4 i; +out vec4 o; +out ivec3 io; +out uvec4 uo; + +flat in float fflat; +smooth in float fsmooth; +noperspective in float fnop; + +uniform samplerCube sampC; + +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2D samp2D; +uniform sampler2DShadow samp2DS; +uniform sampler2DRect samp2DR; +uniform sampler2DArray samp2DA; + +void bar3() +{ + o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); + o += textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); +} + +#extension GL_ARB_gpu_shader5 : enable + +void bar4() +{ + o += textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); + o += textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); + o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); +} + +#extension GL_ARB_texture_cube_map_array : enable + +uniform samplerCubeArray Sca; +uniform isamplerCubeArray Isca; +uniform usamplerCubeArray Usca; +uniform samplerCubeArrayShadow Scas; + +void bar5() +{ + io = textureSize(Sca, 3); + o += texture(Sca, i); + io += texture(Isca, i, 0.7).xyz; + uo = texture(Usca, i); + + o += textureLod(Sca, i, 1.7); + a = textureSize(Scas, 3); + float f = texture(Scas, i, i.y); + ivec4 c = textureGrad(Isca, i, vec3(0.1), vec3(0.2)); + o += vec4(a, f + c); +} + +#extension GL_ARB_shading_language_420pack : enable + +const int ai[3] = { 10, 23, 32 }; +uniform layout(binding=0) sampler2D bounds; + +void bar6() +{ + mat4x3 m43; + float a1 = m43[3].y; + //int a2 = m43.length(); // ERROR until shading_language_420pack is fully implemented + const float b = 2 * a1; + //a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; // ERROR until shading_language_420pack is fully implemented +} + + +#extension GL_ARB_texture_rectangle : enable +#extension GL_ARB_shader_texture_lod : require + +uniform sampler2D s2D; +uniform sampler2DRect s2DR; +uniform sampler2DRectShadow s2DRS; +uniform sampler1D s1D; +uniform sampler2DShadow s2DS; + +void main() +{ + o = textureGather(sampC, vec3(0.2)); + o.y = gl_ClipDistance[3]; + bar3(); + bar4(); + bar5(); + bar6(); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.140.frag b/deps/glslang/glslang/Test/spv.140.frag new file mode 100644 index 0000000000..ceeac47bf0 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.140.frag @@ -0,0 +1,46 @@ +#version 140 + +in vec4 k; +out vec4 o; + +in float gl_ClipDistance[5]; + +layout(row_major) uniform; + +uniform sampler2D samp2Da[3]; + +layout(std140) uniform bn { + layout(row_major) mat4 matra[4]; + layout(column_major) mat4 matca[4]; + layout(row_major) mat4 matr; + layout(column_major) mat4 matc; + layout(align=512, offset=1024) mat4 matrdef; +}; + +uniform sampler2DRect sampR; +uniform isamplerBuffer sampB; + +float foo(); + +void main() +{ + o.y = gl_ClipDistance[2]; + o.z = gl_ClipDistance[int(k)]; + o.w = float(textureSize(sampR) + textureSize(sampB)) / 100.0; + o.z = foo(); +} + +// Test extra-function initializers + +float i1 = gl_FrontFacing ? -2.0 : 2.0; +float i2 = 102; + +float foo() +{ + return i1 + i2; +} + +// test arrayed block +layout(std140) uniform bi { + vec3 v[2]; +} bname[4]; diff --git a/deps/glslang/glslang/Test/spv.150.geom b/deps/glslang/glslang/Test/spv.150.geom new file mode 100644 index 0000000000..0419265dc4 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.150.geom @@ -0,0 +1,39 @@ +#version 150 core + +layout(triangles_adjacency) in; +layout(max_vertices = 30) out; +layout(stream = 3, triangle_strip) out; + +in fromVertex { + in vec3 color; +} fromV[]; + +out toFragment { + out vec3 color; +} toF; + +out fromVertex { + vec3 color; +}; + +void main() +{ + color = fromV[0].color; + //?? gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2]; + gl_Position = gl_in[0].gl_Position; + gl_PointSize = gl_in[3].gl_PointSize; + gl_PrimitiveID = gl_PrimitiveIDIn; + gl_Layer = 2; + + EmitVertex(); + + color = 2 * fromV[0].color; + gl_Position = 2.0 * gl_in[0].gl_Position; + gl_PointSize = 2.0 * gl_in[3].gl_PointSize; + gl_PrimitiveID = gl_PrimitiveIDIn + 1; + gl_Layer = 3; + + EmitVertex(); + + EndPrimitive(); +} diff --git a/deps/glslang/glslang/Test/spv.150.vert b/deps/glslang/glslang/Test/spv.150.vert new file mode 100644 index 0000000000..382e3c9bf8 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.150.vert @@ -0,0 +1,38 @@ +#version 150 core + +in vec4 iv4; + +in float ps; +in int ui; +uniform sampler2D s2D; + +invariant gl_Position; + +struct s1 { + int a; + int a2; + vec4 b[3]; +}; + +struct s2 { + int c; + s1 d[4]; +}; + +out s2 s2out; + +void main() +{ + gl_Position = iv4; + gl_PointSize = ps; + gl_ClipDistance[2] = iv4.x; + int i; + s2out.d[i].b[2].w = ps; + + // test non-implicit lod + texture(s2D, vec2(0.5)); + textureProj(s2D, vec3(0.5)); + textureLod(s2D, vec2(0.5), 3.2); +} + +out float gl_ClipDistance[4]; diff --git a/deps/glslang/glslang/Test/spv.300BuiltIns.vert b/deps/glslang/glslang/Test/spv.300BuiltIns.vert new file mode 100644 index 0000000000..46c3f0fedb --- /dev/null +++ b/deps/glslang/glslang/Test/spv.300BuiltIns.vert @@ -0,0 +1,14 @@ +#version 310 es + +in mediump float ps; + +invariant gl_Position; + +void main() +{ + gl_Position = vec4(ps); + gl_Position *= float(4 - gl_VertexIndex); + + gl_PointSize = ps; + gl_PointSize *= float(5 - gl_InstanceIndex); +} diff --git a/deps/glslang/glslang/Test/spv.300layout.frag b/deps/glslang/glslang/Test/spv.300layout.frag new file mode 100644 index 0000000000..5b4c56c221 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.300layout.frag @@ -0,0 +1,22 @@ +#version 310 es + +precision mediump float; + +in vec4 pos; +in vec3 color; + +layout(location = 7) out vec3 c; +layout(LocatioN = 3) out vec4 p[2]; + +struct S { + vec3 c; + float f; +}; + +in S s; + +void main() +{ + c = color + s.c; + p[1] = pos * s.f; +} diff --git a/deps/glslang/glslang/Test/spv.300layout.vert b/deps/glslang/glslang/Test/spv.300layout.vert new file mode 100644 index 0000000000..a32a95de78 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.300layout.vert @@ -0,0 +1,49 @@ +#version 310 es + +layout(location = 7) in vec3 c; +layout(LocatioN = 3) in vec4 p; +layout(location = 9) in ivec2 aiv2; +out vec4 pos; +out vec3 color; +flat out int iout; + +layout(row_major) uniform; // default is now row_major + +layout(std140) uniform Transform { // layout of this block is std140 + mat4 M1; // row_major + layout(column_major) mat4 M2; // column major + mat3 N1; // row_major + int iuin; +} tblock; + +uniform T2 { // layout of this block is shared + bool b; + mat4 t2m; +}; + +layout(column_major) uniform T3 { // shared and column_major + mat4 M3; // column_major + layout(row_major) mat4 M4; // row major + mat2x3 N2; // column_major + layout(align=16, offset=2048) uvec3 uv3a[4]; +}; + +in uint uiuin; + +struct S { + vec3 c; + float f; +}; + +out S s; + +void main() +{ + pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m); + color = c * tblock.N1; + iout = tblock.iuin + int(uiuin) + aiv2.y; + s.c = c; + s.f = p.x; + if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5)) + ++s.c; +} diff --git a/deps/glslang/glslang/Test/spv.300layoutp.vert b/deps/glslang/glslang/Test/spv.300layoutp.vert new file mode 100644 index 0000000000..d14aa1cd4b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.300layoutp.vert @@ -0,0 +1,49 @@ +#version 310 es + +layout(location = 7) in vec3 c; +layout(LocatioN = 3) in vec4 p; +layout(location = 9) in ivec2 aiv2; +out vec4 pos; +out vec3 color; +flat out int iout; + +layout(row_major) uniform; // default is now row_major + +layout(std140) uniform Transform { // layout of this block is std140 + mat4 M1; // row_major + layout(column_major) mat4 M2; // column major + mat3 N1; // row_major + int iuin; +} tblock; + +uniform T2 { // layout of this block is shared + bool b; + mat4 t2m; +}; + +layout(column_major) uniform T3 { // shared and column_major + mat4 M3; // column_major + layout(row_major) mat4 M4; // row major + mat2x3 N2; // column_major + uvec3 uv3a[4]; +}; + +uint uiuin; + +struct S { + vec3 c; + float f; +}; + +out S s; + +void main() +{ + pos = p * (tblock.M1 * tblock.M2 * M4 * M3 * t2m); + color = c * tblock.N1; + iout = tblock.iuin + int(uiuin) + aiv2.y; + s.c = c; + s.f = p.x; + if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5)) + ++s.c; +} diff --git a/deps/glslang/glslang/Test/spv.310.bitcast.frag b/deps/glslang/glslang/Test/spv.310.bitcast.frag new file mode 100644 index 0000000000..dbde52f87a --- /dev/null +++ b/deps/glslang/glslang/Test/spv.310.bitcast.frag @@ -0,0 +1,41 @@ +#version 310 es + +flat in mediump int i1; +flat in lowp ivec2 i2; +flat in mediump ivec3 i3; +flat in highp ivec4 i4; + +flat in mediump uint u1; +flat in lowp uvec2 u2; +flat in mediump uvec3 u3; +flat in highp uvec4 u4; + +mediump in float f1; +lowp in vec2 f2; +mediump in vec3 f3; +highp in vec4 f4; + +void main() +{ + highp ivec4 idata = ivec4(0); + idata.x += floatBitsToInt(f1); + idata.xy += floatBitsToInt(f2); + idata.xyz += floatBitsToInt(f3); + idata += floatBitsToInt(f4); + + highp uvec4 udata = uvec4(0); + udata.x += floatBitsToUint(f1); + udata.xy += floatBitsToUint(f2); + udata.xyz += floatBitsToUint(f3); + udata += floatBitsToUint(f4); + + highp vec4 fdata = vec4(0.0); + fdata.x += intBitsToFloat(i1); + fdata.xy += intBitsToFloat(i2); + fdata.xyz += intBitsToFloat(i3); + fdata += intBitsToFloat(i4); + fdata.x += uintBitsToFloat(u1); + fdata.xy += uintBitsToFloat(u2); + fdata.xyz += uintBitsToFloat(u3); + fdata += uintBitsToFloat(u4); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.310.comp b/deps/glslang/glslang/Test/spv.310.comp new file mode 100644 index 0000000000..53117dd977 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.310.comp @@ -0,0 +1,42 @@ +#version 310 es + +precision highp float; + +layout (local_size_x = 16, local_size_y = 32, local_size_z = 4) in; + +shared float s; +shared int i; + +buffer outb { + float f; + float g; + float h; + vec3 uns[]; +} outbname; + +buffer outbna { + int k; + vec4 na; +} outbnamena; + +buffer outs { + int s; + vec4 va[]; +} outnames; + +#extension GL_EXT_device_group : enable + +void main() +{ + barrier(); + outbname.f = s; + outbnamena.na = vec4(s); + s = outbname.uns[18].x; + outbname.uns[17] = vec3(3.0); + outbname.uns[i] = vec3(s); + outnames.va[gl_LocalInvocationID.x] = vec4(s); + outnames.s = outbname.uns.length(); + gl_DeviceIndex; + memoryBarrierShared(); + groupMemoryBarrier(); +} diff --git a/deps/glslang/glslang/Test/spv.330.geom b/deps/glslang/glslang/Test/spv.330.geom new file mode 100644 index 0000000000..ebd4ac66ec --- /dev/null +++ b/deps/glslang/glslang/Test/spv.330.geom @@ -0,0 +1,26 @@ +#version 330 core +#extension GL_ARB_separate_shader_objects : enable + +in gl_PerVertex +{ + float gl_ClipDistance[1]; + vec4 gl_Position; +} gl_in[]; + +out gl_PerVertex +{ + vec4 gl_Position; + float gl_ClipDistance[1]; +}; + +layout( triangles ) in; +layout( triangle_strip, max_vertices = 3 ) out; + +void main() +{ + vec4 v; + gl_Position = gl_in[1].gl_Position; + gl_ClipDistance[0] = gl_in[1].gl_ClipDistance[0]; + EmitVertex(); + EndPrimitive(); +} diff --git a/deps/glslang/glslang/Test/spv.400.frag b/deps/glslang/glslang/Test/spv.400.frag new file mode 100644 index 0000000000..d64c4700eb --- /dev/null +++ b/deps/glslang/glslang/Test/spv.400.frag @@ -0,0 +1,265 @@ +#version 400 core + +in vec2 c2D; +flat in int i; +flat in uint u; +out uint uo; +out vec4 outp; +out ivec4 ioutp; +out uvec4 uoutp; +uniform sampler2D arrayedSampler[5]; +uniform usampler2DRect samp2dr; +uniform isampler2DArray isamp2DA; +uniform sampler2DRectShadow u2drs; + +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 6) in vec4 vl2; + +void foo23() +{ + const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); + + outp.x += textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]); +} + +void doubles() +{ + double doublev; + dvec2 dvec2v; + dvec3 dvec3v; + dvec4 dvec4v; + + bool boolv; + bvec2 bvec2v; + bvec3 bvec3v; + bvec4 bvec4v; + + doublev = sqrt(2.9); + dvec2v = sqrt(dvec2(2.7)); + dvec3v = sqrt(dvec3(2.0)); + dvec4v = sqrt(dvec4(doublev)); + + doublev += inversesqrt(doublev); + dvec2v += inversesqrt(dvec2v); + dvec3v += inversesqrt(dvec3v); + dvec4v += inversesqrt(dvec4v); + + doublev += abs(doublev); + dvec2v += abs(dvec2v); + dvec3v += abs(dvec3v); + dvec4v += abs(dvec4v); + + doublev += sign(doublev); + dvec2v += sign(dvec2v); + dvec3v += sign(dvec3v); + dvec4v += sign(dvec4v); + + doublev += floor(doublev); + dvec2v += floor(dvec2v); + dvec3v += floor(dvec3v); + dvec4v += floor(dvec4v); + + doublev += trunc(doublev); + dvec2v += trunc(dvec2v); + dvec3v += trunc(dvec3v); + dvec4v += trunc(dvec4v); + + doublev += round(doublev); + dvec2v += round(dvec2v); + dvec3v += round(dvec3v); + dvec4v += round(dvec4v); + + doublev += roundEven(doublev); + dvec2v += roundEven(dvec2v); + dvec3v += roundEven(dvec3v); + dvec4v += roundEven(dvec4v); + + doublev += ceil(doublev); + dvec2v += ceil(dvec2v); + dvec3v += ceil(dvec3v); + dvec4v += ceil(dvec4v); + + doublev += fract(doublev); + dvec2v += fract(dvec2v); + dvec3v += fract(dvec3v); + dvec4v += fract(dvec4v); + + doublev += mod(doublev, doublev); + dvec2v += mod(dvec2v, doublev); + dvec3v += mod(dvec3v, doublev); + dvec4v += mod(dvec4v, doublev); + dvec2v += mod(dvec2v, dvec2v); + dvec3v += mod(dvec3v, dvec3v); + dvec4v += mod(dvec4v, dvec4v); + + doublev += modf(doublev, doublev); + dvec2v += modf(dvec2v, dvec2v); + dvec3v += modf(dvec3v, dvec3v); + dvec4v += modf(dvec4v, dvec4v); + + doublev += min(doublev, doublev); + dvec2v += min(dvec2v, doublev); + dvec3v += min(dvec3v, doublev); + dvec4v += min(dvec4v, doublev); + dvec2v += min(dvec2v, dvec2v); + dvec3v += min(dvec3v, dvec3v); + dvec4v += min(dvec4v, dvec4v); + + doublev += max(doublev, doublev); + dvec2v += max(dvec2v, doublev); + dvec3v += max(dvec3v, doublev); + dvec4v += max(dvec4v, doublev); + dvec2v += max(dvec2v, dvec2v); + dvec3v += max(dvec3v, dvec3v); + dvec4v += max(dvec4v, dvec4v); + + doublev += clamp(doublev, doublev, doublev); + dvec2v += clamp(dvec2v, doublev, doublev); + dvec3v += clamp(dvec3v, doublev, doublev); + dvec4v += clamp(dvec4v, doublev, doublev); + dvec2v += clamp(dvec2v, dvec2v, dvec2v); + dvec3v += clamp(dvec3v, dvec3v, dvec3v); + dvec4v += clamp(dvec4v, dvec4v, dvec4v); + + doublev += mix(doublev, doublev, doublev); + dvec2v += mix(dvec2v, dvec2v, doublev); + dvec3v += mix(dvec3v, dvec3v, doublev); + dvec4v += mix(dvec4v, dvec4v, doublev); + dvec2v += mix(dvec2v, dvec2v, dvec2v); + dvec3v += mix(dvec3v, dvec3v, dvec3v); + dvec4v += mix(dvec4v, dvec4v, dvec4v); + doublev += mix(doublev, doublev, boolv); + dvec2v += mix(dvec2v, dvec2v, bvec2v); + dvec3v += mix(dvec3v, dvec3v, bvec3v); + dvec4v += mix(dvec4v, dvec4v, bvec4v); + + doublev += step(doublev, doublev); + dvec2v += step(dvec2v, dvec2v); + dvec3v += step(dvec3v, dvec3v); + dvec4v += step(dvec4v, dvec4v); + dvec2v += step(doublev, dvec2v); + dvec3v += step(doublev, dvec3v); + dvec4v += step(doublev, dvec4v); + + doublev += smoothstep(doublev, doublev, doublev); + dvec2v += smoothstep(dvec2v, dvec2v, dvec2v); + dvec3v += smoothstep(dvec3v, dvec3v, dvec3v); + dvec4v += smoothstep(dvec4v, dvec4v, dvec4v); + dvec2v += smoothstep(doublev, doublev, dvec2v); + dvec3v += smoothstep(doublev, doublev, dvec3v); + dvec4v += smoothstep(doublev, doublev, dvec4v); + + boolv = isnan(doublev); + bvec2v = isnan(dvec2v); + bvec3v = isnan(dvec3v); + bvec4v = isnan(dvec4v); + + boolv = boolv ? isinf(doublev) : false; + bvec2v = boolv ? isinf(dvec2v) : bvec2(false); + bvec3v = boolv ? isinf(dvec3v) : bvec3(false); + bvec4v = boolv ? isinf(dvec4v) : bvec4(false); + + doublev += length(doublev); + doublev += length(dvec2v); + doublev += length(dvec3v); + doublev += length(dvec4v); + + doublev += distance(doublev, doublev); + doublev += distance(dvec2v, dvec2v); + doublev += distance(dvec3v, dvec3v); + doublev += distance(dvec4v, dvec4v); + + doublev += dot(doublev, doublev); + doublev += dot(dvec2v, dvec2v); + doublev += dot(dvec3v, dvec3v); + doublev += dot(dvec4v, dvec4v); + + dvec3v += cross(dvec3v, dvec3v); + + doublev += normalize(doublev); + dvec2v += normalize(dvec2v); + dvec3v += normalize(dvec3v); + dvec4v += normalize(dvec4v); + + doublev += faceforward(doublev, doublev, doublev); + dvec2v += faceforward(dvec2v, dvec2v, dvec2v); + dvec3v += faceforward(dvec3v, dvec3v, dvec3v); + dvec4v += faceforward(dvec4v, dvec4v, dvec4v); + + doublev += reflect(doublev, doublev); + dvec2v += reflect(dvec2v, dvec2v); + dvec3v += reflect(dvec3v, dvec3v); + dvec4v += reflect(dvec4v, dvec4v); + + doublev += refract(doublev, doublev, doublev); + dvec2v += refract(dvec2v, dvec2v, doublev); + dvec3v += refract(dvec3v, dvec3v, doublev); + dvec4v += refract(dvec4v, dvec4v, doublev); + + dmat2 dmat2v = outerProduct(dvec2v, dvec2v); + dmat3 dmat3v = outerProduct(dvec3v, dvec3v); + dmat4 dmat4v = outerProduct(dvec4v, dvec4v); + dmat2x3 dmat2x3v = outerProduct(dvec3v, dvec2v); + dmat3x2 dmat3x2v = outerProduct(dvec2v, dvec3v); + dmat2x4 dmat2x4v = outerProduct(dvec4v, dvec2v); + dmat4x2 dmat4x2v = outerProduct(dvec2v, dvec4v); + dmat3x4 dmat3x4v = outerProduct(dvec4v, dvec3v); + dmat4x3 dmat4x3v = outerProduct(dvec3v, dvec4v); + + dmat2v *= matrixCompMult(dmat2v, dmat2v); + dmat3v *= matrixCompMult(dmat3v, dmat3v); + dmat4v *= matrixCompMult(dmat4v, dmat4v); + dmat2x3v = matrixCompMult(dmat2x3v, dmat2x3v); // For now, relying on no dead-code elimination + dmat2x4v = matrixCompMult(dmat2x4v, dmat2x4v); + dmat3x2v = matrixCompMult(dmat3x2v, dmat3x2v); + dmat3x4v = matrixCompMult(dmat3x4v, dmat3x4v); + dmat4x2v = matrixCompMult(dmat4x2v, dmat4x2v); + dmat4x3v = matrixCompMult(dmat4x3v, dmat4x3v); + + dmat2v *= transpose(dmat2v); + dmat3v *= transpose(dmat3v); + dmat4v *= transpose(dmat4v); + dmat2x3v = transpose(dmat3x2v); // For now, relying on no dead-code elimination + dmat3x2v = transpose(dmat2x3v); + dmat2x4v = transpose(dmat4x2v); + dmat4x2v = transpose(dmat2x4v); + dmat3x4v = transpose(dmat4x3v); + dmat4x3v = transpose(dmat3x4v); + + doublev += determinant(dmat2v); + doublev += determinant(dmat3v); + doublev += determinant(dmat4v); + + dmat2v *= inverse(dmat2v); + dmat3v *= inverse(dmat3v); + dmat4v *= inverse(dmat4v); + + outp *= float(doublev + dvec2v.y + dvec3v.z + dvec4v.w + + dmat2v[1][1] + dmat3v[2][2] + dmat4v[3][3] + dmat2x3v[1][1] + dmat3x2v[1][1] + dmat3x4v[2][2] + dmat4x3v[2][2] + dmat2x4v[1][1] + dmat4x2v[1][1] + + float(boolv) + float(bvec2v.x) + float(bvec3v.x) + float(bvec4v.x)); +} + +void main() +{ + vec4 v; + v = texture(arrayedSampler[i], c2D); + outp.x = gl_ClipDistance[1]; + outp.yzw = v.yzw; + + ivec2 offsets[4]; + const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); + uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2); + outp += textureGather(arrayedSampler[0], c2D); + ioutp = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); + ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); + ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); + + outp += gl_FragCoord + vl2; + uo = u % i; + foo23(); + doubles(); + + int id = gl_PrimitiveID; +} + diff --git a/deps/glslang/glslang/Test/spv.400.tesc b/deps/glslang/glslang/Test/spv.400.tesc new file mode 100644 index 0000000000..1c926d084d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.400.tesc @@ -0,0 +1,43 @@ +#version 400 core + +layout(vertices = 4) out; +int outa[gl_out.length()]; + +patch out vec4 patchOut; + +void main() +{ + barrier(); + + int a = gl_MaxTessControlInputComponents + + gl_MaxTessControlOutputComponents + + gl_MaxTessControlTextureImageUnits + + gl_MaxTessControlUniformComponents + + gl_MaxTessControlTotalOutputComponents; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[gl_InvocationID].gl_Position = p; + gl_out[gl_InvocationID].gl_PointSize = ps; + gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; + + gl_TessLevelOuter[3] = 3.2; + gl_TessLevelInner[1] = 1.3; +} + +in vec2 inb[]; +in vec2 ind[gl_MaxPatchVertices]; + +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 3) in vec4 ivla[]; +layout(location = 4) in vec4 ivlb[]; + +layout(location = 3) out vec4 ovla[]; +layout(location = 4) out vec4 ovlb[]; diff --git a/deps/glslang/glslang/Test/spv.400.tese b/deps/glslang/glslang/Test/spv.400.tese new file mode 100644 index 0000000000..da33f41ea9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.400.tese @@ -0,0 +1,52 @@ +#version 400 core + +layout(triangles, ccw) in; + +layout(fractional_odd_spacing) in; + +layout(point_mode) in; + +patch in vec4 patchIn; + +void main() +{ + int a = gl_MaxTessEvaluationInputComponents + + gl_MaxTessEvaluationOutputComponents + + gl_MaxTessEvaluationTextureImageUnits + + gl_MaxTessEvaluationUniformComponents + + gl_MaxTessPatchComponents + + gl_MaxPatchVertices + + gl_MaxTessGenLevel; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + vec3 tc = gl_TessCoord; + float tlo = gl_TessLevelOuter[3]; + float tli = gl_TessLevelInner[1]; + + gl_Position = p; + gl_PointSize = ps; + gl_ClipDistance[2] = cd; +} + +#extension GL_ARB_separate_shader_objects : enable + +in vec2 inb[]; +in vec2 ind[gl_MaxPatchVertices]; + +in testblb { + int f; +} blb[]; + +in testbld { + int f; +} bld[gl_MaxPatchVertices]; + +layout(location = 23) in vec4 ivla[]; +layout(location = 24) in vec4 ivlb[]; + +layout(location = 23) out vec4 ovla[2]; diff --git a/deps/glslang/glslang/Test/spv.420.geom b/deps/glslang/glslang/Test/spv.420.geom new file mode 100644 index 0000000000..92186ae8d6 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.420.geom @@ -0,0 +1,43 @@ +#version 420 core + +layout(triangles) in; + +in gl_PerVertex { + float gl_PointSize; +} gl_in[]; + +out gl_PerVertex { + float gl_PointSize; +}; + +layout(line_strip) out; +layout(max_vertices = 127) out; +layout(invocations = 4) in; + +uniform sampler2D s2D; +in vec2 coord[]; + +int i; + +void main() +{ + float p = gl_in[1].gl_PointSize; + gl_PointSize = p; + gl_ViewportIndex = 7; + + EmitStreamVertex(1); + EndStreamPrimitive(0); + EmitVertex(); + EndPrimitive(); + int id = gl_InvocationID; + + const ivec2 offsets[5] = + { + ivec2(0,1), + ivec2(1,-2), + ivec2(0,3), + ivec2(-3,0), + ivec2(2,1) + }; + vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy); +} diff --git a/deps/glslang/glslang/Test/spv.430.frag b/deps/glslang/glslang/Test/spv.430.frag new file mode 100644 index 0000000000..e547f6109c --- /dev/null +++ b/deps/glslang/glslang/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/deps/glslang/glslang/Test/spv.430.vert b/deps/glslang/glslang/Test/spv.430.vert new file mode 100644 index 0000000000..f52ff4a645 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.430.vert @@ -0,0 +1,37 @@ +#version 450 core + + + +out gl_PerVertex { + float gl_ClipDistance[]; +}; + +const float cx = 4.20; +const float dx = 4.20; +in vec4 bad[10]; +highp in vec4 badorder; +out invariant vec4 badorder2; +out flat vec4 badorder3; + +in float f; + +void main() +{ + gl_ClipDistance[2] = 3.7; + + if (bad[0].x == cx.x) + badorder3 = bad[0]; + + gl_ClipDistance[0] = f.x; +} + +layout(binding = 3) uniform boundblock { int aoeu; } boundInst; +layout(binding = 7) uniform anonblock { int aoeu; } ; +layout(binding = 4) uniform sampler2D sampb1; +layout(binding = 5) uniform sampler2D sampb2[10]; +layout(binding = 31) uniform sampler2D sampb4; + +struct S { mediump float a; highp uvec2 b; highp vec3 c; }; +struct SS { vec4 b; S s; vec4 c; }; +layout(location = 0) flat out SS var; +out MS { layout(location = 17) float f; } outMS; diff --git a/deps/glslang/glslang/Test/spv.450.geom b/deps/glslang/glslang/Test/spv.450.geom new file mode 100644 index 0000000000..3489a88814 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.450.geom @@ -0,0 +1,14 @@ +#version 450 core + +layout(triangles) in; + +layout(line_strip) out; +layout(max_vertices = 127) out; +layout(invocations = 4) in; + +void main() +{ + gl_PointSize = gl_in[1].gl_PointSize; + gl_Layer = 2; + gl_ViewportIndex = 3; +} diff --git a/deps/glslang/glslang/Test/spv.450.noRedecl.tesc b/deps/glslang/glslang/Test/spv.450.noRedecl.tesc new file mode 100644 index 0000000000..85fe94b819 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.450.noRedecl.tesc @@ -0,0 +1,10 @@ +#version 450 core + +layout(vertices = 4) out; + +patch out vec4 patchOut; + +void main() +{ + gl_in[0].gl_PointSize; +} diff --git a/deps/glslang/glslang/Test/spv.450.tesc b/deps/glslang/glslang/Test/spv.450.tesc new file mode 100644 index 0000000000..47b9a40876 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.450.tesc @@ -0,0 +1,33 @@ +#version 450 core + +layout(vertices = 4) out; + +layout(location=1) 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() +{ + gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; +} + +layout(location = 2) patch out SingleBlock { + highp float bMem1; // should not see a location decoration + highp float bMem2; + S s; // should see a patch decoration +} singleBlock; + +layout(location = 20) patch out bn { + vec4 v1; // location 20 + layout(location = 24) vec4 v2; // location 24 + vec4 v3; // location 25 +}; \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.460.comp b/deps/glslang/glslang/Test/spv.460.comp new file mode 100644 index 0000000000..eb671a38b3 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.460.comp @@ -0,0 +1,9 @@ +#version 460 + +void main() +{ + bool b1; + b1 = anyInvocation(b1); + b1 = allInvocations(b1); + b1 = allInvocationsEqual(b1); +} diff --git a/deps/glslang/glslang/Test/spv.460.frag b/deps/glslang/glslang/Test/spv.460.frag new file mode 100644 index 0000000000..9eb8bf46f7 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.460.frag @@ -0,0 +1,17 @@ +#version 460 core + +layout(binding = 0) uniform atomic_uint aui; +uint ui; + +void main() +{ + atomicCounterAdd(aui, ui); + atomicCounterSubtract(aui, ui); + atomicCounterMin(aui, ui); + atomicCounterMax(aui, ui); + atomicCounterAnd(aui, ui); + atomicCounterOr(aui, ui); + atomicCounterXor(aui, ui); + atomicCounterExchange(aui, ui); + atomicCounterCompSwap(aui, ui, ui); +} diff --git a/deps/glslang/glslang/Test/spv.460.vert b/deps/glslang/glslang/Test/spv.460.vert new file mode 100644 index 0000000000..72d4e775f4 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.460.vert @@ -0,0 +1,6 @@ +#version 460 + +void main() +{ + int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; +} diff --git a/deps/glslang/glslang/Test/spv.AofA.frag b/deps/glslang/glslang/Test/spv.AofA.frag new file mode 100644 index 0000000000..62847100e8 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.AofA.frag @@ -0,0 +1,43 @@ +#version 430 + +in float infloat; +out float outfloat; + +uniform uAofA { + float f[2][4]; +} nameAofA[3][5]; + +float[4][5][6] many[1][2][3]; + +float g4[4][7]; +in float g5[5][7]; + +flat in int i, j, k; + +float[4][7] foo(float a[5][7]) +{ + float r[7]; + r = a[2]; + + return float[4][7](a[0], a[1], r, a[3]); +} + +void main() +{ + outfloat = 0.0; + + g4 = foo(g5); + +// if (foo(g5) == g4) +// ++outfloat; + + float u[][7]; + u[2][2] = 3.0; + float u[5][7]; + + foo(u); + + many[i][j][k][i][j][k] = infloat; + outfloat += many[j][j][j][j][j][j]; + outfloat += nameAofA[1][2].f[0][3]; +} diff --git a/deps/glslang/glslang/Test/spv.GeometryShaderPassthrough.geom b/deps/glslang/glslang/Test/spv.GeometryShaderPassthrough.geom new file mode 100644 index 0000000000..9e6fe4cec2 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.GeometryShaderPassthrough.geom @@ -0,0 +1,17 @@ +#version 450 +#extension GL_NV_geometry_shader_passthrough : require + +layout(triangles) in; + +layout(passthrough) in gl_PerVertex { + vec4 gl_Position; +}; + +layout(passthrough) in Inputs { +vec2 texcoord; +vec4 baseColor; +}; + +void main() +{ +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.OVR_multiview.vert b/deps/glslang/glslang/Test/spv.OVR_multiview.vert new file mode 100644 index 0000000000..c81a4d996c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.OVR_multiview.vert @@ -0,0 +1,9 @@ +#version 330 + +#extension GL_OVR_multiview : enable + +layout(num_views = 2) in; + +void main() { + gl_Position = vec4(gl_ViewID_OVR, 0, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.Operations.frag b/deps/glslang/glslang/Test/spv.Operations.frag new file mode 100644 index 0000000000..52f0a30fb4 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.Operations.frag @@ -0,0 +1,141 @@ +#version 450 + +flat in ivec4 uiv4; +in vec4 uv4; +bool ub; +bvec4 ub41, ub42; +in float uf; +flat in int ui; +flat in uvec4 uuv4; +flat in uint uui; + +out vec4 FragColor; + +void main() +{ + vec4 v; + float f; + bool b; + bvec4 bv4; + int i; + uint u; + + // floating point + v = radians(uv4); + v += degrees(v); + v += (i = ui*ui, sin(v)); + v += cos(v); + v += tan(v); + v += asin(v); + v += acos(v); + + v += atan(v); + v += sinh(v); + v += cosh(v); + v += tanh(v); + v += asinh(v); + v += acosh(v); + v += atanh(v); + + v += pow(v, v); + v += exp(v); + v += log(v); + v += exp2(v); + v += log2(v); + v += sqrt(v); + v += inversesqrt(v); + v += abs(v); + v += sign(v); + v += floor(v); + + v += trunc(v); + v += round(v); + v += roundEven(v); + + v += ceil(v); + v += fract(v); + v += mod(v, v); + v += mod(v, v.x); + + v += modf(v, v); + + v += min(v, uv4); + v += max(v, uv4); + v += clamp(v, uv4, uv4); + v += mix(v,v,v); + + v += mix(v,v,ub41); + v += mix(v,v,f); +//spv v += intBitsToFloat(ui); +// v += uintBitsToFloat(uui); +// i += floatBitsToInt(f); +// u += floatBitsToUint(f); + v += fma(v, uv4, v); + + v += step(v,v); + v += smoothstep(v,v,v); + v += step(uf,v); + v += smoothstep(uf,uf,v); + v += normalize(v); + v += faceforward(v, v, v); + v += reflect(v, v); + v += refract(v, v, uf); + v += dFdx(v); + v += dFdy(v); + v += fwidth(v); + + // signed integer + i += abs(ui); + i += sign(i); + i += min(i, ui); + i += max(i, ui); + i += clamp(i, ui, ui); + + // unsigned integer + u += min(u, uui); + u += max(u, uui); + u += clamp(u, uui, uui); + + //// bool + b = isnan(uf); + b = isinf(f); + b = any(lessThan(v, uv4)); + b = (b && any(lessThanEqual(v, uv4))); + b = (b && any(greaterThan(v, uv4))); + b = (b && any(greaterThanEqual(v, uv4))); + b = (b && any(equal(ub41, ub42))); + b = (b && any(notEqual(ub41, ub42))); + b = (b && any(ub41)); + b = (b && all(ub41)); + b = (b && any(not(ub41))); + + i = ((i + ui) * i - ui) / i; + i = i % ui; + if (i == ui || i != ui && i == ui ^^ i != 2) + ++i; + + f = ((uf + uf) * uf - uf) / uf; + + f += length(v); + f += distance(v, v); + f += dot(v, v); + f += dot(f, uf); + f += cross(v.xyz, v.xyz).x; + + if (f == uf || f != uf && f != 2.0) + ++f; + + i &= ui; + i |= 0x42; + i ^= ui; + i %= 17; + i >>= 2; + i <<= ui; + i = ~i; + b = !b; + + FragColor = b ? vec4(i) + vec4(f) + v : v; + + mat4 m1 = mat4(1.0), m2 = mat4(0.0); + FragColor += (b ? m1 : m2)[1]; +} diff --git a/deps/glslang/glslang/Test/spv.accessChain.frag b/deps/glslang/glslang/Test/spv.accessChain.frag new file mode 100644 index 0000000000..3f4929b652 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.accessChain.frag @@ -0,0 +1,100 @@ +#version 420 + +struct S +{ + vec3 color; +}; + +layout(location = 0) out vec3 OutColor; + +flat in int u; + +void GetColor1(const S i) +{ + OutColor += i.color.x; +} + +void GetColor2(const S i, int comp) +{ + OutColor += i.color[comp]; +} + +void GetColor3(const S i, int comp) +{ + OutColor += i.color[comp].x; +} + +void GetColor4(const S i, int comp) +{ + OutColor += i.color[comp].x; +} + +void GetColor5(const S i, int comp) +{ + OutColor += i.color; +} + +void GetColor6(const S i, int comp) +{ + OutColor += i.color.yx[comp]; +} + +void GetColor7(const S i, int comp) +{ + OutColor.xy += i.color.yxz.yx; +} + +void GetColor8(const S i, int comp) +{ + OutColor += i.color.yzx.yx.x.x; +} + +void GetColor9(const S i, int comp) +{ + OutColor.zxy += i.color; +} + +void GetColor10(const S i, int comp) +{ + OutColor.zy += i.color.xy; +} + +void GetColor11(const S i, int comp) +{ + OutColor.zxy.yx += i.color.xy; +} + +void GetColor12(const S i, int comp) +{ + OutColor[comp] += i.color.x; +} + +void GetColor13(const S i, int comp) +{ + OutColor.zy[comp] += i.color.x; +} + +void GetColor14(const S i, int comp) +{ + OutColor.zyx[comp] = i.color.x; +} + +void main() +{ + S s; + OutColor = vec3(0.0); + GetColor1(s); + GetColor2(s, u); + GetColor3(s, u); + GetColor4(s, u); + GetColor5(s, u); + GetColor6(s, u); + GetColor7(s, u); + GetColor8(s, u); + GetColor9(s, u); + GetColor10(s, u); + GetColor11(s, u); + GetColor12(s, u); + GetColor13(s, u); + GetColor14(s, u); +} diff --git a/deps/glslang/glslang/Test/spv.aggOps.frag b/deps/glslang/glslang/Test/spv.aggOps.frag new file mode 100644 index 0000000000..bc34d7acd4 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.aggOps.frag @@ -0,0 +1,51 @@ +#version 450 + +uniform sampler2D samp2D; +in mediump vec2 coord; + +in vec4 u, w; +out vec4 color; + +struct s1 { + int i; + float f; +}; + +struct s2 { + int i; + float f; + s1 s1_1; +}; + +layout(std140) uniform ub1 { s2 foo2a; } uName1; +layout(std430) buffer ub2 { s2 foo2b; } uName2; + +void main() +{ + vec4 v; + s1 a[3], b[3]; + a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0)); + b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w)); + + if (uName1.foo2a == uName2.foo2b) + v = texture(samp2D, coord); + else + v = texture(samp2D, 2.0*coord); + + if (u == v) + v *= 3.0; + + if (u != v) + v *= 4.0; + + if (coord == v.yw) + v *= 5.0; + + if (a == b) + v *= 6.0; + + if (a != b) + v *= 7.0; + + color = v; +} diff --git a/deps/glslang/glslang/Test/spv.always-discard.frag b/deps/glslang/glslang/Test/spv.always-discard.frag new file mode 100644 index 0000000000..6cd4d04fce --- /dev/null +++ b/deps/glslang/glslang/Test/spv.always-discard.frag @@ -0,0 +1,36 @@ +#version 140 +in vec2 tex_coord; + +void main (void) +{ + vec4 white = vec4(1.0); + vec4 black = vec4(0.2); + vec4 color = white; + + // First, cut out our circle + float x = tex_coord.x*2.0 - 1.0; + float y = tex_coord.y*2.0 - 1.0; + + float radius = sqrt(x*x + y*y); + if (radius > 1.0) { + if (radius > 1.1) { + ++color; + } + + gl_FragColor = color; + + if (radius > 1.2) { + ++color; + } + + } + + discard; + + // If we're near an edge, darken us a tiny bit + if (radius >= 0.75) + color -= abs(pow(radius, 16.0)/2.0); + + gl_FragColor = color; + +} diff --git a/deps/glslang/glslang/Test/spv.always-discard2.frag b/deps/glslang/glslang/Test/spv.always-discard2.frag new file mode 100644 index 0000000000..2b125f32d3 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.always-discard2.frag @@ -0,0 +1,19 @@ +#version 140 +in vec2 tex_coord; + +void main (void) +{ + vec4 white = vec4(1.0); + vec4 black = vec4(0.2); + vec4 color = white; + + // First, cut out our circle + float x = tex_coord.x*2.0 - 1.0; + float y = tex_coord.y*2.0 - 1.0; + + discard; + + + gl_FragColor = color; + +} diff --git a/deps/glslang/glslang/Test/spv.arbPostDepthCoverage.frag b/deps/glslang/glslang/Test/spv.arbPostDepthCoverage.frag new file mode 100644 index 0000000000..03b61cb5ea --- /dev/null +++ b/deps/glslang/glslang/Test/spv.arbPostDepthCoverage.frag @@ -0,0 +1,13 @@ +#version 450 + +#extension GL_ARB_post_depth_coverage : enable +#extension GL_EXT_post_depth_coverage : enable //according to ARB_post_depth_coverage, + //if both enabled, this one should be ignored +precision highp int; +layout(post_depth_coverage) in; + +layout (location = 0) out int readSampleMaskIn; + +void main () { + readSampleMaskIn = gl_SampleMaskIn[0]; +} diff --git a/deps/glslang/glslang/Test/spv.arbPostDepthCoverage_Error.frag b/deps/glslang/glslang/Test/spv.arbPostDepthCoverage_Error.frag new file mode 100644 index 0000000000..652933b812 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.arbPostDepthCoverage_Error.frag @@ -0,0 +1,12 @@ +#version 310 es + +#extension GL_ARB_post_depth_coverage : enable + +precision highp float; + +layout(post_depth_coverage, location = 0) in float a; // should fail since post_depth_coverage may only + // be declared on in only (not with variable declarations) + +void main () { + +} diff --git a/deps/glslang/glslang/Test/spv.atomic.comp b/deps/glslang/glslang/Test/spv.atomic.comp new file mode 100644 index 0000000000..8ab846e4ff --- /dev/null +++ b/deps/glslang/glslang/Test/spv.atomic.comp @@ -0,0 +1,48 @@ +#version 450 + + + +layout(binding = 0) uniform atomic_uint counter; + +layout(binding = 0, offset = 4) uniform atomic_uint countArr[4]; +shared uint value; + +int arrX[gl_WorkGroupSize.x]; +int arrY[gl_WorkGroupSize.y]; +int arrZ[gl_WorkGroupSize.z]; + +uint func(atomic_uint c) +{ + return atomicCounterIncrement(c); +} + +void main() +{ + memoryBarrierAtomicCounter(); + func(counter); + uint val = atomicCounter(countArr[2]); + atomicCounterDecrement(counter); + atomicCounterIncrement(counter); +} + +shared int atomi; +shared uint atomu; + +layout (std140, binding = 0) restrict buffer dataSSB +{ + float f; + ivec4 n_frames_rendered; +} result; + +void atoms() +{ + int origi = atomicAdd(atomi, 3); + uint origu = atomicAnd(atomu, value); + origu = atomicOr(atomu, 7u); + origu = atomicXor(atomu, 7u); + origu = atomicMin(atomu, value); + origi = atomicMax(atomi, 7); + origi = atomicExchange(atomi, origi); + origu = atomicCompSwap(atomu, 10u, value); + atomicAdd(result.n_frames_rendered.z, 1); +} diff --git a/deps/glslang/glslang/Test/spv.atomicInt64.comp b/deps/glslang/glslang/Test/spv.atomicInt64.comp new file mode 100644 index 0000000000..baca4cefe8 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.atomicInt64.comp @@ -0,0 +1,79 @@ +#version 450 core + +#extension GL_ARB_gpu_shader_int64: enable +#extension GL_NV_shader_atomic_int64: enable + +layout(local_size_x = 16, local_size_y = 16) in; + +layout(binding = 0) buffer Buffer +{ + int64_t i64; + uint64_t u64; +} buf; + +struct Struct +{ + int64_t i64; + uint64_t u64; +}; + +shared Struct s; + +void main() +{ + const int64_t i64c = -24; + const uint64_t u64c = 0xF00000000Ful; + + // Test shader storage block + int64_t i64 = 0; + uint64_t u64 = 0; + + i64 += atomicMin(buf.i64, i64c); + u64 += atomicMin(buf.u64, u64c); + + i64 += atomicMax(buf.i64, i64c); + u64 += atomicMax(buf.u64, u64c); + + i64 += atomicAnd(buf.i64, i64c); + u64 += atomicAnd(buf.u64, u64c); + + i64 += atomicOr(buf.i64, i64c); + u64 += atomicOr(buf.u64, u64c); + + i64 += atomicXor(buf.i64, i64c); + u64 += atomicXor(buf.u64, u64c); + + i64 += atomicAdd(buf.i64, i64c); + i64 += atomicExchange(buf.i64, i64c); + i64 += atomicCompSwap(buf.i64, i64c, i64); + + buf.i64 = i64; + buf.u64 = u64; + + // Test shared variable + i64 = 0; + u64 = 0; + + i64 += atomicMin(s.i64, i64c); + u64 += atomicMin(s.u64, u64c); + + i64 += atomicMax(s.i64, i64c); + u64 += atomicMax(s.u64, u64c); + + i64 += atomicAnd(s.i64, i64c); + u64 += atomicAnd(s.u64, u64c); + + i64 += atomicOr(s.i64, i64c); + u64 += atomicOr(s.u64, u64c); + + i64 += atomicXor(s.i64, i64c); + u64 += atomicXor(s.u64, u64c); + + i64 += atomicAdd(s.i64, i64c); + i64 += atomicExchange(s.i64, i64c); + i64 += atomicCompSwap(s.i64, i64c, i64); + + s.i64 = i64; + s.u64 = u64; +} + diff --git a/deps/glslang/glslang/Test/spv.barrier.vert b/deps/glslang/glslang/Test/spv.barrier.vert new file mode 100644 index 0000000000..c7828ce7b5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.barrier.vert @@ -0,0 +1,15 @@ +#version 450 + +layout(location=0) out vec4 c0; +layout(location=1) out vec4 c1; + +void main() +{ + c0 = vec4(1.0); + memoryBarrier(); + c1 = vec4(1.0); + memoryBarrierBuffer(); + ++c0; + memoryBarrierImage(); + ++c0; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.bitCast.frag b/deps/glslang/glslang/Test/spv.bitCast.frag new file mode 100644 index 0000000000..73c7e3037c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.bitCast.frag @@ -0,0 +1,45 @@ +#version 450 + +flat in int i1; +flat in ivec2 i2; +flat in ivec3 i3; +flat in ivec4 i4; + +flat in uint u1; +flat in uvec2 u2; +flat in uvec3 u3; +flat in uvec4 u4; + +in float f1; +in vec2 f2; +in vec3 f3; +in vec4 f4; + +out vec4 fragColor; + +void main() +{ + ivec4 idata = ivec4(0); + idata.x += floatBitsToInt(f1); + idata.xy += floatBitsToInt(f2); + idata.xyz += floatBitsToInt(f3); + idata += floatBitsToInt(f4); + + uvec4 udata = uvec4(0); + udata.x += floatBitsToUint(f1); + udata.xy += floatBitsToUint(f2); + udata.xyz += floatBitsToUint(f3); + udata += floatBitsToUint(f4); + + vec4 fdata = vec4(0.0); + fdata.x += intBitsToFloat(i1); + fdata.xy += intBitsToFloat(i2); + fdata.xyz += intBitsToFloat(i3); + fdata += intBitsToFloat(i4); + fdata.x += uintBitsToFloat(u1); + fdata.xy += uintBitsToFloat(u2); + fdata.xyz += uintBitsToFloat(u3); + fdata += uintBitsToFloat(u4); + + fragColor = (idata == udata) ? fdata : fdata + vec4(0.2); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.bool.vert b/deps/glslang/glslang/Test/spv.bool.vert new file mode 100644 index 0000000000..f58bc55d5b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.bool.vert @@ -0,0 +1,17 @@ +#version 450 + +const bool condition = false; + +uniform ubname { + bool b; +} ubinst; + +bool foo(bool b) +{ + return b != condition; +} + +void main() +{ + gl_Position = foo(ubinst.b) ? vec4(0.0) : vec4(1.0); +} diff --git a/deps/glslang/glslang/Test/spv.boolInBlock.frag b/deps/glslang/glslang/Test/spv.boolInBlock.frag new file mode 100644 index 0000000000..a4f62fae04 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.boolInBlock.frag @@ -0,0 +1,31 @@ +#version 450 + +layout(binding = 0, std140) uniform Uniform +{ + bvec4 b4; +}; + +layout(binding = 1, std430) buffer Buffer +{ + bvec2 b2; +}; + +void foo(bvec4 paramb4, out bvec2 paramb2) +{ + bool b1 = paramb4.z; + paramb2 = bvec2(b1); +} + +layout(location = 0) out vec4 fragColor; + +void main() +{ + b2 = bvec2(0.0); + if (b4.z) + b2 = bvec2(b4.x); + if (b2.x) + foo(b4, b2); + + fragColor = vec4(b4.x && b4.y); + fragColor -= vec4(b4.x || b4.y); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.branch-return.vert b/deps/glslang/glslang/Test/spv.branch-return.vert new file mode 100644 index 0000000000..4b2f5d447c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.branch-return.vert @@ -0,0 +1,10 @@ +#version 310 es +void main() { + switch (gl_InstanceIndex) { + case 0: return; + case 1: gl_Position = vec4(0.0); break; + case 2: return; + case 3: return; + } + gl_Position.x += 0.123; +} diff --git a/deps/glslang/glslang/Test/spv.buffer.autoassign.frag b/deps/glslang/glslang/Test/spv.buffer.autoassign.frag new file mode 100644 index 0000000000..464426095d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.buffer.autoassign.frag @@ -0,0 +1,28 @@ + +cbuffer MyUB1 : register(b5) // explicitly assigned & offsetted +{ + float g_a; + int g_b; +}; + +cbuffer MyUB2 // implicitly assigned +{ + float g_c; +}; + +cbuffer MyUB3 // implicitly assigned +{ + float g_d; +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = g_a + g_b + g_c + g_d; + return psout; +} diff --git a/deps/glslang/glslang/Test/spv.builtInXFB.vert b/deps/glslang/glslang/Test/spv.builtInXFB.vert new file mode 100644 index 0000000000..619bc1e2fd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.builtInXFB.vert @@ -0,0 +1,15 @@ +#version 450 + +layout(xfb_buffer = 1, xfb_stride = 64) out; + +layout (xfb_buffer = 1, xfb_offset = 16) out gl_PerVertex +{ + float gl_PointSize; + vec4 gl_Position; +}; + +void main() +{ + gl_Position = vec4(1.0); + gl_PointSize = 2.0; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.conditionalDiscard.frag b/deps/glslang/glslang/Test/spv.conditionalDiscard.frag new file mode 100644 index 0000000000..ea803374b9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.conditionalDiscard.frag @@ -0,0 +1,14 @@ +#version 400 + +uniform sampler2D tex; +in vec2 coord; + +void main (void) +{ + vec4 v = texture(tex, coord); + + if (v == vec4(0.1,0.2,0.3,0.4)) + discard; + + gl_FragColor = v; +} diff --git a/deps/glslang/glslang/Test/spv.constStruct.vert b/deps/glslang/glslang/Test/spv.constStruct.vert new file mode 100644 index 0000000000..d5dd8da975 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.constStruct.vert @@ -0,0 +1,22 @@ +#version 450 + +precision highp float; + +struct U { + mat2 m; +}; + +struct T { + mat2 m; +}; + +struct S { + T t; + U u; +}; + +void main() +{ + S s1 = S(T(mat2(1.0)), U(mat2(1.0))); + S s2 = S(T(mat2(1.0)), U(mat2(1.0))); +} diff --git a/deps/glslang/glslang/Test/spv.controlFlowAttributes.frag b/deps/glslang/glslang/Test/spv.controlFlowAttributes.frag new file mode 100644 index 0000000000..6d90c0db2c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.controlFlowAttributes.frag @@ -0,0 +1,39 @@ +#version 450 + +#extension GL_EXT_control_flow_attributes : enable + +bool cond; + +void main() +{ + [[unroll]] for (int i = 0; i < 8; ++i) { } + [[loop]] for (;;) { } + [[dont_unroll]] while(true) { } + [[dependency_infinite]] do { } while(true); + [[dependency_length(1+3)]] for (int i = 0; i < 8; ++i) { } + [[flatten]] if (cond) { } else { } + [[branch]] if (cond) cond = false; + [[dont_flatten]] switch(3) { } // dropped + [[dont_flatten]] switch(3) { case 3: break; } + + // warnings on all these + [[unroll(2)]] for (int i = 0; i < 8; ++i) { } + [[dont_unroll(-2)]] while(true) { } + [[dependency_infinite(3)]] do { } while(true); + [[dependency_length]] for (int i = 0; i < 8; ++i) { } + [[flatten(3)]] if (cond) { } else { } + [[branch(5.2)]] if (cond) cond = false; + [[dont_flatten(3 + 7)]] switch(3) { case 3: break; } + + // other valid uses + [[ unroll, dont_unroll, dependency_length(2) ]] while(cond) { } + [ [ dont_flatten , branch ] ] switch(3) { case 3: break; } + [ + // attribute + [ + // here + flatten + ] + ] if (cond) { } else { } + [[ dependency_length(2), dependency_infinite ]] while(cond) { } +} diff --git a/deps/glslang/glslang/Test/spv.conversion.frag b/deps/glslang/glslang/Test/spv.conversion.frag new file mode 100644 index 0000000000..3b5e5123f7 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.conversion.frag @@ -0,0 +1,112 @@ +#version 140 + +bool u_b; +bvec2 u_b2; +bvec3 u_b3; +bvec4 u_b4; + +int u_i; +ivec2 u_i2; +ivec3 u_i3; +ivec4 u_i4; + +float u_f; +vec2 u_f2; +vec3 u_f3; +vec4 u_f4; + +bool i_b; +bvec2 i_b2; +bvec3 i_b3; +bvec4 i_b4; + +flat in int i_i; +flat in ivec2 i_i2; +flat in ivec3 i_i3; +flat in ivec4 i_i4; + +in float i_f; +in vec2 i_f2; +in vec3 i_f3; +in vec4 i_f4; + +void main() +{ + bool b = bool(u_i) ^^ bool(u_f); + bvec2 b2 = bvec2(u_i, u_f); + bvec3 b3 = bvec3(u_i, u_f, i_i); + bvec4 b4 = bvec4(u_i, u_f, i_i, i_f); + + int i = int(u_f) + int(b); + ivec2 i2 = ivec2(u_f2) + ivec2(b2); + ivec3 i3 = ivec3(u_f3) + ivec3(b3); + ivec4 i4 = ivec4(u_f4) + ivec4(b4); + + float f = i; + vec2 f2 = i2; + vec3 f3 = i3; + vec4 f4 = i4; + + f += (float(i) + float(b)); + f2 -= vec2(i2) + vec2(b2); + f3 /= vec3(i3) + vec3(b3); + f4 += vec4(i4) + vec4(b4); + + f4 += vec4(bvec4(i_i4)); + f4 += vec4(bvec4(u_f4)); + + f += f - i; + f2 += vec2(f, i) + i2; + f3 += i3 + vec3(f, i, f); + f4 += vec4(b, i, f, i) + i4; + + f2 += vec2(f, i) * i; + f3 += vec3(f, i, f) + i; + f4 += i - vec4(b, i, f, i); + + i2 += ivec2(f, i); + i3 += ivec3(f, i, f); + i4 += ivec4(b, i, f, i); + + if (f < i || i < f || + f2 == i2 || + i3 != f3) + f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y); + + gl_FragColor = + b || + b2.x || + b2.y || + b3.x || + b3.y || + b3.z || + b4.x || + b4.y || + b4.z || + b4.w ? vec4( + i + + i2.x + + i2.y + + i3.x + + i3.y + + i3.z + + i4.x + + i4.y + + i4.z + + i4.w + + f + + f2.x + + f2.y + + f3.x + + f3.y + + f3.z + + f4.x + + f4.y + + f4.z + + f4.w) : vec4(1.0); + + // with constants... + ivec4 cv2 = ivec4(1.0); + bvec4 cv5 = bvec4(cv2); + gl_FragColor += float(cv5); +} diff --git a/deps/glslang/glslang/Test/spv.dataOut.frag b/deps/glslang/glslang/Test/spv.dataOut.frag new file mode 100644 index 0000000000..94c6db0620 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.dataOut.frag @@ -0,0 +1,8 @@ +#version 140 + +in vec4 Color; + +void main() +{ + gl_FragData[1] = Color; +} diff --git a/deps/glslang/glslang/Test/spv.dataOutIndirect.frag b/deps/glslang/glslang/Test/spv.dataOutIndirect.frag new file mode 100644 index 0000000000..88a32d5829 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.dataOutIndirect.frag @@ -0,0 +1,12 @@ +#version 140 + +in vec4 Color; + +out vec4 fcolor[4]; + +uniform b { int i; } bName; + +void main() +{ + fcolor[bName.i] = Color; +} diff --git a/deps/glslang/glslang/Test/spv.dataOutIndirect.vert b/deps/glslang/glslang/Test/spv.dataOutIndirect.vert new file mode 100644 index 0000000000..cb6b7e0d7c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.dataOutIndirect.vert @@ -0,0 +1,12 @@ +#version 140 + +attribute vec4 color; +out vec4 colorOut[6]; + +void main() +{ + for (int i = 1; i < 5; ++i) + colorOut[i] = color; + + gl_Position = colorOut[2]; +} diff --git a/deps/glslang/glslang/Test/spv.debugInfo.frag b/deps/glslang/glslang/Test/spv.debugInfo.frag new file mode 100644 index 0000000000..3b6cd27fea --- /dev/null +++ b/deps/glslang/glslang/Test/spv.debugInfo.frag @@ -0,0 +1,52 @@ +#version 450 + +struct S { + int a; +}; + +uniform ubuf { + S s; +}; + +uniform sampler2D s2d; + +layout(location = 0) in vec4 inv; +layout(location = 0) out vec4 outv; + +vec4 foo(S s) +{ + vec4 r = s.a * inv; + ++r; + if (r.x > 3.0) + --r; + else + r *= 2; + + return r; +} + +void main() +{ + outv = foo(s); + outv += texture(s2d, vec2(0.5)); + + switch (s.a) { + case 10: + ++outv; + break; + case 20: + outv = 2 * outv; + ++outv; + break; + default: + --outv; + break; + } + + for (int i = 0; i < 10; ++i) + outv *= 3.0; + + outv.x < 10.0 ? + outv = sin(outv) : + outv = cos(outv); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.deepRvalue.frag b/deps/glslang/glslang/Test/spv.deepRvalue.frag new file mode 100644 index 0000000000..2c88ca8adc --- /dev/null +++ b/deps/glslang/glslang/Test/spv.deepRvalue.frag @@ -0,0 +1,36 @@ +#version 330 + +uniform sampler2D samp2D; + +vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0); +vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0); +vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0); +vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0); + +struct str { + int a; + vec2 b[3]; + bool c; +}; + +void main() +{ + mat4 m = mat4(v1, v2, v3, v4); + + mat4 mm = matrixCompMult(m, m); + float f = mm[1].w; // should be 19 * 19 = 361 + + // do a deep access to a spontaneous r-value + float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841 + + float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0 + + float i = texture(samp2D, vec2(0.5,0.5)).y; + + i += (i > 0.1 ? v1 : v2)[3]; + + str t; + i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0 + + gl_FragColor = vec4(f, g, h, i); +} diff --git a/deps/glslang/glslang/Test/spv.depthOut.frag b/deps/glslang/glslang/Test/spv.depthOut.frag new file mode 100644 index 0000000000..feb8a0d4f3 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.depthOut.frag @@ -0,0 +1,11 @@ +#version 450 + +in vec4 Color; +in float Depth; + +layout(depth_greater) out float gl_FragDepth; + +void main() +{ + gl_FragDepth = Depth; +} diff --git a/deps/glslang/glslang/Test/spv.deviceGroup.frag b/deps/glslang/glslang/Test/spv.deviceGroup.frag new file mode 100644 index 0000000000..6496489764 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.deviceGroup.frag @@ -0,0 +1,9 @@ +#version 450 + +#extension GL_EXT_device_group : enable + +out vec4 color; + +void main() { + color = vec4(gl_DeviceIndex, 0, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.discard-dce.frag b/deps/glslang/glslang/Test/spv.discard-dce.frag new file mode 100644 index 0000000000..e824f76edd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.discard-dce.frag @@ -0,0 +1,35 @@ +#version 140 +in vec2 tex_coord; + +void main (void) +{ + vec4 white = vec4(1.0); + vec4 black = vec4(0.2); + vec4 color = white; + + // First, cut out our circle + float x = tex_coord.x*2.0 - 1.0; + float y = tex_coord.y*2.0 - 1.0; + + float radius = sqrt(x*x + y*y); + if (radius > 1.0) { + if (radius > 1.1) { + ++color; + } + + gl_FragColor = color; + + if (radius > 1.2) { + ++color; + } + + discard; + } + + // If we're near an edge, darken us a tiny bit + if (radius >= 0.75) + color -= abs(pow(radius, 16.0)/2.0); + + gl_FragColor = color; + +} diff --git a/deps/glslang/glslang/Test/spv.do-simple.vert b/deps/glslang/glslang/Test/spv.do-simple.vert new file mode 100644 index 0000000000..77677a6df9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.do-simple.vert @@ -0,0 +1,7 @@ +#version 310 es +void main() { + int i = 0; + do { + i++; + } while(i<10); +} diff --git a/deps/glslang/glslang/Test/spv.do-while-continue-break.vert b/deps/glslang/glslang/Test/spv.do-while-continue-break.vert new file mode 100644 index 0000000000..c085551e8b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.do-while-continue-break.vert @@ -0,0 +1,20 @@ +#version 310 es +void main() { + int i = 0; + int A, B, C, D, E, F, G; + do { + A = 0; + if (i == 2) { + B = 1; + continue; + C = 2; + } + if (i == 5) { + D = 3; + break; + E = 42; + } + F = 99; + } while (++i < 19); + G = 12; +} diff --git a/deps/glslang/glslang/Test/spv.doWhileLoop.frag b/deps/glslang/glslang/Test/spv.doWhileLoop.frag new file mode 100644 index 0000000000..5abdb61be3 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.doWhileLoop.frag @@ -0,0 +1,16 @@ +#version 140 + +in vec4 bigColor; +in vec4 BaseColor; +in float d; + +void main() +{ + vec4 color = BaseColor; + + do { + color += bigColor; + } while (color.x < d); + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/spv.double.comp b/deps/glslang/glslang/Test/spv.double.comp new file mode 100644 index 0000000000..6397e6305b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.double.comp @@ -0,0 +1,25 @@ +#version 430 + +const double d1 = 3.1415926535897932384626433832795LF; +const double d2 = 3.1415; +const double d3 = 3.1415926535897932384626433832795LF; +const double d4 = 3.1415926535897932384626433832795; + +buffer bufName { + float f; + double d; +} bufInst; + + +uniform writeonly image2D destTex; + +void main() +{ + bufInst.d = float(d1); + bufInst.f = float(d1 + d2 + d3 + d4); + + ivec2 storePos = ivec2(gl_GlobalInvocationID.xy); + double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0); + dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4); + double globalCoef = 1.0; +} diff --git a/deps/glslang/glslang/Test/spv.drawParams.vert b/deps/glslang/glslang/Test/spv.drawParams.vert new file mode 100644 index 0000000000..f2e3c1efaa --- /dev/null +++ b/deps/glslang/glslang/Test/spv.drawParams.vert @@ -0,0 +1,13 @@ +#version 450 + +#extension GL_ARB_shader_draw_parameters : enable + +out vec3 pos; + +void main() +{ + int a = gl_BaseVertexARB; + int b = gl_BaseInstanceARB; + int c = gl_DrawIDARB; + pos = vec3(a, b, c); +} diff --git a/deps/glslang/glslang/Test/spv.earlyReturnDiscard.frag b/deps/glslang/glslang/Test/spv.earlyReturnDiscard.frag new file mode 100644 index 0000000000..bba4b76d26 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.earlyReturnDiscard.frag @@ -0,0 +1,102 @@ +#version 140 + +in float d; +in vec4 bigColor, smallColor; +in vec4 otherColor; + +in float c; + +in float threshhold; +in float threshhold2; +in float threshhold3; + +in float minimum; + +in vec4 BaseColor; + +bool b; + +void main() +{ + vec4 color = BaseColor; + vec4 color2; + + color2 = otherColor; + + if (c > d) + color += bigColor; + else + color += smallColor; + + if (color.z < minimum) + return; + + color.z++; + + if (color.z > threshhold) + discard; + + color++; + + // Two path, different rest + if (color.w > threshhold2) { + if (color.z > threshhold2) + return; + else if (b) + color.z++; + else { + if (color.x < minimum) { + discard; + } else { + color++; + } + } + } else { + if (b) + discard; + else + return; + } + + + // // Two path, shared rest + // if (color.w > threshhold2) { + // if (color.z > threshhold2) + // return; + // else if (b) + // color++; + // else { + // if (color.x < minimum) { + // discard; + // } else { + // color++; + // } + // } + // } else { + // if (b) + // discard; + // else + // return; + // } + + + // // One path + // if (color.w > threshhold2) { + // if (color.z > threshhold2) + // return; + // else { + // if (color.x < minimum) { + // discard; + // } else { + // color++; + // } + // } + // } else { + // if (b) + // discard; + // else + // return; + // } + + gl_FragColor = color * color2; +} diff --git a/deps/glslang/glslang/Test/spv.explicittypes.frag b/deps/glslang/glslang/Test/spv.explicittypes.frag new file mode 100644 index 0000000000..18c070a7f3 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.explicittypes.frag @@ -0,0 +1,334 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +layout(binding = 0) uniform Uniforms +{ + uint index; +}; + +layout(std140, binding = 1) uniform Block +{ + int16_t i16; + i16vec2 i16v2; + i16vec3 i16v3; + i16vec4 i16v4; + uint16_t u16; + u16vec2 u16v2; + u16vec3 u16v3; + u16vec4 u16v4; + + int32_t i32; + i32vec2 i32v2; + i32vec3 i32v3; + i32vec4 i32v4; + uint32_t u32; + u32vec2 u32v2; + u32vec3 u32v3; + u32vec4 u32v4; +} block; + +void main() +{ +} + +void literal() +{ + const int64_t i64Const[3] = + { + -0x1111111111111111l, // Hex + -1l, // Dec + 040000000000l, // Oct + }; + + int64_t i64 = i64Const[index]; + + const uint64_t u64Const[] = + { + 0xFFFFFFFFFFFFFFFFul, // Hex + 4294967296UL, // Dec + 077777777777ul, // Oct + }; + + uint64_t u64 = u64Const[index]; + + const int32_t i32Const[3] = + { + -0x11111111, // Hex + -1, // Dec + 04000000000, // Oct + }; + + int32_t i32 = i32Const[index]; + + const uint32_t u32Const[] = + { + 0xFFFFFFFF, // Hex + 4294967295, // Dec + 017777777777, // Oct + }; + + uint32_t u32 = u32Const[index]; + + const int16_t i16Const[3] = + { + int16_t(-0x1111), // Hex + int16_t(-1), // Dec + int16_t(040000), // Oct + }; + + int16_t i16 = i16Const[index]; + + const uint16_t u16Const[] = + { + uint16_t(0xFFFF), // Hex + uint16_t(65535), // Dec + uint16_t(077777), // Oct + }; + + uint16_t u16 = u16Const[index]; + + const int8_t i8Const[3] = + { + int8_t(-0x11), // Hex + int8_t(-1), // Dec + int8_t(0400), // Oct + }; + + int8_t i8 = i8Const[index]; + + const uint8_t u8Const[] = + { + uint8_t(0xFF), // Hex + uint8_t(255), // Dec + uint8_t(0177), // Oct + }; + + uint8_t u8 = u8Const[index]; +} + +void typeCast8() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + u8v = i8v; // int8_t -> uint8_t + i16v = i8v; // int8_t -> int16_t + i16v = u8v; // uint8_t -> int16_t + i32v = i8v; // int8_t -> int32_t + i32v = u8v; // uint8_t -> int32_t + u32v = i8v; // int8_t -> uint32_t + i64v = i8v; // int8_t -> int64_t + u64v = i8v; // int8_t -> uint64_t + u32v = u8v; // uint8_t -> uint32_t + i64v = u8v; // uint8_t -> int64_t + u64v = u8v; // uint8_t -> uint64_t + f16v = i8v; // int8_t -> float16_t + f32v = i8v; // int8_t -> float32_t + f64v = i8v; // int8_t -> float64_t + f16v = u8v; // uint8_t -> float16_t + f32v = u8v; // uint8_t -> float32_t + f64v = u8v; // uint8_t -> float64_t + + i8v = i8vec2(u8v); // uint8_t -> int8_t + i16v = i16vec2(i8v); // int8_t -> int16_t + i16v = i16vec2(u8v); // uint8_t -> int16_t + i32v = i32vec2(i8v); // int8_t -> int32_t + i32v = i32vec2(u8v); // uint8_t -> int32_t + i64v = i64vec2(i8v); // int8_t -> int64_t + u64v = i64vec2(i8v); // int8_t -> uint64_t + u16v = u16vec2(i8v); // int8_t -> uint16_t + u16v = u16vec2(u8v); // uint8_t -> uint16_t + u32v = u32vec2(u8v); // uint8_t -> uint32_t + i64v = i64vec2(u8v); // uint8_t -> int64_t + u64v = i64vec2(u8v); // uint8_t -> uint64_t + f16v = f16vec2(i8v); // int8_t -> float16_t + f32v = f32vec2(i8v); // int8_t -> float32_t + f64v = f64vec2(i8v); // int8_t -> float64_t + f16v = f16vec2(u8v); // uint8_t -> float16_t + f32v = f32vec2(u8v); // uint8_t -> float32_t + f64v = f64vec2(u8v); // uint8_t -> float64_t + + i8v = i8vec2(bv); // bool -> int8 + u8v = u8vec2(bv); // bool -> uint8 + bv = bvec2(i8v); // int8 -> bool + bv = bvec2(u8v); // uint8 -> bool +} + +void typeCast16() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + i32v = i16v; // int16_t -> int32_t + i32v = u16v; // uint16_t -> int32_t + u16v = i16v; // int16_t -> uint16_t + u32v = i16v; // int16_t -> uint32_t + i64v = i16v; // int16_t -> int64_t + u64v = i16v; // int16_t -> uint64_t + u32v = u16v; // uint16_t -> uint32_t + i64v = u16v; // uint16_t -> int64_t + u64v = u16v; // uint16_t -> uint64_t + f16v = i16v; // int16_t -> float16_t + f32v = i16v; // int16_t -> float32_t + f64v = i16v; // int16_t -> float64_t + f16v = u16v; // uint16_t -> float16_t + f32v = u16v; // uint16_t -> float32_t + f64v = u16v; // uint16_t -> float64_t + + i32v = i32vec2(i16v); // int16_t -> int32_t + i32v = i32vec2(u16v); // uint16_t -> int32_t + u16v = u16vec2(i16v); // int16_t -> uint16_t + u32v = u32vec2(i16v); // int16_t -> uint32_t + i64v = i64vec2(i16v); // int16_t -> int64_t + u64v = i64vec2(i16v); // int16_t -> uint64_t + u32v = u32vec2(u16v); // uint16_t -> uint32_t + i64v = i64vec2(u16v); // uint16_t -> int64_t + u64v = i64vec2(u16v); // uint16_t -> uint64_t + f16v = f16vec2(i16v); // int16_t -> float16_t + f32v = f32vec2(i16v); // int16_t -> float32_t + f64v = f64vec2(i16v); // int16_t -> float64_t + f16v = f16vec2(u16v); // uint16_t -> float16_t + f32v = f32vec2(u16v); // uint16_t -> float32_t + f64v = f64vec2(u16v); // uint16_t -> float64_t + + i8v = i8vec2(i16v); // int16_t -> int8_t + i8v = i8vec2(u16v); // uint16_t -> int8_t + u8v = u8vec2(i16v); // int16_t -> uint8_t + u8v = u8vec2(u16v); // uint16_t -> uint8_t + i16v = u8vec2(u16v); // uint16_t -> int16_t + i16v = i16vec2(bv); // bool -> int16 + u16v = u16vec2(bv); // bool -> uint16 + bv = bvec2(i16v); // int16 -> bool + bv = bvec2(u16v); // uint16 -> bool +} + +void typeCast32() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + u32v = i32v; // int32_t -> uint32_t + i64v = i32v; // int32_t -> int64_t + u64v = i32v; // int32_t -> uint64_t + i64v = u32v; // uint32_t -> int64_t + u64v = u32v; // uint32_t -> uint64_t + f32v = i32v; // int32_t -> float32_t + f64v = i32v; // int32_t -> float64_t + f32v = u32v; // uint32_t -> float32_t + f64v = u32v; // uint32_t -> float64_t + + i8v = i8vec2(i32v); // int32_t -> int8_t + i8v = i8vec2(u32v); // uint32_t -> int8_t + i16v = i16vec2(i32v); // int32_t -> int16_t + i16v = i16vec2(u32v); // uint32_t -> int16_t + i32v = i32vec2(i32v); // int32_t -> int32_t + i32v = i32vec2(u32v); // uint32_t -> int32_t + i64v = i64vec2(i32v); // int32_t -> int64_t + i64v = i64vec2(u32v); // uint32_t -> int64_t + u8v = u8vec2(i32v); // int32_t -> uint8_t + u8v = u8vec2(u32v); // uint32_t -> uint8_t + u16v = u16vec2(i32v); // int32_t -> uint16_t + u16v = u16vec2(u32v); // uint32_t -> uint16_t + u32v = u32vec2(i32v); // int32_t -> uint32_t + u32v = u32vec2(u32v); // uint32_t -> uint32_t + u64v = u64vec2(i32v); // int32_t -> uint64_t + u64v = u64vec2(u32v); // uint32_t -> uint64_t + + f16v = f16vec2(i32v); // int32_t -> float16_t + f32v = f32vec2(i32v); // int32_t -> float32_t + f64v = f64vec2(i32v); // int32_t -> float64_t + f16v = f16vec2(u32v); // uint32_t -> float16_t + f32v = f32vec2(u32v); // uint32_t -> float32_t + f64v = f64vec2(u32v); // uint32_t -> float64_t + + i32v = i32vec2(bv); // bool -> int32 + u32v = u32vec2(bv); // bool -> uint32 + bv = bvec2(i32v); // int32 -> bool + bv = bvec2(u32v); // uint32 -> bool +} + +void typeCast64() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + u64v = i64v; // int64_t -> uint64_t + f64v = i64v; // int64_t -> float64_t + f64v = u64v; // uint64_t -> float64_t + + i8v = i8vec2(i64v); // int64_t -> int8_t + i8v = i8vec2(u64v); // uint64_t -> int8_t + i16v = i16vec2(i64v); // int64_t -> int16_t + i16v = i16vec2(u64v); // uint64_t -> int16_t + i32v = i32vec2(i64v); // int64_t -> int32_t + i32v = i32vec2(u64v); // uint64_t -> int32_t + i64v = i64vec2(u64v); // uint64_t -> int64_t + u8v = u8vec2(i64v); // int64_t -> uint8_t + u8v = u8vec2(u64v); // uint64_t -> uint8_t + u16v = u16vec2(i64v); // int64_t -> uint16_t + u16v = u16vec2(u64v); // uint64_t -> uint16_t + u32v = u32vec2(i64v); // int64_t -> uint32_t + u32v = u32vec2(u64v); // uint64_t -> uint32_t + u64v = u64vec2(i64v); // int64_t -> uint64_t + u64v = u64vec2(u64v); // uint64_t -> uint64_t + + f16v = f16vec2(i64v); // int64_t -> float16_t + f32v = f32vec2(i64v); // int64_t -> float32_t + f64v = f64vec2(i64v); // int64_t -> float64_t + f16v = f16vec2(u64v); // uint64_t -> float16_t + f32v = f32vec2(u64v); // uint64_t -> float32_t + f64v = f64vec2(u64v); // uint64_t -> float64_t + + i64v = i64vec2(bv); // bool -> int64 + u64v = u64vec2(bv); // bool -> uint64 + bv = bvec2(i64v); // int64 -> bool + bv = bvec2(u64v); // uint64 -> bool +} diff --git a/deps/glslang/glslang/Test/spv.extPostDepthCoverage.frag b/deps/glslang/glslang/Test/spv.extPostDepthCoverage.frag new file mode 100644 index 0000000000..20aebc395d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.extPostDepthCoverage.frag @@ -0,0 +1,9 @@ +#version 310 es + +#extension GL_EXT_post_depth_coverage : enable + +layout(post_depth_coverage) in; +layout(early_fragment_tests) in; + +void main () { +} diff --git a/deps/glslang/glslang/Test/spv.extPostDepthCoverage_Error.frag b/deps/glslang/glslang/Test/spv.extPostDepthCoverage_Error.frag new file mode 100644 index 0000000000..25ce2e2e6c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.extPostDepthCoverage_Error.frag @@ -0,0 +1,9 @@ +#version 450 + +#extension GL_EXT_post_depth_coverage : enable + +layout(post_depth_coverage) in; // should fail since for GL_EXT_post_depth_coverage + // explicit declaration of early_fragment_tests is required + +void main () { +} diff --git a/deps/glslang/glslang/Test/spv.float16.frag b/deps/glslang/glslang/Test/spv.float16.frag new file mode 100644 index 0000000000..7c94a5151b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.float16.frag @@ -0,0 +1,306 @@ +#version 450 core + +#extension GL_AMD_gpu_shader_half_float: enable +#extension GL_ARB_gpu_shader_int64: enable + +void main() +{ +} + +// Half float literals +void literal() +{ + const float16_t f16c = 0.000001hf; + const f16vec2 f16cv = f16vec2(-0.25HF, 0.03HF); + + f16vec2 f16v; + f16v.x = f16c; + f16v += f16cv; +} + +// Block memory layout +struct S +{ + float16_t x; // rule 1: align = 2, takes offsets 0-1 + f16vec2 y; // rule 2: align = 4, takes offsets 4-7 + f16vec3 z; // rule 3: align = 8, takes offsets 8-13 +}; + +layout(column_major, std140) uniform B1 +{ + float16_t a; // rule 1: align = 2, takes offsets 0-1 + f16vec2 b; // rule 2: align = 4, takes offsets 4-7 + f16vec3 c; // rule 3: align = 8, takes offsets 8-15 + float16_t d[2]; // rule 4: align = 16, array stride = 16, + // takes offsets 16-47 + f16mat2x3 e; // rule 5: align = 16, matrix stride = 16, + // takes offsets 48-79 + f16mat2x3 f[2]; // rule 6: align = 16, matrix stride = 16, + // array stride = 32, f[0] takes + // offsets 80-111, f[1] takes offsets + // 112-143 + S g; // rule 9: align = 16, g.x takes offsets + // 144-145, g.y takes offsets 148-151, + // g.z takes offsets 152-159 + S h[2]; // rule 10: align = 16, array stride = 16, h[0] + // takes offsets 160-175, h[1] takes + // offsets 176-191 +}; + +layout(row_major, std430) buffer B2 +{ + float16_t o; // rule 1: align = 2, takes offsets 0-1 + f16vec2 p; // rule 2: align = 4, takes offsets 4-7 + f16vec3 q; // rule 3: align = 8, takes offsets 8-13 + float16_t r[2]; // rule 4: align = 2, array stride = 2, takes + // offsets 14-17 + f16mat2x3 s; // rule 7: align = 4, matrix stride = 4, takes + // offsets 20-31 + f16mat2x3 t[2]; // rule 8: align = 4, matrix stride = 4, array + // stride = 12, t[0] takes offsets + // 32-43, t[1] takes offsets 44-55 + S u; // rule 9: align = 8, u.x takes offsets + // 56-57, u.y takes offsets 60-63, u.z + // takes offsets 64-69 + S v[2]; // rule 10: align = 8, array stride = 16, v[0] + // takes offsets 72-87, v[1] takes + // offsets 88-103 +}; + +// Specialization constant +layout(constant_id = 100) const float16_t sf16 = 0.125hf; +layout(constant_id = 101) const float sf = 0.25; +layout(constant_id = 102) const double sd = 0.5lf; + +const float f16_to_f = float(sf16); +const double f16_to_d = float(sf16); + +const float16_t f_to_f16 = float16_t(sf); +const float16_t d_to_f16 = float16_t(sd); + +void operators() +{ + float16_t f16; + f16vec2 f16v; + f16mat2x2 f16m; + bool b; + + // Arithmetic + f16v += f16v; + f16v -= f16v; + f16v *= f16v; + f16v /= f16v; + f16v++; + f16v--; + ++f16m; + --f16m; + f16v = -f16v; + f16m = -f16m; + + f16 = f16v.x + f16v.y; + f16 = f16v.x - f16v.y; + f16 = f16v.x * f16v.y; + f16 = f16v.x / f16v.y; + + // Relational + b = (f16v.x != f16); + b = (f16v.y == f16); + b = (f16v.x > f16); + b = (f16v.y < f16); + b = (f16v.x >= f16); + b = (f16v.y <= f16); + + // Vector/matrix operations + f16v = f16v * f16; + f16m = f16m * f16; + f16v = f16m * f16v; + f16v = f16v * f16m; + f16m = f16m * f16m; +} + +void typeCast() +{ + bvec3 bv; + vec3 fv; + dvec3 dv; + ivec3 iv; + uvec3 uv; + i64vec3 i64v; + u64vec3 u64v; + + f16vec3 f16v; + + f16v = f16vec3(bv); // bool -> float16 + bv = bvec3(f16v); // float16 -> bool + + f16v = f16vec3(fv); // float -> float16 + fv = vec3(f16v); // float16 -> float + + f16v = f16vec3(dv); // double -> float16 + dv = dvec3(dv); // float16 -> double + + f16v = f16vec3(iv); // int -> float16 + iv = ivec3(f16v); // float16 -> int + + f16v = f16vec3(uv); // uint -> float16 + uv = uvec3(f16v); // float16 -> uint + + f16v = f16vec3(i64v); // int64 -> float16 + i64v = i64vec3(f16v); // float16 -> int64 + + f16v = f16vec3(u64v); // uint64 -> float16 + u64v = u64vec3(f16v); // float16 -> uint64 +} + +void builtinAngleTrigFuncs() +{ + f16vec4 f16v1, f16v2; + + f16v2 = radians(f16v1); + f16v2 = degrees(f16v1); + f16v2 = sin(f16v1); + f16v2 = cos(f16v1); + f16v2 = tan(f16v1); + f16v2 = asin(f16v1); + f16v2 = acos(f16v1); + f16v2 = atan(f16v1, f16v2); + f16v2 = atan(f16v1); + f16v2 = sinh(f16v1); + f16v2 = cosh(f16v1); + f16v2 = tanh(f16v1); + f16v2 = asinh(f16v1); + f16v2 = acosh(f16v1); + f16v2 = atanh(f16v1); +} + +void builtinExpFuncs() +{ + f16vec2 f16v1, f16v2; + + f16v2 = pow(f16v1, f16v2); + f16v2 = exp(f16v1); + f16v2 = log(f16v1); + f16v2 = exp2(f16v1); + f16v2 = log2(f16v1); + f16v2 = sqrt(f16v1); + f16v2 = inversesqrt(f16v1); +} + +void builtinCommonFuncs() +{ + f16vec3 f16v1, f16v2, f16v3; + float16_t f16; + bool b; + bvec3 bv; + ivec3 iv; + + f16v2 = abs(f16v1); + f16v2 = sign(f16v1); + f16v2 = floor(f16v1); + f16v2 = trunc(f16v1); + f16v2 = round(f16v1); + f16v2 = roundEven(f16v1); + f16v2 = ceil(f16v1); + f16v2 = fract(f16v1); + f16v2 = mod(f16v1, f16v2); + f16v2 = mod(f16v1, f16); + f16v3 = modf(f16v1, f16v2); + f16v3 = min(f16v1, f16v2); + f16v3 = min(f16v1, f16); + f16v3 = max(f16v1, f16v2); + f16v3 = max(f16v1, f16); + f16v3 = clamp(f16v1, f16, f16v2.x); + f16v3 = clamp(f16v1, f16v2, f16vec3(f16)); + f16v3 = mix(f16v1, f16v2, f16); + f16v3 = mix(f16v1, f16v2, f16v3); + f16v3 = mix(f16v1, f16v2, bv); + f16v3 = step(f16v1, f16v2); + f16v3 = step(f16, f16v3); + f16v3 = smoothstep(f16v1, f16v2, f16v3); + f16v3 = smoothstep(f16, f16v1.x, f16v2); + b = isnan(f16); + bv = isinf(f16v1); + f16v3 = fma(f16v1, f16v2, f16v3); + f16v2 = frexp(f16v1, iv); + f16v2 = ldexp(f16v1, iv); +} + +void builtinPackUnpackFuncs() +{ + uint u; + f16vec2 f16v; + + u = packFloat2x16(f16v); + f16v = unpackFloat2x16(u); +} + +void builtinGeometryFuncs() +{ + float16_t f16; + f16vec3 f16v1, f16v2, f16v3; + + f16 = length(f16v1); + f16 = distance(f16v1, f16v2); + f16 = dot(f16v1, f16v2); + f16v3 = cross(f16v1, f16v2); + f16v2 = normalize(f16v1); + f16v3 = faceforward(f16v1, f16v2, f16v3); + f16v3 = reflect(f16v1, f16v2); + f16v3 = refract(f16v1, f16v2, f16); +} + +void builtinMatrixFuncs() +{ + f16mat2x3 f16m1, f16m2, f16m3; + f16mat3x2 f16m4; + f16mat3 f16m5; + f16mat4 f16m6, f16m7; + + f16vec3 f16v1; + f16vec2 f16v2; + + float16_t f16; + + f16m3 = matrixCompMult(f16m1, f16m2); + f16m1 = outerProduct(f16v1, f16v2); + f16m4 = transpose(f16m1); + f16 = determinant(f16m5); + f16m6 = inverse(f16m7); +} + +void builtinVecRelFuncs() +{ + f16vec3 f16v1, f16v2; + bvec3 bv; + + bv = lessThan(f16v1, f16v2); + bv = lessThanEqual(f16v1, f16v2); + bv = greaterThan(f16v1, f16v2); + bv = greaterThanEqual(f16v1, f16v2); + bv = equal(f16v1, f16v2); + bv = notEqual(f16v1, f16v2); +} + +in f16vec3 if16v; + +void builtinFragProcFuncs() +{ + f16vec3 f16v; + + // Derivative + f16v.x = dFdx(if16v.x); + f16v.y = dFdy(if16v.y); + f16v.xy = dFdxFine(if16v.xy); + f16v.xy = dFdyFine(if16v.xy); + f16v = dFdxCoarse(if16v); + f16v = dFdxCoarse(if16v); + + f16v.x = fwidth(if16v.x); + f16v.xy = fwidthFine(if16v.xy); + f16v = fwidthCoarse(if16v); + + // Interpolation + f16v.x = interpolateAtCentroid(if16v.x); + f16v.xy = interpolateAtSample(if16v.xy, 1); + f16v = interpolateAtOffset(if16v, f16vec2(0.5hf)); +} diff --git a/deps/glslang/glslang/Test/spv.float16Fetch.frag b/deps/glslang/glslang/Test/spv.float16Fetch.frag new file mode 100644 index 0000000000..b1ba98c8a8 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.float16Fetch.frag @@ -0,0 +1,1273 @@ +#version 450 core + +#extension GL_ARB_sparse_texture2: enable +#extension GL_ARB_sparse_texture_clamp: enable +#extension GL_AMD_gpu_shader_half_float: enable +#extension GL_AMD_gpu_shader_half_float_fetch: enable +#extension GL_AMD_texture_gather_bias_lod: enable + +layout(set = 0, binding = 0) uniform f16sampler1D s1D; +layout(set = 0, binding = 1) uniform f16sampler2D s2D; +layout(set = 0, binding = 2) uniform f16sampler3D s3D; +layout(set = 0, binding = 3) uniform f16sampler2DRect s2DRect; +layout(set = 0, binding = 4) uniform f16samplerCube sCube; +layout(set = 0, binding = 5) uniform f16samplerBuffer sBuffer; +layout(set = 0, binding = 6) uniform f16sampler2DMS s2DMS; +layout(set = 0, binding = 7) uniform f16sampler1DArray s1DArray; +layout(set = 0, binding = 8) uniform f16sampler2DArray s2DArray; +layout(set = 0, binding = 9) uniform f16samplerCubeArray sCubeArray; +layout(set = 0, binding = 10) uniform f16sampler2DMSArray s2DMSArray; + +layout(set = 0, binding = 11) uniform f16sampler1DShadow s1DShadow; +layout(set = 0, binding = 12) uniform f16sampler2DShadow s2DShadow; +layout(set = 0, binding = 13) uniform f16sampler2DRectShadow s2DRectShadow; +layout(set = 0, binding = 14) uniform f16samplerCubeShadow sCubeShadow; +layout(set = 0, binding = 15) uniform f16sampler1DArrayShadow s1DArrayShadow; +layout(set = 0, binding = 16) uniform f16sampler2DArrayShadow s2DArrayShadow; +layout(set = 0, binding = 17) uniform f16samplerCubeArrayShadow sCubeArrayShadow; + +layout(set = 1, binding = 0) layout(rgba16f) uniform f16image1D i1D; +layout(set = 1, binding = 1) layout(rgba16f) uniform f16image2D i2D; +layout(set = 1, binding = 2) layout(rgba16f) uniform f16image3D i3D; +layout(set = 1, binding = 3) layout(rgba16f) uniform f16image2DRect i2DRect; +layout(set = 1, binding = 4) layout(rgba16f) uniform f16imageCube iCube; +layout(set = 1, binding = 5) layout(rgba16f) uniform f16image1DArray i1DArray; +layout(set = 1, binding = 6) layout(rgba16f) uniform f16image2DArray i2DArray; +layout(set = 1, binding = 7) layout(rgba16f) uniform f16imageCubeArray iCubeArray; +layout(set = 1, binding = 8) layout(rgba16f) uniform f16imageBuffer iBuffer; +layout(set = 1, binding = 9) layout(rgba16f) uniform f16image2DMS i2DMS; +layout(set = 1, binding = 10) layout(rgba16f) uniform f16image2DMSArray i2DMSArray; + +layout(set = 2, binding = 0) uniform f16texture1D t1D; +layout(set = 2, binding = 1) uniform f16texture2D t2D; +layout(set = 2, binding = 2) uniform f16texture3D t3D; +layout(set = 2, binding = 3) uniform f16texture2DRect t2DRect; +layout(set = 2, binding = 4) uniform f16textureCube tCube; +layout(set = 2, binding = 5) uniform f16texture1DArray t1DArray; +layout(set = 2, binding = 6) uniform f16texture2DArray t2DArray; +layout(set = 2, binding = 7) uniform f16textureCubeArray tCubeArray; +layout(set = 2, binding = 8) uniform f16textureBuffer tBuffer; +layout(set = 2, binding = 9) uniform f16texture2DMS t2DMS; +layout(set = 2, binding = 10) uniform f16texture2DMSArray t2DMSArray; + +layout(set = 2, binding = 11) uniform sampler s; +layout(set = 2, binding = 12) uniform samplerShadow sShadow; + +layout(set = 3, binding = 0, input_attachment_index = 0) uniform f16subpassInput subpass; +layout(set = 3, binding = 1, input_attachment_index = 0) uniform f16subpassInputMS subpassMS; + +layout(location = 0) in float c1; +layout(location = 1) in vec2 c2; +layout(location = 2) in vec3 c3; +layout(location = 3) in vec4 c4; + +layout(location = 4) in float compare; +layout(location = 5) in float lod; +layout(location = 6) in float bias; +layout(location = 7) in float lodClamp; + +layout(location = 8) in float dPdxy1; +layout(location = 9) in vec2 dPdxy2; +layout(location = 10) in vec3 dPdxy3; + +layout(location = 11) in float16_t f16c1; +layout(location = 12) in f16vec2 f16c2; +layout(location = 13) in f16vec3 f16c3; +layout(location = 14) in f16vec4 f16c4; + +layout(location = 15) in float16_t f16lod; +layout(location = 16) in float16_t f16bias; +layout(location = 17) in float16_t f16lodClamp; + +layout(location = 18) in float16_t f16dPdxy1; +layout(location = 19) in f16vec2 f16dPdxy2; +layout(location = 20) in f16vec3 f16dPdxy3; + +const int offset1 = 1; +const ivec2 offset2 = ivec2(1); +const ivec3 offset3 = ivec3(1); +const ivec2 offsets[4] = { offset2, offset2, offset2, offset2 }; + +layout(location = 0) out vec4 fragColor; + +f16vec4 testTexture() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += texture(s1D, c1); + texel += texture(s1D, f16c1, f16bias); + texel += texture(s2D, c2); + texel += texture(s2D, f16c2, f16bias); + texel += texture(s3D, c3); + texel += texture(s3D, f16c3, f16bias); + texel += texture(sCube, c3); + texel += texture(sCube, f16c3, f16bias); + texel.x += texture(s1DShadow, c3); + texel.x += texture(s1DShadow, f16c2, compare, f16bias); + texel.x += texture(s2DShadow, c3); + texel.x += texture(s2DShadow, f16c2, compare, f16bias); + texel.x += texture(sCubeShadow, c4); + texel.x += texture(sCubeShadow, f16c3, compare, f16bias); + texel += texture(s1DArray, c2); + texel += texture(s1DArray, f16c2, f16bias); + texel += texture(s2DArray, c3); + texel += texture(s2DArray, f16c3, f16bias); + texel += texture(sCubeArray, c4); + texel += texture(sCubeArray, f16c4, f16bias); + texel.x += texture(s1DArrayShadow, c3); + texel.x += texture(s1DArrayShadow, f16c2, compare, f16bias); + texel.x += texture(s2DArrayShadow, c4); + texel.x += texture(s2DArrayShadow, f16c3, compare); + texel += texture(s2DRect, c2); + texel += texture(s2DRect, f16c2); + texel.x += texture(s2DRectShadow, c3); + texel.x += texture(s2DRectShadow, f16c2, compare); + texel.x += texture(sCubeArrayShadow, c4, compare); + texel.x += texture(sCubeArrayShadow, f16c4, compare); + + return texel; +} + +f16vec4 testTextureProj() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureProj(s1D, c2); + texel += textureProj(s1D, f16c2, f16bias); + texel += textureProj(s1D, c4); + texel += textureProj(s1D, f16c4, f16bias); + texel += textureProj(s2D, c3); + texel += textureProj(s2D, f16c3, f16bias); + texel += textureProj(s2D, c4); + texel += textureProj(s2D, f16c4, f16bias); + texel += textureProj(s3D, c4); + texel += textureProj(s3D, f16c4, f16bias); + texel.x += textureProj(s1DShadow, c4); + texel.x += textureProj(s1DShadow, f16c3, compare, f16bias); + texel.x += textureProj(s2DShadow, c4); + texel.x += textureProj(s2DShadow, f16c3, compare, f16bias); + texel += textureProj(s2DRect, c3); + texel += textureProj(s2DRect, f16c3); + texel += textureProj(s2DRect, c4); + texel += textureProj(s2DRect, f16c4); + texel.x += textureProj(s2DRectShadow, c4); + texel.x += textureProj(s2DRectShadow, f16c3, compare); + + return texel; +} + +f16vec4 testTextureLod() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureLod(s1D, c1, lod); + texel += textureLod(s1D, f16c1, f16lod); + texel += textureLod(s2D, c2, lod); + texel += textureLod(s2D, f16c2, f16lod); + texel += textureLod(s3D, c3, lod); + texel += textureLod(s3D, f16c3, f16lod); + texel += textureLod(sCube, c3, lod); + texel += textureLod(sCube, f16c3, f16lod); + texel.x += textureLod(s1DShadow, c3, lod); + texel.x += textureLod(s1DShadow, f16c2, compare, f16lod); + texel.x += textureLod(s2DShadow, c3, lod); + texel.x += textureLod(s2DShadow, f16c2, compare, f16lod); + texel += textureLod(s1DArray, c2, lod); + texel += textureLod(s1DArray, f16c2, f16lod); + texel += textureLod(s2DArray, c3, lod); + texel += textureLod(s2DArray, f16c3, f16lod); + texel.x += textureLod(s1DArrayShadow, c3, lod); + texel.x += textureLod(s1DArrayShadow, f16c2, compare, f16lod); + texel += textureLod(sCubeArray, c4, lod); + texel += textureLod(sCubeArray, f16c4, f16lod); + + return texel; +} + +f16vec4 testTextureOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureOffset(s1D, c1, offset1); + texel += textureOffset(s1D, f16c1, offset1, f16bias); + texel += textureOffset(s2D, c2, offset2); + texel += textureOffset(s2D, f16c2, offset2, f16bias); + texel += textureOffset(s3D, c3, offset3); + texel += textureOffset(s3D, f16c3, offset3, f16bias); + texel += textureOffset(s2DRect, c2, offset2); + texel += textureOffset(s2DRect, f16c2, offset2); + texel.x += textureOffset(s2DRectShadow, c3, offset2); + texel.x += textureOffset(s2DRectShadow, f16c2, compare, offset2); + texel.x += textureOffset(s1DShadow, c3, offset1); + texel.x += textureOffset(s1DShadow, f16c2, compare, offset1, f16bias); + texel.x += textureOffset(s2DShadow, c3, offset2); + texel.x += textureOffset(s2DShadow, f16c2, compare, offset2, f16bias); + texel += textureOffset(s1DArray, c2, offset1); + texel += textureOffset(s1DArray, f16c2, offset1, f16bias); + texel += textureOffset(s2DArray, c3, offset2); + texel += textureOffset(s2DArray, f16c3, offset2, f16bias); + texel.x += textureOffset(s1DArrayShadow, c3, offset1); + texel.x += textureOffset(s1DArrayShadow, f16c2, compare, offset1, f16bias); + texel.x += textureOffset(s2DArrayShadow, c4, offset2); + texel.x += textureOffset(s2DArrayShadow, f16c3, compare, offset2); + + return texel; +} + +f16vec4 testTextureProjOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureProjOffset(s1D, c2, offset1); + texel += textureProjOffset(s1D, f16c2, offset1, f16bias); + texel += textureProjOffset(s1D, c4, offset1); + texel += textureProjOffset(s1D, f16c4, offset1, f16bias); + texel += textureProjOffset(s2D, c3, offset2); + texel += textureProjOffset(s2D, f16c3, offset2, f16bias); + texel += textureProjOffset(s2D, c4, offset2); + texel += textureProjOffset(s2D, f16c4, offset2, f16bias); + texel += textureProjOffset(s3D, c4, offset3); + texel += textureProjOffset(s3D, f16c4, offset3, f16bias); + texel += textureProjOffset(s2DRect, c3, offset2); + texel += textureProjOffset(s2DRect, f16c3, offset2); + texel += textureProjOffset(s2DRect, c4, offset2); + texel += textureProjOffset(s2DRect, f16c4, offset2); + texel.x += textureProjOffset(s2DRectShadow, c4, offset2); + texel.x += textureProjOffset(s2DRectShadow, f16c3, compare, offset2); + texel.x += textureProjOffset(s1DShadow, c4, offset1); + texel.x += textureProjOffset(s1DShadow, f16c3, compare, offset1, f16bias); + texel.x += textureProjOffset(s2DShadow, c4, offset2); + texel.x += textureProjOffset(s2DShadow, f16c3, compare, offset2, f16bias); + + return texel; +} + +f16vec4 testTextureLodOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureLodOffset(s1D, c1, lod, offset1); + texel += textureLodOffset(s1D, f16c1, f16lod, offset1); + texel += textureLodOffset(s2D, c2, lod, offset2); + texel += textureLodOffset(s2D, f16c2, f16lod, offset2); + texel += textureLodOffset(s3D, c3, lod, offset3); + texel += textureLodOffset(s3D, f16c3, f16lod, offset3); + texel.x += textureLodOffset(s1DShadow, c3, lod, offset1); + texel.x += textureLodOffset(s1DShadow, f16c2, compare, f16lod, offset1); + texel.x += textureLodOffset(s2DShadow, c3, lod, offset2); + texel.x += textureLodOffset(s2DShadow, f16c2, compare, f16lod, offset2); + texel += textureLodOffset(s1DArray, c2, lod, offset1); + texel += textureLodOffset(s1DArray, f16c2, f16lod, offset1); + texel += textureLodOffset(s2DArray, c3, lod, offset2); + texel += textureLodOffset(s2DArray, f16c3, f16lod, offset2); + texel.x += textureLodOffset(s1DArrayShadow, c3, lod, offset1); + texel.x += textureLodOffset(s1DArrayShadow, f16c2, compare, f16lod, offset1); + + return texel; +} + +f16vec4 testTextureProjLodOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureProjLodOffset(s1D, c2, lod, offset1); + texel += textureProjLodOffset(s1D, f16c2, f16lod, offset1); + texel += textureProjLodOffset(s1D, c4, lod, offset1); + texel += textureProjLodOffset(s1D, f16c4, f16lod, offset1); + texel += textureProjLodOffset(s2D, c3, lod, offset2); + texel += textureProjLodOffset(s2D, f16c3, f16lod, offset2); + texel += textureProjLodOffset(s2D, c4, lod, offset2); + texel += textureProjLodOffset(s2D, f16c4, f16lod, offset2); + texel += textureProjLodOffset(s3D, c4, lod, offset3); + texel += textureProjLodOffset(s3D, f16c4, f16lod, offset3); + texel.x += textureProjLodOffset(s1DShadow, c4, lod, offset1); + texel.x += textureProjLodOffset(s1DShadow, f16c3, compare, f16lod, offset1); + texel.x += textureProjLodOffset(s2DShadow, c4, lod, offset2); + texel.x += textureProjLodOffset(s2DShadow, f16c3, compare, f16lod, offset2); + + return texel; +} + +f16vec4 testTexelFetch() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += texelFetch(s1D, int(c1), int(lod)); + texel += texelFetch(s2D, ivec2(c2), int(lod)); + texel += texelFetch(s3D, ivec3(c3), int(lod)); + texel += texelFetch(s2DRect, ivec2(c2)); + texel += texelFetch(s1DArray, ivec2(c2), int(lod)); + texel += texelFetch(s2DArray, ivec3(c3), int(lod)); + texel += texelFetch(sBuffer, int(c1)); + texel += texelFetch(s2DMS, ivec2(c2), 1); + texel += texelFetch(s2DMSArray, ivec3(c3), 2); + + return texel; +} + +f16vec4 testTexelFetchOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += texelFetchOffset(s1D, int(c1), int(lod), offset1); + texel += texelFetchOffset(s2D, ivec2(c2), int(lod), offset2); + texel += texelFetchOffset(s3D, ivec3(c3), int(lod), offset3); + texel += texelFetchOffset(s2DRect, ivec2(c2), offset2); + texel += texelFetchOffset(s1DArray, ivec2(c2), int(lod), offset1); + texel += texelFetchOffset(s2DArray, ivec3(c3), int(lod), offset2); + + return texel; +} + +f16vec4 testTextureGrad() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGrad(s1D, c1, dPdxy1, dPdxy1); + texel += textureGrad(s1D, f16c1, f16dPdxy1, f16dPdxy1); + texel += textureGrad(s2D, c2, dPdxy2, dPdxy2); + texel += textureGrad(s2D, f16c2, f16dPdxy2, f16dPdxy2); + texel += textureGrad(s3D, c3, dPdxy3, dPdxy3); + texel += textureGrad(s3D, f16c3, f16dPdxy3, f16dPdxy3); + texel += textureGrad(sCube, c3, dPdxy3, dPdxy3); + texel += textureGrad(sCube, f16c3, f16dPdxy3, f16dPdxy3); + texel += textureGrad(s2DRect, c2, dPdxy2, dPdxy2); + texel += textureGrad(s2DRect, f16c2, f16dPdxy2, f16dPdxy2); + texel.x += textureGrad(s2DRectShadow, c3, dPdxy2, dPdxy2); + texel.x += textureGrad(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2); + texel.x += textureGrad(s1DShadow, c3, dPdxy1, dPdxy1); + texel.x += textureGrad(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1); + texel.x += textureGrad(s2DShadow, c3, dPdxy2, dPdxy2); + texel.x += textureGrad(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2); + texel.x += textureGrad(sCubeShadow, c4, dPdxy3, dPdxy3); + texel.x += textureGrad(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3); + texel += textureGrad(s1DArray, c2, dPdxy1, dPdxy1); + texel += textureGrad(s1DArray, f16c2, f16dPdxy1, f16dPdxy1); + texel += textureGrad(s2DArray, c3, dPdxy2, dPdxy2); + texel += textureGrad(s2DArray, f16c3, f16dPdxy2, f16dPdxy2); + texel.x += textureGrad(s1DArrayShadow, c3, dPdxy1, dPdxy1); + texel.x += textureGrad(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1); + texel.x += textureGrad(s2DArrayShadow, c4, dPdxy2, dPdxy2); + texel.x += textureGrad(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); + texel += textureGrad(sCubeArray, c4, dPdxy3, dPdxy3); + texel += textureGrad(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3); + + return texel; +} + +f16vec4 testTextureGradOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGradOffset(s1D, c1, dPdxy1, dPdxy1, offset1); + texel += textureGradOffset(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1); + texel += textureGradOffset(s2D, c2, dPdxy2, dPdxy2, offset2); + texel += textureGradOffset(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2); + texel += textureGradOffset(s3D, c3, dPdxy3, dPdxy3, offset3); + texel += textureGradOffset(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3); + texel += textureGradOffset(s2DRect, c2, dPdxy2, dPdxy2, offset2); + texel += textureGradOffset(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2); + texel.x += textureGradOffset(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2); + texel.x += textureGradOffset(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2); + texel.x += textureGradOffset(s1DShadow, c3, dPdxy1, dPdxy1, offset1); + texel.x += textureGradOffset(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1); + texel.x += textureGradOffset(s2DShadow, c3, dPdxy2, dPdxy2, offset2); + texel.x += textureGradOffset(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2); + texel += textureGradOffset(s1DArray, c2, dPdxy1, dPdxy1, offset1); + texel += textureGradOffset(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1); + texel += textureGradOffset(s2DArray, c3, dPdxy2, dPdxy2, offset2); + texel += textureGradOffset(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2); + texel.x += textureGradOffset(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1); + texel.x += textureGradOffset(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1); + texel.x += textureGradOffset(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2); + texel.x += textureGradOffset(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); + + return texel; +} + +f16vec4 testTextureProjGrad() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureProjGrad(s1D, c2, dPdxy1, dPdxy1); + texel += textureProjGrad(s1D, f16c2, f16dPdxy1, f16dPdxy1); + texel += textureProjGrad(s1D, c4, dPdxy1, dPdxy1); + texel += textureProjGrad(s1D, f16c4, f16dPdxy1, f16dPdxy1); + texel += textureProjGrad(s2D, c3, dPdxy2, dPdxy2); + texel += textureProjGrad(s2D, f16c3, f16dPdxy2, f16dPdxy2); + texel += textureProjGrad(s2D, c4, dPdxy2, dPdxy2); + texel += textureProjGrad(s2D, f16c4, f16dPdxy2, f16dPdxy2); + texel += textureProjGrad(s3D, c4, dPdxy3, dPdxy3); + texel += textureProjGrad(s3D, f16c4, f16dPdxy3, f16dPdxy3); + texel += textureProjGrad(s2DRect, c3, dPdxy2, dPdxy2); + texel += textureProjGrad(s2DRect, f16c3, f16dPdxy2, f16dPdxy2); + texel += textureProjGrad(s2DRect, c4, dPdxy2, dPdxy2); + texel += textureProjGrad(s2DRect, f16c4, f16dPdxy2, f16dPdxy2); + texel.x += textureProjGrad(s2DRectShadow, c4, dPdxy2, dPdxy2); + texel.x += textureProjGrad(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); + texel.x += textureProjGrad(s1DShadow, c4, dPdxy1, dPdxy1); + texel.x += textureProjGrad(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1); + texel.x += textureProjGrad(s2DShadow, c4, dPdxy2, dPdxy2); + texel.x += textureProjGrad(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); + + return texel; +} + +f16vec4 testTextureProjGradoffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureProjGradOffset(s1D, c2, dPdxy1, dPdxy1, offset1); + texel += textureProjGradOffset(s1D, f16c2, f16dPdxy1, f16dPdxy1, offset1); + texel += textureProjGradOffset(s1D, c4, dPdxy1, dPdxy1, offset1); + texel += textureProjGradOffset(s1D, f16c4, f16dPdxy1, f16dPdxy1, offset1); + texel += textureProjGradOffset(s2D, c3, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2D, f16c3, f16dPdxy2, f16dPdxy2, offset2); + texel += textureProjGradOffset(s2D, c4, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2D, f16c4, f16dPdxy2, f16dPdxy2, offset2); + texel += textureProjGradOffset(s2DRect, c3, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2DRect, f16c3, f16dPdxy2, f16dPdxy2, offset2); + texel += textureProjGradOffset(s2DRect, c4, dPdxy2, dPdxy2, offset2); + texel += textureProjGradOffset(s2DRect, f16c4, f16dPdxy2, f16dPdxy2, offset2); + texel.x += textureProjGradOffset(s2DRectShadow, c4, dPdxy2, dPdxy2, offset2); + texel.x += textureProjGradOffset(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); + texel += textureProjGradOffset(s3D, c4, dPdxy3, dPdxy3, offset3); + texel += textureProjGradOffset(s3D, f16c4, f16dPdxy3, f16dPdxy3, offset3); + texel.x += textureProjGradOffset(s1DShadow, c4, dPdxy1, dPdxy1, offset1); + texel.x += textureProjGradOffset(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1, offset1); + texel.x += textureProjGradOffset(s2DShadow, c4, dPdxy2, dPdxy2, offset2); + texel.x += textureProjGradOffset(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); + + return texel; +} + +f16vec4 testTextureGather() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGather(s2D, c2, 0); + texel += textureGather(s2D, f16c2, 0, f16bias); + texel += textureGather(s2DArray, c3, 0); + texel += textureGather(s2DArray, f16c3, 0, f16bias); + texel += textureGather(sCube, c3, 0); + texel += textureGather(sCube, f16c3, 0, f16bias); + texel += textureGather(sCubeArray, c4, 0); + texel += textureGather(sCubeArray, f16c4, 0, f16bias); + texel += textureGather(s2DRect, c2, 0); + texel += textureGather(s2DRect, f16c2, 0); + texel += textureGather(s2DShadow, c2, compare); + texel += textureGather(s2DShadow, f16c2, compare); + texel += textureGather(s2DArrayShadow, c3, compare); + texel += textureGather(s2DArrayShadow, f16c3, compare); + texel += textureGather(sCubeShadow, c3, compare); + texel += textureGather(sCubeShadow, f16c3, compare); + texel += textureGather(sCubeArrayShadow, c4, compare); + texel += textureGather(sCubeArrayShadow, f16c4, compare); + texel += textureGather(s2DRectShadow, c2, compare); + texel += textureGather(s2DRectShadow, f16c2, compare); + + return texel; +} + +f16vec4 testTextureGatherOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGatherOffset(s2D, c2, offset2, 0); + texel += textureGatherOffset(s2D, f16c2, offset2, 0, f16bias); + texel += textureGatherOffset(s2DArray, c3, offset2, 0); + texel += textureGatherOffset(s2DArray, f16c3, offset2, 0, f16bias); + texel += textureGatherOffset(s2DRect, c2, offset2, 0); + texel += textureGatherOffset(s2DRect, f16c2, offset2, 0); + texel += textureGatherOffset(s2DShadow, c2, compare, offset2); + texel += textureGatherOffset(s2DShadow, f16c2, compare, offset2); + texel += textureGatherOffset(s2DArrayShadow, c3, compare, offset2); + texel += textureGatherOffset(s2DArrayShadow, f16c3, compare, offset2); + texel += textureGatherOffset(s2DRectShadow, c2, compare, offset2); + texel += textureGatherOffset(s2DRectShadow, f16c2, compare, offset2); + + return texel; +} + +f16vec4 testTextureGatherOffsets() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGatherOffsets(s2D, c2, offsets, 0); + texel += textureGatherOffsets(s2D, f16c2, offsets, 0, f16bias); + texel += textureGatherOffsets(s2DArray, c3, offsets, 0); + texel += textureGatherOffsets(s2DArray, f16c3, offsets, 0, f16bias); + texel += textureGatherOffsets(s2DRect, c2, offsets, 0); + texel += textureGatherOffsets(s2DRect, f16c2, offsets, 0); + texel += textureGatherOffsets(s2DShadow, c2, compare, offsets); + texel += textureGatherOffsets(s2DShadow, f16c2, compare, offsets); + texel += textureGatherOffsets(s2DArrayShadow, c3, compare, offsets); + texel += textureGatherOffsets(s2DArrayShadow, f16c3, compare, offsets); + texel += textureGatherOffsets(s2DRectShadow, c2, compare, offsets); + texel += textureGatherOffsets(s2DRectShadow, f16c2, compare, offsets); + + return texel; +} + +f16vec4 testTextureGatherLod() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGatherLodAMD(s2D, c2, lod, 0); + texel += textureGatherLodAMD(s2D, f16c2, f16lod, 0); + texel += textureGatherLodAMD(s2DArray, c3, lod, 0); + texel += textureGatherLodAMD(s2DArray, f16c3, f16lod, 0); + texel += textureGatherLodAMD(sCube, c3, lod, 0); + texel += textureGatherLodAMD(sCube, f16c3, f16lod, 0); + texel += textureGatherLodAMD(sCubeArray, c4, lod, 0); + texel += textureGatherLodAMD(sCubeArray, f16c4, f16lod, 0); + + return texel; +} + +f16vec4 testTextureGatherLodOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGatherLodOffsetAMD(s2D, c2, lod, offset2, 0); + texel += textureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, 0); + texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, 0); + texel += textureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, 0); + + return texel; +} + +f16vec4 testTextureGatherLodOffsets() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets, 0); + texel += textureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, 0); + texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 0); + texel += textureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, 0); + + return texel; +} + +ivec4 testTextureSize() +{ + ivec4 size = ivec4(0); + + size.x += textureSize(s1D, int(lod)); + size.xy += textureSize(s2D, int(lod)); + size.xyz += textureSize(s3D, int(lod)); + size.xy += textureSize(sCube, int(lod)); + size.x += textureSize(s1DShadow, int(lod)); + size.xy += textureSize(s2DShadow, int(lod)); + size.xy += textureSize(sCubeShadow, int(lod)); + size.xyz += textureSize(sCubeArray, int(lod)); + size.xyz += textureSize(sCubeArrayShadow, int(lod)); + size.xy += textureSize(s2DRect); + size.xy += textureSize(s2DRectShadow); + size.xy += textureSize(s1DArray, int(lod)); + size.xyz += textureSize(s2DArray, int(lod)); + size.xy += textureSize(s1DArrayShadow, int(lod)); + size.xyz += textureSize(s2DArrayShadow, int(lod)); + size.x += textureSize(sBuffer); + size.xy += textureSize(s2DMS); + size.xyz += textureSize(s2DMSArray); + + return size; +} + +vec2 testTextureQueryLod() +{ + vec2 lod = vec2(0.0); + + lod += textureQueryLod(s1D, c1); + lod += textureQueryLod(s1D, f16c1); + lod += textureQueryLod(s2D, c2); + lod += textureQueryLod(s2D, f16c2); + lod += textureQueryLod(s3D, c3); + lod += textureQueryLod(s3D, f16c3); + lod += textureQueryLod(sCube, c3); + lod += textureQueryLod(sCube, f16c3); + lod += textureQueryLod(s1DArray, c1); + lod += textureQueryLod(s1DArray, f16c1); + lod += textureQueryLod(s2DArray, c2); + lod += textureQueryLod(s2DArray, f16c2); + lod += textureQueryLod(sCubeArray, c3); + lod += textureQueryLod(sCubeArray, f16c3); + lod += textureQueryLod(s1DShadow, c1); + lod += textureQueryLod(s1DShadow, f16c1); + lod += textureQueryLod(s2DShadow, c2); + lod += textureQueryLod(s2DShadow, f16c2); + lod += textureQueryLod(sCubeArrayShadow, c3); + lod += textureQueryLod(sCubeArrayShadow, f16c3); + lod += textureQueryLod(s1DArrayShadow, c1); + lod += textureQueryLod(s1DArrayShadow, f16c1); + lod += textureQueryLod(s2DArrayShadow, c2); + lod += textureQueryLod(s2DArrayShadow, f16c2); + lod += textureQueryLod(sCubeArrayShadow, c3); + lod += textureQueryLod(sCubeArrayShadow, f16c3); + + return lod; +} + +int testTextureQueryLevels() +{ + int levels = 0; + + levels += textureQueryLevels(s1D); + levels += textureQueryLevels(s2D); + levels += textureQueryLevels(s3D); + levels += textureQueryLevels(sCube); + levels += textureQueryLevels(s1DShadow); + levels += textureQueryLevels(s2DShadow); + levels += textureQueryLevels(sCubeShadow); + levels += textureQueryLevels(sCubeArray); + levels += textureQueryLevels(sCubeArrayShadow); + levels += textureQueryLevels(s1DArray); + levels += textureQueryLevels(s2DArray); + levels += textureQueryLevels(s1DArrayShadow); + levels += textureQueryLevels(s2DArrayShadow); + + return levels; +} + +int testTextureSamples() +{ + int samples = 0; + + samples += textureSamples(s2DMS); + samples += textureSamples(s2DMSArray); + + return samples; +} + +f16vec4 testImageLoad() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += imageLoad(i1D, int(c1)); + texel += imageLoad(i2D, ivec2(c2)); + texel += imageLoad(i3D, ivec3(c3)); + texel += imageLoad(i2DRect, ivec2(c2)); + texel += imageLoad(iCube, ivec3(c3)); + texel += imageLoad(iBuffer, int(c1)); + texel += imageLoad(i1DArray, ivec2(c2)); + texel += imageLoad(i2DArray, ivec3(c3)); + texel += imageLoad(iCubeArray, ivec3(c3)); + texel += imageLoad(i2DMS, ivec2(c2), 1); + texel += imageLoad(i2DMSArray, ivec3(c3), 1); + + return texel; +} + +void testImageStore(f16vec4 data) +{ + imageStore(i1D, int(c1), data); + imageStore(i2D, ivec2(c2), data); + imageStore(i3D, ivec3(c3), data); + imageStore(i2DRect, ivec2(c2), data); + imageStore(iCube, ivec3(c3), data); + imageStore(iBuffer, int(c1), data); + imageStore(i1DArray, ivec2(c2), data); + imageStore(i2DArray, ivec3(c3), data); + imageStore(iCubeArray, ivec3(c3), data); + imageStore(i2DMS, ivec2(c2), 1, data); + imageStore(i2DMSArray, ivec3(c3), 1, data); +} + +f16vec4 testSparseTexture() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureARB(s2D, c2, texel); + sparseTextureARB(s2D, f16c2, texel, f16bias); + sparseTextureARB(s3D, c3, texel); + sparseTextureARB(s3D, f16c3, texel, f16bias); + sparseTextureARB(sCube, c3, texel); + sparseTextureARB(sCube, f16c3, texel, f16bias); + sparseTextureARB(s2DShadow, c3, texel.x); + sparseTextureARB(s2DShadow, f16c2, compare, texel.x, f16bias); + sparseTextureARB(sCubeShadow, c4, texel.x); + sparseTextureARB(sCubeShadow, f16c3, compare, texel.x, f16bias); + sparseTextureARB(s2DArray, c3, texel); + sparseTextureARB(s2DArray, f16c3, texel, f16bias); + sparseTextureARB(sCubeArray, c4, texel); + sparseTextureARB(sCubeArray, f16c4, texel, f16bias); + sparseTextureARB(s2DArrayShadow, c4, texel.x); + sparseTextureARB(s2DArrayShadow, f16c3, compare, texel.x); + sparseTextureARB(s2DRect, c2, texel); + sparseTextureARB(s2DRect, f16c2, texel); + sparseTextureARB(s2DRectShadow, c3, texel.x); + sparseTextureARB(s2DRectShadow, f16c2, compare, texel.x); + sparseTextureARB(sCubeArrayShadow, c4, compare, texel.x); + sparseTextureARB(sCubeArrayShadow, f16c4, compare, texel.x); + + return texel; +} + +f16vec4 testSparseTextureLod() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureLodARB(s2D, c2, lod, texel); + sparseTextureLodARB(s2D, f16c2, f16lod, texel); + sparseTextureLodARB(s3D, c3, lod, texel); + sparseTextureLodARB(s3D, f16c3, f16lod, texel); + sparseTextureLodARB(sCube, c3, lod, texel); + sparseTextureLodARB(sCube, f16c3, f16lod, texel); + sparseTextureLodARB(s2DShadow, c3, lod, texel.x); + sparseTextureLodARB(s2DShadow, f16c2, compare, f16lod, texel.x); + sparseTextureLodARB(s2DArray, c3, lod, texel); + sparseTextureLodARB(s2DArray, f16c3, f16lod, texel); + sparseTextureLodARB(sCubeArray, c4, lod, texel); + sparseTextureLodARB(sCubeArray, f16c4, f16lod, texel); + + return texel; +} + +f16vec4 testSparseTextureOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureOffsetARB(s2D, c2, offset2, texel); + sparseTextureOffsetARB(s2D, f16c2, offset2, texel, f16bias); + sparseTextureOffsetARB(s3D, c3, offset3, texel); + sparseTextureOffsetARB(s3D, f16c3, offset3, texel, f16bias); + sparseTextureOffsetARB(s2DRect, c2, offset2, texel); + sparseTextureOffsetARB(s2DRect, f16c2, offset2, texel); + sparseTextureOffsetARB(s2DRectShadow, c3, offset2, texel.x); + sparseTextureOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel.x); + sparseTextureOffsetARB(s2DShadow, c3, offset2, texel.x); + sparseTextureOffsetARB(s2DShadow, f16c2, compare, offset2, texel.x, f16bias); + sparseTextureOffsetARB(s2DArray, c3, offset2, texel); + sparseTextureOffsetARB(s2DArray, f16c3, offset2, texel, f16bias); + sparseTextureOffsetARB(s2DArrayShadow, c4, offset2, texel.x); + sparseTextureOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel.x); + + return texel; +} + +f16vec4 testSparseTextureLodOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureLodOffsetARB(s2D, c2, lod, offset2, texel); + sparseTextureLodOffsetARB(s2D, f16c2, f16lod, offset2, texel); + sparseTextureLodOffsetARB(s3D, c3, lod, offset3, texel); + sparseTextureLodOffsetARB(s3D, f16c3, f16lod, offset3, texel); + sparseTextureLodOffsetARB(s2DShadow, c3, lod, offset2, texel.x); + sparseTextureLodOffsetARB(s2DShadow, f16c2, compare, f16lod, offset2, texel.x); + sparseTextureLodOffsetARB(s2DArray, c3, lod, offset2, texel); + sparseTextureLodOffsetARB(s2DArray, f16c3, f16lod, offset2, texel); + + return texel; +} + +f16vec4 testSparseTextureGrad() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGradARB(s2D, c2, dPdxy2, dPdxy2, texel); + sparseTextureGradARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, texel); + sparseTextureGradARB(s3D, c3, dPdxy3, dPdxy3, texel); + sparseTextureGradARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, texel); + sparseTextureGradARB(sCube, c3, dPdxy3, dPdxy3, texel); + sparseTextureGradARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, texel); + sparseTextureGradARB(s2DRect, c2, dPdxy2, dPdxy2, texel); + sparseTextureGradARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, texel); + sparseTextureGradARB(s2DRectShadow, c3, dPdxy2, dPdxy2, texel.x); + sparseTextureGradARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x); + sparseTextureGradARB(s2DShadow, c3, dPdxy2, dPdxy2, texel.x); + sparseTextureGradARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x); + sparseTextureGradARB(sCubeShadow, c4, dPdxy3, dPdxy3, texel.x); + sparseTextureGradARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, texel.x); + sparseTextureGradARB(s2DArray, c3, dPdxy2, dPdxy2, texel); + sparseTextureGradARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, texel); + sparseTextureGradARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, texel.x); + sparseTextureGradARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, texel.x); + sparseTextureGradARB(sCubeArray, c4, dPdxy3, dPdxy3, texel); + sparseTextureGradARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, texel); + + return texel; +} + +f16vec4 testSparseTextureGradOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGradOffsetARB(s2D, c2, dPdxy2, dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s3D, c3, dPdxy3, dPdxy3, offset3, texel); + sparseTextureGradOffsetARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, texel); + sparseTextureGradOffsetARB(s2DRect, c2, dPdxy2, dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, texel); + sparseTextureGradOffsetARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, texel.x); + sparseTextureGradOffsetARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); + + return texel; +} + +f16vec4 testSparseTexelFetch() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTexelFetchARB(s2D, ivec2(c2), int(lod), texel); + sparseTexelFetchARB(s3D, ivec3(c3), int(lod), texel); + sparseTexelFetchARB(s2DRect, ivec2(c2), texel); + sparseTexelFetchARB(s2DArray, ivec3(c3), int(lod), texel); + sparseTexelFetchARB(s2DMS, ivec2(c2), 1, texel); + sparseTexelFetchARB(s2DMSArray, ivec3(c3), 2, texel); + + return texel; +} + +f16vec4 testSparseTexelFetchOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTexelFetchOffsetARB(s2D, ivec2(c2), int(lod), offset2, texel); + sparseTexelFetchOffsetARB(s3D, ivec3(c3), int(lod), offset3, texel); + sparseTexelFetchOffsetARB(s2DRect, ivec2(c2), offset2, texel); + sparseTexelFetchOffsetARB(s2DArray, ivec3(c3), int(lod), offset2, texel); + + return texel; +} + +f16vec4 testSparseTextureGather() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGatherARB(s2D, c2, texel, 0); + sparseTextureGatherARB(s2D, f16c2, texel, 0, f16bias); + sparseTextureGatherARB(s2DArray, c3, texel, 0); + sparseTextureGatherARB(s2DArray, f16c3, texel, 0, f16bias); + sparseTextureGatherARB(sCube, c3, texel, 0); + sparseTextureGatherARB(sCube, f16c3, texel, 0, f16bias); + sparseTextureGatherARB(sCubeArray, c4, texel, 0); + sparseTextureGatherARB(sCubeArray, f16c4, texel, 0, f16bias); + sparseTextureGatherARB(s2DRect, c2, texel, 0); + sparseTextureGatherARB(s2DRect, f16c2, texel, 0); + sparseTextureGatherARB(s2DShadow, c2, compare, texel); + sparseTextureGatherARB(s2DShadow, f16c2, compare, texel); + sparseTextureGatherARB(s2DArrayShadow, c3, compare, texel); + sparseTextureGatherARB(s2DArrayShadow, f16c3, compare, texel); + sparseTextureGatherARB(sCubeShadow, c3, compare, texel); + sparseTextureGatherARB(sCubeShadow, f16c3, compare, texel); + sparseTextureGatherARB(sCubeArrayShadow, c4, compare, texel); + sparseTextureGatherARB(sCubeArrayShadow, f16c4, compare, texel); + sparseTextureGatherARB(s2DRectShadow, c2, compare, texel); + sparseTextureGatherARB(s2DRectShadow, f16c2, compare, texel); + + return texel; +} + +f16vec4 testSparseTextureGatherOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGatherOffsetARB(s2D, c2, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2D, f16c2, offset2, texel, 0, f16bias); + sparseTextureGatherOffsetARB(s2DArray, c3, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2DArray, f16c3, offset2, texel, 0, f16bias); + sparseTextureGatherOffsetARB(s2DRect, c2, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2DRect, f16c2, offset2, texel, 0); + sparseTextureGatherOffsetARB(s2DShadow, c2, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DShadow, f16c2, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DArrayShadow, c3, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DRectShadow, c2, compare, offset2, texel); + sparseTextureGatherOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel); + + return texel; +} + +f16vec4 testSparseTextureGatherOffsets() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel, 0); + sparseTextureGatherOffsetsARB(s2D, f16c2, offsets, texel, 0, f16bias); + sparseTextureGatherOffsetsARB(s2DArray, c3, offsets, texel, 0); + sparseTextureGatherOffsetsARB(s2DArray, f16c3, offsets, texel, 0, f16bias); + sparseTextureGatherOffsetsARB(s2DRect, c2, offsets, texel, 0); + sparseTextureGatherOffsetsARB(s2DRect, f16c2, offsets, texel, 0); + sparseTextureGatherOffsetsARB(s2DShadow, c2, compare, offsets, texel); + sparseTextureGatherOffsetsARB(s2DShadow, f16c2, compare, offsets, texel); + sparseTextureGatherOffsetsARB(s2DArrayShadow, c3, compare, offsets, texel); + sparseTextureGatherOffsetsARB(s2DArrayShadow, f16c3, compare, offsets, texel); + sparseTextureGatherOffsetsARB(s2DRectShadow, c2, compare, offsets, texel); + sparseTextureGatherOffsetsARB(s2DRectShadow, f16c2, compare, offsets, texel); + + return texel; +} + +f16vec4 testSparseTextureGatherLod() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGatherLodAMD(s2D, c2, lod, texel, 0); + sparseTextureGatherLodAMD(s2D, f16c2, f16lod, texel, 0); + sparseTextureGatherLodAMD(s2DArray, c3, lod, texel, 0); + sparseTextureGatherLodAMD(s2DArray, f16c3, f16lod, texel, 0); + sparseTextureGatherLodAMD(sCube, c3, lod, texel, 0); + sparseTextureGatherLodAMD(sCube, f16c3, f16lod, texel, 0); + sparseTextureGatherLodAMD(sCubeArray, c4, lod, texel, 0); + sparseTextureGatherLodAMD(sCubeArray, f16c4, f16lod, texel, 0); + + return texel; +} + +f16vec4 testSparseTextureGatherLodOffset() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offset2, texel, 0); + sparseTextureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, texel, 0); + sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, texel, 0); + sparseTextureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, texel, 0); + + return texel; +} + +f16vec4 testSparseTextureGatherLodOffsets() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, texel, 0); + sparseTextureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, texel, 0); + sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, texel, 0); + sparseTextureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, texel, 0); + + return texel; +} + +f16vec4 testSparseImageLoad() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseImageLoadARB(i2D, ivec2(c2), texel); + sparseImageLoadARB(i3D, ivec3(c3), texel); + sparseImageLoadARB(i2DRect, ivec2(c2), texel); + sparseImageLoadARB(iCube, ivec3(c3), texel); + sparseImageLoadARB(i2DArray, ivec3(c3), texel); + sparseImageLoadARB(iCubeArray, ivec3(c3), texel); + sparseImageLoadARB(i2DMS, ivec2(c2), 1, texel); + sparseImageLoadARB(i2DMSArray, ivec3(c3), 2, texel); + + return texel; +} + +f16vec4 testSparseTextureClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureClampARB(s2D, c2, lodClamp, texel); + sparseTextureClampARB(s2D, f16c2, f16lodClamp, texel, f16bias); + sparseTextureClampARB(s3D, c3, lodClamp, texel); + sparseTextureClampARB(s3D, f16c3, f16lodClamp, texel, f16bias); + sparseTextureClampARB(sCube, c3, lodClamp, texel); + sparseTextureClampARB(sCube, f16c3, f16lodClamp, texel, f16bias); + sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x); + sparseTextureClampARB(s2DShadow, f16c2, compare, f16lodClamp, texel.x, f16bias); + sparseTextureClampARB(sCubeShadow, c4, lodClamp, texel.x); + sparseTextureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, texel.x, f16bias); + sparseTextureClampARB(s2DArray, c3, lodClamp, texel); + sparseTextureClampARB(s2DArray, f16c3, f16lodClamp, texel, f16bias); + sparseTextureClampARB(sCubeArray, c4, lodClamp, texel); + sparseTextureClampARB(sCubeArray, f16c4, f16lodClamp, texel, f16bias); + sparseTextureClampARB(s2DArrayShadow, c4, lodClamp, texel.x); + sparseTextureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp, texel.x); + sparseTextureClampARB(sCubeArrayShadow, c4, compare, lodClamp, texel.x); + sparseTextureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp, texel.x); + + return texel; +} + +f16vec4 testTextureClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureClampARB(s1D, c1, lodClamp); + texel += textureClampARB(s1D, f16c1, f16lodClamp, f16bias); + texel += textureClampARB(s2D, c2, lodClamp); + texel += textureClampARB(s2D, f16c2, f16lodClamp, f16bias); + texel += textureClampARB(s3D, c3, lodClamp); + texel += textureClampARB(s3D, f16c3, f16lodClamp, f16bias); + texel += textureClampARB(sCube, c3, lodClamp); + texel += textureClampARB(sCube, f16c3, f16lodClamp, f16bias); + texel.x += textureClampARB(s1DShadow, c3, lodClamp); + texel.x += textureClampARB(s1DShadow, f16c2, compare, f16lodClamp, f16bias); + texel.x += textureClampARB(s2DShadow, c3, lodClamp); + texel.x += textureClampARB(s2DShadow, f16c2, compare, f16lodClamp, f16bias); + texel.x += textureClampARB(sCubeShadow, c4, lodClamp); + texel.x += textureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, f16bias); + texel += textureClampARB(s1DArray, c2, lodClamp); + texel += textureClampARB(s1DArray, f16c2, f16lodClamp, f16bias); + texel += textureClampARB(s2DArray, c3, lodClamp); + texel += textureClampARB(s2DArray, f16c3, f16lodClamp, f16bias); + texel += textureClampARB(sCubeArray, c4, lodClamp); + texel += textureClampARB(sCubeArray, f16c4, f16lodClamp, f16bias); + texel.x += textureClampARB(s1DArrayShadow, c3, lodClamp); + texel.x += textureClampARB(s1DArrayShadow, f16c2, compare, f16lodClamp, f16bias); + texel.x += textureClampARB(s2DArrayShadow, c4, lodClamp); + texel.x += textureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp); + texel.x += textureClampARB(sCubeArrayShadow, c4, compare, lodClamp); + texel.x += textureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp); + + return texel; +} + +f16vec4 testSparseTextureOffsetClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureOffsetClampARB(s2D, c2, offset2, lodClamp, texel); + sparseTextureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, texel, f16bias); + sparseTextureOffsetClampARB(s3D, c3, offset3, lodClamp, texel); + sparseTextureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, texel, f16bias); + sparseTextureOffsetClampARB(s2DShadow, c3, offset2, lodClamp, texel.x); + sparseTextureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, texel.x, f16bias); + sparseTextureOffsetClampARB(s2DArray, c3, offset2, lodClamp, texel); + sparseTextureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, texel, f16bias); + sparseTextureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp, texel.x); + sparseTextureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp, texel.x); + + return texel; +} + +f16vec4 testTextureOffsetClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureOffsetClampARB(s1D, c1, offset1, lodClamp); + texel += textureOffsetClampARB(s1D, f16c1, offset1, f16lodClamp, f16bias); + texel += textureOffsetClampARB(s2D, c2, offset2, lodClamp); + texel += textureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, f16bias); + texel += textureOffsetClampARB(s3D, c3, offset3, lodClamp); + texel += textureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, f16bias); + texel.x += textureOffsetClampARB(s1DShadow, c3, offset1, lodClamp); + texel.x += textureOffsetClampARB(s1DShadow, f16c2, compare, offset1, f16lodClamp, f16bias); + texel.x += textureOffsetClampARB(s2DShadow, c3, offset2, lodClamp); + texel.x += textureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, f16bias); + texel += textureOffsetClampARB(s1DArray, c2, offset1, lodClamp); + texel += textureOffsetClampARB(s1DArray, f16c2, offset1, f16lodClamp, f16bias); + texel += textureOffsetClampARB(s2DArray, c3, offset2, lodClamp); + texel += textureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, f16bias); + texel.x += textureOffsetClampARB(s1DArrayShadow, c3, offset1, lodClamp); + texel.x += textureOffsetClampARB(s1DArrayShadow, f16c2, compare, offset1, f16lodClamp, f16bias); + texel.x += textureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp); + texel.x += textureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp); + + return texel; +} + +f16vec4 testSparseTextureGradClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp, texel); + sparseTextureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp, texel); + sparseTextureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp, texel); + sparseTextureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); + sparseTextureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp, texel); + sparseTextureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); + sparseTextureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp, texel.x); + sparseTextureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x); + sparseTextureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp, texel.x); + sparseTextureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp, texel.x); + sparseTextureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp, texel); + sparseTextureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp, texel); + sparseTextureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp, texel.x); + sparseTextureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x); + sparseTextureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp, texel); + sparseTextureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); + + return texel; +} + +f16vec4 testTextureGradClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGradClampARB(s1D, c1, dPdxy1, dPdxy1, lodClamp); + texel += textureGradClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, f16lodClamp); + texel += textureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp); + texel += textureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp); + texel += textureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp); + texel += textureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp); + texel += textureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp); + texel += textureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp); + texel.x += textureGradClampARB(s1DShadow, c3, dPdxy1, dPdxy1, lodClamp); + texel.x += textureGradClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp); + texel.x += textureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp); + texel.x += textureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp); + texel.x += textureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp); + texel.x += textureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp); + texel += textureGradClampARB(s1DArray, c2, dPdxy1, dPdxy1, lodClamp); + texel += textureGradClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, f16lodClamp); + texel += textureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp); + texel += textureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp); + texel.x += textureGradClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, lodClamp); + texel.x += textureGradClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp); + texel.x += textureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp); + texel.x += textureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp); + texel += textureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp); + texel += textureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp); + + return texel; +} + +f16vec4 testSparseTextureGradOffsetClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + sparseTextureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp, texel); + sparseTextureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel); + sparseTextureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp, texel); + sparseTextureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp, texel); + sparseTextureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); + sparseTextureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x); + sparseTextureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel); + sparseTextureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel); + sparseTextureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); + sparseTextureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x); + + return texel; +} + +f16vec4 testTextureGradOffsetClamp() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += textureGradOffsetClampARB(s1D, c1, dPdxy1, dPdxy1, offset1, lodClamp); + texel += textureGradOffsetClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); + texel += textureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp); + texel += textureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); + texel += textureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp); + texel += textureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp); + texel.x += textureGradOffsetClampARB(s1DShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); + texel.x += textureGradOffsetClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); + texel.x += textureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp); + texel.x += textureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); + texel += textureGradOffsetClampARB(s1DArray, c2, dPdxy1, dPdxy1, offset1, lodClamp); + texel += textureGradOffsetClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); + texel += textureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp); + texel += textureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); + texel.x += textureGradOffsetClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); + texel.x += textureGradOffsetClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); + texel.x += textureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp); + texel.x += textureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); + + return texel; +} + +f16vec4 testCombinedTextureSampler() +{ + f16vec4 texel = f16vec4(0.0hf); + + texel += texture(f16sampler1D(t1D, s), c1); + texel += texture(f16sampler1D(t1D, s), f16c1, f16bias); + texel += texture(f16sampler2D(t2D, s), c2); + texel += texture(f16sampler2D(t2D, s), f16c2, f16bias); + texel += texture(f16sampler3D(t3D, s), c3); + texel += texture(f16sampler3D(t3D, s), f16c3, f16bias); + texel += texture(f16samplerCube(tCube, s), c3); + texel += texture(f16samplerCube(tCube, s), f16c3, f16bias); + texel.x += texture(f16sampler1DShadow(t1D, sShadow), c3); + texel.x += texture(f16sampler1DShadow(t1D, sShadow), f16c2, compare, f16bias); + texel.x += texture(f16sampler2DShadow(t2D, sShadow), c3); + texel.x += texture(f16sampler2DShadow(t2D, sShadow), f16c2, compare, f16bias); + texel.x += texture(f16samplerCubeShadow(tCube, sShadow), c4); + texel.x += texture(f16samplerCubeShadow(tCube, sShadow), f16c3, compare, f16bias); + texel += texture(f16sampler1DArray(t1DArray, s), c2); + texel += texture(f16sampler1DArray(t1DArray, s), f16c2, f16bias); + texel += texture(f16sampler2DArray(t2DArray, s), c3); + texel += texture(f16sampler2DArray(t2DArray, s), f16c3, f16bias); + texel += texture(f16samplerCubeArray(tCubeArray, s), c4); + texel += texture(f16samplerCubeArray(tCubeArray, s), f16c4, f16bias); + texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), c3); + texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), f16c2, compare, f16bias); + texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), c4); + texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), f16c3, compare); + texel += texture(f16sampler2DRect(t2DRect, s), c2); + texel += texture(f16sampler2DRect(t2DRect, s), f16c2); + texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), c3); + texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), f16c2, compare); + texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), c4, compare); + texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), f16c4, compare); + + return texel; +} + +f16vec4 testSubpassLoad() +{ + return subpassLoad(subpass) + subpassLoad(subpassMS, 2); +} + +void main() +{ + f16vec4 result = f16vec4(0.0hf); + + result += testTexture(); + result += testTextureProj(); + result += testTextureLod(); + result += testTextureOffset(); + result += testTextureLodOffset(); + result += testTextureProjLodOffset(); + result += testTexelFetch(); + result += testTexelFetchOffset(); + result += testTextureGrad(); + result += testTextureGradOffset(); + result += testTextureProjGrad(); + result += testTextureProjGradoffset(); + result += testTextureGather(); + result += testTextureGatherOffset(); + result += testTextureGatherOffsets(); + result += testTextureGatherLod(); + result += testTextureGatherLodOffset(); + result += testTextureGatherLodOffsets(); + + result += f16vec4(testTextureSize()); + result.xy += f16vec2(testTextureQueryLod()); + result.x += float16_t(testTextureQueryLevels()); + result.x += float16_t(testTextureSamples()); + + result += testImageLoad(); + testImageStore(result); + + result += testSparseTexture(); + result += testSparseTextureLod(); + result += testSparseTextureOffset(); + result += testSparseTextureLodOffset(); + result += testSparseTextureGrad(); + result += testSparseTextureGradOffset(); + result += testSparseTexelFetch(); + result += testSparseTexelFetchOffset(); + result += testSparseTextureGather(); + result += testSparseTextureGatherOffset(); + result += testSparseTextureGatherOffsets(); + result += testSparseTextureGatherLod(); + result += testSparseTextureGatherLodOffset(); + result += testSparseTextureGatherLodOffsets(); + + result += testSparseImageLoad(); + + result += testSparseTextureClamp(); + result += testTextureClamp(); + result += testSparseTextureOffsetClamp(); + result += testTextureOffsetClamp(); + result += testSparseTextureGrad(); + result += testTextureGrad(); + result += testSparseTextureGradOffsetClamp(); + result += testTextureGradOffsetClamp(); + + result += testCombinedTextureSampler(); + result += testSubpassLoad(); + + fragColor = result; +} diff --git a/deps/glslang/glslang/Test/spv.float32.frag b/deps/glslang/glslang/Test/spv.float32.frag new file mode 100644 index 0000000000..471f6b3b72 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.float32.frag @@ -0,0 +1,277 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +void main() +{ +} + +// Single float literals +void literal() +{ + const float32_t f32c = 0.000001f; + const f32vec2 f32cv = f32vec2(-0.25F, 0.03f); + + f32vec2 f32v; + f32v.x = f32c; + f32v += f32cv; +} + +// Block memory layout +struct S +{ + float32_t x; + f32vec2 y; + f32vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + float32_t a; + f32vec2 b; + f32vec3 c; + float32_t d[2]; + f32mat2x3 e; + f32mat2x3 f[2]; + S g; + S h[2]; +}; + +// Specialization constant +layout(constant_id = 100) const float16_t sf16 = 0.125hf; +layout(constant_id = 101) const float32_t sf = 0.25; +layout(constant_id = 102) const float64_t sd = 0.5lf; + +const float f16_to_f = float(sf16); +const double f16_to_d = float(sf16); + +const float16_t f_to_f16 = float16_t(sf); +const float16_t d_to_f16 = float16_t(sd); + +void operators() +{ + float32_t f32; + f32vec2 f32v; + f32mat2x2 f32m; + bool b; + + // Arithmetic + f32v += f32v; + f32v -= f32v; + f32v *= f32v; + f32v /= f32v; + f32v++; + f32v--; + ++f32m; + --f32m; + f32v = -f32v; + f32m = -f32m; + + f32 = f32v.x + f32v.y; + f32 = f32v.x - f32v.y; + f32 = f32v.x * f32v.y; + f32 = f32v.x / f32v.y; + + // Relational + b = (f32v.x != f32); + b = (f32v.y == f32); + b = (f32v.x > f32); + b = (f32v.y < f32); + b = (f32v.x >= f32); + b = (f32v.y <= f32); + + // Vector/matrix operations + f32v = f32v * f32; + f32m = f32m * f32; + f32v = f32m * f32v; + f32v = f32v * f32m; + f32m = f32m * f32m; +} + +void typeCast() +{ + bvec3 bv; + f32vec3 f32v; + f64vec3 f64v; + i8vec3 i8v; + u8vec3 u8v; + i16vec3 i16v; + u16vec3 u16v; + i32vec3 i32v; + u32vec3 u32v; + i64vec3 i64v; + u64vec3 u64v; + f16vec3 f16v; + + f64v = f32v; // float32_t -> float64_t + + f32v = f32vec3(bv); // bool -> float32 + bv = bvec3(f32v); // float32 -> bool + + f32v = f32vec3(f64v); // double -> float32 + f64v = f64vec3(f32v); // float32 -> double + + f32v = f32vec3(f16v); // float16 -> float32 + f16v = f16vec3(f32v); // float32 -> float16 + + i8v = i8vec3(f32v); // float32 -> int8 + i16v = i16vec3(f32v); // float32 -> int16 + i32v = i32vec3(f32v); // float32 -> int32 + i64v = i64vec3(f32v); // float32 -> int64 + + u8v = u8vec3(f32v); // float32 -> uint8 + u16v = u16vec3(f32v); // float32 -> uint16 + u32v = u32vec3(f32v); // float32 -> uint32 + u64v = u64vec3(f32v); // float32 -> uint64 +} + +void builtinAngleTrigFuncs() +{ + f32vec4 f32v1, f32v2; + + f32v2 = radians(f32v1); + f32v2 = degrees(f32v1); + f32v2 = sin(f32v1); + f32v2 = cos(f32v1); + f32v2 = tan(f32v1); + f32v2 = asin(f32v1); + f32v2 = acos(f32v1); + f32v2 = atan(f32v1, f32v2); + f32v2 = atan(f32v1); + f32v2 = sinh(f32v1); + f32v2 = cosh(f32v1); + f32v2 = tanh(f32v1); + f32v2 = asinh(f32v1); + f32v2 = acosh(f32v1); + f32v2 = atanh(f32v1); +} + +void builtinExpFuncs() +{ + f32vec2 f32v1, f32v2; + + f32v2 = pow(f32v1, f32v2); + f32v2 = exp(f32v1); + f32v2 = log(f32v1); + f32v2 = exp2(f32v1); + f32v2 = log2(f32v1); + f32v2 = sqrt(f32v1); + f32v2 = inversesqrt(f32v1); +} + +void builtinCommonFuncs() +{ + f32vec3 f32v1, f32v2, f32v3; + float32_t f32; + bool b; + bvec3 bv; + ivec3 iv; + + f32v2 = abs(f32v1); + f32v2 = sign(f32v1); + f32v2 = floor(f32v1); + f32v2 = trunc(f32v1); + f32v2 = round(f32v1); + f32v2 = roundEven(f32v1); + f32v2 = ceil(f32v1); + f32v2 = fract(f32v1); + f32v2 = mod(f32v1, f32v2); + f32v2 = mod(f32v1, f32); + f32v3 = modf(f32v1, f32v2); + f32v3 = min(f32v1, f32v2); + f32v3 = min(f32v1, f32); + f32v3 = max(f32v1, f32v2); + f32v3 = max(f32v1, f32); + f32v3 = clamp(f32v1, f32, f32v2.x); + f32v3 = clamp(f32v1, f32v2, f32vec3(f32)); + f32v3 = mix(f32v1, f32v2, f32); + f32v3 = mix(f32v1, f32v2, f32v3); + f32v3 = mix(f32v1, f32v2, bv); + f32v3 = step(f32v1, f32v2); + f32v3 = step(f32, f32v3); + f32v3 = smoothstep(f32v1, f32v2, f32v3); + f32v3 = smoothstep(f32, f32v1.x, f32v2); + b = isnan(f32); + bv = isinf(f32v1); + f32v3 = fma(f32v1, f32v2, f32v3); + f32v2 = frexp(f32v1, iv); + f32v2 = ldexp(f32v1, iv); +} + +void builtinGeometryFuncs() +{ + float32_t f32; + f32vec3 f32v1, f32v2, f32v3; + + f32 = length(f32v1); + f32 = distance(f32v1, f32v2); + f32 = dot(f32v1, f32v2); + f32v3 = cross(f32v1, f32v2); + f32v2 = normalize(f32v1); + f32v3 = faceforward(f32v1, f32v2, f32v3); + f32v3 = reflect(f32v1, f32v2); + f32v3 = refract(f32v1, f32v2, f32); +} + +void builtinMatrixFuncs() +{ + f32mat2x3 f32m1, f32m2, f32m3; + f32mat3x2 f32m4; + f32mat3 f32m5; + f32mat4 f32m6, f32m7; + + f32vec3 f32v1; + f32vec2 f32v2; + + float32_t f32; + + f32m3 = matrixCompMult(f32m1, f32m2); + f32m1 = outerProduct(f32v1, f32v2); + f32m4 = transpose(f32m1); + f32 = determinant(f32m5); + f32m6 = inverse(f32m7); +} + +void builtinVecRelFuncs() +{ + f32vec3 f32v1, f32v2; + bvec3 bv; + + bv = lessThan(f32v1, f32v2); + bv = lessThanEqual(f32v1, f32v2); + bv = greaterThan(f32v1, f32v2); + bv = greaterThanEqual(f32v1, f32v2); + bv = equal(f32v1, f32v2); + bv = notEqual(f32v1, f32v2); +} + +in f32vec3 if32v; + +void builtinFragProcFuncs() +{ + f32vec3 f32v; + + // Derivative + f32v.x = dFdx(if32v.x); + f32v.y = dFdy(if32v.y); + f32v.xy = dFdxFine(if32v.xy); + f32v.xy = dFdyFine(if32v.xy); + f32v = dFdxCoarse(if32v); + f32v = dFdxCoarse(if32v); + + f32v.x = fwidth(if32v.x); + f32v.xy = fwidthFine(if32v.xy); + f32v = fwidthCoarse(if32v); + + // Interpolation + f32v.x = interpolateAtCentroid(if32v.x); + f32v.xy = interpolateAtSample(if32v.xy, 1); + f32v = interpolateAtOffset(if32v, f32vec2(0.5f)); +} diff --git a/deps/glslang/glslang/Test/spv.float64.frag b/deps/glslang/glslang/Test/spv.float64.frag new file mode 100644 index 0000000000..efbec77d92 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.float64.frag @@ -0,0 +1,272 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +void main() +{ +} + +// Single float literals +void literal() +{ + const float64_t f64c = 0.000001LF; + const f64vec2 f64cv = f64vec2(-0.25lF, 0.03Lf); + + f64vec2 f64v; + f64v.x = f64c; + f64v += f64cv; +} + +// Block memory layout +struct S +{ + float64_t x; + f64vec2 y; + f64vec3 z; +}; + +layout(column_major, std140) uniform B1 +{ + float64_t a; + f64vec2 b; + f64vec3 c; + float64_t d[2]; + f64mat2x3 e; + f64mat2x3 f[2]; + S g; + S h[2]; +}; + +// Specialization constant +layout(constant_id = 100) const float16_t sf16 = 0.125hf; +layout(constant_id = 101) const float32_t sf = 0.25; +layout(constant_id = 102) const float64_t sd = 0.5lf; + +const float f16_to_f = float(sf16); +const double f16_to_d = float(sf16); + +const float16_t f_to_f16 = float16_t(sf); +const float16_t d_to_f16 = float16_t(sd); + +void operators() +{ + float64_t f64; + f64vec2 f64v; + f64mat2x2 f64m; + bool b; + + // Arithmetic + f64v += f64v; + f64v -= f64v; + f64v *= f64v; + f64v /= f64v; + f64v++; + f64v--; + ++f64m; + --f64m; + f64v = -f64v; + f64m = -f64m; + + f64 = f64v.x + f64v.y; + f64 = f64v.x - f64v.y; + f64 = f64v.x * f64v.y; + f64 = f64v.x / f64v.y; + + // Relational + b = (f64v.x != f64); + b = (f64v.y == f64); + b = (f64v.x > f64); + b = (f64v.y < f64); + b = (f64v.x >= f64); + b = (f64v.y <= f64); + + // Vector/matrix operations + f64v = f64v * f64; + f64m = f64m * f64; + f64v = f64m * f64v; + f64v = f64v * f64m; + f64m = f64m * f64m; +} + +void typeCast() +{ + bvec3 bv; + f32vec3 f32v; + f64vec3 f64v; + i8vec3 i8v; + u8vec3 u8v; + i16vec3 i16v; + u16vec3 u16v; + i32vec3 i32v; + u32vec3 u32v; + i64vec3 i64v; + u64vec3 u64v; + f16vec3 f16v; + + f64v = f64vec3(bv); // bool -> float64 + bv = bvec3(f64v); // float64 -> bool + + f64v = f64vec3(f16v); // float16 -> float64 + f16v = f16vec3(f64v); // float64 -> float16 + + i8v = i8vec3(f64v); // float64 -> int8 + i16v = i16vec3(f64v); // float64 -> int16 + i32v = i32vec3(f64v); // float64 -> int32 + i64v = i64vec3(f64v); // float64 -> int64 + + u8v = u8vec3(f64v); // float64 -> uint8 + u16v = u16vec3(f64v); // float64 -> uint16 + u32v = u32vec3(f64v); // float64 -> uint32 + u64v = u64vec3(f64v); // float64 -> uint64 +} + +void builtinAngleTrigFuncs() +{ + f64vec4 f64v1, f64v2; + + f64v2 = radians(f64v1); + f64v2 = degrees(f64v1); + f64v2 = sin(f64v1); + f64v2 = cos(f64v1); + f64v2 = tan(f64v1); + f64v2 = asin(f64v1); + f64v2 = acos(f64v1); + f64v2 = atan(f64v1, f64v2); + f64v2 = atan(f64v1); + f64v2 = sinh(f64v1); + f64v2 = cosh(f64v1); + f64v2 = tanh(f64v1); + f64v2 = asinh(f64v1); + f64v2 = acosh(f64v1); + f64v2 = atanh(f64v1); +} + +void builtinExpFuncs() +{ + f64vec2 f64v1, f64v2; + + f64v2 = pow(f64v1, f64v2); + f64v2 = exp(f64v1); + f64v2 = log(f64v1); + f64v2 = exp2(f64v1); + f64v2 = log2(f64v1); + f64v2 = sqrt(f64v1); + f64v2 = inversesqrt(f64v1); +} + +void builtinCommonFuncs() +{ + f64vec3 f64v1, f64v2, f64v3; + float64_t f64; + bool b; + bvec3 bv; + ivec3 iv; + + f64v2 = abs(f64v1); + f64v2 = sign(f64v1); + f64v2 = floor(f64v1); + f64v2 = trunc(f64v1); + f64v2 = round(f64v1); + f64v2 = roundEven(f64v1); + f64v2 = ceil(f64v1); + f64v2 = fract(f64v1); + f64v2 = mod(f64v1, f64v2); + f64v2 = mod(f64v1, f64); + f64v3 = modf(f64v1, f64v2); + f64v3 = min(f64v1, f64v2); + f64v3 = min(f64v1, f64); + f64v3 = max(f64v1, f64v2); + f64v3 = max(f64v1, f64); + f64v3 = clamp(f64v1, f64, f64v2.x); + f64v3 = clamp(f64v1, f64v2, f64vec3(f64)); + f64v3 = mix(f64v1, f64v2, f64); + f64v3 = mix(f64v1, f64v2, f64v3); + f64v3 = mix(f64v1, f64v2, bv); + f64v3 = step(f64v1, f64v2); + f64v3 = step(f64, f64v3); + f64v3 = smoothstep(f64v1, f64v2, f64v3); + f64v3 = smoothstep(f64, f64v1.x, f64v2); + b = isnan(f64); + bv = isinf(f64v1); + f64v3 = fma(f64v1, f64v2, f64v3); + f64v2 = frexp(f64v1, iv); + f64v2 = ldexp(f64v1, iv); +} + +void builtinGeometryFuncs() +{ + float64_t f64; + f64vec3 f64v1, f64v2, f64v3; + + f64 = length(f64v1); + f64 = distance(f64v1, f64v2); + f64 = dot(f64v1, f64v2); + f64v3 = cross(f64v1, f64v2); + f64v2 = normalize(f64v1); + f64v3 = faceforward(f64v1, f64v2, f64v3); + f64v3 = reflect(f64v1, f64v2); + f64v3 = refract(f64v1, f64v2, f64); +} + +void builtinMatrixFuncs() +{ + f64mat2x3 f64m1, f64m2, f64m3; + f64mat3x2 f64m4; + f64mat3 f64m5; + f64mat4 f64m6, f64m7; + + f64vec3 f64v1; + f64vec2 f64v2; + + float64_t f64; + + f64m3 = matrixCompMult(f64m1, f64m2); + f64m1 = outerProduct(f64v1, f64v2); + f64m4 = transpose(f64m1); + f64 = determinant(f64m5); + f64m6 = inverse(f64m7); +} + +void builtinVecRelFuncs() +{ + f64vec3 f64v1, f64v2; + bvec3 bv; + + bv = lessThan(f64v1, f64v2); + bv = lessThanEqual(f64v1, f64v2); + bv = greaterThan(f64v1, f64v2); + bv = greaterThanEqual(f64v1, f64v2); + bv = equal(f64v1, f64v2); + bv = notEqual(f64v1, f64v2); +} + +in flat f64vec3 if64v; + +void builtinFragProcFuncs() +{ + f64vec3 f64v; + + // Derivative + f64v.x = dFdx(if64v.x); + f64v.y = dFdy(if64v.y); + f64v.xy = dFdxFine(if64v.xy); + f64v.xy = dFdyFine(if64v.xy); + f64v = dFdxCoarse(if64v); + f64v = dFdxCoarse(if64v); + + f64v.x = fwidth(if64v.x); + f64v.xy = fwidthFine(if64v.xy); + f64v = fwidthCoarse(if64v); + + // Interpolation + f64v.x = interpolateAtCentroid(if64v.x); + f64v.xy = interpolateAtSample(if64v.xy, 1); + f64v = interpolateAtOffset(if64v, f64vec2(0.5f)); +} diff --git a/deps/glslang/glslang/Test/spv.flowControl.frag b/deps/glslang/glslang/Test/spv.flowControl.frag new file mode 100644 index 0000000000..f10c767307 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.flowControl.frag @@ -0,0 +1,23 @@ +#version 140 + +in float d; +in vec4 bigColor, smallColor; +in vec4 otherColor; + +in float c; +in vec4 BaseColor; + +void main() +{ + vec4 color = BaseColor; + vec4 color2; + + color2 = otherColor; + + if (c > d) + color += bigColor; + else + color += smallColor; + + gl_FragColor = color * color2; +} diff --git a/deps/glslang/glslang/Test/spv.for-complex-condition.vert b/deps/glslang/glslang/Test/spv.for-complex-condition.vert new file mode 100644 index 0000000000..81dd648974 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.for-complex-condition.vert @@ -0,0 +1,7 @@ +#version 450 +layout(location=0) out highp int r; +layout(location=0) in lowp int flag; +void main() { + int i; + for (i=0; i < (flag==1 ? 10 : 15) ; i++) { r = i; } +} diff --git a/deps/glslang/glslang/Test/spv.for-continue-break.vert b/deps/glslang/glslang/Test/spv.for-continue-break.vert new file mode 100644 index 0000000000..afa31f2b3e --- /dev/null +++ b/deps/glslang/glslang/Test/spv.for-continue-break.vert @@ -0,0 +1,20 @@ +#version 310 es +void main() { + int i; + int A, B, C, D, E, F, G; + for (i=0; i < 10 ; i++) { + A = 1; + if (i%2 ==0) { + B = 1; + continue; + C = 1; + } + if (i%3 == 0) { + D = 1; + break; + E = 1; + } + F = 12; + } + G = 99; +} diff --git a/deps/glslang/glslang/Test/spv.for-nobody.vert b/deps/glslang/glslang/Test/spv.for-nobody.vert new file mode 100644 index 0000000000..99634761c8 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.for-nobody.vert @@ -0,0 +1,7 @@ +#version 450 +layout(location=0) out highp int r; +void main() { + int i; + for (i=0; i<10; i++); + r = i; +} diff --git a/deps/glslang/glslang/Test/spv.for-notest.vert b/deps/glslang/glslang/Test/spv.for-notest.vert new file mode 100644 index 0000000000..f40e66644c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.for-notest.vert @@ -0,0 +1,6 @@ +#version 450 +layout(location=0) out highp int r; +void main() { + int i; + for (i=0; ; i++) { r = i; } +} diff --git a/deps/glslang/glslang/Test/spv.for-simple.vert b/deps/glslang/glslang/Test/spv.for-simple.vert new file mode 100644 index 0000000000..a5be6db2d5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.for-simple.vert @@ -0,0 +1,8 @@ +#version 310 es +void main() { + int i; + int j; + for (i=0; i < 10 ; i++) { + j = 12; + } +} diff --git a/deps/glslang/glslang/Test/spv.forLoop.frag b/deps/glslang/glslang/Test/spv.forLoop.frag new file mode 100644 index 0000000000..dfa58ad42c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.forLoop.frag @@ -0,0 +1,41 @@ +#version 140 + +in vec4 bigColor; +in vec4 BaseColor; +in float f; + +flat in int Count; +flat in uvec4 v4; + +void main() +{ + vec4 color = BaseColor; + + for (int i = 0; i < Count; ++i) { + color += bigColor; + } + + gl_FragColor = color; + + float sum = 0.0; + for (int i = 0; i < 4; ++i) + sum += v4[i]; + + vec4 tv4; + + for (int i = 0; i < 4; ++i) + tv4[i] = v4[i] * 4u; + + gl_FragColor += vec4(sum) + tv4; + + vec4 r; + r.xyz = BaseColor.xyz; + + for (int i = 0; i < Count; ++i) + r.w = f; + + gl_FragColor.xyz += r.xyz; + + for (int i = 0; i < 16; i += 4) + gl_FragColor *= f; +} diff --git a/deps/glslang/glslang/Test/spv.forwardFun.frag b/deps/glslang/glslang/Test/spv.forwardFun.frag new file mode 100644 index 0000000000..0a71521eec --- /dev/null +++ b/deps/glslang/glslang/Test/spv.forwardFun.frag @@ -0,0 +1,39 @@ +#version 140 + +precision mediump float; + +in vec4 bigColor; +in vec4 BaseColor; +in float d; + +void bar(); +float foo(vec4); +float unreachableReturn(); + +void main() +{ + vec4 color = vec4(foo(BaseColor)); + + bar(); + float f = unreachableReturn(); + + gl_FragColor = color * f; +} + +void bar() +{ +} + +float unreachableReturn() +{ + bar(); + if (d < 4.2) + return 1.2; + else + return 4.5; +} + +float foo(vec4 bar) +{ + return bar.x + bar.y; +} diff --git a/deps/glslang/glslang/Test/spv.fullyCovered.frag b/deps/glslang/glslang/Test/spv.fullyCovered.frag new file mode 100644 index 0000000000..c7f30853d4 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.fullyCovered.frag @@ -0,0 +1,9 @@ +#version 450 + +#extension GL_NV_conservative_raster_underestimation : enable + +out vec4 color; + +void main() { + color = vec4(gl_FragFullyCoveredNV, 0, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.functionCall.frag b/deps/glslang/glslang/Test/spv.functionCall.frag new file mode 100644 index 0000000000..139638d2fe --- /dev/null +++ b/deps/glslang/glslang/Test/spv.functionCall.frag @@ -0,0 +1,44 @@ +#version 140 + +varying vec4 bigColor; +varying vec4 BaseColor; +varying float d; + +float h = 0.0; + +float foo(vec4 bar) +{ + return bar.x + bar.y; +} + +void bar() +{ +} + +float unreachableReturn() +{ + if (d < 4.2) + return 1.2; + else + return 4.5; + // might be another return inserted here by builders, has to be correct type +} + +float missingReturn() +{ + if (d < 4.5) { + h = d; + return 3.9; + } +} + +void main() +{ + vec4 color = vec4(foo(BaseColor)); + + bar(); + float f = unreachableReturn(); + float g = missingReturn(); + + gl_FragColor = color * f * h; +} diff --git a/deps/glslang/glslang/Test/spv.functionNestedOpaque.vert b/deps/glslang/glslang/Test/spv.functionNestedOpaque.vert new file mode 100644 index 0000000000..9e308b1336 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.functionNestedOpaque.vert @@ -0,0 +1,26 @@ +#version 450 + +uniform struct S { + sampler2D s; +} si; + +void foo(sampler2D t) +{ + texture(t, vec2(0.5)); +} + +void barc(const S p) +{ + foo(p.s); +} + +void bar(S p) +{ + foo(p.s); +} + +void main() +{ + barc(si); + bar(si); +} diff --git a/deps/glslang/glslang/Test/spv.functionSemantics.frag b/deps/glslang/glslang/Test/spv.functionSemantics.frag new file mode 100644 index 0000000000..a9b59b761c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.functionSemantics.frag @@ -0,0 +1,63 @@ +#version 400 + +in float u; + +int foo(int a, const int b, in int c, const in int d, out int e, inout int f) +{ + int sum = a + b + c + d + f; // no e, it is out only + // sum should be 47 now + + a *= 64; + // no b, it is read only + c *= 64; + // no d, it is read only + e = 64 * 16; // e starts undefined + f *= 64; + + sum += a + 64 * b + c + 64 * d + e + f; // everything has a value now, totaling of 64(1+2+4+8+16+32) = 64*63 = 4032 + // sum should be 4032 + 47 = 4079 + + return sum; +} + +int foo2(float a, vec3 b, out int r) +{ + r = int(3.0 * a); + return int(5.0 * b.y); +} + +int foo3() +{ + if (u > 3.2) { + discard; + return 1000000; + } + + return 2000000; +} + +void main() +{ + int e; + int t = 2; + struct s { + ivec4 t; + } f; + f.t.y = 32; + + // test the different qualifers + int color = foo(1, 2, t+t, 8, e, f.t.y); + + color += 128 * (e + f.t.y); // right side should be 128(64(16 + 32)) = 393216 + // sum should be 4079 + 393216 = 397295 + + // test conversions + float arg; + float ret; + ret = foo2(4, ivec3(1,2,3), arg); // ret = 10, param = 12.0 + color += int(ret + arg); // adds 22, for total of 397317 + + color += foo3(); // theoretically, add 2000000, for total of 2397317 + + gl_FragColor = vec4(color); +} diff --git a/deps/glslang/glslang/Test/spv.glFragColor.frag b/deps/glslang/glslang/Test/spv.glFragColor.frag new file mode 100644 index 0000000000..12dbcb220b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.glFragColor.frag @@ -0,0 +1,6 @@ +#version 330 + +void main() +{ + gl_FragColor = vec4(1.0); +} diff --git a/deps/glslang/glslang/Test/spv.glsl.register.autoassign.frag b/deps/glslang/glslang/Test/spv.glsl.register.autoassign.frag new file mode 100644 index 0000000000..f754d8aad9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.glsl.register.autoassign.frag @@ -0,0 +1,68 @@ +#version 450 + +uniform layout(binding=0) sampler g_sSamp1; +uniform sampler g_sSamp2; +uniform layout(binding=2) sampler g_sSamp3[2]; +uniform sampler g_sSamp4[3]; +uniform sampler g_sSamp5; + +uniform sampler g_sSamp_unused1; +uniform sampler g_sSamp_unused2; + +uniform layout(binding=1) texture1D g_tTex1; +uniform texture1D g_tTex2; +uniform layout(binding=3) texture1D g_tTex3[2]; +uniform texture1D g_tTex4[3]; +uniform texture1D g_tTex5; + +uniform layout(binding=0) texture1D g_tTex_unused1; +uniform layout(binding=2) texture1D g_tTex_unused2; +uniform texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + vec3 c; +}; + +uniform layout(binding=4) myblock { + MyStruct_t mystruct; + vec4 myvec4_a; + vec4 myvec4_b; + ivec4 myint4_a; +}; + +vec4 Func1() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + + texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + + texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + + texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + + texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + + mystruct.c[1]; +} + +vec4 Func2() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); +} + +// Not called from entry point: +vec4 Func2_unused() +{ + return + texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + + texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); +} + +out vec4 FragColor; + +void main() +{ + FragColor = Func1() + Func2(); +} diff --git a/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag b/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag new file mode 100644 index 0000000000..c385fbb9a0 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.glsl.register.noautoassign.frag @@ -0,0 +1,68 @@ +#version 450 + +uniform layout(binding=0) sampler g_sSamp1; +uniform layout(binding=1) sampler g_sSamp2; +uniform layout(binding=2) sampler g_sSamp3[2]; +uniform layout(binding=3) sampler g_sSamp4[3]; +uniform layout(binding=4) sampler g_sSamp5; + +uniform layout(binding=5) sampler g_sSamp_unused1; +uniform layout(binding=6) sampler g_sSamp_unused2; + +uniform layout(binding=7) texture1D g_tTex1; +uniform layout(binding=8) texture1D g_tTex2; +uniform layout(binding=9) texture1D g_tTex3[2]; +uniform layout(binding=10) texture1D g_tTex4[3]; +uniform layout(binding=11) texture1D g_tTex5; + +uniform layout(binding=12) texture1D g_tTex_unused1; +uniform layout(binding=13) texture1D g_tTex_unused2; +uniform layout(binding=14) texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + vec3 c; +}; + +uniform layout(binding=4) myblock { + MyStruct_t mystruct; + vec4 myvec4_a; + vec4 myvec4_b; + ivec4 myint4_a; +}; + +vec4 Func1() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + + texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + + texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + + texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + + texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + + mystruct.c[1]; +} + +vec4 Func2() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); +} + +// Not called from entry point: +vec4 Func2_unused() +{ + return + texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + + texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); +} + +out vec4 FragColor; + +void main() +{ + FragColor = Func1() + Func2(); +} diff --git a/deps/glslang/glslang/Test/spv.hlslDebugInfo.vert b/deps/glslang/glslang/Test/spv.hlslDebugInfo.vert new file mode 100644 index 0000000000..b2bc187783 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.hlslDebugInfo.vert @@ -0,0 +1,4 @@ +float4 origMain() : SV_Position +{ + return (float4)0; +} diff --git a/deps/glslang/glslang/Test/spv.hlslOffsets.vert b/deps/glslang/glslang/Test/spv.hlslOffsets.vert new file mode 100644 index 0000000000..87e32a729c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.hlslOffsets.vert @@ -0,0 +1,27 @@ +#version 450 + +buffer block { + float m0; + vec3 m4; + ////// + float m16; + layout(offset=20) vec3 m20; + ///// + vec3 m32; + ///// + vec2 m48; + vec2 m56; + //// + float m64; + vec2 m68; + float m76; + ////// + float m80; + layout(offset=88) vec2 m88; + ////// + vec2 m96; + /////// + dvec2 m112; +}; + +void main() {} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.image.frag b/deps/glslang/glslang/Test/spv.image.frag new file mode 100644 index 0000000000..30b339ce1a --- /dev/null +++ b/deps/glslang/glslang/Test/spv.image.frag @@ -0,0 +1,93 @@ +#version 450 + +layout(rgba32f, binding = 0) uniform image1D i1D; +layout(rgba32f, binding = 1) uniform image2D i2D; +layout(rgba32f, binding = 2) uniform image3D i3D; +layout(rgba32f, binding = 3) uniform imageCube iCube; +layout(rgba32f, binding = 4) uniform imageCubeArray iCubeArray; +layout(rgba32f, binding = 5) uniform image2DRect i2DRect; +layout(rgba32f, binding = 6) uniform image1DArray i1DArray; +layout(rg16, binding = 7) uniform image2DArray i2DArray; +layout(rgba32f, binding = 8) uniform imageBuffer iBuffer; +layout(rgba32f, binding = 9) uniform image2DMS i2DMS; +layout(rgba32f, binding = 10) uniform image2DMSArray i2DMSArray; + +layout(r32i, binding = 11) uniform iimage1D ii1D; +layout(r32ui, binding = 12) uniform uimage2D ui2D; + +flat in int ic1D; +flat in ivec2 ic2D; +flat in ivec3 ic3D; +flat in ivec4 ic4D; + +writeonly layout(binding = 1) uniform image2D wo2D; + +flat in uint value; + +out vec4 fragData; + +void main() +{ + ivec3 iv = ivec3(0); + iv.x += imageSize(i1D); + iv.xy += imageSize(i2D); + iv.xyz += imageSize(i3D); + iv.xy += imageSize(iCube); + iv.xyz += imageSize(iCubeArray); + iv.xy += imageSize(i2DRect); + iv.xy += imageSize(i1DArray); + iv.xyz += imageSize(i2DArray); + iv.x += imageSize(iBuffer); + iv.xy += imageSize(i2DMS); + iv.xyz += imageSize(i2DMSArray); + + iv.x += imageSamples(i2DMS); + iv.x += imageSamples(i2DMSArray); + + vec4 v = vec4(0.0); + v += imageLoad(i1D, ic1D); + imageStore(i1D, ic1D, v); + v += imageLoad(i2D, ic2D); + imageStore(i2D, ic2D, v); + v += imageLoad(i3D, ic3D); + imageStore(i3D, ic3D, v); + v += imageLoad(iCube, ic3D); + imageStore(iCube, ic3D, v); + v += imageLoad(iCubeArray, ic3D); + imageStore(iCubeArray, ic3D, v); + v += imageLoad(i2DRect, ic2D); + imageStore(i2DRect, ic2D, v); + v += imageLoad(i1DArray, ic2D); + imageStore(i1DArray, ic2D, v); + v += imageLoad(i2DArray, ic3D); + imageStore(i2DArray, ic3D, v); + v += imageLoad(iBuffer, ic1D); + imageStore(iBuffer, ic1D, v); + v += imageLoad(i2DMS, ic2D, 1); + imageStore(i2DMS, ic2D, 2, v); + v += imageLoad(i2DMSArray, ic3D, 3); + imageStore(i2DMSArray, ic3D, 4, v); + + uint ui = 0; + iv.x += imageAtomicAdd(ii1D, ic1D, 10); + ui += imageAtomicAdd(ui2D, ic2D, value); + iv.x += imageAtomicMin(ii1D, ic1D, 11); + ui += imageAtomicMin(ui2D, ic2D, value); + iv.x += imageAtomicMax(ii1D, ic1D, 12); + ui += imageAtomicMax(ui2D, ic2D, value); + iv.x += imageAtomicAnd(ii1D, ic1D, 13); + ui += imageAtomicAnd(ui2D, ic2D, value); + iv.x += imageAtomicOr(ii1D, ic1D, 14); + ui += imageAtomicOr(ui2D, ic2D, value); + iv.x += imageAtomicXor(ii1D, ic1D, 15); + ui += imageAtomicXor(ui2D, ic2D, value); + iv.x += imageAtomicExchange(ii1D, ic1D, 16); + ui += imageAtomicExchange(ui2D, ic2D, value); + iv.x += imageAtomicCompSwap(ii1D, ic1D, 18, 17); + ui += imageAtomicCompSwap(ui2D, ic2D, 19u, value); + + imageStore(wo2D, ic2D, v); + + fragData = ui != iv.y ? v : vec4(0.0); +} + diff --git a/deps/glslang/glslang/Test/spv.image.load-formatted.frag b/deps/glslang/glslang/Test/spv.image.load-formatted.frag new file mode 100644 index 0000000000..b0adc73bf1 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.image.load-formatted.frag @@ -0,0 +1,74 @@ +#version 450 + +#extension GL_EXT_shader_image_load_formatted : require + +layout(binding = 0) uniform image1D i1D; +layout(binding = 1) uniform image2D i2D; +layout(binding = 2) uniform image3D i3D; +layout(binding = 3) uniform imageCube iCube; +layout(binding = 4) uniform imageCubeArray iCubeArray; +layout(binding = 5) uniform image2DRect i2DRect; +layout(binding = 6) uniform image1DArray i1DArray; +layout(binding = 7) uniform image2DArray i2DArray; +layout(binding = 8) uniform imageBuffer iBuffer; +layout(binding = 9) uniform image2DMS i2DMS; +layout(binding = 10) uniform image2DMSArray i2DMSArray; + +flat in int ic1D; +flat in ivec2 ic2D; +flat in ivec3 ic3D; +flat in ivec4 ic4D; + +writeonly layout(binding = 1) uniform image2D wo2D; + +flat in uint value; + +out vec4 fragData; + +void main() +{ + ivec3 iv = ivec3(0); + iv.x += imageSize(i1D); + iv.xy += imageSize(i2D); + iv.xyz += imageSize(i3D); + iv.xy += imageSize(iCube); + iv.xyz += imageSize(iCubeArray); + iv.xy += imageSize(i2DRect); + iv.xy += imageSize(i1DArray); + iv.xyz += imageSize(i2DArray); + iv.x += imageSize(iBuffer); + iv.xy += imageSize(i2DMS); + iv.xyz += imageSize(i2DMSArray); + + iv.x += imageSamples(i2DMS); + iv.x += imageSamples(i2DMSArray); + + vec4 v = vec4(0.0); + v += imageLoad(i1D, ic1D); + imageStore(i1D, ic1D, v); + v += imageLoad(i2D, ic2D); + imageStore(i2D, ic2D, v); + v += imageLoad(i3D, ic3D); + imageStore(i3D, ic3D, v); + v += imageLoad(iCube, ic3D); + imageStore(iCube, ic3D, v); + v += imageLoad(iCubeArray, ic3D); + imageStore(iCubeArray, ic3D, v); + v += imageLoad(i2DRect, ic2D); + imageStore(i2DRect, ic2D, v); + v += imageLoad(i1DArray, ic2D); + imageStore(i1DArray, ic2D, v); + v += imageLoad(i2DArray, ic3D); + imageStore(i2DArray, ic3D, v); + v += imageLoad(iBuffer, ic1D); + imageStore(iBuffer, ic1D, v); + v += imageLoad(i2DMS, ic2D, 1); + imageStore(i2DMS, ic2D, 2, v); + v += imageLoad(i2DMSArray, ic3D, 3); + imageStore(i2DMSArray, ic3D, 4, v); + + imageStore(wo2D, ic2D, v); + + fragData = v; +} + diff --git a/deps/glslang/glslang/Test/spv.imageLoadStoreLod.frag b/deps/glslang/glslang/Test/spv.imageLoadStoreLod.frag new file mode 100644 index 0000000000..0da1da125d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.imageLoadStoreLod.frag @@ -0,0 +1,36 @@ +#version 450 core + +#extension GL_AMD_shader_image_load_store_lod: enable + +layout(rgba32f, binding = 0) uniform image1D i1D; +layout(rgba32f, binding = 1) uniform image2D i2D; +layout(rgba32f, binding = 2) uniform image3D i3D; +layout(rgba32i, binding = 3) uniform iimageCube iiCube; +layout(rgba32i, binding = 4) uniform iimage1DArray ii1DArray; +layout(rgba32ui, binding = 5) uniform uimage2DArray ui2DArray; +layout(rgba32ui, binding = 6) uniform uimageCubeArray uiCubeArray; + +layout(location = 0) out vec4 fragColor; + +void main() +{ + const int c1 = 1; + const ivec2 c2 = ivec2(2, 3); + const ivec3 c3 = ivec3(4, 5, 6); + + const int lod = 3; + + vec4 f4 = vec4(0.0); + f4 += imageLoadLodAMD(i1D, c1, lod); + f4 += imageLoadLodAMD(i2D, c2, lod); + f4 += imageLoadLodAMD(i3D, c3, lod); + + imageStoreLodAMD(iiCube, c3, lod, ivec4(f4)); + imageStoreLodAMD(ii1DArray, c2, lod, ivec4(f4)); + + uvec4 u4; + sparseImageLoadLodAMD(ui2DArray, c3, lod, u4); + sparseImageLoadLodAMD(uiCubeArray, c3, lod, u4); + + fragColor = f4 + vec4(u4); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.int16.amd.frag b/deps/glslang/glslang/Test/spv.int16.amd.frag new file mode 100644 index 0000000000..818e6d83d3 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.int16.amd.frag @@ -0,0 +1,314 @@ +#version 450 core + +#extension GL_ARB_gpu_shader_int64: enable +#extension GL_AMD_gpu_shader_half_float: enable +#extension GL_AMD_gpu_shader_int16: enable + +layout(binding = 0) uniform Uniforms +{ + uint i; +}; + +// int16/uint16 in block +layout(std140, binding = 1) uniform Block +{ + i16vec3 i16v; + uint16_t u16; +} block; + +// int16/uint16 for input +layout(location = 0) in flat u16vec3 iu16v; +layout(location = 1) in flat int16_t ii16; + +void literal() +{ + const int16_t i16c[3] = + { + 0x111S, // Hex + -2s, // Dec + 0400s, // Oct + }; + + const uint16_t u16c[] = + { + 0xFFFFus, // Hex + 65535US, // Dec + 0177777us, // Oct + }; + + uint16_t u16 = i16c[i] + u16c[i]; +} + +void operators() +{ + u16vec3 u16v; + int16_t i16; + uint16_t u16; + int i; + uint u; + bool b; + + // Unary + u16v++; + i16--; + ++i16; + --u16v; + + u16v = ~u16v; + + i16 = +i16; + u16v = -u16v; + + // Arithmetic + u16 += i16; + u16v -= u16v; + i16 *= i16; + u16v /= u16v; + u16v %= i16; + + u16v = u16v + u16v; + u16 = i16 - u16; + u16v = u16v * i16; + i16 = i16 * i16; + i16 = i16 % i16; + + // Shift + u16v <<= i16; + i16 >>= u16v.y; + + i16 = i16 << u16v.z; + u16v = u16v << i16; + + // Relational + b = (u16v.x != i16); + b = (i16 == u16v.x); + b = (u16v.x > u16v.y); + b = (i16 < u); + b = (u16v.y >= u16v.x); + b = (i16 <= i); + + // Bitwise + u16v |= i16; + u16 = i16 | u16; + i16 &= i16; + u16v = u16v & u16v; + u16v ^= i16; + u16v = u16v ^ i16; +} + +void typeCast() +{ + bvec2 bv; + ivec2 iv; + uvec2 uv; + vec2 fv; + dvec2 dv; + + f16vec2 f16v; + i64vec2 i64v; + u64vec2 u64v; + i16vec2 i16v; + u16vec2 u16v; + + i16v = i16vec2(bv); // bool -> int16 + u16v = u16vec2(bv); // bool -> uint16 + bv = bvec2(i16v); // int16 -> bool + bv = bvec2(u16v); // uint16 -> bool + + i16v = i16vec2(iv); // int -> int16 + u16v = u16vec2(iv); // int -> uint16 + iv = i16v; // int16 -> int + iv = ivec2(u16v); // uint16 -> int + + i16v = i16vec2(uv); // uint -> int16 + u16v = u16vec2(uv); // uint -> uint16 + uv = i16v; // int16 -> uint + uv = u16v; // uint16 -> uint + + i16v = i16vec2(fv); // float -> int16 + u16v = u16vec2(fv); // float -> uint16 + fv = i16v; // int16 -> float + fv = u16v; // uint16 -> float + + i16v = i16vec2(dv); // double -> int16 + u16v = u16vec2(dv); // double -> uint16 + dv = i16v; // int16 -> double + dv = u16v; // uint16 -> double + + i16v = i16vec2(f16v); // float16 -> int16 + u16v = u16vec2(f16v); // float16 -> uint16 + f16v = i16v; // int16 -> float16 + f16v = u16v; // uint16 -> float16 + + i16v = i16vec2(i64v); // int64 -> int16 + u16v = u16vec2(i64v); // int64 -> uint16 + i64v = i16v; // int16 -> int64 + i64v = i64vec2(u16v); // uint16 -> int64 + + i16v = i16vec2(u64v); // uint64 -> int16 + u16v = u16vec2(u64v); // uint64 -> uint16 + u64v = i16v; // int16 -> uint64 + u64v = u16v; // uint16 -> uint64 + + i16v = i16vec2(u16v); // uint16 -> int16 + u16v = i16v; // int16 -> uint16 +} + +void builtinFuncs() +{ + i16vec2 i16v; + u16vec3 u16v; + f16vec3 f16v; + bvec3 bv; + + int16_t i16; + uint16_t u16; + + // abs() + i16v = abs(i16v); + + // sign() + i16v = sign(i16v); + + // min() + i16v = min(i16v, i16); + i16v = min(i16v, i16vec2(-1s)); + u16v = min(u16v, u16); + u16v = min(u16v, u16vec3(0us)); + + // max() + i16v = max(i16v, i16); + i16v = max(i16v, i16vec2(-1s)); + u16v = max(u16v, u16); + u16v = max(u16v, u16vec3(0us)); + + // clamp() + i16v = clamp(i16v, -i16, i16); + i16v = clamp(i16v, -i16v, i16v); + u16v = clamp(u16v, -u16, u16); + u16v = clamp(u16v, -u16v, u16v); + + // mix() + i16 = mix(i16v.x, i16v.y, true); + i16v = mix(i16vec2(i16), i16vec2(-i16), bvec2(false)); + u16 = mix(u16v.x, u16v.y, true); + u16v = mix(u16vec3(u16), u16vec3(-u16), bvec3(false)); + + // frexp() + i16vec3 exp; + f16v = frexp(f16v, exp); + + // ldexp() + f16v = ldexp(f16v, exp); + + // float16BitsToInt16() + i16v = float16BitsToInt16(f16v.xy); + + // float16BitsToUint16() + u16v.x = float16BitsToUint16(f16v.z); + + // int16BitsToFloat16() + f16v.xy = int16BitsToFloat16(i16v); + + // uint16BitsToFloat16() + f16v = uint16BitsToFloat16(u16v); + + // packInt2x16() + int packi = packInt2x16(i16v); + + // unpackInt2x16() + i16v = unpackInt2x16(packi); + + // packUint2x16() + uint packu = packUint2x16(u16v.xy); + + // unpackUint2x16() + u16v.xy = unpackUint2x16(packu); + + // packInt4x16() + int64_t packi64 = packInt4x16(i16vec4(i16)); + + // unpackInt4x16() + i16v = unpackInt4x16(packi64).xy; + + // packUint4x16() + uint64_t packu64 = packUint4x16(u16vec4(u16)); + + // unpackUint4x16() + u16v = unpackUint4x16(packu64).xyz; + + // lessThan() + bv = lessThan(u16v, u16vec3(u16)); + bv.xy = lessThan(i16v, i16vec2(i16)); + + // lessThanEqual() + bv = lessThanEqual(u16v, u16vec3(u16)); + bv.xy = lessThanEqual(i16v, i16vec2(i16)); + + // greaterThan() + bv = greaterThan(u16v, u16vec3(u16)); + bv.xy = greaterThan(i16v, i16vec2(i16)); + + // greaterThanEqual() + bv = greaterThanEqual(u16v, u16vec3(u16)); + bv.xy = greaterThanEqual(i16v, i16vec2(i16)); + + // equal() + bv = equal(u16v, u16vec3(u16)); + bv.xy = equal(i16v, i16vec2(i16)); + + // notEqual() + bv = notEqual(u16v, u16vec3(u16)); + bv.xy = notEqual(i16v, i16vec2(i16)); +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int64_t si64 = -10L; +layout(constant_id = 101) const uint64_t su64 = 20UL; +layout(constant_id = 102) const int si = -5; +layout(constant_id = 103) const uint su = 4; +layout(constant_id = 104) const bool sb = true; +layout(constant_id = 105) const int16_t si16 = -5S; +layout(constant_id = 106) const uint16_t su16 = 4US; + +// bool <-> int16/uint16 +const bool i16_to_b = bool(si16); +const bool u16_to_b = bool(su16); +const int16_t b_to_i16 = int16_t(sb); +const uint16_t b_to_u16 = uint16_t(sb); + +// int <-> int16/uint16 +const int i16_to_i = int(si16); +const int u16_to_i = int(su16); +const int16_t i_to_i16 = int16_t(si); +const uint16_t i_to_u16 = uint16_t(si); + +// uint <-> int16/uint16 +const uint i16_to_u = uint(si16); +const uint u16_to_u = uint(su16); +const int16_t u_to_i16 = int16_t(su); +const uint16_t u_to_u16 = uint16_t(su); + +// int64 <-> int16/uint16 +const int64_t i16_to_i64 = int64_t(si16); +const int64_t u16_to_i64 = int64_t(su16); +const int16_t i64_to_i16 = int16_t(si64); +const uint16_t i64_to_u16 = uint16_t(si64); + +// uint64 <-> int16/uint16 +const uint64_t i16_to_u64 = uint64_t(si16); +const uint64_t u16_to_u64 = uint64_t(su16); +const int16_t u64_to_i16 = int16_t(su64); +const uint16_t u64_to_u16 = uint16_t(su64); + +// int16 <-> uint16 +const uint16_t i16_to_u16 = uint16_t(si16); +const int16_t u16_to_i16 = int16_t(su16); + +void main() +{ + literal(); + operators(); + typeCast(); + builtinFuncs(); +} diff --git a/deps/glslang/glslang/Test/spv.int16.frag b/deps/glslang/glslang/Test/spv.int16.frag new file mode 100644 index 0000000000..d29894b840 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.int16.frag @@ -0,0 +1,251 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +layout(binding = 0) uniform Uniforms +{ + uint index; +}; + +layout(std140, binding = 1) uniform Block +{ + int16_t i16; + i16vec2 i16v2; + i16vec3 i16v3; + i16vec4 i16v4; + uint16_t u16; + u16vec2 u16v2; + u16vec3 u16v3; + u16vec4 u16v4; +} block; + +void main() +{ +} + +void literal() +{ + const int16_t i16Const[3] = + { + int16_t(-0x1111), // Hex + int16_t(-1), // Dec + int16_t(040000), // Oct + }; + + int16_t i16 = i16Const[index]; + + const uint16_t u16Const[] = + { + uint16_t(0xFFFF), // Hex + uint16_t(65535), // Dec + uint16_t(077777), // Oct + }; + + uint16_t u16 = u16Const[index]; +} + +void typeCast16() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + i32v = i16v; // int16_t -> int32_t + i32v = u16v; // uint16_t -> int32_t + u16v = i16v; // int16_t -> uint16_t + u32v = i16v; // int16_t -> uint32_t + i64v = i16v; // int16_t -> int64_t + u64v = i16v; // int16_t -> uint64_t + u32v = u16v; // uint16_t -> uint32_t + i64v = u16v; // uint16_t -> int64_t + u64v = u16v; // uint16_t -> uint64_t + f16v = i16v; // int16_t -> float16_t + f32v = i16v; // int16_t -> float32_t + f64v = i16v; // int16_t -> float64_t + f16v = u16v; // uint16_t -> float16_t + f32v = u16v; // uint16_t -> float32_t + f64v = u16v; // uint16_t -> float64_t + + i32v = i32vec2(i16v); // int16_t -> int32_t + i32v = i32vec2(u16v); // uint16_t -> int32_t + u16v = u16vec2(i16v); // int16_t -> uint16_t + u32v = u32vec2(i16v); // int16_t -> uint32_t + i64v = i64vec2(i16v); // int16_t -> int64_t + u64v = i64vec2(i16v); // int16_t -> uint64_t + u32v = u32vec2(u16v); // uint16_t -> uint32_t + i64v = i64vec2(u16v); // uint16_t -> int64_t + u64v = i64vec2(u16v); // uint16_t -> uint64_t + f16v = f16vec2(i16v); // int16_t -> float16_t + f32v = f32vec2(i16v); // int16_t -> float32_t + f64v = f64vec2(i16v); // int16_t -> float64_t + f16v = f16vec2(u16v); // uint16_t -> float16_t + f32v = f32vec2(u16v); // uint16_t -> float32_t + f64v = f64vec2(u16v); // uint16_t -> float64_t + + i8v = i8vec2(i16v); // int16_t -> int8_t + i8v = i8vec2(u16v); // uint16_t -> int8_t + u8v = u8vec2(i16v); // int16_t -> uint8_t + u8v = u8vec2(u16v); // uint16_t -> uint8_t + i16v = u8vec2(u16v); // uint16_t -> int16_t + i16v = i16vec2(bv); // bool -> int16 + u16v = u16vec2(bv); // bool -> uint16 + bv = bvec2(i16v); // int16 -> bool + bv = bvec2(u16v); // uint16 -> bool +} +void operators() +{ + u16vec3 u16v; + int16_t i16; + uvec3 uv; + int32_t i; + int64_t i64; + bool b; + + // Unary + u16v++; + i16--; + ++i16; + --u16v; + + u16v = ~u16v; + + i16 = +i16; + u16v = -u16v; + + // Arithmetic + i16 += i16; + u16v -= u16v; + i *= i16; + uv /= u16v; + uv %= i16; + + uv = u16v + uv; + i64 = i16 - i64; + uv = u16v * uv; + i64 = i16 * i64; + i = i16 % i; + + // Shift + u16v <<= i16; + i16 >>= u16v.y; + + i16 = i16 << u16v.z; + uv = u16v << i; + + // Relational + b = (u16v.x != i16); + b = (i16 == u16v.x); + b = (u16v.x > uv.y); + b = (i16 < i); + b = (u16v.y >= uv.x); + b = (i16 <= i); + + // Bitwise + uv |= i16; + i = i16 | i; + i64 &= i16; + uv = u16v & uv; + uv ^= i16; + u16v = u16v ^ i16; +} + +void builtinFuncs() +{ + i16vec2 i16v; + i16vec4 i16v4; + u16vec3 u16v; + u16vec2 u16v2; + u16vec4 u16v4; + bvec3 bv; + int16_t i16; + uint16_t u16; + int32_t i32; + uint32_t u32; + int64_t i64; + uint64_t u64; + + // abs() + i16v = abs(i16v); + + // sign() + i16 = sign(i16); + + // min() + i16v = min(i16v, i16); + i16v = min(i16v, i16vec2(-1)); + u16v = min(u16v, u16); + u16v = min(u16v, u16vec3(0)); + + // max() + i16v = max(i16v, i16); + i16v = max(i16v, i16vec2(-1)); + u16v = max(u16v, u16); + u16v = max(u16v, u16vec3(0)); + + // clamp() + i16v = clamp(i16v, -i16, i16); + i16v = clamp(i16v, -i16v, i16v); + u16v = clamp(u16v, -u16, u16); + u16v = clamp(u16v, -u16v, u16v); + + // mix() + i16 = mix(i16v.x, i16v.y, true); + i16v = mix(i16vec2(i16), i16vec2(-i16), bvec2(false)); + u16 = mix(u16v.x, u16v.y, true); + u16v = mix(u16vec3(u16), u16vec3(-u16), bvec3(false)); + + //pack + i32 = pack32(i16v); + i64 = pack64(i16v4); + u32 = pack32(u16v2); + u64 = pack64(u16v4); + + i16v = unpack16(i32); + i16v4 = unpack16(i64); + u16v2 = unpack16(u32); + u16v4 = unpack16(u64); + + // lessThan() + bv = lessThan(u16v, u16vec3(u16)); + bv.xy = lessThan(i16v, i16vec2(i16)); + + // lessThanEqual() + bv = lessThanEqual(u16v, u16vec3(u16)); + bv.xy = lessThanEqual(i16v, i16vec2(i16)); + + // greaterThan() + bv = greaterThan(u16v, u16vec3(u16)); + bv.xy = greaterThan(i16v, i16vec2(i16)); + + // greaterThanEqual() + bv = greaterThanEqual(u16v, u16vec3(u16)); + bv.xy = greaterThanEqual(i16v, i16vec2(i16)); + + // equal() + bv = equal(u16v, u16vec3(u16)); + bv.xy = equal(i16v, i16vec2(i16)); + + // notEqual() + bv = notEqual(u16v, u16vec3(u16)); + bv.xy = notEqual(i16v, i16vec2(i16)); +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int16_t si16 = int16_t(-10); +layout(constant_id = 101) const uint16_t su16 = uint16_t(20); diff --git a/deps/glslang/glslang/Test/spv.int32.frag b/deps/glslang/glslang/Test/spv.int32.frag new file mode 100644 index 0000000000..3a33c67c4c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.int32.frag @@ -0,0 +1,256 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +layout(binding = 0) uniform Uniforms +{ + uint index; +}; + +layout(std140, binding = 1) uniform Block +{ + int32_t i32; + i32vec2 i32v2; + i32vec3 i32v3; + i32vec4 i32v4; + uint32_t u32; + u32vec2 u32v2; + u32vec3 u32v3; + u32vec4 u32v4; +} block; + +void main() +{ +} + +void literal() +{ + + const int32_t i32Const[3] = + { + -0x11111111, // Hex + -1, // Dec + 04000000000, // Oct + }; + + int32_t i32 = i32Const[index]; + + const uint32_t u32Const[] = + { + 0xFFFFFFFF, // Hex + 4294967295, // Dec + 017777777777, // Oct + }; + + uint32_t u32 = u32Const[index]; +} + +void typeCast32() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + u32v = i32v; // int32_t -> uint32_t + i64v = i32v; // int32_t -> int64_t + u64v = i32v; // int32_t -> uint64_t + i64v = u32v; // uint32_t -> int64_t + u64v = u32v; // uint32_t -> uint64_t + f32v = i32v; // int32_t -> float32_t + f64v = i32v; // int32_t -> float64_t + f32v = u32v; // uint32_t -> float32_t + f64v = u32v; // uint32_t -> float64_t + + i8v = i8vec2(i32v); // int32_t -> int8_t + i8v = i8vec2(u32v); // uint32_t -> int8_t + i16v = i16vec2(i32v); // int32_t -> int16_t + i16v = i16vec2(u32v); // uint32_t -> int16_t + i32v = i32vec2(i32v); // int32_t -> int32_t + i32v = i32vec2(u32v); // uint32_t -> int32_t + i64v = i64vec2(i32v); // int32_t -> int64_t + i64v = i64vec2(u32v); // uint32_t -> int64_t + u8v = u8vec2(i32v); // int32_t -> uint8_t + u8v = u8vec2(u32v); // uint32_t -> uint8_t + u16v = u16vec2(i32v); // int32_t -> uint16_t + u16v = u16vec2(u32v); // uint32_t -> uint16_t + u32v = u32vec2(i32v); // int32_t -> uint32_t + u32v = u32vec2(u32v); // uint32_t -> uint32_t + u64v = u64vec2(i32v); // int32_t -> uint64_t + u64v = u64vec2(u32v); // uint32_t -> uint64_t + + f16v = f16vec2(i32v); // int32_t -> float16_t + f32v = f32vec2(i32v); // int32_t -> float32_t + f64v = f64vec2(i32v); // int32_t -> float64_t + f16v = f16vec2(u32v); // uint32_t -> float16_t + f32v = f32vec2(u32v); // uint32_t -> float32_t + f64v = f64vec2(u32v); // uint32_t -> float64_t + + i32v = i32vec2(bv); // bool -> int32 + u32v = u32vec2(bv); // bool -> uint32 + bv = bvec2(i32v); // int32 -> bool + bv = bvec2(u32v); // uint32 -> bool +} + +void operators() +{ + u32vec3 u32v; + int32_t i32; + uvec3 uv; + int32_t i; + int64_t i64; + bool b; + + // Unary + u32v++; + i32--; + ++i32; + --u32v; + + u32v = ~u32v; + + i32 = +i32; + u32v = -u32v; + + // Arithmetic + i32 += i32; + u32v -= u32v; + i *= i32; + uv /= u32v; + uv %= i32; + + uv = u32v + uv; + i64 = i32 - i64; + uv = u32v * uv; + i64 = i32 * i64; + i = i32 % i; + + // Shift + u32v <<= i32; + i32 >>= u32v.y; + + i64 = i64 << u32v.z; + uv = u32v << i; + + // Relational + b = (u32v.x != i32); + b = (i32 == u32v.x); + b = (u32v.x > uv.y); + b = (i32 < i); + b = (u32v.y >= uv.x); + b = (i32 <= i); + + // Bitwise + uv |= i32; + i = i32 | i; + i64 &= i32; + uv = u32v & uv; + uv ^= i32; + u32v = u32v ^ i32; +} + +void builtinFuncs() +{ + i32vec2 i32v; + i32vec4 i32v4; + u32vec3 u32v; + u32vec2 u32v2; + u32vec4 u32v4; + bvec3 bv; + int32_t i32; + uint32_t u32; + int64_t i64; + uint64_t u64; + i8vec4 i8v4; + u8vec4 u8v4; + i16vec2 i16v2; + u16vec2 u16v2; + + // abs() + i32v = abs(i32v); + + // sign() + i32 = sign(i32); + + // min() + i32v = min(i32v, i32); + i32v = min(i32v, i32vec2(-1)); + u32v = min(u32v, u32); + u32v = min(u32v, u32vec3(0)); + + // max() + i32v = max(i32v, i32); + i32v = max(i32v, i32vec2(-1)); + u32v = max(u32v, u32); + u32v = max(u32v, u32vec3(0)); + + // clamp() + i32v = clamp(i32v, -i32, i32); + i32v = clamp(i32v, -i32v, i32v); + u32v = clamp(u32v, -u32, u32); + u32v = clamp(u32v, -u32v, u32v); + + // mix() + i32 = mix(i32v.x, i32v.y, true); + i32v = mix(i32vec2(i32), i32vec2(-i32), bvec2(false)); + u32 = mix(u32v.x, u32v.y, true); + u32v = mix(u32vec3(u32), u32vec3(-u32), bvec3(false)); + + //pack + i32 = pack32(i8v4); + i32 = pack32(i16v2); + u32 = pack32(u8v4); + u32 = pack32(u16v2); + + i32v = unpack32(i64); + u32v2 = unpack32(u64); + + // lessThan() + bv = lessThan(u32v, u32vec3(u32)); + bv.xy = lessThan(i32v, i32vec2(i32)); + + // lessThanEqual() + bv = lessThanEqual(u32v, u32vec3(u32)); + bv.xy = lessThanEqual(i32v, i32vec2(i32)); + + // greaterThan() + bv = greaterThan(u32v, u32vec3(u32)); + bv.xy = greaterThan(i32v, i32vec2(i32)); + + // greaterThanEqual() + bv = greaterThanEqual(u32v, u32vec3(u32)); + bv.xy = greaterThanEqual(i32v, i32vec2(i32)); + + // equal() + bv = equal(u32v, u32vec3(u32)); + bv.xy = equal(i32v, i32vec2(i32)); + + // notEqual() + bv = notEqual(u32v, u32vec3(u32)); + bv.xy = notEqual(i32v, i32vec2(i32)); +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int32_t si32 = -10; +layout(constant_id = 101) const uint32_t su32 = 20U; +layout(constant_id = 102) const int si = -5; +layout(constant_id = 103) const uint su = 4; +layout(constant_id = 104) const bool sb = true; + +#define UINT32_MAX 4294967295u +uint32_t u32Max = UINT32_MAX; diff --git a/deps/glslang/glslang/Test/spv.int64.frag b/deps/glslang/glslang/Test/spv.int64.frag new file mode 100644 index 0000000000..8fda12b3aa --- /dev/null +++ b/deps/glslang/glslang/Test/spv.int64.frag @@ -0,0 +1,267 @@ +#version 450 + +#extension GL_ARB_gpu_shader_int64: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require + +layout(binding = 0) uniform Uniforms +{ + uint index; +}; + +layout(std140, binding = 1) uniform Block +{ + i64vec3 i64v; + uint64_t u64; +} block; + +void main() +{ +} + +void literal() +{ + const int64_t i64Const[3] = + { + -0x1111111111111111l, // Hex + -1l, // Dec + 040000000000l, // Oct + }; + + int64_t i64 = i64Const[index]; + + const uint64_t u64Const[] = + { + 0xFFFFFFFFFFFFFFFFul, // Hex + 4294967296UL, // Dec + 077777777777ul, // Oct + }; + + uint64_t u64 = u64Const[index]; +} + +void typeCast() +{ + bvec2 bv; + ivec2 iv; + uvec2 uv; + vec2 fv; + dvec2 dv; + + i64vec2 i64v; + u64vec2 u64v; + + i64v = i64vec2(bv); // bool -> int64 + u64v = u64vec2(bv); // bool -> uint64 + + i64v = iv; // int -> int64 + iv = ivec2(i64v); // int64 -> int + + u64v = uv; // uint -> uint64 + uv = uvec2(u64v); // uint64 -> uint + + fv = vec2(i64v); // int64 -> float + dv = i64v; // int64 -> double + + fv = vec2(u64v); // uint64 -> float + dv = u64v; // uint64 -> double + + i64v = i64vec2(fv); // float -> int64 + i64v = i64vec2(dv); // double -> int64 + + u64v = u64vec2(fv); // float -> uint64 + u64v = u64vec2(dv); // double -> uint64 + + bv = bvec2(i64v); // int64 -> bool + bv = bvec2(u64v); // uint64 -> bool + + u64v = i64v; // int64 -> uint64 + i64v = i64vec2(u64v); // uint64 -> int64 + + uv = uvec2(i64v); // int64 -> uint + i64v = i64vec2(uv); // uint -> int64 + iv = ivec2(u64v); // uint64 -> int + u64v = iv; // int -> uint64 +} + +void operators() +{ + u64vec3 u64v; + int64_t i64; + uvec3 uv; + int i; + bool b; + + // Unary + u64v++; + i64--; + ++i64; + --u64v; + + u64v = ~u64v; + + i64 = +i64; + u64v = -u64v; + + // Arithmetic + i64 += i64; + u64v -= u64v; + i64 *= i; + u64v /= uv; + u64v %= i; + + u64v = u64v + uv; + i64 = i64 - i; + u64v = u64v * uv; + i64 = i64 * i; + i64 = i64 % i; + + // Shift + u64v = u64v << i; + i64 = i64 >> uv.y; + u64v <<= i; + i64 >>= uv.y; + + i64 = i64 << u64v.z; + u64v = u64v << i64; + + // Relational + b = (u64v.x != i64); + b = (i64 == u64v.x); + b = (u64v.x > uv.y); + b = (i64 < i); + b = (u64v.y >= uv.x); + b = (i64 <= i); + + // Bitwise + u64v |= i; + i64 = i64 | i; + i64 &= i; + u64v = u64v & uv; + u64v ^= i64; + u64v = u64v ^ i64; +} + +void builtinFuncs() +{ + i64vec2 i64v; + u64vec3 u64v; + dvec3 dv; + bvec3 bv; + + int64_t i64; + uint64_t u64; + + // abs() + i64v = abs(i64v); + + // sign() + i64 = sign(i64); + + // min() + i64v = min(i64v, i64); + i64v = min(i64v, i64vec2(-1)); + u64v = min(u64v, u64); + u64v = min(u64v, u64vec3(0)); + + // max() + i64v = max(i64v, i64); + i64v = max(i64v, i64vec2(-1)); + u64v = max(u64v, u64); + u64v = max(u64v, u64vec3(0)); + + // clamp() + i64v = clamp(i64v, -i64, i64); + i64v = clamp(i64v, -i64v, i64v); + u64v = clamp(u64v, -u64, u64); + u64v = clamp(u64v, -u64v, u64v); + + // mix() + i64 = mix(i64v.x, i64v.y, true); + i64v = mix(i64vec2(i64), i64vec2(-i64), bvec2(false)); + u64 = mix(u64v.x, u64v.y, true); + u64v = mix(u64vec3(u64), u64vec3(-u64), bvec3(false)); + + // doubleBitsToInt64() + i64v = doubleBitsToInt64(dv.xy); + + // doubleBitsToUint64() + u64v.x = doubleBitsToUint64(dv.z); + + // int64BitsToDouble() + dv.xy = int64BitsToDouble(i64v); + + // uint64BitsToDouble() + dv = uint64BitsToDouble(u64v); + + // packInt2x32() + i64 = packInt2x32(ivec2(1, 2)); + + // unpackInt2x32() + ivec2 iv = unpackInt2x32(i64); + + // packUint2x32() + u64 = packUint2x32(uvec2(2, 3)); + + // unpackUint2x32() + uvec2 uv = unpackUint2x32(u64); + + // lessThan() + bv = lessThan(u64v, u64vec3(u64)); + bv.xy = lessThan(i64v, i64vec2(i64)); + + // lessThanEqual() + bv = lessThanEqual(u64v, u64vec3(u64)); + bv.xy = lessThanEqual(i64v, i64vec2(i64)); + + // greaterThan() + bv = greaterThan(u64v, u64vec3(u64)); + bv.xy = greaterThan(i64v, i64vec2(i64)); + + // greaterThanEqual() + bv = greaterThanEqual(u64v, u64vec3(u64)); + bv.xy = greaterThanEqual(i64v, i64vec2(i64)); + + // equal() + bv = equal(u64v, u64vec3(u64)); + bv.xy = equal(i64v, i64vec2(i64)); + + // notEqual() + bv = notEqual(u64v, u64vec3(u64)); + bv.xy = notEqual(i64v, i64vec2(i64)); +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int64_t si64 = -10L; +layout(constant_id = 101) const uint64_t su64 = 20UL; +layout(constant_id = 102) const int si = -5; +layout(constant_id = 103) const uint su = 4; +layout(constant_id = 104) const bool sb = true; + +// bool <-> int64/uint64 +const bool i64_to_b = bool(si64); +const bool u64_to_b = bool(su64); +const int64_t b_to_i64 = int64_t(sb); +const uint64_t b_to_u64 = uint64_t(sb); + +// int <-> int64 +const int i64_to_i = int(si64); +const int64_t i_to_i64 = int64_t(si); + +// uint <-> uint64 +const uint u64_to_u = uint(su64); +const uint64_t u_to_u64 = uint64_t(su); + +// int64 <-> uint64 +const int64_t u64_to_i64 = int64_t(su64); +const uint64_t i64_to_u64 = uint64_t(si64); + +// int <-> uint64 +const int u64_to_i = int(su64); +const uint64_t i_to_u64 = uint64_t(si); + +// uint <-> int64 +const uint i64_to_u = uint(si64); +const int64_t u_to_i64 = int64_t(su); + +#define UINT64_MAX 18446744073709551615ul +uint64_t u64Max = UINT64_MAX; diff --git a/deps/glslang/glslang/Test/spv.int8.frag b/deps/glslang/glslang/Test/spv.int8.frag new file mode 100644 index 0000000000..f41c62f548 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.int8.frag @@ -0,0 +1,253 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +layout(binding = 0) uniform Uniforms +{ + uint index; +}; + +layout(std140, binding = 1) uniform Block +{ + int8_t i8; + i8vec2 i8v2; + i8vec3 i8v3; + i8vec4 i8v4; + uint8_t u8; + u8vec2 u8v2; + u8vec3 u8v3; + u8vec4 u8v4; +} block; + +void main() +{ +} + +void literal() +{ + const int8_t i8Const[3] = + { + int8_t(-0x11), // Hex + int8_t(-1), // Dec + int8_t(0400), // Oct + }; + + int8_t i8 = i8Const[index]; + + const uint8_t u8Const[] = + { + uint8_t(0xFF), // Hex + uint8_t(255), // Dec + uint8_t(0177), // Oct + }; + + uint8_t u8 = u8Const[index]; +} + +void typeCast8() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + u8v = i8v; // int8_t -> uint8_t + i16v = i8v; // int8_t -> int16_t + i16v = u8v; // uint8_t -> int16_t + i32v = i8v; // int8_t -> int32_t + i32v = u8v; // uint8_t -> int32_t + u32v = i8v; // int8_t -> uint32_t + i64v = i8v; // int8_t -> int64_t + u64v = i8v; // int8_t -> uint64_t + u32v = u8v; // uint8_t -> uint32_t + i64v = u8v; // uint8_t -> int64_t + u64v = u8v; // uint8_t -> uint64_t + f16v = i8v; // int8_t -> float16_t + f32v = i8v; // int8_t -> float32_t + f64v = i8v; // int8_t -> float64_t + f16v = u8v; // uint8_t -> float16_t + f32v = u8v; // uint8_t -> float32_t + f64v = u8v; // uint8_t -> float64_t + + i8v = i8vec2(u8v); // uint8_t -> int8_t + i16v = i16vec2(i8v); // int8_t -> int16_t + i16v = i16vec2(u8v); // uint8_t -> int16_t + i32v = i32vec2(i8v); // int8_t -> int32_t + i32v = i32vec2(u8v); // uint8_t -> int32_t + i64v = i64vec2(i8v); // int8_t -> int64_t + u64v = i64vec2(i8v); // int8_t -> uint64_t + u16v = u16vec2(i8v); // int8_t -> uint16_t + u16v = u16vec2(u8v); // uint8_t -> uint16_t + u32v = u32vec2(u8v); // uint8_t -> uint32_t + i64v = i64vec2(u8v); // uint8_t -> int64_t + u64v = i64vec2(u8v); // uint8_t -> uint64_t + f16v = f16vec2(i8v); // int8_t -> float16_t + f32v = f32vec2(i8v); // int8_t -> float32_t + f64v = f64vec2(i8v); // int8_t -> float64_t + f16v = f16vec2(u8v); // uint8_t -> float16_t + f32v = f32vec2(u8v); // uint8_t -> float32_t + f64v = f64vec2(u8v); // uint8_t -> float64_t + + i8v = i8vec2(bv); // bool -> int8 + u8v = u8vec2(bv); // bool -> uint8 + bv = bvec2(i8v); // int8 -> bool + bv = bvec2(u8v); // uint8 -> bool +} + +void operators() +{ + u8vec3 u8v; + int8_t i8; + uvec3 uv; + int32_t i; + int16_t i16; + bool b; + + // Unary + u8v++; + i8--; + ++i8; + --u8v; + + u8v = ~u8v; + + i8 = +i8; + u8v = -u8v; + + // Arithmetic + i8 += i8; + u8v -= u8v; + i *= i8; + uv /= u8v; + uv %= i8; + + uv = u8v + uv; + i16 = i8 - i16; + uv = u8v * uv; + i16 = i8 * i16; + i = i8 % i; + + // Shift + u8v <<= i8; + i8 >>= u8v.y; + + i8 = i8 << u8v.z; + u8v = u8v << i8; + + // Relational + b = (u8v.x != i8); + b = (i8 == u8v.x); + b = (u8v.x > uv.y); + b = (i8 < i); + b = (u8v.y >= uv.x); + b = (i8 <= i); + + // Bitwise + uv |= i8; + i = i8 | i; + i16 &= i8; + uv = u8v & uv; + uv ^= i8; + u8v = u8v ^ i8; +} + +void builtinFuncs() +{ + i8vec2 i8v; + i8vec4 i8v4; + u8vec3 u8v; + u8vec2 u8v2; + u8vec4 u8v4; + bvec3 bv; + int16_t i16; + int32_t i32; + uint16_t u16; + uint32_t u32; + + int8_t i8; + uint8_t u8; + + // abs() + i8v = abs(i8v); + + // sign() + i8 = sign(i8); + + // min() + i8v = min(i8v, i8); + i8v = min(i8v, i8vec2(-1)); + u8v = min(u8v, u8); + u8v = min(u8v, u8vec3(0)); + + // max() + i8v = max(i8v, i8); + i8v = max(i8v, i8vec2(-1)); + u8v = max(u8v, u8); + u8v = max(u8v, u8vec3(0)); + + // clamp() + i8v = clamp(i8v, -i8, i8); + i8v = clamp(i8v, -i8v, i8v); + u8v = clamp(u8v, -u8, u8); + u8v = clamp(u8v, -u8v, u8v); + + // mix() + i8 = mix(i8v.x, i8v.y, true); + i8v = mix(i8vec2(i8), i8vec2(-i8), bvec2(false)); + u8 = mix(u8v.x, u8v.y, true); + u8v = mix(u8vec3(u8), u8vec3(-u8), bvec3(false)); + + //pack + i16 = pack16(i8v); + i32 = pack32(i8v4); + u16 = pack16(u8v2); + u32 = pack32(u8v4); + + i8v = unpack8(i16); + i8v4 = unpack8(i32); + u8v2 = unpack8(u16); + u8v4 = unpack8(u32); + + // lessThan() + bv = lessThan(u8v, u8vec3(u8)); + bv.xy = lessThan(i8v, i8vec2(i8)); + + // lessThanEqual() + bv = lessThanEqual(u8v, u8vec3(u8)); + bv.xy = lessThanEqual(i8v, i8vec2(i8)); + + // greaterThan() + bv = greaterThan(u8v, u8vec3(u8)); + bv.xy = greaterThan(i8v, i8vec2(i8)); + + // greaterThanEqual() + bv = greaterThanEqual(u8v, u8vec3(u8)); + bv.xy = greaterThanEqual(i8v, i8vec2(i8)); + + // equal() + bv = equal(u8v, u8vec3(u8)); + bv.xy = equal(i8v, i8vec2(i8)); + + // notEqual() + bv = notEqual(u8v, u8vec3(u8)); + bv.xy = notEqual(i8v, i8vec2(i8)); +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int8_t si8 = int8_t(-10); +layout(constant_id = 101) const uint8_t su8 = uint8_t(20); diff --git a/deps/glslang/glslang/Test/spv.intOps.vert b/deps/glslang/glslang/Test/spv.intOps.vert new file mode 100644 index 0000000000..b7d749b442 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.intOps.vert @@ -0,0 +1,72 @@ +#version 310 es + +in uint u1; +in uvec2 u2; +in uvec3 u3; +in uvec4 u4; + +in float v1; +in vec2 v2; +in vec3 v3; +in vec4 v4; + +in int i1; +in ivec2 i2; +in ivec3 i3; +in ivec4 i4; + +out uvec4 uout; +out ivec4 iout; +out vec4 fout; + +void main() +{ + iout = ivec4(0); + uout = uvec4(0); + fout = vec4(0.0); + + uvec2 u2out; + uout.xy += uaddCarry(u2, u2, u2out); + uout.xy += u2out; + + uint u1out; + uout.x += usubBorrow(u1, u1, u1out); + uout.x += u1out; + + uvec4 u4outHi, u4outLow; + umulExtended(u4, u4, u4outHi, u4outLow); + uout += u4outHi + u4outLow; + + ivec4 i4outHi, i4outLow; + imulExtended(i4, i4, i4outHi, i4outLow); + iout += i4outLow + i4outHi; + + ivec3 i3out; + fout.xyz += frexp(v3, i3out); + iout.xyz += i3out; + int i1out; + fout.x += frexp(v1, i1out); + iout.x += i1out; + + fout.xy += ldexp(v2, i2); + fout.x += ldexp(v1, i1); + + iout.x += bitfieldExtract(i1, 4, 5); + uout.xyz += bitfieldExtract(u3, 4, 5); + iout.xyz += bitfieldInsert(i3, i3, 4, 5); + uout.x += bitfieldInsert(u1, u1, 4, 5); + iout.xy += bitfieldReverse(i2); + uout += bitfieldReverse(u4); + iout.x += bitCount(i1); + iout.xyz += bitCount(u3); + + iout.xy += findLSB(i2); + iout += findLSB(u4); + iout.x += findMSB(i1); + iout.xy += findMSB(u2); + + uout.x += packUnorm4x8(v4); + uout.x += packSnorm4x8(v4); + fout += unpackUnorm4x8(u1); + fout += unpackSnorm4x8(u1); +} diff --git a/deps/glslang/glslang/Test/spv.interpOps.frag b/deps/glslang/glslang/Test/spv.interpOps.frag new file mode 100644 index 0000000000..afe28dc3a2 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.interpOps.frag @@ -0,0 +1,32 @@ +#version 450 + +in float if1; +in vec2 if2; +in vec3 if3; +in vec4 if4; + +flat in int samp; +flat in vec2 offset; + +out vec4 fragColor; + +void main() +{ + vec4 f4 = vec4(0.0); + f4.x += interpolateAtCentroid(if1); + f4.xy += interpolateAtCentroid(if2); + f4.xyz += interpolateAtCentroid(if3); + f4 += interpolateAtCentroid(if4); + + f4.x += interpolateAtSample(if1, samp); + f4.xy += interpolateAtSample(if2, samp); + f4.xyz += interpolateAtSample(if3, samp); + f4 += interpolateAtSample(if4, samp); + + f4.x += interpolateAtOffset(if1, offset); + f4.xy += interpolateAtOffset(if2, offset); + f4.xyz += interpolateAtOffset(if3, offset); + f4 += interpolateAtOffset(if4, offset); + + fragColor = f4; +} diff --git a/deps/glslang/glslang/Test/spv.layoutNested.vert b/deps/glslang/glslang/Test/spv.layoutNested.vert new file mode 100644 index 0000000000..f0dc389803 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.layoutNested.vert @@ -0,0 +1,76 @@ +#version 450 + +// should get 3 SPV types for S: no layout, 140, and 430, plus extras for interpolation or invariant differences +struct S +{ + highp uvec3 a; + mediump mat2 b[4]; + lowp uint c; +}; + +layout(set = 0, binding = 0, std140) uniform Block140 +{ + mediump int u; + S s[2][3]; + mediump vec2 v; +} inst140; + +layout(set = 0, binding = 1, std430) buffer Block430 +{ + mediump int u; + S s[2][3]; + mediump vec2 v; +} inst430; + +S s; + +// should get 5 SPV types for T: no layout, 140/row, 140/col, 430/row, and 430/col +struct T { + mat2 m; + int a; +}; + +T t; + +struct Nestor { + T nestorT; +}; + +layout(set = 1, binding = 0, std140) uniform Bt1 +{ + layout(row_major) Nestor nt; +} Btn1; + +layout(set = 1, binding = 0, std140) uniform Bt2 +{ + layout(column_major) Nestor nt; +} Btn2; + +layout(row_major, set = 1, binding = 0, std140) uniform Bt3 +{ + layout(column_major) Nestor ntcol; + Nestor ntrow; // should be row major decoration version of Nestor +} Btn3; + +layout(set = 1, binding = 0, std430) buffer bBt1 +{ + layout(row_major) Nestor nt; +} bBtn1; + +layout(set = 1, binding = 0, std430) buffer bBt2 +{ + layout(column_major) Nestor nt; +} bBtn2; + +layout(set = 1, binding = 0, std430) buffer bBt3 +{ + layout(row_major) Nestor ntcol; + Nestor ntrow; // should be col major decoration version of Nestor +} bBtn3; + +void main() +{ +} + +flat out S sout; +invariant out S soutinv; diff --git a/deps/glslang/glslang/Test/spv.length.frag b/deps/glslang/glslang/Test/spv.length.frag new file mode 100644 index 0000000000..3b3db0b428 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.length.frag @@ -0,0 +1,14 @@ +#version 140 + +vec4 u[3]; + +in vec2 v[2]; + +void main() +{ + int a[5]; + + vec2 t = v[0] + v[1]; + + gl_FragColor = vec4(u.length() * v.length() * a.length()); +} diff --git a/deps/glslang/glslang/Test/spv.localAggregates.frag b/deps/glslang/glslang/Test/spv.localAggregates.frag new file mode 100644 index 0000000000..9bdb11b760 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.localAggregates.frag @@ -0,0 +1,72 @@ +#version 400 + +uniform sampler2D samp2D; +in vec2 coord; +in vec4 color; + +struct s1 { + int i; + float f; +}; + +struct s2 { + int i; + float f; + s1 s1_1; + vec4 bleh; +}; + +struct s3 { + s2 s2_1; + int i; + float f; + s1 s1_1; +}; + + +flat in s1 foo; +flat in s2 foo2; +flat in s3 foo3; + + +flat in int condition; + +void main() +{ + s2 locals2; + s3 locals3; + float localFArray[16]; + int localIArray[8]; + + locals2 = foo3.s2_1; + + if (foo3.s2_1.i > 0) { + locals2.s1_1.f = 1.0; + localFArray[4] = coord.x; + localIArray[2] = foo3.s2_1.i; + } else { + locals2.s1_1.f = coord.x; + localFArray[4] = 1.0; + localIArray[2] = 0; + } + + if (localIArray[2] == 0) + ++localFArray[4]; + + float localArray[16]; + int x = 5; + localArray[x] = coord.x; + + float[16] a; + + for (int i = 0; i < 16; i++) + a[i] = 0.0; + + if (condition == 1) + a = localArray; + + locals2.bleh = color; + locals2.bleh.z = coord.y; + + gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture(samp2D, coord); +} diff --git a/deps/glslang/glslang/Test/spv.loops.frag b/deps/glslang/glslang/Test/spv.loops.frag new file mode 100644 index 0000000000..b9ec09975f --- /dev/null +++ b/deps/glslang/glslang/Test/spv.loops.frag @@ -0,0 +1,302 @@ +#version 140 +in vec4 bigColor; +in vec4 bigColor1_1; +in vec4 bigColor1_2; +in vec4 bigColor1_3; +in vec4 bigColor2; +in vec4 bigColor3; +in vec4 bigColor4; +in vec4 bigColor5; +in vec4 bigColor6; +in vec4 bigColor7; +in vec4 bigColor8; + +in vec4 BaseColor; + +in float d; +in float d2; +in float d3; +in float d4; +in float d5; +in float d6; +in float d7; +in float d8; +in float d9; +in float d10; +in float d11; +in float d12; +in float d14; +in float d15; +in float d16; +in float d17; +in float d18; +flat in int Count; + +void main() +{ + vec4 color = BaseColor; + + // Not a real loop + while (true) { + if (color.x < 0.33) { + color += vec4(0.33); + break; + } + if (color.x < 0.66) { + color += vec4(0.66); + break; + } + + color += vec4(0.33); + break; + } + + // While + while (color.x < d) { + color += bigColor; + } + + // While (latchy) + while (color.z < d) { + color += bigColor1_1; + if (color.w < d) + continue; + + color += bigColor1_1; + } + + // While (constant) + while (color.x < 42.0) { + ++color; + } + + // While (complicated-conditional) + while (color.w < d2 && color.y < d3) { + color += bigColor1_2; + } + + // While (multi-exit) + while (color.z < d3) { + color += bigColor1_3; + if (color.y < d4) + break; + color += bigColor1_3; + } + + // For (dynamic) + for (int i = 0; i < Count; ++i) { + color += bigColor2; + } + + // Do while + do { + color += bigColor3; + } while (color.x < d2); + + // For (static) + for (int i = 0; i < 42; ++i) { + color.z += d3; + } + + // For (static) flow-control + for (int i = 0; i < 100; ++i) { + if (color.z < 20.0) + color.x++; + else + color.y++; + if (color.w < 20.0) + if (color.z > color.y) + 0; // do nothing + } + + // For (static) flow-control with latch merge + for (int i = 0; i < 120; ++i) { + if (color.z < 20.0) + color.x++; + else + color.y++; + } + + // For (static) latchy + for (int i = 0; i < 42; ++i) { + color.z += d3; + if (color.x < d4) + continue; + ++color.w; + } + + // For (static) multi-exit + for (int i = 0; i < 42; ++i) { + color.z += d3; + if (color.x < d4) + break; + ++color.w; + } + + // Latchy + do { + color += bigColor4; + if (color.x < d4) + continue; + if (color.y < d4) + color.y += d4; + else + color.x += d4; + } while (color.z < d4); + + // Do while flow control + do { + color += bigColor5; + if (color.y < d5) + color.y += d5; + } while (color.x < d5); + + // If then loop + if (color.x < d6) { + while (color.y < d6) + color += bigColor6; + } else { + while (color.z < d6) + color.z += bigColor6.z; + } + + // If then multi-exit + if (color.x < d6) { + while (color.y < d6) { + color += bigColor6; + if (d7 < 1.0) + break; + } + + } else { + while (color.z < d6) + color.z += bigColor6.z; + } + + + // Multi-exit + do { + if (d7 < 0.0) + break; + + color += bigColor7; + + if (d7 < 1.0) { + color.z++; + break; + } + + color += BaseColor; + + } while (true); + + + // Multi-exit2 + do { + // invariant conditional break at the top of the loop. This could be a + // situation where unswitching the loop has no real increases in code + // size. + if (d8 < 0.0) + break; + + color += bigColor7; + + if (d8 < 1.0) { + color.z++; + if (d8 < 2.0) { + color.y++; + } else { + color.x++; + } + break; + } + + color += BaseColor; + + } while (color.z < d8); + + // Deep exit + while (color.w < d9) { + if (d9 > d8) { + if (color.x <= d7) { + if (color.z == 5.0) + color.w++; + else + break; + } + } + + } + + // No end loop-back. + while (color.z < d10) { + color.y++; + if (color.y < d11) { + color.z++; + if (color.w < d12) + color.w++; + else + color.x++; + continue; + } + + color++; + break; + } + + // Multi-continue + while (color.x < 10.0) { + color += bigColor8; + + if (color.z < d8) + if (color.w < d6) + continue; + + color.y += bigColor8.x; + } + + color++; + gl_FragColor = color; + + // Early Return + while (color.x < d14) { + if (color.y < d15) { + return; + } + else + color++; + } + + color++; + + while (color.w < d16) { + color.w++; + } + + + // While (complicated-conditional) + while (color.w < d2 && color.y < d3) { + color += bigColor1_2; + if (color.z < d3) + return; + } + + + do { + if (color.y < d18) + return; + color++; + } while (color.x < d17); + + // Early Discard + while (color.y < d16) { + if (color.w < d16) { + discard; + } else + color++; + } + + color++; + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/spv.loopsArtificial.frag b/deps/glslang/glslang/Test/spv.loopsArtificial.frag new file mode 100644 index 0000000000..ae380b9456 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.loopsArtificial.frag @@ -0,0 +1,67 @@ +#version 140 +in vec4 bigColor; +in vec4 bigColor1_1; +in vec4 bigColor1_2; +in vec4 bigColor1_3; +in vec4 bigColor2; +in vec4 bigColor3; +in vec4 bigColor4; +in vec4 bigColor5; +in vec4 bigColor6; +in vec4 bigColor7; +in vec4 bigColor8; + +in vec4 BaseColor; + +in float d; +in float d2; +in float d3; +in float d4; +in float d13; + +flat in int Count; + +void main() +{ + vec4 color = BaseColor; + + // Latchy2 + do { + color += bigColor4; + if (color.x < d4) { + color.z += 2.0; + if (color.z < d4) { + color.x++; + continue; + } + } + if (color.y < d4) + color.y += d4; + else + color.x += d4; + } while (color.z < d4); + + // Immediate dominator + while (color.w < d13) { + if (color.z < d13) + color++; + else + color--; + // code from Latchy 2 + color += bigColor4; + if (color.x < d4) { + color.z += 2.0; + if (color.z < d4) { + color.x++; + continue; + } + } + if (color.y < d4) + color.y += d4; + else + color.x += d4; + } + + color++; + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/spv.looseUniformNoLoc.vert b/deps/glslang/glslang/Test/spv.looseUniformNoLoc.vert new file mode 100644 index 0000000000..e887359449 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.looseUniformNoLoc.vert @@ -0,0 +1,15 @@ +#version 450 core + +layout(location = 0) +in vec4 foo; + +layout(location = 0) +out vec4 bar; + +uniform vec4 uv; + +void main() +{ + bar = foo; + gl_Position = foo; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.matFun.vert b/deps/glslang/glslang/Test/spv.matFun.vert new file mode 100644 index 0000000000..49e882f402 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.matFun.vert @@ -0,0 +1,28 @@ +#version 400 + +uniform bl { + uniform mat4 m4; + uniform mat3 m3; +} bName; + +in vec3 v3; + +vec3 xf(mat3 m, vec3 v) +{ + return v * m; +} + +mat3 Mat3(mat4 m) +{ + return mat3(m[0].xyz, m[1].xyz, m[2].xyz); +} + +vec3 mxv(mat4 m4, vec3 v) +{ + return v * Mat3(m4); +} + +void main() +{ + gl_Position = vec4(mxv(bName.m4, v3) + xf(bName.m3, v3), 1.0); +} diff --git a/deps/glslang/glslang/Test/spv.matrix.frag b/deps/glslang/glslang/Test/spv.matrix.frag new file mode 100644 index 0000000000..3157173788 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.matrix.frag @@ -0,0 +1,49 @@ +#version 420 + +in mat3x4 m1; +in mat3x4 m2; +in float f; +in vec3 v3; +in vec4 v4; + +out vec4 color; + +void main() +{ + mat3x4 sum34; + dmat3x4 dm; + vec3 sum3; + vec4 sum4; + + sum34 = m1 - m2; + sum34 += m1 * f; + sum34 += f * m1; + sum34 /= matrixCompMult(m1, m2); + sum34 += m1 / f; + sum34 += f / m1; + sum34 += f; + sum34 -= f; + dm = dmat3x4(sum34); + sum34 = mat3x4(dm); + + sum3 = v4 * m2; + sum4 = m2 * v3; + + mat4x3 m43 = transpose(sum34); + mat4 m4 = m1 * m43; + + sum4 = v4 * m4; + + color = sum4; + + ++sum34; + --sum34; + + sum34 += mat3x4(f); + sum34 += mat3x4(v3, f, v3, f, v3, f); + + color += sum3 * m43 + sum4; + + color += vec4(m43); + color += vec4(vec3(mat2(f)), 7.2); +} diff --git a/deps/glslang/glslang/Test/spv.matrix2.frag b/deps/glslang/glslang/Test/spv.matrix2.frag new file mode 100644 index 0000000000..7fb6dd868f --- /dev/null +++ b/deps/glslang/glslang/Test/spv.matrix2.frag @@ -0,0 +1,50 @@ +#version 150 + +in mat3 colorTransform; +in vec3 Color; +in mat4 m, n; + +in mat4x3 um43; +in mat3x4 un34; +in mat2 um2; +in mat3 um3; +in mat4 um4; + +in vec4 v; + +in vec3 u; + +out vec4 FragColor; + +void main() +{ + mat3x4 m34 = outerProduct(v, u); + + m34 += mat3x4(4.3); + + FragColor = vec4(Color, 1.0); + FragColor *= vec4(FragColor * m34, 1.0); + + m34 *= v.x; + + mat4 m44 = mat4(un34); + + m44 += m34 * um43; + + FragColor += (-m44) * v; + + FragColor *= matrixCompMult(m44, m44); + + m34 = transpose(um43); + FragColor *= vec4(FragColor * m34, 1.0); + FragColor *= vec4(determinant(um4)); + mat2 inv = inverse(um2); + FragColor *= vec4(inv[0][0], inv[1][0], inv[0][1], inv[1][1]); + mat3 inv3 = inverse(um3); + FragColor *= vec4(inv3[2][1]); + + mat4 inv4 = inverse(um4); + FragColor *= inv4; + + FragColor = vec4(FragColor * matrixCompMult(un34, un34), FragColor.w); +} diff --git a/deps/glslang/glslang/Test/spv.memoryQualifier.frag b/deps/glslang/glslang/Test/spv.memoryQualifier.frag new file mode 100644 index 0000000000..85e71478de --- /dev/null +++ b/deps/glslang/glslang/Test/spv.memoryQualifier.frag @@ -0,0 +1,38 @@ +#version 450 + +layout(binding = 0, r32f) uniform coherent image1D i1D; +layout(binding = 1, r32f) uniform volatile image2D i2D; +layout(binding = 2, r32f) uniform restrict image2DRect i2DRect; +layout(binding = 3, r32f) uniform readonly image3D i3D; +layout(binding = 3, r32f) uniform writeonly imageCube iCube; + +struct Data +{ + float f1; + vec2 f2; +}; + +coherent buffer Buffer +{ + volatile float f1; + restrict vec2 f2; + readonly vec3 f3; + writeonly vec4 f4; + int i1; + Data data; +}; + +void main() +{ + vec4 texel = imageLoad(i1D, 1); + texel += imageLoad(i2D, ivec2(1)); + texel += imageLoad(i2DRect, ivec2(1)); + texel += imageLoad(i3D, ivec3(1)); + imageStore(iCube, ivec3(1), texel); + + texel[i1] = f1; + texel.xy += f2; + texel.xyz -= f3; + texel.w += data.f1 + data.f2[1]; + f4 = texel; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.merge-unreachable.frag b/deps/glslang/glslang/Test/spv.merge-unreachable.frag new file mode 100644 index 0000000000..a650cd1cdd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.merge-unreachable.frag @@ -0,0 +1,8 @@ +#version 450 +precision mediump int; precision highp float; +layout(location=1) in highp vec4 v; +void main (void) +{ + if (v == vec4(0.1,0.2,0.3,0.4)) discard; + else return; +} diff --git a/deps/glslang/glslang/Test/spv.multiStruct.comp b/deps/glslang/glslang/Test/spv.multiStruct.comp new file mode 100644 index 0000000000..7462da43bd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.multiStruct.comp @@ -0,0 +1,48 @@ +#version 450 core + +struct MyStruct +{ + vec2 foo[2]; + bool sb; +}; + +layout(binding = 0, std430) buffer SSBO0 +{ + MyStruct a; +} inBuf; + +layout(binding = 1, std430) buffer SSBO1 +{ + MyStruct b; +} outBuf; + +layout(binding = 2, std140) uniform UBO +{ + MyStruct c; +} uBuf; + +struct Nested { + float f; + MyStruct S[2]; +}; + +layout(binding = 2, std140) uniform UBON +{ + Nested N1; +} uBufN; + +layout(binding = 1, std430) buffer SSBO1N +{ + Nested N2; +} outBufN; + +void main() +{ + MyStruct t = inBuf.a; + outBuf.b = t; + t = uBuf.c; + outBuf.b = t; + + Nested n = uBufN.N1; + outBufN.N2 = n; +} diff --git a/deps/glslang/glslang/Test/spv.multiStructFuncall.frag b/deps/glslang/glslang/Test/spv.multiStructFuncall.frag new file mode 100644 index 0000000000..7f9968dcf8 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.multiStructFuncall.frag @@ -0,0 +1,21 @@ +#version 450 + +struct S { mat4 m; }; +buffer blockName { S s1; }; // need an S with decoration +S s2; // no decorations on S + +void fooConst(const in S s) { } +void foo(in S s) { } +void fooOut(inout S s) { } + +void main() +{ + fooConst(s1); + fooConst(s2); + + foo(s1); + foo(s2); + + fooOut(s1); + fooOut(s2); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.multiView.frag b/deps/glslang/glslang/Test/spv.multiView.frag new file mode 100644 index 0000000000..47c2763afd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.multiView.frag @@ -0,0 +1,9 @@ +#version 450 + +#extension GL_EXT_multiview : enable + +out vec4 color; + +void main() { + color = vec4(gl_ViewIndex, 0, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.tesc b/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.tesc new file mode 100644 index 0000000000..a0dd64dfbc --- /dev/null +++ b/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.tesc @@ -0,0 +1,14 @@ +#version 450 + +#extension GL_NVX_multiview_per_view_attributes :require + +layout(vertices = 4) out; +out gl_PerVertex { + int gl_ViewportMaskPerViewNV[]; + vec4 gl_PositionPerViewNV[]; + } gl_out[]; +void main() +{ + gl_out[gl_InvocationID].gl_ViewportMaskPerViewNV[0] = 1; + gl_out[gl_InvocationID].gl_PositionPerViewNV[0] = gl_in[1].gl_Position; +} diff --git a/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.vert b/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.vert new file mode 100644 index 0000000000..dd64a16c34 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.multiviewPerViewAttributes.vert @@ -0,0 +1,10 @@ +#version 450 + +#extension GL_NVX_multiview_per_view_attributes :require + +void main() +{ + gl_ViewportMaskPerViewNV[0] = 1; + gl_PositionPerViewNV[0] = gl_Position; +} + diff --git a/deps/glslang/glslang/Test/spv.newTexture.frag b/deps/glslang/glslang/Test/spv.newTexture.frag new file mode 100644 index 0000000000..6f5f67c0b0 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.newTexture.frag @@ -0,0 +1,72 @@ +#version 430 + +uniform sampler2D s2D; +uniform sampler2DRect sr; +uniform sampler3D s3D; +uniform samplerCube sCube; +uniform samplerCubeShadow sCubeShadow; +uniform samplerCubeArrayShadow sCubeArrayShadow; +uniform sampler2DShadow s2DShadow; +uniform sampler2DArray s2DArray; +uniform sampler2DArrayShadow s2DArrayShadow; + +uniform isampler2D is2D; +uniform isampler3D is3D; +uniform isamplerCube isCube; +uniform isampler2DArray is2DArray; +uniform isampler2DMS is2Dms; + +uniform usampler2D us2D; +uniform usampler3D us3D; +uniform usamplerCube usCube; +uniform usampler2DArray us2DArray; + +in float c1D; +in vec2 c2D; +in vec3 c3D; +in vec4 c4D; + +flat in int ic1D; +flat in ivec2 ic2D; +flat in ivec3 ic3D; +flat in ivec4 ic4D; + +out vec4 FragData; + +void main() +{ + vec4 v = texture(s2D, c2D); + v.y += texture(sCubeArrayShadow, c4D, c1D); + v += textureProj(s3D, c4D); + v += textureLod(s2DArray, c3D, 1.2); + v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); + v += texelFetch(s3D, ic3D, ic1D); + v += texelFetchOffset(s2D, ic2D, 4, ivec2(3)); + v += texelFetchOffset(sr, ic2D, ivec2(4)); + v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3)); + v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3)); + v += textureGrad(sCube, c3D, c3D, c3D); + v.x += textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ivec2(3)); + v += textureProjGrad(s3D, c4D, c3D, c3D); + v += textureProjGradOffset(s2D, c3D, c2D, c2D, ivec2(3)); + + ivec4 iv = texture(is2D, c2D); + v += vec4(iv); + iv = textureProjOffset(is2D, c4D, ivec2(3)); + v += vec4(iv); + iv = textureProjLod(is2D, c3D, c1D); + v += vec4(iv); + iv = textureProjGrad(is2D, c3D, c2D, c2D); + v += vec4(iv); + iv = texture(is3D, c3D, 4.2); + v += vec4(iv); + iv = textureLod(isCube, c3D, c1D); + v += vec4(iv); + iv = texelFetch(is2DArray, ic3D, ic1D); + v += vec4(iv); + + ivec2 iv2 = textureSize(sCubeShadow, 2); + // iv2 += textureSize(is2Dms); + + FragData = v + vec4(iv2, 0.0, 0.0); +} diff --git a/deps/glslang/glslang/Test/spv.noBuiltInLoc.vert b/deps/glslang/glslang/Test/spv.noBuiltInLoc.vert new file mode 100644 index 0000000000..4087ab363b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.noBuiltInLoc.vert @@ -0,0 +1,19 @@ +#version 450 core + +layout(location = 0) +in vec4 foo; + +layout(location = 0) +out vec4 bar; + +uniform vec4 uv1; +uniform float uv2; +uniform vec3 uv3; + +layout(binding = 0) uniform atomic_uint a_uint; + +void main() +{ + bar = foo; + gl_Position = foo; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.noDeadDecorations.vert b/deps/glslang/glslang/Test/spv.noDeadDecorations.vert new file mode 100644 index 0000000000..88984970b5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.noDeadDecorations.vert @@ -0,0 +1,13 @@ +#version 310 es +precision mediump float; + +float func(float a) +{ + return -a; + a = a * -1.0; +} + +void main() +{ + gl_Position.x = func(0.0); +} diff --git a/deps/glslang/glslang/Test/spv.noLocation.vert b/deps/glslang/glslang/Test/spv.noLocation.vert new file mode 100644 index 0000000000..43998525ea --- /dev/null +++ b/deps/glslang/glslang/Test/spv.noLocation.vert @@ -0,0 +1,39 @@ +#version 450 + +layout(location = 1) in vec4 in1; +in vec4 in2; // ERROR +layout(location = 3) in vec4 in3; + +layout(location = 1) out vec4 out1; +out vec4 out2; // ERROR +layout(location = 3) out vec4 out3; + +layout(location = 10) out inb1 { + vec4 a; + vec4 b; +} inbi1; +out inb2 { + layout(location = 12) vec4 a; + layout(location = 13) vec4 b; +} inbi2; +out inb3 { // ERROR + vec4 a; + vec4 b; +} inbi3; + +layout(location = 14) out struct S1 { vec4 a; } s1; +out struct S2 { vec4 a; } s2; // ERROR + +struct SS { int a; }; +out layout(location = 15) SS ss1; +out SS ss2; // ERROR + +out gl_PerVertex { + vec4 gl_Position; + float gl_ClipDistance[2]; +}; + +void main() +{ + gl_ClipDistance[0] = 1.0; +} diff --git a/deps/glslang/glslang/Test/spv.noWorkgroup.comp b/deps/glslang/glslang/Test/spv.noWorkgroup.comp new file mode 100644 index 0000000000..0c77f278fc --- /dev/null +++ b/deps/glslang/glslang/Test/spv.noWorkgroup.comp @@ -0,0 +1,7 @@ +#version 450 + +layout(local_size_x_id = 18, local_size_y_id=10,local_size_z_id = 19) in; + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/spv.nonSquare.vert b/deps/glslang/glslang/Test/spv.nonSquare.vert new file mode 100644 index 0000000000..9f7125bdf5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.nonSquare.vert @@ -0,0 +1,25 @@ +#version 140 + +in vec3 v3; +in vec4 v4; + +out mat3x2 m32; + +const vec2 cv2 = vec2(10.0, 20.0); +const mat2x4 m24 = mat2x4(3.0); +const mat4x2 m42 = mat4x2(1.0, 2.0, + 3.0, 4.0, + 5.0, 6.0, + 7.0, 8.0); + +void main() +{ + mat2x3 m23; + vec2 a, b; + + a = v3 * m23; + b = m32 * v3; + + gl_Position = vec4(m23 * m32 * v3, m24[1][3]) + + (m24 * m42) * v4 + cv2 * m42 + m24 * cv2 + vec4(cv2[1], cv2.x, m42[2][1], m42[2][0]); +} diff --git a/deps/glslang/glslang/Test/spv.nonuniform.frag b/deps/glslang/glslang/Test/spv.nonuniform.frag new file mode 100644 index 0000000000..d3b05a5ac9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.nonuniform.frag @@ -0,0 +1,55 @@ +#version 450 + +#extension GL_EXT_nonuniform_qualifier : enable + +layout(location=0) nonuniformEXT in vec4 nu_inv4; +nonuniformEXT float nu_gf; +layout(location=1) in nonuniformEXT flat int nu_ii; + +layout(binding=0, input_attachment_index = 0) uniform subpassInput inputAttachmentDyn[]; +layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[]; +layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[]; +layout(binding=3) uniform uname { float a; } uniformBuffer[]; +layout(binding=4) buffer bname { float b; } storageBuffer[]; +layout(binding=5) uniform sampler2D sampledImage[]; +layout(binding=6, r32f) uniform image2D storageImage[]; +layout(binding=7, input_attachment_index = 1) uniform subpassInput inputAttachment[]; +layout(binding=8) uniform samplerBuffer uniformTexelBuffer[]; +layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[]; + +nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f) +{ + return nupi; +} + +void main() +{ + nonuniformEXT int nu_li; + int dyn_i; + + int a = foo(nu_li, nu_li); + nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2); + + float b; + b = nu_inv4.x * nu_gf; + b += subpassLoad(inputAttachmentDyn[dyn_i]).x; + b += texelFetch(uniformTexelBufferDyn[dyn_i], 1).x; + b += imageLoad(storageTexelBufferDyn[dyn_i], 1).x; + b += uniformBuffer[nu_ii].a; + b += storageBuffer[nu_ii].b; + b += texture(sampledImage[nu_ii], vec2(0.5)).x; + b += imageLoad(storageImage[nu_ii], ivec2(1)).x; + b += subpassLoad(inputAttachment[nu_ii]).x; + b += texelFetch(uniformTexelBuffer[nu_ii], 1).x; + b += imageLoad(storageTexelBuffer[nu_ii], 1).x; + + nonuniformEXT ivec4 v; + nonuniformEXT mat4 m; + nonuniformEXT struct S { int a; } s; + ivec4 uv; + b += uniformBuffer[v.y].a; + b += uniformBuffer[v[2]].a; + b += uniformBuffer[uv[nu_ii]].a; + b += uniformBuffer[int(m[2].z)].a; + b += uniformBuffer[s.a].a; +} diff --git a/deps/glslang/glslang/Test/spv.offsets.frag b/deps/glslang/glslang/Test/spv.offsets.frag new file mode 100644 index 0000000000..0a1c008c92 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.offsets.frag @@ -0,0 +1,17 @@ +#version 450 + +layout(set = 0, binding = 0, std140) uniform n1 { + layout(offset = 8) int a; + layout(offset = 4) int b; + layout(offset = 0) int c; + layout(offset = 12) int d; +} i1; + +layout(set = 0, binding = 1, std430) buffer n2 { + layout(offset = 32) vec3 e; + vec3 f; + layout(offset = 16) vec3 g; + layout(offset = 0) vec3 h; +} i2; + +void main() {} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.paramMemory.frag b/deps/glslang/glslang/Test/spv.paramMemory.frag new file mode 100644 index 0000000000..79d2fe579d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.paramMemory.frag @@ -0,0 +1,30 @@ +#version 310 es + +readonly coherent uniform layout(set = 0, binding = 0, rgba32f) highp image2D image1; +readonly uniform layout(set = 0, binding = 2, rgba16f) highp image2D image2; +writeonly coherent uniform layout(set = 0, binding = 1, rgba32f) highp image2D image3; +writeonly uniform layout(set = 0, binding = 3, rgba16f) highp image2D image4; + +flat in layout(location = 0) highp ivec2 in_coords; +out layout(location = 0) highp vec4 out_color; + +highp vec4 image_load(readonly coherent highp image2D image, highp ivec2 coords) +{ + return imageLoad(image, in_coords); +} + +void image_store(writeonly coherent highp image2D image, highp ivec2 coords, highp vec4 data) +{ + imageStore(image, in_coords, data); +} + +void main() +{ + highp vec4 read1 = image_load(image1, in_coords); + highp vec4 read2 = image_load(image2, in_coords); + + image_store(image3, in_coords, read1*0.5); + image_store(image4, in_coords, read2*2.0); + + out_color = vec4(0.0); +} diff --git a/deps/glslang/glslang/Test/spv.precise.tesc b/deps/glslang/glslang/Test/spv.precise.tesc new file mode 100644 index 0000000000..35de26b8fc --- /dev/null +++ b/deps/glslang/glslang/Test/spv.precise.tesc @@ -0,0 +1,24 @@ +#version 310 es +#extension GL_EXT_tessellation_shader : require +#extension GL_EXT_gpu_shader5 : require + +layout(vertices = 3) out; + +layout(location = 0) in highp vec2 in_tc_position[]; +layout(location = 1) in highp float in_tc_tessParam[]; + +layout(location = 0) out highp vec2 in_te_position[]; + +precise gl_TessLevelOuter; + +void main (void) +{ + in_te_position[gl_InvocationID] = in_tc_position[gl_InvocationID]; + + gl_TessLevelInner[0] = 5.0; + gl_TessLevelInner[1] = 5.0; + + gl_TessLevelOuter[0] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[1] + in_tc_tessParam[2]); + gl_TessLevelOuter[1] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[2] + in_tc_tessParam[0]); + gl_TessLevelOuter[2] = 1.0 + 59.0 * 0.5 * (in_tc_tessParam[0] + in_tc_tessParam[1]); +} diff --git a/deps/glslang/glslang/Test/spv.precise.tese b/deps/glslang/glslang/Test/spv.precise.tese new file mode 100644 index 0000000000..874ea84088 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.precise.tese @@ -0,0 +1,36 @@ +#version 310 es +#extension GL_EXT_tessellation_shader : require +#extension GL_EXT_gpu_shader5 : require + +layout(triangles, equal_spacing) in; + +layout(location = 0) in highp vec2 in_te_position[]; + +layout(location = 0) out mediump vec4 in_f_color; + +precise gl_Position; + +void main(void) { + highp vec2 pos = gl_TessCoord.x * in_te_position[0] + + gl_TessCoord.y * in_te_position[1] + + gl_TessCoord.z * in_te_position[2]; + + highp float f = + sqrt(3.0 * min(gl_TessCoord.x, min(gl_TessCoord.y, gl_TessCoord.z))) * + 0.5 + + 0.5; + in_f_color = vec4(gl_TessCoord * f, 1.0); + + // Offset the position slightly, based on the parity of the bits in the float + // representation. + // This is done to detect possible small differences in edge vertex positions + // between patches. + uvec2 bits = floatBitsToUint(pos); + uint numBits = 0u; + for (uint i = 0u; i < 32u; i++) + numBits += + ((bits[0] << i) & 1u) + ((bits[1] << i) & 1u); + pos += float(numBits & 1u) * 0.04; + + gl_Position = vec4(pos, 0.0, 1.0); +} diff --git a/deps/glslang/glslang/Test/spv.precision.frag b/deps/glslang/glslang/Test/spv.precision.frag new file mode 100644 index 0000000000..090c1a6a13 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.precision.frag @@ -0,0 +1,60 @@ +#version 310 es +precision mediump float; +in lowp float lowfin; +in mediump float mediumfin; +in highp vec4 highfin; + +highp int uniform_high; +mediump int uniform_medium; +lowp int uniform_low; +bvec2 ub2; + +out mediump vec4 mediumfout; + +highp float global_highp; + +lowp vec2 foo(mediump vec3 mv3) +{ + return highfin.xy; +} + +bool boolfun(bvec2 bv2) +{ + return bv2 == bvec2(false, true); +} + +struct S { + highp float a; + lowp float b; +}; + +in S s; + +void main() +{ + lowp int sum = uniform_medium + uniform_high; + + sum += uniform_high; + sum += uniform_low; + + // test maxing precisions of args to get precision of builtin + lowp float arg1 = 3.2; + mediump float arg2 = 1023908.2; + lowp float d = distance(lowfin, mediumfin); + + global_highp = length(highfin); + + highp vec4 local_highp = vec4(global_highp); + + mediumfout = vec4(sin(d)) + arg2 + local_highp; + + sum += 4 + ((ivec2(uniform_low) * ivec2(uniform_high) + ivec2((/* comma operator */uniform_low, uniform_high)))).x; + + mediumfout += vec4(sum); + + if (boolfun(ub2)) + ++mediumfout; + + mediumfout *= s.a; + mediumfout *= s.b; +} diff --git a/deps/glslang/glslang/Test/spv.precisionNonESSamp.frag b/deps/glslang/glslang/Test/spv.precisionNonESSamp.frag new file mode 100644 index 0000000000..8abf839eb9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.precisionNonESSamp.frag @@ -0,0 +1,24 @@ +#version 450 + +precision lowp sampler2D; +precision lowp int; +precision lowp float; + +uniform lowp sampler2D s; +uniform highp sampler3D t; +layout(rgba32f) uniform lowp image2D i1; +layout(rgba32f) uniform highp image2D i2; + +layout(location = 0) in lowp vec2 v2; +layout(location = 1) in lowp vec3 v3; +layout(location = 3) flat in lowp ivec2 iv2; + +layout(location = 0) out lowp vec4 color; + +void main() +{ + color = texture(s, v2); + color = texture(t, v3); + lowp vec4 vi1 = imageLoad(i1, iv2); + lowp vec4 vi2 = imageLoad(i2, iv2); +} diff --git a/deps/glslang/glslang/Test/spv.prepost.frag b/deps/glslang/glslang/Test/spv.prepost.frag new file mode 100644 index 0000000000..dfd456660a --- /dev/null +++ b/deps/glslang/glslang/Test/spv.prepost.frag @@ -0,0 +1,38 @@ +#version 140 + +void main() +{ + struct s { + float y[5]; + } str; + + float t; + int index = 5; // all indexing is 4 + + str.y[4] = 2.0; // 2.0 + t = ++str.y[--index]; // 3.0 + str.y[4] += t; // 6.0 + t = str.y[4]--; // 5.0 (t = 6.0) + str.y[index++] += t; // 11.0 + --str.y[--index]; // 10.0 + + float x = str.y[4]; + ++x; + --x; + x++; + x--; + + // x is 10.0 + + float y = x * ++x; // 10 * 11 + float z = y * x--; // 110 * 11 + + // x is 10.0 + // z is 1210.0 + + vec4 v = vec4(1.0, 2.0, 3.0, 4.0); + v.y = v.z--; // (1,3,2,4) + v.x = --v.w; // (3,3,2,3) + + gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0) +} diff --git a/deps/glslang/glslang/Test/spv.pushConstant.vert b/deps/glslang/glslang/Test/spv.pushConstant.vert new file mode 100644 index 0000000000..b1721bc602 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.pushConstant.vert @@ -0,0 +1,17 @@ +#version 400 + +layout(push_constant) uniform Material { + int kind; + float fa[3]; +} matInst; + +out vec4 color; + +void main() +{ + switch (matInst.kind) { + case 1: color = vec4(0.2); break; + case 2: color = vec4(0.5); break; + default: color = vec4(0.0); break; + } +} diff --git a/deps/glslang/glslang/Test/spv.pushConstantAnon.vert b/deps/glslang/glslang/Test/spv.pushConstantAnon.vert new file mode 100644 index 0000000000..c4438b7c86 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.pushConstantAnon.vert @@ -0,0 +1,17 @@ +#version 400 + +layout(push_constant) uniform Material { + int kind; + float fa[3]; +}; + +out vec4 color; + +void main() +{ + switch (kind) { + case 1: color = vec4(0.2); break; + case 2: color = vec4(0.5); break; + default: color = vec4(fa[1]); break; + } +} diff --git a/deps/glslang/glslang/Test/spv.qualifiers.vert b/deps/glslang/glslang/Test/spv.qualifiers.vert new file mode 100644 index 0000000000..96eb17db13 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.qualifiers.vert @@ -0,0 +1,19 @@ +#version 430 core + +in vec4 inV; + +centroid out vec4 outVc; +smooth out vec4 outVs; +flat out vec4 outVf; +noperspective out vec4 outVn; + +centroid noperspective out vec4 outVcn; + +void main() +{ + outVc = inV; + outVs = inV; + outVf = inV; + outVn = inV; + outVcn = inV; +} diff --git a/deps/glslang/glslang/Test/spv.queryL.frag b/deps/glslang/glslang/Test/spv.queryL.frag new file mode 100644 index 0000000000..6f4ad5c889 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.queryL.frag @@ -0,0 +1,64 @@ +#version 430 core + +uniform sampler1D samp1D; +uniform isampler2D isamp2D; +uniform usampler2D usamp2D; +uniform isampler3D isamp3D; +uniform usampler3D usamp3D; +uniform samplerCube sampCube; +uniform isamplerCube isampCube; +uniform isampler1DArray isamp1DA; +uniform sampler2DArray samp2DA; +uniform usampler2DArray usamp2DA; +uniform isamplerCubeArray isampCubeA; +uniform usamplerCubeArray usampCubeA; + +uniform sampler1DShadow samp1Ds; +uniform sampler2DShadow samp2Ds; +uniform samplerCubeShadow sampCubes; +uniform sampler1DArrayShadow samp1DAs; +uniform sampler2DArrayShadow samp2DAs; +uniform samplerCubeArrayShadow sampCubeAs; + +uniform samplerBuffer sampBuf; +uniform sampler2DRect sampRect; + +void main() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); + lod += textureQueryLod(isamp2D, pf2); + lod += textureQueryLod(usamp3D, pf3); + lod += textureQueryLod(sampCube, pf3); + lod += textureQueryLod(isamp1DA, pf); + lod += textureQueryLod(usamp2DA, pf2); + lod += textureQueryLod(isampCubeA, pf3); + + lod += textureQueryLod(samp1Ds, pf); + lod += textureQueryLod(samp2Ds, pf2); + lod += textureQueryLod(sampCubes, pf3); + lod += textureQueryLod(samp1DAs, pf); + lod += textureQueryLod(samp2DAs, pf2); + lod += textureQueryLod(sampCubeAs, pf3); + + int levels; + + levels = textureQueryLevels(samp1D); + levels += textureQueryLevels(usamp2D); + levels += textureQueryLevels(isamp3D); + levels += textureQueryLevels(isampCube); + levels += textureQueryLevels(isamp1DA); + levels += textureQueryLevels(samp2DA); + levels += textureQueryLevels(usampCubeA); + + levels = textureQueryLevels(samp1Ds); + levels += textureQueryLevels(samp2Ds); + levels += textureQueryLevels(sampCubes); + levels += textureQueryLevels(samp1DAs); + levels += textureQueryLevels(samp2DAs); + levels += textureQueryLevels(sampCubeAs); +} diff --git a/deps/glslang/glslang/Test/spv.rankShift.comp b/deps/glslang/glslang/Test/spv.rankShift.comp new file mode 100644 index 0000000000..1761ad1f52 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.rankShift.comp @@ -0,0 +1,15 @@ +#version 450 +#extension GL_ARB_gpu_shader_int64 : require + +layout(local_size_x = 54) in; + +layout(location=4) uniform int64_t arg0; +layout(location=5) uniform uint arg1; + +void main() +{ + uint64_t result = arg0 << arg1; + result = arg0 >> arg1; + result <<= arg1; + result >>= arg1; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.register.autoassign-2.frag b/deps/glslang/glslang/Test/spv.register.autoassign-2.frag new file mode 100644 index 0000000000..05c49250ee --- /dev/null +++ b/deps/glslang/glslang/Test/spv.register.autoassign-2.frag @@ -0,0 +1,15 @@ + +SamplerState g_tSamp : register(s0); + +Texture2D g_tScene[2] : register(t0); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3,0.4)) + + g_tScene[1].Sample(g_tSamp, float2(0.3,0.4)); +} diff --git a/deps/glslang/glslang/Test/spv.register.autoassign.frag b/deps/glslang/glslang/Test/spv.register.autoassign.frag new file mode 100644 index 0000000000..0d6f0b2d5b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.register.autoassign.frag @@ -0,0 +1,71 @@ + +SamplerState g_sSamp1 : register(s0); +SamplerState g_sSamp2; +SamplerState g_sSamp3[2] : register(s2); +SamplerState g_sSamp4[3]; +SamplerState g_sSamp5; + +SamplerState g_sSamp_unused1; +SamplerState g_sSamp_unused2; + +Texture1D g_tTex1 : register(t1); +const uniform Texture1D g_tTex2; +Texture1D g_tTex3[2] : register(t3); +Texture1D g_tTex4[3]; +Texture1D g_tTex5; + +Texture1D g_tTex_unused1 : register(t0); +Texture1D g_tTex_unused2 : register(t2); +Texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + float3 c; +}; + +uniform MyStruct_t mystruct : register(b4); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform float4 myfloat4_a; +uniform float4 myfloat4_b; +uniform int4 myint4_a; + +float4 Func1() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex2 . Sample(g_sSamp2, 0.2) + + g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + + g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + + g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + + g_tTex5 . Sample(g_sSamp5, 0.5) + + mystruct.c[1]; +} + +float4 Func2() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3); +} + +// Not called from entry point: +float4 Func2_unused() +{ + return + g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + + g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); +} + +PS_OUTPUT main_ep() +{ + PS_OUTPUT psout; + psout.Color = Func1() + Func2(); + return psout; +} diff --git a/deps/glslang/glslang/Test/spv.register.autoassign.rangetest.frag b/deps/glslang/glslang/Test/spv.register.autoassign.rangetest.frag new file mode 100644 index 0000000000..314c8e96cd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.register.autoassign.rangetest.frag @@ -0,0 +1,15 @@ + +SamplerState g_tSamp : register(s5); + +Texture2D g_tScene[2] : register(t5); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3, 0.3)) + + g_tScene[1].Sample(g_tSamp, float2(0.3, 0.3)); +} diff --git a/deps/glslang/glslang/Test/spv.register.noautoassign.frag b/deps/glslang/glslang/Test/spv.register.noautoassign.frag new file mode 100644 index 0000000000..0d6f0b2d5b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.register.noautoassign.frag @@ -0,0 +1,71 @@ + +SamplerState g_sSamp1 : register(s0); +SamplerState g_sSamp2; +SamplerState g_sSamp3[2] : register(s2); +SamplerState g_sSamp4[3]; +SamplerState g_sSamp5; + +SamplerState g_sSamp_unused1; +SamplerState g_sSamp_unused2; + +Texture1D g_tTex1 : register(t1); +const uniform Texture1D g_tTex2; +Texture1D g_tTex3[2] : register(t3); +Texture1D g_tTex4[3]; +Texture1D g_tTex5; + +Texture1D g_tTex_unused1 : register(t0); +Texture1D g_tTex_unused2 : register(t2); +Texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + float3 c; +}; + +uniform MyStruct_t mystruct : register(b4); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform float4 myfloat4_a; +uniform float4 myfloat4_b; +uniform int4 myint4_a; + +float4 Func1() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex2 . Sample(g_sSamp2, 0.2) + + g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + + g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + + g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + + g_tTex5 . Sample(g_sSamp5, 0.5) + + mystruct.c[1]; +} + +float4 Func2() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3); +} + +// Not called from entry point: +float4 Func2_unused() +{ + return + g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + + g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); +} + +PS_OUTPUT main_ep() +{ + PS_OUTPUT psout; + psout.Color = Func1() + Func2(); + return psout; +} diff --git a/deps/glslang/glslang/Test/spv.register.subpass.frag b/deps/glslang/glslang/Test/spv.register.subpass.frag new file mode 100644 index 0000000000..281c2f7043 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.register.subpass.frag @@ -0,0 +1,15 @@ + +// Test binding autoassignment and offset for SubpassInput objects + +layout(input_attachment_index = 1) SubpassInput subpass_f4 : register(t1); +layout(input_attachment_index = 4) SubpassInputMS subpass_ms_f4; +[[vk::input_attachment_index(7)]] SubpassInput subpass_2; + +float4 main() : SV_Target0 +{ + float4 result00 = subpass_f4.SubpassLoad(); + float4 result10 = subpass_ms_f4.SubpassLoad(3); + float4 result73 = subpass_2.SubpassLoad(); + + return 0; +} diff --git a/deps/glslang/glslang/Test/spv.rw.autoassign.frag b/deps/glslang/glslang/Test/spv.rw.autoassign.frag new file mode 100644 index 0000000000..5c7d0d3f5b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.rw.autoassign.frag @@ -0,0 +1,18 @@ + +RWTexture1D g_tTex1df1; +RWBuffer g_tBuf1du1; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float r00 = g_tTex1df1[0]; + uint r01 = g_tBuf1du1[0]; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/deps/glslang/glslang/Test/spv.sample.frag b/deps/glslang/glslang/Test/spv.sample.frag new file mode 100644 index 0000000000..b62afe2798 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.sample.frag @@ -0,0 +1,9 @@ +#version 450 + +layout(location = 0) in sample vec4 samp; +layout(location = 0) out vec4 color; + +void main() +{ + color = samp; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.sampleId.frag b/deps/glslang/glslang/Test/spv.sampleId.frag new file mode 100644 index 0000000000..d5473f79a1 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.sampleId.frag @@ -0,0 +1,12 @@ +#version 450 + +layout(location = 0) in vec4 samp; +layout(location = 0) out vec4 color; + +void main() +{ + if (gl_SampleID < 3) + color = samp; + else + color = 2 * samp; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.sampleMaskOverrideCoverage.frag b/deps/glslang/glslang/Test/spv.sampleMaskOverrideCoverage.frag new file mode 100644 index 0000000000..dd84062182 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.sampleMaskOverrideCoverage.frag @@ -0,0 +1,7 @@ +#version 450 +#extension GL_NV_sample_mask_override_coverage : enable +in vec4 color; +layout(override_coverage) out int gl_SampleMask[]; +void main() { + gl_SampleMask[0] = int(0xFFFFFFFF); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.samplePosition.frag b/deps/glslang/glslang/Test/spv.samplePosition.frag new file mode 100644 index 0000000000..b73dd61fa5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.samplePosition.frag @@ -0,0 +1,12 @@ +#version 450 + +layout(location = 0) in vec4 samp; +layout(location = 0) out vec4 color; + +void main() +{ + if (gl_SamplePosition.y < 0.5) + color = samp; + else + color = 2 * samp; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.separate.frag b/deps/glslang/glslang/Test/spv.separate.frag new file mode 100644 index 0000000000..21e5db3301 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.separate.frag @@ -0,0 +1,95 @@ +#version 400 + +uniform sampler s; +uniform samplerShadow sShadow; +uniform sampler sA[4]; +uniform texture2D t2d; +uniform texture3D t3d[4]; +flat in int i; + +out vec4 color; + +void main() +{ + color = texture(sampler2D(t2d, s), vec2(0.5)); + color += texture(sampler3D(t3d[i], sA[2]), vec3(0.5)); + color += texture(sampler2D(t2d, s), vec2(0.5)); +} + +uniform texture2D tex2D; +uniform textureCube texCube; +uniform textureCubeArray texCubeArray; +uniform itextureCubeArray itexCubeArray; +uniform utextureCubeArray utexCubeArray; +uniform itexture1DArray itex1DArray; +uniform utexture1D utex1D; +uniform itexture1D itex1D; +uniform utexture1DArray utex1DArray; +uniform textureBuffer texBuffer; +uniform texture2DArray tex2DArray; +uniform itexture2D itex2D; +uniform itexture3D itex3D; +uniform itextureCube itexCube; +uniform itexture2DArray itex2DArray; +uniform utexture2D utex2D; +uniform utexture3D utex3D; +uniform utextureCube utexCube; +uniform utexture2DArray utex2DArray; +uniform itexture2DRect itex2DRect; +uniform utexture2DRect utex2DRect; +uniform itextureBuffer itexBuffer; +uniform utextureBuffer utexBuffer; +uniform texture2DMS tex2DMS; +uniform itexture2DMS itex2DMS; +uniform utexture2DMS utex2DMS; +uniform texture2DMSArray tex2DMSArray; +uniform itexture2DMSArray itex2DMSArray; +uniform utexture2DMSArray utex2DMSArray; +uniform texture1D tex1D; +uniform texture3D tex3D; +uniform texture2DRect tex2DRect; +uniform texture1DArray tex1DArray; + +void foo() +{ + sampler2D (tex2D, s); + samplerCube (texCube, s); + samplerCubeArray (texCubeArray, s); + samplerCubeArrayShadow (texCubeArray, sShadow); + isamplerCubeArray (itexCubeArray, s); + usamplerCubeArray (utexCubeArray, s); + sampler1DArrayShadow (tex1DArray, sShadow); + isampler1DArray (itex1DArray, s); + usampler1D (utex1D, s); + isampler1D (itex1D, s); + usampler1DArray (utex1DArray, s); + samplerBuffer (texBuffer, s); + samplerCubeShadow (texCube, sShadow); + sampler2DArray (tex2DArray, s); + sampler2DArrayShadow (tex2DArray, sShadow); + isampler2D (itex2D, s); + isampler3D (itex3D, s); + isamplerCube (itexCube, s); + isampler2DArray (itex2DArray, s); + usampler2D (utex2D, s); + usampler3D (utex3D, s); + usamplerCube (utexCube, s); + usampler2DArray (utex2DArray, s); + isampler2DRect (itex2DRect, s); + usampler2DRect (utex2DRect, s); + isamplerBuffer (itexBuffer, s); + usamplerBuffer (utexBuffer, s); + sampler2DMS (tex2DMS, s); + isampler2DMS (itex2DMS, s); + usampler2DMS (utex2DMS, s); + sampler2DMSArray (tex2DMSArray, s); + isampler2DMSArray (itex2DMSArray, s); + usampler2DMSArray (utex2DMSArray, s); + sampler1D (tex1D, s); + sampler1DShadow (tex1D, sShadow); + sampler3D (tex3D, s); + sampler2DShadow (tex2D, sShadow); + sampler2DRect (tex2DRect, s); + sampler2DRectShadow (tex2DRect, sShadow); + sampler1DArray (tex1DArray, s); +} diff --git a/deps/glslang/glslang/Test/spv.set.vert b/deps/glslang/glslang/Test/spv.set.vert new file mode 100644 index 0000000000..d211ef1114 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.set.vert @@ -0,0 +1,14 @@ +#version 450 + +layout(set = 4, binding = 7) uniform sampler2D samp2D; + +layout(set = 0, binding = 8) buffer setBuf { + vec4 color; +} setBufInst; + +out vec4 color; + +void main() +{ + color = setBufInst.color; +} diff --git a/deps/glslang/glslang/Test/spv.shaderBallot.comp b/deps/glslang/glslang/Test/spv.shaderBallot.comp new file mode 100644 index 0000000000..20059b1c3c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shaderBallot.comp @@ -0,0 +1,59 @@ +#version 450 + +#extension GL_ARB_gpu_shader_int64: enable +#extension GL_ARB_shader_ballot: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubGroupInvocationARB + gl_SubGroupSizeARB) % 4; + + uint64_t relMask = gl_SubGroupEqMaskARB + + gl_SubGroupGeMaskARB + + gl_SubGroupGtMaskARB + + gl_SubGroupLeMaskARB + + gl_SubGroupLtMaskARB; + + if (relMask == ballotARB(true)) + { + data[invocation].f4.x = readInvocationARB(data[0].f4.x, invocation); + data[invocation].f4.xy = readInvocationARB(data[1].f4.xy, invocation); + data[invocation].f4.xyz = readInvocationARB(data[2].f4.xyz, invocation); + data[invocation].f4 = readInvocationARB(data[3].f4, invocation); + + data[invocation].i4.x = readInvocationARB(data[0].i4.x, invocation); + data[invocation].i4.xy = readInvocationARB(data[1].i4.xy, invocation); + data[invocation].i4.xyz = readInvocationARB(data[2].i4.xyz, invocation); + data[invocation].i4 = readInvocationARB(data[3].i4, invocation); + + data[invocation].u4.x = readInvocationARB(data[0].u4.x, invocation); + data[invocation].u4.xy = readInvocationARB(data[1].u4.xy, invocation); + data[invocation].u4.xyz = readInvocationARB(data[2].u4.xyz, invocation); + data[invocation].u4 = readInvocationARB(data[3].u4, invocation); + } + else + { + data[invocation].f4.x = readFirstInvocationARB(data[0].f4.x); + data[invocation].f4.xy = readFirstInvocationARB(data[1].f4.xy); + data[invocation].f4.xyz = readFirstInvocationARB(data[2].f4.xyz); + data[invocation].f4 = readFirstInvocationARB(data[3].f4); + + data[invocation].i4.x = readFirstInvocationARB(data[0].i4.x); + data[invocation].i4.xy = readFirstInvocationARB(data[1].i4.xy); + data[invocation].i4.xyz = readFirstInvocationARB(data[2].i4.xyz); + data[invocation].i4 = readFirstInvocationARB(data[3].i4); + + data[invocation].u4.x = readFirstInvocationARB(data[0].u4.x); + data[invocation].u4.xy = readFirstInvocationARB(data[1].u4.xy); + data[invocation].u4.xyz = readFirstInvocationARB(data[2].u4.xyz); + data[invocation].u4 = readFirstInvocationARB(data[3].u4); + } +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.shaderBallotAMD.comp b/deps/glslang/glslang/Test/spv.shaderBallotAMD.comp new file mode 100644 index 0000000000..9cf9546e44 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shaderBallotAMD.comp @@ -0,0 +1,204 @@ +#version 450 + +#extension GL_ARB_gpu_shader_int64: enable +#extension GL_AMD_gpu_shader_half_float: enable +#extension GL_AMD_gpu_shader_int16: enable +#extension GL_AMD_shader_ballot: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffers +{ + int i; + uvec2 uv; + vec3 fv; + dvec4 dv; + int64_t i64; + u64vec2 u64v; + f16vec3 f16v; + i16vec4 i16v; + uint16_t u16; +}; + +void main() +{ + i = minInvocationsAMD(i); + uv = minInvocationsAMD(uv); + fv = minInvocationsAMD(fv); + dv = minInvocationsAMD(dv); + i64 = minInvocationsAMD(i64); + u64v = minInvocationsAMD(u64v); + f16v = minInvocationsAMD(f16v); + i16v = minInvocationsAMD(i16v); + u16 = minInvocationsAMD(u16); + + i = maxInvocationsAMD(i); + uv = maxInvocationsAMD(uv); + fv = maxInvocationsAMD(fv); + dv = maxInvocationsAMD(dv); + i64 = maxInvocationsAMD(i64); + u64v = maxInvocationsAMD(u64v); + f16v = maxInvocationsAMD(f16v); + i16v = maxInvocationsAMD(i16v); + u16 = maxInvocationsAMD(u16); + + i = addInvocationsAMD(i); + uv = addInvocationsAMD(uv); + fv = addInvocationsAMD(fv); + dv = addInvocationsAMD(dv); + i64 = addInvocationsAMD(i64); + u64v = addInvocationsAMD(u64v); + f16v = addInvocationsAMD(f16v); + i16v = addInvocationsAMD(i16v); + u16 = addInvocationsAMD(u16); + + i = minInvocationsNonUniformAMD(i); + uv = minInvocationsNonUniformAMD(uv); + fv = minInvocationsNonUniformAMD(fv); + dv = minInvocationsNonUniformAMD(dv); + i64 = minInvocationsNonUniformAMD(i64); + u64v = minInvocationsNonUniformAMD(u64v); + f16v = minInvocationsNonUniformAMD(f16v); + i16v = minInvocationsNonUniformAMD(i16v); + u16 = minInvocationsNonUniformAMD(u16); + + i = maxInvocationsNonUniformAMD(i); + uv = maxInvocationsNonUniformAMD(uv); + fv = maxInvocationsNonUniformAMD(fv); + dv = maxInvocationsNonUniformAMD(dv); + i64 = maxInvocationsNonUniformAMD(i64); + u64v = maxInvocationsNonUniformAMD(u64v); + f16v = maxInvocationsNonUniformAMD(f16v); + i16v = maxInvocationsNonUniformAMD(i16v); + u16 = maxInvocationsNonUniformAMD(u16); + + i = addInvocationsNonUniformAMD(i); + uv = addInvocationsNonUniformAMD(uv); + fv = addInvocationsNonUniformAMD(fv); + dv = addInvocationsNonUniformAMD(dv); + i64 = addInvocationsNonUniformAMD(i64); + u64v = addInvocationsNonUniformAMD(u64v); + f16v = addInvocationsNonUniformAMD(f16v); + i16v = addInvocationsNonUniformAMD(i16v); + u16 = addInvocationsNonUniformAMD(u16); + + i = minInvocationsInclusiveScanAMD(i); + uv = minInvocationsInclusiveScanAMD(uv); + fv = minInvocationsInclusiveScanAMD(fv); + dv = minInvocationsInclusiveScanAMD(dv); + i64 = minInvocationsInclusiveScanAMD(i64); + u64v = minInvocationsInclusiveScanAMD(u64v); + f16v = minInvocationsInclusiveScanAMD(f16v); + i16v = minInvocationsInclusiveScanAMD(i16v); + u16 = minInvocationsInclusiveScanAMD(u16); + + i = maxInvocationsInclusiveScanAMD(i); + uv = maxInvocationsInclusiveScanAMD(uv); + fv = maxInvocationsInclusiveScanAMD(fv); + dv = maxInvocationsInclusiveScanAMD(dv); + i64 = maxInvocationsInclusiveScanAMD(i64); + u64v = maxInvocationsInclusiveScanAMD(u64v); + f16v = maxInvocationsInclusiveScanAMD(f16v); + i16v = maxInvocationsInclusiveScanAMD(i16v); + u16 = maxInvocationsInclusiveScanAMD(u16); + + i = addInvocationsInclusiveScanAMD(i); + uv = addInvocationsInclusiveScanAMD(uv); + fv = addInvocationsInclusiveScanAMD(fv); + dv = addInvocationsInclusiveScanAMD(dv); + i64 = addInvocationsInclusiveScanAMD(i64); + u64v = addInvocationsInclusiveScanAMD(u64v); + f16v = addInvocationsInclusiveScanAMD(f16v); + i16v = addInvocationsInclusiveScanAMD(i16v); + u16 = addInvocationsInclusiveScanAMD(u16); + + i = minInvocationsExclusiveScanAMD(i); + uv = minInvocationsExclusiveScanAMD(uv); + fv = minInvocationsExclusiveScanAMD(fv); + dv = minInvocationsExclusiveScanAMD(dv); + i64 = minInvocationsExclusiveScanAMD(i64); + u64v = minInvocationsExclusiveScanAMD(u64v); + f16v = minInvocationsExclusiveScanAMD(f16v); + i16v = minInvocationsExclusiveScanAMD(i16v); + u16 = minInvocationsExclusiveScanAMD(u16); + + i = maxInvocationsExclusiveScanAMD(i); + uv = maxInvocationsExclusiveScanAMD(uv); + fv = maxInvocationsExclusiveScanAMD(fv); + dv = maxInvocationsExclusiveScanAMD(dv); + i64 = maxInvocationsExclusiveScanAMD(i64); + u64v = maxInvocationsExclusiveScanAMD(u64v); + f16v = maxInvocationsExclusiveScanAMD(f16v); + i16v = maxInvocationsExclusiveScanAMD(i16v); + u16 = maxInvocationsExclusiveScanAMD(u16); + + i = addInvocationsExclusiveScanAMD(i); + uv = addInvocationsExclusiveScanAMD(uv); + fv = addInvocationsExclusiveScanAMD(fv); + dv = addInvocationsExclusiveScanAMD(dv); + i64 = addInvocationsExclusiveScanAMD(i64); + u64v = addInvocationsExclusiveScanAMD(u64v); + f16v = addInvocationsExclusiveScanAMD(f16v); + i16v = addInvocationsExclusiveScanAMD(i16v); + u16 = addInvocationsExclusiveScanAMD(u16); + + i = minInvocationsInclusiveScanNonUniformAMD(i); + uv = minInvocationsInclusiveScanNonUniformAMD(uv); + fv = minInvocationsInclusiveScanNonUniformAMD(fv); + dv = minInvocationsInclusiveScanNonUniformAMD(dv); + i64 = minInvocationsInclusiveScanNonUniformAMD(i64); + u64v = minInvocationsInclusiveScanNonUniformAMD(u64v); + f16v = minInvocationsInclusiveScanNonUniformAMD(f16v); + i16v = minInvocationsInclusiveScanNonUniformAMD(i16v); + u16 = minInvocationsInclusiveScanNonUniformAMD(u16); + + i = maxInvocationsInclusiveScanNonUniformAMD(i); + uv = maxInvocationsInclusiveScanNonUniformAMD(uv); + fv = maxInvocationsInclusiveScanNonUniformAMD(fv); + dv = maxInvocationsInclusiveScanNonUniformAMD(dv); + i64 = maxInvocationsInclusiveScanNonUniformAMD(i64); + u64v = maxInvocationsInclusiveScanNonUniformAMD(u64v); + f16v = maxInvocationsInclusiveScanNonUniformAMD(f16v); + i16v = maxInvocationsInclusiveScanNonUniformAMD(i16v); + u16 = maxInvocationsInclusiveScanNonUniformAMD(u16); + + i = addInvocationsInclusiveScanNonUniformAMD(i); + uv = addInvocationsInclusiveScanNonUniformAMD(uv); + fv = addInvocationsInclusiveScanNonUniformAMD(fv); + dv = addInvocationsInclusiveScanNonUniformAMD(dv); + i64 = addInvocationsInclusiveScanNonUniformAMD(i64); + u64v = addInvocationsInclusiveScanNonUniformAMD(u64v); + f16v = addInvocationsInclusiveScanNonUniformAMD(f16v); + i16v = addInvocationsInclusiveScanNonUniformAMD(i16v); + u16 = addInvocationsInclusiveScanNonUniformAMD(u16); + + i = minInvocationsExclusiveScanNonUniformAMD(i); + uv = minInvocationsExclusiveScanNonUniformAMD(uv); + fv = minInvocationsExclusiveScanNonUniformAMD(fv); + dv = minInvocationsExclusiveScanNonUniformAMD(dv); + i64 = minInvocationsExclusiveScanNonUniformAMD(i64); + u64v = minInvocationsExclusiveScanNonUniformAMD(u64v); + f16v = minInvocationsExclusiveScanNonUniformAMD(f16v); + i16v = minInvocationsExclusiveScanNonUniformAMD(i16v); + u16 = minInvocationsExclusiveScanNonUniformAMD(u16); + + i = maxInvocationsExclusiveScanNonUniformAMD(i); + uv = maxInvocationsExclusiveScanNonUniformAMD(uv); + fv = maxInvocationsExclusiveScanNonUniformAMD(fv); + dv = maxInvocationsExclusiveScanNonUniformAMD(dv); + i64 = maxInvocationsExclusiveScanNonUniformAMD(i64); + u64v = maxInvocationsExclusiveScanNonUniformAMD(u64v); + f16v = maxInvocationsExclusiveScanNonUniformAMD(f16v); + i16v = maxInvocationsExclusiveScanNonUniformAMD(i16v); + u16 = maxInvocationsExclusiveScanNonUniformAMD(u16); + + i = addInvocationsExclusiveScanNonUniformAMD(i); + uv = addInvocationsExclusiveScanNonUniformAMD(uv); + fv = addInvocationsExclusiveScanNonUniformAMD(fv); + dv = addInvocationsExclusiveScanNonUniformAMD(dv); + i64 = addInvocationsExclusiveScanNonUniformAMD(i64); + u64v = addInvocationsExclusiveScanNonUniformAMD(u64v); + f16v = addInvocationsExclusiveScanNonUniformAMD(f16v); + i16v = addInvocationsExclusiveScanNonUniformAMD(i16v); + u16 = addInvocationsExclusiveScanNonUniformAMD(u16); +} diff --git a/deps/glslang/glslang/Test/spv.shaderDrawParams.vert b/deps/glslang/glslang/Test/spv.shaderDrawParams.vert new file mode 100644 index 0000000000..15ae2953a1 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shaderDrawParams.vert @@ -0,0 +1,16 @@ +#version 450 core + +#extension GL_ARB_shader_draw_parameters: enable + +layout(binding = 0) uniform Block +{ + vec4 pos[2][4]; +} block; + +void main() +{ + if ((gl_BaseVertexARB > 0) || (gl_BaseInstanceARB > 0)) + gl_Position = block.pos[0][gl_DrawIDARB % 4]; + else + gl_Position = block.pos[1][gl_DrawIDARB % 4]; +} diff --git a/deps/glslang/glslang/Test/spv.shaderFragMaskAMD.frag b/deps/glslang/glslang/Test/spv.shaderFragMaskAMD.frag new file mode 100644 index 0000000000..b9e8ab0596 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shaderFragMaskAMD.frag @@ -0,0 +1,29 @@ +#version 450 core + +#extension GL_AMD_shader_fragment_mask: enable + +layout(binding = 0) uniform sampler2DMS s2DMS; +layout(binding = 1) uniform isampler2DMSArray is2DMSArray; + +layout(binding = 2, input_attachment_index = 0) uniform usubpassInputMS usubpassMS; + +layout(location = 0) out vec4 fragColor; + +void main() +{ + vec4 f4 = vec4(0.0); + + uint fragMask = fragmentMaskFetchAMD(s2DMS, ivec2(2, 3)); + uint fragIndex = (fragMask & 0xF0) >> 4; + f4 += fragmentFetchAMD(s2DMS, ivec2(2, 3), 1); + + fragMask = fragmentMaskFetchAMD(is2DMSArray, ivec3(2, 3, 1)); + fragIndex = (fragMask & 0xF0) >> 4; + f4 += fragmentFetchAMD(is2DMSArray, ivec3(2, 3, 1), fragIndex); + + fragMask = fragmentMaskFetchAMD(usubpassMS); + fragIndex = (fragMask & 0xF0) >> 4; + f4 += fragmentFetchAMD(usubpassMS, fragIndex); + + fragColor = f4; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.shaderGroupVote.comp b/deps/glslang/glslang/Test/spv.shaderGroupVote.comp new file mode 100644 index 0000000000..c0b1fe7246 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shaderGroupVote.comp @@ -0,0 +1,21 @@ +#version 450 + +#extension GL_ARB_shader_group_vote : enable + +layout(local_size_x = 4, local_size_y = 4) in; + +layout(std430, binding = 0) buffer Buffers +{ + bool b; +}; + +void main() +{ + bool b1 = b; + + b1 = anyInvocationARB(b1); + b1 = allInvocationsARB(b1); + b1 = allInvocationsEqualARB(b1); + + b = b1; +} diff --git a/deps/glslang/glslang/Test/spv.shaderStencilExport.frag b/deps/glslang/glslang/Test/spv.shaderStencilExport.frag new file mode 100644 index 0000000000..62e0f573ab --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shaderStencilExport.frag @@ -0,0 +1,8 @@ +#version 450 core + +#extension GL_ARB_shader_stencil_export: enable + +void main() +{ + gl_FragStencilRefARB = 100; +} diff --git a/deps/glslang/glslang/Test/spv.shiftOps.frag b/deps/glslang/glslang/Test/spv.shiftOps.frag new file mode 100644 index 0000000000..7fb937f430 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shiftOps.frag @@ -0,0 +1,18 @@ +#version 450 + +flat in int i1; +flat in uint u1; +flat in ivec3 i3; +flat in uvec3 u3; + +out ivec3 icolor; +out uvec3 ucolor; + +void main() +{ + icolor = i3 << u1; + icolor <<= 4u; + + ucolor = u3 >> i1; + ucolor >>= 5; +} diff --git a/deps/glslang/glslang/Test/spv.shortCircuit.frag b/deps/glslang/glslang/Test/spv.shortCircuit.frag new file mode 100644 index 0000000000..4a626417d9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.shortCircuit.frag @@ -0,0 +1,50 @@ +#version 400 + +flat in ivec4 uiv4; +in vec4 uv4; +bool ub; +bool uba; +bvec4 ub41, ub42; +in float uf; +flat in int ui; + +out float of1; +out vec4 of4; + +bool foo() { ++of1; return of1 > 10.0; } + +void main() +{ + of1 = 0.0; + of4 = vec4(0.0); + + if (ub || ui > 2) // not worth short circuiting + ++of1; + + if (ub && !uba) // not worth short circuiting + ++of1; + + if (ub || foo()) // must short circuit + ++of1; + + if (ub && foo()) // must short circuit + ++of1; + + if (foo() || ub) // not worth short circuiting + ++of1; + + if (foo() && ub) // not worth short circuiting + ++of1; + + if (ub || ++of1 > 1.0) // must short circuit + ++of4; + + if (++of1 > 1.0 || ub) // not worth short circuiting + ++of4; + + if (ub || sin(uf) * 4.0 > of1) // worth short circuiting + ++of1; + + if (ub && sin(uf) * 4.0 > of1) // worth short circuiting + ++of1; +} diff --git a/deps/glslang/glslang/Test/spv.simpleFunctionCall.frag b/deps/glslang/glslang/Test/spv.simpleFunctionCall.frag new file mode 100644 index 0000000000..496bb93d7f --- /dev/null +++ b/deps/glslang/glslang/Test/spv.simpleFunctionCall.frag @@ -0,0 +1,13 @@ +#version 150 + +in vec4 BaseColor; + +vec4 foo() +{ + return BaseColor; +} + +void main() +{ + gl_FragColor = foo(); +} diff --git a/deps/glslang/glslang/Test/spv.simpleMat.vert b/deps/glslang/glslang/Test/spv.simpleMat.vert new file mode 100644 index 0000000000..897a8986c2 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.simpleMat.vert @@ -0,0 +1,19 @@ +#version 330 + +varying mat4 mvp; + +in vec4 v; +in mat3 am3; +in mat4 arraym[3]; + +out float f; +out vec4 glPos; +//out mat4 mout[2]; + +void main() +{ + //needs complex output blocks to work: gl_Position = mvp * v; + glPos = mvp * v; + f = am3[2][1] + arraym[1][2][3]; + //mout[1] = arraym[2]; +} diff --git a/deps/glslang/glslang/Test/spv.sparseTexture.frag b/deps/glslang/glslang/Test/spv.sparseTexture.frag new file mode 100644 index 0000000000..c995ee2ae5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.sparseTexture.frag @@ -0,0 +1,91 @@ +#version 450 +#extension GL_ARB_sparse_texture2: enable + +uniform sampler2D s2D; +uniform sampler3D s3D; +uniform sampler2DShadow s2DShadow; +uniform samplerCubeShadow sCubeShadow; +uniform sampler2DArrayShadow s2DArrayShadow; +uniform sampler2DRectShadow s2DRectShadow; +uniform samplerCubeArrayShadow sCubeArrayShadow; +uniform sampler2DMS s2DMS; + +uniform isamplerCube isCube; +uniform isampler2DArray is2DArray; + +uniform usamplerCubeArray usCubeArray; +uniform usampler2DRect us2DRect; + +layout(rgba32f) uniform image2D i2D; +layout(rgba32i) uniform iimage3D ii3D; +layout(rgba32f) uniform image2DMS i2DMS; + +in vec2 c2; +in vec3 c3; +in vec4 c4; + +in flat ivec2 ic2; +in flat ivec3 ic3; + +in flat ivec2 offsets[4]; + +out vec4 outColor; + +void main() +{ + int resident = 0; + vec4 texel = vec4(0.0); + ivec4 itexel = ivec4(0); + uvec4 utexel = uvec4(0); + + resident |= sparseTextureARB(s2D, c2, texel); + resident |= sparseTextureARB(s3D, c3, texel, 2.0); + resident |= sparseTextureARB(isCube, c3, itexel); + resident |= sparseTextureARB(s2DShadow, c3, texel.x); + resident |= sparseTextureARB(sCubeArrayShadow, c4, 1.0, texel.x); + + resident |= sparseTextureLodARB(s2D, c2, 2.0, texel); + resident |= sparseTextureLodARB(usCubeArray, c4, 1.0, utexel); + resident |= sparseTextureLodARB(s2DShadow, c3, 2.0, texel.y); + + resident |= sparseTextureOffsetARB(s3D, c3, ivec3(2), texel, 2.0); + resident |= sparseTextureOffsetARB(us2DRect, c2, ivec2(3), utexel); + resident |= sparseTextureOffsetARB(s2DArrayShadow, c4, ivec2(5), texel.z); + + resident |= sparseTexelFetchARB(s2D, ivec2(c2), 2, texel); + resident |= sparseTexelFetchARB(us2DRect, ivec2(c2), utexel); + resident |= sparseTexelFetchARB(s2DMS, ivec2(c2), 4, texel); + + resident |= sparseTexelFetchOffsetARB(s3D, ivec3(c3), 2, ivec3(4), texel); + resident |= sparseTexelFetchOffsetARB(us2DRect, ivec2(c2), ivec2(3), utexel); + + resident |= sparseTextureLodOffsetARB(s2D, c2, 2.0, ivec2(5), texel); + resident |= sparseTextureLodOffsetARB(is2DArray, c3, 2.0, ivec2(6), itexel); + resident |= sparseTextureLodOffsetARB(s2DShadow, c3, 2.0, ivec2(7), texel.z); + + resident |= sparseTextureGradARB(s3D, c3, c3, c3, texel); + resident |= sparseTextureGradARB(sCubeShadow, c4, c3, c3, texel.y); + resident |= sparseTextureGradARB(usCubeArray, c4, c3, c3, utexel); + + resident |= sparseTextureGradOffsetARB(s2D, c2, c2, c2, ivec2(5), texel); + resident |= sparseTextureGradOffsetARB(s2DRectShadow, c3, c2, c2, ivec2(6), texel.w); + resident |= sparseTextureGradOffsetARB(is2DArray, c3, c2, c2, ivec2(2), itexel); + + resident |= sparseTextureGatherARB(s2D, c2, texel); + resident |= sparseTextureGatherARB(is2DArray, c3, itexel, 2); + resident |= sparseTextureGatherARB(s2DArrayShadow, c3, 2.0, texel); + + resident |= sparseTextureGatherOffsetARB(s2D, c2, ivec2(4), texel); + resident |= sparseTextureGatherOffsetARB(is2DArray, c3, ivec2(5), itexel, 2); + resident |= sparseTextureGatherOffsetARB(s2DRectShadow, c2, 2.0, ivec2(7), texel); + + resident |= sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel); + resident |= sparseTextureGatherOffsetsARB(is2DArray, c3, offsets, itexel, 2); + resident |= sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, offsets, texel); + + resident |= sparseImageLoadARB(i2D, ic2, texel); + resident |= sparseImageLoadARB(ii3D, ic3, itexel); + resident |= sparseImageLoadARB(i2DMS, ic2, 3, texel); + + outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.sparseTextureClamp.frag b/deps/glslang/glslang/Test/spv.sparseTextureClamp.frag new file mode 100644 index 0000000000..97317938a1 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.sparseTextureClamp.frag @@ -0,0 +1,70 @@ +#version 450 +#extension GL_ARB_sparse_texture_clamp: enable + +uniform sampler2D s2D; +uniform sampler3D s3D; +uniform sampler2DShadow s2DShadow; +uniform samplerCubeShadow sCubeShadow; +uniform sampler2DArrayShadow s2DArrayShadow; +uniform sampler2DRectShadow s2DRectShadow; +uniform samplerCubeArrayShadow sCubeArrayShadow; + +uniform isamplerCube isCube; +uniform isampler2DArray is2DArray; + +uniform usamplerCubeArray usCubeArray; +uniform usampler2DRect us2DRect; + +in vec2 c2; +in vec3 c3; +in vec4 c4; + +in float lodClamp; + +out vec4 outColor; + +void main() +{ + int resident = 0; + vec4 texel = vec4(0.0); + ivec4 itexel = ivec4(0); + uvec4 utexel = uvec4(0); + + resident |= sparseTextureClampARB(s2D, c2, lodClamp, texel); + resident |= sparseTextureClampARB(s3D, c3, lodClamp, texel, 2.0); + resident |= sparseTextureClampARB(isCube, c3, lodClamp, itexel); + resident |= sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x); + resident |= sparseTextureClampARB(sCubeArrayShadow, c4, 1.0, lodClamp, texel.x); + + texel += textureClampARB(s2D, c2, lodClamp); + texel += textureClampARB(s3D, c3, lodClamp, 2.0); + itexel += textureClampARB(isCube, c3, lodClamp); + texel.x += textureClampARB(s2DShadow, c3, lodClamp); + texel.x += textureClampARB(sCubeArrayShadow, c4, 1.0, lodClamp); + + resident |= sparseTextureOffsetClampARB(s3D, c3, ivec3(2), lodClamp, texel, 2.0); + resident |= sparseTextureOffsetClampARB(us2DRect, c2, ivec2(3), lodClamp, utexel); + resident |= sparseTextureOffsetClampARB(s2DArrayShadow, c4, ivec2(5), lodClamp, texel.z); + + texel += textureOffsetClampARB(s3D, c3, ivec3(2), lodClamp, 2.0); + utexel += textureOffsetClampARB(us2DRect, c2, ivec2(3), lodClamp); + texel.z += textureOffsetClampARB(s2DArrayShadow, c4, ivec2(5), lodClamp); + + resident |= sparseTextureGradClampARB(s3D, c3, c3, c3, lodClamp, texel); + resident |= sparseTextureGradClampARB(sCubeShadow, c4, c3, c3, lodClamp, texel.y); + resident |= sparseTextureGradClampARB(usCubeArray, c4, c3, c3, lodClamp, utexel); + + texel += textureGradClampARB(s3D, c3, c3, c3, lodClamp); + texel.y += textureGradClampARB(sCubeShadow, c4, c3, c3, lodClamp); + utexel += textureGradClampARB(usCubeArray, c4, c3, c3, lodClamp); + + resident |= sparseTextureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp, texel); + resident |= sparseTextureGradOffsetClampARB(s2DRectShadow, c3, c2, c2, ivec2(6), lodClamp, texel.w); + resident |= sparseTextureGradOffsetClampARB(is2DArray, c3, c2, c2, ivec2(2), lodClamp, itexel); + + texel += textureGradOffsetClampARB(s2D, c2, c2, c2, ivec2(5), lodClamp); + texel.w += textureGradOffsetClampARB(s2DRectShadow, c3, c2, c2, ivec2(6), lodClamp); + itexel += textureGradOffsetClampARB(is2DArray, c3, c2, c2, ivec2(2), lodClamp); + + outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.specConst.vert b/deps/glslang/glslang/Test/spv.specConst.vert new file mode 100644 index 0000000000..3ea2498027 --- /dev/null +++ b/deps/glslang/glslang/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/deps/glslang/glslang/Test/spv.specConstant.comp b/deps/glslang/glslang/Test/spv.specConstant.comp new file mode 100644 index 0000000000..ae8ae19d1d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.specConstant.comp @@ -0,0 +1,13 @@ +#version 450 + +layout(local_size_x_id = 18, local_size_z_id = 19) in; +layout(local_size_x = 32, local_size_y = 32) in; + +buffer bn { + uint a; +} bi; + +void main() +{ + bi.a = gl_WorkGroupSize.x * gl_WorkGroupSize.y * gl_WorkGroupSize.z; +} diff --git a/deps/glslang/glslang/Test/spv.specConstant.vert b/deps/glslang/glslang/Test/spv.specConstant.vert new file mode 100644 index 0000000000..9813bf5fa1 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.specConstant.vert @@ -0,0 +1,51 @@ +#version 400 + +layout(constant_id = 16) const int arraySize = 5; +in vec4 ucol[arraySize]; + +layout(constant_id = 17) const bool spBool = true; +layout(constant_id = 18) const float spFloat = 3.14; +layout(constant_id = 19) const double spDouble = 3.1415926535897932384626433832795; +layout(constant_id = 22) const uint scale = 2; + +layout(constant_id = 24) gl_MaxImageUnits; + +out vec4 color; +out int size; + +// parameter should be considered same type as ucol +void foo(vec4 p[arraySize]); + +void main() +{ + color = ucol[2]; + size = arraySize; + if (spBool) + color *= scale; + color += float(spDouble / spFloat); + + foo(ucol); +} + +layout(constant_id = 116) const int dupArraySize = 12; +in vec4 dupUcol[dupArraySize]; + +layout(constant_id = 117) const bool spDupBool = true; +layout(constant_id = 118) const float spDupFloat = 3.14; +layout(constant_id = 119) const double spDupDouble = 3.1415926535897932384626433832795; +layout(constant_id = 122) const uint dupScale = 2; + +void foo(vec4 p[arraySize]) +{ + color += dupUcol[2]; + size += dupArraySize; + if (spDupBool) + color *= dupScale; + color += float(spDupDouble / spDupFloat); +} + +int builtin_spec_constant() +{ + int result = gl_MaxImageUnits; + return result; +} diff --git a/deps/glslang/glslang/Test/spv.specConstantComposite.vert b/deps/glslang/glslang/Test/spv.specConstantComposite.vert new file mode 100644 index 0000000000..d9d07a3ed5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.specConstantComposite.vert @@ -0,0 +1,98 @@ +#version 450 + +// constant_id specified scalar spec constants +layout(constant_id = 200) const int spec_int = 3; +layout(constant_id = 201) const float spec_float = 3.14; +layout(constant_id = 202) const + double spec_double = 3.1415926535897932384626433832795; +layout(constant_id = 203) const bool spec_bool = true; + +// const float cast_spec_float = float(spec_float); + +// Flat struct +struct flat_struct { + int i; + float f; + double d; + bool b; +}; + +// Nesting struct +struct nesting_struct { + flat_struct nested; + vec4 v; + int i; +}; + +// Expect OpSpecConstantComposite +// Flat struct initializer +//const flat_struct spec_flat_struct_all_spec = {spec_int, spec_float, +// spec_double, spec_bool}; +//const flat_struct spec_flat_struct_partial_spec = {30, 30.14, spec_double, +// spec_bool}; + +// Nesting struct initializer +//const nesting_struct nesting_struct_ctor = { +// {spec_int, spec_float, spec_double, false}, +// vec4(0.1, 0.1, 0.1, 0.1), +// spec_int}; + +// Vector constructor +//const vec4 spec_vec4_all_spec = +// vec4(spec_float, spec_float, spec_float, spec_float); +//const vec4 spec_vec4_partial_spec = +// vec4(spec_float, spec_float, 300.14, 300.14); +//const vec4 spec_vec4_from_one_scalar = vec4(spec_float); + +// Matrix constructor +//const mat2x3 spec_mat2x3 = mat2x3(spec_float, spec_float, spec_float, 1.1, 2.2, 3.3); +//const mat2x3 spec_mat2x3_from_one_scalar = mat2x3(spec_float); + +// Struct nesting constructor +//const nesting_struct spec_nesting_struct_all_spec = { +// spec_flat_struct_all_spec, spec_vec4_all_spec, spec_int}; +//const nesting_struct spec_nesting_struct_partial_spec = { +// spec_flat_struct_partial_spec, spec_vec4_partial_spec, 3000}; + +//const float spec_float_array[5] = {spec_float, spec_float, 1.0, 2.0, 3.0}; +//const int spec_int_array[5] = {spec_int, spec_int, 1, 2, 30}; + +// global_vec4_array_with_spec_length is not a spec constant, but its array +// size is. When calling global_vec4_array_with_spec_length.length(), A +// TIntermSymbol Node should be returned, instead of a TIntermConstantUnion +// node which represents a known constant value. +in vec4 global_vec4_array_with_spec_length[spec_int]; + +out vec4 color; + +void refer_primary_spec_const() { + if (spec_bool) color *= spec_int; +} + +void refer_composite_spec_const() { + //color += spec_vec4_all_spec; + //color -= spec_vec4_partial_spec; +} + +void refer_copmosite_dot_dereference() { + //color *= spec_nesting_struct_all_spec.i; + //color += spec_vec4_all_spec.x; +} + +void refer_composite_bracket_dereference() { + //color -= spec_float_array[1]; + //color /= spec_int_array[spec_int_array[spec_int]]; +} + +int refer_spec_const_array_length() { + int len = global_vec4_array_with_spec_length.length(); + return len; +} + +void declare_spec_const_in_func() { + //const nesting_struct spec_const_declared_in_func = { + // spec_flat_struct_partial_spec, spec_vec4_partial_spec, 10}; + //color /= spec_const_declared_in_func.i; +} + +void main() {} diff --git a/deps/glslang/glslang/Test/spv.specConstantOperations.vert b/deps/glslang/glslang/Test/spv.specConstantOperations.vert new file mode 100644 index 0000000000..93be12c589 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.specConstantOperations.vert @@ -0,0 +1,124 @@ +#version 450 + +layout(constant_id = 200) const float sp_float = 3.1415926; +layout(constant_id = 201) const int sp_int = 10; +layout(constant_id = 202) const uint sp_uint = 100; +layout(constant_id = 203) const int sp_sint = -10; +layout(constant_id = 204) const double sp_double = 2.718281828459; + +// +// Scalars +// + +// float <-> double conversion +const float float_from_double = float(sp_double); +const double double_from_float = double(sp_float); + +// uint/int <-> bool conversion +const bool bool_from_int = bool(sp_int); +const bool bool_from_uint = bool(sp_uint); +const int int_from_bool = int(bool_from_int); +const uint uint_from_bool = uint(bool_from_int); + +// uint <-> int +const uint sp_uint_from_sint = uint(sp_sint); +const int sp_sint_from_uint = int(sp_uint); + +// Negate and Not +const int negate_int = -sp_int; +const int not_int = ~sp_int; + +// Add and Subtract +const int sp_int_add_two = sp_int + 2; +const int sp_int_add_two_sub_three = sp_int + 2 - 3; +const int sp_int_add_two_sub_four = sp_int_add_two - 4; + +// Mul, Div and Rem +const int sp_sint_mul_two = sp_sint * 2; +const uint sp_uint_mul_two = sp_uint * 2; +const int sp_sint_mul_two_div_five = sp_sint_mul_two / 5; +const uint sp_uint_mul_two_div_five = sp_uint_mul_two / 5; +const int sp_sint_rem_four = sp_sint % 4; +const uint sp_uint_rem_four = sp_uint % 4; +const int sp_sint_mul_three_div_five = sp_sint * 3 / 5; + +// Shift +const int sp_sint_shift_right_arithmetic = sp_sint >> 10; +const uint sp_uint_shift_right_arithmetic = sp_uint >> 20; +const int sp_sint_shift_left = sp_sint << 1; +const uint sp_uint_shift_left = sp_uint << 2; + +// Bitwise And, Or, Xor +const int sp_sint_or_256 = sp_sint | 0x100; +const uint sp_uint_xor_512 = sp_uint ^ 0x200; + +/* // Scalar comparison */ +const bool sp_int_lt_sp_sint = sp_int < sp_sint; +const bool sp_uint_equal_sp_uint = sp_uint == sp_uint; +const bool sp_int_gt_sp_sint = sp_int > sp_sint; + +// +// Vectors +// +const ivec4 iv = ivec4(20, 30, sp_int, sp_int); +const uvec4 uv = uvec4(sp_uint, sp_uint, -1, -2); +//const vec4 fv = vec4(sp_float, 1.25, sp_float, 1.25); + +// uint/int <-> bool conversion +const bvec4 bv_from_iv = bvec4(iv); +const bvec4 bv_from_uv = bvec4(uv); +const ivec4 iv_from_bv = ivec4(bv_from_iv); +const uvec4 uv_from_bv = uvec4(bv_from_iv); + +// uint <-> int +const uvec4 uv_from_iv = uvec4(iv); +const ivec4 iv_from_uv = ivec4(uv); + +// Negate and Not +const ivec4 not_iv = ~iv; +const ivec4 negate_iv = -iv; + +// Add and Subtract +const ivec4 iv_add_two = iv + 2; +const ivec4 iv_add_two_sub_three = iv + 2 - 3; +const ivec4 iv_add_two_sub_four = iv_add_two_sub_three - 4; + +// Mul, Div and Rem +const ivec4 iv_mul_two = iv * 2; +const ivec4 iv_mul_two_div_five = iv_mul_two / 5; +const ivec4 iv_rem_four = iv % 4; + +// Shift +const ivec4 iv_shift_right_arithmetic = iv >> 10; +const ivec4 iv_shift_left = iv << 2; + +// Bitwise And, Or, Xor +const ivec4 iv_or_1024 = iv | 0x400; +const uvec4 uv_xor_2048 = uv ^ 0x800; + +// Swizzles +const int iv_x = iv.x; +const ivec2 iv_yx = iv.yx; +const ivec3 iv_zyx = iv.zyx; +const ivec4 iv_yzxw = iv.yzxw; + +int non_const_array_size_from_spec_const() { + int array[sp_int + 2]; + for (int i = 0; i < sp_int + 2; i++) { + array[i] = 1023; + } + return array[sp_int + 1]; +} + +// ternary +layout(constant_id = 210) const int a = 4; +layout(constant_id = 211) const int b = 6; +layout(constant_id = 212) const bool c = true; +int ternayArray1[a > b ? a : b]; +const int t1 = c ? 13 : 17; +const int t2 = c ? a : 17; +const int t3 = true ? a : 17; +const int t4 = a > b ? 13 + a : 17 * b; +const vec2 v2 = !c ? vec2(1.0) : vec2(2.0); + +void main() {} diff --git a/deps/glslang/glslang/Test/spv.ssbo.autoassign.frag b/deps/glslang/glslang/Test/spv.ssbo.autoassign.frag new file mode 100644 index 0000000000..073be4532c --- /dev/null +++ b/deps/glslang/glslang/Test/spv.ssbo.autoassign.frag @@ -0,0 +1,24 @@ + +cbuffer TestCB +{ + uint W; + uint H; +}; + +struct BufType +{ + float4 va; + float4 vb; +}; + +StructuredBuffer < BufType > SB0; +RWStructuredBuffer < BufType > SB1; + +float4 main(float4 pos : POS) : SV_Target0 +{ + float4 vTmp = SB0[pos.y * W + pos.x].va + SB0[pos.y * W + pos.x].vb; + + vTmp += SB1[pos.y * W + pos.x].va + SB1[pos.y * W + pos.x].vb; + + return vTmp; +} diff --git a/deps/glslang/glslang/Test/spv.ssboAlias.frag b/deps/glslang/glslang/Test/spv.ssboAlias.frag new file mode 100644 index 0000000000..ed3d3e793b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.ssboAlias.frag @@ -0,0 +1,10 @@ +AppendStructuredBuffer Buf1 : register(u1); +AppendStructuredBuffer Buf2 : register(u2); +AppendStructuredBuffer Buf3 : register(u1); + +float4 main() : SV_Target +{ + Buf1.Append(10u); + Buf2.Append(20u); + return float4(1.0, 3.0, 5.0, 1.0); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.stereoViewRendering.tesc b/deps/glslang/glslang/Test/spv.stereoViewRendering.tesc new file mode 100644 index 0000000000..e8cfe00342 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.stereoViewRendering.tesc @@ -0,0 +1,19 @@ +#version 450 + +#extension GL_NV_viewport_array2 :require +#extension GL_NV_stereo_view_rendering : require + +layout(vertices = 4) out; + +out gl_PerVertex { + int gl_SecondaryViewportMaskNV[2]; + vec4 gl_SecondaryPositionNV; +} gl_out[4]; + +layout (viewport_relative, secondary_view_offset = 1) out highp int gl_Layer; + +void main() +{ + gl_out[gl_InvocationID].gl_SecondaryViewportMaskNV[0] = 1; + gl_out[gl_InvocationID].gl_SecondaryPositionNV = gl_in[1].gl_Position; +} diff --git a/deps/glslang/glslang/Test/spv.stereoViewRendering.vert b/deps/glslang/glslang/Test/spv.stereoViewRendering.vert new file mode 100644 index 0000000000..fc7d52e248 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.stereoViewRendering.vert @@ -0,0 +1,12 @@ +#version 450 + +#extension GL_NV_viewport_array2 :require +#extension GL_NV_stereo_view_rendering : require + +layout (viewport_relative, secondary_view_offset = 2) out highp int gl_Layer; +void main() +{ + gl_SecondaryViewportMaskNV[0] = 1; + gl_SecondaryPositionNV = gl_Position; +} + diff --git a/deps/glslang/glslang/Test/spv.storageBuffer.vert b/deps/glslang/glslang/Test/spv.storageBuffer.vert new file mode 100644 index 0000000000..6dd629e813 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.storageBuffer.vert @@ -0,0 +1,16 @@ +#version 450 + +#pragma use_storage_buffer + +uniform ub { + vec4 a; +} ubi; + +buffer bb { + vec4 b; +} bbi; + +void main() +{ + gl_Position = ubi.a + bbi.b; +} diff --git a/deps/glslang/glslang/Test/spv.structAssignment.frag b/deps/glslang/glslang/Test/spv.structAssignment.frag new file mode 100644 index 0000000000..ca95ec37d5 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.structAssignment.frag @@ -0,0 +1,41 @@ +#version 140 + +precision mediump int; + +uniform sampler2D samp2D; +in mediump vec2 coord; + +struct lunarStruct1 { + int i; + float f; +}; + +struct lunarStruct2 { + int i; + float f; + lunarStruct1 s1_1; +}; + +struct lunarStruct3 { + lunarStruct2 s2_1; + int i; + float f; + lunarStruct1 s1_1; +}; + + +lunarStruct1 foo; +lunarStruct2 foo2; +lunarStruct3 foo3; + +void main() +{ + lunarStruct2 locals2; + + if (foo3.s2_1.i > 0) + locals2 = foo3.s2_1; + else + locals2 = foo2; + + gl_FragColor = locals2.s1_1.f * texture(samp2D, coord); +} diff --git a/deps/glslang/glslang/Test/spv.structDeref.frag b/deps/glslang/glslang/Test/spv.structDeref.frag new file mode 100644 index 0000000000..11822cdcb7 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.structDeref.frag @@ -0,0 +1,71 @@ +#version 140 + +uniform sampler2D samp2D; +in vec2 coord; + +struct s0 { + int i; +}; + +struct s00 { + s0 s0_0; +}; + +struct s1 { + int i; + float f; + s0 s0_1; +}; + +struct s2 { + int i; + float f; + s1 s1_1; +}; + +struct s3 { + s2[12] s2_1; + int i; + float f; + s1 s1_1; +}; + + +s0 foo0; +s1 foo1; +s2 foo2; +s3 foo3; + +s00 foo00; + +void main() +{ + s0 locals0; + s2 locals2; + s00 locals00; + + float[6] fArray; + + s1[10] locals1Array; + + if (foo3.s2_1[9].i > 0) { + locals2.f = 1.0; + locals2.s1_1 = s1(0, 1.0, s0(0)); + fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + locals1Array[6] = foo1; + locals0 = s0(0); + locals00 = s00(s0(0)); + } else { + locals2.f = coord.x; + locals2.s1_1 = s1(1, coord.y, foo0); + fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0); + locals1Array[6] = locals2.s1_1; + locals0 = foo1.s0_1; + locals00 = foo00; + } + + if (locals0.i > 5) + locals0 = locals00.s0_0; + + gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture(samp2D, coord); +} diff --git a/deps/glslang/glslang/Test/spv.structure.frag b/deps/glslang/glslang/Test/spv.structure.frag new file mode 100644 index 0000000000..b81b9547ac --- /dev/null +++ b/deps/glslang/glslang/Test/spv.structure.frag @@ -0,0 +1,31 @@ +#version 140 +uniform sampler2D samp2D; +in vec2 coord; + +struct lunarStruct1 { + int i; + float f[4]; + vec4 color[5]; +}; + +struct lunarStruct2 { + int i[5]; + float f; + lunarStruct1 s1_1[7]; +}; + +lunarStruct1 foo; +lunarStruct2 foo2[5]; + +void main() +{ + float scale = 0.0; + + if (foo2[3].i[4] > 0) + scale = foo2[3].s1_1[2].color[3].x; + else + scale = foo2[3].s1_1[2].f[3]; + + gl_FragColor = scale * texture(samp2D, coord); +} + diff --git a/deps/glslang/glslang/Test/spv.subgroup.frag b/deps/glslang/glslang/Test/spv.subgroup.frag new file mode 100644 index 0000000000..520052faac --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroup.frag @@ -0,0 +1,7 @@ +#version 450 +#extension GL_KHR_shader_subgroup_basic: enable +layout(location = 0) out uvec4 data; +void main (void) +{ + data = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.subgroup.geom b/deps/glslang/glslang/Test/spv.subgroup.geom new file mode 100644 index 0000000000..70e9dd4893 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroup.geom @@ -0,0 +1,13 @@ +#version 450 +#extension GL_KHR_shader_subgroup_basic: enable +layout(points) in; +layout(points, max_vertices = 1) out; +layout(set = 0, binding = 0, std430) buffer Output +{ + uvec4 result[]; +}; + +void main (void) +{ + result[gl_PrimitiveIDIn] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.subgroup.tesc b/deps/glslang/glslang/Test/spv.subgroup.tesc new file mode 100644 index 0000000000..63bf5e5592 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroup.tesc @@ -0,0 +1,12 @@ +#version 450 +#extension GL_KHR_shader_subgroup_basic: enable +layout(vertices=1) out; +layout(set = 0, binding = 0, std430) buffer Output +{ + uvec4 result[]; +}; + +void main (void) +{ + result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.subgroup.tese b/deps/glslang/glslang/Test/spv.subgroup.tese new file mode 100644 index 0000000000..e504df79ad --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroup.tese @@ -0,0 +1,12 @@ +#version 450 +#extension GL_KHR_shader_subgroup_basic: enable +layout(isolines) in; +layout(set = 0, binding = 0, std430) buffer Output +{ + uvec4 result[]; +}; + +void main (void) +{ + result[gl_PrimitiveID] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.subgroup.vert b/deps/glslang/glslang/Test/spv.subgroup.vert new file mode 100644 index 0000000000..779b7584c1 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroup.vert @@ -0,0 +1,11 @@ +#version 450 +#extension GL_KHR_shader_subgroup_basic: enable +layout(set = 0, binding = 0, std430) buffer Output +{ + uvec4 result[]; +}; + +void main (void) +{ + result[gl_VertexIndex] = uvec4(gl_SubgroupSize, gl_SubgroupInvocationID, 0, 0); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupArithmetic.comp b/deps/glslang/glslang/Test/spv.subgroupArithmetic.comp new file mode 100644 index 0000000000..6cc9337b68 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupArithmetic.comp @@ -0,0 +1,393 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_arithmetic: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.x = subgroupAdd(data[0].f4.x); + data[invocation].f4.xy = subgroupAdd(data[1].f4.xy); + data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz); + data[invocation].f4 = subgroupAdd(data[3].f4); + + data[invocation].i4.x = subgroupAdd(data[0].i4.x); + data[invocation].i4.xy = subgroupAdd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz); + data[invocation].i4 = subgroupAdd(data[3].i4); + + data[invocation].u4.x = subgroupAdd(data[0].u4.x); + data[invocation].u4.xy = subgroupAdd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz); + data[invocation].u4 = subgroupAdd(data[3].u4); + + data[invocation].d4.x = subgroupAdd(data[0].d4.x); + data[invocation].d4.xy = subgroupAdd(data[1].d4.xy); + data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz); + data[invocation].d4 = subgroupAdd(data[3].d4); + + data[invocation].f4.x = subgroupMul(data[0].f4.x); + data[invocation].f4.xy = subgroupMul(data[1].f4.xy); + data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz); + data[invocation].f4 = subgroupMul(data[3].f4); + + data[invocation].i4.x = subgroupMul(data[0].i4.x); + data[invocation].i4.xy = subgroupMul(data[1].i4.xy); + data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz); + data[invocation].i4 = subgroupMul(data[3].i4); + + data[invocation].u4.x = subgroupMul(data[0].u4.x); + data[invocation].u4.xy = subgroupMul(data[1].u4.xy); + data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz); + data[invocation].u4 = subgroupMul(data[3].u4); + + data[invocation].d4.x = subgroupMul(data[0].d4.x); + data[invocation].d4.xy = subgroupMul(data[1].d4.xy); + data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz); + data[invocation].d4 = subgroupMul(data[3].d4); + + data[invocation].f4.x = subgroupMin(data[0].f4.x); + data[invocation].f4.xy = subgroupMin(data[1].f4.xy); + data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz); + data[invocation].f4 = subgroupMin(data[3].f4); + + data[invocation].i4.x = subgroupMin(data[0].i4.x); + data[invocation].i4.xy = subgroupMin(data[1].i4.xy); + data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz); + data[invocation].i4 = subgroupMin(data[3].i4); + + data[invocation].u4.x = subgroupMin(data[0].u4.x); + data[invocation].u4.xy = subgroupMin(data[1].u4.xy); + data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz); + data[invocation].u4 = subgroupMin(data[3].u4); + + data[invocation].d4.x = subgroupMin(data[0].d4.x); + data[invocation].d4.xy = subgroupMin(data[1].d4.xy); + data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz); + data[invocation].d4 = subgroupMin(data[3].d4); + + data[invocation].f4.x = subgroupMax(data[0].f4.x); + data[invocation].f4.xy = subgroupMax(data[1].f4.xy); + data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz); + data[invocation].f4 = subgroupMax(data[3].f4); + + data[invocation].i4.x = subgroupMax(data[0].i4.x); + data[invocation].i4.xy = subgroupMax(data[1].i4.xy); + data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz); + data[invocation].i4 = subgroupMax(data[3].i4); + + data[invocation].u4.x = subgroupMax(data[0].u4.x); + data[invocation].u4.xy = subgroupMax(data[1].u4.xy); + data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz); + data[invocation].u4 = subgroupMax(data[3].u4); + + data[invocation].d4.x = subgroupMax(data[0].d4.x); + data[invocation].d4.xy = subgroupMax(data[1].d4.xy); + data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz); + data[invocation].d4 = subgroupMax(data[3].d4); + + data[invocation].i4.x = subgroupAnd(data[0].i4.x); + data[invocation].i4.xy = subgroupAnd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz); + data[invocation].i4 = subgroupAnd(data[3].i4); + + data[invocation].u4.x = subgroupAnd(data[0].u4.x); + data[invocation].u4.xy = subgroupAnd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz); + data[invocation].u4 = subgroupAnd(data[3].u4); + + data[invocation].i4.x = int(subgroupAnd(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupOr(data[0].i4.x); + data[invocation].i4.xy = subgroupOr(data[1].i4.xy); + data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz); + data[invocation].i4 = subgroupOr(data[3].i4); + + data[invocation].u4.x = subgroupOr(data[0].u4.x); + data[invocation].u4.xy = subgroupOr(data[1].u4.xy); + data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz); + data[invocation].u4 = subgroupOr(data[3].u4); + + data[invocation].i4.x = int(subgroupOr(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupXor(data[0].i4.x); + data[invocation].i4.xy = subgroupXor(data[1].i4.xy); + data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz); + data[invocation].i4 = subgroupXor(data[3].i4); + + data[invocation].u4.x = subgroupXor(data[0].u4.x); + data[invocation].u4.xy = subgroupXor(data[1].u4.xy); + data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz); + data[invocation].u4 = subgroupXor(data[3].u4); + + data[invocation].i4.x = int(subgroupXor(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].f4.x = subgroupInclusiveAdd(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveAdd(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveAdd(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveAdd(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveAdd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveAdd(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveAdd(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveAdd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveAdd(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveAdd(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveAdd(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveAdd(data[3].d4); + + data[invocation].f4.x = subgroupInclusiveMul(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveMul(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveMul(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveMul(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveMul(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveMul(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveMul(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveMul(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveMul(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveMul(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveMul(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveMul(data[3].d4); + + data[invocation].f4.x = subgroupInclusiveMin(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveMin(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveMin(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveMin(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveMin(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveMin(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveMin(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveMin(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveMin(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveMin(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveMin(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveMin(data[3].d4); + + data[invocation].f4.x = subgroupInclusiveMax(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveMax(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveMax(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveMax(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveMax(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveMax(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveMax(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveMax(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveMax(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveMax(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveMax(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveMax(data[3].d4); + + data[invocation].i4.x = subgroupInclusiveAnd(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveAnd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveAnd(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveAnd(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveAnd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveAnd(data[3].u4); + + data[invocation].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupInclusiveOr(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveOr(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveOr(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveOr(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveOr(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveOr(data[3].u4); + + data[invocation].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupInclusiveXor(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveXor(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveXor(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveXor(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveXor(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveXor(data[3].u4); + + data[invocation].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].f4.x = subgroupExclusiveAdd(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveAdd(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveAdd(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveAdd(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveAdd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveAdd(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveAdd(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveAdd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveAdd(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveAdd(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveAdd(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveAdd(data[3].d4); + + data[invocation].f4.x = subgroupExclusiveMul(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveMul(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveMul(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveMul(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveMul(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveMul(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveMul(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveMul(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveMul(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveMul(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveMul(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveMul(data[3].d4); + + data[invocation].f4.x = subgroupExclusiveMin(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveMin(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveMin(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveMin(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveMin(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveMin(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveMin(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveMin(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveMin(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveMin(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveMin(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveMin(data[3].d4); + + data[invocation].f4.x = subgroupExclusiveMax(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveMax(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveMax(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveMax(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveMax(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveMax(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveMax(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveMax(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveMax(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveMax(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveMax(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveMax(data[3].d4); + + data[invocation].i4.x = subgroupExclusiveAnd(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveAnd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveAnd(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveAnd(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveAnd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveAnd(data[3].u4); + + data[invocation].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupExclusiveOr(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveOr(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveOr(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveOr(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveOr(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveOr(data[3].u4); + + data[invocation].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupExclusiveXor(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveXor(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveXor(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveXor(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveXor(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveXor(data[3].u4); + + data[invocation].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0)))); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupBallot.comp b/deps/glslang/glslang/Test/spv.subgroupBallot.comp new file mode 100644 index 0000000000..2875468ced --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupBallot.comp @@ -0,0 +1,86 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_ballot: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + uvec4 relMask = gl_SubgroupEqMask + + gl_SubgroupGeMask + + gl_SubgroupGtMask + + gl_SubgroupLeMask + + gl_SubgroupLtMask; + + uvec4 result = subgroupBallot(true); + + data[invocation].u4.x = subgroupBallotBitCount(result); + data[invocation].u4.y = subgroupBallotBitExtract(result, 0) ? 1 : 0; + data[invocation].u4.z = subgroupBallotInclusiveBitCount(result) + subgroupBallotExclusiveBitCount(result); + data[invocation].u4.w = subgroupBallotFindLSB(result) + subgroupBallotFindMSB(result); + + if ((relMask == result) && subgroupInverseBallot(data[0].u4)) + { + data[invocation].f4.x = subgroupBroadcast(data[0].f4.x, invocation); + data[invocation].f4.xy = subgroupBroadcast(data[1].f4.xy, invocation); + data[invocation].f4.xyz = subgroupBroadcast(data[2].f4.xyz, invocation); + data[invocation].f4 = subgroupBroadcast(data[3].f4, invocation); + + data[invocation].i4.x = subgroupBroadcast(data[0].i4.x, invocation); + data[invocation].i4.xy = subgroupBroadcast(data[1].i4.xy, invocation); + data[invocation].i4.xyz = subgroupBroadcast(data[2].i4.xyz, invocation); + data[invocation].i4 = subgroupBroadcast(data[3].i4, invocation); + + data[invocation].u4.x = subgroupBroadcast(data[0].u4.x, invocation); + data[invocation].u4.xy = subgroupBroadcast(data[1].u4.xy, invocation); + data[invocation].u4.xyz = subgroupBroadcast(data[2].u4.xyz, invocation); + data[invocation].u4 = subgroupBroadcast(data[3].u4, invocation); + + data[invocation].d4.x = subgroupBroadcast(data[0].d4.x, invocation); + data[invocation].d4.xy = subgroupBroadcast(data[1].d4.xy, invocation); + data[invocation].d4.xyz = subgroupBroadcast(data[2].d4.xyz, invocation); + data[invocation].d4 = subgroupBroadcast(data[3].d4, invocation); + + data[invocation].i4.x = int(subgroupBroadcast(data[0].i4.x < 0, invocation)); + data[invocation].i4.xy = ivec2(subgroupBroadcast(lessThan(data[1].i4.xy, ivec2(0)), invocation)); + data[invocation].i4.xyz = ivec3(subgroupBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); + data[invocation].i4 = ivec4(subgroupBroadcast(lessThan(data[1].i4, ivec4(0)), invocation)); + } + else + { + data[invocation].f4.x = subgroupBroadcastFirst(data[0].f4.x); + data[invocation].f4.xy = subgroupBroadcastFirst(data[1].f4.xy); + data[invocation].f4.xyz = subgroupBroadcastFirst(data[2].f4.xyz); + data[invocation].f4 = subgroupBroadcastFirst(data[3].f4); + + data[invocation].i4.x = subgroupBroadcastFirst(data[0].i4.x); + data[invocation].i4.xy = subgroupBroadcastFirst(data[1].i4.xy); + data[invocation].i4.xyz = subgroupBroadcastFirst(data[2].i4.xyz); + data[invocation].i4 = subgroupBroadcastFirst(data[3].i4); + + data[invocation].u4.x = subgroupBroadcastFirst(data[0].u4.x); + data[invocation].u4.xy = subgroupBroadcastFirst(data[1].u4.xy); + data[invocation].u4.xyz = subgroupBroadcastFirst(data[2].u4.xyz); + data[invocation].u4 = subgroupBroadcastFirst(data[3].u4); + + data[invocation].d4.x = subgroupBroadcastFirst(data[0].d4.x); + data[invocation].d4.xy = subgroupBroadcastFirst(data[1].d4.xy); + data[invocation].d4.xyz = subgroupBroadcastFirst(data[2].d4.xyz); + data[invocation].d4 = subgroupBroadcastFirst(data[3].d4); + + data[invocation].i4.x = int(subgroupBroadcastFirst(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupBroadcastFirst(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupBroadcastFirst(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupBroadcastFirst(lessThan(data[1].i4, ivec4(0)))); + } +} diff --git a/deps/glslang/glslang/Test/spv.subgroupBasic.comp b/deps/glslang/glslang/Test/spv.subgroupBasic.comp new file mode 100644 index 0000000000..4801c10707 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupBasic.comp @@ -0,0 +1,23 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_basic: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffer +{ + int a[]; +} data; + +void main() +{ + data.a[gl_SubgroupSize] = 1; + data.a[gl_SubgroupInvocationID] = 1; + data.a[gl_NumSubgroups] = 1; + data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0; + subgroupBarrier(); + subgroupMemoryBarrier(); + subgroupMemoryBarrierBuffer(); + subgroupMemoryBarrierShared(); + subgroupMemoryBarrierImage(); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupClustered.comp b/deps/glslang/glslang/Test/spv.subgroupClustered.comp new file mode 100644 index 0000000000..128a24c88e --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupClustered.comp @@ -0,0 +1,143 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_clustered: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.x = subgroupClusteredAdd(data[0].f4.x, 1); + data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 1); + data[invocation].f4.xyz = subgroupClusteredAdd(data[2].f4.xyz, 1); + data[invocation].f4 = subgroupClusteredAdd(data[3].f4, 1); + + data[invocation].i4.x = subgroupClusteredAdd(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredAdd(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredAdd(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredAdd(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredAdd(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredAdd(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredAdd(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredAdd(data[3].u4, 1); + + data[invocation].d4.x = subgroupClusteredAdd(data[0].d4.x, 1); + data[invocation].d4.xy = subgroupClusteredAdd(data[1].d4.xy, 1); + data[invocation].d4.xyz = subgroupClusteredAdd(data[2].d4.xyz, 1); + data[invocation].d4 = subgroupClusteredAdd(data[3].d4, 1); + + data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 1); + data[invocation].f4.xy = subgroupClusteredMul(data[1].f4.xy, 1); + data[invocation].f4.xyz = subgroupClusteredMul(data[2].f4.xyz, 1); + data[invocation].f4 = subgroupClusteredMul(data[3].f4, 1); + + data[invocation].i4.x = subgroupClusteredMul(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredMul(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredMul(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredMul(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredMul(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredMul(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredMul(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredMul(data[3].u4, 1); + + data[invocation].d4.x = subgroupClusteredMul(data[0].d4.x, 1); + data[invocation].d4.xy = subgroupClusteredMul(data[1].d4.xy, 1); + data[invocation].d4.xyz = subgroupClusteredMul(data[2].d4.xyz, 1); + data[invocation].d4 = subgroupClusteredMul(data[3].d4, 1); + + data[invocation].f4.x = subgroupClusteredMin(data[0].f4.x, 1); + data[invocation].f4.xy = subgroupClusteredMin(data[1].f4.xy, 1); + data[invocation].f4.xyz = subgroupClusteredMin(data[2].f4.xyz, 1); + data[invocation].f4 = subgroupClusteredMin(data[3].f4, 1); + + data[invocation].i4.x = subgroupClusteredMin(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredMin(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredMin(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredMin(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredMin(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredMin(data[3].u4, 1); + + data[invocation].d4.x = subgroupClusteredMin(data[0].d4.x, 1); + data[invocation].d4.xy = subgroupClusteredMin(data[1].d4.xy, 1); + data[invocation].d4.xyz = subgroupClusteredMin(data[2].d4.xyz, 1); + data[invocation].d4 = subgroupClusteredMin(data[3].d4, 1); + + data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, 1); + data[invocation].f4.xy = subgroupClusteredMax(data[1].f4.xy, 1); + data[invocation].f4.xyz = subgroupClusteredMax(data[2].f4.xyz, 1); + data[invocation].f4 = subgroupClusteredMax(data[3].f4, 1); + + data[invocation].i4.x = subgroupClusteredMax(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredMax(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredMax(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredMax(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredMax(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredMax(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredMax(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredMax(data[3].u4, 1); + + data[invocation].d4.x = subgroupClusteredMax(data[0].d4.x, 1); + data[invocation].d4.xy = subgroupClusteredMax(data[1].d4.xy, 1); + data[invocation].d4.xyz = subgroupClusteredMax(data[2].d4.xyz, 1); + data[invocation].d4 = subgroupClusteredMax(data[3].d4, 1); + + data[invocation].i4.x = subgroupClusteredAnd(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredAnd(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredAnd(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredAnd(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredAnd(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredAnd(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredAnd(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredAnd(data[3].u4, 1); + + data[invocation].i4.x = int(subgroupClusteredAnd(data[0].i4.x < 0, 1)); + data[invocation].i4.xy = ivec2(subgroupClusteredAnd(lessThan(data[1].i4.xy, ivec2(0)), 1)); + data[invocation].i4.xyz = ivec3(subgroupClusteredAnd(lessThan(data[1].i4.xyz, ivec3(0)), 1)); + data[invocation].i4 = ivec4(subgroupClusteredAnd(lessThan(data[1].i4, ivec4(0)), 1)); + + data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredOr(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredOr(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredOr(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredOr(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredOr(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredOr(data[3].u4, 1); + + data[invocation].i4.x = int(subgroupClusteredOr(data[0].i4.x < 0, 1)); + data[invocation].i4.xy = ivec2(subgroupClusteredOr(lessThan(data[1].i4.xy, ivec2(0)), 1)); + data[invocation].i4.xyz = ivec3(subgroupClusteredOr(lessThan(data[1].i4.xyz, ivec3(0)), 1)); + data[invocation].i4 = ivec4(subgroupClusteredOr(lessThan(data[1].i4, ivec4(0)), 1)); + + data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupClusteredXor(data[3].i4, 1); + + data[invocation].u4.x = subgroupClusteredXor(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupClusteredXor(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupClusteredXor(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupClusteredXor(data[3].u4, 1); + + data[invocation].i4.x = int(subgroupClusteredXor(data[0].i4.x < 0, 1)); + data[invocation].i4.xy = ivec2(subgroupClusteredXor(lessThan(data[1].i4.xy, ivec2(0)), 1)); + data[invocation].i4.xyz = ivec3(subgroupClusteredXor(lessThan(data[1].i4.xyz, ivec3(0)), 1)); + data[invocation].i4 = ivec4(subgroupClusteredXor(lessThan(data[1].i4, ivec4(0)), 1)); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupClusteredNeg.comp b/deps/glslang/glslang/Test/spv.subgroupClusteredNeg.comp new file mode 100644 index 0000000000..ec15413e3d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupClusteredNeg.comp @@ -0,0 +1,39 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_clustered: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + int a = 1; + const int aConst = 1; + + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.xy = subgroupClusteredAdd(data[1].f4.xy, 0); // ERROR, less than 1 + + data[invocation].f4.x = subgroupClusteredMul(data[0].f4.x, 3); // ERROR, not a power of 2 + + data[invocation].i4.xy = subgroupClusteredMin(data[1].i4.xy, 8); + data[invocation].i4.xyz = subgroupClusteredMin(data[2].i4.xyz, 6); // ERROR, not a power of 2 + + data[invocation].f4.x = subgroupClusteredMax(data[0].f4.x, -1); // ERROR, less than 1 + + data[invocation].i4 = subgroupClusteredAnd(data[3].i4, -3); // ERROR, less than 1 + + data[invocation].i4.x = subgroupClusteredOr(data[0].i4.x, a); // ERROR, not constant + data[invocation].i4.xy = subgroupClusteredOr(data[1].i4.xy, aConst); + + data[invocation].i4.x = subgroupClusteredXor(data[0].i4.x, 1 + a); // ERROR, not constant + data[invocation].i4.xy = subgroupClusteredXor(data[1].i4.xy, aConst + a); // ERROR, not constant + data[invocation].i4.xyz = subgroupClusteredXor(data[2].i4.xyz, 1 + aConst); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupPartitioned.comp b/deps/glslang/glslang/Test/spv.subgroupPartitioned.comp new file mode 100644 index 0000000000..604833e056 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupPartitioned.comp @@ -0,0 +1,420 @@ +#version 450 + +#extension GL_NV_shader_subgroup_partitioned: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + uvec4 ballot = subgroupPartitionNV(invocation); + + data[invocation].u4 = subgroupPartitionNV(data[0].f4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].f4); + + data[invocation].u4 = subgroupPartitionNV(data[0].i4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].i4); + + data[invocation].u4 = subgroupPartitionNV(data[0].u4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].u4); + + data[invocation].u4 = subgroupPartitionNV(data[0].d4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].d4); + + data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x)); + data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); + data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); + data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4)); + + data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot); + + data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupQuad.comp b/deps/glslang/glslang/Test/spv.subgroupQuad.comp new file mode 100644 index 0000000000..223a7cdacc --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupQuad.comp @@ -0,0 +1,118 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_quad: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.x = subgroupQuadBroadcast(data[0].f4.x, 1); + data[invocation].f4.xy = subgroupQuadBroadcast(data[1].f4.xy, 1); + data[invocation].f4.xyz = subgroupQuadBroadcast(data[2].f4.xyz, 1); + data[invocation].f4 = subgroupQuadBroadcast(data[3].f4, 1); + + data[invocation].i4.x = subgroupQuadBroadcast(data[0].i4.x, 1); + data[invocation].i4.xy = subgroupQuadBroadcast(data[1].i4.xy, 1); + data[invocation].i4.xyz = subgroupQuadBroadcast(data[2].i4.xyz, 1); + data[invocation].i4 = subgroupQuadBroadcast(data[3].i4, 1); + + data[invocation].u4.x = subgroupQuadBroadcast(data[0].u4.x, 1); + data[invocation].u4.xy = subgroupQuadBroadcast(data[1].u4.xy, 1); + data[invocation].u4.xyz = subgroupQuadBroadcast(data[2].u4.xyz, 1); + data[invocation].u4 = subgroupQuadBroadcast(data[3].u4, 1); + + data[invocation].d4.x = subgroupQuadBroadcast(data[0].d4.x, 1); + data[invocation].d4.xy = subgroupQuadBroadcast(data[1].d4.xy, 1); + data[invocation].d4.xyz = subgroupQuadBroadcast(data[2].d4.xyz, 1); + data[invocation].d4 = subgroupQuadBroadcast(data[3].d4, 1); + + data[invocation].i4.x = int(subgroupQuadBroadcast(data[0].i4.x < 0, 1)); + data[invocation].i4.xy = ivec2(subgroupQuadBroadcast(lessThan(data[1].i4.xy, ivec2(0)), 1)); + data[invocation].i4.xyz = ivec3(subgroupQuadBroadcast(lessThan(data[1].i4.xyz, ivec3(0)), 1)); + data[invocation].i4 = ivec4(subgroupQuadBroadcast(lessThan(data[1].i4, ivec4(0)), 1)); + + data[invocation].f4.x = subgroupQuadSwapHorizontal(data[0].f4.x); + data[invocation].f4.xy = subgroupQuadSwapHorizontal(data[1].f4.xy); + data[invocation].f4.xyz = subgroupQuadSwapHorizontal(data[2].f4.xyz); + data[invocation].f4 = subgroupQuadSwapHorizontal(data[3].f4); + + data[invocation].i4.x = subgroupQuadSwapHorizontal(data[0].i4.x); + data[invocation].i4.xy = subgroupQuadSwapHorizontal(data[1].i4.xy); + data[invocation].i4.xyz = subgroupQuadSwapHorizontal(data[2].i4.xyz); + data[invocation].i4 = subgroupQuadSwapHorizontal(data[3].i4); + + data[invocation].u4.x = subgroupQuadSwapHorizontal(data[0].u4.x); + data[invocation].u4.xy = subgroupQuadSwapHorizontal(data[1].u4.xy); + data[invocation].u4.xyz = subgroupQuadSwapHorizontal(data[2].u4.xyz); + data[invocation].u4 = subgroupQuadSwapHorizontal(data[3].u4); + + data[invocation].d4.x = subgroupQuadSwapHorizontal(data[0].d4.x); + data[invocation].d4.xy = subgroupQuadSwapHorizontal(data[1].d4.xy); + data[invocation].d4.xyz = subgroupQuadSwapHorizontal(data[2].d4.xyz); + data[invocation].d4 = subgroupQuadSwapHorizontal(data[3].d4); + + data[invocation].i4.x = int(subgroupQuadSwapHorizontal(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupQuadSwapHorizontal(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupQuadSwapHorizontal(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].f4.x = subgroupQuadSwapVertical(data[0].f4.x); + data[invocation].f4.xy = subgroupQuadSwapVertical(data[1].f4.xy); + data[invocation].f4.xyz = subgroupQuadSwapVertical(data[2].f4.xyz); + data[invocation].f4 = subgroupQuadSwapVertical(data[3].f4); + + data[invocation].i4.x = subgroupQuadSwapVertical(data[0].i4.x); + data[invocation].i4.xy = subgroupQuadSwapVertical(data[1].i4.xy); + data[invocation].i4.xyz = subgroupQuadSwapVertical(data[2].i4.xyz); + data[invocation].i4 = subgroupQuadSwapVertical(data[3].i4); + + data[invocation].u4.x = subgroupQuadSwapVertical(data[0].u4.x); + data[invocation].u4.xy = subgroupQuadSwapVertical(data[1].u4.xy); + data[invocation].u4.xyz = subgroupQuadSwapVertical(data[2].u4.xyz); + data[invocation].u4 = subgroupQuadSwapVertical(data[3].u4); + + data[invocation].d4.x = subgroupQuadSwapVertical(data[0].d4.x); + data[invocation].d4.xy = subgroupQuadSwapVertical(data[1].d4.xy); + data[invocation].d4.xyz = subgroupQuadSwapVertical(data[2].d4.xyz); + data[invocation].d4 = subgroupQuadSwapVertical(data[3].d4); + + data[invocation].i4.x = int(subgroupQuadSwapVertical(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupQuadSwapVertical(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupQuadSwapVertical(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupQuadSwapVertical(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].f4.x = subgroupQuadSwapDiagonal(data[0].f4.x); + data[invocation].f4.xy = subgroupQuadSwapDiagonal(data[1].f4.xy); + data[invocation].f4.xyz = subgroupQuadSwapDiagonal(data[2].f4.xyz); + data[invocation].f4 = subgroupQuadSwapDiagonal(data[3].f4); + + data[invocation].i4.x = subgroupQuadSwapDiagonal(data[0].i4.x); + data[invocation].i4.xy = subgroupQuadSwapDiagonal(data[1].i4.xy); + data[invocation].i4.xyz = subgroupQuadSwapDiagonal(data[2].i4.xyz); + data[invocation].i4 = subgroupQuadSwapDiagonal(data[3].i4); + + data[invocation].u4.x = subgroupQuadSwapDiagonal(data[0].u4.x); + data[invocation].u4.xy = subgroupQuadSwapDiagonal(data[1].u4.xy); + data[invocation].u4.xyz = subgroupQuadSwapDiagonal(data[2].u4.xyz); + data[invocation].u4 = subgroupQuadSwapDiagonal(data[3].u4); + + data[invocation].d4.x = subgroupQuadSwapDiagonal(data[0].d4.x); + data[invocation].d4.xy = subgroupQuadSwapDiagonal(data[1].d4.xy); + data[invocation].d4.xyz = subgroupQuadSwapDiagonal(data[2].d4.xyz); + data[invocation].d4 = subgroupQuadSwapDiagonal(data[3].d4); + + data[invocation].i4.x = int(subgroupQuadSwapDiagonal(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupQuadSwapDiagonal(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupQuadSwapDiagonal(lessThan(data[1].i4, ivec4(0)))); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupShuffle.comp b/deps/glslang/glslang/Test/spv.subgroupShuffle.comp new file mode 100644 index 0000000000..6d264882ac --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupShuffle.comp @@ -0,0 +1,68 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_shuffle: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.x = subgroupShuffle(data[0].f4.x, invocation); + data[invocation].f4.xy = subgroupShuffle(data[1].f4.xy, invocation); + data[invocation].f4.xyz = subgroupShuffle(data[2].f4.xyz, invocation); + data[invocation].f4 = subgroupShuffle(data[3].f4, invocation); + + data[invocation].i4.x = subgroupShuffle(data[0].i4.x, invocation); + data[invocation].i4.xy = subgroupShuffle(data[1].i4.xy, invocation); + data[invocation].i4.xyz = subgroupShuffle(data[2].i4.xyz, invocation); + data[invocation].i4 = subgroupShuffle(data[3].i4, invocation); + + data[invocation].u4.x = subgroupShuffle(data[0].u4.x, invocation); + data[invocation].u4.xy = subgroupShuffle(data[1].u4.xy, invocation); + data[invocation].u4.xyz = subgroupShuffle(data[2].u4.xyz, invocation); + data[invocation].u4 = subgroupShuffle(data[3].u4, invocation); + + data[invocation].d4.x = subgroupShuffle(data[0].d4.x, invocation); + data[invocation].d4.xy = subgroupShuffle(data[1].d4.xy, invocation); + data[invocation].d4.xyz = subgroupShuffle(data[2].d4.xyz, invocation); + data[invocation].d4 = subgroupShuffle(data[3].d4, invocation); + + data[invocation].i4.x = int(subgroupShuffle(data[0].i4.x < 0, invocation)); + data[invocation].i4.xy = ivec2(subgroupShuffle(lessThan(data[1].i4.xy, ivec2(0)), invocation)); + data[invocation].i4.xyz = ivec3(subgroupShuffle(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); + data[invocation].i4 = ivec4(subgroupShuffle(lessThan(data[1].i4, ivec4(0)), invocation)); + + data[invocation].f4.x = subgroupShuffleXor(data[0].f4.x, invocation); + data[invocation].f4.xy = subgroupShuffleXor(data[1].f4.xy, invocation); + data[invocation].f4.xyz = subgroupShuffleXor(data[2].f4.xyz, invocation); + data[invocation].f4 = subgroupShuffleXor(data[3].f4, invocation); + + data[invocation].i4.x = subgroupShuffleXor(data[0].i4.x, invocation); + data[invocation].i4.xy = subgroupShuffleXor(data[1].i4.xy, invocation); + data[invocation].i4.xyz = subgroupShuffleXor(data[2].i4.xyz, invocation); + data[invocation].i4 = subgroupShuffleXor(data[3].i4, invocation); + + data[invocation].u4.x = subgroupShuffleXor(data[0].u4.x, invocation); + data[invocation].u4.xy = subgroupShuffleXor(data[1].u4.xy, invocation); + data[invocation].u4.xyz = subgroupShuffleXor(data[2].u4.xyz, invocation); + data[invocation].u4 = subgroupShuffleXor(data[3].u4, invocation); + + data[invocation].d4.x = subgroupShuffleXor(data[0].d4.x, invocation); + data[invocation].d4.xy = subgroupShuffleXor(data[1].d4.xy, invocation); + data[invocation].d4.xyz = subgroupShuffleXor(data[2].d4.xyz, invocation); + data[invocation].d4 = subgroupShuffleXor(data[3].d4, invocation); + + data[invocation].i4.x = int(subgroupShuffleXor(data[0].i4.x < 0, invocation)); + data[invocation].i4.xy = ivec2(subgroupShuffleXor(lessThan(data[1].i4.xy, ivec2(0)), invocation)); + data[invocation].i4.xyz = ivec3(subgroupShuffleXor(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); + data[invocation].i4 = ivec4(subgroupShuffleXor(lessThan(data[1].i4, ivec4(0)), invocation)); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupShuffleRelative.comp b/deps/glslang/glslang/Test/spv.subgroupShuffleRelative.comp new file mode 100644 index 0000000000..1864de10af --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupShuffleRelative.comp @@ -0,0 +1,68 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_shuffle_relative: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.x = subgroupShuffleUp(data[0].f4.x, invocation); + data[invocation].f4.xy = subgroupShuffleUp(data[1].f4.xy, invocation); + data[invocation].f4.xyz = subgroupShuffleUp(data[2].f4.xyz, invocation); + data[invocation].f4 = subgroupShuffleUp(data[3].f4, invocation); + + data[invocation].i4.x = subgroupShuffleUp(data[0].i4.x, invocation); + data[invocation].i4.xy = subgroupShuffleUp(data[1].i4.xy, invocation); + data[invocation].i4.xyz = subgroupShuffleUp(data[2].i4.xyz, invocation); + data[invocation].i4 = subgroupShuffleUp(data[3].i4, invocation); + + data[invocation].u4.x = subgroupShuffleUp(data[0].u4.x, invocation); + data[invocation].u4.xy = subgroupShuffleUp(data[1].u4.xy, invocation); + data[invocation].u4.xyz = subgroupShuffleUp(data[2].u4.xyz, invocation); + data[invocation].u4 = subgroupShuffleUp(data[3].u4, invocation); + + data[invocation].d4.x = subgroupShuffleUp(data[0].d4.x, invocation); + data[invocation].d4.xy = subgroupShuffleUp(data[1].d4.xy, invocation); + data[invocation].d4.xyz = subgroupShuffleUp(data[2].d4.xyz, invocation); + data[invocation].d4 = subgroupShuffleUp(data[3].d4, invocation); + + data[invocation].i4.x = int(subgroupShuffleUp(data[0].i4.x < 0, invocation)); + data[invocation].i4.xy = ivec2(subgroupShuffleUp(lessThan(data[1].i4.xy, ivec2(0)), invocation)); + data[invocation].i4.xyz = ivec3(subgroupShuffleUp(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); + data[invocation].i4 = ivec4(subgroupShuffleUp(lessThan(data[1].i4, ivec4(0)), invocation)); + + data[invocation].f4.x = subgroupShuffleDown(data[0].f4.x, invocation); + data[invocation].f4.xy = subgroupShuffleDown(data[1].f4.xy, invocation); + data[invocation].f4.xyz = subgroupShuffleDown(data[2].f4.xyz, invocation); + data[invocation].f4 = subgroupShuffleDown(data[3].f4, invocation); + + data[invocation].i4.x = subgroupShuffleDown(data[0].i4.x, invocation); + data[invocation].i4.xy = subgroupShuffleDown(data[1].i4.xy, invocation); + data[invocation].i4.xyz = subgroupShuffleDown(data[2].i4.xyz, invocation); + data[invocation].i4 = subgroupShuffleDown(data[3].i4, invocation); + + data[invocation].u4.x = subgroupShuffleDown(data[0].u4.x, invocation); + data[invocation].u4.xy = subgroupShuffleDown(data[1].u4.xy, invocation); + data[invocation].u4.xyz = subgroupShuffleDown(data[2].u4.xyz, invocation); + data[invocation].u4 = subgroupShuffleDown(data[3].u4, invocation); + + data[invocation].d4.x = subgroupShuffleDown(data[0].d4.x, invocation); + data[invocation].d4.xy = subgroupShuffleDown(data[1].d4.xy, invocation); + data[invocation].d4.xyz = subgroupShuffleDown(data[2].d4.xyz, invocation); + data[invocation].d4 = subgroupShuffleDown(data[3].d4, invocation); + + data[invocation].i4.x = int(subgroupShuffleDown(data[0].i4.x < 0, invocation)); + data[invocation].i4.xy = ivec2(subgroupShuffleDown(lessThan(data[1].i4.xy, ivec2(0)), invocation)); + data[invocation].i4.xyz = ivec3(subgroupShuffleDown(lessThan(data[1].i4.xyz, ivec3(0)), invocation)); + data[invocation].i4 = ivec4(subgroupShuffleDown(lessThan(data[1].i4, ivec4(0)), invocation)); +} diff --git a/deps/glslang/glslang/Test/spv.subgroupVote.comp b/deps/glslang/glslang/Test/spv.subgroupVote.comp new file mode 100644 index 0000000000..c1c877af3b --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subgroupVote.comp @@ -0,0 +1,49 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_vote: enable + +layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; + int r; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + if (subgroupAll(data[invocation].r < 0)) + { + data[invocation].r = int(subgroupAllEqual(data[0].f4.x)); + data[invocation].r = int(subgroupAllEqual(data[1].f4.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].f4.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].f4)); + + data[invocation].r = int(subgroupAllEqual(data[0].i4.x)); + data[invocation].r = int(subgroupAllEqual(data[1].i4.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].i4.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].i4)); + + data[invocation].r = int(subgroupAllEqual(data[0].u4.x)); + data[invocation].r = int(subgroupAllEqual(data[1].u4.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].u4.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].u4)); + } + else if (subgroupAny(data[invocation].r < 0)) + { + data[invocation].r = int(subgroupAllEqual(data[0].d4.x)); + data[invocation].r = int(subgroupAllEqual(data[1].d4.xy)); + data[invocation].r = int(subgroupAllEqual(data[2].d4.xyz)); + data[invocation].r = int(subgroupAllEqual(data[3].d4)); + + data[invocation].r = int(int(subgroupAllEqual(data[0].i4.x < 0))); + data[invocation].r = int(ivec2(subgroupAllEqual(lessThan(data[1].i4.xy, ivec2(0))))); + data[invocation].r = int(ivec3(subgroupAllEqual(lessThan(data[1].i4.xyz, ivec3(0))))); + data[invocation].r = int(ivec4(subgroupAllEqual(lessThan(data[1].i4, ivec4(0))))); + } +} diff --git a/deps/glslang/glslang/Test/spv.subpass.frag b/deps/glslang/glslang/Test/spv.subpass.frag new file mode 100644 index 0000000000..42411d99cc --- /dev/null +++ b/deps/glslang/glslang/Test/spv.subpass.frag @@ -0,0 +1,29 @@ +#version 400 + +layout(input_attachment_index = 1) uniform subpassInput sub; +layout(input_attachment_index = 2) uniform subpassInputMS subMS; +layout(input_attachment_index = 3) uniform isubpassInput isub; +layout(input_attachment_index = 4) uniform isubpassInputMS isubMS; +layout(input_attachment_index = 5) uniform usubpassInput usub; +layout(input_attachment_index = 6) uniform usubpassInputMS usubMS; + +out vec4 color; +out ivec4 icolor; +out uvec4 ucolor; + +void foo(isubpassInputMS sb) +{ + icolor += subpassLoad(sb, 3); +} + +void main() +{ + color = subpassLoad(sub); + color += subpassLoad(subMS, 3); + icolor = subpassLoad(isub); + icolor += subpassLoad(isubMS, 3); + ucolor = subpassLoad(usub); + ucolor += subpassLoad(usubMS, 3); + + foo(isubMS); +} diff --git a/deps/glslang/glslang/Test/spv.switch.frag b/deps/glslang/glslang/Test/spv.switch.frag new file mode 100644 index 0000000000..1808086a46 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.switch.frag @@ -0,0 +1,142 @@ +#version 310 es +precision mediump float; +flat in int c, d; +in float x; +out float color; +in vec4 v; + +vec4 foo1(vec4 v1, vec4 v2, int i1) +{ + switch (i1) + { + case 0: + return v1; + case 2: + case 1: + return v2; + case 3: + return v1 * v2; + } + + return vec4(0.0); +} + +vec4 foo2(vec4 v1, vec4 v2, int i1) +{ + switch (i1) + { + case 0: + return v1; + case 2: + return vec4(1.0); + case 1: + return v2; + case 3: + return v1 * v2; + } + + return vec4(0.0); +} + +void main() +{ + float f; + int a[2]; + int local = c; + + switch(++local) + { + } + + switch (c) { + case 1: + f = sin(x); + break; + case 2: + f = cos(x); + break; + default: + f = tan(x); + } + + switch (c) { + case 1: + f += sin(x); + case 2: + f += cos(x); + break; + default: + f += tan(x); + } + + switch (c) { + case 1: + f += sin(x); + break; + case 2: + f += cos(x); + break; + } + + switch (c) { + case 1: + f += sin(x); + break; + case 2: + switch (d) { + case 1: + f += x * x * x; + break; + case 2: + f += x * x; + break; + } + break; + default: + f += tan(x); + } + + for (int i = 0; i < 10; ++i) { + switch (c) { + case 1: + f += sin(x); + for (int j = 20; j < 30; ++j) { + ++f; + if (f < 100.2) + break; + } + break; + case 2: + f += cos(x); + break; + break; + default: + f += tan(x); + } + + if (f < 3.43) + break; + } + + switch (c) { + case 1: + f += sin(x); + break; + case 2: + // test no statements at end + } + + color = f + float(local); + + color += foo1(v,v,c).y; + color += foo2(v,v,c).z; + + switch (c) { + case 0: break; + default: + } + + switch (c) { + default: + } +} diff --git a/deps/glslang/glslang/Test/spv.swizzle.frag b/deps/glslang/glslang/Test/spv.swizzle.frag new file mode 100644 index 0000000000..5a5a203c32 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.swizzle.frag @@ -0,0 +1,52 @@ +#version 140 + +in float blend; +in vec4 u; +bool p; + +in vec2 t; + +void main() +{ + float blendscale = 1.789; + + vec4 w = u; + vec4 w_undef; // test undef + vec4 w_dep = u; // test dependent swizzles + vec4 w_reorder = u; // test reordering + vec4 w2 = u; + vec4 w_flow = u; // test flowControl + + w_reorder.z = blendscale; + + w.wy = t; + + w_reorder.x = blendscale; + + w2.xyzw = u.zwxy; + + w_reorder.y = blendscale; + + w_dep.xy = w2.xz; + w_dep.zw = t; + + w_undef.xy = u.zw; + + if (p) + w_flow.x = t.x; + else + w_flow.x = t.y; + + gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow); + + vec2 c = t; + vec4 rep = vec4(0.0, 0.0, 0.0, 1.0); + + if (c.x < 0.0) + c.x *= -1.0; + + if (c.x <= 1.0) + rep.x = 3.4; + + gl_FragColor += rep; +} diff --git a/deps/glslang/glslang/Test/spv.swizzleInversion.frag b/deps/glslang/glslang/Test/spv.swizzleInversion.frag new file mode 100644 index 0000000000..9dca62f8b7 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.swizzleInversion.frag @@ -0,0 +1,16 @@ +#version 450 + +in vec4 in4; +in vec3 in3; + +void main() +{ + vec3 v43 = interpolateAtCentroid(in4.wzx); + vec2 v42 = interpolateAtSample(in4.zx, 1); + vec4 v44 = interpolateAtOffset(in4.zyxw, vec2(2.0)); + float v41 = interpolateAtOffset(in4.y, vec2(2.0)); + + vec3 v33 = interpolateAtCentroid(in3.yzx); + vec2 v32 = interpolateAtSample(in3.zx, 1); + float v31 = interpolateAtOffset(in4.y, vec2(2.0)); +} diff --git a/deps/glslang/glslang/Test/spv.targetOpenGL.vert b/deps/glslang/glslang/Test/spv.targetOpenGL.vert new file mode 100644 index 0000000000..501a3e5647 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.targetOpenGL.vert @@ -0,0 +1,10 @@ +#version 450 + +layout(constant_id = 3) const int a = 2; +layout(location = 2) uniform float f; +layout(location = 4, binding = 1) uniform sampler2D s1; +layout(binding = 2) uniform sampler2D s2; + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/spv.targetVulkan.vert b/deps/glslang/glslang/Test/spv.targetVulkan.vert new file mode 100644 index 0000000000..d879122b08 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.targetVulkan.vert @@ -0,0 +1,9 @@ +#version 450 + +layout(constant_id = 3) const int a = 2; + +layout(push_constant) uniform pc { float f; }; + +void main() +{ +} diff --git a/deps/glslang/glslang/Test/spv.test.frag b/deps/glslang/glslang/Test/spv.test.frag new file mode 100644 index 0000000000..3d4d8f9607 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.test.frag @@ -0,0 +1,22 @@ +#version 400 + +uniform sampler2D texSampler2D; +uniform sampler3D texSampler3D; + +in float blend; +in vec2 scale; +in vec4 u; + +in vec2 t; +in vec3 coords; + +void main() +{ + float blendscale = 1.789; + + vec4 v = texture(texSampler2D, (t + scale) / scale ).wzyx; + + vec4 w = texture(texSampler3D, coords) + v; + + gl_FragColor = mix(w, u, blend * blendscale); +} diff --git a/deps/glslang/glslang/Test/spv.test.vert b/deps/glslang/glslang/Test/spv.test.vert new file mode 100644 index 0000000000..e2e16aa525 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.test.vert @@ -0,0 +1,14 @@ +#version 140 + +in mat4 transform; + +attribute vec4 position; +in vec2 uv_in; + +out vec2 uv; + +void main() +{ + uv = uv_in; + gl_Position = transform * position; +} diff --git a/deps/glslang/glslang/Test/spv.texture.frag b/deps/glslang/glslang/Test/spv.texture.frag new file mode 100644 index 0000000000..73884d1c20 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.texture.frag @@ -0,0 +1,73 @@ +#version 140 + +uniform sampler1D texSampler1D; +uniform sampler2D texSampler2D; +uniform sampler3D texSampler3D; +uniform samplerCube texSamplerCube; +uniform sampler1DShadow shadowSampler1D; +uniform sampler2DShadow shadowSampler2D; + +varying float blend; +varying vec2 scale; +varying vec4 u; + +in vec2 t; +in vec2 coords2D; + +void main() +{ + float blendscale = 1.789; + float bias = 2.0; + float lod = 3.0; + float proj = 2.0; + float coords1D = 1.789; + vec3 coords3D = vec3(1.789, 2.718, 3.453); + vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0); + vec4 color = vec4(0.0, 0.0, 0.0, 0.0); + + color += texture (texSampler1D, coords1D); + color += texture (texSampler1D, coords1D, bias); + color += textureProj(texSampler1D, coords2D); + color += textureProj(texSampler1D, coords4D); + color += textureProj(texSampler1D, coords2D, bias); + color += textureProj(texSampler1D, coords4D, bias); + + color += texture (texSampler2D, coords2D); + color += texture (texSampler2D, coords2D, bias); + color += textureProj (texSampler2D, coords3D); + color += textureProj (texSampler2D, coords4D, bias); + + color += texture (texSampler3D, coords3D); + color += texture (texSampler3D, coords3D, bias); + color += textureProj (texSampler3D, coords4D); + color += textureProj (texSampler3D, coords4D, bias); + + color += texture (texSamplerCube, coords3D); + color += texture (texSamplerCube, coords3D, bias); + + color += texture (shadowSampler1D, coords3D); + color += texture (shadowSampler1D, coords3D, bias); + color += texture (shadowSampler2D, coords3D); + color += texture (shadowSampler2D, coords3D, bias); + color += textureProj (shadowSampler1D, coords4D); + color += textureProj (shadowSampler1D, coords4D, bias); + color += textureProj (shadowSampler2D, coords4D); + color += textureProj (shadowSampler2D, coords4D, bias); + + ivec2 iCoords2D = ivec2(0, 5); + int iLod = 1; + + color += texelFetch(texSampler2D, iCoords2D, iLod); + + vec2 gradX = dFdx(coords2D); + vec2 gradY = dFdy(coords2D); + const ivec2 offset = ivec2(3, -7); + + color += textureGrad(texSampler2D, coords2D, gradX, gradY); + color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY); + color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset); + color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset); + color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY); + + gl_FragColor = mix(color, u, blend * blendscale); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.texture.sampler.transform.frag b/deps/glslang/glslang/Test/spv.texture.sampler.transform.frag new file mode 100644 index 0000000000..872d9b04d2 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.texture.sampler.transform.frag @@ -0,0 +1,13 @@ +#version 440 + +uniform sampler smp; +uniform texture2D tex; + +in vec2 coord; + +out vec4 color; + +void main() +{ + color = texture(sampler2D(tex, smp), coord); +} diff --git a/deps/glslang/glslang/Test/spv.texture.vert b/deps/glslang/glslang/Test/spv.texture.vert new file mode 100644 index 0000000000..9b03bba083 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.texture.vert @@ -0,0 +1,39 @@ +#version 140 + +uniform sampler1D texSampler1D; +uniform sampler2D texSampler2D; +uniform sampler3D texSampler3D; +uniform samplerCube texSamplerCube; +uniform sampler1DShadow shadowSampler1D; +uniform sampler2DShadow shadowSampler2D; + +in vec2 coords2D; + +void main() +{ + float lod = 3.0; + float coords1D = 1.789; + vec3 coords3D = vec3(1.789, 2.718, 3.453); + vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0); + vec4 color = vec4(0.0, 0.0, 0.0, 0.0); + + color += textureLod(texSampler1D, coords1D, lod); + color += textureProjLod(texSampler1D, coords2D, lod); + color += textureProjLod(texSampler1D, coords4D, lod); + + color += textureLod (texSampler2D, coords2D, lod); + color += textureProjLod (texSampler2D, coords3D, lod); + color += textureProjLod (texSampler2D, coords4D, lod); + + color += textureLod (texSampler3D, coords3D, lod); + color += textureProjLod (texSampler3D, coords4D, lod); + + color += textureLod (texSamplerCube, coords3D, lod); + + color += textureLod (shadowSampler1D, coords3D, lod); + color += textureLod (shadowSampler2D, coords3D, lod); + color += textureProjLod(shadowSampler1D, coords4D, lod); + color += textureProjLod(shadowSampler2D, coords4D, lod); + + gl_Position = color; +} diff --git a/deps/glslang/glslang/Test/spv.textureBuffer.vert b/deps/glslang/glslang/Test/spv.textureBuffer.vert new file mode 100644 index 0000000000..fc6fa3acaa --- /dev/null +++ b/deps/glslang/glslang/Test/spv.textureBuffer.vert @@ -0,0 +1,17 @@ +#version 450 + +uniform textureBuffer tBuf; +uniform sampler s; +uniform samplerBuffer sBuf; + +uniform utextureBuffer utBuf; +uniform itextureBuffer itBuf; + +void main() +{ + texelFetch(samplerBuffer(tBuf, s), 13); + texelFetch(sBuf, 13); + texelFetch(tBuf, 13); + texelFetch(utBuf, 13); + texelFetch(itBuf, 13); +} diff --git a/deps/glslang/glslang/Test/spv.textureGatherBiasLod.frag b/deps/glslang/glslang/Test/spv.textureGatherBiasLod.frag new file mode 100644 index 0000000000..35bd035aad --- /dev/null +++ b/deps/glslang/glslang/Test/spv.textureGatherBiasLod.frag @@ -0,0 +1,88 @@ +#version 450 core + +#extension GL_ARB_sparse_texture2: enable +#extension GL_AMD_texture_gather_bias_lod: enable + +uniform sampler2D s2D; +uniform sampler2DArray s2DArray; +uniform samplerCube sCube; +uniform samplerCubeArray sCubeArray; + +in vec2 c2; +in vec3 c3; +in vec4 c4; + +in float lod; +in float bias; + +out vec4 fragColor; + +void main() +{ + vec4 texel = vec4(0.0); + vec4 result = vec4(0.0); + + const ivec2 offsets[4] = { ivec2(0, 0), ivec2(0, 1), ivec2(1, 0), ivec2(1, 1) }; + + texel += textureGather(s2D, c2, 0, bias); + texel += textureGather(s2DArray, c3, 1, bias); + texel += textureGather(sCube, c3, 2, bias); + texel += textureGather(sCubeArray, c4, 3, bias); + + texel += textureGatherOffset(s2D, c2, offsets[0], 0, bias); + texel += textureGatherOffset(s2DArray, c3, offsets[1], 1, bias); + + texel += textureGatherOffsets(s2D, c2, offsets, 0, bias); + texel += textureGatherOffsets(s2DArray, c3, offsets, 1, bias); + + sparseTextureGatherARB(s2D, c2, result, 0, bias); + texel += result; + sparseTextureGatherARB(s2DArray, c3, result, 1, bias); + texel += result; + sparseTextureGatherARB(sCube, c3, result, 2, bias); + texel += result; + sparseTextureGatherARB(sCubeArray, c4, result, 2, bias); + texel += result; + + sparseTextureGatherOffsetARB(s2D, c2, offsets[0], result, 0, bias); + texel += result; + sparseTextureGatherOffsetARB(s2DArray, c3, offsets[1], result, 1, bias); + texel += result; + + sparseTextureGatherOffsetsARB(s2D, c2, offsets, result, 0, bias); + texel += result; + sparseTextureGatherOffsetsARB(s2DArray, c3, offsets, result, 1, bias); + texel += result; + + texel += textureGatherLodAMD(s2D, c2, lod); + texel += textureGatherLodAMD(s2DArray, c3, lod, 1); + texel += textureGatherLodAMD(sCube, c3, lod, 2); + texel += textureGatherLodAMD(sCubeArray, c4, lod, 3); + + texel += textureGatherLodOffsetAMD(s2D, c2, lod, offsets[0]); + texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offsets[1], 1); + + texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets); + texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 1); + + sparseTextureGatherLodAMD(s2D, c2, lod, result); + texel += result; + sparseTextureGatherLodAMD(s2DArray, c3, lod, result, 1); + texel += result; + sparseTextureGatherLodAMD(sCube, c3, lod, result, 2); + texel += result; + sparseTextureGatherLodAMD(sCubeArray, c4, lod, result, 2); + texel += result; + + sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offsets[0], result); + texel += result; + sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offsets[1], result, 1); + texel += result; + + sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, result); + texel += result; + sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, result, 1); + texel += result; + + fragColor = texel; +} diff --git a/deps/glslang/glslang/Test/spv.types.frag b/deps/glslang/glslang/Test/spv.types.frag new file mode 100644 index 0000000000..a2ab1d3244 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.types.frag @@ -0,0 +1,78 @@ +#version 140 + +bool u_b; +bvec2 u_b2; +bvec3 u_b3; +bvec4 u_b4; +flat in int u_i; +flat in ivec2 u_i2; +flat in ivec3 u_i3; +flat in ivec4 u_i4; + in float u_f; + in vec2 u_f2; + in vec3 u_f3; + in vec4 u_f4; +bool i_b; +bvec2 i_b2; +bvec3 i_b3; +bvec4 i_b4; + +flat in int i_i; +flat in ivec2 i_i2; +flat in ivec3 i_i3; +flat in ivec4 i_i4; + +in float i_f; +in vec2 i_f2; +in vec3 i_f3; +in vec4 i_f4; + +void main() +{ + bool b = u_b && i_b; + bvec2 b2 = bvec2(u_b2.x && i_b2.x && u_b2.y && i_b2.y); + bvec3 b3 = bvec3(u_b3.x && i_b3.x && u_b3.y && i_b3.y && u_b3.z && i_b3.z); + bvec4 b4 = bvec4(u_b4.x && i_b4.x && u_b4.y && i_b4.y && u_b4.z && i_b4.z && u_b4.w && i_b4.w); + + int i = u_i + i_i; + ivec2 i2 = u_i2 + i_i2; + ivec3 i3 = u_i3 + i_i3; + ivec4 i4 = u_i4 + i_i4; + + float f = u_f + i_f; + vec2 f2 = u_f2 + i_f2; + vec3 f3 = u_f3 + i_f3; + vec4 f4 = u_f4 + i_f4; + + gl_FragColor = + b || + b2.x || + b2.y || + b3.x || + b3.y || + b3.z || + b4.x || + b4.y || + b4.z || + b4.w ? vec4( + i + + i2.x + + i2.y + + i3.x + + i3.y + + i3.z + + i4.x + + i4.y + + i4.z + + i4.w + + f + + f2.x + + f2.y + + f3.x + + f3.y + + f3.z + + f4.x + + f4.y + + f4.z + + f4.w) : vec4(1.0); +} diff --git a/deps/glslang/glslang/Test/spv.uint.frag b/deps/glslang/glslang/Test/spv.uint.frag new file mode 100644 index 0000000000..853de7c4ab --- /dev/null +++ b/deps/glslang/glslang/Test/spv.uint.frag @@ -0,0 +1,102 @@ +#version 310 es +precision mediump float; +flat in uvec2 t; +in float f; +in vec2 tc; + +flat in uvec4 v; +flat in int i; +bool b; + +out uvec4 c; + +uniform mediump usampler2D usampler; + +void main() +{ + int count = 1; + + uint u = t.y + 3u; + const uint cu1 = 0xFFFFFFFFU; + const uint cu2 = -1u; // 0xFFFFFFFF + const uint cu3 = 1U; + const uint cu4 = 1u; + + if (cu1 == cu2) + count *= 2; // 2 + if (cu3 == cu4) + count *= 3; // 6 + if (cu2 == cu3) + count *= 5; // not done + + const int cshiftedii = 0xFFFFFFFF >> 10; + const uint cushiftedui = 0xFFFFFFFFu >> 10; + const int cshiftediu = 0xFFFFFFFF >> 10u; + const uint cushifteduu = 0xFFFFFFFFu >> 10u; + + if (cshiftedii == cshiftediu) + count *= 7; // 42 + if (cushiftedui == cushifteduu) + count *= 11; // 462 + if (cshiftedii == int(cushiftedui)) + count *= 13; // not done + + int shiftedii = 0xFFFFFFFF >> 10; + uint shiftedui = 0xFFFFFFFFu >> 10; + int shiftediu = 0xFFFFFFFF >> 10u; + uint shifteduu = 0xFFFFFFFFu >> 10u; + + if (shiftedii == shiftediu) + c = texture(usampler, tc); + if (shiftedui == shifteduu) + c = texture(usampler, tc + float(1u)); + if (shiftedii == int(shiftedui)) + c = texture(usampler, tc - vec2(2u)); + + if (t.x > 4u) { + float af = float(u); + bool ab = bool(u); + int ai = int(u); + + c += uvec4(uint(af), uint(ab), uint(ai), count); + } + + const uint cmask1 = 0x0A1u; + const uint cmask2 = 0xA10u; + const uint cmask3 = cmask1 << 4; + const uint cmask4 = 0xAB1u; + + if (cmask3 == cmask2) + count *= 17; // 7854 + + if ((cmask3 & cmask1) != 0u) + count *= 19; // not done + + if ((cmask1 | cmask3) == cmask4) + count *= 23; // 180642 + + if ((cmask1 ^ cmask4) == 0xA10u) + count *= 27; // 4877334 + + uint mask1 = 0x0A1u; + uint mask2 = 0xA10u; + uint mask3 = mask1 << 4; + uint mask4 = 0xAB1u; + + if (mask3 == mask2) + count *= 2; // 9754668 + + if ((mask3 & mask1) != 0u) + count *= 3; // not done + + if ((mask1 | mask3) == mask4) + count *= 5; // 48773340 + + if ((mask1 ^ mask4) == 0xA10u) + count *= 7; // 341413380 + + c += uvec4(count); + + #define UINT_MAX 4294967295u + c.x += UINT_MAX; +} diff --git a/deps/glslang/glslang/Test/spv.uniformArray.frag b/deps/glslang/glslang/Test/spv.uniformArray.frag new file mode 100644 index 0000000000..b7625afe84 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.uniformArray.frag @@ -0,0 +1,17 @@ +#version 140 + +uniform sampler2D texSampler2D; +in vec3 inColor; +in vec4 color[6]; +in float alpha[16]; + +void main() +{ + vec4 texColor = color[1] + color[1]; + + texColor.xyz += inColor; + + texColor.a += alpha[12]; + + gl_FragColor = texColor; +} diff --git a/deps/glslang/glslang/Test/spv.variableArrayIndex.frag b/deps/glslang/glslang/Test/spv.variableArrayIndex.frag new file mode 100644 index 0000000000..cc304b8eff --- /dev/null +++ b/deps/glslang/glslang/Test/spv.variableArrayIndex.frag @@ -0,0 +1,49 @@ +#version 400 + +uniform sampler2D samp2D; +in vec2 coord; + +struct lunarStruct1 { + int i; + float f; +}; + +struct lunarStruct2 { + int i; + float f; + lunarStruct1 s1_1; +}; + +struct lunarStruct3 { + lunarStruct2 s2_1[3]; + int i; + float f; + lunarStruct1 s1_1; +}; + + +flat in lunarStruct1 foo; +flat in lunarStruct2 foo2[5]; +flat in lunarStruct3 foo3; +flat in int Count; + +void main() +{ + float scale; + int iLocal = Count; + + if (foo3.s2_1[1].i > 0) + scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f; + else + scale = foo3.s2_1[0].s1_1.f; + + //for (int i = 0; i < iLocal; ++i) { + // scale += foo2[i].f; + //} + + gl_FragColor = scale * texture(samp2D, coord); + + vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); + gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); +} + diff --git a/deps/glslang/glslang/Test/spv.varyingArray.frag b/deps/glslang/glslang/Test/spv.varyingArray.frag new file mode 100644 index 0000000000..f6e043f22a --- /dev/null +++ b/deps/glslang/glslang/Test/spv.varyingArray.frag @@ -0,0 +1,19 @@ +#version 140 +uniform sampler2D texSampler2D; +in vec4 color; +in float alpha; + +in vec4 TexCoord[6]; + +in vec4 foo[3]; + +void main() +{ + vec4 texColor = texture(texSampler2D, vec2(TexCoord[4] + TexCoord[5])); + + texColor += color; + + texColor.a = alpha; + + gl_FragColor = foo[1] + TexCoord[0] + TexCoord[4] + texColor; +} diff --git a/deps/glslang/glslang/Test/spv.varyingArrayIndirect.frag b/deps/glslang/glslang/Test/spv.varyingArrayIndirect.frag new file mode 100644 index 0000000000..a556c9eb5a --- /dev/null +++ b/deps/glslang/glslang/Test/spv.varyingArrayIndirect.frag @@ -0,0 +1,21 @@ +#version 140 +uniform sampler2D texSampler2D; +in vec4 color; +in float alpha; + +in vec4 TexCoord[6]; + +in vec4 userIn[2]; + +flat in int a, b; + +void main() +{ + vec4 texColor = texture(texSampler2D, vec2(userIn[b] + TexCoord[a] + TexCoord[5])); + + texColor += color; + + texColor.a = alpha; + + gl_FragColor = TexCoord[0] + TexCoord[b] + texColor + userIn[a]; +} diff --git a/deps/glslang/glslang/Test/spv.vecMatConstruct.frag b/deps/glslang/glslang/Test/spv.vecMatConstruct.frag new file mode 100644 index 0000000000..54a001707d --- /dev/null +++ b/deps/glslang/glslang/Test/spv.vecMatConstruct.frag @@ -0,0 +1,14 @@ +#version 450 + +void main() +{ + mat4x3 m; + + vec2 v2 = vec2(m); + vec3 v3 = vec3(m); + vec4 v4 = vec4(m); + + ivec2 iv2 = ivec2(m); + ivec3 iv3 = ivec3(m); + ivec4 iv4 = ivec4(m); +} diff --git a/deps/glslang/glslang/Test/spv.viewportArray2.tesc b/deps/glslang/glslang/Test/spv.viewportArray2.tesc new file mode 100644 index 0000000000..7fc208a45e --- /dev/null +++ b/deps/glslang/glslang/Test/spv.viewportArray2.tesc @@ -0,0 +1,16 @@ +#version 450 +#extension GL_NV_viewport_array2 :require + +layout(vertices = 4) out; + +out gl_PerVertex { + int gl_ViewportMask[2]; +} gl_out[4]; + +layout (viewport_relative) out highp int gl_Layer; + +void main() +{ + gl_out[gl_InvocationID].gl_ViewportMask[0] = 1; + gl_ViewportIndex = 2; +} diff --git a/deps/glslang/glslang/Test/spv.viewportArray2.vert b/deps/glslang/glslang/Test/spv.viewportArray2.vert new file mode 100644 index 0000000000..a373d5e891 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.viewportArray2.vert @@ -0,0 +1,10 @@ +#version 450 +#extension GL_ARB_shader_viewport_layer_array : require +#extension GL_NV_viewport_array2 : require + +layout (viewport_relative) out highp int gl_Layer; +void main() +{ + gl_ViewportMask[0] = 1; + gl_ViewportIndex = 2; +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.voidFunction.frag b/deps/glslang/glslang/Test/spv.voidFunction.frag new file mode 100644 index 0000000000..228ea1ffdd --- /dev/null +++ b/deps/glslang/glslang/Test/spv.voidFunction.frag @@ -0,0 +1,34 @@ +#version 400 + +in vec4 bigColor; +in vec4 BaseColor; +in float d; + +float bar = 2.0; + +void foo() +{ + bar++; + + return; +} + +void foo2() +{ + bar++; +} + +void main() +{ + vec4 outColor = bigColor; + + foo(); + + foo2(); + + outColor.x += bar; + + gl_FragColor = outColor; + + return; +} diff --git a/deps/glslang/glslang/Test/spv.vulkan100.subgroupArithmetic.comp b/deps/glslang/glslang/Test/spv.vulkan100.subgroupArithmetic.comp new file mode 100644 index 0000000000..6cc9337b68 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.vulkan100.subgroupArithmetic.comp @@ -0,0 +1,393 @@ +#version 450 + +#extension GL_KHR_shader_subgroup_arithmetic: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + data[invocation].f4.x = subgroupAdd(data[0].f4.x); + data[invocation].f4.xy = subgroupAdd(data[1].f4.xy); + data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz); + data[invocation].f4 = subgroupAdd(data[3].f4); + + data[invocation].i4.x = subgroupAdd(data[0].i4.x); + data[invocation].i4.xy = subgroupAdd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz); + data[invocation].i4 = subgroupAdd(data[3].i4); + + data[invocation].u4.x = subgroupAdd(data[0].u4.x); + data[invocation].u4.xy = subgroupAdd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz); + data[invocation].u4 = subgroupAdd(data[3].u4); + + data[invocation].d4.x = subgroupAdd(data[0].d4.x); + data[invocation].d4.xy = subgroupAdd(data[1].d4.xy); + data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz); + data[invocation].d4 = subgroupAdd(data[3].d4); + + data[invocation].f4.x = subgroupMul(data[0].f4.x); + data[invocation].f4.xy = subgroupMul(data[1].f4.xy); + data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz); + data[invocation].f4 = subgroupMul(data[3].f4); + + data[invocation].i4.x = subgroupMul(data[0].i4.x); + data[invocation].i4.xy = subgroupMul(data[1].i4.xy); + data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz); + data[invocation].i4 = subgroupMul(data[3].i4); + + data[invocation].u4.x = subgroupMul(data[0].u4.x); + data[invocation].u4.xy = subgroupMul(data[1].u4.xy); + data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz); + data[invocation].u4 = subgroupMul(data[3].u4); + + data[invocation].d4.x = subgroupMul(data[0].d4.x); + data[invocation].d4.xy = subgroupMul(data[1].d4.xy); + data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz); + data[invocation].d4 = subgroupMul(data[3].d4); + + data[invocation].f4.x = subgroupMin(data[0].f4.x); + data[invocation].f4.xy = subgroupMin(data[1].f4.xy); + data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz); + data[invocation].f4 = subgroupMin(data[3].f4); + + data[invocation].i4.x = subgroupMin(data[0].i4.x); + data[invocation].i4.xy = subgroupMin(data[1].i4.xy); + data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz); + data[invocation].i4 = subgroupMin(data[3].i4); + + data[invocation].u4.x = subgroupMin(data[0].u4.x); + data[invocation].u4.xy = subgroupMin(data[1].u4.xy); + data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz); + data[invocation].u4 = subgroupMin(data[3].u4); + + data[invocation].d4.x = subgroupMin(data[0].d4.x); + data[invocation].d4.xy = subgroupMin(data[1].d4.xy); + data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz); + data[invocation].d4 = subgroupMin(data[3].d4); + + data[invocation].f4.x = subgroupMax(data[0].f4.x); + data[invocation].f4.xy = subgroupMax(data[1].f4.xy); + data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz); + data[invocation].f4 = subgroupMax(data[3].f4); + + data[invocation].i4.x = subgroupMax(data[0].i4.x); + data[invocation].i4.xy = subgroupMax(data[1].i4.xy); + data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz); + data[invocation].i4 = subgroupMax(data[3].i4); + + data[invocation].u4.x = subgroupMax(data[0].u4.x); + data[invocation].u4.xy = subgroupMax(data[1].u4.xy); + data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz); + data[invocation].u4 = subgroupMax(data[3].u4); + + data[invocation].d4.x = subgroupMax(data[0].d4.x); + data[invocation].d4.xy = subgroupMax(data[1].d4.xy); + data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz); + data[invocation].d4 = subgroupMax(data[3].d4); + + data[invocation].i4.x = subgroupAnd(data[0].i4.x); + data[invocation].i4.xy = subgroupAnd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz); + data[invocation].i4 = subgroupAnd(data[3].i4); + + data[invocation].u4.x = subgroupAnd(data[0].u4.x); + data[invocation].u4.xy = subgroupAnd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz); + data[invocation].u4 = subgroupAnd(data[3].u4); + + data[invocation].i4.x = int(subgroupAnd(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupOr(data[0].i4.x); + data[invocation].i4.xy = subgroupOr(data[1].i4.xy); + data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz); + data[invocation].i4 = subgroupOr(data[3].i4); + + data[invocation].u4.x = subgroupOr(data[0].u4.x); + data[invocation].u4.xy = subgroupOr(data[1].u4.xy); + data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz); + data[invocation].u4 = subgroupOr(data[3].u4); + + data[invocation].i4.x = int(subgroupOr(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupXor(data[0].i4.x); + data[invocation].i4.xy = subgroupXor(data[1].i4.xy); + data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz); + data[invocation].i4 = subgroupXor(data[3].i4); + + data[invocation].u4.x = subgroupXor(data[0].u4.x); + data[invocation].u4.xy = subgroupXor(data[1].u4.xy); + data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz); + data[invocation].u4 = subgroupXor(data[3].u4); + + data[invocation].i4.x = int(subgroupXor(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].f4.x = subgroupInclusiveAdd(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveAdd(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveAdd(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveAdd(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveAdd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveAdd(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveAdd(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveAdd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveAdd(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveAdd(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveAdd(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveAdd(data[3].d4); + + data[invocation].f4.x = subgroupInclusiveMul(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveMul(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveMul(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveMul(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveMul(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveMul(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveMul(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveMul(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveMul(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveMul(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveMul(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveMul(data[3].d4); + + data[invocation].f4.x = subgroupInclusiveMin(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveMin(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveMin(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveMin(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveMin(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveMin(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveMin(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveMin(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveMin(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveMin(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveMin(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveMin(data[3].d4); + + data[invocation].f4.x = subgroupInclusiveMax(data[0].f4.x); + data[invocation].f4.xy = subgroupInclusiveMax(data[1].f4.xy); + data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz); + data[invocation].f4 = subgroupInclusiveMax(data[3].f4); + + data[invocation].i4.x = subgroupInclusiveMax(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveMax(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveMax(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveMax(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveMax(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveMax(data[3].u4); + + data[invocation].d4.x = subgroupInclusiveMax(data[0].d4.x); + data[invocation].d4.xy = subgroupInclusiveMax(data[1].d4.xy); + data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz); + data[invocation].d4 = subgroupInclusiveMax(data[3].d4); + + data[invocation].i4.x = subgroupInclusiveAnd(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveAnd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveAnd(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveAnd(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveAnd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveAnd(data[3].u4); + + data[invocation].i4.x = int(subgroupInclusiveAnd(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupInclusiveOr(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveOr(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveOr(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveOr(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveOr(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveOr(data[3].u4); + + data[invocation].i4.x = int(subgroupInclusiveOr(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupInclusiveXor(data[0].i4.x); + data[invocation].i4.xy = subgroupInclusiveXor(data[1].i4.xy); + data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz); + data[invocation].i4 = subgroupInclusiveXor(data[3].i4); + + data[invocation].u4.x = subgroupInclusiveXor(data[0].u4.x); + data[invocation].u4.xy = subgroupInclusiveXor(data[1].u4.xy); + data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz); + data[invocation].u4 = subgroupInclusiveXor(data[3].u4); + + data[invocation].i4.x = int(subgroupInclusiveXor(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].f4.x = subgroupExclusiveAdd(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveAdd(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveAdd(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveAdd(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveAdd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveAdd(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveAdd(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveAdd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveAdd(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveAdd(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveAdd(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveAdd(data[3].d4); + + data[invocation].f4.x = subgroupExclusiveMul(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveMul(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveMul(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveMul(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveMul(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveMul(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveMul(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveMul(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveMul(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveMul(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveMul(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveMul(data[3].d4); + + data[invocation].f4.x = subgroupExclusiveMin(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveMin(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveMin(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveMin(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveMin(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveMin(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveMin(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveMin(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveMin(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveMin(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveMin(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveMin(data[3].d4); + + data[invocation].f4.x = subgroupExclusiveMax(data[0].f4.x); + data[invocation].f4.xy = subgroupExclusiveMax(data[1].f4.xy); + data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz); + data[invocation].f4 = subgroupExclusiveMax(data[3].f4); + + data[invocation].i4.x = subgroupExclusiveMax(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveMax(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveMax(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveMax(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveMax(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveMax(data[3].u4); + + data[invocation].d4.x = subgroupExclusiveMax(data[0].d4.x); + data[invocation].d4.xy = subgroupExclusiveMax(data[1].d4.xy); + data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz); + data[invocation].d4 = subgroupExclusiveMax(data[3].d4); + + data[invocation].i4.x = subgroupExclusiveAnd(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveAnd(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveAnd(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveAnd(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveAnd(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveAnd(data[3].u4); + + data[invocation].i4.x = int(subgroupExclusiveAnd(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupExclusiveOr(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveOr(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveOr(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveOr(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveOr(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveOr(data[3].u4); + + data[invocation].i4.x = int(subgroupExclusiveOr(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0)))); + + data[invocation].i4.x = subgroupExclusiveXor(data[0].i4.x); + data[invocation].i4.xy = subgroupExclusiveXor(data[1].i4.xy); + data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz); + data[invocation].i4 = subgroupExclusiveXor(data[3].i4); + + data[invocation].u4.x = subgroupExclusiveXor(data[0].u4.x); + data[invocation].u4.xy = subgroupExclusiveXor(data[1].u4.xy); + data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz); + data[invocation].u4 = subgroupExclusiveXor(data[3].u4); + + data[invocation].i4.x = int(subgroupExclusiveXor(data[0].i4.x < 0)); + data[invocation].i4.xy = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0)))); + data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0)))); + data[invocation].i4 = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0)))); +} diff --git a/deps/glslang/glslang/Test/spv.vulkan100.subgroupPartitioned.comp b/deps/glslang/glslang/Test/spv.vulkan100.subgroupPartitioned.comp new file mode 100644 index 0000000000..604833e056 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.vulkan100.subgroupPartitioned.comp @@ -0,0 +1,420 @@ +#version 450 + +#extension GL_NV_shader_subgroup_partitioned: enable + +layout (local_size_x = 8) in; + +layout(binding = 0) buffer Buffers +{ + vec4 f4; + ivec4 i4; + uvec4 u4; + dvec4 d4; +} data[4]; + +void main() +{ + uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4; + + uvec4 ballot = subgroupPartitionNV(invocation); + + data[invocation].u4 = subgroupPartitionNV(data[0].f4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].f4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].f4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].f4); + + data[invocation].u4 = subgroupPartitionNV(data[0].i4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].i4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].i4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].i4); + + data[invocation].u4 = subgroupPartitionNV(data[0].u4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].u4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].u4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].u4); + + data[invocation].u4 = subgroupPartitionNV(data[0].d4.x); + data[invocation].u4 = subgroupPartitionNV(data[0].d4.xy); + data[invocation].u4 = subgroupPartitionNV(data[0].d4.xyz); + data[invocation].u4 = subgroupPartitionNV(data[0].d4); + + data[invocation].u4 = subgroupPartitionNV(bool(data[0].i4.x)); + data[invocation].u4 = subgroupPartitionNV(bvec2(data[0].i4.xy)); + data[invocation].u4 = subgroupPartitionNV(bvec3(data[0].i4.xyz)); + data[invocation].u4 = subgroupPartitionNV(bvec4(data[0].i4)); + + data[invocation].f4.x = subgroupPartitionedAddNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedAddNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedAddNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedAddNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedAddNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedAddNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedAddNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedAddNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedAddNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedAddNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedAddNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedAddNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedAddNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedAddNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedAddNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedAddNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedMulNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedMulNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedMulNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedMulNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedMulNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedMulNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedMulNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedMulNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedMulNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedMulNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedMulNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedMulNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedMulNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedMulNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedMulNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedMulNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedMinNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedMinNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedMinNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedMinNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedMinNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedMinNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedMinNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedMinNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedMinNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedMinNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedMinNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedMinNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedMinNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedMinNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedMinNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedMinNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedMaxNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedMaxNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedMaxNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedMaxNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedMaxNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedMaxNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedMaxNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedMaxNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedMaxNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedMaxNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedMaxNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedMaxNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedMaxNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedMaxNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedMaxNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedMaxNV(data[3].d4, ballot); + + data[invocation].i4.x = subgroupPartitionedAndNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedAndNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedAndNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedAndNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedAndNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedAndNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedAndNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedAndNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedAndNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedOrNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedOrNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedOrNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedOrNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedOrNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedOrNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedOrNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedOrNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedOrNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedXorNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedXorNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedXorNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedXorNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedXorNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedXorNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedXorNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedXorNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedXorNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].f4.x = subgroupPartitionedInclusiveAddNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveAddNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveAddNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveAddNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveAddNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveAddNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveAddNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveAddNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveAddNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveAddNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveAddNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveAddNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveAddNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveAddNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveAddNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveAddNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedInclusiveMulNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveMulNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveMulNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveMulNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveMulNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveMulNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveMulNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveMulNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveMulNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveMulNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveMulNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveMulNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveMulNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveMulNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveMulNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveMulNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedInclusiveMinNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveMinNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveMinNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveMinNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveMinNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveMinNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveMinNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveMinNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveMinNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveMinNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveMinNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveMinNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveMinNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveMinNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveMinNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveMinNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedInclusiveMaxNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedInclusiveMaxNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedInclusiveMaxNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveMaxNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveMaxNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveMaxNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveMaxNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveMaxNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveMaxNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedInclusiveMaxNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedInclusiveMaxNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedInclusiveMaxNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedInclusiveMaxNV(data[3].d4, ballot); + + data[invocation].i4.x = subgroupPartitionedInclusiveAndNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveAndNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveAndNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveAndNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveAndNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveAndNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveAndNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveAndNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedInclusiveAndNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedInclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedInclusiveOrNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveOrNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveOrNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveOrNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveOrNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveOrNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveOrNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveOrNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedInclusiveOrNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedInclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedInclusiveXorNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedInclusiveXorNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedInclusiveXorNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedInclusiveXorNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedInclusiveXorNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedInclusiveXorNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedInclusiveXorNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedInclusiveXorNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedInclusiveXorNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedInclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].f4.x = subgroupPartitionedExclusiveAddNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveAddNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveAddNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveAddNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveAddNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveAddNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveAddNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveAddNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveAddNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveAddNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveAddNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveAddNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveAddNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveAddNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveAddNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveAddNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedExclusiveMulNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveMulNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveMulNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveMulNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveMulNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveMulNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveMulNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveMulNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveMulNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveMulNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveMulNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveMulNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveMulNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveMulNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveMulNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveMulNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedExclusiveMinNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveMinNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveMinNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveMinNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveMinNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveMinNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveMinNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveMinNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveMinNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveMinNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveMinNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveMinNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveMinNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveMinNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveMinNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveMinNV(data[3].d4, ballot); + + data[invocation].f4.x = subgroupPartitionedExclusiveMaxNV(data[0].f4.x, ballot); + data[invocation].f4.xy = subgroupPartitionedExclusiveMaxNV(data[1].f4.xy, ballot); + data[invocation].f4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].f4.xyz, ballot); + data[invocation].f4 = subgroupPartitionedExclusiveMaxNV(data[3].f4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveMaxNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveMaxNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveMaxNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveMaxNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveMaxNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveMaxNV(data[3].u4, ballot); + + data[invocation].d4.x = subgroupPartitionedExclusiveMaxNV(data[0].d4.x, ballot); + data[invocation].d4.xy = subgroupPartitionedExclusiveMaxNV(data[1].d4.xy, ballot); + data[invocation].d4.xyz = subgroupPartitionedExclusiveMaxNV(data[2].d4.xyz, ballot); + data[invocation].d4 = subgroupPartitionedExclusiveMaxNV(data[3].d4, ballot); + + data[invocation].i4.x = subgroupPartitionedExclusiveAndNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveAndNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveAndNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveAndNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveAndNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveAndNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveAndNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveAndNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedExclusiveAndNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedExclusiveAndNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedExclusiveOrNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveOrNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveOrNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveOrNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveOrNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveOrNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveOrNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveOrNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedExclusiveOrNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedExclusiveOrNV(lessThan(data[1].i4, ivec4(0)), ballot)); + + data[invocation].i4.x = subgroupPartitionedExclusiveXorNV(data[0].i4.x, ballot); + data[invocation].i4.xy = subgroupPartitionedExclusiveXorNV(data[1].i4.xy, ballot); + data[invocation].i4.xyz = subgroupPartitionedExclusiveXorNV(data[2].i4.xyz, ballot); + data[invocation].i4 = subgroupPartitionedExclusiveXorNV(data[3].i4, ballot); + + data[invocation].u4.x = subgroupPartitionedExclusiveXorNV(data[0].u4.x, ballot); + data[invocation].u4.xy = subgroupPartitionedExclusiveXorNV(data[1].u4.xy, ballot); + data[invocation].u4.xyz = subgroupPartitionedExclusiveXorNV(data[2].u4.xyz, ballot); + data[invocation].u4 = subgroupPartitionedExclusiveXorNV(data[3].u4, ballot); + + data[invocation].i4.x = int(subgroupPartitionedExclusiveXorNV(data[0].i4.x < 0, ballot)); + data[invocation].i4.xy = ivec2(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xy, ivec2(0)), ballot)); + data[invocation].i4.xyz = ivec3(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4.xyz, ivec3(0)), ballot)); + data[invocation].i4 = ivec4(subgroupPartitionedExclusiveXorNV(lessThan(data[1].i4, ivec4(0)), ballot)); +} diff --git a/deps/glslang/glslang/Test/spv.vulkan110.int16.frag b/deps/glslang/glslang/Test/spv.vulkan110.int16.frag new file mode 100644 index 0000000000..d29894b840 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.vulkan110.int16.frag @@ -0,0 +1,251 @@ +#version 450 + +#extension GL_KHX_shader_explicit_arithmetic_types: enable +#extension GL_KHX_shader_explicit_arithmetic_types_int8: require +#extension GL_KHX_shader_explicit_arithmetic_types_int16: require +#extension GL_KHX_shader_explicit_arithmetic_types_int32: require +#extension GL_KHX_shader_explicit_arithmetic_types_int64: require +#extension GL_KHX_shader_explicit_arithmetic_types_float16: require +#extension GL_KHX_shader_explicit_arithmetic_types_float32: require +#extension GL_KHX_shader_explicit_arithmetic_types_float64: require + +layout(binding = 0) uniform Uniforms +{ + uint index; +}; + +layout(std140, binding = 1) uniform Block +{ + int16_t i16; + i16vec2 i16v2; + i16vec3 i16v3; + i16vec4 i16v4; + uint16_t u16; + u16vec2 u16v2; + u16vec3 u16v3; + u16vec4 u16v4; +} block; + +void main() +{ +} + +void literal() +{ + const int16_t i16Const[3] = + { + int16_t(-0x1111), // Hex + int16_t(-1), // Dec + int16_t(040000), // Oct + }; + + int16_t i16 = i16Const[index]; + + const uint16_t u16Const[] = + { + uint16_t(0xFFFF), // Hex + uint16_t(65535), // Dec + uint16_t(077777), // Oct + }; + + uint16_t u16 = u16Const[index]; +} + +void typeCast16() +{ + i8vec2 i8v; + u8vec2 u8v; + i16vec2 i16v; + u16vec2 u16v; + i32vec2 i32v; + u32vec2 u32v; + i64vec2 i64v; + u64vec2 u64v; + f16vec2 f16v; + f32vec2 f32v; + f64vec2 f64v; + bvec2 bv; + + i32v = i16v; // int16_t -> int32_t + i32v = u16v; // uint16_t -> int32_t + u16v = i16v; // int16_t -> uint16_t + u32v = i16v; // int16_t -> uint32_t + i64v = i16v; // int16_t -> int64_t + u64v = i16v; // int16_t -> uint64_t + u32v = u16v; // uint16_t -> uint32_t + i64v = u16v; // uint16_t -> int64_t + u64v = u16v; // uint16_t -> uint64_t + f16v = i16v; // int16_t -> float16_t + f32v = i16v; // int16_t -> float32_t + f64v = i16v; // int16_t -> float64_t + f16v = u16v; // uint16_t -> float16_t + f32v = u16v; // uint16_t -> float32_t + f64v = u16v; // uint16_t -> float64_t + + i32v = i32vec2(i16v); // int16_t -> int32_t + i32v = i32vec2(u16v); // uint16_t -> int32_t + u16v = u16vec2(i16v); // int16_t -> uint16_t + u32v = u32vec2(i16v); // int16_t -> uint32_t + i64v = i64vec2(i16v); // int16_t -> int64_t + u64v = i64vec2(i16v); // int16_t -> uint64_t + u32v = u32vec2(u16v); // uint16_t -> uint32_t + i64v = i64vec2(u16v); // uint16_t -> int64_t + u64v = i64vec2(u16v); // uint16_t -> uint64_t + f16v = f16vec2(i16v); // int16_t -> float16_t + f32v = f32vec2(i16v); // int16_t -> float32_t + f64v = f64vec2(i16v); // int16_t -> float64_t + f16v = f16vec2(u16v); // uint16_t -> float16_t + f32v = f32vec2(u16v); // uint16_t -> float32_t + f64v = f64vec2(u16v); // uint16_t -> float64_t + + i8v = i8vec2(i16v); // int16_t -> int8_t + i8v = i8vec2(u16v); // uint16_t -> int8_t + u8v = u8vec2(i16v); // int16_t -> uint8_t + u8v = u8vec2(u16v); // uint16_t -> uint8_t + i16v = u8vec2(u16v); // uint16_t -> int16_t + i16v = i16vec2(bv); // bool -> int16 + u16v = u16vec2(bv); // bool -> uint16 + bv = bvec2(i16v); // int16 -> bool + bv = bvec2(u16v); // uint16 -> bool +} +void operators() +{ + u16vec3 u16v; + int16_t i16; + uvec3 uv; + int32_t i; + int64_t i64; + bool b; + + // Unary + u16v++; + i16--; + ++i16; + --u16v; + + u16v = ~u16v; + + i16 = +i16; + u16v = -u16v; + + // Arithmetic + i16 += i16; + u16v -= u16v; + i *= i16; + uv /= u16v; + uv %= i16; + + uv = u16v + uv; + i64 = i16 - i64; + uv = u16v * uv; + i64 = i16 * i64; + i = i16 % i; + + // Shift + u16v <<= i16; + i16 >>= u16v.y; + + i16 = i16 << u16v.z; + uv = u16v << i; + + // Relational + b = (u16v.x != i16); + b = (i16 == u16v.x); + b = (u16v.x > uv.y); + b = (i16 < i); + b = (u16v.y >= uv.x); + b = (i16 <= i); + + // Bitwise + uv |= i16; + i = i16 | i; + i64 &= i16; + uv = u16v & uv; + uv ^= i16; + u16v = u16v ^ i16; +} + +void builtinFuncs() +{ + i16vec2 i16v; + i16vec4 i16v4; + u16vec3 u16v; + u16vec2 u16v2; + u16vec4 u16v4; + bvec3 bv; + int16_t i16; + uint16_t u16; + int32_t i32; + uint32_t u32; + int64_t i64; + uint64_t u64; + + // abs() + i16v = abs(i16v); + + // sign() + i16 = sign(i16); + + // min() + i16v = min(i16v, i16); + i16v = min(i16v, i16vec2(-1)); + u16v = min(u16v, u16); + u16v = min(u16v, u16vec3(0)); + + // max() + i16v = max(i16v, i16); + i16v = max(i16v, i16vec2(-1)); + u16v = max(u16v, u16); + u16v = max(u16v, u16vec3(0)); + + // clamp() + i16v = clamp(i16v, -i16, i16); + i16v = clamp(i16v, -i16v, i16v); + u16v = clamp(u16v, -u16, u16); + u16v = clamp(u16v, -u16v, u16v); + + // mix() + i16 = mix(i16v.x, i16v.y, true); + i16v = mix(i16vec2(i16), i16vec2(-i16), bvec2(false)); + u16 = mix(u16v.x, u16v.y, true); + u16v = mix(u16vec3(u16), u16vec3(-u16), bvec3(false)); + + //pack + i32 = pack32(i16v); + i64 = pack64(i16v4); + u32 = pack32(u16v2); + u64 = pack64(u16v4); + + i16v = unpack16(i32); + i16v4 = unpack16(i64); + u16v2 = unpack16(u32); + u16v4 = unpack16(u64); + + // lessThan() + bv = lessThan(u16v, u16vec3(u16)); + bv.xy = lessThan(i16v, i16vec2(i16)); + + // lessThanEqual() + bv = lessThanEqual(u16v, u16vec3(u16)); + bv.xy = lessThanEqual(i16v, i16vec2(i16)); + + // greaterThan() + bv = greaterThan(u16v, u16vec3(u16)); + bv.xy = greaterThan(i16v, i16vec2(i16)); + + // greaterThanEqual() + bv = greaterThanEqual(u16v, u16vec3(u16)); + bv.xy = greaterThanEqual(i16v, i16vec2(i16)); + + // equal() + bv = equal(u16v, u16vec3(u16)); + bv.xy = equal(i16v, i16vec2(i16)); + + // notEqual() + bv = notEqual(u16v, u16vec3(u16)); + bv.xy = notEqual(i16v, i16vec2(i16)); +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int16_t si16 = int16_t(-10); +layout(constant_id = 101) const uint16_t su16 = uint16_t(20); diff --git a/deps/glslang/glslang/Test/spv.vulkan110.storageBuffer.vert b/deps/glslang/glslang/Test/spv.vulkan110.storageBuffer.vert new file mode 100644 index 0000000000..6dd629e813 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.vulkan110.storageBuffer.vert @@ -0,0 +1,16 @@ +#version 450 + +#pragma use_storage_buffer + +uniform ub { + vec4 a; +} ubi; + +buffer bb { + vec4 b; +} bbi; + +void main() +{ + gl_Position = ubi.a + bbi.b; +} diff --git a/deps/glslang/glslang/Test/spv.while-continue-break.vert b/deps/glslang/glslang/Test/spv.while-continue-break.vert new file mode 100644 index 0000000000..c81e8d28c2 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.while-continue-break.vert @@ -0,0 +1,20 @@ +#version 310 es +void main() { + int i = 0; + int A, B, C, D; + while (i<10) { + A = 1; + if (i%2 == 0) { + B = 2; + continue; + C = 2; + } + if (i%5 == 0) { + B = 2; + break; + C = 2; + } + i++; + } + D = 3; +} diff --git a/deps/glslang/glslang/Test/spv.while-simple.vert b/deps/glslang/glslang/Test/spv.while-simple.vert new file mode 100644 index 0000000000..0f38325d0e --- /dev/null +++ b/deps/glslang/glslang/Test/spv.while-simple.vert @@ -0,0 +1,7 @@ +#version 310 es +void main() { + int i = 0; + while (i<10) { + i++; + } +} diff --git a/deps/glslang/glslang/Test/spv.whileLoop.frag b/deps/glslang/glslang/Test/spv.whileLoop.frag new file mode 100644 index 0000000000..f7b7141eae --- /dev/null +++ b/deps/glslang/glslang/Test/spv.whileLoop.frag @@ -0,0 +1,16 @@ +#version 140 + +in vec4 bigColor; +in vec4 BaseColor; +in float d; + +void main() +{ + vec4 color = BaseColor; + + while (color.x < d) { + color += bigColor; + } + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/spv.xfb.vert b/deps/glslang/glslang/Test/spv.xfb.vert new file mode 100644 index 0000000000..ad762bc214 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.xfb.vert @@ -0,0 +1,20 @@ +#version 450 + +layout(xfb_buffer = 3) out; +layout(xfb_stride = 48) out; +layout(xfb_offset = 12, location = 0) out float out1; + +layout(xfb_buffer = 2) out; +layout(location=1) out outXfb { + layout(xfb_buffer = 2, xfb_stride = 32, xfb_offset = 8) float out2; +}; + +layout(xfb_buffer = 1, location=3) out outXfb2 { + layout(xfb_stride = 64, xfb_offset = 60) float out3; +}; + +layout(location = 4, xfb_buffer = 0, xfb_offset = 4) out float out4; + +void main() +{ +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.xfb2.vert b/deps/glslang/glslang/Test/spv.xfb2.vert new file mode 100644 index 0000000000..895666d9ff --- /dev/null +++ b/deps/glslang/glslang/Test/spv.xfb2.vert @@ -0,0 +1,18 @@ +#version 450 + +layout (location = 0) in vec4 position; +layout (binding = 5) uniform ComponentsBlock +{ + vec4 c1; + vec2 c2; +} components; + +layout (xfb_buffer = 3, xfb_offset = 16) out gl_PerVertex +{ + vec4 gl_Position; +}; + +void main() +{ + gl_Position = position + components.c1 + vec4(components.c2, 0.0, 0.0); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/spv.xfb3.vert b/deps/glslang/glslang/Test/spv.xfb3.vert new file mode 100644 index 0000000000..2eae7c9eb9 --- /dev/null +++ b/deps/glslang/glslang/Test/spv.xfb3.vert @@ -0,0 +1,18 @@ +#version 450 + +layout (location = 0) in vec4 position; +layout (binding = 5) uniform ComponentsBlock +{ + vec4 c1; + vec2 c2; +} components; + +layout (xfb_buffer = 3, xfb_offset = 16) out gl_PerVertex +{ + layout(xfb_stride = 80) vec4 gl_Position; +}; + +void main() +{ + gl_Position = position + components.c1 + vec4(components.c2, 0.0, 0.0); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/stringToDouble.vert b/deps/glslang/glslang/Test/stringToDouble.vert new file mode 100644 index 0000000000..2f213021f5 --- /dev/null +++ b/deps/glslang/glslang/Test/stringToDouble.vert @@ -0,0 +1,98 @@ +#version 460 +//#pragma glslang_binary_double_output +void main() +{ + float w1 = 00000.000; + float w2 = 1.0; + float w3 = 007.00; + float w4 = 000130000.0; + float w5 = 123456789.0000; + double w6 = 1234567890123456.0; + double w7 = 12345678901234567.0; + double w8 = 123456789012345678.0; + double w9 = 12345678901234567893.0; + double w10 = 1234567890123456789012345.0; + + float e1 = 0e0; + float e2 = 1e0; + float e3 = 0e14; + float e4 = 1e15; + float e5 = 1e16; + float e6 = 0e-14; + float e7 = 1e-15; + float e8 = 1e-16; + double e9 = 1e100; + double e10 = 1e+308; + double e11 = 1e-307; // Was 1e-323, but that's flushed to zero sometimes. 1e-308 can be flushed to 0. + double e12 = 1e+309; + double e13 = 1e-324; + double e24 = 1e+999; + double e25 = 1e-999; + + double f1 = 0.5; + double f2 = 0.125; + double f31 = 0.1; + double f32 = 0.2; + double f33 = 0.3; + double f34 = 0.4; + double f35 = 0.5; + double f36 = 0.6; + double f37 = 0.7; + double f38 = 0.8; + double f39 = 0.9; + double f4 = 0.33333333333333333333333333333333333333333333333333333333333333333333333333333; + double f51 = 0.000000000000000000000000000000000000783475; + double f52 = 0.0000000000000000000000000000000000007834750; + double f53 = .00000000000000000000000000000000000078347500; + double f54 = 0.000000000000000000000000000000000000783475000000; + double f61 = 4.; + double f62 = 40.; + double f63 = 0.; + double f64 = 04.; + double f65 = .0; + double f66 = .004; + double f67 = .400; + double f68 = .04000; + + double c1 = .081e-2; + double c2 = .073e2; + double c3 = 34.5e-1; + double c4 = 35.7e-4; + double c5 = 43.9e1; + double c6 = 52.2e4; + double c7 = 000610000e2; + double c8 = 000610000e-6; + double c9 = 000001234567890123450000.0; + double c10 = 000999999999999999999000.0; + double c11 = 0001230000.0045600000; + double c12 = 0001230000.00405600000e-3; + double c13 = 0001230000.004500600000e-4; + double c14 = 00010230000.0045600000e-5; + double c15 = 000120030000.0045600000e4; + double c16 = 0001230000.0045600000e5; + double c17 = 0001230000.0045600000e6; + double c18 = 0001230000.00456007e6; + + double b11 = 72057594037927928.0; + double b12 = 72057594037927936.0; + double b13 = 72057594037927932.0; + double b14 = 7205759403792793199999e-5; + double b15 = 7205759403792793200001e-5; + double b21 = 9223372036854774784.0; + double b22 = 9223372036854775808.0; + double b23 = 9223372036854775296.0; + double b24 = 922337203685477529599999e-5; + double b25 = 922337203685477529600001e-5; + double b31 = 10141204801825834086073718800384.0; + double b32 = 10141204801825835211973625643008.0; + double b33 = 10141204801825834649023672221696.0; + double b34 = 1014120480182583464902367222169599999e-5; + double b35 = 1014120480182583464902367222169600001e-5; + double b41 = 5708990770823838890407843763683279797179383808.0; + double b42 = 5708990770823839524233143877797980545530986496.0; + double b43 = 5708990770823839207320493820740630171355185152.0; + double b44 = 5708990770823839207320493820740630171355185151999e-3; + double b45 = 5708990770823839207320493820740630171355185152001e-3; + + double pi = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; +} diff --git a/deps/glslang/glslang/Test/structAssignment.frag b/deps/glslang/glslang/Test/structAssignment.frag new file mode 100644 index 0000000000..959f854eda --- /dev/null +++ b/deps/glslang/glslang/Test/structAssignment.frag @@ -0,0 +1,39 @@ +#version 130 + +uniform sampler2D sampler; +varying mediump vec2 coord; + +struct lunarStruct1 { + int i; + float f; +}; + +struct lunarStruct2 { + int i; + float f; + lunarStruct1 s1_1; +}; + +struct lunarStruct3 { + lunarStruct2 s2_1; + int i; + float f; + lunarStruct1 s1_1; +}; + + +uniform lunarStruct1 foo; +uniform lunarStruct2 foo2; +uniform lunarStruct3 foo3; + +void main() +{ + lunarStruct2 locals2; + + if (foo3.s2_1.i > 0) + locals2 = foo3.s2_1; + else + locals2 = foo2; + + gl_FragColor = locals2.s1_1.f * texture2D(sampler, coord); +} diff --git a/deps/glslang/glslang/Test/structDeref.frag b/deps/glslang/glslang/Test/structDeref.frag new file mode 100644 index 0000000000..376e408f1d --- /dev/null +++ b/deps/glslang/glslang/Test/structDeref.frag @@ -0,0 +1,71 @@ +#version 130 + +uniform sampler2D sampler; +varying vec2 coord; + +struct s0 { + int i; +}; + +struct s00 { + s0 s0_0; +}; + +struct s1 { + int i; + float f; + s0 s0_1; +}; + +struct s2 { + int i; + float f; + s1 s1_1; +}; + +struct s3 { + s2[12] s2_1; + int i; + float f; + s1 s1_1; +}; + + +uniform s0 foo0; +uniform s1 foo1; +uniform s2 foo2; +uniform s3 foo3; + +uniform s00 foo00; + +void main() +{ + s0 locals0; + s2 locals2; + s00 locals00; + + float[6] fArray; + + s1[10] locals1Array; + + if (foo3.s2_1[9].i > 0) { + locals2.f = 1.0; + locals2.s1_1 = s1(0, 1.0, s0(0)); + fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + locals1Array[6] = foo1; + locals0 = s0(0); + locals00 = s00(s0(0)); + } else { + locals2.f = coord.x; + locals2.s1_1 = s1(1, coord.y, foo0); + fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0); + locals1Array[6] = locals2.s1_1; + locals0 = foo1.s0_1; + locals00 = foo00; + } + + if (locals0.i > 5) + locals0 = locals00.s0_0; + + gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture2D(sampler, coord); +} diff --git a/deps/glslang/glslang/Test/structure.frag b/deps/glslang/glslang/Test/structure.frag new file mode 100644 index 0000000000..97e79cb01c --- /dev/null +++ b/deps/glslang/glslang/Test/structure.frag @@ -0,0 +1,31 @@ +#version 130 +uniform sampler2D sampler; +varying vec2 coord; + +struct lunarStruct1 { + int i; + float f[4]; + vec4 color[5]; +}; + +struct lunarStruct2 { + int i[5]; + float f; + lunarStruct1 s1_1[7]; +}; + +uniform lunarStruct1 foo; +uniform lunarStruct2 foo2[5]; + +void main() +{ + float scale = 0.0; + + if (foo2[3].i[4] > 0) + scale = foo2[3].s1_1[2].color[3].x; + else + scale = foo2[3].s1_1[2].f[3]; + + gl_FragColor = scale * texture2D(sampler, coord); +} + diff --git a/deps/glslang/glslang/Test/switch.frag b/deps/glslang/glslang/Test/switch.frag new file mode 100644 index 0000000000..f0860fae81 --- /dev/null +++ b/deps/glslang/glslang/Test/switch.frag @@ -0,0 +1,158 @@ +#version 300 es +precision highp float; +uniform int c, d; +in highp float x; + +void main() +{ + float f; + int a[2]; + + switch(f) { // ERROR + } + + switch(a) { // ERROR + } + + switch(c) + { + } + + switch(c) // WARNING, not enough stuff after last label + { + case 2: + } + + switch(c) + { + f = sin(x); // ERRROR + case 2: + f = cos(x); + break; + } + + switch (c) { + default: + break; + case 1: + f = sin(x); + break; + case 2: + f = cos(x); + break; + default: // ERROR, 2nd default + f = tan(x); + } + + switch (c) { + case 1: + f = sin(x); + break; + case 2: + switch (d) { + case 1: + f = x * x * x; + break; + case 2: + f = x * x; + break; + } + break; + default: + f = tan(x); + case 1: // ERROR, 2nd 'case 1' + break; + case 3.8: // ERROR, non-int + break; + case c: // ERROR, non-constant + break; + } + + switch (c) { // a no-error normal switch + case 1: + f = sin(x); + break; + case 2: + switch (d) { + case 1: + f = x * x * x; + break; + case 2: + f = x * x; + break; + } + break; + default: + f = tan(x); + } + + break; // ERROR + + switch (c) { + case 1: + f = sin(x); + break; + case 2: + switch (d) { + case 1: + { + case 4: // ERROR + break; + } + f = x * x * x; + if (c < d) { + case 2: // ERROR + f = x * x; + } + if (d < c) + case 3: // ERROR + break; + } + break; + case 4: + f = tan(x); + if (f < 0.0) + default: // ERROR + break; + } + + case 5: // ERROR + default: // ERROR + + switch (0) { + default: + int onlyInSwitch = 0; + } + onlyInSwitch; // ERROR + + switch (0) { + default: + int x; // WARNING (was "no statement" ERROR, but spec. changed because unclear what a statement is) + } + + switch (c) { + case 1: + { + int nestedX; + break; + } + case 2: + nestedX; // ERROR + int nestedZ; + float a; // okay, hiding outer 'a' + break; + case 3: + int linearZ; + break; + break; + case 4: + int linearY = linearZ; + break; + case 5: // okay that branch bypassed an initializer + const int linearC = 4; + break; + case 6: // okay that branch bypassed an initializer + linearC; + } + nestedZ; // ERROR, no longer in scope +} diff --git a/deps/glslang/glslang/Test/swizzle.frag b/deps/glslang/glslang/Test/swizzle.frag new file mode 100644 index 0000000000..14f507ecd8 --- /dev/null +++ b/deps/glslang/glslang/Test/swizzle.frag @@ -0,0 +1,52 @@ +#version 110 + +uniform float blend; +uniform vec4 u; +uniform bool p; + +varying vec2 t; + +void main() +{ + float blendscale = 1.789; + + vec4 w = u; + vec4 w_undef; // test undef + vec4 w_dep = u; // test dependent swizzles + vec4 w_reorder = u; // test reordering + vec4 w2 = u; + vec4 w_flow = u; // test flowControl + + w_reorder.z = blendscale; + + w.wy = t; + + w_reorder.x = blendscale; + + w2.xyzw = u.zwxy; + + w_reorder.y = blendscale; + + w_dep.xy = w2.xz; + w_dep.zw = t; + + w_undef.xy = u.zw; + + if (p) + w_flow.x = t.x; + else + w_flow.x = t.y; + + gl_FragColor = mix(w_reorder, w_undef, w * w2 * w_dep * w_flow); + + vec2 c = t; + vec4 rep = vec4(0.0, 0.0, 0.0, 1.0); + + if (c.x < 0.0) + c.x *= -1.0; + + if (c.x <= 1.0) + rep.x = 3.4; + + gl_FragColor += rep; +} diff --git a/deps/glslang/glslang/Test/syntaxError.frag b/deps/glslang/glslang/Test/syntaxError.frag new file mode 100644 index 0000000000..fcbeb69e18 --- /dev/null +++ b/deps/glslang/glslang/Test/syntaxError.frag @@ -0,0 +1,16 @@ +#version 120 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +void main() +{ + vec5 color = BaseColor; + + do { + color += bigColor; + } while (color.x < d); + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/Test/test.frag b/deps/glslang/glslang/Test/test.frag new file mode 100644 index 0000000000..1b7d0e95e3 --- /dev/null +++ b/deps/glslang/glslang/Test/test.frag @@ -0,0 +1,22 @@ +#version 110 + +uniform sampler2D texSampler2D; +uniform sampler3D texSampler3D; + +uniform float blend; +uniform vec2 scale; +uniform vec4 u; + +varying vec2 t; +varying vec3 coords; + +void main() +{ + float blendscale = 1.789; + + vec4 v = texture2D(texSampler2D, (t + scale) / scale ).wzyx; + + vec4 w = texture3D(texSampler3D, coords) + v; + + gl_FragColor = mix(w, u, blend * blendscale); +} diff --git a/deps/glslang/glslang/Test/texture.frag b/deps/glslang/glslang/Test/texture.frag new file mode 100644 index 0000000000..8e5391eeff --- /dev/null +++ b/deps/glslang/glslang/Test/texture.frag @@ -0,0 +1,73 @@ +#version 130 + +uniform sampler1D texSampler1D; +uniform sampler2D texSampler2D; +uniform sampler3D texSampler3D; +uniform samplerCube texSamplerCube; +uniform sampler1DShadow shadowSampler1D; +uniform sampler2DShadow shadowSampler2D; + +uniform float blend; +uniform vec2 scale; +uniform vec4 u; + +varying vec2 t; +varying vec2 coords2D; + +void main() +{ + float blendscale = 1.789; + float bias = 2.0; + float lod = 3.0; + float proj = 2.0; + float coords1D = 1.789; + vec3 coords3D = vec3(1.789, 2.718, 3.453); + vec4 coords4D = vec4(1.789, 2.718, 3.453, 2.0); + vec4 color = vec4(0.0, 0.0, 0.0, 0.0); + + color += texture1D (texSampler1D, coords1D); + color += texture1D (texSampler1D, coords1D, bias); + color += texture1DProj(texSampler1D, coords2D); + color += texture1DProj(texSampler1D, coords4D); + color += texture1DProj(texSampler1D, coords2D, bias); + color += texture1DProj(texSampler1D, coords4D, bias); + + color += texture2D (texSampler2D, coords2D); + color += texture2D (texSampler2D, coords2D, bias); + color += texture2DProj (texSampler2D, coords3D); + color += texture2DProj (texSampler2D, coords4D, bias); + + color += texture3D (texSampler3D, coords3D); + color += texture3D (texSampler3D, coords3D, bias); + color += texture3DProj (texSampler3D, coords4D); + color += texture3DProj (texSampler3D, coords4D, bias); + + color += textureCube (texSamplerCube, coords3D); + color += textureCube (texSamplerCube, coords3D, bias); + + color += shadow1D (shadowSampler1D, coords3D); + color += shadow1D (shadowSampler1D, coords3D, bias); + color += shadow2D (shadowSampler2D, coords3D); + color += shadow2D (shadowSampler2D, coords3D, bias); + color += shadow1DProj (shadowSampler1D, coords4D); + color += shadow1DProj (shadowSampler1D, coords4D, bias); + color += shadow2DProj (shadowSampler2D, coords4D); + color += shadow2DProj (shadowSampler2D, coords4D, bias); + + ivec2 iCoords2D = ivec2(0, 5); + int iLod = 1; + + color += texelFetch(texSampler2D, iCoords2D, iLod); + + vec2 gradX = dFdx(coords2D); + vec2 gradY = dFdy(coords2D); + const ivec2 offset = ivec2(3, -7); + + color += textureGrad(texSampler2D, coords2D, gradX, gradY); + color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY); + color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset); + color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset); + color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY); + + gl_FragColor = mix(color, u, blend * blendscale); +} \ No newline at end of file diff --git a/deps/glslang/glslang/Test/tokenLength.vert b/deps/glslang/glslang/Test/tokenLength.vert new file mode 100644 index 0000000000..21d446fae4 --- /dev/null +++ b/deps/glslang/glslang/Test/tokenLength.vert @@ -0,0 +1,72 @@ +#version 300 es +//#pragma glslang_binary_double_output +// 1023 characters +in float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; + +// 1024 characters (okay) +in float ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; + +int E1 = 5000000000; // ERROR +int E2 = 50000000000; // ERROR +int B = 4294967295; // okay + +int OE = 0777777777777777777777; // ERROR +int HE = 0x1234567890ABCDEF0; // ERROR + +// 1023 character fraction +float F = 1.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890; + +// 1024 character value +float G = 1.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678890; + +// 1025 character fraction +float E3 = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012; + +void main() +{ + gl_Position = vec4(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789, + B, F, G); +} + +// super long +float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; +int superH = 0xBCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789; +int superO = 0777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777; +int superI = 429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295; +float superF = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890121234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901212345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012; + +// Boundary cases +#extension a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234 : enable +#extension a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh012345 : enable + +// Super long +#extension A29496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295 + +// Boundary cases +#if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +#error in long non-zero #if +#endif +#if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0 +#error in long zero #if +#endif +#if 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0 +#error in too long #if +#endif + +#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 +#error in long macro #if +#endif +#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +#error in long macro #if +#endif +#if A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +#error in too long macro #if +#endif + +// Super long +#if 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +#error in super long #if +#endif +#if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +#error in super long macro #if +#endif diff --git a/deps/glslang/glslang/Test/tokenPaste.vert b/deps/glslang/glslang/Test/tokenPaste.vert new file mode 100644 index 0000000000..40de6f9219 --- /dev/null +++ b/deps/glslang/glslang/Test/tokenPaste.vert @@ -0,0 +1,86 @@ +#version 450 + +// side test verifies multiple rounds of argument expansion +#define bear SecondExpansion +#define mmmB bear +#define mmmA(a) a +int mmmA(mmmB); // mmmB -> bear, and then in mmmA(), bear -> SecondExpansion + +// pasting skips the first round of expansion +#define mmcatmmdog PostPasteExpansion +#define mmcat cat +#define mmdog dog +#define mmp(a,b) a## b +int mmp(mmcat, mmdog); // mmcat/mmdog not expanded, mmcatmmdog -> PostPasteExpansion + +// multi-token pre +#define mmtokpastepre(a) a##27 +mmtokpastepre(float foo); // should declare "float foo27;" + +// multi-token post +#define mmtokpastepost(a) uni ##a +mmtokpastepost(form float foo155); // should declare "uniform float foo155;" + +// non-first argument +#define foo ShouldntExpandToThis +#define semi ; +#define bothpaste(a,b) a##b +float bothpaste(foo, 719); // should declare "float foo719;" +#define secpaste(a,b) a bar ## b +secpaste(uniform float, foo semi) // should declare "uniform float barfoo;" + +// no args +#define noArg fl##oat +noArg argless; + +// bad location +#define bad1 ## float +bad1 dc1; +#define bad2 float ## +bad2 dc2; + +// multiple ## +#define multiPaste(a, b, c) a##or##b flo##at foo##c +multiPaste(unif, m, 875); + +// too long +#define simplePaste(a,b) a##b +// 1020 + 5 characters +float simplePaste(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345, 12345); + +// non-identifiers +int a = simplePaste(11,12); + +// operators +#define MAKE_OP(L, R) L ## R +const int aop = 10; +const int bop = 4; +int cop = aop MAKE_OP(<, <) bop; +bool dop = aop MAKE_OP(!,=) bop; + +#define MAKE_OP3(L, M, R) L ## M ## R + +void foo() +{ + int e = 16; + e MAKE_OP3(>,>,=) 2; + + // recovery from bad op + bool f = e MAKE_OP(>,!) 5; +} + +// arguments: should make 'uniform int argPaste2;' +#define M_NEST(q) int q +#define M_OUTER(p) M_NEST(p##2) +uniform M_OUTER(argPaste); +// should make 'uniform int argPaste20suff;' +#define M_NEST2(q) int q ## suff +#define M_OUTER2(p) M_NEST2(p ## 20) +uniform M_OUTER2(argPaste); + +#define rec(x)## +rec(rec()) + +#define bax(bay) +#define baz bax(/##) +baz diff --git a/deps/glslang/glslang/Test/types.frag b/deps/glslang/glslang/Test/types.frag new file mode 100644 index 0000000000..48701d8901 --- /dev/null +++ b/deps/glslang/glslang/Test/types.frag @@ -0,0 +1,81 @@ +#version 130 + +uniform bool u_b; +uniform bvec2 u_b2; +uniform bvec3 u_b3; +uniform bvec4 u_b4; + +uniform int u_i; +uniform ivec2 u_i2; +uniform ivec3 u_i3; +uniform ivec4 u_i4; + +uniform float u_f; +uniform vec2 u_f2; +uniform vec3 u_f3; +uniform vec4 u_f4; + +uniform bool i_b; +uniform bvec2 i_b2; +uniform bvec3 i_b3; +uniform bvec4 i_b4; + +flat in int i_i; +flat in ivec2 i_i2; +flat in ivec3 i_i3; +flat in ivec4 i_i4; + +in float i_f; +in vec2 i_f2; +in vec3 i_f3; +in vec4 i_f4; + +void main() +{ + bool b = u_b && i_b; + bvec2 b2 = bvec2(u_b2.x && i_b2.x && u_b2.y && i_b2.y); + bvec3 b3 = bvec3(u_b3.x && i_b3.x && u_b3.y && i_b3.y && u_b3.z && i_b3.z); + bvec4 b4 = bvec4(u_b4.x && i_b4.x && u_b4.y && i_b4.y && u_b4.z && i_b4.z && u_b4.w && i_b4.w); + + int i = u_i + i_i; + ivec2 i2 = u_i2 + i_i2; + ivec3 i3 = u_i3 + i_i3; + ivec4 i4 = u_i4 + i_i4; + + float f = u_f + i_f; + vec2 f2 = u_f2 + i_f2; + vec3 f3 = u_f3 + i_f3; + vec4 f4 = u_f4 + i_f4; + + gl_FragColor = + b || + b2.x || + b2.y || + b3.x || + b3.y || + b3.z || + b4.x || + b4.y || + b4.z || + b4.w ? vec4( + i + + i2.x + + i2.y + + i3.x + + i3.y + + i3.z + + i4.x + + i4.y + + i4.z + + i4.w + + f + + f2.x + + f2.y + + f3.x + + f3.y + + f3.z + + f4.x + + f4.y + + f4.z + + f4.w) : vec4(1.0); +} diff --git a/deps/glslang/glslang/Test/uint.frag b/deps/glslang/glslang/Test/uint.frag new file mode 100644 index 0000000000..6dd69ac9fb --- /dev/null +++ b/deps/glslang/glslang/Test/uint.frag @@ -0,0 +1,105 @@ +#version 300 es +in uvec2 badu; // ERROR +flat in uvec2 t; +in highp float f; +in highp vec2 tc; +in bool bad; // ERROR +uniform uvec4 v; +uniform int i; +uniform bool b; + +out uvec4 c; + +uniform lowp usampler2D usampler; + +void main() +{ + int count = 1; + + uint u = t.y + 3u; + const uint cu1error = 0xFFFFFFFF; // ERROR + const uint cu1 = 0xFFFFFFFFU; + const uint cu2 = -1u; // 0xFFFFFFFF + const uint cu3 = 1U; + const uint cu4error = 1; // ERROR + const uint cu4 = 1u; + + if (cu1 == cu2) + count *= 2; // done + if (cu3 == cu4) + count *= 3; // done + if (cu2 == cu3) + count *= 5; // not done + + const uint cushiftediierror = 0xFFFFFFFF >> 10; // ERROR + const int cshiftedii = 0xFFFFFFFF >> 10; + const uint cushiftedui = 0xFFFFFFFFu >> 10; + const uint cushiftediuerror = 0xFFFFFFFF >> 10u; // ERROR + const int cshiftediu = 0xFFFFFFFF >> 10u; + const uint cushifteduu = 0xFFFFFFFFu >> 10u; + + if (cshiftedii == cshiftediu) + count *= 7; // done + if (cushiftedui == cushifteduu) + count *= 11; // done + if (cshiftedii == int(cushiftedui)) + count *= 13; // not done + + uint shiftediierror = 0xFFFFFFFF >> 10; // ERROR + int shiftedii = 0xFFFFFFFF >> 10; + uint shiftedui = 0xFFFFFFFFu >> 10; + uint shiftediuerror = 0xFFFFFFFF >> 10u; // ERROR + int shiftediu = 0xFFFFFFFF >> 10u; + uint shifteduu = 0xFFFFFFFFu >> 10u; + + if (shiftedii == shiftediu) + c = texture(usampler, tc); + if (shiftedui == shifteduu) + c = texture(usampler, tc + float(1u)); + if (shiftedii == int(shiftedui)) + c = texture(usampler, tc - vec2(2u)); + + if (t.x > 4u) { + float af = float(u); + bool ab = bool(u); + int ai = int(u); + + c += uvec4(uint(af), uint(ab), uint(ai), count); + } + + const uint cmask1 = 0x0A1u; + const uint cmask2 = 0xA10u; + const uint cmask3 = cmask1 << 4; + const uint cmask4 = 0xAB1u; + + if (cmask3 == cmask2) + count *= 17; // done + + if ((cmask3 & cmask1) != 0u) + count *= 19; // not done + + if ((cmask1 | cmask3) == cmask4) + count *= 23; // done + + if ((cmask1 ^ cmask4) == 0xA10u) + count *= 27; // done + + uint mask1 = 0x0A1u; + uint mask2 = 0xA10u; + uint mask3 = mask1 << 4; + uint mask4 = 0xAB1u; + + if (mask3 == mask2) + count *= 100; + + if ((mask3 & mask1) != 0u) + count *= 101; + + if ((mask1 | mask3) == mask4) + count *= 102; + + if ((mask1 ^ mask4) == 0xA10u) + count *= 103; + + c += uvec4(count); +} diff --git a/deps/glslang/glslang/Test/uniformArray.frag b/deps/glslang/glslang/Test/uniformArray.frag new file mode 100644 index 0000000000..7db287642b --- /dev/null +++ b/deps/glslang/glslang/Test/uniformArray.frag @@ -0,0 +1,16 @@ +#version 130 +uniform sampler2D texSampler2D; +uniform vec3 inColor; +uniform vec4 color[6]; +uniform float alpha[16]; + +void main() +{ + vec4 texColor = color[1] + color[1]; + + texColor.xyz += inColor; + + texColor.a += alpha[12]; + + gl_FragColor = texColor; +} diff --git a/deps/glslang/glslang/Test/validate-shaders.sh b/deps/glslang/glslang/Test/validate-shaders.sh new file mode 100644 index 0000000000..89dc95566b --- /dev/null +++ b/deps/glslang/glslang/Test/validate-shaders.sh @@ -0,0 +1,269 @@ +#!/bin/bash + +# This script validates shaders (if successfully compiled) using spirv-val. +# It is not meant to preclude the possible addition of the validator to +# glslang. + +declare -r EXE='../build/install/bin/glslangValidator' + +# search common locations for spirv-tools: keep first one +for toolsdir in '../External/spirv-tools/build/tools' '../../SPIRV-Tools/build/tools/bin' '/usr/local/bin'; do + [[ -z "$VAL" && -x "${toolsdir}/spirv-val" ]] && declare -r VAL="${toolsdir}/spirv-val" + [[ -z "$DIS" && -x "${toolsdir}/spirv-dis" ]] && declare -r DIS="${toolsdir}/spirv-dis" +done + +declare -r gtests='../gtests/Hlsl.FromFile.cpp ../gtests/Spv.FromFile.cpp' + +declare -r targetenv='vulkan1.0' + +function fatal() { echo "ERROR: $@"; exit 5; } + +function usage +{ + echo + echo "Usage: $(basename $0) [options...] shaders..." + echo + echo " Validates shaders (if successfully compiled) through spirv-val." + echo + echo "General options:" + echo " --help prints this text" + echo " --no-color disables output colorization" + echo " --dump-asm dumps all successfully compiled shader assemblies" + echo " --dump-val dumps all validation results" + echo " --dump-comp dumps all compilation logs" + echo "Spam reduction options:" + echo " --no-summary disables result summaries" + echo " --skip-ok do not print successful validations" + echo " --skip-comperr do not print compilation errors" + echo " --skip-valerr do not print validation errors" + echo " --quiet synonym for --skip-ok --skip-comperr --skip-valerr --no-summary" + echo " --terse print terse single line progress summary" + echo "Disassembly options:" + echo " --raw-id uses raw ids for disassembly" + echo + echo "Usage examples. Note most non-hlsl tests fail to compile for expected reasons." + echo " Exercise all hlsl.* files:" + echo " $(basename $0) hlsl.*" + echo " Exercise all hlsl.* files, tersely:" + echo " $(basename $0) --terse hlsl.*" + echo " Print validator output for myfile.frag:" + echo " $(basename $0) --quiet --dump-val myfile.frag" + echo " Exercise hlsl.* files, only printing validation errors:" + echo " $(basename $0) --skip-ok --skip-comperr hlsl.*" + + exit 5 +} + +function status() +{ + printf "%-40s: %b\n" "$1" "$2" +} + +# make sure we can find glslang +[[ -x "$EXE" ]] || fatal "Unable to locate $(basename "$EXE") executable" +[[ -x "$VAL" ]] || fatal "Unable to locate spirv-val executable" +[[ -x "$DIS" ]] || fatal "Unable to locate spirv-dis executable" + +for gtest in $gtests; do + [[ -r "$gtest" ]] || fatal "Unable to locate source file: $(basename $gtest)" +done + +# temp files +declare -r spvfile='out.spv' \ + complog='comp.out' \ + vallog='val.out' \ + dislog='dis.out' \ + +# options +declare opt_vallog=false \ + opt_complog=false \ + opt_dislog=false \ + opt_summary=true \ + opt_stat_comperr=true \ + opt_stat_ok=true \ + opt_stat_valerr=true \ + opt_color=true \ + opt_raw_id=false \ + opt_quiet=false \ + opt_terse=false + +# clean up on exit +trap "rm -f ${spvfile} ${complog} ${vallog} ${dislog}" EXIT + +# Language guesser: there is no fixed mapping from filenames to language, +# so this examines the file and return one of: +# hlsl +# glsl +# bin +# unknown +# This is easier WRT future expansion than a big explicit list. +function FindLanguage() +{ + local test="$1" + + # If it starts with hlsl, assume it's hlsl. + if [[ "$test" == *hlsl.* ]]; then + echo hlsl + return + fi + + if [[ "$test" == *.spv ]]; then + echo bin + return; + fi + + # If it doesn't start with spv., assume it's GLSL. + if [[ ! "$test" == spv.* && ! "$test" == remap.* ]]; then + echo glsl + return + fi + + # Otherwise, attempt to guess from shader contents, since there's no + # fixed mapping of filenames to languages. + local contents="$(cat "$test")" + + if [[ "$contents" == *#version* ]]; then + echo glsl + return + fi + + if [[ "$contents" == *SamplerState* || + "$contents" == *cbuffer* || + "$contents" == *SV_* ]]; then + echo hlsl + return + fi + + echo unknown +} + +# Attempt to discover entry point +function FindEntryPoint() +{ + local test="$1" + + # if it's not hlsl, always use main + if [[ "$language" != 'hlsl' ]]; then + echo 'main' + return + fi + + # Try to find it in test sources + awk -F '[ (){",]+' -e "\$2 == \"${test}\" { print \$3; found=1; } END { if (found==0) print \"main\"; } " $gtests +} + +# command line options +while [ $# -gt 0 ] +do + case "$1" in + # -c) glslang="$2"; shift 2;; + --help|-?) usage;; + --no-color) opt_color=false; shift;; + --no-summary) opt_summary=false; shift;; + --skip-ok) opt_stat_ok=false; shift;; + --skip-comperr) opt_stat_comperr=false; shift;; + --skip-valerr) opt_stat_valerr=false; shift;; + --dump-asm) opt_dislog=true; shift;; + --dump-val) opt_vallog=true; shift;; + --dump-comp) opt_complog=true; shift;; + --raw-id) opt_raw_id=true; shift;; + --quiet) opt_quiet=true; shift;; + --terse) opt_quiet=true + opt_terse=true + shift;; + --*) fatal "Unknown command line option: $1";; + *) break;; + esac +done + +# this is what quiet means +if $opt_quiet; then + opt_stat_ok=false + opt_stat_comperr=false + opt_stat_valerr=false + $opt_terse || opt_summary=false +fi + +if $opt_color; then + declare -r white="\e[1;37m" cyan="\e[1;36m" red="\e[0;31m" no_color="\e[0m" +else + declare -r white="" cyan="" red="" no_color="" +fi + +# stats +declare -i count_ok=0 count_err=0 count_nocomp=0 count_total=0 + +declare -r dashsep='------------------------------------------------------------------------' + +testfiles=(${@}) +# if no shaders given, look for everything in current directory +[[ ${#testfiles[*]} == 0 ]] && testfiles=(*.frag *.vert *.tesc *.tese *.geom *.comp) + +$opt_summary && printf "\nValidating: ${#testfiles[*]} shaders\n\n" + +# Loop through the shaders we were given, compiling them if we can. +for test in ${testfiles[*]} +do + if [[ ! -r "$test" ]]; then + $opt_quiet || status "$test" "${red}FILE NOT FOUND${no_color}" + continue + fi + + ((++count_total)) + + $opt_terse && printf "\r[%-3d/%-3d : ${white}comperr=%-3d ${red}valerr=%-3d ${cyan}ok=%-3d${no_color}]" \ + ${count_total} ${#testfiles[*]} ${count_nocomp} ${count_err} ${count_ok} + + language="$(FindLanguage $test)" + entry="$(FindEntryPoint $test)" + langops='' + + case "$language" in + hlsl) langops='-D --hlsl-iomap --hlsl-offsets';; + glsl) ;; + bin) continue;; # skip binaries + *) $opt_quiet || status "$test" "${red}UNKNOWN LANGUAGE${no_color}"; continue;; + esac + + # compile the test file + if compout=$("$EXE" -e "$entry" $langops -V -o "$spvfile" "$test" 2>&1) + then + # successful compilation: validate + if valout=$("$VAL" --target-env ${targetenv} "$spvfile" 2>&1) + then + # validated OK + $opt_stat_ok && status "$test" "${cyan}OK${no_color}" + ((++count_ok)) + else + # validation failure + $opt_stat_valerr && status "$test" "${red}VAL ERROR${no_color}" + printf "%s\n%s:\n%s\n" "$dashsep" "$test" "$valout" >> "$vallog" + ((++count_err)) + fi + + if $opt_dislog; then + printf "%s\n%s:\n" "$dashsep" "$test" >> "$dislog" + $opt_raw_id && id_opt=--raw-id + "$DIS" ${id_opt} "$spvfile" >> "$dislog" + fi + else + # compile failure + $opt_stat_comperr && status "$test" "${white}COMP ERROR${no_color}" + printf "%s\n%s\n" "$dashsep" "$compout" >> "$complog" + ((++count_nocomp)) + fi +done + +$opt_terse && echo + +# summarize +$opt_summary && printf "\nSummary: ${white}${count_nocomp} compile errors${no_color}, ${red}${count_err} validation errors${no_color}, ${cyan}${count_ok} successes${no_color}\n" + +# dump logs +$opt_vallog && [[ -r $vallog ]] && cat "$vallog" +$opt_complog && [[ -r $complog ]] && cat "$complog" +$opt_dislog && [[ -r $dislog ]] && cat "$dislog" + +# exit code +[[ ${count_err} -gt 0 ]] && exit 1 +exit 0 diff --git a/deps/glslang/glslang/Test/variableArrayIndex.frag b/deps/glslang/glslang/Test/variableArrayIndex.frag new file mode 100644 index 0000000000..63b49c7849 --- /dev/null +++ b/deps/glslang/glslang/Test/variableArrayIndex.frag @@ -0,0 +1,48 @@ +#version 130 +uniform sampler2D sampler; +varying vec2 coord; + +struct lunarStruct1 { + int i; + float f; +}; + +struct lunarStruct2 { + int i; + float f; + lunarStruct1 s1_1; +}; + +struct lunarStruct3 { + lunarStruct2 s2_1[3]; + int i; + float f; + lunarStruct1 s1_1; +}; + + +uniform lunarStruct1 foo; +uniform lunarStruct2 foo2[5]; +uniform lunarStruct3 foo3; +uniform int Count; + +void main() +{ + float scale; + int iLocal = Count; + + if (foo3.s2_1[1].i > 0) + scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f; + else + scale = foo3.s2_1[0].s1_1.f; + + //for (int i = 0; i < iLocal; ++i) { + // scale += foo2[i].f; + //} + + gl_FragColor = scale * texture2D(sampler, coord); + + vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); + gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); +} + diff --git a/deps/glslang/glslang/Test/varyingArray.frag b/deps/glslang/glslang/Test/varyingArray.frag new file mode 100644 index 0000000000..3bd152fe9b --- /dev/null +++ b/deps/glslang/glslang/Test/varyingArray.frag @@ -0,0 +1,19 @@ +#version 130 +uniform sampler2D texSampler2D; +varying vec4 color; +varying float alpha; + +varying vec4 gl_TexCoord[6]; + +varying vec4 foo[3]; + +void main() +{ + vec4 texColor = texture2D(texSampler2D, vec2(gl_TexCoord[4] + gl_TexCoord[5])); + + texColor += color; + + texColor.a = alpha; + + gl_FragColor = foo[1] + gl_TexCoord[0] + gl_TexCoord[4] + texColor; +} diff --git a/deps/glslang/glslang/Test/varyingArrayIndirect.frag b/deps/glslang/glslang/Test/varyingArrayIndirect.frag new file mode 100644 index 0000000000..d45e601b4c --- /dev/null +++ b/deps/glslang/glslang/Test/varyingArrayIndirect.frag @@ -0,0 +1,21 @@ +#version 130 +uniform sampler2D texSampler2D; +varying vec4 color; +varying float alpha; + +varying vec4 gl_TexCoord[6]; + +varying vec4 userIn[2]; + +uniform int a, b; + +void main() +{ + vec4 texColor = texture2D(texSampler2D, vec2(userIn[b] + gl_TexCoord[a] + gl_TexCoord[5])); + + texColor += color; + + texColor.a = alpha; + + gl_FragColor = gl_TexCoord[0] + gl_TexCoord[b] + texColor + userIn[a]; +} diff --git a/deps/glslang/glslang/Test/versionsClean.frag b/deps/glslang/glslang/Test/versionsClean.frag new file mode 100644 index 0000000000..6e19bf887e --- /dev/null +++ b/deps/glslang/glslang/Test/versionsClean.frag @@ -0,0 +1,45 @@ +// +//Copyright (C) 2012 LunarG, Inc. +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of LunarG Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// +#version 300 es + +in highp vec3 color; +out highp vec4 foo; + +uniform highp sampler2DArrayShadow bar; + +void main() +{ + foo = vec4(color, 142.0f); + discard; +} diff --git a/deps/glslang/glslang/Test/versionsClean.vert b/deps/glslang/glslang/Test/versionsClean.vert new file mode 100644 index 0000000000..7c197857ac --- /dev/null +++ b/deps/glslang/glslang/Test/versionsClean.vert @@ -0,0 +1,43 @@ +// +//Copyright (C) 2012 LunarG, Inc. +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of LunarG Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// +#version 420 compatibility + +attribute vec3 color; + +uniform sampler2DRect foo; + +void main() +{ + gl_Position = vec4(color, 142.0f); +} diff --git a/deps/glslang/glslang/Test/versionsErrors.frag b/deps/glslang/glslang/Test/versionsErrors.frag new file mode 100644 index 0000000000..021c7356bb --- /dev/null +++ b/deps/glslang/glslang/Test/versionsErrors.frag @@ -0,0 +1,46 @@ +// +//Copyright (C) 2012 LunarG, Inc. +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of LunarG Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// +#version 110 es + +#extension GL_ARB_texture_rectangle : disable + +attribute vec3 color; + +uniform sampler2DRect foo; + +void main() +{ + gl_FragColor = vec4(color, 142.0f); + discard; +} diff --git a/deps/glslang/glslang/Test/versionsErrors.vert b/deps/glslang/glslang/Test/versionsErrors.vert new file mode 100644 index 0000000000..8736f2e792 --- /dev/null +++ b/deps/glslang/glslang/Test/versionsErrors.vert @@ -0,0 +1,46 @@ +// +//Copyright (C) 2012 LunarG, Inc. +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of LunarG Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// +#version 420 core + +#extension GL_ARB_texture_rectangle : enable + +attribute vec3 color; + +uniform sampler2DRect foo; + +void main() +{ + gl_Position = vec4(color, 142.0f); + discard; +} diff --git a/deps/glslang/glslang/Test/voidFunction.frag b/deps/glslang/glslang/Test/voidFunction.frag new file mode 100644 index 0000000000..4767f7ab12 --- /dev/null +++ b/deps/glslang/glslang/Test/voidFunction.frag @@ -0,0 +1,34 @@ +#version 120 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +float bar = 2.0; + +void foo() +{ + bar++; + + return; +} + +void foo2() +{ + bar++; +} + +void main() +{ + vec4 outColor = bigColor; + + foo(); + + foo2(); + + outColor.x += bar; + + gl_FragColor = outColor; + + return; +} diff --git a/deps/glslang/glslang/Test/vulkan.ast.vert b/deps/glslang/glslang/Test/vulkan.ast.vert new file mode 100644 index 0000000000..c5a6a42c7d --- /dev/null +++ b/deps/glslang/glslang/Test/vulkan.ast.vert @@ -0,0 +1,42 @@ +#version 450 + +layout(constant_id = 200) const float scf1 = 1.0; +layout(constant_id = 201) const bool scbt = true; +layout(constant_id = 202) const int sci2 = 2; + +void main() +{ + bool(scf1); // not a spec-const + bool(scbt); // spec-const + bool(sci2); // spec-const + + float(scf1); // not a spec-const + float(scbt); // not a spec-const + float(sci2); // not a spec-const + + int(scf1); // not a spec-const + int(scbt); // spec-const + int(sci2); // spec-const + + scf1 * scf1; // not a spec-const + scbt || scbt; // spec-const + sci2 * sci2; // spec-const + scf1 + sci2; // implicit conversion not a spec-const + + -scf1; // not a spec-const + !scbt; // spec-const + -sci2; // spec-const + + scf1 > scf1; // not a spec-const + sci2 > sci2; // spec-const + + scf1 != scf1; // not a spec-const + scbt != scbt; // spec-const + sci2 != sci2; // spec-const + + ivec2(sci2, sci2); // spec-const + ivec2[2](ivec2(sci2, sci2), ivec2(sci2, sci2)); // not a spec-const + + vec2(scf1, scf1); // not spec-const + vec2[2](vec2(scf1, scf1), vec2(scf1, scf1)); // not a spec-const +} diff --git a/deps/glslang/glslang/Test/vulkan.comp b/deps/glslang/glslang/Test/vulkan.comp new file mode 100644 index 0000000000..6b6f4cf3b4 --- /dev/null +++ b/deps/glslang/glslang/Test/vulkan.comp @@ -0,0 +1,12 @@ +#version 450 + +layout(local_size_x_id = 18, local_size_z_id = 19) in; +layout(local_size_x = 32, local_size_y = 32) in; +layout(local_size_z_id = 14) in; // ERROR, can't change this + +void main() +{ + gl_WorkGroupSize; +} + +layout(local_size_y_id = 19) in; // ERROR, already used: TODO not yet reported diff --git a/deps/glslang/glslang/Test/vulkan.frag b/deps/glslang/glslang/Test/vulkan.frag new file mode 100644 index 0000000000..74a5aa1af1 --- /dev/null +++ b/deps/glslang/glslang/Test/vulkan.frag @@ -0,0 +1,105 @@ +#version 450 + +uniform sampler s; // ERROR, no binding +uniform sampler sA[4]; // ERROR, no binding +uniform texture2D t2d; // ERROR, no binding +uniform texture3D t3d[4]; // ERROR, no binding +int i; +uniform samplerShadow sShadow; +uniform texture3D t3d5[5]; +writeonly uniform image2D i2d; + +void badConst() +{ + sampler2D(t2d); // ERROR, need 2 args + sampler2D(s, s); // ERROR, wrong type + sampler2D(i, i); // ERROR, wrong type + sampler2D(t2d, i); // ERROR, wrong type + sampler2D(t2d, t2d); // ERROR, wrong type + sampler2D(t2d, sA); // ERROR, wrong type + + sampler3D[4](t3d5, sA[2]); // ERROR, can't make array + sampler2D(i2d, s); // ERROR, image instead of texture + sampler2D(t3d[1], s); // ERROR, 3D not 2D + sampler2D(t2d, sShadow); // ERROR, shadow mismatch + sampler2DShadow(t2d, s); // ERROR, shadow mismatch +} + +sampler2D s2D = sampler2D(t2d, s); // ERROR, no sampler constructor +sampler3D s3d[4] = sampler3D[4](t3d, sA[2]); // ERROR, no sampler constructor + +out vec4 color; // ERROR, no location + +void main() +{ + color = texture(s2D, vec2(0.5)); + color += texture(s3d[i], vec3(0.5)); +} + +layout(push_constant) buffer pcb { // ERROR, not on a buffer + int a; +} pcbInst; + +layout(push_constant) uniform float pcfloat; // ERROR 2X: not on a non-block, and non-opaque outside block + +layout(push_constant) uniform; // ERROR, needs an object +layout(std430, push_constant) uniform pcb1 { int a; } pcb1inst; +layout(push_constant) uniform pcb2 { + int a; +}; // Okay now to have no instance name + +layout(input_attachment_index = 2) uniform subpassInput subD; +layout(input_attachment_index = 3) uniform texture2D subDbad1; // ERROR, not a texture +layout(input_attachment_index = 4) writeonly uniform image2D subDbad2; // ERROR, not an image +uniform subpassInput subDbad3; // ERROR, need attachment number +layout(input_attachment_index = 2) uniform subpassInputMS subDMS; + +void foo() +{ + vec4 v = subpassLoad(subD); + v += subpassLoadMS(subD); // ERROR, no such function + v += subpassLoad(subD, 2); // ERROR, no such sig. + v += subpassLoad(subDMS, 2); + v += subpassLoadMS(subDMS, 2); // ERROR, no such function +} + +subroutine int fooS; // ERROR, not in SPV +subroutine int fooSub(); // ERROR, not in SPV + +uniform vec4 dv4; // ERROR, no default uniforms + +void fooTex() +{ + texture(t2d, vec2(1.0)); // ERROR, need a sampler, not a pure texture + imageStore(t2d, ivec2(4, 5), vec4(1.2)); // ERROR, need an image, not a pure texture +} + +precision highp float; + +layout(location=0) in vec2 vTexCoord; +layout(location=0) out vec4 FragColor; + +vec4 userTexture(mediump sampler2D samp, vec2 coord) +{ + return texture(samp, coord); +} + +bool cond; + +void callUserTexture() +{ + userTexture(sampler2D(t2d,s), vTexCoord); // ERROR, not point of use + userTexture((sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use + userTexture((sampler2D(t2d,s), sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use + userTexture(cond ? sampler2D(t2d,s) : sampler2D(t2d,s), vTexCoord); // ERROR, no ?:, not point of use + + gl_NumSamples; // ERROR, not for Vulkan +} + +void noise() +{ + noise1(dv4); + noise2(4.0); + noise3(vec2(3)); + noise4(dv4); +} diff --git a/deps/glslang/glslang/Test/vulkan.vert b/deps/glslang/glslang/Test/vulkan.vert new file mode 100644 index 0000000000..a6af2d57da --- /dev/null +++ b/deps/glslang/glslang/Test/vulkan.vert @@ -0,0 +1,65 @@ +#version 450 + +layout(input_attachment_index = 2) uniform subpassInput subD1; // ERROR, not this stage +layout(input_attachment_index = 2) uniform isubpassInput subD2; // ERROR, not this stage +layout(input_attachment_index = 2) uniform usubpassInput subD3; // ERROR, not this stage +layout(input_attachment_index = 2) uniform subpassInputMS subD4; // ERROR, not this stage +layout(input_attachment_index = 2) uniform isubpassInputMS subD5; // ERROR, not this stage +layout(input_attachment_index = 2) uniform usubpassInputMS subD6; // ERROR, not this stage + +out vec4 color; + +layout(constant_id = 17) const ivec2 arraySizes = ivec2(12,13); // ERROR, not a scalar +layout(constant_id = 17) uniform sampler2D s2D; // ERROR, not the right type or qualifier +layout(constant_id = 4000) const int c1 = 12; // ERROR, too big +layout(constant_id = 4) const float c2[2] = float[2](1.0, 2.0); // ERROR, not a scalar +layout(constant_id = 4) in; + +void main() +{ + color = subpassLoad(subD1); // ERROR, no such function in this stage +} + +layout(binding = 0) uniform atomic_uint aui; // ERROR, no atomics in Vulkan +layout(shared) uniform ub1n { int a; } ub1i; // ERROR, no shared +layout(packed) uniform ub2n { int a; } ub2i; // ERROR, no packed + +layout(constant_id=222) const int arraySize = 4; + +void foo() +{ + int a1[arraySize]; + int a2[arraySize] = a1; // ERROR, can't use in initializer + + a1 = a2; // ERROR, can't assign, even though the same type + if (a1 == a2) // ERROR, can't compare either + ++color; +} + +layout(set = 1, push_constant) uniform badpc { int a; } badpcI; // ERROR, no descriptor set with push_constant + +#ifndef VULKAN +#error VULKAN should be defined +#endif + +#if VULKAN != 100 +#error VULKAN should be 100 +#endif + +float AofA0[2][arraySize]; // ERROR, only outer dimension +float AofA1[arraySize][arraySize]; // ERROR, only outer dimension +float AofA2[arraySize][2 + arraySize]; // ERROR, only outer dimension +float AofA3[arraySize][2]; + +out ban1 { // ERROR, only outer dimension + float f; +} bai1[2][arraySize]; + +out ban2 { + float f; +} bai2[arraySize][2]; + +layout(binding = 3000) uniform sampler2D s3000; +layout(binding = 3001) uniform b3001 { int a; }; +layout(location = 10) in vec4 in1; +layout(location = 10) in vec4 in2; // ERROR, no location aliasing diff --git a/deps/glslang/glslang/Test/whileLoop.frag b/deps/glslang/glslang/Test/whileLoop.frag new file mode 100644 index 0000000000..a9541f9179 --- /dev/null +++ b/deps/glslang/glslang/Test/whileLoop.frag @@ -0,0 +1,16 @@ +#version 110 + +uniform vec4 bigColor; +varying vec4 BaseColor; +uniform float d; + +void main() +{ + vec4 color = BaseColor; + + while (color.x < d) { + color += bigColor; + } + + gl_FragColor = color; +} diff --git a/deps/glslang/glslang/glslang/CMakeLists.txt b/deps/glslang/glslang/glslang/CMakeLists.txt index b332b39504..1efde2edd4 100644 --- a/deps/glslang/glslang/glslang/CMakeLists.txt +++ b/deps/glslang/glslang/glslang/CMakeLists.txt @@ -90,6 +90,10 @@ if(WIN32 AND BUILD_SHARED_LIBS) set_target_properties(glslang PROPERTIES PREFIX "") endif() +if(ENABLE_HLSL) + target_link_libraries(glslang HLSL) +endif() + if(WIN32) source_group("Public" REGULAR_EXPRESSION "Public/*") source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*") diff --git a/deps/glslang/glslang/glslang/Include/intermediate.h b/deps/glslang/glslang/glslang/Include/intermediate.h index 4f3e101129..19eb7aa876 100755 --- a/deps/glslang/glslang/glslang/Include/intermediate.h +++ b/deps/glslang/glslang/glslang/Include/intermediate.h @@ -1158,6 +1158,9 @@ public: // it is essential to use "symbol = sym" to assign to symbol TIntermSymbol(int i, const TString& n, const TType& t) : TIntermTyped(t), id(i), +#ifdef ENABLE_HLSL + flattenSubset(-1), +#endif constSubtree(nullptr) { name = n; } virtual int getId() const { return id; } @@ -1169,6 +1172,10 @@ public: const TConstUnionArray& getConstArray() const { return constArray; } void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } TIntermTyped* getConstSubtree() const { return constSubtree; } +#ifdef ENABLE_HLSL + void setFlattenSubset(int subset) { flattenSubset = subset; } + int getFlattenSubset() const { return flattenSubset; } // -1 means full object +#endif // This is meant for cases where a node has already been constructed, and // later on, it becomes necessary to switch to a different symbol. @@ -1176,6 +1183,9 @@ public: protected: int id; // the unique id of the symbol this node represents +#ifdef ENABLE_HLSL + int flattenSubset; // how deeply the flattened object rooted at id has been dereferenced +#endif TString name; // the name of the symbol this node represents TConstUnionArray constArray; // if the symbol is a front-end compile-time constant, this is its value TIntermTyped* constSubtree; diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp b/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp index 723951d3d8..8f9d0f7212 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp @@ -50,6 +50,12 @@ #include "Scan.h" #include "ScanContext.h" +#ifdef ENABLE_HLSL +#include "../../hlsl/hlslParseHelper.h" +#include "../../hlsl/hlslParseables.h" +#include "../../hlsl/hlslScanContext.h" +#endif + #include "../Include/ShHandle.h" #include "../../OGLCompilersDLL/InitializeDll.h" @@ -74,6 +80,9 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc { switch (source) { case EShSourceGlsl: return new TBuiltIns(); // GLSL builtIns +#ifdef ENABLE_HLSL + case EShSourceHlsl: return new TBuiltInParseablesHlsl(); // HLSL intrinsics +#endif default: infoSink.info.message(EPrefixInternalError, "Unable to determine source language"); @@ -96,6 +105,11 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& return new TParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, language, infoSink, forwardCompatible, messages, &entryPoint); } +#ifdef ENABLE_HLSL + case EShSourceHlsl: + return new HlslParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, + language, infoSink, sourceEntryPointName.c_str(), forwardCompatible, messages); +#endif default: infoSink.info.message(EPrefixInternalError, "Unable to determine source language"); return nullptr; @@ -1192,6 +1206,9 @@ int ShInitialize() PerProcessGPA = new TPoolAllocator(); glslang::TScanContext::fillInKeywordMap(); +#ifdef ENABLE_HLSL + glslang::HlslScanContext::fillInKeywordMap(); +#endif return 1; } @@ -1291,6 +1308,9 @@ int __fastcall ShFinalize() } glslang::TScanContext::deleteKeywordMap(); +#ifdef ENABLE_HLSL + glslang::HlslScanContext::deleteKeywordMap(); +#endif DetachProcess(); return 1; diff --git a/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h b/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h index df65f6c1fa..b2aaa39955 100755 --- a/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h +++ b/deps/glslang/glslang/glslang/MachineIndependent/parseVersions.h @@ -119,6 +119,7 @@ public: bool relaxedErrors() const { return (messages & EShMsgRelaxedErrors) != 0; } bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; } bool isReadingHLSL() const { return (messages & EShMsgReadHlsl) == EShMsgReadHlsl; } + bool hlslEnable16BitTypes() const { return (messages & EShMsgHlslEnable16BitTypes) != 0; } TInfoSink& infoSink; diff --git a/deps/glslang/glslang/gtests/AST.FromFile.cpp b/deps/glslang/glslang/gtests/AST.FromFile.cpp new file mode 100644 index 0000000000..b89fc51564 --- /dev/null +++ b/deps/glslang/glslang/gtests/AST.FromFile.cpp @@ -0,0 +1,250 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +using CompileToAstTest = GlslangTest<::testing::TestWithParam>; + +#ifdef NV_EXTENSIONS +using CompileToAstTestNV = GlslangTest<::testing::TestWithParam>; +#endif + +TEST_P(CompileToAstTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, + Target::AST); +} + +#ifdef NV_EXTENSIONS +// Compiling GLSL to SPIR-V under OpenGL semantics (NV extensions enabled). +TEST_P(CompileToAstTestNV, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, + Target::AST); +} +#endif + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, CompileToAstTest, + ::testing::ValuesIn(std::vector({ + "sample.frag", + "sample.vert", + "decls.frag", + "specExamples.frag", + "specExamples.vert", + "versionsClean.frag", + "versionsClean.vert", + "versionsErrors.frag", + "versionsErrors.vert", + "100.frag", + "100samplerExternal.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", + "cppIntMinOverNegativeOne.frag", + "cppNest.vert", + "cppBad.vert", + "cppBad2.vert", + "cppComplexExpr.vert", + "cppDeepNest.frag", + "cppPassMacroName.frag", + "cppRelaxSkipTokensErrors.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", + "300samplerExternal.frag", + "310.comp", + "310.vert", + "310.geom", + "310.frag", + "310.tesc", + "310.tese", + "310implicitSizeArrayError.vert", + "310AofA.vert", + "310runtimeArray.vert", + "320.comp", + "320.vert", + "320.geom", + "320.frag", + "320.tesc", + "320.tese", + "330.frag", + "330comp.frag", + "constErrors.frag", + "constFold.frag", + "constFoldIntMin.frag", + "errors.frag", + "forwardRef.frag", + "uint.frag", + "switch.frag", + "tokenLength.vert", + "100Limits.vert", + "100scope.vert", + "110scope.vert", + "300scope.vert", + "400.frag", + "400.vert", + "410.vert", + "420.comp", + "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", + "435.vert", + "440.vert", + "440.frag", + "450.vert", + "450.geom", + "450.tesc", + "450.tese", + "450.frag", + "450.comp", + "460.frag", + "460.vert", + "dce.frag", + "atomic_uint.frag", + "implicitInnerAtomicUint.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", + "mixedArrayDecls.frag", + "nonuniform.frag", + "newTexture.frag", + "Operations.frag", + "overlongLiteral.frag", + "prepost.frag", + "runtimeArray.vert", + "simpleFunctionCall.frag", + "stringToDouble.vert", + "structAssignment.frag", + "structDeref.frag", + "structure.frag", + "swizzle.frag", + "invalidSwizzle.vert", + "syntaxError.frag", + "test.frag", + "texture.frag", + "tokenPaste.vert", + "types.frag", + "uniformArray.frag", + "variableArrayIndex.frag", + "varyingArray.frag", + "varyingArrayIndirect.frag", + "voidFunction.frag", + "whileLoop.frag", + "nonVulkan.frag", + "negativeArraySize.comp", + "precise.tesc", + "precise_struct_block.vert", + "maxClipDistances.vert", + "findFunction.frag", + })), + FileNameAsCustomTestSuffix +); + +#ifdef NV_EXTENSIONS +INSTANTIATE_TEST_CASE_P( + Glsl, CompileToAstTestNV, + ::testing::ValuesIn(std::vector({ + "nvShaderNoperspectiveInterpolation.frag", + })), + FileNameAsCustomTestSuffix +); +#endif +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/BuiltInResource.FromFile.cpp b/deps/glslang/glslang/gtests/BuiltInResource.FromFile.cpp new file mode 100644 index 0000000000..da81fe98c3 --- /dev/null +++ b/deps/glslang/glslang/gtests/BuiltInResource.FromFile.cpp @@ -0,0 +1,57 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include + +#include "StandAlone/ResourceLimits.h" +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +using DefaultResourceTest = GlslangTest<::testing::Test>; + +TEST_F(DefaultResourceTest, FromFile) +{ + const std::string path = GlobalTestSettings.testRoot + "/baseResults/test.conf"; + std::string expectedConfig; + tryLoadFile(path, "expected resource limit", &expectedConfig); + const std::string realConfig = glslang::GetDefaultTBuiltInResourceString(); + ASSERT_EQ(expectedConfig, realConfig); +} + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/CMakeLists.txt b/deps/glslang/glslang/gtests/CMakeLists.txt new file mode 100644 index 0000000000..15b73f4bde --- /dev/null +++ b/deps/glslang/glslang/gtests/CMakeLists.txt @@ -0,0 +1,59 @@ +if(BUILD_TESTING) + if(TARGET gmock) + message(STATUS "Google Mock found - building tests") + + set(TEST_SOURCES + # Framework related source files + ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h + ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h + + # Test related source files + ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp + + # -- Remapper tests + ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp) + + add_executable(glslangtests ${TEST_SOURCES}) + set_property(TARGET glslangtests PROPERTY FOLDER tests) + glslang_set_link_args(glslangtests) + if(ENABLE_GLSLANG_INSTALL) + install(TARGETS glslangtests + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif(ENABLE_GLSLANG_INSTALL) + + set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test") + # Supply a default test root directory, so that manual testing + # doesn't have to specify the --test-root option in the normal + # case that you want to use the tests from the same source tree. + target_compile_definitions(glslangtests + PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}") + target_include_directories(glslangtests PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR} + ${gmock_SOURCE_DIR}/include + ${gtest_SOURCE_DIR}/include) + + set(LIBRARIES + SPVRemapper glslang OSDependent OGLCompiler glslang + SPIRV glslang-default-resource-limits) + if(ENABLE_HLSL) + set(LIBRARIES ${LIBRARIES} HLSL) + endif(ENABLE_HLSL) + target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock) + + add_test(NAME glslang-gtests + COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}") + endif() +endif() diff --git a/deps/glslang/glslang/gtests/Config.FromFile.cpp b/deps/glslang/glslang/gtests/Config.FromFile.cpp new file mode 100644 index 0000000000..f3a27724d1 --- /dev/null +++ b/deps/glslang/glslang/gtests/Config.FromFile.cpp @@ -0,0 +1,107 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include "StandAlone/ResourceLimits.h" +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +struct TestCaseSpec { + std::string input; + std::string config; + std::string output; + EShMessages controls; +}; + +using ConfigTest = GlslangTest<::testing::TestWithParam>; + +TEST_P(ConfigTest, FromFile) +{ + TestCaseSpec testCase = GetParam(); + GlslangResult result; + + // Get the contents for input shader and limit configurations. + std::string shaderContents, configContents; + tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.input, "input", &shaderContents); + tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.config, "limits config", &configContents); + + // Decode limit configurations. + TBuiltInResource resources = {}; + { + const size_t len = configContents.size(); + char* configChars = new char[len + 1]; + memcpy(configChars, configContents.data(), len); + configChars[len] = 0; + glslang::DecodeResourceLimits(&resources, configChars); + delete[] configChars; + } + + // Compile the shader. + glslang::TShader shader(GetShaderStage(GetSuffix(testCase.input))); + compile(&shader, shaderContents, "", testCase.controls, &resources); + result.shaderResults.push_back( + {testCase.input, shader.getInfoLog(), shader.getInfoDebugLog()}); + + // Link the shader. + glslang::TProgram program; + program.addShader(&shader); + program.link(testCase.controls); + result.linkingOutput = program.getInfoLog(); + result.linkingError = program.getInfoDebugLog(); + + std::ostringstream stream; + outputResultToStream(&stream, result, testCase.controls); + + // Check with expected results. + const std::string expectedOutputFname = + GlobalTestSettings.testRoot + "/baseResults/" + testCase.output; + std::string expectedOutput; + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, ConfigTest, + ::testing::ValuesIn(std::vector({ + {"specExamples.vert", "baseResults/test.conf", "specExamplesConf.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, + {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgCascadingErrors}, + })), +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/HexFloat.cpp b/deps/glslang/glslang/gtests/HexFloat.cpp new file mode 100644 index 0000000000..ddbee1f464 --- /dev/null +++ b/deps/glslang/glslang/gtests/HexFloat.cpp @@ -0,0 +1,1231 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include +#include +#include +#include +#include + +#include +#include "SPIRV/hex_float.h" + +namespace { +using ::testing::Eq; +using spvutils::BitwiseCast; +using spvutils::Float16; +using spvutils::FloatProxy; +using spvutils::HexFloat; +using spvutils::ParseNormalFloat; + +// In this file "encode" means converting a number into a string, +// and "decode" means converting a string into a number. + +using HexFloatTest = + ::testing::TestWithParam, std::string>>; +using DecodeHexFloatTest = + ::testing::TestWithParam>>; +using HexDoubleTest = + ::testing::TestWithParam, std::string>>; +using DecodeHexDoubleTest = + ::testing::TestWithParam>>; + +// Hex-encodes a float value. +template +std::string EncodeViaHexFloat(const T& value) { + std::stringstream ss; + ss << spvutils::HexFloat(value); + return ss.str(); +} + +// The following two tests can't be DRY because they take different parameter +// types. + +TEST_P(HexFloatTest, EncodeCorrectly) { + EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); +} + +TEST_P(HexDoubleTest, EncodeCorrectly) { + EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); +} + +// Decodes a hex-float string. +template +FloatProxy Decode(const std::string& str) { + spvutils::HexFloat> decoded(0.f); + EXPECT_TRUE((std::stringstream(str) >> decoded).eof()); + return decoded.value(); +} + +TEST_P(HexFloatTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); +} + +TEST_P(HexDoubleTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); +} + +INSTANTIATE_TEST_CASE_P( + Float32Tests, HexFloatTest, + ::testing::ValuesIn(std::vector, std::string>>({ + {0.f, "0x0p+0"}, + {1.f, "0x1p+0"}, + {2.f, "0x1p+1"}, + {3.f, "0x1.8p+1"}, + {0.5f, "0x1p-1"}, + {0.25f, "0x1p-2"}, + {0.75f, "0x1.8p-1"}, + {-0.f, "-0x0p+0"}, + {-1.f, "-0x1p+0"}, + {-0.5f, "-0x1p-1"}, + {-0.25f, "-0x1p-2"}, + {-0.75f, "-0x1.8p-1"}, + + // Larger numbers + {512.f, "0x1p+9"}, + {-512.f, "-0x1p+9"}, + {1024.f, "0x1p+10"}, + {-1024.f, "-0x1p+10"}, + {1024.f + 8.f, "0x1.02p+10"}, + {-1024.f - 8.f, "-0x1.02p+10"}, + + // Small numbers + {1.0f / 512.f, "0x1p-9"}, + {1.0f / -512.f, "-0x1p-9"}, + {1.0f / 1024.f, "0x1p-10"}, + {1.0f / -1024.f, "-0x1p-10"}, + {1.0f / 1024.f + 1.0f / 8.f, "0x1.02p-3"}, + {1.0f / -1024.f - 1.0f / 8.f, "-0x1.02p-3"}, + + // lowest non-denorm + {float(ldexp(1.0f, -126)), "0x1p-126"}, + {float(ldexp(-1.0f, -126)), "-0x1p-126"}, + + // Denormalized values + {float(ldexp(1.0f, -127)), "0x1p-127"}, + {float(ldexp(1.0f, -127) / 2.0f), "0x1p-128"}, + {float(ldexp(1.0f, -127) / 4.0f), "0x1p-129"}, + {float(ldexp(1.0f, -127) / 8.0f), "0x1p-130"}, + {float(ldexp(-1.0f, -127)), "-0x1p-127"}, + {float(ldexp(-1.0f, -127) / 2.0f), "-0x1p-128"}, + {float(ldexp(-1.0f, -127) / 4.0f), "-0x1p-129"}, + {float(ldexp(-1.0f, -127) / 8.0f), "-0x1p-130"}, + + {float(ldexp(1.0, -127) + (ldexp(1.0, -127) / 2.0f)), "0x1.8p-127"}, + {float(ldexp(1.0, -127) / 2.0 + (ldexp(1.0, -127) / 4.0f)), + "0x1.8p-128"}, + + })),); + +INSTANTIATE_TEST_CASE_P( + Float32NanTests, HexFloatTest, + ::testing::ValuesIn(std::vector, std::string>>({ + // Various NAN and INF cases + {uint32_t(0xFF800000), "-0x1p+128"}, // -inf + {uint32_t(0x7F800000), "0x1p+128"}, // inf + {uint32_t(0xFFC00000), "-0x1.8p+128"}, // -nan + {uint32_t(0xFF800100), "-0x1.0002p+128"}, // -nan + {uint32_t(0xFF800c00), "-0x1.0018p+128"}, // -nan + {uint32_t(0xFF80F000), "-0x1.01ep+128"}, // -nan + {uint32_t(0xFFFFFFFF), "-0x1.fffffep+128"}, // -nan + {uint32_t(0x7FC00000), "0x1.8p+128"}, // +nan + {uint32_t(0x7F800100), "0x1.0002p+128"}, // +nan + {uint32_t(0x7f800c00), "0x1.0018p+128"}, // +nan + {uint32_t(0x7F80F000), "0x1.01ep+128"}, // +nan + {uint32_t(0x7FFFFFFF), "0x1.fffffep+128"}, // +nan + })),); + +INSTANTIATE_TEST_CASE_P( + Float64Tests, HexDoubleTest, + ::testing::ValuesIn( + std::vector, std::string>>({ + {0., "0x0p+0"}, + {1., "0x1p+0"}, + {2., "0x1p+1"}, + {3., "0x1.8p+1"}, + {0.5, "0x1p-1"}, + {0.25, "0x1p-2"}, + {0.75, "0x1.8p-1"}, + {-0., "-0x0p+0"}, + {-1., "-0x1p+0"}, + {-0.5, "-0x1p-1"}, + {-0.25, "-0x1p-2"}, + {-0.75, "-0x1.8p-1"}, + + // Larger numbers + {512., "0x1p+9"}, + {-512., "-0x1p+9"}, + {1024., "0x1p+10"}, + {-1024., "-0x1p+10"}, + {1024. + 8., "0x1.02p+10"}, + {-1024. - 8., "-0x1.02p+10"}, + + // Large outside the range of normal floats + {ldexp(1.0, 128), "0x1p+128"}, + {ldexp(1.0, 129), "0x1p+129"}, + {ldexp(-1.0, 128), "-0x1p+128"}, + {ldexp(-1.0, 129), "-0x1p+129"}, + {ldexp(1.0, 128) + ldexp(1.0, 90), "0x1.0000000004p+128"}, + {ldexp(1.0, 129) + ldexp(1.0, 120), "0x1.008p+129"}, + {ldexp(-1.0, 128) + ldexp(1.0, 90), "-0x1.fffffffff8p+127"}, + {ldexp(-1.0, 129) + ldexp(1.0, 120), "-0x1.ffp+128"}, + + // Small numbers + {1.0 / 512., "0x1p-9"}, + {1.0 / -512., "-0x1p-9"}, + {1.0 / 1024., "0x1p-10"}, + {1.0 / -1024., "-0x1p-10"}, + {1.0 / 1024. + 1.0 / 8., "0x1.02p-3"}, + {1.0 / -1024. - 1.0 / 8., "-0x1.02p-3"}, + + // Small outside the range of normal floats + {ldexp(1.0, -128), "0x1p-128"}, + {ldexp(1.0, -129), "0x1p-129"}, + {ldexp(-1.0, -128), "-0x1p-128"}, + {ldexp(-1.0, -129), "-0x1p-129"}, + {ldexp(1.0, -128) + ldexp(1.0, -90), "0x1.0000000004p-90"}, + {ldexp(1.0, -129) + ldexp(1.0, -120), "0x1.008p-120"}, + {ldexp(-1.0, -128) + ldexp(1.0, -90), "0x1.fffffffff8p-91"}, + {ldexp(-1.0, -129) + ldexp(1.0, -120), "0x1.ffp-121"}, + + // lowest non-denorm + {ldexp(1.0, -1022), "0x1p-1022"}, + {ldexp(-1.0, -1022), "-0x1p-1022"}, + + // Denormalized values + {ldexp(1.0, -1023), "0x1p-1023"}, + {ldexp(1.0, -1023) / 2.0, "0x1p-1024"}, + {ldexp(1.0, -1023) / 4.0, "0x1p-1025"}, + {ldexp(1.0, -1023) / 8.0, "0x1p-1026"}, + {ldexp(-1.0, -1024), "-0x1p-1024"}, + {ldexp(-1.0, -1024) / 2.0, "-0x1p-1025"}, + {ldexp(-1.0, -1024) / 4.0, "-0x1p-1026"}, + {ldexp(-1.0, -1024) / 8.0, "-0x1p-1027"}, + + {ldexp(1.0, -1023) + (ldexp(1.0, -1023) / 2.0), "0x1.8p-1023"}, + {ldexp(1.0, -1023) / 2.0 + (ldexp(1.0, -1023) / 4.0), + "0x1.8p-1024"}, + + })),); + +INSTANTIATE_TEST_CASE_P( + Float64NanTests, HexDoubleTest, + ::testing::ValuesIn(std::vector< + std::pair, std::string>>({ + // Various NAN and INF cases + {uint64_t(0xFFF0000000000000LL), "-0x1p+1024"}, //-inf + {uint64_t(0x7FF0000000000000LL), "0x1p+1024"}, //+inf + {uint64_t(0xFFF8000000000000LL), "-0x1.8p+1024"}, // -nan + {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, // -nan + {uint64_t(0xFFF0000000000001LL), "-0x1.0000000000001p+1024"}, // -nan + {uint64_t(0xFFF0000300000000LL), "-0x1.00003p+1024"}, // -nan + {uint64_t(0xFFFFFFFFFFFFFFFFLL), "-0x1.fffffffffffffp+1024"}, // -nan + {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, // +nan + {uint64_t(0x7FF0F00000000000LL), "0x1.0fp+1024"}, // +nan + {uint64_t(0x7FF0000000000001LL), "0x1.0000000000001p+1024"}, // -nan + {uint64_t(0x7FF0000300000000LL), "0x1.00003p+1024"}, // -nan + {uint64_t(0x7FFFFFFFFFFFFFFFLL), "0x1.fffffffffffffp+1024"}, // -nan + })),); + +TEST(HexFloatStreamTest, OperatorLeftShiftPreservesFloatAndFill) { + std::stringstream s; + s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " + << FloatProxy(uint32_t(0xFF800100)) << " " << std::setw(4) << 9; + EXPECT_THAT(s.str(), Eq(std::string("xx10 -0x1.0002p+128 xx11"))); +} + +TEST(HexDoubleStreamTest, OperatorLeftShiftPreservesFloatAndFill) { + std::stringstream s; + s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " + << FloatProxy(uint64_t(0x7FF0F00000000000LL)) << " " << std::setw(4) + << 9; + EXPECT_THAT(s.str(), Eq(std::string("xx10 0x1.0fp+1024 xx11"))); +} + +TEST_P(DecodeHexFloatTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); +} + +TEST_P(DecodeHexDoubleTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); +} + +INSTANTIATE_TEST_CASE_P( + Float32DecodeTests, DecodeHexFloatTest, + ::testing::ValuesIn(std::vector>>({ + {"0x0p+000", 0.f}, + {"0x0p0", 0.f}, + {"0x0p-0", 0.f}, + + // flush to zero cases + {"0x1p-500", 0.f}, // Exponent underflows. + {"-0x1p-500", -0.f}, + {"0x0.00000000001p-126", 0.f}, // Fraction causes underflow. + {"-0x0.0000000001p-127", -0.f}, + {"-0x0.01p-142", -0.f}, // Fraction causes additional underflow. + {"0x0.01p-142", 0.f}, + + // Some floats that do not encode the same way as they decode. + {"0x2p+0", 2.f}, + {"0xFFp+0", 255.f}, + {"0x0.8p+0", 0.5f}, + {"0x0.4p+0", 0.25f}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float32DecodeInfTests, DecodeHexFloatTest, + ::testing::ValuesIn(std::vector>>({ + // inf cases + {"-0x1p+128", uint32_t(0xFF800000)}, // -inf + {"0x32p+127", uint32_t(0x7F800000)}, // inf + {"0x32p+500", uint32_t(0x7F800000)}, // inf + {"-0x32p+127", uint32_t(0xFF800000)}, // -inf + })),); + +INSTANTIATE_TEST_CASE_P( + Float64DecodeTests, DecodeHexDoubleTest, + ::testing::ValuesIn( + std::vector>>({ + {"0x0p+000", 0.}, + {"0x0p0", 0.}, + {"0x0p-0", 0.}, + + // flush to zero cases + {"0x1p-5000", 0.}, // Exponent underflows. + {"-0x1p-5000", -0.}, + {"0x0.0000000000000001p-1023", 0.}, // Fraction causes underflow. + {"-0x0.000000000000001p-1024", -0.}, + {"-0x0.01p-1090", -0.f}, // Fraction causes additional underflow. + {"0x0.01p-1090", 0.}, + + // Some floats that do not encode the same way as they decode. + {"0x2p+0", 2.}, + {"0xFFp+0", 255.}, + {"0x0.8p+0", 0.5}, + {"0x0.4p+0", 0.25}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float64DecodeInfTests, DecodeHexDoubleTest, + ::testing::ValuesIn( + std::vector>>({ + // inf cases + {"-0x1p+1024", uint64_t(0xFFF0000000000000)}, // -inf + {"0x32p+1023", uint64_t(0x7FF0000000000000)}, // inf + {"0x32p+5000", uint64_t(0x7FF0000000000000)}, // inf + {"-0x32p+1023", uint64_t(0xFFF0000000000000)}, // -inf + })),); + +TEST(FloatProxy, ValidConversion) { + EXPECT_THAT(FloatProxy(1.f).getAsFloat(), Eq(1.0f)); + EXPECT_THAT(FloatProxy(32.f).getAsFloat(), Eq(32.0f)); + EXPECT_THAT(FloatProxy(-1.f).getAsFloat(), Eq(-1.0f)); + EXPECT_THAT(FloatProxy(0.f).getAsFloat(), Eq(0.0f)); + EXPECT_THAT(FloatProxy(-0.f).getAsFloat(), Eq(-0.0f)); + EXPECT_THAT(FloatProxy(1.2e32f).getAsFloat(), Eq(1.2e32f)); + + EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0xFF800000)).getAsFloat())); + EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0x7F800000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFC00000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800100)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800c00)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF80F000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFFFFFFF)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FC00000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F800100)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7f800c00)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F80F000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FFFFFFF)).getAsFloat())); + + EXPECT_THAT(FloatProxy(uint32_t(0xFF800000)).data(), Eq(0xFF800000u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7F800000)).data(), Eq(0x7F800000u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFFC00000)).data(), Eq(0xFFC00000u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFF800100)).data(), Eq(0xFF800100u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFF800c00)).data(), Eq(0xFF800c00u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFF80F000)).data(), Eq(0xFF80F000u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFFFFFFFF)).data(), Eq(0xFFFFFFFFu)); + EXPECT_THAT(FloatProxy(uint32_t(0x7FC00000)).data(), Eq(0x7FC00000u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7F800100)).data(), Eq(0x7F800100u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7f800c00)).data(), Eq(0x7f800c00u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7F80F000)).data(), Eq(0x7F80F000u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7FFFFFFF)).data(), Eq(0x7FFFFFFFu)); +} + +TEST(FloatProxy, Nan) { + EXPECT_TRUE(FloatProxy(uint32_t(0xFFC00000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFF800100)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFF800c00)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFF80F000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFFFFFFFF)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7FC00000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7F800100)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7f800c00)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7F80F000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7FFFFFFF)).isNan()); +} + +TEST(FloatProxy, Negation) { + EXPECT_THAT((-FloatProxy(1.f)).getAsFloat(), Eq(-1.0f)); + EXPECT_THAT((-FloatProxy(0.f)).getAsFloat(), Eq(-0.0f)); + + EXPECT_THAT((-FloatProxy(-1.f)).getAsFloat(), Eq(1.0f)); + EXPECT_THAT((-FloatProxy(-0.f)).getAsFloat(), Eq(0.0f)); + + EXPECT_THAT((-FloatProxy(32.f)).getAsFloat(), Eq(-32.0f)); + EXPECT_THAT((-FloatProxy(-32.f)).getAsFloat(), Eq(32.0f)); + + EXPECT_THAT((-FloatProxy(1.2e32f)).getAsFloat(), Eq(-1.2e32f)); + EXPECT_THAT((-FloatProxy(-1.2e32f)).getAsFloat(), Eq(1.2e32f)); + + EXPECT_THAT( + (-FloatProxy(std::numeric_limits::infinity())).getAsFloat(), + Eq(-std::numeric_limits::infinity())); + EXPECT_THAT((-FloatProxy(-std::numeric_limits::infinity())) + .getAsFloat(), + Eq(std::numeric_limits::infinity())); +} + +// Test conversion of FloatProxy values to strings. +// +// In previous cases, we always wrapped the FloatProxy value in a HexFloat +// before conversion to a string. In the following cases, the FloatProxy +// decides for itself whether to print as a regular number or as a hex float. + +using FloatProxyFloatTest = + ::testing::TestWithParam, std::string>>; +using FloatProxyDoubleTest = + ::testing::TestWithParam, std::string>>; + +// Converts a float value to a string via a FloatProxy. +template +std::string EncodeViaFloatProxy(const T& value) { + std::stringstream ss; + ss << value; + return ss.str(); +} + +// Converts a floating point string so that the exponent prefix +// is 'e', and the exponent value does not have leading zeros. +// The Microsoft runtime library likes to write things like "2.5E+010". +// Convert that to "2.5e+10". +// We don't care what happens to strings that are not floating point +// strings. +std::string NormalizeExponentInFloatString(std::string in) { + std::string result; + // Reserve one spot for the terminating null, even when the sscanf fails. + std::vector prefix(in.size() + 1); + char e; + char plus_or_minus; + int exponent; // in base 10 + if ((4 == std::sscanf(in.c_str(), "%[-+.0123456789]%c%c%d", prefix.data(), &e, + &plus_or_minus, &exponent)) && + (e == 'e' || e == 'E') && + (plus_or_minus == '-' || plus_or_minus == '+')) { + // It looks like a floating point value with exponent. + std::stringstream out; + out << prefix.data() << 'e' << plus_or_minus << exponent; + result = out.str(); + } else { + result = in; + } + return result; +} + +TEST(NormalizeFloat, Sample) { + EXPECT_THAT(NormalizeExponentInFloatString(""), Eq("")); + EXPECT_THAT(NormalizeExponentInFloatString("1e-12"), Eq("1e-12")); + EXPECT_THAT(NormalizeExponentInFloatString("1E+14"), Eq("1e+14")); + EXPECT_THAT(NormalizeExponentInFloatString("1e-0012"), Eq("1e-12")); + EXPECT_THAT(NormalizeExponentInFloatString("1.263E+014"), Eq("1.263e+14")); +} + +// The following two tests can't be DRY because they take different parameter +// types. +TEST_P(FloatProxyFloatTest, EncodeCorrectly) { + EXPECT_THAT( + NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), + Eq(GetParam().second)); +} + +TEST_P(FloatProxyDoubleTest, EncodeCorrectly) { + EXPECT_THAT( + NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), + Eq(GetParam().second)); +} + +INSTANTIATE_TEST_CASE_P( + Float32Tests, FloatProxyFloatTest, + ::testing::ValuesIn(std::vector, std::string>>({ + // Zero + {0.f, "0"}, + // Normal numbers + {1.f, "1"}, + {-0.25f, "-0.25"}, + {1000.0f, "1000"}, + + // Still normal numbers, but with large magnitude exponents. + {float(ldexp(1.f, 126)), "8.50706e+37"}, + {float(ldexp(-1.f, -126)), "-1.17549e-38"}, + + // denormalized values are printed as hex floats. + {float(ldexp(1.0f, -127)), "0x1p-127"}, + {float(ldexp(1.5f, -128)), "0x1.8p-128"}, + {float(ldexp(1.25, -129)), "0x1.4p-129"}, + {float(ldexp(1.125, -130)), "0x1.2p-130"}, + {float(ldexp(-1.0f, -127)), "-0x1p-127"}, + {float(ldexp(-1.0f, -128)), "-0x1p-128"}, + {float(ldexp(-1.0f, -129)), "-0x1p-129"}, + {float(ldexp(-1.5f, -130)), "-0x1.8p-130"}, + + // NaNs + {FloatProxy(uint32_t(0xFFC00000)), "-0x1.8p+128"}, + {FloatProxy(uint32_t(0xFF800100)), "-0x1.0002p+128"}, + + {std::numeric_limits::infinity(), "0x1p+128"}, + {-std::numeric_limits::infinity(), "-0x1p+128"}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float64Tests, FloatProxyDoubleTest, + ::testing::ValuesIn( + std::vector, std::string>>({ + {0., "0"}, + {1., "1"}, + {-0.25, "-0.25"}, + {1000.0, "1000"}, + + // Large outside the range of normal floats + {ldexp(1.0, 128), "3.40282366920938e+38"}, + {ldexp(1.5, 129), "1.02084710076282e+39"}, + {ldexp(-1.0, 128), "-3.40282366920938e+38"}, + {ldexp(-1.5, 129), "-1.02084710076282e+39"}, + + // Small outside the range of normal floats + {ldexp(1.5, -129), "2.20405190779179e-39"}, + {ldexp(-1.5, -129), "-2.20405190779179e-39"}, + + // lowest non-denorm + {ldexp(1.0, -1022), "2.2250738585072e-308"}, + {ldexp(-1.0, -1022), "-2.2250738585072e-308"}, + + // Denormalized values + {ldexp(1.125, -1023), "0x1.2p-1023"}, + {ldexp(-1.375, -1024), "-0x1.6p-1024"}, + + // NaNs + {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, + {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, + + // Infinity + {std::numeric_limits::infinity(), "0x1p+1024"}, + {-std::numeric_limits::infinity(), "-0x1p+1024"}, + + })),); + +// double is used so that unbiased_exponent can be used with the output +// of ldexp directly. +int32_t unbiased_exponent(double f) { + return spvutils::HexFloat>( + static_cast(f)).getUnbiasedNormalizedExponent(); +} + +int16_t unbiased_half_exponent(uint16_t f) { + return spvutils::HexFloat>(f) + .getUnbiasedNormalizedExponent(); +} + +TEST(HexFloatOperationTest, UnbiasedExponent) { + // Float cases + EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, 0))); + EXPECT_EQ(-32, unbiased_exponent(ldexp(1.0f, -32))); + EXPECT_EQ(42, unbiased_exponent(ldexp(1.0f, 42))); + EXPECT_EQ(125, unbiased_exponent(ldexp(1.0f, 125))); + // Saturates to 128 + EXPECT_EQ(128, unbiased_exponent(ldexp(1.0f, 256))); + + EXPECT_EQ(-100, unbiased_exponent(ldexp(1.0f, -100))); + EXPECT_EQ(-127, unbiased_exponent(ldexp(1.0f, -127))); // First denorm + EXPECT_EQ(-128, unbiased_exponent(ldexp(1.0f, -128))); + EXPECT_EQ(-129, unbiased_exponent(ldexp(1.0f, -129))); + EXPECT_EQ(-140, unbiased_exponent(ldexp(1.0f, -140))); + // Smallest representable number + EXPECT_EQ(-126 - 23, unbiased_exponent(ldexp(1.0f, -126 - 23))); + // Should get rounded to 0 first. + EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, -127 - 23))); + + // Float16 cases + // The exponent is represented in the bits 0x7C00 + // The offset is -15 + EXPECT_EQ(0, unbiased_half_exponent(0x3C00)); + EXPECT_EQ(3, unbiased_half_exponent(0x4800)); + EXPECT_EQ(-1, unbiased_half_exponent(0x3800)); + EXPECT_EQ(-14, unbiased_half_exponent(0x0400)); + EXPECT_EQ(16, unbiased_half_exponent(0x7C00)); + EXPECT_EQ(10, unbiased_half_exponent(0x6400)); + + // Smallest representable number + EXPECT_EQ(-24, unbiased_half_exponent(0x0001)); +} + +// Creates a float that is the sum of 1/(2 ^ fractions[i]) for i in factions +float float_fractions(const std::vector& fractions) { + float f = 0; + for(int32_t i: fractions) { + f += std::ldexp(1.0f, -i); + } + return f; +} + +// Returns the normalized significand of a HexFloat> +// that was created by calling float_fractions with the input fractions, +// raised to the power of exp. +uint32_t normalized_significand(const std::vector& fractions, uint32_t exp) { + return spvutils::HexFloat>( + static_cast(ldexp(float_fractions(fractions), exp))) + .getNormalizedSignificand(); +} + +// Sets the bits from MSB to LSB of the significand part of a float. +// For example 0 would set the bit 23 (counting from LSB to MSB), +// and 1 would set the 22nd bit. +uint32_t bits_set(const std::vector& bits) { + const uint32_t top_bit = 1u << 22u; + uint32_t val= 0; + for(uint32_t i: bits) { + val |= top_bit >> i; + } + return val; +} + +// The same as bits_set but for a Float16 value instead of 32-bit floating +// point. +uint16_t half_bits_set(const std::vector& bits) { + const uint32_t top_bit = 1u << 9u; + uint32_t val= 0; + for(uint32_t i: bits) { + val |= top_bit >> i; + } + return static_cast(val); +} + +TEST(HexFloatOperationTest, NormalizedSignificand) { + // For normalized numbers (the following) it should be a simple matter + // of getting rid of the top implicit bit + EXPECT_EQ(bits_set({}), normalized_significand({0}, 0)); + EXPECT_EQ(bits_set({0}), normalized_significand({0, 1}, 0)); + EXPECT_EQ(bits_set({0, 1}), normalized_significand({0, 1, 2}, 0)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 0)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 32)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 126)); + + // For denormalized numbers we expect the normalized significand to + // shift as if it were normalized. This means, in practice that the + // top_most set bit will be cut off. Looks very similar to above (on purpose) + EXPECT_EQ(bits_set({}), normalized_significand({0}, -127)); + EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -128)); + EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -127)); + EXPECT_EQ(bits_set({}), normalized_significand({22}, -127)); + EXPECT_EQ(bits_set({0}), normalized_significand({21, 22}, -127)); +} + +// Returns the 32-bit floating point value created by +// calling setFromSignUnbiasedExponentAndNormalizedSignificand +// on a HexFloat> +float set_from_sign(bool negative, int32_t unbiased_exponent, + uint32_t significand, bool round_denorm_up) { + spvutils::HexFloat> f(0.f); + f.setFromSignUnbiasedExponentAndNormalizedSignificand( + negative, unbiased_exponent, significand, round_denorm_up); + return f.value().getAsFloat(); +} + +TEST(HexFloatOperationTests, + SetFromSignUnbiasedExponentAndNormalizedSignificand) { + + EXPECT_EQ(1.f, set_from_sign(false, 0, 0, false)); + + // Tests insertion of various denormalized numbers with and without round up. + EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, false)); + EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, true)); + EXPECT_EQ(0.f, set_from_sign(false, -150, 1, false)); + EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -150, 1, true)); + + EXPECT_EQ(ldexp(1.0f, -127), set_from_sign(false, -127, 0, false)); + EXPECT_EQ(ldexp(1.0f, -128), set_from_sign(false, -128, 0, false)); + EXPECT_EQ(float_fractions({0, 1, 2, 5}), + set_from_sign(false, 0, bits_set({0, 1, 4}), false)); + EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -32), + set_from_sign(false, -32, bits_set({0, 1, 4}), false)); + EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -128), + set_from_sign(false, -128, bits_set({0, 1, 4}), false)); + + // The negative cases from above. + EXPECT_EQ(-1.f, set_from_sign(true, 0, 0, false)); + EXPECT_EQ(-ldexp(1.0, -127), set_from_sign(true, -127, 0, false)); + EXPECT_EQ(-ldexp(1.0, -128), set_from_sign(true, -128, 0, false)); + EXPECT_EQ(-float_fractions({0, 1, 2, 5}), + set_from_sign(true, 0, bits_set({0, 1, 4}), false)); + EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -32), + set_from_sign(true, -32, bits_set({0, 1, 4}), false)); + EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -128), + set_from_sign(true, -128, bits_set({0, 1, 4}), false)); +} + +TEST(HexFloatOperationTests, NonRounding) { + // Rounding from 32-bit hex-float to 32-bit hex-float should be trivial, + // except in the denorm case which is a bit more complex. + using HF = spvutils::HexFloat>; + bool carry_bit = false; + + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so this should be straight-forward + for (spvutils::round_direction round : rounding) { + EXPECT_EQ(bits_set({}), HF(0.f).getRoundedNormalizedSignificand( + round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ(bits_set({0}), + HF(float_fractions({0, 1})) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ(bits_set({1, 3}), + HF(float_fractions({0, 2, 4})) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ( + bits_set({0, 1, 4}), + HF(static_cast(-ldexp(float_fractions({0, 1, 2, 5}), -128))) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ( + bits_set({0, 1, 4, 22}), + HF(static_cast(float_fractions({0, 1, 2, 5, 23}))) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + } +} + +struct RoundSignificandCase { + float source_float; + std::pair expected_results; + spvutils::round_direction round; +}; + +using HexFloatRoundTest = + ::testing::TestWithParam; + +TEST_P(HexFloatRoundTest, RoundDownToFP16) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + + HF input_value(GetParam().source_float); + bool carry_bit = false; + EXPECT_EQ(GetParam().expected_results.first, + input_value.getRoundedNormalizedSignificand( + GetParam().round, &carry_bit)); + EXPECT_EQ(carry_bit, GetParam().expected_results.second); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatRoundTest, + ::testing::ValuesIn(std::vector( + { + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToZero}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNearestEven}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNearestEven}, + + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToNearestEven}, + + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToPositiveInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + + // Carries + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToNearestEven}, + + // Cases where original number was denorm. Note: this should have no effect + // the number is pre-normalized. + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + })),); +// clang-format on + +struct UpCastSignificandCase { + uint16_t source_half; + uint32_t expected_result; +}; + +using HexFloatRoundUpSignificandTest = + ::testing::TestWithParam; +TEST_P(HexFloatRoundUpSignificandTest, Widening) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + bool carry_bit = false; + + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + carry_bit = false; + HF16 input_value(GetParam().source_half); + EXPECT_EQ( + GetParam().expected_result, + input_value.getRoundedNormalizedSignificand(round, &carry_bit)) + << std::hex << "0x" + << input_value.getRoundedNormalizedSignificand(round, &carry_bit) + << " 0x" << GetParam().expected_result; + EXPECT_FALSE(carry_bit); + } +} + +INSTANTIATE_TEST_CASE_P(F16toF32, HexFloatRoundUpSignificandTest, + // 0xFC00 of the source 16-bit hex value cover the sign and the exponent. + // They are ignored for this test. + ::testing::ValuesIn(std::vector( + { + {0x3F00, 0x600000}, + {0x0F00, 0x600000}, + {0x0F01, 0x602000}, + {0x0FFF, 0x7FE000}, + })),); + +struct DownCastTest { + float source_float; + uint16_t expected_half; + std::vector directions; +}; + +std::string get_round_text(spvutils::round_direction direction) { +#define CASE(round_direction) \ + case round_direction: \ + return #round_direction + + switch (direction) { + CASE(spvutils::kRoundToZero); + CASE(spvutils::kRoundToPositiveInfinity); + CASE(spvutils::kRoundToNegativeInfinity); + CASE(spvutils::kRoundToNearestEven); + } +#undef CASE + return ""; +} + +using HexFloatFP32To16Tests = ::testing::TestWithParam; + +TEST_P(HexFloatFP32To16Tests, NarrowingCasts) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + HF f(GetParam().source_float); + for (auto round : GetParam().directions) { + HF16 half(0); + f.castTo(half, round); + EXPECT_EQ(GetParam().expected_half, half.value().getAsFloat().get_value()) + << get_round_text(round) << " " << std::hex + << spvutils::BitwiseCast(GetParam().source_float) + << " cast to: " << half.value().getAsFloat().get_value(); + } +} + +const uint16_t positive_infinity = 0x7C00; +const uint16_t negative_infinity = 0xFC00; + +INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatFP32To16Tests, + ::testing::ValuesIn(std::vector( + { + // Exactly representable as half. + {0.f, 0x0, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-0.f, 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {1.0f, 0x3C00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-1.0f, 0xBC00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + {float_fractions({0, 1, 10}) , 0x3E01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-float_fractions({0, 1, 10}) , 0xBE01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + + // Underflow + {static_cast(ldexp(1.0f, -25)), 0x0, {spvutils::kRoundToZero, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(1.0f, -25)), 0x1, {spvutils::kRoundToPositiveInfinity}}, + {static_cast(-ldexp(1.0f, -25)), 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.0f, -25)), 0x8001, {spvutils::kRoundToNegativeInfinity}}, + {static_cast(ldexp(1.0f, -24)), 0x1, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + // Overflow + {static_cast(ldexp(1.0f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(1.0f, 18)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(1.3f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.0f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.0f, 18)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.3f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + // Transfer of Infinities + {std::numeric_limits::infinity(), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-std::numeric_limits::infinity(), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + // Nans are below because we cannot test for equality. + })),); + +struct UpCastCase{ + uint16_t source_half; + float expected_float; +}; + +using HexFloatFP16To32Tests = ::testing::TestWithParam; +TEST_P(HexFloatFP16To32Tests, WideningCasts) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + HF16 f(GetParam().source_half); + + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + HF flt(0.f); + f.castTo(flt, round); + EXPECT_EQ(GetParam().expected_float, flt.value().getAsFloat()) + << get_round_text(round) << " " << std::hex + << spvutils::BitwiseCast(GetParam().source_half) + << " cast to: " << flt.value().getAsFloat(); + } +} + +INSTANTIATE_TEST_CASE_P(F16ToF32, HexFloatFP16To32Tests, + ::testing::ValuesIn(std::vector( + { + {0x0000, 0.f}, + {0x8000, -0.f}, + {0x3C00, 1.0f}, + {0xBC00, -1.0f}, + {0x3F00, float_fractions({0, 1, 2})}, + {0xBF00, -float_fractions({0, 1, 2})}, + {0x3F01, float_fractions({0, 1, 2, 10})}, + {0xBF01, -float_fractions({0, 1, 2, 10})}, + + // denorm + {0x0001, static_cast(ldexp(1.0, -24))}, + {0x0002, static_cast(ldexp(1.0, -23))}, + {0x8001, static_cast(-ldexp(1.0, -24))}, + {0x8011, static_cast(-ldexp(1.0, -20) + -ldexp(1.0, -24))}, + + // inf + {0x7C00, std::numeric_limits::infinity()}, + {0xFC00, -std::numeric_limits::infinity()}, + })),); + +TEST(HexFloatOperationTests, NanTests) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + HF16 f16(0); + HF f(0.f); + HF(std::numeric_limits::quiet_NaN()).castTo(f16, round); + EXPECT_TRUE(f16.value().isNan()); + HF(std::numeric_limits::signaling_NaN()).castTo(f16, round); + EXPECT_TRUE(f16.value().isNan()); + + HF16(0x7C01).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0x7C11).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0xFC01).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0x7C10).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0xFF00).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + } +} + +// A test case for parsing good and bad HexFloat> literals. +template +struct FloatParseCase { + std::string literal; + bool negate_value; + bool expect_success; + HexFloat> expected_value; +}; + +using ParseNormalFloatTest = ::testing::TestWithParam>; + +TEST_P(ParseNormalFloatTest, Samples) { + std::stringstream input(GetParam().literal); + HexFloat> parsed_value(0.0f); + ParseNormalFloat(input, GetParam().negate_value, parsed_value); + EXPECT_NE(GetParam().expect_success, input.fail()) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + if (GetParam().expect_success) { + EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + } +} + +// Returns a FloatParseCase with expected failure. +template +FloatParseCase BadFloatParseCase(std::string literal, bool negate_value, + T expected_value) { + HexFloat> proxy_expected_value(expected_value); + return FloatParseCase{literal, negate_value, false, proxy_expected_value}; +} + +// Returns a FloatParseCase that should successfully parse to a given value. +template +FloatParseCase GoodFloatParseCase(std::string literal, bool negate_value, + T expected_value) { + HexFloat> proxy_expected_value(expected_value); + return FloatParseCase{literal, negate_value, true, proxy_expected_value}; +} + +INSTANTIATE_TEST_CASE_P( + FloatParse, ParseNormalFloatTest, + ::testing::ValuesIn(std::vector>{ + // Failing cases due to trivially incorrect syntax. + BadFloatParseCase("abc", false, 0.0f), + BadFloatParseCase("abc", true, 0.0f), + + // Valid cases. + GoodFloatParseCase("0", false, 0.0f), + GoodFloatParseCase("0.0", false, 0.0f), + GoodFloatParseCase("-0.0", false, -0.0f), + GoodFloatParseCase("2.0", false, 2.0f), + GoodFloatParseCase("-2.0", false, -2.0f), + GoodFloatParseCase("+2.0", false, 2.0f), + // Cases with negate_value being true. + GoodFloatParseCase("0.0", true, -0.0f), + GoodFloatParseCase("2.0", true, -2.0f), + + // When negate_value is true, we should not accept a + // leading minus or plus. + BadFloatParseCase("-0.0", true, 0.0f), + BadFloatParseCase("-2.0", true, 0.0f), + BadFloatParseCase("+0.0", true, 0.0f), + BadFloatParseCase("+2.0", true, 0.0f), + + // Overflow is an error for 32-bit float parsing. + BadFloatParseCase("1e40", false, FLT_MAX), + BadFloatParseCase("1e40", true, -FLT_MAX), + BadFloatParseCase("-1e40", false, -FLT_MAX), + // We can't have -1e40 and negate_value == true since + // that represents an original case of "--1e40" which + // is invalid. + }),); + +using ParseNormalFloat16Test = + ::testing::TestWithParam>; + +TEST_P(ParseNormalFloat16Test, Samples) { + std::stringstream input(GetParam().literal); + HexFloat> parsed_value(0); + ParseNormalFloat(input, GetParam().negate_value, parsed_value); + EXPECT_NE(GetParam().expect_success, input.fail()) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + if (GetParam().expect_success) { + EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + } +} + +INSTANTIATE_TEST_CASE_P( + Float16Parse, ParseNormalFloat16Test, + ::testing::ValuesIn(std::vector>{ + // Failing cases due to trivially incorrect syntax. + BadFloatParseCase("abc", false, uint16_t{0}), + BadFloatParseCase("abc", true, uint16_t{0}), + + // Valid cases. + GoodFloatParseCase("0", false, uint16_t{0}), + GoodFloatParseCase("0.0", false, uint16_t{0}), + GoodFloatParseCase("-0.0", false, uint16_t{0x8000}), + GoodFloatParseCase("2.0", false, uint16_t{0x4000}), + GoodFloatParseCase("-2.0", false, uint16_t{0xc000}), + GoodFloatParseCase("+2.0", false, uint16_t{0x4000}), + // Cases with negate_value being true. + GoodFloatParseCase("0.0", true, uint16_t{0x8000}), + GoodFloatParseCase("2.0", true, uint16_t{0xc000}), + + // When negate_value is true, we should not accept a leading minus or + // plus. + BadFloatParseCase("-0.0", true, uint16_t{0}), + BadFloatParseCase("-2.0", true, uint16_t{0}), + BadFloatParseCase("+0.0", true, uint16_t{0}), + BadFloatParseCase("+2.0", true, uint16_t{0}), + }),); + +// A test case for detecting infinities. +template +struct OverflowParseCase { + std::string input; + bool expect_success; + T expected_value; +}; + +using FloatProxyParseOverflowFloatTest = + ::testing::TestWithParam>; + +TEST_P(FloatProxyParseOverflowFloatTest, Sample) { + std::istringstream input(GetParam().input); + HexFloat> value(0.0f); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()); + if (GetParam().expect_success) { + EXPECT_THAT(value.value().getAsFloat(), GetParam().expected_value); + } +} + +INSTANTIATE_TEST_CASE_P( + FloatOverflow, FloatProxyParseOverflowFloatTest, + ::testing::ValuesIn(std::vector>({ + {"0", true, 0.0f}, + {"0.0", true, 0.0f}, + {"1.0", true, 1.0f}, + {"1e38", true, 1e38f}, + {"-1e38", true, -1e38f}, + {"1e40", false, FLT_MAX}, + {"-1e40", false, -FLT_MAX}, + {"1e400", false, FLT_MAX}, + {"-1e400", false, -FLT_MAX}, + })),); + +using FloatProxyParseOverflowDoubleTest = + ::testing::TestWithParam>; + +TEST_P(FloatProxyParseOverflowDoubleTest, Sample) { + std::istringstream input(GetParam().input); + HexFloat> value(0.0); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()); + if (GetParam().expect_success) { + EXPECT_THAT(value.value().getAsFloat(), Eq(GetParam().expected_value)); + } +} + +INSTANTIATE_TEST_CASE_P( + DoubleOverflow, FloatProxyParseOverflowDoubleTest, + ::testing::ValuesIn(std::vector>({ + {"0", true, 0.0}, + {"0.0", true, 0.0}, + {"1.0", true, 1.0}, + {"1e38", true, 1e38}, + {"-1e38", true, -1e38}, + {"1e40", true, 1e40}, + {"-1e40", true, -1e40}, + {"1e400", false, DBL_MAX}, + {"-1e400", false, -DBL_MAX}, + })),); + +using FloatProxyParseOverflowFloat16Test = + ::testing::TestWithParam>; + +TEST_P(FloatProxyParseOverflowFloat16Test, Sample) { + std::istringstream input(GetParam().input); + HexFloat> value(0); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " + << GetParam().input; + if (GetParam().expect_success) { + EXPECT_THAT(value.value().data(), Eq(GetParam().expected_value)) + << " literal: " << GetParam().input; + } +} + +INSTANTIATE_TEST_CASE_P( + Float16Overflow, FloatProxyParseOverflowFloat16Test, + ::testing::ValuesIn(std::vector>({ + {"0", true, uint16_t{0}}, + {"0.0", true, uint16_t{0}}, + {"1.0", true, uint16_t{0x3c00}}, + // Overflow for 16-bit float is an error, and returns max or + // lowest value. + {"1e38", false, uint16_t{0x7bff}}, + {"1e40", false, uint16_t{0x7bff}}, + {"1e400", false, uint16_t{0x7bff}}, + {"-1e38", false, uint16_t{0xfbff}}, + {"-1e40", false, uint16_t{0xfbff}}, + {"-1e400", false, uint16_t{0xfbff}}, + })),); + +TEST(FloatProxy, Max) { + EXPECT_THAT(FloatProxy::max().getAsFloat().get_value(), + Eq(uint16_t{0x7bff})); + EXPECT_THAT(FloatProxy::max().getAsFloat(), + Eq(std::numeric_limits::max())); + EXPECT_THAT(FloatProxy::max().getAsFloat(), + Eq(std::numeric_limits::max())); +} + +TEST(FloatProxy, Lowest) { + EXPECT_THAT(FloatProxy::lowest().getAsFloat().get_value(), + Eq(uint16_t{0xfbff})); + EXPECT_THAT(FloatProxy::lowest().getAsFloat(), + Eq(std::numeric_limits::lowest())); + EXPECT_THAT(FloatProxy::lowest().getAsFloat(), + Eq(std::numeric_limits::lowest())); +} + +// TODO(awoloszyn): Add fp16 tests and HexFloatTraits. +} // anonymous namespace diff --git a/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp b/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp new file mode 100644 index 0000000000..861c098837 --- /dev/null +++ b/deps/glslang/glslang/gtests/Hlsl.FromFile.cpp @@ -0,0 +1,437 @@ +// +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +struct FileNameEntryPointPair { + const char* fileName; + const char* entryPoint; +}; + +// We are using FileNameEntryPointPair objects as parameters for instantiating +// the template, so the global FileNameAsCustomTestSuffix() won't work since +// it assumes std::string as parameters. Thus, an overriding one here. +std::string FileNameAsCustomTestSuffix( + const ::testing::TestParamInfo& info) { + std::string name = info.param.fileName; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + +using HlslCompileTest = GlslangTest<::testing::TestWithParam>; +using HlslVulkan1_1CompileTest = GlslangTest<::testing::TestWithParam>; +using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam>; +using HlslLegalizeTest = GlslangTest<::testing::TestWithParam>; + +// Compiling HLSL to pre-legalized SPIR-V under Vulkan semantics. Expected +// to successfully generate both AST and SPIR-V. +TEST_P(HlslCompileTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::BothASTAndSpv, true, GetParam().entryPoint); +} + +TEST_P(HlslVulkan1_1CompileTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_1, + Target::BothASTAndSpv, true, GetParam().entryPoint); +} + +TEST_P(HlslCompileAndFlattenTest, FromFile) +{ + loadFileCompileFlattenUniformsAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, + Target::BothASTAndSpv, GetParam().entryPoint); +} + +// Compiling HLSL to legal SPIR-V under Vulkan semantics. Expected to +// successfully generate SPIR-V. +TEST_P(HlslLegalizeTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::Spv, true, GetParam().entryPoint, + "/baseLegalResults/", true); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, HlslCompileTest, + ::testing::ValuesIn(std::vector{ + {"hlsl.amend.frag", "f1"}, + {"hlsl.aliasOpaque.frag", "main"}, + {"hlsl.array.frag", "PixelShaderFunction"}, + {"hlsl.array.implicit-size.frag", "PixelShaderFunction"}, + {"hlsl.array.multidim.frag", "main"}, + {"hlsl.assoc.frag", "PixelShaderFunction"}, + {"hlsl.attribute.frag", "PixelShaderFunction"}, + {"hlsl.attribute.expression.comp", "main"}, + {"hlsl.attributeC11.frag", "main"}, + {"hlsl.attributeGlobalBuffer.frag", "main"}, + {"hlsl.basic.comp", "main"}, + {"hlsl.basic.geom", "main"}, + {"hlsl.boolConv.vert", "main"}, + {"hlsl.buffer.frag", "PixelShaderFunction"}, + {"hlsl.calculatelod.dx10.frag", "main"}, + {"hlsl.calculatelodunclamped.dx10.frag", "main"}, + {"hlsl.cast.frag", "PixelShaderFunction"}, + {"hlsl.cbuffer-identifier.vert", "main"}, + {"hlsl.charLit.vert", "main"}, + {"hlsl.clip.frag", "main"}, + {"hlsl.clipdistance-1.frag", "main"}, + {"hlsl.clipdistance-1.geom", "main"}, + {"hlsl.clipdistance-1.vert", "main"}, + {"hlsl.clipdistance-2.frag", "main"}, + {"hlsl.clipdistance-2.geom", "main"}, + {"hlsl.clipdistance-2.vert", "main"}, + {"hlsl.clipdistance-3.frag", "main"}, + {"hlsl.clipdistance-3.geom", "main"}, + {"hlsl.clipdistance-3.vert", "main"}, + {"hlsl.clipdistance-4.frag", "main"}, + {"hlsl.clipdistance-4.geom", "main"}, + {"hlsl.clipdistance-4.vert", "main"}, + {"hlsl.clipdistance-5.frag", "main"}, + {"hlsl.clipdistance-5.vert", "main"}, + {"hlsl.clipdistance-6.frag", "main"}, + {"hlsl.clipdistance-6.vert", "main"}, + {"hlsl.clipdistance-7.frag", "main"}, + {"hlsl.clipdistance-7.vert", "main"}, + {"hlsl.clipdistance-8.frag", "main"}, + {"hlsl.clipdistance-8.vert", "main"}, + {"hlsl.clipdistance-9.frag", "main"}, + {"hlsl.clipdistance-9.vert", "main"}, + {"hlsl.color.hull.tesc", "main"}, + {"hlsl.comparison.vec.frag", "main"}, + {"hlsl.conditional.frag", "PixelShaderFunction"}, + {"hlsl.constantbuffer.frag", "main"}, + {"hlsl.constructArray.vert", "main"}, + {"hlsl.constructexpr.frag", "main"}, + {"hlsl.constructimat.frag", "main"}, + {"hlsl.coverage.frag", "main"}, + {"hlsl.depthGreater.frag", "PixelShaderFunction"}, + {"hlsl.depthLess.frag", "PixelShaderFunction"}, + {"hlsl.discard.frag", "PixelShaderFunction"}, + {"hlsl.doLoop.frag", "PixelShaderFunction"}, + {"hlsl.emptystructreturn.frag", "main"}, + {"hlsl.emptystructreturn.vert", "main"}, + {"hlsl.emptystruct.init.vert", "main"}, + {"hlsl.entry-in.frag", "PixelShaderFunction"}, + {"hlsl.entry-out.frag", "PixelShaderFunction"}, + {"hlsl.fraggeom.frag", "main"}, + {"hlsl.float1.frag", "PixelShaderFunction"}, + {"hlsl.float4.frag", "PixelShaderFunction"}, + {"hlsl.flatten.return.frag", "main"}, + {"hlsl.flattenOpaque.frag", "main"}, + {"hlsl.flattenOpaqueInit.vert", "main"}, + {"hlsl.flattenOpaqueInitMix.vert", "main"}, + {"hlsl.flattenSubset.frag", "main"}, + {"hlsl.flattenSubset2.frag", "main"}, + {"hlsl.forLoop.frag", "PixelShaderFunction"}, + {"hlsl.gather.array.dx10.frag", "main"}, + {"hlsl.gather.basic.dx10.frag", "main"}, + {"hlsl.gather.basic.dx10.vert", "main"}, + {"hlsl.gather.offset.dx10.frag", "main"}, + {"hlsl.gather.offsetarray.dx10.frag", "main"}, + {"hlsl.gathercmpRGBA.offset.dx10.frag", "main"}, + {"hlsl.gatherRGBA.array.dx10.frag", "main"}, + {"hlsl.gatherRGBA.basic.dx10.frag", "main"}, + {"hlsl.gatherRGBA.offset.dx10.frag", "main"}, + {"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"}, + {"hlsl.getdimensions.dx10.frag", "main"}, + {"hlsl.getdimensions.rw.dx10.frag", "main"}, + {"hlsl.getdimensions.dx10.vert", "main"}, + {"hlsl.getsampleposition.dx10.frag", "main"}, + {"hlsl.global-const-init.frag", "main"}, + {"hlsl.gs-hs-mix.tesc", "HSMain"}, + {"hlsl.domain.1.tese", "main"}, + {"hlsl.domain.2.tese", "main"}, + {"hlsl.domain.3.tese", "main"}, + {"hlsl.function.frag", "main"}, + {"hlsl.hull.1.tesc", "main"}, + {"hlsl.hull.2.tesc", "main"}, + {"hlsl.hull.3.tesc", "main"}, + {"hlsl.hull.4.tesc", "main"}, + {"hlsl.hull.5.tesc", "main"}, + {"hlsl.hull.void.tesc", "main"}, + {"hlsl.hull.ctrlpt-1.tesc", "main"}, + {"hlsl.hull.ctrlpt-2.tesc", "main"}, + {"hlsl.groupid.comp", "main"}, + {"hlsl.identifier.sample.frag", "main"}, + {"hlsl.if.frag", "PixelShaderFunction"}, + {"hlsl.imagefetch-subvec4.comp", "main"}, + {"hlsl.implicitBool.frag", "main"}, + {"hlsl.inf.vert", "main"}, + {"hlsl.inoutquals.frag", "main"}, + {"hlsl.init.frag", "ShaderFunction"}, + {"hlsl.init2.frag", "main"}, + {"hlsl.isfinite.frag", "main"}, + {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"}, + {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, + {"hlsl.intrinsics.evalfns.frag", "main"}, + {"hlsl.intrinsics.d3dcolortoubyte4.frag", "main"}, + {"hlsl.intrinsics.double.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.f1632.frag", "main"}, + {"hlsl.intrinsics.f3216.frag", "main"}, + {"hlsl.intrinsics.frag", "main"}, + {"hlsl.intrinsic.frexp.frag", "main"}, + {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, + {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.intrinsics.promote.frag", "main"}, + {"hlsl.intrinsics.promote.down.frag", "main"}, + {"hlsl.intrinsics.promote.outputs.frag", "main"}, + {"hlsl.layout.frag", "main"}, + {"hlsl.layoutOverride.vert", "main"}, + {"hlsl.load.2dms.dx10.frag", "main"}, + {"hlsl.load.array.dx10.frag", "main"}, + {"hlsl.load.basic.dx10.frag", "main"}, + {"hlsl.load.basic.dx10.vert", "main"}, + {"hlsl.load.buffer.dx10.frag", "main"}, + {"hlsl.load.buffer.float.dx10.frag", "main"}, + {"hlsl.load.rwbuffer.dx10.frag", "main"}, + {"hlsl.load.rwtexture.dx10.frag", "main"}, + {"hlsl.load.rwtexture.array.dx10.frag", "main"}, + {"hlsl.load.offset.dx10.frag", "main"}, + {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.localStructuredBuffer.comp", "main"}, + {"hlsl.logical.binary.frag", "main"}, + {"hlsl.logical.binary.vec.frag", "main"}, + {"hlsl.logicalConvert.frag", "main"}, + {"hlsl.logical.unary.frag", "main"}, + {"hlsl.loopattr.frag", "main"}, + {"hlsl.matpack-pragma.frag", "main"}, + {"hlsl.mip.operator.frag", "main"}, + {"hlsl.mip.negative.frag", "main"}, + {"hlsl.mip.negative2.frag", "main"}, + {"hlsl.namespace.frag", "main"}, + {"hlsl.nonint-index.frag", "main"}, + {"hlsl.matNx1.frag", "main"}, + {"hlsl.matpack-1.frag", "main"}, + {"hlsl.matrixSwizzle.vert", "ShaderFunction"}, + {"hlsl.memberFunCall.frag", "main"}, + {"hlsl.mintypes.frag", "main"}, + {"hlsl.mul-truncate.frag", "main"}, + {"hlsl.multiEntry.vert", "RealEntrypoint"}, + {"hlsl.multiReturn.frag", "main"}, + {"hlsl.matrixindex.frag", "main"}, + {"hlsl.nonstaticMemberFunction.frag", "main"}, + {"hlsl.numericsuffixes.frag", "main"}, + {"hlsl.numthreads.comp", "main_aux2"}, + {"hlsl.overload.frag", "PixelShaderFunction"}, + {"hlsl.opaque-type-bug.frag", "main"}, + {"hlsl.params.default.frag", "main"}, + {"hlsl.params.default.negative.frag", "main"}, + {"hlsl.partialInit.frag", "PixelShaderFunction"}, + {"hlsl.partialFlattenLocal.vert", "main"}, + {"hlsl.PointSize.geom", "main"}, + {"hlsl.PointSize.vert", "main"}, + {"hlsl.pp.vert", "main"}, + {"hlsl.pp.line.frag", "main"}, + {"hlsl.precise.frag", "main"}, + {"hlsl.promote.atomic.frag", "main"}, + {"hlsl.promote.binary.frag", "main"}, + {"hlsl.promote.vec1.frag", "main"}, + {"hlsl.promotions.frag", "main"}, + {"hlsl.rw.atomics.frag", "main"}, + {"hlsl.rw.bracket.frag", "main"}, + {"hlsl.rw.register.frag", "main"}, + {"hlsl.rw.scalar.bracket.frag", "main"}, + {"hlsl.rw.swizzle.frag", "main"}, + {"hlsl.rw.vec2.bracket.frag", "main"}, + {"hlsl.sample.array.dx10.frag", "main"}, + {"hlsl.sample.basic.dx10.frag", "main"}, + {"hlsl.sample.offset.dx10.frag", "main"}, + {"hlsl.sample.offsetarray.dx10.frag", "main"}, + {"hlsl.samplebias.array.dx10.frag", "main"}, + {"hlsl.samplebias.basic.dx10.frag", "main"}, + {"hlsl.samplebias.offset.dx10.frag", "main"}, + {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, + {"hlsl.samplecmp.array.dx10.frag", "main"}, + {"hlsl.samplecmp.basic.dx10.frag", "main"}, + {"hlsl.samplecmp.dualmode.frag", "main"}, + {"hlsl.samplecmp.offset.dx10.frag", "main"}, + {"hlsl.samplecmp.offsetarray.dx10.frag", "main"}, + {"hlsl.samplecmp.negative.frag", "main"}, + {"hlsl.samplecmp.negative2.frag", "main"}, + {"hlsl.samplecmplevelzero.array.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.basic.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.offset.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"}, + {"hlsl.samplegrad.array.dx10.frag", "main"}, + {"hlsl.samplegrad.basic.dx10.frag", "main"}, + {"hlsl.samplegrad.basic.dx10.vert", "main"}, + {"hlsl.samplegrad.offset.dx10.frag", "main"}, + {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, + {"hlsl.samplelevel.array.dx10.frag", "main"}, + {"hlsl.samplelevel.basic.dx10.frag", "main"}, + {"hlsl.samplelevel.basic.dx10.vert", "main"}, + {"hlsl.samplelevel.offset.dx10.frag", "main"}, + {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, + {"hlsl.sample.sub-vec4.dx10.frag", "main"}, + {"hlsl.scalar-length.frag", "main"}, + {"hlsl.scalarCast.vert", "main"}, + {"hlsl.semicolons.frag", "main"}, + {"hlsl.shapeConv.frag", "main"}, + {"hlsl.shapeConvRet.frag", "main"}, + {"hlsl.self_cast.frag", "main"}, + {"hlsl.snorm.uav.comp", "main"}, + {"hlsl.staticMemberFunction.frag", "main"}, + {"hlsl.store.rwbyteaddressbuffer.type.comp", "main"}, + {"hlsl.stringtoken.frag", "main"}, + {"hlsl.string.frag", "main"}, + {"hlsl.struct.split-1.vert", "main"}, + {"hlsl.struct.split.array.geom", "main"}, + {"hlsl.struct.split.assign.frag", "main"}, + {"hlsl.struct.split.call.vert", "main"}, + {"hlsl.struct.split.nested.geom", "main"}, + {"hlsl.struct.split.trivial.geom", "main"}, + {"hlsl.struct.split.trivial.vert", "main"}, + {"hlsl.structarray.flatten.frag", "main"}, + {"hlsl.structarray.flatten.geom", "main"}, + {"hlsl.structbuffer.frag", "main"}, + {"hlsl.structbuffer.append.frag", "main"}, + {"hlsl.structbuffer.append.fn.frag", "main"}, + {"hlsl.structbuffer.atomics.frag", "main"}, + {"hlsl.structbuffer.byte.frag", "main"}, + {"hlsl.structbuffer.coherent.frag", "main"}, + {"hlsl.structbuffer.floatidx.comp", "main"}, + {"hlsl.structbuffer.incdec.frag", "main"}, + {"hlsl.structbuffer.fn.frag", "main"}, + {"hlsl.structbuffer.fn2.comp", "main"}, + {"hlsl.structbuffer.rw.frag", "main"}, + {"hlsl.structbuffer.rwbyte.frag", "main"}, + {"hlsl.structin.vert", "main"}, + {"hlsl.structIoFourWay.frag", "main"}, + {"hlsl.structStructName.frag", "main"}, + {"hlsl.subpass.frag", "main"}, + {"hlsl.synthesizeInput.frag", "main"}, + {"hlsl.texturebuffer.frag", "main"}, + {"hlsl.texture.struct.frag", "main"}, + {"hlsl.texture.subvec4.frag", "main"}, + {"hlsl.this.frag", "main"}, + {"hlsl.intrinsics.vert", "VertexShaderFunction"}, + {"hlsl.intrinsic.frexp.vert", "VertexShaderFunction"}, + {"hlsl.matType.frag", "PixelShaderFunction"}, + {"hlsl.matType.bool.frag", "main"}, + {"hlsl.matType.int.frag", "main"}, + {"hlsl.max.frag", "PixelShaderFunction"}, + {"hlsl.preprocessor.frag", "main"}, + {"hlsl.precedence.frag", "PixelShaderFunction"}, + {"hlsl.precedence2.frag", "PixelShaderFunction"}, + {"hlsl.scalar2matrix.frag", "main"}, + {"hlsl.semantic.geom", "main"}, + {"hlsl.semantic.vert", "main"}, + {"hlsl.semantic-1.vert", "main"}, + {"hlsl.scope.frag", "PixelShaderFunction"}, + {"hlsl.sin.frag", "PixelShaderFunction"}, + {"hlsl.struct.frag", "PixelShaderFunction"}, + {"hlsl.switch.frag", "PixelShaderFunction"}, + {"hlsl.swizzle.frag", "PixelShaderFunction"}, + {"hlsl.target.frag", "main"}, + {"hlsl.targetStruct1.frag", "main"}, + {"hlsl.targetStruct2.frag", "main"}, + {"hlsl.templatetypes.frag", "PixelShaderFunction"}, + {"hlsl.tristream-append.geom", "main"}, + {"hlsl.tx.bracket.frag", "main"}, + {"hlsl.tx.overload.frag", "main"}, + {"hlsl.type.half.frag", "main"}, + {"hlsl.type.identifier.frag", "main"}, + {"hlsl.typeGraphCopy.vert", "main"}, + {"hlsl.typedef.frag", "PixelShaderFunction"}, + {"hlsl.whileLoop.frag", "PixelShaderFunction"}, + {"hlsl.void.frag", "PixelShaderFunction"} + }), + FileNameAsCustomTestSuffix +); +// clang-format on + +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, HlslVulkan1_1CompileTest, + ::testing::ValuesIn(std::vector{ + {"hlsl.wavebroadcast.comp", "CSMain"}, + {"hlsl.waveprefix.comp", "CSMain"}, + {"hlsl.wavequad.comp", "CSMain"}, + {"hlsl.wavequery.comp", "CSMain"}, + {"hlsl.wavequery.frag", "PixelShaderFunction"}, + {"hlsl.wavereduction.comp", "CSMain"}, + {"hlsl.wavevote.comp", "CSMain"}, + }), + FileNameAsCustomTestSuffix +); +// clang-format on + +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, HlslCompileAndFlattenTest, + ::testing::ValuesIn(std::vector{ + {"hlsl.array.flatten.frag", "main"}, + {"hlsl.partialFlattenMixed.vert", "main"}, + }), + FileNameAsCustomTestSuffix +); +// clang-format on + +#if ENABLE_OPT +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, HlslLegalizeTest, + ::testing::ValuesIn(std::vector{ + {"hlsl.aliasOpaque.frag", "main"}, + {"hlsl.flattenOpaque.frag", "main"}, + {"hlsl.flattenOpaqueInit.vert", "main"}, + {"hlsl.flattenOpaqueInitMix.vert", "main"}, + {"hlsl.flattenSubset.frag", "main"}, + {"hlsl.flattenSubset2.frag", "main"}, + {"hlsl.partialFlattenLocal.vert", "main"}, + {"hlsl.partialFlattenMixed.vert", "main"} + }), + FileNameAsCustomTestSuffix +); +// clang-format on +#endif + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/Initializer.h b/deps/glslang/glslang/gtests/Initializer.h new file mode 100644 index 0000000000..b46b3f55dc --- /dev/null +++ b/deps/glslang/glslang/gtests/Initializer.h @@ -0,0 +1,55 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#ifndef GLSLANG_GTESTS_INITIALIZER_H +#define GLSLANG_GTESTS_INITIALIZER_H + +#include "glslang/Public/ShaderLang.h" + +namespace glslangtest { + +// Initializes glslang on creation, and destroys it on completion. +// This object is expected to be a singleton, so that internal glslang state +// can be correctly handled. +// +class GlslangInitializer { +public: + GlslangInitializer() { glslang::InitializeProcess(); } + + ~GlslangInitializer() { glslang::FinalizeProcess(); } +}; + +} // namespace glslangtest + +#endif // GLSLANG_GTESTS_INITIALIZER_H diff --git a/deps/glslang/glslang/gtests/Link.FromFile.Vk.cpp b/deps/glslang/glslang/gtests/Link.FromFile.Vk.cpp new file mode 100644 index 0000000000..0a616d827f --- /dev/null +++ b/deps/glslang/glslang/gtests/Link.FromFile.Vk.cpp @@ -0,0 +1,114 @@ +// +// Copyright (C) 2016-2017 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +using LinkTestVulkan = GlslangTest< + ::testing::TestWithParam>>; + +TEST_P(LinkTestVulkan, FromFile) +{ + const auto& fileNames = GetParam(); + const size_t fileCount = fileNames.size(); + const EShMessages controls = DeriveOptions(Source::GLSL, Semantics::Vulkan, Target::AST); + GlslangResult result; + + // Compile each input shader file. + bool success = true; + std::vector> shaders; + for (size_t i = 0; i < fileCount; ++i) { + std::string contents; + tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], + "input", &contents); + shaders.emplace_back( + new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); + auto* shader = shaders.back().get(); + shader->setAutoMapLocations(true); + success &= compile(shader, contents, "", controls); + result.shaderResults.push_back( + {fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog()}); + } + + // Link all of them. + glslang::TProgram program; + for (const auto& shader : shaders) program.addShader(shader.get()); + success &= program.link(controls); + result.linkingOutput = program.getInfoLog(); + result.linkingError = program.getInfoDebugLog(); + + if (success && (controls & EShMsgSpvRules)) { + spv::SpvBuildLogger logger; + std::vector spirv_binary; + glslang::SpvOptions options; + options.disableOptimizer = true; + glslang::GlslangToSpv(*program.getIntermediate(shaders.front()->getStage()), + spirv_binary, &logger, &options); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + result.spirvWarningsErrors = logger.getAllMessages(); + result.spirv = disassembly_stream.str(); + } + + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + // Check with expected results. + const std::string expectedOutputFname = + GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; + std::string expectedOutput; + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, LinkTestVulkan, + ::testing::ValuesIn(std::vector>({ + {"link1.vk.frag", "link2.vk.frag"}, + })), +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/Link.FromFile.cpp b/deps/glslang/glslang/gtests/Link.FromFile.cpp new file mode 100644 index 0000000000..ab845bf59e --- /dev/null +++ b/deps/glslang/glslang/gtests/Link.FromFile.cpp @@ -0,0 +1,108 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +using LinkTest = GlslangTest< + ::testing::TestWithParam>>; + +TEST_P(LinkTest, FromFile) +{ + const auto& fileNames = GetParam(); + const size_t fileCount = fileNames.size(); + const EShMessages controls = DeriveOptions(Source::GLSL, Semantics::OpenGL, Target::AST); + GlslangResult result; + + // Compile each input shader file. + std::vector> shaders; + for (size_t i = 0; i < fileCount; ++i) { + std::string contents; + tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], + "input", &contents); + shaders.emplace_back( + new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); + auto* shader = shaders.back().get(); + compile(shader, contents, "", controls); + result.shaderResults.push_back( + {fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog()}); + } + + // Link all of them. + glslang::TProgram program; + for (const auto& shader : shaders) program.addShader(shader.get()); + program.link(controls); + result.linkingOutput = program.getInfoLog(); + result.linkingError = program.getInfoDebugLog(); + + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + // Check with expected results. + const std::string expectedOutputFname = + GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; + std::string expectedOutput; + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), expectedOutputFname); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, LinkTest, + ::testing::ValuesIn(std::vector>({ + {"mains1.frag", "mains2.frag", "noMain1.geom", "noMain2.geom"}, + {"noMain.vert", "mains.frag"}, + {"link1.frag", "link2.frag", "link3.frag"}, + {"recurse1.vert", "recurse1.frag", "recurse2.frag"}, + {"300link.frag"}, + {"300link2.frag"}, + {"300link3.frag"}, + {"empty.frag", "empty2.frag", "empty3.frag"}, + {"150.tesc", "150.tese", "400.tesc", "400.tese", "410.tesc", "420.tesc", "420.tese"}, + {"max_vertices_0.geom"}, + {"es-link1.frag", "es-link2.frag"}, + {"missingBodies.vert"} + })), +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/Pp.FromFile.cpp b/deps/glslang/glslang/gtests/Pp.FromFile.cpp new file mode 100644 index 0000000000..13daac0d67 --- /dev/null +++ b/deps/glslang/glslang/gtests/Pp.FromFile.cpp @@ -0,0 +1,75 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +using PreprocessingTest = GlslangTest<::testing::TestWithParam>; + +TEST_P(PreprocessingTest, FromFile) +{ + loadFilePreprocessAndCheck(GlobalTestSettings.testRoot, GetParam()); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, PreprocessingTest, + ::testing::ValuesIn(std::vector({ + "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", + })), + FileNameAsCustomTestSuffix +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/README.md b/deps/glslang/glslang/gtests/README.md new file mode 100644 index 0000000000..c8261cc46a --- /dev/null +++ b/deps/glslang/glslang/gtests/README.md @@ -0,0 +1,26 @@ +Glslang Tests based on the Google Test Framework +================================================ + +This directory contains [Google Test][gtest] based test fixture and test +cases for glslang. + +Apart from typical unit tests, necessary utility methods are added into +the [`GlslangTests`](TestFixture.h) fixture to provide the ability to do +file-based integration tests. Various `*.FromFile.cpp` files lists names +of files containing input shader code in the `Test/` directory. Utility +methods will load the input shader source, compile them, and compare with +the corresponding expected output in the `Test/baseResults/` directory. + +How to run the tests +-------------------- + +Please make sure you have a copy of [Google Test][gtest] checked out under +the `External` directory before building. After building, just run the +`ctest` command or the `gtests/glslangtests` binary in your build directory. + +The `gtests/glslangtests` binary also provides an `--update-mode` command +line option, which, if supplied, will overwrite the golden files under +the `Test/baseResults/` directory with real output from that invocation. +This serves as an easy way to update golden files. + +[gtest]: https://github.com/google/googletest diff --git a/deps/glslang/glslang/gtests/Remap.FromFile.cpp b/deps/glslang/glslang/gtests/Remap.FromFile.cpp new file mode 100644 index 0000000000..50bce8e357 --- /dev/null +++ b/deps/glslang/glslang/gtests/Remap.FromFile.cpp @@ -0,0 +1,118 @@ +// +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +struct RemapTestArgs { + const char* fileName; + const char* entryPoint; + Source sourceLanguage; + unsigned int remapOpts; +}; + +// We are using FileNameEntryPointPair objects as parameters for instantiating +// the template, so the global FileNameAsCustomTestSuffix() won't work since +// it assumes std::string as parameters. Thus, an overriding one here. +std::string FileNameAsCustomTestSuffix( + const ::testing::TestParamInfo& info) { + std::string name = info.param.fileName; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + +using RemapTest = GlslangTest<::testing::TestWithParam>; + +// Remapping SPIR-V modules. +TEST_P(RemapTest, FromFile) +{ + if (GetSuffix(GetParam().fileName) == "spv") { + loadFileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + GetParam().sourceLanguage, + Semantics::Vulkan, + Target::Spv, + GetParam().remapOpts); + } else { + loadFileCompileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + GetParam().sourceLanguage, + Semantics::Vulkan, + Target::Spv, + GetParam().entryPoint, + GetParam().remapOpts); + } +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, RemapTest, + ::testing::ValuesIn(std::vector{ + // GLSL remapper tests + // testname entry language remapper_options + { "remap.basic.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.basic.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.basic.dcefunc.frag", "main", Source::GLSL, spv::spirvbin_t::DCE_FUNCS }, + { "remap.basic.strip.frag", "main", Source::GLSL, spv::spirvbin_t::STRIP }, + { "remap.specconst.comp", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.switch.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.switch.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.literal64.none.spv", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.literal64.everything.spv", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.if.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.if.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.similar_1a.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.similar_1b.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.similar_1a.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.similar_1b.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.uniformarray.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.uniformarray.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + + // HLSL remapper tests + { "remap.hlsl.sample.basic.strip.frag", "main", Source::HLSL, spv::spirvbin_t::STRIP }, + { "remap.hlsl.sample.basic.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.hlsl.sample.basic.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, + { "remap.hlsl.templatetypes.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, + { "remap.hlsl.templatetypes.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, + }), + FileNameAsCustomTestSuffix +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/Settings.cpp b/deps/glslang/glslang/gtests/Settings.cpp new file mode 100644 index 0000000000..0ac58449c6 --- /dev/null +++ b/deps/glslang/glslang/gtests/Settings.cpp @@ -0,0 +1,51 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include "Settings.h" + +namespace glslangtest { + +// We need CMake to provide us the absolute path to the directory containing +// test files, so we are certain to find those files no matter where the test +// harness binary is generated. This provides out-of-source build capability. +// This will be used as the default test root, but can be overridden with +// the --test-root argument. +#ifndef GLSLANG_TEST_DIRECTORY +#error \ + "GLSLANG_TEST_DIRECTORY needs to be defined for gtest to locate test files." +#endif + +GTestSettings GlobalTestSettings = {nullptr, false, GLSLANG_TEST_DIRECTORY}; + +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/Settings.h b/deps/glslang/glslang/gtests/Settings.h new file mode 100644 index 0000000000..c38474ccf9 --- /dev/null +++ b/deps/glslang/glslang/gtests/Settings.h @@ -0,0 +1,58 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#ifndef GLSLANG_GTESTS_SETTINGS_H +#define GLSLANG_GTESTS_SETTINGS_H + +#include + +namespace glslangtest { + +class GlslangInitializer; + +struct GTestSettings { + // A handle to GlslangInitializer instance. + GlslangInitializer* initializer; + // An indicator of whether GTest should write real output to the file for + // the expected output. + bool updateMode; + // The root directory for test files. + std::string testRoot; +}; + +extern GTestSettings GlobalTestSettings; + +} // namespace glslangtest + +#endif // GLSLANG_GTESTS_SETTINGS_H diff --git a/deps/glslang/glslang/gtests/Spv.FromFile.cpp b/deps/glslang/glslang/gtests/Spv.FromFile.cpp new file mode 100644 index 0000000000..4b1ff462cc --- /dev/null +++ b/deps/glslang/glslang/gtests/Spv.FromFile.cpp @@ -0,0 +1,505 @@ + // +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +struct IoMapData { + const char* fileName; + const char* entryPoint; + int baseSamplerBinding; + int baseTextureBinding; + int baseImageBinding; + int baseUboBinding; + int baseSsboBinding; + bool autoMapBindings; + bool flattenUniforms; +}; + +std::string FileNameAsCustomTestSuffixIoMap( + const ::testing::TestParamInfo& info) { + std::string name = info.param.fileName; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + +using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam>; +using CompileVulkan1_1ToSpirvTest = GlslangTest<::testing::TestWithParam>; +using CompileOpenGLToSpirvTest = GlslangTest<::testing::TestWithParam>; +using VulkanSemantics = GlslangTest<::testing::TestWithParam>; +using OpenGLSemantics = GlslangTest<::testing::TestWithParam>; +using VulkanAstSemantics = GlslangTest<::testing::TestWithParam>; +using HlslIoMap = GlslangTest<::testing::TestWithParam>; +using GlslIoMap = GlslangTest<::testing::TestWithParam>; +#ifdef AMD_EXTENSIONS +using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam>; +#endif +#ifdef NV_EXTENSIONS +using CompileVulkanToSpirvTestNV = GlslangTest<::testing::TestWithParam>; +#endif +using CompileUpgradeTextureToSampledTextureAndDropSamplersTest = GlslangTest<::testing::TestWithParam>; + +// Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully +// generate SPIR-V. +TEST_P(CompileVulkanToSpirvTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::Spv); +} + +TEST_P(CompileVulkan1_1ToSpirvTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_1, + Target::Spv); +} + +// Compiling GLSL to SPIR-V under OpenGL semantics. Expected to successfully +// generate SPIR-V. +TEST_P(CompileOpenGLToSpirvTest, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, + Target::Spv); +} + +// GLSL-level Vulkan semantics test. Expected to error out before generating +// SPIR-V. +TEST_P(VulkanSemantics, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::Spv, false); +} + +// GLSL-level Vulkan semantics test. Expected to error out before generating +// SPIR-V. +TEST_P(OpenGLSemantics, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::OpenGL, glslang::EShTargetVulkan_1_0, + Target::Spv, false); +} + +// GLSL-level Vulkan semantics test that need to see the AST for validation. +TEST_P(VulkanAstSemantics, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::AST); +} + +// HLSL-level Vulkan semantics tests. +TEST_P(HlslIoMap, FromFile) +{ + loadFileCompileIoMapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, + Target::Spv, GetParam().entryPoint, + GetParam().baseSamplerBinding, + GetParam().baseTextureBinding, + GetParam().baseImageBinding, + GetParam().baseUboBinding, + GetParam().baseSsboBinding, + GetParam().autoMapBindings, + GetParam().flattenUniforms); +} + +// GLSL-level Vulkan semantics tests. +TEST_P(GlslIoMap, FromFile) +{ + loadFileCompileIoMapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::GLSL, Semantics::Vulkan, + Target::Spv, GetParam().entryPoint, + GetParam().baseSamplerBinding, + GetParam().baseTextureBinding, + GetParam().baseImageBinding, + GetParam().baseUboBinding, + GetParam().baseSsboBinding, + GetParam().autoMapBindings, + GetParam().flattenUniforms); +} + +#ifdef AMD_EXTENSIONS +// Compiling GLSL to SPIR-V under Vulkan semantics (AMD extensions enabled). +// Expected to successfully generate SPIR-V. +TEST_P(CompileVulkanToSpirvTestAMD, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::Spv); +} +#endif + +#ifdef NV_EXTENSIONS +// Compiling GLSL to SPIR-V under Vulkan semantics (NV extensions enabled). +// Expected to successfully generate SPIR-V. +TEST_P(CompileVulkanToSpirvTestNV, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, + Target::Spv); +} +#endif + +TEST_P(CompileUpgradeTextureToSampledTextureAndDropSamplersTest, FromFile) +{ + loadCompileUpgradeTextureToSampledTextureAndDropSamplersAndCheck(GlobalTestSettings.testRoot, + GetParam(), + Source::GLSL, + Semantics::Vulkan, + Target::Spv); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, CompileVulkanToSpirvTest, + ::testing::ValuesIn(std::vector({ + // Test looping constructs. + // No tests yet for making sure break and continue from a nested loop + // goes to the innermost target. + "spv.barrier.vert", + "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.310.bitcast.frag", + "spv.330.geom", + "spv.400.frag", + "spv.400.tesc", + "spv.400.tese", + "spv.420.geom", + "spv.430.frag", + "spv.430.vert", + "spv.450.tesc", + "spv.450.geom", + "spv.450.noRedecl.tesc", + "spv.accessChain.frag", + "spv.aggOps.frag", + "spv.always-discard.frag", + "spv.always-discard2.frag", + "spv.arbPostDepthCoverage.frag", + "spv.arbPostDepthCoverage_Error.frag", + "spv.bitCast.frag", + "spv.bool.vert", + "spv.boolInBlock.frag", + "spv.branch-return.vert", + "spv.builtInXFB.vert", + "spv.conditionalDiscard.frag", + "spv.constStruct.vert", + "spv.controlFlowAttributes.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.extPostDepthCoverage.frag", + "spv.extPostDepthCoverage_Error.frag", + "spv.flowControl.frag", + "spv.forLoop.frag", + "spv.forwardFun.frag", + "spv.fullyCovered.frag", + "spv.functionCall.frag", + "spv.functionNestedOpaque.vert", + "spv.functionSemantics.frag", + "spv.GeometryShaderPassthrough.geom", + "spv.interpOps.frag", + "spv.int64.frag", + "spv.intOps.vert", + "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.multiStruct.comp", + "spv.multiStructFuncall.frag", + "spv.newTexture.frag", + "spv.noDeadDecorations.vert", + "spv.nonSquare.vert", + "spv.nonuniform.frag", + "spv.noWorkgroup.comp", + "spv.offsets.frag", + "spv.Operations.frag", + "spv.paramMemory.frag", + "spv.precision.frag", + "spv.precisionNonESSamp.frag", + "spv.prepost.frag", + "spv.qualifiers.vert", + "spv.sample.frag", + "spv.sampleId.frag", + "spv.samplePosition.frag", + "spv.sampleMaskOverrideCoverage.frag", + "spv.shaderBallot.comp", + "spv.shaderDrawParams.vert", + "spv.shaderGroupVote.comp", + "spv.shaderStencilExport.frag", + "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.swizzleInversion.frag", + "spv.test.frag", + "spv.test.vert", + "spv.texture.frag", + "spv.texture.vert", + "spv.textureBuffer.vert", + "spv.image.frag", + "spv.types.frag", + "spv.uint.frag", + "spv.uniformArray.frag", + "spv.variableArrayIndex.frag", + "spv.varyingArray.frag", + "spv.varyingArrayIndirect.frag", + "spv.vecMatConstruct.frag", + "spv.voidFunction.frag", + "spv.whileLoop.frag", + "spv.AofA.frag", + "spv.queryL.frag", + "spv.separate.frag", + "spv.shortCircuit.frag", + "spv.pushConstant.vert", + "spv.pushConstantAnon.vert", + "spv.subpass.frag", + "spv.specConstant.vert", + "spv.specConstant.comp", + "spv.specConstantComposite.vert", + "spv.specConstantOperations.vert", + "spv.storageBuffer.vert", + "spv.precise.tese", + "spv.precise.tesc", + "spv.vulkan100.subgroupArithmetic.comp", + "spv.vulkan100.subgroupPartitioned.comp", + "spv.xfb.vert", + "spv.xfb2.vert", + "spv.xfb3.vert", + })), + FileNameAsCustomTestSuffix +); + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, CompileVulkan1_1ToSpirvTest, + ::testing::ValuesIn(std::vector({ + "spv.deviceGroup.frag", + "spv.drawParams.vert", + "spv.int8.frag", + "spv.vulkan110.int16.frag", + "spv.int32.frag", + "spv.explicittypes.frag", + "spv.float32.frag", + "spv.float64.frag", + "spv.multiView.frag", + "spv.subgroup.frag", + "spv.subgroup.geom", + "spv.subgroup.tesc", + "spv.subgroup.tese", + "spv.subgroup.vert", + "spv.subgroupArithmetic.comp", + "spv.subgroupBasic.comp", + "spv.subgroupBallot.comp", + "spv.subgroupClustered.comp", + "spv.subgroupClusteredNeg.comp", + "spv.subgroupPartitioned.comp", + "spv.subgroupShuffle.comp", + "spv.subgroupShuffleRelative.comp", + "spv.subgroupQuad.comp", + "spv.subgroupVote.comp", + "spv.vulkan110.storageBuffer.vert", + })), + FileNameAsCustomTestSuffix +); + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Hlsl, HlslIoMap, + ::testing::ValuesIn(std::vector{ + { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, 30, true, false }, + { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, 30, false, false }, + { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, 30, true, true }, + { "spv.register.subpass.frag", "main", 0, 20, 0, 0, 0, true, true }, + { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, 30, true, true }, + { "spv.ssbo.autoassign.frag", "main", 5, 10, 0, 15, 30, true, true }, + { "spv.ssboAlias.frag", "main", 0, 0, 0, 0, 83, true, false }, + { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, 30, true, true }, + { "spv.register.autoassign.rangetest.frag", "main", + glslang::TQualifier::layoutBindingEnd-2, + glslang::TQualifier::layoutBindingEnd+5, + 20, 30, true, false }, + }), + FileNameAsCustomTestSuffixIoMap +); + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Hlsl, GlslIoMap, + ::testing::ValuesIn(std::vector{ + { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, 30, true, false }, + { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, 30, false, false }, + }), + FileNameAsCustomTestSuffixIoMap +); + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, CompileOpenGLToSpirvTest, + ::testing::ValuesIn(std::vector({ + "spv.460.frag", + "spv.460.vert", + "spv.460.comp", + "spv.atomic.comp", + "spv.glFragColor.frag", + "spv.rankShift.comp", + "spv.specConst.vert", + "spv.OVR_multiview.vert", + })), + FileNameAsCustomTestSuffix +); + +INSTANTIATE_TEST_CASE_P( + Glsl, VulkanSemantics, + ::testing::ValuesIn(std::vector({ + "vulkan.frag", + "vulkan.vert", + "vulkan.comp", + })), + 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({ + "vulkan.ast.vert", + })), + FileNameAsCustomTestSuffix +); + +#ifdef AMD_EXTENSIONS +INSTANTIATE_TEST_CASE_P( + Glsl, CompileVulkanToSpirvTestAMD, + ::testing::ValuesIn(std::vector({ + "spv.float16.frag", + "spv.float16Fetch.frag", + "spv.imageLoadStoreLod.frag", + "spv.int16.frag", + "spv.int16.amd.frag", + "spv.shaderBallotAMD.comp", + "spv.shaderFragMaskAMD.frag", + "spv.textureGatherBiasLod.frag", + })), + FileNameAsCustomTestSuffix +); +#endif + +#ifdef NV_EXTENSIONS +INSTANTIATE_TEST_CASE_P( + Glsl, CompileVulkanToSpirvTestNV, + ::testing::ValuesIn(std::vector({ + "spv.sampleMaskOverrideCoverage.frag", + "spv.GeometryShaderPassthrough.geom", + "spv.viewportArray2.vert", + "spv.viewportArray2.tesc", + "spv.stereoViewRendering.vert", + "spv.stereoViewRendering.tesc", + "spv.multiviewPerViewAttributes.vert", + "spv.multiviewPerViewAttributes.tesc", + "spv.atomicInt64.comp", +})), +FileNameAsCustomTestSuffix +); +#endif + +INSTANTIATE_TEST_CASE_P( + Glsl, CompileUpgradeTextureToSampledTextureAndDropSamplersTest, + ::testing::ValuesIn(std::vector({ + "spv.texture.sampler.transform.frag", + })), + FileNameAsCustomTestSuffix +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/TestFixture.cpp b/deps/glslang/glslang/gtests/TestFixture.cpp new file mode 100644 index 0000000000..77bada5f7d --- /dev/null +++ b/deps/glslang/glslang/gtests/TestFixture.cpp @@ -0,0 +1,164 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include "TestFixture.h" + +namespace glslangtest { + +std::string FileNameAsCustomTestSuffix( + const ::testing::TestParamInfo& info) +{ + std::string name = info.param; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + +EShLanguage GetShaderStage(const std::string& stage) +{ + if (stage == "vert") { + return EShLangVertex; + } else if (stage == "tesc") { + return EShLangTessControl; + } else if (stage == "tese") { + return EShLangTessEvaluation; + } else if (stage == "geom") { + return EShLangGeometry; + } else if (stage == "frag") { + return EShLangFragment; + } else if (stage == "comp") { + return EShLangCompute; + } else { + assert(0 && "Unknown shader stage"); + return EShLangCount; + } +} + +EShMessages DeriveOptions(Source source, Semantics semantics, Target target) +{ + EShMessages result = EShMsgCascadingErrors; + + switch (source) { + case Source::GLSL: + break; + case Source::HLSL: + result = static_cast(result | EShMsgReadHlsl); + break; + } + + switch (target) { + case Target::AST: + result = static_cast(result | EShMsgAST); + break; + case Target::Spv: + result = static_cast(result | EShMsgSpvRules); + result = static_cast(result | EShMsgKeepUncalled); + break; + case Target::BothASTAndSpv: + result = static_cast(result | EShMsgSpvRules | EShMsgAST); + result = static_cast(result | EShMsgKeepUncalled); + break; + }; + + switch (semantics) { + case Semantics::OpenGL: + break; + case Semantics::Vulkan: + result = static_cast(result | EShMsgVulkanRules | EShMsgSpvRules); + break; + } + + result = static_cast(result | EShMsgHlslLegalization); + + return result; +} + +std::pair ReadFile(const std::string& path) +{ + std::ifstream fstream(path, std::ios::in); + if (fstream) { + std::string contents; + fstream.seekg(0, std::ios::end); + contents.reserve((std::string::size_type)fstream.tellg()); + fstream.seekg(0, std::ios::beg); + contents.assign((std::istreambuf_iterator(fstream)), + std::istreambuf_iterator()); + return std::make_pair(true, contents); + } + return std::make_pair(false, ""); +} + +std::pair > ReadSpvBinaryFile(const std::string& path) +{ + std::ifstream fstream(path, std::fstream::in | std::fstream::binary); + + if (!fstream) + return std::make_pair(false, std::vector()); + + std::vector contents; + + // Reserve space (for efficiency, not for correctness) + fstream.seekg(0, fstream.end); + contents.reserve(size_t(fstream.tellg()) / sizeof(std::uint32_t)); + fstream.seekg(0, fstream.beg); + + // There is no istream iterator traversing by uint32_t, so we must loop. + while (!fstream.eof()) { + std::uint32_t inWord; + fstream.read((char *)&inWord, sizeof(inWord)); + + if (!fstream.eof()) + contents.push_back(inWord); + } + + return std::make_pair(true, contents); // hopefully, c++11 move semantics optimizes the copy away. +} + +bool WriteFile(const std::string& path, const std::string& contents) +{ + std::ofstream fstream(path, std::ios::out); + if (!fstream) return false; + fstream << contents; + fstream.flush(); + return true; +} + +std::string GetSuffix(const std::string& name) +{ + const size_t pos = name.rfind('.'); + return (pos == std::string::npos) ? "" : name.substr(name.rfind('.') + 1); +} + +} // namespace glslangtest diff --git a/deps/glslang/glslang/gtests/TestFixture.h b/deps/glslang/glslang/gtests/TestFixture.h new file mode 100644 index 0000000000..a58978d339 --- /dev/null +++ b/deps/glslang/glslang/gtests/TestFixture.h @@ -0,0 +1,646 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#ifndef GLSLANG_GTESTS_TEST_FIXTURE_H +#define GLSLANG_GTESTS_TEST_FIXTURE_H + +#include +#include +#include +#include +#include +#include + +#include + +#include "SPIRV/GlslangToSpv.h" +#include "SPIRV/disassemble.h" +#include "SPIRV/doc.h" +#include "SPIRV/SPVRemapper.h" +#include "StandAlone/ResourceLimits.h" +#include "glslang/Public/ShaderLang.h" + +#include "Initializer.h" +#include "Settings.h" + +namespace glslangtest { + +// This function is used to provide custom test name suffixes based on the +// shader source file names. Otherwise, the test name suffixes will just be +// numbers, which are not quite obvious. +std::string FileNameAsCustomTestSuffix( + const ::testing::TestParamInfo& info); + +enum class Source { + GLSL, + HLSL, +}; + +// Enum for shader compilation semantics. +enum class Semantics { + OpenGL, + Vulkan +}; + +// Enum for compilation target. +enum class Target { + AST, + Spv, + BothASTAndSpv, +}; + +EShLanguage GetShaderStage(const std::string& stage); + +EShMessages DeriveOptions(Source, Semantics, Target); + +// Reads the content of the file at the given |path|. On success, returns true +// and the contents; otherwise, returns false and an empty string. +std::pair ReadFile(const std::string& path); +std::pair > ReadSpvBinaryFile(const std::string& path); + +// Writes the given |contents| into the file at the given |path|. Returns true +// on successful output. +bool WriteFile(const std::string& path, const std::string& contents); + +// Returns the suffix of the given |name|. +std::string GetSuffix(const std::string& name); + +// Base class for glslang integration tests. It contains many handy utility-like +// methods such as reading shader source files, compiling into AST/SPIR-V, and +// comparing with expected outputs. +// +// To write value-Parameterized tests: +// using ValueParamTest = GlslangTest<::testing::TestWithParam>; +// To use as normal fixture: +// using FixtureTest = GlslangTest<::testing::Test>; +template +class GlslangTest : public GT { +public: + GlslangTest() + : defaultVersion(100), + defaultProfile(ENoProfile), + forceVersionProfile(false), + isForwardCompatible(false) {} + + // Tries to load the contents from the file at the given |path|. On success, + // writes the contents into |contents|. On failure, errors out. + void tryLoadFile(const std::string& path, const std::string& tag, + std::string* contents) + { + bool fileReadOk; + std::tie(fileReadOk, *contents) = ReadFile(path); + ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path; + } + + // Tries to load the contents from the file at the given |path|. On success, + // writes the contents into |contents|. On failure, errors out. + void tryLoadSpvFile(const std::string& path, const std::string& tag, + std::vector& contents) + { + bool fileReadOk; + std::tie(fileReadOk, contents) = ReadSpvBinaryFile(path); + ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path; + } + + // Checks the equality of |expected| and |real|. If they are not equal, + // write |real| to the given file named as |fname| if update mode is on. + void checkEqAndUpdateIfRequested(const std::string& expected, + const std::string& real, + const std::string& fname) + { + // In order to output the message we want under proper circumstances, + // we need the following operator<< stuff. + EXPECT_EQ(expected, real) + << (GlobalTestSettings.updateMode + ? ("Mismatch found and update mode turned on - " + "flushing expected result output.") + : ""); + + // Update the expected output file if requested. + // It looks weird to duplicate the comparison between expected_output + // and stream.str(). However, if creating a variable for the comparison + // result, we cannot have pretty print of the string diff in the above. + if (GlobalTestSettings.updateMode && expected != real) { + EXPECT_TRUE(WriteFile(fname, real)) << "Flushing failed"; + } + } + + struct ShaderResult { + std::string shaderName; + std::string output; + std::string error; + }; + + // A struct for holding all the information returned by glslang compilation + // and linking. + struct GlslangResult { + std::vector shaderResults; + std::string linkingOutput; + std::string linkingError; + std::string spirvWarningsErrors; + std::string spirv; // Optional SPIR-V disassembly text. + }; + + // Compiles and the given source |code| of the given shader |stage| into + // the target under the semantics conveyed via |controls|. Returns true + // and modifies |shader| on success. + bool compile(glslang::TShader* shader, const std::string& code, + const std::string& entryPointName, EShMessages controls, + const TBuiltInResource* resources=nullptr) + { + const char* shaderStrings = code.data(); + const int shaderLengths = static_cast(code.size()); + + shader->setStringsWithLengths(&shaderStrings, &shaderLengths, 1); + if (!entryPointName.empty()) shader->setEntryPoint(entryPointName.c_str()); + return shader->parse( + (resources ? resources : &glslang::DefaultTBuiltInResource), + defaultVersion, isForwardCompatible, controls); + } + + // Compiles and links the given source |code| of the given shader + // |stage| into the target under the semantics specified via |controls|. + // Returns a GlslangResult instance containing all the information generated + // during the process. If the target includes SPIR-V, also disassembles + // the result and returns disassembly text. + GlslangResult compileAndLink( + const std::string shaderName, const std::string& code, + const std::string& entryPointName, EShMessages controls, + glslang::EShTargetClientVersion clientTargetVersion, + bool flattenUniformArrays = false, + EShTextureSamplerTransformMode texSampTransMode = EShTexSampTransKeep, + bool enableOptimizer = false, + bool automap = true) + { + const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(stage); + if (automap) { + shader.setAutoMapLocations(true); + shader.setAutoMapBindings(true); + } + shader.setTextureSamplerTransformMode(texSampTransMode); + shader.setFlattenUniformArrays(flattenUniformArrays); + + if (controls & EShMsgSpvRules) { + if (controls & EShMsgVulkanRules) { + shader.setEnvInput((controls & EShMsgReadHlsl) ? glslang::EShSourceHlsl + : glslang::EShSourceGlsl, + stage, glslang::EShClientVulkan, 100); + shader.setEnvClient(glslang::EShClientVulkan, clientTargetVersion); + shader.setEnvTarget(glslang::EShTargetSpv, + clientTargetVersion == glslang::EShTargetVulkan_1_1 ? glslang::EShTargetSpv_1_3 + : glslang::EShTargetSpv_1_0); + } else { + shader.setEnvInput((controls & EShMsgReadHlsl) ? glslang::EShSourceHlsl + : glslang::EShSourceGlsl, + stage, glslang::EShClientOpenGL, 100); + shader.setEnvClient(glslang::EShClientOpenGL, clientTargetVersion); + shader.setEnvTarget(glslang::EshTargetSpv, glslang::EShTargetSpv_1_0); + } + } + + bool success = compile(&shader, code, entryPointName, controls); + + glslang::TProgram program; + program.addShader(&shader); + success &= program.link(controls); + + spv::SpvBuildLogger logger; + + if (success && (controls & EShMsgSpvRules)) { + std::vector spirv_binary; + glslang::SpvOptions options; + options.disableOptimizer = !enableOptimizer; + glslang::GlslangToSpv(*program.getIntermediate(stage), + spirv_binary, &logger, &options); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), + logger.getAllMessages(), disassembly_stream.str()}; + } else { + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), "", ""}; + } + } + + // Compiles and links the given source |code| of the given shader + // |stage| into the target under the semantics specified via |controls|. + // Returns a GlslangResult instance containing all the information generated + // during the process. If the target includes SPIR-V, also disassembles + // the result and returns disassembly text. + GlslangResult compileLinkIoMap( + const std::string shaderName, const std::string& code, + const std::string& entryPointName, EShMessages controls, + int baseSamplerBinding, + int baseTextureBinding, + int baseImageBinding, + int baseUboBinding, + int baseSsboBinding, + bool autoMapBindings, + bool flattenUniformArrays) + { + const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(stage); + shader.setShiftSamplerBinding(baseSamplerBinding); + shader.setShiftTextureBinding(baseTextureBinding); + shader.setShiftImageBinding(baseImageBinding); + shader.setShiftUboBinding(baseUboBinding); + shader.setShiftSsboBinding(baseSsboBinding); + shader.setAutoMapBindings(autoMapBindings); + shader.setAutoMapLocations(true); + shader.setFlattenUniformArrays(flattenUniformArrays); + + bool success = compile(&shader, code, entryPointName, controls); + + glslang::TProgram program; + program.addShader(&shader); + + success &= program.link(controls); + success &= program.mapIO(); + + spv::SpvBuildLogger logger; + + if (success && (controls & EShMsgSpvRules)) { + std::vector spirv_binary; + glslang::GlslangToSpv(*program.getIntermediate(stage), + spirv_binary, &logger); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), + logger.getAllMessages(), disassembly_stream.str()}; + } else { + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), "", ""}; + } + } + + // This is like compileAndLink but with remapping of the SPV binary + // through spirvbin_t::remap(). While technically this could be merged + // with compileAndLink() above (with the remap step optionally being a no-op) + // it is given separately here for ease of future extraction. + GlslangResult compileLinkRemap( + const std::string shaderName, const std::string& code, + const std::string& entryPointName, EShMessages controls, + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + const EShLanguage stage = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(stage); + shader.setAutoMapBindings(true); + shader.setAutoMapLocations(true); + + bool success = compile(&shader, code, entryPointName, controls); + + glslang::TProgram program; + program.addShader(&shader); + success &= program.link(controls); + + spv::SpvBuildLogger logger; + + if (success && (controls & EShMsgSpvRules)) { + std::vector spirv_binary; + glslang::GlslangToSpv(*program.getIntermediate(stage), + spirv_binary, &logger); + + spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), + logger.getAllMessages(), disassembly_stream.str()}; + } else { + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), "", ""}; + } + } + + // remap the binary in 'code' with the options in remapOptions + GlslangResult remap( + const std::string shaderName, const std::vector& code, + EShMessages controls, + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + if ((controls & EShMsgSpvRules)) { + std::vector spirv_binary(code); // scratch copy + + spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + + return {{{shaderName, "", ""},}, + "", "", + "", disassembly_stream.str()}; + } else { + return {{{shaderName, "", ""},}, "", "", "", ""}; + } + } + + void outputResultToStream(std::ostringstream* stream, + const GlslangResult& result, + EShMessages controls) + { + const auto outputIfNotEmpty = [&stream](const std::string& str) { + if (!str.empty()) *stream << str << "\n"; + }; + + for (const auto& shaderResult : result.shaderResults) { + *stream << shaderResult.shaderName << "\n"; + outputIfNotEmpty(shaderResult.output); + outputIfNotEmpty(shaderResult.error); + } + outputIfNotEmpty(result.linkingOutput); + outputIfNotEmpty(result.linkingError); + *stream << result.spirvWarningsErrors; + + if (controls & EShMsgSpvRules) { + *stream + << (result.spirv.empty() + ? "SPIR-V is not generated for failed compile or link\n" + : result.spirv); + } + } + + void loadFileCompileAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + glslang::EShTargetClientVersion clientTargetVersion, + Target target, + bool automap = true, + const std::string& entryPointName="", + const std::string& baseDir="/baseResults/", + const bool enableOptimizer = false) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + baseDir + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + EShMessages controls = DeriveOptions(source, semantics, target); + if (enableOptimizer) + controls = static_cast(controls & ~EShMsgHlslLegalization); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, clientTargetVersion, false, + EShTexSampTransKeep, enableOptimizer, automap); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + void loadFileCompileFlattenUniformsAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName="") + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, + glslang::EShTargetVulkan_1_0, true); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + void loadFileCompileIoMapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName, + int baseSamplerBinding, + int baseTextureBinding, + int baseImageBinding, + int baseUboBinding, + int baseSsboBinding, + bool autoMapBindings, + bool flattenUniformArrays) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, + baseSamplerBinding, baseTextureBinding, baseImageBinding, + baseUboBinding, baseSsboBinding, + autoMapBindings, + flattenUniformArrays); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + void loadFileCompileRemapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName="", + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileLinkRemap(testName, input, entryPointName, controls, remapOptions); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + void loadFileRemapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::vector input; + std::string expectedOutput; + + tryLoadSpvFile(inputFname, "input", input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = remap(testName, input, controls, remapOptions); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + // Preprocesses the given |source| code. On success, returns true, the + // preprocessed shader, and warning messages. Otherwise, returns false, an + // empty string, and error messages. + std::tuple preprocess( + const std::string& source) + { + const char* shaderStrings = source.data(); + const int shaderLengths = static_cast(source.size()); + + glslang::TShader shader(EShLangVertex); + shader.setStringsWithLengths(&shaderStrings, &shaderLengths, 1); + std::string ppShader; + glslang::TShader::ForbidIncluder includer; + const bool success = shader.preprocess( + &glslang::DefaultTBuiltInResource, defaultVersion, defaultProfile, + forceVersionProfile, isForwardCompatible, (EShMessages)(EShMsgOnlyPreprocessor | EShMsgCascadingErrors), + &ppShader, includer); + + std::string log = shader.getInfoLog(); + log += shader.getInfoDebugLog(); + if (success) { + return std::make_tuple(true, ppShader, log); + } else { + return std::make_tuple(false, "", log); + } + } + + void loadFilePreprocessAndCheck(const std::string& testDir, + const std::string& testName) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + const std::string expectedErrorFname = + testDir + "/baseResults/" + testName + ".err"; + std::string input, expectedOutput, expectedError; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + tryLoadFile(expectedErrorFname, "expected error", &expectedError); + + bool ppOk; + std::string output, error; + std::tie(ppOk, output, error) = preprocess(input); + if (!output.empty()) output += '\n'; + if (!error.empty()) error += '\n'; + + checkEqAndUpdateIfRequested(expectedOutput, output, + expectedOutputFname); + checkEqAndUpdateIfRequested(expectedError, error, + expectedErrorFname); + } + + void loadCompileUpgradeTextureToSampledTextureAndDropSamplersAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName = "") + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, + glslang::EShTargetVulkan_1_0, false, + EShTexSampTransUpgradeTextureRemoveSampler); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + +private: + const int defaultVersion; + const EProfile defaultProfile; + const bool forceVersionProfile; + const bool isForwardCompatible; +}; + +} // namespace glslangtest + +#endif // GLSLANG_GTESTS_TEST_FIXTURE_H diff --git a/deps/glslang/glslang/gtests/main.cpp b/deps/glslang/glslang/gtests/main.cpp new file mode 100644 index 0000000000..9cd06d1d4f --- /dev/null +++ b/deps/glslang/glslang/gtests/main.cpp @@ -0,0 +1,79 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include +#include + +#include + +#include "Initializer.h" +#include "Settings.h" + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + + std::unique_ptr initializer( + new glslangtest::GlslangInitializer); + + glslangtest::GlobalTestSettings.initializer = initializer.get(); + + for (int i = 1; i < argc; ++i) { + if (std::string("--update-mode") == argv[i]) { + glslangtest::GlobalTestSettings.updateMode = true; + } + if (std::string("--test-root") == argv[i]) { + // Allow the user set the test root directory. This is useful + // for testing with files from another source tree. + if (i + 1 < argc) { + glslangtest::GlobalTestSettings.testRoot = argv[i + 1]; + i++; + } else { + printf("error: --test-root requires an argument\n"); + return 1; + } + } + if (std::string("--help") == argv[i]) { + printf("\nExtra options:\n\n"); + printf(" --update-mode\n Update the golden results for the tests.\n"); + printf(" --test-root \n Specify the test root directory (useful for testing with\n files from another source tree).\n"); + } + } + + const int result = RUN_ALL_TESTS(); + + glslangtest::GlobalTestSettings.initializer = nullptr; + + return result; +} diff --git a/deps/glslang/glslang/hlsl/CMakeLists.txt b/deps/glslang/glslang/hlsl/CMakeLists.txt new file mode 100755 index 0000000000..6d1d8e6ae5 --- /dev/null +++ b/deps/glslang/glslang/hlsl/CMakeLists.txt @@ -0,0 +1,41 @@ +set(SOURCES + hlslAttributes.cpp + hlslParseHelper.cpp + hlslScanContext.cpp + hlslOpMap.cpp + hlslTokenStream.cpp + hlslGrammar.cpp + hlslParseables.cpp) + +set(HEADERS + hlslAttributes.h + hlslParseHelper.h + hlslTokens.h + hlslScanContext.h + hlslOpMap.h + hlslTokenStream.h + hlslGrammar.h + hlslParseables.h) + +add_library(HLSL ${LIB_TYPE} ${SOURCES} ${HEADERS}) +set_property(TARGET HLSL PROPERTY FOLDER hlsl) +set_property(TARGET HLSL PROPERTY POSITION_INDEPENDENT_CODE ON) + +if(WIN32 AND BUILD_SHARED_LIBS) + set_target_properties(HLSL PROPERTIES PREFIX "") +endif() + +if(WIN32) + source_group("Source" FILES ${SOURCES} ${HEADERS}) +endif(WIN32) + +if(ENABLE_GLSLANG_INSTALL) + if(BUILD_SHARED_LIBS) + install(TARGETS HLSL + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + else() + install(TARGETS HLSL + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() +endif(ENABLE_GLSLANG_INSTALL) diff --git a/deps/glslang/glslang/hlsl/hlslAttributes.cpp b/deps/glslang/glslang/hlsl/hlslAttributes.cpp new file mode 100644 index 0000000000..261cec346f --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslAttributes.cpp @@ -0,0 +1,106 @@ +// +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#include "hlslAttributes.h" +#include "hlslParseHelper.h" + +namespace glslang { + // Map the given string to an attribute enum from TAttributeType, + // or EatNone if invalid. + TAttributeType HlslParseContext::attributeFromName(const TString& nameSpace, const TString& name) const + { + // handle names within a namespace + + if (nameSpace == "vk") { + if (name == "input_attachment_index") + return EatInputAttachment; + else if (name == "location") + return EatLocation; + else if (name == "binding") + return EatBinding; + else if (name == "global_cbuffer_binding") + return EatGlobalBinding; + else if (name == "builtin") + return EatBuiltIn; + else if (name == "constant_id") + return EatConstantId; + else if (name == "push_constant") + return EatPushConstant; + } else if (nameSpace.size() > 0) + return EatNone; + + // handle names with no namespace + + if (name == "allow_uav_condition") + return EatAllow_uav_condition; + else if (name == "branch") + return EatBranch; + else if (name == "call") + return EatCall; + else if (name == "domain") + return EatDomain; + else if (name == "earlydepthstencil") + return EatEarlyDepthStencil; + else if (name == "fastopt") + return EatFastOpt; + else if (name == "flatten") + return EatFlatten; + else if (name == "forcecase") + return EatForceCase; + else if (name == "instance") + return EatInstance; + else if (name == "maxtessfactor") + return EatMaxTessFactor; + else if (name == "maxvertexcount") + return EatMaxVertexCount; + else if (name == "numthreads") + return EatNumThreads; + else if (name == "outputcontrolpoints") + return EatOutputControlPoints; + else if (name == "outputtopology") + return EatOutputTopology; + else if (name == "partitioning") + return EatPartitioning; + else if (name == "patchconstantfunc") + return EatPatchConstantFunc; + else if (name == "unroll") + return EatUnroll; + else if (name == "loop") + return EatLoop; + else + return EatNone; + } + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslAttributes.h b/deps/glslang/glslang/hlsl/hlslAttributes.h new file mode 100644 index 0000000000..b1cc0372e5 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslAttributes.h @@ -0,0 +1,59 @@ +// +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef HLSLATTRIBUTES_H_ +#define HLSLATTRIBUTES_H_ + +#include +#include + +#include "../glslang/MachineIndependent/attribute.h" +#include "../glslang/MachineIndependent/SymbolTable.h" +#include "hlslScanContext.h" + +namespace glslang { + + class TFunctionDeclarator { + public: + TFunctionDeclarator() : function(nullptr), body(nullptr) { } + TSourceLoc loc; + TFunction* function; + TAttributes attributes; + TVector* body; + }; + +} // end namespace glslang + +#endif // HLSLATTRIBUTES_H_ diff --git a/deps/glslang/glslang/hlsl/hlslGrammar.cpp b/deps/glslang/glslang/hlsl/hlslGrammar.cpp new file mode 100755 index 0000000000..aa05465abc --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslGrammar.cpp @@ -0,0 +1,4120 @@ +// +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +// +// This is a set of mutually recursive methods implementing the HLSL grammar. +// Generally, each returns +// - through an argument: a type specifically appropriate to which rule it +// recognized +// - through the return value: true/false to indicate whether or not it +// recognized its rule +// +// As much as possible, only grammar recognition should happen in this file, +// with all other work being farmed out to hlslParseHelper.cpp, which in turn +// will build the AST. +// +// The next token, yet to be "accepted" is always sitting in 'token'. +// When a method says it accepts a rule, that means all tokens involved +// in the rule will have been consumed, and none left in 'token'. +// + +#include "hlslTokens.h" +#include "hlslGrammar.h" +#include "hlslAttributes.h" + +namespace glslang { + +// Root entry point to this recursive decent parser. +// Return true if compilation unit was successfully accepted. +bool HlslGrammar::parse() +{ + advanceToken(); + return acceptCompilationUnit(); +} + +void HlslGrammar::expected(const char* syntax) +{ + _parseContext.error(token.loc, "Expected", syntax, ""); +} + +void HlslGrammar::unimplemented(const char* error) +{ + _parseContext.error(token.loc, "Unimplemented", error, ""); +} + +// IDENTIFIER +// THIS +// type that can be used as IDENTIFIER +// +// Only process the next token if it is an identifier. +// Return true if it was an identifier. +bool HlslGrammar::acceptIdentifier(HlslToken& idToken) +{ + // IDENTIFIER + if (peekTokenClass(EHTokIdentifier)) { + idToken = token; + advanceToken(); + return true; + } + + // THIS + // -> maps to the IDENTIFIER spelled with the internal special name for 'this' + if (peekTokenClass(EHTokThis)) { + idToken = token; + advanceToken(); + idToken.tokenClass = EHTokIdentifier; + idToken.string = NewPoolTString(intermediate.implicitThisName); + return true; + } + + // type that can be used as IDENTIFIER + + // Even though "sample", "bool", "float", etc keywords (for types, interpolation modifiers), + // they ARE still accepted as identifiers. This is not a dense space: e.g, "void" is not a + // valid identifier, nor is "linear". This code special cases the known instances of this, so + // e.g, "int sample;" or "float float;" is accepted. Other cases can be added here if needed. + + const char* idString = getTypeString(peek()); + if (idString == nullptr) + return false; + + token.string = NewPoolTString(idString); + token.tokenClass = EHTokIdentifier; + idToken = token; + typeIdentifiers = true; + + advanceToken(); + + return true; +} + +// compilationUnit +// : declaration_list EOF +// +bool HlslGrammar::acceptCompilationUnit() +{ + TIntermNode* unitNode = nullptr; + + if (! acceptDeclarationList(unitNode)) + return false; + + if (! peekTokenClass(EHTokNone)) + return false; + + // set root of AST + if (unitNode && !unitNode->getAsAggregate()) + unitNode = intermediate.growAggregate(nullptr, unitNode); + intermediate.setTreeRoot(unitNode); + + return true; +} + +// Recognize the following, but with the extra condition that it can be +// successfully terminated by EOF or '}'. +// +// declaration_list +// : list of declaration_or_semicolon followed by EOF or RIGHT_BRACE +// +// declaration_or_semicolon +// : declaration +// : SEMICOLON +// +bool HlslGrammar::acceptDeclarationList(TIntermNode*& nodeList) +{ + do { + // HLSL allows extra semicolons between global declarations + do { } while (acceptTokenClass(EHTokSemicolon)); + + // EOF or RIGHT_BRACE + if (peekTokenClass(EHTokNone) || peekTokenClass(EHTokRightBrace)) + return true; + + // declaration + if (! acceptDeclaration(nodeList)) + return false; + } while (true); + + return true; +} + +// sampler_state +// : LEFT_BRACE [sampler_state_assignment ... ] RIGHT_BRACE +// +// sampler_state_assignment +// : sampler_state_identifier EQUAL value SEMICOLON +// +// sampler_state_identifier +// : ADDRESSU +// | ADDRESSV +// | ADDRESSW +// | BORDERCOLOR +// | FILTER +// | MAXANISOTROPY +// | MAXLOD +// | MINLOD +// | MIPLODBIAS +// +bool HlslGrammar::acceptSamplerState() +{ + // TODO: this should be genericized to accept a list of valid tokens and + // return token/value pairs. Presently it is specific to texture values. + + if (! acceptTokenClass(EHTokLeftBrace)) + return true; + + _parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); + + do { + // read state name + HlslToken state; + if (! acceptIdentifier(state)) + break; // end of list + + // FXC accepts any case + TString stateName = *state.string; + std::transform(stateName.begin(), stateName.end(), stateName.begin(), ::tolower); + + if (! acceptTokenClass(EHTokAssign)) { + expected("assign"); + return false; + } + + if (stateName == "minlod" || stateName == "maxlod") { + if (! peekTokenClass(EHTokIntConstant)) { + expected("integer"); + return false; + } + + TIntermTyped* lod = nullptr; + if (! acceptLiteral(lod)) // should never fail, since we just looked for an integer + return false; + } else if (stateName == "maxanisotropy") { + if (! peekTokenClass(EHTokIntConstant)) { + expected("integer"); + return false; + } + + TIntermTyped* maxAnisotropy = nullptr; + if (! acceptLiteral(maxAnisotropy)) // should never fail, since we just looked for an integer + return false; + } else if (stateName == "filter") { + HlslToken filterMode; + if (! acceptIdentifier(filterMode)) { + expected("filter mode"); + return false; + } + } else if (stateName == "addressu" || stateName == "addressv" || stateName == "addressw") { + HlslToken addrMode; + if (! acceptIdentifier(addrMode)) { + expected("texture address mode"); + return false; + } + } else if (stateName == "miplodbias") { + TIntermTyped* lodBias = nullptr; + if (! acceptLiteral(lodBias)) { + expected("lod bias"); + return false; + } + } else if (stateName == "bordercolor") { + return false; + } else { + expected("texture state"); + return false; + } + + // SEMICOLON + if (! acceptTokenClass(EHTokSemicolon)) { + expected("semicolon"); + return false; + } + } while (true); + + if (! acceptTokenClass(EHTokRightBrace)) + return false; + + return true; +} + +// sampler_declaration_dx9 +// : SAMPLER identifier EQUAL sampler_type sampler_state +// +bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) +{ + if (! acceptTokenClass(EHTokSampler)) + return false; + + // TODO: remove this when DX9 style declarations are implemented. + unimplemented("Direct3D 9 sampler declaration"); + + // read sampler name + HlslToken name; + if (! acceptIdentifier(name)) { + expected("sampler name"); + return false; + } + + if (! acceptTokenClass(EHTokAssign)) { + expected("="); + return false; + } + + return false; +} + +// declaration +// : attributes attributed_declaration +// | NAMESPACE IDENTIFIER LEFT_BRACE declaration_list RIGHT_BRACE +// +// attributed_declaration +// : sampler_declaration_dx9 post_decls SEMICOLON +// | fully_specified_type // for cbuffer/tbuffer +// | fully_specified_type declarator_list SEMICOLON // for non cbuffer/tbuffer +// | fully_specified_type identifier function_parameters post_decls compound_statement // function definition +// | fully_specified_type identifier sampler_state post_decls compound_statement // sampler definition +// | typedef declaration +// +// 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.) +// +// This can generate more than one subtree, one per initializer or a function body. +// All initializer subtrees are put in their own aggregate node, making one top-level +// node for all the initializers. Each function created is a top-level node to grow +// into the passed-in nodeList. +// +// If 'nodeList' is passed in as non-null, it must an aggregate to extend for +// each top-level node the declaration creates. Otherwise, if only one top-level +// node in generated here, that is want is returned in nodeList. +// +bool HlslGrammar::acceptDeclaration(TIntermNode*& nodeList) +{ + // NAMESPACE IDENTIFIER LEFT_BRACE declaration_list RIGHT_BRACE + if (acceptTokenClass(EHTokNamespace)) { + HlslToken namespaceToken; + if (!acceptIdentifier(namespaceToken)) { + expected("namespace name"); + return false; + } + _parseContext.pushNamespace(*namespaceToken.string); + if (!acceptTokenClass(EHTokLeftBrace)) { + expected("{"); + return false; + } + if (!acceptDeclarationList(nodeList)) { + expected("declaration list"); + return false; + } + if (!acceptTokenClass(EHTokRightBrace)) { + expected("}"); + return false; + } + _parseContext.popNamespace(); + return true; + } + + bool declarator_list = false; // true when processing comma separation + + // attributes + TFunctionDeclarator declarator; + acceptAttributes(declarator.attributes); + + // typedef + bool typedefDecl = acceptTokenClass(EHTokTypedef); + + TType declaredType; + + // DX9 sampler declaration use a different syntax + // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to + // be possible to simultaneously compile D3D10+ style shaders and DX9 shaders. If we want to compile DX9 + // HLSL shaders, this will have to be a master level switch + // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used + // For that reason, this line is commented out + // if (acceptSamplerDeclarationDX9(declaredType)) + // return true; + + bool forbidDeclarators = (peekTokenClass(EHTokCBuffer) || peekTokenClass(EHTokTBuffer)); + // fully_specified_type + if (! acceptFullySpecifiedType(declaredType, nodeList, declarator.attributes, forbidDeclarators)) + return false; + + // cbuffer and tbuffer end with the closing '}'. + // No semicolon is included. + if (forbidDeclarators) + return true; + + // declarator_list + // : declarator + // : identifier + HlslToken idToken; + TIntermAggregate* initializers = nullptr; + while (acceptIdentifier(idToken)) { + TString *fullName = idToken.string; + if (_parseContext.symbolTable.atGlobalLevel()) + _parseContext.getFullNamespaceName(fullName); + if (peekTokenClass(EHTokLeftParen)) { + // looks like function parameters + + // merge in the attributes into the return type + _parseContext.transferTypeAttributes(token.loc, declarator.attributes, declaredType, true); + + // Potentially rename shader entry point function. No-op most of the time. + _parseContext.renameShaderFunction(fullName); + + // function_parameters + declarator.function = new TFunction(fullName, declaredType); + if (!acceptFunctionParameters(*declarator.function)) { + expected("function parameter list"); + return false; + } + + // post_decls + acceptPostDecls(declarator.function->getWritableType().getQualifier()); + + // compound_statement (function body definition) or just a prototype? + declarator.loc = token.loc; + if (peekTokenClass(EHTokLeftBrace)) { + if (declarator_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(declarator, nodeList, nullptr); + } else { + if (typedefDecl) + _parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); + _parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, true); + } + } else { + // A variable declaration. + + // merge in the attributes, the first time around, into the shared type + if (! declarator_list) + _parseContext.transferTypeAttributes(token.loc, declarator.attributes, declaredType); + + // Fix the storage qualifier if it's a global. + if (declaredType.getQualifier().storage == EvqTemporary && _parseContext.symbolTable.atGlobalLevel()) + declaredType.getQualifier().storage = EvqUniform; + + // recognize array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + + // We can handle multiple variables per type declaration, so + // the number of types can expand when arrayness is different. + TType variableType; + variableType.shallowCopy(declaredType); + + // In the most general case, arrayness is potentially coming both from the + // declared type and from the variable: "int[] a[];" or just one or the other. + // Merge it all to the variableType, so all arrayness is part of the variableType. + variableType.transferArraySizes(arraySizes); + variableType.copyArrayInnerSizes(declaredType.getArraySizes()); + + // samplers accept immediate sampler state + if (variableType.getBasicType() == EbtSampler) { + if (! acceptSamplerState()) + return false; + } + + // post_decls + acceptPostDecls(variableType.getQualifier()); + + // 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; + } + } + + // TODO: things scoped within an annotation need their own name space; + // TODO: strings are not yet handled. + if (variableType.getBasicType() != EbtString && _parseContext.getAnnotationNestingLevel() == 0) { + if (typedefDecl) + _parseContext.declareTypedef(idToken.loc, *fullName, variableType); + else if (variableType.getBasicType() == EbtBlock) { + if (expressionNode) + _parseContext.error(idToken.loc, "buffer aliasing not yet supported", "block initializer", ""); + _parseContext.declareBlock(idToken.loc, variableType, fullName); + _parseContext.declareStructBufferCounter(idToken.loc, variableType, *fullName); + } else { + if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) { + // this isn't really an individual variable, but a member of the $Global buffer + _parseContext.growGlobalUniformBlock(idToken.loc, variableType, *fullName); + } 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. + initializers = intermediate.growAggregate(initializers, + _parseContext.declareVariable(idToken.loc, *fullName, variableType, expressionNode), + idToken.loc); + } + } + } + } + + // COMMA + if (acceptTokenClass(EHTokComma)) + declarator_list = true; + } + + // The top-level initializer node is a sequence. + if (initializers != nullptr) + initializers->setOperator(EOpSequence); + + // Add the initializers' aggregate to the nodeList we were handed. + if (nodeList) + nodeList = intermediate.growAggregate(nodeList, initializers); + else + nodeList = initializers; + + // SEMICOLON + if (! acceptTokenClass(EHTokSemicolon)) { + // This may have been a false detection of what appeared to be a declaration, but + // was actually an assignment such as "float = 4", where "float" is an identifier. + // We put the token back to let further parsing happen for cases where that may + // happen. This errors on the side of caution, and mostly triggers the error. + if (peek() == EHTokAssign || peek() == EHTokLeftBracket || peek() == EHTokDot || peek() == EHTokComma) { + recedeToken(); + return false; + } else { + expected(";"); + return false; + } + } + + return true; +} + +// control_declaration +// : fully_specified_type identifier EQUAL expression +// +bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) +{ + node = nullptr; + TAttributes attributes; + + // fully_specified_type + TType type; + if (! acceptFullySpecifiedType(type, attributes)) + return false; + + if (attributes.size() > 0) + _parseContext.warn(token.loc, "attributes don't apply to control declaration", "", ""); + + // filter out type casts + if (peekTokenClass(EHTokLeftParen)) { + recedeToken(); + return false; + } + + // identifier + HlslToken idToken; + if (! acceptIdentifier(idToken)) { + expected("identifier"); + return false; + } + + // 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, expressionNode); + + return true; +} + +// fully_specified_type +// : type_specifier +// | type_qualifier type_specifier +// +bool HlslGrammar::acceptFullySpecifiedType(TType& type, const TAttributes& attributes) +{ + TIntermNode* nodeList = nullptr; + return acceptFullySpecifiedType(type, nodeList, attributes); +} +bool HlslGrammar::acceptFullySpecifiedType(TType& type, TIntermNode*& nodeList, const TAttributes& attributes, bool forbidDeclarators) +{ + // type_qualifier + TQualifier qualifier; + qualifier.clear(); + if (! acceptQualifier(qualifier)) + return false; + TSourceLoc loc = token.loc; + + // type_specifier + if (! acceptType(type, nodeList)) { + // If this is not a type, we may have inadvertently gone down a wrong path + // by parsing "sample", which can be treated like either an identifier or a + // qualifier. Back it out, if we did. + if (qualifier.sample) + recedeToken(); + + return false; + } + + if (type.getBasicType() == EbtBlock) { + // the type was a block, which set some parts of the qualifier + _parseContext.mergeQualifiers(type.getQualifier(), qualifier); + + // merge in the attributes + _parseContext.transferTypeAttributes(token.loc, attributes, type); + + // further, it can create an anonymous instance of the block + // (cbuffer and tbuffer don't consume the next identifier, and + // should set forbidDeclarators) + if (forbidDeclarators || peek() != EHTokIdentifier) + _parseContext.declareBlock(loc, type); + } else { + // Some qualifiers are set when parsing the type. Merge those with + // whatever comes from acceptQualifier. + assert(qualifier.layoutFormat == ElfNone); + + qualifier.layoutFormat = type.getQualifier().layoutFormat; + qualifier.precision = type.getQualifier().precision; + + if (type.getQualifier().storage == EvqOut || + type.getQualifier().storage == EvqBuffer) { + qualifier.storage = type.getQualifier().storage; + qualifier.readonly = type.getQualifier().readonly; + } + + if (type.isBuiltIn()) + qualifier.builtIn = type.getQualifier().builtIn; + + type.getQualifier() = qualifier; + } + + return true; +} + +// type_qualifier +// : qualifier qualifier ... +// +// Zero or more of these, so this can't return false. +// +bool HlslGrammar::acceptQualifier(TQualifier& qualifier) +{ + do { + switch (peek()) { + case EHTokStatic: + qualifier.storage = _parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + break; + case EHTokExtern: + // TODO: no meaning in glslang? + break; + case EHTokShared: + // TODO: hint + break; + case EHTokGroupShared: + qualifier.storage = EvqShared; + break; + case EHTokUniform: + qualifier.storage = EvqUniform; + break; + case EHTokConst: + qualifier.storage = EvqConst; + break; + case EHTokVolatile: + qualifier.volatil = true; + break; + case EHTokLinear: + qualifier.smooth = true; + break; + case EHTokCentroid: + qualifier.centroid = true; + break; + case EHTokNointerpolation: + qualifier.flat = true; + break; + case EHTokNoperspective: + qualifier.nopersp = true; + break; + case EHTokSample: + qualifier.sample = true; + break; + case EHTokRowMajor: + qualifier.layoutMatrix = ElmColumnMajor; + break; + case EHTokColumnMajor: + qualifier.layoutMatrix = ElmRowMajor; + break; + case EHTokPrecise: + qualifier.noContraction = true; + break; + case EHTokIn: + qualifier.storage = (qualifier.storage == EvqOut) ? EvqInOut : EvqIn; + break; + case EHTokOut: + qualifier.storage = (qualifier.storage == EvqIn) ? EvqInOut : EvqOut; + break; + case EHTokInOut: + qualifier.storage = EvqInOut; + break; + case EHTokLayout: + if (! acceptLayoutQualifierList(qualifier)) + return false; + continue; + case EHTokGloballyCoherent: + qualifier.coherent = true; + break; + case EHTokInline: + // TODO: map this to SPIR-V function control + break; + + // GS geometries: these are specified on stage input variables, and are an error (not verified here) + // for output variables. + case EHTokPoint: + qualifier.storage = EvqIn; + if (!_parseContext.handleInputGeometry(token.loc, ElgPoints)) + return false; + break; + case EHTokLine: + qualifier.storage = EvqIn; + if (!_parseContext.handleInputGeometry(token.loc, ElgLines)) + return false; + break; + case EHTokTriangle: + qualifier.storage = EvqIn; + if (!_parseContext.handleInputGeometry(token.loc, ElgTriangles)) + return false; + break; + case EHTokLineAdj: + qualifier.storage = EvqIn; + if (!_parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) + return false; + break; + case EHTokTriangleAdj: + qualifier.storage = EvqIn; + if (!_parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) + return false; + break; + + default: + return true; + } + advanceToken(); + } while (true); +} + +// layout_qualifier_list +// : LAYOUT LEFT_PAREN layout_qualifier COMMA layout_qualifier ... RIGHT_PAREN +// +// layout_qualifier +// : identifier +// | identifier EQUAL expression +// +// Zero or more of these, so this can't return false. +// +bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) +{ + if (! acceptTokenClass(EHTokLayout)) + return false; + + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + return false; + + do { + // identifier + HlslToken idToken; + if (! acceptIdentifier(idToken)) + break; + + // EQUAL expression + if (acceptTokenClass(EHTokAssign)) { + TIntermTyped* expr; + if (! acceptConditionalExpression(expr)) { + expected("expression"); + return false; + } + _parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); + } else + _parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); + + // COMMA + if (! acceptTokenClass(EHTokComma)) + break; + } while (true); + + // RIGHT_PAREN + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + return false; + } + + return true; +} + +// template_type +// : FLOAT +// | DOUBLE +// | INT +// | DWORD +// | UINT +// | BOOL +// +bool HlslGrammar::acceptTemplateVecMatBasicType(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 (! acceptTemplateVecMatBasicType(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 (! acceptTemplateVecMatBasicType(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, + rows->getAsConstantUnion()->getConstArray()[0].getIConst(), + cols->getAsConstantUnion()->getConstArray()[0].getIConst()); + + if (!acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + +// layout_geometry +// : LINESTREAM +// | POINTSTREAM +// | TRIANGLESTREAM +// +bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry) +{ + // read geometry type + const EHlslTokenClass geometryType = peek(); + + switch (geometryType) { + case EHTokPointStream: geometry = ElgPoints; break; + case EHTokLineStream: geometry = ElgLineStrip; break; + case EHTokTriangleStream: geometry = ElgTriangleStrip; break; + default: + return false; // not a layout geometry + } + + advanceToken(); // consume the layout keyword + return true; +} + +// tessellation_decl_type +// : INPUTPATCH +// | OUTPUTPATCH +// +bool HlslGrammar::acceptTessellationDeclType(TBuiltInVariable& patchType) +{ + // read geometry type + const EHlslTokenClass tessType = peek(); + + switch (tessType) { + case EHTokInputPatch: patchType = EbvInputPatch; break; + case EHTokOutputPatch: patchType = EbvOutputPatch; break; + default: + return false; // not a tessellation decl + } + + advanceToken(); // consume the keyword + return true; +} + +// tessellation_patch_template_type +// : tessellation_decl_type LEFT_ANGLE type comma integer_literal RIGHT_ANGLE +// +bool HlslGrammar::acceptTessellationPatchTemplateType(TType& type) +{ + TBuiltInVariable patchType; + + if (! acceptTessellationDeclType(patchType)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) + return false; + + if (! acceptType(type)) { + expected("tessellation patch type"); + return false; + } + + if (! acceptTokenClass(EHTokComma)) + return false; + + // integer size + if (! peekTokenClass(EHTokIntConstant)) { + expected("literal integer"); + return false; + } + + TIntermTyped* size; + if (! acceptLiteral(size)) + return false; + + TArraySizes* arraySizes = new TArraySizes; + arraySizes->addInnerSize(size->getAsConstantUnion()->getConstArray()[0].getIConst()); + type.transferArraySizes(arraySizes); + type.getQualifier().builtIn = patchType; + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + +// stream_out_template_type +// : output_primitive_geometry_type LEFT_ANGLE type RIGHT_ANGLE +// +bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geometry) +{ + geometry = ElgNone; + + if (! acceptOutputPrimitiveGeometry(geometry)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) + return false; + + if (! acceptType(type)) { + expected("stream output type"); + return false; + } + + type.getQualifier().storage = EvqOut; + type.getQualifier().builtIn = EbvGsOutputStream; + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + +// annotations +// : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE +// +bool HlslGrammar::acceptAnnotations(TQualifier&) +{ + if (! acceptTokenClass(EHTokLeftAngle)) + return false; + + // note that we are nesting a name space + _parseContext.nestAnnotations(); + + // declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE + do { + // eat any extra SEMI_COLON; don't know if the grammar calls for this or not + while (acceptTokenClass(EHTokSemicolon)) + ; + + if (acceptTokenClass(EHTokRightAngle)) + break; + + // declaration + TIntermNode* node = nullptr; + if (! acceptDeclaration(node)) { + expected("declaration in annotation"); + return false; + } + } while (true); + + _parseContext.unnestAnnotations(); + return true; +} + +// subpass input type +// : SUBPASSINPUT +// | SUBPASSINPUT VECTOR LEFT_ANGLE template_type RIGHT_ANGLE +// | SUBPASSINPUTMS +// | SUBPASSINPUTMS VECTOR LEFT_ANGLE template_type RIGHT_ANGLE +bool HlslGrammar::acceptSubpassInputType(TType& type) +{ + // read subpass type + const EHlslTokenClass subpassInputType = peek(); + + bool multisample; + + switch (subpassInputType) { + case EHTokSubpassInput: multisample = false; break; + case EHTokSubpassInputMS: multisample = true; break; + default: + return false; // not a subpass input declaration + } + + advanceToken(); // consume the sampler type keyword + + TType subpassType(EbtFloat, EvqUniform, 4); // default type is float4 + + if (acceptTokenClass(EHTokLeftAngle)) { + if (! acceptType(subpassType)) { + expected("scalar or vector type"); + return false; + } + + const TBasicType basicRetType = subpassType.getBasicType() ; + + switch (basicRetType) { + case EbtFloat: + case EbtUint: + case EbtInt: + case EbtStruct: + break; + default: + unimplemented("basic type in subpass input"); + return false; + } + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + } + + const TBasicType subpassBasicType = subpassType.isStruct() ? (*subpassType.getStruct())[0].type->getBasicType() + : subpassType.getBasicType(); + + TSampler sampler; + sampler.setSubpass(subpassBasicType, multisample); + + // Remember the declared return type. Function returns false on error. + if (!_parseContext.setTextureReturnType(sampler, subpassType, token.loc)) + return false; + + type.shallowCopy(TType(sampler, EvqUniform)); + + return true; +} + +// sampler_type +// : SAMPLER +// | SAMPLER1D +// | SAMPLER2D +// | SAMPLER3D +// | SAMPLERCUBE +// | SAMPLERSTATE +// | SAMPLERCOMPARISONSTATE +bool HlslGrammar::acceptSamplerType(TType& type) +{ + // read sampler type + const EHlslTokenClass samplerType = peek(); + + // TODO: for DX9 + // TSamplerDim dim = EsdNone; + + bool isShadow = false; + + switch (samplerType) { + case EHTokSampler: break; + case EHTokSampler1d: /*dim = Esd1D*/; break; + case EHTokSampler2d: /*dim = Esd2D*/; break; + case EHTokSampler3d: /*dim = Esd3D*/; break; + case EHTokSamplerCube: /*dim = EsdCube*/; break; + case EHTokSamplerState: break; + case EHTokSamplerComparisonState: isShadow = true; break; + default: + return false; // not a sampler declaration + } + + advanceToken(); // consume the sampler type keyword + + TArraySizes* arraySizes = nullptr; // TODO: array + + TSampler sampler; + sampler.setPureSampler(isShadow); + + type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); + + return true; +} + +// texture_type +// | BUFFER +// | TEXTURE1D +// | TEXTURE1DARRAY +// | TEXTURE2D +// | TEXTURE2DARRAY +// | TEXTURE3D +// | TEXTURECUBE +// | TEXTURECUBEARRAY +// | TEXTURE2DMS +// | TEXTURE2DMSARRAY +// | RWBUFFER +// | RWTEXTURE1D +// | RWTEXTURE1DARRAY +// | RWTEXTURE2D +// | RWTEXTURE2DARRAY +// | RWTEXTURE3D + +bool HlslGrammar::acceptTextureType(TType& type) +{ + const EHlslTokenClass textureType = peek(); + + TSamplerDim dim = EsdNone; + bool array = false; + bool ms = false; + bool image = false; + bool combined = true; + + switch (textureType) { + case EHTokBuffer: dim = EsdBuffer; combined = false; break; + case EHTokTexture1d: dim = Esd1D; break; + case EHTokTexture1darray: dim = Esd1D; array = true; break; + case EHTokTexture2d: dim = Esd2D; break; + case EHTokTexture2darray: dim = Esd2D; array = true; break; + case EHTokTexture3d: dim = Esd3D; break; + case EHTokTextureCube: dim = EsdCube; break; + case EHTokTextureCubearray: dim = EsdCube; array = true; break; + case EHTokTexture2DMS: dim = Esd2D; ms = true; break; + case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; + case EHTokRWBuffer: dim = EsdBuffer; image=true; break; + case EHTokRWTexture1d: dim = Esd1D; array=false; image=true; break; + case EHTokRWTexture1darray: dim = Esd1D; array=true; image=true; break; + case EHTokRWTexture2d: dim = Esd2D; array=false; image=true; break; + case EHTokRWTexture2darray: dim = Esd2D; array=true; image=true; break; + case EHTokRWTexture3d: dim = Esd3D; array=false; image=true; break; + default: + return false; // not a texture declaration + } + + advanceToken(); // consume the texture object keyword + + TType txType(EbtFloat, EvqUniform, 4); // default type is float4 + + TIntermTyped* msCount = nullptr; + + // texture type: required for multisample types and RWBuffer/RWTextures! + if (acceptTokenClass(EHTokLeftAngle)) { + if (! acceptType(txType)) { + expected("scalar or vector type"); + return false; + } + + const TBasicType basicRetType = txType.getBasicType() ; + + switch (basicRetType) { + case EbtFloat: + case EbtUint: + case EbtInt: + case EbtStruct: + break; + default: + unimplemented("basic type in texture"); + return false; + } + + // Buffers can handle small mats if they fit in 4 components + if (dim == EsdBuffer && txType.isMatrix()) { + if ((txType.getMatrixCols() * txType.getMatrixRows()) > 4) { + expected("components < 4 in matrix buffer type"); + return false; + } + + // TODO: except we don't handle it yet... + unimplemented("matrix type in buffer"); + return false; + } + + if (!txType.isScalar() && !txType.isVector() && !txType.isStruct()) { + expected("scalar, vector, or struct type"); + return false; + } + + if (ms && acceptTokenClass(EHTokComma)) { + // read sample count for multisample types, if given + if (! peekTokenClass(EHTokIntConstant)) { + expected("multisample count"); + return false; + } + + if (! acceptLiteral(msCount)) // should never fail, since we just found an integer + return false; + } + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + } else if (ms) { + expected("texture type for multisample"); + return false; + } else if (image) { + expected("type for RWTexture/RWBuffer"); + return false; + } + + TArraySizes* arraySizes = nullptr; + const bool shadow = false; // declared on the sampler + + TSampler sampler; + TLayoutFormat format = ElfNone; + + // Buffer, RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. + if (image || dim == EsdBuffer) + format = _parseContext.getLayoutFromTxType(token.loc, txType); + + const TBasicType txBasicType = txType.isStruct() ? (*txType.getStruct())[0].type->getBasicType() + : txType.getBasicType(); + + // Non-image Buffers are combined + if (dim == EsdBuffer && !image) { + sampler.set(txType.getBasicType(), dim, array); + } else { + // DX10 textures are separated. TODO: DX9. + if (image) { + sampler.setImage(txBasicType, dim, array, shadow, ms); + } else { + sampler.setTexture(txBasicType, dim, array, shadow, ms); + } + } + + // Remember the declared return type. Function returns false on error. + if (!_parseContext.setTextureReturnType(sampler, txType, token.loc)) + return false; + + // Force uncombined, if necessary + if (!combined) + sampler.combined = false; + + type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); + type.getQualifier().layoutFormat = format; + + 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) +{ + TIntermNode* nodeList = nullptr; + return acceptType(type, nodeList); +} +bool HlslGrammar::acceptType(TType& type, TIntermNode*& nodeList) +{ + // Basic types for min* types, use native halfs if the option allows them. + bool enable16BitTypes = _parseContext.hlslEnable16BitTypes(); + + const TBasicType min16float_bt = enable16BitTypes ? EbtFloat16 : EbtFloat; + const TBasicType min10float_bt = enable16BitTypes ? EbtFloat16 : EbtFloat; + const TBasicType half_bt = enable16BitTypes ? EbtFloat16 : EbtFloat; + const TBasicType min16int_bt = enable16BitTypes ? EbtInt16 : EbtInt; + const TBasicType min12int_bt = enable16BitTypes ? EbtInt16 : EbtInt; + const TBasicType min16uint_bt = enable16BitTypes ? EbtUint16 : EbtUint; + + // Some types might have turned into identifiers. Take the hit for checking + // when this has happened. + if (typeIdentifiers) { + const char* identifierString = getTypeString(peek()); + if (identifierString != nullptr) { + TString name = identifierString; + // if it's an identifier, it's not a type + if (_parseContext.symbolTable.find(name) != nullptr) + return false; + } + } + + bool isUnorm = false; + bool isSnorm = false; + + // Accept snorm and unorm. Presently, this is ignored, save for an error check below. + switch (peek()) { + case EHTokUnorm: + isUnorm = true; + advanceToken(); // eat the token + break; + case EHTokSNorm: + isSnorm = true; + advanceToken(); // eat the token + break; + default: + break; + } + + switch (peek()) { + case EHTokVector: + return acceptVectorTemplateType(type); + break; + + case EHTokMatrix: + return acceptMatrixTemplateType(type); + break; + + case EHTokPointStream: // fall through + case EHTokLineStream: // ... + case EHTokTriangleStream: // ... + { + TLayoutGeometry geometry; + if (! acceptStreamOutTemplateType(type, geometry)) + return false; + + if (! _parseContext.handleOutputGeometry(token.loc, geometry)) + return false; + + return true; + } + + case EHTokInputPatch: // fall through + case EHTokOutputPatch: // ... + { + if (! acceptTessellationPatchTemplateType(type)) + return false; + + return true; + } + + case EHTokSampler: // fall through + case EHTokSampler1d: // ... + case EHTokSampler2d: // ... + case EHTokSampler3d: // ... + case EHTokSamplerCube: // ... + case EHTokSamplerState: // ... + case EHTokSamplerComparisonState: // ... + return acceptSamplerType(type); + break; + + case EHTokSubpassInput: // fall through + case EHTokSubpassInputMS: // ... + return acceptSubpassInputType(type); + break; + + case EHTokBuffer: // fall through + case EHTokTexture1d: // ... + case EHTokTexture1darray: // ... + case EHTokTexture2d: // ... + case EHTokTexture2darray: // ... + case EHTokTexture3d: // ... + case EHTokTextureCube: // ... + case EHTokTextureCubearray: // ... + case EHTokTexture2DMS: // ... + case EHTokTexture2DMSarray: // ... + case EHTokRWTexture1d: // ... + case EHTokRWTexture1darray: // ... + case EHTokRWTexture2d: // ... + case EHTokRWTexture2darray: // ... + case EHTokRWTexture3d: // ... + case EHTokRWBuffer: // ... + return acceptTextureType(type); + break; + + case EHTokAppendStructuredBuffer: + case EHTokByteAddressBuffer: + case EHTokConsumeStructuredBuffer: + case EHTokRWByteAddressBuffer: + case EHTokRWStructuredBuffer: + case EHTokStructuredBuffer: + return acceptStructBufferType(type); + break; + + case EHTokTextureBuffer: + return acceptTextureBufferType(type); + break; + + case EHTokConstantBuffer: + return acceptConstantBufferType(type); + + case EHTokClass: + case EHTokStruct: + case EHTokCBuffer: + case EHTokTBuffer: + return acceptStruct(type, nodeList); + + case EHTokIdentifier: + // An identifier could be for a user-defined type. + // Note we cache the symbol table lookup, to save for a later rule + // when this is not a type. + if (_parseContext.lookupUserType(*token.string, type) != nullptr) { + advanceToken(); + return true; + } else + return false; + + case EHTokVoid: + new(&type) TType(EbtVoid); + break; + + case EHTokString: + new(&type) TType(EbtString); + break; + + case EHTokFloat: + new(&type) TType(EbtFloat); + break; + case EHTokFloat1: + new(&type) TType(EbtFloat); + type.makeVector(); + break; + case EHTokFloat2: + new(&type) TType(EbtFloat, EvqTemporary, 2); + break; + case EHTokFloat3: + new(&type) TType(EbtFloat, EvqTemporary, 3); + break; + case EHTokFloat4: + new(&type) TType(EbtFloat, EvqTemporary, 4); + break; + + case EHTokDouble: + new(&type) TType(EbtDouble); + break; + case EHTokDouble1: + new(&type) TType(EbtDouble); + type.makeVector(); + break; + case EHTokDouble2: + new(&type) TType(EbtDouble, EvqTemporary, 2); + break; + case EHTokDouble3: + new(&type) TType(EbtDouble, EvqTemporary, 3); + break; + case EHTokDouble4: + new(&type) TType(EbtDouble, EvqTemporary, 4); + break; + + case EHTokInt: + case EHTokDword: + new(&type) TType(EbtInt); + break; + case EHTokInt1: + new(&type) TType(EbtInt); + type.makeVector(); + break; + case EHTokInt2: + new(&type) TType(EbtInt, EvqTemporary, 2); + break; + case EHTokInt3: + new(&type) TType(EbtInt, EvqTemporary, 3); + break; + case EHTokInt4: + new(&type) TType(EbtInt, EvqTemporary, 4); + break; + + case EHTokUint: + new(&type) TType(EbtUint); + break; + case EHTokUint1: + new(&type) TType(EbtUint); + type.makeVector(); + break; + case EHTokUint2: + new(&type) TType(EbtUint, EvqTemporary, 2); + break; + case EHTokUint3: + new(&type) TType(EbtUint, EvqTemporary, 3); + break; + case EHTokUint4: + new(&type) TType(EbtUint, EvqTemporary, 4); + break; + + case EHTokUint64: + new(&type) TType(EbtUint64); + break; + + case EHTokBool: + new(&type) TType(EbtBool); + break; + case EHTokBool1: + new(&type) TType(EbtBool); + type.makeVector(); + break; + case EHTokBool2: + new(&type) TType(EbtBool, EvqTemporary, 2); + break; + case EHTokBool3: + new(&type) TType(EbtBool, EvqTemporary, 3); + break; + case EHTokBool4: + new(&type) TType(EbtBool, EvqTemporary, 4); + break; + + case EHTokHalf: + new(&type) TType(half_bt, EvqTemporary); + break; + case EHTokHalf1: + new(&type) TType(half_bt, EvqTemporary); + type.makeVector(); + break; + case EHTokHalf2: + new(&type) TType(half_bt, EvqTemporary, 2); + break; + case EHTokHalf3: + new(&type) TType(half_bt, EvqTemporary, 3); + break; + case EHTokHalf4: + new(&type) TType(half_bt, EvqTemporary, 4); + break; + + case EHTokMin16float: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16float1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16float2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16float3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16float4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin10float: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin10float1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin10float2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin10float3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin10float4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin16int: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16int1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16int2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16int3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16int4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin12int: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin12int1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin12int2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin12int3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin12int4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin16uint: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16uint1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16uint2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16uint3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16uint4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokInt1x1: + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 1); + break; + case EHTokInt1x2: + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 2); + break; + case EHTokInt1x3: + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 3); + break; + case EHTokInt1x4: + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 4); + break; + case EHTokInt2x1: + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 1); + break; + case EHTokInt2x2: + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 2); + break; + case EHTokInt2x3: + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 3); + break; + case EHTokInt2x4: + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 4); + break; + case EHTokInt3x1: + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 1); + break; + case EHTokInt3x2: + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 2); + break; + case EHTokInt3x3: + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 3); + break; + case EHTokInt3x4: + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 4); + break; + case EHTokInt4x1: + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 1); + break; + case EHTokInt4x2: + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 2); + break; + case EHTokInt4x3: + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 3); + break; + case EHTokInt4x4: + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 4); + break; + + case EHTokUint1x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 1); + break; + case EHTokUint1x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 2); + break; + case EHTokUint1x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 3); + break; + case EHTokUint1x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 4); + break; + case EHTokUint2x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 1); + break; + case EHTokUint2x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 2); + break; + case EHTokUint2x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 3); + break; + case EHTokUint2x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 4); + break; + case EHTokUint3x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 1); + break; + case EHTokUint3x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 2); + break; + case EHTokUint3x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 3); + break; + case EHTokUint3x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 4); + break; + case EHTokUint4x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 1); + break; + case EHTokUint4x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 2); + break; + case EHTokUint4x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 3); + break; + case EHTokUint4x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 4); + break; + + case EHTokBool1x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 1); + break; + case EHTokBool1x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 2); + break; + case EHTokBool1x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 3); + break; + case EHTokBool1x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 4); + break; + case EHTokBool2x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 1); + break; + case EHTokBool2x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 2); + break; + case EHTokBool2x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 3); + break; + case EHTokBool2x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 4); + break; + case EHTokBool3x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 1); + break; + case EHTokBool3x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 2); + break; + case EHTokBool3x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 3); + break; + case EHTokBool3x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 4); + break; + case EHTokBool4x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 1); + break; + case EHTokBool4x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 2); + break; + case EHTokBool4x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 3); + break; + case EHTokBool4x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 4); + break; + + case EHTokFloat1x1: + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 1); + break; + case EHTokFloat1x2: + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 2); + break; + case EHTokFloat1x3: + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 3); + break; + case EHTokFloat1x4: + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 4); + break; + case EHTokFloat2x1: + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 1); + break; + case EHTokFloat2x2: + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 2); + break; + case EHTokFloat2x3: + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 3); + break; + case EHTokFloat2x4: + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 4); + break; + case EHTokFloat3x1: + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 1); + break; + case EHTokFloat3x2: + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 2); + break; + case EHTokFloat3x3: + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 3); + break; + case EHTokFloat3x4: + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 4); + break; + case EHTokFloat4x1: + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 1); + break; + case EHTokFloat4x2: + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 2); + break; + case EHTokFloat4x3: + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 3); + break; + case EHTokFloat4x4: + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 4); + break; + + case EHTokHalf1x1: + new(&type) TType(half_bt, EvqTemporary, 0, 1, 1); + break; + case EHTokHalf1x2: + new(&type) TType(half_bt, EvqTemporary, 0, 1, 2); + break; + case EHTokHalf1x3: + new(&type) TType(half_bt, EvqTemporary, 0, 1, 3); + break; + case EHTokHalf1x4: + new(&type) TType(half_bt, EvqTemporary, 0, 1, 4); + break; + case EHTokHalf2x1: + new(&type) TType(half_bt, EvqTemporary, 0, 2, 1); + break; + case EHTokHalf2x2: + new(&type) TType(half_bt, EvqTemporary, 0, 2, 2); + break; + case EHTokHalf2x3: + new(&type) TType(half_bt, EvqTemporary, 0, 2, 3); + break; + case EHTokHalf2x4: + new(&type) TType(half_bt, EvqTemporary, 0, 2, 4); + break; + case EHTokHalf3x1: + new(&type) TType(half_bt, EvqTemporary, 0, 3, 1); + break; + case EHTokHalf3x2: + new(&type) TType(half_bt, EvqTemporary, 0, 3, 2); + break; + case EHTokHalf3x3: + new(&type) TType(half_bt, EvqTemporary, 0, 3, 3); + break; + case EHTokHalf3x4: + new(&type) TType(half_bt, EvqTemporary, 0, 3, 4); + break; + case EHTokHalf4x1: + new(&type) TType(half_bt, EvqTemporary, 0, 4, 1); + break; + case EHTokHalf4x2: + new(&type) TType(half_bt, EvqTemporary, 0, 4, 2); + break; + case EHTokHalf4x3: + new(&type) TType(half_bt, EvqTemporary, 0, 4, 3); + break; + case EHTokHalf4x4: + new(&type) TType(half_bt, EvqTemporary, 0, 4, 4); + break; + + case EHTokDouble1x1: + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 1); + break; + case EHTokDouble1x2: + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 2); + break; + case EHTokDouble1x3: + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 3); + break; + case EHTokDouble1x4: + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 4); + break; + case EHTokDouble2x1: + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 1); + break; + case EHTokDouble2x2: + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 2); + break; + case EHTokDouble2x3: + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 3); + break; + case EHTokDouble2x4: + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 4); + break; + case EHTokDouble3x1: + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 1); + break; + case EHTokDouble3x2: + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 2); + break; + case EHTokDouble3x3: + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 3); + break; + case EHTokDouble3x4: + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 4); + break; + case EHTokDouble4x1: + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 1); + break; + case EHTokDouble4x2: + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 2); + break; + case EHTokDouble4x3: + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 3); + break; + case EHTokDouble4x4: + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 4); + break; + + default: + return false; + } + + advanceToken(); + + if ((isUnorm || isSnorm) && !type.isFloatingDomain()) { + _parseContext.error(token.loc, "unorm and snorm only valid in floating point domain", "", ""); + return false; + } + + return true; +} + +// struct +// : struct_type IDENTIFIER post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE +// | struct_type post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE +// | struct_type IDENTIFIER // use of previously declared struct type +// +// struct_type +// : STRUCT +// | CLASS +// | CBUFFER +// | TBUFFER +// +bool HlslGrammar::acceptStruct(TType& type, TIntermNode*& nodeList) +{ + // This storage qualifier will tell us whether it's an AST + // block type or just a generic structure type. + TStorageQualifier storageQualifier = EvqTemporary; + bool readonly = false; + + if (acceptTokenClass(EHTokCBuffer)) { + // CBUFFER + storageQualifier = EvqUniform; + } else if (acceptTokenClass(EHTokTBuffer)) { + // TBUFFER + storageQualifier = EvqBuffer; + readonly = true; + } else if (! acceptTokenClass(EHTokClass) && ! acceptTokenClass(EHTokStruct)) { + // Neither CLASS nor STRUCT + return false; + } + + // Now known to be one of CBUFFER, TBUFFER, CLASS, or STRUCT + + + // IDENTIFIER. It might also be a keyword which can double as an identifier. + // For example: 'cbuffer ConstantBuffer' or 'struct ConstantBuffer' is legal. + // 'cbuffer int' is also legal, and 'struct int' appears rejected only because + // it attempts to redefine the 'int' type. + const char* idString = getTypeString(peek()); + TString structName = ""; + if (peekTokenClass(EHTokIdentifier) || idString != nullptr) { + if (idString != nullptr) + structName = *idString; + else + structName = *token.string; + advanceToken(); + } + + // post_decls + TQualifier postDeclQualifier; + postDeclQualifier.clear(); + bool postDeclsFound = acceptPostDecls(postDeclQualifier); + + // LEFT_BRACE, or + // struct_type IDENTIFIER + if (! acceptTokenClass(EHTokLeftBrace)) { + if (structName.size() > 0 && !postDeclsFound && _parseContext.lookupUserType(structName, type) != nullptr) { + // struct_type IDENTIFIER + return true; + } else { + expected("{"); + return false; + } + } + + + // struct_declaration_list + TTypeList* typeList; + // Save each member function so they can be processed after we have a fully formed 'this'. + TVector functionDeclarators; + + _parseContext.pushNamespace(structName); + bool acceptedList = acceptStructDeclarationList(typeList, nodeList, functionDeclarators); + _parseContext.popNamespace(); + + if (! acceptedList) { + expected("struct member declarations"); + return false; + } + + // RIGHT_BRACE + if (! acceptTokenClass(EHTokRightBrace)) { + expected("}"); + return false; + } + + // create the user-defined type + if (storageQualifier == EvqTemporary) + new(&type) TType(typeList, structName); + else { + postDeclQualifier.storage = storageQualifier; + postDeclQualifier.readonly = readonly; + new(&type) TType(typeList, structName, postDeclQualifier); // sets EbtBlock + } + + _parseContext.declareStruct(token.loc, structName, type); + + // For member functions: now that we know the type of 'this', go back and + // - add their implicit argument with 'this' (not to the mangling, just the argument list) + // - parse the functions, their tokens were saved for deferred parsing (now) + for (int b = 0; b < (int)functionDeclarators.size(); ++b) { + // update signature + if (functionDeclarators[b].function->hasImplicitThis()) + functionDeclarators[b].function->addThisParameter(type, intermediate.implicitThisName); + } + + // All member functions get parsed inside the class/struct namespace and with the + // class/struct members in a symbol-table level. + _parseContext.pushNamespace(structName); + _parseContext.pushThisScope(type, functionDeclarators); + bool deferredSuccess = true; + for (int b = 0; b < (int)functionDeclarators.size() && deferredSuccess; ++b) { + // parse body + pushTokenStream(functionDeclarators[b].body); + if (! acceptFunctionBody(functionDeclarators[b], nodeList)) + deferredSuccess = false; + popTokenStream(); + } + _parseContext.popThisScope(); + _parseContext.popNamespace(); + + return deferredSuccess; +} + +// constantbuffer +// : CONSTANTBUFFER LEFT_ANGLE type RIGHT_ANGLE +bool HlslGrammar::acceptConstantBufferType(TType& type) +{ + if (! acceptTokenClass(EHTokConstantBuffer)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) { + expected("left angle bracket"); + return false; + } + + TType templateType; + if (! acceptType(templateType)) { + expected("type"); + return false; + } + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + TQualifier postDeclQualifier; + postDeclQualifier.clear(); + postDeclQualifier.storage = EvqUniform; + + if (templateType.isStruct()) { + // Make a block from the type parsed as the template argument + TTypeList* typeList = templateType.getWritableStruct(); + new(&type) TType(typeList, "", postDeclQualifier); // sets EbtBlock + + type.getQualifier().storage = EvqUniform; + + return true; + } else { + _parseContext.error(token.loc, "non-structure type in ConstantBuffer", "", ""); + return false; + } +} + +// texture_buffer +// : TEXTUREBUFFER LEFT_ANGLE type RIGHT_ANGLE +bool HlslGrammar::acceptTextureBufferType(TType& type) +{ + if (! acceptTokenClass(EHTokTextureBuffer)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) { + expected("left angle bracket"); + return false; + } + + TType templateType; + if (! acceptType(templateType)) { + expected("type"); + return false; + } + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + templateType.getQualifier().storage = EvqBuffer; + templateType.getQualifier().readonly = true; + + TType blockType(templateType.getWritableStruct(), "", templateType.getQualifier()); + + blockType.getQualifier().storage = EvqBuffer; + blockType.getQualifier().readonly = true; + + type.shallowCopy(blockType); + + return true; +} + + +// struct_buffer +// : APPENDSTRUCTUREDBUFFER +// | BYTEADDRESSBUFFER +// | CONSUMESTRUCTUREDBUFFER +// | RWBYTEADDRESSBUFFER +// | RWSTRUCTUREDBUFFER +// | STRUCTUREDBUFFER +bool HlslGrammar::acceptStructBufferType(TType& type) +{ + const EHlslTokenClass structBuffType = peek(); + + // TODO: globallycoherent + bool hasTemplateType = true; + bool readonly = false; + + TStorageQualifier storage = EvqBuffer; + TBuiltInVariable builtinType = EbvNone; + + switch (structBuffType) { + case EHTokAppendStructuredBuffer: + builtinType = EbvAppendConsume; + break; + case EHTokByteAddressBuffer: + hasTemplateType = false; + readonly = true; + builtinType = EbvByteAddressBuffer; + break; + case EHTokConsumeStructuredBuffer: + builtinType = EbvAppendConsume; + break; + case EHTokRWByteAddressBuffer: + hasTemplateType = false; + builtinType = EbvRWByteAddressBuffer; + break; + case EHTokRWStructuredBuffer: + builtinType = EbvRWStructuredBuffer; + break; + case EHTokStructuredBuffer: + builtinType = EbvStructuredBuffer; + readonly = true; + break; + default: + return false; // not a structure buffer type + } + + advanceToken(); // consume the structure keyword + + // type on which this StructedBuffer is templatized. E.g, StructedBuffer ==> MyStruct + TType* templateType = new TType; + + if (hasTemplateType) { + if (! acceptTokenClass(EHTokLeftAngle)) { + expected("left angle bracket"); + return false; + } + + if (! acceptType(*templateType)) { + expected("type"); + return false; + } + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + } else { + // byte address buffers have no explicit type. + TType uintType(EbtUint, storage); + templateType->shallowCopy(uintType); + } + + // Create an unsized array out of that type. + // TODO: does this work if it's already an array type? + TArraySizes* unsizedArray = new TArraySizes; + unsizedArray->addInnerSize(UnsizedArraySize); + templateType->transferArraySizes(unsizedArray); + templateType->getQualifier().storage = storage; + + // field name is canonical for all structbuffers + templateType->setFieldName("@data"); + + TTypeList* blockStruct = new TTypeList; + TTypeLoc member = { templateType, token.loc }; + blockStruct->push_back(member); + + // This is the type of the buffer block (SSBO) + TType blockType(blockStruct, "", templateType->getQualifier()); + + blockType.getQualifier().storage = storage; + blockType.getQualifier().readonly = readonly; + blockType.getQualifier().builtIn = builtinType; + + // We may have created an equivalent type before, in which case we should use its + // deep structure. + _parseContext.shareStructBufferType(blockType); + + type.shallowCopy(blockType); + + return true; +} + +// struct_declaration_list +// : struct_declaration SEMI_COLON struct_declaration SEMI_COLON ... +// +// struct_declaration +// : attributes fully_specified_type struct_declarator COMMA struct_declarator ... +// | attributes fully_specified_type IDENTIFIER function_parameters post_decls compound_statement // member-function definition +// +// struct_declarator +// : IDENTIFIER post_decls +// | IDENTIFIER array_specifier post_decls +// | IDENTIFIER function_parameters post_decls // member-function prototype +// +bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList, TIntermNode*& nodeList, + TVector& declarators) +{ + typeList = new TTypeList(); + HlslToken idToken; + + do { + // success on seeing the RIGHT_BRACE coming up + if (peekTokenClass(EHTokRightBrace)) + break; + + // struct_declaration + + // attributes + TAttributes attributes; + acceptAttributes(attributes); + + bool declarator_list = false; + + // fully_specified_type + TType memberType; + if (! acceptFullySpecifiedType(memberType, nodeList, attributes)) { + expected("member type"); + return false; + } + + // merge in the attributes + _parseContext.transferTypeAttributes(token.loc, attributes, memberType); + + // struct_declarator COMMA struct_declarator ... + bool functionDefinitionAccepted = false; + do { + if (! acceptIdentifier(idToken)) { + expected("member name"); + return false; + } + + if (peekTokenClass(EHTokLeftParen)) { + // function_parameters + if (!declarator_list) { + declarators.resize(declarators.size() + 1); + // request a token stream for deferred processing + functionDefinitionAccepted = acceptMemberFunctionDefinition(nodeList, memberType, *idToken.string, + declarators.back()); + if (functionDefinitionAccepted) + break; + } + expected("member-function definition"); + return false; + } else { + // add it to the list of members + TTypeLoc member = { new TType(EbtVoid), token.loc }; + member.type->shallowCopy(memberType); + member.type->setFieldName(*idToken.string); + typeList->push_back(member); + + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes) + typeList->back().type->transferArraySizes(arraySizes); + + acceptPostDecls(member.type->getQualifier()); + + // EQUAL assignment_expression + if (acceptTokenClass(EHTokAssign)) { + _parseContext.warn(idToken.loc, "struct-member initializers ignored", "typedef", ""); + TIntermTyped* expressionNode = nullptr; + if (! acceptAssignmentExpression(expressionNode)) { + expected("initializer"); + return false; + } + } + } + // success on seeing the SEMICOLON coming up + if (peekTokenClass(EHTokSemicolon)) + break; + + // COMMA + if (acceptTokenClass(EHTokComma)) + declarator_list = true; + else { + expected(","); + return false; + } + + } while (true); + + // SEMI_COLON + if (! functionDefinitionAccepted && ! acceptTokenClass(EHTokSemicolon)) { + expected(";"); + return false; + } + + } while (true); + + return true; +} + +// member_function_definition +// | function_parameters post_decls compound_statement +// +// Expects type to have EvqGlobal for a static member and +// EvqTemporary for non-static member. +bool HlslGrammar::acceptMemberFunctionDefinition(TIntermNode*& nodeList, const TType& type, TString& memberName, + TFunctionDeclarator& declarator) +{ + bool accepted = false; + + TString* functionName = &memberName; + _parseContext.getFullNamespaceName(functionName); + declarator.function = new TFunction(functionName, type); + if (type.getQualifier().storage == EvqTemporary) + declarator.function->setImplicitThis(); + else + declarator.function->setIllegalImplicitThis(); + + // function_parameters + if (acceptFunctionParameters(*declarator.function)) { + // post_decls + acceptPostDecls(declarator.function->getWritableType().getQualifier()); + + // compound_statement (function body definition) + if (peekTokenClass(EHTokLeftBrace)) { + declarator.loc = token.loc; + declarator.body = new TVector; + accepted = acceptFunctionDefinition(declarator, nodeList, declarator.body); + } + } else + expected("function parameter list"); + + return accepted; +} + +// function_parameters +// : LEFT_PAREN parameter_declaration COMMA parameter_declaration ... RIGHT_PAREN +// | LEFT_PAREN VOID RIGHT_PAREN +// +bool HlslGrammar::acceptFunctionParameters(TFunction& function) +{ + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + return false; + + // VOID RIGHT_PAREN + if (! acceptTokenClass(EHTokVoid)) { + do { + // parameter_declaration + if (! acceptParameterDeclaration(function)) + break; + + // COMMA + if (! acceptTokenClass(EHTokComma)) + break; + } while (true); + } + + // RIGHT_PAREN + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + return false; + } + + return true; +} + +// default_parameter_declaration +// : EQUAL conditional_expression +// : EQUAL initializer +bool HlslGrammar::acceptDefaultParameterDeclaration(const TType& type, TIntermTyped*& node) +{ + node = nullptr; + + // Valid not to have a default_parameter_declaration + if (!acceptTokenClass(EHTokAssign)) + return true; + + if (!acceptConditionalExpression(node)) { + if (!acceptInitializer(node)) + return false; + + // For initializer lists, we have to const-fold into a constructor for the type, so build + // that. + TFunction* constructor = _parseContext.makeConstructorCall(token.loc, type); + if (constructor == nullptr) // cannot construct + return false; + + TIntermTyped* arguments = nullptr; + for (int i = 0; i < int(node->getAsAggregate()->getSequence().size()); i++) + _parseContext.handleFunctionArgument(constructor, arguments, node->getAsAggregate()->getSequence()[i]->getAsTyped()); + + node = _parseContext.handleFunctionCall(token.loc, constructor, node); + } + + if (node == nullptr) + return false; + + // If this is simply a constant, we can use it directly. + if (node->getAsConstantUnion()) + return true; + + // Otherwise, it has to be const-foldable. + TIntermTyped* origNode = node; + + node = intermediate.fold(node->getAsAggregate()); + + if (node != nullptr && origNode != node) + return true; + + _parseContext.error(token.loc, "invalid default parameter value", "", ""); + + return false; +} + +// parameter_declaration +// : attributes attributed_declaration +// +// attributed_declaration +// : fully_specified_type post_decls [ = default_parameter_declaration ] +// | fully_specified_type identifier array_specifier post_decls [ = default_parameter_declaration ] +// +bool HlslGrammar::acceptParameterDeclaration(TFunction& function) +{ + // attributes + TAttributes attributes; + acceptAttributes(attributes); + + // fully_specified_type + TType* type = new TType; + if (! acceptFullySpecifiedType(*type, attributes)) + return false; + + // merge in the attributes + _parseContext.transferTypeAttributes(token.loc, attributes, *type); + + // identifier + HlslToken idToken; + acceptIdentifier(idToken); + + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes) { + if (arraySizes->hasUnsized()) { + _parseContext.error(token.loc, "function parameter requires array size", "[]", ""); + return false; + } + + type->transferArraySizes(arraySizes); + } + + // post_decls + acceptPostDecls(type->getQualifier()); + + TIntermTyped* defaultValue; + if (!acceptDefaultParameterDeclaration(*type, defaultValue)) + return false; + + _parseContext.paramFix(*type); + + // If any prior parameters have default values, all the parameters after that must as well. + if (defaultValue == nullptr && function.getDefaultParamCount() > 0) { + _parseContext.error(idToken.loc, "invalid parameter after default value parameters", idToken.string->c_str(), ""); + return false; + } + + TParameter param = { idToken.string, type, defaultValue }; + function.addParameter(param); + + return true; +} + +// Do the work to create the function definition in addition to +// parsing the body (compound_statement). +// +// If 'deferredTokens' are passed in, just get the token stream, +// don't process. +// +bool HlslGrammar::acceptFunctionDefinition(TFunctionDeclarator& declarator, TIntermNode*& nodeList, + TVector* deferredTokens) +{ + _parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, false /* not prototype */); + + if (deferredTokens) + return captureBlockTokens(*deferredTokens); + else + return acceptFunctionBody(declarator, nodeList); +} + +bool HlslGrammar::acceptFunctionBody(TFunctionDeclarator& declarator, TIntermNode*& nodeList) +{ + // we might get back an entry-point + TIntermNode* entryPointNode = nullptr; + + // This does a pushScope() + TIntermNode* functionNode = _parseContext.handleFunctionDefinition(declarator.loc, *declarator.function, + declarator.attributes, entryPointNode); + + // compound_statement + TIntermNode* functionBody = nullptr; + if (! acceptCompoundStatement(functionBody)) + return false; + + // this does a popScope() + _parseContext.handleFunctionBody(declarator.loc, *declarator.function, functionBody, functionNode); + + // Hook up the 1 or 2 function definitions. + nodeList = intermediate.growAggregate(nodeList, functionNode); + nodeList = intermediate.growAggregate(nodeList, entryPointNode); + + return true; +} + +// Accept an expression with parenthesis around it, where +// the parenthesis ARE NOT expression parenthesis, but the +// 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. +// +bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression) +{ + expression = nullptr; + + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + expected("("); + + 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 + if (! acceptTokenClass(EHTokRightParen)) + expected(")"); + + return true; +} + +// The top-level full expression recognizer. +// +// expression +// : assignment_expression COMMA assignment_expression COMMA assignment_expression ... +// +bool HlslGrammar::acceptExpression(TIntermTyped*& node) +{ + node = nullptr; + + // assignment_expression + if (! acceptAssignmentExpression(node)) + return false; + + if (! peekTokenClass(EHTokComma)) + return true; + + do { + // ... COMMA + TSourceLoc loc = token.loc; + advanceToken(); + + // ... assignment_expression + TIntermTyped* rightNode = nullptr; + if (! acceptAssignmentExpression(rightNode)) { + expected("assignment expression"); + return false; + } + + node = intermediate.addComma(node, rightNode, loc); + + if (! peekTokenClass(EHTokComma)) + return true; + } while (true); +} + +// initializer +// : LEFT_BRACE RIGHT_BRACE +// | 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; + + // RIGHT_BRACE + TSourceLoc loc = token.loc; + if (acceptTokenClass(EHTokRightBrace)) { + // a zero-length initializer list + node = intermediate.makeAggregate(loc); + return true; + } + + // initializer_list + node = nullptr; + do { + // assignment_expression + TIntermTyped* expr; + if (! acceptAssignmentExpression(expr)) { + expected("assignment expression in initializer list"); + return false; + } + + const bool firstNode = (node == nullptr); + + node = intermediate.growAggregate(node, expr, loc); + + // If every sub-node in the list has qualifier EvqConst, the returned node becomes + // EvqConst. Otherwise, it becomes EvqTemporary. That doesn't happen with e.g. + // EvqIn or EvqPosition, since the collection isn't EvqPosition if all the members are. + if (firstNode && expr->getQualifier().storage == EvqConst) + node->getQualifier().storage = EvqConst; + else if (expr->getQualifier().storage != EvqConst) + node->getQualifier().storage = EvqTemporary; + + // COMMA + if (acceptTokenClass(EHTokComma)) { + if (acceptTokenClass(EHTokRightBrace)) // allow trailing comma + return true; + 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. That is, it is implicit, for example +// +// a op (b op (c op d)) +// +// assigment_expression +// : initializer +// | conditional_expression +// | conditional_expression assign_op conditional_expression assign_op conditional_expression ... +// +bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) +{ + // initializer + if (peekTokenClass(EHTokLeftBrace)) { + if (acceptInitializer(node)) + return true; + + expected("initializer"); + return false; + } + + // conditional_expression + if (! acceptConditionalExpression(node)) + return false; + + // assignment operation? + TOperator assignOp = HlslOpMap::assignment(peek()); + if (assignOp == EOpNull) + return true; + + // assign_op + TSourceLoc loc = token.loc; + advanceToken(); + + // conditional_expression assign_op conditional_expression ... + // Done by recursing this function, which automatically + // gets the right-to-left associativity. + TIntermTyped* rightNode = nullptr; + if (! acceptAssignmentExpression(rightNode)) { + expected("assignment expression"); + return false; + } + + node = _parseContext.handleAssign(loc, assignOp, node, rightNode); + node = _parseContext.handleLvalue(loc, "assign", node); + + if (node == nullptr) { + _parseContext.error(loc, "could not create assignment", "", ""); + return false; + } + + if (! peekTokenClass(EHTokComma)) + return true; + + return true; +} + +// Accept a conditional expression, which associates right-to-left, +// accomplished by the "true" expression calling down to lower +// precedence levels than this level. +// +// conditional_expression +// : binary_expression +// | binary_expression QUESTION expression COLON assignment_expression +// +bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) +{ + // binary_expression + if (! acceptBinaryExpression(node, PlLogicalOr)) + return false; + + if (! acceptTokenClass(EHTokQuestion)) + return true; + + node = _parseContext.convertConditionalExpression(token.loc, node, false); + if (node == nullptr) + return false; + + ++_parseContext.controlFlowNestingLevel; // this only needs to work right if no errors + + TIntermTyped* trueNode = nullptr; + if (! acceptExpression(trueNode)) { + expected("expression after ?"); + return false; + } + TSourceLoc loc = token.loc; + + if (! acceptTokenClass(EHTokColon)) { + expected(":"); + return false; + } + + TIntermTyped* falseNode = nullptr; + if (! acceptAssignmentExpression(falseNode)) { + expected("expression after :"); + return false; + } + + --_parseContext.controlFlowNestingLevel; + + node = intermediate.addSelection(node, trueNode, falseNode, loc); + + return true; +} + +// Accept a binary expression, for binary operations that +// associate left-to-right. This is, it is implicit, for example +// +// ((a op b) op c) op d +// +// binary_expression +// : expression op expression op expression ... +// +// where 'expression' is the next higher level in precedence. +// +bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel precedenceLevel) +{ + if (precedenceLevel > PlMul) + return acceptUnaryExpression(node); + + // assignment_expression + if (! acceptBinaryExpression(node, (PrecedenceLevel)(precedenceLevel + 1))) + return false; + + do { + TOperator op = HlslOpMap::binary(peek()); + PrecedenceLevel tokenLevel = HlslOpMap::precedenceLevel(op); + if (tokenLevel < precedenceLevel) + return true; + + // ... op + TSourceLoc loc = token.loc; + advanceToken(); + + // ... expression + TIntermTyped* rightNode = nullptr; + if (! acceptBinaryExpression(rightNode, (PrecedenceLevel)(precedenceLevel + 1))) { + expected("expression"); + return false; + } + + node = intermediate.addBinaryMath(op, node, rightNode, loc); + if (node == nullptr) { + _parseContext.error(loc, "Could not perform requested binary operation", "", ""); + return false; + } + } while (true); +} + +// unary_expression +// : (type) unary_expression +// | + unary_expression +// | - unary_expression +// | ! unary_expression +// | ~ unary_expression +// | ++ unary_expression +// | -- unary_expression +// | postfix_expression +// +bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) +{ + // (type) unary_expression + // Have to look two steps ahead, because this could be, e.g., a + // postfix_expression instead, since that also starts with at "(". + if (acceptTokenClass(EHTokLeftParen)) { + TType castType; + if (acceptType(castType)) { + // recognize any array_specifier as part of the type + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes != nullptr) + castType.transferArraySizes(arraySizes); + TSourceLoc loc = token.loc; + if (acceptTokenClass(EHTokRightParen)) { + // We've matched "(type)" now, get the expression to cast + if (! acceptUnaryExpression(node)) + return false; + + // Hook it up like a constructor + TFunction* constructorFunction = _parseContext.makeConstructorCall(loc, castType); + if (constructorFunction == nullptr) { + expected("type that can be constructed"); + return false; + } + TIntermTyped* arguments = nullptr; + _parseContext.handleFunctionArgument(constructorFunction, arguments, node); + node = _parseContext.handleFunctionCall(loc, constructorFunction, arguments); + + return node != nullptr; + } else { + // This could be a parenthesized constructor, ala (int(3)), and we just accepted + // the '(int' part. We must back up twice. + recedeToken(); + recedeToken(); + + // Note, there are no array constructors like + // (float[2](...)) + if (arraySizes != nullptr) + _parseContext.error(loc, "parenthesized array constructor not allowed", "([]())", "", ""); + } + } else { + // This isn't a type cast, but it still started "(", so if it is a + // unary expression, it can only be a postfix_expression, so try that. + // Back it up first. + recedeToken(); + return acceptPostfixExpression(node); + } + } + + // peek for "op unary_expression" + TOperator unaryOp = HlslOpMap::preUnary(peek()); + + // postfix_expression (if no unary operator) + if (unaryOp == EOpNull) + return acceptPostfixExpression(node); + + // op unary_expression + TSourceLoc loc = token.loc; + advanceToken(); + if (! acceptUnaryExpression(node)) + return false; + + // + is a no-op + if (unaryOp == EOpAdd) + return true; + + node = intermediate.addUnaryMath(unaryOp, node, loc); + + // These unary ops require lvalues + if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) + node = _parseContext.handleLvalue(loc, "unary operator", node); + + return node != nullptr; +} + +// postfix_expression +// : LEFT_PAREN expression RIGHT_PAREN +// | literal +// | constructor +// | IDENTIFIER [ COLONCOLON IDENTIFIER [ COLONCOLON IDENTIFIER ... ] ] +// | function_call +// | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET +// | postfix_expression DOT IDENTIFIER +// | postfix_expression DOT IDENTIFIER arguments +// | postfix_expression arguments +// | postfix_expression INC_OP +// | postfix_expression DEC_OP +// +bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) +{ + // Not implemented as self-recursive: + // The logical "right recursion" is done with a loop at the end + + // idToken will pick up either a variable or a function name in a function call + HlslToken idToken; + + // Find something before the postfix operations, as they can't operate + // on nothing. So, no "return true", they fall through, only "return false". + if (acceptTokenClass(EHTokLeftParen)) { + // LEFT_PAREN expression RIGHT_PAREN + if (! acceptExpression(node)) { + expected("expression"); + return false; + } + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + return false; + } + } else if (acceptLiteral(node)) { + // literal (nothing else to do yet) + } else if (acceptConstructor(node)) { + // constructor (nothing else to do yet) + } else if (acceptIdentifier(idToken)) { + // user-type, namespace name, variable, or function name + TString* fullName = idToken.string; + while (acceptTokenClass(EHTokColonColon)) { + // user-type or namespace name + fullName = NewPoolTString(fullName->c_str()); + fullName->append(_parseContext.scopeMangler); + if (acceptIdentifier(idToken)) + fullName->append(*idToken.string); + else { + expected("identifier after ::"); + return false; + } + } + if (! peekTokenClass(EHTokLeftParen)) { + node = _parseContext.handleVariable(idToken.loc, fullName); + if (node == nullptr) + return false; + } else if (acceptFunctionCall(idToken.loc, *fullName, node, nullptr)) { + // function_call (nothing else to do yet) + } else { + expected("function call arguments"); + return false; + } + } else { + // nothing found, can't post operate + return false; + } + + // Something was found, chain as many postfix operations as exist. + do { + TSourceLoc loc = token.loc; + TOperator postOp = HlslOpMap::postUnary(peek()); + + // Consume only a valid post-unary operator, otherwise we are done. + switch (postOp) { + case EOpIndexDirectStruct: + case EOpIndexIndirect: + case EOpPostIncrement: + case EOpPostDecrement: + case EOpScoping: + advanceToken(); + break; + default: + return true; + } + + // We have a valid post-unary operator, process it. + switch (postOp) { + case EOpScoping: + case EOpIndexDirectStruct: + { + // DOT IDENTIFIER + // includes swizzles, member variables, and member functions + HlslToken field; + if (! acceptIdentifier(field)) { + expected("swizzle or member"); + return false; + } + + if (peekTokenClass(EHTokLeftParen)) { + // member function + TIntermTyped* thisNode = node; + + // arguments + if (! acceptFunctionCall(field.loc, *field.string, node, thisNode)) { + expected("function parameters"); + return false; + } + } else + node = _parseContext.handleDotDereference(field.loc, node, *field.string); + + break; + } + case EOpIndexIndirect: + { + // LEFT_BRACKET integer_expression RIGHT_BRACKET + TIntermTyped* indexNode = nullptr; + if (! acceptExpression(indexNode) || + ! peekTokenClass(EHTokRightBracket)) { + expected("expression followed by ']'"); + return false; + } + advanceToken(); + node = _parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); + if (node == nullptr) + return false; + break; + } + case EOpPostIncrement: + // INC_OP + // fall through + case EOpPostDecrement: + // DEC_OP + node = intermediate.addUnaryMath(postOp, node, loc); + node = _parseContext.handleLvalue(loc, "unary operator", node); + break; + default: + assert(0); + break; + } + } while (true); +} + +// constructor +// : type argument_list +// +bool HlslGrammar::acceptConstructor(TIntermTyped*& node) +{ + // type + TType type; + if (acceptType(type)) { + TFunction* constructorFunction = _parseContext.makeConstructorCall(token.loc, type); + if (constructorFunction == nullptr) + return false; + + // arguments + TIntermTyped* arguments = nullptr; + if (! acceptArguments(constructorFunction, arguments)) { + // It's possible this is a type keyword used as an identifier. Put the token back + // for later use. + recedeToken(); + return false; + } + + // hook it up + node = _parseContext.handleFunctionCall(arguments->getLoc(), constructorFunction, arguments); + + return node != nullptr; + } + + return false; +} + +// The function_call identifier was already recognized, and passed in as idToken. +// +// function_call +// : [idToken] arguments +// +bool HlslGrammar::acceptFunctionCall(const TSourceLoc& loc, TString& name, TIntermTyped*& node, TIntermTyped* baseObject) +{ + // name + TString* functionName = nullptr; + if (baseObject == nullptr) { + functionName = &name; + } else if (_parseContext.isBuiltInMethod(loc, baseObject, name)) { + // Built-in methods are not in the symbol table as methods, but as global functions + // taking an explicit 'this' as the first argument. + functionName = NewPoolTString(BUILTIN_PREFIX); + functionName->append(name); + } else { + if (! baseObject->getType().isStruct()) { + expected("structure"); + return false; + } + functionName = NewPoolTString(""); + functionName->append(baseObject->getType().getTypeName()); + _parseContext.addScopeMangler(*functionName); + functionName->append(name); + } + + // function + TFunction* function = new TFunction(functionName, TType(EbtVoid)); + + // arguments + TIntermTyped* arguments = nullptr; + if (baseObject != nullptr) { + // Non-static member functions have an implicit first argument of the base object. + _parseContext.handleFunctionArgument(function, arguments, baseObject); + } + if (! acceptArguments(function, arguments)) + return false; + + // call + node = _parseContext.handleFunctionCall(loc, function, arguments); + + return node != nullptr; +} + +// arguments +// : LEFT_PAREN expression COMMA expression COMMA ... RIGHT_PAREN +// +// The arguments are pushed onto the 'function' argument list and +// onto the 'arguments' aggregate. +// +bool HlslGrammar::acceptArguments(TFunction* function, TIntermTyped*& arguments) +{ + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + return false; + + // RIGHT_PAREN + if (acceptTokenClass(EHTokRightParen)) + return true; + + // must now be at least one expression... + do { + // expression + TIntermTyped* arg; + if (! acceptAssignmentExpression(arg)) + return false; + + // hook it up + _parseContext.handleFunctionArgument(function, arguments, arg); + + // COMMA + if (! acceptTokenClass(EHTokComma)) + break; + } while (true); + + // RIGHT_PAREN + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + return false; + } + + return true; +} + +bool HlslGrammar::acceptLiteral(TIntermTyped*& node) +{ + switch (token.tokenClass) { + case EHTokIntConstant: + node = intermediate.addConstantUnion(token.i, token.loc, true); + break; + case EHTokUintConstant: + node = intermediate.addConstantUnion(token.u, token.loc, true); + break; + case EHTokFloat16Constant: + node = intermediate.addConstantUnion(token.d, EbtFloat16, token.loc, true); + break; + case EHTokFloatConstant: + node = intermediate.addConstantUnion(token.d, EbtFloat, token.loc, true); + break; + case EHTokDoubleConstant: + node = intermediate.addConstantUnion(token.d, EbtDouble, token.loc, true); + break; + case EHTokBoolConstant: + node = intermediate.addConstantUnion(token.b, token.loc, true); + break; + case EHTokStringConstant: + node = intermediate.addConstantUnion(token.string, token.loc, true); + break; + + default: + return false; + } + + advanceToken(); + + return true; +} + +// simple_statement +// : SEMICOLON +// | declaration_statement +// | expression SEMICOLON +// +bool HlslGrammar::acceptSimpleStatement(TIntermNode*& statement) +{ + // SEMICOLON + if (acceptTokenClass(EHTokSemicolon)) + return true; + + // declaration + if (acceptDeclaration(statement)) + return true; + + // expression + TIntermTyped* node; + if (acceptExpression(node)) + statement = node; + else + return false; + + // SEMICOLON (following an expression) + if (acceptTokenClass(EHTokSemicolon)) + return true; + else { + expected(";"); + return false; + } +} + +// compound_statement +// : LEFT_CURLY statement statement ... RIGHT_CURLY +// +bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) +{ + TIntermAggregate* compoundStatement = nullptr; + + // LEFT_CURLY + if (! acceptTokenClass(EHTokLeftBrace)) + return false; + + // statement statement ... + TIntermNode* statement = nullptr; + while (acceptStatement(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); + + retStatement = compoundStatement; + + // RIGHT_CURLY + return acceptTokenClass(EHTokRightBrace); +} + +bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) +{ + _parseContext.pushScope(); + bool result = acceptStatement(statement); + _parseContext.popScope(); + + return result; +} + +bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) +{ + _parseContext.pushScope(); + bool result = acceptCompoundStatement(statement); + _parseContext.popScope(); + + return result; +} + +// statement +// : attributes attributed_statement +// +// attributed_statement +// : compound_statement +// | simple_statement +// | selection_statement +// | switch_statement +// | case_label +// | default_label +// | iteration_statement +// | jump_statement +// +bool HlslGrammar::acceptStatement(TIntermNode*& statement) +{ + statement = nullptr; + + // attributes + TAttributes attributes; + acceptAttributes(attributes); + + // attributed_statement + switch (peek()) { + case EHTokLeftBrace: + return acceptScopedCompoundStatement(statement); + + case EHTokIf: + return acceptSelectionStatement(statement, attributes); + + case EHTokSwitch: + return acceptSwitchStatement(statement, attributes); + + case EHTokFor: + case EHTokDo: + case EHTokWhile: + return acceptIterationStatement(statement, attributes); + + case EHTokContinue: + case EHTokBreak: + case EHTokDiscard: + case EHTokReturn: + return acceptJumpStatement(statement); + + case EHTokCase: + return acceptCaseLabel(statement); + case EHTokDefault: + return acceptDefaultLabel(statement); + + case EHTokRightBrace: + // Performance: not strictly necessary, but stops a bunch of hunting early, + // and is how sequences of statements end. + return false; + + default: + return acceptSimpleStatement(statement); + } + + return true; +} + +// attributes +// : [zero or more:] bracketed-attribute +// +// bracketed-attribute: +// : LEFT_BRACKET scoped-attribute RIGHT_BRACKET +// : LEFT_BRACKET LEFT_BRACKET scoped-attribute RIGHT_BRACKET RIGHT_BRACKET +// +// scoped-attribute: +// : attribute +// | namespace COLON COLON attribute +// +// attribute: +// : UNROLL +// | UNROLL LEFT_PAREN literal RIGHT_PAREN +// | FASTOPT +// | ALLOW_UAV_CONDITION +// | BRANCH +// | FLATTEN +// | FORCECASE +// | CALL +// | DOMAIN +// | EARLYDEPTHSTENCIL +// | INSTANCE +// | MAXTESSFACTOR +// | OUTPUTCONTROLPOINTS +// | OUTPUTTOPOLOGY +// | PARTITIONING +// | PATCHCONSTANTFUNC +// | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN +// +void HlslGrammar::acceptAttributes(TAttributes& attributes) +{ + // For now, accept the [ XXX(X) ] syntax, but drop all but + // numthreads, which is used to set the CS local size. + // TODO: subset to correct set? Pass on? + do { + HlslToken attributeToken; + + // LEFT_BRACKET? + if (! acceptTokenClass(EHTokLeftBracket)) + return; + // another LEFT_BRACKET? + bool doubleBrackets = false; + if (acceptTokenClass(EHTokLeftBracket)) + doubleBrackets = true; + + // attribute? (could be namespace; will adjust later) + if (!acceptIdentifier(attributeToken)) { + if (!peekTokenClass(EHTokRightBracket)) { + expected("namespace or attribute identifier"); + advanceToken(); + } + } + + TString nameSpace; + if (acceptTokenClass(EHTokColonColon)) { + // namespace COLON COLON + nameSpace = *attributeToken.string; + // attribute + if (!acceptIdentifier(attributeToken)) { + expected("attribute identifier"); + return; + } + } + + TIntermAggregate* expressions = nullptr; + + // (x, ...) + if (acceptTokenClass(EHTokLeftParen)) { + expressions = new TIntermAggregate; + + TIntermTyped* node; + bool expectingExpression = false; + + while (acceptAssignmentExpression(node)) { + expectingExpression = false; + expressions->getSequence().push_back(node); + if (acceptTokenClass(EHTokComma)) + expectingExpression = true; + } + + // 'expressions' is an aggregate with the expressions in it + if (! acceptTokenClass(EHTokRightParen)) + expected(")"); + + // Error for partial or missing expression + if (expectingExpression || expressions->getSequence().empty()) + expected("expression"); + } + + // RIGHT_BRACKET + if (!acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + // another RIGHT_BRACKET? + if (doubleBrackets && !acceptTokenClass(EHTokRightBracket)) { + expected("]]"); + return; + } + + // Add any values we found into the attribute map. + if (attributeToken.string != nullptr) { + TAttributeType attributeType = _parseContext.attributeFromName(nameSpace, *attributeToken.string); + if (attributeType == EatNone) + _parseContext.warn(attributeToken.loc, "unrecognized attribute", attributeToken.string->c_str(), ""); + else { + TAttributeArgs attributeArgs = { attributeType, expressions }; + attributes.push_back(attributeArgs); + } + } + } while (true); +} + +// selection_statement +// : IF LEFT_PAREN expression RIGHT_PAREN statement +// : IF LEFT_PAREN expression RIGHT_PAREN statement ELSE statement +// +bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttributes& attributes) +{ + TSourceLoc loc = token.loc; + + // IF + if (! acceptTokenClass(EHTokIf)) + return false; + + // so that something declared in the condition is scoped to the lifetimes + // of the then-else statements + _parseContext.pushScope(); + + // LEFT_PAREN expression RIGHT_PAREN + TIntermTyped* condition; + if (! acceptParenExpression(condition)) + return false; + condition = _parseContext.convertConditionalExpression(loc, condition); + if (condition == nullptr) + return false; + + // create the child statements + TIntermNodePair thenElse = { nullptr, nullptr }; + + ++_parseContext.controlFlowNestingLevel; // this only needs to work right if no errors + + // then statement + if (! acceptScopedStatement(thenElse.node1)) { + expected("then statement"); + return false; + } + + // ELSE + if (acceptTokenClass(EHTokElse)) { + // else statement + if (! acceptScopedStatement(thenElse.node2)) { + expected("else statement"); + return false; + } + } + + // Put the pieces together + statement = intermediate.addSelection(condition, thenElse, loc); + _parseContext.handleSelectionAttributes(loc, statement->getAsSelectionNode(), attributes); + + _parseContext.popScope(); + --_parseContext.controlFlowNestingLevel; + + return true; +} + +// switch_statement +// : SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement +// +bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement, const TAttributes& attributes) +{ + // 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); + + ++_parseContext.controlFlowNestingLevel; + bool statementOkay = acceptCompoundStatement(statement); + --_parseContext.controlFlowNestingLevel; + + if (statementOkay) + statement = _parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr, + attributes); + + _parseContext.popSwitchSequence(); + _parseContext.popScope(); + + return statementOkay; +} + +// iteration_statement +// : WHILE LEFT_PAREN condition RIGHT_PAREN statement +// | DO LEFT_BRACE statement RIGHT_BRACE WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON +// | FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN statement +// +// Non-speculative, only call if it needs to be found; WHILE or DO or FOR already seen. +bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttributes& attributes) +{ + TSourceLoc loc = token.loc; + TIntermTyped* condition = nullptr; + + EHlslTokenClass loop = peek(); + assert(loop == EHTokDo || loop == EHTokFor || loop == EHTokWhile); + + // WHILE or DO or FOR + advanceToken(); + + TIntermLoop* loopNode = nullptr; + switch (loop) { + case EHTokWhile: + // so that something declared in the condition is scoped to the lifetime + // of the while sub-statement + _parseContext.pushScope(); // this only needs to work right if no errors + _parseContext.nestLooping(); + ++_parseContext.controlFlowNestingLevel; + + // LEFT_PAREN condition RIGHT_PAREN + if (! acceptParenExpression(condition)) + return false; + condition = _parseContext.convertConditionalExpression(loc, condition); + if (condition == nullptr) + return false; + + // statement + if (! acceptScopedStatement(statement)) { + expected("while sub-statement"); + return false; + } + + _parseContext.unnestLooping(); + _parseContext.popScope(); + --_parseContext.controlFlowNestingLevel; + + loopNode = intermediate.addLoop(statement, condition, nullptr, true, loc); + statement = loopNode; + break; + + case EHTokDo: + _parseContext.nestLooping(); // this only needs to work right if no errors + ++_parseContext.controlFlowNestingLevel; + + // statement + if (! acceptScopedStatement(statement)) { + expected("do sub-statement"); + return false; + } + + // WHILE + if (! acceptTokenClass(EHTokWhile)) { + expected("while"); + return false; + } + + // LEFT_PAREN condition RIGHT_PAREN + if (! acceptParenExpression(condition)) + return false; + condition = _parseContext.convertConditionalExpression(loc, condition); + if (condition == nullptr) + return false; + + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); + + _parseContext.unnestLooping(); + --_parseContext.controlFlowNestingLevel; + + loopNode = intermediate.addLoop(statement, condition, 0, false, loc); + statement = loopNode; + break; + + case EHTokFor: + { + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + expected("("); + + // so that something declared in the condition is scoped to the lifetime + // of the for sub-statement + _parseContext.pushScope(); + + // initializer + TIntermNode* initNode = nullptr; + if (! acceptSimpleStatement(initNode)) + expected("for-loop initializer statement"); + + _parseContext.nestLooping(); // this only needs to work right if no errors + ++_parseContext.controlFlowNestingLevel; + + // condition SEMI_COLON + acceptExpression(condition); + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); + if (condition != nullptr) { + condition = _parseContext.convertConditionalExpression(loc, condition); + if (condition == nullptr) + return false; + } + + // iterator SEMI_COLON + TIntermTyped* iterator = nullptr; + acceptExpression(iterator); + if (! acceptTokenClass(EHTokRightParen)) + expected(")"); + + // statement + if (! acceptScopedStatement(statement)) { + expected("for sub-statement"); + return false; + } + + statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc, loopNode); + + _parseContext.popScope(); + _parseContext.unnestLooping(); + --_parseContext.controlFlowNestingLevel; + + break; + } + + default: + return false; + } + + _parseContext.handleLoopAttributes(loc, loopNode, attributes); + return true; +} + +// jump_statement +// : CONTINUE SEMICOLON +// | BREAK SEMICOLON +// | DISCARD SEMICOLON +// | RETURN SEMICOLON +// | RETURN expression SEMICOLON +// +bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) +{ + EHlslTokenClass jump = peek(); + switch (jump) { + case EHTokContinue: + case EHTokBreak: + case EHTokDiscard: + case EHTokReturn: + advanceToken(); + break; + default: + // not something we handle in this function + return false; + } + + switch (jump) { + case EHTokContinue: + statement = intermediate.addBranch(EOpContinue, token.loc); + if (_parseContext.loopNestingLevel == 0) { + expected("loop"); + return false; + } + break; + case EHTokBreak: + statement = intermediate.addBranch(EOpBreak, token.loc); + if (_parseContext.loopNestingLevel == 0 && _parseContext.switchSequenceStack.size() == 0) { + expected("loop or switch"); + return false; + } + break; + case EHTokDiscard: + statement = intermediate.addBranch(EOpKill, token.loc); + break; + + case EHTokReturn: + { + // expression + TIntermTyped* node; + if (acceptExpression(node)) { + // hook it up + statement = _parseContext.handleReturnValue(token.loc, node); + } 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) +{ + 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 +// : LEFT_BRACKET integer_expression RGHT_BRACKET ... // optional +// : LEFT_BRACKET RGHT_BRACKET // optional +// +void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) +{ + arraySizes = nullptr; + + // Early-out if there aren't any array dimensions + if (!peekTokenClass(EHTokLeftBracket)) + return; + + // If we get here, we have at least one array dimension. This will track the sizes we find. + arraySizes = new TArraySizes; + + // Collect each array dimension. + while (acceptTokenClass(EHTokLeftBracket)) { + TSourceLoc loc = token.loc; + TIntermTyped* sizeExpr = nullptr; + + // Array sizing expression is optional. If omitted, array will be later sized by initializer list. + const bool hasArraySize = acceptAssignmentExpression(sizeExpr); + + if (! acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + + if (hasArraySize) { + TArraySize arraySize; + _parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + arraySizes->addInnerSize(arraySize); + } else { + arraySizes->addInnerSize(0); // sized by initializers. + } + } +} + +// post_decls +// : COLON semantic // optional +// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional +// COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN // optional +// COLON LAYOUT layout_qualifier_list +// annotations // optional +// +// Return true if any tokens were accepted. That is, +// false can be returned on successfully recognizing nothing, +// not necessarily meaning bad syntax. +// +bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) +{ + bool found = false; + + do { + // COLON + if (acceptTokenClass(EHTokColon)) { + found = true; + HlslToken idToken; + if (peekTokenClass(EHTokLayout)) + acceptLayoutQualifierList(qualifier); + else if (acceptTokenClass(EHTokPackOffset)) { + // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) { + expected("("); + return false; + } + HlslToken locationToken; + if (! acceptIdentifier(locationToken)) { + expected("c[subcomponent][.component]"); + return false; + } + HlslToken componentToken; + if (acceptTokenClass(EHTokDot)) { + if (! acceptIdentifier(componentToken)) { + expected("component"); + return false; + } + } + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + break; + } + _parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); + } else if (! acceptIdentifier(idToken)) { + expected("layout, semantic, packoffset, or register"); + return false; + } else if (*idToken.string == "register") { + // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) { + expected("("); + return false; + } + HlslToken registerDesc; // for Type# + HlslToken profile; + if (! acceptIdentifier(registerDesc)) { + expected("register number description"); + return false; + } + if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) && + acceptTokenClass(EHTokComma)) { + // Then we didn't really see the registerDesc yet, it was + // actually the profile. Adjust... + profile = registerDesc; + if (! acceptIdentifier(registerDesc)) { + expected("register number description"); + return false; + } + } + int subComponent = 0; + if (acceptTokenClass(EHTokLeftBracket)) { + // LEFT_BRACKET subcomponent RIGHT_BRACKET + if (! peekTokenClass(EHTokIntConstant)) { + expected("literal integer"); + return false; + } + subComponent = token.i; + advanceToken(); + if (! acceptTokenClass(EHTokRightBracket)) { + expected("]"); + break; + } + } + // (COMMA SPACEN)opt + HlslToken spaceDesc; + if (acceptTokenClass(EHTokComma)) { + if (! acceptIdentifier(spaceDesc)) { + expected ("space identifier"); + return false; + } + } + // RIGHT_PAREN + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + break; + } + _parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); + } else { + // semantic, in idToken.string + TString semanticUpperCase = *idToken.string; + std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); + _parseContext.handleSemantic(idToken.loc, qualifier, mapSemantic(semanticUpperCase.c_str()), semanticUpperCase); + } + } else if (peekTokenClass(EHTokLeftAngle)) { + found = true; + acceptAnnotations(qualifier); + } else + break; + + } while (true); + + return found; +} + +// +// Get the stream of tokens from the scanner, but skip all syntactic/semantic +// processing. +// +bool HlslGrammar::captureBlockTokens(TVector& tokens) +{ + if (! peekTokenClass(EHTokLeftBrace)) + return false; + + int braceCount = 0; + + do { + switch (peek()) { + case EHTokLeftBrace: + ++braceCount; + break; + case EHTokRightBrace: + --braceCount; + break; + case EHTokNone: + // End of input before balance { } is bad... + return false; + default: + break; + } + + tokens.push_back(token); + advanceToken(); + } while (braceCount > 0); + + return true; +} + +// Return a string for just the types that can also be declared as an identifier. +const char* HlslGrammar::getTypeString(EHlslTokenClass tokenClass) const +{ + switch (tokenClass) { + case EHTokSample: return "sample"; + case EHTokHalf: return "half"; + case EHTokHalf1x1: return "half1x1"; + case EHTokHalf1x2: return "half1x2"; + case EHTokHalf1x3: return "half1x3"; + case EHTokHalf1x4: return "half1x4"; + case EHTokHalf2x1: return "half2x1"; + case EHTokHalf2x2: return "half2x2"; + case EHTokHalf2x3: return "half2x3"; + case EHTokHalf2x4: return "half2x4"; + case EHTokHalf3x1: return "half3x1"; + case EHTokHalf3x2: return "half3x2"; + case EHTokHalf3x3: return "half3x3"; + case EHTokHalf3x4: return "half3x4"; + case EHTokHalf4x1: return "half4x1"; + case EHTokHalf4x2: return "half4x2"; + case EHTokHalf4x3: return "half4x3"; + case EHTokHalf4x4: return "half4x4"; + case EHTokBool: return "bool"; + case EHTokFloat: return "float"; + case EHTokDouble: return "double"; + case EHTokInt: return "int"; + case EHTokUint: return "uint"; + case EHTokMin16float: return "min16float"; + case EHTokMin10float: return "min10float"; + case EHTokMin16int: return "min16int"; + case EHTokMin12int: return "min12int"; + case EHTokConstantBuffer: return "ConstantBuffer"; + case EHTokLayout: return "layout"; + default: + return nullptr; + } +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslGrammar.h b/deps/glslang/glslang/hlsl/hlslGrammar.h new file mode 100755 index 0000000000..f15ccca0cf --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslGrammar.h @@ -0,0 +1,140 @@ +// +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef HLSLGRAMMAR_H_ +#define HLSLGRAMMAR_H_ + +#include "hlslParseHelper.h" +#include "hlslOpMap.h" +#include "hlslTokenStream.h" + +namespace glslang { + + class TFunctionDeclarator; + + // Should just be the grammar aspect of HLSL. + // Described in more detail in hlslGrammar.cpp. + + class HlslGrammar : public HlslTokenStream { + public: + HlslGrammar(HlslScanContext& scanner, HlslParseContext& _parseContext) + : HlslTokenStream(scanner), _parseContext(_parseContext), intermediate(_parseContext.intermediate), + typeIdentifiers(false) { } + virtual ~HlslGrammar() { } + + bool parse(); + + protected: + HlslGrammar(); + HlslGrammar& operator=(const HlslGrammar&); + + void expected(const char*); + void unimplemented(const char*); + bool acceptIdentifier(HlslToken&); + bool acceptCompilationUnit(); + bool acceptDeclarationList(TIntermNode*&); + bool acceptDeclaration(TIntermNode*&); + bool acceptControlDeclaration(TIntermNode*& node); + bool acceptSamplerDeclarationDX9(TType&); + bool acceptSamplerState(); + bool acceptFullySpecifiedType(TType&, const TAttributes&); + bool acceptFullySpecifiedType(TType&, TIntermNode*& nodeList, const TAttributes&, bool forbidDeclarators = false); + bool acceptQualifier(TQualifier&); + bool acceptLayoutQualifierList(TQualifier&); + bool acceptType(TType&); + bool acceptType(TType&, TIntermNode*& nodeList); + bool acceptTemplateVecMatBasicType(TBasicType&); + bool acceptVectorTemplateType(TType&); + bool acceptMatrixTemplateType(TType&); + bool acceptTessellationDeclType(TBuiltInVariable&); + bool acceptTessellationPatchTemplateType(TType&); + bool acceptStreamOutTemplateType(TType&, TLayoutGeometry&); + bool acceptOutputPrimitiveGeometry(TLayoutGeometry&); + bool acceptAnnotations(TQualifier&); + bool acceptSamplerType(TType&); + bool acceptTextureType(TType&); + bool acceptSubpassInputType(TType&); + bool acceptStructBufferType(TType&); + bool acceptTextureBufferType(TType&); + bool acceptConstantBufferType(TType&); + bool acceptStruct(TType&, TIntermNode*& nodeList); + bool acceptStructDeclarationList(TTypeList*&, TIntermNode*& nodeList, TVector&); + bool acceptMemberFunctionDefinition(TIntermNode*& nodeList, const TType&, TString& memberName, + TFunctionDeclarator&); + bool acceptFunctionParameters(TFunction&); + bool acceptParameterDeclaration(TFunction&); + bool acceptFunctionDefinition(TFunctionDeclarator&, TIntermNode*& nodeList, TVector* deferredTokens); + bool acceptFunctionBody(TFunctionDeclarator& declarator, TIntermNode*& nodeList); + bool acceptParenExpression(TIntermTyped*&); + bool acceptExpression(TIntermTyped*&); + bool acceptInitializer(TIntermTyped*&); + bool acceptAssignmentExpression(TIntermTyped*&); + bool acceptConditionalExpression(TIntermTyped*&); + bool acceptBinaryExpression(TIntermTyped*&, PrecedenceLevel); + bool acceptUnaryExpression(TIntermTyped*&); + bool acceptPostfixExpression(TIntermTyped*&); + bool acceptConstructor(TIntermTyped*&); + bool acceptFunctionCall(const TSourceLoc&, TString& name, TIntermTyped*&, TIntermTyped* objectBase); + bool acceptArguments(TFunction*, TIntermTyped*&); + bool acceptLiteral(TIntermTyped*&); + bool acceptSimpleStatement(TIntermNode*&); + bool acceptCompoundStatement(TIntermNode*&); + bool acceptScopedStatement(TIntermNode*&); + bool acceptScopedCompoundStatement(TIntermNode*&); + bool acceptStatement(TIntermNode*&); + bool acceptNestedStatement(TIntermNode*&); + void acceptAttributes(TAttributes&); + bool acceptSelectionStatement(TIntermNode*&, const TAttributes&); + bool acceptSwitchStatement(TIntermNode*&, const TAttributes&); + bool acceptIterationStatement(TIntermNode*&, const TAttributes&); + bool acceptJumpStatement(TIntermNode*&); + bool acceptCaseLabel(TIntermNode*&); + bool acceptDefaultLabel(TIntermNode*&); + void acceptArraySpecifier(TArraySizes*&); + bool acceptPostDecls(TQualifier&); + bool acceptDefaultParameterDeclaration(const TType&, TIntermTyped*&); + + bool captureBlockTokens(TVector& tokens); + const char* getTypeString(EHlslTokenClass tokenClass) const; + + HlslParseContext& _parseContext; // state of parsing and helper functions for building the intermediate + TIntermediate& intermediate; // the final product, the intermediate representation, includes the AST + bool typeIdentifiers; // shader uses some types as identifiers + }; + +} // end namespace glslang + +#endif // HLSLGRAMMAR_H_ diff --git a/deps/glslang/glslang/hlsl/hlslOpMap.cpp b/deps/glslang/glslang/hlsl/hlslOpMap.cpp new file mode 100755 index 0000000000..ebe6fbd96c --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslOpMap.cpp @@ -0,0 +1,173 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +// Map from physical token form (e.g. '-') to logical operator +// form (e.g., binary subtract or unary negate). + +#include "hlslOpMap.h" + +namespace glslang { + +// Map parsing tokens that could be assignments into assignment operators. +TOperator HlslOpMap::assignment(EHlslTokenClass op) +{ + switch (op) { + case EHTokAssign: return EOpAssign; + case EHTokMulAssign: return EOpMulAssign; + case EHTokDivAssign: return EOpDivAssign; + case EHTokAddAssign: return EOpAddAssign; + case EHTokModAssign: return EOpModAssign; + case EHTokLeftAssign: return EOpLeftShiftAssign; + case EHTokRightAssign: return EOpRightShiftAssign; + case EHTokAndAssign: return EOpAndAssign; + case EHTokXorAssign: return EOpExclusiveOrAssign; + case EHTokOrAssign: return EOpInclusiveOrAssign; + case EHTokSubAssign: return EOpSubAssign; + + default: + return EOpNull; + } +} + +// Map parsing tokens that could be binary operations into binary operators. +TOperator HlslOpMap::binary(EHlslTokenClass op) +{ + switch (op) { + case EHTokPlus: return EOpAdd; + case EHTokDash: return EOpSub; + case EHTokStar: return EOpMul; + case EHTokSlash: return EOpDiv; + case EHTokPercent: return EOpMod; + case EHTokRightOp: return EOpRightShift; + case EHTokLeftOp: return EOpLeftShift; + case EHTokAmpersand: return EOpAnd; + case EHTokVerticalBar: return EOpInclusiveOr; + case EHTokCaret: return EOpExclusiveOr; + case EHTokEqOp: return EOpEqual; + case EHTokNeOp: return EOpNotEqual; + case EHTokLeftAngle: return EOpLessThan; + case EHTokRightAngle: return EOpGreaterThan; + case EHTokLeOp: return EOpLessThanEqual; + case EHTokGeOp: return EOpGreaterThanEqual; + case EHTokOrOp: return EOpLogicalOr; + case EHTokXorOp: return EOpLogicalXor; + case EHTokAndOp: return EOpLogicalAnd; + + default: + return EOpNull; + } +} + +// Map parsing tokens that could be unary operations into unary operators. +// These are just the ones that can appear in front of its operand. +TOperator HlslOpMap::preUnary(EHlslTokenClass op) +{ + switch (op) { + case EHTokPlus: return EOpAdd; // means no-op, but still a unary op was present + case EHTokDash: return EOpNegative; + case EHTokBang: return EOpLogicalNot; + case EHTokTilde: return EOpBitwiseNot; + + case EHTokIncOp: return EOpPreIncrement; + case EHTokDecOp: return EOpPreDecrement; + + default: return EOpNull; // means not a pre-unary op + } +} + +// Map parsing tokens that could be unary operations into unary operators. +// These are just the ones that can appear behind its operand. +TOperator HlslOpMap::postUnary(EHlslTokenClass op) +{ + switch (op) { + case EHTokDot: return EOpIndexDirectStruct; + case EHTokLeftBracket: return EOpIndexIndirect; + + case EHTokIncOp: return EOpPostIncrement; + case EHTokDecOp: return EOpPostDecrement; + + case EHTokColonColon: return EOpScoping; + + default: return EOpNull; // means not a post-unary op + } +} + +// Map operators into their level of precedence. +PrecedenceLevel HlslOpMap::precedenceLevel(TOperator op) +{ + switch (op) { + case EOpLogicalOr: + return PlLogicalOr; + case EOpLogicalXor: + return PlLogicalXor; + case EOpLogicalAnd: + return PlLogicalAnd; + + case EOpInclusiveOr: + return PlBitwiseOr; + case EOpExclusiveOr: + return PlBitwiseXor; + case EOpAnd: + return PlBitwiseAnd; + + case EOpEqual: + case EOpNotEqual: + return PlEquality; + + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + return PlRelational; + + case EOpRightShift: + case EOpLeftShift: + return PlShift; + + case EOpAdd: + case EOpSub: + return PlAdd; + + case EOpMul: + case EOpDiv: + case EOpMod: + return PlMul; + + default: + return PlBad; + } +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslOpMap.h b/deps/glslang/glslang/hlsl/hlslOpMap.h new file mode 100755 index 0000000000..4e783f3f0c --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslOpMap.h @@ -0,0 +1,69 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef HLSLOPMAP_H_ +#define HLSLOPMAP_H_ + +#include "hlslScanContext.h" + +namespace glslang { + + enum PrecedenceLevel { + PlBad, + PlLogicalOr, + PlLogicalXor, + PlLogicalAnd, + PlBitwiseOr, + PlBitwiseXor, + PlBitwiseAnd, + PlEquality, + PlRelational, + PlShift, + PlAdd, + PlMul + }; + + class HlslOpMap { + public: + static TOperator assignment(EHlslTokenClass op); + static TOperator binary(EHlslTokenClass op); + static TOperator preUnary(EHlslTokenClass op); + static TOperator postUnary(EHlslTokenClass op); + static PrecedenceLevel precedenceLevel(TOperator); + }; + +} // end namespace glslang + +#endif // HLSLOPMAP_H_ diff --git a/deps/glslang/glslang/hlsl/hlslParseHelper.cpp b/deps/glslang/glslang/hlsl/hlslParseHelper.cpp new file mode 100755 index 0000000000..d80f356b55 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslParseHelper.cpp @@ -0,0 +1,9994 @@ +// +// Copyright (C) 2017 Google, Inc. +// Copyright (C) 2017 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#include "hlslParseHelper.h" +#include "hlslScanContext.h" +#include "hlslGrammar.h" +#include "hlslAttributes.h" + +#include "../glslang/MachineIndependent/Scan.h" +#include "../glslang/MachineIndependent/preprocessor/PpContext.h" + +#include "../glslang/OSDependent/osinclude.h" + +#include +#include +#include +#include +#include + +namespace glslang { + +HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, + int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, + TInfoSink& infoSink, + const TString sourceEntryPointName, + bool forwardCompatible, EShMessages messages) : + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, + forwardCompatible, messages, &sourceEntryPointName), + annotationNestingLevel(0), + inputPatch(nullptr), + nextInLocation(0), nextOutLocation(0), + entryPointFunction(nullptr), + entryPointFunctionBody(nullptr), + gsStreamOutput(nullptr), + clipDistanceOutput(nullptr), + cullDistanceOutput(nullptr), + clipDistanceInput(nullptr), + cullDistanceInput(nullptr) +{ + globalUniformDefaults.clear(); + globalUniformDefaults.layoutMatrix = ElmRowMajor; + globalUniformDefaults.layoutPacking = ElpStd140; + + globalBufferDefaults.clear(); + globalBufferDefaults.layoutMatrix = ElmRowMajor; + globalBufferDefaults.layoutPacking = ElpStd430; + + globalInputDefaults.clear(); + globalOutputDefaults.clear(); + + clipSemanticNSizeIn.fill(0); + cullSemanticNSizeIn.fill(0); + clipSemanticNSizeOut.fill(0); + cullSemanticNSizeOut.fill(0); + + // "Shaders in the transform + // feedback capturing mode have an initial global default of + // layout(xfb_buffer = 0) out;" + if (language == EShLangVertex || + language == EShLangTessControl || + language == EShLangTessEvaluation || + language == EShLangGeometry) + globalOutputDefaults.layoutXfbBuffer = 0; + + if (language == EShLangGeometry) + globalOutputDefaults.layoutStream = 0; + + if (spvVersion.spv == 0 || spvVersion.vulkan == 0) + infoSink.info << "ERROR: HLSL currently only supported when requesting SPIR-V for Vulkan.\n"; +} + +HlslParseContext::~HlslParseContext() +{ +} + +void HlslParseContext::initializeExtensionBehavior() +{ + TParseContextBase::initializeExtensionBehavior(); + + // HLSL allows #line by default. + extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhEnable; +} + +void HlslParseContext::setLimits(const TBuiltInResource& r) +{ + resources = r; + intermediate.setLimits(resources); +} + +// +// Parse an array of strings using the parser in HlslRules. +// +// Returns true for successful acceptance of the shader, false if any errors. +// +bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& input, bool versionWillBeError) +{ + currentScanner = &input; + ppContext.setInput(input, versionWillBeError); + + HlslScanContext scanContext(*this, ppContext); + HlslGrammar grammar(scanContext, *this); + if (!grammar.parse()) { + // Print a message formated such that if you click on the message it will take you right to + // the line through most UIs. + const glslang::TSourceLoc& sourceLoc = input.getSourceLoc(); + infoSink.info << sourceLoc.name << "(" << sourceLoc.line << "): error at column " << sourceLoc.column + << ", HLSL parsing failed.\n"; + ++numErrors; + return false; + } + + finish(); + + return numErrors == 0; +} + +// +// Return true if this l-value node should be converted in some manner. +// For instance: turning a load aggregate into a store in an l-value. +// +bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const +{ + if (node == nullptr || node->getAsTyped() == nullptr) + return false; + + const TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + const TIntermBinary* lhsAsBinary = node->getAsBinaryNode(); + + // If it's a swizzled/indexed aggregate, look at the left node instead. + if (lhsAsBinary != nullptr && + (lhsAsBinary->getOp() == EOpVectorSwizzle || lhsAsBinary->getOp() == EOpIndexDirect)) + lhsAsAggregate = lhsAsBinary->getLeft()->getAsAggregate(); + if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad) + return true; + + return false; +} + +void HlslParseContext::growGlobalUniformBlock(const TSourceLoc& loc, TType& memberType, const TString& memberName, + TTypeList* newTypeList) +{ + newTypeList = nullptr; + correctUniform(memberType.getQualifier()); + if (memberType.isStruct()) { + auto it = ioTypeMap.find(memberType.getStruct()); + if (it != ioTypeMap.end() && it->second.uniform) + newTypeList = it->second.uniform; + } + TParseContextBase::growGlobalUniformBlock(loc, memberType, memberName, newTypeList); +} + +// +// Return a TLayoutFormat corresponding to the given texture type. +// +TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const TType& txType) +{ + if (txType.isStruct()) { + // TODO: implement. + error(loc, "unimplemented: structure type in image or buffer", "", ""); + return ElfNone; + } + + const int components = txType.getVectorSize(); + const TBasicType txBasicType = txType.getBasicType(); + + const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) -> TLayoutFormat { + if (intermediate.getNoStorageFormat()) + return ElfNone; + + return components == 1 ? v1 : + components == 2 ? v2 : v4; + }; + + switch (txBasicType) { + case EbtFloat: return selectFormat(ElfR32f, ElfRg32f, ElfRgba32f); + case EbtInt: return selectFormat(ElfR32i, ElfRg32i, ElfRgba32i); + case EbtUint: return selectFormat(ElfR32ui, ElfRg32ui, ElfRgba32ui); + default: + error(loc, "unknown basic type in image format", "", ""); + return ElfNone; + } +} + +// +// Both test and if necessary, spit out an error, to see if the node is really +// an l-value that can be operated on this way. +// +// Returns true if there was an error. +// +bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (shouldConvertLValue(node)) { + // if we're writing to a texture, it must be an RW form. + + TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + + if (!object->getType().getSampler().isImage()) { + error(loc, "operator[] on a non-RW texture must be an r-value", "", ""); + return true; + } + } + + // We tolerate samplers as l-values, even though they are nominally + // illegal, because we expect a later optimization to eliminate them. + if (node->getType().getBasicType() == EbtSampler) { + intermediate.setNeedsLegalization(); + return false; + } + + // Let the base class check errors + return TParseContextBase::lValueErrorCheck(loc, op, node); +} + +// +// This function handles l-value conversions and verifications. It uses, but is not synonymous +// with lValueErrorCheck. That function accepts an l-value directly, while this one must be +// given the surrounding tree - e.g, with an assignment, so we can convert the assign into a +// series of other image operations. +// +// Most things are passed through unmodified, except for error checking. +// +TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped*& node) +{ + if (node == nullptr) + return nullptr; + + TIntermBinary* nodeAsBinary = node->getAsBinaryNode(); + TIntermUnary* nodeAsUnary = node->getAsUnaryNode(); + TIntermAggregate* sequence = nullptr; + + TIntermTyped* lhs = nodeAsUnary ? nodeAsUnary->getOperand() : + nodeAsBinary ? nodeAsBinary->getLeft() : + nullptr; + + // Early bail out if there is no conversion to apply + if (!shouldConvertLValue(lhs)) { + if (lhs != nullptr) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; + return node; + } + + // *** If we get here, we're going to apply some conversion to an l-value. + + // Helper to create a load. + const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) { + TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad); + loadOp->setLoc(loc); + loadOp->getSequence().push_back(object); + loadOp->getSequence().push_back(intermediate.addSymbol(*coord->getAsSymbolNode())); + loadOp->setType(derefType); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, rhsTmp, loadOp, loc), + loc); + }; + + // Helper to create a store. + const auto makeStore = [&](TIntermTyped* object, TIntermTyped* coord, TIntermSymbol* rhsTmp) { + TIntermAggregate* storeOp = new TIntermAggregate(EOpImageStore); + storeOp->getSequence().push_back(object); + storeOp->getSequence().push_back(coord); + storeOp->getSequence().push_back(intermediate.addSymbol(*rhsTmp)); + storeOp->setLoc(loc); + storeOp->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, storeOp); + }; + + // Helper to create an assign. + const auto makeBinary = [&](TOperator op, TIntermTyped* lhs, TIntermTyped* rhs) { + sequence = intermediate.growAggregate(sequence, + intermediate.addBinaryNode(op, lhs, rhs, loc, lhs->getType()), + loc); + }; + + // Helper to complete sequence by adding trailing variable, so we evaluate to the right value. + const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) -> TIntermAggregate* { + // Add a trailing use of the temp, so the sequence returns the proper value. + sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp)); + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(derefType); + + return sequence; + }; + + // Helper to add unary op + const auto makeUnary = [&](TOperator op, TIntermSymbol* rhsTmp) { + sequence = intermediate.growAggregate(sequence, + intermediate.addUnaryNode(op, intermediate.addSymbol(*rhsTmp), loc, + rhsTmp->getType()), + loc); + }; + + // Return true if swizzle or index writes all components of the given variable. + const auto writesAllComponents = [&](TIntermSymbol* var, TIntermBinary* swizzle) -> bool { + if (swizzle == nullptr) // not a swizzle or index + return true; + + // Track which components are being set. + std::array compIsSet; + compIsSet.fill(false); + + const TIntermConstantUnion* asConst = swizzle->getRight()->getAsConstantUnion(); + const TIntermAggregate* asAggregate = swizzle->getRight()->getAsAggregate(); + + // This could be either a direct index, or a swizzle. + if (asConst) { + compIsSet[asConst->getConstArray()[0].getIConst()] = true; + } else if (asAggregate) { + const TIntermSequence& seq = asAggregate->getSequence(); + for (int comp=0; compgetAsConstantUnion()->getConstArray()[0].getIConst()] = true; + } else { + assert(0); + } + + // Return true if all components are being set by the index or swizzle + return std::all_of(compIsSet.begin(), compIsSet.begin() + var->getType().getVectorSize(), + [](bool isSet) { return isSet; } ); + }; + + // Create swizzle matching input swizzle + const auto addSwizzle = [&](TIntermSymbol* var, TIntermBinary* swizzle) -> TIntermTyped* { + if (swizzle) + return intermediate.addBinaryNode(swizzle->getOp(), var, swizzle->getRight(), loc, swizzle->getType()); + else + return var; + }; + + TIntermBinary* lhsAsBinary = lhs->getAsBinaryNode(); + TIntermAggregate* lhsAsAggregate = lhs->getAsAggregate(); + bool lhsIsSwizzle = false; + + // If it's a swizzled L-value, remember the swizzle, and use the LHS. + if (lhsAsBinary != nullptr && (lhsAsBinary->getOp() == EOpVectorSwizzle || lhsAsBinary->getOp() == EOpIndexDirect)) { + lhsAsAggregate = lhsAsBinary->getLeft()->getAsAggregate(); + lhsIsSwizzle = true; + } + + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* coord = lhsAsAggregate->getSequence()[1]->getAsTyped(); + + const TSampler& texSampler = object->getType().getSampler(); + + TType objDerefType; + getTextureReturnType(texSampler, objDerefType); + + if (nodeAsBinary) { + TIntermTyped* rhs = nodeAsBinary->getRight(); + const TOperator assignOp = nodeAsBinary->getOp(); + + bool isModifyOp = false; + + switch (assignOp) { + case EOpAddAssign: + case EOpSubAssign: + case EOpMulAssign: + case EOpVectorTimesMatrixAssign: + case EOpVectorTimesScalarAssign: + case EOpMatrixTimesScalarAssign: + case EOpMatrixTimesMatrixAssign: + case EOpDivAssign: + case EOpModAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: + case EOpLeftShiftAssign: + case EOpRightShiftAssign: + isModifyOp = true; + // fall through... + case EOpAssign: + { + // Since this is an lvalue, we'll convert an image load to a sequence like this + // (to still provide the value): + // OpSequence + // OpImageStore(object, lhs, rhs) + // rhs + // But if it's not a simple symbol RHS (say, a fn call), we don't want to duplicate the RHS, + // so we'll convert instead to this: + // OpSequence + // rhsTmp = rhs + // OpImageStore(object, coord, rhsTmp) + // rhsTmp + // If this is a read-modify-write op, like +=, we issue: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op= rhs + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + // + // If the lvalue is swizzled, we apply that when writing the temp variable, like so: + // ... + // rhsTmp.some_swizzle = ... + // For partial writes, an error is generated. + + TIntermSymbol* rhsTmp = rhs->getAsSymbolNode(); + TIntermTyped* coordTmp = coord; + + if (rhsTmp == nullptr || isModifyOp || lhsIsSwizzle) { + rhsTmp = makeInternalVariableNode(loc, "storeTemp", objDerefType); + + // Partial updates not yet supported + if (!writesAllComponents(rhsTmp, lhsAsBinary)) { + error(loc, "unimplemented: partial image updates", "", ""); + } + + // Assign storeTemp = rhs + if (isModifyOp) { + // We have to make a temp var for the coordinate, to avoid evaluating it twice. + coordTmp = makeInternalVariableNode(loc, "coordTemp", coord->getType()); + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + } + + // rhsTmp op= rhs. + makeBinary(assignOp, addSwizzle(intermediate.addSymbol(*rhsTmp), lhsAsBinary), rhs); + } + + makeStore(object, coordTmp, rhsTmp); // add a store + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (nodeAsUnary) { + const TOperator assignOp = nodeAsUnary->getOp(); + + switch (assignOp) { + case EOpPreIncrement: + case EOpPreDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = makeInternalVariableNode(loc, "storeTemp", objDerefType); + TIntermTyped* coordTmp = makeInternalVariableNode(loc, "coordTemp", coord->getType()); + + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + makeUnary(assignOp, rhsTmp); // op rhsTmp + makeStore(object, coordTmp, rhsTmp); // OpImageStore(object, coordTmp, rhsTmp) + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + case EOpPostIncrement: + case EOpPostDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp1 = OpImageLoad(object, coordTmp) + // rhsTmp2 = rhsTmp1 + // rhsTmp2 op + // OpImageStore(object, coordTmp, rhsTmp2) + // rhsTmp1 (pre-op value) + TIntermSymbol* rhsTmp1 = makeInternalVariableNode(loc, "storeTempPre", objDerefType); + TIntermSymbol* rhsTmp2 = makeInternalVariableNode(loc, "storeTempPost", objDerefType); + TIntermTyped* coordTmp = makeInternalVariableNode(loc, "coordTemp", coord->getType()); + + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp1, object, coordTmp, objDerefType); // rhsTmp1 = OpImageLoad(object, coordTmp) + makeBinary(EOpAssign, rhsTmp2, rhsTmp1); // rhsTmp2 = rhsTmp1 + makeUnary(assignOp, rhsTmp2); // rhsTmp op + makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) + return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (lhs) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; + + return node; +} + +void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector& tokens) +{ + if (pragmaCallback) + pragmaCallback(loc.line, tokens); + + if (tokens.size() == 0) + return; + + // These pragmas are case insensitive in HLSL, so we'll compare in lower case. + TVector lowerTokens = tokens; + + for (auto it = lowerTokens.begin(); it != lowerTokens.end(); ++it) + std::transform(it->begin(), it->end(), it->begin(), ::tolower); + + // Handle pack_matrix + if (tokens.size() == 4 && lowerTokens[0] == "pack_matrix" && tokens[1] == "(" && tokens[3] == ")") { + // Note that HLSL semantic order is Mrc, not Mcr like SPIR-V, so we reverse the sense. + // Row major becomes column major and vice versa. + + if (lowerTokens[2] == "row_major") { + globalUniformDefaults.layoutMatrix = globalBufferDefaults.layoutMatrix = ElmColumnMajor; + } else if (lowerTokens[2] == "column_major") { + globalUniformDefaults.layoutMatrix = globalBufferDefaults.layoutMatrix = ElmRowMajor; + } else { + // unknown majorness strings are treated as (HLSL column major)==(SPIR-V row major) + warn(loc, "unknown pack_matrix pragma value", tokens[2].c_str(), ""); + globalUniformDefaults.layoutMatrix = globalBufferDefaults.layoutMatrix = ElmRowMajor; + } + return; + } + + // Handle once + if (lowerTokens[0] == "once") { + warn(loc, "not implemented", "#pragma once", ""); + return; + } +} + +// +// Look at a '.' matrix selector string and change it into components +// for a matrix. There are two types: +// +// _21 second row, first column (one based) +// _m21 third row, second column (zero based) +// +// Returns true if there is no error. +// +bool HlslParseContext::parseMatrixSwizzleSelector(const TSourceLoc& loc, const TString& fields, int cols, int rows, + TSwizzleSelectors& components) +{ + int startPos[MaxSwizzleSelectors]; + int numComps = 0; + TString compString = fields; + + // Find where each component starts, + // recording the first character position after the '_'. + for (size_t c = 0; c < compString.size(); ++c) { + if (compString[c] == '_') { + if (numComps >= MaxSwizzleSelectors) { + error(loc, "matrix component swizzle has too many components", compString.c_str(), ""); + return false; + } + if (c > compString.size() - 3 || + ((compString[c+1] == 'm' || compString[c+1] == 'M') && c > compString.size() - 4)) { + error(loc, "matrix component swizzle missing", compString.c_str(), ""); + return false; + } + startPos[numComps++] = (int)c + 1; + } + } + + // Process each component + for (int i = 0; i < numComps; ++i) { + int pos = startPos[i]; + int bias = -1; + if (compString[pos] == 'm' || compString[pos] == 'M') { + bias = 0; + ++pos; + } + TMatrixSelector comp; + comp.coord1 = compString[pos+0] - '0' + bias; + comp.coord2 = compString[pos+1] - '0' + bias; + if (comp.coord1 < 0 || comp.coord1 >= cols) { + error(loc, "matrix row component out of range", compString.c_str(), ""); + return false; + } + if (comp.coord2 < 0 || comp.coord2 >= rows) { + error(loc, "matrix column component out of range", compString.c_str(), ""); + return false; + } + components.push_back(comp); + } + + return true; +} + +// If the 'comps' express a column of a matrix, +// return the column. Column means the first coords all match. +// +// Otherwise, return -1. +// +int HlslParseContext::getMatrixComponentsColumn(int rows, const TSwizzleSelectors& selector) +{ + int col = -1; + + // right number of comps? + if (selector.size() != rows) + return -1; + + // all comps in the same column? + // rows in order? + col = selector[0].coord1; + for (int i = 0; i < rows; ++i) { + if (col != selector[i].coord1) + return -1; + if (i != selector[i].coord2) + return -1; + } + + return col; +} + +// +// Handle seeing a variable identifier in the grammar. +// +TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, const TString* string) +{ + int thisDepth; + TSymbol* symbol = symbolTable.find(*string, thisDepth); + if (symbol && symbol->getAsVariable() && symbol->getAsVariable()->isUserType()) { + error(loc, "expected symbol, not user-defined type", string->c_str(), ""); + return nullptr; + } + + // Error check for requiring specific extensions present. + if (symbol && symbol->getNumExtensions()) + requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); + + const TVariable* variable = nullptr; + const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr; + TIntermTyped* node = nullptr; + if (anon) { + // It was a member of an anonymous container, which could be a 'this' structure. + + // Create a subtree for its dereference. + if (thisDepth > 0) { + variable = getImplicitThis(thisDepth); + if (variable == nullptr) + error(loc, "cannot access member variables (static member function?)", "this", ""); + } + if (variable == nullptr) + variable = anon->getAnonContainer().getAsVariable(); + + TIntermTyped* container = intermediate.addSymbol(*variable, loc); + TIntermTyped* constNode = intermediate.addConstantUnion(anon->getMemberNumber(), loc); + node = intermediate.addIndex(EOpIndexDirectStruct, container, constNode, loc); + + node->setType(*(*variable->getType().getStruct())[anon->getMemberNumber()].type); + if (node->getType().hiddenMember()) + error(loc, "member of nameless block was not redeclared", string->c_str(), ""); + } else { + // Not a member of an anonymous container. + + // The symbol table search was done in the lexical phase. + // See if it was a variable. + variable = symbol ? symbol->getAsVariable() : nullptr; + if (variable) { + if ((variable->getType().getBasicType() == EbtBlock || + variable->getType().getBasicType() == EbtStruct) && variable->getType().getStruct() == nullptr) { + error(loc, "cannot be used (maybe an instance name is needed)", string->c_str(), ""); + variable = nullptr; + } + } else { + if (symbol) + error(loc, "variable name expected", string->c_str(), ""); + } + + // Recovery, if it wasn't found or was not a variable. + if (variable == nullptr) { + error(loc, "unknown variable", string->c_str(), ""); + variable = new TVariable(string, TType(EbtVoid)); + } + + if (variable->getType().getQualifier().isFrontEndConstant()) + node = intermediate.addConstantUnion(variable->getConstArray(), variable->getType(), loc); + else + node = intermediate.addSymbol(*variable, loc); + } + + if (variable->getType().getQualifier().isIo()) + intermediate.addIoAccessed(*string); + + return node; +} + +// +// Handle operator[] on any objects it applies to. Currently: +// Textures +// Buffers +// +TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) +{ + // handle r-value operator[] on textures and images. l-values will be processed later. + if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { + const TSampler& sampler = base->getType().getSampler(); + if (sampler.isImage() || sampler.isTexture()) { + if (! mipsOperatorMipArg.empty() && mipsOperatorMipArg.back().mipLevel == nullptr) { + // The first operator[] to a .mips[] sequence is the mip level. We'll remember it. + mipsOperatorMipArg.back().mipLevel = index; + return base; // next [] index is to the same base. + } else { + TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); + + TType sampReturnType; + getTextureReturnType(sampler, sampReturnType); + + load->setType(sampReturnType); + load->setLoc(loc); + load->getSequence().push_back(base); + load->getSequence().push_back(index); + + // Textures need a MIP. If we saw one go by, use it. Otherwise, use zero. + if (sampler.isTexture()) { + if (! mipsOperatorMipArg.empty()) { + load->getSequence().push_back(mipsOperatorMipArg.back().mipLevel); + mipsOperatorMipArg.pop_back(); + } else { + load->getSequence().push_back(intermediate.addConstantUnion(0, loc, true)); + } + } + + return load; + } + } + } + + // Handle operator[] on structured buffers: this indexes into the array element of the buffer. + // indexStructBufferContent returns nullptr if it isn't a structuredbuffer (SSBO). + TIntermTyped* sbArray = indexStructBufferContent(loc, base); + if (sbArray != nullptr) { + if (sbArray == nullptr) + return nullptr; + + // Now we'll apply the [] index to that array + const TOperator idxOp = (index->getQualifier().storage == EvqConst) ? EOpIndexDirect : EOpIndexIndirect; + + TIntermTyped* element = intermediate.addIndex(idxOp, sbArray, index, loc); + const TType derefType(sbArray->getType(), 0); + element->setType(derefType); + return element; + } + + return nullptr; +} + +// +// Cast index value to a uint if it isn't already (for operator[], load indexes, etc) +TIntermTyped* HlslParseContext::makeIntegerIndex(TIntermTyped* index) +{ + const TBasicType indexBasicType = index->getType().getBasicType(); + const int vecSize = index->getType().getVectorSize(); + + // We can use int types directly as the index + if (indexBasicType == EbtInt || indexBasicType == EbtUint || + indexBasicType == EbtInt64 || indexBasicType == EbtUint64) + return index; + + // Cast index to unsigned integer if it isn't one. + return intermediate.addConversion(EOpConstructUint, TType(EbtUint, EvqTemporary, vecSize), index); +} + +// +// Handle seeing a base[index] dereference in the grammar. +// +TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) +{ + index = makeIntegerIndex(index); + + if (index == nullptr) { + error(loc, " unknown index type ", "", ""); + return nullptr; + } + + TIntermTyped* result = handleBracketOperator(loc, base, index); + + if (result != nullptr) + return result; // it was handled as an operator[] + + bool flattened = false; + int indexValue = 0; + if (index->getQualifier().isFrontEndConstant()) + indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); + + variableCheck(base); + if (! base->isArray() && ! base->isMatrix() && ! base->isVector()) { + if (base->getAsSymbolNode()) + error(loc, " left of '[' is not of type array, matrix, or vector ", + base->getAsSymbolNode()->getName().c_str(), ""); + else + error(loc, " left of '[' is not of type array, matrix, or vector ", "expression", ""); + } else if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) { + // both base and index are front-end constants + checkIndex(loc, base->getType(), indexValue); + return intermediate.foldDereference(base, indexValue, loc); + } else { + // at least one of base and index is variable... + + if (index->getQualifier().isFrontEndConstant()) + checkIndex(loc, base->getType(), indexValue); + + if (base->getType().isScalarOrVec1()) + result = base; + else if (base->getAsSymbolNode() && wasFlattened(base)) { + if (index->getQualifier().storage != EvqConst) + error(loc, "Invalid variable index to flattened array", base->getAsSymbolNode()->getName().c_str(), ""); + + result = flattenAccess(base, indexValue); + flattened = (result != base); + } else { + if (index->getQualifier().isFrontEndConstant()) { + if (base->getType().isUnsizedArray()) + base->getWritableType().updateImplicitArraySize(indexValue + 1); + else + checkIndex(loc, base->getType(), indexValue); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + } else + result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + } + } + + if (result == nullptr) { + // Insert dummy error-recovery result + result = intermediate.addConstantUnion(0.0, EbtFloat, loc); + } else { + // If the array reference was flattened, it has the correct type. E.g, if it was + // a uniform array, it was flattened INTO a set of scalar uniforms, not scalar temps. + // In that case, we preserve the qualifiers. + if (!flattened) { + // Insert valid dereferenced result + TType newType(base->getType(), 0); // dereferenced type + if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) + newType.getQualifier().storage = EvqConst; + else + newType.getQualifier().storage = EvqTemporary; + result->setType(newType); + } + } + + return result; +} + +// Handle seeing a binary node with a math operation. +TIntermTyped* HlslParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, + TIntermTyped* left, TIntermTyped* right) +{ + TIntermTyped* result = intermediate.addBinaryMath(op, left, right, loc); + if (result == nullptr) + binaryOpError(loc, str, left->getCompleteString(), right->getCompleteString()); + + return result; +} + +// Handle seeing a unary node with a math operation. +TIntermTyped* HlslParseContext::handleUnaryMath(const TSourceLoc& loc, const char* str, TOperator op, + TIntermTyped* childNode) +{ + TIntermTyped* result = intermediate.addUnaryMath(op, childNode, loc); + + if (result) + return result; + else + unaryOpError(loc, str, childNode->getCompleteString()); + + return childNode; +} +// +// Return true if the name is a struct buffer method +// +bool HlslParseContext::isStructBufferMethod(const TString& name) const +{ + return + name == "GetDimensions" || + name == "Load" || + name == "Load2" || + name == "Load3" || + name == "Load4" || + name == "Store" || + name == "Store2" || + name == "Store3" || + name == "Store4" || + name == "InterlockedAdd" || + name == "InterlockedAnd" || + name == "InterlockedCompareExchange" || + name == "InterlockedCompareStore" || + name == "InterlockedExchange" || + name == "InterlockedMax" || + name == "InterlockedMin" || + name == "InterlockedOr" || + name == "InterlockedXor" || + name == "IncrementCounter" || + name == "DecrementCounter" || + name == "Append" || + name == "Consume"; +} + +// +// Handle seeing a base.field dereference in the grammar, where 'field' is a +// swizzle or member variable. +// +TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TIntermTyped* base, const TString& field) +{ + variableCheck(base); + + if (base->isArray()) { + error(loc, "cannot apply to an array:", ".", field.c_str()); + return base; + } + + TIntermTyped* result = base; + + if (base->getType().getBasicType() == EbtSampler) { + // Handle .mips[mipid][pos] operation on textures + const TSampler& sampler = base->getType().getSampler(); + if (sampler.isTexture() && field == "mips") { + // Push a null to signify that we expect a mip level under operator[] next. + mipsOperatorMipArg.push_back(tMipsOperatorData(loc, nullptr)); + // Keep 'result' pointing to 'base', since we expect an operator[] to go by next. + } else { + if (field == "mips") + error(loc, "unexpected texture type for .mips[][] operator:", + base->getType().getCompleteString().c_str(), ""); + else + error(loc, "unexpected operator on texture type:", field.c_str(), + base->getType().getCompleteString().c_str()); + } + } else if (base->isVector() || base->isScalar()) { + TSwizzleSelectors selectors; + parseSwizzleSelector(loc, field, base->getVectorSize(), selectors); + + if (base->isScalar()) { + if (selectors.size() == 1) + return result; + else { + TType type(base->getBasicType(), EvqTemporary, selectors.size()); + return addConstructor(loc, base, type); + } + } + if (base->getVectorSize() == 1) { + TType scalarType(base->getBasicType(), EvqTemporary, 1); + if (selectors.size() == 1) + return addConstructor(loc, base, scalarType); + else { + TType vectorType(base->getBasicType(), EvqTemporary, selectors.size()); + return addConstructor(loc, addConstructor(loc, base, scalarType), vectorType); + } + } + + if (base->getType().getQualifier().isFrontEndConstant()) + result = intermediate.foldSwizzle(base, selectors, loc); + else { + if (selectors.size() == 1) { + TIntermTyped* index = intermediate.addConstantUnion(selectors[0], loc); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + result->setType(TType(base->getBasicType(), EvqTemporary)); + } else { + TIntermTyped* index = intermediate.addSwizzle(selectors, loc); + result = intermediate.addIndex(EOpVectorSwizzle, base, index, loc); + result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, + selectors.size())); + } + } + } else if (base->isMatrix()) { + TSwizzleSelectors selectors; + if (! parseMatrixSwizzleSelector(loc, field, base->getMatrixCols(), base->getMatrixRows(), selectors)) + return result; + + if (selectors.size() == 1) { + // Representable by m[c][r] + if (base->getType().getQualifier().isFrontEndConstant()) { + result = intermediate.foldDereference(base, selectors[0].coord1, loc); + result = intermediate.foldDereference(result, selectors[0].coord2, loc); + } else { + result = intermediate.addIndex(EOpIndexDirect, base, + intermediate.addConstantUnion(selectors[0].coord1, loc), + loc); + TType dereferencedCol(base->getType(), 0); + result->setType(dereferencedCol); + result = intermediate.addIndex(EOpIndexDirect, result, + intermediate.addConstantUnion(selectors[0].coord2, loc), + loc); + TType dereferenced(dereferencedCol, 0); + result->setType(dereferenced); + } + } else { + int column = getMatrixComponentsColumn(base->getMatrixRows(), selectors); + if (column >= 0) { + // Representable by m[c] + if (base->getType().getQualifier().isFrontEndConstant()) + result = intermediate.foldDereference(base, column, loc); + else { + result = intermediate.addIndex(EOpIndexDirect, base, intermediate.addConstantUnion(column, loc), + loc); + TType dereferenced(base->getType(), 0); + result->setType(dereferenced); + } + } else { + // general case, not a column, not a single component + TIntermTyped* index = intermediate.addSwizzle(selectors, loc); + result = intermediate.addIndex(EOpMatrixSwizzle, base, index, loc); + result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, + selectors.size())); + } + } + } else if (base->getBasicType() == EbtStruct || base->getBasicType() == EbtBlock) { + const TTypeList* fields = base->getType().getStruct(); + bool fieldFound = false; + int member; + for (member = 0; member < (int)fields->size(); ++member) { + if ((*fields)[member].type->getFieldName() == field) { + fieldFound = true; + break; + } + } + if (fieldFound) { + if (base->getAsSymbolNode() && wasFlattened(base)) { + result = flattenAccess(base, member); + } else { + if (base->getType().getQualifier().storage == EvqConst) + result = intermediate.foldDereference(base, member, loc); + else { + TIntermTyped* index = intermediate.addConstantUnion(member, loc); + result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc); + result->setType(*(*fields)[member].type); + } + } + } else + error(loc, "no such field in structure", field.c_str(), ""); + } else + error(loc, "does not apply to this type:", field.c_str(), base->getType().getCompleteString().c_str()); + + return result; +} + +// +// Return true if the field should be treated as a built-in method. +// Return false otherwise. +// +bool HlslParseContext::isBuiltInMethod(const TSourceLoc&, TIntermTyped* base, const TString& field) +{ + if (base == nullptr) + return false; + + variableCheck(base); + + if (base->getType().getBasicType() == EbtSampler) { + return true; + } else if (isStructBufferType(base->getType()) && isStructBufferMethod(field)) { + return true; + } else if (field == "Append" || + field == "RestartStrip") { + // We cannot check the type here: it may be sanitized if we're not compiling a geometry shader, but + // the code is around in the shader source. + return true; + } else + return false; +} + +// Independently establish a built-in that is a member of a structure. +// 'arraySizes' are what's desired for the independent built-in, whatever +// the higher-level source/expression of them was. +void HlslParseContext::splitBuiltIn(const TString& baseName, const TType& memberType, const TArraySizes* arraySizes, + const TQualifier& outerQualifier) +{ + // Because of arrays of structs, we might be asked more than once, + // but the arraySizes passed in should have captured the whole thing + // the first time. + // However, clip/cull rely on multiple updates. + if (!isClipOrCullDistance(memberType)) + if (splitBuiltIns.find(tInterstageIoData(memberType.getQualifier().builtIn, outerQualifier.storage)) != + splitBuiltIns.end()) + return; + + TVariable* ioVar = makeInternalVariable(baseName + "." + memberType.getFieldName(), memberType); + + if (arraySizes != nullptr && !memberType.isArray()) + ioVar->getWritableType().copyArraySizes(*arraySizes); + + splitBuiltIns[tInterstageIoData(memberType.getQualifier().builtIn, outerQualifier.storage)] = ioVar; + if (!isClipOrCullDistance(ioVar->getType())) + trackLinkage(*ioVar); + + // Merge qualifier from the user structure + mergeQualifiers(ioVar->getWritableType().getQualifier(), outerQualifier); + + // Fix the builtin type if needed (e.g, some types require fixed array sizes, no matter how the + // shader declared them). This is done after mergeQualifiers(), in case fixBuiltInIoType looks + // at the qualifier to determine e.g, in or out qualifications. + fixBuiltInIoType(ioVar->getWritableType()); + + // But, not location, we're losing that + ioVar->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd; +} + +// Split a type into +// 1. a struct of non-I/O members +// 2. a collection of independent I/O variables +void HlslParseContext::split(const TVariable& variable) +{ + // Create a new variable: + const TType& clonedType = *variable.getType().clone(); + const TType& splitType = split(clonedType, variable.getName(), clonedType.getQualifier()); + splitNonIoVars[variable.getUniqueId()] = makeInternalVariable(variable.getName(), splitType); +} + +// Recursive implementation of split(). +// Returns reference to the modified type. +const TType& HlslParseContext::split(const TType& type, const TString& name, const TQualifier& outerQualifier) +{ + if (type.isStruct()) { + TTypeList* userStructure = type.getWritableStruct(); + for (auto ioType = userStructure->begin(); ioType != userStructure->end(); ) { + if (ioType->type->isBuiltIn()) { + // move out the built-in + splitBuiltIn(name, *ioType->type, type.getArraySizes(), outerQualifier); + ioType = userStructure->erase(ioType); + } else { + split(*ioType->type, name + "." + ioType->type->getFieldName(), outerQualifier); + ++ioType; + } + } + } + + return type; +} + +// Is this an aggregate that should be flattened? +// Can be applied to intermediate levels of type in a hierarchy. +// Some things like flattening uniform arrays are only about the top level +// of the aggregate, triggered on 'topLevel'. +bool HlslParseContext::shouldFlatten(const TType& type, TStorageQualifier qualifier, bool topLevel) const +{ + switch (qualifier) { + case EvqVaryingIn: + case EvqVaryingOut: + return type.isStruct() || type.isArray(); + case EvqUniform: + return (type.isArray() && intermediate.getFlattenUniformArrays() && topLevel) || + (type.isStruct() && type.containsOpaque()); + default: + return false; + }; +} + +// Top level variable flattening: construct data +void HlslParseContext::flatten(const TVariable& variable, bool linkage) +{ + const TType& type = variable.getType(); + + // If it's a standalone built-in, there is nothing to flatten + if (type.isBuiltIn() && !type.isStruct()) + return; + + auto entry = flattenMap.insert(std::make_pair(variable.getUniqueId(), + TFlattenData(type.getQualifier().layoutBinding, + type.getQualifier().layoutLocation))); + + // the item is a map pair, so first->second is the TFlattenData itself. + flatten(variable, type, entry.first->second, variable.getName(), linkage, type.getQualifier(), nullptr); +} + +// Recursively flatten the given variable at the provided type, building the flattenData as we go. +// +// This is mutually recursive with flattenStruct and flattenArray. +// We are going to flatten an arbitrarily nested composite structure into a linear sequence of +// members, and later on, we want to turn a path through the tree structure into a final +// location in this linear sequence. +// +// If the tree was N-ary, that can be directly calculated. However, we are dealing with +// arbitrary numbers - perhaps a struct of 7 members containing an array of 3. Thus, we must +// build a data structure to allow the sequence of bracket and dot operators on arrays and +// structs to arrive at the proper member. +// +// To avoid storing a tree with pointers, we are going to flatten the tree into a vector of integers. +// The leaves are the indexes into the flattened member array. +// Each level will have the next location for the Nth item stored sequentially, so for instance: +// +// struct { float2 a[2]; int b; float4 c[3] }; +// +// This will produce the following flattened tree: +// Pos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +// (3, 7, 8, 5, 6, 0, 1, 2, 11, 12, 13, 3, 4, 5} +// +// Given a reference to mystruct.c[1], the access chain is (2,1), so we traverse: +// (0+2) = 8 --> (8+1) = 12 --> 12 = 4 +// +// so the 4th flattened member in traversal order is ours. +// +int HlslParseContext::flatten(const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name, bool linkage, + const TQualifier& outerQualifier, + const TArraySizes* builtInArraySizes) +{ + // If something is an arrayed struct, the array flattener will recursively call flatten() + // to then flatten the struct, so this is an "if else": we don't do both. + if (type.isArray()) + return flattenArray(variable, type, flattenData, name, linkage, outerQualifier); + else if (type.isStruct()) + return flattenStruct(variable, type, flattenData, name, linkage, outerQualifier, builtInArraySizes); + else { + assert(0); // should never happen + return -1; + } +} + +// Add a single flattened member to the flattened data being tracked for the composite +// Returns true for the final flattening level. +int HlslParseContext::addFlattenedMember(const TVariable& variable, const TType& type, TFlattenData& flattenData, + const TString& memberName, bool linkage, + const TQualifier& outerQualifier, + const TArraySizes* builtInArraySizes) +{ + if (!shouldFlatten(type, outerQualifier.storage, false)) { + // This is as far as we flatten. Insert the variable. + TVariable* memberVariable = makeInternalVariable(memberName, type); + mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); + + if (flattenData.nextBinding != TQualifier::layoutBindingEnd) + memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++; + + if (memberVariable->getType().isBuiltIn()) { + // inherited locations are nonsensical for built-ins (TODO: what if semantic had a number) + memberVariable->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd; + } else { + // inherited locations must be auto bumped, not replicated + if (flattenData.nextLocation != TQualifier::layoutLocationEnd) { + memberVariable->getWritableType().getQualifier().layoutLocation = flattenData.nextLocation; + flattenData.nextLocation += intermediate.computeTypeLocationSize(memberVariable->getType(), language); + nextOutLocation = std::max(nextOutLocation, flattenData.nextLocation); + } + } + + flattenData.offsets.push_back(static_cast(flattenData.members.size())); + flattenData.members.push_back(memberVariable); + + if (linkage) + trackLinkage(*memberVariable); + + return static_cast(flattenData.offsets.size()) - 1; // location of the member reference + } else { + // Further recursion required + return flatten(variable, type, flattenData, memberName, linkage, outerQualifier, builtInArraySizes); + } +} + +// Figure out the mapping between an aggregate's top members and an +// equivalent set of individual variables. +// +// Assumes shouldFlatten() or equivalent was called first. +int HlslParseContext::flattenStruct(const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name, bool linkage, + const TQualifier& outerQualifier, + const TArraySizes* builtInArraySizes) +{ + assert(type.isStruct()); + + auto members = *type.getStruct(); + + // Reserve space for this tree level. + int start = static_cast(flattenData.offsets.size()); + int pos = start; + flattenData.offsets.resize(int(pos + members.size()), -1); + + for (int member = 0; member < (int)members.size(); ++member) { + TType& dereferencedType = *members[member].type; + if (dereferencedType.isBuiltIn()) + splitBuiltIn(variable.getName(), dereferencedType, builtInArraySizes, outerQualifier); + else { + const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, + name + "." + dereferencedType.getFieldName(), + linkage, outerQualifier, + builtInArraySizes == nullptr && dereferencedType.isArray() + ? dereferencedType.getArraySizes() + : builtInArraySizes); + flattenData.offsets[pos++] = mpos; + } + } + + return start; +} + +// Figure out mapping between an array's members and an +// equivalent set of individual variables. +// +// Assumes shouldFlatten() or equivalent was called first. +int HlslParseContext::flattenArray(const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name, bool linkage, + const TQualifier& outerQualifier) +{ + assert(type.isSizedArray()); + + const int size = type.getOuterArraySize(); + const TType dereferencedType(type, 0); + + if (name.empty()) + name = variable.getName(); + + // Reserve space for this tree level. + int start = static_cast(flattenData.offsets.size()); + int pos = start; + flattenData.offsets.resize(int(pos + size), -1); + + for (int element=0; element < size; ++element) { + char elementNumBuf[20]; // sufficient for MAXINT + snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); + const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, + name + elementNumBuf, linkage, outerQualifier, + type.getArraySizes()); + + flattenData.offsets[pos++] = mpos; + } + + return start; +} + +// Return true if we have flattened this node. +bool HlslParseContext::wasFlattened(const TIntermTyped* node) const +{ + return node != nullptr && node->getAsSymbolNode() != nullptr && + wasFlattened(node->getAsSymbolNode()->getId()); +} + +// Return true if we have split this structure +bool HlslParseContext::wasSplit(const TIntermTyped* node) const +{ + return node != nullptr && node->getAsSymbolNode() != nullptr && + wasSplit(node->getAsSymbolNode()->getId()); +} + +// Turn an access into an aggregate that was flattened to instead be +// an access to the individual variable the member was flattened to. +// Assumes wasFlattened() or equivalent was called first. +TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) +{ + const TType dereferencedType(base->getType(), member); // dereferenced type + const TIntermSymbol& symbolNode = *base->getAsSymbolNode(); + TIntermTyped* flattened = flattenAccess(symbolNode.getId(), member, base->getQualifier().storage, + dereferencedType, symbolNode.getFlattenSubset()); + + return flattened ? flattened : base; +} +TIntermTyped* HlslParseContext::flattenAccess(int uniqueId, int member, TStorageQualifier outerStorage, + const TType& dereferencedType, int subset) +{ + const auto flattenData = flattenMap.find(uniqueId); + + if (flattenData == flattenMap.end()) + return nullptr; + + // Calculate new cumulative offset from the packed tree + int newSubset = flattenData->second.offsets[subset >= 0 ? subset + member : member]; + + TIntermSymbol* subsetSymbol; + if (!shouldFlatten(dereferencedType, outerStorage, false)) { + // Finished flattening: create symbol for variable + member = flattenData->second.offsets[newSubset]; + const TVariable* memberVariable = flattenData->second.members[member]; + subsetSymbol = intermediate.addSymbol(*memberVariable); + subsetSymbol->setFlattenSubset(-1); + } else { + + // If this is not the final flattening, accumulate the position and return + // an object of the partially dereferenced type. + subsetSymbol = new TIntermSymbol(uniqueId, "flattenShadow", dereferencedType); + subsetSymbol->setFlattenSubset(newSubset); + } + + return subsetSymbol; +} + +// For finding where the first leaf is in a subtree of a multi-level aggregate +// that is just getting a subset assigned. Follows the same logic as flattenAccess, +// but logically going down the "left-most" tree branch each step of the way. +// +// Returns the offset into the first leaf of the subset. +int HlslParseContext::findSubtreeOffset(const TIntermNode& node) const +{ + const TIntermSymbol* sym = node.getAsSymbolNode(); + if (sym == nullptr) + return 0; + if (!sym->isArray() && !sym->isStruct()) + return 0; + int subset = sym->getFlattenSubset(); + if (subset == -1) + return 0; + + // Getting this far means a partial aggregate is identified by the flatten subset. + // Find the first leaf of the subset. + + const auto flattenData = flattenMap.find(sym->getId()); + if (flattenData == flattenMap.end()) + return 0; + + return findSubtreeOffset(sym->getType(), subset, flattenData->second.offsets); + + do { + subset = flattenData->second.offsets[subset]; + } while (true); +} +// Recursively do the desent +int HlslParseContext::findSubtreeOffset(const TType& type, int subset, const TVector& offsets) const +{ + if (!type.isArray() && !type.isStruct()) + return offsets[subset]; + TType derefType(type, 0); + return findSubtreeOffset(derefType, offsets[subset], offsets); +}; + +// Find and return the split IO TVariable for id, or nullptr if none. +TVariable* HlslParseContext::getSplitNonIoVar(int id) const +{ + const auto splitNonIoVar = splitNonIoVars.find(id); + if (splitNonIoVar == splitNonIoVars.end()) + return nullptr; + + return splitNonIoVar->second; +} + +// Pass through to base class after remembering built-in mappings. +void HlslParseContext::trackLinkage(TSymbol& symbol) +{ + TBuiltInVariable biType = symbol.getType().getQualifier().builtIn; + + if (biType != EbvNone) + builtInTessLinkageSymbols[biType] = symbol.clone(); + + TParseContextBase::trackLinkage(symbol); +} + + +// Returns true if the built-in is a clip or cull distance variable. +bool HlslParseContext::isClipOrCullDistance(TBuiltInVariable builtIn) +{ + return builtIn == EbvClipDistance || builtIn == EbvCullDistance; +} + +// Some types require fixed array sizes in SPIR-V, but can be scalars or +// arrays of sizes SPIR-V doesn't allow. For example, tessellation factors. +// This creates the right size. A conversion is performed when the internal +// type is copied to or from the external type. This corrects the externally +// facing input or output type to abide downstream semantics. +void HlslParseContext::fixBuiltInIoType(TType& type) +{ + int requiredArraySize = 0; + int requiredVectorSize = 0; + + switch (type.getQualifier().builtIn) { + case EbvTessLevelOuter: requiredArraySize = 4; break; + case EbvTessLevelInner: requiredArraySize = 2; break; + + case EbvSampleMask: + { + // Promote scalar to array of size 1. Leave existing arrays alone. + if (!type.isArray()) + requiredArraySize = 1; + break; + } + + case EbvWorkGroupId: requiredVectorSize = 3; break; + case EbvGlobalInvocationId: requiredVectorSize = 3; break; + case EbvLocalInvocationId: requiredVectorSize = 3; break; + case EbvTessCoord: requiredVectorSize = 3; break; + + default: + if (isClipOrCullDistance(type)) { + const int loc = type.getQualifier().layoutLocation; + + if (type.getQualifier().builtIn == EbvClipDistance) { + if (type.getQualifier().storage == EvqVaryingIn) + clipSemanticNSizeIn[loc] = type.getVectorSize(); + else + clipSemanticNSizeOut[loc] = type.getVectorSize(); + } else { + if (type.getQualifier().storage == EvqVaryingIn) + cullSemanticNSizeIn[loc] = type.getVectorSize(); + else + cullSemanticNSizeOut[loc] = type.getVectorSize(); + } + } + + return; + } + + // Alter or set vector size as needed. + if (requiredVectorSize > 0) { + TType newType(type.getBasicType(), type.getQualifier().storage, requiredVectorSize); + newType.getQualifier() = type.getQualifier(); + + type.shallowCopy(newType); + } + + // Alter or set array size as needed. + if (requiredArraySize > 0) { + if (!type.isArray() || type.getOuterArraySize() != requiredArraySize) { + TArraySizes* arraySizes = new TArraySizes; + arraySizes->addInnerSize(requiredArraySize); + type.transferArraySizes(arraySizes); + } + } +} + +// Variables that correspond to the user-interface in and out of a stage +// (not the built-in interface) are +// - assigned locations +// - registered as a linkage node (part of the stage's external interface). +// Assumes it is called in the order in which locations should be assigned. +void HlslParseContext::assignToInterface(TVariable& variable) +{ + const auto assignLocation = [&](TVariable& variable) { + TType& type = variable.getWritableType(); + if (!type.isStruct() || type.getStruct()->size() > 0) { + TQualifier& qualifier = type.getQualifier(); + if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { + if (qualifier.builtIn == EbvNone && !qualifier.hasLocation()) { + // Strip off the outer array dimension for those having an extra one. + int size; + if (type.isArray() && qualifier.isArrayedIo(language)) { + TType elementType(type, 0); + size = intermediate.computeTypeLocationSize(elementType, language); + } else + size = intermediate.computeTypeLocationSize(type, language); + + if (qualifier.storage == EvqVaryingIn) { + variable.getWritableType().getQualifier().layoutLocation = nextInLocation; + nextInLocation += size; + } else { + variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; + nextOutLocation += size; + } + } + trackLinkage(variable); + } + } + }; + + if (wasFlattened(variable.getUniqueId())) { + auto& memberList = flattenMap[variable.getUniqueId()].members; + for (auto member = memberList.begin(); member != memberList.end(); ++member) + assignLocation(**member); + } else if (wasSplit(variable.getUniqueId())) { + TVariable* splitIoVar = getSplitNonIoVar(variable.getUniqueId()); + assignLocation(*splitIoVar); + } else { + assignLocation(variable); + } +} + +// +// Handle seeing a function declarator in the grammar. This is the precursor +// to recognizing a function prototype or function definition. +// +void HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) +{ + // + // Multiple declarations of the same function name are allowed. + // + // 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). + // + bool builtIn; + TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn); + const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0; + + if (prototype) { + // All built-in functions are defined, even though they don't have a body. + // Count their prototype as a definition instead. + if (symbolTable.atBuiltInLevel()) + function.setDefined(); + else { + if (prevDec && ! builtIn) + symbol->getAsFunction()->setPrototyped(); // need a writable one, but like having prevDec as a const + function.setPrototyped(); + } + } + + // This insert won't actually insert it if it's a duplicate signature, but it will still check for + // other forms of name collisions. + if (! symbolTable.insert(function)) + error(loc, "function name is redeclaration of existing name", function.getName().c_str(), ""); +} + +// For struct buffers with counters, we must pass the counter buffer as hidden parameter. +// This adds the hidden parameter to the parameter list in 'paramNodes' if needed. +// Otherwise, it's a no-op +void HlslParseContext::addStructBufferHiddenCounterParam(const TSourceLoc& loc, TParameter& param, + TIntermAggregate*& paramNodes) +{ + if (! hasStructBuffCounter(*param.type)) + return; + + const TString counterBlockName(intermediate.addCounterBufferName(*param.name)); + + TType counterType; + counterBufferType(loc, counterType); + TVariable *variable = makeInternalVariable(counterBlockName, counterType); + + if (! symbolTable.insert(*variable)) + error(loc, "redefinition", variable->getName().c_str(), ""); + + paramNodes = intermediate.growAggregate(paramNodes, + intermediate.addSymbol(*variable, loc), + loc); +} + +// +// Handle seeing the function prototype in front of a function definition in the grammar. +// The body is handled after this function returns. +// +// Returns an aggregate of parameter-symbol nodes. +// +TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function, + const TAttributes& attributes, + TIntermNode*& entryPointTree) +{ + currentCaller = function.getMangledName(); + TSymbol* symbol = symbolTable.find(function.getMangledName()); + TFunction* prevDec = symbol ? symbol->getAsFunction() : nullptr; + + if (prevDec == nullptr) + error(loc, "can't find function", function.getName().c_str(), ""); + // Note: 'prevDec' could be 'function' if this is the first time we've seen function + // as it would have just been put in the symbol table. Otherwise, we're looking up + // an earlier occurrence. + + if (prevDec && prevDec->isDefined()) { + // Then this function already has a body. + error(loc, "function already has a body", function.getName().c_str(), ""); + } + if (prevDec && ! prevDec->isDefined()) { + prevDec->setDefined(); + + // Remember the return type for later checking for RETURN statements. + currentFunctionType = &(prevDec->getType()); + } else + currentFunctionType = new TType(EbtVoid); + functionReturnsValue = false; + + // Entry points need different I/O and other handling, transform it so the + // rest of this function doesn't care. + entryPointTree = transformEntryPoint(loc, function, attributes); + + // + // New symbol table scope for body of function plus its arguments + // + pushScope(); + + // + // Insert parameters into the symbol table. + // If the parameter has no name, it's not an error, just don't insert it + // (could be used for unused args). + // + // Also, accumulate the list of parameters into the AST, so lower level code + // knows where to find parameters. + // + TIntermAggregate* paramNodes = new TIntermAggregate; + for (int i = 0; i < function.getParamCount(); i++) { + TParameter& param = function[i]; + if (param.name != nullptr) { + TVariable *variable = new TVariable(param.name, *param.type); + + if (i == 0 && function.hasImplicitThis()) { + // Anonymous 'this' members are already in a symbol-table level, + // and we need to know what function parameter to map them to. + symbolTable.makeInternalVariable(*variable); + pushImplicitThis(variable); + } + + // Insert the parameters with name in the symbol table. + if (! symbolTable.insert(*variable)) + error(loc, "redefinition", variable->getName().c_str(), ""); + + // Add parameters to the AST list. + if (shouldFlatten(variable->getType(), variable->getType().getQualifier().storage, true)) { + // Expand the AST parameter nodes (but not the name mangling or symbol table view) + // for structures that need to be flattened. + flatten(*variable, false); + const TTypeList* structure = variable->getType().getStruct(); + for (int mem = 0; mem < (int)structure->size(); ++mem) { + paramNodes = intermediate.growAggregate(paramNodes, + flattenAccess(variable->getUniqueId(), mem, + variable->getType().getQualifier().storage, + *(*structure)[mem].type), + loc); + } + } else { + // Add the parameter to the AST + paramNodes = intermediate.growAggregate(paramNodes, + intermediate.addSymbol(*variable, loc), + loc); + } + + // Add hidden AST parameter for struct buffer counters, if needed. + addStructBufferHiddenCounterParam(loc, param, paramNodes); + } else + paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc); + } + if (function.hasIllegalImplicitThis()) + pushImplicitThis(nullptr); + + intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc); + loopNestingLevel = 0; + controlFlowNestingLevel = 0; + postEntryPointReturn = false; + + return paramNodes; +} + +// Handle all [attrib] attribute for the shader entry point +void HlslParseContext::handleEntryPointAttributes(const TSourceLoc& loc, const TAttributes& attributes) +{ + for (auto it = attributes.begin(); it != attributes.end(); ++it) { + switch (it->name) { + case EatNumThreads: + { + const TIntermSequence& sequence = it->args->getSequence(); + for (int lid = 0; lid < int(sequence.size()); ++lid) + intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); + break; + } + case EatMaxVertexCount: + { + int maxVertexCount; + + if (! it->getInt(maxVertexCount)) { + error(loc, "invalid maxvertexcount", "", ""); + } else { + if (! intermediate.setVertices(maxVertexCount)) + error(loc, "cannot change previously set maxvertexcount attribute", "", ""); + } + break; + } + case EatPatchConstantFunc: + { + TString pcfName; + if (! it->getString(pcfName, 0, false)) { + error(loc, "invalid patch constant function", "", ""); + } else { + patchConstantFunctionName = pcfName; + } + break; + } + case EatDomain: + { + // Handle [domain("...")] + TString domainStr; + if (! it->getString(domainStr)) { + error(loc, "invalid domain", "", ""); + } else { + TLayoutGeometry domain = ElgNone; + + if (domainStr == "tri") { + domain = ElgTriangles; + } else if (domainStr == "quad") { + domain = ElgQuads; + } else if (domainStr == "isoline") { + domain = ElgIsolines; + } else { + error(loc, "unsupported domain type", domainStr.c_str(), ""); + } + + if (language == EShLangTessEvaluation) { + if (! intermediate.setInputPrimitive(domain)) + error(loc, "cannot change previously set domain", TQualifier::getGeometryString(domain), ""); + } else { + if (! intermediate.setOutputPrimitive(domain)) + error(loc, "cannot change previously set domain", TQualifier::getGeometryString(domain), ""); + } + } + break; + } + case EatOutputTopology: + { + // Handle [outputtopology("...")] + TString topologyStr; + if (! it->getString(topologyStr)) { + error(loc, "invalid outputtopology", "", ""); + } else { + TVertexOrder vertexOrder = EvoNone; + TLayoutGeometry primitive = ElgNone; + + if (topologyStr == "point") { + intermediate.setPointMode(); + } else if (topologyStr == "line") { + primitive = ElgIsolines; + } else if (topologyStr == "triangle_cw") { + vertexOrder = EvoCw; + primitive = ElgTriangles; + } else if (topologyStr == "triangle_ccw") { + vertexOrder = EvoCcw; + primitive = ElgTriangles; + } else { + error(loc, "unsupported outputtopology type", topologyStr.c_str(), ""); + } + + if (vertexOrder != EvoNone) { + if (! intermediate.setVertexOrder(vertexOrder)) { + error(loc, "cannot change previously set outputtopology", + TQualifier::getVertexOrderString(vertexOrder), ""); + } + } + if (primitive != ElgNone) + intermediate.setOutputPrimitive(primitive); + } + break; + } + case EatPartitioning: + { + // Handle [partitioning("...")] + TString partitionStr; + if (! it->getString(partitionStr)) { + error(loc, "invalid partitioning", "", ""); + } else { + TVertexSpacing partitioning = EvsNone; + + if (partitionStr == "integer") { + partitioning = EvsEqual; + } else if (partitionStr == "fractional_even") { + partitioning = EvsFractionalEven; + } else if (partitionStr == "fractional_odd") { + partitioning = EvsFractionalOdd; + //} else if (partition == "pow2") { // TODO: currently nothing to map this to. + } else { + error(loc, "unsupported partitioning type", partitionStr.c_str(), ""); + } + + if (! intermediate.setVertexSpacing(partitioning)) + error(loc, "cannot change previously set partitioning", + TQualifier::getVertexSpacingString(partitioning), ""); + } + break; + } + case EatOutputControlPoints: + { + // Handle [outputcontrolpoints("...")] + int ctrlPoints; + if (! it->getInt(ctrlPoints)) { + error(loc, "invalid outputcontrolpoints", "", ""); + } else { + if (! intermediate.setVertices(ctrlPoints)) { + error(loc, "cannot change previously set outputcontrolpoints attribute", "", ""); + } + } + break; + } + case EatBuiltIn: + case EatLocation: + // tolerate these because of dual use of entrypoint and type attributes + break; + default: + warn(loc, "attribute does not apply to entry point", "", ""); + break; + } + } +} + +// Update the given type with any type-like attribute information in the +// attributes. +void HlslParseContext::transferTypeAttributes(const TSourceLoc& loc, const TAttributes& attributes, TType& type, + bool allowEntry) +{ + if (attributes.size() == 0) + return; + + int value; + TString builtInString; + for (auto it = attributes.begin(); it != attributes.end(); ++it) { + switch (it->name) { + case EatLocation: + // location + if (it->getInt(value)) + type.getQualifier().layoutLocation = value; + break; + case EatBinding: + // binding + if (it->getInt(value)) { + type.getQualifier().layoutBinding = value; + type.getQualifier().layoutSet = 0; + } + // set + if (it->getInt(value, 1)) + type.getQualifier().layoutSet = value; + break; + case EatGlobalBinding: + // global cbuffer binding + if (it->getInt(value)) + globalUniformBinding = value; + // global cbuffer binding + if (it->getInt(value, 1)) + globalUniformSet = value; + break; + case EatInputAttachment: + // input attachment + if (it->getInt(value)) + type.getQualifier().layoutAttachment = value; + break; + case EatBuiltIn: + // PointSize built-in + if (it->getString(builtInString, 0, false)) { + if (builtInString == "PointSize") + type.getQualifier().builtIn = EbvPointSize; + } + break; + case EatPushConstant: + // push_constant + type.getQualifier().layoutPushConstant = true; + break; + case EatConstantId: + // specialization constant + if (it->getInt(value)) { + TSourceLoc loc; + loc.init(); + setSpecConstantId(loc, type.getQualifier(), value); + } + break; + default: + if (! allowEntry) + warn(loc, "attribute does not apply to a type", "", ""); + break; + } + } +} + +// +// Do all special handling for the entry point, including wrapping +// the shader's entry point with the official entry point that will call it. +// +// The following: +// +// retType shaderEntryPoint(args...) // shader declared entry point +// { body } +// +// Becomes +// +// out retType ret; +// in iargs...; +// out oargs ...; +// +// void shaderEntryPoint() // synthesized, but official, entry point +// { +// args = iargs...; +// ret = @shaderEntryPoint(args...); +// oargs = args...; +// } +// retType @shaderEntryPoint(args...) +// { body } +// +// The symbol table will still map the original entry point name to the +// the modified function and its new name: +// +// symbol table: shaderEntryPoint -> @shaderEntryPoint +// +// Returns nullptr if no entry-point tree was built, otherwise, returns +// a subtree that creates the entry point. +// +TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunction& userFunction, + const TAttributes& attributes) +{ + // Return true if this is a tessellation patch constant function input to a domain shader. + const auto isDsPcfInput = [this](const TType& type) { + return language == EShLangTessEvaluation && + type.contains([](const TType* t) { + return t->getQualifier().builtIn == EbvTessLevelOuter || + t->getQualifier().builtIn == EbvTessLevelInner; + }); + }; + + // if we aren't in the entry point, fix the IO as such and exit + if (userFunction.getName().compare(intermediate.getEntryPointName().c_str()) != 0) { + remapNonEntryPointIO(userFunction); + return nullptr; + } + + entryPointFunction = &userFunction; // needed in finish() + + // Handle entry point attributes + handleEntryPointAttributes(loc, attributes); + + // entry point logic... + + // Move parameters and return value to shader in/out + TVariable* entryPointOutput; // gets created in remapEntryPointIO + TVector inputs; + TVector outputs; + remapEntryPointIO(userFunction, entryPointOutput, inputs, outputs); + + // Further this return/in/out transform by flattening, splitting, and assigning locations + const auto makeVariableInOut = [&](TVariable& variable) { + if (variable.getType().isStruct()) { + if (variable.getType().getQualifier().isArrayedIo(language)) { + if (variable.getType().containsBuiltIn()) + split(variable); + } else if (shouldFlatten(variable.getType(), EvqVaryingIn /* not assigned yet, but close enough */, true)) + flatten(variable, false /* don't track linkage here, it will be tracked in assignToInterface() */); + } + // TODO: flatten arrays too + // TODO: flatten everything in I/O + // TODO: replace all split with flatten, make all paths can create flattened I/O, then split code can be removed + + // For clip and cull distance, multiple output variables potentially get merged + // into one in assignClipCullDistance. That code in assignClipCullDistance + // handles the interface logic, so we avoid it here in that case. + if (!isClipOrCullDistance(variable.getType())) + assignToInterface(variable); + }; + if (entryPointOutput != nullptr) + makeVariableInOut(*entryPointOutput); + for (auto it = inputs.begin(); it != inputs.end(); ++it) + if (!isDsPcfInput((*it)->getType())) // wait until the end for PCF input (see comment below) + makeVariableInOut(*(*it)); + for (auto it = outputs.begin(); it != outputs.end(); ++it) + makeVariableInOut(*(*it)); + + // In the domain shader, PCF input must be at the end of the linkage. That's because in the + // hull shader there is no ordering: the output comes from the separate PCF, which does not + // participate in the argument list. That is always put at the end of the HS linkage, so the + // input side of the DS must match. The argument may be in any position in the DS argument list + // however, so this ensures the linkage is built in the correct order regardless of argument order. + if (language == EShLangTessEvaluation) { + for (auto it = inputs.begin(); it != inputs.end(); ++it) + if (isDsPcfInput((*it)->getType())) + makeVariableInOut(*(*it)); + } + + // Synthesize the call + + pushScope(); // matches the one in handleFunctionBody() + + // new signature + TType voidType(EbtVoid); + TFunction synthEntryPoint(&userFunction.getName(), voidType); + TIntermAggregate* synthParams = new TIntermAggregate(); + intermediate.setAggregateOperator(synthParams, EOpParameters, voidType, loc); + intermediate.setEntryPointMangledName(synthEntryPoint.getMangledName().c_str()); + intermediate.incrementEntryPointCount(); + TFunction callee(&userFunction.getName(), voidType); // call based on old name, which is still in the symbol table + + // change original name + userFunction.addPrefix("@"); // change the name in the function, but not in the symbol table + + // Copy inputs (shader-in -> calling arg), while building up the call node + TVector argVars; + TIntermAggregate* synthBody = new TIntermAggregate(); + auto inputIt = inputs.begin(); + TIntermTyped* callingArgs = nullptr; + + for (int i = 0; i < userFunction.getParamCount(); i++) { + TParameter& param = userFunction[i]; + argVars.push_back(makeInternalVariable(*param.name, *param.type)); + argVars.back()->getWritableType().getQualifier().makeTemporary(); + + // Track the input patch, which is the only non-builtin supported by hull shader PCF. + if (param.getDeclaredBuiltIn() == EbvInputPatch) + inputPatch = argVars.back(); + + TIntermSymbol* arg = intermediate.addSymbol(*argVars.back()); + handleFunctionArgument(&callee, callingArgs, arg); + if (param.type->getQualifier().isParamInput()) { + intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, arg, + intermediate.addSymbol(**inputIt))); + inputIt++; + } + } + + // Call + currentCaller = synthEntryPoint.getMangledName(); + TIntermTyped* callReturn = handleFunctionCall(loc, &callee, callingArgs); + currentCaller = userFunction.getMangledName(); + + // Return value + if (entryPointOutput) { + TIntermTyped* returnAssign; + + // For hull shaders, the wrapped entry point return value is written to + // an array element as indexed by invocation ID, which we might have to make up. + // This is required to match SPIR-V semantics. + if (language == EShLangTessControl) { + TIntermSymbol* invocationIdSym = findTessLinkageSymbol(EbvInvocationId); + + // If there is no user declared invocation ID, we must make one. + if (invocationIdSym == nullptr) { + TType invocationIdType(EbtUint, EvqIn, 1); + TString* invocationIdName = NewPoolTString("InvocationId"); + invocationIdType.getQualifier().builtIn = EbvInvocationId; + + TVariable* variable = makeInternalVariable(*invocationIdName, invocationIdType); + + globalQualifierFix(loc, variable->getWritableType().getQualifier()); + trackLinkage(*variable); + + invocationIdSym = intermediate.addSymbol(*variable); + } + + TIntermTyped* element = intermediate.addIndex(EOpIndexIndirect, intermediate.addSymbol(*entryPointOutput), + invocationIdSym, loc); + + // Set the type of the array element being dereferenced + const TType derefElementType(entryPointOutput->getType(), 0); + element->setType(derefElementType); + + returnAssign = handleAssign(loc, EOpAssign, element, callReturn); + } else { + returnAssign = handleAssign(loc, EOpAssign, intermediate.addSymbol(*entryPointOutput), callReturn); + } + intermediate.growAggregate(synthBody, returnAssign); + } else + intermediate.growAggregate(synthBody, callReturn); + + // Output copies + auto outputIt = outputs.begin(); + for (int i = 0; i < userFunction.getParamCount(); i++) { + TParameter& param = userFunction[i]; + + // GS outputs are via emit, so we do not copy them here. + if (param.type->getQualifier().isParamOutput()) { + if (param.getDeclaredBuiltIn() == EbvGsOutputStream) { + // GS output stream does not assign outputs here: it's the Append() method + // which writes to the output, probably multiple times separated by Emit. + // We merely remember the output to use, here. + gsStreamOutput = *outputIt; + } else { + intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, + intermediate.addSymbol(**outputIt), + intermediate.addSymbol(*argVars[i]))); + } + + outputIt++; + } + } + + // Put the pieces together to form a full function subtree + // for the synthesized entry point. + synthBody->setOperator(EOpSequence); + TIntermNode* synthFunctionDef = synthParams; + handleFunctionBody(loc, synthEntryPoint, synthBody, synthFunctionDef); + + entryPointFunctionBody = synthBody; + + return synthFunctionDef; +} + +void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& function, TIntermNode* functionBody, + TIntermNode*& node) +{ + node = intermediate.growAggregate(node, functionBody); + intermediate.setAggregateOperator(node, EOpFunction, function.getType(), loc); + node->getAsAggregate()->setName(function.getMangledName().c_str()); + + popScope(); + if (function.hasImplicitThis()) + popImplicitThis(); + + if (function.getType().getBasicType() != EbtVoid && ! functionReturnsValue) + error(loc, "function does not return a value:", "", function.getName().c_str()); +} + +// AST I/O is done through shader globals declared in the 'in' or 'out' +// storage class. An HLSL entry point has a return value, input parameters +// and output parameters. These need to get remapped to the AST I/O. +void HlslParseContext::remapEntryPointIO(TFunction& function, TVariable*& returnValue, + TVector& inputs, TVector& outputs) +{ + // We might have in input structure type with no decorations that caused it + // to look like an input type, yet it has (e.g.) interpolation types that + // must be modified that turn it into an input type. + // Hence, a missing ioTypeMap for 'input' might need to be synthesized. + const auto synthesizeEditedInput = [this](TType& type) { + // True if a type needs to be 'flat' + const auto needsFlat = [](const TType& type) { + return type.containsBasicType(EbtInt) || + type.containsBasicType(EbtUint) || + type.containsBasicType(EbtInt64) || + type.containsBasicType(EbtUint64) || + type.containsBasicType(EbtBool) || + type.containsBasicType(EbtDouble); + }; + + if (language == EShLangFragment && needsFlat(type)) { + if (type.isStruct()) { + TTypeList* finalList = nullptr; + auto it = ioTypeMap.find(type.getStruct()); + if (it == ioTypeMap.end() || it->second.input == nullptr) { + // Getting here means we have no input struct, but we need one. + auto list = new TTypeList; + for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) { + TType* newType = new TType; + newType->shallowCopy(*member->type); + TTypeLoc typeLoc = { newType, member->loc }; + list->push_back(typeLoc); + } + // install the new input type + if (it == ioTypeMap.end()) { + tIoKinds newLists = { list, nullptr, nullptr }; + ioTypeMap[type.getStruct()] = newLists; + } else + it->second.input = list; + finalList = list; + } else + finalList = it->second.input; + // edit for 'flat' + for (auto member = finalList->begin(); member != finalList->end(); ++member) { + if (needsFlat(*member->type)) { + member->type->getQualifier().clearInterpolation(); + member->type->getQualifier().flat = true; + } + } + } else { + type.getQualifier().clearInterpolation(); + type.getQualifier().flat = true; + } + } + }; + + // Do the actual work to make a type be a shader input or output variable, + // and clear the original to be non-IO (for use as a normal function parameter/return). + const auto makeIoVariable = [this](const char* name, TType& type, TStorageQualifier storage) -> TVariable* { + TVariable* ioVariable = makeInternalVariable(name, type); + clearUniformInputOutput(type.getQualifier()); + if (type.isStruct()) { + auto newLists = ioTypeMap.find(ioVariable->getType().getStruct()); + if (newLists != ioTypeMap.end()) { + if (storage == EvqVaryingIn && newLists->second.input) + ioVariable->getWritableType().setStruct(newLists->second.input); + else if (storage == EvqVaryingOut && newLists->second.output) + ioVariable->getWritableType().setStruct(newLists->second.output); + } + } + if (storage == EvqVaryingIn) { + correctInput(ioVariable->getWritableType().getQualifier()); + if (language == EShLangTessEvaluation) + if (!ioVariable->getType().isArray()) + ioVariable->getWritableType().getQualifier().patch = true; + } else { + correctOutput(ioVariable->getWritableType().getQualifier()); + } + ioVariable->getWritableType().getQualifier().storage = storage; + + fixBuiltInIoType(ioVariable->getWritableType()); + + return ioVariable; + }; + + // return value is actually a shader-scoped output (out) + if (function.getType().getBasicType() == EbtVoid) { + returnValue = nullptr; + } else { + if (language == EShLangTessControl) { + // tessellation evaluation in HLSL writes a per-ctrl-pt value, but it needs to be an + // array in SPIR-V semantics. We'll write to it indexed by invocation ID. + + returnValue = makeIoVariable("@entryPointOutput", function.getWritableType(), EvqVaryingOut); + + TType outputType; + outputType.shallowCopy(function.getType()); + + // vertices has necessarily already been set when handling entry point attributes. + TArraySizes* arraySizes = new TArraySizes; + arraySizes->addInnerSize(intermediate.getVertices()); + outputType.transferArraySizes(arraySizes); + + clearUniformInputOutput(function.getWritableType().getQualifier()); + returnValue = makeIoVariable("@entryPointOutput", outputType, EvqVaryingOut); + } else { + returnValue = makeIoVariable("@entryPointOutput", function.getWritableType(), EvqVaryingOut); + } + } + + // parameters are actually shader-scoped inputs and outputs (in or out) + for (int i = 0; i < function.getParamCount(); i++) { + TType& paramType = *function[i].type; + if (paramType.getQualifier().isParamInput()) { + synthesizeEditedInput(paramType); + TVariable* argAsGlobal = makeIoVariable(function[i].name->c_str(), paramType, EvqVaryingIn); + inputs.push_back(argAsGlobal); + } + if (paramType.getQualifier().isParamOutput()) { + TVariable* argAsGlobal = makeIoVariable(function[i].name->c_str(), paramType, EvqVaryingOut); + outputs.push_back(argAsGlobal); + } + } +} + +// An HLSL function that looks like an entry point, but is not, +// declares entry point IO built-ins, but these have to be undone. +void HlslParseContext::remapNonEntryPointIO(TFunction& function) +{ + // return value + if (function.getType().getBasicType() != EbtVoid) + clearUniformInputOutput(function.getWritableType().getQualifier()); + + // parameters. + // References to structuredbuffer types are left unmodified + for (int i = 0; i < function.getParamCount(); i++) + if (!isReference(*function[i].type)) + clearUniformInputOutput(function[i].type->getQualifier()); +} + +// Handle function returns, including type conversions to the function return type +// if necessary. +TIntermNode* HlslParseContext::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()) { + value = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + if (value && *currentFunctionType != value->getType()) + value = intermediate.addUniShapeConversion(EOpReturn, *currentFunctionType, value); + if (value == nullptr || *currentFunctionType != value->getType()) { + error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); + return value; + } + } + + return intermediate.addBranch(EOpReturn, value, loc); +} + +void HlslParseContext::handleFunctionArgument(TFunction* function, + TIntermTyped*& arguments, TIntermTyped* newArg) +{ + TParameter param = { 0, new TType, nullptr }; + param.type->shallowCopy(newArg->getType()); + + function->addParameter(param); + if (arguments) + arguments = intermediate.growAggregate(arguments, newArg); + else + arguments = newArg; +} + +// Position may require special handling: we can optionally invert Y. +// See: https://github.com/KhronosGroup/glslang/issues/1173 +// https://github.com/KhronosGroup/glslang/issues/494 +TIntermTyped* HlslParseContext::assignPosition(const TSourceLoc& loc, TOperator op, + TIntermTyped* left, TIntermTyped* right) +{ + // If we are not asked for Y inversion, use a plain old assign. + if (!intermediate.getInvertY()) + return intermediate.addAssign(op, left, right, loc); + + // If we get here, we should invert Y. + TIntermAggregate* assignList = nullptr; + + // If this is a complex rvalue, we don't want to dereference it many times. Create a temporary. + TVariable* rhsTempVar = nullptr; + rhsTempVar = makeInternalVariable("@position", right->getType()); + rhsTempVar->getWritableType().getQualifier().makeTemporary(); + + { + TIntermTyped* rhsTempSym = intermediate.addSymbol(*rhsTempVar, loc); + assignList = intermediate.growAggregate(assignList, + intermediate.addAssign(EOpAssign, rhsTempSym, right, loc), loc); + } + + // pos.y = -pos.y + { + const int Y = 1; + + TIntermTyped* tempSymL = intermediate.addSymbol(*rhsTempVar, loc); + TIntermTyped* tempSymR = intermediate.addSymbol(*rhsTempVar, loc); + TIntermTyped* index = intermediate.addConstantUnion(Y, loc); + + TIntermTyped* lhsElement = intermediate.addIndex(EOpIndexDirect, tempSymL, index, loc); + TIntermTyped* rhsElement = intermediate.addIndex(EOpIndexDirect, tempSymR, index, loc); + + const TType derefType(right->getType(), 0); + + lhsElement->setType(derefType); + rhsElement->setType(derefType); + + TIntermTyped* yNeg = intermediate.addUnaryMath(EOpNegative, rhsElement, loc); + + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(EOpAssign, lhsElement, yNeg, loc)); + } + + // Assign the rhs temp (now with Y inversion) to the final output + { + TIntermTyped* rhsTempSym = intermediate.addSymbol(*rhsTempVar, loc); + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, rhsTempSym, loc)); + } + + assert(assignList != nullptr); + assignList->setOperator(EOpSequence); + + return assignList; +} + +// Clip and cull distance require special handling due to a semantic mismatch. In HLSL, +// these can be float scalar, float vector, or arrays of float scalar or float vector. +// In SPIR-V, they are arrays of scalar floats in all cases. We must copy individual components +// (e.g, both x and y components of a float2) out into the destination float array. +// +// The values are assigned to sequential members of the output array. The inner dimension +// is vector components. The outer dimension is array elements. +TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc, TOperator op, int semanticId, + TIntermTyped* left, TIntermTyped* right) +{ + switch (language) { + case EShLangFragment: + case EShLangVertex: + case EShLangGeometry: + break; + default: + error(loc, "unimplemented: clip/cull not currently implemented for this stage", "", ""); + return nullptr; + } + + TVariable** clipCullVar = nullptr; + + // Figure out if we are assigning to, or from, clip or cull distance. + const bool isOutput = isClipOrCullDistance(left->getType()); + + // This is the rvalue or lvalue holding the clip or cull distance. + TIntermTyped* clipCullNode = isOutput ? left : right; + // This is the value going into or out of the clip or cull distance. + TIntermTyped* internalNode = isOutput ? right : left; + + const TBuiltInVariable builtInType = clipCullNode->getQualifier().builtIn; + + decltype(clipSemanticNSizeIn)* semanticNSize = nullptr; + + // Refer to either the clip or the cull distance, depending on semantic. + switch (builtInType) { + case EbvClipDistance: + clipCullVar = isOutput ? &clipDistanceOutput : &clipDistanceInput; + semanticNSize = isOutput ? &clipSemanticNSizeOut : &clipSemanticNSizeIn; + break; + case EbvCullDistance: + clipCullVar = isOutput ? &cullDistanceOutput : &cullDistanceInput; + semanticNSize = isOutput ? &cullSemanticNSizeOut : &cullSemanticNSizeIn; + break; + + // called invalidly: we expected a clip or a cull distance. + // static compile time problem: should not happen. + default: assert(0); return nullptr; + } + + // This is the offset in the destination array of a given semantic's data + std::array semanticOffset; + + // Calculate offset of variable of semantic N in destination array + int arrayLoc = 0; + int vecItems = 0; + + for (int x = 0; x < maxClipCullRegs; ++x) { + // See if we overflowed the vec4 packing + if ((vecItems + (*semanticNSize)[x]) > 4) { + arrayLoc = (arrayLoc + 3) & (~0x3); // round up to next multiple of 4 + vecItems = 0; + } + + semanticOffset[x] = arrayLoc; + vecItems += (*semanticNSize)[x]; + arrayLoc += (*semanticNSize)[x]; + } + + + // It can have up to 2 array dimensions (in the case of geometry shader inputs) + const TArraySizes* const internalArraySizes = internalNode->getType().getArraySizes(); + const int internalArrayDims = internalNode->getType().isArray() ? internalArraySizes->getNumDims() : 0; + // vector sizes: + const int internalVectorSize = internalNode->getType().getVectorSize(); + // array sizes, or 1 if it's not an array: + const int internalInnerArraySize = (internalArrayDims > 0 ? internalArraySizes->getDimSize(internalArrayDims-1) : 1); + const int internalOuterArraySize = (internalArrayDims > 1 ? internalArraySizes->getDimSize(0) : 1); + + // The created type may be an array of arrays, e.g, for geometry shader inputs. + const bool isImplicitlyArrayed = (language == EShLangGeometry && !isOutput); + + // If we haven't created the output already, create it now. + if (*clipCullVar == nullptr) { + // ClipDistance and CullDistance are handled specially in the entry point input/output copy + // algorithm, because they may need to be unpacked from components of vectors (or a scalar) + // into a float array, or vice versa. Here, we make the array the right size and type, + // which depends on the incoming data, which has several potential dimensions: + // * Semantic ID + // * vector size + // * array size + // Of those, semantic ID and array size cannot appear simultaneously. + // + // Also to note: for implicitly arrayed forms (e.g, geometry shader inputs), we need to create two + // array dimensions. The shader's declaration may have one or two array dimensions. One is always + // the geometry's dimension. + + const bool useInnerSize = internalArrayDims > 1 || !isImplicitlyArrayed; + + const int requiredInnerArraySize = arrayLoc * (useInnerSize ? internalInnerArraySize : 1); + const int requiredOuterArraySize = (internalArrayDims > 0) ? internalArraySizes->getDimSize(0) : 1; + + TType clipCullType(EbtFloat, clipCullNode->getType().getQualifier().storage, 1); + clipCullType.getQualifier() = clipCullNode->getType().getQualifier(); + + // Create required array dimension + TArraySizes* arraySizes = new TArraySizes; + if (isImplicitlyArrayed) + arraySizes->addInnerSize(requiredOuterArraySize); + arraySizes->addInnerSize(requiredInnerArraySize); + clipCullType.transferArraySizes(arraySizes); + + // Obtain symbol name: we'll use that for the symbol we introduce. + TIntermSymbol* sym = clipCullNode->getAsSymbolNode(); + assert(sym != nullptr); + + // We are moving the semantic ID from the layout location, so it is no longer needed or + // desired there. + clipCullType.getQualifier().layoutLocation = TQualifier::layoutLocationEnd; + + // Create variable and track its linkage + *clipCullVar = makeInternalVariable(sym->getName().c_str(), clipCullType); + + trackLinkage(**clipCullVar); + } + + // Create symbol for the clip or cull variable. + TIntermSymbol* clipCullSym = intermediate.addSymbol(**clipCullVar); + + // vector sizes: + const int clipCullVectorSize = clipCullSym->getType().getVectorSize(); + + // array sizes, or 1 if it's not an array: + const TArraySizes* const clipCullArraySizes = clipCullSym->getType().getArraySizes(); + const int clipCullOuterArraySize = isImplicitlyArrayed ? clipCullArraySizes->getDimSize(0) : 1; + const int clipCullInnerArraySize = clipCullArraySizes->getDimSize(isImplicitlyArrayed ? 1 : 0); + + // clipCullSym has got to be an array of scalar floats, per SPIR-V semantics. + // fixBuiltInIoType() should have handled that upstream. + assert(clipCullSym->getType().isArray()); + assert(clipCullSym->getType().getVectorSize() == 1); + assert(clipCullSym->getType().getBasicType() == EbtFloat); + + // We may be creating multiple sub-assignments. This is an aggregate to hold them. + // TODO: it would be possible to be clever sometimes and avoid the sequence node if not needed. + TIntermAggregate* assignList = nullptr; + + // Holds individual component assignments as we make them. + TIntermTyped* clipCullAssign = nullptr; + + // If the types are homomorphic, use a simple assign. No need to mess about with + // individual components. + if (clipCullSym->getType().isArray() == internalNode->getType().isArray() && + clipCullInnerArraySize == internalInnerArraySize && + clipCullOuterArraySize == internalOuterArraySize && + clipCullVectorSize == internalVectorSize) { + + if (isOutput) + clipCullAssign = intermediate.addAssign(op, clipCullSym, internalNode, loc); + else + clipCullAssign = intermediate.addAssign(op, internalNode, clipCullSym, loc); + + assignList = intermediate.growAggregate(assignList, clipCullAssign); + assignList->setOperator(EOpSequence); + + return assignList; + } + + // We are going to copy each component of the internal (per array element if indicated) to sequential + // array elements of the clipCullSym. This tracks the lhs element we're writing to as we go along. + // We may be starting in the middle - e.g, for a non-zero semantic ID calculated above. + int clipCullInnerArrayPos = semanticOffset[semanticId]; + int clipCullOuterArrayPos = 0; + + // Lambda to add an index to a node, set the type of the result, and return the new node. + const auto addIndex = [this, &loc](TIntermTyped* node, int pos) -> TIntermTyped* { + const TType derefType(node->getType(), 0); + node = intermediate.addIndex(EOpIndexDirect, node, intermediate.addConstantUnion(pos, loc), loc); + node->setType(derefType); + return node; + }; + + // Loop through every component of every element of the internal, and copy to or from the matching external. + for (int internalOuterArrayPos = 0; internalOuterArrayPos < internalOuterArraySize; ++internalOuterArrayPos) { + for (int internalInnerArrayPos = 0; internalInnerArrayPos < internalInnerArraySize; ++internalInnerArrayPos) { + for (int internalComponent = 0; internalComponent < internalVectorSize; ++internalComponent) { + // clip/cull array member to read from / write to: + TIntermTyped* clipCullMember = clipCullSym; + + // If implicitly arrayed, there is an outer array dimension involved + if (isImplicitlyArrayed) + clipCullMember = addIndex(clipCullMember, clipCullOuterArrayPos); + + // Index into proper array position for clip cull member + clipCullMember = addIndex(clipCullMember, clipCullInnerArrayPos++); + + // if needed, start over with next outer array slice. + if (isImplicitlyArrayed && clipCullInnerArrayPos >= clipCullInnerArraySize) { + clipCullInnerArrayPos = semanticOffset[semanticId]; + ++clipCullOuterArrayPos; + } + + // internal member to read from / write to: + TIntermTyped* internalMember = internalNode; + + // If internal node has outer array dimension, index appropriately. + if (internalArrayDims > 1) + internalMember = addIndex(internalMember, internalOuterArrayPos); + + // If internal node has inner array dimension, index appropriately. + if (internalArrayDims > 0) + internalMember = addIndex(internalMember, internalInnerArrayPos); + + // If internal node is a vector, extract the component of interest. + if (internalNode->getType().isVector()) + internalMember = addIndex(internalMember, internalComponent); + + // Create an assignment: output from internal to clip cull, or input from clip cull to internal. + if (isOutput) + clipCullAssign = intermediate.addAssign(op, clipCullMember, internalMember, loc); + else + clipCullAssign = intermediate.addAssign(op, internalMember, clipCullMember, loc); + + // Track assignment in the sequence. + assignList = intermediate.growAggregate(assignList, clipCullAssign); + } + } + } + + assert(assignList != nullptr); + assignList->setOperator(EOpSequence); + + return assignList; +} + +// Some simple source assignments need to be flattened to a sequence +// of AST assignments. Catch these and flatten, otherwise, pass through +// to intermediate.addAssign(). +// +// Also, assignment to matrix swizzles requires multiple component assignments, +// intercept those as well. +TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, + TIntermTyped* right) +{ + if (left == nullptr || right == nullptr) + return nullptr; + + // writing to opaques will require fixing transforms + if (left->getType().containsOpaque()) + intermediate.setNeedsLegalization(); + + if (left->getAsOperator() && left->getAsOperator()->getOp() == EOpMatrixSwizzle) + return handleAssignToMatrixSwizzle(loc, op, left, right); + + // Return true if the given node is an index operation into a split variable. + const auto indexesSplit = [this](const TIntermTyped* node) -> bool { + const TIntermBinary* binaryNode = node->getAsBinaryNode(); + + if (binaryNode == nullptr) + return false; + + return (binaryNode->getOp() == EOpIndexDirect || binaryNode->getOp() == EOpIndexIndirect) && + wasSplit(binaryNode->getLeft()); + }; + + // Return true if this stage assigns clip position with potentially inverted Y + const auto assignsClipPos = [this](const TIntermTyped* node) -> bool { + return node->getType().getQualifier().builtIn == EbvPosition && + (language == EShLangVertex || language == EShLangGeometry || language == EShLangTessEvaluation); + }; + + const bool isSplitLeft = wasSplit(left) || indexesSplit(left); + const bool isSplitRight = wasSplit(right) || indexesSplit(right); + + const bool isFlattenLeft = wasFlattened(left); + const bool isFlattenRight = wasFlattened(right); + + // OK to do a single assign if neither side is split or flattened. Otherwise, + // fall through to a member-wise copy. + if (!isFlattenLeft && !isFlattenRight && !isSplitLeft && !isSplitRight) { + // Clip and cull distance requires more processing. See comment above assignClipCullDistance. + if (isClipOrCullDistance(left->getType()) || isClipOrCullDistance(right->getType())) { + const bool isOutput = isClipOrCullDistance(left->getType()); + + const int semanticId = (isOutput ? left : right)->getType().getQualifier().layoutLocation; + return assignClipCullDistance(loc, op, semanticId, left, right); + } else if (assignsClipPos(left)) { + // Position can require special handling: see comment above assignPosition + return assignPosition(loc, op, left, right); + } else if (left->getQualifier().builtIn == EbvSampleMask) { + // Certain builtins are required to be arrayed outputs in SPIR-V, but may internally be scalars + // in the shader. Copy the scalar RHS into the LHS array element zero, if that happens. + if (left->isArray() && !right->isArray()) { + const TType derefType(left->getType(), 0); + left = intermediate.addIndex(EOpIndexDirect, left, intermediate.addConstantUnion(0, loc), loc); + left->setType(derefType); + // Fall through to add assign. + } + } + + return intermediate.addAssign(op, left, right, loc); + } + + TIntermAggregate* assignList = nullptr; + const TVector* leftVariables = nullptr; + const TVector* rightVariables = nullptr; + + // A temporary to store the right node's value, so we don't keep indirecting into it + // if it's not a simple symbol. + TVariable* rhsTempVar = nullptr; + + // If the RHS is a simple symbol node, we'll copy it for each member. + TIntermSymbol* cloneSymNode = nullptr; + + int memberCount = 0; + + // Track how many items there are to copy. + if (left->getType().isStruct()) + memberCount = (int)left->getType().getStruct()->size(); + if (left->getType().isArray()) + memberCount = left->getType().getCumulativeArraySize(); + + if (isFlattenLeft) + leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second.members; + + if (isFlattenRight) { + rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second.members; + } else { + // The RHS is not flattened. There are several cases: + // 1. 1 item to copy: Use the RHS directly. + // 2. >1 item, simple symbol RHS: we'll create a new TIntermSymbol node for each, but no assign to temp. + // 3. >1 item, complex RHS: assign it to a new temp variable, and create a TIntermSymbol for each member. + + if (memberCount <= 1) { + // case 1: we'll use the symbol directly below. Nothing to do. + } else { + if (right->getAsSymbolNode() != nullptr) { + // case 2: we'll copy the symbol per iteration below. + cloneSymNode = right->getAsSymbolNode(); + } else { + // case 3: assign to a temp, and indirect into that. + rhsTempVar = makeInternalVariable("flattenTemp", right->getType()); + rhsTempVar->getWritableType().getQualifier().makeTemporary(); + TIntermTyped* noFlattenRHS = intermediate.addSymbol(*rhsTempVar, loc); + + // Add this to the aggregate being built. + assignList = intermediate.growAggregate(assignList, + intermediate.addAssign(op, noFlattenRHS, right, loc), loc); + } + } + } + + // When dealing with split arrayed structures of built-ins, the arrayness is moved to the extracted built-in + // variables, which is awkward when copying between split and unsplit structures. This variable tracks + // array indirections so they can be percolated from outer structs to inner variables. + std::vector arrayElement; + + TStorageQualifier leftStorage = left->getType().getQualifier().storage; + TStorageQualifier rightStorage = right->getType().getQualifier().storage; + + int leftOffset = findSubtreeOffset(*left); + int rightOffset = findSubtreeOffset(*right); + + const auto getMember = [&](bool isLeft, const TType& type, int member, TIntermTyped* splitNode, int splitMember, + bool flattened) + -> TIntermTyped * { + const bool split = isLeft ? isSplitLeft : isSplitRight; + + TIntermTyped* subTree; + const TType derefType(type, member); + const TVariable* builtInVar = nullptr; + if ((flattened || split) && derefType.isBuiltIn()) { + auto splitPair = splitBuiltIns.find(HlslParseContext::tInterstageIoData( + derefType.getQualifier().builtIn, + isLeft ? leftStorage : rightStorage)); + if (splitPair != splitBuiltIns.end()) + builtInVar = splitPair->second; + } + if (builtInVar != nullptr) { + // copy from interstage IO built-in if needed + subTree = intermediate.addSymbol(*builtInVar); + + if (subTree->getType().isArray()) { + // Arrayness of builtIn symbols isn't handled by the normal recursion: + // it's been extracted and moved to the built-in. + if (!arrayElement.empty()) { + const TType splitDerefType(subTree->getType(), arrayElement.back()); + subTree = intermediate.addIndex(EOpIndexDirect, subTree, + intermediate.addConstantUnion(arrayElement.back(), loc), loc); + subTree->setType(splitDerefType); + } else if (splitNode->getAsOperator() != nullptr && (splitNode->getAsOperator()->getOp() == EOpIndexIndirect)) { + // This might also be a stage with arrayed outputs, in which case there's an index + // operation we should transfer to the output builtin. + + const TType splitDerefType(subTree->getType(), 0); + subTree = intermediate.addIndex(splitNode->getAsOperator()->getOp(), subTree, + splitNode->getAsBinaryNode()->getRight(), loc); + subTree->setType(splitDerefType); + } + } + } else if (flattened && !shouldFlatten(derefType, isLeft ? leftStorage : rightStorage, false)) { + if (isLeft) + subTree = intermediate.addSymbol(*(*leftVariables)[leftOffset++]); + else + subTree = intermediate.addSymbol(*(*rightVariables)[rightOffset++]); + } else { + // Index operator if it's an aggregate, else EOpNull + const TOperator accessOp = type.isArray() ? EOpIndexDirect + : type.isStruct() ? EOpIndexDirectStruct + : EOpNull; + if (accessOp == EOpNull) { + subTree = splitNode; + } else { + subTree = intermediate.addIndex(accessOp, splitNode, intermediate.addConstantUnion(splitMember, loc), + loc); + const TType splitDerefType(splitNode->getType(), splitMember); + subTree->setType(splitDerefType); + } + } + + return subTree; + }; + + // Use the proper RHS node: a new symbol from a TVariable, copy + // of an TIntermSymbol node, or sometimes the right node directly. + right = rhsTempVar != nullptr ? intermediate.addSymbol(*rhsTempVar, loc) : + cloneSymNode != nullptr ? intermediate.addSymbol(*cloneSymNode) : + right; + + // Cannot use auto here, because this is recursive, and auto can't work out the type without seeing the + // whole thing. So, we'll resort to an explicit type via std::function. + const std::function + traverse = [&](TIntermTyped* left, TIntermTyped* right, TIntermTyped* splitLeft, TIntermTyped* splitRight, + bool topLevel) -> void { + // If we get here, we are assigning to or from a whole array or struct that must be + // flattened, so have to do member-by-member assignment: + + bool shouldFlattenSubsetLeft = isFlattenLeft && shouldFlatten(left->getType(), leftStorage, topLevel); + bool shouldFlattenSubsetRight = isFlattenRight && shouldFlatten(right->getType(), rightStorage, topLevel); + + if ((left->getType().isArray() || right->getType().isArray()) && + (shouldFlattenSubsetLeft || isSplitLeft || + shouldFlattenSubsetRight || isSplitRight)) { + const int elementsL = left->getType().isArray() ? left->getType().getOuterArraySize() : 1; + const int elementsR = right->getType().isArray() ? right->getType().getOuterArraySize() : 1; + + // The arrays might not be the same size, + // e.g., if the size has been forced for EbvTessLevelInner/Outer. + const int elementsToCopy = std::min(elementsL, elementsR); + + // array case + for (int element = 0; element < elementsToCopy; ++element) { + arrayElement.push_back(element); + + // Add a new AST symbol node if we have a temp variable holding a complex RHS. + TIntermTyped* subLeft = getMember(true, left->getType(), element, left, element, + shouldFlattenSubsetLeft); + TIntermTyped* subRight = getMember(false, right->getType(), element, right, element, + shouldFlattenSubsetRight); + + TIntermTyped* subSplitLeft = isSplitLeft ? getMember(true, left->getType(), element, splitLeft, + element, shouldFlattenSubsetLeft) + : subLeft; + TIntermTyped* subSplitRight = isSplitRight ? getMember(false, right->getType(), element, splitRight, + element, shouldFlattenSubsetRight) + : subRight; + + traverse(subLeft, subRight, subSplitLeft, subSplitRight, false); + + arrayElement.pop_back(); + } + } else if (left->getType().isStruct() && (shouldFlattenSubsetLeft || isSplitLeft || + shouldFlattenSubsetRight || isSplitRight)) { + // struct case + const auto& membersL = *left->getType().getStruct(); + const auto& membersR = *right->getType().getStruct(); + + // These track the members in the split structures corresponding to the same in the unsplit structures, + // which we traverse in parallel. + int memberL = 0; + int memberR = 0; + + // Handle empty structure assignment + if (int(membersL.size()) == 0 && int(membersR.size()) == 0) + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, right, loc), loc); + + for (int member = 0; member < int(membersL.size()); ++member) { + const TType& typeL = *membersL[member].type; + const TType& typeR = *membersR[member].type; + + TIntermTyped* subLeft = getMember(true, left->getType(), member, left, member, + shouldFlattenSubsetLeft); + TIntermTyped* subRight = getMember(false, right->getType(), member, right, member, + shouldFlattenSubsetRight); + + // If there is no splitting, use the same values to avoid inefficiency. + TIntermTyped* subSplitLeft = isSplitLeft ? getMember(true, left->getType(), member, splitLeft, + memberL, shouldFlattenSubsetLeft) + : subLeft; + TIntermTyped* subSplitRight = isSplitRight ? getMember(false, right->getType(), member, splitRight, + memberR, shouldFlattenSubsetRight) + : subRight; + + if (isClipOrCullDistance(subSplitLeft->getType()) || isClipOrCullDistance(subSplitRight->getType())) { + // Clip and cull distance built-in assignment is complex in its own right, and is handled in + // a separate function dedicated to that task. See comment above assignClipCullDistance; + + const bool isOutput = isClipOrCullDistance(subSplitLeft->getType()); + + // Since all clip/cull semantics boil down to the same built-in type, we need to get the + // semantic ID from the dereferenced type's layout location, to avoid an N-1 mapping. + const TType derefType((isOutput ? left : right)->getType(), member); + const int semanticId = derefType.getQualifier().layoutLocation; + + TIntermAggregate* clipCullAssign = assignClipCullDistance(loc, op, semanticId, + subSplitLeft, subSplitRight); + + assignList = intermediate.growAggregate(assignList, clipCullAssign, loc); + } else if (assignsClipPos(subSplitLeft)) { + // Position can require special handling: see comment above assignPosition + TIntermTyped* positionAssign = assignPosition(loc, op, subSplitLeft, subSplitRight); + assignList = intermediate.growAggregate(assignList, positionAssign, loc); + } else if (!shouldFlattenSubsetLeft && !shouldFlattenSubsetRight && + !typeL.containsBuiltIn() && !typeR.containsBuiltIn()) { + // If this is the final flattening (no nested types below to flatten) + // we'll copy the member, else recurse into the type hierarchy. + // However, if splitting the struct, that means we can copy a whole + // subtree here IFF it does not itself contain any interstage built-in + // IO variables, so we only have to recurse into it if there's something + // for splitting to do. That can save a lot of AST verbosity for + // a bunch of memberwise copies. + + assignList = intermediate.growAggregate(assignList, + intermediate.addAssign(op, subSplitLeft, subSplitRight, loc), + loc); + } else { + traverse(subLeft, subRight, subSplitLeft, subSplitRight, false); + } + + memberL += (typeL.isBuiltIn() ? 0 : 1); + memberR += (typeR.isBuiltIn() ? 0 : 1); + } + } else { + // Member copy + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, right, loc), loc); + } + + }; + + TIntermTyped* splitLeft = left; + TIntermTyped* splitRight = right; + + // If either left or right was a split structure, we must read or write it, but still have to + // parallel-recurse through the unsplit structure to identify the built-in IO vars. + // The left can be either a symbol, or an index into a symbol (e.g, array reference) + if (isSplitLeft) { + if (indexesSplit(left)) { + // Index case: Refer to the indexed symbol, if the left is an index operator. + const TIntermSymbol* symNode = left->getAsBinaryNode()->getLeft()->getAsSymbolNode(); + + TIntermTyped* splitLeftNonIo = intermediate.addSymbol(*getSplitNonIoVar(symNode->getId()), loc); + + splitLeft = intermediate.addIndex(left->getAsBinaryNode()->getOp(), splitLeftNonIo, + left->getAsBinaryNode()->getRight(), loc); + + const TType derefType(splitLeftNonIo->getType(), 0); + splitLeft->setType(derefType); + } else { + // Symbol case: otherwise, if not indexed, we have the symbol directly. + const TIntermSymbol* symNode = left->getAsSymbolNode(); + splitLeft = intermediate.addSymbol(*getSplitNonIoVar(symNode->getId()), loc); + } + } + + if (isSplitRight) + splitRight = intermediate.addSymbol(*getSplitNonIoVar(right->getAsSymbolNode()->getId()), loc); + + // This makes the whole assignment, recursing through subtypes as needed. + traverse(left, right, splitLeft, splitRight, true); + + assert(assignList != nullptr); + assignList->setOperator(EOpSequence); + + return assignList; +} + +// An assignment to matrix swizzle must be decomposed into individual assignments. +// These must be selected component-wise from the RHS and stored component-wise +// into the LHS. +TIntermTyped* HlslParseContext::handleAssignToMatrixSwizzle(const TSourceLoc& loc, TOperator op, TIntermTyped* left, + TIntermTyped* right) +{ + assert(left->getAsOperator() && left->getAsOperator()->getOp() == EOpMatrixSwizzle); + + if (op != EOpAssign) + error(loc, "only simple assignment to non-simple matrix swizzle is supported", "assign", ""); + + // isolate the matrix and swizzle nodes + TIntermTyped* matrix = left->getAsBinaryNode()->getLeft()->getAsTyped(); + const TIntermSequence& swizzle = left->getAsBinaryNode()->getRight()->getAsAggregate()->getSequence(); + + // if the RHS isn't already a simple vector, let's store into one + TIntermSymbol* vector = right->getAsSymbolNode(); + TIntermTyped* vectorAssign = nullptr; + if (vector == nullptr) { + // create a new intermediate vector variable to assign to + TType vectorType(matrix->getBasicType(), EvqTemporary, matrix->getQualifier().precision, (int)swizzle.size()/2); + vector = intermediate.addSymbol(*makeInternalVariable("intermVec", vectorType), loc); + + // assign the right to the new vector + vectorAssign = handleAssign(loc, op, vector, right); + } + + // Assign the vector components to the matrix components. + // Store this as a sequence, so a single aggregate node represents this + // entire operation. + TIntermAggregate* result = intermediate.makeAggregate(vectorAssign); + TType columnType(matrix->getType(), 0); + TType componentType(columnType, 0); + TType indexType(EbtInt); + for (int i = 0; i < (int)swizzle.size(); i += 2) { + // the right component, single index into the RHS vector + TIntermTyped* rightComp = intermediate.addIndex(EOpIndexDirect, vector, + intermediate.addConstantUnion(i/2, loc), loc); + + // the left component, double index into the LHS matrix + TIntermTyped* leftComp = intermediate.addIndex(EOpIndexDirect, matrix, + intermediate.addConstantUnion(swizzle[i]->getAsConstantUnion()->getConstArray(), + indexType, loc), + loc); + leftComp->setType(columnType); + leftComp = intermediate.addIndex(EOpIndexDirect, leftComp, + intermediate.addConstantUnion(swizzle[i+1]->getAsConstantUnion()->getConstArray(), + indexType, loc), + loc); + leftComp->setType(componentType); + + // Add the assignment to the aggregate + result = intermediate.growAggregate(result, intermediate.addAssign(op, leftComp, rightComp, loc)); + } + + result->setOp(EOpSequence); + + return result; +} + +// +// HLSL atomic operations have slightly different arguments than +// GLSL/AST/SPIRV. The semantics are converted below in decomposeIntrinsic. +// This provides the post-decomposition equivalent opcode. +// +TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage) +{ + switch (op) { + case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; + case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; + case EOpInterlockedCompareExchange: return isImage ? EOpImageAtomicCompSwap : EOpAtomicCompSwap; + case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; + case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; + case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; + case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; + case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange; + case EOpInterlockedCompareStore: // TODO: ... + default: + error(loc, "unknown atomic operation", "unknown op", ""); + return EOpNull; + } +} + +// +// Create a combined sampler/texture from separate sampler and texture. +// +TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, + TIntermTyped* argSampler) +{ + TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); + + txcombine->getSequence().push_back(argTex); + txcombine->getSequence().push_back(argSampler); + + TSampler samplerType = argTex->getType().getSampler(); + samplerType.combined = true; + + // TODO: + // This block exists until the spec no longer requires shadow modes on texture objects. + // It can be deleted after that, along with the shadowTextureVariant member. + { + const bool shadowMode = argSampler->getType().getSampler().shadow; + + TIntermSymbol* texSymbol = argTex->getAsSymbolNode(); + + if (texSymbol == nullptr) + texSymbol = argTex->getAsBinaryNode()->getLeft()->getAsSymbolNode(); + + if (texSymbol == nullptr) { + error(loc, "unable to find texture symbol", "", ""); + return nullptr; + } + + // This forces the texture's shadow state to be the sampler's + // shadow state. This depends on downstream optimization to + // DCE one variant in [shadow, nonshadow] if both are present, + // or the SPIR-V module would be invalid. + int newId = texSymbol->getId(); + + // Check to see if this texture has been given a shadow mode already. + // If so, look up the one we already have. + const auto textureShadowEntry = textureShadowVariant.find(texSymbol->getId()); + + if (textureShadowEntry != textureShadowVariant.end()) + newId = textureShadowEntry->second->get(shadowMode); + else + textureShadowVariant[texSymbol->getId()] = new tShadowTextureSymbols; + + // Sometimes we have to create another symbol (if this texture has been seen before, + // and we haven't created the form for this shadow mode). + if (newId == -1) { + TType texType; + texType.shallowCopy(argTex->getType()); + texType.getSampler().shadow = shadowMode; // set appropriate shadow mode. + globalQualifierFix(loc, texType.getQualifier()); + + TVariable* newTexture = makeInternalVariable(texSymbol->getName(), texType); + + trackLinkage(*newTexture); + + newId = newTexture->getUniqueId(); + } + + assert(newId != -1); + + if (textureShadowVariant.find(newId) == textureShadowVariant.end()) + textureShadowVariant[newId] = textureShadowVariant[texSymbol->getId()]; + + textureShadowVariant[newId]->set(shadowMode, newId); + + // Remember this shadow mode in the texture and the merged type. + argTex->getWritableType().getSampler().shadow = shadowMode; + samplerType.shadow = shadowMode; + + texSymbol->switchId(newId); + } + + txcombine->setType(TType(samplerType, EvqTemporary)); + txcombine->setLoc(loc); + + return txcombine; +} + +// Return true if this a buffer type that has an associated counter buffer. +bool HlslParseContext::hasStructBuffCounter(const TType& type) const +{ + switch (type.getQualifier().declaredBuiltIn) { + case EbvAppendConsume: // fall through... + case EbvRWStructuredBuffer: // ... + return true; + default: + return false; // the other structuredbuffer types do not have a counter. + } +} + +void HlslParseContext::counterBufferType(const TSourceLoc& loc, TType& type) +{ + // Counter type + TType* counterType = new TType(EbtUint, EvqBuffer); + counterType->setFieldName(intermediate.implicitCounterName); + + TTypeList* blockStruct = new TTypeList; + TTypeLoc member = { counterType, loc }; + blockStruct->push_back(member); + + TType blockType(blockStruct, "", counterType->getQualifier()); + blockType.getQualifier().storage = EvqBuffer; + + type.shallowCopy(blockType); + shareStructBufferType(type); +} + +// declare counter for a structured buffer type +void HlslParseContext::declareStructBufferCounter(const TSourceLoc& loc, const TType& bufferType, const TString& name) +{ + // Bail out if not a struct buffer + if (! isStructBufferType(bufferType)) + return; + + if (! hasStructBuffCounter(bufferType)) + return; + + TType blockType; + counterBufferType(loc, blockType); + + TString* blockName = new TString(intermediate.addCounterBufferName(name)); + + // Counter buffer is not yet in use + structBufferCounter[*blockName] = false; + + shareStructBufferType(blockType); + declareBlock(loc, blockType, blockName); +} + +// return the counter that goes with a given structuredbuffer +TIntermTyped* HlslParseContext::getStructBufferCounter(const TSourceLoc& loc, TIntermTyped* buffer) +{ + // Bail out if not a struct buffer + if (buffer == nullptr || ! isStructBufferType(buffer->getType())) + return nullptr; + + const TString counterBlockName(intermediate.addCounterBufferName(buffer->getAsSymbolNode()->getName())); + + // Mark the counter as being used + structBufferCounter[counterBlockName] = true; + + TIntermTyped* counterVar = handleVariable(loc, &counterBlockName); // find the block structure + TIntermTyped* index = intermediate.addConstantUnion(0, loc); // index to counter inside block struct + + TIntermTyped* counterMember = intermediate.addIndex(EOpIndexDirectStruct, counterVar, index, loc); + counterMember->setType(TType(EbtUint)); + return counterMember; +} + +// +// Decompose structure buffer methods into AST +// +void HlslParseContext::decomposeStructBufferMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (node == nullptr || node->getAsOperator() == nullptr || arguments == nullptr) + return; + + const TOperator op = node->getAsOperator()->getOp(); + TIntermAggregate* argAggregate = arguments->getAsAggregate(); + + // Buffer is the object upon which method is called, so always arg 0 + TIntermTyped* bufferObj = nullptr; + + // The parameters can be an aggregate, or just a the object as a symbol if there are no fn params. + if (argAggregate) { + if (argAggregate->getSequence().empty()) + return; + bufferObj = argAggregate->getSequence()[0]->getAsTyped(); + } else { + bufferObj = arguments->getAsSymbolNode(); + } + + if (bufferObj == nullptr || bufferObj->getAsSymbolNode() == nullptr) + return; + + // Some methods require a hidden internal counter, obtained via getStructBufferCounter(). + // This lambda adds something to it and returns the old value. + const auto incDecCounter = [&](int incval) -> TIntermTyped* { + TIntermTyped* incrementValue = intermediate.addConstantUnion(static_cast(incval), loc, true); + TIntermTyped* counter = getStructBufferCounter(loc, bufferObj); // obtain the counter member + + if (counter == nullptr) + return nullptr; + + TIntermAggregate* counterIncrement = new TIntermAggregate(EOpAtomicAdd); + counterIncrement->setType(TType(EbtUint, EvqTemporary)); + counterIncrement->setLoc(loc); + counterIncrement->getSequence().push_back(counter); + counterIncrement->getSequence().push_back(incrementValue); + + return counterIncrement; + }; + + // Index to obtain the runtime sized array out of the buffer. + TIntermTyped* argArray = indexStructBufferContent(loc, bufferObj); + if (argArray == nullptr) + return; // It might not be a struct buffer method. + + switch (op) { + case EOpMethodLoad: + { + TIntermTyped* argIndex = makeIntegerIndex(argAggregate->getSequence()[1]->getAsTyped()); // index + + const TType& bufferType = bufferObj->getType(); + + const TBuiltInVariable builtInType = bufferType.getQualifier().declaredBuiltIn; + + // Byte address buffers index in bytes (only multiples of 4 permitted... not so much a byte address + // buffer then, but that's what it calls itself. + const bool isByteAddressBuffer = (builtInType == EbvByteAddressBuffer || + builtInType == EbvRWByteAddressBuffer); + + + if (isByteAddressBuffer) + argIndex = intermediate.addBinaryNode(EOpRightShift, argIndex, + intermediate.addConstantUnion(2, loc, true), + loc, TType(EbtInt)); + + // Index into the array to find the item being loaded. + const TOperator idxOp = (argIndex->getQualifier().storage == EvqConst) ? EOpIndexDirect : EOpIndexIndirect; + + node = intermediate.addIndex(idxOp, argArray, argIndex, loc); + + const TType derefType(argArray->getType(), 0); + node->setType(derefType); + } + + break; + + case EOpMethodLoad2: + case EOpMethodLoad3: + case EOpMethodLoad4: + { + TIntermTyped* argIndex = makeIntegerIndex(argAggregate->getSequence()[1]->getAsTyped()); // index + + TOperator constructOp = EOpNull; + int size = 0; + + switch (op) { + case EOpMethodLoad2: size = 2; constructOp = EOpConstructVec2; break; + case EOpMethodLoad3: size = 3; constructOp = EOpConstructVec3; break; + case EOpMethodLoad4: size = 4; constructOp = EOpConstructVec4; break; + default: assert(0); + } + + TIntermTyped* body = nullptr; + + // First, we'll store the address in a variable to avoid multiple shifts + // (we must convert the byte address to an item address) + TIntermTyped* byteAddrIdx = intermediate.addBinaryNode(EOpRightShift, argIndex, + intermediate.addConstantUnion(2, loc, true), + loc, TType(EbtInt)); + + TVariable* byteAddrSym = makeInternalVariable("byteAddrTemp", TType(EbtInt, EvqTemporary)); + TIntermTyped* byteAddrIdxVar = intermediate.addSymbol(*byteAddrSym, loc); + + body = intermediate.growAggregate(body, intermediate.addAssign(EOpAssign, byteAddrIdxVar, byteAddrIdx, loc)); + + TIntermTyped* vec = nullptr; + + // These are only valid on (rw)byteaddressbuffers, so we can always perform the >>2 + // address conversion. + for (int idx=0; idxgetQualifier().storage == EvqConst) ? EOpIndexDirect + : EOpIndexIndirect; + + TIntermTyped* indexVal = intermediate.addIndex(idxOp, argArray, offsetIdx, loc); + + TType derefType(argArray->getType(), 0); + derefType.getQualifier().makeTemporary(); + indexVal->setType(derefType); + + vec = intermediate.growAggregate(vec, indexVal); + } + + vec->setType(TType(argArray->getBasicType(), EvqTemporary, size)); + vec->getAsAggregate()->setOperator(constructOp); + + body = intermediate.growAggregate(body, vec); + body->setType(vec->getType()); + body->getAsAggregate()->setOperator(EOpSequence); + + node = body; + } + + break; + + case EOpMethodStore: + case EOpMethodStore2: + case EOpMethodStore3: + case EOpMethodStore4: + { + TIntermTyped* argIndex = makeIntegerIndex(argAggregate->getSequence()[1]->getAsTyped()); // index + TIntermTyped* argValue = argAggregate->getSequence()[2]->getAsTyped(); // value + + // Index into the array to find the item being loaded. + // Byte address buffers index in bytes (only multiples of 4 permitted... not so much a byte address + // buffer then, but that's what it calls itself). + + int size = 0; + + switch (op) { + case EOpMethodStore: size = 1; break; + case EOpMethodStore2: size = 2; break; + case EOpMethodStore3: size = 3; break; + case EOpMethodStore4: size = 4; break; + default: assert(0); + } + + TIntermAggregate* body = nullptr; + + // First, we'll store the address in a variable to avoid multiple shifts + // (we must convert the byte address to an item address) + TIntermTyped* byteAddrIdx = intermediate.addBinaryNode(EOpRightShift, argIndex, + intermediate.addConstantUnion(2, loc, true), loc, TType(EbtInt)); + + TVariable* byteAddrSym = makeInternalVariable("byteAddrTemp", TType(EbtInt, EvqTemporary)); + TIntermTyped* byteAddrIdxVar = intermediate.addSymbol(*byteAddrSym, loc); + + body = intermediate.growAggregate(body, intermediate.addAssign(EOpAssign, byteAddrIdxVar, byteAddrIdx, loc)); + + for (int idx=0; idxgetQualifier().storage == EvqConst) ? EOpIndexDirect + : EOpIndexIndirect; + + TIntermTyped* lValue = intermediate.addIndex(idxOp, argArray, offsetIdx, loc); + const TType derefType(argArray->getType(), 0); + lValue->setType(derefType); + + TIntermTyped* rValue; + if (size == 1) { + rValue = argValue; + } else { + rValue = intermediate.addIndex(EOpIndexDirect, argValue, idxConst, loc); + const TType indexType(argValue->getType(), 0); + rValue->setType(indexType); + } + + TIntermTyped* assign = intermediate.addAssign(EOpAssign, lValue, rValue, loc); + + body = intermediate.growAggregate(body, assign); + } + + body->setOperator(EOpSequence); + node = body; + } + + break; + + case EOpMethodGetDimensions: + { + const int numArgs = (int)argAggregate->getSequence().size(); + TIntermTyped* argNumItems = argAggregate->getSequence()[1]->getAsTyped(); // out num items + TIntermTyped* argStride = numArgs > 2 ? argAggregate->getSequence()[2]->getAsTyped() : nullptr; // out stride + + TIntermAggregate* body = nullptr; + + // Length output: + if (argArray->getType().isSizedArray()) { + const int length = argArray->getType().getOuterArraySize(); + TIntermTyped* assign = intermediate.addAssign(EOpAssign, argNumItems, + intermediate.addConstantUnion(length, loc, true), loc); + body = intermediate.growAggregate(body, assign, loc); + } else { + TIntermTyped* lengthCall = intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, argArray, + argNumItems->getType()); + TIntermTyped* assign = intermediate.addAssign(EOpAssign, argNumItems, lengthCall, loc); + body = intermediate.growAggregate(body, assign, loc); + } + + // Stride output: + if (argStride != nullptr) { + int size; + int stride; + intermediate.getBaseAlignment(argArray->getType(), size, stride, false, + argArray->getType().getQualifier().layoutMatrix == ElmRowMajor); + + TIntermTyped* assign = intermediate.addAssign(EOpAssign, argStride, + intermediate.addConstantUnion(stride, loc, true), loc); + + body = intermediate.growAggregate(body, assign); + } + + body->setOperator(EOpSequence); + node = body; + } + + break; + + case EOpInterlockedAdd: + case EOpInterlockedAnd: + case EOpInterlockedExchange: + case EOpInterlockedMax: + case EOpInterlockedMin: + case EOpInterlockedOr: + case EOpInterlockedXor: + case EOpInterlockedCompareExchange: + case EOpInterlockedCompareStore: + { + // We'll replace the first argument with the block dereference, and let + // downstream decomposition handle the rest. + + TIntermSequence& sequence = argAggregate->getSequence(); + + TIntermTyped* argIndex = makeIntegerIndex(sequence[1]->getAsTyped()); // index + argIndex = intermediate.addBinaryNode(EOpRightShift, argIndex, intermediate.addConstantUnion(2, loc, true), + loc, TType(EbtInt)); + + const TOperator idxOp = (argIndex->getQualifier().storage == EvqConst) ? EOpIndexDirect : EOpIndexIndirect; + TIntermTyped* element = intermediate.addIndex(idxOp, argArray, argIndex, loc); + + const TType derefType(argArray->getType(), 0); + element->setType(derefType); + + // Replace the numeric byte offset parameter with array reference. + sequence[1] = element; + sequence.erase(sequence.begin(), sequence.begin()+1); + } + break; + + case EOpMethodIncrementCounter: + { + node = incDecCounter(1); + break; + } + + case EOpMethodDecrementCounter: + { + TIntermTyped* preIncValue = incDecCounter(-1); // result is original value + node = intermediate.addBinaryNode(EOpAdd, preIncValue, intermediate.addConstantUnion(-1, loc, true), loc, + preIncValue->getType()); + break; + } + + case EOpMethodAppend: + { + TIntermTyped* oldCounter = incDecCounter(1); + + TIntermTyped* lValue = intermediate.addIndex(EOpIndexIndirect, argArray, oldCounter, loc); + TIntermTyped* rValue = argAggregate->getSequence()[1]->getAsTyped(); + + const TType derefType(argArray->getType(), 0); + lValue->setType(derefType); + + node = intermediate.addAssign(EOpAssign, lValue, rValue, loc); + + break; + } + + case EOpMethodConsume: + { + TIntermTyped* oldCounter = incDecCounter(-1); + + TIntermTyped* newCounter = intermediate.addBinaryNode(EOpAdd, oldCounter, + intermediate.addConstantUnion(-1, loc, true), loc, + oldCounter->getType()); + + node = intermediate.addIndex(EOpIndexIndirect, argArray, newCounter, loc); + + const TType derefType(argArray->getType(), 0); + node->setType(derefType); + + break; + } + + default: + break; // most pass through unchanged + } +} + +// Create array of standard sample positions for given sample count. +// TODO: remove when a real method to query sample pos exists in SPIR-V. +TIntermConstantUnion* HlslParseContext::getSamplePosArray(int count) +{ + struct tSamplePos { float x, y; }; + + static const tSamplePos pos1[] = { + { 0.0/16.0, 0.0/16.0 }, + }; + + // standard sample positions for 2, 4, 8, and 16 samples. + static const tSamplePos pos2[] = { + { 4.0/16.0, 4.0/16.0 }, {-4.0/16.0, -4.0/16.0 }, + }; + + static const tSamplePos pos4[] = { + {-2.0/16.0, -6.0/16.0 }, { 6.0/16.0, -2.0/16.0 }, {-6.0/16.0, 2.0/16.0 }, { 2.0/16.0, 6.0/16.0 }, + }; + + static const tSamplePos pos8[] = { + { 1.0/16.0, -3.0/16.0 }, {-1.0/16.0, 3.0/16.0 }, { 5.0/16.0, 1.0/16.0 }, {-3.0/16.0, -5.0/16.0 }, + {-5.0/16.0, 5.0/16.0 }, {-7.0/16.0, -1.0/16.0 }, { 3.0/16.0, 7.0/16.0 }, { 7.0/16.0, -7.0/16.0 }, + }; + + static const tSamplePos pos16[] = { + { 1.0/16.0, 1.0/16.0 }, {-1.0/16.0, -3.0/16.0 }, {-3.0/16.0, 2.0/16.0 }, { 4.0/16.0, -1.0/16.0 }, + {-5.0/16.0, -2.0/16.0 }, { 2.0/16.0, 5.0/16.0 }, { 5.0/16.0, 3.0/16.0 }, { 3.0/16.0, -5.0/16.0 }, + {-2.0/16.0, 6.0/16.0 }, { 0.0/16.0, -7.0/16.0 }, {-4.0/16.0, -6.0/16.0 }, {-6.0/16.0, 4.0/16.0 }, + {-8.0/16.0, 0.0/16.0 }, { 7.0/16.0, -4.0/16.0 }, { 6.0/16.0, 7.0/16.0 }, {-7.0/16.0, -8.0/16.0 }, + }; + + const tSamplePos* sampleLoc = nullptr; + int numSamples = count; + + switch (count) { + case 2: sampleLoc = pos2; break; + case 4: sampleLoc = pos4; break; + case 8: sampleLoc = pos8; break; + case 16: sampleLoc = pos16; break; + default: + sampleLoc = pos1; + numSamples = 1; + } + + TConstUnionArray* values = new TConstUnionArray(numSamples*2); + + for (int pos=0; posaddInnerSize(numSamples); + retType.transferArraySizes(arraySizes); + } + + return new TIntermConstantUnion(*values, retType); +} + +// +// Decompose DX9 and DX10 sample intrinsics & object methods into AST +// +void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (node == nullptr || !node->getAsOperator()) + return; + + // Sampler return must always be a vec4, but we can construct a shorter vector or a structure from it. + const auto convertReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) -> TIntermTyped* { + result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize())); + + TIntermTyped* convertedResult = nullptr; + + TType retType; + getTextureReturnType(sampler, retType); + + if (retType.isStruct()) { + // For type convenience, conversionAggregate points to the convertedResult (we know it's an aggregate here) + TIntermAggregate* conversionAggregate = new TIntermAggregate; + convertedResult = conversionAggregate; + + // Convert vector output to return structure. We will need a temp symbol to copy the results to. + TVariable* structVar = makeInternalVariable("@sampleStructTemp", retType); + + // We also need a temp symbol to hold the result of the texture. We don't want to re-fetch the + // sample each time we'll index into the result, so we'll copy to this, and index into the copy. + TVariable* sampleShadow = makeInternalVariable("@sampleResultShadow", result->getType()); + + // Initial copy from texture to our sample result shadow. + TIntermTyped* shadowCopy = intermediate.addAssign(EOpAssign, intermediate.addSymbol(*sampleShadow, loc), + result, loc); + + conversionAggregate->getSequence().push_back(shadowCopy); + + unsigned vec4Pos = 0; + + for (unsigned m = 0; m < unsigned(retType.getStruct()->size()); ++m) { + const TType memberType(retType, m); // dereferenced type of the member we're about to assign. + + // Check for bad struct members. This should have been caught upstream. Complain, because + // wwe don't know what to do with it. This algorithm could be generalized to handle + // other things, e.g, sub-structures, but HLSL doesn't allow them. + if (!memberType.isVector() && !memberType.isScalar()) { + error(loc, "expected: scalar or vector type in texture structure", "", ""); + return nullptr; + } + + // Index into the struct variable to find the member to assign. + TIntermTyped* structMember = intermediate.addIndex(EOpIndexDirectStruct, + intermediate.addSymbol(*structVar, loc), + intermediate.addConstantUnion(m, loc), loc); + + structMember->setType(memberType); + + // Assign each component of (possible) vector in struct member. + for (int component = 0; component < memberType.getVectorSize(); ++component) { + TIntermTyped* vec4Member = intermediate.addIndex(EOpIndexDirect, + intermediate.addSymbol(*sampleShadow, loc), + intermediate.addConstantUnion(vec4Pos++, loc), loc); + vec4Member->setType(TType(memberType.getBasicType(), EvqTemporary, 1)); + + TIntermTyped* memberAssign = nullptr; + + if (memberType.isVector()) { + // Vector member: we need to create an access chain to the vector component. + + TIntermTyped* structVecComponent = intermediate.addIndex(EOpIndexDirect, structMember, + intermediate.addConstantUnion(component, loc), loc); + + memberAssign = intermediate.addAssign(EOpAssign, structVecComponent, vec4Member, loc); + } else { + // Scalar member: we can assign to it directly. + memberAssign = intermediate.addAssign(EOpAssign, structMember, vec4Member, loc); + } + + + conversionAggregate->getSequence().push_back(memberAssign); + } + } + + // Add completed variable so the expression results in the whole struct value we just built. + conversionAggregate->getSequence().push_back(intermediate.addSymbol(*structVar, loc)); + + // Make it a sequence. + intermediate.setAggregateOperator(conversionAggregate, EOpSequence, retType, loc); + } else { + // vector clamp the output if template vector type is smaller than sample result. + if (retType.getVectorSize() < node->getVectorSize()) { + // Too many components. Construct shorter vector from it. + const TOperator op = intermediate.mapTypeToConstructorOp(retType); + + convertedResult = constructBuiltIn(retType, op, result, loc, false); + } else { + // Enough components. Use directly. + convertedResult = result; + } + } + + convertedResult->setLoc(loc); + return convertedResult; + }; + + const TOperator op = node->getAsOperator()->getOp(); + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + + // Bail out if not a sampler method. + // Note though this is odd to do before checking the op, because the op + // could be something that takes the arguments, and the function in question + // takes the result of the op. So, this is not the final word. + if (arguments != nullptr) { + if (argAggregate == nullptr) { + if (arguments->getAsTyped()->getBasicType() != EbtSampler) + return; + } else { + if (argAggregate->getSequence().size() == 0 || + argAggregate->getSequence()[0]->getAsTyped()->getBasicType() != EbtSampler) + return; + } + } + + switch (op) { + // **** DX9 intrinsics: **** + case EOpTexture: + { + // Texture with ddx & ddy is really gradient form in HLSL + if (argAggregate->getSequence().size() == 4) + node->getAsAggregate()->setOperator(EOpTextureGrad); + + 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; + const TSampler& sampler = arg0->getType().getSampler(); + + switch (sampler.dim) { + case Esd1D: constructOp = EOpConstructFloat; break; // 1D + case Esd2D: constructOp = EOpConstructVec2; break; // 2D + case Esd3D: constructOp = EOpConstructVec3; break; // 3D + case EsdCube: constructOp = EOpConstructVec3; break; // also 3D + default: break; + } + + TIntermAggregate* constructCoord = new TIntermAggregate(constructOp); + constructCoord->getSequence().push_back(arg1); + constructCoord->setLoc(loc); + + // The input vector should never be less than 2, since there's always a bias. + // The max is for safety, and should be a no-op. + constructCoord->setType(TType(arg1->getBasicType(), EvqTemporary, std::max(arg1->getVectorSize() - 1, 0))); + + TIntermAggregate* tex = new TIntermAggregate(EOpTexture); + tex->getSequence().push_back(arg0); // sampler + tex->getSequence().push_back(constructCoord); // coordinate + tex->getSequence().push_back(bias); // bias + + node = convertReturn(tex, sampler); + + break; + } + + // **** DX10 methods: **** + case EOpMethodSample: // fall through + case EOpMethodSampleBias: // ... + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argBias = nullptr; + TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); + + int nextArg = 3; + + if (op == EOpMethodSampleBias) // SampleBias has a bias arg + argBias = argAggregate->getSequence()[nextArg++]->getAsTyped(); + + TOperator textureOp = EOpTexture; + + if ((int)argAggregate->getSequence().size() == (nextArg+1)) { // last parameter is offset form + textureOp = EOpTextureOffset; + argOffset = argAggregate->getSequence()[nextArg++]->getAsTyped(); + } + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + + if (argBias != nullptr) + txsample->getSequence().push_back(argBias); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + node = convertReturn(txsample, sampler); + + break; + } + + case EOpMethodSampleGrad: // ... + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argDDX = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argDDY = argAggregate->getSequence()[4]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); + + TOperator textureOp = EOpTextureGrad; + + if (argAggregate->getSequence().size() == 6) { // last parameter is offset form + textureOp = EOpTextureGradOffset; + argOffset = argAggregate->getSequence()[5]->getAsTyped(); + } + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->getSequence().push_back(argDDX); + txsample->getSequence().push_back(argDDY); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + node = convertReturn(txsample, sampler); + + break; + } + + case EOpMethodGetDimensions: + { + // AST returns a vector of results, which we break apart component-wise into + // separate values to assign to the HLSL method's outputs, ala: + // tx . GetDimensions(width, height); + // float2 sizeQueryTemp = EOpTextureQuerySize + // width = sizeQueryTemp.X; + // height = sizeQueryTemp.Y; + + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + const TType& texType = argTex->getType(); + + assert(texType.getBasicType() == EbtSampler); + + const TSampler& sampler = texType.getSampler(); + const TSamplerDim dim = sampler.dim; + const bool isImage = sampler.isImage(); + const bool isMs = sampler.isMultiSample(); + const int numArgs = (int)argAggregate->getSequence().size(); + + int numDims = 0; + + switch (dim) { + case Esd1D: numDims = 1; break; // W + case Esd2D: numDims = 2; break; // W, H + case Esd3D: numDims = 3; break; // W, H, D + case EsdCube: numDims = 2; break; // W, H (cube) + case EsdBuffer: numDims = 1; break; // W (buffers) + case EsdRect: numDims = 2; break; // W, H (rect) + default: + assert(0 && "unhandled texture dimension"); + } + + // Arrayed adds another dimension for the number of array elements + if (sampler.isArrayed()) + ++numDims; + + // Establish whether the method itself is querying mip levels. This can be false even + // if the underlying query requires a MIP level, due to the available HLSL method overloads. + const bool mipQuery = (numArgs > (numDims + 1 + (isMs ? 1 : 0))); + + // Establish whether we must use the LOD form of query (even if the method did not supply a mip level to query). + // True if: + // 1. 1D/2D/3D/Cube AND multisample==0 AND NOT image (those can be sent to the non-LOD query) + // or, + // 2. There is a LOD (because the non-LOD query cannot be used in that case, per spec) + const bool mipRequired = + ((dim == Esd1D || dim == Esd2D || dim == Esd3D || dim == EsdCube) && !isMs && !isImage) || // 1... + mipQuery; // 2... + + // AST assumes integer return. Will be converted to float if required. + TIntermAggregate* sizeQuery = new TIntermAggregate(isImage ? EOpImageQuerySize : EOpTextureQuerySize); + sizeQuery->getSequence().push_back(argTex); + + // If we're building an LOD query, add the LOD. + if (mipRequired) { + // If the base HLSL query had no MIP level given, use level 0. + TIntermTyped* queryLod = mipQuery ? argAggregate->getSequence()[1]->getAsTyped() : + intermediate.addConstantUnion(0, loc, true); + sizeQuery->getSequence().push_back(queryLod); + } + + sizeQuery->setType(TType(EbtUint, EvqTemporary, numDims)); + sizeQuery->setLoc(loc); + + // Return value from size query + TVariable* tempArg = makeInternalVariable("sizeQueryTemp", sizeQuery->getType()); + tempArg->getWritableType().getQualifier().makeTemporary(); + TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, + intermediate.addSymbol(*tempArg, loc), + sizeQuery, loc); + + // Compound statement for assigning outputs + TIntermAggregate* compoundStatement = intermediate.makeAggregate(sizeQueryAssign, loc); + // Index of first output parameter + const int outParamBase = mipQuery ? 2 : 1; + + for (int compNum = 0; compNum < numDims; ++compNum) { + TIntermTyped* indexedOut = nullptr; + TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); + + if (numDims > 1) { + TIntermTyped* component = intermediate.addConstantUnion(compNum, loc, true); + indexedOut = intermediate.addIndex(EOpIndexDirect, sizeQueryReturn, component, loc); + indexedOut->setType(TType(EbtUint, EvqTemporary, 1)); + indexedOut->setLoc(loc); + } else { + indexedOut = sizeQueryReturn; + } + + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + compNum]->getAsTyped(); + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, indexedOut, loc); + + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + } + + // handle mip level parameter + if (mipQuery) { + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); + + TIntermAggregate* levelsQuery = new TIntermAggregate(EOpTextureQueryLevels); + levelsQuery->getSequence().push_back(argTex); + levelsQuery->setType(TType(EbtUint, EvqTemporary, 1)); + levelsQuery->setLoc(loc); + + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, levelsQuery, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + } + + // 2DMS formats query # samples, which needs a different query op + if (sampler.isMultiSample()) { + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); + + TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples); + samplesQuery->getSequence().push_back(argTex); + samplesQuery->setType(TType(EbtUint, EvqTemporary, 1)); + samplesQuery->setLoc(loc); + + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, samplesQuery, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + } + + compoundStatement->setOperator(EOpSequence); + compoundStatement->setLoc(loc); + compoundStatement->setType(TType(EbtVoid)); + + node = compoundStatement; + + break; + } + + case EOpMethodSampleCmp: // fall through... + case EOpMethodSampleCmpLevelZero: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argCmpVal = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + // Sampler argument should be a sampler. + if (argSamp->getType().getBasicType() != EbtSampler) { + error(loc, "expected: sampler type", "", ""); + return; + } + + // Sampler should be a SamplerComparisonState + if (! argSamp->getType().getSampler().isShadow()) { + error(loc, "expected: SamplerComparisonState", "", ""); + return; + } + + // optional offset value + if (argAggregate->getSequence().size() > 4) + argOffset = argAggregate->getSequence()[4]->getAsTyped(); + + const int coordDimWithCmpVal = argCoord->getType().getVectorSize() + 1; // +1 for cmp + + // AST wants comparison value as one of the texture coordinates + TOperator constructOp = EOpNull; + switch (coordDimWithCmpVal) { + // 1D can't happen: there's always at least 1 coordinate dimension + 1 cmp val + case 2: constructOp = EOpConstructVec2; break; + case 3: constructOp = EOpConstructVec3; break; + case 4: constructOp = EOpConstructVec4; break; + case 5: constructOp = EOpConstructVec4; break; // cubeArrayShadow, cmp value is separate arg. + default: assert(0); break; + } + + TIntermAggregate* coordWithCmp = new TIntermAggregate(constructOp); + coordWithCmp->getSequence().push_back(argCoord); + if (coordDimWithCmpVal != 5) // cube array shadow is special. + coordWithCmp->getSequence().push_back(argCmpVal); + coordWithCmp->setLoc(loc); + coordWithCmp->setType(TType(argCoord->getBasicType(), EvqTemporary, std::min(coordDimWithCmpVal, 4))); + + TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); + if (argOffset != nullptr) + textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLodOffset : EOpTextureOffset); + + // Create combined sampler & texture op + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(coordWithCmp); + + if (coordDimWithCmpVal == 5) // cube array shadow is special: cmp val follows coord. + txsample->getSequence().push_back(argCmpVal); + + // the LevelZero form uses 0 as an explicit LOD + if (op == EOpMethodSampleCmpLevelZero) + txsample->getSequence().push_back(intermediate.addConstantUnion(0.0, EbtFloat, loc, true)); + + // Add offset if present + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + + case EOpMethodLoad: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + TIntermTyped* lodComponent = nullptr; + TIntermTyped* coordSwizzle = nullptr; + + const TSampler& sampler = argTex->getType().getSampler(); + const bool isMS = sampler.isMultiSample(); + const bool isBuffer = sampler.dim == EsdBuffer; + const bool isImage = sampler.isImage(); + const TBasicType coordBaseType = argCoord->getType().getBasicType(); + + // Last component of coordinate is the mip level, for non-MS. we separate them here: + if (isMS || isBuffer || isImage) { + // MS, Buffer, and Image have no LOD + coordSwizzle = argCoord; + } else { + // Extract coordinate + int swizzleSize = argCoord->getType().getVectorSize() - (isMS ? 0 : 1); + TSwizzleSelectors coordFields; + for (int i = 0; i < swizzleSize; ++i) + coordFields.push_back(i); + TIntermTyped* coordIdx = intermediate.addSwizzle(coordFields, loc); + coordSwizzle = intermediate.addIndex(EOpVectorSwizzle, argCoord, coordIdx, loc); + coordSwizzle->setType(TType(coordBaseType, EvqTemporary, coordFields.size())); + + // Extract LOD + TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.size(), loc, true); + lodComponent = intermediate.addIndex(EOpIndexDirect, argCoord, lodIdx, loc); + lodComponent->setType(TType(coordBaseType, EvqTemporary, 1)); + } + + const int numArgs = (int)argAggregate->getSequence().size(); + const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); + + // Create texel fetch + const TOperator fetchOp = (isImage ? EOpImageLoad : + hasOffset ? EOpTextureFetchOffset : + EOpTextureFetch); + TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); + + // Build up the fetch + txfetch->getSequence().push_back(argTex); + txfetch->getSequence().push_back(coordSwizzle); + + if (isMS) { + // add 2DMS sample index + TIntermTyped* argSampleIdx = argAggregate->getSequence()[2]->getAsTyped(); + txfetch->getSequence().push_back(argSampleIdx); + } else if (isBuffer) { + // Nothing else to do for buffers. + } else if (isImage) { + // Nothing else to do for images. + } else { + // 2DMS and buffer have no LOD, but everything else does. + txfetch->getSequence().push_back(lodComponent); + } + + // Obtain offset arg, if there is one. + if (hasOffset) { + const int offsetPos = (isMS ? 3 : 2); + argOffset = argAggregate->getSequence()[offsetPos]->getAsTyped(); + txfetch->getSequence().push_back(argOffset); + } + + node = convertReturn(txfetch, sampler); + + break; + } + + case EOpMethodSampleLevel: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); + + const int numArgs = (int)argAggregate->getSequence().size(); + + if (numArgs == 5) // offset, if present + argOffset = argAggregate->getSequence()[4]->getAsTyped(); + + const TOperator textureOp = (argOffset == nullptr ? EOpTextureLod : EOpTextureLodOffset); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->getSequence().push_back(argLod); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + node = convertReturn(txsample, sampler); + + break; + } + + case EOpMethodGather: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + // Offset is optional + if (argAggregate->getSequence().size() > 3) + argOffset = argAggregate->getSequence()[3]->getAsTyped(); + + const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset); + TIntermAggregate* txgather = new TIntermAggregate(textureOp); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + txgather->getSequence().push_back(txcombine); + txgather->getSequence().push_back(argCoord); + // Offset if not given is implicitly channel 0 (red) + + if (argOffset != nullptr) + txgather->getSequence().push_back(argOffset); + + txgather->setType(node->getType()); + txgather->setLoc(loc); + node = txgather; + + break; + } + + case EOpMethodGatherRed: // fall through... + case EOpMethodGatherGreen: // ... + case EOpMethodGatherBlue: // ... + case EOpMethodGatherAlpha: // ... + case EOpMethodGatherCmpRed: // ... + case EOpMethodGatherCmpGreen: // ... + case EOpMethodGatherCmpBlue: // ... + case EOpMethodGatherCmpAlpha: // ... + { + int channel = 0; // the channel we are gathering + int cmpValues = 0; // 1 if there is a compare value (handier than a bool below) + + switch (op) { + case EOpMethodGatherCmpRed: cmpValues = 1; // fall through + case EOpMethodGatherRed: channel = 0; break; + case EOpMethodGatherCmpGreen: cmpValues = 1; // fall through + case EOpMethodGatherGreen: channel = 1; break; + case EOpMethodGatherCmpBlue: cmpValues = 1; // fall through + case EOpMethodGatherBlue: channel = 2; break; + case EOpMethodGatherCmpAlpha: cmpValues = 1; // fall through + case EOpMethodGatherAlpha: channel = 3; break; + default: assert(0); break; + } + + // For now, we have nothing to map the component-wise comparison forms + // to, because neither GLSL nor SPIR-V has such an opcode. Issue an + // unimplemented error instead. Most of the machinery is here if that + // should ever become available. However, red can be passed through + // to OpImageDrefGather. G/B/A cannot, because that opcode does not + // accept a component. + if (cmpValues != 0 && op != EOpMethodGatherCmpRed) { + error(loc, "unimplemented: component-level gather compare", "", ""); + return; + } + + int arg = 0; + + TIntermTyped* argTex = argAggregate->getSequence()[arg++]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[arg++]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[arg++]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + TIntermTyped* argOffsets[4] = { nullptr, nullptr, nullptr, nullptr }; + // TIntermTyped* argStatus = nullptr; // TODO: residency + TIntermTyped* argCmp = nullptr; + + const TSamplerDim dim = argTex->getType().getSampler().dim; + + const int argSize = (int)argAggregate->getSequence().size(); + bool hasStatus = (argSize == (5+cmpValues) || argSize == (8+cmpValues)); + bool hasOffset1 = false; + bool hasOffset4 = false; + + // Sampler argument should be a sampler. + if (argSamp->getType().getBasicType() != EbtSampler) { + error(loc, "expected: sampler type", "", ""); + return; + } + + // Cmp forms require SamplerComparisonState + if (cmpValues > 0 && ! argSamp->getType().getSampler().isShadow()) { + error(loc, "expected: SamplerComparisonState", "", ""); + return; + } + + // Only 2D forms can have offsets. Discover if we have 0, 1 or 4 offsets. + if (dim == Esd2D) { + hasOffset1 = (argSize == (4+cmpValues) || argSize == (5+cmpValues)); + hasOffset4 = (argSize == (7+cmpValues) || argSize == (8+cmpValues)); + } + + assert(!(hasOffset1 && hasOffset4)); + + TOperator textureOp = EOpTextureGather; + + // Compare forms have compare value + if (cmpValues != 0) + argCmp = argOffset = argAggregate->getSequence()[arg++]->getAsTyped(); + + // Some forms have single offset + if (hasOffset1) { + textureOp = EOpTextureGatherOffset; // single offset form + argOffset = argAggregate->getSequence()[arg++]->getAsTyped(); + } + + // Some forms have 4 gather offsets + if (hasOffset4) { + textureOp = EOpTextureGatherOffsets; // note plural, for 4 offset form + for (int offsetNum = 0; offsetNum < 4; ++offsetNum) + argOffsets[offsetNum] = argAggregate->getSequence()[arg++]->getAsTyped(); + } + + // Residency status + if (hasStatus) { + // argStatus = argAggregate->getSequence()[arg++]->getAsTyped(); + error(loc, "unimplemented: residency status", "", ""); + return; + } + + TIntermAggregate* txgather = new TIntermAggregate(textureOp); + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermTyped* argChannel = intermediate.addConstantUnion(channel, loc, true); + + txgather->getSequence().push_back(txcombine); + txgather->getSequence().push_back(argCoord); + + // AST wants an array of 4 offsets, where HLSL has separate args. Here + // we construct an array from the separate args. + if (hasOffset4) { + TType arrayType(EbtInt, EvqTemporary, 2); + TArraySizes* arraySizes = new TArraySizes; + arraySizes->addInnerSize(4); + arrayType.transferArraySizes(arraySizes); + + TIntermAggregate* initList = new TIntermAggregate(EOpNull); + + for (int offsetNum = 0; offsetNum < 4; ++offsetNum) + initList->getSequence().push_back(argOffsets[offsetNum]); + + argOffset = addConstructor(loc, initList, arrayType); + } + + // Add comparison value if we have one + if (argCmp != nullptr) + txgather->getSequence().push_back(argCmp); + + // Add offset (either 1, or an array of 4) if we have one + if (argOffset != nullptr) + txgather->getSequence().push_back(argOffset); + + // Add channel value if the sampler is not shadow + if (! argSamp->getType().getSampler().isShadow()) + txgather->getSequence().push_back(argChannel); + + txgather->setType(node->getType()); + txgather->setLoc(loc); + node = txgather; + + break; + } + + case EOpMethodCalculateLevelOfDetail: + case EOpMethodCalculateLevelOfDetailUnclamped: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermAggregate* txquerylod = new TIntermAggregate(EOpTextureQueryLod); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + txquerylod->getSequence().push_back(txcombine); + txquerylod->getSequence().push_back(argCoord); + + TIntermTyped* lodComponent = intermediate.addConstantUnion(0, loc, true); + TIntermTyped* lodComponentIdx = intermediate.addIndex(EOpIndexDirect, txquerylod, lodComponent, loc); + lodComponentIdx->setType(TType(EbtFloat, EvqTemporary, 1)); + + node = lodComponentIdx; + + // We cannot currently obtain the unclamped LOD + if (op == EOpMethodCalculateLevelOfDetailUnclamped) + error(loc, "unimplemented: CalculateLevelOfDetailUnclamped", "", ""); + + break; + } + + case EOpMethodGetSamplePosition: + { + // TODO: this entire decomposition exists because there is not yet a way to query + // the sample position directly through SPIR-V. Instead, we return fixed sample + // positions for common cases. *** If the sample positions are set differently, + // this will be wrong. *** + + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSampIdx = argAggregate->getSequence()[1]->getAsTyped(); + + TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples); + samplesQuery->getSequence().push_back(argTex); + samplesQuery->setType(TType(EbtUint, EvqTemporary, 1)); + samplesQuery->setLoc(loc); + + TIntermAggregate* compoundStatement = nullptr; + + TVariable* outSampleCount = makeInternalVariable("@sampleCount", TType(EbtUint)); + outSampleCount->getWritableType().getQualifier().makeTemporary(); + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, intermediate.addSymbol(*outSampleCount, loc), + samplesQuery, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + + TIntermTyped* idxtest[4]; + + // Create tests against 2, 4, 8, and 16 sample values + int count = 0; + for (int val = 2; val <= 16; val *= 2) + idxtest[count++] = + intermediate.addBinaryNode(EOpEqual, + intermediate.addSymbol(*outSampleCount, loc), + intermediate.addConstantUnion(val, loc), + loc, TType(EbtBool)); + + const TOperator idxOp = (argSampIdx->getQualifier().storage == EvqConst) ? EOpIndexDirect : EOpIndexIndirect; + + // Create index ops into position arrays given sample index. + // TODO: should it be clamped? + TIntermTyped* index[4]; + count = 0; + for (int val = 2; val <= 16; val *= 2) { + index[count] = intermediate.addIndex(idxOp, getSamplePosArray(val), argSampIdx, loc); + index[count++]->setType(TType(EbtFloat, EvqTemporary, 2)); + } + + // Create expression as: + // (sampleCount == 2) ? pos2[idx] : + // (sampleCount == 4) ? pos4[idx] : + // (sampleCount == 8) ? pos8[idx] : + // (sampleCount == 16) ? pos16[idx] : float2(0,0); + TIntermTyped* test = + intermediate.addSelection(idxtest[0], index[0], + intermediate.addSelection(idxtest[1], index[1], + intermediate.addSelection(idxtest[2], index[2], + intermediate.addSelection(idxtest[3], index[3], + getSamplePosArray(1), loc), loc), loc), loc); + + compoundStatement = intermediate.growAggregate(compoundStatement, test); + compoundStatement->setOperator(EOpSequence); + compoundStatement->setLoc(loc); + compoundStatement->setType(TType(EbtFloat, EvqTemporary, 2)); + + node = compoundStatement; + + break; + } + + case EOpSubpassLoad: + { + const TIntermTyped* argSubpass = + argAggregate ? argAggregate->getSequence()[0]->getAsTyped() : + arguments->getAsTyped(); + + const TSampler& sampler = argSubpass->getType().getSampler(); + + // subpass load: the multisample form is overloaded. Here, we convert that to + // the EOpSubpassLoadMS opcode. + if (argAggregate != nullptr && argAggregate->getSequence().size() > 1) + node->getAsOperator()->setOp(EOpSubpassLoadMS); + + node = convertReturn(node, sampler); + + break; + } + + + default: + break; // most pass through unchanged + } +} + +// +// Decompose geometry shader methods +// +void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (node == nullptr || !node->getAsOperator()) + return; + + const TOperator op = node->getAsOperator()->getOp(); + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + + switch (op) { + case EOpMethodAppend: + if (argAggregate) { + // Don't emit these for non-GS stage, since we won't have the gsStreamOutput symbol. + if (language != EShLangGeometry) { + node = nullptr; + return; + } + + TIntermAggregate* sequence = nullptr; + TIntermAggregate* emit = new TIntermAggregate(EOpEmitVertex); + + emit->setLoc(loc); + emit->setType(TType(EbtVoid)); + + TIntermTyped* data = argAggregate->getSequence()[1]->getAsTyped(); + + // This will be patched in finalization during finalizeAppendMethods() + sequence = intermediate.growAggregate(sequence, data, loc); + sequence = intermediate.growAggregate(sequence, emit); + + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(TType(EbtVoid)); + + gsAppends.push_back({sequence, loc}); + + node = sequence; + } + break; + + case EOpMethodRestartStrip: + { + // Don't emit these for non-GS stage, since we won't have the gsStreamOutput symbol. + if (language != EShLangGeometry) { + node = nullptr; + return; + } + + TIntermAggregate* cut = new TIntermAggregate(EOpEndPrimitive); + cut->setLoc(loc); + cut->setType(TType(EbtVoid)); + node = cut; + } + break; + + default: + break; // most pass through unchanged + } +} + +// +// Optionally decompose intrinsics to AST opcodes. +// +void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + // Helper to find image data for image atomics: + // OpImageLoad(image[idx]) + // We take the image load apart and add its params to the atomic op aggregate node + const auto imageAtomicParams = [this, &loc, &node](TIntermAggregate* atomic, TIntermTyped* load) { + TIntermAggregate* loadOp = load->getAsAggregate(); + if (loadOp == nullptr) { + error(loc, "unknown image type in atomic operation", "", ""); + node = nullptr; + return; + } + + atomic->getSequence().push_back(loadOp->getSequence()[0]); + atomic->getSequence().push_back(loadOp->getSequence()[1]); + }; + + // Return true if this is an imageLoad, which we will change to an image atomic. + const auto isImageParam = [](TIntermTyped* image) -> bool { + TIntermAggregate* imageAggregate = image->getAsAggregate(); + return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad; + }; + + const auto lookupBuiltinVariable = [&](const char* name, TBuiltInVariable builtin, TType& type) -> TIntermTyped* { + TSymbol* symbol = symbolTable.find(name); + if (nullptr == symbol) { + type.getQualifier().builtIn = builtin; + + TVariable* variable = new TVariable(new TString(name), type); + + symbolTable.insert(*variable); + + symbol = symbolTable.find(name); + assert(symbol && "Inserted symbol could not be found!"); + } + + return intermediate.addSymbol(*(symbol->getAsVariable()), loc); + }; + + // HLSL intrinsics can be pass through to native AST opcodes, or decomposed here to existing AST + // opcodes for compatibility with existing software stacks. + static const bool decomposeHlslIntrinsics = true; + + if (!decomposeHlslIntrinsics || !node || !node->getAsOperator()) + return; + + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + TIntermUnary* fnUnary = node->getAsUnaryNode(); + const TOperator op = node->getAsOperator()->getOp(); + + switch (op) { + case EOpGenMul: + { + // mul(a,b) -> MatrixTimesMatrix, MatrixTimesVector, MatrixTimesScalar, VectorTimesScalar, Dot, Mul + // Since we are treating HLSL rows like GLSL columns (the first matrix indirection), + // we must reverse the operand order here. Hence, arg0 gets sequence[1], etc. + TIntermTyped* arg0 = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[0]->getAsTyped(); + + if (arg0->isVector() && arg1->isVector()) { // vec * vec + node->getAsAggregate()->setOperator(EOpDot); + } else { + node = handleBinaryMath(loc, "mul", EOpMul, arg0, arg1); + } + + break; + } + + case EOpRcp: + { + // rcp(a) -> 1 / a + TIntermTyped* arg0 = fnUnary->getOperand(); + TBasicType type0 = arg0->getBasicType(); + TIntermTyped* one = intermediate.addConstantUnion(1, type0, loc, true); + node = handleBinaryMath(loc, "rcp", EOpDiv, one, arg0); + + break; + } + + case EOpAny: // fall through + case EOpAll: + { + TIntermTyped* typedArg = arguments->getAsTyped(); + + // HLSL allows float/etc types here, and the SPIR-V opcode requires a bool. + // We'll convert here. Note that for efficiency, we could add a smarter + // decomposition for some type cases, e.g, maybe by decomposing a dot product. + if (typedArg->getType().getBasicType() != EbtBool) { + const TType boolType(EbtBool, EvqTemporary, + typedArg->getVectorSize(), + typedArg->getMatrixCols(), + typedArg->getMatrixRows(), + typedArg->isVector()); + + typedArg = intermediate.addConversion(EOpConstructBool, boolType, typedArg); + node->getAsUnaryNode()->setOperand(typedArg); + } + + break; + } + + case EOpSaturate: + { + // saturate(a) -> clamp(a,0,1) + TIntermTyped* arg0 = fnUnary->getOperand(); + TBasicType type0 = arg0->getBasicType(); + TIntermAggregate* clamp = new TIntermAggregate(EOpClamp); + + clamp->getSequence().push_back(arg0); + clamp->getSequence().push_back(intermediate.addConstantUnion(0, type0, loc, true)); + clamp->getSequence().push_back(intermediate.addConstantUnion(1, type0, loc, true)); + clamp->setLoc(loc); + clamp->setType(node->getType()); + clamp->getWritableType().getQualifier().makeTemporary(); + node = clamp; + + break; + } + + case EOpSinCos: + { + // sincos(a,b,c) -> b = sin(a), c = cos(a) + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermTyped* sinStatement = handleUnaryMath(loc, "sin", EOpSin, arg0); + TIntermTyped* cosStatement = handleUnaryMath(loc, "cos", EOpCos, arg0); + TIntermTyped* sinAssign = intermediate.addAssign(EOpAssign, arg1, sinStatement, loc); + TIntermTyped* cosAssign = intermediate.addAssign(EOpAssign, arg2, cosStatement, loc); + + TIntermAggregate* compoundStatement = intermediate.makeAggregate(sinAssign, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, cosAssign); + compoundStatement->setOperator(EOpSequence); + compoundStatement->setLoc(loc); + compoundStatement->setType(TType(EbtVoid)); + + node = compoundStatement; + + break; + } + + case EOpClip: + { + // clip(a) -> if (any(a<0)) discard; + TIntermTyped* arg0 = fnUnary->getOperand(); + TBasicType type0 = arg0->getBasicType(); + TIntermTyped* compareNode = nullptr; + + // For non-scalars: per experiment with FXC compiler, discard if any component < 0. + if (!arg0->isScalar()) { + // component-wise compare: a < 0 + TIntermAggregate* less = new TIntermAggregate(EOpLessThan); + less->getSequence().push_back(arg0); + less->setLoc(loc); + + // make vec or mat of bool matching dimensions of input + less->setType(TType(EbtBool, EvqTemporary, + arg0->getType().getVectorSize(), + arg0->getType().getMatrixCols(), + arg0->getType().getMatrixRows(), + arg0->getType().isVector())); + + // calculate # of components for comparison const + const int constComponentCount = + std::max(arg0->getType().getVectorSize(), 1) * + std::max(arg0->getType().getMatrixCols(), 1) * + std::max(arg0->getType().getMatrixRows(), 1); + + TConstUnion zero; + if (arg0->getType().isIntegerDomain()) + zero.setDConst(0); + else + zero.setDConst(0.0); + TConstUnionArray zeros(constComponentCount, zero); + + less->getSequence().push_back(intermediate.addConstantUnion(zeros, arg0->getType(), loc, true)); + + compareNode = intermediate.addBuiltInFunctionCall(loc, EOpAny, true, less, TType(EbtBool)); + } else { + TIntermTyped* zero; + if (arg0->getType().isIntegerDomain()) + zero = intermediate.addConstantUnion(0, loc, true); + else + zero = intermediate.addConstantUnion(0.0, type0, loc, true); + compareNode = handleBinaryMath(loc, "clip", EOpLessThan, arg0, zero); + } + + TIntermBranch* killNode = intermediate.addBranch(EOpKill, loc); + + node = new TIntermSelection(compareNode, killNode, nullptr); + node->setLoc(loc); + + break; + } + + case EOpLog10: + { + // log10(a) -> log2(a) * 0.301029995663981 (== 1/log2(10)) + TIntermTyped* arg0 = fnUnary->getOperand(); + TIntermTyped* log2 = handleUnaryMath(loc, "log2", EOpLog2, arg0); + TIntermTyped* base = intermediate.addConstantUnion(0.301029995663981f, EbtFloat, loc, true); + + node = handleBinaryMath(loc, "mul", EOpMul, log2, base); + + break; + } + + case EOpDst: + { + // dest.x = 1; + // dest.y = src0.y * src1.y; + // dest.z = src0.z; + // dest.w = src1.w; + + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + + TIntermTyped* y = intermediate.addConstantUnion(1, loc, true); + TIntermTyped* z = intermediate.addConstantUnion(2, loc, true); + TIntermTyped* w = intermediate.addConstantUnion(3, loc, true); + + TIntermTyped* src0y = intermediate.addIndex(EOpIndexDirect, arg0, y, loc); + TIntermTyped* src1y = intermediate.addIndex(EOpIndexDirect, arg1, y, loc); + TIntermTyped* src0z = intermediate.addIndex(EOpIndexDirect, arg0, z, loc); + TIntermTyped* src1w = intermediate.addIndex(EOpIndexDirect, arg1, w, loc); + + TIntermAggregate* dst = new TIntermAggregate(EOpConstructVec4); + + dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true)); + dst->getSequence().push_back(handleBinaryMath(loc, "mul", EOpMul, src0y, src1y)); + dst->getSequence().push_back(src0z); + dst->getSequence().push_back(src1w); + dst->setType(TType(EbtFloat, EvqTemporary, 4)); + dst->setLoc(loc); + node = dst; + + break; + } + + case EOpInterlockedAdd: // optional last argument (if present) is assigned from return value + case EOpInterlockedMin: // ... + case EOpInterlockedMax: // ... + case EOpInterlockedAnd: // ... + case EOpInterlockedOr: // ... + case EOpInterlockedXor: // ... + case EOpInterlockedExchange: // always has output arg + { + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // value + TIntermTyped* arg2 = nullptr; + + if (argAggregate->getSequence().size() > 2) + arg2 = argAggregate->getSequence()[2]->getAsTyped(); + + const bool isImage = isImageParam(arg0); + const TOperator atomicOp = mapAtomicOp(loc, op, isImage); + TIntermAggregate* atomic = new TIntermAggregate(atomicOp); + atomic->setType(arg0->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + atomic->setLoc(loc); + + if (isImage) { + // orig_value = imageAtomicOp(image, loc, data) + imageAtomicParams(atomic, arg0); + atomic->getSequence().push_back(arg1); + + if (argAggregate->getSequence().size() > 2) { + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + node = atomic; // no assignment needed, as there was no out var. + } + } else { + // Normal memory variable: + // arg0 = mem, arg1 = data, arg2(optional,out) = orig_value + if (argAggregate->getSequence().size() > 2) { + // optional output param is present. return value goes to arg2. + atomic->getSequence().push_back(arg0); + atomic->getSequence().push_back(arg1); + + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + // Set the matching operator. Since output is absent, this is all we need to do. + node->getAsAggregate()->setOperator(atomicOp); + node->setType(atomic->getType()); + } + } + + break; + } + + case EOpInterlockedCompareExchange: + { + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // cmp + TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); // value + TIntermTyped* arg3 = argAggregate->getSequence()[3]->getAsTyped(); // orig + + const bool isImage = isImageParam(arg0); + TIntermAggregate* atomic = new TIntermAggregate(mapAtomicOp(loc, op, isImage)); + atomic->setLoc(loc); + atomic->setType(arg2->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + + if (isImage) { + imageAtomicParams(atomic, arg0); + } else { + atomic->getSequence().push_back(arg0); + } + + atomic->getSequence().push_back(arg1); + atomic->getSequence().push_back(arg2); + node = intermediate.addAssign(EOpAssign, arg3, atomic, loc); + + break; + } + + case EOpEvaluateAttributeSnapped: + { + // SPIR-V InterpolateAtOffset uses float vec2 offset in pixels + // HLSL uses int2 offset on a 16x16 grid in [-8..7] on x & y: + // iU = (iU<<28)>>28 + // fU = ((float)iU)/16 + // Targets might handle this natively, in which case they can disable + // decompositions. + + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // value + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // offset + + TIntermTyped* i28 = intermediate.addConstantUnion(28, loc, true); + TIntermTyped* iU = handleBinaryMath(loc, ">>", EOpRightShift, + handleBinaryMath(loc, "<<", EOpLeftShift, arg1, i28), + i28); + + TIntermTyped* recip16 = intermediate.addConstantUnion((1.0/16.0), EbtFloat, loc, true); + TIntermTyped* floatOffset = handleBinaryMath(loc, "mul", EOpMul, + intermediate.addConversion(EOpConstructFloat, + TType(EbtFloat, EvqTemporary, 2), iU), + recip16); + + TIntermAggregate* interp = new TIntermAggregate(EOpInterpolateAtOffset); + interp->getSequence().push_back(arg0); + interp->getSequence().push_back(floatOffset); + interp->setLoc(loc); + interp->setType(arg0->getType()); + interp->getWritableType().getQualifier().makeTemporary(); + + node = interp; + + break; + } + + case EOpLit: + { + TIntermTyped* n_dot_l = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* n_dot_h = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* m = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermAggregate* dst = new TIntermAggregate(EOpConstructVec4); + + // Ambient + dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true)); + + // Diffuse: + TIntermTyped* zero = intermediate.addConstantUnion(0.0, EbtFloat, loc, true); + TIntermAggregate* diffuse = new TIntermAggregate(EOpMax); + diffuse->getSequence().push_back(n_dot_l); + diffuse->getSequence().push_back(zero); + diffuse->setLoc(loc); + diffuse->setType(TType(EbtFloat)); + dst->getSequence().push_back(diffuse); + + // Specular: + TIntermAggregate* min_ndot = new TIntermAggregate(EOpMin); + min_ndot->getSequence().push_back(n_dot_l); + min_ndot->getSequence().push_back(n_dot_h); + min_ndot->setLoc(loc); + min_ndot->setType(TType(EbtFloat)); + + TIntermTyped* compare = handleBinaryMath(loc, "<", EOpLessThan, min_ndot, zero); + TIntermTyped* n_dot_h_m = handleBinaryMath(loc, "mul", EOpMul, n_dot_h, m); // n_dot_h * m + + dst->getSequence().push_back(intermediate.addSelection(compare, zero, n_dot_h_m, loc)); + + // One: + dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true)); + + dst->setLoc(loc); + dst->setType(TType(EbtFloat, EvqTemporary, 4)); + node = dst; + break; + } + + case 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: + { + // input uvecN with low 16 bits of each component holding a float16. convert to float32. + TIntermTyped* argValue = node->getAsUnaryNode()->getOperand(); + TIntermTyped* zero = intermediate.addConstantUnion(0, loc, true); + const int vecSize = argValue->getType().getVectorSize(); + + TOperator constructOp = EOpNull; + switch (vecSize) { + case 1: constructOp = EOpNull; break; // direct use, no construct needed + case 2: constructOp = EOpConstructVec2; break; + case 3: constructOp = EOpConstructVec3; break; + case 4: constructOp = EOpConstructVec4; break; + default: assert(0); break; + } + + // For scalar case, we don't need to construct another type. + TIntermAggregate* result = (vecSize > 1) ? new TIntermAggregate(constructOp) : nullptr; + + if (result) { + result->setType(TType(EbtFloat, EvqTemporary, vecSize)); + result->setLoc(loc); + } + + for (int idx = 0; idx < vecSize; ++idx) { + TIntermTyped* idxConst = intermediate.addConstantUnion(idx, loc, true); + TIntermTyped* component = argValue->getType().isVector() ? + intermediate.addIndex(EOpIndexDirect, argValue, idxConst, loc) : argValue; + + if (component != argValue) + component->setType(TType(argValue->getBasicType(), EvqTemporary)); + + TIntermTyped* unpackOp = new TIntermUnary(EOpUnpackHalf2x16); + unpackOp->setType(TType(EbtFloat, EvqTemporary, 2)); + unpackOp->getAsUnaryNode()->setOperand(component); + unpackOp->setLoc(loc); + + TIntermTyped* lowOrder = intermediate.addIndex(EOpIndexDirect, unpackOp, zero, loc); + + if (result != nullptr) { + result->getSequence().push_back(lowOrder); + node = result; + } else { + node = lowOrder; + } + } + + break; + } + + case EOpF32tof16: + { + // input floatN converted to 16 bit float in low order bits of each component of uintN + TIntermTyped* argValue = node->getAsUnaryNode()->getOperand(); + + TIntermTyped* zero = intermediate.addConstantUnion(0.0, EbtFloat, loc, true); + const int vecSize = argValue->getType().getVectorSize(); + + TOperator constructOp = EOpNull; + switch (vecSize) { + case 1: constructOp = EOpNull; break; // direct use, no construct needed + case 2: constructOp = EOpConstructUVec2; break; + case 3: constructOp = EOpConstructUVec3; break; + case 4: constructOp = EOpConstructUVec4; break; + default: assert(0); break; + } + + // For scalar case, we don't need to construct another type. + TIntermAggregate* result = (vecSize > 1) ? new TIntermAggregate(constructOp) : nullptr; + + if (result) { + result->setType(TType(EbtUint, EvqTemporary, vecSize)); + result->setLoc(loc); + } + + for (int idx = 0; idx < vecSize; ++idx) { + TIntermTyped* idxConst = intermediate.addConstantUnion(idx, loc, true); + TIntermTyped* component = argValue->getType().isVector() ? + intermediate.addIndex(EOpIndexDirect, argValue, idxConst, loc) : argValue; + + if (component != argValue) + component->setType(TType(argValue->getBasicType(), EvqTemporary)); + + TIntermAggregate* vec2ComponentAndZero = new TIntermAggregate(EOpConstructVec2); + vec2ComponentAndZero->getSequence().push_back(component); + vec2ComponentAndZero->getSequence().push_back(zero); + vec2ComponentAndZero->setType(TType(EbtFloat, EvqTemporary, 2)); + vec2ComponentAndZero->setLoc(loc); + + TIntermTyped* packOp = new TIntermUnary(EOpPackHalf2x16); + packOp->getAsUnaryNode()->setOperand(vec2ComponentAndZero); + packOp->setLoc(loc); + packOp->setType(TType(EbtUint, EvqTemporary)); + + if (result != nullptr) { + result->getSequence().push_back(packOp); + node = result; + } else { + node = packOp; + } + } + + break; + } + + case EOpD3DCOLORtoUBYTE4: + { + // ivec4 ( x.zyxw * 255.001953 ); + TIntermTyped* arg0 = node->getAsUnaryNode()->getOperand(); + TSwizzleSelectors selectors; + selectors.push_back(2); + selectors.push_back(1); + selectors.push_back(0); + selectors.push_back(3); + TIntermTyped* swizzleIdx = intermediate.addSwizzle(selectors, loc); + TIntermTyped* swizzled = intermediate.addIndex(EOpVectorSwizzle, arg0, swizzleIdx, loc); + swizzled->setType(arg0->getType()); + swizzled->getWritableType().getQualifier().makeTemporary(); + + TIntermTyped* conversion = intermediate.addConstantUnion(255.001953f, EbtFloat, loc, true); + TIntermTyped* rangeConverted = handleBinaryMath(loc, "mul", EOpMul, conversion, swizzled); + rangeConverted->setType(arg0->getType()); + rangeConverted->getWritableType().getQualifier().makeTemporary(); + + node = intermediate.addConversion(EOpConstructInt, TType(EbtInt, EvqTemporary, 4), rangeConverted); + node->setLoc(loc); + node->setType(TType(EbtInt, EvqTemporary, 4)); + break; + } + + case EOpIsFinite: + { + // Since OPIsFinite in SPIR-V is only supported with the Kernel capability, we translate + // it to !isnan && !isinf + + TIntermTyped* arg0 = node->getAsUnaryNode()->getOperand(); + + // We'll make a temporary in case the RHS is cmoplex + TVariable* tempArg = makeInternalVariable("@finitetmp", arg0->getType()); + tempArg->getWritableType().getQualifier().makeTemporary(); + + TIntermTyped* tmpArgAssign = intermediate.addAssign(EOpAssign, + intermediate.addSymbol(*tempArg, loc), + arg0, loc); + + TIntermAggregate* compoundStatement = intermediate.makeAggregate(tmpArgAssign, loc); + + const TType boolType(EbtBool, EvqTemporary, arg0->getVectorSize(), arg0->getMatrixCols(), + arg0->getMatrixRows()); + + TIntermTyped* isnan = handleUnaryMath(loc, "isnan", EOpIsNan, intermediate.addSymbol(*tempArg, loc)); + isnan->setType(boolType); + + TIntermTyped* notnan = handleUnaryMath(loc, "!", EOpLogicalNot, isnan); + notnan->setType(boolType); + + TIntermTyped* isinf = handleUnaryMath(loc, "isinf", EOpIsInf, intermediate.addSymbol(*tempArg, loc)); + isinf->setType(boolType); + + TIntermTyped* notinf = handleUnaryMath(loc, "!", EOpLogicalNot, isinf); + notinf->setType(boolType); + + TIntermTyped* andNode = handleBinaryMath(loc, "and", EOpLogicalAnd, notnan, notinf); + andNode->setType(boolType); + + compoundStatement = intermediate.growAggregate(compoundStatement, andNode); + compoundStatement->setOperator(EOpSequence); + compoundStatement->setLoc(loc); + compoundStatement->setType(boolType); + + node = compoundStatement; + + break; + } + case EOpWaveGetLaneCount: + { + // Mapped to gl_SubgroupSize builtin (We preprend @ to the symbol + // so that it inhabits the symbol table, but has a user-invalid name + // in-case some source HLSL defined the symbol also). + TType type(EbtUint, EvqVaryingIn); + node = lookupBuiltinVariable("@gl_SubgroupSize", EbvSubgroupSize2, type); + break; + } + case EOpWaveGetLaneIndex: + { + // Mapped to gl_SubgroupInvocationID builtin (We preprend @ to the + // symbol so that it inhabits the symbol table, but has a + // user-invalid name in-case some source HLSL defined the symbol + // also). + TType type(EbtUint, EvqVaryingIn); + node = lookupBuiltinVariable("@gl_SubgroupInvocationID", EbvSubgroupInvocation2, type); + break; + } + case EOpWaveActiveCountBits: + { + // Mapped to subgroupBallotBitCount(subgroupBallot()) builtin + + // uvec4 type. + TType uvec4Type(EbtUint, EvqTemporary, 4); + + // Get the uvec4 return from subgroupBallot(). + TIntermTyped* res = intermediate.addBuiltInFunctionCall(loc, + EOpSubgroupBallot, true, arguments, uvec4Type); + + // uint type. + TType uintType(EbtUint, EvqTemporary); + + node = intermediate.addBuiltInFunctionCall(loc, + EOpSubgroupBallotBitCount, true, res, uintType); + + break; + } + case EOpWavePrefixCountBits: + { + // Mapped to subgroupBallotInclusiveBitCount(subgroupBallot()) + // builtin + + // uvec4 type. + TType uvec4Type(EbtUint, EvqTemporary, 4); + + // Get the uvec4 return from subgroupBallot(). + TIntermTyped* res = intermediate.addBuiltInFunctionCall(loc, + EOpSubgroupBallot, true, arguments, uvec4Type); + + // uint type. + TType uintType(EbtUint, EvqTemporary); + + node = intermediate.addBuiltInFunctionCall(loc, + EOpSubgroupBallotInclusiveBitCount, true, res, uintType); + + break; + } + + default: + break; // most pass through unchanged + } +} + +// +// Handle seeing function call syntax in the grammar, which could be any of +// - .length() method +// - constructor +// - a call to a built-in function mapped to an operator +// - a call to a built-in function that will remain a function call (e.g., texturing) +// - user function +// - subroutine call (not implemented yet) +// +TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction* function, TIntermTyped* arguments) +{ + TIntermTyped* result = nullptr; + + TOperator op = function->getBuiltInOp(); + if (op != EOpNull) { + // + // Then this should be a constructor. + // Don't go through the symbol table for constructors. + // Their parameters will be verified algorithmically. + // + TType type(EbtVoid); // use this to get the type back + if (! constructorError(loc, arguments, *function, op, type)) { + // + // It's a constructor, of type 'type'. + // + result = handleConstructor(loc, arguments, type); + if (result == nullptr) { + error(loc, "cannot construct with these arguments", type.getCompleteString().c_str(), ""); + return nullptr; + } + } + } else { + // + // Find it in the symbol table. + // + const TFunction* fnCandidate = nullptr; + bool builtIn = false; + int thisDepth = 0; + + // For mat mul, the situation is unusual: we have to compare vector sizes to mat row or col sizes, + // and clamp the opposite arg. Since that's complex, we farm it off to a separate method. + // It doesn't naturally fall out of processing an argument at a time in isolation. + if (function->getName() == "mul") + addGenMulArgumentConversion(loc, *function, arguments); + + TIntermAggregate* aggregate = arguments ? arguments->getAsAggregate() : nullptr; + + // TODO: this needs improvement: there's no way at present to look up a signature in + // the symbol table for an arbitrary type. This is a temporary hack until that ability exists. + // It will have false positives, since it doesn't check arg counts or types. + if (arguments) { + // Check if first argument is struct buffer type. It may be an aggregate or a symbol, so we + // look for either case. + + TIntermTyped* arg0 = nullptr; + + if (aggregate && aggregate->getSequence().size() > 0) + arg0 = aggregate->getSequence()[0]->getAsTyped(); + else if (arguments->getAsSymbolNode()) + arg0 = arguments->getAsSymbolNode(); + + if (arg0 != nullptr && isStructBufferType(arg0->getType())) { + static const int methodPrefixSize = sizeof(BUILTIN_PREFIX)-1; + + if (function->getName().length() > methodPrefixSize && + isStructBufferMethod(function->getName().substr(methodPrefixSize))) { + const TString mangle = function->getName() + "("; + TSymbol* symbol = symbolTable.find(mangle, &builtIn); + + if (symbol) + fnCandidate = symbol->getAsFunction(); + } + } + } + + if (fnCandidate == nullptr) + fnCandidate = findFunction(loc, *function, builtIn, thisDepth, arguments); + + if (fnCandidate) { + // This is a declared function that might map to + // - a built-in operator, + // - a built-in function not mapped to an operator, or + // - a user function. + + // Error check for a function requiring specific extensions present. + if (builtIn && fnCandidate->getNumExtensions()) + requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), + fnCandidate->getName().c_str()); + + // turn an implicit member-function resolution into an explicit call + TString callerName; + if (thisDepth == 0) + callerName = fnCandidate->getMangledName(); + else { + // get the explicit (full) name of the function + callerName = currentTypePrefix[currentTypePrefix.size() - thisDepth]; + callerName += fnCandidate->getMangledName(); + // insert the implicit calling argument + pushFrontArguments(intermediate.addSymbol(*getImplicitThis(thisDepth)), arguments); + } + + // Convert 'in' arguments, so that types match. + // However, skip those that need expansion, that is covered next. + if (arguments) + addInputArgumentConversions(*fnCandidate, arguments); + + // Expand arguments. Some arguments must physically expand to a different set + // than what the shader declared and passes. + if (arguments && !builtIn) + expandArguments(loc, *fnCandidate, arguments); + + // Expansion may have changed the form of arguments + aggregate = arguments ? arguments->getAsAggregate() : nullptr; + + op = fnCandidate->getBuiltInOp(); + if (builtIn && op != EOpNull) { + // A function call mapped to a built-in operation. + result = intermediate.addBuiltInFunctionCall(loc, op, fnCandidate->getParamCount() == 1, arguments, + fnCandidate->getType()); + if (result == nullptr) { + error(arguments->getLoc(), " wrong operand type", "Internal Error", + "built in unary operator function. Type: %s", + static_cast(arguments)->getCompleteString().c_str()); + } else if (result->getAsOperator()) { + builtInOpCheck(loc, *fnCandidate, *result->getAsOperator()); + } + } else { + // This is a function call not mapped to built-in operator. + // It could still be a built-in function, but only if PureOperatorBuiltins == false. + result = intermediate.setAggregateOperator(arguments, EOpFunctionCall, fnCandidate->getType(), loc); + TIntermAggregate* call = result->getAsAggregate(); + call->setName(callerName); + + // this is how we know whether the given function is a built-in function or a user-defined function + // if builtIn == false, it's a userDefined -> could be an overloaded built-in function also + // if builtIn == true, it's definitely a built-in function with EOpNull + if (! builtIn) { + call->setUserDefined(); + intermediate.addToCallGraph(infoSink, currentCaller, callerName); + } + } + + // for decompositions, since we want to operate on the function node, not the aggregate holding + // output conversions. + const TIntermTyped* fnNode = result; + + decomposeStructBufferMethods(loc, result, arguments); // HLSL->AST struct buffer method decompositions + decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions + decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions + + // Create the qualifier list, carried in the AST for the call. + // Because some arguments expand to multiple arguments, the qualifier list will + // be longer than the formal parameter list. + if (result == fnNode && result->getAsAggregate()) { + TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList(); + for (int i = 0; i < fnCandidate->getParamCount(); ++i) { + TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage; + if (hasStructBuffCounter(*(*fnCandidate)[i].type)) { + // add buffer and counter buffer argument qualifier + qualifierList.push_back(qual); + qualifierList.push_back(qual); + } else if (shouldFlatten(*(*fnCandidate)[i].type, (*fnCandidate)[i].type->getQualifier().storage, + true)) { + // add structure member expansion + for (int memb = 0; memb < (int)(*fnCandidate)[i].type->getStruct()->size(); ++memb) + qualifierList.push_back(qual); + } else { + // Normal 1:1 case + qualifierList.push_back(qual); + } + } + } + + // Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore. + // Built-ins with a single argument aren't called with an aggregate, but they also don't have an output. + // Also, build the qualifier list for user function calls, which are always called with an aggregate. + // We don't do this is if there has been a decomposition, which will have added its own conversions + // for output parameters. + if (result == fnNode && result->getAsAggregate()) + result = addOutputArgumentConversions(*fnCandidate, *result->getAsOperator()); + } + } + + // generic error recovery + // TODO: simplification: localize all the error recoveries that look like this, and taking type into account to + // reduce cascades + if (result == nullptr) + result = intermediate.addConstantUnion(0.0, EbtFloat, loc); + + return result; +} + +// An initial argument list is difficult: it can be null, or a single node, +// or an aggregate if more than one argument. Add one to the front, maintaining +// this lack of uniformity. +void HlslParseContext::pushFrontArguments(TIntermTyped* front, TIntermTyped*& arguments) +{ + if (arguments == nullptr) + arguments = front; + else if (arguments->getAsAggregate() != nullptr) + arguments->getAsAggregate()->getSequence().insert(arguments->getAsAggregate()->getSequence().begin(), front); + else + arguments = intermediate.growAggregate(front, arguments); +} + +// +// HLSL allows mismatched dimensions on vec*mat, mat*vec, vec*vec, and mat*mat. This is a +// situation not well suited to resolution in intrinsic selection, but we can do so here, since we +// can look at both arguments insert explicit shape changes if required. +// +void HlslParseContext::addGenMulArgumentConversion(const TSourceLoc& loc, TFunction& call, TIntermTyped*& args) +{ + TIntermAggregate* argAggregate = args ? args->getAsAggregate() : nullptr; + + if (argAggregate == nullptr || argAggregate->getSequence().size() != 2) { + // It really ought to have two arguments. + error(loc, "expected: mul arguments", "", ""); + return; + } + + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + + if (arg0->isVector() && arg1->isVector()) { + // For: + // vec * vec: it's handled during intrinsic selection, so while we could do it here, + // we can also ignore it, which is easier. + } else if (arg0->isVector() && arg1->isMatrix()) { + // vec * mat: we clamp the vec if the mat col is smaller, else clamp the mat col. + if (arg0->getVectorSize() < arg1->getMatrixCols()) { + // vec is smaller, so truncate larger mat dimension + const TType truncType(arg1->getBasicType(), arg1->getQualifier().storage, arg1->getQualifier().precision, + 0, arg0->getVectorSize(), arg1->getMatrixRows()); + arg1 = addConstructor(loc, arg1, truncType); + } else if (arg0->getVectorSize() > arg1->getMatrixCols()) { + // vec is larger, so truncate vec to mat size + const TType truncType(arg0->getBasicType(), arg0->getQualifier().storage, arg0->getQualifier().precision, + arg1->getMatrixCols()); + arg0 = addConstructor(loc, arg0, truncType); + } + } else if (arg0->isMatrix() && arg1->isVector()) { + // mat * vec: we clamp the vec if the mat col is smaller, else clamp the mat col. + if (arg1->getVectorSize() < arg0->getMatrixRows()) { + // vec is smaller, so truncate larger mat dimension + const TType truncType(arg0->getBasicType(), arg0->getQualifier().storage, arg0->getQualifier().precision, + 0, arg0->getMatrixCols(), arg1->getVectorSize()); + arg0 = addConstructor(loc, arg0, truncType); + } else if (arg1->getVectorSize() > arg0->getMatrixRows()) { + // vec is larger, so truncate vec to mat size + const TType truncType(arg1->getBasicType(), arg1->getQualifier().storage, arg1->getQualifier().precision, + arg0->getMatrixRows()); + arg1 = addConstructor(loc, arg1, truncType); + } + } else if (arg0->isMatrix() && arg1->isMatrix()) { + // mat * mat: we clamp the smaller inner dimension to match the other matrix size. + // Remember, HLSL Mrc = GLSL/SPIRV Mcr. + if (arg0->getMatrixRows() > arg1->getMatrixCols()) { + const TType truncType(arg0->getBasicType(), arg0->getQualifier().storage, arg0->getQualifier().precision, + 0, arg0->getMatrixCols(), arg1->getMatrixCols()); + arg0 = addConstructor(loc, arg0, truncType); + } else if (arg0->getMatrixRows() < arg1->getMatrixCols()) { + const TType truncType(arg1->getBasicType(), arg1->getQualifier().storage, arg1->getQualifier().precision, + 0, arg0->getMatrixRows(), arg1->getMatrixRows()); + arg1 = addConstructor(loc, arg1, truncType); + } + } else { + // It's something with scalars: we'll just leave it alone. Function selection will handle it + // downstream. + } + + // Warn if we altered one of the arguments + if (arg0 != argAggregate->getSequence()[0] || arg1 != argAggregate->getSequence()[1]) + warn(loc, "mul() matrix size mismatch", "", ""); + + // Put arguments back. (They might be unchanged, in which case this is harmless). + argAggregate->getSequence()[0] = arg0; + argAggregate->getSequence()[1] = arg1; + + call[0].type = &arg0->getWritableType(); + call[1].type = &arg1->getWritableType(); +} + +// +// Add any needed implicit conversions for function-call arguments to input parameters. +// +void HlslParseContext::addInputArgumentConversions(const TFunction& function, TIntermTyped*& arguments) +{ + TIntermAggregate* aggregate = arguments->getAsAggregate(); + + // Replace a single argument with a single argument. + const auto setArg = [&](int paramNum, TIntermTyped* arg) { + if (function.getParamCount() == 1) + arguments = arg; + else { + if (aggregate == nullptr) + arguments = arg; + else + aggregate->getSequence()[paramNum] = arg; + } + }; + + // Process each argument's conversion + for (int param = 0; param < function.getParamCount(); ++param) { + if (! function[param].type->getQualifier().isParamInput()) + continue; + + // At this early point there is a slight ambiguity between whether an aggregate 'arguments' + // is the single argument itself or its children are the arguments. Only one argument + // means take 'arguments' itself as the one argument. + TIntermTyped* arg = function.getParamCount() == 1 + ? arguments->getAsTyped() + : (aggregate ? + aggregate->getSequence()[param]->getAsTyped() : + arguments->getAsTyped()); + if (*function[param].type != arg->getType()) { + // In-qualified arguments just need an extra node added above the argument to + // convert to the correct type. + TIntermTyped* convArg = intermediate.addConversion(EOpFunctionCall, *function[param].type, arg); + if (convArg != nullptr) + convArg = intermediate.addUniShapeConversion(EOpFunctionCall, *function[param].type, convArg); + if (convArg != nullptr) + setArg(param, convArg); + else + error(arg->getLoc(), "cannot convert input argument, argument", "", "%d", param); + } else { + if (wasFlattened(arg)) { + // If both formal and calling arg are to be flattened, leave that to argument + // expansion, not conversion. + if (!shouldFlatten(*function[param].type, function[param].type->getQualifier().storage, true)) { + // Will make a two-level subtree. + // The deepest will copy member-by-member to build the structure to pass. + // The level above that will be a two-operand EOpComma sequence that follows the copy by the + // object itself. + TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[param].type); + internalAggregate->getWritableType().getQualifier().makeTemporary(); + TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), + internalAggregate->getName(), + internalAggregate->getType()); + internalSymbolNode->setLoc(arg->getLoc()); + // This makes the deepest level, the member-wise copy + TIntermAggregate* assignAgg = handleAssign(arg->getLoc(), EOpAssign, + internalSymbolNode, arg)->getAsAggregate(); + + // Now, pair that with the resulting aggregate. + assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode, arg->getLoc()); + assignAgg->setOperator(EOpComma); + assignAgg->setType(internalAggregate->getType()); + setArg(param, assignAgg); + } + } + } + } +} + +// +// Add any needed implicit expansion of calling arguments from what the shader listed to what's +// internally needed for the AST (given the constraints downstream). +// +void HlslParseContext::expandArguments(const TSourceLoc& loc, const TFunction& function, TIntermTyped*& arguments) +{ + TIntermAggregate* aggregate = arguments->getAsAggregate(); + int functionParamNumberOffset = 0; + + // Replace a single argument with a single argument. + const auto setArg = [&](int paramNum, TIntermTyped* arg) { + if (function.getParamCount() + functionParamNumberOffset == 1) + arguments = arg; + else { + if (aggregate == nullptr) + arguments = arg; + else + aggregate->getSequence()[paramNum] = arg; + } + }; + + // Replace a single argument with a list of arguments + const auto setArgList = [&](int paramNum, const TVector& args) { + if (args.size() == 1) + setArg(paramNum, args.front()); + else if (args.size() > 1) { + if (function.getParamCount() + functionParamNumberOffset == 1) { + arguments = intermediate.makeAggregate(args.front()); + std::for_each(args.begin() + 1, args.end(), + [&](TIntermTyped* arg) { + arguments = intermediate.growAggregate(arguments, arg); + }); + } else { + auto it = aggregate->getSequence().erase(aggregate->getSequence().begin() + paramNum); + aggregate->getSequence().insert(it, args.begin(), args.end()); + } + functionParamNumberOffset += (int)(args.size() - 1); + } + }; + + // Process each argument's conversion + for (int param = 0; param < function.getParamCount(); ++param) { + // At this early point there is a slight ambiguity between whether an aggregate 'arguments' + // is the single argument itself or its children are the arguments. Only one argument + // means take 'arguments' itself as the one argument. + TIntermTyped* arg = function.getParamCount() == 1 + ? arguments->getAsTyped() + : (aggregate ? + aggregate->getSequence()[param + functionParamNumberOffset]->getAsTyped() : + arguments->getAsTyped()); + + if (wasFlattened(arg) && shouldFlatten(*function[param].type, function[param].type->getQualifier().storage, true)) { + // Need to pass the structure members instead of the structure. + TVector memberArgs; + for (int memb = 0; memb < (int)arg->getType().getStruct()->size(); ++memb) + memberArgs.push_back(flattenAccess(arg, memb)); + setArgList(param + functionParamNumberOffset, memberArgs); + } + } + + // TODO: if we need both hidden counter args (below) and struct expansion (above) + // the two algorithms need to be merged: Each assumes the list starts out 1:1 between + // parameters and arguments. + + // If any argument is a pass-by-reference struct buffer with an associated counter + // buffer, we have to add another hidden parameter for that counter. + if (aggregate) + addStructBuffArguments(loc, aggregate); +} + +// +// Add any needed implicit output conversions for function-call arguments. This +// can require a new tree topology, complicated further by whether the function +// has a return value. +// +// Returns a node of a subtree that evaluates to the return value of the function. +// +TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermOperator& intermNode) +{ + assert (intermNode.getAsAggregate() != nullptr || intermNode.getAsUnaryNode() != nullptr); + + const TSourceLoc& loc = intermNode.getLoc(); + + TIntermSequence argSequence; // temp sequence for unary node args + + if (intermNode.getAsUnaryNode()) + argSequence.push_back(intermNode.getAsUnaryNode()->getOperand()); + + TIntermSequence& arguments = argSequence.empty() ? intermNode.getAsAggregate()->getSequence() : argSequence; + + const auto needsConversion = [&](int argNum) { + return function[argNum].type->getQualifier().isParamOutput() && + (*function[argNum].type != arguments[argNum]->getAsTyped()->getType() || + shouldConvertLValue(arguments[argNum]) || + wasFlattened(arguments[argNum]->getAsTyped())); + }; + + // Will there be any output conversions? + bool outputConversions = false; + for (int i = 0; i < function.getParamCount(); ++i) { + if (needsConversion(i)) { + outputConversions = true; + break; + } + } + + if (! outputConversions) + return &intermNode; + + // Setup for the new tree, if needed: + // + // Output conversions need a different tree topology. + // Out-qualified arguments need a temporary of the correct type, with the call + // followed by an assignment of the temporary to the original argument: + // void: function(arg, ...) -> ( function(tempArg, ...), arg = tempArg, ...) + // ret = function(arg, ...) -> ret = (tempRet = function(tempArg, ...), arg = tempArg, ..., tempRet) + // Where the "tempArg" type needs no conversion as an argument, but will convert on assignment. + TIntermTyped* conversionTree = nullptr; + TVariable* tempRet = nullptr; + if (intermNode.getBasicType() != EbtVoid) { + // do the "tempRet = function(...), " bit from above + tempRet = makeInternalVariable("tempReturn", intermNode.getType()); + TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc); + conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, loc); + } else + conversionTree = &intermNode; + + conversionTree = intermediate.makeAggregate(conversionTree); + + // Process each argument's conversion + for (int i = 0; i < function.getParamCount(); ++i) { + if (needsConversion(i)) { + // Out-qualified arguments needing conversion need to use the topology setup above. + // Do the " ...(tempArg, ...), arg = tempArg" bit from above. + + // Make a temporary for what the function expects the argument to look like. + TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type); + tempArg->getWritableType().getQualifier().makeTemporary(); + TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, loc); + + // This makes the deepest level, the member-wise copy + TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), + tempArgNode); + tempAssign = handleLvalue(arguments[i]->getLoc(), "assign", tempAssign); + conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); + + // replace the argument with another node for the same tempArg variable + arguments[i] = intermediate.addSymbol(*tempArg, loc); + } + } + + // Finalize the tree topology (see bigger comment above). + if (tempRet) { + // do the "..., tempRet" bit from above + TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc); + conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, loc); + } + + conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), loc); + + return conversionTree; +} + +// +// Add any needed "hidden" counter buffer arguments for function calls. +// +// Modifies the 'aggregate' argument if needed. Otherwise, is no-op. +// +void HlslParseContext::addStructBuffArguments(const TSourceLoc& loc, TIntermAggregate*& aggregate) +{ + // See if there are any SB types with counters. + const bool hasStructBuffArg = + std::any_of(aggregate->getSequence().begin(), + aggregate->getSequence().end(), + [this](const TIntermNode* node) { + return (node->getAsTyped() != nullptr) && hasStructBuffCounter(node->getAsTyped()->getType()); + }); + + // Nothing to do, if we didn't find one. + if (! hasStructBuffArg) + return; + + TIntermSequence argsWithCounterBuffers; + + for (int param = 0; param < int(aggregate->getSequence().size()); ++param) { + argsWithCounterBuffers.push_back(aggregate->getSequence()[param]); + + if (hasStructBuffCounter(aggregate->getSequence()[param]->getAsTyped()->getType())) { + const TIntermSymbol* blockSym = aggregate->getSequence()[param]->getAsSymbolNode(); + if (blockSym != nullptr) { + TType counterType; + counterBufferType(loc, counterType); + + const TString counterBlockName(intermediate.addCounterBufferName(blockSym->getName())); + + TVariable* variable = makeInternalVariable(counterBlockName, counterType); + + // Mark this buffer's counter block as being in use + structBufferCounter[counterBlockName] = true; + + TIntermSymbol* sym = intermediate.addSymbol(*variable, loc); + argsWithCounterBuffers.push_back(sym); + } + } + } + + // Swap with the temp list we've built up. + aggregate->getSequence().swap(argsWithCounterBuffers); +} + + +// +// Do additional checking of built-in function calls that is not caught +// by normal semantic checks on argument type, extension tagging, etc. +// +// Assumes there has been a semantically correct match to a built-in function prototype. +// +void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCandidate, TIntermOperator& callNode) +{ + // Set up convenience accessors to the argument(s). There is almost always + // multiple arguments for the cases below, but when there might be one, + // check the unaryArg first. + const TIntermSequence* argp = nullptr; // confusing to use [] syntax on a pointer, so this is to help get a reference + const TIntermTyped* unaryArg = nullptr; + const TIntermTyped* arg0 = nullptr; + if (callNode.getAsAggregate()) { + argp = &callNode.getAsAggregate()->getSequence(); + if (argp->size() > 0) + arg0 = (*argp)[0]->getAsTyped(); + } else { + assert(callNode.getAsUnaryNode()); + unaryArg = callNode.getAsUnaryNode()->getOperand(); + arg0 = unaryArg; + } + const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr + + switch (callNode.getOp()) { + case EOpTextureGather: + case EOpTextureGatherOffset: + case EOpTextureGatherOffsets: + { + // Figure out which variants are allowed by what extensions, + // and what arguments must be constant for which situations. + + TString featureString = fnCandidate.getName() + "(...)"; + const char* feature = featureString.c_str(); + int compArg = -1; // track which argument, if any, is the constant component argument + switch (callNode.getOp()) { + case EOpTextureGather: + // More than two arguments needs gpu_shader5, and rectangular or shadow needs gpu_shader5, + // otherwise, need GL_ARB_texture_gather. + if (fnCandidate.getParamCount() > 2 || fnCandidate[0].type->getSampler().dim == EsdRect || + fnCandidate[0].type->getSampler().shadow) { + if (! fnCandidate[0].type->getSampler().shadow) + compArg = 2; + } + break; + case EOpTextureGatherOffset: + // GL_ARB_texture_gather is good enough for 2D non-shadow textures with no component argument + if (! fnCandidate[0].type->getSampler().shadow) + compArg = 3; + break; + case EOpTextureGatherOffsets: + if (! fnCandidate[0].type->getSampler().shadow) + compArg = 3; + break; + default: + break; + } + + if (compArg > 0 && compArg < fnCandidate.getParamCount()) { + if (aggArgs[compArg]->getAsConstantUnion()) { + int value = aggArgs[compArg]->getAsConstantUnion()->getConstArray()[0].getIConst(); + if (value < 0 || value > 3) + error(loc, "must be 0, 1, 2, or 3:", feature, "component argument"); + } else + error(loc, "must be a compile-time constant:", feature, "component argument"); + } + + break; + } + + case EOpTextureOffset: + case EOpTextureFetchOffset: + case EOpTextureProjOffset: + case EOpTextureLodOffset: + case EOpTextureProjLodOffset: + case EOpTextureGradOffset: + case EOpTextureProjGradOffset: + { + // Handle texture-offset limits checking + // Pick which argument has to hold constant offsets + int arg = -1; + switch (callNode.getOp()) { + case EOpTextureOffset: arg = 2; break; + case EOpTextureFetchOffset: arg = (arg0->getType().getSampler().dim != EsdRect) ? 3 : 2; break; + case EOpTextureProjOffset: arg = 2; break; + case EOpTextureLodOffset: arg = 3; break; + case EOpTextureProjLodOffset: arg = 3; break; + case EOpTextureGradOffset: arg = 4; break; + case EOpTextureProjGradOffset: arg = 4; break; + default: + assert(0); + break; + } + + if (arg > 0) { + if (aggArgs[arg]->getAsConstantUnion() == nullptr) + error(loc, "argument must be compile-time constant", "texel offset", ""); + else { + const TType& type = aggArgs[arg]->getAsTyped()->getType(); + for (int c = 0; c < type.getVectorSize(); ++c) { + int offset = aggArgs[arg]->getAsConstantUnion()->getConstArray()[c].getIConst(); + if (offset > resources.maxProgramTexelOffset || offset < resources.minProgramTexelOffset) + error(loc, "value is out of range:", "texel offset", + "[gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]"); + } + } + } + + break; + } + + case EOpTextureQuerySamples: + case EOpImageQuerySamples: + break; + + case EOpImageAtomicAdd: + case EOpImageAtomicMin: + case EOpImageAtomicMax: + case EOpImageAtomicAnd: + case EOpImageAtomicOr: + case EOpImageAtomicXor: + case EOpImageAtomicExchange: + case EOpImageAtomicCompSwap: + break; + + case EOpInterpolateAtCentroid: + case EOpInterpolateAtSample: + case EOpInterpolateAtOffset: + // Make sure the first argument is an interpolant, or an array element of an interpolant + if (arg0->getType().getQualifier().storage != EvqVaryingIn) { + // It might still be an array element. + // + // We could check more, but the semantics of the first argument are already met; the + // only way to turn an array into a float/vec* is array dereference and swizzle. + // + // ES and desktop 4.3 and earlier: swizzles may not be used + // desktop 4.4 and later: swizzles may be used + const TIntermTyped* base = TIntermediate::findLValueBase(arg0, true); + if (base == nullptr || base->getType().getQualifier().storage != EvqVaryingIn) + error(loc, "first argument must be an interpolant, or interpolant-array element", + fnCandidate.getName().c_str(), ""); + } + break; + + default: + break; + } +} + +// +// Handle seeing something in a grammar production that can be done by calling +// a constructor. +// +// The constructor still must be "handled" by handleFunctionCall(), which will +// then call handleConstructor(). +// +TFunction* HlslParseContext::makeConstructorCall(const TSourceLoc& loc, const TType& type) +{ + TOperator op = intermediate.mapTypeToConstructorOp(type); + + if (op == EOpNull) { + error(loc, "cannot construct this type", type.getBasicString(), ""); + return nullptr; + } + + TString empty(""); + + return new TFunction(&empty, type, op); +} + +// +// Handle seeing a "COLON semantic" at the end of a type declaration, +// by updating the type according to the semantic. +// +void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, TBuiltInVariable builtIn, + const TString& upperCase) +{ + // Parse and return semantic number. If limit is 0, it will be ignored. Otherwise, if the parsed + // semantic number is >= limit, errorMsg is issued and 0 is returned. + // TODO: it would be nicer if limit and errorMsg had default parameters, but some compilers don't yet + // accept those in lambda functions. + const auto getSemanticNumber = [this, loc](const TString& semantic, unsigned int limit, const char* errorMsg) -> unsigned int { + size_t pos = semantic.find_last_not_of("0123456789"); + if (pos == std::string::npos) + return 0u; + + unsigned int semanticNum = (unsigned int)atoi(semantic.c_str() + pos + 1); + + if (limit != 0 && semanticNum >= limit) { + error(loc, errorMsg, semantic.c_str(), ""); + return 0u; + } + + return semanticNum; + }; + + switch(builtIn) { + case EbvNone: + // Get location numbers from fragment outputs, instead of + // auto-assigning them. + if (language == EShLangFragment && upperCase.compare(0, 9, "SV_TARGET") == 0) { + qualifier.layoutLocation = getSemanticNumber(upperCase, 0, nullptr); + nextOutLocation = std::max(nextOutLocation, qualifier.layoutLocation + 1u); + } else if (upperCase.compare(0, 15, "SV_CLIPDISTANCE") == 0) { + builtIn = EbvClipDistance; + qualifier.layoutLocation = getSemanticNumber(upperCase, maxClipCullRegs, "invalid clip semantic"); + } else if (upperCase.compare(0, 15, "SV_CULLDISTANCE") == 0) { + builtIn = EbvCullDistance; + qualifier.layoutLocation = getSemanticNumber(upperCase, maxClipCullRegs, "invalid cull semantic"); + } + break; + case EbvPosition: + // adjust for stage in/out + if (language == EShLangFragment) + builtIn = EbvFragCoord; + break; + case EbvFragStencilRef: + error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", ""); + break; + case EbvTessLevelInner: + case EbvTessLevelOuter: + qualifier.patch = true; + break; + default: + break; + } + + if (qualifier.builtIn == EbvNone) + qualifier.builtIn = builtIn; + qualifier.semanticName = intermediate.addSemanticName(upperCase); +} + +// +// Handle seeing something like "PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN" +// +// 'location' has the "c[Subcomponent]" part. +// 'component' points to the "component" part, or nullptr if not present. +// +void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString& location, + const glslang::TString* component) +{ + if (location.size() == 0 || location[0] != 'c') { + error(loc, "expected 'c'", "packoffset", ""); + return; + } + if (location.size() == 1) + return; + if (! isdigit(location[1])) { + error(loc, "expected number after 'c'", "packoffset", ""); + return; + } + + qualifier.layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); + if (component != nullptr) { + int componentOffset = 0; + switch ((*component)[0]) { + case 'x': componentOffset = 0; break; + case 'y': componentOffset = 4; break; + case 'z': componentOffset = 8; break; + case 'w': componentOffset = 12; break; + default: + componentOffset = -1; + break; + } + if (componentOffset < 0 || component->size() > 1) { + error(loc, "expected {x, y, z, w} for component", "packoffset", ""); + return; + } + qualifier.layoutOffset += componentOffset; + } +} + +// +// Handle seeing something like "REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN" +// +// 'profile' points to the shader_profile part, or nullptr if not present. +// 'desc' is the type# part. +// +void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString* profile, + const glslang::TString& desc, int subComponent, const glslang::TString* spaceDesc) +{ + if (profile != nullptr) + warn(loc, "ignoring shader_profile", "register", ""); + + if (desc.size() < 1) { + error(loc, "expected register type", "register", ""); + return; + } + + int regNumber = 0; + if (desc.size() > 1) { + if (isdigit(desc[1])) + regNumber = atoi(desc.substr(1, desc.size()).c_str()); + else { + error(loc, "expected register number after register type", "register", ""); + return; + } + } + + // TODO: learn what all these really mean and how they interact with regNumber and subComponent + const std::vector& resourceInfo = intermediate.getResourceSetBinding(); + switch (std::tolower(desc[0])) { + case 'b': + case 't': + case 'c': + case 's': + case 'u': + // if nothing else has set the binding, do so now + // (other mechanisms override this one) + if (!qualifier.hasBinding()) + qualifier.layoutBinding = regNumber + subComponent; + + // This handles per-register layout sets numbers. For the global mode which sets + // every symbol to the same value, see setLinkageLayoutSets(). + if ((resourceInfo.size() % 3) == 0) { + // Apply per-symbol resource set and binding. + for (auto it = resourceInfo.cbegin(); it != resourceInfo.cend(); it = it + 3) { + if (strcmp(desc.c_str(), it[0].c_str()) == 0) { + qualifier.layoutSet = atoi(it[1].c_str()); + qualifier.layoutBinding = atoi(it[2].c_str()) + subComponent; + break; + } + } + } + break; + default: + warn(loc, "ignoring unrecognized register type", "register", "%c", desc[0]); + break; + } + + // space + unsigned int setNumber; + const auto crackSpace = [&]() -> bool { + const int spaceLen = 5; + if (spaceDesc->size() < spaceLen + 1) + return false; + if (spaceDesc->compare(0, spaceLen, "space") != 0) + return false; + if (! isdigit((*spaceDesc)[spaceLen])) + return false; + setNumber = atoi(spaceDesc->substr(spaceLen, spaceDesc->size()).c_str()); + return true; + }; + + // if nothing else has set the set, do so now + // (other mechanisms override this one) + if (spaceDesc && !qualifier.hasSet()) { + if (! crackSpace()) { + error(loc, "expected spaceN", "register", ""); + return; + } + qualifier.layoutSet = setNumber; + } +} + +// Convert to a scalar boolean, or if not allowed by HLSL semantics, +// report an error and return nullptr. +TIntermTyped* HlslParseContext::convertConditionalExpression(const TSourceLoc& loc, TIntermTyped* condition, + bool mustBeScalar) +{ + if (mustBeScalar && !condition->getType().isScalarOrVec1()) { + error(loc, "requires a scalar", "conditional expression", ""); + return nullptr; + } + + return intermediate.addConversion(EOpConstructBool, TType(EbtBool, EvqTemporary, condition->getVectorSize()), + condition); +} + +// +// Same error message for all places assignments don't work. +// +void HlslParseContext::assignError(const TSourceLoc& loc, const char* op, TString left, TString right) +{ + error(loc, "", op, "cannot convert from '%s' to '%s'", + right.c_str(), left.c_str()); +} + +// +// Same error message for all places unary operations don't work. +// +void HlslParseContext::unaryOpError(const TSourceLoc& loc, const char* op, TString operand) +{ + error(loc, " wrong operand type", op, + "no operation '%s' exists that takes an operand of type %s (or there is no acceptable conversion)", + op, operand.c_str()); +} + +// +// Same error message for all binary operations don't work. +// +void HlslParseContext::binaryOpError(const TSourceLoc& loc, const char* op, TString left, TString right) +{ + error(loc, " wrong operand types:", op, + "no operation '%s' exists that takes a left-hand operand of type '%s' and " + "a right operand of type '%s' (or there is no acceptable conversion)", + op, left.c_str(), right.c_str()); +} + +// +// A basic type of EbtVoid is a key that the name string was seen in the source, but +// it was not found as a variable in the symbol table. If so, give the error +// message and insert a dummy variable in the symbol table to prevent future errors. +// +void HlslParseContext::variableCheck(TIntermTyped*& nodePtr) +{ + TIntermSymbol* symbol = nodePtr->getAsSymbolNode(); + if (! symbol) + return; + + if (symbol->getType().getBasicType() == EbtVoid) { + error(symbol->getLoc(), "undeclared identifier", symbol->getName().c_str(), ""); + + // Add to symbol table to prevent future error messages on the same name + if (symbol->getName().size() > 0) { + TVariable* fakeVariable = new TVariable(&symbol->getName(), TType(EbtFloat)); + symbolTable.insert(*fakeVariable); + + // substitute a symbol node for this new variable + nodePtr = intermediate.addSymbol(*fakeVariable, symbol->getLoc()); + } + } +} + +// +// Both test, and if necessary spit out an error, to see if the node is really +// a constant. +// +void HlslParseContext::constantValueCheck(TIntermTyped* node, const char* token) +{ + if (node->getQualifier().storage != EvqConst) + error(node->getLoc(), "constant expression required", token, ""); +} + +// +// Both test, and if necessary spit out an error, to see if the node is really +// an integer. +// +void HlslParseContext::integerCheck(const TIntermTyped* node, const char* token) +{ + if ((node->getBasicType() == EbtInt || node->getBasicType() == EbtUint) && node->isScalar()) + return; + + error(node->getLoc(), "scalar integer expression required", token, ""); +} + +// +// Both test, and if necessary spit out an error, to see if we are currently +// globally scoped. +// +void HlslParseContext::globalCheck(const TSourceLoc& loc, const char* token) +{ + if (! symbolTable.atGlobalLevel()) + error(loc, "not allowed in nested scope", token, ""); +} + +bool HlslParseContext::builtInName(const TString& /*identifier*/) +{ + return false; +} + +// +// Make sure there is enough data and not too many arguments provided to the +// constructor to build something of the type of the constructor. Also returns +// the type of the constructor. +// +// Returns true if there was an error in construction. +// +bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, TFunction& function, + TOperator op, TType& type) +{ + type.shallowCopy(function.getType()); + + bool constructingMatrix = false; + switch (op) { + case EOpConstructTextureSampler: + return constructorTextureSamplerError(loc, function); + case EOpConstructMat2x2: + case EOpConstructMat2x3: + case EOpConstructMat2x4: + case EOpConstructMat3x2: + case EOpConstructMat3x3: + case EOpConstructMat3x4: + case EOpConstructMat4x2: + case EOpConstructMat4x3: + case EOpConstructMat4x4: + case EOpConstructDMat2x2: + case EOpConstructDMat2x3: + case EOpConstructDMat2x4: + case EOpConstructDMat3x2: + case EOpConstructDMat3x3: + case EOpConstructDMat3x4: + case EOpConstructDMat4x2: + case EOpConstructDMat4x3: + case EOpConstructDMat4x4: + case EOpConstructIMat2x2: + case EOpConstructIMat2x3: + case EOpConstructIMat2x4: + case EOpConstructIMat3x2: + case EOpConstructIMat3x3: + case EOpConstructIMat3x4: + case EOpConstructIMat4x2: + case EOpConstructIMat4x3: + case EOpConstructIMat4x4: + case EOpConstructUMat2x2: + case EOpConstructUMat2x3: + case EOpConstructUMat2x4: + case EOpConstructUMat3x2: + case EOpConstructUMat3x3: + case EOpConstructUMat3x4: + case EOpConstructUMat4x2: + case EOpConstructUMat4x3: + case EOpConstructUMat4x4: + case EOpConstructBMat2x2: + case EOpConstructBMat2x3: + case EOpConstructBMat2x4: + case EOpConstructBMat3x2: + case EOpConstructBMat3x3: + case EOpConstructBMat3x4: + case EOpConstructBMat4x2: + case EOpConstructBMat4x3: + case EOpConstructBMat4x4: + constructingMatrix = true; + break; + default: + break; + } + + // + // Walk the arguments for first-pass checks and collection of information. + // + + int size = 0; + bool constType = true; + bool full = false; + bool overFull = false; + bool matrixInMatrix = false; + bool arrayArg = false; + for (int arg = 0; arg < function.getParamCount(); ++arg) { + if (function[arg].type->isArray()) { + if (function[arg].type->isUnsizedArray()) { + // Can't construct from an unsized array. + error(loc, "array argument must be sized", "constructor", ""); + return true; + } + arrayArg = true; + } + if (constructingMatrix && function[arg].type->isMatrix()) + matrixInMatrix = true; + + // 'full' will go to true when enough args have been seen. If we loop + // again, there is an extra argument. + if (full) { + // For vectors and matrices, it's okay to have too many components + // available, but not okay to have unused arguments. + overFull = true; + } + + size += function[arg].type->computeNumComponents(); + if (op != EOpConstructStruct && ! type.isArray() && size >= type.computeNumComponents()) + full = true; + + if (function[arg].type->getQualifier().storage != EvqConst) + constType = false; + } + + if (constType) + type.getQualifier().storage = EvqConst; + + if (type.isArray()) { + if (function.getParamCount() == 0) { + error(loc, "array constructor must have at least one argument", "constructor", ""); + return true; + } + + if (type.isUnsizedArray()) { + // auto adapt the constructor type to the number of arguments + type.changeOuterArraySize(function.getParamCount()); + } else if (type.getOuterArraySize() != function.getParamCount() && type.computeNumComponents() > size) { + error(loc, "array constructor needs one argument per array element", "constructor", ""); + return true; + } + + if (type.isArrayOfArrays()) { + // Types have to match, but we're still making the type. + // Finish making the type, and the comparison is done later + // when checking for conversion. + TArraySizes& arraySizes = *type.getArraySizes(); + + // At least the dimensionalities have to match. + if (! function[0].type->isArray() || + arraySizes.getNumDims() != function[0].type->getArraySizes()->getNumDims() + 1) { + error(loc, "array constructor argument not correct type to construct array element", "constructor", ""); + return true; + } + + if (arraySizes.isInnerUnsized()) { + // "Arrays of arrays ..., and the size for any dimension is optional" + // That means we need to adopt (from the first argument) the other array sizes into the type. + for (int d = 1; d < arraySizes.getNumDims(); ++d) { + if (arraySizes.getDimSize(d) == UnsizedArraySize) { + arraySizes.setDimSize(d, function[0].type->getArraySizes()->getDimSize(d - 1)); + } + } + } + } + } + + // Some array -> array type casts are okay + if (arrayArg && function.getParamCount() == 1 && op != EOpConstructStruct && type.isArray() && + !type.isArrayOfArrays() && !function[0].type->isArrayOfArrays() && + type.getVectorSize() >= 1 && function[0].type->getVectorSize() >= 1) + return false; + + if (arrayArg && op != EOpConstructStruct && ! type.isArrayOfArrays()) { + error(loc, "constructing non-array constituent from array argument", "constructor", ""); + return true; + } + + if (matrixInMatrix && ! type.isArray()) { + return false; + } + + if (overFull) { + error(loc, "too many arguments", "constructor", ""); + return true; + } + + if (op == EOpConstructStruct && ! type.isArray()) { + if (isScalarConstructor(node)) + return false; + + // Self-type construction: e.g, we can construct a struct from a single identically typed object. + if (function.getParamCount() == 1 && type == *function[0].type) + return false; + + if ((int)type.getStruct()->size() != function.getParamCount()) { + error(loc, "Number of constructor parameters does not match the number of structure fields", "constructor", ""); + return true; + } + } + + if ((op != EOpConstructStruct && size != 1 && size < type.computeNumComponents()) || + (op == EOpConstructStruct && size < type.computeNumComponents())) { + error(loc, "not enough data provided for construction", "constructor", ""); + return true; + } + + return false; +} + +// See if 'node', in the context of constructing aggregates, is a scalar argument +// to a constructor. +// +bool HlslParseContext::isScalarConstructor(const TIntermNode* node) +{ + // Obviously, it must be a scalar, but an aggregate node might not be fully + // completed yet: holding a sequence of initializers under an aggregate + // would not yet be typed, so don't check it's type. This corresponds to + // the aggregate operator also not being set yet. (An aggregate operation + // that legitimately yields a scalar will have a getOp() of that operator, + // not EOpNull.) + + return node->getAsTyped() != nullptr && + node->getAsTyped()->isScalar() && + (node->getAsAggregate() == nullptr || node->getAsAggregate()->getOp() != EOpNull); +} + +// Verify all the correct semantics for constructing a combined texture/sampler. +// Return true if the semantics are incorrect. +bool HlslParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const TFunction& function) +{ + TString constructorName = function.getType().getBasicTypeString(); // TODO: performance: should not be making copy; interface needs to change + const char* token = constructorName.c_str(); + + // exactly two arguments needed + if (function.getParamCount() != 2) { + error(loc, "sampler-constructor requires two arguments", token, ""); + return true; + } + + // For now, not allowing arrayed constructors, the rest of this function + // is set up to allow them, if this test is removed: + if (function.getType().isArray()) { + error(loc, "sampler-constructor cannot make an array of samplers", token, ""); + return true; + } + + // first argument + // * the constructor's first argument must be a texture type + // * the dimensionality (1D, 2D, 3D, Cube, Rect, Buffer, MS, and Array) + // of the texture type must match that of the constructed sampler type + // (that is, the suffixes of the type of the first argument and the + // type of the constructor will be spelled the same way) + if (function[0].type->getBasicType() != EbtSampler || + ! function[0].type->getSampler().isTexture() || + function[0].type->isArray()) { + error(loc, "sampler-constructor first argument must be a scalar textureXXX type", token, ""); + return true; + } + // simulate the first argument's impact on the result type, so it can be compared with the encapsulated operator!=() + TSampler texture = function.getType().getSampler(); + texture.combined = false; + texture.shadow = false; + if (texture != function[0].type->getSampler()) { + error(loc, "sampler-constructor first argument must match type and dimensionality of constructor type", token, ""); + return true; + } + + // second argument + // * the constructor's second argument must be a scalar of type + // *sampler* or *samplerShadow* + // * the presence or absence of depth comparison (Shadow) must match + // between the constructed sampler type and the type of the second argument + if (function[1].type->getBasicType() != EbtSampler || + ! function[1].type->getSampler().isPureSampler() || + function[1].type->isArray()) { + error(loc, "sampler-constructor second argument must be a scalar type 'sampler'", token, ""); + return true; + } + if (function.getType().getSampler().shadow != function[1].type->getSampler().shadow) { + error(loc, "sampler-constructor second argument presence of shadow must match constructor presence of shadow", + token, ""); + return true; + } + + return false; +} + +// Checks to see if a void variable has been declared and raise an error message for such a case +// +// returns true in case of an error +// +bool HlslParseContext::voidErrorCheck(const TSourceLoc& loc, const TString& identifier, const TBasicType basicType) +{ + if (basicType == EbtVoid) { + error(loc, "illegal use of type 'void'", identifier.c_str(), ""); + return true; + } + + return false; +} + +// +// Fix just a full qualifier (no variables or types yet, but qualifier is complete) at global level. +// +void HlslParseContext::globalQualifierFix(const TSourceLoc&, TQualifier& qualifier) +{ + // move from parameter/unknown qualifiers to pipeline in/out qualifiers + switch (qualifier.storage) { + case EvqIn: + qualifier.storage = EvqVaryingIn; + break; + case EvqOut: + qualifier.storage = EvqVaryingOut; + break; + default: + break; + } +} + +// +// Merge characteristics of the 'src' qualifier into the 'dst'. +// If there is duplication, issue error messages, unless 'force' +// is specified, which means to just override default settings. +// +// Also, when force is false, it will be assumed that 'src' follows +// 'dst', for the purpose of error checking order for versions +// that require specific orderings of qualifiers. +// +void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src) +{ + // Storage qualification + if (dst.storage == EvqTemporary || dst.storage == EvqGlobal) + dst.storage = src.storage; + else if ((dst.storage == EvqIn && src.storage == EvqOut) || + (dst.storage == EvqOut && src.storage == EvqIn)) + dst.storage = EvqInOut; + else if ((dst.storage == EvqIn && src.storage == EvqConst) || + (dst.storage == EvqConst && src.storage == EvqIn)) + dst.storage = EvqConstReadOnly; + + // Layout qualifiers + mergeObjectLayoutQualifiers(dst, src, false); + + // individual qualifiers + bool repeated = false; +#define MERGE_SINGLETON(field) repeated |= dst.field && src.field; dst.field |= src.field; + MERGE_SINGLETON(invariant); + MERGE_SINGLETON(noContraction); + MERGE_SINGLETON(centroid); + MERGE_SINGLETON(smooth); + MERGE_SINGLETON(flat); + MERGE_SINGLETON(nopersp); + MERGE_SINGLETON(patch); + MERGE_SINGLETON(sample); + MERGE_SINGLETON(coherent); + MERGE_SINGLETON(volatil); + MERGE_SINGLETON(restrict); + MERGE_SINGLETON(readonly); + MERGE_SINGLETON(writeonly); + MERGE_SINGLETON(specConstant); + MERGE_SINGLETON(nonUniform); +} + +// used to flatten the sampler type space into a single dimension +// correlates with the declaration of defaultSamplerPrecision[] +int HlslParseContext::computeSamplerTypeIndex(TSampler& sampler) +{ + int arrayIndex = sampler.arrayed ? 1 : 0; + int shadowIndex = sampler.shadow ? 1 : 0; + int externalIndex = sampler.external ? 1 : 0; + + return EsdNumDims * + (EbtNumTypes * (2 * (2 * arrayIndex + shadowIndex) + externalIndex) + sampler.type) + sampler.dim; +} + +// +// Do size checking for an array type's size. +// +void HlslParseContext::arraySizeCheck(const TSourceLoc& loc, TIntermTyped* expr, TArraySize& sizePair) +{ + bool isConst = false; + sizePair.size = 1; + sizePair.node = nullptr; + + TIntermConstantUnion* constant = expr->getAsConstantUnion(); + if (constant) { + // handle true (non-specialization) constant + sizePair.size = constant->getConstArray()[0].getIConst(); + isConst = true; + } else { + // see if it's a specialization constant instead + if (expr->getQualifier().isSpecConstant()) { + isConst = true; + sizePair.node = expr; + TIntermSymbol* symbol = expr->getAsSymbolNode(); + if (symbol && symbol->getConstArray().size() > 0) + sizePair.size = symbol->getConstArray()[0].getIConst(); + } + } + + if (! isConst || (expr->getBasicType() != EbtInt && expr->getBasicType() != EbtUint)) { + error(loc, "array size must be a constant integer expression", "", ""); + return; + } + + if (sizePair.size <= 0) { + error(loc, "array size must be a positive integer", "", ""); + return; + } +} + +// +// Require array to be completely sized +// +void HlslParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes) +{ + if (arraySizes.hasUnsized()) + error(loc, "array size required", "", ""); +} + +void HlslParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& type) +{ + const TTypeList& structure = *type.getStruct(); + for (int m = 0; m < (int)structure.size(); ++m) { + const TType& member = *structure[m].type; + if (member.isArray()) + arraySizeRequiredCheck(structure[m].loc, *member.getArraySizes()); + } +} + +// +// Do all the semantic checking for declaring or redeclaring an array, with and +// without a size, and make the right changes to the symbol table. +// +void HlslParseContext::declareArray(const TSourceLoc& loc, const TString& identifier, const TType& type, + TSymbol*& symbol, bool track) +{ + if (symbol == nullptr) { + bool currentScope; + symbol = symbolTable.find(identifier, nullptr, ¤tScope); + + if (symbol && builtInName(identifier) && ! symbolTable.atBuiltInLevel()) { + // bad shader (errors already reported) trying to redeclare a built-in name as an array + return; + } + if (symbol == nullptr || ! currentScope) { + // + // Successfully process a new definition. + // (Redeclarations have to take place at the same scope; otherwise they are hiding declarations) + // + symbol = new TVariable(&identifier, type); + symbolTable.insert(*symbol); + if (track && symbolTable.atGlobalLevel()) + trackLinkage(*symbol); + + return; + } + if (symbol->getAsAnonMember()) { + error(loc, "cannot redeclare a user-block member array", identifier.c_str(), ""); + symbol = nullptr; + return; + } + } + + // + // Process a redeclaration. + // + + if (symbol == nullptr) { + error(loc, "array variable name expected", identifier.c_str(), ""); + return; + } + + // redeclareBuiltinVariable() should have already done the copyUp() + TType& existingType = symbol->getWritableType(); + + if (existingType.isSizedArray()) { + // be more lenient for input arrays to geometry shaders and tessellation control outputs, + // where the redeclaration is the same size + return; + } + + existingType.updateArraySizes(type); +} + +// +// Enforce non-initializer type/qualifier rules. +// +void HlslParseContext::fixConstInit(const TSourceLoc& loc, const TString& identifier, TType& type, + TIntermTyped*& initializer) +{ + // + // Make the qualifier make sense, given that there is an initializer. + // + if (initializer == nullptr) { + if (type.getQualifier().storage == EvqConst || + type.getQualifier().storage == EvqConstReadOnly) { + initializer = intermediate.makeAggregate(loc); + warn(loc, "variable with qualifier 'const' not initialized; zero initializing", identifier.c_str(), ""); + } + } +} + +// +// See if the identifier is a built-in symbol that can be redeclared, and if so, +// copy the symbol table's read-only built-in variable to the current +// global level, where it can be modified based on the passed in type. +// +// Returns nullptr if no redeclaration took place; meaning a normal declaration still +// needs to occur for it, not necessarily an error. +// +// 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*/) +{ + if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) + return nullptr; + + return nullptr; +} + +// +// Generate index to the array element in a structure buffer (SSBO) +// +TIntermTyped* HlslParseContext::indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const +{ + // Bail out if not a struct buffer + if (buffer == nullptr || ! isStructBufferType(buffer->getType())) + return nullptr; + + // Runtime sized array is always the last element. + const TTypeList* bufferStruct = buffer->getType().getStruct(); + TIntermTyped* arrayPosition = intermediate.addConstantUnion(unsigned(bufferStruct->size()-1), loc); + + TIntermTyped* argArray = intermediate.addIndex(EOpIndexDirectStruct, buffer, arrayPosition, loc); + argArray->setType(*(*bufferStruct)[bufferStruct->size()-1].type); + + return argArray; +} + +// +// IFF type is a structuredbuffer/byteaddressbuffer type, return the content +// (template) type. E.g, StructuredBuffer -> MyType. Else return nullptr. +// +TType* HlslParseContext::getStructBufferContentType(const TType& type) const +{ + if (type.getBasicType() != EbtBlock || type.getQualifier().storage != EvqBuffer) + return nullptr; + + const int memberCount = (int)type.getStruct()->size(); + assert(memberCount > 0); + + TType* contentType = (*type.getStruct())[memberCount-1].type; + + return contentType->isUnsizedArray() ? contentType : nullptr; +} + +// +// If an existing struct buffer has a sharable type, then share it. +// +void HlslParseContext::shareStructBufferType(TType& type) +{ + // PackOffset must be equivalent to share types on a per-member basis. + // Note: cannot use auto type due to recursion. Thus, this is a std::function. + const std::function + compareQualifiers = [&](TType& lhs, TType& rhs) -> bool { + if (lhs.getQualifier().layoutOffset != rhs.getQualifier().layoutOffset) + return false; + + if (lhs.isStruct() != rhs.isStruct()) + return false; + + if (lhs.isStruct() && rhs.isStruct()) { + if (lhs.getStruct()->size() != rhs.getStruct()->size()) + return false; + + for (int i = 0; i < int(lhs.getStruct()->size()); ++i) + if (!compareQualifiers(*(*lhs.getStruct())[i].type, *(*rhs.getStruct())[i].type)) + return false; + } + + return true; + }; + + // We need to compare certain qualifiers in addition to the type. + const auto typeEqual = [compareQualifiers](TType& lhs, TType& rhs) -> bool { + if (lhs.getQualifier().readonly != rhs.getQualifier().readonly) + return false; + + // If both are structures, recursively look for packOffset equality + // as well as type equality. + return compareQualifiers(lhs, rhs) && lhs == rhs; + }; + + // This is an exhaustive O(N) search, but real world shaders have + // only a small number of these. + for (int idx = 0; idx < int(structBufferTypes.size()); ++idx) { + // If the deep structure matches, modulo qualifiers, use it + if (typeEqual(*structBufferTypes[idx], type)) { + type.shallowCopy(*structBufferTypes[idx]); + return; + } + } + + // Otherwise, remember it: + TType* typeCopy = new TType; + typeCopy->shallowCopy(type); + structBufferTypes.push_back(typeCopy); +} + +void HlslParseContext::paramFix(TType& type) +{ + switch (type.getQualifier().storage) { + case EvqConst: + type.getQualifier().storage = EvqConstReadOnly; + break; + case EvqGlobal: + case EvqUniform: + case EvqTemporary: + type.getQualifier().storage = EvqIn; + break; + case EvqBuffer: + { + // SSBO parameter. These do not go through the declareBlock path since they are fn parameters. + correctUniform(type.getQualifier()); + TQualifier bufferQualifier = globalBufferDefaults; + mergeObjectLayoutQualifiers(bufferQualifier, type.getQualifier(), true); + bufferQualifier.storage = type.getQualifier().storage; + bufferQualifier.readonly = type.getQualifier().readonly; + bufferQualifier.coherent = type.getQualifier().coherent; + bufferQualifier.declaredBuiltIn = type.getQualifier().declaredBuiltIn; + type.getQualifier() = bufferQualifier; + break; + } + default: + break; + } +} + +void HlslParseContext::specializationCheck(const TSourceLoc& loc, const TType& type, const char* op) +{ + if (type.containsSpecializationSize()) + error(loc, "can't use with types containing arrays sized with a specialization constant", op, ""); +} + +// +// Layout qualifier stuff. +// + +// Put the id's layout qualification into the public type, for qualifiers not having a number set. +// This is before we know any type information for error checking. +void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qualifier, TString& id) +{ + std::transform(id.begin(), id.end(), id.begin(), ::tolower); + + if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { + qualifier.layoutMatrix = ElmRowMajor; + return; + } + if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { + qualifier.layoutMatrix = ElmColumnMajor; + return; + } + if (id == "push_constant") { + requireVulkan(loc, "push_constant"); + qualifier.layoutPushConstant = true; + return; + } + if (language == EShLangGeometry || language == EShLangTessEvaluation) { + if (id == TQualifier::getGeometryString(ElgTriangles)) { + // publicType.shaderQualifiers.geometry = ElgTriangles; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (language == EShLangGeometry) { + if (id == TQualifier::getGeometryString(ElgPoints)) { + // publicType.shaderQualifiers.geometry = ElgPoints; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgLineStrip)) { + // publicType.shaderQualifiers.geometry = ElgLineStrip; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgLines)) { + // publicType.shaderQualifiers.geometry = ElgLines; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgLinesAdjacency)) { + // publicType.shaderQualifiers.geometry = ElgLinesAdjacency; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgTrianglesAdjacency)) { + // publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgTriangleStrip)) { + // publicType.shaderQualifiers.geometry = ElgTriangleStrip; + warn(loc, "ignored", id.c_str(), ""); + return; + } + } else { + assert(language == EShLangTessEvaluation); + + // input primitive + if (id == TQualifier::getGeometryString(ElgTriangles)) { + // publicType.shaderQualifiers.geometry = ElgTriangles; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgQuads)) { + // publicType.shaderQualifiers.geometry = ElgQuads; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getGeometryString(ElgIsolines)) { + // publicType.shaderQualifiers.geometry = ElgIsolines; + warn(loc, "ignored", id.c_str(), ""); + return; + } + + // vertex spacing + if (id == TQualifier::getVertexSpacingString(EvsEqual)) { + // publicType.shaderQualifiers.spacing = EvsEqual; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getVertexSpacingString(EvsFractionalEven)) { + // publicType.shaderQualifiers.spacing = EvsFractionalEven; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getVertexSpacingString(EvsFractionalOdd)) { + // publicType.shaderQualifiers.spacing = EvsFractionalOdd; + warn(loc, "ignored", id.c_str(), ""); + return; + } + + // triangle order + if (id == TQualifier::getVertexOrderString(EvoCw)) { + // publicType.shaderQualifiers.order = EvoCw; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == TQualifier::getVertexOrderString(EvoCcw)) { + // publicType.shaderQualifiers.order = EvoCcw; + warn(loc, "ignored", id.c_str(), ""); + return; + } + + // point mode + if (id == "point_mode") { + // publicType.shaderQualifiers.pointMode = true; + warn(loc, "ignored", id.c_str(), ""); + return; + } + } + } + if (language == EShLangFragment) { + if (id == "origin_upper_left") { + // publicType.shaderQualifiers.originUpperLeft = true; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "pixel_center_integer") { + // publicType.shaderQualifiers.pixelCenterInteger = true; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "early_fragment_tests") { + // publicType.shaderQualifiers.earlyFragmentTests = true; + warn(loc, "ignored", id.c_str(), ""); + return; + } + for (TLayoutDepth depth = (TLayoutDepth)(EldNone + 1); depth < EldCount; depth = (TLayoutDepth)(depth + 1)) { + if (id == TQualifier::getLayoutDepthString(depth)) { + // publicType.shaderQualifiers.layoutDepth = depth; + warn(loc, "ignored", id.c_str(), ""); + return; + } + } + if (id.compare(0, 13, "blend_support") == 0) { + bool found = false; + for (TBlendEquationShift be = (TBlendEquationShift)0; be < EBlendCount; be = (TBlendEquationShift)(be + 1)) { + if (id == TQualifier::getBlendEquationString(be)) { + requireExtensions(loc, 1, &E_GL_KHR_blend_equation_advanced, "blend equation"); + intermediate.addBlendEquation(be); + // publicType.shaderQualifiers.blendEquation = true; + warn(loc, "ignored", id.c_str(), ""); + found = true; + break; + } + } + if (! found) + error(loc, "unknown blend equation", "blend_support", ""); + return; + } + } + error(loc, "unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)", id.c_str(), ""); +} + +// Put the id's layout qualifier value into the public type, for qualifiers having a number set. +// This is before we know any type information for error checking. +void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qualifier, TString& id, + const TIntermTyped* node) +{ + const char* feature = "layout-id value"; + // const char* nonLiteralFeature = "non-literal layout-id value"; + + integerCheck(node, feature); + const TIntermConstantUnion* constUnion = node->getAsConstantUnion(); + int value = 0; + if (constUnion) { + value = constUnion->getConstArray()[0].getIConst(); + } + + std::transform(id.begin(), id.end(), id.begin(), ::tolower); + + if (id == "offset") { + qualifier.layoutOffset = value; + return; + } else if (id == "align") { + // "The specified alignment must be a power of 2, or a compile-time error results." + if (! IsPow2(value)) + error(loc, "must be a power of 2", "align", ""); + else + qualifier.layoutAlign = value; + return; + } else if (id == "location") { + if ((unsigned int)value >= TQualifier::layoutLocationEnd) + error(loc, "location is too large", id.c_str(), ""); + else + qualifier.layoutLocation = value; + return; + } else if (id == "set") { + if ((unsigned int)value >= TQualifier::layoutSetEnd) + error(loc, "set is too large", id.c_str(), ""); + else + qualifier.layoutSet = value; + return; + } else if (id == "binding") { + if ((unsigned int)value >= TQualifier::layoutBindingEnd) + error(loc, "binding is too large", id.c_str(), ""); + else + qualifier.layoutBinding = value; + return; + } else if (id == "component") { + if ((unsigned)value >= TQualifier::layoutComponentEnd) + error(loc, "component is too large", id.c_str(), ""); + else + qualifier.layoutComponent = value; + return; + } else if (id.compare(0, 4, "xfb_") == 0) { + // "Any shader making any static use (after preprocessing) of any of these + // *xfb_* qualifiers will cause the shader to be in a transform feedback + // capturing mode and hence responsible for describing the transform feedback + // setup." + intermediate.setXfbMode(); + if (id == "xfb_buffer") { + // "It is a compile-time error to specify an *xfb_buffer* that is greater than + // the implementation-dependent constant gl_MaxTransformFeedbackBuffers." + if (value >= resources.maxTransformFeedbackBuffers) + error(loc, "buffer is too large:", id.c_str(), "gl_MaxTransformFeedbackBuffers is %d", + resources.maxTransformFeedbackBuffers); + if (value >= (int)TQualifier::layoutXfbBufferEnd) + error(loc, "buffer is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbBufferEnd - 1); + else + qualifier.layoutXfbBuffer = value; + return; + } else if (id == "xfb_offset") { + if (value >= (int)TQualifier::layoutXfbOffsetEnd) + error(loc, "offset is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbOffsetEnd - 1); + else + qualifier.layoutXfbOffset = value; + return; + } else if (id == "xfb_stride") { + // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the + // implementation-dependent constant gl_MaxTransformFeedbackInterleavedComponents." + if (value > 4 * resources.maxTransformFeedbackInterleavedComponents) + error(loc, "1/4 stride is too large:", id.c_str(), "gl_MaxTransformFeedbackInterleavedComponents is %d", + resources.maxTransformFeedbackInterleavedComponents); + else if (value >= (int)TQualifier::layoutXfbStrideEnd) + error(loc, "stride is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbStrideEnd - 1); + if (value < (int)TQualifier::layoutXfbStrideEnd) + qualifier.layoutXfbStride = value; + return; + } + } + + if (id == "input_attachment_index") { + requireVulkan(loc, "input_attachment_index"); + if (value >= (int)TQualifier::layoutAttachmentEnd) + error(loc, "attachment index is too large", id.c_str(), ""); + else + qualifier.layoutAttachment = value; + return; + } + if (id == "constant_id") { + setSpecConstantId(loc, qualifier, value); + return; + } + + switch (language) { + case EShLangVertex: + break; + + case EShLangTessControl: + if (id == "vertices") { + if (value == 0) + error(loc, "must be greater than 0", "vertices", ""); + else + // publicType.shaderQualifiers.vertices = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + break; + + case EShLangTessEvaluation: + break; + + case EShLangGeometry: + if (id == "invocations") { + if (value == 0) + error(loc, "must be at least 1", "invocations", ""); + else + // publicType.shaderQualifiers.invocations = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "max_vertices") { + // publicType.shaderQualifiers.vertices = value; + warn(loc, "ignored", id.c_str(), ""); + if (value > resources.maxGeometryOutputVertices) + error(loc, "too large, must be less than gl_MaxGeometryOutputVertices", "max_vertices", ""); + return; + } + if (id == "stream") { + qualifier.layoutStream = value; + return; + } + break; + + case EShLangFragment: + if (id == "index") { + qualifier.layoutIndex = value; + return; + } + break; + + case EShLangCompute: + if (id.compare(0, 11, "local_size_") == 0) { + if (id == "local_size_x") { + // publicType.shaderQualifiers.localSize[0] = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "local_size_y") { + // publicType.shaderQualifiers.localSize[1] = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "local_size_z") { + // publicType.shaderQualifiers.localSize[2] = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (spvVersion.spv != 0) { + if (id == "local_size_x_id") { + // publicType.shaderQualifiers.localSizeSpecId[0] = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "local_size_y_id") { + // publicType.shaderQualifiers.localSizeSpecId[1] = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + if (id == "local_size_z_id") { + // publicType.shaderQualifiers.localSizeSpecId[2] = value; + warn(loc, "ignored", id.c_str(), ""); + return; + } + } + } + break; + + default: + break; + } + + error(loc, "there is no such layout identifier for this stage taking an assigned value", id.c_str(), ""); +} + +void HlslParseContext::setSpecConstantId(const TSourceLoc& loc, TQualifier& qualifier, int value) +{ + if (value >= (int)TQualifier::layoutSpecConstantIdEnd) { + error(loc, "specialization-constant id is too large", "constant_id", ""); + } else { + qualifier.layoutSpecConstantId = value; + qualifier.specConstant = true; + if (! intermediate.addUsedConstantId(value)) + error(loc, "specialization-constant id already used", "constant_id", ""); + } + return; +} + +// Merge any layout qualifier information from src into dst, leaving everything else in dst alone +// +// "More than one layout qualifier may appear in a single declaration. +// Additionally, the same layout-qualifier-name can occur multiple times +// within a layout qualifier or across multiple layout qualifiers in the +// same declaration. When the same layout-qualifier-name occurs +// multiple times, in a single declaration, the last occurrence overrides +// the former occurrence(s). Further, if such a layout-qualifier-name +// will effect subsequent declarations or other observable behavior, it +// is only the last occurrence that will have any effect, behaving as if +// the earlier occurrence(s) within the declaration are not present. +// This is also true for overriding layout-qualifier-names, where one +// overrides the other (e.g., row_major vs. column_major); only the last +// occurrence has any effect." +// +void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifier& src, bool inheritOnly) +{ + if (src.hasMatrix()) + dst.layoutMatrix = src.layoutMatrix; + if (src.hasPacking()) + dst.layoutPacking = src.layoutPacking; + + if (src.hasStream()) + dst.layoutStream = src.layoutStream; + + if (src.hasFormat()) + dst.layoutFormat = src.layoutFormat; + + if (src.hasXfbBuffer()) + dst.layoutXfbBuffer = src.layoutXfbBuffer; + + if (src.hasAlign()) + dst.layoutAlign = src.layoutAlign; + + if (! inheritOnly) { + if (src.hasLocation()) + dst.layoutLocation = src.layoutLocation; + if (src.hasComponent()) + dst.layoutComponent = src.layoutComponent; + if (src.hasIndex()) + dst.layoutIndex = src.layoutIndex; + + if (src.hasOffset()) + dst.layoutOffset = src.layoutOffset; + + if (src.hasSet()) + dst.layoutSet = src.layoutSet; + if (src.layoutBinding != TQualifier::layoutBindingEnd) + dst.layoutBinding = src.layoutBinding; + + if (src.hasXfbStride()) + dst.layoutXfbStride = src.layoutXfbStride; + if (src.hasXfbOffset()) + dst.layoutXfbOffset = src.layoutXfbOffset; + if (src.hasAttachment()) + dst.layoutAttachment = src.layoutAttachment; + if (src.hasSpecConstantId()) + dst.layoutSpecConstantId = src.layoutSpecConstantId; + + if (src.layoutPushConstant) + dst.layoutPushConstant = true; + } +} + + +// +// Look up a function name in the symbol table, and make sure it is a function. +// +// First, look for an exact match. If there is none, use the generic selector +// TParseContextBase::selectFunction() to find one, parameterized by the +// convertible() and better() predicates defined below. +// +// Return the function symbol if found, otherwise nullptr. +// +const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, TFunction& call, bool& builtIn, int& thisDepth, + TIntermTyped*& args) +{ + if (symbolTable.isFunctionNameVariable(call.getName())) { + error(loc, "can't use function syntax on variable", call.getName().c_str(), ""); + return nullptr; + } + + // first, look for an exact match + bool dummyScope; + TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn, &dummyScope, &thisDepth); + if (symbol) + return symbol->getAsFunction(); + + // no exact match, use the generic selector, parameterized by the GLSL rules + + // create list of candidates to send + TVector candidateList; + symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); + + // These built-in ops can accept any type, so we bypass the argument selection + if (candidateList.size() == 1 && builtIn && + (candidateList[0]->getBuiltInOp() == EOpMethodAppend || + candidateList[0]->getBuiltInOp() == EOpMethodRestartStrip || + candidateList[0]->getBuiltInOp() == EOpMethodIncrementCounter || + candidateList[0]->getBuiltInOp() == EOpMethodDecrementCounter || + candidateList[0]->getBuiltInOp() == EOpMethodAppend || + candidateList[0]->getBuiltInOp() == EOpMethodConsume)) { + return candidateList[0]; + } + + bool allowOnlyUpConversions = true; + + // can 'from' convert to 'to'? + const auto convertible = [&](const TType& from, const TType& to, TOperator op, int arg) -> bool { + if (from == to) + return true; + + // no aggregate conversions + if (from.isArray() || to.isArray() || + from.isStruct() || to.isStruct()) + return false; + + switch (op) { + case EOpInterlockedAdd: + case EOpInterlockedAnd: + case EOpInterlockedCompareExchange: + case EOpInterlockedCompareStore: + case EOpInterlockedExchange: + case EOpInterlockedMax: + case EOpInterlockedMin: + case EOpInterlockedOr: + case EOpInterlockedXor: + // We do not promote the texture or image type for these ocodes. Normally that would not + // be an issue because it's a buffer, but we haven't decomposed the opcode yet, and at this + // stage it's merely e.g, a basic integer type. + // + // Instead, we want to promote other arguments, but stay within the same family. In other + // words, InterlockedAdd(RWBuffer, ...) will always use the int flavor, never the uint flavor, + // but it is allowed to promote its other arguments. + if (arg == 0) + return false; + break; + case EOpMethodSample: + case EOpMethodSampleBias: + case EOpMethodSampleCmp: + case EOpMethodSampleCmpLevelZero: + case EOpMethodSampleGrad: + case EOpMethodSampleLevel: + case EOpMethodLoad: + case EOpMethodGetDimensions: + case EOpMethodGetSamplePosition: + case EOpMethodGather: + case EOpMethodCalculateLevelOfDetail: + case EOpMethodCalculateLevelOfDetailUnclamped: + case EOpMethodGatherRed: + case EOpMethodGatherGreen: + case EOpMethodGatherBlue: + case EOpMethodGatherAlpha: + case EOpMethodGatherCmp: + case EOpMethodGatherCmpRed: + case EOpMethodGatherCmpGreen: + case EOpMethodGatherCmpBlue: + case EOpMethodGatherCmpAlpha: + case EOpMethodAppend: + case EOpMethodRestartStrip: + // those are method calls, the object type can not be changed + // they are equal if the dim and type match (is dim sufficient?) + if (arg == 0) + return from.getSampler().type == to.getSampler().type && + from.getSampler().arrayed == to.getSampler().arrayed && + from.getSampler().shadow == to.getSampler().shadow && + from.getSampler().ms == to.getSampler().ms && + from.getSampler().dim == to.getSampler().dim; + break; + default: + break; + } + + // basic types have to be convertible + if (allowOnlyUpConversions) + if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall)) + return false; + + // shapes have to be convertible + if ((from.isScalarOrVec1() && to.isScalarOrVec1()) || + (from.isScalarOrVec1() && to.isVector()) || + (from.isScalarOrVec1() && to.isMatrix()) || + (from.isVector() && to.isVector() && from.getVectorSize() >= to.getVectorSize())) + return true; + + // TODO: what are the matrix rules? they go here + + return false; + }; + + // Is 'to2' a better conversion than 'to1'? + // Ties should not be considered as better. + // Assumes 'convertible' already said true. + const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool { + // exact match is always better than mismatch + if (from == to2) + return from != to1; + if (from == to1) + return false; + + // shape changes are always worse + if (from.isScalar() || from.isVector()) { + if (from.getVectorSize() == to2.getVectorSize() && + from.getVectorSize() != to1.getVectorSize()) + return true; + if (from.getVectorSize() == to1.getVectorSize() && + from.getVectorSize() != to2.getVectorSize()) + return false; + } + + // Handle sampler betterness: An exact sampler match beats a non-exact match. + // (If we just looked at basic type, all EbtSamplers would look the same). + // If any type is not a sampler, just use the linearize function below. + if (from.getBasicType() == EbtSampler && to1.getBasicType() == EbtSampler && to2.getBasicType() == EbtSampler) { + // We can ignore the vector size in the comparison. + TSampler to1Sampler = to1.getSampler(); + TSampler to2Sampler = to2.getSampler(); + + to1Sampler.vectorSize = to2Sampler.vectorSize = from.getSampler().vectorSize; + + if (from.getSampler() == to2Sampler) + return from.getSampler() != to1Sampler; + if (from.getSampler() == to1Sampler) + return false; + } + + // Might or might not be changing shape, which means basic type might + // or might not match, so within that, the question is how big a + // basic-type conversion is being done. + // + // Use a hierarchy of domains, translated to order of magnitude + // in a linearized view: + // - floating-point vs. integer + // - 32 vs. 64 bit (or width in general) + // - bool vs. non bool + // - signed vs. not signed + const auto linearize = [](const TBasicType& basicType) -> int { + switch (basicType) { + case EbtBool: return 1; + case EbtInt: return 10; + case EbtUint: return 11; + case EbtInt64: return 20; + case EbtUint64: return 21; + case EbtFloat: return 100; + case EbtDouble: return 110; + default: return 0; + } + }; + + return abs(linearize(to2.getBasicType()) - linearize(from.getBasicType())) < + abs(linearize(to1.getBasicType()) - linearize(from.getBasicType())); + }; + + // for ambiguity reporting + bool tie = false; + + // send to the generic selector + const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); + + if (bestMatch == nullptr) { + // If there is nothing selected by allowing only up-conversions (to a larger linearize() value), + // we instead try down-conversions, which are valid in HLSL, but not preferred if there are any + // upconversions possible. + allowOnlyUpConversions = false; + bestMatch = selectFunction(candidateList, call, convertible, better, tie); + } + + if (bestMatch == nullptr) { + error(loc, "no matching overloaded function found", call.getName().c_str(), ""); + return nullptr; + } + + // For built-ins, we can convert across the arguments. This will happen in several steps: + // Step 1: If there's an exact match, use it. + // Step 2a: Otherwise, get the operator from the best match and promote arguments: + // Step 2b: reconstruct the TFunction based on the new arg types + // Step 3: Re-select after type promotion is applied, to find proper candidate. + if (builtIn) { + // Step 1: If there's an exact match, use it. + if (call.getMangledName() == bestMatch->getMangledName()) + return bestMatch; + + // Step 2a: Otherwise, get the operator from the best match and promote arguments as if we + // are that kind of operator. + if (args != nullptr) { + // The arg list can be a unary node, or an aggregate. We have to handle both. + // We will use the normal promote() facilities, which require an interm node. + TIntermOperator* promote = nullptr; + + if (call.getParamCount() == 1) { + promote = new TIntermUnary(bestMatch->getBuiltInOp()); + promote->getAsUnaryNode()->setOperand(args->getAsTyped()); + } else { + promote = new TIntermAggregate(bestMatch->getBuiltInOp()); + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + + if (! intermediate.promote(promote)) + return nullptr; + + // Obtain the promoted arg list. + if (call.getParamCount() == 1) { + args = promote->getAsUnaryNode()->getOperand(); + } else { + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + } + + // Step 2b: reconstruct the TFunction based on the new arg types + TFunction convertedCall(&call.getName(), call.getType(), call.getBuiltInOp()); + + if (args->getAsAggregate()) { + // Handle aggregates: put all args into the new function call + for (int arg=0; arggetAsAggregate()->getSequence().size()); ++arg) { + // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly. + TParameter param = { 0, new TType, nullptr }; + param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType()); + convertedCall.addParameter(param); + } + } else if (args->getAsUnaryNode()) { + // Handle unaries: put all args into the new function call + TParameter param = { 0, new TType, nullptr }; + param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else if (args->getAsTyped()) { + // Handle bare e.g, floats, not in an aggregate. + TParameter param = { 0, new TType, nullptr }; + param.type->shallowCopy(args->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else { + assert(0); // unknown argument list. + return nullptr; + } + + // Step 3: Re-select after type promotion, to find proper candidate + // send to the generic selector + bestMatch = selectFunction(candidateList, convertedCall, convertible, better, tie); + + // At this point, there should be no tie. + } + + if (tie) + error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); + + // Append default parameter values if needed + if (!tie && bestMatch != nullptr) { + for (int defParam = call.getParamCount(); defParam < bestMatch->getParamCount(); ++defParam) { + handleFunctionArgument(&call, args, (*bestMatch)[defParam].defaultValue); + } + } + + return bestMatch; +} + +// +// 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, const TString& identifier, const TType& parseType) +{ + TVariable* typeSymbol = new TVariable(&identifier, parseType, true); + if (! symbolTable.insert(*typeSymbol)) + error(loc, "name already defined", "typedef", identifier.c_str()); +} + +// Do everything necessary to handle a struct declaration, including +// making IO aliases because HLSL allows mixed IO in a struct that specializes +// based on the usage (input, output, uniform, none). +void HlslParseContext::declareStruct(const TSourceLoc& loc, TString& structName, TType& type) +{ + // If it was named, which means the type can be reused later, add + // it to the symbol table. (Unless it's a block, in which + // case the name is not a type.) + if (type.getBasicType() == EbtBlock || structName.size() == 0) + return; + + TVariable* userTypeDef = new TVariable(&structName, type, true); + if (! symbolTable.insert(*userTypeDef)) { + error(loc, "redefinition", structName.c_str(), "struct"); + return; + } + + // See if we need IO aliases for the structure typeList + + const auto condAlloc = [](bool pred, TTypeList*& list) { + if (pred && list == nullptr) + list = new TTypeList; + }; + + tIoKinds newLists = { nullptr, nullptr, nullptr }; // allocate for each kind found + for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) { + condAlloc(hasUniform(member->type->getQualifier()), newLists.uniform); + condAlloc( hasInput(member->type->getQualifier()), newLists.input); + condAlloc( hasOutput(member->type->getQualifier()), newLists.output); + + if (member->type->isStruct()) { + auto it = ioTypeMap.find(member->type->getStruct()); + if (it != ioTypeMap.end()) { + condAlloc(it->second.uniform != nullptr, newLists.uniform); + condAlloc(it->second.input != nullptr, newLists.input); + condAlloc(it->second.output != nullptr, newLists.output); + } + } + } + if (newLists.uniform == nullptr && + newLists.input == nullptr && + newLists.output == nullptr) { + // Won't do any IO caching, clear up the type and get out now. + for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) + clearUniformInputOutput(member->type->getQualifier()); + return; + } + + // We have IO involved. + + // Make a pure typeList for the symbol table, and cache side copies of IO versions. + for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) { + const auto inheritStruct = [&](TTypeList* s, TTypeLoc& ioMember) { + if (s != nullptr) { + ioMember.type = new TType; + ioMember.type->shallowCopy(*member->type); + ioMember.type->setStruct(s); + } + }; + const auto newMember = [&](TTypeLoc& m) { + if (m.type == nullptr) { + m.type = new TType; + m.type->shallowCopy(*member->type); + } + }; + + TTypeLoc newUniformMember = { nullptr, member->loc }; + TTypeLoc newInputMember = { nullptr, member->loc }; + TTypeLoc newOutputMember = { nullptr, member->loc }; + if (member->type->isStruct()) { + // swap in an IO child if there is one + auto it = ioTypeMap.find(member->type->getStruct()); + if (it != ioTypeMap.end()) { + inheritStruct(it->second.uniform, newUniformMember); + inheritStruct(it->second.input, newInputMember); + inheritStruct(it->second.output, newOutputMember); + } + } + if (newLists.uniform) { + newMember(newUniformMember); + + // inherit default matrix layout (changeable via #pragma pack_matrix), if none given. + if (member->type->isMatrix() && member->type->getQualifier().layoutMatrix == ElmNone) + newUniformMember.type->getQualifier().layoutMatrix = globalUniformDefaults.layoutMatrix; + + correctUniform(newUniformMember.type->getQualifier()); + newLists.uniform->push_back(newUniformMember); + } + if (newLists.input) { + newMember(newInputMember); + correctInput(newInputMember.type->getQualifier()); + newLists.input->push_back(newInputMember); + } + if (newLists.output) { + newMember(newOutputMember); + correctOutput(newOutputMember.type->getQualifier()); + newLists.output->push_back(newOutputMember); + } + + // make original pure + clearUniformInputOutput(member->type->getQualifier()); + } + ioTypeMap[type.getStruct()] = newLists; +} + +// Lookup a user-type by name. +// If found, fill in the type and return the defining symbol. +// If not found, return nullptr. +TSymbol* HlslParseContext::lookupUserType(const TString& typeName, TType& type) +{ + TSymbol* symbol = symbolTable.find(typeName); + if (symbol && symbol->getAsVariable() && symbol->getAsVariable()->isUserType()) { + type.shallowCopy(symbol->getType()); + return symbol; + } else + return nullptr; +} + +// +// Do everything necessary to handle a variable (non-block) declaration. +// Either redeclaring a variable, or making a new one, updating the symbol +// table, and all error checking. +// +// Returns a subtree node that computes an initializer, if needed. +// Returns nullptr if there is no code to execute for initialization. +// +// '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, const TString& identifier, TType& type, + TIntermTyped* initializer) +{ + if (voidErrorCheck(loc, identifier, type.getBasicType())) + return nullptr; + + // Global consts with initializers that are non-const act like EvqGlobal in HLSL. + // This test is implicitly recursive, because initializers propagate constness + // up the aggregate node tree during creation. E.g, for: + // { { 1, 2 }, { 3, 4 } } + // the initializer list is marked EvqConst at the top node, and remains so here. However: + // { 1, { myvar, 2 }, 3 } + // is not a const intializer, and still becomes EvqGlobal here. + + const bool nonConstInitializer = (initializer != nullptr && initializer->getQualifier().storage != EvqConst); + + if (type.getQualifier().storage == EvqConst && symbolTable.atGlobalLevel() && nonConstInitializer) { + // Force to global + type.getQualifier().storage = EvqGlobal; + } + + // make const and initialization consistent + fixConstInit(loc, identifier, type, initializer); + + // Check for redeclaration of built-ins and/or attempting to declare a reserved name + TSymbol* symbol = nullptr; + + inheritGlobalDefaults(type.getQualifier()); + + const bool flattenVar = shouldFlatten(type, type.getQualifier().storage, true); + + // correct IO in the type + switch (type.getQualifier().storage) { + case EvqGlobal: + case EvqTemporary: + clearUniformInputOutput(type.getQualifier()); + break; + case EvqUniform: + case EvqBuffer: + correctUniform(type.getQualifier()); + if (type.isStruct()) { + auto it = ioTypeMap.find(type.getStruct()); + if (it != ioTypeMap.end()) + type.setStruct(it->second.uniform); + } + + break; + default: + break; + } + + // Declare the variable + if (type.isArray()) { + // array case + declareArray(loc, identifier, type, symbol, !flattenVar); + } else { + // non-array case + if (symbol == nullptr) + symbol = declareNonArray(loc, identifier, type, !flattenVar); + else if (type != symbol->getType()) + error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); + } + + if (symbol == nullptr) + return nullptr; + + if (flattenVar) + flatten(*symbol->getAsVariable(), symbolTable.atGlobalLevel()); + + if (initializer == nullptr) + return nullptr; + + // Deal with initializer + TVariable* variable = symbol->getAsVariable(); + if (variable == nullptr) { + error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); + return nullptr; + } + return executeInitializer(loc, initializer, variable); +} + +// Pick up global defaults from the provide global defaults into dst. +void HlslParseContext::inheritGlobalDefaults(TQualifier& dst) const +{ + if (dst.storage == EvqVaryingOut) { + if (! dst.hasStream() && language == EShLangGeometry) + dst.layoutStream = globalOutputDefaults.layoutStream; + if (! dst.hasXfbBuffer()) + dst.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; + } +} + +// +// Make an internal-only variable whose name is for debug purposes only +// and won't be searched for. Callers will only use the return value to use +// the variable, not the name to look it up. It is okay if the name +// is the same as other names; there won't be any conflict. +// +TVariable* HlslParseContext::makeInternalVariable(const char* name, const TType& type) const +{ + TString* nameString = NewPoolTString(name); + TVariable* variable = new TVariable(nameString, type); + symbolTable.makeInternalVariable(*variable); + + return variable; +} + +// Make a symbol node holding a new internal temporary variable. +TIntermSymbol* HlslParseContext::makeInternalVariableNode(const TSourceLoc& loc, const char* name, + const TType& type) const +{ + TVariable* tmpVar = makeInternalVariable(name, type); + tmpVar->getWritableType().getQualifier().makeTemporary(); + + return intermediate.addSymbol(*tmpVar, loc); +} + +// +// Declare a non-array variable, the main point being there is no redeclaration +// for resizing allowed. +// +// Return the successfully declared variable. +// +TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, const TString& identifier, const TType& type, + bool track) +{ + // make a new variable + TVariable* variable = new TVariable(&identifier, type); + + // add variable to symbol table + if (symbolTable.insert(*variable)) { + if (track && symbolTable.atGlobalLevel()) + trackLinkage(*variable); + return variable; + } + + error(loc, "redefinition", variable->getName().c_str(), ""); + return nullptr; +} + +// +// Handle all types of initializers from the grammar. +// +// Returning nullptr just means there is no code to execute to handle the +// initializer, which will, for example, be the case for constant initializers. +// +TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyped* initializer, TVariable* variable) +{ + // + // Identifier must be of type constant, a global, or a temporary, and + // starting at version 120, desktop allows uniforms to have initializers. + // + TStorageQualifier qualifier = variable->getType().getQualifier().storage; + + // + // If the initializer was from braces { ... }, we convert the whole subtree to a + // constructor-style subtree, allowing the rest of the code to operate + // identically for both kinds of initializers. + // + // + // Type can't be deduced from the initializer list, so a skeletal type to + // follow has to be passed in. Constness and specialization-constness + // should be deduced bottom up, not dictated by the skeletal type. + // + TType skeletalType; + skeletalType.shallowCopy(variable->getType()); + skeletalType.getQualifier().makeTemporary(); + if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull) + initializer = convertInitializerList(loc, skeletalType, initializer, nullptr); + if (initializer == nullptr) { + // error recovery; don't leave const without constant values + if (qualifier == EvqConst) + variable->getWritableType().getQualifier().storage = EvqTemporary; + return nullptr; + } + + // Fix outer arrayness if variable is unsized, getting size from the initializer + if (initializer->getType().isSizedArray() && variable->getType().isUnsizedArray()) + variable->getWritableType().changeOuterArraySize(initializer->getType().getOuterArraySize()); + + // Inner arrayness can also get set by an initializer + if (initializer->getType().isArrayOfArrays() && variable->getType().isArrayOfArrays() && + initializer->getType().getArraySizes()->getNumDims() == + variable->getType().getArraySizes()->getNumDims()) { + // adopt unsized sizes from the initializer's sizes + for (int d = 1; d < variable->getType().getArraySizes()->getNumDims(); ++d) { + if (variable->getType().getArraySizes()->getDimSize(d) == UnsizedArraySize) { + variable->getWritableType().getArraySizes()->setDimSize(d, + initializer->getType().getArraySizes()->getDimSize(d)); + } + } + } + + // Uniform and global consts require a constant initializer + if (qualifier == EvqUniform && initializer->getType().getQualifier().storage != EvqConst) { + error(loc, "uniform initializers must be constant", "=", "'%s'", variable->getType().getCompleteString().c_str()); + variable->getWritableType().getQualifier().storage = EvqTemporary; + return nullptr; + } + + // Const variables require a constant initializer + if (qualifier == EvqConst) { + if (initializer->getType().getQualifier().storage != EvqConst) { + variable->getWritableType().getQualifier().storage = EvqConstReadOnly; + qualifier = EvqConstReadOnly; + } + } + + if (qualifier == EvqConst || qualifier == EvqUniform) { + // Compile-time tagging of the variable with its constant value... + + initializer = intermediate.addConversion(EOpAssign, variable->getType(), initializer); + if (initializer != nullptr && variable->getType() != initializer->getType()) + initializer = intermediate.addUniShapeConversion(EOpAssign, variable->getType(), initializer); + if (initializer == nullptr || !initializer->getAsConstantUnion() || + variable->getType() != initializer->getType()) { + error(loc, "non-matching or non-convertible constant type for const initializer", + variable->getType().getStorageQualifierString(), ""); + variable->getWritableType().getQualifier().storage = EvqTemporary; + return nullptr; + } + + variable->setConstArray(initializer->getAsConstantUnion()->getConstArray()); + } else { + // normal assigning of a value to a variable... + specializationCheck(loc, initializer->getType(), "initializer"); + TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc); + TIntermNode* initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer); + if (initNode == nullptr) + assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString()); + return initNode; + } + + return nullptr; +} + +// +// Reprocess any initializer-list { ... } parts of the initializer. +// Need to hierarchically assign correct types and implicit +// conversions. Will do this mimicking the same process used for +// creating a constructor-style initializer, ensuring we get the +// same form. +// +// Returns a node representing an expression for the initializer list expressed +// as the correct type. +// +// Returns nullptr if there is an error. +// +TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, const TType& type, + TIntermTyped* initializer, TIntermTyped* scalarInit) +{ + // Will operate recursively. Once a subtree is found that is constructor style, + // everything below it is already good: Only the "top part" of the initializer + // can be an initializer list, where "top part" can extend for several (or all) levels. + + // see if we have bottomed out in the tree within the initializer-list part + TIntermAggregate* initList = initializer->getAsAggregate(); + if (initList == nullptr || initList->getOp() != EOpNull) { + // We don't have a list, but if it's a scalar and the 'type' is a + // composite, we need to lengthen below to make it useful. + // Otherwise, this is an already formed object to initialize with. + if (type.isScalar() || !initializer->getType().isScalar()) + return initializer; + else + initList = intermediate.makeAggregate(initializer); + } + + // Of the initializer-list set of nodes, need to process bottom up, + // so recurse deep, then process on the way up. + + // Go down the tree here... + if (type.isArray()) { + // The type's array might be unsized, which could be okay, so base sizes on the size of the aggregate. + // Later on, initializer execution code will deal with array size logic. + TType arrayType; + arrayType.shallowCopy(type); // sharing struct stuff is fine + arrayType.copyArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below + + // edit array sizes to fill in unsized dimensions + if (type.isUnsizedArray()) + arrayType.changeOuterArraySize((int)initList->getSequence().size()); + + // set unsized array dimensions that can be derived from the initializer's first element + if (arrayType.isArrayOfArrays() && initList->getSequence().size() > 0) { + TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); + if (firstInit->getType().isArray() && + arrayType.getArraySizes()->getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) { + for (int d = 1; d < arrayType.getArraySizes()->getNumDims(); ++d) { + if (arrayType.getArraySizes()->getDimSize(d) == UnsizedArraySize) + arrayType.getArraySizes()->setDimSize(d, firstInit->getType().getArraySizes()->getDimSize(d - 1)); + } + } + } + + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), arrayType.getOuterArraySize(), scalarInit); + + // recursively process each element + TType elementType(arrayType, 0); // dereferenced type + for (int i = 0; i < arrayType.getOuterArraySize(); ++i) { + initList->getSequence()[i] = convertInitializerList(loc, elementType, + initList->getSequence()[i]->getAsTyped(), scalarInit); + if (initList->getSequence()[i] == nullptr) + return nullptr; + } + + return addConstructor(loc, initList, arrayType); + } else if (type.isStruct()) { + // do we have implicit assignments to opaques? + for (size_t i = initList->getSequence().size(); i < type.getStruct()->size(); ++i) { + if ((*type.getStruct())[i].type->containsOpaque()) { + error(loc, "cannot implicitly initialize opaque members", "initializer list", ""); + return nullptr; + } + } + + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), static_cast(type.getStruct()->size()), scalarInit); + + if (type.getStruct()->size() != initList->getSequence().size()) { + error(loc, "wrong number of structure members", "initializer list", ""); + return nullptr; + } + for (size_t i = 0; i < type.getStruct()->size(); ++i) { + initList->getSequence()[i] = convertInitializerList(loc, *(*type.getStruct())[i].type, + initList->getSequence()[i]->getAsTyped(), scalarInit); + if (initList->getSequence()[i] == nullptr) + return nullptr; + } + } else if (type.isMatrix()) { + if (type.computeNumComponents() == (int)initList->getSequence().size()) { + // This means the matrix is initialized component-wise, rather than as + // a series of rows and columns. We can just use the list directly as + // a constructor; no further processing needed. + } else { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getMatrixCols(), scalarInit); + + if (type.getMatrixCols() != (int)initList->getSequence().size()) { + error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString().c_str()); + return nullptr; + } + TType vectorType(type, 0); // dereferenced type + for (int i = 0; i < type.getMatrixCols(); ++i) { + initList->getSequence()[i] = convertInitializerList(loc, vectorType, + initList->getSequence()[i]->getAsTyped(), scalarInit); + if (initList->getSequence()[i] == nullptr) + return nullptr; + } + } + } else if (type.isVector()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getVectorSize(), scalarInit); + + // error check; we're at bottom, so work is finished below + if (type.getVectorSize() != (int)initList->getSequence().size()) { + error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", + type.getCompleteString().c_str()); + return nullptr; + } + } else if (type.isScalar()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), 1, scalarInit); + + if ((int)initList->getSequence().size() != 1) { + error(loc, "scalar expected one element:", "initializer list", type.getCompleteString().c_str()); + return nullptr; + } + } else { + error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str()); + return nullptr; + } + + // Now that the subtree is processed, process this node as if the + // initializer list is a set of arguments to a constructor. + TIntermTyped* emulatedConstructorArguments; + if (initList->getSequence().size() == 1) + emulatedConstructorArguments = initList->getSequence()[0]->getAsTyped(); + else + emulatedConstructorArguments = initList; + + return addConstructor(loc, emulatedConstructorArguments, type); +} + +// Lengthen list to be long enough to cover any gap from the current list size +// to 'size'. If the list is longer, do nothing. +// The value to lengthen with is the default for short lists. +// +// By default, lists that are too short due to lack of initializers initialize to zero. +// Alternatively, it could be a scalar initializer for a structure. Both cases are handled, +// based on whether something is passed in as 'scalarInit'. +// +// 'scalarInit' must be safe to use each time this is called (no side effects replication). +// +void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list, int size, TIntermTyped* scalarInit) +{ + for (int c = (int)list.size(); c < size; ++c) { + if (scalarInit == nullptr) + list.push_back(intermediate.addConstantUnion(0, loc)); + else + list.push_back(scalarInit); + } +} + +// +// Test for the correctness of the parameters passed to various constructor functions +// and also convert them to the right data type, if allowed and required. +// +// Returns nullptr for an error or the constructed node (aggregate or typed) for no error. +// +TIntermTyped* HlslParseContext::handleConstructor(const TSourceLoc& loc, TIntermTyped* node, const TType& type) +{ + if (node == nullptr) + return nullptr; + + // Construct identical type + if (type == node->getType()) + return node; + + // Handle the idiom "(struct type)" + if (type.isStruct() && isScalarConstructor(node)) { + // 'node' will almost always get used multiple times, so should not be used directly, + // it would create a DAG instead of a tree, which might be okay (would + // like to formalize that for constants and symbols), but if it has + // side effects, they would get executed multiple times, which is not okay. + if (node->getAsConstantUnion() == nullptr && node->getAsSymbolNode() == nullptr) { + TIntermAggregate* seq = intermediate.makeAggregate(loc); + TIntermSymbol* copy = makeInternalVariableNode(loc, "scalarCopy", node->getType()); + seq = intermediate.growAggregate(seq, intermediate.addBinaryNode(EOpAssign, copy, node, loc)); + seq = intermediate.growAggregate(seq, convertInitializerList(loc, type, intermediate.makeAggregate(loc), copy)); + seq->setOp(EOpComma); + seq->setType(type); + return seq; + } else + return convertInitializerList(loc, type, intermediate.makeAggregate(loc), node); + } + + return addConstructor(loc, node, type); +} + +// Add a constructor, either from the grammar, or other programmatic reasons. +// +// 'node' is what to construct from. +// 'type' is what type to construct. +// +// Returns the constructed object. +// Return nullptr if it can't be done. +// +TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermTyped* node, const TType& type) +{ + TIntermAggregate* aggrNode = node->getAsAggregate(); + TOperator op = intermediate.mapTypeToConstructorOp(type); + + // Combined texture-sampler constructors are completely semantic checked + // in constructorTextureSamplerError() + if (op == EOpConstructTextureSampler) + return intermediate.setAggregateOperator(aggrNode, op, type, loc); + + TTypeList::const_iterator memberTypes; + if (op == EOpConstructStruct) + memberTypes = type.getStruct()->begin(); + + TType elementType; + if (type.isArray()) { + TType dereferenced(type, 0); + elementType.shallowCopy(dereferenced); + } else + elementType.shallowCopy(type); + + bool singleArg; + if (aggrNode != nullptr) { + if (aggrNode->getOp() != EOpNull) + singleArg = true; + else + singleArg = false; + } else + singleArg = true; + + TIntermTyped *newNode; + if (singleArg) { + // Handle array -> array conversion + // Constructing an array of one type from an array of another type is allowed, + // assuming there are enough components available (semantic-checked earlier). + if (type.isArray() && node->isArray()) + newNode = convertArray(node, type); + + // If structure constructor or array constructor is being called + // for only one parameter inside the aggregate, we need to call constructAggregate function once. + else if (type.isArray()) + newNode = constructAggregate(node, elementType, 1, node->getLoc()); + else if (op == EOpConstructStruct) + newNode = constructAggregate(node, *(*memberTypes).type, 1, node->getLoc()); + else { + // shape conversion for matrix constructor from scalar. HLSL semantics are: scalar + // is replicated into every element of the matrix (not just the diagnonal), so + // that is handled specially here. + if (type.isMatrix() && node->getType().isScalarOrVec1()) + node = intermediate.addShapeConversion(type, node); + + newNode = constructBuiltIn(type, op, node, node->getLoc(), false); + } + + if (newNode && (type.isArray() || op == EOpConstructStruct)) + newNode = intermediate.setAggregateOperator(newNode, EOpConstructStruct, type, loc); + + return newNode; + } + + // + // Handle list of arguments. + // + TIntermSequence& sequenceVector = aggrNode->getSequence(); // Stores the information about the parameter to the constructor + // if the structure constructor contains more than one parameter, then construct + // each parameter + + int paramCount = 0; // keeps a track of the constructor parameter number being checked + + // for each parameter to the constructor call, check to see if the right type is passed or convert them + // to the right type if possible (and allowed). + // for structure constructors, just check if the right type is passed, no conversion is allowed. + + for (TIntermSequence::iterator p = sequenceVector.begin(); + p != sequenceVector.end(); p++, paramCount++) { + if (type.isArray()) + newNode = constructAggregate(*p, elementType, paramCount + 1, node->getLoc()); + else if (op == EOpConstructStruct) + newNode = constructAggregate(*p, *(memberTypes[paramCount]).type, paramCount + 1, node->getLoc()); + else + newNode = constructBuiltIn(type, op, (*p)->getAsTyped(), node->getLoc(), true); + + if (newNode) + *p = newNode; + else + return nullptr; + } + + TIntermTyped* constructor = intermediate.setAggregateOperator(aggrNode, op, type, loc); + + return constructor; +} + +// Function for constructor implementation. Calls addUnaryMath with appropriate EOp value +// for the parameter to the constructor (passed to this function). Essentially, it converts +// the parameter types correctly. If a constructor expects an int (like ivec2) and is passed a +// float, then float is converted to int. +// +// Returns nullptr for an error or the constructed node. +// +TIntermTyped* HlslParseContext::constructBuiltIn(const TType& type, TOperator op, TIntermTyped* node, + const TSourceLoc& loc, bool subset) +{ + TIntermTyped* newNode; + TOperator basicOp; + + // + // First, convert types as needed. + // + switch (op) { + case EOpConstructF16Vec2: + case EOpConstructF16Vec3: + case EOpConstructF16Vec4: + case EOpConstructF16Mat2x2: + case EOpConstructF16Mat2x3: + case EOpConstructF16Mat2x4: + case EOpConstructF16Mat3x2: + case EOpConstructF16Mat3x3: + case EOpConstructF16Mat3x4: + case EOpConstructF16Mat4x2: + case EOpConstructF16Mat4x3: + case EOpConstructF16Mat4x4: + case EOpConstructFloat16: + basicOp = EOpConstructFloat16; + break; + + case EOpConstructVec2: + case EOpConstructVec3: + case EOpConstructVec4: + case EOpConstructMat2x2: + case EOpConstructMat2x3: + case EOpConstructMat2x4: + case EOpConstructMat3x2: + case EOpConstructMat3x3: + case EOpConstructMat3x4: + case EOpConstructMat4x2: + case EOpConstructMat4x3: + case EOpConstructMat4x4: + case EOpConstructFloat: + basicOp = EOpConstructFloat; + break; + + case EOpConstructDVec2: + case EOpConstructDVec3: + case EOpConstructDVec4: + case EOpConstructDMat2x2: + case EOpConstructDMat2x3: + case EOpConstructDMat2x4: + case EOpConstructDMat3x2: + case EOpConstructDMat3x3: + case EOpConstructDMat3x4: + case EOpConstructDMat4x2: + case EOpConstructDMat4x3: + case EOpConstructDMat4x4: + case EOpConstructDouble: + basicOp = EOpConstructDouble; + break; + + case EOpConstructI16Vec2: + case EOpConstructI16Vec3: + case EOpConstructI16Vec4: + case EOpConstructInt16: + basicOp = EOpConstructInt16; + break; + + case EOpConstructIVec2: + case EOpConstructIVec3: + case EOpConstructIVec4: + case EOpConstructIMat2x2: + case EOpConstructIMat2x3: + case EOpConstructIMat2x4: + case EOpConstructIMat3x2: + case EOpConstructIMat3x3: + case EOpConstructIMat3x4: + case EOpConstructIMat4x2: + case EOpConstructIMat4x3: + case EOpConstructIMat4x4: + case EOpConstructInt: + basicOp = EOpConstructInt; + break; + + case EOpConstructU16Vec2: + case EOpConstructU16Vec3: + case EOpConstructU16Vec4: + case EOpConstructUint16: + basicOp = EOpConstructUint16; + break; + + case EOpConstructUVec2: + case EOpConstructUVec3: + case EOpConstructUVec4: + case EOpConstructUMat2x2: + case EOpConstructUMat2x3: + case EOpConstructUMat2x4: + case EOpConstructUMat3x2: + case EOpConstructUMat3x3: + case EOpConstructUMat3x4: + case EOpConstructUMat4x2: + case EOpConstructUMat4x3: + case EOpConstructUMat4x4: + case EOpConstructUint: + basicOp = EOpConstructUint; + break; + + case EOpConstructBVec2: + case EOpConstructBVec3: + case EOpConstructBVec4: + case EOpConstructBMat2x2: + case EOpConstructBMat2x3: + case EOpConstructBMat2x4: + case EOpConstructBMat3x2: + case EOpConstructBMat3x3: + case EOpConstructBMat3x4: + case EOpConstructBMat4x2: + case EOpConstructBMat4x3: + case EOpConstructBMat4x4: + case EOpConstructBool: + basicOp = EOpConstructBool; + break; + + default: + error(loc, "unsupported construction", "", ""); + + return nullptr; + } + newNode = intermediate.addUnaryMath(basicOp, node, node->getLoc()); + if (newNode == nullptr) { + error(loc, "can't convert", "constructor", ""); + return nullptr; + } + + // + // Now, if there still isn't an operation to do the construction, and we need one, add one. + // + + // Otherwise, skip out early. + if (subset || (newNode != node && newNode->getType() == type)) + return newNode; + + // setAggregateOperator will insert a new node for the constructor, as needed. + return intermediate.setAggregateOperator(newNode, op, type, loc); +} + +// Convert the array in node to the requested type, which is also an array. +// Returns nullptr on failure, otherwise returns aggregate holding the list of +// elements needed to construct the array. +TIntermTyped* HlslParseContext::convertArray(TIntermTyped* node, const TType& type) +{ + assert(node->isArray() && type.isArray()); + if (node->getType().computeNumComponents() < type.computeNumComponents()) + return nullptr; + + // TODO: write an argument replicator, for the case the argument should not be + // executed multiple times, yet multiple copies are needed. + + TIntermTyped* constructee = node->getAsTyped(); + // track where we are in consuming the argument + int constructeeElement = 0; + int constructeeComponent = 0; + + // bump up to the next component to consume + const auto getNextComponent = [&]() { + TIntermTyped* component; + component = handleBracketDereference(node->getLoc(), constructee, + intermediate.addConstantUnion(constructeeElement, node->getLoc())); + if (component->isVector()) + component = handleBracketDereference(node->getLoc(), component, + intermediate.addConstantUnion(constructeeComponent, node->getLoc())); + // bump component pointer up + ++constructeeComponent; + if (constructeeComponent == constructee->getVectorSize()) { + constructeeComponent = 0; + ++constructeeElement; + } + return component; + }; + + // make one subnode per constructed array element + TIntermAggregate* constructor = nullptr; + TType derefType(type, 0); + TType speculativeComponentType(derefType, 0); + TType* componentType = derefType.isVector() ? &speculativeComponentType : &derefType; + TOperator componentOp = intermediate.mapTypeToConstructorOp(*componentType); + TType crossType(node->getBasicType(), EvqTemporary, type.getVectorSize()); + for (int e = 0; e < type.getOuterArraySize(); ++e) { + // construct an element + TIntermTyped* elementArg; + if (type.getVectorSize() == constructee->getVectorSize()) { + // same element shape + elementArg = handleBracketDereference(node->getLoc(), constructee, + intermediate.addConstantUnion(e, node->getLoc())); + } else { + // mismatched element shapes + if (type.getVectorSize() == 1) + elementArg = getNextComponent(); + else { + // make a vector + TIntermAggregate* elementConstructee = nullptr; + for (int c = 0; c < type.getVectorSize(); ++c) + elementConstructee = intermediate.growAggregate(elementConstructee, getNextComponent()); + elementArg = addConstructor(node->getLoc(), elementConstructee, crossType); + } + } + // convert basic types + elementArg = intermediate.addConversion(componentOp, derefType, elementArg); + if (elementArg == nullptr) + return nullptr; + // combine with top-level constructor + constructor = intermediate.growAggregate(constructor, elementArg); + } + + return constructor; +} + +// This function tests for the type of the parameters to the structure or array constructor. Raises +// an error message if the expected type does not match the parameter passed to the constructor. +// +// Returns nullptr for an error or the input node itself if the expected and the given parameter types match. +// +TIntermTyped* HlslParseContext::constructAggregate(TIntermNode* node, const TType& type, int paramCount, + const TSourceLoc& loc) +{ + // Handle cases that map more 1:1 between constructor arguments and constructed. + TIntermTyped* converted = intermediate.addConversion(EOpConstructStruct, type, node->getAsTyped()); + if (converted == nullptr || converted->getType() != type) { + error(loc, "", "constructor", "cannot convert parameter %d from '%s' to '%s'", paramCount, + node->getAsTyped()->getType().getCompleteString().c_str(), type.getCompleteString().c_str()); + + return nullptr; + } + + return converted; +} + +// +// Do everything needed to add an interface block. +// +void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TString* instanceName) +{ + assert(type.getWritableStruct() != nullptr); + + // Clean up top-level decorations that don't belong. + switch (type.getQualifier().storage) { + case EvqUniform: + case EvqBuffer: + correctUniform(type.getQualifier()); + break; + case EvqVaryingIn: + correctInput(type.getQualifier()); + break; + case EvqVaryingOut: + correctOutput(type.getQualifier()); + break; + default: + break; + } + + TTypeList& typeList = *type.getWritableStruct(); + // fix and check for member storage qualifiers and types that don't belong within a block + for (unsigned int member = 0; member < typeList.size(); ++member) { + TType& memberType = *typeList[member].type; + TQualifier& memberQualifier = memberType.getQualifier(); + const TSourceLoc& memberLoc = typeList[member].loc; + globalQualifierFix(memberLoc, memberQualifier); + memberQualifier.storage = type.getQualifier().storage; + + if (memberType.isStruct()) { + // clean up and pick up the right set of decorations + auto it = ioTypeMap.find(memberType.getStruct()); + switch (type.getQualifier().storage) { + case EvqUniform: + case EvqBuffer: + correctUniform(type.getQualifier()); + if (it != ioTypeMap.end() && it->second.uniform) + memberType.setStruct(it->second.uniform); + break; + case EvqVaryingIn: + correctInput(type.getQualifier()); + if (it != ioTypeMap.end() && it->second.input) + memberType.setStruct(it->second.input); + break; + case EvqVaryingOut: + correctOutput(type.getQualifier()); + if (it != ioTypeMap.end() && it->second.output) + memberType.setStruct(it->second.output); + break; + default: + break; + } + } + } + + // Make default block qualification, and adjust the member qualifications + + TQualifier defaultQualification; + switch (type.getQualifier().storage) { + case EvqUniform: defaultQualification = globalUniformDefaults; break; + case EvqBuffer: defaultQualification = globalBufferDefaults; break; + case EvqVaryingIn: defaultQualification = globalInputDefaults; break; + case EvqVaryingOut: defaultQualification = globalOutputDefaults; break; + default: defaultQualification.clear(); break; + } + + // Special case for "push_constant uniform", which has a default of std430, + // contrary to normal uniform defaults, and can't have a default tracked for it. + if (type.getQualifier().layoutPushConstant && ! type.getQualifier().hasPacking()) + type.getQualifier().layoutPacking = ElpStd430; + + // fix and check for member layout qualifiers + + mergeObjectLayoutQualifiers(defaultQualification, type.getQualifier(), true); + + bool memberWithLocation = false; + bool memberWithoutLocation = false; + for (unsigned int member = 0; member < typeList.size(); ++member) { + TQualifier& memberQualifier = typeList[member].type->getQualifier(); + const TSourceLoc& memberLoc = typeList[member].loc; + if (memberQualifier.hasStream()) { + if (defaultQualification.layoutStream != memberQualifier.layoutStream) + error(memberLoc, "member cannot contradict block", "stream", ""); + } + + // "This includes a block's inheritance of the + // current global default buffer, a block member's inheritance of the block's + // buffer, and the requirement that any *xfb_buffer* declared on a block + // member must match the buffer inherited from the block." + if (memberQualifier.hasXfbBuffer()) { + if (defaultQualification.layoutXfbBuffer != memberQualifier.layoutXfbBuffer) + error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_buffer", ""); + } + + if (memberQualifier.hasLocation()) { + switch (type.getQualifier().storage) { + case EvqVaryingIn: + case EvqVaryingOut: + memberWithLocation = true; + break; + default: + break; + } + } else + memberWithoutLocation = true; + + TQualifier newMemberQualification = defaultQualification; + mergeQualifiers(newMemberQualification, memberQualifier); + memberQualifier = newMemberQualification; + } + + // Process the members + fixBlockLocations(loc, type.getQualifier(), typeList, memberWithLocation, memberWithoutLocation); + fixBlockXfbOffsets(type.getQualifier(), typeList); + fixBlockUniformOffsets(type.getQualifier(), typeList); + + // reverse merge, so that currentBlockQualifier now has all layout information + // (can't use defaultQualification directly, it's missing other non-layout-default-class qualifiers) + mergeObjectLayoutQualifiers(type.getQualifier(), defaultQualification, true); + + // + // Build and add the interface block as a new type named 'blockName' + // + + // Use the instance name as the interface name if one exists, else the block name. + const TString& interfaceName = (instanceName && !instanceName->empty()) ? *instanceName : type.getTypeName(); + + TType blockType(&typeList, interfaceName, type.getQualifier()); + if (type.isArray()) + blockType.transferArraySizes(type.getArraySizes()); + + // Add the variable, as anonymous or named instanceName. + // Make an anonymous variable if no name was provided. + if (instanceName == nullptr) + instanceName = NewPoolTString(""); + + TVariable& variable = *new TVariable(instanceName, blockType); + if (! symbolTable.insert(variable)) { + if (*instanceName == "") + error(loc, "nameless block contains a member that already has a name at global scope", + "" /* blockName->c_str() */, ""); + else + error(loc, "block instance name redefinition", variable.getName().c_str(), ""); + + return; + } + + // Save it in the AST for linker use. + if (symbolTable.atGlobalLevel()) + trackLinkage(variable); +} + +// +// "For a block, this process applies to the entire block, or until the first member +// is reached that has a location layout qualifier. When a block member is declared with a location +// qualifier, its location comes from that qualifier: The member's location qualifier overrides the block-level +// declaration. Subsequent members are again assigned consecutive locations, based on the newest location, +// until the next member declared with a location qualifier. The values used for locations do not have to be +// declared in increasing order." +void HlslParseContext::fixBlockLocations(const TSourceLoc& loc, TQualifier& qualifier, TTypeList& typeList, bool memberWithLocation, bool memberWithoutLocation) +{ + // "If a block has no block-level location layout qualifier, it is required that either all or none of its members + // have a location layout qualifier, or a compile-time error results." + if (! qualifier.hasLocation() && memberWithLocation && memberWithoutLocation) + error(loc, "either the block needs a location, or all members need a location, or no members have a location", "location", ""); + else { + if (memberWithLocation) { + // remove any block-level location and make it per *every* member + int nextLocation = 0; // by the rule above, initial value is not relevant + if (qualifier.hasAnyLocation()) { + nextLocation = qualifier.layoutLocation; + qualifier.layoutLocation = TQualifier::layoutLocationEnd; + if (qualifier.hasComponent()) { + // "It is a compile-time error to apply the *component* qualifier to a ... block" + error(loc, "cannot apply to a block", "component", ""); + } + if (qualifier.hasIndex()) { + error(loc, "cannot apply to a block", "index", ""); + } + } + for (unsigned int member = 0; member < typeList.size(); ++member) { + TQualifier& memberQualifier = typeList[member].type->getQualifier(); + const TSourceLoc& memberLoc = typeList[member].loc; + if (! memberQualifier.hasLocation()) { + if (nextLocation >= (int)TQualifier::layoutLocationEnd) + error(memberLoc, "location is too large", "location", ""); + memberQualifier.layoutLocation = nextLocation; + memberQualifier.layoutComponent = 0; + } + nextLocation = memberQualifier.layoutLocation + + intermediate.computeTypeLocationSize(*typeList[member].type, language); + } + } + } +} + +void HlslParseContext::fixBlockXfbOffsets(TQualifier& qualifier, TTypeList& typeList) +{ + // "If a block is qualified with xfb_offset, all its + // members are assigned transform feedback buffer offsets. If a block is not qualified with xfb_offset, any + // members of that block not qualified with an xfb_offset will not be assigned transform feedback buffer + // offsets." + + if (! qualifier.hasXfbBuffer() || ! qualifier.hasXfbOffset()) + return; + + int nextOffset = qualifier.layoutXfbOffset; + for (unsigned int member = 0; member < typeList.size(); ++member) { + TQualifier& memberQualifier = typeList[member].type->getQualifier(); + bool containsDouble = false; + int memberSize = intermediate.computeTypeXfbSize(*typeList[member].type, containsDouble); + // see if we need to auto-assign an offset to this member + if (! memberQualifier.hasXfbOffset()) { + // "if applied to an aggregate containing a double, the offset must also be a multiple of 8" + if (containsDouble) + RoundToPow2(nextOffset, 8); + memberQualifier.layoutXfbOffset = nextOffset; + } else + nextOffset = memberQualifier.layoutXfbOffset; + nextOffset += memberSize; + } + + // The above gave all block members an offset, so we can take it off the block now, + // which will avoid double counting the offset usage. + qualifier.layoutXfbOffset = TQualifier::layoutXfbOffsetEnd; +} + +// Calculate and save the offset of each block member, using the recursively +// defined block offset rules and the user-provided offset and align. +// +// Also, compute and save the total size of the block. For the block's size, arrayness +// is not taken into account, as each element is backed by a separate buffer. +// +void HlslParseContext::fixBlockUniformOffsets(const TQualifier& qualifier, TTypeList& typeList) +{ + if (! qualifier.isUniformOrBuffer()) + return; + if (qualifier.layoutPacking != ElpStd140 && qualifier.layoutPacking != ElpStd430) + return; + + int offset = 0; + int memberSize; + for (unsigned int member = 0; member < typeList.size(); ++member) { + TQualifier& memberQualifier = typeList[member].type->getQualifier(); + const TSourceLoc& memberLoc = typeList[member].loc; + + // "When align is applied to an array, it effects only the start of the array, not the array's internal stride." + + // modify just the children's view of matrix layout, if there is one for this member + TLayoutMatrix subMatrixLayout = typeList[member].type->getQualifier().layoutMatrix; + int dummyStride; + int memberAlignment = intermediate.getBaseAlignment(*typeList[member].type, memberSize, dummyStride, + qualifier.layoutPacking == ElpStd140, + subMatrixLayout != ElmNone + ? subMatrixLayout == ElmRowMajor + : qualifier.layoutMatrix == ElmRowMajor); + if (memberQualifier.hasOffset()) { + // "The specified offset must be a multiple + // of the base alignment of the type of the block member it qualifies, or a compile-time error results." + if (! IsMultipleOfPow2(memberQualifier.layoutOffset, memberAlignment)) + error(memberLoc, "must be a multiple of the member's alignment", "offset", ""); + + // "The offset qualifier forces the qualified member to start at or after the specified + // integral-constant expression, which will be its byte offset from the beginning of the buffer. + // "The actual offset of a member is computed as + // follows: If offset was declared, start with that offset, otherwise start with the next available offset." + offset = std::max(offset, memberQualifier.layoutOffset); + } + + // "The actual alignment of a member will be the greater of the specified align alignment and the standard + // (e.g., std140) base alignment for the member's type." + if (memberQualifier.hasAlign()) + memberAlignment = std::max(memberAlignment, memberQualifier.layoutAlign); + + // "If the resulting offset is not a multiple of the actual alignment, + // increase it to the first offset that is a multiple of + // the actual alignment." + RoundToPow2(offset, memberAlignment); + typeList[member].type->getQualifier().layoutOffset = offset; + offset += memberSize; + } +} + +// For an identifier that is already declared, add more qualification to it. +void HlslParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier qualifier, const TString& identifier) +{ + TSymbol* symbol = symbolTable.find(identifier); + if (symbol == nullptr) { + error(loc, "identifier not previously declared", identifier.c_str(), ""); + return; + } + if (symbol->getAsFunction()) { + error(loc, "cannot re-qualify a function name", identifier.c_str(), ""); + return; + } + + if (qualifier.isAuxiliary() || + qualifier.isMemory() || + qualifier.isInterpolation() || + qualifier.hasLayout() || + qualifier.storage != EvqTemporary || + qualifier.precision != EpqNone) { + error(loc, "cannot add storage, auxiliary, memory, interpolation, layout, or precision qualifier to an existing variable", identifier.c_str(), ""); + return; + } + + // For read-only built-ins, add a new symbol for holding the modified qualifier. + // This will bring up an entire block, if a block type has to be modified (e.g., gl_Position inside a block) + if (symbol->isReadOnly()) + symbol = symbolTable.copyUp(symbol); + + if (qualifier.invariant) { + if (intermediate.inIoAccessed(identifier)) + error(loc, "cannot change qualification after use", "invariant", ""); + symbol->getWritableType().getQualifier().invariant = true; + } else if (qualifier.noContraction) { + if (intermediate.inIoAccessed(identifier)) + error(loc, "cannot change qualification after use", "precise", ""); + symbol->getWritableType().getQualifier().noContraction = true; + } else if (qualifier.specConstant) { + symbol->getWritableType().getQualifier().makeSpecConstant(); + if (qualifier.hasSpecConstantId()) + symbol->getWritableType().getQualifier().layoutSpecConstantId = qualifier.layoutSpecConstantId; + } else + warn(loc, "unknown requalification", "", ""); +} + +void HlslParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier qualifier, TIdentifierList& identifiers) +{ + for (unsigned int i = 0; i < identifiers.size(); ++i) + addQualifierToExisting(loc, qualifier, *identifiers[i]); +} + +// +// Update the intermediate for the given input geometry +// +bool HlslParseContext::handleInputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) +{ + switch (geometry) { + case ElgPoints: // fall through + case ElgLines: // ... + case ElgTriangles: // ... + case ElgLinesAdjacency: // ... + case ElgTrianglesAdjacency: // ... + if (! intermediate.setInputPrimitive(geometry)) { + error(loc, "input primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + + default: + error(loc, "cannot apply to 'in'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + +// +// Update the intermediate for the given output geometry +// +bool HlslParseContext::handleOutputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) +{ + // If this is not a geometry shader, ignore. It might be a mixed shader including several stages. + // Since that's an OK situation, return true for success. + if (language != EShLangGeometry) + return true; + + switch (geometry) { + case ElgPoints: + case ElgLineStrip: + case ElgTriangleStrip: + if (! intermediate.setOutputPrimitive(geometry)) { + error(loc, "output primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + default: + error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + +// +// Selection attributes +// +void HlslParseContext::handleSelectionAttributes(const TSourceLoc& loc, TIntermSelection* selection, + const TAttributes& attributes) +{ + if (selection == nullptr) + return; + + for (auto it = attributes.begin(); it != attributes.end(); ++it) { + switch (it->name) { + case EatFlatten: + selection->setFlatten(); + break; + case EatBranch: + selection->setDontFlatten(); + break; + default: + warn(loc, "attribute does not apply to a selection", "", ""); + break; + } + } +} + +// +// Switch attributes +// +void HlslParseContext::handleSwitchAttributes(const TSourceLoc& loc, TIntermSwitch* selection, + const TAttributes& attributes) +{ + if (selection == nullptr) + return; + + for (auto it = attributes.begin(); it != attributes.end(); ++it) { + switch (it->name) { + case EatFlatten: + selection->setFlatten(); + break; + case EatBranch: + selection->setDontFlatten(); + break; + default: + warn(loc, "attribute does not apply to a switch", "", ""); + break; + } + } +} + +// +// Loop attributes +// +void HlslParseContext::handleLoopAttributes(const TSourceLoc& loc, TIntermLoop* loop, + const TAttributes& attributes) +{ + if (loop == nullptr) + return; + + for (auto it = attributes.begin(); it != attributes.end(); ++it) { + switch (it->name) { + case EatUnroll: + loop->setUnroll(); + break; + case EatLoop: + loop->setDontUnroll(); + break; + default: + warn(loc, "attribute does not apply to a loop", "", ""); + break; + } + } +} + +// +// Updating default qualifier for the case of a declaration with just a qualifier, +// no type, block, or identifier. +// +void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, const TPublicType& publicType) +{ + if (publicType.shaderQualifiers.vertices != TQualifier::layoutNotSet) { + assert(language == EShLangTessControl || language == EShLangGeometry); + // const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices"; + } + if (publicType.shaderQualifiers.invocations != TQualifier::layoutNotSet) { + if (! intermediate.setInvocations(publicType.shaderQualifiers.invocations)) + error(loc, "cannot change previously set layout value", "invocations", ""); + } + if (publicType.shaderQualifiers.geometry != ElgNone) { + if (publicType.qualifier.storage == EvqVaryingIn) { + switch (publicType.shaderQualifiers.geometry) { + case ElgPoints: + case ElgLines: + case ElgLinesAdjacency: + case ElgTriangles: + case ElgTrianglesAdjacency: + case ElgQuads: + case ElgIsolines: + break; + default: + error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), + ""); + } + } else if (publicType.qualifier.storage == EvqVaryingOut) { + handleOutputGeometry(loc, publicType.shaderQualifiers.geometry); + } else + error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), + GetStorageQualifierString(publicType.qualifier.storage)); + } + if (publicType.shaderQualifiers.spacing != EvsNone) + intermediate.setVertexSpacing(publicType.shaderQualifiers.spacing); + if (publicType.shaderQualifiers.order != EvoNone) + intermediate.setVertexOrder(publicType.shaderQualifiers.order); + if (publicType.shaderQualifiers.pointMode) + intermediate.setPointMode(); + for (int i = 0; i < 3; ++i) { + if (publicType.shaderQualifiers.localSize[i] > 1) { + int max = 0; + switch (i) { + case 0: max = resources.maxComputeWorkGroupSizeX; break; + case 1: max = resources.maxComputeWorkGroupSizeY; break; + case 2: max = resources.maxComputeWorkGroupSizeZ; break; + default: break; + } + if (intermediate.getLocalSize(i) > (unsigned int)max) + error(loc, "too large; see gl_MaxComputeWorkGroupSize", "local_size", ""); + + // Fix the existing constant gl_WorkGroupSize with this new information. + TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); + workGroupSize->getWritableConstArray()[i].setUConst(intermediate.getLocalSize(i)); + } + if (publicType.shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) { + intermediate.setLocalSizeSpecId(i, publicType.shaderQualifiers.localSizeSpecId[i]); + // Set the workgroup built-in variable as a specialization constant + TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); + workGroupSize->getWritableType().getQualifier().specConstant = true; + } + } + if (publicType.shaderQualifiers.earlyFragmentTests) + intermediate.setEarlyFragmentTests(); + + const TQualifier& qualifier = publicType.qualifier; + + switch (qualifier.storage) { + case EvqUniform: + if (qualifier.hasMatrix()) + globalUniformDefaults.layoutMatrix = qualifier.layoutMatrix; + if (qualifier.hasPacking()) + globalUniformDefaults.layoutPacking = qualifier.layoutPacking; + break; + case EvqBuffer: + if (qualifier.hasMatrix()) + globalBufferDefaults.layoutMatrix = qualifier.layoutMatrix; + if (qualifier.hasPacking()) + globalBufferDefaults.layoutPacking = qualifier.layoutPacking; + break; + case EvqVaryingIn: + break; + case EvqVaryingOut: + if (qualifier.hasStream()) + globalOutputDefaults.layoutStream = qualifier.layoutStream; + if (qualifier.hasXfbBuffer()) + globalOutputDefaults.layoutXfbBuffer = qualifier.layoutXfbBuffer; + if (globalOutputDefaults.hasXfbBuffer() && qualifier.hasXfbStride()) { + if (! intermediate.setXfbBufferStride(globalOutputDefaults.layoutXfbBuffer, qualifier.layoutXfbStride)) + error(loc, "all stride settings must match for xfb buffer", "xfb_stride", "%d", + qualifier.layoutXfbBuffer); + } + break; + default: + error(loc, "default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification", "", ""); + return; + } +} + +// +// Take the sequence of statements that has been built up since the last case/default, +// put it on the list of top-level nodes for the current (inner-most) switch statement, +// and follow that by the case/default we are on now. (See switch topology comment on +// TIntermSwitch.) +// +void HlslParseContext::wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode) +{ + TIntermSequence* switchSequence = switchSequenceStack.back(); + + if (statements) { + statements->setOperator(EOpSequence); + switchSequence->push_back(statements); + } + if (branchNode) { + // check all previous cases for the same label (or both are 'default') + for (unsigned int s = 0; s < switchSequence->size(); ++s) { + TIntermBranch* prevBranch = (*switchSequence)[s]->getAsBranchNode(); + if (prevBranch) { + TIntermTyped* prevExpression = prevBranch->getExpression(); + TIntermTyped* newExpression = branchNode->getAsBranchNode()->getExpression(); + if (prevExpression == nullptr && newExpression == nullptr) + error(branchNode->getLoc(), "duplicate label", "default", ""); + else if (prevExpression != nullptr && + newExpression != nullptr && + prevExpression->getAsConstantUnion() && + newExpression->getAsConstantUnion() && + prevExpression->getAsConstantUnion()->getConstArray()[0].getIConst() == + newExpression->getAsConstantUnion()->getConstArray()[0].getIConst()) + error(branchNode->getLoc(), "duplicated value", "case", ""); + } + } + switchSequence->push_back(branchNode); + } +} + +// +// Turn the top-level node sequence built up of wrapupSwitchSubsequence +// into a switch node. +// +TIntermNode* HlslParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* expression, + TIntermAggregate* lastStatements, const TAttributes& attributes) +{ + wrapupSwitchSubsequence(lastStatements, nullptr); + + if (expression == nullptr || + (expression->getBasicType() != EbtInt && expression->getBasicType() != EbtUint) || + expression->getType().isArray() || expression->getType().isMatrix() || expression->getType().isVector()) + error(loc, "condition must be a scalar integer expression", "switch", ""); + + // If there is nothing to do, drop the switch but still execute the expression + TIntermSequence* switchSequence = switchSequenceStack.back(); + if (switchSequence->size() == 0) + return expression; + + if (lastStatements == nullptr) { + // emulate a break for error recovery + lastStatements = intermediate.makeAggregate(intermediate.addBranch(EOpBreak, loc)); + lastStatements->setOperator(EOpSequence); + switchSequence->push_back(lastStatements); + } + + TIntermAggregate* body = new TIntermAggregate(EOpSequence); + body->getSequence() = *switchSequenceStack.back(); + body->setLoc(loc); + + TIntermSwitch* switchNode = new TIntermSwitch(expression, body); + switchNode->setLoc(loc); + handleSwitchAttributes(loc, switchNode, attributes); + + return switchNode; +} + +// Make a new symbol-table level that is made out of the members of a structure. +// This should be done as an anonymous struct (name is "") so that the symbol table +// finds the members with no explicit reference to a 'this' variable. +void HlslParseContext::pushThisScope(const TType& thisStruct, const TVector& functionDeclarators) +{ + // member variables + TVariable& thisVariable = *new TVariable(NewPoolTString(""), thisStruct); + symbolTable.pushThis(thisVariable); + + // member functions + for (auto it = functionDeclarators.begin(); it != functionDeclarators.end(); ++it) { + // member should have a prefix matching currentTypePrefix.back() + // but, symbol lookup within the class scope will just use the + // unprefixed name. Hence, there are two: one fully prefixed and + // one with no prefix. + TFunction& member = *it->function->clone(); + member.removePrefix(currentTypePrefix.back()); + symbolTable.insert(member); + } +} + +// Track levels of class/struct/namespace nesting with a prefix string using +// the type names separated by the scoping operator. E.g., two levels +// would look like: +// +// outer::inner +// +// The string is empty when at normal global level. +// +void HlslParseContext::pushNamespace(const TString& typeName) +{ + // make new type prefix + TString newPrefix; + if (currentTypePrefix.size() > 0) + newPrefix = currentTypePrefix.back(); + newPrefix.append(typeName); + newPrefix.append(scopeMangler); + currentTypePrefix.push_back(newPrefix); +} + +// Opposite of pushNamespace(), see above +void HlslParseContext::popNamespace() +{ + currentTypePrefix.pop_back(); +} + +// Use the class/struct nesting string to create a global name for +// a member of a class/struct. +void HlslParseContext::getFullNamespaceName(TString*& name) const +{ + if (currentTypePrefix.size() == 0) + return; + + TString* fullName = NewPoolTString(currentTypePrefix.back().c_str()); + fullName->append(*name); + name = fullName; +} + +// Helper function to add the namespace scope mangling syntax to a string. +void HlslParseContext::addScopeMangler(TString& name) +{ + name.append(scopeMangler); +} + +// Return true if this has uniform-interface like decorations. +bool HlslParseContext::hasUniform(const TQualifier& qualifier) const +{ + return qualifier.hasUniformLayout() || + qualifier.layoutPushConstant; +} + +// Potentially not the opposite of hasUniform(), as if some characteristic is +// ever used for more than one thing (e.g., uniform or input), hasUniform() should +// say it exists, but clearUniform() should leave it in place. +void HlslParseContext::clearUniform(TQualifier& qualifier) +{ + qualifier.clearUniformLayout(); + qualifier.layoutPushConstant = false; +} + +// Return false if builtIn by itself doesn't force this qualifier to be an input qualifier. +bool HlslParseContext::isInputBuiltIn(const TQualifier& qualifier) const +{ + switch (qualifier.builtIn) { + case EbvPosition: + case EbvPointSize: + return language != EShLangVertex && language != EShLangCompute && language != EShLangFragment; + case EbvClipDistance: + case EbvCullDistance: + return language != EShLangVertex && language != EShLangCompute; + case EbvFragCoord: + case EbvFace: + case EbvHelperInvocation: + case EbvLayer: + case EbvPointCoord: + case EbvSampleId: + case EbvSampleMask: + case EbvSamplePosition: + case EbvViewportIndex: + return language == EShLangFragment; + case EbvGlobalInvocationId: + case EbvLocalInvocationIndex: + case EbvLocalInvocationId: + case EbvNumWorkGroups: + case EbvWorkGroupId: + case EbvWorkGroupSize: + return language == EShLangCompute; + case EbvInvocationId: + return language == EShLangTessControl || language == EShLangTessEvaluation || language == EShLangGeometry; + case EbvPatchVertices: + return language == EShLangTessControl || language == EShLangTessEvaluation; + case EbvInstanceId: + case EbvInstanceIndex: + case EbvVertexId: + case EbvVertexIndex: + return language == EShLangVertex; + case EbvPrimitiveId: + return language == EShLangGeometry || language == EShLangFragment || language == EShLangTessControl; + case EbvTessLevelInner: + case EbvTessLevelOuter: + return language == EShLangTessEvaluation; + case EbvTessCoord: + return language == EShLangTessEvaluation; + default: + return false; + } +} + +// Return true if there are decorations to preserve for input-like storage. +bool HlslParseContext::hasInput(const TQualifier& qualifier) const +{ + if (qualifier.hasAnyLocation()) + return true; + + if (language == EShLangFragment && (qualifier.isInterpolation() || qualifier.centroid || qualifier.sample)) + return true; + + if (language == EShLangTessEvaluation && qualifier.patch) + return true; + + if (isInputBuiltIn(qualifier)) + return true; + + return false; +} + +// Return false if builtIn by itself doesn't force this qualifier to be an output qualifier. +bool HlslParseContext::isOutputBuiltIn(const TQualifier& qualifier) const +{ + switch (qualifier.builtIn) { + case EbvPosition: + case EbvPointSize: + case EbvClipVertex: + case EbvClipDistance: + case EbvCullDistance: + return language != EShLangFragment && language != EShLangCompute; + case EbvFragDepth: + case EbvFragDepthGreater: + case EbvFragDepthLesser: + case EbvSampleMask: + return language == EShLangFragment; + case EbvLayer: + case EbvViewportIndex: + return language == EShLangGeometry || language == EShLangVertex; + case EbvPrimitiveId: + return language == EShLangGeometry; + case EbvTessLevelInner: + case EbvTessLevelOuter: + return language == EShLangTessControl; + default: + return false; + } +} + +// Return true if there are decorations to preserve for output-like storage. +bool HlslParseContext::hasOutput(const TQualifier& qualifier) const +{ + if (qualifier.hasAnyLocation()) + return true; + + if (language != EShLangFragment && language != EShLangCompute && qualifier.hasXfb()) + return true; + + if (language == EShLangTessControl && qualifier.patch) + return true; + + if (language == EShLangGeometry && qualifier.hasStream()) + return true; + + if (isOutputBuiltIn(qualifier)) + return true; + + return false; +} + +// Make the IO decorations etc. be appropriate only for an input interface. +void HlslParseContext::correctInput(TQualifier& qualifier) +{ + clearUniform(qualifier); + if (language == EShLangVertex) + qualifier.clearInterstage(); + if (language != EShLangTessEvaluation) + qualifier.patch = false; + if (language != EShLangFragment) { + qualifier.clearInterpolation(); + qualifier.sample = false; + } + + qualifier.clearStreamLayout(); + qualifier.clearXfbLayout(); + + if (! isInputBuiltIn(qualifier)) + qualifier.builtIn = EbvNone; +} + +// Make the IO decorations etc. be appropriate only for an output interface. +void HlslParseContext::correctOutput(TQualifier& qualifier) +{ + clearUniform(qualifier); + if (language == EShLangFragment) + qualifier.clearInterstage(); + if (language != EShLangGeometry) + qualifier.clearStreamLayout(); + if (language == EShLangFragment) + qualifier.clearXfbLayout(); + if (language != EShLangTessControl) + qualifier.patch = false; + + switch (qualifier.builtIn) { + case EbvFragDepth: + intermediate.setDepthReplacing(); + intermediate.setDepth(EldAny); + break; + case EbvFragDepthGreater: + intermediate.setDepthReplacing(); + intermediate.setDepth(EldGreater); + qualifier.builtIn = EbvFragDepth; + break; + case EbvFragDepthLesser: + intermediate.setDepthReplacing(); + intermediate.setDepth(EldLess); + qualifier.builtIn = EbvFragDepth; + break; + default: + break; + } + + if (! isOutputBuiltIn(qualifier)) + qualifier.builtIn = EbvNone; +} + +// Make the IO decorations etc. be appropriate only for uniform type interfaces. +void HlslParseContext::correctUniform(TQualifier& qualifier) +{ + if (qualifier.declaredBuiltIn == EbvNone) + qualifier.declaredBuiltIn = qualifier.builtIn; + + qualifier.builtIn = EbvNone; + qualifier.clearInterstage(); + qualifier.clearInterstageLayout(); +} + +// Clear out all IO/Uniform stuff, so this has nothing to do with being an IO interface. +void HlslParseContext::clearUniformInputOutput(TQualifier& qualifier) +{ + clearUniform(qualifier); + correctUniform(qualifier); +} + + +// Set texture return type. Returns success (not all types are valid). +bool HlslParseContext::setTextureReturnType(TSampler& sampler, const TType& retType, const TSourceLoc& loc) +{ + // Seed the output with an invalid index. We will set it to a valid one if we can. + sampler.structReturnIndex = TSampler::noReturnStruct; + + // Arrays aren't supported. + if (retType.isArray()) { + error(loc, "Arrays not supported in texture template types", "", ""); + return false; + } + + // If return type is a vector, remember the vector size in the sampler, and return. + if (retType.isVector() || retType.isScalar()) { + sampler.vectorSize = retType.getVectorSize(); + return true; + } + + // If it wasn't a vector, it must be a struct meeting certain requirements. The requirements + // are checked below: just check for struct-ness here. + if (!retType.isStruct()) { + error(loc, "Invalid texture template type", "", ""); + return false; + } + + // TODO: Subpass doesn't handle struct returns, due to some oddities with fn overloading. + if (sampler.isSubpass()) { + error(loc, "Unimplemented: structure template type in subpass input", "", ""); + return false; + } + + TTypeList* members = retType.getWritableStruct(); + + // Check for too many or not enough structure members. + if (members->size() > 4 || members->size() == 0) { + error(loc, "Invalid member count in texture template structure", "", ""); + return false; + } + + // Error checking: We must have <= 4 total components, all of the same basic type. + unsigned totalComponents = 0; + for (unsigned m = 0; m < members->size(); ++m) { + // Check for bad member types + if (!(*members)[m].type->isScalar() && !(*members)[m].type->isVector()) { + error(loc, "Invalid texture template struct member type", "", ""); + return false; + } + + const unsigned memberVectorSize = (*members)[m].type->getVectorSize(); + totalComponents += memberVectorSize; + + // too many total member components + if (totalComponents > 4) { + error(loc, "Too many components in texture template structure type", "", ""); + return false; + } + + // All members must be of a common basic type + if ((*members)[m].type->getBasicType() != (*members)[0].type->getBasicType()) { + error(loc, "Texture template structure members must same basic type", "", ""); + return false; + } + } + + // If the structure in the return type already exists in the table, we'll use it. Otherwise, we'll make + // a new entry. This is a linear search, but it hardly ever happens, and the list cannot be very large. + for (unsigned int idx = 0; idx < textureReturnStruct.size(); ++idx) { + if (textureReturnStruct[idx] == members) { + sampler.structReturnIndex = idx; + return true; + } + } + + // It wasn't found as an existing entry. See if we have room for a new one. + if (textureReturnStruct.size() >= TSampler::structReturnSlots) { + error(loc, "Texture template struct return slots exceeded", "", ""); + return false; + } + + // Insert it in the vector that tracks struct return types. + sampler.structReturnIndex = unsigned(textureReturnStruct.size()); + textureReturnStruct.push_back(members); + + // Success! + return true; +} + +// Return the sampler return type in retType. +void HlslParseContext::getTextureReturnType(const TSampler& sampler, TType& retType) const +{ + if (sampler.hasReturnStruct()) { + assert(textureReturnStruct.size() >= sampler.structReturnIndex); + + // We land here if the texture return is a structure. + TTypeList* blockStruct = textureReturnStruct[sampler.structReturnIndex]; + + const TType resultType(blockStruct, ""); + retType.shallowCopy(resultType); + } else { + // We land here if the texture return is a vector or scalar. + const TType resultType(sampler.type, EvqTemporary, sampler.getVectorSize()); + retType.shallowCopy(resultType); + } +} + + +// Return a symbol for the tessellation linkage variable of the given TBuiltInVariable type +TIntermSymbol* HlslParseContext::findTessLinkageSymbol(TBuiltInVariable biType) const +{ + const auto it = builtInTessLinkageSymbols.find(biType); + if (it == builtInTessLinkageSymbols.end()) // if it wasn't declared by the user, return nullptr + return nullptr; + + return intermediate.addSymbol(*it->second->getAsVariable()); +} + +// Find the patch constant function (issues error, returns nullptr if not found) +const TFunction* HlslParseContext::findPatchConstantFunction(const TSourceLoc& loc) +{ + if (symbolTable.isFunctionNameVariable(patchConstantFunctionName)) { + error(loc, "can't use variable in patch constant function", patchConstantFunctionName.c_str(), ""); + return nullptr; + } + + const TString mangledName = patchConstantFunctionName + "("; + + // create list of PCF candidates + TVector candidateList; + bool builtIn; + symbolTable.findFunctionNameList(mangledName, candidateList, builtIn); + + // We have to have one and only one, or we don't know which to pick: the patchconstantfunc does not + // allow any disambiguation of overloads. + if (candidateList.empty()) { + error(loc, "patch constant function not found", patchConstantFunctionName.c_str(), ""); + return nullptr; + } + + // Based on directed experiments, it appears that if there are overloaded patchconstantfunctions, + // HLSL picks the last one in shader source order. Since that isn't yet implemented here, error + // out if there is more than one candidate. + if (candidateList.size() > 1) { + error(loc, "ambiguous patch constant function", patchConstantFunctionName.c_str(), ""); + return nullptr; + } + + return candidateList[0]; +} + +// Finalization step: Add patch constant function invocation +void HlslParseContext::addPatchConstantInvocation() +{ + TSourceLoc loc; + loc.init(); + + // If there's no patch constant function, or we're not a HS, do nothing. + if (patchConstantFunctionName.empty() || language != EShLangTessControl) + return; + + // Look for built-in variables in a function's parameter list. + const auto findBuiltIns = [&](const TFunction& function, std::set& builtIns) { + for (int p=0; pgetQualifier().storage; + + if (storage == EvqConstReadOnly) // treated identically to input + storage = EvqIn; + + if (function[p].getDeclaredBuiltIn() != EbvNone) + builtIns.insert(HlslParseContext::tInterstageIoData(function[p].getDeclaredBuiltIn(), storage)); + else + builtIns.insert(HlslParseContext::tInterstageIoData(function[p].type->getQualifier().builtIn, storage)); + } + }; + + // If we synthesize a built-in interface variable, we must add it to the linkage. + const auto addToLinkage = [&](const TType& type, const TString* name, TIntermSymbol** symbolNode) { + if (name == nullptr) { + error(loc, "unable to locate patch function parameter name", "", ""); + return; + } else { + TVariable& variable = *new TVariable(name, type); + if (! symbolTable.insert(variable)) { + error(loc, "unable to declare patch constant function interface variable", name->c_str(), ""); + return; + } + + globalQualifierFix(loc, variable.getWritableType().getQualifier()); + + if (symbolNode != nullptr) + *symbolNode = intermediate.addSymbol(variable); + + trackLinkage(variable); + } + }; + + const auto isOutputPatch = [](TFunction& patchConstantFunction, int param) { + const TType& type = *patchConstantFunction[param].type; + const TBuiltInVariable biType = patchConstantFunction[param].getDeclaredBuiltIn(); + + return type.isSizedArray() && biType == EbvOutputPatch; + }; + + // We will perform these steps. Each is in a scoped block for separation: they could + // become separate functions to make addPatchConstantInvocation shorter. + // + // 1. Union the interfaces, and create built-ins for anything present in the PCF and + // declared as a built-in variable that isn't present in the entry point's signature. + // + // 2. Synthesizes a call to the patchconstfunction using built-in variables from either main, + // or the ones we created. Matching is based on built-in type. We may use synthesized + // variables from (1) above. + // + // 2B: Synthesize per control point invocations of wrapped entry point if the PCF requires them. + // + // 3. Create a return sequence: copy the return value (if any) from the PCF to a + // (non-sanitized) output variable. In case this may involve multiple copies, such as for + // an arrayed variable, a temporary copy of the PCF output is created to avoid multiple + // indirections into a complex R-value coming from the call to the PCF. + // + // 4. Create a barrier. + // + // 5/5B. Call the PCF inside an if test for (invocation id == 0). + + TFunction* patchConstantFunctionPtr = const_cast(findPatchConstantFunction(loc)); + + if (patchConstantFunctionPtr == nullptr) + return; + + TFunction& patchConstantFunction = *patchConstantFunctionPtr; + + const int pcfParamCount = patchConstantFunction.getParamCount(); + TIntermSymbol* invocationIdSym = findTessLinkageSymbol(EbvInvocationId); + TIntermSequence& epBodySeq = entryPointFunctionBody->getAsAggregate()->getSequence(); + + int outPatchParam = -1; // -1 means there isn't one. + + // ================ Step 1A: Union Interfaces ================ + // Our patch constant function. + { + std::set pcfBuiltIns; // patch constant function built-ins + std::set epfBuiltIns; // entry point function built-ins + + assert(entryPointFunction); + assert(entryPointFunctionBody); + + findBuiltIns(patchConstantFunction, pcfBuiltIns); + findBuiltIns(*entryPointFunction, epfBuiltIns); + + // Find the set of built-ins in the PCF that are not present in the entry point. + std::set notInEntryPoint; + + notInEntryPoint = pcfBuiltIns; + + // std::set_difference not usable on unordered containers + for (auto bi = epfBuiltIns.begin(); bi != epfBuiltIns.end(); ++bi) + notInEntryPoint.erase(*bi); + + // Now we'll add those to the entry and to the linkage. + for (int p=0; pgetQualifier().storage; + + // Track whether there is an output patch param + if (isOutputPatch(patchConstantFunction, p)) { + if (outPatchParam >= 0) { + // Presently we only support one per ctrl pt input. + error(loc, "unimplemented: multiple output patches in patch constant function", "", ""); + return; + } + outPatchParam = p; + } + + if (biType != EbvNone) { + TType* paramType = patchConstantFunction[p].type->clone(); + + if (storage == EvqConstReadOnly) // treated identically to input + storage = EvqIn; + + // Presently, the only non-built-in we support is InputPatch, which is treated as + // a pseudo-built-in. + if (biType == EbvInputPatch) { + builtInTessLinkageSymbols[biType] = inputPatch; + } else if (biType == EbvOutputPatch) { + // Nothing... + } else { + // Use the original declaration type for the linkage + paramType->getQualifier().builtIn = biType; + + if (notInEntryPoint.count(tInterstageIoData(biType, storage)) == 1) + addToLinkage(*paramType, patchConstantFunction[p].name, nullptr); + } + } + } + + // If we didn't find it because the shader made one, add our own. + if (invocationIdSym == nullptr) { + TType invocationIdType(EbtUint, EvqIn, 1); + TString* invocationIdName = NewPoolTString("InvocationId"); + invocationIdType.getQualifier().builtIn = EbvInvocationId; + addToLinkage(invocationIdType, invocationIdName, &invocationIdSym); + } + + assert(invocationIdSym); + } + + TIntermTyped* pcfArguments = nullptr; + TVariable* perCtrlPtVar = nullptr; + + // ================ Step 1B: Argument synthesis ================ + // Create pcfArguments for synthesis of patchconstantfunction invocation + { + for (int p=0; pgetWritableType().getQualifier().makeTemporary(); + } + inputArg = intermediate.addSymbol(*perCtrlPtVar, loc); + } else { + // find which built-in it is + const TBuiltInVariable biType = patchConstantFunction[p].getDeclaredBuiltIn(); + + if (biType == EbvInputPatch && inputPatch == nullptr) { + error(loc, "unimplemented: PCF input patch without entry point input patch parameter", "", ""); + return; + } + + inputArg = findTessLinkageSymbol(biType); + + if (inputArg == nullptr) { + error(loc, "unable to find patch constant function built-in variable", "", ""); + return; + } + } + + if (pcfParamCount == 1) + pcfArguments = inputArg; + else + pcfArguments = intermediate.growAggregate(pcfArguments, inputArg); + } + } + + // ================ Step 2: Synthesize call to PCF ================ + TIntermAggregate* pcfCallSequence = nullptr; + TIntermTyped* pcfCall = nullptr; + + { + // Create a function call to the patchconstantfunction + if (pcfArguments) + addInputArgumentConversions(patchConstantFunction, pcfArguments); + + // Synthetic call. + pcfCall = intermediate.setAggregateOperator(pcfArguments, EOpFunctionCall, patchConstantFunction.getType(), loc); + pcfCall->getAsAggregate()->setUserDefined(); + pcfCall->getAsAggregate()->setName(patchConstantFunction.getMangledName()); + intermediate.addToCallGraph(infoSink, intermediate.getEntryPointMangledName().c_str(), + patchConstantFunction.getMangledName()); + + if (pcfCall->getAsAggregate()) { + TQualifierList& qualifierList = pcfCall->getAsAggregate()->getQualifierList(); + for (int i = 0; i < patchConstantFunction.getParamCount(); ++i) { + TStorageQualifier qual = patchConstantFunction[i].type->getQualifier().storage; + qualifierList.push_back(qual); + } + pcfCall = addOutputArgumentConversions(patchConstantFunction, *pcfCall->getAsOperator()); + } + } + + // ================ Step 2B: Per Control Point synthesis ================ + // If there is per control point data, we must either emulate that with multiple + // invocations of the entry point to build up an array, or (TODO:) use a yet + // unavailable extension to look across the SIMD lanes. This is the former + // as a placeholder for the latter. + if (outPatchParam >= 0) { + // We must introduce a local temp variable of the type wanted by the PCF input. + const int arraySize = patchConstantFunction[outPatchParam].type->getOuterArraySize(); + + if (entryPointFunction->getType().getBasicType() == EbtVoid) { + error(loc, "entry point must return a value for use with patch constant function", "", ""); + return; + } + + // Create calls to wrapped main to fill in the array. We will substitute fixed values + // of invocation ID when calling the wrapped main. + + // This is the type of the each member of the per ctrl point array. + const TType derefType(perCtrlPtVar->getType(), 0); + + for (int cpt = 0; cpt < arraySize; ++cpt) { + // TODO: improve. substr(1) here is to avoid the '@' that was grafted on but isn't in the symtab + // for this function. + const TString origName = entryPointFunction->getName().substr(1); + TFunction callee(&origName, TType(EbtVoid)); + TIntermTyped* callingArgs = nullptr; + + for (int i = 0; i < entryPointFunction->getParamCount(); i++) { + TParameter& param = (*entryPointFunction)[i]; + TType& paramType = *param.type; + + if (paramType.getQualifier().isParamOutput()) { + error(loc, "unimplemented: entry point outputs in patch constant function invocation", "", ""); + return; + } + + if (paramType.getQualifier().isParamInput()) { + TIntermTyped* arg = nullptr; + if ((*entryPointFunction)[i].getDeclaredBuiltIn() == EbvInvocationId) { + // substitute invocation ID with the array element ID + arg = intermediate.addConstantUnion(cpt, loc); + } else { + TVariable* argVar = makeInternalVariable(*param.name, *param.type); + argVar->getWritableType().getQualifier().makeTemporary(); + arg = intermediate.addSymbol(*argVar); + } + + handleFunctionArgument(&callee, callingArgs, arg); + } + } + + // Call and assign to per ctrl point variable + currentCaller = intermediate.getEntryPointMangledName().c_str(); + TIntermTyped* callReturn = handleFunctionCall(loc, &callee, callingArgs); + TIntermTyped* index = intermediate.addConstantUnion(cpt, loc); + TIntermSymbol* perCtrlPtSym = intermediate.addSymbol(*perCtrlPtVar, loc); + TIntermTyped* element = intermediate.addIndex(EOpIndexDirect, perCtrlPtSym, index, loc); + element->setType(derefType); + element->setLoc(loc); + + pcfCallSequence = intermediate.growAggregate(pcfCallSequence, + handleAssign(loc, EOpAssign, element, callReturn)); + } + } + + // ================ Step 3: Create return Sequence ================ + // Return sequence: copy PCF result to a temporary, then to shader output variable. + if (pcfCall->getBasicType() != EbtVoid) { + const TType* retType = &patchConstantFunction.getType(); // return type from the PCF + TType outType; // output type that goes with the return type. + outType.shallowCopy(*retType); + + // substitute the output type + const auto newLists = ioTypeMap.find(retType->getStruct()); + if (newLists != ioTypeMap.end()) + outType.setStruct(newLists->second.output); + + // Substitute the top level type's built-in type + if (patchConstantFunction.getDeclaredBuiltInType() != EbvNone) + outType.getQualifier().builtIn = patchConstantFunction.getDeclaredBuiltInType(); + + outType.getQualifier().patch = true; // make it a per-patch variable + + TVariable* pcfOutput = makeInternalVariable("@patchConstantOutput", outType); + pcfOutput->getWritableType().getQualifier().storage = EvqVaryingOut; + + if (pcfOutput->getType().containsBuiltIn()) + split(*pcfOutput); + + assignToInterface(*pcfOutput); + + TIntermSymbol* pcfOutputSym = intermediate.addSymbol(*pcfOutput, loc); + + // The call to the PCF is a complex R-value: we want to store it in a temp to avoid + // repeated calls to the PCF: + TVariable* pcfCallResult = makeInternalVariable("@patchConstantResult", *retType); + pcfCallResult->getWritableType().getQualifier().makeTemporary(); + + TIntermSymbol* pcfResultVar = intermediate.addSymbol(*pcfCallResult, loc); + TIntermNode* pcfResultAssign = handleAssign(loc, EOpAssign, pcfResultVar, pcfCall); + TIntermNode* pcfResultToOut = handleAssign(loc, EOpAssign, pcfOutputSym, + intermediate.addSymbol(*pcfCallResult, loc)); + + pcfCallSequence = intermediate.growAggregate(pcfCallSequence, pcfResultAssign); + pcfCallSequence = intermediate.growAggregate(pcfCallSequence, pcfResultToOut); + } else { + pcfCallSequence = intermediate.growAggregate(pcfCallSequence, pcfCall); + } + + // ================ Step 4: Barrier ================ + TIntermTyped* barrier = new TIntermAggregate(EOpBarrier); + barrier->setLoc(loc); + barrier->setType(TType(EbtVoid)); + epBodySeq.insert(epBodySeq.end(), barrier); + + // ================ Step 5: Test on invocation ID ================ + TIntermTyped* zero = intermediate.addConstantUnion(0, loc, true); + TIntermTyped* cmp = intermediate.addBinaryNode(EOpEqual, invocationIdSym, zero, loc, TType(EbtBool)); + + + // ================ Step 5B: Create if statement on Invocation ID == 0 ================ + intermediate.setAggregateOperator(pcfCallSequence, EOpSequence, TType(EbtVoid), loc); + TIntermTyped* invocationIdTest = new TIntermSelection(cmp, pcfCallSequence, nullptr); + invocationIdTest->setLoc(loc); + + // add our test sequence before the return. + epBodySeq.insert(epBodySeq.end(), invocationIdTest); +} + +// Finalization step: remove unused buffer blocks from linkage (we don't know until the +// shader is entirely compiled). +// Preserve order of remaining symbols. +void HlslParseContext::removeUnusedStructBufferCounters() +{ + const auto endIt = std::remove_if(linkageSymbols.begin(), linkageSymbols.end(), + [this](const TSymbol* sym) { + const auto sbcIt = structBufferCounter.find(sym->getName()); + return sbcIt != structBufferCounter.end() && !sbcIt->second; + }); + + linkageSymbols.erase(endIt, linkageSymbols.end()); +} + +// Finalization step: patch texture shadow modes to match samplers they were combined with +void HlslParseContext::fixTextureShadowModes() +{ + for (auto symbol = linkageSymbols.begin(); symbol != linkageSymbols.end(); ++symbol) { + TSampler& sampler = (*symbol)->getWritableType().getSampler(); + + if (sampler.isTexture()) { + const auto shadowMode = textureShadowVariant.find((*symbol)->getUniqueId()); + if (shadowMode != textureShadowVariant.end()) { + + if (shadowMode->second->overloaded()) + // Texture needs legalization if it's been seen with both shadow and non-shadow modes. + intermediate.setNeedsLegalization(); + + sampler.shadow = shadowMode->second->isShadowId((*symbol)->getUniqueId()); + } + } + } +} + +// Finalization step: patch append methods to use proper stream output, which isn't known until +// main is parsed, which could happen after the append method is parsed. +void HlslParseContext::finalizeAppendMethods() +{ + TSourceLoc loc; + loc.init(); + + // Nothing to do: bypass test for valid stream output. + if (gsAppends.empty()) + return; + + if (gsStreamOutput == nullptr) { + error(loc, "unable to find output symbol for Append()", "", ""); + return; + } + + // Patch append sequences, now that we know the stream output symbol. + for (auto append = gsAppends.begin(); append != gsAppends.end(); ++append) { + append->node->getSequence()[0] = + handleAssign(append->loc, EOpAssign, + intermediate.addSymbol(*gsStreamOutput, append->loc), + append->node->getSequence()[0]->getAsTyped()); + } +} + +// post-processing +void HlslParseContext::finish() +{ + // Error check: There was a dangling .mips operator. These are not nested constructs in the grammar, so + // cannot be detected there. This is not strictly needed in a non-validating parser; it's just helpful. + if (! mipsOperatorMipArg.empty()) { + error(mipsOperatorMipArg.back().loc, "unterminated mips operator:", "", ""); + } + + removeUnusedStructBufferCounters(); + addPatchConstantInvocation(); + fixTextureShadowModes(); + finalizeAppendMethods(); + + // Communicate out (esp. for command line) that we formed AST that will make + // illegal AST SPIR-V and it needs transforms to legalize it. + if (intermediate.needsLegalization() && (messages & EShMsgHlslLegalization)) + infoSink.info << "WARNING: AST will form illegal SPIR-V; need to transform to legalize"; + + TParseContextBase::finish(); +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslParseHelper.h b/deps/glslang/glslang/hlsl/hlslParseHelper.h new file mode 100755 index 0000000000..32a1923940 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslParseHelper.h @@ -0,0 +1,508 @@ +// +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +#ifndef HLSL_PARSE_INCLUDED_ +#define HLSL_PARSE_INCLUDED_ + +#include "../glslang/MachineIndependent/parseVersions.h" +#include "../glslang/MachineIndependent/ParseHelper.h" +#include "../glslang/MachineIndependent/attribute.h" + +#include + +namespace glslang { + +class TFunctionDeclarator; + +class HlslParseContext : public TParseContextBase { +public: + HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, + int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, + const TString sourceEntryPointName, + bool forwardCompatible = false, EShMessages messages = EShMsgDefault); + virtual ~HlslParseContext(); + void initializeExtensionBehavior() override; + + void setLimits(const TBuiltInResource&) override; + bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) override; + virtual const char* getGlobalUniformBlockName() const override { return "$Global"; } + virtual void setUniformBlockDefaults(TType& block) const override + { + block.getQualifier().layoutPacking = ElpStd140; + block.getQualifier().layoutMatrix = ElmRowMajor; + } + + void reservedPpErrorCheck(const TSourceLoc&, const char* /*name*/, const char* /*op*/) override { } + bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) override { return true; } + bool lineDirectiveShouldSetNextLine() const override { return true; } + bool builtInName(const TString&); + + void handlePragma(const TSourceLoc&, const TVector&) override; + TIntermTyped* handleVariable(const TSourceLoc&, const TString* string); + TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + + TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); + TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); + TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); + bool isBuiltInMethod(const TSourceLoc&, TIntermTyped* base, const TString& field); + void assignToInterface(TVariable& variable); + void handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); + TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributes&, TIntermNode*& entryPointTree); + TIntermNode* transformEntryPoint(const TSourceLoc&, TFunction&, const TAttributes&); + void handleEntryPointAttributes(const TSourceLoc&, const TAttributes&); + void transferTypeAttributes(const TSourceLoc&, const TAttributes&, TType&, bool allowEntry = false); + void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); + void remapEntryPointIO(TFunction& function, TVariable*& returnValue, TVector& inputs, TVector& outputs); + void remapNonEntryPointIO(TFunction& function); + TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); + void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); + TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); + TIntermTyped* handleAssignToMatrixSwizzle(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); + TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermTyped*); + TIntermAggregate* assignClipCullDistance(const TSourceLoc&, TOperator, int semanticId, TIntermTyped* left, TIntermTyped* right); + TIntermTyped* assignPosition(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); + void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeStructBufferMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void pushFrontArguments(TIntermTyped* front, TIntermTyped*& arguments); + void addInputArgumentConversions(const TFunction&, TIntermTyped*&); + void expandArguments(const TSourceLoc&, const TFunction&, TIntermTyped*&); + TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermOperator&); + void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); + TFunction* makeConstructorCall(const TSourceLoc&, const TType&); + void handleSemantic(TSourceLoc, TQualifier&, TBuiltInVariable, const TString& upperCase); + void handlePackOffset(const TSourceLoc&, TQualifier&, const glslang::TString& location, + const glslang::TString* component); + void handleRegister(const TSourceLoc&, TQualifier&, const glslang::TString* profile, const glslang::TString& desc, + int subComponent, const glslang::TString*); + TIntermTyped* convertConditionalExpression(const TSourceLoc&, TIntermTyped*, bool mustBeScalar = true); + TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); + + bool parseMatrixSwizzleSelector(const TSourceLoc&, const TString&, int cols, int rows, TSwizzleSelectors&); + int getMatrixComponentsColumn(int rows, const TSwizzleSelectors&); + void assignError(const TSourceLoc&, const char* op, TString left, TString right); + void unaryOpError(const TSourceLoc&, const char* op, TString operand); + void binaryOpError(const TSourceLoc&, const char* op, TString left, TString right); + void variableCheck(TIntermTyped*& nodePtr); + void constantValueCheck(TIntermTyped* node, const char* token); + void integerCheck(const TIntermTyped* node, const char* token); + void globalCheck(const TSourceLoc&, const char* token); + bool constructorError(const TSourceLoc&, TIntermNode*, TFunction&, TOperator, TType&); + bool constructorTextureSamplerError(const TSourceLoc&, const TFunction&); + void arraySizeCheck(const TSourceLoc&, TIntermTyped* expr, TArraySize&); + void arraySizeRequiredCheck(const TSourceLoc&, const TArraySizes&); + void structArrayCheck(const TSourceLoc&, const TType& structure); + bool voidErrorCheck(const TSourceLoc&, const TString&, TBasicType); + void globalQualifierFix(const TSourceLoc&, TQualifier&); + bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); + void mergeQualifiers(TQualifier& dst, const TQualifier& src); + int computeSamplerTypeIndex(TSampler&); + TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); + void paramFix(TType& type); + void specializationCheck(const TSourceLoc&, const TType&, const char* op); + + void setLayoutQualifier(const TSourceLoc&, TQualifier&, TString&); + void setLayoutQualifier(const TSourceLoc&, TQualifier&, TString&, const TIntermTyped*); + void setSpecConstantId(const TSourceLoc&, TQualifier&, int value); + void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); + void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); + + const TFunction* findFunction(const TSourceLoc& loc, TFunction& call, bool& builtIn, int& thisDepth, TIntermTyped*& args); + void addGenMulArgumentConversion(const TSourceLoc& loc, TFunction& call, TIntermTyped*& args); + void declareTypedef(const TSourceLoc&, const TString& identifier, const TType&); + void declareStruct(const TSourceLoc&, TString& structName, TType&); + TSymbol* lookupUserType(const TString&, TType&); + TIntermNode* declareVariable(const TSourceLoc&, const TString& identifier, TType&, TIntermTyped* initializer = 0); + void lengthenList(const TSourceLoc&, TIntermSequence& list, int size, TIntermTyped* scalarInit); + TIntermTyped* handleConstructor(const TSourceLoc&, TIntermTyped*, const TType&); + TIntermTyped* addConstructor(const TSourceLoc&, TIntermTyped*, const TType&); + TIntermTyped* convertArray(TIntermTyped*, const TType&); + TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); + TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); + void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0); + void declareStructBufferCounter(const TSourceLoc& loc, const TType& bufferType, const TString& name); + void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation); + void fixBlockXfbOffsets(TQualifier&, TTypeList&); + void fixBlockUniformOffsets(const TQualifier&, TTypeList&); + void addQualifierToExisting(const TSourceLoc&, TQualifier, const TString& identifier); + void addQualifierToExisting(const TSourceLoc&, TQualifier, TIdentifierList&); + void updateStandaloneQualifierDefaults(const TSourceLoc&, const TPublicType&); + void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode); + TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body, const TAttributes&); + + void nestLooping() { ++loopNestingLevel; } + void unnestLooping() { --loopNestingLevel; } + void nestAnnotations() { ++annotationNestingLevel; } + void unnestAnnotations() { --annotationNestingLevel; } + int getAnnotationNestingLevel() { return annotationNestingLevel; } + void pushScope() { symbolTable.push(); } + void popScope() { symbolTable.pop(0); } + + void pushThisScope(const TType&, const TVector&); + void popThisScope() { symbolTable.pop(0); } + + void pushImplicitThis(TVariable* thisParameter) { implicitThisStack.push_back(thisParameter); } + void popImplicitThis() { implicitThisStack.pop_back(); } + TVariable* getImplicitThis(int thisDepth) const { return implicitThisStack[implicitThisStack.size() - thisDepth]; } + + void pushNamespace(const TString& name); + void popNamespace(); + void getFullNamespaceName(TString*&) const; + void addScopeMangler(TString&); + + void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } + void popSwitchSequence() { switchSequenceStack.pop_back(); } + + virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, + TTypeList* typeList = nullptr) override; + + // Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore. + TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped*& node); + bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; + + TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); + + bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + + // Determine selection control from attributes + void handleSelectionAttributes(const TSourceLoc& loc, TIntermSelection*, const TAttributes& attributes); + void handleSwitchAttributes(const TSourceLoc& loc, TIntermSwitch*, const TAttributes& attributes); + + // Determine loop control from attributes + void handleLoopAttributes(const TSourceLoc& loc, TIntermLoop*, const TAttributes& attributes); + + // Share struct buffer deep types + void shareStructBufferType(TType&); + + // Set texture return type of the given sampler. Returns success (not all types are valid). + bool setTextureReturnType(TSampler& sampler, const TType& retType, const TSourceLoc& loc); + + // Obtain the sampler return type of the given sampler in retType. + void getTextureReturnType(const TSampler& sampler, TType& retType) const; + + TAttributeType attributeFromName(const TString& nameSpace, const TString& name) const; + +protected: + struct TFlattenData { + TFlattenData() : nextBinding(TQualifier::layoutBindingEnd), + nextLocation(TQualifier::layoutLocationEnd) { } + TFlattenData(int nb, int nl) : nextBinding(nb), nextLocation(nl) { } + + TVector members; // individual flattened variables + TVector offsets; // offset to next tree level + unsigned int nextBinding; // next binding to use. + unsigned int nextLocation; // next location to use + }; + + void fixConstInit(const TSourceLoc&, const TString& identifier, TType& type, TIntermTyped*& initializer); + void inheritGlobalDefaults(TQualifier& dst) const; + TVariable* makeInternalVariable(const char* name, const TType&) const; + TVariable* makeInternalVariable(const TString& name, const TType& type) const { + return makeInternalVariable(name.c_str(), type); + } + TIntermSymbol* makeInternalVariableNode(const TSourceLoc&, const char* name, const TType&) const; + TVariable* declareNonArray(const TSourceLoc&, const TString& identifier, const TType&, bool track); + void declareArray(const TSourceLoc&, const TString& identifier, const TType&, TSymbol*&, bool track); + TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); + TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer, TIntermTyped* scalarInit); + bool isScalarConstructor(const TIntermNode*); + TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); + + // Return true if this node requires L-value conversion (e.g, to an imageStore). + bool shouldConvertLValue(const TIntermNode*) const; + + // Array and struct flattening + TIntermTyped* flattenAccess(TIntermTyped* base, int member); + TIntermTyped* flattenAccess(int uniqueId, int member, TStorageQualifier outerStorage, const TType&, int subset = -1); + int findSubtreeOffset(const TIntermNode&) const; + int findSubtreeOffset(const TType&, int subset, const TVector& offsets) const; + bool shouldFlatten(const TType&, TStorageQualifier, bool topLevel) const; + bool wasFlattened(const TIntermTyped* node) const; + bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); } + int addFlattenedMember(const TVariable&, const TType&, TFlattenData&, const TString& name, bool linkage, + const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); + + // Structure splitting (splits interstage built-in types into its own struct) + void split(const TVariable&); + void splitBuiltIn(const TString& baseName, const TType& memberType, const TArraySizes*, const TQualifier&); + const TType& split(const TType& type, const TString& name, const TQualifier&); + bool wasSplit(const TIntermTyped* node) const; + bool wasSplit(int id) const { return splitNonIoVars.find(id) != splitNonIoVars.end(); } + TVariable* getSplitNonIoVar(int id) const; + void addPatchConstantInvocation(); + void fixTextureShadowModes(); + void finalizeAppendMethods(); + TIntermTyped* makeIntegerIndex(TIntermTyped*); + + void fixBuiltInIoType(TType&); + + void flatten(const TVariable& variable, bool linkage); + int flatten(const TVariable& variable, const TType&, TFlattenData&, TString name, bool linkage, + const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); + int flattenStruct(const TVariable& variable, const TType&, TFlattenData&, TString name, bool linkage, + const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); + int flattenArray(const TVariable& variable, const TType&, TFlattenData&, TString name, bool linkage, + const TQualifier& outerQualifier); + + bool hasUniform(const TQualifier& qualifier) const; + void clearUniform(TQualifier& qualifier); + bool isInputBuiltIn(const TQualifier& qualifier) const; + bool hasInput(const TQualifier& qualifier) const; + void correctOutput(TQualifier& qualifier); + bool isOutputBuiltIn(const TQualifier& qualifier) const; + bool hasOutput(const TQualifier& qualifier) const; + void correctInput(TQualifier& qualifier); + void correctUniform(TQualifier& qualifier); + void clearUniformInputOutput(TQualifier& qualifier); + + // Test method names + bool isStructBufferMethod(const TString& name) const; + void counterBufferType(const TSourceLoc& loc, TType& type); + + // Return standard sample position array + TIntermConstantUnion* getSamplePosArray(int count); + + TType* getStructBufferContentType(const TType& type) const; + bool isStructBufferType(const TType& type) const { return getStructBufferContentType(type) != nullptr; } + TIntermTyped* indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const; + TIntermTyped* getStructBufferCounter(const TSourceLoc& loc, TIntermTyped* buffer); + TString getStructBuffCounterName(const TString&) const; + void addStructBuffArguments(const TSourceLoc& loc, TIntermAggregate*&); + void addStructBufferHiddenCounterParam(const TSourceLoc& loc, TParameter&, TIntermAggregate*&); + + // Return true if this type is a reference. This is not currently a type method in case that's + // a language specific answer. + bool isReference(const TType& type) const { return isStructBufferType(type); } + + // Return true if this a buffer type that has an associated counter buffer. + bool hasStructBuffCounter(const TType&) const; + + // Finalization step: remove unused buffer blocks from linkage (we don't know until the + // shader is entirely compiled) + void removeUnusedStructBufferCounters(); + + static bool isClipOrCullDistance(TBuiltInVariable); + static bool isClipOrCullDistance(const TQualifier& qual) { return isClipOrCullDistance(qual.builtIn); } + static bool isClipOrCullDistance(const TType& type) { return isClipOrCullDistance(type.getQualifier()); } + + // Find the patch constant function (issues error, returns nullptr if not found) + const TFunction* findPatchConstantFunction(const TSourceLoc& loc); + + // Pass through to base class after remembering built-in mappings. + using TParseContextBase::trackLinkage; + void trackLinkage(TSymbol& variable) override; + + void finish() override; // post-processing + + // Linkage symbol helpers + TIntermSymbol* findTessLinkageSymbol(TBuiltInVariable biType) const; + + // Current state of parsing + int annotationNestingLevel; // 0 if outside all annotations + + HlslParseContext(HlslParseContext&); + HlslParseContext& operator=(HlslParseContext&); + + static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex() + TQualifier globalBufferDefaults; + TQualifier globalUniformDefaults; + TQualifier globalInputDefaults; + TQualifier globalOutputDefaults; + TString currentCaller; // name of last function body entered (not valid when at global scope) + TIdSetType inductiveLoopIds; + TVector needsIndexLimitationChecking; + + // + // Geometry shader input arrays: + // - array sizing is based on input primitive and/or explicit size + // + // Tessellation control output arrays: + // - array sizing is based on output layout(vertices=...) and/or explicit size + // + // Both: + // - array sizing is retroactive + // - built-in block redeclarations interact with this + // + // Design: + // - use a per-context "resize-list", a list of symbols whose array sizes + // can be fixed + // + // - the resize-list starts empty at beginning of user-shader compilation, it does + // not have built-ins in it + // + // - on built-in array use: copyUp() symbol and add it to the resize-list + // + // - on user array declaration: add it to the resize-list + // + // - on block redeclaration: copyUp() symbol and add it to the resize-list + // * note, that appropriately gives an error if redeclaring a block that + // was already used and hence already copied-up + // + // - on seeing a layout declaration that sizes the array, fix everything in the + // resize-list, giving errors for mismatch + // + // - on seeing an array size declaration, give errors on mismatch between it and previous + // array-sizing declarations + // + TVector ioArraySymbolResizeList; + + TMap flattenMap; + + // IO-type map. Maps a pure symbol-table form of a structure-member list into + // each of the (up to) three kinds of IO, as each as different allowed decorations, + // but HLSL allows mixing all in the same structure. + struct tIoKinds { + TTypeList* input; + TTypeList* output; + TTypeList* uniform; + }; + TMap ioTypeMap; + + // Structure splitting data: + TMap splitNonIoVars; // variables with the built-in interstage IO removed, indexed by unique ID. + + // Structuredbuffer shared types. Typically there are only a few. + TVector structBufferTypes; + + // This tracks texture sample user structure return types. Only a limited number are supported, as + // may fit in TSampler::structReturnIndex. + TVector textureReturnStruct; + + TMap structBufferCounter; // true if counter buffer is in use + + // The built-in interstage IO map considers e.g, EvqPosition on input and output separately, so that we + // can build the linkage correctly if position appears on both sides. Otherwise, multiple positions + // are considered identical. + struct tInterstageIoData { + tInterstageIoData(TBuiltInVariable bi, TStorageQualifier q) : + builtIn(bi), storage(q) { } + + TBuiltInVariable builtIn; + TStorageQualifier storage; + + // ordering for maps + bool operator<(const tInterstageIoData d) const { + return (builtIn != d.builtIn) ? (builtIn < d.builtIn) : (storage < d.storage); + } + }; + + TMap splitBuiltIns; // split built-ins, indexed by built-in type. + TVariable* inputPatch; // input patch is special for PCF: it's the only non-builtin PCF input, + // and is handled as a pseudo-builtin. + + unsigned int nextInLocation; + unsigned int nextOutLocation; + + TFunction* entryPointFunction; + TIntermNode* entryPointFunctionBody; + + TString patchConstantFunctionName; // hull shader patch constant function name, from function level attribute. + TMap builtInTessLinkageSymbols; // used for tessellation, finding declared built-ins + + TVector currentTypePrefix; // current scoping prefix for nested structures + TVector implicitThisStack; // currently active 'this' variables for nested structures + + TVariable* gsStreamOutput; // geometry shader stream outputs, for emit (Append method) + + TVariable* clipDistanceOutput; // synthesized clip distance out variable (shader might have >1) + TVariable* cullDistanceOutput; // synthesized cull distance out variable (shader might have >1) + TVariable* clipDistanceInput; // synthesized clip distance in variable (shader might have >1) + TVariable* cullDistanceInput; // synthesized cull distance in variable (shader might have >1) + + static const int maxClipCullRegs = 2; + std::array clipSemanticNSizeIn; // vector, indexed by clip semantic ID + std::array cullSemanticNSizeIn; // vector, indexed by cull semantic ID + std::array clipSemanticNSizeOut; // vector, indexed by clip semantic ID + std::array cullSemanticNSizeOut; // vector, indexed by cull semantic ID + + // This tracks the first (mip level) argument to the .mips[][] operator. Since this can be nested as + // in tx.mips[tx.mips[0][1].x][2], we need a stack. We also track the TSourceLoc for error reporting + // purposes. + struct tMipsOperatorData { + tMipsOperatorData(TSourceLoc l, TIntermTyped* m) : loc(l), mipLevel(m) { } + TSourceLoc loc; + TIntermTyped* mipLevel; + }; + + TVector mipsOperatorMipArg; + + // The geometry output stream is not copied out from the entry point as a typical output variable + // is. It's written via EmitVertex (hlsl=Append), which may happen in arbitrary control flow. + // For this we need the real output symbol. Since it may not be known at the time and Append() + // method is parsed, the sequence will be patched during finalization. + struct tGsAppendData { + TIntermAggregate* node; + TSourceLoc loc; + }; + + TVector gsAppends; + + // A texture object may be used with shadow and non-shadow samplers, but both may not be + // alive post-DCE in the same shader. We do not know at compilation time which are alive: that's + // only known post-DCE. If a texture is used both ways, we create two textures, and + // leave the elimiation of one to the optimizer. This maps the shader variant to + // the shadow variant. + // + // This can be removed if and when the texture shadow code in + // HlslParseContext::handleSamplerTextureCombine is removed. + struct tShadowTextureSymbols { + tShadowTextureSymbols() { symId.fill(-1); } + + void set(bool shadow, int id) { symId[int(shadow)] = id; } + int get(bool shadow) const { return symId[int(shadow)]; } + + // True if this texture has been seen with both shadow and non-shadow modes + bool overloaded() const { return symId[0] != -1 && symId[1] != -1; } + bool isShadowId(int id) const { return symId[1] == id; } + + private: + std::array symId; + }; + + TMap textureShadowVariant; +}; + +// This is the prefix we use for built-in methods to avoid namespace collisions with +// global scope user functions. +// TODO: this would be better as a nonparseable character, but that would +// require changing the scanner. +#define BUILTIN_PREFIX "__BI_" + +} // end namespace glslang + +#endif // HLSL_PARSE_INCLUDED_ diff --git a/deps/glslang/glslang/hlsl/hlslParseables.cpp b/deps/glslang/glslang/hlsl/hlslParseables.cpp new file mode 100755 index 0000000000..cc847ae22f --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslParseables.cpp @@ -0,0 +1,1324 @@ +// +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +// +// Create strings that declare built-in definitions, add built-ins programmatically +// that cannot be expressed in the strings, and establish mappings between +// built-in functions and operators. +// +// Where to put a built-in: +// TBuiltInParseablesHlsl::initialize(version,profile) context-independent textual built-ins; add them to the right string +// TBuiltInParseablesHlsl::initialize(resources,...) context-dependent textual built-ins; add them to the right string +// TBuiltInParseablesHlsl::identifyBuiltIns(...,symbolTable) context-independent programmatic additions/mappings to the symbol table, +// including identifying what extensions are needed if a version does not allow a symbol +// TBuiltInParseablesHlsl::identifyBuiltIns(...,symbolTable, resources) context-dependent programmatic additions/mappings to the +// symbol table, including identifying what extensions are needed if a version does +// not allow a symbol +// + +#include "hlslParseables.h" +#include "hlslParseHelper.h" +#include +#include +#include + +namespace { // anonymous namespace functions + +const bool UseHlslTypes = true; + +const char* BaseTypeName(const char argOrder, const char* scalarName, const char* vecName, const char* matName) +{ + switch (argOrder) { + case 'S': return scalarName; + case 'V': return vecName; + case 'M': return matName; + default: return "UNKNOWN_TYPE"; + } +} + +// arg order queries +bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } +bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } +bool IsTextureNonMS(const char argOrder) { return argOrder == '%'; } +bool IsSubpassInput(const char argOrder) { return argOrder == '[' || argOrder == ']'; } +bool IsArrayedTexture(const char argOrder) { return argOrder == '@'; } +bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } +bool IsMS(const char argOrder) { return IsTextureMS(argOrder) || argOrder == ']'; } +bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } +bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } + +bool IsTextureType(const char argOrder) +{ + return IsTextureNonMS(argOrder) || IsArrayedTexture(argOrder) || + IsTextureMS(argOrder) || IsBuffer(argOrder) || IsImage(argOrder); +} + +// Reject certain combinations that are illegal sample methods. For example, +// 3D arrays. +bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) +{ + const bool isArrayed = IsArrayed(*argOrder); + const bool isMS = IsTextureMS(*argOrder); + const bool isBuffer = IsBuffer(*argOrder); + + // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) + if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) + return true; + + const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; + + // Reject invalid offset forms with cubemaps + if (dim0 == 4) { + if ((name == "Sample" && numArgs >= 4) || + (name == "SampleBias" && numArgs >= 5) || + (name == "SampleCmp" && numArgs >= 5) || + (name == "SampleCmpLevelZero" && numArgs >= 5) || + (name == "SampleGrad" && numArgs >= 6) || + (name == "SampleLevel" && numArgs >= 5)) + return true; + } + + const bool isGather = + (name == "Gather" || + name == "GatherRed" || + name == "GatherGreen" || + name == "GatherBlue" || + name == "GatherAlpha"); + + const bool isGatherCmp = + (name == "GatherCmp" || + name == "GatherCmpRed" || + name == "GatherCmpGreen" || + name == "GatherCmpBlue" || + name == "GatherCmpAlpha"); + + // Reject invalid Gathers + if (isGather || isGatherCmp) { + if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers + return true; + + // no offset on cube or cube array gathers + if (dim0 == 4) { + if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4)) + return true; + } + } + + // Reject invalid Loads + if (name == "Load" && dim0 == 4) + return true; // Load does not support any cubemaps, arrayed or not. + + // Multisample formats are only 2D and 2Darray + if (isMS && dim0 != 2) + return true; + + // Buffer are only 1D + if (isBuffer && dim0 != 1) + return true; + + return false; +} + +// Return the number of the coordinate arg, if any +int CoordinateArgPos(const glslang::TString& name, bool isTexture) +{ + if (!isTexture || (name == "GetDimensions")) + return -1; // has none + else if (name == "Load") + return 1; + else + return 2; // other texture methods are 2 +} + +// Some texture methods use an addition coordinate dimension for the mip +bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer, bool isImage) +{ + return name == "Load" && !isMS && !isBuffer && !isImage; +} + +// LOD calculations don't pass the array level in the coordinate. +bool NoArrayCoord(const glslang::TString& name) +{ + return name == "CalculateLevelOfDetail" || name == "CalculateLevelOfDetailUnclamped"; +} + +// Handle IO params marked with > or < +const char* IoParam(glslang::TString& s, const char* nthArgOrder) +{ + if (*nthArgOrder == '>') { // output params + ++nthArgOrder; + s.append("out "); + } else if (*nthArgOrder == '<') { // input params + ++nthArgOrder; + s.append("in "); + } + + return nthArgOrder; +} + +// Handle repeated args +void HandleRepeatArg(const char*& arg, const char*& prev, const char* current) +{ + if (*arg == ',' || *arg == '\0') + arg = prev; + else + prev = current; +} + +// Return true for the end of a single argument key, which can be the end of the string, or +// the comma separator. +inline bool IsEndOfArg(const char* arg) +{ + return arg == nullptr || *arg == '\0' || *arg == ','; +} + +// If this is a fixed vector size, such as V3, return the size. Else return 0. +int FixedVecSize(const char* arg) +{ + while (!IsEndOfArg(arg)) { + if (isdigit(*arg)) + return *arg - '0'; + ++arg; + } + + return 0; // none found. +} + +// Create and return a type name. This is done in GLSL, not HLSL conventions, until such +// time as builtins are parsed using the HLSL parser. +// +// order: S = scalar, V = vector, M = matrix +// argType: F = float, D = double, I = int, U = uint, B = bool, S = sampler +// dim0 = vector dimension, or matrix 1st dimension +// dim1 = matrix 2nd dimension +glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) +{ + const bool isTranspose = (argOrder[0] == '^'); + const bool isTexture = IsTextureType(argOrder[0]); + const bool isArrayed = IsArrayed(argOrder[0]); + const bool isSampler = IsSamplerType(argType[0]); + const bool isMS = IsMS(argOrder[0]); + const bool isBuffer = IsBuffer(argOrder[0]); + const bool isImage = IsImage(argOrder[0]); + const bool isSubpass = IsSubpassInput(argOrder[0]); + + char type = *argType; + + if (isTranspose) { // Take transpose of matrix dimensions + std::swap(dim0, dim1); + } else if (isTexture || isSubpass) { + if (type == 'F') // map base type to texture of that type. + type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. + else if (type == 'I') + type = 'i'; + else if (type == 'U') + type = 'u'; + } + + if (isTranspose) + ++argOrder; + + char order = *argOrder; + + if (UseHlslTypes) { + switch (type) { + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'L': s += "int64_t"; break; + case 'M': s += "uint64_t"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 's': s += "SamplerComparisonState"; break; + case 'T': s += ((isBuffer && isImage) ? "RWBuffer" : + isSubpass ? "SubpassInput" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : + isSubpass ? "SubpassInput" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + case 'u': s += ((isBuffer && isImage) ? "RWBuffer" : + isSubpass ? "SubpassInput" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + default: s += "UNKNOWN_TYPE"; break; + } + + if (isSubpass && isMS) + s += "MS"; + + } else { + switch (type) { + case '-': s += "void"; break; + case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break; + case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break; + case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break; + case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; + case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; + case 'S': s += "sampler"; break; + case 's': s += "samplerShadow"; break; + case 'T': // fall through + case 'i': // ... + case 'u': // ... + if (type != 'T') // create itexture, utexture, etc + s += type; + + s += ((isImage && isBuffer) ? "imageBuffer" : + isSubpass ? "subpassInput" : + isImage ? "image" : + isBuffer ? "samplerBuffer" : + "texture"); + break; + + default: s += "UNKNOWN_TYPE"; break; + } + } + + // handle fixed vector sizes, such as float3, and only ever 3. + const int fixedVecSize = FixedVecSize(argOrder); + if (fixedVecSize != 0) + dim0 = dim1 = fixedVecSize; + + const char dim0Char = ('0' + char(dim0)); + const char dim1Char = ('0' + char(dim1)); + + // Add sampler dimensions + if (isSampler || isTexture) { + if ((order == 'V' || isTexture) && !isBuffer) { + switch (dim0) { + case 1: s += "1D"; break; + case 2: s += (isMS ? "2DMS" : "2D"); break; + case 3: s += "3D"; break; + case 4: s += "Cube"; break; + default: s += "UNKNOWN_SAMPLER"; break; + } + } + } else { + // Non-sampler type: + // verify dimensions + if (((order == 'V' || order == 'M') && (dim0 < 1 || dim0 > 4)) || + (order == 'M' && (dim1 < 1 || dim1 > 4))) { + s += "UNKNOWN_DIMENSION"; + return s; + } + + switch (order) { + case '-': break; // no dimensions for voids + case 'S': break; // no dimensions on scalars + case 'V': + s += dim0Char; + break; + case 'M': + s += dim0Char; + s += 'x'; + s += dim1Char; + break; + default: + break; + } + } + + // handle arrayed textures + if (isArrayed) + s += "Array"; + + // For HLSL, append return type for texture types + if (UseHlslTypes) { + switch (type) { + case 'i': s += " 0) // handle fixed sized vectors + dim0Min = dim0Max = fixedVecSize; +} + +} // end anonymous namespace + +namespace glslang { + +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; + + // Create a mat * mat of the appropriate dimensions + 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 + } + + // Create M*V + AppendTypeName(s, "V", "F", xRows, 1); // 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, "V", "F", xCols, 1); // add Y input + + s.append(");\n"); // close paren + + // Create V*M + AppendTypeName(s, "V", "F", xCols, 1); // add return type + s.append(" "); // space between type and name + s.append("mul"); // intrinsic name + s.append("("); // open paren + + AppendTypeName(s, "V", "F", xRows, 1); // add Y input + s.append(", "); + AppendTypeName(s, "M", "F", xRows, xCols); // add X 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 +// make stage-specific entries. +// +// 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*/) +{ + static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); + + // These are the actual stage masks defined in the documentation, in case they are + // needed for future validation. For now, they are commented out, and set below + // to EShLangAll, to allow any intrinsic to be used in any shader, which is legal + // if it is not called. + // + // static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask); + // static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask); + // static const EShLanguageMask EShLangCS = EShLangComputeMask; + // static const EShLanguageMask EShLangPS = EShLangFragmentMask; + // static const EShLanguageMask EShLangHS = EShLangTessControlMask; + + // This set uses EShLangAll for everything. + static const EShLanguageMask EShLangPSCS = EShLangAll; + static const EShLanguageMask EShLangVSPSGS = EShLangAll; + static const EShLanguageMask EShLangCS = EShLangAll; + static const EShLanguageMask EShLangPS = EShLangAll; + static const EShLanguageMask EShLangHS = EShLangAll; + static const EShLanguageMask EShLangGS = EShLangAll; + + // This structure encodes the prototype information for each HLSL intrinsic. + // Because explicit enumeration would be cumbersome, it's procedurally generated. + // orderKey can be: + // S = scalar, V = vector, M = matrix, - = void + // typekey can be: + // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler, M = uint64_t, L = int64_t + // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. + // '>' as first letter of order creates an output parameter + // '<' as first letter of order creates an input parameter + // '^' as first letter of order takes transpose dimensions + // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) + // '@' as first letter of order creates arrayed texture of given type + // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures + // '*' as first letter of order creates buffer object + // '!' as first letter of order creates image object + // '#' as first letter of order creates arrayed image object + // '~' as first letter of order creates an image buffer object + // '[' / ']' as first letter of order creates a SubpassInput/SubpassInputMS object + + static const struct { + const char* name; // intrinsic name + const char* retOrder; // return type key: empty matches order of 1st argument + const char* retType; // return type key: empty matches type of 1st argument + const char* argOrder; // argument order key + const char* argType; // argument type key + unsigned int stage; // stage mask + bool method; // true if it's a method. + } hlslIntrinsics[] = { + // name retOrd retType argOrder argType stage mask method + // ---------------------------------------------------------------------------------------------------------------- + { "abort", nullptr, nullptr, "-", "-", EShLangAll, false }, + { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll, false }, + { "acos", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "all", "S", "B", "SVM", "BFIU", EShLangAll, false }, + { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS, false }, + { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, + { "any", "S", "B", "SVM", "BFIU", EShLangAll, false }, + { "asdouble", "S", "D", "S,", "UI,", EShLangAll, false }, + { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll, false }, + { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll, false }, + { "asin", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "asint", nullptr, "I", "SVM", "FIU", EShLangAll, false }, + { "asuint", nullptr, "U", "SVM", "FIU", EShLangAll, false }, + { "atan", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, + { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS, false }, + { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll, false }, + { "clip", "-", "-", "SVM", "FUI", EShLangPS, false }, + { "cos", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll, false }, + { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll, false }, + { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll, false }, + { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "ddy", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "determinant", "S", "F", "M", "F", EShLangAll, false }, + { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS, false }, + { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, + { "distance", "S", "F", "V,", "F,", EShLangAll, false }, + { "dot", "S", nullptr, "SV,", "FI,", EShLangAll, false }, + { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll, false }, + // { "errorf", "-", "-", "", "", EShLangAll, false }, TODO: varargs + { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangPS, false }, + { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangPS, false }, + { "exp", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "f16tof32", nullptr, "F", "SV", "U", EShLangAll, false }, + { "f32tof16", nullptr, "U", "SV", "F", EShLangAll, false }, + { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll, false }, + { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll, false }, + { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll, false }, + { "floor", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll, false }, + { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, + { "frac", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, + { "fwidth", nullptr, nullptr, "SVM", "F", EShLangPS, false }, + { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll, false }, + { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll, false }, + { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS, false }, + { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, + { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, + { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, + { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS, false }, + { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS, false }, + { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, + { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, + { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, + { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS, false }, + { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS, false }, + { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll, false }, + { "isinf", nullptr, "B" , "SVM", "F", EShLangAll, false }, + { "isnan", nullptr, "B" , "SVM", "F", EShLangAll, false }, + { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, + { "length", "S", "F", "SV", "F", EShLangAll, false }, + { "lerp", nullptr, nullptr, "VM,,", "F,,", EShLangAll, false }, + { "lerp", nullptr, nullptr, "SVM,,S", "F,,", EShLangAll, false }, + { "lit", "V4", "F", "S,,", "F,,", EShLangAll, false }, + { "log", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "log10", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "log2", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll, false }, + { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll, false }, + { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll, false }, + { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll, false }, + { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll, false }, + { "mul", "S", nullptr, "S,S", "FI,", EShLangAll, false }, + { "mul", "V", nullptr, "S,V", "FI,", EShLangAll, false }, + { "mul", "M", nullptr, "S,M", "FI,", EShLangAll, false }, + { "mul", "V", nullptr, "V,S", "FI,", EShLangAll, false }, + { "mul", "S", nullptr, "V,V", "FI,", EShLangAll, false }, + { "mul", "M", nullptr, "M,S", "FI,", EShLangAll, false }, + // mat*mat form of mul is handled in createMatTimesMat() + { "noise", "S", "F", "V", "F", EShLangPS, false }, + { "normalize", nullptr, nullptr, "V", "F", EShLangAll, false }, + { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, + // { "printf", "-", "-", "", "", EShLangAll, false }, TODO: varargs + { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS, false }, + { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS, false }, + { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS, false }, + { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangHS, false }, + { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS, false }, + { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS, false }, + { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS, false }, + { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS, false }, + { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS, false }, + { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS, false }, + { "radians", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll, false }, + { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll, false }, + { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll, false }, + { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll, false }, + { "round", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll, false }, + { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll, false }, + { "sin", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll, false }, + { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll, false }, + { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, + { "tan", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + { "tex1D", "V4", "F", "V1,S", "S,F", EShLangPS, false }, + { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangPS, false }, + { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangPS, false }, + { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangPS, false }, + { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangPS, false }, + { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangPS, false }, + { "tex2D", "V4", "F", "V2,", "S,F", EShLangPS, false }, + { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangPS, false }, + { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangPS, false }, + { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangPS, false }, + { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangPS, false }, + { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangPS, false }, + { "tex3D", "V4", "F", "V3,", "S,F", EShLangPS, false }, + { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangPS, false }, + { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangPS, false }, + { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangPS, false }, + { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangPS, false }, + { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangPS, false }, + { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangPS, false }, + { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS, false }, + { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangPS, false }, + { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS, false }, + { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS, false }, + { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS, false }, + { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll, false }, + { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll, false }, + + // Texture object methods. Return type can be overridden by shader declaration. + // !O = no offset, O = offset + { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangPS, true }, + { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangPS, true }, + + { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangPS, true }, + { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangPS, true }, + + // TODO: FXC accepts int/uint samplers here. unclear what that means. + { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangPS, true }, + { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangPS, true }, + + // TODO: FXC accepts int/uint samplers here. unclear what that means. + { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangPS, true }, + { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangPS, true }, + + { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll, true }, + { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll, true }, + + { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll, true }, + { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll, true }, + + { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll, true }, + { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll, true }, + { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll, true }, + { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll, true }, + + // RWTexture loads + { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll, true }, + // (RW)Buffer loads + { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll, true }, + + { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, + { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll, true }, + + { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, + { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, + + { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS,true }, + + // + // UINT Width + // UINT MipLevel, UINT Width, UINT NumberOfLevels + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll, true }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll, true }, + { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll, true }, + { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll, true }, + + // UINT Width, UINT Elements + // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll, true }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll, true }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll, true }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll, true }, + + // UINT Width, UINT Height + // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll, true }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll, true }, + { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll, true }, + { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll, true }, + + // UINT Width, UINT Height, UINT Elements + // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll, true }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll, true }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, + + // UINT Width, UINT Height, UINT Depth + // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll, true }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll, true }, + { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, + { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, + + // UINT Width, UINT Height + // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels + { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll, true }, + { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll, true }, + { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll, true }, + { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll, true }, + + // UINT Width, UINT Height, UINT Elements + // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels + { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll, true }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll, true }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, + + // UINT Width, UINT Height, UINT Samples + // UINT Width, UINT Height, UINT Elements, UINT Samples + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll, true }, + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll, true }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll, true }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll, true }, + + // SM5 texture methods + { "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, + { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, + { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, + { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, + { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, + + { "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, + { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, + { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, + { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, + { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, + + { "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, + { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, + { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, + { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, + { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, + + { "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, + { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, + { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, + { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, + { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, + + { "GatherCmp", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, + { "GatherCmp", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, + { "GatherCmp", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, + { "GatherCmp", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, + { "GatherCmp", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll, true }, + + { "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, + { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, + { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, + { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, + { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll, true }, + + { "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, + { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, + { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, + { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, + { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, + + { "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, + { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, + { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, + { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, + { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, + + { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, + { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, + { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, + { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, + { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, + + // geometry methods + { "Append", "-", "-", "-", "-", EShLangGS , true }, + { "RestartStrip", "-", "-", "-", "-", EShLangGS , true }, + + // Methods for structurebuffers. TODO: wildcard type matching. + { "Load", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Load2", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Load3", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Load4", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Store", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Store2", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Store3", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Store4", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "GetDimensions", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedAdd", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedAnd", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedCompareExchange", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedCompareStore", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedExchange", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedMax", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedMin", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedOr", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "InterlockedXor", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "IncrementCounter", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "DecrementCounter", nullptr, nullptr, "-", "-", EShLangAll, true }, + { "Consume", nullptr, nullptr, "-", "-", EShLangAll, true }, + + // SM 6.0 + + { "WaveIsFirstLane", "S", "B", "-", "-", EShLangPSCS, false}, + { "WaveGetLaneCount", "S", "U", "-", "-", EShLangPSCS, false}, + { "WaveGetLaneIndex", "S", "U", "-", "-", EShLangPSCS, false}, + { "WaveActiveAnyTrue", "S", "B", "S", "B", EShLangPSCS, false}, + { "WaveActiveAllTrue", "S", "B", "S", "B", EShLangPSCS, false}, + { "WaveActiveBallot", "V4", "U", "S", "B", EShLangPSCS, false}, + { "WaveReadLaneAt", nullptr, nullptr, "SV,S", "DFUI,U", EShLangPSCS, false}, + { "WaveReadLaneFirst", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveAllEqual", "S", "B", "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveAllEqualBool", "S", "B", "S", "B", EShLangPSCS, false}, + { "WaveActiveCountBits", "S", "U", "S", "B", EShLangPSCS, false}, + + { "WaveActiveSum", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveProduct", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveBitAnd", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveBitOr", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveBitXor", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveMin", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WaveActiveMax", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WavePrefixSum", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WavePrefixProduct", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "WavePrefixCountBits", "S", "U", "S", "B", EShLangPSCS, false}, + { "QuadReadAcrossX", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "QuadReadAcrossY", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "QuadReadAcrossDiagonal", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, + { "QuadReadLaneAt", nullptr, nullptr, "SV,S", "DFUI,U", EShLangPSCS, false}, + + // Methods for subpass input objects + { "SubpassLoad", "V4", nullptr, "[", "FIU", EShLangPS, true }, + { "SubpassLoad", "V4", nullptr, "],S", "FIU,I", EShLangPS, true }, + + // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. + { nullptr, nullptr, nullptr, nullptr, nullptr, 0, false }, + }; + + // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. + for (int icount = 0; hlslIntrinsics[icount].name; ++icount) { + const auto& intrinsic = hlslIntrinsics[icount]; + + for (int stage = 0; stage < EShLangCount; ++stage) { // for each stage... + if ((intrinsic.stage & (1< 0 ? std::min(dim0, 3) : dim0; + + s.append(arg > 0 ? ", ": ""); // comma separator if needed + + const char* orderBegin = nthArgOrder; + nthArgOrder = IoParam(s, nthArgOrder); + + // Comma means use the previous argument order and type. + HandleRepeatArg(nthArgOrder, prevArgOrder, orderBegin); + HandleRepeatArg(nthArgType, prevArgType, nthArgType); + + // In case the repeated arg has its own I/O marker + nthArgOrder = IoParam(s, nthArgOrder); + + // arrayed textures have one extra coordinate dimension, except for + // the CalculateLevelOfDetail family. + if (isArrayed && arg == coordArg && !NoArrayCoord(intrinsic.name)) + argDim0++; + + // Some texture methods use an addition arg dimension to hold mip + if (arg == coordArg && mipInCoord) + argDim0++; + + // For textures, the 1D case isn't a 1-vector, but a scalar. + if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V') + nthArgOrder = "S"; + + AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments + } + + s.append(");\n"); // close paren and trailing semicolon + } // dim 1 loop + } // dim 0 loop + } // arg type loop + + // skip over special characters + if (isTexture && isalpha(argOrder[1])) + ++argOrder; + if (isdigit(argOrder[1])) + ++argOrder; + } // arg order loop + + if (intrinsic.stage == EShLangAll) // common builtins are only added once. + break; + } + } + + 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()); + // printf("Geo:\n%s\n", getStageString(EShLangGeometry).c_str()); + // printf("TessCtrl:\n%s\n", getStageString(EShLangTessControl).c_str()); + // printf("TessEval:\n%s\n", getStageString(EShLangTessEvaluation).c_str()); + // printf("Compute:\n%s\n", getStageString(EShLangCompute).c_str()); +} + +// +// Add context-dependent built-in functions and variables that are present +// for the given version and profile. All the results are put into just the +// commonBuiltins, because it is called for just a specific stage. So, +// 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*/) +{ +} + +// +// Finish adding/processing context-independent built-in symbols. +// 1) Programmatically add symbols that could not be added by simple text strings above. +// 2) Map built-in functions to operators, for those that will turn into an operation node +// instead of remaining a function call. +// 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*/, + TSymbolTable& symbolTable) +{ + // symbolTable.relateToOperator("abort", EOpAbort); + symbolTable.relateToOperator("abs", EOpAbs); + symbolTable.relateToOperator("acos", EOpAcos); + symbolTable.relateToOperator("all", EOpAll); + symbolTable.relateToOperator("AllMemoryBarrier", EOpMemoryBarrier); + symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync", EOpAllMemoryBarrierWithGroupSync); + symbolTable.relateToOperator("any", EOpAny); + symbolTable.relateToOperator("asdouble", EOpAsDouble); + symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat); + symbolTable.relateToOperator("asin", EOpAsin); + symbolTable.relateToOperator("asint", EOpFloatBitsToInt); + symbolTable.relateToOperator("asuint", EOpFloatBitsToUint); + symbolTable.relateToOperator("atan", EOpAtan); + symbolTable.relateToOperator("atan2", EOpAtan); + symbolTable.relateToOperator("ceil", EOpCeil); + // symbolTable.relateToOperator("CheckAccessFullyMapped"); + symbolTable.relateToOperator("clamp", EOpClamp); + symbolTable.relateToOperator("clip", EOpClip); + symbolTable.relateToOperator("cos", EOpCos); + symbolTable.relateToOperator("cosh", EOpCosh); + symbolTable.relateToOperator("countbits", EOpBitCount); + symbolTable.relateToOperator("cross", EOpCross); + symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); + symbolTable.relateToOperator("ddx", EOpDPdx); + symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); + symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); + symbolTable.relateToOperator("ddy", EOpDPdy); + symbolTable.relateToOperator("ddy_coarse", EOpDPdyCoarse); + symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); + symbolTable.relateToOperator("degrees", EOpDegrees); + symbolTable.relateToOperator("determinant", EOpDeterminant); + symbolTable.relateToOperator("DeviceMemoryBarrier", EOpDeviceMemoryBarrier); + symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpDeviceMemoryBarrierWithGroupSync); + symbolTable.relateToOperator("distance", EOpDistance); + symbolTable.relateToOperator("dot", EOpDot); + symbolTable.relateToOperator("dst", EOpDst); + // symbolTable.relateToOperator("errorf", EOpErrorf); + symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid); + symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample); + symbolTable.relateToOperator("EvaluateAttributeSnapped", EOpEvaluateAttributeSnapped); + symbolTable.relateToOperator("exp", EOpExp); + symbolTable.relateToOperator("exp2", EOpExp2); + symbolTable.relateToOperator("f16tof32", EOpF16tof32); + symbolTable.relateToOperator("f32tof16", EOpF32tof16); + symbolTable.relateToOperator("faceforward", EOpFaceForward); + symbolTable.relateToOperator("firstbithigh", EOpFindMSB); + symbolTable.relateToOperator("firstbitlow", EOpFindLSB); + symbolTable.relateToOperator("floor", EOpFloor); + symbolTable.relateToOperator("fma", EOpFma); + symbolTable.relateToOperator("fmod", EOpMod); + symbolTable.relateToOperator("frac", EOpFract); + symbolTable.relateToOperator("frexp", EOpFrexp); + symbolTable.relateToOperator("fwidth", EOpFwidth); + // symbolTable.relateToOperator("GetRenderTargetSampleCount"); + // symbolTable.relateToOperator("GetRenderTargetSamplePosition"); + symbolTable.relateToOperator("GroupMemoryBarrier", EOpWorkgroupMemoryBarrier); + symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync", EOpWorkgroupMemoryBarrierWithGroupSync); + symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd); + symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd); + symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange); + symbolTable.relateToOperator("InterlockedCompareStore", EOpInterlockedCompareStore); + symbolTable.relateToOperator("InterlockedExchange", EOpInterlockedExchange); + symbolTable.relateToOperator("InterlockedMax", EOpInterlockedMax); + symbolTable.relateToOperator("InterlockedMin", EOpInterlockedMin); + symbolTable.relateToOperator("InterlockedOr", EOpInterlockedOr); + symbolTable.relateToOperator("InterlockedXor", EOpInterlockedXor); + symbolTable.relateToOperator("isfinite", EOpIsFinite); + symbolTable.relateToOperator("isinf", EOpIsInf); + symbolTable.relateToOperator("isnan", EOpIsNan); + 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", EOpFma); + symbolTable.relateToOperator("max", EOpMax); + symbolTable.relateToOperator("min", EOpMin); + symbolTable.relateToOperator("modf", EOpModf); + // symbolTable.relateToOperator("msad4", EOpMsad4); + symbolTable.relateToOperator("mul", EOpGenMul); + // symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type + symbolTable.relateToOperator("normalize", EOpNormalize); + symbolTable.relateToOperator("pow", EOpPow); + // symbolTable.relateToOperator("printf", EOpPrintf); + // symbolTable.relateToOperator("Process2DQuadTessFactorsAvg"); + // symbolTable.relateToOperator("Process2DQuadTessFactorsMax"); + // symbolTable.relateToOperator("Process2DQuadTessFactorsMin"); + // symbolTable.relateToOperator("ProcessIsolineTessFactors"); + // symbolTable.relateToOperator("ProcessQuadTessFactorsAvg"); + // symbolTable.relateToOperator("ProcessQuadTessFactorsMax"); + // symbolTable.relateToOperator("ProcessQuadTessFactorsMin"); + // symbolTable.relateToOperator("ProcessTriTessFactorsAvg"); + // symbolTable.relateToOperator("ProcessTriTessFactorsMax"); + // symbolTable.relateToOperator("ProcessTriTessFactorsMin"); + symbolTable.relateToOperator("radians", EOpRadians); + symbolTable.relateToOperator("rcp", EOpRcp); + symbolTable.relateToOperator("reflect", EOpReflect); + symbolTable.relateToOperator("refract", EOpRefract); + symbolTable.relateToOperator("reversebits", EOpBitFieldReverse); + symbolTable.relateToOperator("round", EOpRoundEven); + symbolTable.relateToOperator("rsqrt", EOpInverseSqrt); + symbolTable.relateToOperator("saturate", EOpSaturate); + symbolTable.relateToOperator("sign", EOpSign); + symbolTable.relateToOperator("sin", EOpSin); + symbolTable.relateToOperator("sincos", EOpSinCos); + symbolTable.relateToOperator("sinh", EOpSinh); + symbolTable.relateToOperator("smoothstep", EOpSmoothStep); + symbolTable.relateToOperator("sqrt", EOpSqrt); + symbolTable.relateToOperator("step", EOpStep); + symbolTable.relateToOperator("tan", EOpTan); + symbolTable.relateToOperator("tanh", EOpTanh); + symbolTable.relateToOperator("tex1D", EOpTexture); + symbolTable.relateToOperator("tex1Dbias", EOpTextureBias); + symbolTable.relateToOperator("tex1Dgrad", EOpTextureGrad); + symbolTable.relateToOperator("tex1Dlod", EOpTextureLod); + symbolTable.relateToOperator("tex1Dproj", EOpTextureProj); + symbolTable.relateToOperator("tex2D", EOpTexture); + symbolTable.relateToOperator("tex2Dbias", EOpTextureBias); + symbolTable.relateToOperator("tex2Dgrad", EOpTextureGrad); + symbolTable.relateToOperator("tex2Dlod", EOpTextureLod); + symbolTable.relateToOperator("tex2Dproj", EOpTextureProj); + symbolTable.relateToOperator("tex3D", EOpTexture); + symbolTable.relateToOperator("tex3Dbias", EOpTextureBias); + symbolTable.relateToOperator("tex3Dgrad", EOpTextureGrad); + symbolTable.relateToOperator("tex3Dlod", EOpTextureLod); + symbolTable.relateToOperator("tex3Dproj", EOpTextureProj); + symbolTable.relateToOperator("texCUBE", EOpTexture); + symbolTable.relateToOperator("texCUBEbias", EOpTextureBias); + symbolTable.relateToOperator("texCUBEgrad", EOpTextureGrad); + symbolTable.relateToOperator("texCUBElod", EOpTextureLod); + symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); + symbolTable.relateToOperator("transpose", EOpTranspose); + symbolTable.relateToOperator("trunc", EOpTrunc); + + // Texture methods + symbolTable.relateToOperator(BUILTIN_PREFIX "Sample", EOpMethodSample); + symbolTable.relateToOperator(BUILTIN_PREFIX "SampleBias", EOpMethodSampleBias); + symbolTable.relateToOperator(BUILTIN_PREFIX "SampleCmp", EOpMethodSampleCmp); + symbolTable.relateToOperator(BUILTIN_PREFIX "SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); + symbolTable.relateToOperator(BUILTIN_PREFIX "SampleGrad", EOpMethodSampleGrad); + symbolTable.relateToOperator(BUILTIN_PREFIX "SampleLevel", EOpMethodSampleLevel); + symbolTable.relateToOperator(BUILTIN_PREFIX "Load", EOpMethodLoad); + symbolTable.relateToOperator(BUILTIN_PREFIX "GetDimensions", EOpMethodGetDimensions); + symbolTable.relateToOperator(BUILTIN_PREFIX "GetSamplePosition", EOpMethodGetSamplePosition); + symbolTable.relateToOperator(BUILTIN_PREFIX "Gather", EOpMethodGather); + symbolTable.relateToOperator(BUILTIN_PREFIX "CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); + symbolTable.relateToOperator(BUILTIN_PREFIX "CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); + + // Structure buffer methods (excluding associations already made above for texture methods w/ same name) + symbolTable.relateToOperator(BUILTIN_PREFIX "Load2", EOpMethodLoad2); + symbolTable.relateToOperator(BUILTIN_PREFIX "Load3", EOpMethodLoad3); + symbolTable.relateToOperator(BUILTIN_PREFIX "Load4", EOpMethodLoad4); + symbolTable.relateToOperator(BUILTIN_PREFIX "Store", EOpMethodStore); + symbolTable.relateToOperator(BUILTIN_PREFIX "Store2", EOpMethodStore2); + symbolTable.relateToOperator(BUILTIN_PREFIX "Store3", EOpMethodStore3); + symbolTable.relateToOperator(BUILTIN_PREFIX "Store4", EOpMethodStore4); + symbolTable.relateToOperator(BUILTIN_PREFIX "IncrementCounter", EOpMethodIncrementCounter); + symbolTable.relateToOperator(BUILTIN_PREFIX "DecrementCounter", EOpMethodDecrementCounter); + // Append is also a GS method: we don't add it twice + symbolTable.relateToOperator(BUILTIN_PREFIX "Consume", EOpMethodConsume); + + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedAdd", EOpInterlockedAdd); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedAnd", EOpInterlockedAnd); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedCompareExchange", EOpInterlockedCompareExchange); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedCompareStore", EOpInterlockedCompareStore); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedExchange", EOpInterlockedExchange); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedMax", EOpInterlockedMax); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedMin", EOpInterlockedMin); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedOr", EOpInterlockedOr); + symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedXor", EOpInterlockedXor); + + // SM5 Texture methods + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherRed", EOpMethodGatherRed); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherGreen", EOpMethodGatherGreen); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherBlue", EOpMethodGatherBlue); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherAlpha", EOpMethodGatherAlpha); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmp", EOpMethodGatherCmpRed); // alias + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpRed", EOpMethodGatherCmpRed); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpGreen", EOpMethodGatherCmpGreen); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpBlue", EOpMethodGatherCmpBlue); + symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpAlpha", EOpMethodGatherCmpAlpha); + + // GS methods + symbolTable.relateToOperator(BUILTIN_PREFIX "Append", EOpMethodAppend); + symbolTable.relateToOperator(BUILTIN_PREFIX "RestartStrip", EOpMethodRestartStrip); + + // Wave ops + symbolTable.relateToOperator("WaveIsFirstLane", EOpSubgroupElect); + symbolTable.relateToOperator("WaveGetLaneCount", EOpWaveGetLaneCount); + symbolTable.relateToOperator("WaveGetLaneIndex", EOpWaveGetLaneIndex); + symbolTable.relateToOperator("WaveActiveAnyTrue", EOpSubgroupAny); + symbolTable.relateToOperator("WaveActiveAllTrue", EOpSubgroupAll); + symbolTable.relateToOperator("WaveActiveBallot", EOpSubgroupBallot); + symbolTable.relateToOperator("WaveReadLaneFirst", EOpSubgroupBroadcastFirst); + symbolTable.relateToOperator("WaveReadLaneAt", EOpSubgroupShuffle); + symbolTable.relateToOperator("WaveActiveAllEqual", EOpSubgroupAllEqual); + symbolTable.relateToOperator("WaveActiveAllEqualBool", EOpSubgroupAllEqual); + symbolTable.relateToOperator("WaveActiveCountBits", EOpWaveActiveCountBits); + symbolTable.relateToOperator("WaveActiveSum", EOpSubgroupAdd); + symbolTable.relateToOperator("WaveActiveProduct", EOpSubgroupMul); + symbolTable.relateToOperator("WaveActiveBitAnd", EOpSubgroupAnd); + symbolTable.relateToOperator("WaveActiveBitOr", EOpSubgroupOr); + symbolTable.relateToOperator("WaveActiveBitXor", EOpSubgroupXor); + symbolTable.relateToOperator("WaveActiveMin", EOpSubgroupMin); + symbolTable.relateToOperator("WaveActiveMax", EOpSubgroupMax); + symbolTable.relateToOperator("WavePrefixSum", EOpSubgroupInclusiveAdd); + symbolTable.relateToOperator("WavePrefixProduct", EOpSubgroupInclusiveMul); + symbolTable.relateToOperator("WavePrefixCountBits", EOpWavePrefixCountBits); + symbolTable.relateToOperator("QuadReadAcrossX", EOpSubgroupQuadSwapHorizontal); + symbolTable.relateToOperator("QuadReadAcrossY", EOpSubgroupQuadSwapVertical); + symbolTable.relateToOperator("QuadReadAcrossDiagonal", EOpSubgroupQuadSwapDiagonal); + symbolTable.relateToOperator("QuadReadLaneAt", EOpSubgroupQuadBroadcast); + + // Subpass input methods + symbolTable.relateToOperator(BUILTIN_PREFIX "SubpassLoad", EOpSubpassLoad); + symbolTable.relateToOperator(BUILTIN_PREFIX "SubpassLoadMS", EOpSubpassLoadMS); +} + +// +// Add context-dependent (resource-specific) built-ins not handled by the above. These +// would be ones that need to be programmatically added because they cannot +// be added by simple text strings. For these, also +// 1) Map built-in functions to operators, for those that will turn into an operation node +// instead of remaining a function call. +// 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*/) +{ +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslParseables.h b/deps/glslang/glslang/hlsl/hlslParseables.h new file mode 100755 index 0000000000..28f424b317 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslParseables.h @@ -0,0 +1,64 @@ +// +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef _HLSLPARSEABLES_INCLUDED_ +#define _HLSLPARSEABLES_INCLUDED_ + +#include "../glslang/MachineIndependent/Initialize.h" + +namespace glslang { + +// +// This is an HLSL specific derivation of TBuiltInParseables. See comment +// above TBuiltInParseables for details. +// +class TBuiltInParseablesHlsl : public TBuiltInParseables { +public: + POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) + TBuiltInParseablesHlsl(); + void initialize(int version, EProfile, const SpvVersion& spvVersion); + void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage); + + void identifyBuiltIns(int version, EProfile profile, 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 + +#endif // _HLSLPARSEABLES_INCLUDED_ diff --git a/deps/glslang/glslang/hlsl/hlslScanContext.cpp b/deps/glslang/glslang/hlsl/hlslScanContext.cpp new file mode 100755 index 0000000000..4414eb7aa8 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslScanContext.cpp @@ -0,0 +1,881 @@ +// +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +// +// HLSL scanning, leveraging the scanning done by the preprocessor. +// + +#include +#include +#include + +#include "../glslang/Include/Types.h" +#include "../glslang/MachineIndependent/SymbolTable.h" +#include "../glslang/MachineIndependent/ParseHelper.h" +#include "hlslScanContext.h" +#include "hlslTokens.h" + +// preprocessor includes +#include "../glslang/MachineIndependent/preprocessor/PpContext.h" +#include "../glslang/MachineIndependent/preprocessor/PpTokens.h" +#include "../glslang/MachineIndependent/preprocessor/Compare.h" + +namespace { + +// A single global usable by all threads, by all versions, by all languages. +// After a single process-level initialization, this is read only and thread safe +std::unordered_map* hlslKeywordMap = nullptr; +std::unordered_set* hlslReservedSet = nullptr; +std::unordered_map* hlslSemanticMap = nullptr; + +}; + +namespace glslang { + +void HlslScanContext::fillInKeywordMap() +{ + if (hlslKeywordMap != nullptr) { + // this is really an error, as this should called only once per process + // but, the only risk is if two threads called simultaneously + return; + } + hlslKeywordMap = new std::unordered_map; + + (*hlslKeywordMap)["static"] = EHTokStatic; + (*hlslKeywordMap)["const"] = EHTokConst; + (*hlslKeywordMap)["unorm"] = EHTokUnorm; + (*hlslKeywordMap)["snorm"] = EHTokSNorm; + (*hlslKeywordMap)["extern"] = EHTokExtern; + (*hlslKeywordMap)["uniform"] = EHTokUniform; + (*hlslKeywordMap)["volatile"] = EHTokVolatile; + (*hlslKeywordMap)["precise"] = EHTokPrecise; + (*hlslKeywordMap)["shared"] = EHTokShared; + (*hlslKeywordMap)["groupshared"] = EHTokGroupShared; + (*hlslKeywordMap)["linear"] = EHTokLinear; + (*hlslKeywordMap)["centroid"] = EHTokCentroid; + (*hlslKeywordMap)["nointerpolation"] = EHTokNointerpolation; + (*hlslKeywordMap)["noperspective"] = EHTokNoperspective; + (*hlslKeywordMap)["sample"] = EHTokSample; + (*hlslKeywordMap)["row_major"] = EHTokRowMajor; + (*hlslKeywordMap)["column_major"] = EHTokColumnMajor; + (*hlslKeywordMap)["packoffset"] = EHTokPackOffset; + (*hlslKeywordMap)["in"] = EHTokIn; + (*hlslKeywordMap)["out"] = EHTokOut; + (*hlslKeywordMap)["inout"] = EHTokInOut; + (*hlslKeywordMap)["layout"] = EHTokLayout; + (*hlslKeywordMap)["globallycoherent"] = EHTokGloballyCoherent; + (*hlslKeywordMap)["inline"] = EHTokInline; + + (*hlslKeywordMap)["point"] = EHTokPoint; + (*hlslKeywordMap)["line"] = EHTokLine; + (*hlslKeywordMap)["triangle"] = EHTokTriangle; + (*hlslKeywordMap)["lineadj"] = EHTokLineAdj; + (*hlslKeywordMap)["triangleadj"] = EHTokTriangleAdj; + + (*hlslKeywordMap)["PointStream"] = EHTokPointStream; + (*hlslKeywordMap)["LineStream"] = EHTokLineStream; + (*hlslKeywordMap)["TriangleStream"] = EHTokTriangleStream; + + (*hlslKeywordMap)["InputPatch"] = EHTokInputPatch; + (*hlslKeywordMap)["OutputPatch"] = EHTokOutputPatch; + + (*hlslKeywordMap)["Buffer"] = EHTokBuffer; + (*hlslKeywordMap)["vector"] = EHTokVector; + (*hlslKeywordMap)["matrix"] = EHTokMatrix; + + (*hlslKeywordMap)["void"] = EHTokVoid; + (*hlslKeywordMap)["string"] = EHTokString; + (*hlslKeywordMap)["bool"] = EHTokBool; + (*hlslKeywordMap)["int"] = EHTokInt; + (*hlslKeywordMap)["uint"] = EHTokUint; + (*hlslKeywordMap)["uint64_t"] = EHTokUint64; + (*hlslKeywordMap)["dword"] = EHTokDword; + (*hlslKeywordMap)["half"] = EHTokHalf; + (*hlslKeywordMap)["float"] = EHTokFloat; + (*hlslKeywordMap)["double"] = EHTokDouble; + (*hlslKeywordMap)["min16float"] = EHTokMin16float; + (*hlslKeywordMap)["min10float"] = EHTokMin10float; + (*hlslKeywordMap)["min16int"] = EHTokMin16int; + (*hlslKeywordMap)["min12int"] = EHTokMin12int; + (*hlslKeywordMap)["min16uint"] = EHTokMin16uint; + + (*hlslKeywordMap)["bool1"] = EHTokBool1; + (*hlslKeywordMap)["bool2"] = EHTokBool2; + (*hlslKeywordMap)["bool3"] = EHTokBool3; + (*hlslKeywordMap)["bool4"] = EHTokBool4; + (*hlslKeywordMap)["float1"] = EHTokFloat1; + (*hlslKeywordMap)["float2"] = EHTokFloat2; + (*hlslKeywordMap)["float3"] = EHTokFloat3; + (*hlslKeywordMap)["float4"] = EHTokFloat4; + (*hlslKeywordMap)["int1"] = EHTokInt1; + (*hlslKeywordMap)["int2"] = EHTokInt2; + (*hlslKeywordMap)["int3"] = EHTokInt3; + (*hlslKeywordMap)["int4"] = EHTokInt4; + (*hlslKeywordMap)["double1"] = EHTokDouble1; + (*hlslKeywordMap)["double2"] = EHTokDouble2; + (*hlslKeywordMap)["double3"] = EHTokDouble3; + (*hlslKeywordMap)["double4"] = EHTokDouble4; + (*hlslKeywordMap)["uint1"] = EHTokUint1; + (*hlslKeywordMap)["uint2"] = EHTokUint2; + (*hlslKeywordMap)["uint3"] = EHTokUint3; + (*hlslKeywordMap)["uint4"] = EHTokUint4; + + (*hlslKeywordMap)["half1"] = EHTokHalf1; + (*hlslKeywordMap)["half2"] = EHTokHalf2; + (*hlslKeywordMap)["half3"] = EHTokHalf3; + (*hlslKeywordMap)["half4"] = EHTokHalf4; + (*hlslKeywordMap)["min16float1"] = EHTokMin16float1; + (*hlslKeywordMap)["min16float2"] = EHTokMin16float2; + (*hlslKeywordMap)["min16float3"] = EHTokMin16float3; + (*hlslKeywordMap)["min16float4"] = EHTokMin16float4; + (*hlslKeywordMap)["min10float1"] = EHTokMin10float1; + (*hlslKeywordMap)["min10float2"] = EHTokMin10float2; + (*hlslKeywordMap)["min10float3"] = EHTokMin10float3; + (*hlslKeywordMap)["min10float4"] = EHTokMin10float4; + (*hlslKeywordMap)["min16int1"] = EHTokMin16int1; + (*hlslKeywordMap)["min16int2"] = EHTokMin16int2; + (*hlslKeywordMap)["min16int3"] = EHTokMin16int3; + (*hlslKeywordMap)["min16int4"] = EHTokMin16int4; + (*hlslKeywordMap)["min12int1"] = EHTokMin12int1; + (*hlslKeywordMap)["min12int2"] = EHTokMin12int2; + (*hlslKeywordMap)["min12int3"] = EHTokMin12int3; + (*hlslKeywordMap)["min12int4"] = EHTokMin12int4; + (*hlslKeywordMap)["min16uint1"] = EHTokMin16uint1; + (*hlslKeywordMap)["min16uint2"] = EHTokMin16uint2; + (*hlslKeywordMap)["min16uint3"] = EHTokMin16uint3; + (*hlslKeywordMap)["min16uint4"] = EHTokMin16uint4; + + (*hlslKeywordMap)["bool1x1"] = EHTokBool1x1; + (*hlslKeywordMap)["bool1x2"] = EHTokBool1x2; + (*hlslKeywordMap)["bool1x3"] = EHTokBool1x3; + (*hlslKeywordMap)["bool1x4"] = EHTokBool1x4; + (*hlslKeywordMap)["bool2x1"] = EHTokBool2x1; + (*hlslKeywordMap)["bool2x2"] = EHTokBool2x2; + (*hlslKeywordMap)["bool2x3"] = EHTokBool2x3; + (*hlslKeywordMap)["bool2x4"] = EHTokBool2x4; + (*hlslKeywordMap)["bool3x1"] = EHTokBool3x1; + (*hlslKeywordMap)["bool3x2"] = EHTokBool3x2; + (*hlslKeywordMap)["bool3x3"] = EHTokBool3x3; + (*hlslKeywordMap)["bool3x4"] = EHTokBool3x4; + (*hlslKeywordMap)["bool4x1"] = EHTokBool4x1; + (*hlslKeywordMap)["bool4x2"] = EHTokBool4x2; + (*hlslKeywordMap)["bool4x3"] = EHTokBool4x3; + (*hlslKeywordMap)["bool4x4"] = EHTokBool4x4; + (*hlslKeywordMap)["int1x1"] = EHTokInt1x1; + (*hlslKeywordMap)["int1x2"] = EHTokInt1x2; + (*hlslKeywordMap)["int1x3"] = EHTokInt1x3; + (*hlslKeywordMap)["int1x4"] = EHTokInt1x4; + (*hlslKeywordMap)["int2x1"] = EHTokInt2x1; + (*hlslKeywordMap)["int2x2"] = EHTokInt2x2; + (*hlslKeywordMap)["int2x3"] = EHTokInt2x3; + (*hlslKeywordMap)["int2x4"] = EHTokInt2x4; + (*hlslKeywordMap)["int3x1"] = EHTokInt3x1; + (*hlslKeywordMap)["int3x2"] = EHTokInt3x2; + (*hlslKeywordMap)["int3x3"] = EHTokInt3x3; + (*hlslKeywordMap)["int3x4"] = EHTokInt3x4; + (*hlslKeywordMap)["int4x1"] = EHTokInt4x1; + (*hlslKeywordMap)["int4x2"] = EHTokInt4x2; + (*hlslKeywordMap)["int4x3"] = EHTokInt4x3; + (*hlslKeywordMap)["int4x4"] = EHTokInt4x4; + (*hlslKeywordMap)["uint1x1"] = EHTokUint1x1; + (*hlslKeywordMap)["uint1x2"] = EHTokUint1x2; + (*hlslKeywordMap)["uint1x3"] = EHTokUint1x3; + (*hlslKeywordMap)["uint1x4"] = EHTokUint1x4; + (*hlslKeywordMap)["uint2x1"] = EHTokUint2x1; + (*hlslKeywordMap)["uint2x2"] = EHTokUint2x2; + (*hlslKeywordMap)["uint2x3"] = EHTokUint2x3; + (*hlslKeywordMap)["uint2x4"] = EHTokUint2x4; + (*hlslKeywordMap)["uint3x1"] = EHTokUint3x1; + (*hlslKeywordMap)["uint3x2"] = EHTokUint3x2; + (*hlslKeywordMap)["uint3x3"] = EHTokUint3x3; + (*hlslKeywordMap)["uint3x4"] = EHTokUint3x4; + (*hlslKeywordMap)["uint4x1"] = EHTokUint4x1; + (*hlslKeywordMap)["uint4x2"] = EHTokUint4x2; + (*hlslKeywordMap)["uint4x3"] = EHTokUint4x3; + (*hlslKeywordMap)["uint4x4"] = EHTokUint4x4; + (*hlslKeywordMap)["bool1x1"] = EHTokBool1x1; + (*hlslKeywordMap)["bool1x2"] = EHTokBool1x2; + (*hlslKeywordMap)["bool1x3"] = EHTokBool1x3; + (*hlslKeywordMap)["bool1x4"] = EHTokBool1x4; + (*hlslKeywordMap)["bool2x1"] = EHTokBool2x1; + (*hlslKeywordMap)["bool2x2"] = EHTokBool2x2; + (*hlslKeywordMap)["bool2x3"] = EHTokBool2x3; + (*hlslKeywordMap)["bool2x4"] = EHTokBool2x4; + (*hlslKeywordMap)["bool3x1"] = EHTokBool3x1; + (*hlslKeywordMap)["bool3x2"] = EHTokBool3x2; + (*hlslKeywordMap)["bool3x3"] = EHTokBool3x3; + (*hlslKeywordMap)["bool3x4"] = EHTokBool3x4; + (*hlslKeywordMap)["bool4x1"] = EHTokBool4x1; + (*hlslKeywordMap)["bool4x2"] = EHTokBool4x2; + (*hlslKeywordMap)["bool4x3"] = EHTokBool4x3; + (*hlslKeywordMap)["bool4x4"] = EHTokBool4x4; + (*hlslKeywordMap)["float1x1"] = EHTokFloat1x1; + (*hlslKeywordMap)["float1x2"] = EHTokFloat1x2; + (*hlslKeywordMap)["float1x3"] = EHTokFloat1x3; + (*hlslKeywordMap)["float1x4"] = EHTokFloat1x4; + (*hlslKeywordMap)["float2x1"] = EHTokFloat2x1; + (*hlslKeywordMap)["float2x2"] = EHTokFloat2x2; + (*hlslKeywordMap)["float2x3"] = EHTokFloat2x3; + (*hlslKeywordMap)["float2x4"] = EHTokFloat2x4; + (*hlslKeywordMap)["float3x1"] = EHTokFloat3x1; + (*hlslKeywordMap)["float3x2"] = EHTokFloat3x2; + (*hlslKeywordMap)["float3x3"] = EHTokFloat3x3; + (*hlslKeywordMap)["float3x4"] = EHTokFloat3x4; + (*hlslKeywordMap)["float4x1"] = EHTokFloat4x1; + (*hlslKeywordMap)["float4x2"] = EHTokFloat4x2; + (*hlslKeywordMap)["float4x3"] = EHTokFloat4x3; + (*hlslKeywordMap)["float4x4"] = EHTokFloat4x4; + (*hlslKeywordMap)["half1x1"] = EHTokHalf1x1; + (*hlslKeywordMap)["half1x2"] = EHTokHalf1x2; + (*hlslKeywordMap)["half1x3"] = EHTokHalf1x3; + (*hlslKeywordMap)["half1x4"] = EHTokHalf1x4; + (*hlslKeywordMap)["half2x1"] = EHTokHalf2x1; + (*hlslKeywordMap)["half2x2"] = EHTokHalf2x2; + (*hlslKeywordMap)["half2x3"] = EHTokHalf2x3; + (*hlslKeywordMap)["half2x4"] = EHTokHalf2x4; + (*hlslKeywordMap)["half3x1"] = EHTokHalf3x1; + (*hlslKeywordMap)["half3x2"] = EHTokHalf3x2; + (*hlslKeywordMap)["half3x3"] = EHTokHalf3x3; + (*hlslKeywordMap)["half3x4"] = EHTokHalf3x4; + (*hlslKeywordMap)["half4x1"] = EHTokHalf4x1; + (*hlslKeywordMap)["half4x2"] = EHTokHalf4x2; + (*hlslKeywordMap)["half4x3"] = EHTokHalf4x3; + (*hlslKeywordMap)["half4x4"] = EHTokHalf4x4; + (*hlslKeywordMap)["double1x1"] = EHTokDouble1x1; + (*hlslKeywordMap)["double1x2"] = EHTokDouble1x2; + (*hlslKeywordMap)["double1x3"] = EHTokDouble1x3; + (*hlslKeywordMap)["double1x4"] = EHTokDouble1x4; + (*hlslKeywordMap)["double2x1"] = EHTokDouble2x1; + (*hlslKeywordMap)["double2x2"] = EHTokDouble2x2; + (*hlslKeywordMap)["double2x3"] = EHTokDouble2x3; + (*hlslKeywordMap)["double2x4"] = EHTokDouble2x4; + (*hlslKeywordMap)["double3x1"] = EHTokDouble3x1; + (*hlslKeywordMap)["double3x2"] = EHTokDouble3x2; + (*hlslKeywordMap)["double3x3"] = EHTokDouble3x3; + (*hlslKeywordMap)["double3x4"] = EHTokDouble3x4; + (*hlslKeywordMap)["double4x1"] = EHTokDouble4x1; + (*hlslKeywordMap)["double4x2"] = EHTokDouble4x2; + (*hlslKeywordMap)["double4x3"] = EHTokDouble4x3; + (*hlslKeywordMap)["double4x4"] = EHTokDouble4x4; + + (*hlslKeywordMap)["sampler"] = EHTokSampler; + (*hlslKeywordMap)["sampler1D"] = EHTokSampler1d; + (*hlslKeywordMap)["sampler2D"] = EHTokSampler2d; + (*hlslKeywordMap)["sampler3D"] = EHTokSampler3d; + (*hlslKeywordMap)["samplerCube"] = EHTokSamplerCube; + (*hlslKeywordMap)["sampler_state"] = EHTokSamplerState; + (*hlslKeywordMap)["SamplerState"] = EHTokSamplerState; + (*hlslKeywordMap)["SamplerComparisonState"] = EHTokSamplerComparisonState; + (*hlslKeywordMap)["texture"] = EHTokTexture; + (*hlslKeywordMap)["Texture1D"] = EHTokTexture1d; + (*hlslKeywordMap)["Texture1DArray"] = EHTokTexture1darray; + (*hlslKeywordMap)["Texture2D"] = EHTokTexture2d; + (*hlslKeywordMap)["Texture2DArray"] = EHTokTexture2darray; + (*hlslKeywordMap)["Texture3D"] = EHTokTexture3d; + (*hlslKeywordMap)["TextureCube"] = EHTokTextureCube; + (*hlslKeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; + (*hlslKeywordMap)["Texture2DMS"] = EHTokTexture2DMS; + (*hlslKeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; + (*hlslKeywordMap)["RWTexture1D"] = EHTokRWTexture1d; + (*hlslKeywordMap)["RWTexture1DArray"] = EHTokRWTexture1darray; + (*hlslKeywordMap)["RWTexture2D"] = EHTokRWTexture2d; + (*hlslKeywordMap)["RWTexture2DArray"] = EHTokRWTexture2darray; + (*hlslKeywordMap)["RWTexture3D"] = EHTokRWTexture3d; + (*hlslKeywordMap)["RWBuffer"] = EHTokRWBuffer; + (*hlslKeywordMap)["SubpassInput"] = EHTokSubpassInput; + (*hlslKeywordMap)["SubpassInputMS"] = EHTokSubpassInputMS; + + (*hlslKeywordMap)["AppendStructuredBuffer"] = EHTokAppendStructuredBuffer; + (*hlslKeywordMap)["ByteAddressBuffer"] = EHTokByteAddressBuffer; + (*hlslKeywordMap)["ConsumeStructuredBuffer"] = EHTokConsumeStructuredBuffer; + (*hlslKeywordMap)["RWByteAddressBuffer"] = EHTokRWByteAddressBuffer; + (*hlslKeywordMap)["RWStructuredBuffer"] = EHTokRWStructuredBuffer; + (*hlslKeywordMap)["StructuredBuffer"] = EHTokStructuredBuffer; + (*hlslKeywordMap)["TextureBuffer"] = EHTokTextureBuffer; + + (*hlslKeywordMap)["class"] = EHTokClass; + (*hlslKeywordMap)["struct"] = EHTokStruct; + (*hlslKeywordMap)["cbuffer"] = EHTokCBuffer; + (*hlslKeywordMap)["ConstantBuffer"] = EHTokConstantBuffer; + (*hlslKeywordMap)["tbuffer"] = EHTokTBuffer; + (*hlslKeywordMap)["typedef"] = EHTokTypedef; + (*hlslKeywordMap)["this"] = EHTokThis; + (*hlslKeywordMap)["namespace"] = EHTokNamespace; + + (*hlslKeywordMap)["true"] = EHTokBoolConstant; + (*hlslKeywordMap)["false"] = EHTokBoolConstant; + + (*hlslKeywordMap)["for"] = EHTokFor; + (*hlslKeywordMap)["do"] = EHTokDo; + (*hlslKeywordMap)["while"] = EHTokWhile; + (*hlslKeywordMap)["break"] = EHTokBreak; + (*hlslKeywordMap)["continue"] = EHTokContinue; + (*hlslKeywordMap)["if"] = EHTokIf; + (*hlslKeywordMap)["else"] = EHTokElse; + (*hlslKeywordMap)["discard"] = EHTokDiscard; + (*hlslKeywordMap)["return"] = EHTokReturn; + (*hlslKeywordMap)["switch"] = EHTokSwitch; + (*hlslKeywordMap)["case"] = EHTokCase; + (*hlslKeywordMap)["default"] = EHTokDefault; + + // TODO: get correct set here + hlslReservedSet = new std::unordered_set; + + hlslReservedSet->insert("auto"); + hlslReservedSet->insert("catch"); + hlslReservedSet->insert("char"); + hlslReservedSet->insert("const_cast"); + hlslReservedSet->insert("enum"); + hlslReservedSet->insert("explicit"); + hlslReservedSet->insert("friend"); + hlslReservedSet->insert("goto"); + hlslReservedSet->insert("long"); + hlslReservedSet->insert("mutable"); + hlslReservedSet->insert("new"); + hlslReservedSet->insert("operator"); + hlslReservedSet->insert("private"); + hlslReservedSet->insert("protected"); + hlslReservedSet->insert("public"); + hlslReservedSet->insert("reinterpret_cast"); + hlslReservedSet->insert("short"); + hlslReservedSet->insert("signed"); + hlslReservedSet->insert("sizeof"); + hlslReservedSet->insert("static_cast"); + hlslReservedSet->insert("template"); + hlslReservedSet->insert("throw"); + hlslReservedSet->insert("try"); + hlslReservedSet->insert("typename"); + hlslReservedSet->insert("union"); + hlslReservedSet->insert("unsigned"); + hlslReservedSet->insert("using"); + hlslReservedSet->insert("virtual"); + + hlslSemanticMap = new std::unordered_map; + + // in DX9, all outputs had to have a semantic associated with them, that was either consumed + // by the system or was a specific register assignment + // in DX10+, only semantics with the SV_ prefix have any meaning beyond decoration + // Fxc will only accept DX9 style semantics in compat mode + // Also, in DX10 if a SV value is present as the input of a stage, but isn't appropriate for that + // stage, it would just be ignored as it is likely there as part of an output struct from one stage + // to the next + bool bParseDX9 = false; + if (bParseDX9) { + (*hlslSemanticMap)["PSIZE"] = EbvPointSize; + (*hlslSemanticMap)["FOG"] = EbvFogFragCoord; + (*hlslSemanticMap)["DEPTH"] = EbvFragDepth; + (*hlslSemanticMap)["VFACE"] = EbvFace; + (*hlslSemanticMap)["VPOS"] = EbvFragCoord; + } + + (*hlslSemanticMap)["SV_POSITION"] = EbvPosition; + (*hlslSemanticMap)["SV_VERTEXID"] = EbvVertexIndex; + (*hlslSemanticMap)["SV_VIEWPORTARRAYINDEX"] = EbvViewportIndex; + (*hlslSemanticMap)["SV_TESSFACTOR"] = EbvTessLevelOuter; + (*hlslSemanticMap)["SV_SAMPLEINDEX"] = EbvSampleId; + (*hlslSemanticMap)["SV_RENDERTARGETARRAYINDEX"] = EbvLayer; + (*hlslSemanticMap)["SV_PRIMITIVEID"] = EbvPrimitiveId; + (*hlslSemanticMap)["SV_OUTPUTCONTROLPOINTID"] = EbvInvocationId; + (*hlslSemanticMap)["SV_ISFRONTFACE"] = EbvFace; + (*hlslSemanticMap)["SV_INSTANCEID"] = EbvInstanceIndex; + (*hlslSemanticMap)["SV_INSIDETESSFACTOR"] = EbvTessLevelInner; + (*hlslSemanticMap)["SV_GSINSTANCEID"] = EbvInvocationId; + (*hlslSemanticMap)["SV_DISPATCHTHREADID"] = EbvGlobalInvocationId; + (*hlslSemanticMap)["SV_GROUPTHREADID"] = EbvLocalInvocationId; + (*hlslSemanticMap)["SV_GROUPINDEX"] = EbvLocalInvocationIndex; + (*hlslSemanticMap)["SV_GROUPID"] = EbvWorkGroupId; + (*hlslSemanticMap)["SV_DOMAINLOCATION"] = EbvTessCoord; + (*hlslSemanticMap)["SV_DEPTH"] = EbvFragDepth; + (*hlslSemanticMap)["SV_COVERAGE"] = EbvSampleMask; + (*hlslSemanticMap)["SV_DEPTHGREATEREQUAL"] = EbvFragDepthGreater; + (*hlslSemanticMap)["SV_DEPTHLESSEQUAL"] = EbvFragDepthLesser; + (*hlslSemanticMap)["SV_STENCILREF"] = EbvFragStencilRef; +} + +void HlslScanContext::deleteKeywordMap() +{ + delete hlslKeywordMap; + hlslKeywordMap = nullptr; + delete hlslReservedSet; + hlslReservedSet = nullptr; + delete hlslSemanticMap; + hlslSemanticMap = nullptr; +} + +// Wrapper for tokenizeClass() to get everything inside the token. +void HlslScanContext::tokenize(HlslToken& token) +{ + EHlslTokenClass tokenClass = tokenizeClass(token); + token.tokenClass = tokenClass; +} + +glslang::TBuiltInVariable HlslScanContext::mapSemantic(const char* upperCase) +{ + auto it = hlslSemanticMap->find(upperCase); + if (it != hlslSemanticMap->end()) + return it->second; + else + return glslang::EbvNone; +} + +// +// Fill in token information for the next token, except for the token class. +// Returns the enum value of the token class of the next token found. +// Return 0 (EndOfTokens) on end of input. +// +EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) +{ + do { + parserToken = &token; + TPpToken ppToken; + int token = ppContext.tokenize(ppToken); + if (token == EndOfInput) + return EHTokNone; + + tokenText = ppToken.name; + loc = ppToken.loc; + parserToken->loc = loc; + switch (token) { + case ';': return EHTokSemicolon; + case ',': return EHTokComma; + case ':': return EHTokColon; + case '=': return EHTokAssign; + case '(': return EHTokLeftParen; + case ')': return EHTokRightParen; + case '.': return EHTokDot; + case '!': return EHTokBang; + case '-': return EHTokDash; + case '~': return EHTokTilde; + case '+': return EHTokPlus; + case '*': return EHTokStar; + case '/': return EHTokSlash; + case '%': return EHTokPercent; + case '<': return EHTokLeftAngle; + case '>': return EHTokRightAngle; + case '|': return EHTokVerticalBar; + case '^': return EHTokCaret; + case '&': return EHTokAmpersand; + case '?': return EHTokQuestion; + case '[': return EHTokLeftBracket; + case ']': return EHTokRightBracket; + case '{': return EHTokLeftBrace; + case '}': return EHTokRightBrace; + case '\\': + _parseContext.error(loc, "illegal use of escape character", "\\", ""); + break; + + case PPAtomAddAssign: return EHTokAddAssign; + case PPAtomSubAssign: return EHTokSubAssign; + case PPAtomMulAssign: return EHTokMulAssign; + case PPAtomDivAssign: return EHTokDivAssign; + case PPAtomModAssign: return EHTokModAssign; + + case PpAtomRight: return EHTokRightOp; + case PpAtomLeft: return EHTokLeftOp; + + case PpAtomRightAssign: return EHTokRightAssign; + case PpAtomLeftAssign: return EHTokLeftAssign; + case PpAtomAndAssign: return EHTokAndAssign; + case PpAtomOrAssign: return EHTokOrAssign; + case PpAtomXorAssign: return EHTokXorAssign; + + case PpAtomAnd: return EHTokAndOp; + case PpAtomOr: return EHTokOrOp; + case PpAtomXor: return EHTokXorOp; + + case PpAtomEQ: return EHTokEqOp; + case PpAtomGE: return EHTokGeOp; + case PpAtomNE: return EHTokNeOp; + case PpAtomLE: return EHTokLeOp; + + case PpAtomDecrement: return EHTokDecOp; + case PpAtomIncrement: return EHTokIncOp; + + case PpAtomColonColon: return EHTokColonColon; + + case PpAtomConstInt: parserToken->i = ppToken.ival; return EHTokIntConstant; + case PpAtomConstUint: parserToken->i = ppToken.ival; return EHTokUintConstant; + case PpAtomConstFloat16: parserToken->d = ppToken.dval; return EHTokFloat16Constant; + case PpAtomConstFloat: parserToken->d = ppToken.dval; return EHTokFloatConstant; + case PpAtomConstDouble: parserToken->d = ppToken.dval; return EHTokDoubleConstant; + case PpAtomIdentifier: + { + EHlslTokenClass token = tokenizeIdentifier(); + return token; + } + + case PpAtomConstString: { + parserToken->string = NewPoolTString(tokenText); + return EHTokStringConstant; + } + + case EndOfInput: return EHTokNone; + + default: + if (token < PpAtomMaxSingle) { + char buf[2]; + buf[0] = (char)token; + buf[1] = 0; + _parseContext.error(loc, "unexpected token", buf, ""); + } else if (tokenText[0] != 0) + _parseContext.error(loc, "unexpected token", tokenText, ""); + else + _parseContext.error(loc, "unexpected token", "", ""); + break; + } + } while (true); +} + +EHlslTokenClass HlslScanContext::tokenizeIdentifier() +{ + if (hlslReservedSet->find(tokenText) != hlslReservedSet->end()) + return reservedWord(); + + auto it = hlslKeywordMap->find(tokenText); + if (it == hlslKeywordMap->end()) { + // Should have an identifier of some sort + return identifierOrType(); + } + keyword = it->second; + + switch (keyword) { + + // qualifiers + case EHTokStatic: + case EHTokConst: + case EHTokSNorm: + case EHTokUnorm: + case EHTokExtern: + case EHTokUniform: + case EHTokVolatile: + case EHTokShared: + case EHTokGroupShared: + case EHTokLinear: + case EHTokCentroid: + case EHTokNointerpolation: + case EHTokNoperspective: + case EHTokSample: + case EHTokRowMajor: + case EHTokColumnMajor: + case EHTokPackOffset: + case EHTokIn: + case EHTokOut: + case EHTokInOut: + case EHTokPrecise: + case EHTokLayout: + case EHTokGloballyCoherent: + case EHTokInline: + return keyword; + + // primitive types + case EHTokPoint: + case EHTokLine: + case EHTokTriangle: + case EHTokLineAdj: + case EHTokTriangleAdj: + return keyword; + + // stream out types + case EHTokPointStream: + case EHTokLineStream: + case EHTokTriangleStream: + return keyword; + + // Tessellation patches + case EHTokInputPatch: + case EHTokOutputPatch: + return keyword; + + case EHTokBuffer: + case EHTokVector: + case EHTokMatrix: + return keyword; + + // scalar types + case EHTokVoid: + case EHTokString: + case EHTokBool: + case EHTokInt: + case EHTokUint: + case EHTokUint64: + case EHTokDword: + case EHTokHalf: + case EHTokFloat: + case EHTokDouble: + case EHTokMin16float: + case EHTokMin10float: + case EHTokMin16int: + case EHTokMin12int: + case EHTokMin16uint: + + // vector types + case EHTokBool1: + case EHTokBool2: + case EHTokBool3: + case EHTokBool4: + case EHTokFloat1: + case EHTokFloat2: + case EHTokFloat3: + case EHTokFloat4: + case EHTokInt1: + case EHTokInt2: + case EHTokInt3: + case EHTokInt4: + case EHTokDouble1: + case EHTokDouble2: + case EHTokDouble3: + case EHTokDouble4: + case EHTokUint1: + case EHTokUint2: + case EHTokUint3: + case EHTokUint4: + case EHTokHalf1: + case EHTokHalf2: + case EHTokHalf3: + case EHTokHalf4: + case EHTokMin16float1: + case EHTokMin16float2: + case EHTokMin16float3: + case EHTokMin16float4: + case EHTokMin10float1: + case EHTokMin10float2: + case EHTokMin10float3: + case EHTokMin10float4: + case EHTokMin16int1: + case EHTokMin16int2: + case EHTokMin16int3: + case EHTokMin16int4: + case EHTokMin12int1: + case EHTokMin12int2: + case EHTokMin12int3: + case EHTokMin12int4: + case EHTokMin16uint1: + case EHTokMin16uint2: + case EHTokMin16uint3: + case EHTokMin16uint4: + + // matrix types + case EHTokBool1x1: + case EHTokBool1x2: + case EHTokBool1x3: + case EHTokBool1x4: + case EHTokBool2x1: + case EHTokBool2x2: + case EHTokBool2x3: + case EHTokBool2x4: + case EHTokBool3x1: + case EHTokBool3x2: + case EHTokBool3x3: + case EHTokBool3x4: + case EHTokBool4x1: + case EHTokBool4x2: + case EHTokBool4x3: + case EHTokBool4x4: + case EHTokInt1x1: + case EHTokInt1x2: + case EHTokInt1x3: + case EHTokInt1x4: + case EHTokInt2x1: + case EHTokInt2x2: + case EHTokInt2x3: + case EHTokInt2x4: + case EHTokInt3x1: + case EHTokInt3x2: + case EHTokInt3x3: + case EHTokInt3x4: + case EHTokInt4x1: + case EHTokInt4x2: + case EHTokInt4x3: + case EHTokInt4x4: + case EHTokUint1x1: + case EHTokUint1x2: + case EHTokUint1x3: + case EHTokUint1x4: + case EHTokUint2x1: + case EHTokUint2x2: + case EHTokUint2x3: + case EHTokUint2x4: + case EHTokUint3x1: + case EHTokUint3x2: + case EHTokUint3x3: + case EHTokUint3x4: + case EHTokUint4x1: + case EHTokUint4x2: + case EHTokUint4x3: + case EHTokUint4x4: + case EHTokFloat1x1: + case EHTokFloat1x2: + case EHTokFloat1x3: + case EHTokFloat1x4: + case EHTokFloat2x1: + case EHTokFloat2x2: + case EHTokFloat2x3: + case EHTokFloat2x4: + case EHTokFloat3x1: + case EHTokFloat3x2: + case EHTokFloat3x3: + case EHTokFloat3x4: + case EHTokFloat4x1: + case EHTokFloat4x2: + case EHTokFloat4x3: + case EHTokFloat4x4: + case EHTokHalf1x1: + case EHTokHalf1x2: + case EHTokHalf1x3: + case EHTokHalf1x4: + case EHTokHalf2x1: + case EHTokHalf2x2: + case EHTokHalf2x3: + case EHTokHalf2x4: + case EHTokHalf3x1: + case EHTokHalf3x2: + case EHTokHalf3x3: + case EHTokHalf3x4: + case EHTokHalf4x1: + case EHTokHalf4x2: + case EHTokHalf4x3: + case EHTokHalf4x4: + case EHTokDouble1x1: + case EHTokDouble1x2: + case EHTokDouble1x3: + case EHTokDouble1x4: + case EHTokDouble2x1: + case EHTokDouble2x2: + case EHTokDouble2x3: + case EHTokDouble2x4: + case EHTokDouble3x1: + case EHTokDouble3x2: + case EHTokDouble3x3: + case EHTokDouble3x4: + case EHTokDouble4x1: + case EHTokDouble4x2: + case EHTokDouble4x3: + case EHTokDouble4x4: + return keyword; + + // texturing types + case EHTokSampler: + case EHTokSampler1d: + case EHTokSampler2d: + case EHTokSampler3d: + case EHTokSamplerCube: + case EHTokSamplerState: + case EHTokSamplerComparisonState: + case EHTokTexture: + case EHTokTexture1d: + case EHTokTexture1darray: + case EHTokTexture2d: + case EHTokTexture2darray: + case EHTokTexture3d: + case EHTokTextureCube: + case EHTokTextureCubearray: + case EHTokTexture2DMS: + case EHTokTexture2DMSarray: + case EHTokRWTexture1d: + case EHTokRWTexture1darray: + case EHTokRWTexture2d: + case EHTokRWTexture2darray: + case EHTokRWTexture3d: + case EHTokRWBuffer: + case EHTokAppendStructuredBuffer: + case EHTokByteAddressBuffer: + case EHTokConsumeStructuredBuffer: + case EHTokRWByteAddressBuffer: + case EHTokRWStructuredBuffer: + case EHTokStructuredBuffer: + case EHTokTextureBuffer: + case EHTokSubpassInput: + case EHTokSubpassInputMS: + return keyword; + + // variable, user type, ... + case EHTokClass: + case EHTokStruct: + case EHTokTypedef: + case EHTokCBuffer: + case EHTokConstantBuffer: + case EHTokTBuffer: + case EHTokThis: + case EHTokNamespace: + return keyword; + + case EHTokBoolConstant: + if (strcmp("true", tokenText) == 0) + parserToken->b = true; + else + parserToken->b = false; + return keyword; + + // control flow + case EHTokFor: + case EHTokDo: + case EHTokWhile: + case EHTokBreak: + case EHTokContinue: + case EHTokIf: + case EHTokElse: + case EHTokDiscard: + case EHTokReturn: + case EHTokCase: + case EHTokSwitch: + case EHTokDefault: + return keyword; + + default: + _parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); + return EHTokNone; + } +} + +EHlslTokenClass HlslScanContext::identifierOrType() +{ + parserToken->string = NewPoolTString(tokenText); + + return EHTokIdentifier; +} + +// Give an error for use of a reserved symbol. +// However, allow built-in declarations to use reserved words, to allow +// extension support before the extension is enabled. +EHlslTokenClass HlslScanContext::reservedWord() +{ + if (! _parseContext.symbolTable.atBuiltInLevel()) + _parseContext.error(loc, "Reserved word.", tokenText, "", ""); + + return EHTokNone; +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslScanContext.h b/deps/glslang/glslang/hlsl/hlslScanContext.h new file mode 100755 index 0000000000..f7912c8d9b --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslScanContext.h @@ -0,0 +1,109 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +// +// This holds context specific to the HLSL scanner, which +// sits between the preprocessor scanner and HLSL parser. +// + +#ifndef HLSLSCANCONTEXT_H_ +#define HLSLSCANCONTEXT_H_ + +#include "../glslang/MachineIndependent/ParseHelper.h" +#include "hlslTokens.h" + +namespace glslang { + +class TPpContext; +class TPpToken; + + +// +// Everything needed to fully describe a token. +// +struct HlslToken { + HlslToken() : string(nullptr) { loc.init(); } + TSourceLoc loc; // location of token in the source + EHlslTokenClass tokenClass; // what kind of token it is + union { // what data the token holds + glslang::TString *string; // for identifiers + int i; // for literals + unsigned int u; + bool b; + double d; + }; +}; + +// +// The state of scanning and translating raw tokens to slightly richer +// semantics, like knowing if an identifier is an existing symbol, or +// user-defined type. +// +class HlslScanContext { +public: + HlslScanContext(TParseContextBase& _parseContext, TPpContext& ppContext) + : _parseContext(_parseContext), ppContext(ppContext) { } + virtual ~HlslScanContext() { } + + static void fillInKeywordMap(); + static void deleteKeywordMap(); + + void tokenize(HlslToken&); + glslang::TBuiltInVariable mapSemantic(const char*); + +protected: + HlslScanContext(HlslScanContext&); + HlslScanContext& operator=(HlslScanContext&); + + EHlslTokenClass tokenizeClass(HlslToken&); + EHlslTokenClass tokenizeIdentifier(); + EHlslTokenClass identifierOrType(); + EHlslTokenClass reservedWord(); + EHlslTokenClass identifierOrReserved(bool reserved); + EHlslTokenClass nonreservedKeyword(int version); + + TParseContextBase& _parseContext; + TPpContext& ppContext; + TSourceLoc loc; + TPpToken* ppToken; + HlslToken* parserToken; + + const char* tokenText; + EHlslTokenClass keyword; +}; + +} // end namespace glslang + +#endif // HLSLSCANCONTEXT_H_ diff --git a/deps/glslang/glslang/hlsl/hlslTokenStream.cpp b/deps/glslang/glslang/hlsl/hlslTokenStream.cpp new file mode 100755 index 0000000000..5d9311cfd7 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslTokenStream.cpp @@ -0,0 +1,150 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#include "hlslTokenStream.h" + +namespace glslang { + +void HlslTokenStream::pushPreToken(const HlslToken& tok) +{ + assert(preTokenStackSize < tokenBufferSize); + preTokenStack[preTokenStackSize++] = tok; +} + +HlslToken HlslTokenStream::popPreToken() +{ + assert(preTokenStackSize > 0); + + return preTokenStack[--preTokenStackSize]; +} + +void HlslTokenStream::pushTokenBuffer(const HlslToken& tok) +{ + tokenBuffer[tokenBufferPos] = tok; + tokenBufferPos = (tokenBufferPos+1) % tokenBufferSize; +} + +HlslToken HlslTokenStream::popTokenBuffer() +{ + // Back up + tokenBufferPos = (tokenBufferPos+tokenBufferSize-1) % tokenBufferSize; + + return tokenBuffer[tokenBufferPos]; +} + +// +// Make a new source of tokens, not from the source, but from an +// already pre-processed token stream. +// +// This interrupts current token processing which must be restored +// later. Some simplifying assumptions are made (and asserted). +// +void HlslTokenStream::pushTokenStream(const TVector* tokens) +{ + // not yet setup to interrupt a stream that has been receded + // and not yet reconsumed + assert(preTokenStackSize == 0); + + // save current state + currentTokenStack.push_back(token); + + // set up new token stream + tokenStreamStack.push_back(tokens); + + // start position at first token: + token = (*tokens)[0]; + tokenPosition.push_back(0); +} + +// Undo pushTokenStream(), see above +void HlslTokenStream::popTokenStream() +{ + tokenStreamStack.pop_back(); + tokenPosition.pop_back(); + token = currentTokenStack.back(); + currentTokenStack.pop_back(); +} + +// Load 'token' with the next token in the stream of tokens. +void HlslTokenStream::advanceToken() +{ + pushTokenBuffer(token); + if (preTokenStackSize > 0) + token = popPreToken(); + else { + if (tokenStreamStack.size() == 0) + scanner.tokenize(token); + else { + ++tokenPosition.back(); + if (tokenPosition.back() >= (int)tokenStreamStack.back()->size()) + token.tokenClass = EHTokNone; + else + token = (*tokenStreamStack.back())[tokenPosition.back()]; + } + } +} + +void HlslTokenStream::recedeToken() +{ + pushPreToken(token); + token = popTokenBuffer(); +} + +// Return the current token class. +EHlslTokenClass HlslTokenStream::peek() const +{ + return token.tokenClass; +} + +// Return true, without advancing to the next token, if the current token is +// the expected (passed in) token class. +bool HlslTokenStream::peekTokenClass(EHlslTokenClass tokenClass) const +{ + return peek() == tokenClass; +} + +// Return true and advance to the next token if the current token is the +// expected (passed in) token class. +bool HlslTokenStream::acceptTokenClass(EHlslTokenClass tokenClass) +{ + if (peekTokenClass(tokenClass)) { + advanceToken(); + return true; + } + + return false; +} + +} // end namespace glslang diff --git a/deps/glslang/glslang/hlsl/hlslTokenStream.h b/deps/glslang/glslang/hlsl/hlslTokenStream.h new file mode 100755 index 0000000000..cb6c9e7234 --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslTokenStream.h @@ -0,0 +1,96 @@ +// +// Copyright (C) 2016 Google, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef HLSLTOKENSTREAM_H_ +#define HLSLTOKENSTREAM_H_ + +#include "hlslScanContext.h" + +namespace glslang { + + class HlslTokenStream { + public: + explicit HlslTokenStream(HlslScanContext& scanner) + : scanner(scanner), preTokenStackSize(0), tokenBufferPos(0) { } + virtual ~HlslTokenStream() { } + + public: + void advanceToken(); + void recedeToken(); + bool acceptTokenClass(EHlslTokenClass); + EHlslTokenClass peek() const; + bool peekTokenClass(EHlslTokenClass) const; + glslang::TBuiltInVariable mapSemantic(const char* upperCase) { return scanner.mapSemantic(upperCase); } + + void pushTokenStream(const TVector* tokens); + void popTokenStream(); + + protected: + 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 from source file + TVector*> tokenStreamStack; // for getting the next token from an existing vector of tokens + TVector tokenPosition; + TVector currentTokenStack; + + // This is the number of tokens we can recedeToken() over. + static const int tokenBufferSize = 2; + + // Previously scanned tokens, returned for future advances, + // so logically in front of the token stream. + // Is logically a stack; needs last in last out semantics. + // Currently implemented as a stack of size 2. + HlslToken preTokenStack[tokenBufferSize]; + int preTokenStackSize; + void pushPreToken(const HlslToken&); + HlslToken popPreToken(); + + // Previously scanned tokens, not yet returned for future advances, + // but available for that. + // Is logically a fifo for normal advances, and a stack for recession. + // Currently implemented with an intrinsic size of 2. + HlslToken tokenBuffer[tokenBufferSize]; + int tokenBufferPos; + void pushTokenBuffer(const HlslToken&); + HlslToken popTokenBuffer(); + }; + +} // end namespace glslang + +#endif // HLSLTOKENSTREAM_H_ diff --git a/deps/glslang/glslang/hlsl/hlslTokens.h b/deps/glslang/glslang/hlsl/hlslTokens.h new file mode 100755 index 0000000000..4426bccecb --- /dev/null +++ b/deps/glslang/glslang/hlsl/hlslTokens.h @@ -0,0 +1,374 @@ +// +// Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef EHLSLTOKENS_H_ +#define EHLSLTOKENS_H_ + +namespace glslang { + +enum EHlslTokenClass { + EHTokNone = 0, + + // qualifiers + EHTokStatic, + EHTokConst, + EHTokSNorm, + EHTokUnorm, + EHTokExtern, + EHTokUniform, + EHTokVolatile, + EHTokPrecise, + EHTokShared, + EHTokGroupShared, + EHTokLinear, + EHTokCentroid, + EHTokNointerpolation, + EHTokNoperspective, + EHTokSample, + EHTokRowMajor, + EHTokColumnMajor, + EHTokPackOffset, + EHTokIn, + EHTokOut, + EHTokInOut, + EHTokLayout, + EHTokGloballyCoherent, + EHTokInline, + + // primitive types + EHTokPoint, + EHTokLine, + EHTokTriangle, + EHTokLineAdj, + EHTokTriangleAdj, + + // stream out types + EHTokPointStream, + EHTokLineStream, + EHTokTriangleStream, + + // Tessellation patches + EHTokInputPatch, + EHTokOutputPatch, + + // template types + EHTokBuffer, + EHTokVector, + EHTokMatrix, + + // scalar types + EHTokVoid, + EHTokString, + EHTokBool, + EHTokInt, + EHTokUint, + EHTokUint64, + EHTokDword, + EHTokHalf, + EHTokFloat, + EHTokDouble, + EHTokMin16float, + EHTokMin10float, + EHTokMin16int, + EHTokMin12int, + EHTokMin16uint, + + // vector types + EHTokBool1, + EHTokBool2, + EHTokBool3, + EHTokBool4, + EHTokFloat1, + EHTokFloat2, + EHTokFloat3, + EHTokFloat4, + EHTokInt1, + EHTokInt2, + EHTokInt3, + EHTokInt4, + EHTokDouble1, + EHTokDouble2, + EHTokDouble3, + EHTokDouble4, + EHTokUint1, + EHTokUint2, + EHTokUint3, + EHTokUint4, + EHTokHalf1, + EHTokHalf2, + EHTokHalf3, + EHTokHalf4, + EHTokMin16float1, + EHTokMin16float2, + EHTokMin16float3, + EHTokMin16float4, + EHTokMin10float1, + EHTokMin10float2, + EHTokMin10float3, + EHTokMin10float4, + EHTokMin16int1, + EHTokMin16int2, + EHTokMin16int3, + EHTokMin16int4, + EHTokMin12int1, + EHTokMin12int2, + EHTokMin12int3, + EHTokMin12int4, + EHTokMin16uint1, + EHTokMin16uint2, + EHTokMin16uint3, + EHTokMin16uint4, + + // matrix types + EHTokInt1x1, + EHTokInt1x2, + EHTokInt1x3, + EHTokInt1x4, + EHTokInt2x1, + EHTokInt2x2, + EHTokInt2x3, + EHTokInt2x4, + EHTokInt3x1, + EHTokInt3x2, + EHTokInt3x3, + EHTokInt3x4, + EHTokInt4x1, + EHTokInt4x2, + EHTokInt4x3, + EHTokInt4x4, + EHTokUint1x1, + EHTokUint1x2, + EHTokUint1x3, + EHTokUint1x4, + EHTokUint2x1, + EHTokUint2x2, + EHTokUint2x3, + EHTokUint2x4, + EHTokUint3x1, + EHTokUint3x2, + EHTokUint3x3, + EHTokUint3x4, + EHTokUint4x1, + EHTokUint4x2, + EHTokUint4x3, + EHTokUint4x4, + EHTokBool1x1, + EHTokBool1x2, + EHTokBool1x3, + EHTokBool1x4, + EHTokBool2x1, + EHTokBool2x2, + EHTokBool2x3, + EHTokBool2x4, + EHTokBool3x1, + EHTokBool3x2, + EHTokBool3x3, + EHTokBool3x4, + EHTokBool4x1, + EHTokBool4x2, + EHTokBool4x3, + EHTokBool4x4, + EHTokFloat1x1, + EHTokFloat1x2, + EHTokFloat1x3, + EHTokFloat1x4, + EHTokFloat2x1, + EHTokFloat2x2, + EHTokFloat2x3, + EHTokFloat2x4, + EHTokFloat3x1, + EHTokFloat3x2, + EHTokFloat3x3, + EHTokFloat3x4, + EHTokFloat4x1, + EHTokFloat4x2, + EHTokFloat4x3, + EHTokFloat4x4, + EHTokHalf1x1, + EHTokHalf1x2, + EHTokHalf1x3, + EHTokHalf1x4, + EHTokHalf2x1, + EHTokHalf2x2, + EHTokHalf2x3, + EHTokHalf2x4, + EHTokHalf3x1, + EHTokHalf3x2, + EHTokHalf3x3, + EHTokHalf3x4, + EHTokHalf4x1, + EHTokHalf4x2, + EHTokHalf4x3, + EHTokHalf4x4, + EHTokDouble1x1, + EHTokDouble1x2, + EHTokDouble1x3, + EHTokDouble1x4, + EHTokDouble2x1, + EHTokDouble2x2, + EHTokDouble2x3, + EHTokDouble2x4, + EHTokDouble3x1, + EHTokDouble3x2, + EHTokDouble3x3, + EHTokDouble3x4, + EHTokDouble4x1, + EHTokDouble4x2, + EHTokDouble4x3, + EHTokDouble4x4, + + // texturing types + EHTokSampler, + EHTokSampler1d, + EHTokSampler2d, + EHTokSampler3d, + EHTokSamplerCube, + EHTokSamplerState, + EHTokSamplerComparisonState, + EHTokTexture, + EHTokTexture1d, + EHTokTexture1darray, + EHTokTexture2d, + EHTokTexture2darray, + EHTokTexture3d, + EHTokTextureCube, + EHTokTextureCubearray, + EHTokTexture2DMS, + EHTokTexture2DMSarray, + EHTokRWTexture1d, + EHTokRWTexture1darray, + EHTokRWTexture2d, + EHTokRWTexture2darray, + EHTokRWTexture3d, + EHTokRWBuffer, + EHTokSubpassInput, + EHTokSubpassInputMS, + + // Structure buffer variants + EHTokAppendStructuredBuffer, + EHTokByteAddressBuffer, + EHTokConsumeStructuredBuffer, + EHTokRWByteAddressBuffer, + EHTokRWStructuredBuffer, + EHTokStructuredBuffer, + EHTokTextureBuffer, + + // variable, user type, ... + EHTokIdentifier, + EHTokClass, + EHTokStruct, + EHTokCBuffer, + EHTokTBuffer, + EHTokTypedef, + EHTokThis, + EHTokNamespace, + EHTokConstantBuffer, + + // constant + EHTokFloat16Constant, + EHTokFloatConstant, + EHTokDoubleConstant, + EHTokIntConstant, + EHTokUintConstant, + EHTokBoolConstant, + EHTokStringConstant, + + // control flow + EHTokFor, + EHTokDo, + EHTokWhile, + EHTokBreak, + EHTokContinue, + EHTokIf, + EHTokElse, + EHTokDiscard, + EHTokReturn, + EHTokSwitch, + EHTokCase, + EHTokDefault, + + // expressions + EHTokLeftOp, + EHTokRightOp, + EHTokIncOp, + EHTokDecOp, + EHTokLeOp, + EHTokGeOp, + EHTokEqOp, + EHTokNeOp, + EHTokAndOp, + EHTokOrOp, + EHTokXorOp, + EHTokAssign, + EHTokMulAssign, + EHTokDivAssign, + EHTokAddAssign, + EHTokModAssign, + EHTokLeftAssign, + EHTokRightAssign, + EHTokAndAssign, + EHTokXorAssign, + EHTokOrAssign, + EHTokSubAssign, + EHTokLeftParen, + EHTokRightParen, + EHTokLeftBracket, + EHTokRightBracket, + EHTokLeftBrace, + EHTokRightBrace, + EHTokDot, + EHTokComma, + EHTokColon, + EHTokColonColon, + EHTokSemicolon, + EHTokBang, + EHTokDash, + EHTokTilde, + EHTokPlus, + EHTokStar, + EHTokSlash, + EHTokPercent, + EHTokLeftAngle, + EHTokRightAngle, + EHTokVerticalBar, + EHTokCaret, + EHTokAmpersand, + EHTokQuestion, +}; + +} // end namespace glslang + +#endif // EHLSLTOKENS_H_